commit b27508bdea0d453a762c1eca2ad3fb11e7d6cbec Author: liyuhua <15626451870@163.com> Date: Thu Jul 6 16:54:13 2023 +0800 新增项目 diff --git a/Podfile b/Podfile new file mode 100644 index 00000000..1908d7d6 --- /dev/null +++ b/Podfile @@ -0,0 +1,79 @@ +# Uncomment the next line to define a global platform for your project + platform :ios, '11.0' +source 'https://mirrors.tuna.tsinghua.edu.cn/git/CocoaPods/Specs.git' +target 'YuMi' do + use_frameworks! + + # 滑动标签栏 + pod 'JXCategoryView' + pod 'JXPagingView/Pager' + #模型转化 + pod 'MJExtension' + #图片加载 + pod 'SDWebImage' + pod 'AFNetworking' + #文字自动滚动 + pod 'MarqueeLabel-ObjC' + pod 'YYText' + pod 'Masonry' + #输入 + pod 'SZTextView' + #头饰显示 + pod 'YYWebImage' + #轮播图 + pod 'SDCycleScrollView' + pod 'ReactiveObjC' + pod 'MBProgressHUD' + pod 'FFPopup' + #下拉刷新控件 + pod 'MJRefresh' + pod 'IQKeyboardManager' + pod 'TZImagePickerController' + #TRTC + pod 'TXLiteAVSDK_TRTC', '~> 10.3.12317' + #vap礼物动画 + pod 'QGVAPlayer' + #上传音乐 + pod 'CocoaAsyncSocket',:modular_headers => true + #声网 + pod 'AgoraRtcEngine_iOS', '~> 3.2.2' + #上传图片 + pod 'Qiniu' + #内购 + pod 'IAPHelper' + #持久化存储 + pod 'SSKeychain' + pod 'Base64' + #pop动画 + pod 'pop', '~> 1.0.12' + #云信 + pod 'NIMSDK_LITE', '~> 9.2.8' + pod 'GKCycleScrollView', '~> 1.2.0' + pod 'SVGAPlayer' + + pod 'GoogleSignIn', '6.2.4' + pod 'mob_sharesdk' + pod 'mob_sharesdk/ShareSDKPlatforms/Apple' + pod 'mob_sharesdk/ShareSDKPlatforms/Facebook_Lite' + pod 'mob_sharesdk/ShareSDKPlatforms/Line' + pod 'mob_sharesdk/ShareSDKExtension' + + pod 'UMCommon' + pod 'UMDevice' + pod 'lottie-ios' + pod 'WeexSDK' + pod 'ZLCollectionViewFlowLayout' + pod 'WMZDropDownMenu' + pod 'TABAnimated' + pod 'YuMi',:path=>'yum' + +end +post_install do |installer| + installer.generated_projects.each do |project| + project.targets.each do |target| + target.build_configurations.each do |config| + config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '11.0' + end + end + end +end diff --git a/YuMi.xcodeproj/project.pbxproj b/YuMi.xcodeproj/project.pbxproj new file mode 100644 index 00000000..409c9622 --- /dev/null +++ b/YuMi.xcodeproj/project.pbxproj @@ -0,0 +1,10452 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 51; + objects = { + +/* Begin PBXBuildFile section */ + 140A7F52299CC69000841594 /* YUMITabObstacle.m in Sources */ = {isa = PBXBuildFile; fileRef = 140A7F51299CC69000841594 /* YUMITabObstacle.m */; }; + 140A818D299CFF1C00841594 /* YUMIVendorCallRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = 140A818C299CFF1C00841594 /* YUMIVendorCallRegardGovernancer.m */; }; + 1427212529A7566100C7C423 /* ZegoAudioRoom.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1427212329A7563A00C7C423 /* ZegoAudioRoom.framework */; }; + 1427212629A7566100C7C423 /* ZegoAudioRoom.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 1427212329A7563A00C7C423 /* ZegoAudioRoom.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + 1427212C29A757EC00C7C423 /* SeparationsStatementAbstractMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = 1427212A29A757EC00C7C423 /* SeparationsStatementAbstractMatrix.m */; }; + 1427212F29A7599500C7C423 /* YUMISeparationsConsiderationExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = 1427212D29A7599500C7C423 /* YUMISeparationsConsiderationExternalizer.m */; }; + 1427213429A75A2600C7C423 /* YUMISeparationsRecentlyExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = 1427213329A75A2600C7C423 /* YUMISeparationsRecentlyExternalizer.m */; }; + 1427218729A75F6F00C7C423 /* MyHyperTextConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 1427213729A75F6F00C7C423 /* MyHyperTextConnection.m */; }; + 1427218829A75F6F00C7C423 /* HyperTextErrorRespond.m in Sources */ = {isa = PBXBuildFile; fileRef = 1427214029A75F6F00C7C423 /* HyperTextErrorRespond.m */; }; + 1427218929A75F6F00C7C423 /* HyperTextAtomicRespond.m in Sources */ = {isa = PBXBuildFile; fileRef = 1427214129A75F6F00C7C423 /* HyperTextAtomicRespond.m */; }; + 1427218A29A75F6F00C7C423 /* HyperTextDynamicAccurateRespond.m in Sources */ = {isa = PBXBuildFile; fileRef = 1427214329A75F6F00C7C423 /* HyperTextDynamicAccurateRespond.m */; }; + 1427218B29A75F6F00C7C423 /* HyperTextAccurateRespond.m in Sources */ = {isa = PBXBuildFile; fileRef = 1427214429A75F6F00C7C423 /* HyperTextAccurateRespond.m */; }; + 1427218C29A75F6F00C7C423 /* HyperTextAsyncAccurateRespond.m in Sources */ = {isa = PBXBuildFile; fileRef = 1427214529A75F6F00C7C423 /* HyperTextAsyncAccurateRespond.m */; }; + 1427218D29A75F6F00C7C423 /* HyperTextDeficitirectRespond.m in Sources */ = {isa = PBXBuildFile; fileRef = 1427214629A75F6F00C7C423 /* HyperTextDeficitirectRespond.m */; }; + 1427218E29A75F6F00C7C423 /* HyperTextCommunication.m in Sources */ = {isa = PBXBuildFile; fileRef = 1427214C29A75F6F00C7C423 /* HyperTextCommunication.m */; }; + 1427218F29A75F6F00C7C423 /* HyperTextConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 1427214D29A75F6F00C7C423 /* HyperTextConnection.m */; }; + 1427219029A75F6F00C7C423 /* TissueSocket.m in Sources */ = {isa = PBXBuildFile; fileRef = 1427214E29A75F6F00C7C423 /* TissueSocket.m */; }; + 1427219129A75F6F00C7C423 /* MultipartCommunicationIntelligencerField.m in Sources */ = {isa = PBXBuildFile; fileRef = 1427215329A75F6F00C7C423 /* MultipartCommunicationIntelligencerField.m */; }; + 1427219229A75F6F00C7C423 /* MultipartFormAtomicAnatomiser.m in Sources */ = {isa = PBXBuildFile; fileRef = 1427215429A75F6F00C7C423 /* MultipartFormAtomicAnatomiser.m */; }; + 1427219329A75F6F00C7C423 /* MultipartCommunicationIntelligencer.m in Sources */ = {isa = PBXBuildFile; fileRef = 1427215529A75F6F00C7C423 /* MultipartCommunicationIntelligencer.m */; }; + 1427219429A75F6F00C7C423 /* HyperTextAuthenticationRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 1427215729A75F6F00C7C423 /* HyperTextAuthenticationRequest.m */; }; + 1427219529A75F6F00C7C423 /* DDNumber.m in Sources */ = {isa = PBXBuildFile; fileRef = 1427215929A75F6F00C7C423 /* DDNumber.m */; }; + 1427219629A75F6F00C7C423 /* DDData.m in Sources */ = {isa = PBXBuildFile; fileRef = 1427215A29A75F6F00C7C423 /* DDData.m */; }; + 1427219729A75F6F00C7C423 /* DDRange.m in Sources */ = {isa = PBXBuildFile; fileRef = 1427215D29A75F6F00C7C423 /* DDRange.m */; }; + 1427219829A75F6F00C7C423 /* HyperTextServer.m in Sources */ = {isa = PBXBuildFile; fileRef = 1427215F29A75F6F00C7C423 /* HyperTextServer.m */; }; + 142721A829A75F6F00C7C423 /* BWGMKJYlumbes.m in Sources */ = {isa = PBXBuildFile; fileRef = 1427217729A75F6F00C7C423 /* BWGMKJYlumbes.m */; }; + 142721A929A75F6F00C7C423 /* BWGASLlumbes.m in Sources */ = {isa = PBXBuildFile; fileRef = 1427217A29A75F6F00C7C423 /* BWGASLlumbes.m */; }; + 142721AA29A75F6F00C7C423 /* ContextFilterLogFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = 1427217F29A75F6F00C7C423 /* ContextFilterLogFormatter.m */; }; + 142721AB29A75F6F00C7C423 /* DispatchMHTueueLumberInitialiser.m in Sources */ = {isa = PBXBuildFile; fileRef = 1427218029A75F6F00C7C423 /* DispatchMHTueueLumberInitialiser.m */; }; + 142721AC29A75F6F00C7C423 /* BWGLumber.m in Sources */ = {isa = PBXBuildFile; fileRef = 1427218129A75F6F00C7C423 /* BWGLumber.m */; }; + 142721AD29A75F6F00C7C423 /* BWGAbstractAtomicbaselumbes.m in Sources */ = {isa = PBXBuildFile; fileRef = 1427218329A75F6F00C7C423 /* BWGAbstractAtomicbaselumbes.m */; }; + 142721AE29A75F6F00C7C423 /* BWGAccuratelumbes.m in Sources */ = {isa = PBXBuildFile; fileRef = 1427218429A75F6F00C7C423 /* BWGAccuratelumbes.m */; }; + 142721AF29A75F6F00C7C423 /* SJXCSMIPFacilitater.m in Sources */ = {isa = PBXBuildFile; fileRef = 1427218629A75F6F00C7C423 /* SJXCSMIPFacilitater.m */; }; + 142721B229A7647F00C7C423 /* YUMIBlankRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = 142721B129A7647F00C7C423 /* YUMIBlankRegardGovernancer.m */; }; + 1464C5EA29A45FC300AF7C94 /* YUMIButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 1464C5E929A45FC300AF7C94 /* YUMIButton.m */; }; + 1464C5ED29A4784F00AF7C94 /* YUMIManeSimpleConsumerAbstractRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = 1464C5EC29A4784F00AF7C94 /* YUMIManeSimpleConsumerAbstractRegardGovernancer.m */; }; + 1464C5F029A49DDD00AF7C94 /* YUMIManeSimpleConsumerAbstractIntelligencerRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = 1464C5EF29A49DDD00AF7C94 /* YUMIManeSimpleConsumerAbstractIntelligencerRegard.m */; }; + 1464C5F329A4C18000AF7C94 /* YUMIIAPReindictRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = 1464C5F229A4C18000AF7C94 /* YUMIIAPReindictRegardGovernancer.m */; }; + 1464C5F629A4CA8C00AF7C94 /* YUMIIAPReindictAssembletionRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 1464C5F529A4CA8C00AF7C94 /* YUMIIAPReindictAssembletionRegardElement.m */; }; + 1464C5F929A4D00000AF7C94 /* YUMIIAPReindictIntelligencerRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = 1464C5F829A4D00000AF7C94 /* YUMIIAPReindictIntelligencerRegard.m */; }; + 149839C4299E088000F82CBF /* YUMIMomentStatementRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = 149839C3299E088000F82CBF /* YUMIMomentStatementRegardGovernancer.m */; }; + 149839C7299E0B9F00F82CBF /* YUMIMomentStatementAssembletionRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 149839C6299E0B9F00F82CBF /* YUMIMomentStatementAssembletionRegardElement.m */; }; + 14A6034929A3567200D2A6A5 /* YUMISimpleManeRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = 14A6034829A3567200D2A6A5 /* YUMISimpleManeRegardGovernancer.m */; }; + 14A6034C29A35EE600D2A6A5 /* YUMIManeProvisionTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 14A6034B29A35EE600D2A6A5 /* YUMIManeProvisionTabulationRegardElement.m */; }; + 14A6034F29A36D8300D2A6A5 /* YUMISimpleManeIntelligencerRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = 14A6034E29A36D8300D2A6A5 /* YUMISimpleManeIntelligencerRegard.m */; }; + 14B880E1299A1799005FCA1B /* YUMISurmountRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = 14B880E0299A1799005FCA1B /* YUMISurmountRegardGovernancer.m */; }; + 14B880E7299A4B62005FCA1B /* YUMISurmountMobileRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = 14B880E6299A4B62005FCA1B /* YUMISurmountMobileRegardGovernancer.m */; }; + 14D8767C29A7445C00E1DD7F /* NSObject+AutoCoding.m in Sources */ = {isa = PBXBuildFile; fileRef = 14D8767B29A7445C00E1DD7F /* NSObject+AutoCoding.m */; }; + 14DCAD08299B36A500A7DD31 /* YUMISurmountPwordRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = 14DCAD07299B36A500A7DD31 /* YUMISurmountPwordRegardGovernancer.m */; }; + 14DCAD0B299B5D3A00A7DD31 /* YUMISurmountIntrojectionRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = 14DCAD0A299B5D3A00A7DD31 /* YUMISurmountIntrojectionRegard.m */; }; + 14DCAD0E299B6AD900A7DD31 /* YUMIForgetPwordRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = 14DCAD0D299B6AD900A7DD31 /* YUMIForgetPwordRegardGovernancer.m */; }; + 14DCAD11299B946E00A7DD31 /* YUMISurmountBaseRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = 14DCAD10299B946E00A7DD31 /* YUMISurmountBaseRegardGovernancer.m */; }; + 14EB640929A5BDDD00A4A00B /* YUMIMomentsSimpleSpecificRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = 14EB640829A5BDDD00A4A00B /* YUMIMomentsSimpleSpecificRegardGovernancer.m */; }; + 14EB640D29A5C16000A4A00B /* YUMIMomentsSimpleSpecificNev.m in Sources */ = {isa = PBXBuildFile; fileRef = 14EB640C29A5C16000A4A00B /* YUMIMomentsSimpleSpecificNev.m */; }; + 180116F9279E8C4C00F2CBC0 /* PLIntratemporalUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 180116F8279E8C4C00F2CBC0 /* PLIntratemporalUtil.m */; }; + 180116FC279E8CCE00F2CBC0 /* NVDate.m in Sources */ = {isa = PBXBuildFile; fileRef = 180116FA279E8CCE00F2CBC0 /* NVDate.m */; }; + 180806D827293794001FD836 /* NSObject+MJExtension.m in Sources */ = {isa = PBXBuildFile; fileRef = 180806D727293794001FD836 /* NSObject+MJExtension.m */; }; + 180806FB2729A354001FD836 /* ThemeColor+Room.m in Sources */ = {isa = PBXBuildFile; fileRef = 180806FA2729A354001FD836 /* ThemeColor+Room.m */; }; + 1808072D2731598F001FD836 /* YUMINetIndicateYYDesignation.m in Sources */ = {isa = PBXBuildFile; fileRef = 1808072C2731598F001FD836 /* YUMINetIndicateYYDesignation.m */; }; + 1808073027315E8E001FD836 /* NetIndicateRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = 1808072F27315E8E001FD836 /* NetIndicateRegard.m */; }; + 181D7F1B2726CE2A00B7C059 /* PhaseRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = 181D7F1A2726CE2A00B7C059 /* PhaseRegard.m */; }; + 181D7F212727D9DB00B7C059 /* SocialPhaseRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = 181D7F202727D9DB00B7C059 /* SocialPhaseRegard.m */; }; + 18486213271EA9DA005FC5DC /* RealtimackExecutive.m in Sources */ = {isa = PBXBuildFile; fileRef = 18486212271EA9DA005FC5DC /* RealtimackExecutive.m */; }; + 18486217271EAB8C005FC5DC /* BaseRealtimackConnector.m in Sources */ = {isa = PBXBuildFile; fileRef = 18486216271EAB8C005FC5DC /* BaseRealtimackConnector.m */; }; + 18486235271EB794005FC5DC /* AgoraRealtimackConnector.m in Sources */ = {isa = PBXBuildFile; fileRef = 18486234271EB794005FC5DC /* AgoraRealtimackConnector.m */; }; + 184862CE27213FD7005FC5DC /* ZegoRealtimackConnector.m in Sources */ = {isa = PBXBuildFile; fileRef = 184862CC27213FD7005FC5DC /* ZegoRealtimackConnector.m */; }; + 186A531926FC592100D67B2C /* libresolv.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 186A531826FC591100D67B2C /* libresolv.tbd */; }; + 186A534626FC6ED900D67B2C /* MKJPopup.m in Sources */ = {isa = PBXBuildFile; fileRef = 186A532C26FC6ED900D67B2C /* MKJPopup.m */; }; + 186A534726FC6ED900D67B2C /* MKJPrecautiousDisposition.m in Sources */ = {isa = PBXBuildFile; fileRef = 186A532E26FC6ED900D67B2C /* MKJPrecautiousDisposition.m */; }; + 186A534826FC6ED900D67B2C /* MKJPrecautiousButtonDisposition.m in Sources */ = {isa = PBXBuildFile; fileRef = 186A533326FC6ED900D67B2C /* MKJPrecautiousButtonDisposition.m */; }; + 186A534926FC6ED900D67B2C /* MKJPrecautiousCommunicationAttributedDisposition.m in Sources */ = {isa = PBXBuildFile; fileRef = 186A533426FC6ED900D67B2C /* MKJPrecautiousCommunicationAttributedDisposition.m */; }; + 186A534A26FC6ED900D67B2C /* MKJActionSheetDisposition.m in Sources */ = {isa = PBXBuildFile; fileRef = 186A533526FC6ED900D67B2C /* MKJActionSheetDisposition.m */; }; + 186A534B26FC6ED900D67B2C /* MKJPopupExecutiveServing.m in Sources */ = {isa = PBXBuildFile; fileRef = 186A533926FC6ED900D67B2C /* MKJPopupExecutiveServing.m */; }; + 186A534C26FC6ED900D67B2C /* MKJPrecautiousRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = 186A533C26FC6ED900D67B2C /* MKJPrecautiousRegard.m */; }; + 186A534D26FC6ED900D67B2C /* MKJActionSheetRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = 186A533F26FC6ED900D67B2C /* MKJActionSheetRegard.m */; }; + 186A534E26FC6ED900D67B2C /* MKJPopupServing.m in Sources */ = {isa = PBXBuildFile; fileRef = 186A534126FC6ED900D67B2C /* MKJPopupServing.m */; }; + 186A536926FC6F2E00D67B2C /* YUMIParaticipationRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = 186A536126FC6F2E00D67B2C /* YUMIParaticipationRegard.m */; }; + 186A536B26FC6F2E00D67B2C /* YUMIParaticipationProvisionElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 186A536726FC6F2E00D67B2C /* YUMIParaticipationProvisionElement.m */; }; + 187EEEDC26E89B32002833B2 /* BaseMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = 187EEEDB26E89B32002833B2 /* BaseMatrix.m */; }; + 187EEEE126E89BFB002833B2 /* AccountMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = 187EEEE026E89BFB002833B2 /* AccountMatrix.m */; }; + 187EEEF026E89FE8002833B2 /* AccountAbstractStorage.m in Sources */ = {isa = PBXBuildFile; fileRef = 187EEEEE26E89FE8002833B2 /* AccountAbstractStorage.m */; }; + 189DD52E26DE255300AB55B1 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 189DD52D26DE255300AB55B1 /* AppDelegate.m */; }; + 189DD53426DE255300AB55B1 /* TabbarRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = 189DD53326DE255300AB55B1 /* TabbarRegardGovernancer.m */; }; + 189DD53926DE255600AB55B1 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 189DD53826DE255600AB55B1 /* Assets.xcassets */; }; + 189DD53F26DE255600AB55B1 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 189DD53E26DE255600AB55B1 /* main.m */; }; + 189DD54B26DE338800AB55B1 /* BaseRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = 189DD54A26DE338800AB55B1 /* BaseRegardGovernancer.m */; }; + 189DD55026DE37F900AB55B1 /* MvpRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = 189DD54F26DE37F900AB55B1 /* MvpRegardGovernancer.m */; }; + 189DD55A26DE39D200AB55B1 /* BaseMvpExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = 189DD55926DE39D200AB55B1 /* BaseMvpExternalizer.m */; }; + 189DD58F26DF97E700AB55B1 /* SurmountExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = 189DD58E26DF97E700AB55B1 /* SurmountExternalizer.m */; }; + 189DD67E26E1FD8900AB55B1 /* UIImage+Utils.m in Sources */ = {isa = PBXBuildFile; fileRef = 189DD67D26E1FD8900AB55B1 /* UIImage+Utils.m */; }; + 189DD68426E1FDBB00AB55B1 /* XNDJTBWGLoadingTool.m in Sources */ = {isa = PBXBuildFile; fileRef = 189DD68226E1FDBB00AB55B1 /* XNDJTBWGLoadingTool.m */; }; + 189DD6FF26E20E5900AB55B1 /* HttpRequestFacilitater.m in Sources */ = {isa = PBXBuildFile; fileRef = 189DD6FE26E20E5900AB55B1 /* HttpRequestFacilitater.m */; }; + 189DD73D26E21C3F00AB55B1 /* YYUtility+Device.m in Sources */ = {isa = PBXBuildFile; fileRef = 189DD73826E21C3F00AB55B1 /* YYUtility+Device.m */; }; + 189DD73E26E21C3F00AB55B1 /* YYUtility.m in Sources */ = {isa = PBXBuildFile; fileRef = 189DD73926E21C3F00AB55B1 /* YYUtility.m */; }; + 189DD73F26E21C3F00AB55B1 /* YYUtility+Carrier.m in Sources */ = {isa = PBXBuildFile; fileRef = 189DD73A26E21C3F00AB55B1 /* YYUtility+Carrier.m */; }; + 189DD74026E21C3F00AB55B1 /* YYUtility+App.m in Sources */ = {isa = PBXBuildFile; fileRef = 189DD73B26E21C3F00AB55B1 /* YYUtility+App.m */; }; + 189DD74526E21CCC00AB55B1 /* YYReachability.m in Sources */ = {isa = PBXBuildFile; fileRef = 189DD74426E21CCC00AB55B1 /* YYReachability.m */; }; + 189DD75026E21D9000AB55B1 /* GCDHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 189DD74E26E21D9000AB55B1 /* GCDHelper.m */; }; + 189DD75926E6003C00AB55B1 /* Api.m in Sources */ = {isa = PBXBuildFile; fileRef = 189DD75826E6003C00AB55B1 /* Api.m */; }; + 189DD76226E60DDC00AB55B1 /* Api+Login.m in Sources */ = {isa = PBXBuildFile; fileRef = 189DD76126E60DDC00AB55B1 /* Api+Login.m */; }; + 18A61BD7274F7F6900A09A54 /* NetIndicateDisposition.m in Sources */ = {isa = PBXBuildFile; fileRef = 18A61BD6274F7F6900A09A54 /* NetIndicateDisposition.m */; }; + 18A61BE8274F9CF000A09A54 /* InterlocutionStatementRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = 18A61BE7274F9CF000A09A54 /* InterlocutionStatementRegardGovernancer.m */; }; + 18AAF3F0279EA59300CD7DAD /* CommunicationSatisfactionEssayClickable.m in Sources */ = {isa = PBXBuildFile; fileRef = 18AAF3EF279EA59300CD7DAD /* CommunicationSatisfactionEssayClickable.m */; }; + 18E7B1B226E8AF980064BC9B /* MainExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = 18E7B1B126E8AF980064BC9B /* MainExternalizer.m */; }; + 18E7B1B726E8B2D10064BC9B /* Api+Main.m in Sources */ = {isa = PBXBuildFile; fileRef = 18E7B1B626E8B2D10064BC9B /* Api+Main.m */; }; + 18E7B26926E8D5D60064BC9B /* XCCurrentVCStackExecutive.m in Sources */ = {isa = PBXBuildFile; fileRef = 18E7B26726E8D5D60064BC9B /* XCCurrentVCStackExecutive.m */; }; + 18E7B31826F097E00064BC9B /* ConsumerAbstractMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = 18E7B31726F097E00064BC9B /* ConsumerAbstractMatrix.m */; }; + 18E7B31B26F0982E0064BC9B /* ConsumerExpand.m in Sources */ = {isa = PBXBuildFile; fileRef = 18E7B31A26F0982E0064BC9B /* ConsumerExpand.m */; }; + 18E7B31E26F0984C0064BC9B /* ConsumerPrototypeVo.m in Sources */ = {isa = PBXBuildFile; fileRef = 18E7B31D26F0984C0064BC9B /* ConsumerPrototypeVo.m */; }; + 18E7B32126F098650064BC9B /* ConsumerAbstractCommunicationVo.m in Sources */ = {isa = PBXBuildFile; fileRef = 18E7B32026F098650064BC9B /* ConsumerAbstractCommunicationVo.m */; }; + 18E7B33226F317A20064BC9B /* YUMITissueRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = 18E7B33126F317A20064BC9B /* YUMITissueRegardGovernancer.m */; }; + 18EE3FDF2750C1F700A452BF /* InterlocutionStatementElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 18EE3FDE2750C1F700A452BF /* InterlocutionStatementElement.m */; }; + 18EE3FE22750C29D00A452BF /* NEMCBadgeRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = 18EE3FE12750C29D00A452BF /* NEMCBadgeRegard.m */; }; + 18EE3FEE2750CE6D00A452BF /* NEMCCommunicationUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 18EE3FED2750CE6D00A452BF /* NEMCCommunicationUtils.m */; }; + 18EE3FF12750D2AD00A452BF /* NEMCIntratemporalUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 18EE3FF02750D2AD00A452BF /* NEMCIntratemporalUtils.m */; }; + 18EE3FF42750FA3700A452BF /* UIView+NIM.m in Sources */ = {isa = PBXBuildFile; fileRef = 18EE3FF32750FA3700A452BF /* UIView+NIM.m */; }; + 18EE401A2754BA9F00A452BF /* NEMCCommunicationMaker.m in Sources */ = {isa = PBXBuildFile; fileRef = 18EE40182754BA9F00A452BF /* NEMCCommunicationMaker.m */; }; + 18F403CB2758C66800A6C548 /* CommunicationSatisfactionEssay.m in Sources */ = {isa = PBXBuildFile; fileRef = 18F403CA2758C66800A6C548 /* CommunicationSatisfactionEssay.m */; }; + 18F403EE2758CF2F00A6C548 /* CommunicationSatisfactionIndicate.m in Sources */ = {isa = PBXBuildFile; fileRef = 18F403ED2758CF2F00A6C548 /* CommunicationSatisfactionIndicate.m */; }; + 18F4043A275E20D900A6C548 /* TRTCRealtimackConnector.m in Sources */ = {isa = PBXBuildFile; fileRef = 18F40439275E20D900A6C548 /* TRTCRealtimackConnector.m */; }; + 18F404B7276095D700A6C548 /* InterlocutionChatLimitRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = 18F404B6276095D700A6C548 /* InterlocutionChatLimitRegard.m */; }; + 18F404BB2760982000A6C548 /* ChatLimitMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = 18F404BA2760982000A6C548 /* ChatLimitMatrix.m */; }; + 18F404C3276098F100A6C548 /* Api+Message.m in Sources */ = {isa = PBXBuildFile; fileRef = 18F404C2276098F100A6C548 /* Api+Message.m */; }; + 18F404C927609A4300A6C548 /* CommunicationExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = 18F404C827609A4300A6C548 /* CommunicationExternalizer.m */; }; + 73FFADDC93E195344047A2EC /* Pods_YuMi.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CACF623970097D653132D69A /* Pods_YuMi.framework */; }; + 9B0086C627BA392B0032BD2B /* KellegPhaseRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B0086C527BA392B0032BD2B /* KellegPhaseRegard.m */; }; + 9B0086CA27BA4F570032BD2B /* KellegMiecreoscoopeRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B0086C927BA4F570032BD2B /* KellegMiecreoscoopeRegard.m */; }; + 9B044D9D282D2A6400DE4859 /* YUMIChamberKellegRateImportRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B044D9C282D2A6400DE4859 /* YUMIChamberKellegRateImportRegard.m */; }; + 9B044DA0282D32F700DE4859 /* MiecreoscoopeCallforExtMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B044D9F282D32F700DE4859 /* MiecreoscoopeCallforExtMatrix.m */; }; + 9B0997A127F19D8A00EB8F14 /* README.md in Resources */ = {isa = PBXBuildFile; fileRef = 9B0997A027F19D8900EB8F14 /* README.md */; }; + 9B0997A327F19DE500EB8F14 /* QGHWDShaders.metal in Sources */ = {isa = PBXBuildFile; fileRef = 9B0997A227F19DE500EB8F14 /* QGHWDShaders.metal */; }; + 9B0E1C5926E77022005D4442 /* BaseNevigationGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B0E1C5826E77022005D4442 /* BaseNevigationGovernancer.m */; }; + 9B17F71827BD150600440843 /* SVGAAnatomiserExecutive.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B17F71727BD150600440843 /* SVGAAnatomiserExecutive.m */; }; + 9B1B7292280010E8003FACE9 /* Api+FansTeam.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B1B7291280010E8003FACE9 /* Api+FansTeam.m */; }; + 9B1B729528002099003FACE9 /* YUMIManeFanaticsSquadRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B1B729428002099003FACE9 /* YUMIManeFanaticsSquadRegardGovernancer.m */; }; + 9B1B729828002147003FACE9 /* YUMIManeFanaticsSquadExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B1B729728002147003FACE9 /* YUMIManeFanaticsSquadExternalizer.m */; }; + 9B1B729D28002264003FACE9 /* YUMIManeKellegFanaticsSquadMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B1B729C28002264003FACE9 /* YUMIManeKellegFanaticsSquadMatrix.m */; }; + 9B1B72A1280023F3003FACE9 /* YUMIManeKellegFanaticsSquadTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B1B72A0280023F3003FACE9 /* YUMIManeKellegFanaticsSquadTabulationRegardElement.m */; }; + 9B1B72AC280031DB003FACE9 /* XCombatellegCombatRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B1B72AB280031DB003FACE9 /* XCombatellegCombatRegardGovernancer.m */; }; + 9B1B72AF280031F8003FACE9 /* XCombatellegCombatChosenChamberRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B1B72AE280031F8003FACE9 /* XCombatellegCombatChosenChamberRegard.m */; }; + 9B1B72B528003664003FACE9 /* Api+AnchorPk.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B1B72B428003664003FACE9 /* Api+AnchorPk.m */; }; + 9B1B72B828003772003FACE9 /* XCombatellegCombatExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B1B72B728003772003FACE9 /* XCombatellegCombatExternalizer.m */; }; + 9B1B72BC28003E06003FACE9 /* XCombatellegCombatTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B1B72BB28003E06003FACE9 /* XCombatellegCombatTabulationRegardElement.m */; }; + 9B1B72BF2800422E003FACE9 /* XCombatellegCombatPreadominantRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B1B72BE2800422E003FACE9 /* XCombatellegCombatPreadominantRegard.m */; }; + 9B1EF3D227E81C0600554295 /* YUMIManePretendUpwardsIntumesceRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B1EF3D127E81C0600554295 /* YUMIManePretendUpwardsIntumesceRegardGovernancer.m */; }; + 9B1EF3D527E8294B00554295 /* YUMIManePretendDispossessAssembletionRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B1EF3D427E8294B00554295 /* YUMIManePretendDispossessAssembletionRegardElement.m */; }; + 9B1FC3D527E49A5D006EFFE0 /* ChatIntumesceMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B1FC3D427E49A5D006EFFE0 /* ChatIntumesceMatrix.m */; }; + 9B1FC3D827E49C36006EFFE0 /* YUMIManePretendIntumesceAssembletionRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B1FC3D727E49C36006EFFE0 /* YUMIManePretendIntumesceAssembletionRegardElement.m */; }; + 9B208A362779B50100F9E54A /* PresentMagnificentAbstractMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B208A352779B50100F9E54A /* PresentMagnificentAbstractMatrix.m */; }; + 9B2489BC27C4C056006CFB85 /* YUMIManeVacationerDispossessTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B2489BB27C4C056006CFB85 /* YUMIManeVacationerDispossessTabulationRegardElement.m */; }; + 9B2A12DE2783FEDD00CED41B /* ConsumerVipAbstractVo.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B2A12DD2783FEDD00CED41B /* ConsumerVipAbstractVo.m */; }; + 9B2EA7C02804037700ED17BF /* KellegCombatPhaseRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B2EA7BF2804037700ED17BF /* KellegCombatPhaseRegard.m */; }; + 9B2EA7C32804052E00ED17BF /* KellegCombatMiecreoscoopeRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B2EA7C22804052E00ED17BF /* KellegCombatMiecreoscoopeRegard.m */; }; + 9B2EA7C628041EFC00ED17BF /* XCombatellegPkFasciaboardRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B2EA7C528041EFC00ED17BF /* XCombatellegPkFasciaboardRegard.m */; }; + 9B2EA7CC2804245500ED17BF /* XCombatellegCombatFasciaboardConsumerRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B2EA7CB2804245500ED17BF /* XCombatellegCombatFasciaboardConsumerRegard.m */; }; + 9B2F72D028E45A480000E4FA /* YUMIChamberMHTuickCommunicationContainRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B2F72CF28E45A480000E4FA /* YUMIChamberMHTuickCommunicationContainRegard.m */; }; + 9B2F72D328E45C5A0000E4FA /* YUMIChamberMHTuidkCommunicationElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B2F72D228E45C5A0000E4FA /* YUMIChamberMHTuidkCommunicationElement.m */; }; + 9B32A04728881845002009D2 /* YUMIChamberCoupleStatementRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B32A04628881845002009D2 /* YUMIChamberCoupleStatementRegard.m */; }; + 9B335B492925D8A00048A116 /* XCombatellegCombatChosenGenreGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B335B482925D8A00048A116 /* XCombatellegCombatChosenGenreGovernancer.m */; }; + 9B33E3CB27D85379003B0E62 /* UpwardsloadAccurate.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B33E3C927D85379003B0E62 /* UpwardsloadAccurate.m */; }; + 9B3A1DF4280571000058E2DD /* XCombatellegCombatCallforRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B3A1DF3280571000058E2DD /* XCombatellegCombatCallforRegard.m */; }; + 9B3C181A292CE4FA003AF543 /* XCombatellegCombatAdaptationRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B3C1819292CE4FA003AF543 /* XCombatellegCombatAdaptationRegard.m */; }; + 9B41D36E282649230048C588 /* YUMIWeekSatelliteRateConsumerMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B41D36D282649230048C588 /* YUMIWeekSatelliteRateConsumerMatrix.m */; }; + 9B42868E28C1AE2D009034D2 /* YUMIAchieveDeficitSheatheRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B42868D28C1AE2D009034D2 /* YUMIAchieveDeficitSheatheRegard.m */; }; + 9B42869228C1AED4009034D2 /* YUMIAchieveDeficitSheatheMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B42869128C1AED4009034D2 /* YUMIAchieveDeficitSheatheMatrix.m */; }; + 9B42869528C1E00A009034D2 /* YUMIDeficitSheatheConsequentMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B42869428C1E00A009034D2 /* YUMIDeficitSheatheConsequentMatrix.m */; }; + 9B42869828C1E06B009034D2 /* YUMIDeficitSheatheMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B42869728C1E06B009034D2 /* YUMIDeficitSheatheMatrix.m */; }; + 9B42869C28C1FD3D009034D2 /* YUMIUnfoildDeficitSheatheElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B42869B28C1FD3D009034D2 /* YUMIUnfoildDeficitSheatheElement.m */; }; + 9B4C5B86292F81FA00CEA41B /* YUMIInterlocutionStatementFanaticsParatiesMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B4C5B85292F81FA00CEA41B /* YUMIInterlocutionStatementFanaticsParatiesMatrix.m */; }; + 9B4D449328F15765002572D5 /* YUMIPresentFortunatePresentPingbackRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B4D449228F15765002572D5 /* YUMIPresentFortunatePresentPingbackRegard.m */; }; + 9B4D449628F15EE7002572D5 /* YUMIPresentWeekSatellitePingbackRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B4D449528F15EE7002572D5 /* YUMIPresentWeekSatellitePingbackRegard.m */; }; + 9B4E920028E57A620033419E /* YUMIPresentIntelligenceGenreRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B4E91FF28E57A620033419E /* YUMIPresentIntelligenceGenreRegard.m */; }; + 9B6B3AAB278C2EA7005551EC /* YUMIChamberMagnificentPrototypeUpwardsRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B6B3AAA278C2EA7005551EC /* YUMIChamberMagnificentPrototypeUpwardsRegard.m */; }; + 9B6E856A281A982A0041A321 /* YUMIChamberEncourageRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B6E8569281A982A0041A321 /* YUMIChamberEncourageRegard.m */; }; + 9B6E856E281AABAB0041A321 /* YUMIChamberEncourageMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B6E856D281AABAB0041A321 /* YUMIChamberEncourageMatrix.m */; }; + 9B6E8573281AB9B20041A321 /* YUMIChamberInsideEncourageElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B6E8572281AB9B20041A321 /* YUMIChamberInsideEncourageElement.m */; }; + 9B6E8577281ABECC0041A321 /* YUMIChamberInsideEncourageDispossessElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B6E8576281ABECC0041A321 /* YUMIChamberInsideEncourageDispossessElement.m */; }; + 9B734F73288A787000CBDAA9 /* YUMIManeAccountRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B734F72288A787000CBDAA9 /* YUMIManeAccountRegard.m */; }; + 9B734F76288A92FB00CBDAA9 /* YUMIManeFuntionProvisionMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B734F75288A92FB00CBDAA9 /* YUMIManeFuntionProvisionMatrix.m */; }; + 9B7B605B27BB53060070BB72 /* XCombatellegAudienceUpwardsLoudspeakerRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B7B605A27BB53060070BB72 /* XCombatellegAudienceUpwardsLoudspeakerRegard.m */; }; + 9B7B606227BB96E40070BB72 /* YUMIChamberKellegAbstractSolitaireRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B7B606127BB96E40070BB72 /* YUMIChamberKellegAbstractSolitaireRegard.m */; }; + 9B7B606627BBA0EE0070BB72 /* XCombatellegAttentDischargeAbstract.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B7B606527BBA0EE0070BB72 /* XCombatellegAttentDischargeAbstract.m */; }; + 9B7D804A2753783D003DAC0C /* InterlocutionRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B7D80492753783D003DAC0C /* InterlocutionRegardGovernancer.m */; }; + 9B7D804D27537950003DAC0C /* CommunicationElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B7D804C27537950003DAC0C /* CommunicationElement.m */; }; + 9B7D80502753AA9D003DAC0C /* UITableView+NIMScrollToBottom.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B7D804E2753AA9D003DAC0C /* UITableView+NIMScrollToBottom.m */; }; + 9B7D904D287BC5E20033A45E /* KellegChamberScrollRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B7D904C287BC5E20033A45E /* KellegChamberScrollRegard.m */; }; + 9B85B6D7279FDABA00A0A1AC /* YUMIConsumerSolitaireCommunicationSolitaireRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B85B6D6279FDABA00A0A1AC /* YUMIConsumerSolitaireCommunicationSolitaireRegard.m */; }; + 9B85B6DA279FDC5200A0A1AC /* YUMIConsumerSolitaireCommunicationAssembletionRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B85B6D9279FDC5200A0A1AC /* YUMIConsumerSolitaireCommunicationAssembletionRegardElement.m */; }; + 9B85F3532806AB9A006EDF51 /* XCombatellegCombatConsequentRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B85F3522806AB9A006EDF51 /* XCombatellegCombatConsequentRegard.m */; }; + 9B85F3562806DD8A006EDF51 /* XCombatellegCombatFinishRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B85F3552806DD8A006EDF51 /* XCombatellegCombatFinishRegard.m */; }; + 9B86D87A2817DD8400494FCD /* YUMIChamberImportHideTipRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B86D8792817DD8400494FCD /* YUMIChamberImportHideTipRegard.m */; }; + 9B86D88328192DC000494FCD /* YUMIChamberRateEntranceRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B86D88228192DC000494FCD /* YUMIChamberRateEntranceRegard.m */; }; + 9B86D886281942D200494FCD /* SocialMiecreoscoopeRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B86D885281942D200494FCD /* SocialMiecreoscoopeRegard.m */; }; + 9B87B3CD2926473D00085110 /* YUMIInterlocutionStatementIntelligenceAssistantElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B87B3CC2926473D00085110 /* YUMIInterlocutionStatementIntelligenceAssistantElement.m */; }; + 9B88E20C28C5EB8300D26FBA /* CommunicationSatisfactionDeficitSheatheRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B88E20B28C5EB8300D26FBA /* CommunicationSatisfactionDeficitSheatheRegard.m */; }; + 9B88E20F28C6305400D26FBA /* YUMIChamberHuntforReflectionRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B88E20E28C6305400D26FBA /* YUMIChamberHuntforReflectionRegardGovernancer.m */; }; + 9B8DE0E1289CF02900FB6EC2 /* YUMIPresentCompoundMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B8DE0E0289CF02900FB6EC2 /* YUMIPresentCompoundMatrix.m */; }; + 9B8DE0E4289CF7AA00FB6EC2 /* YUMIChamberPresentCompoundRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B8DE0E3289CF7AA00FB6EC2 /* YUMIChamberPresentCompoundRegard.m */; }; + 9B92A33C2797E38100AD168F /* YUMIManeIntelligenceProvisionTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B92A33B2797E38100AD168F /* YUMIManeIntelligenceProvisionTabulationRegardElement.m */; }; + 9B9BBF83288FBFB3004E2E74 /* YUMIStrangeConsumerChamberPresentRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = 9B9BBF82288FBFB3004E2E74 /* YUMIStrangeConsumerChamberPresentRegard.m */; }; + 9BA3B40B293DCDFD0071DF1C /* YUMIVersionRefurbishMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BA3B40A293DCDFD0071DF1C /* YUMIVersionRefurbishMatrix.m */; }; + 9BA3B40F293DD2F90071DF1C /* YUMIAscensionRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BA3B40E293DD2F90071DF1C /* YUMIAscensionRegard.m */; }; + 9BA812D228BF145700783EA7 /* ClientDeficitSheatheMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BA812D128BF145700783EA7 /* ClientDeficitSheatheMatrix.m */; }; + 9BA812D628BF52E100783EA7 /* YUMIChamberDischargeDeficitSheatheRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BA812D528BF52E100783EA7 /* YUMIChamberDischargeDeficitSheatheRegardGovernancer.m */; }; + 9BA812DD28BF6A7300783EA7 /* YUMIChamberDeficitSheatheExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BA812DC28BF6A7300783EA7 /* YUMIChamberDeficitSheatheExternalizer.m */; }; + 9BA812E028BF6ABB00783EA7 /* Api+RedPacket.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BA812DF28BF6ABB00783EA7 /* Api+RedPacket.m */; }; + 9BA812E428BF70A600783EA7 /* YUMIChamberDeficitSheathePwordRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BA812E328BF70A600783EA7 /* YUMIChamberDeficitSheathePwordRegard.m */; }; + 9BA8A47527C60D9F000365A3 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9BA8A47427C60D9F000365A3 /* AudioToolbox.framework */; }; + 9BA8A47727C60DF7000365A3 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9BA8A47627C60DF7000365A3 /* AVFoundation.framework */; }; + 9BAA5FED277A1BBE007453F3 /* YUMIPrivacyRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BAA5FEC277A1BBE007453F3 /* YUMIPrivacyRegardGovernancer.m */; }; + 9BAA5FF0277A23F4007453F3 /* YUMIPermissionsRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BAA5FEF277A23F4007453F3 /* YUMIPermissionsRegardGovernancer.m */; }; + 9BAC92EE28E6989400147DD8 /* YUMIChamberImportpriseDisportRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BAC92ED28E6989400147DD8 /* YUMIChamberImportpriseDisportRegard.m */; }; + 9BAC92F228E6A05600147DD8 /* YUMIChamberImportpriseDisportMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BAC92F128E6A05600147DD8 /* YUMIChamberImportpriseDisportMatrix.m */; }; + 9BAC92F528E6E63000147DD8 /* YUMIChamberInsideOperationElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BAC92F428E6E63000147DD8 /* YUMIChamberInsideOperationElement.m */; }; + 9BB89DC327FE7F3A00586A83 /* XCombatellegFanaticsRelationMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BB89DC227FE7F3A00586A83 /* XCombatellegFanaticsRelationMatrix.m */; }; + 9BB89DC627FEB9E100586A83 /* XCombatellegFanaticsmissionRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BB89DC527FEB9E100586A83 /* XCombatellegFanaticsmissionRegardGovernancer.m */; }; + 9BBC028E2786FA060007C24B /* MagnificentSolitaireMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BBC028D2786FA060007C24B /* MagnificentSolitaireMatrix.m */; }; + 9BBC02912786FC570007C24B /* YUMIManeMagnificentSolitaireTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BBC02902786FC570007C24B /* YUMIManeMagnificentSolitaireTabulationRegardElement.m */; }; + 9BC5C91C277C8A7B007C8719 /* YUMIReleaseWirelessRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BC5C91B277C8A7B007C8719 /* YUMIReleaseWirelessRegardGovernancer.m */; }; + 9BC5C91F277C902B007C8719 /* YUMIReleaseWirelessRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BC5C91E277C902B007C8719 /* YUMIReleaseWirelessRegard.m */; }; + 9BC8C83028090C9200C24F85 /* YUMIChamberKellegRateOriflammeRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BC8C82F28090C9200C24F85 /* YUMIChamberKellegRateOriflammeRegard.m */; }; + 9BC9DAEF27E33B3F009EE409 /* YUMIChamberPresentBrightnessAnatomiser.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BC9DAEE27E33B3F009EE409 /* YUMIChamberPresentBrightnessAnatomiser.m */; }; + 9BCB99A028F571B500466D64 /* YUMIManeAssembleParatiesChamberRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BCB999F28F571B500466D64 /* YUMIManeAssembleParatiesChamberRegardGovernancer.m */; }; + 9BCB99A628F582EC00466D64 /* YUMIManeAssembleChamberCompileElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BCB99A528F582EC00466D64 /* YUMIManeAssembleChamberCompileElement.m */; }; + 9BCD02C72796C02800F396AA /* MiecreoscoopeMagnificentWaveRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BCD02C62796C02800F396AA /* MiecreoscoopeMagnificentWaveRegard.m */; }; + 9BCE6144277D657600CC0358 /* YUMIReleaseWirelessTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BCE6143277D657600CC0358 /* YUMIReleaseWirelessTabulationRegardElement.m */; }; + 9BCFB828289BAC7D0093D863 /* YUMIManeIntelligenceFunctionProvisionProgramming.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BCFB827289BAC7D0093D863 /* YUMIManeIntelligenceFunctionProvisionProgramming.m */; }; + 9BD2ECCE288F829600F5CD9A /* YUMIManeTerminalImpressionRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BD2ECCD288F829600F5CD9A /* YUMIManeTerminalImpressionRegardGovernancer.m */; }; + 9BD2ECD2288F833B00F5CD9A /* YUMIManeTerminalImpressionMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BD2ECD1288F833B00F5CD9A /* YUMIManeTerminalImpressionMatrix.m */; }; + 9BD2ECD5288F838200F5CD9A /* YUMIManeTerminalImpressionExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BD2ECD4288F838200F5CD9A /* YUMIManeTerminalImpressionExternalizer.m */; }; + 9BD2ECDA288F867000F5CD9A /* YUMIManeTerminalImpressionTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BD2ECD9288F867000F5CD9A /* YUMIManeTerminalImpressionTabulationRegardElement.m */; }; + 9BD63FAB277EE885006EB744 /* Api+RoomRadio.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BD63FAA277EE885006EB744 /* Api+RoomRadio.m */; }; + 9BD63FAE277EE97A006EB744 /* YUMIReleaseWirelessExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BD63FAD277EE97A006EB744 /* YUMIReleaseWirelessExternalizer.m */; }; + 9BD63FB4277EF1B3006EB744 /* YUMIReleaseWirelessMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BD63FB3277EF1B3006EB744 /* YUMIReleaseWirelessMatrix.m */; }; + 9BD798B129262434003E03E6 /* YUMIInterlocutionStatementIntelligenceRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BD798B029262434003E03E6 /* YUMIInterlocutionStatementIntelligenceRegard.m */; }; + 9BD798B4292632FE003E03E6 /* YUMIInterlocutionStatementIntelligenceProvisionRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BD798B3292632FE003E03E6 /* YUMIInterlocutionStatementIntelligenceProvisionRegard.m */; }; + 9BD798B72926362F003E03E6 /* YUMIInterlocutionStatementIntelligenceProvision.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BD798B62926362F003E03E6 /* YUMIInterlocutionStatementIntelligenceProvision.m */; }; + 9BD8D4E328911E9900AE03FF /* YUMIManeAssembleChamberStatementRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BD8D4E228911E9900AE03FF /* YUMIManeAssembleChamberStatementRegardGovernancer.m */; }; + 9BD8D4E628911F7700AE03FF /* YUMIManeAssembleChamberStatementExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BD8D4E528911F7700AE03FF /* YUMIManeAssembleChamberStatementExternalizer.m */; }; + 9BD9A17927A0EC57004186FE /* YUMIManeVacationerExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BD9A17827A0EC57004186FE /* YUMIManeVacationerExternalizer.m */; }; + 9BD9A17C27A0EE24004186FE /* YUMIManeVacationerRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BD9A17B27A0EE24004186FE /* YUMIManeVacationerRegardGovernancer.m */; }; + 9BD9A18027A0EFC7004186FE /* YUMIManeVacationerTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BD9A17F27A0EFC7004186FE /* YUMIManeVacationerTabulationRegardElement.m */; }; + 9BD9A18427A0F128004186FE /* YUMIManeVacationerProvisionMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BD9A18327A0F128004186FE /* YUMIManeVacationerProvisionMatrix.m */; }; + 9BD9A18727A120FD004186FE /* YUMIManeVacationerUnReadMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BD9A18627A120FD004186FE /* YUMIManeVacationerUnReadMatrix.m */; }; + 9BDA3E7727FD41C200517FE6 /* XCombatellegFanaticsSquadRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BDA3E7627FD41C200517FE6 /* XCombatellegFanaticsSquadRegardGovernancer.m */; }; + 9BDA3E7A27FD43EF00517FE6 /* XCombatellegFanaticsSquadEntranceRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BDA3E7927FD43EF00517FE6 /* XCombatellegFanaticsSquadEntranceRegard.m */; }; + 9BDA3E7D27FD47AB00517FE6 /* XCombatellegFanaticsSquadExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BDA3E7C27FD47AB00517FE6 /* XCombatellegFanaticsSquadExternalizer.m */; }; + 9BE01ACE28925F7D00B50299 /* YUMIManeStrangeConsumerReindictRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BE01ACD28925F7D00B50299 /* YUMIManeStrangeConsumerReindictRegard.m */; }; + 9BE01AD128927AC000B50299 /* YUMIPretendUpwardsProcurementRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BE01AD028927AC000B50299 /* YUMIPretendUpwardsProcurementRegardGovernancer.m */; }; + 9BE01AD428927E9C00B50299 /* YUMIPretendUpwardsProcurementStatementRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BE01AD328927E9C00B50299 /* YUMIPretendUpwardsProcurementStatementRegardGovernancer.m */; }; + 9BE01ADA289296B500B50299 /* YUMIPretendUpwardsProcurementExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BE01AD9289296B500B50299 /* YUMIPretendUpwardsProcurementExternalizer.m */; }; + 9BE01ADE2892A66D00B50299 /* PretendUpwardsProcurementMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BE01ADD2892A66D00B50299 /* PretendUpwardsProcurementMatrix.m */; }; + 9BE01AE128937DBC00B50299 /* YUMIPretendUpwardsProcurementSolitaireRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BE01AE028937DBC00B50299 /* YUMIPretendUpwardsProcurementSolitaireRegardGovernancer.m */; }; + 9BE01AE428937EDE00B50299 /* YUMIPretendUpwardsProcurementAssembletionRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BE01AE328937EDE00B50299 /* YUMIPretendUpwardsProcurementAssembletionRegardElement.m */; }; + 9BE01AE728938AB600B50299 /* YUMIPretendUpwardsProcurementSolitaireTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BE01AE628938AB600B50299 /* YUMIPretendUpwardsProcurementSolitaireTabulationRegardElement.m */; }; + 9BE01AEA2893CB4400B50299 /* YUMIPretendHuntforRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BE01AE92893CB4400B50299 /* YUMIPretendHuntforRegardGovernancer.m */; }; + 9BE01AED2893D0DF00B50299 /* YUMIPretendProcurementHuntforTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BE01AEC2893D0DF00B50299 /* YUMIPretendProcurementHuntforTabulationRegardElement.m */; }; + 9BE01AF02893E31700B50299 /* StrangeConsumerReindictMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BE01AEF2893E31700B50299 /* StrangeConsumerReindictMatrix.m */; }; + 9BE01AF72893E7F500B50299 /* YUMIStrangeConsumerReindictAssembletionRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BE01AF62893E7F500B50299 /* YUMIStrangeConsumerReindictAssembletionRegardElement.m */; }; + 9BE2FA90288010D300EF3D83 /* KellegChamberSrollTipRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BE2FA8F288010D300EF3D83 /* KellegChamberSrollTipRegard.m */; }; + 9BE570BC28F65B7200D491A5 /* YUMIManeAssembleChamberElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BE570BB28F65B7200D491A5 /* YUMIManeAssembleChamberElement.m */; }; + 9BE9F0F927FED12D00667200 /* XCombatellegFanaticsPrivilegeMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BE9F0F827FED12D00667200 /* XCombatellegFanaticsPrivilegeMatrix.m */; }; + 9BE9F0FC27FED2E100667200 /* XCombatellegFanaticsJoinMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BE9F0FB27FED2E100667200 /* XCombatellegFanaticsJoinMatrix.m */; }; + 9BE9F0FF27FED76500667200 /* XCombatellegFanaticsmissionMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BE9F0FE27FED76500667200 /* XCombatellegFanaticsmissionMatrix.m */; }; + 9BE9F10227FEE5C200667200 /* XCombatellegFanaticsmissionSpecificMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BE9F10127FEE5C200667200 /* XCombatellegFanaticsmissionSpecificMatrix.m */; }; + 9BE9F10527FF04CF00667200 /* XCombatellegFanaticsmissionTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BE9F10427FF04CF00667200 /* XCombatellegFanaticsmissionTabulationRegardElement.m */; }; + 9BF4BEBC28D4182E009CF6C2 /* YUMIUnfoildDeficitSheatheMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BF4BEBB28D4182E009CF6C2 /* YUMIUnfoildDeficitSheatheMatrix.m */; }; + 9BF5192628801D4700B6BE92 /* YUMIThroughoutChamberCombatComputationDownRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BF5192528801D4700B6BE92 /* YUMIThroughoutChamberCombatComputationDownRegard.m */; }; + 9BFB101F2897CC4300B3985E /* XCombatellegSolitaireRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BFB101E2897CC4300B3985E /* XCombatellegSolitaireRegard.m */; }; + 9BFB10222897D68400B3985E /* YUMITabKellegSolitaireMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BFB10212897D68400B3985E /* YUMITabKellegSolitaireMatrix.m */; }; + 9BFE0D8E2898C8C300F53C24 /* XCombatellegSolitaireCommunicationAssembletionRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BFE0D8D2898C8C300F53C24 /* XCombatellegSolitaireCommunicationAssembletionRegardElement.m */; }; + 9BFE0D922899042600F53C24 /* YUMImissionCompleteTipRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BFE0D912899042600F53C24 /* YUMImissionCompleteTipRegard.m */; }; + 9BFE992E288142FD009DA429 /* ChamberClassifyMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = 9BFE992D288142FD009DA429 /* ChamberClassifyMatrix.m */; }; + E801274027E323C800BAC3F2 /* YUMIChamberCombatRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E801273F27E323C800BAC3F2 /* YUMIChamberCombatRegardGovernancer.m */; }; + E801274327E323E500BAC3F2 /* YUMIChamberCombatExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = E801274227E323E500BAC3F2 /* YUMIChamberCombatExternalizer.m */; }; + E801274727E3241700BAC3F2 /* Api+RoomPK.m in Sources */ = {isa = PBXBuildFile; fileRef = E801274627E3241700BAC3F2 /* Api+RoomPK.m */; }; + E801274B27E327DA00BAC3F2 /* YUMIChamberCombatGenreTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E801274A27E327DA00BAC3F2 /* YUMIChamberCombatGenreTabulationRegardElement.m */; }; + E801274E27E3280000BAC3F2 /* YUMIChamberCombatVoteTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E801274D27E3280000BAC3F2 /* YUMIChamberCombatVoteTabulationRegardElement.m */; }; + E801275127E3281100BAC3F2 /* YUMIChamberCombatIntratemporalTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E801275027E3281100BAC3F2 /* YUMIChamberCombatIntratemporalTabulationRegardElement.m */; }; + E801275527E3326000BAC3F2 /* YUMIChamberCombatConsumerRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E801275427E3326000BAC3F2 /* YUMIChamberCombatConsumerRegard.m */; }; + E801275827E347FD00BAC3F2 /* ChamberCombatReflectionMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E801275727E347FD00BAC3F2 /* ChamberCombatReflectionMatrix.m */; }; + E80487652717DDD9008595F2 /* YUMIChamberParrotProvision.m in Sources */ = {isa = PBXBuildFile; fileRef = E80487642717DDD9008595F2 /* YUMIChamberParrotProvision.m */; }; + E8098CA7282E00920090B9F0 /* Api+Monents.m in Sources */ = {isa = PBXBuildFile; fileRef = E8098CA6282E00920090B9F0 /* Api+Monents.m */; }; + E8098CAA282E03B40090B9F0 /* YUMISeparationsEncourageExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = E8098CA9282E03B40090B9F0 /* YUMISeparationsEncourageExternalizer.m */; }; + E8098CAE282E07C00090B9F0 /* YUMISeparationsDispossessTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E8098CAD282E07C00090B9F0 /* YUMISeparationsDispossessTabulationRegardElement.m */; }; + E8098CB1282E86EF0090B9F0 /* YUMISeparationsSatisfactionRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E8098CB0282E86EF0090B9F0 /* YUMISeparationsSatisfactionRegard.m */; }; + E8098CB4282E97550090B9F0 /* YUMIManeBlackStatementExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = E8098CB3282E97550090B9F0 /* YUMIManeBlackStatementExternalizer.m */; }; + E80A086227F2AC190027B30C /* ChamberCombatSpecificAbstractMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E80A086127F2AC190027B30C /* ChamberCombatSpecificAbstractMatrix.m */; }; + E80A086527F318620027B30C /* YUMIChamberCombatDisportingRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E80A086427F318620027B30C /* YUMIChamberCombatDisportingRegard.m */; }; + E80A63DC28B86B9700690914 /* CommunicationSatisfactionSeparationsAutoRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E80A63DB28B86B9700690914 /* CommunicationSatisfactionSeparationsAutoRegard.m */; }; + E80B0712280D0A6700A79F63 /* FanaticsAbstractMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E80B0711280D0A6700A79F63 /* FanaticsAbstractMatrix.m */; }; + E80B0734280D740600A79F63 /* CommunicationSatisfactionUnionRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E80B0733280D740600A79F63 /* CommunicationSatisfactionUnionRegard.m */; }; + E80CBDEA27D0C53F001E1EC2 /* YUMIWeakIntratemporalr.m in Sources */ = {isa = PBXBuildFile; fileRef = E80CBDE927D0C53F001E1EC2 /* YUMIWeakIntratemporalr.m */; }; + E80DE4072775665000BE5BCB /* YUMIThresholdReindictAssembletionRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E80DE4062775665000BE5BCB /* YUMIThresholdReindictAssembletionRegardElement.m */; }; + E80DE40A277568D300BE5BCB /* ThemeColor+FirstRecharge.m in Sources */ = {isa = PBXBuildFile; fileRef = E80DE409277568D300BE5BCB /* ThemeColor+FirstRecharge.m */; }; + E80DE40D2775ABA500BE5BCB /* YUMIThresholdReindictFlowProgramming.m in Sources */ = {isa = PBXBuildFile; fileRef = E80DE40C2775ABA500BE5BCB /* YUMIThresholdReindictFlowProgramming.m */; }; + E80DE4102775C34E00BE5BCB /* YUMIThresholdReindictSuccessRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E80DE40F2775C34E00BE5BCB /* YUMIThresholdReindictSuccessRegard.m */; }; + E80E09972A40B5DD00CD2BE7 /* YUMIConfectioneryTimberExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = E80E09712A40B5DD00CD2BE7 /* YUMIConfectioneryTimberExternalizer.m */; }; + E80E09982A40B5DD00CD2BE7 /* ConfectioneryTimberConsequentMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E80E09762A40B5DD00CD2BE7 /* ConfectioneryTimberConsequentMatrix.m */; }; + E80E09992A40B5DD00CD2BE7 /* ConfectioneryTimberReflectionMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E80E09772A40B5DD00CD2BE7 /* ConfectioneryTimberReflectionMatrix.m */; }; + E80E099A2A40B5DD00CD2BE7 /* YUMIConfectioneryTimberBrightnessMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E80E097A2A40B5DD00CD2BE7 /* YUMIConfectioneryTimberBrightnessMatrix.m */; }; + E80E099B2A40B5DD00CD2BE7 /* ConfectioneryTimberAbstractMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E80E097D2A40B5DD00CD2BE7 /* ConfectioneryTimberAbstractMatrix.m */; }; + E80E099C2A40B5DD00CD2BE7 /* YUMIConfectioneryTimberRateRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E80E097F2A40B5DD00CD2BE7 /* YUMIConfectioneryTimberRateRegard.m */; }; + E80E099D2A40B5DD00CD2BE7 /* YUMIConfectioneryTimberFurthaerRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E80E09802A40B5DD00CD2BE7 /* YUMIConfectioneryTimberFurthaerRegard.m */; }; + E80E099E2A40B5DD00CD2BE7 /* YUMIConfectioneryTimberPresentRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E80E09832A40B5DD00CD2BE7 /* YUMIConfectioneryTimberPresentRegard.m */; }; + E80E099F2A40B5DD00CD2BE7 /* YUMIConfectioneryTimberDispossessableRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E80E09872A40B5DD00CD2BE7 /* YUMIConfectioneryTimberDispossessableRegardElement.m */; }; + E80E09A02A40B5DD00CD2BE7 /* YUMIConfectioneryTimberFurthaerPreadominantElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E80E09882A40B5DD00CD2BE7 /* YUMIConfectioneryTimberFurthaerPreadominantElement.m */; }; + E80E09A12A40B5DD00CD2BE7 /* YUMIConfectioneryTimberRateTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E80E09892A40B5DD00CD2BE7 /* YUMIConfectioneryTimberRateTabulationRegardElement.m */; }; + E80E09A22A40B5DD00CD2BE7 /* YUMIConfectioneryTimberRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E80E098E2A40B5DD00CD2BE7 /* YUMIConfectioneryTimberRegardGovernancer.m */; }; + E80E09A32A40B5DD00CD2BE7 /* YUMIConfectioneryTimberInsufficientBalanceRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E80E09912A40B5DD00CD2BE7 /* YUMIConfectioneryTimberInsufficientBalanceRegard.m */; }; + E80E09A42A40B5DD00CD2BE7 /* YUMIConfectioneryRateAccommodatedRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E80E09922A40B5DD00CD2BE7 /* YUMIConfectioneryRateAccommodatedRegard.m */; }; + E80E09A52A40B5DD00CD2BE7 /* YUMIChamberHalfTissueRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E80E09932A40B5DD00CD2BE7 /* YUMIChamberHalfTissueRegard.m */; }; + E80E09A62A40B5DD00CD2BE7 /* Api+CandyTree.m in Sources */ = {isa = PBXBuildFile; fileRef = E80E09952A40B5DD00CD2BE7 /* Api+CandyTree.m */; }; + E80E09A92A40B70100CD2BE7 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = E80E09AB2A40B70100CD2BE7 /* Localizable.strings */; }; + E80E09AE2A41336500CD2BE7 /* YUMITissueRegardNevRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E80E09AC2A41336500CD2BE7 /* YUMITissueRegardNevRegard.m */; }; + E80E09B02A41573700CD2BE7 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = E80E09AF2A41573700CD2BE7 /* GoogleService-Info.plist */; }; + E80E09B32A42071D00CD2BE7 /* YUMIChamberSatelliteKitchenOriflammeRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E80E09B22A42071D00CD2BE7 /* YUMIChamberSatelliteKitchenOriflammeRegard.m */; }; + E80E09B62A42078F00CD2BE7 /* YUMIChamberSatelliteKitchenMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E80E09B52A42078F00CD2BE7 /* YUMIChamberSatelliteKitchenMatrix.m */; }; + E80E2377299A47F60013FD40 /* AESUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = E80E2376299A47F60013FD40 /* AESUtils.m */; }; + E80E900C27E0358900434B90 /* YUMIChamberMotifPrecautiousRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E80E900B27E0358900434B90 /* YUMIChamberMotifPrecautiousRegard.m */; }; + E80EC80A28ACD84000D133C5 /* MHTSpiritDirectorateRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E80EC74C28ACD84000D133C5 /* MHTSpiritDirectorateRegard.m */; }; + E80EC80B28ACD84000D133C5 /* MHTIntrojectionObstacleRegardDispositionuration.m in Sources */ = {isa = PBXBuildFile; fileRef = E80EC74E28ACD84000D133C5 /* MHTIntrojectionObstacleRegardDispositionuration.m */; }; + E80EC80C28ACD84000D133C5 /* UITextView+MHTSpirit.m in Sources */ = {isa = PBXBuildFile; fileRef = E80EC74F28ACD84000D133C5 /* UITextView+MHTSpirit.m */; }; + E80EC80D28ACD84000D133C5 /* MHTIntrojectionObstacleRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E80EC75028ACD84000D133C5 /* MHTIntrojectionObstacleRegard.m */; }; + E80EC80E28ACD84000D133C5 /* MHTKeyboardBaseExecutive.m in Sources */ = {isa = PBXBuildFile; fileRef = E80EC75128ACD84000D133C5 /* MHTKeyboardBaseExecutive.m */; }; + E80EC80F28ACD84000D133C5 /* MHTSpirit.m in Sources */ = {isa = PBXBuildFile; fileRef = E80EC75228ACD84000D133C5 /* MHTSpirit.m */; }; + E80EC81028ACD84000D133C5 /* MHTExtendDirectorateRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E80EC75528ACD84000D133C5 /* MHTExtendDirectorateRegard.m */; }; + E80EC81128ACD84000D133C5 /* MHTSpiritFacilitater.m in Sources */ = {isa = PBXBuildFile; fileRef = E80EC75828ACD84000D133C5 /* MHTSpiritFacilitater.m */; }; + E80EC81228ACD84000D133C5 /* MHTSpiritAttachment.m in Sources */ = {isa = PBXBuildFile; fileRef = E80EC75D28ACD84000D133C5 /* MHTSpiritAttachment.m */; }; + E80EC81328ACD84000D133C5 /* MHTKeyboardExecutive.m in Sources */ = {isa = PBXBuildFile; fileRef = E80EC75E28ACD84000D133C5 /* MHTKeyboardExecutive.m */; }; + E80EC81428ACD84000D133C5 /* emoji_138@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC76228ACD84000D133C5 /* emoji_138@2x.png */; }; + E80EC81528ACD84000D133C5 /* emoji_145@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC76328ACD84000D133C5 /* emoji_145@2x.png */; }; + E80EC81628ACD84000D133C5 /* emoji_126@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC76428ACD84000D133C5 /* emoji_126@2x.png */; }; + E80EC81728ACD84000D133C5 /* emoji_134@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC76528ACD84000D133C5 /* emoji_134@2x.png */; }; + E80EC81828ACD84000D133C5 /* emoji_149@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC76628ACD84000D133C5 /* emoji_149@2x.png */; }; + E80EC81928ACD84000D133C5 /* emoji_80@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC76728ACD84000D133C5 /* emoji_80@2x.png */; }; + E80EC81A28ACD84000D133C5 /* emoji_161@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC76828ACD84000D133C5 /* emoji_161@2x.png */; }; + E80EC81B28ACD84000D133C5 /* emoji_102@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC76928ACD84000D133C5 /* emoji_102@2x.png */; }; + E80EC81C28ACD84000D133C5 /* emoji_92@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC76A28ACD84000D133C5 /* emoji_92@2x.png */; }; + E80EC81D28ACD84000D133C5 /* emoji_110@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC76B28ACD84000D133C5 /* emoji_110@2x.png */; }; + E80EC81E28ACD84000D133C5 /* emoji_26@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC76C28ACD84000D133C5 /* emoji_26@2x.png */; }; + E80EC81F28ACD84000D133C5 /* emoji_45@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC76D28ACD84000D133C5 /* emoji_45@2x.png */; }; + E80EC82028ACD84000D133C5 /* emoji_38@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC76E28ACD84000D133C5 /* emoji_38@2x.png */; }; + E80EC82128ACD84000D133C5 /* emoji_49@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC76F28ACD84000D133C5 /* emoji_49@2x.png */; }; + E80EC82228ACD84000D133C5 /* emoji_34@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC77028ACD84000D133C5 /* emoji_34@2x.png */; }; + E80EC82328ACD84000D133C5 /* emoji_57@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC77128ACD84000D133C5 /* emoji_57@2x.png */; }; + E80EC82428ACD84000D133C5 /* emoji_02@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC77228ACD84000D133C5 /* emoji_02@2x.png */; }; + E80EC82528ACD84000D133C5 /* emoji_61@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC77328ACD84000D133C5 /* emoji_61@2x.png */; }; + E80EC82628ACD84000D133C5 /* emoji_10@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC77428ACD84000D133C5 /* emoji_10@2x.png */; }; + E80EC82728ACD84000D133C5 /* emoji_73@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC77528ACD84000D133C5 /* emoji_73@2x.png */; }; + E80EC82828ACD84000D133C5 /* emoji_55@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC77628ACD84000D133C5 /* emoji_55@2x.png */; }; + E80EC82928ACD84000D133C5 /* emoji_28@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC77728ACD84000D133C5 /* emoji_28@2x.png */; }; + E80EC82A28ACD84000D133C5 /* emoji_36@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC77828ACD84000D133C5 /* emoji_36@2x.png */; }; + E80EC82B28ACD84000D133C5 /* emoji_47@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC77928ACD84000D133C5 /* emoji_47@2x.png */; }; + E80EC82C28ACD84000D133C5 /* emoji_59@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC77A28ACD84000D133C5 /* emoji_59@2x.png */; }; + E80EC82D28ACD84000D133C5 /* emoji_24@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC77B28ACD84000D133C5 /* emoji_24@2x.png */; }; + E80EC82E28ACD84000D133C5 /* emoji.xml in Resources */ = {isa = PBXBuildFile; fileRef = E80EC77C28ACD84000D133C5 /* emoji.xml */; }; + E80EC82F28ACD84000D133C5 /* emoji_71@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC77D28ACD84000D133C5 /* emoji_71@2x.png */; }; + E80EC83028ACD84000D133C5 /* emoji_12@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC77E28ACD84000D133C5 /* emoji_12@2x.png */; }; + E80EC83128ACD84000D133C5 /* emoji_63@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC77F28ACD84000D133C5 /* emoji_63@2x.png */; }; + E80EC83228ACD84000D133C5 /* emoji_00@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC78028ACD84000D133C5 /* emoji_00@2x.png */; }; + E80EC83328ACD84000D133C5 /* emoji_136@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC78128ACD84000D133C5 /* emoji_136@2x.png */; }; + E80EC83428ACD84000D133C5 /* emoji_128@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC78228ACD84000D133C5 /* emoji_128@2x.png */; }; + E80EC83528ACD84000D133C5 /* emoji_124@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC78328ACD84000D133C5 /* emoji_124@2x.png */; }; + E80EC83628ACD84000D133C5 /* emoji_147@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC78428ACD84000D133C5 /* emoji_147@2x.png */; }; + E80EC83728ACD84000D133C5 /* emoji_112@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC78528ACD84000D133C5 /* emoji_112@2x.png */; }; + E80EC83828ACD84000D133C5 /* emoji_90@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC78628ACD84000D133C5 /* emoji_90@2x.png */; }; + E80EC83928ACD84000D133C5 /* emoji_100@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC78728ACD84000D133C5 /* emoji_100@2x.png */; }; + E80EC83A28ACD84000D133C5 /* emoji_82@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC78828ACD84000D133C5 /* emoji_82@2x.png */; }; + E80EC83B28ACD84000D133C5 /* emoji_163@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC78928ACD84000D133C5 /* emoji_163@2x.png */; }; + E80EC83C28ACD84000D133C5 /* emoji_67@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC78A28ACD84000D133C5 /* emoji_67@2x.png */; }; + E80EC83D28ACD84000D133C5 /* emoji_04@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC78B28ACD84000D133C5 /* emoji_04@2x.png */; }; + E80EC83E28ACD84000D133C5 /* emoji_79@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC78C28ACD84000D133C5 /* emoji_79@2x.png */; }; + E80EC83F28ACD84000D133C5 /* emoji_08@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC78D28ACD84000D133C5 /* emoji_08@2x.png */; }; + E80EC84028ACD84000D133C5 /* emoji_75@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC78E28ACD84000D133C5 /* emoji_75@2x.png */; }; + E80EC84128ACD84000D133C5 /* emoji_16@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC78F28ACD84000D133C5 /* emoji_16@2x.png */; }; + E80EC84228ACD84000D133C5 /* emoji_43@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC79028ACD84000D133C5 /* emoji_43@2x.png */; }; + E80EC84328ACD84000D133C5 /* emoji_20@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC79128ACD84000D133C5 /* emoji_20@2x.png */; }; + E80EC84428ACD84000D133C5 /* emoji_51@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC79228ACD84000D133C5 /* emoji_51@2x.png */; }; + E80EC84528ACD84000D133C5 /* emoji_32@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC79328ACD84000D133C5 /* emoji_32@2x.png */; }; + E80EC84628ACD84000D133C5 /* emoji_98@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC79428ACD84000D133C5 /* emoji_98@2x.png */; }; + E80EC84728ACD84000D133C5 /* emoji_104@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC79528ACD84000D133C5 /* emoji_104@2x.png */; }; + E80EC84828ACD84000D133C5 /* emoji_86@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC79628ACD84000D133C5 /* emoji_86@2x.png */; }; + E80EC84928ACD84000D133C5 /* emoji_116@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC79728ACD84000D133C5 /* emoji_116@2x.png */; }; + E80EC84A28ACD84000D133C5 /* emoji_94@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC79828ACD84000D133C5 /* emoji_94@2x.png */; }; + E80EC84B28ACD84000D133C5 /* emoji_108@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC79928ACD84000D133C5 /* emoji_108@2x.png */; }; + E80EC84C28ACD84000D133C5 /* emoji_120@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC79A28ACD84000D133C5 /* emoji_120@2x.png */; }; + E80EC84D28ACD84000D133C5 /* emoji_143@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC79B28ACD84000D133C5 /* emoji_143@2x.png */; }; + E80EC84E28ACD84000D133C5 /* emoji_132@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC79C28ACD84000D133C5 /* emoji_132@2x.png */; }; + E80EC84F28ACD84000D133C5 /* emoji_151@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC79D28ACD84000D133C5 /* emoji_151@2x.png */; }; + E80EC85028ACD84000D133C5 /* emoji_96@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC79E28ACD84000D133C5 /* emoji_96@2x.png */; }; + E80EC85128ACD84000D133C5 /* emoji_88@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC79F28ACD84000D133C5 /* emoji_88@2x.png */; }; + E80EC85228ACD84000D133C5 /* emoji_114@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7A028ACD84000D133C5 /* emoji_114@2x.png */; }; + E80EC85328ACD84000D133C5 /* emoji_84@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7A128ACD84000D133C5 /* emoji_84@2x.png */; }; + E80EC85428ACD84000D133C5 /* emoji_165@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7A228ACD84000D133C5 /* emoji_165@2x.png */; }; + E80EC85528ACD84000D133C5 /* emoji_118@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7A328ACD84000D133C5 /* emoji_118@2x.png */; }; + E80EC85628ACD84000D133C5 /* emoji_106@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7A428ACD84000D133C5 /* emoji_106@2x.png */; }; + E80EC85728ACD84000D133C5 /* emoji_130@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7A528ACD84000D133C5 /* emoji_130@2x.png */; }; + E80EC85828ACD84000D133C5 /* emoji_141@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7A628ACD84000D133C5 /* emoji_141@2x.png */; }; + E80EC85928ACD84000D133C5 /* emoji_122@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7A728ACD84000D133C5 /* emoji_122@2x.png */; }; + E80EC85A28ACD84000D133C5 /* emoji_14@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7A828ACD84000D133C5 /* emoji_14@2x.png */; }; + E80EC85B28ACD84000D133C5 /* emoji_69@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7A928ACD84000D133C5 /* emoji_69@2x.png */; }; + E80EC85C28ACD84000D133C5 /* emoji_77@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7AA28ACD84000D133C5 /* emoji_77@2x.png */; }; + E80EC85D28ACD84000D133C5 /* emoji_06@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7AB28ACD84000D133C5 /* emoji_06@2x.png */; }; + E80EC85E28ACD84000D133C5 /* emoji_18@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7AC28ACD84000D133C5 /* emoji_18@2x.png */; }; + E80EC85F28ACD84000D133C5 /* emoji_65@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7AD28ACD84000D133C5 /* emoji_65@2x.png */; }; + E80EC86028ACD84000D133C5 /* emoji_30@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7AE28ACD84000D133C5 /* emoji_30@2x.png */; }; + E80EC86128ACD84000D133C5 /* emoji_53@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7AF28ACD84000D133C5 /* emoji_53@2x.png */; }; + E80EC86228ACD84000D133C5 /* emoji_22@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7B028ACD84000D133C5 /* emoji_22@2x.png */; }; + E80EC86328ACD84000D133C5 /* emoji_41@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7B128ACD84000D133C5 /* emoji_41@2x.png */; }; + E80EC86428ACD84000D133C5 /* emoji_60@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7B228ACD84000D133C5 /* emoji_60@2x.png */; }; + E80EC86528ACD84000D133C5 /* emoji_03@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7B328ACD84000D133C5 /* emoji_03@2x.png */; }; + E80EC86628ACD84000D133C5 /* emoji_72@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7B428ACD84000D133C5 /* emoji_72@2x.png */; }; + E80EC86728ACD84000D133C5 /* emoji_11@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7B528ACD84000D133C5 /* emoji_11@2x.png */; }; + E80EC86828ACD84000D133C5 /* emoji_39@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7B628ACD84000D133C5 /* emoji_39@2x.png */; }; + E80EC86928ACD84000D133C5 /* emoji_44@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7B728ACD84000D133C5 /* emoji_44@2x.png */; }; + E80EC86A28ACD84000D133C5 /* emoji_27@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7B828ACD84000D133C5 /* emoji_27@2x.png */; }; + E80EC86B28ACD84000D133C5 /* emoji_200@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7B928ACD84000D133C5 /* emoji_200@2x.png */; }; + E80EC86C28ACD84000D133C5 /* emoji_56@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7BA28ACD84000D133C5 /* emoji_56@2x.png */; }; + E80EC86D28ACD84000D133C5 /* emoji_35@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7BB28ACD84000D133C5 /* emoji_35@2x.png */; }; + E80EC86E28ACD84000D133C5 /* emoji_48@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7BC28ACD84000D133C5 /* emoji_48@2x.png */; }; + E80EC86F28ACD84000D133C5 /* emoji_103@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7BD28ACD84000D133C5 /* emoji_103@2x.png */; }; + E80EC87028ACD84000D133C5 /* emoji_81@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7BE28ACD84000D133C5 /* emoji_81@2x.png */; }; + E80EC87128ACD84000D133C5 /* emoji_160@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7BF28ACD84000D133C5 /* emoji_160@2x.png */; }; + E80EC87228ACD84000D133C5 /* emoji_111@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7C028ACD84000D133C5 /* emoji_111@2x.png */; }; + E80EC87328ACD84000D133C5 /* emoji_93@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7C128ACD84000D133C5 /* emoji_93@2x.png */; }; + E80EC87428ACD84000D133C5 /* emoji_127@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7C228ACD84000D133C5 /* emoji_127@2x.png */; }; + E80EC87528ACD84000D133C5 /* emoji_144@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7C328ACD84000D133C5 /* emoji_144@2x.png */; }; + E80EC87628ACD84000D133C5 /* emoji_139@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7C428ACD84000D133C5 /* emoji_139@2x.png */; }; + E80EC87728ACD84000D133C5 /* emoji_148@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7C528ACD84000D133C5 /* emoji_148@2x.png */; }; + E80EC87828ACD84000D133C5 /* emoji_135@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7C628ACD84000D133C5 /* emoji_135@2x.png */; }; + E80EC87928ACD84000D133C5 /* emoji_91@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7C728ACD84000D133C5 /* emoji_91@2x.png */; }; + E80EC87A28ACD84000D133C5 /* emoji_113@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7C828ACD84000D133C5 /* emoji_113@2x.png */; }; + E80EC87B28ACD84000D133C5 /* emoji_83@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7C928ACD84000D133C5 /* emoji_83@2x.png */; }; + E80EC87C28ACD84000D133C5 /* emoji_162@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7CA28ACD84000D133C5 /* emoji_162@2x.png */; }; + E80EC87D28ACD84000D133C5 /* emoji_101@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7CB28ACD84000D133C5 /* emoji_101@2x.png */; }; + E80EC87E28ACD84000D133C5 /* emoji_129@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7CC28ACD84000D133C5 /* emoji_129@2x.png */; }; + E80EC87F28ACD84000D133C5 /* emoji_137@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7CD28ACD84000D133C5 /* emoji_137@2x.png */; }; + E80EC88028ACD84000D133C5 /* emoji_146@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7CE28ACD84000D133C5 /* emoji_146@2x.png */; }; + E80EC88128ACD84000D133C5 /* emoji_125@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7CF28ACD84000D133C5 /* emoji_125@2x.png */; }; + E80EC88228ACD84000D133C5 /* emoji_13@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7D028ACD84000D133C5 /* emoji_13@2x.png */; }; + E80EC88328ACD84000D133C5 /* emoji_70@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7D128ACD84000D133C5 /* emoji_70@2x.png */; }; + E80EC88428ACD84000D133C5 /* emoji_01@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7D228ACD84000D133C5 /* emoji_01@2x.png */; }; + E80EC88528ACD84000D133C5 /* emoji_62@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7D328ACD84000D133C5 /* emoji_62@2x.png */; }; + E80EC88628ACD84000D133C5 /* emoji_37@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7D428ACD84000D133C5 /* emoji_37@2x.png */; }; + E80EC88728ACD84000D133C5 /* emoji_29@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7D528ACD84000D133C5 /* emoji_29@2x.png */; }; + E80EC88828ACD84000D133C5 /* emoji_54@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7D628ACD84000D133C5 /* emoji_54@2x.png */; }; + E80EC88928ACD84000D133C5 /* emoj_s_normal@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7D728ACD84000D133C5 /* emoj_s_normal@2x.png */; }; + E80EC88A28ACD84000D133C5 /* emoji_25@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7D828ACD84000D133C5 /* emoji_25@2x.png */; }; + E80EC88B28ACD84000D133C5 /* emoji_58@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7D928ACD84000D133C5 /* emoji_58@2x.png */; }; + E80EC88C28ACD84000D133C5 /* emoji_46@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7DA28ACD84000D133C5 /* emoji_46@2x.png */; }; + E80EC88D28ACD84000D133C5 /* emoji_del_pressed@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7DB28ACD84000D133C5 /* emoji_del_pressed@2x.png */; }; + E80EC88E28ACD84000D133C5 /* emoji_142@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7DC28ACD84000D133C5 /* emoji_142@2x.png */; }; + E80EC88F28ACD84000D133C5 /* emoji_121@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7DD28ACD84000D133C5 /* emoji_121@2x.png */; }; + E80EC89028ACD84000D133C5 /* emoji_150@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7DE28ACD84000D133C5 /* emoji_150@2x.png */; }; + E80EC89128ACD84000D133C5 /* emoji_133@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7DF28ACD84000D133C5 /* emoji_133@2x.png */; }; + E80EC89228ACD84000D133C5 /* emoji_87@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7E028ACD84000D133C5 /* emoji_87@2x.png */; }; + E80EC89328ACD84000D133C5 /* emoji_166@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7E128ACD84000D133C5 /* emoji_166@2x.png */; }; + E80EC89428ACD84000D133C5 /* emoji_105@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7E228ACD84000D133C5 /* emoji_105@2x.png */; }; + E80EC89528ACD84000D133C5 /* emoji_99@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7E328ACD84000D133C5 /* emoji_99@2x.png */; }; + E80EC89628ACD84000D133C5 /* emoji_109@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7E428ACD84000D133C5 /* emoji_109@2x.png */; }; + E80EC89728ACD84000D133C5 /* emoji_95@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7E528ACD84000D133C5 /* emoji_95@2x.png */; }; + E80EC89828ACD84000D133C5 /* emoji_117@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7E628ACD84000D133C5 /* emoji_117@2x.png */; }; + E80EC89928ACD84000D133C5 /* emoji_21@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7E728ACD84000D133C5 /* emoji_21@2x.png */; }; + E80EC89A28ACD84000D133C5 /* emoji_42@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7E828ACD84000D133C5 /* emoji_42@2x.png */; }; + E80EC89B28ACD84000D133C5 /* emoji_33@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7E928ACD84000D133C5 /* emoji_33@2x.png */; }; + E80EC89C28ACD84000D133C5 /* emoji_50@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7EA28ACD84000D133C5 /* emoji_50@2x.png */; }; + E80EC89D28ACD84000D133C5 /* emoji_78@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7EB28ACD84000D133C5 /* emoji_78@2x.png */; }; + E80EC89E28ACD84000D133C5 /* emoji_05@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7EC28ACD84000D133C5 /* emoji_05@2x.png */; }; + E80EC89F28ACD84000D133C5 /* emoji_66@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7ED28ACD84000D133C5 /* emoji_66@2x.png */; }; + E80EC8A028ACD84100D133C5 /* emoji_17@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7EE28ACD84000D133C5 /* emoji_17@2x.png */; }; + E80EC8A128ACD84100D133C5 /* emoji_74@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7EF28ACD84000D133C5 /* emoji_74@2x.png */; }; + E80EC8A228ACD84100D133C5 /* emoji_09@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7F028ACD84000D133C5 /* emoji_09@2x.png */; }; + E80EC8A328ACD84100D133C5 /* emoji_52@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7F128ACD84000D133C5 /* emoji_52@2x.png */; }; + E80EC8A428ACD84100D133C5 /* emoji_31@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7F228ACD84000D133C5 /* emoji_31@2x.png */; }; + E80EC8A528ACD84100D133C5 /* emoji_40@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7F328ACD84000D133C5 /* emoji_40@2x.png */; }; + E80EC8A628ACD84100D133C5 /* emoji_23@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7F428ACD84000D133C5 /* emoji_23@2x.png */; }; + E80EC8A728ACD84100D133C5 /* emoji_del_normal@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7F528ACD84000D133C5 /* emoji_del_normal@2x.png */; }; + E80EC8A828ACD84100D133C5 /* emoji_76@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7F628ACD84000D133C5 /* emoji_76@2x.png */; }; + E80EC8A928ACD84100D133C5 /* emoji_68@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7F728ACD84000D133C5 /* emoji_68@2x.png */; }; + E80EC8AA28ACD84100D133C5 /* emoji_15@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7F828ACD84000D133C5 /* emoji_15@2x.png */; }; + E80EC8AB28ACD84100D133C5 /* emoji_64@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7F928ACD84000D133C5 /* emoji_64@2x.png */; }; + E80EC8AC28ACD84100D133C5 /* emoji_19@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7FA28ACD84000D133C5 /* emoji_19@2x.png */; }; + E80EC8AD28ACD84100D133C5 /* emoji_07@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7FB28ACD84000D133C5 /* emoji_07@2x.png */; }; + E80EC8AE28ACD84100D133C5 /* emoji_131@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7FC28ACD84000D133C5 /* emoji_131@2x.png */; }; + E80EC8AF28ACD84100D133C5 /* emoj_s_pressed@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7FD28ACD84000D133C5 /* emoj_s_pressed@2x.png */; }; + E80EC8B028ACD84100D133C5 /* emoji_152@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7FE28ACD84000D133C5 /* emoji_152@2x.png */; }; + E80EC8B128ACD84100D133C5 /* emoji_123@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC7FF28ACD84000D133C5 /* emoji_123@2x.png */; }; + E80EC8B228ACD84100D133C5 /* emoji_140@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC80028ACD84000D133C5 /* emoji_140@2x.png */; }; + E80EC8B328ACD84100D133C5 /* emoji_115@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC80128ACD84000D133C5 /* emoji_115@2x.png */; }; + E80EC8B428ACD84100D133C5 /* emoji_89@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC80228ACD84000D133C5 /* emoji_89@2x.png */; }; + E80EC8B528ACD84100D133C5 /* emoji_97@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC80328ACD84000D133C5 /* emoji_97@2x.png */; }; + E80EC8B628ACD84100D133C5 /* emoji_107@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC80428ACD84000D133C5 /* emoji_107@2x.png */; }; + E80EC8B728ACD84100D133C5 /* emoji_119@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC80528ACD84000D133C5 /* emoji_119@2x.png */; }; + E80EC8B828ACD84100D133C5 /* emoji_85@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC80628ACD84000D133C5 /* emoji_85@2x.png */; }; + E80EC8B928ACD84100D133C5 /* emoji_164@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = E80EC80728ACD84000D133C5 /* emoji_164@2x.png */; }; + E80EC8BA28ACD84100D133C5 /* emoji.plist in Resources */ = {isa = PBXBuildFile; fileRef = E80EC80828ACD84000D133C5 /* emoji.plist */; }; + E80EC8BF28ACDB2A00D133C5 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = E80EC8BE28ACDB2A00D133C5 /* Assets.xcassets */; }; + E80EC8C228ACF97A00D133C5 /* MHTESentimentIndicateRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E80EC8C128ACF97A00D133C5 /* MHTESentimentIndicateRegard.m */; }; + E81060D9298761A300B772F0 /* CommunicationBaseMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E81060D8298761A300B772F0 /* CommunicationBaseMatrix.m */; }; + E81060DC298761F100B772F0 /* CommunicationEssayMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E81060DB298761F100B772F0 /* CommunicationEssayMatrix.m */; }; + E81060DF29876D3A00B772F0 /* CommunicationIntratemporalMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E81060DE29876D3A00B772F0 /* CommunicationIntratemporalMatrix.m */; }; + E81060E229876E9100B772F0 /* CommunicationIndicateMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E81060E129876E9100B772F0 /* CommunicationIndicateMatrix.m */; }; + E81060E529876FF300B772F0 /* CommunicationVocalmusicMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E81060E429876FF300B772F0 /* CommunicationVocalmusicMatrix.m */; }; + E81060E82987720F00B772F0 /* CommunicationUnSupportMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E81060E72987720F00B772F0 /* CommunicationUnSupportMatrix.m */; }; + E81060EB2987BE8300B772F0 /* CommunicationPresentMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E81060EA2987BE8300B772F0 /* CommunicationPresentMatrix.m */; }; + E81060EE2987C35700B772F0 /* CommunicationEssayClickMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E81060ED2987C35700B772F0 /* CommunicationEssayClickMatrix.m */; }; + E81060F12987C52B00B772F0 /* CommunicationUnionMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E81060F02987C52B00B772F0 /* CommunicationUnionMatrix.m */; }; + E81060F42987C6B200B772F0 /* CommunicationUnfoildEnergeticMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E81060F32987C6B200B772F0 /* CommunicationUnfoildEnergeticMatrix.m */; }; + E81060F72987C8A700B772F0 /* CommunicationApplicationParaticipationMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E81060F62987C8A700B772F0 /* CommunicationApplicationParaticipationMatrix.m */; }; + E81060FD2987CC9100B772F0 /* CommunicationPrototypeAscensionMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E81060FC2987CC9100B772F0 /* CommunicationPrototypeAscensionMatrix.m */; }; + E81061002987CDCC00B772F0 /* CommunicationTweetMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E81060FF2987CDCC00B772F0 /* CommunicationTweetMatrix.m */; }; + E81061032987CFCE00B772F0 /* CommunicationCommunicationSolitaireMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E81061022987CFCE00B772F0 /* CommunicationCommunicationSolitaireMatrix.m */; }; + E81125C4296E57B7000D9804 /* MHTinputAppearanceRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E81125C3296E57B7000D9804 /* MHTinputAppearanceRegard.m */; }; + E81125C7296E596D000D9804 /* MHTIntrojectionAppearancetElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E81125C6296E596D000D9804 /* MHTIntrojectionAppearancetElement.m */; }; + E81125CA296E606F000D9804 /* MHTAppearanceIndicateMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E81125C9296E606F000D9804 /* MHTAppearanceIndicateMatrix.m */; }; + E811FFF72742367B00918544 /* YUMIPresentDispossessAssembletionRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E811FFF62742367B00918544 /* YUMIPresentDispossessAssembletionRegardElement.m */; }; + E8133916273E532D00708B66 /* YUMIPresentProvisionAssembletionRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E8133915273E532D00708B66 /* YUMIPresentProvisionAssembletionRegardElement.m */; }; + E81366E326F0A1FC0076364C /* SurmountDilemmaMobileRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E81366E226F0A1FC0076364C /* SurmountDilemmaMobileRegardGovernancer.m */; }; + E81366E726F0A49E0076364C /* NSString+Utils.m in Sources */ = {isa = PBXBuildFile; fileRef = E81366E626F0A49E0076364C /* NSString+Utils.m */; }; + E81366F326F0B7C80076364C /* SurmountFullAbstractRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E81366F226F0B7C80076364C /* SurmountFullAbstractRegardGovernancer.m */; }; + E81366F626F0C0DF0076364C /* SurmountFullAbstractExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = E81366F526F0C0DF0076364C /* SurmountFullAbstractExternalizer.m */; }; + E81366F826F0C12A0076364C /* SurmountFullAbstractCeremony.h in Sources */ = {isa = PBXBuildFile; fileRef = E81366F726F0C0F60076364C /* SurmountFullAbstractCeremony.h */; }; + E81366FC26F0D2980076364C /* UIButton+EnlargeTouchArea.m in Sources */ = {isa = PBXBuildFile; fileRef = E81366FA26F0D2980076364C /* UIButton+EnlargeTouchArea.m */; }; + E816C11527608A7500C84014 /* YUMIChamberMiniExecutive.m in Sources */ = {isa = PBXBuildFile; fileRef = E816C11427608A7500C84014 /* YUMIChamberMiniExecutive.m */; }; + E818DD1C2A4896EE00F163F7 /* YUMISurmountAraeRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E818DD1B2A4896EE00F163F7 /* YUMISurmountAraeRegardGovernancer.m */; }; + E818DD1F2A48974300F163F7 /* SurmountAreaMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E818DD1E2A48974300F163F7 /* SurmountAreaMatrix.m */; }; + E818DD222A48977F00F163F7 /* YUMISurmountAreaTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E818DD212A48977F00F163F7 /* YUMISurmountAreaTabulationRegardElement.m */; }; + E818E348286ECA4B005EDF68 /* YUMISeparationsAnnounceRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E818E347286ECA4B005EDF68 /* YUMISeparationsAnnounceRegardGovernancer.m */; }; + E818E34B286ECABF005EDF68 /* YUMISeparationsAnnounceExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = E818E34A286ECABF005EDF68 /* YUMISeparationsAnnounceExternalizer.m */; }; + E818E34F286EDF72005EDF68 /* YUMISeparationsAnnounceAssembletionRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E818E34E286EDF72005EDF68 /* YUMISeparationsAnnounceAssembletionRegardElement.m */; }; + E81A652B2834E4F600F55894 /* YUMISeparationsConsiderationRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E81A652A2834E4F600F55894 /* YUMISeparationsConsiderationRegardGovernancer.m */; }; + E81A65312834E53600F55894 /* YUMISeparationsRecentlyRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E81A65302834E53600F55894 /* YUMISeparationsRecentlyRegardGovernancer.m */; }; + E81A653F283511BE00F55894 /* YUMISeparationsCoactiveRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E81A653E283511BE00F55894 /* YUMISeparationsCoactiveRegardGovernancer.m */; }; + E81A65422835120200F55894 /* YUMISeparationsCoactiveExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = E81A65412835120200F55894 /* YUMISeparationsCoactiveExternalizer.m */; }; + E81A6546283519CA00F55894 /* SeparationsMotifMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E81A6545283519CA00F55894 /* SeparationsMotifMatrix.m */; }; + E81A654928351B9500F55894 /* YUMISeparationsEncourageIntelligencerRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E81A654828351B9500F55894 /* YUMISeparationsEncourageIntelligencerRegard.m */; }; + E81A654C28351D9900F55894 /* YUMISeparationsMotifAssembletionRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E81A654B28351D9900F55894 /* YUMISeparationsMotifAssembletionRegardElement.m */; }; + E81AF32527F1D5B8003B9E43 /* YUMIChamberCombatProgressRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E81AF32427F1D5B8003B9E43 /* YUMIChamberCombatProgressRegard.m */; }; + E81AF32827F1EE69003B9E43 /* YUMIChamberCombatFasciaboardConsumerRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E81AF32727F1EE69003B9E43 /* YUMIChamberCombatFasciaboardConsumerRegard.m */; }; + E81C1B1C27705F6B0020D1E4 /* YUMIScheduleLoudspeakerExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = E81C1B1B27705F6B0020D1E4 /* YUMIScheduleLoudspeakerExternalizer.m */; }; + E81C1B1F27705F7A0020D1E4 /* YUMIScheduleLoudspeakerRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E81C1B1E27705F7A0020D1E4 /* YUMIScheduleLoudspeakerRegardGovernancer.m */; }; + E81C1B2227705F950020D1E4 /* Api+ArrangeMic.m in Sources */ = {isa = PBXBuildFile; fileRef = E81C1B2127705F950020D1E4 /* Api+ArrangeMic.m */; }; + E81C1B262770663B0020D1E4 /* YUMIScheduleLoudspeakerTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E81C1B252770663B0020D1E4 /* YUMIScheduleLoudspeakerTabulationRegardElement.m */; }; + E81C1B29277069DD0020D1E4 /* YUMIScheduleLoudspeakerDispossessTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E81C1B28277069DD0020D1E4 /* YUMIScheduleLoudspeakerDispossessTabulationRegardElement.m */; }; + E81C1B2C27706E5C0020D1E4 /* ScheduleLoudspeakerMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E81C1B2B27706E5C0020D1E4 /* ScheduleLoudspeakerMatrix.m */; }; + E81C1B2F277071670020D1E4 /* YUMIScheduleLoudspeakerAbstractMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E81C1B2E277071670020D1E4 /* YUMIScheduleLoudspeakerAbstractMatrix.m */; }; + E81C278C26EAFAF60031E639 /* Base64.m in Sources */ = {isa = PBXBuildFile; fileRef = E81C278926EAFAF60031E639 /* Base64.m */; }; + E81C278D26EAFAF60031E639 /* DESEncrypt.m in Sources */ = {isa = PBXBuildFile; fileRef = E81C278B26EAFAF60031E639 /* DESEncrypt.m */; }; + E81C279626EB39CC0031E639 /* SurmountForgetCiphercodeExternalize.m in Sources */ = {isa = PBXBuildFile; fileRef = E81C279526EB39CC0031E639 /* SurmountForgetCiphercodeExternalize.m */; }; + E81C279826EB3AC40031E639 /* SurmountForgetCiphercodeCeremony.h in Sources */ = {isa = PBXBuildFile; fileRef = E81C279726EB39E10031E639 /* SurmountForgetCiphercodeCeremony.h */; }; + E81C279D26EEEC620031E639 /* YUMIConstant.m in Sources */ = {isa = PBXBuildFile; fileRef = E81C279C26EEEC620031E639 /* YUMIConstant.m */; }; + E81C27A026EEF83D0031E639 /* YUMIHtmlUrl.m in Sources */ = {isa = PBXBuildFile; fileRef = E81C279F26EEF83D0031E639 /* YUMIHtmlUrl.m */; }; + E81C27A226EF23490031E639 /* YUMINNNN.h in Sources */ = {isa = PBXBuildFile; fileRef = E81C27A126EF23370031E639 /* YUMINNNN.h */; }; + E81C27AB26EF2D920031E639 /* ThirdConsumerAbstract.m in Sources */ = {isa = PBXBuildFile; fileRef = E81C27AA26EF2D920031E639 /* ThirdConsumerAbstract.m */; }; + E81C27AE26EF39AB0031E639 /* AppDelegate+ThirdConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = E81C27AD26EF39AB0031E639 /* AppDelegate+ThirdConfig.m */; }; + E81D58822720082A003063FE /* MiecreoscoopeWaveRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E81D58812720082A003063FE /* MiecreoscoopeWaveRegard.m */; }; + E81DCCCD282B63B40039E5C5 /* YUMISeparationsRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E81DCCCC282B63B40039E5C5 /* YUMISeparationsRegardGovernancer.m */; }; + E81DCCD0282B63FD0039E5C5 /* YUMISeparationsEncourageRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E81DCCCF282B63FD0039E5C5 /* YUMISeparationsEncourageRegardGovernancer.m */; }; + E81E09C9290F71BF00A1F410 /* YUMIAdvertiseRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E81E09C8290F71BF00A1F410 /* YUMIAdvertiseRegard.m */; }; + E81E09CC290F732600A1F410 /* YUMIAdIndicateTool.m in Sources */ = {isa = PBXBuildFile; fileRef = E81E09CB290F732600A1F410 /* YUMIAdIndicateTool.m */; }; + E81E09CF290F750800A1F410 /* AdvertiseMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E81E09CE290F750800A1F410 /* AdvertiseMatrix.m */; }; + E821077B2987D4AB00DE7040 /* CommunicationDiscoveryStrangeBewelcometoMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E821077A2987D4AB00DE7040 /* CommunicationDiscoveryStrangeBewelcometoMatrix.m */; }; + E821077E2987D67100DE7040 /* CommunicationVenturePrecautiousMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E821077D2987D67100DE7040 /* CommunicationVenturePrecautiousMatrix.m */; }; + E82107812987D7F300DE7040 /* CommunicationSeparationsMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E82107802987D7F300DE7040 /* CommunicationSeparationsMatrix.m */; }; + E82107842987E35300DE7040 /* CommunicationSeparationsAutoMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E82107832987E35300DE7040 /* CommunicationSeparationsAutoMatrix.m */; }; + E82107872987E49100DE7040 /* CommunicationDeficitSheatheMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E82107862987E49100DE7040 /* CommunicationDeficitSheatheMatrix.m */; }; + E82109AD26F1C8A000FC3319 /* ComputationDownFacilitater.m in Sources */ = {isa = PBXBuildFile; fileRef = E82109AC26F1C8A000FC3319 /* ComputationDownFacilitater.m */; }; + E82109B026F1D83500FC3319 /* SurmountDilemmaMobileExternalize.m in Sources */ = {isa = PBXBuildFile; fileRef = E82109AF26F1D83500FC3319 /* SurmountDilemmaMobileExternalize.m */; }; + E82325E6274CCAFA003A3332 /* YUMIParaticipationAbstractMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E82325E5274CCAFA003A3332 /* YUMIParaticipationAbstractMatrix.m */; }; + E82325E9274CE56A003A3332 /* YUMIParaticipationProvision.m in Sources */ = {isa = PBXBuildFile; fileRef = E82325E8274CE56A003A3332 /* YUMIParaticipationProvision.m */; }; + E82325F2274E2DE6003A3332 /* YUMIConsumerSolitaireRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E82325F1274E2DE6003A3332 /* YUMIConsumerSolitaireRegardGovernancer.m */; }; + E82325F5274E2E09003A3332 /* YUMIConsumerSolitaireExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = E82325F4274E2E09003A3332 /* YUMIConsumerSolitaireExternalizer.m */; }; + E82325F9274E2E42003A3332 /* Api+UserCard.m in Sources */ = {isa = PBXBuildFile; fileRef = E82325F8274E2E42003A3332 /* Api+UserCard.m */; }; + E82325FC274E4735003A3332 /* YUMIConsumerSolitaireProvisionMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E82325FB274E4735003A3332 /* YUMIConsumerSolitaireProvisionMatrix.m */; }; + E8232600274E48EA003A3332 /* YUMIConsumerSolitaireProvisionAssembletionRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E82325FF274E48EA003A3332 /* YUMIConsumerSolitaireProvisionAssembletionRegardElement.m */; }; + E8232603274E4AA0003A3332 /* ThemeColor+UserCard.m in Sources */ = {isa = PBXBuildFile; fileRef = E8232602274E4AA0003A3332 /* ThemeColor+UserCard.m */; }; + E823E38E290BE8BD00EADD86 /* DesirePresentAbstractRefurbishMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E823E38D290BE8BD00EADD86 /* DesirePresentAbstractRefurbishMatrix.m */; }; + E824543526F57D6E00BE8163 /* YUMISurmountValidationDilemmaMobileRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E824543426F57D6E00BE8163 /* YUMISurmountValidationDilemmaMobileRegardGovernancer.m */; }; + E824543826F5820A00BE8163 /* YUMISurmountValidationDilemmaMobileExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = E824543726F5820A00BE8163 /* YUMISurmountValidationDilemmaMobileExternalizer.m */; }; + E824543A26F5880E00BE8163 /* FBCSurmountVerifBindPhoneCeremony.h in Sources */ = {isa = PBXBuildFile; fileRef = E824543926F5822800BE8163 /* FBCSurmountVerifBindPhoneCeremony.h */; }; + E824543D26F58C3A00BE8163 /* YUMISurmountDilemmaSuccessRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E824543C26F58C3A00BE8163 /* YUMISurmountDilemmaSuccessRegard.m */; }; + E824544026F58F9400BE8163 /* YUMIManeIntersectPwordRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E824543F26F58F9400BE8163 /* YUMIManeIntersectPwordRegardGovernancer.m */; }; + E824544326F58FCE00BE8163 /* YUMIManeIntersectPwordIntrojectionRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E824544226F58FCE00BE8163 /* YUMIManeIntersectPwordIntrojectionRegard.m */; }; + E824544626F5934700BE8163 /* YUMIManeIntersectPwordExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = E824544526F5934600BE8163 /* YUMIManeIntersectPwordExternalizer.m */; }; + E824544826F5945300BE8163 /* FBCManePayPwordCeremony.h in Sources */ = {isa = PBXBuildFile; fileRef = E824544726F5940600BE8163 /* FBCManePayPwordCeremony.h */; }; + E824544B26F5BBB800BE8163 /* YUMIManeModifIntersectPwordRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E824544A26F5BBB800BE8163 /* YUMIManeModifIntersectPwordRegardGovernancer.m */; }; + E824544E26F5BC1A00BE8163 /* YUMIManeModifIntersectPwordRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E824544D26F5BC1A00BE8163 /* YUMIManeModifIntersectPwordRegard.m */; }; + E824545126F5CE6E00BE8163 /* YUMIManeModifIntersectPwordExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = E824545026F5CE6E00BE8163 /* YUMIManeModifIntersectPwordExternalizer.m */; }; + E824545326F5CEAD00BE8163 /* FBCManeModifPayCeremony.h in Sources */ = {isa = PBXBuildFile; fileRef = E824545226F5CE9C00BE8163 /* FBCManeModifPayCeremony.h */; }; + E824545626F5E51900BE8163 /* YUMIManeValidationIdentityRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E824545526F5E51900BE8163 /* YUMIManeValidationIdentityRegardGovernancer.m */; }; + E824545926F5E65900BE8163 /* YUMIManeValidationIdentityRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E824545826F5E65900BE8163 /* YUMIManeValidationIdentityRegard.m */; }; + E824545C26F5EEBA00BE8163 /* YUMIManeValidationIdentityExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = E824545B26F5EEBA00BE8163 /* YUMIManeValidationIdentityExternalizer.m */; }; + E824545E26F5EF2200BE8163 /* FBCManeVerifIdentityCeremony.h in Sources */ = {isa = PBXBuildFile; fileRef = E824545D26F5EEFD00BE8163 /* FBCManeVerifIdentityCeremony.h */; }; + E824546126F5F4E400BE8163 /* YUMIManeReassociationIntersectPwordRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E824546026F5F4E400BE8163 /* YUMIManeReassociationIntersectPwordRegardGovernancer.m */; }; + E824546426F5FF1C00BE8163 /* YUMIManeReassociationIntersectCiphercodeExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = E824546326F5FF1C00BE8163 /* YUMIManeReassociationIntersectCiphercodeExternalizer.m */; }; + E824546626F5FF6000BE8163 /* FBCManeResetPayCiphercodeCeremony.h in Sources */ = {isa = PBXBuildFile; fileRef = E824546526F5FF5100BE8163 /* FBCManeResetPayCiphercodeCeremony.h */; }; + E8252FEE27687DF1002B3164 /* ImportpriseAbstractMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E8252FED27687DF1002B3164 /* ImportpriseAbstractMatrix.m */; }; + E82D5C70276AE60000858D6D /* IntelligencewearMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E82D5C6F276AE60000858D6D /* IntelligencewearMatrix.m */; }; + E82D5C73276AE94800858D6D /* CarMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E82D5C72276AE94800858D6D /* CarMatrix.m */; }; + E82D5C76276AEB5100858D6D /* NameplateMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E82D5C75276AEB5100858D6D /* NameplateMatrix.m */; }; + E82D5C7A276B25D100858D6D /* SpriteSheetIndicateExecutive.m in Sources */ = {isa = PBXBuildFile; fileRef = E82D5C79276B25D100858D6D /* SpriteSheetIndicateExecutive.m */; }; + E82D5C7D276B343300858D6D /* YYAnimatedImageView+ImageShow.m in Sources */ = {isa = PBXBuildFile; fileRef = E82D5C7C276B343300858D6D /* YYAnimatedImageView+ImageShow.m */; }; + E82E75062828E76400C25EF7 /* YUMICoreAtomicExecutive.m in Sources */ = {isa = PBXBuildFile; fileRef = E82E75052828E76400C25EF7 /* YUMICoreAtomicExecutive.m */; }; + E82EE0F8272FDDFA00D15DC1 /* ConsumerPrivacyRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E82EE0F7272FDDFA00D15DC1 /* ConsumerPrivacyRegard.m */; }; + E833ED0D274FAD1C00A2463B /* XCombatickConsumerMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E833ED0C274FAD1C00A2463B /* XCombatickConsumerMatrix.m */; }; + E83645682A40A2DC00E0DBE4 /* YUMICommunicationSolitaireDisporterExecutive.m in Sources */ = {isa = PBXBuildFile; fileRef = E83645672A40A2DC00E0DBE4 /* YUMICommunicationSolitaireDisporterExecutive.m */; }; + E836456B2A40A33300E0DBE4 /* ManeCommunicationSolitaireStatementAbstractMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E83645692A40A33300E0DBE4 /* ManeCommunicationSolitaireStatementAbstractMatrix.m */; }; + E83645A82A40AF5400E0DBE4 /* NSBundle+Localizable.m in Sources */ = {isa = PBXBuildFile; fileRef = E83645A72A40AF5400E0DBE4 /* NSBundle+Localizable.m */; }; + E8383697298A598D00112E1C /* CommunicationTipsMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E8383696298A598D00112E1C /* CommunicationTipsMatrix.m */; }; + E838369A298A59C100112E1C /* CommunicationTipsRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E8383699298A59C100112E1C /* CommunicationTipsRegard.m */; }; + E838D9A0275E1BF60079E0B5 /* YUMIChamberBrightnessRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E838D99F275E1BF60079E0B5 /* YUMIChamberBrightnessRegard.m */; }; + E83953222769F33B00CF2F24 /* YUMIChamberFunctionAccommodatedRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E83953212769F33B00CF2F24 /* YUMIChamberFunctionAccommodatedRegard.m */; }; + E839532A276A002800CF2F24 /* YUMIManePretendUpwardsRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E8395329276A002800CF2F24 /* YUMIManePretendUpwardsRegardGovernancer.m */; }; + E839532D276A030F00CF2F24 /* YUMIManePretendUpwardsStatementRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E839532C276A030F00CF2F24 /* YUMIManePretendUpwardsStatementRegardGovernancer.m */; }; + E8395331276A03AE00CF2F24 /* Api+DressUp.m in Sources */ = {isa = PBXBuildFile; fileRef = E8395330276A03AE00CF2F24 /* Api+DressUp.m */; }; + E8395334276A03C300CF2F24 /* YUMIManePretendUpwardsExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = E8395333276A03C300CF2F24 /* YUMIManePretendUpwardsExternalizer.m */; }; + E8395339276A0CC100CF2F24 /* YUMIManeIntelligencewearTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E8395338276A0CC100CF2F24 /* YUMIManeIntelligencewearTabulationRegardElement.m */; }; + E839533C276A0CCD00CF2F24 /* YUMIManeCarTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E839533B276A0CCD00CF2F24 /* YUMIManeCarTabulationRegardElement.m */; }; + E839533F276A0CDB00CF2F24 /* YUMIManeNameplateTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E839533E276A0CDB00CF2F24 /* YUMIManeNameplateTabulationRegardElement.m */; }; + E839806B290288660084BFC8 /* YUMICommunicationAbstractMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E839806A290288660084BFC8 /* YUMICommunicationAbstractMatrix.m */; }; + E83ABEF6280E9AD800322EE4 /* CommunicationSatisfactionUnSupportRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E83ABEF5280E9AD800322EE4 /* CommunicationSatisfactionUnSupportRegard.m */; }; + E83ABEF9280EAF3F00322EE4 /* CommunicationSatisfactionUnfoildEnergeticRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E83ABEF8280EAF3F00322EE4 /* CommunicationSatisfactionUnfoildEnergeticRegard.m */; }; + E83ABEFD280EB5E200322EE4 /* SatisfactionUnfoildEnergeticAbstractMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E83ABEFC280EB5E200322EE4 /* SatisfactionUnfoildEnergeticAbstractMatrix.m */; }; + E83ABF00280EC45700322EE4 /* CommunicationSatisfactionApplicationParaticipationRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E83ABEFF280EC45700322EE4 /* CommunicationSatisfactionApplicationParaticipationRegard.m */; }; + E83ABF03280EC90C00322EE4 /* SatisfactionApplicationParaticipationMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E83ABF02280EC90C00322EE4 /* SatisfactionApplicationParaticipationMatrix.m */; }; + E83ABF06280EDE2B00322EE4 /* CommunicationSatisfactionPrototypeAscensionRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E83ABF05280EDE2B00322EE4 /* CommunicationSatisfactionPrototypeAscensionRegard.m */; }; + E83DB47A27462C4500D8CBD1 /* YUMIPresentBigCaptureMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E83DB47927462C4500D8CBD1 /* YUMIPresentBigCaptureMatrix.m */; }; + E83DB47D2746372300D8CBD1 /* YUMIChamberPresentOriflammeRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E83DB47C2746372300D8CBD1 /* YUMIChamberPresentOriflammeRegard.m */; }; + E83DB481274649FB00D8CBD1 /* YUMIPresentOriflammeConsumerAbstractMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E83DB480274649FB00D8CBD1 /* YUMIPresentOriflammeConsumerAbstractMatrix.m */; }; + E83DB4842746661800D8CBD1 /* YUMIChamberPresentPingbackRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E83DB4832746661800D8CBD1 /* YUMIChamberPresentPingbackRegard.m */; }; + E83DB487274670DA00D8CBD1 /* YUMIChamberPresentBroadCastMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E83DB486274670DA00D8CBD1 /* YUMIChamberPresentBroadCastMatrix.m */; }; + E8412F9627795E34006E1101 /* YUMIChamberCallforFanaticsRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E8412F9527795E34006E1101 /* YUMIChamberCallforFanaticsRegard.m */; }; + E8412F9927799249006E1101 /* CallforFanaticsMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E8412F9827799249006E1101 /* CallforFanaticsMatrix.m */; }; + E8412FA22779BE8F006E1101 /* YUMIChamberInstanllingRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E8412FA12779BE8F006E1101 /* YUMIChamberInstanllingRegardGovernancer.m */; }; + E8412FA62779BED1006E1101 /* YUMIChamberInstanllingTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E8412FA52779BED1006E1101 /* YUMIChamberInstanllingTabulationRegardElement.m */; }; + E8412FA92779C2ED006E1101 /* YUMIChamberInstanllingProvisionMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E8412FA82779C2ED006E1101 /* YUMIChamberInstanllingProvisionMatrix.m */; }; + E8412FB02779CB4D006E1101 /* YUMIChamberInstanllingExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = E8412FAF2779CB4D006E1101 /* YUMIChamberInstanllingExternalizer.m */; }; + E8412FB32779E285006E1101 /* Api+RoomSetting.m in Sources */ = {isa = PBXBuildFile; fileRef = E8412FB22779E285006E1101 /* Api+RoomSetting.m */; }; + E84150BB27747BAF00A7F548 /* YUMIThresholdReindictExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = E84150BA27747BAF00A7F548 /* YUMIThresholdReindictExternalizer.m */; }; + E84150BF27747BD300A7F548 /* Api+FirstRecharge.m in Sources */ = {isa = PBXBuildFile; fileRef = E84150BE27747BD300A7F548 /* Api+FirstRecharge.m */; }; + E84150C227747BF700A7F548 /* ThresholdReindictMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E84150C127747BF700A7F548 /* ThresholdReindictMatrix.m */; }; + E84150C527747E0900A7F548 /* ThresholdReindictRewardMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E84150C427747E0900A7F548 /* ThresholdReindictRewardMatrix.m */; }; + E841ED61280FB0BD00904808 /* SatisfactionPrototypeAscensionMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E841ED60280FB0BD00904808 /* SatisfactionPrototypeAscensionMatrix.m */; }; + E84843AF27F59E7E0050D365 /* YUMIChamberCombatConsequentRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E84843AE27F59E7E0050D365 /* YUMIChamberCombatConsequentRegard.m */; }; + E84843B227F5A0740050D365 /* YUMIRomCombatConsequentChampionDesignation.m in Sources */ = {isa = PBXBuildFile; fileRef = E84843B127F5A0740050D365 /* YUMIRomCombatConsequentChampionDesignation.m */; }; + E84A2E892A527DF800D6AF8A /* YUMIRevenueReflectionVC.m in Sources */ = {isa = PBXBuildFile; fileRef = E84A2E812A527DF800D6AF8A /* YUMIRevenueReflectionVC.m */; }; + E84A2E8A2A527DF800D6AF8A /* YUMIExchangeDiamondsVC.m in Sources */ = {isa = PBXBuildFile; fileRef = E84A2E822A527DF800D6AF8A /* YUMIExchangeDiamondsVC.m */; }; + E84A2E8B2A527DF800D6AF8A /* YUMIRevenueReflectionGoldSpecificsVC.m in Sources */ = {isa = PBXBuildFile; fileRef = E84A2E842A527DF800D6AF8A /* YUMIRevenueReflectionGoldSpecificsVC.m */; }; + E84A2E932A527EC800D6AF8A /* YUMIRevenueReflectionExternalize.m in Sources */ = {isa = PBXBuildFile; fileRef = E84A2E912A527EC700D6AF8A /* YUMIRevenueReflectionExternalize.m */; }; + E84A2E962A5280F900D6AF8A /* YUMIExchangeDiamondsRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E84A2E942A5280F900D6AF8A /* YUMIExchangeDiamondsRegard.m */; }; + E84A2E992A52817E00D6AF8A /* YUMIRevenueReflectionRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E84A2E982A52817E00D6AF8A /* YUMIRevenueReflectionRegard.m */; }; + E84A2E9C2A52823900D6AF8A /* YUMIEssayField.m in Sources */ = {isa = PBXBuildFile; fileRef = E84A2E9B2A52823900D6AF8A /* YUMIEssayField.m */; }; + E84A2E9F2A5287D200D6AF8A /* YUMIRevenueReflectionGoldSpecificsRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E84A2E9D2A5287D200D6AF8A /* YUMIRevenueReflectionGoldSpecificsRegard.m */; }; + E84A2EA22A52883000D6AF8A /* YUMIRevenueReflectionGoldSpecificsIntratemporalRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E84A2EA02A52883000D6AF8A /* YUMIRevenueReflectionGoldSpecificsIntratemporalRegard.m */; }; + E84A2EA52A5288CB00D6AF8A /* YUMIGoldSpecificsChooseChamberRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E84A2EA42A5288CB00D6AF8A /* YUMIGoldSpecificsChooseChamberRegard.m */; }; + E84A2EA82A5288FD00D6AF8A /* YUMIGoldSpecificsChooseChamberElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E84A2EA72A5288FD00D6AF8A /* YUMIGoldSpecificsChooseChamberElement.m */; }; + E84A2EAB2A528A4100D6AF8A /* YUMIRevenueReflectionGoldSpecificsPickRegardRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E84A2EA92A528A4100D6AF8A /* YUMIRevenueReflectionGoldSpecificsPickRegardRegard.m */; }; + E84A2EAD2A52F20900D6AF8A /* Launch Screen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = E84A2EAC2A52F20900D6AF8A /* Launch Screen.storyboard */; }; + E84A2EAF2A52F27000D6AF8A /* 1242.png in Resources */ = {isa = PBXBuildFile; fileRef = E84A2EAE2A52F27000D6AF8A /* 1242.png */; }; + E84B0E3F2727EDF6008818C6 /* YUMIChamberCommunicationTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E84B0E3E2727EDF6008818C6 /* YUMIChamberCommunicationTabulationRegardElement.m */; }; + E84B0E422727EE0A008818C6 /* YUMIChamberCommunicationIntelligencerRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E84B0E412727EE0A008818C6 /* YUMIChamberCommunicationIntelligencerRegard.m */; }; + E84B0E462727EF9D008818C6 /* YUMIChamberCommunicationAnatomiser.m in Sources */ = {isa = PBXBuildFile; fileRef = E84B0E452727EF9D008818C6 /* YUMIChamberCommunicationAnatomiser.m */; }; + E84BF7CA277AF79D00EF8877 /* YUMIChamberInstanllingCoupleElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E84BF7C9277AF79D00EF8877 /* YUMIChamberInstanllingCoupleElement.m */; }; + E84BF7D1277BFCDD00EF8877 /* ChamberCoupleMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E84BF7D0277BFCDD00EF8877 /* ChamberCoupleMatrix.m */; }; + E84BF7D4277C383700EF8877 /* YUMIChamberInstanllingIntrojectionRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E84BF7D3277C383700EF8877 /* YUMIChamberInstanllingIntrojectionRegard.m */; }; + E84BF7D7277C6E2100EF8877 /* YUMIChamberRoleRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E84BF7D6277C6E2100EF8877 /* YUMIChamberRoleRegardGovernancer.m */; }; + E84BF7DA277C72AC00EF8877 /* YUMIChamberRoleTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E84BF7D9277C72AC00EF8877 /* YUMIChamberRoleTabulationRegardElement.m */; }; + E84BF7DD277C765400EF8877 /* YUMIChamberRoleDispossessTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E84BF7DC277C765400EF8877 /* YUMIChamberRoleDispossessTabulationRegardElement.m */; }; + E84BF7E0277C869A00EF8877 /* YUMIChamberOnLineRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E84BF7DF277C869A00EF8877 /* YUMIChamberOnLineRegardGovernancer.m */; }; + E84CBCE128436D3C00D43221 /* YUMIManeContactRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E84CBCE028436D3C00D43221 /* YUMIManeContactRegardGovernancer.m */; }; + E84CBCE4284372D800D43221 /* YUMIChamberHalfCommunicationRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E84CBCE3284372D800D43221 /* YUMIChamberHalfCommunicationRegard.m */; }; + E84CBCE72843807500D43221 /* YUMIManeAssistantExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = E84CBCE62843807400D43221 /* YUMIManeAssistantExternalizer.m */; }; + E852D73B286317F0001465ED /* YUMISeparationsSpecificRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E852D73A286317F0001465ED /* YUMISeparationsSpecificRegardGovernancer.m */; }; + E852D73E28631C18001465ED /* YUMISeparationsJudgementTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E852D73D28631C18001465ED /* YUMISeparationsJudgementTabulationRegardElement.m */; }; + E852D7412863249F001465ED /* YUMISeparationsReplicationTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E852D7402863249F001465ED /* YUMISeparationsReplicationTabulationRegardElement.m */; }; + E852D74428633A08001465ED /* SeparationsJudgementMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E852D74328633A08001465ED /* SeparationsJudgementMatrix.m */; }; + E852D74728633E92001465ED /* SeparationsJudgementReplicationMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E852D74628633E92001465ED /* SeparationsJudgementReplicationMatrix.m */; }; + E85410352864155A005CFD9F /* YUMISeparationSpecificExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = E85410342864155A005CFD9F /* YUMISeparationSpecificExternalizer.m */; }; + E854103928646A00005CFD9F /* YUMISeparationsReplicationFurthaerTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E854103828646A00005CFD9F /* YUMISeparationsReplicationFurthaerTabulationRegardElement.m */; }; + E855515B280559FE005F293F /* NSDate+DateUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = E855515A280559FE005F293F /* NSDate+DateUtils.m */; }; + E85E3FA728B7A6F000268DC8 /* CommunicationSatisfactionSeparationsRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E3FA628B7A6F000268DC8 /* CommunicationSatisfactionSeparationsRegard.m */; }; + E85E7B012A4EB0D200B6D00A /* YUMISensationalManagementSetExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7A402A4EB0D200B6D00A /* YUMISensationalManagementSetExternalizer.m */; }; + E85E7B022A4EB0D200B6D00A /* YUMISensationalManagementExecutiveChamberExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7A412A4EB0D200B6D00A /* YUMISensationalManagementExecutiveChamberExternalizer.m */; }; + E85E7B032A4EB0D200B6D00A /* YUMIUnionRevenueExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7A452A4EB0D200B6D00A /* YUMIUnionRevenueExternalizer.m */; }; + E85E7B042A4EB0D200B6D00A /* YUMIUnionRevenueSpecificExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7A462A4EB0D200B6D00A /* YUMIUnionRevenueSpecificExternalizer.m */; }; + E85E7B052A4EB0D200B6D00A /* YUMICollectiveExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7A492A4EB0D200B6D00A /* YUMICollectiveExternalizer.m */; }; + E85E7B062A4EB0D200B6D00A /* YUMIUnionHuntforExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7A4A2A4EB0D200B6D00A /* YUMIUnionHuntforExternalizer.m */; }; + E85E7B072A4EB0D200B6D00A /* YUMIUnionExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7A4B2A4EB0D200B6D00A /* YUMIUnionExternalizer.m */; }; + E85E7B082A4EB0D200B6D00A /* YUMIManeExecutiveSetExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7A4D2A4EB0D200B6D00A /* YUMIManeExecutiveSetExternalizer.m */; }; + E85E7B092A4EB0D200B6D00A /* YUMIUnionRemoveComponentExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7A4E2A4EB0D200B6D00A /* YUMIUnionRemoveComponentExternalizer.m */; }; + E85E7B0A2A4EB0D200B6D00A /* YUMIUnionExecutivePerExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7A502A4EB0D200B6D00A /* YUMIUnionExecutivePerExternalizer.m */; }; + E85E7B0B2A4EB0D200B6D00A /* YUMIUnionSetNameExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7A512A4EB0D200B6D00A /* YUMIUnionSetNameExternalizer.m */; }; + E85E7B0C2A4EB0D200B6D00A /* YUMIUnionMangerStatementExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7A532A4EB0D200B6D00A /* YUMIUnionMangerStatementExternalizer.m */; }; + E85E7B0D2A4EB0D200B6D00A /* UnionSensationalManagementAbstractMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7A702A4EB0D200B6D00A /* UnionSensationalManagementAbstractMatrix.m */; }; + E85E7B0E2A4EB0D200B6D00A /* UnionHuntforSensationalManagementMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7A712A4EB0D200B6D00A /* UnionHuntforSensationalManagementMatrix.m */; }; + E85E7B0F2A4EB0D200B6D00A /* UnionChamberAbstractMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7A722A4EB0D200B6D00A /* UnionChamberAbstractMatrix.m */; }; + E85E7B102A4EB0D200B6D00A /* UnionRevenueSpecificMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7A772A4EB0D200B6D00A /* UnionRevenueSpecificMatrix.m */; }; + E85E7B112A4EB0D200B6D00A /* UnionFeatureRevenueReflectionMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7A782A4EB0D200B6D00A /* UnionFeatureRevenueReflectionMatrix.m */; }; + E85E7B122A4EB0D200B6D00A /* UnionRevenueReflectionMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7A792A4EB0D200B6D00A /* UnionRevenueReflectionMatrix.m */; }; + E85E7B132A4EB0D200B6D00A /* UnionHuntforConsumerAbstractMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7A7C2A4EB0D200B6D00A /* UnionHuntforConsumerAbstractMatrix.m */; }; + E85E7B142A4EB0D200B6D00A /* UnionAuthMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7A7E2A4EB0D200B6D00A /* UnionAuthMatrix.m */; }; + E85E7B152A4EB0D200B6D00A /* CollectiveAbstractMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7A7F2A4EB0D200B6D00A /* CollectiveAbstractMatrix.m */; }; + E85E7B162A4EB0D200B6D00A /* UnionAbstractMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7A802A4EB0D200B6D00A /* UnionAbstractMatrix.m */; }; + E85E7B172A4EB0D200B6D00A /* CollectiveComponentSpecificAbstractMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7A812A4EB0D200B6D00A /* CollectiveComponentSpecificAbstractMatrix.m */; }; + E85E7B182A4EB0D200B6D00A /* CollectiveSpecificAbstractMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7A822A4EB0D200B6D00A /* CollectiveSpecificAbstractMatrix.m */; }; + E85E7B192A4EB0D200B6D00A /* UnionCommunicationMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7A832A4EB0D200B6D00A /* UnionCommunicationMatrix.m */; }; + E85E7B1A2A4EB0D200B6D00A /* YUMIManeGoldRevenueReflectionVC.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7A882A4EB0D200B6D00A /* YUMIManeGoldRevenueReflectionVC.m */; }; + E85E7B1B2A4EB0D200B6D00A /* YUMIManeMainRevenueStatsticsRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7A8A2A4EB0D200B6D00A /* YUMIManeMainRevenueStatsticsRegardGovernancer.m */; }; + E85E7B1C2A4EB0D200B6D00A /* YUMIManeHallKellegRevenueStatsticsRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7A8B2A4EB0D200B6D00A /* YUMIManeHallKellegRevenueStatsticsRegardGovernancer.m */; }; + E85E7B1D2A4EB0D200B6D00A /* YUMIManeCollectiveRevenueStatsticsRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7A8C2A4EB0D200B6D00A /* YUMIManeCollectiveRevenueStatsticsRegardGovernancer.m */; }; + E85E7B1E2A4EB0D200B6D00A /* YUMIManeKellegRevenueStatsticsRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7A912A4EB0D200B6D00A /* YUMIManeKellegRevenueStatsticsRegardGovernancer.m */; }; + E85E7B1F2A4EB0D300B6D00A /* YUMIManeUnionRevenueStatsticsRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7A932A4EB0D200B6D00A /* YUMIManeUnionRevenueStatsticsRegardGovernancer.m */; }; + E85E7B202A4EB0D300B6D00A /* YUMIManeUnionRevenueSpecificRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7A942A4EB0D200B6D00A /* YUMIManeUnionRevenueSpecificRegardGovernancer.m */; }; + E85E7B212A4EB0D300B6D00A /* YUMIStrangeManeUnionRevenueReflectionRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7A952A4EB0D200B6D00A /* YUMIStrangeManeUnionRevenueReflectionRegardGovernancer.m */; }; + E85E7B222A4EB0D300B6D00A /* YUMIManeUnionRevenueReflectionRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7A982A4EB0D200B6D00A /* YUMIManeUnionRevenueReflectionRegardGovernancer.m */; }; + E85E7B232A4EB0D300B6D00A /* YUMIManeCollectiveRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7A9A2A4EB0D200B6D00A /* YUMIManeCollectiveRegardGovernancer.m */; }; + E85E7B242A4EB0D300B6D00A /* YUMIManeUnionSensationalManagementSetRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7A9E2A4EB0D200B6D00A /* YUMIManeUnionSensationalManagementSetRegardGovernancer.m */; }; + E85E7B252A4EB0D300B6D00A /* YUMIManeUnionChooseExecutiveRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7A9F2A4EB0D200B6D00A /* YUMIManeUnionChooseExecutiveRegardGovernancer.m */; }; + E85E7B262A4EB0D300B6D00A /* YUMIManeUnionRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7AA02A4EB0D200B6D00A /* YUMIManeUnionRegardGovernancer.m */; }; + E85E7B272A4EB0D300B6D00A /* YUMIUnionSensationalManagementParrotRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7AA42A4EB0D200B6D00A /* YUMIUnionSensationalManagementParrotRegard.m */; }; + E85E7B282A4EB0D300B6D00A /* YUMICollectiveParrotRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7AA62A4EB0D200B6D00A /* YUMICollectiveParrotRegard.m */; }; + E85E7B292A4EB0D300B6D00A /* YUMIUnionIntratemporalPickRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7AA72A4EB0D200B6D00A /* YUMIUnionIntratemporalPickRegard.m */; }; + E85E7B2A2A4EB0D300B6D00A /* YUMIUnionIntratemporalMonthPickerRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7AAC2A4EB0D200B6D00A /* YUMIUnionIntratemporalMonthPickerRegard.m */; }; + E85E7B2B2A4EB0D300B6D00A /* YUMIStrangeUnionIntratemporalPickRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7AAE2A4EB0D200B6D00A /* YUMIStrangeUnionIntratemporalPickRegard.m */; }; + E85E7B2C2A4EB0D300B6D00A /* YUMICollectiveDivisionRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7AB12A4EB0D200B6D00A /* YUMICollectiveDivisionRegard.m */; }; + E85E7B2D2A4EB0D300B6D00A /* YUMIUnionIntelligencerRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7AB22A4EB0D200B6D00A /* YUMIUnionIntelligencerRegard.m */; }; + E85E7B2E2A4EB0D300B6D00A /* YUMIUnionHuntforNevRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7AB72A4EB0D200B6D00A /* YUMIUnionHuntforNevRegard.m */; }; + E85E7B2F2A4EB0D300B6D00A /* YUMIGoldRevenueDivisionRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7AB82A4EB0D200B6D00A /* YUMIGoldRevenueDivisionRegard.m */; }; + E85E7B302A4EB0D300B6D00A /* YUMIUnionRevenueIntelligencerRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7AB92A4EB0D200B6D00A /* YUMIUnionRevenueIntelligencerRegard.m */; }; + E85E7B312A4EB0D300B6D00A /* YUMIStrangeUnionRevenueIntelligencerRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7ABB2A4EB0D200B6D00A /* YUMIStrangeUnionRevenueIntelligencerRegard.m */; }; + E85E7B322A4EB0D300B6D00A /* YUMIUnionKellegRevenueDivisionRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7ABC2A4EB0D200B6D00A /* YUMIUnionKellegRevenueDivisionRegard.m */; }; + E85E7B332A4EB0D300B6D00A /* YUMIUnionRevenueDivisionRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7ABD2A4EB0D200B6D00A /* YUMIUnionRevenueDivisionRegard.m */; }; + E85E7B342A4EB0D300B6D00A /* YUMIManeMainUnionStatementVC.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7ABE2A4EB0D200B6D00A /* YUMIManeMainUnionStatementVC.m */; }; + E85E7B352A4EB0D300B6D00A /* YUMICollectiveComponentTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7AC02A4EB0D200B6D00A /* YUMICollectiveComponentTabulationRegardElement.m */; }; + E85E7B362A4EB0D300B6D00A /* YUMICollectiveChamberAssembletionRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7AC12A4EB0D200B6D00A /* YUMICollectiveChamberAssembletionRegardElement.m */; }; + E85E7B372A4EB0D300B6D00A /* YUMIManeUnionStatementElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7AC32A4EB0D200B6D00A /* YUMIManeUnionStatementElement.m */; }; + E85E7B382A4EB0D300B6D00A /* YUMIManeUnionHuntforComponentTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7AC52A4EB0D200B6D00A /* YUMIManeUnionHuntforComponentTabulationRegardElement.m */; }; + E85E7B392A4EB0D300B6D00A /* YUMIUnionChooseExecutiveChamberTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7ACA2A4EB0D200B6D00A /* YUMIUnionChooseExecutiveChamberTabulationRegardElement.m */; }; + E85E7B3A2A4EB0D300B6D00A /* YUMIUnionSensationalManagementSetTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7ACB2A4EB0D200B6D00A /* YUMIUnionSensationalManagementSetTabulationRegardElement.m */; }; + E85E7B3B2A4EB0D300B6D00A /* YUMIUnionHuntforSensationalManagementTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7ACC2A4EB0D200B6D00A /* YUMIUnionHuntforSensationalManagementTabulationRegardElement.m */; }; + E85E7B3C2A4EB0D300B6D00A /* YUMIUnionSensationalManagementChamberAssembletionRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7ACD2A4EB0D200B6D00A /* YUMIUnionSensationalManagementChamberAssembletionRegardElement.m */; }; + E85E7B3D2A4EB0D300B6D00A /* YUMIUnionRevenueSpecificAssembletionRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7AD22A4EB0D200B6D00A /* YUMIUnionRevenueSpecificAssembletionRegardElement.m */; }; + E85E7B3E2A4EB0D300B6D00A /* YUMIUnionRevenueReflectionTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7AD32A4EB0D200B6D00A /* YUMIUnionRevenueReflectionTabulationRegardElement.m */; }; + E85E7B3F2A4EB0D300B6D00A /* YUMIUnionSingleChamberRevenueTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7AD52A4EB0D200B6D00A /* YUMIUnionSingleChamberRevenueTabulationRegardElement.m */; }; + E85E7B402A4EB0D300B6D00A /* YUMIUnionFeatureRevenueTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7AD72A4EB0D200B6D00A /* YUMIUnionFeatureRevenueTabulationRegardElement.m */; }; + E85E7B412A4EB0D300B6D00A /* YUMIManeUnionDispossessTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7ADC2A4EB0D200B6D00A /* YUMIManeUnionDispossessTabulationRegardElement.m */; }; + E85E7B422A4EB0D300B6D00A /* YUMIManePromptWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7AE02A4EB0D200B6D00A /* YUMIManePromptWindow.m */; }; + E85E7B432A4EB0D300B6D00A /* YUMIManeExchangeAuthorityIntelligenceRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7AE22A4EB0D200B6D00A /* YUMIManeExchangeAuthorityIntelligenceRegard.m */; }; + E85E7B442A4EB0D300B6D00A /* YUMIManeExchangeAuthorityElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7AE32A4EB0D200B6D00A /* YUMIManeExchangeAuthorityElement.m */; }; + E85E7B452A4EB0D300B6D00A /* YUMIManeExchangeAuthorityFooderRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7AE62A4EB0D200B6D00A /* YUMIManeExchangeAuthorityFooderRegard.m */; }; + E85E7B462A4EB0D300B6D00A /* YUMIUnionDispossessAssembletionRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7AE72A4EB0D200B6D00A /* YUMIUnionDispossessAssembletionRegardElement.m */; }; + E85E7B472A4EB0D300B6D00A /* YUMIManeUnionExecutivePerTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7AE92A4EB0D200B6D00A /* YUMIManeUnionExecutivePerTabulationRegardElement.m */; }; + E85E7B492A4EB0D300B6D00A /* YUMIManeUnionHuntforRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7AED2A4EB0D200B6D00A /* YUMIManeUnionHuntforRegardGovernancer.m */; }; + E85E7B4A2A4EB0D300B6D00A /* YUMIManeMangerStatementRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7AF12A4EB0D200B6D00A /* YUMIManeMangerStatementRegardGovernancer.m */; }; + E85E7B4B2A4EB0D300B6D00A /* YUMIManeUnionExecutiveSetRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7AF32A4EB0D200B6D00A /* YUMIManeUnionExecutiveSetRegardGovernancer.m */; }; + E85E7B4C2A4EB0D300B6D00A /* YUMIManeUnionExecutivePerRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7AF42A4EB0D200B6D00A /* YUMIManeUnionExecutivePerRegardGovernancer.m */; }; + E85E7B4D2A4EB0D300B6D00A /* YUMIManeUnionRemoveComponentRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7AF62A4EB0D200B6D00A /* YUMIManeUnionRemoveComponentRegardGovernancer.m */; }; + E85E7B4E2A4EB0D300B6D00A /* YUMIManeUnionSetNameRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7AF82A4EB0D200B6D00A /* YUMIManeUnionSetNameRegardGovernancer.m */; }; + E85E7B4F2A4EB0D300B6D00A /* YUMIManeExchangeAuthorityVC.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7AFA2A4EB0D200B6D00A /* YUMIManeExchangeAuthorityVC.m */; }; + E85E7B502A4EB0D300B6D00A /* YUMIManeUnionStatementVC.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7AFD2A4EB0D200B6D00A /* YUMIManeUnionStatementVC.m */; }; + E85E7B512A4EB0D300B6D00A /* Api+Guild.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7AFF2A4EB0D200B6D00A /* Api+Guild.m */; }; + E85E7B542A4EB4AD00B6D00A /* YUMIManeUnionStatementMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7B532A4EB4AD00B6D00A /* YUMIManeUnionStatementMatrix.m */; }; + E85E7B632A4EC35A00B6D00A /* YUMIWithdrawAccountMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7B5D2A4EC35A00B6D00A /* YUMIWithdrawAccountMatrix.m */; }; + E85E7B642A4EC35A00B6D00A /* YUMIRevenueReflectionMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7B5E2A4EC35A00B6D00A /* YUMIRevenueReflectionMatrix.m */; }; + E85E7B652A4EC35A00B6D00A /* YUMIExchangeDiamondsMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7B5F2A4EC35A00B6D00A /* YUMIExchangeDiamondsMatrix.m */; }; + E85E7B662A4EC35A00B6D00A /* YUMIRevenueReflectionGoldSpecificsMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7B602A4EC35A00B6D00A /* YUMIRevenueReflectionGoldSpecificsMatrix.m */; }; + E85E7B672A4EC35A00B6D00A /* YUMIDilemmaExtractAbstractMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7B612A4EC35A00B6D00A /* YUMIDilemmaExtractAbstractMatrix.m */; }; + E85E7B6B2A4EC39400B6D00A /* YUMIManeExchangeAuthorityMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7B692A4EC39400B6D00A /* YUMIManeExchangeAuthorityMatrix.m */; }; + E85E7B6E2A4EC4AE00B6D00A /* YUMIManeUnionExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7B6C2A4EC4AE00B6D00A /* YUMIManeUnionExternalizer.m */; }; + E85E7B9F2A4EC99300B6D00A /* YUMIManeGiveDiamondExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7B752A4EC99200B6D00A /* YUMIManeGiveDiamondExternalizer.m */; }; + E85E7BA02A4EC99300B6D00A /* YUMIManeGiveDiamondSpecificsMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7B7A2A4EC99200B6D00A /* YUMIManeGiveDiamondSpecificsMatrix.m */; }; + E85E7BA12A4EC99300B6D00A /* YUMIManeGiveDiamondMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7B7B2A4EC99200B6D00A /* YUMIManeGiveDiamondMatrix.m */; }; + E85E7BA22A4EC99300B6D00A /* YUMIManeGiveDiamondHuntforMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7B7F2A4EC99200B6D00A /* YUMIManeGiveDiamondHuntforMatrix.m */; }; + E85E7BA32A4EC99300B6D00A /* YUMIManeGiveDiamondSpecificsVC.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7B832A4EC99200B6D00A /* YUMIManeGiveDiamondSpecificsVC.m */; }; + E85E7BA42A4EC99300B6D00A /* YUMIManeGiveDiamondElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7B862A4EC99200B6D00A /* YUMIManeGiveDiamondElement.m */; }; + E85E7BA52A4EC99300B6D00A /* YUMIManeChooseGiveDiamondRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7B872A4EC99200B6D00A /* YUMIManeChooseGiveDiamondRegard.m */; }; + E85E7BA62A4EC99300B6D00A /* YUMIManeGiveDiamondHuntforRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7B892A4EC99200B6D00A /* YUMIManeGiveDiamondHuntforRegard.m */; }; + E85E7BA72A4EC99300B6D00A /* YUMIManeGiveDiamondCiphercodeRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7B8A2A4EC99200B6D00A /* YUMIManeGiveDiamondCiphercodeRegard.m */; }; + E85E7BA82A4EC99300B6D00A /* YUMIManeChooseGivePresentRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7B922A4EC99200B6D00A /* YUMIManeChooseGivePresentRegardElement.m */; }; + E85E7BA92A4EC99300B6D00A /* YUMIManeConfirmGiveDiamondRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7B952A4EC99200B6D00A /* YUMIManeConfirmGiveDiamondRegard.m */; }; + E85E7BAA2A4EC99300B6D00A /* YUMIManeGiveDiamondPwordRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7B962A4EC99200B6D00A /* YUMIManeGiveDiamondPwordRegard.m */; }; + E85E7BAB2A4EC99300B6D00A /* YUMIManeChooseGivePresentRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7B972A4EC99200B6D00A /* YUMIManeChooseGivePresentRegard.m */; }; + E85E7BAC2A4EC99300B6D00A /* YUMIManeGiveDiamondSpecificsRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7B982A4EC99200B6D00A /* YUMIManeGiveDiamondSpecificsRegard.m */; }; + E85E7BAD2A4EC99300B6D00A /* YUMIManeGiveDiamondSpecificsElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7B992A4EC99200B6D00A /* YUMIManeGiveDiamondSpecificsElement.m */; }; + E85E7BAE2A4EC99300B6D00A /* YUMIManeGiveDiamondVC.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7B9A2A4EC99200B6D00A /* YUMIManeGiveDiamondVC.m */; }; + E85E7BAF2A4EC99300B6D00A /* YUMIManeChooseGiveDiamondVC.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7B9B2A4EC99200B6D00A /* YUMIManeChooseGiveDiamondVC.m */; }; + E85E7BB02A4EC99300B6D00A /* Api+GiveDiamond.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7B9E2A4EC99200B6D00A /* Api+GiveDiamond.m */; }; + E85E7BB32A4ED45300B6D00A /* YUMIPageControl.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7BB22A4ED45300B6D00A /* YUMIPageControl.m */; }; + E85E7BB62A4ED59900B6D00A /* YUMIRevenueReflectionGoldSpecificsElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7BB52A4ED59900B6D00A /* YUMIRevenueReflectionGoldSpecificsElement.m */; }; + E85E7BB92A4ED89F00B6D00A /* YUMIRevenueReflectionGoldSpecificsIntelligenceRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7BB82A4ED89F00B6D00A /* YUMIRevenueReflectionGoldSpecificsIntelligenceRegard.m */; }; + E85E7BBC2A4EE70B00B6D00A /* YUMIManeTheUnionElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7BBB2A4EE70B00B6D00A /* YUMIManeTheUnionElement.m */; }; + E85E7BBF2A4EE7AC00B6D00A /* YUMIManeFeaturealConcentrateElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7BBE2A4EE7AC00B6D00A /* YUMIManeFeaturealConcentrateElement.m */; }; + E85E7BC22A4EE82300B6D00A /* YUMIManeStatementElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E85E7BC12A4EE82300B6D00A /* YUMIManeStatementElement.m */; }; + E86507E5281A7D4D006951B0 /* CommunicationSatisfactionTweetRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E86507E4281A7D4D006951B0 /* CommunicationSatisfactionTweetRegard.m */; }; + E86507E8281A8212006951B0 /* SatisfactionTweetMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E86507E7281A8212006951B0 /* SatisfactionTweetMatrix.m */; }; + E86507EB281A88A9006951B0 /* CommunicationSatisfactionCommunicationSolitaireRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E86507EA281A88A9006951B0 /* CommunicationSatisfactionCommunicationSolitaireRegard.m */; }; + E86596432701611A00846EBD /* UIImage+ImageEffects.m in Sources */ = {isa = PBXBuildFile; fileRef = E86596412701611A00846EBD /* UIImage+ImageEffects.m */; }; + E86596512701A1C000846EBD /* StatsticsticsServing.m in Sources */ = {isa = PBXBuildFile; fileRef = E86596502701A1C000846EBD /* StatsticsticsServing.m */; }; + E86596542701A55500846EBD /* StatsticsticsServingFacilitater.m in Sources */ = {isa = PBXBuildFile; fileRef = E86596532701A55500846EBD /* StatsticsticsServingFacilitater.m */; }; + E8659909273E800D00EE349D /* YUMIPresentAssembletionRegardFlowProgramming.m in Sources */ = {isa = PBXBuildFile; fileRef = E8659908273E800D00EE349D /* YUMIPresentAssembletionRegardFlowProgramming.m */; }; + E8664ED027E42238000171BA /* YUMIChamberCombatIntratemporalPickerRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E8664ECF27E42238000171BA /* YUMIChamberCombatIntratemporalPickerRegard.m */; }; + E8664ED327E4258A000171BA /* ChamberCombatIntratemporalProvisionMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E8664ED227E4258A000171BA /* ChamberCombatIntratemporalProvisionMatrix.m */; }; + E8664ED627E434D5000171BA /* YUMIChamberCombatReflectionRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E8664ED527E434D5000171BA /* YUMIChamberCombatReflectionRegardGovernancer.m */; }; + E8664ED927E4355C000171BA /* YUMIChamberCombatReflectionTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E8664ED827E4355C000171BA /* YUMIChamberCombatReflectionTabulationRegardElement.m */; }; + E8664EDC27E43632000171BA /* YUMIChamberCombatDispossessTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E8664EDB27E43632000171BA /* YUMIChamberCombatDispossessTabulationRegardElement.m */; }; + E8664EDF27E45EC7000171BA /* YUMIChamberCombatReflectionExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = E8664EDE27E45EC7000171BA /* YUMIChamberCombatReflectionExternalizer.m */; }; + E8664EE327E47711000171BA /* YUMIChamberCombatReflectionNickRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E8664EE227E47711000171BA /* YUMIChamberCombatReflectionNickRegard.m */; }; + E8664EE627E482EF000171BA /* ChamberCombatSquadMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E8664EE527E482EF000171BA /* ChamberCombatSquadMatrix.m */; }; + E866B6E52759F96F009B002A /* YUMIMiniChamberRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E866B6E42759F96F009B002A /* YUMIMiniChamberRegard.m */; }; + E8680718271967B00024F48F /* MiecreoscoopeRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E8680717271967B00024F48F /* MiecreoscoopeRegard.m */; }; + E86A16BF2856D4D5004228B8 /* YUMIInterlocutionDiscoveryStrangeBewelcometoStatementRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E86A16BE2856D4D5004228B8 /* YUMIInterlocutionDiscoveryStrangeBewelcometoStatementRegard.m */; }; + E86A16C22856D635004228B8 /* YUMIInterlocutionDiscoveryStrangeBewelcometoTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E86A16C12856D635004228B8 /* YUMIInterlocutionDiscoveryStrangeBewelcometoTabulationRegardElement.m */; }; + E86A16C52856DBEC004228B8 /* DiscoveryStrangeBewelcometoStatementMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E86A16C42856DBEC004228B8 /* DiscoveryStrangeBewelcometoStatementMatrix.m */; }; + E86A16CE28574844004228B8 /* YUMIChamberLicneseHourRateRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E86A16CD28574844004228B8 /* YUMIChamberLicneseHourRateRegard.m */; }; + E86E79CD28A4E045006DAF48 /* CommunicationSatisfactionVenturePrecautiousRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E86E79CC28A4E045006DAF48 /* CommunicationSatisfactionVenturePrecautiousRegard.m */; }; + E86E79D028A4E0B2006DAF48 /* SatisfactionRistPrecautiousMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E86E79CF28A4E0B2006DAF48 /* SatisfactionRistPrecautiousMatrix.m */; }; + E86E79D328A4E94E006DAF48 /* InterlocutionVentureRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E86E79D228A4E94E006DAF48 /* InterlocutionVentureRegard.m */; }; + E86E79D628A4EA0C006DAF48 /* InterlocutionVentureCache.m in Sources */ = {isa = PBXBuildFile; fileRef = E86E79D528A4EA0C006DAF48 /* InterlocutionVentureCache.m */; }; + E86F6185284F4E4800E8EC9A /* ChamberHalfHourRateMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E86F6184284F4E4800E8EC9A /* ChamberHalfHourRateMatrix.m */; }; + E872309326E8D31500B90D4F /* SurmountValidationCodeRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E872309226E8D31500B90D4F /* SurmountValidationCodeRegard.m */; }; + E8729EEC2A3B34D30076D80A /* index.html in Resources */ = {isa = PBXBuildFile; fileRef = E8729EE72A3B34D20076D80A /* index.html */; }; + E8729EED2A3B34D30076D80A /* upload.html in Resources */ = {isa = PBXBuildFile; fileRef = E8729EE82A3B34D20076D80A /* upload.html */; }; + E8729EEE2A3B34D30076D80A /* css in Resources */ = {isa = PBXBuildFile; fileRef = E8729EE92A3B34D30076D80A /* css */; }; + E8729EEF2A3B34D30076D80A /* images in Resources */ = {isa = PBXBuildFile; fileRef = E8729EEA2A3B34D30076D80A /* images */; }; + E8729EF02A3B34D30076D80A /* js in Resources */ = {isa = PBXBuildFile; fileRef = E8729EEB2A3B34D30076D80A /* js */; }; + E873EB02280922720071030D /* YUMIManeConsumerAbstractDispossessAssembletionRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E873EB01280922720071030D /* YUMIManeConsumerAbstractDispossessAssembletionRegardElement.m */; }; + E873EB05280943ED0071030D /* YUMIManeConsumerAbstractPresentRamparatExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = E873EB04280943ED0071030D /* YUMIManeConsumerAbstractPresentRamparatExternalizer.m */; }; + E873EB09280960990071030D /* YUMIManeConsumerAbstractReputationSolitaireRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E873EB08280960990071030D /* YUMIManeConsumerAbstractReputationSolitaireRegard.m */; }; + E873EB0C2809850D0071030D /* CommunicationSatisfactionCustomRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E873EB0B2809850D0071030D /* CommunicationSatisfactionCustomRegard.m */; }; + E873EB0F28098D500071030D /* CommunicationSatisfactionPresentRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E873EB0E28098D500071030D /* CommunicationSatisfactionPresentRegard.m */; }; + E874B88827215D39003954B9 /* MiecreoscoopeStateMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E874B88727215D39003954B9 /* MiecreoscoopeStateMatrix.m */; }; + E874B88B27215EAF003954B9 /* MiecreoscoopeMHTueueMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E874B88A27215EAF003954B9 /* MiecreoscoopeMHTueueMatrix.m */; }; + E8751E5928A62A390056EF44 /* Api+Sailing.m in Sources */ = {isa = PBXBuildFile; fileRef = E8751E5828A62A390056EF44 /* Api+Sailing.m */; }; + E8751E5C28A62A530056EF44 /* YUMIMarchingRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E8751E5B28A62A530056EF44 /* YUMIMarchingRegardGovernancer.m */; }; + E8751E5F28A62A970056EF44 /* YUMIMarchingExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = E8751E5E28A62A970056EF44 /* YUMIMarchingExternalizer.m */; }; + E8751E6328A646400056EF44 /* YUMIMarchingRateRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E8751E6228A646400056EF44 /* YUMIMarchingRateRegard.m */; }; + E8751E6628A6465A0056EF44 /* YUMIMarchingRateMetroRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E8751E6528A6465A0056EF44 /* YUMIMarchingRateMetroRegard.m */; }; + E8751E6B28A64C6E0056EF44 /* YUMIMarchingRateTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E8751E6A28A64C6E0056EF44 /* YUMIMarchingRateTabulationRegardElement.m */; }; + E8751E6E28A64F990056EF44 /* YUMIMarchingDispossessTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E8751E6D28A64F990056EF44 /* YUMIMarchingDispossessTabulationRegardElement.m */; }; + E8751E7128A6541B0056EF44 /* ChamberMarchingRateMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E8751E7028A6541B0056EF44 /* ChamberMarchingRateMatrix.m */; }; + E8751E7428A665BC0056EF44 /* ChamberMarchingAbstractMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E8751E7328A665BC0056EF44 /* ChamberMarchingAbstractMatrix.m */; }; + E875A1B829755EE200AB1BBD /* InterlocutionConsumerAbstractTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E875A1B729755EE200AB1BBD /* InterlocutionConsumerAbstractTabulationRegardElement.m */; }; + E875FA8727D619820086ED04 /* ClientAtomicMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E875FA8627D619820086ED04 /* ClientAtomicMatrix.m */; }; + E8778AE12988B4C300CF139B /* CommunicationRevokeMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E8778AE02988B4C300CF139B /* CommunicationRevokeMatrix.m */; }; + E8778AE42988B57B00CF139B /* CommunicationSatisfactionRevokeRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E8778AE32988B57B00CF139B /* CommunicationSatisfactionRevokeRegard.m */; }; + E8778AE72988C1E000CF139B /* YUMIInterlocutionHalloImportRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E8778AE62988C1E000CF139B /* YUMIInterlocutionHalloImportRegard.m */; }; + E8778AF02988EF0600CF139B /* YUMIInterlocutionSpeakHalloRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E8778AEF2988EF0600CF139B /* YUMIInterlocutionSpeakHalloRegardGovernancer.m */; }; + E8778AF52988EF2B00CF139B /* YUMIInterlocutionSpeakHalloTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E8778AF42988EF2B00CF139B /* YUMIInterlocutionSpeakHalloTabulationRegardElement.m */; }; + E8778AF82988F4E200CF139B /* YUMIInterlocutionSpeakHalloIntelligencerRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E8778AF72988F4E200CF139B /* YUMIInterlocutionSpeakHalloIntelligencerRegard.m */; }; + E8778AFB2989034200CF139B /* YUMIInterlocutionSpeakHalloDispossessTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E8778AFA2989034200CF139B /* YUMIInterlocutionSpeakHalloDispossessTabulationRegardElement.m */; }; + E877A7EB2783E24700EFACED /* EngagementPhaseRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E877A7EA2783E24700EFACED /* EngagementPhaseRegard.m */; }; + E877A7EE278428FB00EFACED /* MiecreoscoopeEngagementProgressRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E877A7ED278428FB00EFACED /* MiecreoscoopeEngagementProgressRegard.m */; }; + E877A7F127842B2F00EFACED /* YUMIChamberEngagementTissuePrecautiousRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E877A7F027842B2F00EFACED /* YUMIChamberEngagementTissuePrecautiousRegard.m */; }; + E877A7F427842EF800EFACED /* YUMIChamberEngagementVipUpwardsLoudspeakerRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E877A7F327842EF800EFACED /* YUMIChamberEngagementVipUpwardsLoudspeakerRegard.m */; }; + E87888F42738C30E00BF1D57 /* StoreKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E87888F32738C30E00BF1D57 /* StoreKit.framework */; }; + E8788934273A53D700BF1D57 /* YUMIDischargePresentRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E8788933273A53D700BF1D57 /* YUMIDischargePresentRegard.m */; }; + E878893C273A54C300BF1D57 /* Api+Gift.m in Sources */ = {isa = PBXBuildFile; fileRef = E878893B273A54C300BF1D57 /* Api+Gift.m */; }; + E878893F273A54F500BF1D57 /* YUMIPresentExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = E878893E273A54F500BF1D57 /* YUMIPresentExternalizer.m */; }; + E8788942273A55AD00BF1D57 /* YUMIExternalizeConsumersRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E8788941273A55AD00BF1D57 /* YUMIExternalizeConsumersRegard.m */; }; + E8788945273A55C200BF1D57 /* YUMIPresentAbstractRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E8788944273A55C200BF1D57 /* YUMIPresentAbstractRegard.m */; }; + E8788948273A55D000BF1D57 /* YUMIPresentObstacleRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E8788947273A55D000BF1D57 /* YUMIPresentObstacleRegard.m */; }; + E878894C273A607C00BF1D57 /* YUMIExternalizeConsumerAssembletionRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E878894B273A607C00BF1D57 /* YUMIExternalizeConsumerAssembletionRegardElement.m */; }; + E8788950273A699900BF1D57 /* ThemeColor+SendGift.m in Sources */ = {isa = PBXBuildFile; fileRef = E878894F273A699900BF1D57 /* ThemeColor+SendGift.m */; }; + E878B8582835F0D300E22DCF /* SeparationsCoactiveMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E878B8572835F0D300E22DCF /* SeparationsCoactiveMatrix.m */; }; + E878B85B2835F3BF00E22DCF /* YUMISeparationsCoactiveTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E878B85A2835F3BF00E22DCF /* YUMISeparationsCoactiveTabulationRegardElement.m */; }; + E878B85E283640A500E22DCF /* SeparationsUnReadMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E878B85D283640A500E22DCF /* SeparationsUnReadMatrix.m */; }; + E87A24F1272935920086A794 /* YUMICommunicationRemoteExtMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E87A24F0272935920086A794 /* YUMICommunicationRemoteExtMatrix.m */; }; + E87A27032758BC81002DDC7A /* YUMIChamberHuntforAccommodatedRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E87A27022758BC81002DDC7A /* YUMIChamberHuntforAccommodatedRegardGovernancer.m */; }; + E87AE7F9277AABE50037823A /* YUMIChamberCoupleStatementRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E87AE7F8277AABE50037823A /* YUMIChamberCoupleStatementRegardGovernancer.m */; }; + E87AE7FC277AAC450037823A /* YUMIChamberCoupleExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = E87AE7FB277AAC450037823A /* YUMIChamberCoupleExternalizer.m */; }; + E87AE8C1284E184300CAFBB3 /* ChamberStrangeConsumerBewelcometoMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E87AE8C0284E184300CAFBB3 /* ChamberStrangeConsumerBewelcometoMatrix.m */; }; + E87AE8C5284E1A8400CAFBB3 /* YUMIChamberStrangeConsumerBewelcometoRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E87AE8C4284E1A8400CAFBB3 /* YUMIChamberStrangeConsumerBewelcometoRegard.m */; }; + E87C0A9D27D9986700CB2241 /* YUMIChamberAcceptAssembletionFlowProgramming.m in Sources */ = {isa = PBXBuildFile; fileRef = E87C0A9C27D9986700CB2241 /* YUMIChamberAcceptAssembletionFlowProgramming.m */; }; + E87C0AA027D9DE6400CB2241 /* ChamberAcceptDischargeAbstractMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E87C0A9F27D9DE6400CB2241 /* ChamberAcceptDischargeAbstractMatrix.m */; }; + E87C54BE2823CC5B0051AA11 /* YUMIManeReassociationSurmountPwordExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = E87C54BD2823CC5B0051AA11 /* YUMIManeReassociationSurmountPwordExternalizer.m */; }; + E87C54C22823CD6F0051AA11 /* YUMIManeReassociationSurmountPwordRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E87C54C12823CD6F0051AA11 /* YUMIManeReassociationSurmountPwordRegardGovernancer.m */; }; + E87DF4B02A429B32009C1185 /* YUMIThresholdReindictRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E87DF4AE2A429B32009C1185 /* YUMIThresholdReindictRegard.m */; }; + E87DF4B32A429C6E009C1185 /* ThresholdChargeChamberWindowMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E87DF4B22A429C6E009C1185 /* ThresholdChargeChamberWindowMatrix.m */; }; + E87DF4B72A42C2FD009C1185 /* YUMIThresholdReindictAssembletionRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E87DF4B52A42C2FD009C1185 /* YUMIThresholdReindictAssembletionRegard.m */; }; + E87DF4BF2A42C8C1009C1185 /* ResidenceCoupleMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E87DF4BE2A42C8C1009C1185 /* ResidenceCoupleMatrix.m */; }; + E87DF4C22A42C900009C1185 /* YUMINoteRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E87DF4C12A42C900009C1185 /* YUMINoteRegard.m */; }; + E87DF4CC2A42C960009C1185 /* ResidenceOriflammeAbstractMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E87DF4CB2A42C960009C1185 /* ResidenceOriflammeAbstractMatrix.m */; }; + E87DF4D42A42C9B1009C1185 /* ResidenceEncourageChamberMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E87DF4D32A42C9B1009C1185 /* ResidenceEncourageChamberMatrix.m */; }; + E87DF4D72A42C9C3009C1185 /* ResidenceDisportChamberMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E87DF4D52A42C9C3009C1185 /* ResidenceDisportChamberMatrix.m */; }; + E87DF4DA2A42C9D9009C1185 /* ResidenceAssembleChamberMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E87DF4D82A42C9D8009C1185 /* ResidenceAssembleChamberMatrix.m */; }; + E87DF4DD2A42CA12009C1185 /* ResidenceHuntforConsequentMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E87DF4DB2A42CA12009C1185 /* ResidenceHuntforConsequentMatrix.m */; }; + E87DF4E02A42CA92009C1185 /* YUMIResidenceSloganRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E87DF4DE2A42CA92009C1185 /* YUMIResidenceSloganRegardGovernancer.m */; }; + E87DF4E42A42CAD2009C1185 /* YUMIResidenceHuntforNevRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E87DF4E22A42CAD2009C1185 /* YUMIResidenceHuntforNevRegard.m */; }; + E87DF4E72A42CB00009C1185 /* YUMIResidenceExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = E87DF4E52A42CAFF009C1185 /* YUMIResidenceExternalizer.m */; }; + E87DF4EC2A42CB60009C1185 /* YUMIHuntforStatementTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E87DF4EA2A42CB60009C1185 /* YUMIHuntforStatementTabulationRegardElement.m */; }; + E87DF4EF2A42CB90009C1185 /* YUMIResidenceAssembleChamberTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E87DF4EE2A42CB90009C1185 /* YUMIResidenceAssembleChamberTabulationRegardElement.m */; }; + E87DF4F22A42CBEC009C1185 /* YUMIResidenceConsumerRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E87DF4F02A42CBEC009C1185 /* YUMIResidenceConsumerRegard.m */; }; + E87DF4F52A42CC49009C1185 /* ResidenceParrotAbstractMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E87DF4F42A42CC49009C1185 /* ResidenceParrotAbstractMatrix.m */; }; + E87DF4F82A42CCAB009C1185 /* YUMIResidenceHuntforRelateRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E87DF4F62A42CCAB009C1185 /* YUMIResidenceHuntforRelateRegard.m */; }; + E87DF4FB2A42CCDE009C1185 /* YUMIResidenceDeficitommendAssembletionRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E87DF4FA2A42CCDE009C1185 /* YUMIResidenceDeficitommendAssembletionRegardElement.m */; }; + E87DF4FE2A42CD7E009C1185 /* YUMIChamberHuntforEncourageIntelligenceRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E87DF4FC2A42CD7D009C1185 /* YUMIChamberHuntforEncourageIntelligenceRegard.m */; }; + E87DF5022A42CDF1009C1185 /* YUMIResidenceConsiderationAssembletionRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E87DF5012A42CDF1009C1185 /* YUMIResidenceConsiderationAssembletionRegardElement.m */; }; + E87DF5052A42CE21009C1185 /* YUMIResidenceHuntforReflectionElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E87DF5042A42CE21009C1185 /* YUMIResidenceHuntforReflectionElement.m */; }; + E87DF5082A42CE79009C1185 /* YUMIInChamberReflectionExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = E87DF5072A42CE79009C1185 /* YUMIInChamberReflectionExternalizer.m */; }; + E87DF50B2A42CEC9009C1185 /* ResidenceEveryOneHuntforMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E87DF50A2A42CEC9009C1185 /* ResidenceEveryOneHuntforMatrix.m */; }; + E87DF50E2A42CF15009C1185 /* ResidenceEnergeticChamberMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E87DF50D2A42CF15009C1185 /* ResidenceEnergeticChamberMatrix.m */; }; + E87E545429AA05EA00EBE52B /* YUMITerminalImpressionNevRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E87E545329AA05EA00EBE52B /* YUMITerminalImpressionNevRegard.m */; }; + E87E62592A3F560B002F68C9 /* YUMIResidenceParatiesRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E87E62562A3F560A002F68C9 /* YUMIResidenceParatiesRegardGovernancer.m */; }; + E87E625A2A3F560B002F68C9 /* YUMIResidenceEncourageRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E87E62582A3F560A002F68C9 /* YUMIResidenceEncourageRegardGovernancer.m */; }; + E87E625D2A3F5622002F68C9 /* YUMIStrangeResidenceRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E87E625C2A3F5622002F68C9 /* YUMIStrangeResidenceRegardGovernancer.m */; }; + E87E62622A3F568A002F68C9 /* YUMIStrangeResidenceNevRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E87E62602A3F5689002F68C9 /* YUMIStrangeResidenceNevRegard.m */; }; + E87E62682A3F571D002F68C9 /* YUMIResidenceAccommodatedExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = E87E62662A3F571C002F68C9 /* YUMIResidenceAccommodatedExternalizer.m */; }; + E87E62742A3F5907002F68C9 /* YUMIResidenceOriflammeTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E87E626A2A3F5906002F68C9 /* YUMIResidenceOriflammeTabulationRegardElement.m */; }; + E87E62752A3F5907002F68C9 /* YUMIStrangeResidenceDisportDispossessTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E87E626D2A3F5906002F68C9 /* YUMIStrangeResidenceDisportDispossessTabulationRegardElement.m */; }; + E87E62762A3F5907002F68C9 /* YUMIStrangeResidenceDisportTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E87E626F2A3F5906002F68C9 /* YUMIStrangeResidenceDisportTabulationRegardElement.m */; }; + E87E62772A3F5907002F68C9 /* YUMIStrangeResidenceEncourageTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E87E62702A3F5907002F68C9 /* YUMIStrangeResidenceEncourageTabulationRegardElement.m */; }; + E87E62782A3F5907002F68C9 /* YUMIStrangeResidenceParatiesTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E87E62712A3F5907002F68C9 /* YUMIStrangeResidenceParatiesTabulationRegardElement.m */; }; + E87E627B2A3F5A0D002F68C9 /* YUMIStrangeResidenceEncourageExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = E87E627A2A3F5A0D002F68C9 /* YUMIStrangeResidenceEncourageExternalizer.m */; }; + E87E627F2A3F5D28002F68C9 /* YUMIStrangeResidenceDisportProvisionAssembletionRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E87E627E2A3F5D28002F68C9 /* YUMIStrangeResidenceDisportProvisionAssembletionRegardElement.m */; }; + E87E63F729AA1A5600EBE52B /* YuMi.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = E87E63F529AA1A5600EBE52B /* YuMi.xcdatamodeld */; }; + E87E914E2796678D00A7B3F2 /* YUMIManePretendDispossessTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E87E914D2796678D00A7B3F2 /* YUMIManePretendDispossessTabulationRegardElement.m */; }; + E87E91522796A15500A7B3F2 /* MiecreoscoopeExtMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E87E91512796A15500A7B3F2 /* MiecreoscoopeExtMatrix.m */; }; + E87E91552796B6DE00A7B3F2 /* YUMIChamberCallforConsumerRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E87E91542796B6DE00A7B3F2 /* YUMIChamberCallforConsumerRegardGovernancer.m */; }; + E880B39E278BD49E00A83B0D /* YUMIThroughoutChamberCombatRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E880B39D278BD49E00A83B0D /* YUMIThroughoutChamberCombatRegardGovernancer.m */; }; + E880B3A1278BD60C00A83B0D /* YUMIThroughoutChamberCombatChosenChamberRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E880B3A0278BD60C00A83B0D /* YUMIThroughoutChamberCombatChosenChamberRegard.m */; }; + E880B3A6278BD69900A83B0D /* YUMIThroughoutChamberCombatTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E880B3A5278BD69900A83B0D /* YUMIThroughoutChamberCombatTabulationRegardElement.m */; }; + E880B3A9278BD82300A83B0D /* ThroughoutChamberCombatAbstractMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E880B3A8278BD82300A83B0D /* ThroughoutChamberCombatAbstractMatrix.m */; }; + E880B3AC278BD98600A83B0D /* YUMIThroughoutChamberCombatDispossessTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E880B3AB278BD98600A83B0D /* YUMIThroughoutChamberCombatDispossessTabulationRegardElement.m */; }; + E880B3AF278BE1D800A83B0D /* Api+AcrossRoomPK.m in Sources */ = {isa = PBXBuildFile; fileRef = E880B3AE278BE1D800A83B0D /* Api+AcrossRoomPK.m */; }; + E880B3B2278C1D1800A83B0D /* YUMIThroughoutChamberCombatPreadominantRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E880B3B1278C1D1800A83B0D /* YUMIThroughoutChamberCombatPreadominantRegard.m */; }; + E880B3B5278C1FE400A83B0D /* YUMIThroughoutChamberCombatExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = E880B3B4278C1FE400A83B0D /* YUMIThroughoutChamberCombatExternalizer.m */; }; + E884C36C2743951B00E1EBED /* PresentAchieveAbstractMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E884C36B2743951B00E1EBED /* PresentAchieveAbstractMatrix.m */; }; + E884C36F2743AAC800E1EBED /* AttachmentMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E884C36E2743AAC800E1EBED /* AttachmentMatrix.m */; }; + E884C3722743AEDE00E1EBED /* CustomAttachmentDecoder.m in Sources */ = {isa = PBXBuildFile; fileRef = E884C3712743AEDE00E1EBED /* CustomAttachmentDecoder.m */; }; + E885D533297798E1004DC088 /* InterlocutionInstanllingTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E885D532297798E1004DC088 /* InterlocutionInstanllingTabulationRegardElement.m */; }; + E885D5362977CE28004DC088 /* InterlocutionInstanllingMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E885D5352977CE28004DC088 /* InterlocutionInstanllingMatrix.m */; }; + E885D5392977D10E004DC088 /* InterlocutionInstanllingConsumerRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E885D5382977D10E004DC088 /* InterlocutionInstanllingConsumerRegard.m */; }; + E885D53C2977FBFD004DC088 /* CommunicationIntratemporalRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E885D53B2977FBFD004DC088 /* CommunicationIntratemporalRegard.m */; }; + E88749B6282B8FC600C3C7DB /* SeparationsAbstractMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E88749B5282B8FC600C3C7DB /* SeparationsAbstractMatrix.m */; }; + E88863C6278EAFC3004BCFAB /* YUMIThroughoutChamberCombatConsequentRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E88863C5278EAFC3004BCFAB /* YUMIThroughoutChamberCombatConsequentRegard.m */; }; + E88863C9278EBA43004BCFAB /* YUMIThroughoutChamberCombatForceEndConsequentRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E88863C8278EBA43004BCFAB /* YUMIThroughoutChamberCombatForceEndConsequentRegard.m */; }; + E88863CC278EC336004BCFAB /* ThroughoutChamberCombatCaptureMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E88863CB278EC336004BCFAB /* ThroughoutChamberCombatCaptureMatrix.m */; }; + E88863CF278EC393004BCFAB /* YUMIThroughoutChamberCombatCaptureRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E88863CE278EC393004BCFAB /* YUMIThroughoutChamberCombatCaptureRegard.m */; }; + E88863D3278ED4C0004BCFAB /* Intratemporalstamp.m in Sources */ = {isa = PBXBuildFile; fileRef = E88863D2278ED4C0004BCFAB /* Intratemporalstamp.m */; }; + E8899C7F27853B6A007944BE /* EngagementMiecreoscoopeRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E8899C7E27853B6A007944BE /* EngagementMiecreoscoopeRegard.m */; }; + E8899C822785A694007944BE /* EngagementAbstractMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E8899C812785A694007944BE /* EngagementAbstractMatrix.m */; }; + E8899C852785CC69007944BE /* YUMIChamberEngagementBrightnessRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E8899C842785CC69007944BE /* YUMIChamberEngagementBrightnessRegard.m */; }; + E88B5CC126FB407B00DA9178 /* YUMIManeConsumerAbstractRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E88B5CC026FB407B00DA9178 /* YUMIManeConsumerAbstractRegardGovernancer.m */; }; + E88B5CC526FB42B000DA9178 /* YUMIManeConsumerAbstractIntelligencerRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E88B5CC426FB42B000DA9178 /* YUMIManeConsumerAbstractIntelligencerRegard.m */; }; + E88C72912828EA4E0047FB2B /* Manual+CoreDataProperties.m in Sources */ = {isa = PBXBuildFile; fileRef = E88C728F2828EA4E0047FB2B /* Manual+CoreDataProperties.m */; }; + E88C72922828EA4E0047FB2B /* Manual+CoreDataClass.m in Sources */ = {isa = PBXBuildFile; fileRef = E88C72902828EA4E0047FB2B /* Manual+CoreDataClass.m */; }; + E88C72952828F1AD0047FB2B /* YUMIChamberManualBibliothecaRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E88C72942828F1AD0047FB2B /* YUMIChamberManualBibliothecaRegardGovernancer.m */; }; + E88C72992828F3620047FB2B /* YUMIChamberManualBibliothecaTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E88C72982828F3620047FB2B /* YUMIChamberManualBibliothecaTabulationRegardElement.m */; }; + E88C729C2828F37D0047FB2B /* YUMIChamberManualBibliothecaDispossessTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E88C729B2828F37D0047FB2B /* YUMIChamberManualBibliothecaDispossessTabulationRegardElement.m */; }; + E88C72A02828FCD40047FB2B /* YUMIManualBibliothecaDisportRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E88C729F2828FCD40047FB2B /* YUMIManualBibliothecaDisportRegard.m */; }; + E88C72A3282917590047FB2B /* YUMIChamberManualReputationInstanllingRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E88C72A2282917590047FB2B /* YUMIChamberManualReputationInstanllingRegard.m */; }; + E88C72A6282921D60047FB2B /* YUMIChamberBackManualDisporterRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E88C72A5282921D60047FB2B /* YUMIChamberBackManualDisporterRegard.m */; }; + E88E4A80297673DC00019A50 /* InterlocutionNevEnergeticRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E88E4A7F297673DC00019A50 /* InterlocutionNevEnergeticRegard.m */; }; + E8901CF628B38D89001E9A92 /* YUMIGraffitiPresentRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E8901CF528B38D89001E9A92 /* YUMIGraffitiPresentRegard.m */; }; + E890BC04273CF0500007C46B /* YUMIPresentComputationMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E890BC03273CF0500007C46B /* YUMIPresentComputationMatrix.m */; }; + E890BC07273CF1800007C46B /* YUMIPresentComputationAssembletionRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E890BC06273CF1800007C46B /* YUMIPresentComputationAssembletionRegardElement.m */; }; + E890BC0D273D09A50007C46B /* YUMIPresentComputationRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E890BC0C273D09A50007C46B /* YUMIPresentComputationRegard.m */; }; + E890BC10273D23F00007C46B /* PresentAbstractMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E890BC0F273D23F00007C46B /* PresentAbstractMatrix.m */; }; + E8950180282CAC49007E459A /* YUMISeparationsConsumerAbstractRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E895017F282CAC49007E459A /* YUMISeparationsConsumerAbstractRegard.m */; }; + E8950183282CAC6A007E459A /* YUMISeparationsAppearanceRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E8950182282CAC6A007E459A /* YUMISeparationsAppearanceRegard.m */; }; + E8950186282CAC80007E459A /* YUMISeparationsTooObstacleRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E8950185282CAC80007E459A /* YUMISeparationsTooObstacleRegard.m */; }; + E8950189282CFFB1007E459A /* YUMISeparationsProgrammingDisposition.m in Sources */ = {isa = PBXBuildFile; fileRef = E8950188282CFFB1007E459A /* YUMISeparationsProgrammingDisposition.m */; }; + E895018C282D0701007E459A /* YUMISepartionMotifRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E895018B282D0701007E459A /* YUMISepartionMotifRegard.m */; }; + E896A9942A49F8A20010FE65 /* login_vapbg.mp4 in Resources */ = {isa = PBXBuildFile; fileRef = E896A9932A49F8A20010FE65 /* login_vapbg.mp4 */; }; + E896EF942771AAC100AD2CC1 /* YUMIManeFanaticsExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = E896EF932771AAC100AD2CC1 /* YUMIManeFanaticsExternalizer.m */; }; + E896EF972771AAE400AD2CC1 /* YUMIManeConsiderationExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = E896EF962771AAE400AD2CC1 /* YUMIManeConsiderationExternalizer.m */; }; + E896EF9C2771AE6B00AD2CC1 /* YUMIManeFanaticsRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E896EF9B2771AE6B00AD2CC1 /* YUMIManeFanaticsRegardGovernancer.m */; }; + E896EF9F2771AE7B00AD2CC1 /* YUMIManeConsiderationRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E896EF9E2771AE7B00AD2CC1 /* YUMIManeConsiderationRegardGovernancer.m */; }; + E896EFA22771AE9400AD2CC1 /* YUMIManeAssistantRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E896EFA12771AE9400AD2CC1 /* YUMIManeAssistantRegardGovernancer.m */; }; + E896EFA62771AEDD00AD2CC1 /* YUMIManeFanaticsTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E896EFA52771AEDD00AD2CC1 /* YUMIManeFanaticsTabulationRegardElement.m */; }; + E896EFA92771AEEC00AD2CC1 /* YUMIManeConsiderationTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E896EFA82771AEEC00AD2CC1 /* YUMIManeConsiderationTabulationRegardElement.m */; }; + E896EFAC2771AEFE00AD2CC1 /* YUMIManeAssistantTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E896EFAB2771AEFE00AD2CC1 /* YUMIManeAssistantTabulationRegardElement.m */; }; + E896EFAF2771AF0F00AD2CC1 /* YUMIManeAssistantDispossessTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E896EFAE2771AF0F00AD2CC1 /* YUMIManeAssistantDispossessTabulationRegardElement.m */; }; + E896EFB22771C93B00AD2CC1 /* YUMIManeAssistantNumberRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E896EFB12771C93B00AD2CC1 /* YUMIManeAssistantNumberRegard.m */; }; + E897ABFC28AF2E71003B3587 /* YUMIMarchingPresentRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E897ABFB28AF2E71003B3587 /* YUMIMarchingPresentRegard.m */; }; + E897ABFF28AF39B4003B3587 /* YUMIMarchingBrightnessRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E897ABFE28AF39B4003B3587 /* YUMIMarchingBrightnessRegard.m */; }; + E8998D7A2859784200C68558 /* YUMISVGADisporter.m in Sources */ = {isa = PBXBuildFile; fileRef = E8998D792859784200C68558 /* YUMISVGADisporter.m */; }; + E8998D8028597B0300C68558 /* YUMIChamberFortunateBigCaptureRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E8998D7F28597B0300C68558 /* YUMIChamberFortunateBigCaptureRegard.m */; }; + E8998D852859B4FA00C68558 /* YUMIManeConsumerAbstractPresentRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E8998D842859B4FA00C68558 /* YUMIManeConsumerAbstractPresentRegard.m */; }; + E8998D8B2859CB6A00C68558 /* YUMIManeConsumerAbstractPresentRamparatMetroRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E8998D8A2859CB6A00C68558 /* YUMIManeConsumerAbstractPresentRamparatMetroRegardGovernancer.m */; }; + E8998D962859DD6F00C68558 /* UIView+Corner.m in Sources */ = {isa = PBXBuildFile; fileRef = E8998D952859DD6F00C68558 /* UIView+Corner.m */; }; + E899C68927508F4E00E189E5 /* YUMIConsumerSolitaireAbstractMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E899C68827508F4E00E189E5 /* YUMIConsumerSolitaireAbstractMatrix.m */; }; + E899C68C275093B800E189E5 /* YUMIConsumerSolitaireMiecreoscoopeProvisionMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E899C68B275093B800E189E5 /* YUMIConsumerSolitaireMiecreoscoopeProvisionMatrix.m */; }; + E89BD7D4277D471100E31B19 /* YUMIChamberOnlineTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E89BD7D3277D471100E31B19 /* YUMIChamberOnlineTabulationRegardElement.m */; }; + E89D60BA271D643A001F8895 /* Api+Room.m in Sources */ = {isa = PBXBuildFile; fileRef = E89D60B9271D643A001F8895 /* Api+Room.m */; }; + E89D60BD271D647A001F8895 /* YUMIChamberExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = E89D60BC271D647A001F8895 /* YUMIChamberExternalizer.m */; }; + E89D60C1271D64B9001F8895 /* ChamberAbstractMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E89D60C0271D64B9001F8895 /* ChamberAbstractMatrix.m */; }; + E89DA66427005932008483C1 /* YUMIIAPFacilitater.m in Sources */ = {isa = PBXBuildFile; fileRef = E89DA66327005932008483C1 /* YUMIIAPFacilitater.m */; }; + E89DA66727006443008483C1 /* ReindictStorage.m in Sources */ = {isa = PBXBuildFile; fileRef = E89DA66627006443008483C1 /* ReindictStorage.m */; }; + E89DA67227008D59008483C1 /* RamparatetAbstractMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E89DA67127008D59008483C1 /* RamparatetAbstractMatrix.m */; }; + E89DA67527009ACD008483C1 /* YUMIManeReindictNevRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E89DA67427009ACD008483C1 /* YUMIManeReindictNevRegard.m */; }; + E89DCF5428FFEC67001647EC /* YUMIDesirePresentHistoryTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E89DCF5328FFEC67001647EC /* YUMIDesirePresentHistoryTabulationRegardElement.m */; }; + E89DCF5728FFF076001647EC /* YUMIDesirePresentDispossessTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E89DCF5628FFF076001647EC /* YUMIDesirePresentDispossessTabulationRegardElement.m */; }; + E89DCF5A28FFF1AD001647EC /* YUMIDesirePresentDivisionRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E89DCF5928FFF1AD001647EC /* YUMIDesirePresentDivisionRegard.m */; }; + E89DCF5D2900E5EE001647EC /* DesirePresentHistoryMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E89DCF5C2900E5EE001647EC /* DesirePresentHistoryMatrix.m */; }; + E89DCF602900F4FB001647EC /* YUMIDesirePresentImportRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E89DCF5F2900F4FB001647EC /* YUMIDesirePresentImportRegard.m */; }; + E8A03DFF27635F960098D9EA /* YUMIChamberConfectioneryPresentRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E8A03DFE27635F960098D9EA /* YUMIChamberConfectioneryPresentRegard.m */; }; + E8A1F794290642500099C952 /* YUMIChamberFurthaerDisportRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E8A1F793290642500099C952 /* YUMIChamberFurthaerDisportRegardGovernancer.m */; }; + E8A1F7972906426B0099C952 /* YUMIChamberFurthaerDisportExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = E8A1F7962906426B0099C952 /* YUMIChamberFurthaerDisportExternalizer.m */; }; + E8A1F79C290644DC0099C952 /* YUMIChamberFurthaerDisportAssembletionRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E8A1F79B290644DC0099C952 /* YUMIChamberFurthaerDisportAssembletionRegardElement.m */; }; + E8A30BE328534A28003B4873 /* YUMIInterlocutionDiscoveryStrangeRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E8A30BE228534A28003B4873 /* YUMIInterlocutionDiscoveryStrangeRegardGovernancer.m */; }; + E8A30BE828534A63003B4873 /* YUMIInterlocutionDiscoveryStrangeTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E8A30BE728534A63003B4873 /* YUMIInterlocutionDiscoveryStrangeTabulationRegardElement.m */; }; + E8A30BEB28534A96003B4873 /* YUMIInterlocutionDiscoveryStrangeFiltrateRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E8A30BEA28534A96003B4873 /* YUMIInterlocutionDiscoveryStrangeFiltrateRegard.m */; }; + E8A30BEE28534AB1003B4873 /* YUMIInterlocutionDiscoveryStrangeExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = E8A30BED28534AB1003B4873 /* YUMIInterlocutionDiscoveryStrangeExternalizer.m */; }; + E8A30BF328534B17003B4873 /* Api+FindNew.m in Sources */ = {isa = PBXBuildFile; fileRef = E8A30BF228534B17003B4873 /* Api+FindNew.m */; }; + E8A30BF628534B35003B4873 /* DiscoveryStrangeConsumerAbstractMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E8A30BF528534B35003B4873 /* DiscoveryStrangeConsumerAbstractMatrix.m */; }; + E8A30BF928534E48003B4873 /* YUMIInterlocutionDiscoveryStrangeDispossessTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E8A30BF828534E48003B4873 /* YUMIInterlocutionDiscoveryStrangeDispossessTabulationRegardElement.m */; }; + E8A3538528FD67320014A784 /* PresentFortunatePingbackMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E8A3538428FD67320014A784 /* PresentFortunatePingbackMatrix.m */; }; + E8A3538E28FE5CED0014A784 /* Api+WishGift.m in Sources */ = {isa = PBXBuildFile; fileRef = E8A3538D28FE5CED0014A784 /* Api+WishGift.m */; }; + E8A3539128FE5F0F0014A784 /* DesirePresentAbstractMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E8A3539028FE5F0F0014A784 /* DesirePresentAbstractMatrix.m */; }; + E8A3539428FE605F0014A784 /* DesireExternalizeConsumerMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E8A3539328FE605F0014A784 /* DesireExternalizeConsumerMatrix.m */; }; + E8A3539728FE7C250014A784 /* YUMIDesirePresentExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = E8A3539628FE7C250014A784 /* YUMIDesirePresentExternalizer.m */; }; + E8A3539B28FE840A0014A784 /* YUMIDesirePresentRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E8A3539A28FE840A0014A784 /* YUMIDesirePresentRegardGovernancer.m */; }; + E8A353A028FE84670014A784 /* YUMIDesirePresentAbstractRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E8A3539F28FE84670014A784 /* YUMIDesirePresentAbstractRegard.m */; }; + E8A353A328FE90F60014A784 /* YUMIDesirePresentCreateRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E8A353A228FE90F60014A784 /* YUMIDesirePresentCreateRegardGovernancer.m */; }; + E8A3540128FEAC5E0014A784 /* YUMIDesirePresentTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E8A3540028FEAC5E0014A784 /* YUMIDesirePresentTabulationRegardElement.m */; }; + E8A3540428FEB7100014A784 /* YUMIDesirePresentHistoryRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E8A3540328FEB7100014A784 /* YUMIDesirePresentHistoryRegardGovernancer.m */; }; + E8A3540728FEBD460014A784 /* YUMIDesirePresentCreateProvisionRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E8A3540628FEBD460014A784 /* YUMIDesirePresentCreateProvisionRegardGovernancer.m */; }; + E8A3540A28FEC0510014A784 /* YUMIDesirePresentStatementRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E8A3540928FEC0510014A784 /* YUMIDesirePresentStatementRegard.m */; }; + E8A73F8728586A6F00FD9CBC /* YUMIPresentWeekSatelliteAssembletionRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E8A73F8628586A6F00FD9CBC /* YUMIPresentWeekSatelliteAssembletionRegardElement.m */; }; + E8A88D2727E8193400CA8837 /* YUMIChamberCombatChosenConsumerRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E8A88D2627E8193400CA8837 /* YUMIChamberCombatChosenConsumerRegard.m */; }; + E8A88D2A27E81C8600CA8837 /* YUMIChamberCombatConsumerAssembletionRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E8A88D2927E81C8600CA8837 /* YUMIChamberCombatConsumerAssembletionRegardElement.m */; }; + E8A88D2D27E81E8700CA8837 /* ChamberCombatChooseConsumerMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E8A88D2C27E81E8700CA8837 /* ChamberCombatChooseConsumerMatrix.m */; }; + E8A88D3027E85EEA00CA8837 /* ChamberCombatAbstractMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E8A88D2F27E85EEA00CA8837 /* ChamberCombatAbstractMatrix.m */; }; + E8AA6EEF27DF1E6B009B4C2B /* YUMIChamberMotifRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E8AA6EEE27DF1E6B009B4C2B /* YUMIChamberMotifRegardGovernancer.m */; }; + E8AA6EF227DF1E97009B4C2B /* YUMIChamberMotifExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = E8AA6EF127DF1E97009B4C2B /* YUMIChamberMotifExternalizer.m */; }; + E8AB630D28ADD8C60023B0D2 /* YUMISeparationMotifAccommodatedRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E8AB630C28ADD8C60023B0D2 /* YUMISeparationMotifAccommodatedRegardGovernancer.m */; }; + E8AB631028ADD92D0023B0D2 /* YUMISeparationsMotifRecommondRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E8AB630F28ADD92D0023B0D2 /* YUMISeparationsMotifRecommondRegardGovernancer.m */; }; + E8AB631328ADDCF20023B0D2 /* YUMISeparationsMotifIntelligencerRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E8AB631228ADDCF20023B0D2 /* YUMISeparationsMotifIntelligencerRegard.m */; }; + E8AB631628ADE2D20023B0D2 /* YUMISeparationsMotifRecentlyRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E8AB631528ADE2D20023B0D2 /* YUMISeparationsMotifRecentlyRegardGovernancer.m */; }; + E8AB631928ADE2F40023B0D2 /* YUMISeparationsMotifEncourageExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = E8AB631828ADE2F40023B0D2 /* YUMISeparationsMotifEncourageExternalizer.m */; }; + E8AB631C28ADE30E0023B0D2 /* YUMISeparationsMotifRecentlyExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = E8AB631B28ADE30E0023B0D2 /* YUMISeparationsMotifRecentlyExternalizer.m */; }; + E8AB632428AE10310023B0D2 /* YUMISepartionMotifStatementRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E8AB632328AE10310023B0D2 /* YUMISepartionMotifStatementRegardGovernancer.m */; }; + E8AB632728AE13210023B0D2 /* YUMISeparationsMotifStatementExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = E8AB632628AE13210023B0D2 /* YUMISeparationsMotifStatementExternalizer.m */; }; + E8AB632C28AE19600023B0D2 /* YUMISeparationsManeRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E8AB632B28AE19600023B0D2 /* YUMISeparationsManeRegardGovernancer.m */; }; + E8AB632F28AE19DE0023B0D2 /* YUMISeparationManeExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = E8AB632E28AE19DE0023B0D2 /* YUMISeparationManeExternalizer.m */; }; + E8AB633328AE51470023B0D2 /* YUMIMarchingCaptureRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E8AB633228AE51470023B0D2 /* YUMIMarchingCaptureRegard.m */; }; + E8AB633628AE54A40023B0D2 /* YUMIMarchingCaptureAssembletionRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E8AB633528AE54A40023B0D2 /* YUMIMarchingCaptureAssembletionRegardElement.m */; }; + E8AC721026F43955007D6E91 /* UIIndicateConstant.m in Sources */ = {isa = PBXBuildFile; fileRef = E8AC720F26F43955007D6E91 /* UIIndicateConstant.m */; }; + E8AC721326F46ADD007D6E91 /* YUMIManeInstanllingRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E8AC721226F46ADD007D6E91 /* YUMIManeInstanllingRegardGovernancer.m */; }; + E8AC721626F46B06007D6E91 /* YUMIManeInstanllingTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E8AC721526F46B06007D6E91 /* YUMIManeInstanllingTabulationRegardElement.m */; }; + E8AC721926F46E0B007D6E91 /* YUMIManeInstanllingProvisionMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E8AC721826F46E0B007D6E91 /* YUMIManeInstanllingProvisionMatrix.m */; }; + E8AC721C26F4720B007D6E91 /* YUMIManeInstanllingExternalize.m in Sources */ = {isa = PBXBuildFile; fileRef = E8AC721B26F4720B007D6E91 /* YUMIManeInstanllingExternalize.m */; }; + E8AC721E26F472BF007D6E91 /* FBCManeInstanllingCeremony.h in Sources */ = {isa = PBXBuildFile; fileRef = E8AC721D26F4723D007D6E91 /* FBCManeInstanllingCeremony.h */; }; + E8AC722126F47E23007D6E91 /* YUMIManeAboutUsRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E8AC722026F47E23007D6E91 /* YUMIManeAboutUsRegardGovernancer.m */; }; + E8AC722426F47E5E007D6E91 /* YUMIManeFeedbackRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E8AC722326F47E5E007D6E91 /* YUMIManeFeedbackRegardGovernancer.m */; }; + E8AC722726F482A4007D6E91 /* YUMIManeFeedbackExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = E8AC722626F482A4007D6E91 /* YUMIManeFeedbackExternalizer.m */; }; + E8AC722926F488DA007D6E91 /* FBCManeFeedbackCeremony.h in Sources */ = {isa = PBXBuildFile; fileRef = E8AC722826F48889007D6E91 /* FBCManeFeedbackCeremony.h */; }; + E8AC722C26F49580007D6E91 /* YUMIManeNotificaRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E8AC722B26F49580007D6E91 /* YUMIManeNotificaRegardGovernancer.m */; }; + E8AC722F26F49610007D6E91 /* YUMIManeNotificationProvisionMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E8AC722E26F49610007D6E91 /* YUMIManeNotificationProvisionMatrix.m */; }; + E8AC723226F49710007D6E91 /* YUMIManeNotificationTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E8AC723126F49710007D6E91 /* YUMIManeNotificationTabulationRegardElement.m */; }; + E8AC723526F49939007D6E91 /* YUMIManeNotificaExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = E8AC723426F49939007D6E91 /* YUMIManeNotificaExternalizer.m */; }; + E8AC723726F49982007D6E91 /* FBCManeNotificaCeremony.h in Sources */ = {isa = PBXBuildFile; fileRef = E8AC723626F49957007D6E91 /* FBCManeNotificaCeremony.h */; }; + E8AC723A26F49AAE007D6E91 /* YUMIManeNotifyStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = E8AC723926F49AAE007D6E91 /* YUMIManeNotifyStatus.m */; }; + E8AC723D26F4B6AA007D6E91 /* YUMISurmountDilemmaMobileConsequentRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E8AC723C26F4B6AA007D6E91 /* YUMISurmountDilemmaMobileConsequentRegardGovernancer.m */; }; + E8AE427327153A3500BEEBB2 /* YUMIChamberImportpriseAccommodatedRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E8AE427227153A3500BEEBB2 /* YUMIChamberImportpriseAccommodatedRegard.m */; }; + E8AEAED6271412EC0017FCE0 /* YUMIChamberRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E8AEAED5271412EC0017FCE0 /* YUMIChamberRegardGovernancer.m */; }; + E8AEAEED27141AE20017FCE0 /* YUMIChamberBackAccommodatedRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E8AEAEEC27141AE20017FCE0 /* YUMIChamberBackAccommodatedRegard.m */; }; + E8AEAEF027141C430017FCE0 /* YUMIChamberParrotAccommodatedRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E8AEAEEF27141C430017FCE0 /* YUMIChamberParrotAccommodatedRegard.m */; }; + E8AEAEF327141C7C0017FCE0 /* YUMIChamberCommunicationAccommodatedRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E8AEAEF227141C7C0017FCE0 /* YUMIChamberCommunicationAccommodatedRegard.m */; }; + E8AEAEF927141CA30017FCE0 /* ChamberIntelligencerRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E8AEAEF827141CA30017FCE0 /* ChamberIntelligencerRegard.m */; }; + E8AFF7E3298CA1E500FBDE32 /* InterlocutionSpeakHalloComputationMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E8AFF7E2298CA1E500FBDE32 /* InterlocutionSpeakHalloComputationMatrix.m */; }; + E8B3E8092848B871009746AB /* CallforConsumerAbstractMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E8B3E8082848B871009746AB /* CallforConsumerAbstractMatrix.m */; }; + E8B3E80C2848BA40009746AB /* StrangeConsumerBewelcometoMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E8B3E80B2848BA40009746AB /* StrangeConsumerBewelcometoMatrix.m */; }; + E8B825C226EA00DF009E8E9F /* SurmountValidationCodeExternalize.m in Sources */ = {isa = PBXBuildFile; fileRef = E8B825C126EA00DF009E8E9F /* SurmountValidationCodeExternalize.m */; }; + E8B825C726EA0D9A009E8E9F /* SurmountVerifCodeCeremony.h in Sources */ = {isa = PBXBuildFile; fileRef = E8B825C626EA0995009E8E9F /* SurmountVerifCodeCeremony.h */; }; + E8B825CA26EA1231009E8E9F /* SurmountValidationCodeRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E8B825C826EA1231009E8E9F /* SurmountValidationCodeRegardGovernancer.m */; }; + E8B825CD26EA18C8009E8E9F /* DJDKMIMOMColor.m in Sources */ = {isa = PBXBuildFile; fileRef = E8B825CC26EA18C8009E8E9F /* DJDKMIMOMColor.m */; }; + E8B846BC26FD7C1200A777FE /* UpwardsloadIndicate.m in Sources */ = {isa = PBXBuildFile; fileRef = E8B846BB26FD7C1200A777FE /* UpwardsloadIndicate.m */; }; + E8B846BF26FD827900A777FE /* YUMIManeConsumerAbstractAlbumRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E8B846BE26FD827900A777FE /* YUMIManeConsumerAbstractAlbumRegardGovernancer.m */; }; + E8B846C226FD82DC00A777FE /* YUMIManeConsumerAbstractAlbumAssembletionRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E8B846C126FD82DC00A777FE /* YUMIManeConsumerAbstractAlbumAssembletionRegardElement.m */; }; + E8B846C526FDB41A00A777FE /* YUMIManeConsumerAbstractlbumExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = E8B846C426FDB41A00A777FE /* YUMIManeConsumerAbstractlbumExternalizer.m */; }; + E8B846C726FDB45000A777FE /* FBCManeConsumerAbstractAlbumCeremony.h in Sources */ = {isa = PBXBuildFile; fileRef = E8B846C626FDB44100A777FE /* FBCManeConsumerAbstractAlbumCeremony.h */; }; + E8B846CB26FDD7CD00A777FE /* YUMIManeReindictRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E8B846CA26FDD7CD00A777FE /* YUMIManeReindictRegardGovernancer.m */; }; + E8B846CF26FDD96100A777FE /* YUMIManeRechageIntelligenceRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E8B846CE26FDD96100A777FE /* YUMIManeRechageIntelligenceRegard.m */; }; + E8B846D326FDDBE600A777FE /* YUMIManeReindictTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E8B846D226FDDBE600A777FE /* YUMIManeReindictTabulationRegardElement.m */; }; + E8B846D626FDE01B00A777FE /* YUMIManeReindictExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = E8B846D526FDE01B00A777FE /* YUMIManeReindictExternalizer.m */; }; + E8B846D826FDE17300A777FE /* FBCManeReindictCeremony.h in Sources */ = {isa = PBXBuildFile; fileRef = E8B846D726FDE16300A777FE /* FBCManeReindictCeremony.h */; }; + E8B846DC26FDE24300A777FE /* ReindictStatementMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E8B846DB26FDE24300A777FE /* ReindictStatementMatrix.m */; }; + E8B9842D28AB77F10022D026 /* YUMISeparationsAnnounceMotifRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E8B9842C28AB77F10022D026 /* YUMISeparationsAnnounceMotifRegard.m */; }; + E8B9843028AB90200022D026 /* YUMISepartionMotifStatementRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E8B9842F28AB90200022D026 /* YUMISepartionMotifStatementRegard.m */; }; + E8B9843328ABA2FF0022D026 /* SeparationsPicResAbstract.m in Sources */ = {isa = PBXBuildFile; fileRef = E8B9843228ABA2FF0022D026 /* SeparationsPicResAbstract.m */; }; + E8B9843628ABA8B40022D026 /* YUMISeparationAnnounceSuccessRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E8B9843528ABA8B40022D026 /* YUMISeparationAnnounceSuccessRegard.m */; }; + E8BD0F8828A9E9E400DE050D /* ChamberMarchingCaptureMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E8BD0F8728A9E9E400DE050D /* ChamberMarchingCaptureMatrix.m */; }; + E8BD0F8B28A9EB0A00DE050D /* ChamberMarchingCaptureStatementMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E8BD0F8A28A9EB0A00DE050D /* ChamberMarchingCaptureStatementMatrix.m */; }; + E8C1CD6627D88EF800376F83 /* YUMIChamberAcceptRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E8C1CD6527D88EF800376F83 /* YUMIChamberAcceptRegardGovernancer.m */; }; + E8C1CD6A27D8937800376F83 /* YUMIChamberAcceptAssembletionRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E8C1CD6927D8937800376F83 /* YUMIChamberAcceptAssembletionRegardElement.m */; }; + E8C1CD6D27D8938C00376F83 /* YUMIChamberAcceptChampionAssembletionRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E8C1CD6C27D8938C00376F83 /* YUMIChamberAcceptChampionAssembletionRegardElement.m */; }; + E8C1CD7027D894B800376F83 /* ChamberAcceptChampionProvisionMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E8C1CD6F27D894B800376F83 /* ChamberAcceptChampionProvisionMatrix.m */; }; + E8C1CD7327D8A16500376F83 /* YUMIChamberAcceptTool.m in Sources */ = {isa = PBXBuildFile; fileRef = E8C1CD7227D8A16500376F83 /* YUMIChamberAcceptTool.m */; }; + E8C1CD7627D8AE3D00376F83 /* YUMIChamberAcceptExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = E8C1CD7527D8AE3D00376F83 /* YUMIChamberAcceptExternalizer.m */; }; + E8C1CD7A27D8B29E00376F83 /* ChamberAcceptAbstractMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E8C1CD7927D8B29E00376F83 /* ChamberAcceptAbstractMatrix.m */; }; + E8C21501274B76F60079E6BF /* YUMIChamberBrightnessHitRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E8C21500274B76F60079E6BF /* YUMIChamberBrightnessHitRegard.m */; }; + E8C6FFCC27548120004DC9F0 /* Api+Home.m in Sources */ = {isa = PBXBuildFile; fileRef = E8C6FFC827548120004DC9F0 /* Api+Home.m */; }; + E8C6FFE02754EEF9004DC9F0 /* YUMIResidenceHuntforRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E8C6FFDF2754EEF9004DC9F0 /* YUMIResidenceHuntforRegardGovernancer.m */; }; + E8C6FFE62754FE53004DC9F0 /* YUMIResidenceHuntforExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = E8C6FFE52754FE53004DC9F0 /* YUMIResidenceHuntforExternalizer.m */; }; + E8CEA03D26EA3DE500644B44 /* SurmountCiphercodeExternalize.m in Sources */ = {isa = PBXBuildFile; fileRef = E8CEA03C26EA3DE500644B44 /* SurmountCiphercodeExternalize.m */; }; + E8D34D4728080295009C4835 /* YUMIManeConsumerAtomicRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E8D34D4628080295009C4835 /* YUMIManeConsumerAtomicRegardGovernancer.m */; }; + E8D34D4D28080351009C4835 /* YUMIManeAtomicCollectiveTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E8D34D4C28080351009C4835 /* YUMIManeAtomicCollectiveTabulationRegardElement.m */; }; + E8D34D5028080362009C4835 /* YUMIManeAtomicPresentTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E8D34D4F28080362009C4835 /* YUMIManeAtomicPresentTabulationRegardElement.m */; }; + E8D34D5628080393009C4835 /* YUMIManeAtomicPresentAssembletionRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E8D34D5528080393009C4835 /* YUMIManeAtomicPresentAssembletionRegardElement.m */; }; + E8D34D5A28082357009C4835 /* ConsumerPresentRamparatAbstractMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E8D34D5928082357009C4835 /* ConsumerPresentRamparatAbstractMatrix.m */; }; + E8D34D6028082BA5009C4835 /* YUMIManeConsumerAtomicExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = E8D34D5F28082BA5009C4835 /* YUMIManeConsumerAtomicExternalizer.m */; }; + E8D34D6428084E40009C4835 /* YUMIManeConsumerAbstractPresentRamparatRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E8D34D6328084E40009C4835 /* YUMIManeConsumerAbstractPresentRamparatRegardGovernancer.m */; }; + E8D34D6728084E88009C4835 /* YUMIManeConsumerAbstractPresentRamparatAssembletionRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E8D34D6628084E88009C4835 /* YUMIManeConsumerAbstractPresentRamparatAssembletionRegardElement.m */; }; + E8D4824A278D1F73003C1D08 /* YUMIThroughoutChamberCombatCallforRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E8D48249278D1F73003C1D08 /* YUMIThroughoutChamberCombatCallforRegard.m */; }; + E8D4824D278D2CE4003C1D08 /* YUMIThroughoutChamberCombatCallforConsequentRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E8D4824C278D2CE4003C1D08 /* YUMIThroughoutChamberCombatCallforConsequentRegard.m */; }; + E8D48250278D68BA003C1D08 /* YUMIAcrpssChamberCombatFasciaboardRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E8D4824F278D68BA003C1D08 /* YUMIAcrpssChamberCombatFasciaboardRegard.m */; }; + E8D48253278D8228003C1D08 /* ThroughoutChamberCombatFasciaboardMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E8D48252278D8228003C1D08 /* ThroughoutChamberCombatFasciaboardMatrix.m */; }; + E8D48256278D83AE003C1D08 /* YUMIThroughoutChamberCombatFasciaboardConsumerRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E8D48255278D83AE003C1D08 /* YUMIThroughoutChamberCombatFasciaboardConsumerRegard.m */; }; + E8D4DE442940462C00EC788D /* YUMIPresentTwelveSatellitePingbackRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E8D4DE432940462C00EC788D /* YUMIPresentTwelveSatellitePingbackRegard.m */; }; + E8D4DE472940473500EC788D /* PresentTwelveSatelliteThresholdMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E8D4DE462940473500EC788D /* PresentTwelveSatelliteThresholdMatrix.m */; }; + E8D55C9D28113218006935A5 /* CommunicationParrotMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E8D55C9C28113218006935A5 /* CommunicationParrotMatrix.m */; }; + E8D55CA0281186D6006935A5 /* InterlocutionVocalmusicReflectionRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E8D55C9F281186D6006935A5 /* InterlocutionVocalmusicReflectionRegard.m */; }; + E8D7D74B282BA1EC0007D7BD /* YUMISeparationsTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E8D7D74A282BA1EC0007D7BD /* YUMISeparationsTabulationRegardElement.m */; }; + E8DAC5AC2858305A00012CFD /* YUMIChamberCommunicationIntumesceRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E8DAC5AB2858305A00012CFD /* YUMIChamberCommunicationIntumesceRegard.m */; }; + E8DACCFB2766EDC60052092C /* MiecreoscoopePresentStressRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E8DACCFA2766EDC60052092C /* MiecreoscoopePresentStressRegard.m */; }; + E8DACCFE27673F870052092C /* PresentStressAbstractMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E8DACCFD27673F870052092C /* PresentStressAbstractMatrix.m */; }; + E8DBB6FD27B63CE000AA285D /* TraitCompetitionMiecreoscoopeRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E8DBB6FC27B63CE000AA285D /* TraitCompetitionMiecreoscoopeRegard.m */; }; + E8DD25DA295583920043C7D5 /* XCombatellegRandomCombatPreadominantRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E8DD25D9295583920043C7D5 /* XCombatellegRandomCombatPreadominantRegard.m */; }; + E8DEC99527648FA50078CB70 /* ClientDisposition.m in Sources */ = {isa = PBXBuildFile; fileRef = E8DEC99427648FA50078CB70 /* ClientDisposition.m */; }; + E8DEC99E2764A5B60078CB70 /* YUMIChamberFurthaerParrotRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E8DEC99D2764A5B60078CB70 /* YUMIChamberFurthaerParrotRegardGovernancer.m */; }; + E8DEC9A12764A5D20078CB70 /* YUMIChamberFurthaerProvisionMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E8DEC9A02764A5D20078CB70 /* YUMIChamberFurthaerProvisionMatrix.m */; }; + E8DEC9A42764A6600078CB70 /* YUMIFurthaerParrotExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = E8DEC9A32764A6600078CB70 /* YUMIFurthaerParrotExternalizer.m */; }; + E8DEC9A82764A68B0078CB70 /* Api+MoreMenu.m in Sources */ = {isa = PBXBuildFile; fileRef = E8DEC9A72764A68B0078CB70 /* Api+MoreMenu.m */; }; + E8DEC9AC2764A6CD0078CB70 /* YUMIChamberFurthaerParrotAssembletionRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E8DEC9AB2764A6CD0078CB70 /* YUMIChamberFurthaerParrotAssembletionRegardElement.m */; }; + E8E0DAE0285C20E500566A2F /* CommunicationSatisfactionDiscoveryStrangeBewelcometoRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E8E0DADF285C20E500566A2F /* CommunicationSatisfactionDiscoveryStrangeBewelcometoRegard.m */; }; + E8E0DAE6285C280E00566A2F /* YUMIInterlocutionDiscoveryStrangePrecautiousRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E8E0DAE5285C280E00566A2F /* YUMIInterlocutionDiscoveryStrangePrecautiousRegard.m */; }; + E8E0DAE9285C2E8C00566A2F /* DiscoveryStrangeBewelcometoCommunicationMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E8E0DAE8285C2E8C00566A2F /* DiscoveryStrangeBewelcometoCommunicationMatrix.m */; }; + E8E20BDB281645300033B688 /* InterlocutionAbstractRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E8E20BDA281645300033B688 /* InterlocutionAbstractRegardGovernancer.m */; }; + E8E20BDE28164D3A0033B688 /* InterlocutionNevRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E8E20BDD28164D3A0033B688 /* InterlocutionNevRegard.m */; }; + E8E20BE2281695800033B688 /* YUMIManeSurmountCiphercodeRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E8E20BE1281695800033B688 /* YUMIManeSurmountCiphercodeRegardGovernancer.m */; }; + E8E20BE828169BDC0033B688 /* YUMIManeSurmountCiphercodeExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = E8E20BE728169BDC0033B688 /* YUMIManeSurmountCiphercodeExternalizer.m */; }; + E8E20BEC2816A5B90033B688 /* YUMIManeBlackStatementRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E8E20BEB2816A5B90033B688 /* YUMIManeBlackStatementRegardGovernancer.m */; }; + E8E20BEF2816A5FC0033B688 /* YUMIManeBlackStatementTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E8E20BEE2816A5FC0033B688 /* YUMIManeBlackStatementTabulationRegardElement.m */; }; + E8E21A9B28B4BD92008F7C9D /* YUMIChamberGraffitiPresentBrightnessRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E8E21A9A28B4BD92008F7C9D /* YUMIChamberGraffitiPresentBrightnessRegard.m */; }; + E8E21A9E28B4DFE8008F7C9D /* YUMIMarchingBuyFuelRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E8E21A9D28B4DFE8008F7C9D /* YUMIMarchingBuyFuelRegard.m */; }; + E8E70D7726F2F15100F03460 /* YUMIManeRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E8E70D7626F2F15100F03460 /* YUMIManeRegardGovernancer.m */; }; + E8E70D7A26F2F16600F03460 /* YUMIManeExternalize.m in Sources */ = {isa = PBXBuildFile; fileRef = E8E70D7926F2F16600F03460 /* YUMIManeExternalize.m */; }; + E8E70D7E26F2F19D00F03460 /* Api+Mine.m in Sources */ = {isa = PBXBuildFile; fileRef = E8E70D7D26F2F19D00F03460 /* Api+Mine.m */; }; + E8E70D8326F2F51A00F03460 /* YUMIManeIntelligenceRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E8E70D8226F2F51A00F03460 /* YUMIManeIntelligenceRegard.m */; }; + E8E70D8C26F2F5A500F03460 /* YUMIManeIntelligenceProvisionAssembletionRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E8E70D8B26F2F5A500F03460 /* YUMIManeIntelligenceProvisionAssembletionRegardElement.m */; }; + E8E70D9226F2F60C00F03460 /* YUMIManeProvisionMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E8E70D9126F2F60C00F03460 /* YUMIManeProvisionMatrix.m */; }; + E8E7DAE82744F5EF00C631CC /* YUMIPresentStorage.m in Sources */ = {isa = PBXBuildFile; fileRef = E8E7DAE72744F5EF00C631CC /* YUMIPresentStorage.m */; }; + E8E7DAEB2745158500C631CC /* YUMIExternalizeConsumerAbstractMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E8E7DAEA2745158500C631CC /* YUMIExternalizeConsumerAbstractMatrix.m */; }; + E8E859E928264F4500EE4857 /* YUMIChamberTransferManualRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E8E859E828264F4500EE4857 /* YUMIChamberTransferManualRegardGovernancer.m */; }; + E8EE827D272B9A2300A17217 /* YUMIChamberDischargeEssayRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E8EE827C272B9A2300A17217 /* YUMIChamberDischargeEssayRegard.m */; }; + E8EEB8F226FC2050007C6EBA /* SDAppearanceBrowser.m in Sources */ = {isa = PBXBuildFile; fileRef = E8EEB8EC26FC2050007C6EBA /* SDAppearanceBrowser.m */; }; + E8EEB8F326FC2050007C6EBA /* SDWaitingRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E8EEB8ED26FC2050007C6EBA /* SDWaitingRegard.m */; }; + E8EEB8F426FC2050007C6EBA /* SDBrowserIndicateRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E8EEB8EE26FC2050007C6EBA /* SDBrowserIndicateRegard.m */; }; + E8EEB8F726FC2673007C6EBA /* ConsumerAppearance.m in Sources */ = {isa = PBXBuildFile; fileRef = E8EEB8F626FC2673007C6EBA /* ConsumerAppearance.m */; }; + E8EEB8FB26FC2874007C6EBA /* YUMIManeConsumerAbstractTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E8EEB8FA26FC2874007C6EBA /* YUMIManeConsumerAbstractTabulationRegardElement.m */; }; + E8EEB8FE26FC2DF8007C6EBA /* YUMIManeConsumerAbstractCustomNevRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E8EEB8FD26FC2DF8007C6EBA /* YUMIManeConsumerAbstractCustomNevRegard.m */; }; + E8EEB90126FC31B6007C6EBA /* YUMIManeConsumerAbstractExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = E8EEB90026FC31B6007C6EBA /* YUMIManeConsumerAbstractExternalizer.m */; }; + E8EEB90326FC31DC007C6EBA /* FBCManeConsumerAbstractCeremony.h in Sources */ = {isa = PBXBuildFile; fileRef = E8EEB90226FC31CE007C6EBA /* FBCManeConsumerAbstractCeremony.h */; }; + E8EEB90626FC5772007C6EBA /* YUMIManeConsumerAbstractCompileRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E8EEB90526FC5772007C6EBA /* YUMIManeConsumerAbstractCompileRegardGovernancer.m */; }; + E8EEB90926FC579A007C6EBA /* YUMIManeConsumerAbstractCompileTabulationRegardElement.m in Sources */ = {isa = PBXBuildFile; fileRef = E8EEB90826FC579A007C6EBA /* YUMIManeConsumerAbstractCompileTabulationRegardElement.m */; }; + E8EEB90C26FC5EBC007C6EBA /* YUMIManeConsumerAbstractCompileMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E8EEB90B26FC5EBC007C6EBA /* YUMIManeConsumerAbstractCompileMatrix.m */; }; + E8EEB90F26FC6AB8007C6EBA /* YUMIManeConsumerAbstractCompileExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = E8EEB90E26FC6AB8007C6EBA /* YUMIManeConsumerAbstractCompileExternalizer.m */; }; + E8EEB91126FC6AE2007C6EBA /* FBCManeConsumerAbstractEditCeremony.h in Sources */ = {isa = PBXBuildFile; fileRef = E8EEB91026FC6AD3007C6EBA /* FBCManeConsumerAbstractEditCeremony.h */; }; + E8EEB91426FC7786007C6EBA /* YUMIManeConsumerAbstractNickRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E8EEB91326FC7786007C6EBA /* YUMIManeConsumerAbstractNickRegardGovernancer.m */; }; + E8EEB91726FC7B35007C6EBA /* YUMIManeConsumerAbstractDesRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E8EEB91626FC7B35007C6EBA /* YUMIManeConsumerAbstractDesRegardGovernancer.m */; }; + E8EEB91D26FC9D58007C6EBA /* YUMIManeConsumerAbstractDateRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E8EEB91C26FC9D58007C6EBA /* YUMIManeConsumerAbstractDateRegard.m */; }; + E8F1558D28124D5200EE8C06 /* CommunicationConentVocalmusicRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = E8F1558C28124D5200EE8C06 /* CommunicationConentVocalmusicRegard.m */; }; + E8F1559028125E2D00EE8C06 /* CommunicationVocalmusicConcentrate.m in Sources */ = {isa = PBXBuildFile; fileRef = E8F1558F28125E2D00EE8C06 /* CommunicationVocalmusicConcentrate.m */; }; + E8F1559328129EBA00EE8C06 /* SatisfactionSecretaryMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E8F1559228129EBA00EE8C06 /* SatisfactionSecretaryMatrix.m */; }; + E8F6135C291E26BD00E12650 /* NSMutableDictionary+Saft.m in Sources */ = {isa = PBXBuildFile; fileRef = E8F6135B291E26BD00E12650 /* NSMutableDictionary+Saft.m */; }; + E8F6135F291E274E00E12650 /* NSArray+Safe.m in Sources */ = {isa = PBXBuildFile; fileRef = E8F6135E291E274E00E12650 /* NSArray+Safe.m */; }; + E8F63CB1298B553500B338BA /* InterlocutionSpeakHalloPrototypeMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E8F63CB0298B553500B338BA /* InterlocutionSpeakHalloPrototypeMatrix.m */; }; + E8F63CB4298B563D00B338BA /* Api+SayHello.m in Sources */ = {isa = PBXBuildFile; fileRef = E8F63CB3298B563D00B338BA /* Api+SayHello.m */; }; + E8F63CB7298B566D00B338BA /* YUMIInterlocutionSpeakHalloExternalizer.m in Sources */ = {isa = PBXBuildFile; fileRef = E8F63CB6298B566D00B338BA /* YUMIInterlocutionSpeakHalloExternalizer.m */; }; + E8F63CBB298B648300B338BA /* InterlocutionSpeakHalloStatementMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E8F63CBA298B648300B338BA /* InterlocutionSpeakHalloStatementMatrix.m */; }; + E8F65C1F286998C9009BB5B9 /* YUMIManeParaticipationRegardGovernancer.m in Sources */ = {isa = PBXBuildFile; fileRef = E8F65C1E286998C9009BB5B9 /* YUMIManeParaticipationRegardGovernancer.m */; }; + E8F65C222869A36F009BB5B9 /* SatisfactionParaticipationSeparationsMatrix.m in Sources */ = {isa = PBXBuildFile; fileRef = E8F65C212869A36F009BB5B9 /* SatisfactionParaticipationSeparationsMatrix.m */; }; + E8FE3C2C2994D0E80006C6C7 /* YUMISwitch.m in Sources */ = {isa = PBXBuildFile; fileRef = E8FE3C2B2994D0E80006C6C7 /* YUMISwitch.m */; }; + F1D8556F2931FC86008C418F /* YUMIChamberYearImportpriseRegard.m in Sources */ = {isa = PBXBuildFile; fileRef = F1D8556E2931FC86008C418F /* YUMIChamberYearImportpriseRegard.m */; }; +/* End PBXBuildFile section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 18E7B21326E8CD220064BC9B /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + 1427212629A7566100C7C423 /* ZegoAudioRoom.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 140A7F50299CC69000841594 /* YUMITabObstacle.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMITabObstacle.h; sourceTree = ""; }; + 140A7F51299CC69000841594 /* YUMITabObstacle.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMITabObstacle.m; sourceTree = ""; }; + 140A818B299CFF1C00841594 /* YUMIVendorCallRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIVendorCallRegardGovernancer.h; sourceTree = ""; }; + 140A818C299CFF1C00841594 /* YUMIVendorCallRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIVendorCallRegardGovernancer.m; sourceTree = ""; }; + 1427212329A7563A00C7C423 /* ZegoAudioRoom.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = ZegoAudioRoom.framework; sourceTree = ""; }; + 1427212A29A757EC00C7C423 /* SeparationsStatementAbstractMatrix.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SeparationsStatementAbstractMatrix.m; sourceTree = ""; }; + 1427212B29A757EC00C7C423 /* SeparationsStatementAbstractMatrix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SeparationsStatementAbstractMatrix.h; sourceTree = ""; }; + 1427212D29A7599500C7C423 /* YUMISeparationsConsiderationExternalizer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMISeparationsConsiderationExternalizer.m; sourceTree = ""; }; + 1427212E29A7599500C7C423 /* YUMISeparationsConsiderationExternalizer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMISeparationsConsiderationExternalizer.h; sourceTree = ""; }; + 1427213029A759D200C7C423 /* FBCSeparationsConsiderationCeremony.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FBCSeparationsConsiderationCeremony.h; sourceTree = ""; }; + 1427213129A75A1700C7C423 /* FBCSeparationsLatestCeremony.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FBCSeparationsLatestCeremony.h; sourceTree = ""; }; + 1427213229A75A2600C7C423 /* YUMISeparationsRecentlyExternalizer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMISeparationsRecentlyExternalizer.h; sourceTree = ""; }; + 1427213329A75A2600C7C423 /* YUMISeparationsRecentlyExternalizer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMISeparationsRecentlyExternalizer.m; sourceTree = ""; }; + 1427213729A75F6F00C7C423 /* MyHyperTextConnection.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MyHyperTextConnection.m; sourceTree = ""; }; + 1427213929A75F6F00C7C423 /* HyperTextConnection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HyperTextConnection.h; sourceTree = ""; }; + 1427213A29A75F6F00C7C423 /* HTTPLogging.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HTTPLogging.h; sourceTree = ""; }; + 1427213B29A75F6F00C7C423 /* HyperTextCommunication.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HyperTextCommunication.h; sourceTree = ""; }; + 1427213C29A75F6F00C7C423 /* TissueSocket.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TissueSocket.h; sourceTree = ""; }; + 1427213D29A75F6F00C7C423 /* HyperTextAuthenticationRequest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HyperTextAuthenticationRequest.h; sourceTree = ""; }; + 1427213F29A75F6F00C7C423 /* HyperTextAsyncAccurateRespond.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HyperTextAsyncAccurateRespond.h; sourceTree = ""; }; + 1427214029A75F6F00C7C423 /* HyperTextErrorRespond.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HyperTextErrorRespond.m; sourceTree = ""; }; + 1427214129A75F6F00C7C423 /* HyperTextAtomicRespond.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HyperTextAtomicRespond.m; sourceTree = ""; }; + 1427214229A75F6F00C7C423 /* HyperTextDeficitirectRespond.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HyperTextDeficitirectRespond.h; sourceTree = ""; }; + 1427214329A75F6F00C7C423 /* HyperTextDynamicAccurateRespond.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HyperTextDynamicAccurateRespond.m; sourceTree = ""; }; + 1427214429A75F6F00C7C423 /* HyperTextAccurateRespond.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HyperTextAccurateRespond.m; sourceTree = ""; }; + 1427214529A75F6F00C7C423 /* HyperTextAsyncAccurateRespond.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HyperTextAsyncAccurateRespond.m; sourceTree = ""; }; + 1427214629A75F6F00C7C423 /* HyperTextDeficitirectRespond.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HyperTextDeficitirectRespond.m; sourceTree = ""; }; + 1427214729A75F6F00C7C423 /* HyperTextAtomicRespond.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HyperTextAtomicRespond.h; sourceTree = ""; }; + 1427214829A75F6F00C7C423 /* HyperTextErrorRespond.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HyperTextErrorRespond.h; sourceTree = ""; }; + 1427214929A75F6F00C7C423 /* HyperTextAccurateRespond.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HyperTextAccurateRespond.h; sourceTree = ""; }; + 1427214A29A75F6F00C7C423 /* HyperTextDynamicAccurateRespond.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HyperTextDynamicAccurateRespond.h; sourceTree = ""; }; + 1427214B29A75F6F00C7C423 /* HyperTextServer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HyperTextServer.h; sourceTree = ""; }; + 1427214C29A75F6F00C7C423 /* HyperTextCommunication.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HyperTextCommunication.m; sourceTree = ""; }; + 1427214D29A75F6F00C7C423 /* HyperTextConnection.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HyperTextConnection.m; sourceTree = ""; }; + 1427214E29A75F6F00C7C423 /* TissueSocket.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TissueSocket.m; sourceTree = ""; }; + 1427214F29A75F6F00C7C423 /* HTTPResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HTTPResponse.h; sourceTree = ""; }; + 1427215129A75F6F00C7C423 /* MultipartFormAtomicAnatomiser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MultipartFormAtomicAnatomiser.h; sourceTree = ""; }; + 1427215229A75F6F00C7C423 /* MultipartCommunicationIntelligencer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MultipartCommunicationIntelligencer.h; sourceTree = ""; }; + 1427215329A75F6F00C7C423 /* MultipartCommunicationIntelligencerField.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MultipartCommunicationIntelligencerField.m; sourceTree = ""; }; + 1427215429A75F6F00C7C423 /* MultipartFormAtomicAnatomiser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MultipartFormAtomicAnatomiser.m; sourceTree = ""; }; + 1427215529A75F6F00C7C423 /* MultipartCommunicationIntelligencer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MultipartCommunicationIntelligencer.m; sourceTree = ""; }; + 1427215629A75F6F00C7C423 /* MultipartCommunicationIntelligencerField.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MultipartCommunicationIntelligencerField.h; sourceTree = ""; }; + 1427215729A75F6F00C7C423 /* HyperTextAuthenticationRequest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HyperTextAuthenticationRequest.m; sourceTree = ""; }; + 1427215929A75F6F00C7C423 /* DDNumber.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DDNumber.m; sourceTree = ""; }; + 1427215A29A75F6F00C7C423 /* DDData.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DDData.m; sourceTree = ""; }; + 1427215B29A75F6F00C7C423 /* DDRange.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DDRange.h; sourceTree = ""; }; + 1427215C29A75F6F00C7C423 /* DDNumber.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DDNumber.h; sourceTree = ""; }; + 1427215D29A75F6F00C7C423 /* DDRange.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DDRange.m; sourceTree = ""; }; + 1427215E29A75F6F00C7C423 /* DDData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DDData.h; sourceTree = ""; }; + 1427215F29A75F6F00C7C423 /* HyperTextServer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HyperTextServer.m; sourceTree = ""; }; + 1427217329A75F6F00C7C423 /* SJXCSMIPFacilitater.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SJXCSMIPFacilitater.h; sourceTree = ""; }; + 1427217429A75F6F00C7C423 /* MyHyperTextConnection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MyHyperTextConnection.h; sourceTree = ""; }; + 1427217729A75F6F00C7C423 /* BWGMKJYlumbes.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWGMKJYlumbes.m; sourceTree = ""; }; + 1427217829A75F6F00C7C423 /* BWGLumber.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BWGLumber.h; sourceTree = ""; }; + 1427217929A75F6F00C7C423 /* BWGAbstractAtomicbaselumbes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BWGAbstractAtomicbaselumbes.h; sourceTree = ""; }; + 1427217A29A75F6F00C7C423 /* BWGASLlumbes.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWGASLlumbes.m; sourceTree = ""; }; + 1427217B29A75F6F00C7C423 /* BWGAccuratelumbes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BWGAccuratelumbes.h; sourceTree = ""; }; + 1427217D29A75F6F00C7C423 /* ContextFilterLogFormatter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ContextFilterLogFormatter.h; sourceTree = ""; }; + 1427217E29A75F6F00C7C423 /* DispatchMHTueueLumberInitialiser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DispatchMHTueueLumberInitialiser.h; sourceTree = ""; }; + 1427217F29A75F6F00C7C423 /* ContextFilterLogFormatter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ContextFilterLogFormatter.m; sourceTree = ""; }; + 1427218029A75F6F00C7C423 /* DispatchMHTueueLumberInitialiser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DispatchMHTueueLumberInitialiser.m; sourceTree = ""; }; + 1427218129A75F6F00C7C423 /* BWGLumber.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWGLumber.m; sourceTree = ""; }; + 1427218229A75F6F00C7C423 /* BWGMKJYlumbes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BWGMKJYlumbes.h; sourceTree = ""; }; + 1427218329A75F6F00C7C423 /* BWGAbstractAtomicbaselumbes.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWGAbstractAtomicbaselumbes.m; sourceTree = ""; }; + 1427218429A75F6F00C7C423 /* BWGAccuratelumbes.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BWGAccuratelumbes.m; sourceTree = ""; }; + 1427218529A75F6F00C7C423 /* BWGASLlumbes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BWGASLlumbes.h; sourceTree = ""; }; + 1427218629A75F6F00C7C423 /* SJXCSMIPFacilitater.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SJXCSMIPFacilitater.m; sourceTree = ""; }; + 142721B029A7647F00C7C423 /* YUMIBlankRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIBlankRegardGovernancer.h; sourceTree = ""; }; + 142721B129A7647F00C7C423 /* YUMIBlankRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIBlankRegardGovernancer.m; sourceTree = ""; }; + 1464C5E829A45FC300AF7C94 /* YUMIButton.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIButton.h; sourceTree = ""; }; + 1464C5E929A45FC300AF7C94 /* YUMIButton.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIButton.m; sourceTree = ""; }; + 1464C5EB29A4784F00AF7C94 /* YUMIManeSimpleConsumerAbstractRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeSimpleConsumerAbstractRegardGovernancer.h; sourceTree = ""; }; + 1464C5EC29A4784F00AF7C94 /* YUMIManeSimpleConsumerAbstractRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeSimpleConsumerAbstractRegardGovernancer.m; sourceTree = ""; }; + 1464C5EE29A49DDD00AF7C94 /* YUMIManeSimpleConsumerAbstractIntelligencerRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeSimpleConsumerAbstractIntelligencerRegard.h; sourceTree = ""; }; + 1464C5EF29A49DDD00AF7C94 /* YUMIManeSimpleConsumerAbstractIntelligencerRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeSimpleConsumerAbstractIntelligencerRegard.m; sourceTree = ""; }; + 1464C5F129A4C18000AF7C94 /* YUMIIAPReindictRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIIAPReindictRegardGovernancer.h; sourceTree = ""; }; + 1464C5F229A4C18000AF7C94 /* YUMIIAPReindictRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIIAPReindictRegardGovernancer.m; sourceTree = ""; }; + 1464C5F429A4CA8C00AF7C94 /* YUMIIAPReindictAssembletionRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIIAPReindictAssembletionRegardElement.h; sourceTree = ""; }; + 1464C5F529A4CA8C00AF7C94 /* YUMIIAPReindictAssembletionRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIIAPReindictAssembletionRegardElement.m; sourceTree = ""; }; + 1464C5F729A4D00000AF7C94 /* YUMIIAPReindictIntelligencerRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIIAPReindictIntelligencerRegard.h; sourceTree = ""; }; + 1464C5F829A4D00000AF7C94 /* YUMIIAPReindictIntelligencerRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIIAPReindictIntelligencerRegard.m; sourceTree = ""; }; + 149839C2299E088000F82CBF /* YUMIMomentStatementRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIMomentStatementRegardGovernancer.h; sourceTree = ""; }; + 149839C3299E088000F82CBF /* YUMIMomentStatementRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIMomentStatementRegardGovernancer.m; sourceTree = ""; }; + 149839C5299E0B9F00F82CBF /* YUMIMomentStatementAssembletionRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIMomentStatementAssembletionRegardElement.h; sourceTree = ""; }; + 149839C6299E0B9F00F82CBF /* YUMIMomentStatementAssembletionRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIMomentStatementAssembletionRegardElement.m; sourceTree = ""; }; + 14A6034729A3567200D2A6A5 /* YUMISimpleManeRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMISimpleManeRegardGovernancer.h; sourceTree = ""; }; + 14A6034829A3567200D2A6A5 /* YUMISimpleManeRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMISimpleManeRegardGovernancer.m; sourceTree = ""; }; + 14A6034A29A35EE600D2A6A5 /* YUMIManeProvisionTabulationRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeProvisionTabulationRegardElement.h; sourceTree = ""; }; + 14A6034B29A35EE600D2A6A5 /* YUMIManeProvisionTabulationRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeProvisionTabulationRegardElement.m; sourceTree = ""; }; + 14A6034D29A36D8300D2A6A5 /* YUMISimpleManeIntelligencerRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMISimpleManeIntelligencerRegard.h; sourceTree = ""; }; + 14A6034E29A36D8300D2A6A5 /* YUMISimpleManeIntelligencerRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMISimpleManeIntelligencerRegard.m; sourceTree = ""; }; + 14B880DF299A1799005FCA1B /* YUMISurmountRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMISurmountRegardGovernancer.h; sourceTree = ""; }; + 14B880E0299A1799005FCA1B /* YUMISurmountRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMISurmountRegardGovernancer.m; sourceTree = ""; }; + 14B880E5299A4B62005FCA1B /* YUMISurmountMobileRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMISurmountMobileRegardGovernancer.h; sourceTree = ""; }; + 14B880E6299A4B62005FCA1B /* YUMISurmountMobileRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMISurmountMobileRegardGovernancer.m; sourceTree = ""; }; + 14D8767A29A7445C00E1DD7F /* NSObject+AutoCoding.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSObject+AutoCoding.h"; sourceTree = ""; }; + 14D8767B29A7445C00E1DD7F /* NSObject+AutoCoding.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSObject+AutoCoding.m"; sourceTree = ""; }; + 14DCAD06299B36A500A7DD31 /* YUMISurmountPwordRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMISurmountPwordRegardGovernancer.h; sourceTree = ""; }; + 14DCAD07299B36A500A7DD31 /* YUMISurmountPwordRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMISurmountPwordRegardGovernancer.m; sourceTree = ""; }; + 14DCAD09299B5D3A00A7DD31 /* YUMISurmountIntrojectionRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMISurmountIntrojectionRegard.h; sourceTree = ""; }; + 14DCAD0A299B5D3A00A7DD31 /* YUMISurmountIntrojectionRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMISurmountIntrojectionRegard.m; sourceTree = ""; }; + 14DCAD0C299B6AD900A7DD31 /* YUMIForgetPwordRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIForgetPwordRegardGovernancer.h; sourceTree = ""; }; + 14DCAD0D299B6AD900A7DD31 /* YUMIForgetPwordRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIForgetPwordRegardGovernancer.m; sourceTree = ""; }; + 14DCAD0F299B946E00A7DD31 /* YUMISurmountBaseRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMISurmountBaseRegardGovernancer.h; sourceTree = ""; }; + 14DCAD10299B946E00A7DD31 /* YUMISurmountBaseRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMISurmountBaseRegardGovernancer.m; sourceTree = ""; }; + 14EB640729A5BDDD00A4A00B /* YUMIMomentsSimpleSpecificRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIMomentsSimpleSpecificRegardGovernancer.h; sourceTree = ""; }; + 14EB640829A5BDDD00A4A00B /* YUMIMomentsSimpleSpecificRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIMomentsSimpleSpecificRegardGovernancer.m; sourceTree = ""; }; + 14EB640A29A5BEE800A4A00B /* FBCSeparationsDetailRegardGovernancerRepresendtation.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FBCSeparationsDetailRegardGovernancerRepresendtation.h; sourceTree = ""; }; + 14EB640B29A5C16000A4A00B /* YUMIMomentsSimpleSpecificNev.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIMomentsSimpleSpecificNev.h; sourceTree = ""; }; + 14EB640C29A5C16000A4A00B /* YUMIMomentsSimpleSpecificNev.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIMomentsSimpleSpecificNev.m; sourceTree = ""; }; + 180116F7279E8C4C00F2CBC0 /* PLIntratemporalUtil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PLIntratemporalUtil.h; sourceTree = ""; }; + 180116F8279E8C4C00F2CBC0 /* PLIntratemporalUtil.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PLIntratemporalUtil.m; sourceTree = ""; }; + 180116FA279E8CCE00F2CBC0 /* NVDate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NVDate.m; sourceTree = ""; }; + 180116FB279E8CCE00F2CBC0 /* NVDate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NVDate.h; sourceTree = ""; }; + 180806D627293794001FD836 /* NSObject+MJExtension.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "NSObject+MJExtension.h"; sourceTree = ""; }; + 180806D727293794001FD836 /* NSObject+MJExtension.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "NSObject+MJExtension.m"; sourceTree = ""; }; + 180806DA27297269001FD836 /* MicroRegardCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MicroRegardCeremony.h; sourceTree = ""; }; + 180806F827298F9B001FD836 /* ChamberGuestRepresendtation.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ChamberGuestRepresendtation.h; sourceTree = ""; }; + 180806F92729A354001FD836 /* ThemeColor+Room.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "ThemeColor+Room.h"; sourceTree = ""; }; + 180806FA2729A354001FD836 /* ThemeColor+Room.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "ThemeColor+Room.m"; sourceTree = ""; }; + 1808072B2731598F001FD836 /* YUMINetIndicateYYDesignation.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMINetIndicateYYDesignation.h; sourceTree = ""; }; + 1808072C2731598F001FD836 /* YUMINetIndicateYYDesignation.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMINetIndicateYYDesignation.m; sourceTree = ""; }; + 1808072E27315E8E001FD836 /* NetIndicateRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NetIndicateRegard.h; sourceTree = ""; }; + 1808072F27315E8E001FD836 /* NetIndicateRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NetIndicateRegard.m; sourceTree = ""; }; + 181D7F192726CE2A00B7C059 /* PhaseRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PhaseRegard.h; sourceTree = ""; }; + 181D7F1A2726CE2A00B7C059 /* PhaseRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PhaseRegard.m; sourceTree = ""; }; + 181D7F1F2727D9DB00B7C059 /* SocialPhaseRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SocialPhaseRegard.h; sourceTree = ""; }; + 181D7F202727D9DB00B7C059 /* SocialPhaseRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SocialPhaseRegard.m; sourceTree = ""; }; + 181D7F222727DB1E00B7C059 /* ChamberHostRepresendtation.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ChamberHostRepresendtation.h; sourceTree = ""; }; + 1845C6412790320E00016EAC /* ChamberAnimationCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ChamberAnimationCeremony.h; sourceTree = ""; }; + 18486211271EA9DA005FC5DC /* RealtimackExecutive.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RealtimackExecutive.h; sourceTree = ""; }; + 18486212271EA9DA005FC5DC /* RealtimackExecutive.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RealtimackExecutive.m; sourceTree = ""; }; + 18486214271EAA03005FC5DC /* RtcRepresendtation.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RtcRepresendtation.h; sourceTree = ""; }; + 18486215271EAB8C005FC5DC /* BaseRealtimackConnector.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BaseRealtimackConnector.h; sourceTree = ""; }; + 18486216271EAB8C005FC5DC /* BaseRealtimackConnector.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BaseRealtimackConnector.m; sourceTree = ""; }; + 18486233271EB794005FC5DC /* AgoraRealtimackConnector.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AgoraRealtimackConnector.h; sourceTree = ""; }; + 18486234271EB794005FC5DC /* AgoraRealtimackConnector.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AgoraRealtimackConnector.m; sourceTree = ""; }; + 184862CC27213FD7005FC5DC /* ZegoRealtimackConnector.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ZegoRealtimackConnector.m; sourceTree = ""; }; + 184862CD27213FD7005FC5DC /* ZegoRealtimackConnector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ZegoRealtimackConnector.h; sourceTree = ""; }; + 186A531826FC591100D67B2C /* libresolv.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libresolv.tbd; path = usr/lib/libresolv.tbd; sourceTree = SDKROOT; }; + 186A532C26FC6ED900D67B2C /* MKJPopup.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MKJPopup.m; sourceTree = ""; }; + 186A532E26FC6ED900D67B2C /* MKJPrecautiousDisposition.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MKJPrecautiousDisposition.m; sourceTree = ""; }; + 186A532F26FC6ED900D67B2C /* MKJPrecautiousCommunicationAttributedDisposition.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MKJPrecautiousCommunicationAttributedDisposition.h; sourceTree = ""; }; + 186A533026FC6ED900D67B2C /* MKJPrecautiousButtonDisposition.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MKJPrecautiousButtonDisposition.h; sourceTree = ""; }; + 186A533126FC6ED900D67B2C /* MKJActionSheetDisposition.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MKJActionSheetDisposition.h; sourceTree = ""; }; + 186A533226FC6ED900D67B2C /* MKJPrecautiousDisposition.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MKJPrecautiousDisposition.h; sourceTree = ""; }; + 186A533326FC6ED900D67B2C /* MKJPrecautiousButtonDisposition.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MKJPrecautiousButtonDisposition.m; sourceTree = ""; }; + 186A533426FC6ED900D67B2C /* MKJPrecautiousCommunicationAttributedDisposition.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MKJPrecautiousCommunicationAttributedDisposition.m; sourceTree = ""; }; + 186A533526FC6ED900D67B2C /* MKJActionSheetDisposition.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MKJActionSheetDisposition.m; sourceTree = ""; }; + 186A533726FC6ED900D67B2C /* TTPopupExecutiveServiceCeremony.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TTPopupExecutiveServiceCeremony.h; sourceTree = ""; }; + 186A533826FC6ED900D67B2C /* MKJPopupExecutiveServing.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MKJPopupExecutiveServing.h; sourceTree = ""; }; + 186A533926FC6ED900D67B2C /* MKJPopupExecutiveServing.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MKJPopupExecutiveServing.m; sourceTree = ""; }; + 186A533A26FC6ED900D67B2C /* MKJPopup.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MKJPopup.h; sourceTree = ""; }; + 186A533C26FC6ED900D67B2C /* MKJPrecautiousRegard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MKJPrecautiousRegard.m; sourceTree = ""; }; + 186A533D26FC6ED900D67B2C /* MKJActionSheetRegard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MKJActionSheetRegard.h; sourceTree = ""; }; + 186A533E26FC6ED900D67B2C /* MKJPrecautiousRegard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MKJPrecautiousRegard.h; sourceTree = ""; }; + 186A533F26FC6ED900D67B2C /* MKJActionSheetRegard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MKJActionSheetRegard.m; sourceTree = ""; }; + 186A534126FC6ED900D67B2C /* MKJPopupServing.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MKJPopupServing.m; sourceTree = ""; }; + 186A534226FC6ED900D67B2C /* TTPopupServiceCeremony.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TTPopupServiceCeremony.h; sourceTree = ""; }; + 186A534326FC6ED900D67B2C /* MKJPopupServing.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MKJPopupServing.h; sourceTree = ""; }; + 186A534526FC6ED900D67B2C /* TTPopupConstants.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TTPopupConstants.h; sourceTree = ""; }; + 186A536126FC6F2E00D67B2C /* YUMIParaticipationRegard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIParaticipationRegard.m; sourceTree = ""; }; + 186A536226FC6F2E00D67B2C /* YUMIParaticipationRegard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIParaticipationRegard.h; sourceTree = ""; }; + 186A536726FC6F2E00D67B2C /* YUMIParaticipationProvisionElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIParaticipationProvisionElement.m; sourceTree = ""; }; + 186A536826FC6F2E00D67B2C /* YUMIParaticipationProvisionElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIParaticipationProvisionElement.h; sourceTree = ""; }; + 186F8B472733F2AE007A17BC /* MicroQueueCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MicroQueueCeremony.h; sourceTree = ""; }; + 187EEEDA26E89B32002833B2 /* BaseMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BaseMatrix.h; sourceTree = ""; }; + 187EEEDB26E89B32002833B2 /* BaseMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BaseMatrix.m; sourceTree = ""; }; + 187EEEDF26E89BFB002833B2 /* AccountMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AccountMatrix.h; sourceTree = ""; }; + 187EEEE026E89BFB002833B2 /* AccountMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AccountMatrix.m; sourceTree = ""; }; + 187EEEEE26E89FE8002833B2 /* AccountAbstractStorage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AccountAbstractStorage.m; sourceTree = ""; }; + 187EEEEF26E89FE8002833B2 /* AccountAbstractStorage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AccountAbstractStorage.h; sourceTree = ""; }; + 189DD52926DE255300AB55B1 /* YuMi.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = YuMi.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 189DD52C26DE255300AB55B1 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; + 189DD52D26DE255300AB55B1 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; + 189DD53226DE255300AB55B1 /* TabbarRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TabbarRegardGovernancer.h; sourceTree = ""; }; + 189DD53326DE255300AB55B1 /* TabbarRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TabbarRegardGovernancer.m; sourceTree = ""; }; + 189DD53826DE255600AB55B1 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 189DD53D26DE255600AB55B1 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 189DD53E26DE255600AB55B1 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + 189DD54926DE338800AB55B1 /* BaseRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BaseRegardGovernancer.h; sourceTree = ""; }; + 189DD54A26DE338800AB55B1 /* BaseRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BaseRegardGovernancer.m; sourceTree = ""; }; + 189DD54E26DE37F900AB55B1 /* MvpRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MvpRegardGovernancer.h; sourceTree = ""; }; + 189DD54F26DE37F900AB55B1 /* MvpRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MvpRegardGovernancer.m; sourceTree = ""; }; + 189DD55826DE39D200AB55B1 /* BaseMvpExternalizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BaseMvpExternalizer.h; sourceTree = ""; }; + 189DD55926DE39D200AB55B1 /* BaseMvpExternalizer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BaseMvpExternalizer.m; sourceTree = ""; }; + 189DD55E26DE3BBE00AB55B1 /* BaseMvpCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BaseMvpCeremony.h; sourceTree = ""; }; + 189DD58D26DF97E700AB55B1 /* SurmountExternalizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SurmountExternalizer.h; sourceTree = ""; }; + 189DD58E26DF97E700AB55B1 /* SurmountExternalizer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SurmountExternalizer.m; sourceTree = ""; }; + 189DD59426DF986300AB55B1 /* SurmountCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SurmountCeremony.h; sourceTree = ""; }; + 189DD67C26E1FD8900AB55B1 /* UIImage+Utils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIImage+Utils.h"; sourceTree = ""; }; + 189DD67D26E1FD8900AB55B1 /* UIImage+Utils.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIImage+Utils.m"; sourceTree = ""; }; + 189DD68226E1FDBB00AB55B1 /* XNDJTBWGLoadingTool.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XNDJTBWGLoadingTool.m; sourceTree = ""; }; + 189DD68326E1FDBB00AB55B1 /* XNDJTBWGLoadingTool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XNDJTBWGLoadingTool.h; sourceTree = ""; }; + 189DD6FD26E20E5900AB55B1 /* HttpRequestFacilitater.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HttpRequestFacilitater.h; sourceTree = ""; }; + 189DD6FE26E20E5900AB55B1 /* HttpRequestFacilitater.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = HttpRequestFacilitater.m; sourceTree = ""; }; + 189DD73726E21C3F00AB55B1 /* CarrierIdentifier.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CarrierIdentifier.h; sourceTree = ""; }; + 189DD73826E21C3F00AB55B1 /* YYUtility+Device.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "YYUtility+Device.m"; sourceTree = ""; }; + 189DD73926E21C3F00AB55B1 /* YYUtility.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YYUtility.m; sourceTree = ""; }; + 189DD73A26E21C3F00AB55B1 /* YYUtility+Carrier.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "YYUtility+Carrier.m"; sourceTree = ""; }; + 189DD73B26E21C3F00AB55B1 /* YYUtility+App.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "YYUtility+App.m"; sourceTree = ""; }; + 189DD73C26E21C3F00AB55B1 /* YYUtility.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YYUtility.h; sourceTree = ""; }; + 189DD74326E21CCC00AB55B1 /* YYReachability.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YYReachability.h; sourceTree = ""; }; + 189DD74426E21CCC00AB55B1 /* YYReachability.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YYReachability.m; sourceTree = ""; }; + 189DD74E26E21D9000AB55B1 /* GCDHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GCDHelper.m; sourceTree = ""; }; + 189DD74F26E21D9000AB55B1 /* GCDHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GCDHelper.h; sourceTree = ""; }; + 189DD75726E6003C00AB55B1 /* Api.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Api.h; sourceTree = ""; }; + 189DD75826E6003C00AB55B1 /* Api.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Api.m; sourceTree = ""; }; + 189DD76026E60DDC00AB55B1 /* Api+Login.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Api+Login.h"; sourceTree = ""; }; + 189DD76126E60DDC00AB55B1 /* Api+Login.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "Api+Login.m"; sourceTree = ""; }; + 18A61BD5274F7F6900A09A54 /* NetIndicateDisposition.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NetIndicateDisposition.h; sourceTree = ""; }; + 18A61BD6274F7F6900A09A54 /* NetIndicateDisposition.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NetIndicateDisposition.m; sourceTree = ""; }; + 18A61BE6274F9CF000A09A54 /* InterlocutionStatementRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = InterlocutionStatementRegardGovernancer.h; sourceTree = ""; }; + 18A61BE7274F9CF000A09A54 /* InterlocutionStatementRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = InterlocutionStatementRegardGovernancer.m; sourceTree = ""; }; + 18AAF3EE279EA59300CD7DAD /* CommunicationSatisfactionEssayClickable.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CommunicationSatisfactionEssayClickable.h; sourceTree = ""; }; + 18AAF3EF279EA59300CD7DAD /* CommunicationSatisfactionEssayClickable.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CommunicationSatisfactionEssayClickable.m; sourceTree = ""; }; + 18E7B1AE26E8AD760064BC9B /* MainCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MainCeremony.h; sourceTree = ""; }; + 18E7B1B026E8AF980064BC9B /* MainExternalizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MainExternalizer.h; sourceTree = ""; }; + 18E7B1B126E8AF980064BC9B /* MainExternalizer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MainExternalizer.m; sourceTree = ""; }; + 18E7B1B526E8B2D10064BC9B /* Api+Main.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Api+Main.h"; sourceTree = ""; }; + 18E7B1B626E8B2D10064BC9B /* Api+Main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "Api+Main.m"; sourceTree = ""; }; + 18E7B26726E8D5D60064BC9B /* XCCurrentVCStackExecutive.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XCCurrentVCStackExecutive.m; sourceTree = ""; }; + 18E7B26826E8D5D60064BC9B /* XCCurrentVCStackExecutive.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XCCurrentVCStackExecutive.h; sourceTree = ""; }; + 18E7B31626F097E00064BC9B /* ConsumerAbstractMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ConsumerAbstractMatrix.h; sourceTree = ""; }; + 18E7B31726F097E00064BC9B /* ConsumerAbstractMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ConsumerAbstractMatrix.m; sourceTree = ""; }; + 18E7B31926F0982E0064BC9B /* ConsumerExpand.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ConsumerExpand.h; sourceTree = ""; }; + 18E7B31A26F0982E0064BC9B /* ConsumerExpand.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ConsumerExpand.m; sourceTree = ""; }; + 18E7B31C26F0984C0064BC9B /* ConsumerPrototypeVo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ConsumerPrototypeVo.h; sourceTree = ""; }; + 18E7B31D26F0984C0064BC9B /* ConsumerPrototypeVo.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ConsumerPrototypeVo.m; sourceTree = ""; }; + 18E7B31F26F098650064BC9B /* ConsumerAbstractCommunicationVo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ConsumerAbstractCommunicationVo.h; sourceTree = ""; }; + 18E7B32026F098650064BC9B /* ConsumerAbstractCommunicationVo.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ConsumerAbstractCommunicationVo.m; sourceTree = ""; }; + 18E7B33026F317A20064BC9B /* YUMITissueRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMITissueRegardGovernancer.h; sourceTree = ""; }; + 18E7B33126F317A20064BC9B /* YUMITissueRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMITissueRegardGovernancer.m; sourceTree = ""; }; + 18EE3FDD2750C1F700A452BF /* InterlocutionStatementElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = InterlocutionStatementElement.h; sourceTree = ""; }; + 18EE3FDE2750C1F700A452BF /* InterlocutionStatementElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = InterlocutionStatementElement.m; sourceTree = ""; }; + 18EE3FE02750C29D00A452BF /* NEMCBadgeRegard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NEMCBadgeRegard.h; sourceTree = ""; }; + 18EE3FE12750C29D00A452BF /* NEMCBadgeRegard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NEMCBadgeRegard.m; sourceTree = ""; }; + 18EE3FEC2750CE6D00A452BF /* NEMCCommunicationUtils.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NEMCCommunicationUtils.h; sourceTree = ""; }; + 18EE3FED2750CE6D00A452BF /* NEMCCommunicationUtils.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NEMCCommunicationUtils.m; sourceTree = ""; }; + 18EE3FEF2750D2AD00A452BF /* NEMCIntratemporalUtils.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NEMCIntratemporalUtils.h; sourceTree = ""; }; + 18EE3FF02750D2AD00A452BF /* NEMCIntratemporalUtils.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NEMCIntratemporalUtils.m; sourceTree = ""; }; + 18EE3FF22750FA3700A452BF /* UIView+NIM.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIView+NIM.h"; sourceTree = ""; }; + 18EE3FF32750FA3700A452BF /* UIView+NIM.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIView+NIM.m"; sourceTree = ""; }; + 18EE40182754BA9F00A452BF /* NEMCCommunicationMaker.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NEMCCommunicationMaker.m; sourceTree = ""; }; + 18EE40192754BA9F00A452BF /* NEMCCommunicationMaker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NEMCCommunicationMaker.h; sourceTree = ""; }; + 18F403A32758B5F900A6C548 /* CommunicationContentCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CommunicationContentCeremony.h; sourceTree = ""; }; + 18F403C92758C66800A6C548 /* CommunicationSatisfactionEssay.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CommunicationSatisfactionEssay.h; sourceTree = ""; }; + 18F403CA2758C66800A6C548 /* CommunicationSatisfactionEssay.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CommunicationSatisfactionEssay.m; sourceTree = ""; }; + 18F403EC2758CF2F00A6C548 /* CommunicationSatisfactionIndicate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CommunicationSatisfactionIndicate.h; sourceTree = ""; }; + 18F403ED2758CF2F00A6C548 /* CommunicationSatisfactionIndicate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CommunicationSatisfactionIndicate.m; sourceTree = ""; }; + 18F40438275E20D900A6C548 /* TRTCRealtimackConnector.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TRTCRealtimackConnector.h; sourceTree = ""; }; + 18F40439275E20D900A6C548 /* TRTCRealtimackConnector.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TRTCRealtimackConnector.m; sourceTree = ""; }; + 18F404B5276095D700A6C548 /* InterlocutionChatLimitRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = InterlocutionChatLimitRegard.h; sourceTree = ""; }; + 18F404B6276095D700A6C548 /* InterlocutionChatLimitRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = InterlocutionChatLimitRegard.m; sourceTree = ""; }; + 18F404B92760982000A6C548 /* ChatLimitMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ChatLimitMatrix.h; sourceTree = ""; }; + 18F404BA2760982000A6C548 /* ChatLimitMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ChatLimitMatrix.m; sourceTree = ""; }; + 18F404C1276098F100A6C548 /* Api+Message.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Api+Message.h"; sourceTree = ""; }; + 18F404C2276098F100A6C548 /* Api+Message.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "Api+Message.m"; sourceTree = ""; }; + 18F404C6276099DF00A6C548 /* CommunicationCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CommunicationCeremony.h; sourceTree = ""; }; + 18F404C727609A4300A6C548 /* CommunicationExternalizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CommunicationExternalizer.h; sourceTree = ""; }; + 18F404C827609A4300A6C548 /* CommunicationExternalizer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CommunicationExternalizer.m; sourceTree = ""; }; + 7DB00EC07F1D0ADFF900B38D /* Pods-YuMi.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-YuMi.debug.xcconfig"; path = "Target Support Files/Pods-YuMi/Pods-YuMi.debug.xcconfig"; sourceTree = ""; }; + 9B0086C427BA392B0032BD2B /* KellegPhaseRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KellegPhaseRegard.h; sourceTree = ""; }; + 9B0086C527BA392B0032BD2B /* KellegPhaseRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = KellegPhaseRegard.m; sourceTree = ""; }; + 9B0086C827BA4F570032BD2B /* KellegMiecreoscoopeRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KellegMiecreoscoopeRegard.h; sourceTree = ""; }; + 9B0086C927BA4F570032BD2B /* KellegMiecreoscoopeRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = KellegMiecreoscoopeRegard.m; sourceTree = ""; }; + 9B044D9B282D2A6400DE4859 /* YUMIChamberKellegRateImportRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberKellegRateImportRegard.h; sourceTree = ""; }; + 9B044D9C282D2A6400DE4859 /* YUMIChamberKellegRateImportRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberKellegRateImportRegard.m; sourceTree = ""; }; + 9B044D9E282D32F700DE4859 /* MiecreoscoopeCallforExtMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MiecreoscoopeCallforExtMatrix.h; sourceTree = ""; }; + 9B044D9F282D32F700DE4859 /* MiecreoscoopeCallforExtMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MiecreoscoopeCallforExtMatrix.m; sourceTree = ""; }; + 9B0997A027F19D8900EB8F14 /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; + 9B0997A227F19DE500EB8F14 /* QGHWDShaders.metal */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.metal; name = QGHWDShaders.metal; path = Pods/QGVAPlayer/iOS/QGVAPlayer/QGVAPlayer/Shaders/QGHWDShaders.metal; sourceTree = SOURCE_ROOT; }; + 9B0E1C5726E77022005D4442 /* BaseNevigationGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BaseNevigationGovernancer.h; sourceTree = ""; }; + 9B0E1C5826E77022005D4442 /* BaseNevigationGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BaseNevigationGovernancer.m; sourceTree = ""; }; + 9B17F71627BD150600440843 /* SVGAAnatomiserExecutive.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGAAnatomiserExecutive.h; sourceTree = ""; }; + 9B17F71727BD150600440843 /* SVGAAnatomiserExecutive.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SVGAAnatomiserExecutive.m; sourceTree = ""; }; + 9B1B7290280010E8003FACE9 /* Api+FansTeam.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Api+FansTeam.h"; sourceTree = ""; }; + 9B1B7291280010E8003FACE9 /* Api+FansTeam.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "Api+FansTeam.m"; sourceTree = ""; }; + 9B1B729328002099003FACE9 /* YUMIManeFanaticsSquadRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeFanaticsSquadRegardGovernancer.h; sourceTree = ""; }; + 9B1B729428002099003FACE9 /* YUMIManeFanaticsSquadRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeFanaticsSquadRegardGovernancer.m; sourceTree = ""; }; + 9B1B729628002147003FACE9 /* YUMIManeFanaticsSquadExternalizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeFanaticsSquadExternalizer.h; sourceTree = ""; }; + 9B1B729728002147003FACE9 /* YUMIManeFanaticsSquadExternalizer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeFanaticsSquadExternalizer.m; sourceTree = ""; }; + 9B1B7299280021E7003FACE9 /* FBCManeKellegFanaticsTeamCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FBCManeKellegFanaticsTeamCeremony.h; sourceTree = ""; }; + 9B1B729B28002264003FACE9 /* YUMIManeKellegFanaticsSquadMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeKellegFanaticsSquadMatrix.h; sourceTree = ""; }; + 9B1B729C28002264003FACE9 /* YUMIManeKellegFanaticsSquadMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeKellegFanaticsSquadMatrix.m; sourceTree = ""; }; + 9B1B729F280023F3003FACE9 /* YUMIManeKellegFanaticsSquadTabulationRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeKellegFanaticsSquadTabulationRegardElement.h; sourceTree = ""; }; + 9B1B72A0280023F3003FACE9 /* YUMIManeKellegFanaticsSquadTabulationRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeKellegFanaticsSquadTabulationRegardElement.m; sourceTree = ""; }; + 9B1B72AA280031DB003FACE9 /* XCombatellegCombatRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XCombatellegCombatRegardGovernancer.h; sourceTree = ""; }; + 9B1B72AB280031DB003FACE9 /* XCombatellegCombatRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XCombatellegCombatRegardGovernancer.m; sourceTree = ""; }; + 9B1B72AD280031F8003FACE9 /* XCombatellegCombatChosenChamberRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XCombatellegCombatChosenChamberRegard.h; sourceTree = ""; }; + 9B1B72AE280031F8003FACE9 /* XCombatellegCombatChosenChamberRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XCombatellegCombatChosenChamberRegard.m; sourceTree = ""; }; + 9B1B72B328003664003FACE9 /* Api+AnchorPk.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Api+AnchorPk.h"; sourceTree = ""; }; + 9B1B72B428003664003FACE9 /* Api+AnchorPk.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "Api+AnchorPk.m"; sourceTree = ""; }; + 9B1B72B628003772003FACE9 /* XCombatellegCombatExternalizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XCombatellegCombatExternalizer.h; sourceTree = ""; }; + 9B1B72B728003772003FACE9 /* XCombatellegCombatExternalizer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XCombatellegCombatExternalizer.m; sourceTree = ""; }; + 9B1B72B9280037C5003FACE9 /* XCombatellegCombatCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XCombatellegCombatCeremony.h; sourceTree = ""; }; + 9B1B72BA28003E06003FACE9 /* XCombatellegCombatTabulationRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XCombatellegCombatTabulationRegardElement.h; sourceTree = ""; }; + 9B1B72BB28003E06003FACE9 /* XCombatellegCombatTabulationRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XCombatellegCombatTabulationRegardElement.m; sourceTree = ""; }; + 9B1B72BD2800422E003FACE9 /* XCombatellegCombatPreadominantRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XCombatellegCombatPreadominantRegard.h; sourceTree = ""; }; + 9B1B72BE2800422E003FACE9 /* XCombatellegCombatPreadominantRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XCombatellegCombatPreadominantRegard.m; sourceTree = ""; }; + 9B1EF3D027E81C0600554295 /* YUMIManePretendUpwardsIntumesceRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManePretendUpwardsIntumesceRegardGovernancer.h; sourceTree = ""; }; + 9B1EF3D127E81C0600554295 /* YUMIManePretendUpwardsIntumesceRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManePretendUpwardsIntumesceRegardGovernancer.m; sourceTree = ""; }; + 9B1EF3D327E8294B00554295 /* YUMIManePretendDispossessAssembletionRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManePretendDispossessAssembletionRegardElement.h; sourceTree = ""; }; + 9B1EF3D427E8294B00554295 /* YUMIManePretendDispossessAssembletionRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManePretendDispossessAssembletionRegardElement.m; sourceTree = ""; }; + 9B1FC3D327E49A5D006EFFE0 /* ChatIntumesceMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ChatIntumesceMatrix.h; sourceTree = ""; }; + 9B1FC3D427E49A5D006EFFE0 /* ChatIntumesceMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ChatIntumesceMatrix.m; sourceTree = ""; }; + 9B1FC3D627E49C36006EFFE0 /* YUMIManePretendIntumesceAssembletionRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManePretendIntumesceAssembletionRegardElement.h; sourceTree = ""; }; + 9B1FC3D727E49C36006EFFE0 /* YUMIManePretendIntumesceAssembletionRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManePretendIntumesceAssembletionRegardElement.m; sourceTree = ""; }; + 9B208A342779B50100F9E54A /* PresentMagnificentAbstractMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PresentMagnificentAbstractMatrix.h; sourceTree = ""; }; + 9B208A352779B50100F9E54A /* PresentMagnificentAbstractMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PresentMagnificentAbstractMatrix.m; sourceTree = ""; }; + 9B2489BA27C4C056006CFB85 /* YUMIManeVacationerDispossessTabulationRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeVacationerDispossessTabulationRegardElement.h; sourceTree = ""; }; + 9B2489BB27C4C056006CFB85 /* YUMIManeVacationerDispossessTabulationRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeVacationerDispossessTabulationRegardElement.m; sourceTree = ""; }; + 9B2A12DC2783FEDD00CED41B /* ConsumerVipAbstractVo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ConsumerVipAbstractVo.h; sourceTree = ""; }; + 9B2A12DD2783FEDD00CED41B /* ConsumerVipAbstractVo.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ConsumerVipAbstractVo.m; sourceTree = ""; }; + 9B2EA7BE2804037700ED17BF /* KellegCombatPhaseRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KellegCombatPhaseRegard.h; sourceTree = ""; }; + 9B2EA7BF2804037700ED17BF /* KellegCombatPhaseRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = KellegCombatPhaseRegard.m; sourceTree = ""; }; + 9B2EA7C12804052E00ED17BF /* KellegCombatMiecreoscoopeRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KellegCombatMiecreoscoopeRegard.h; sourceTree = ""; }; + 9B2EA7C22804052E00ED17BF /* KellegCombatMiecreoscoopeRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = KellegCombatMiecreoscoopeRegard.m; sourceTree = ""; }; + 9B2EA7C428041EFC00ED17BF /* XCombatellegPkFasciaboardRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XCombatellegPkFasciaboardRegard.h; sourceTree = ""; }; + 9B2EA7C528041EFC00ED17BF /* XCombatellegPkFasciaboardRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XCombatellegPkFasciaboardRegard.m; sourceTree = ""; }; + 9B2EA7CA2804245500ED17BF /* XCombatellegCombatFasciaboardConsumerRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XCombatellegCombatFasciaboardConsumerRegard.h; sourceTree = ""; }; + 9B2EA7CB2804245500ED17BF /* XCombatellegCombatFasciaboardConsumerRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XCombatellegCombatFasciaboardConsumerRegard.m; sourceTree = ""; }; + 9B2F72CE28E45A480000E4FA /* YUMIChamberMHTuickCommunicationContainRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberMHTuickCommunicationContainRegard.h; sourceTree = ""; }; + 9B2F72CF28E45A480000E4FA /* YUMIChamberMHTuickCommunicationContainRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberMHTuickCommunicationContainRegard.m; sourceTree = ""; }; + 9B2F72D128E45C5A0000E4FA /* YUMIChamberMHTuidkCommunicationElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberMHTuidkCommunicationElement.h; sourceTree = ""; }; + 9B2F72D228E45C5A0000E4FA /* YUMIChamberMHTuidkCommunicationElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberMHTuidkCommunicationElement.m; sourceTree = ""; }; + 9B32A04528881845002009D2 /* YUMIChamberCoupleStatementRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberCoupleStatementRegard.h; sourceTree = ""; }; + 9B32A04628881845002009D2 /* YUMIChamberCoupleStatementRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberCoupleStatementRegard.m; sourceTree = ""; }; + 9B335B472925D8A00048A116 /* XCombatellegCombatChosenGenreGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XCombatellegCombatChosenGenreGovernancer.h; sourceTree = ""; }; + 9B335B482925D8A00048A116 /* XCombatellegCombatChosenGenreGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XCombatellegCombatChosenGenreGovernancer.m; sourceTree = ""; }; + 9B33E3C927D85379003B0E62 /* UpwardsloadAccurate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UpwardsloadAccurate.m; sourceTree = ""; }; + 9B33E3CA27D85379003B0E62 /* UpwardsloadAccurate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UpwardsloadAccurate.h; sourceTree = ""; }; + 9B3A1DF2280571000058E2DD /* XCombatellegCombatCallforRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XCombatellegCombatCallforRegard.h; sourceTree = ""; }; + 9B3A1DF3280571000058E2DD /* XCombatellegCombatCallforRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XCombatellegCombatCallforRegard.m; sourceTree = ""; }; + 9B3C1818292CE4FA003AF543 /* XCombatellegCombatAdaptationRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XCombatellegCombatAdaptationRegard.h; sourceTree = ""; }; + 9B3C1819292CE4FA003AF543 /* XCombatellegCombatAdaptationRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XCombatellegCombatAdaptationRegard.m; sourceTree = ""; }; + 9B41D36C282649230048C588 /* YUMIWeekSatelliteRateConsumerMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIWeekSatelliteRateConsumerMatrix.h; sourceTree = ""; }; + 9B41D36D282649230048C588 /* YUMIWeekSatelliteRateConsumerMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIWeekSatelliteRateConsumerMatrix.m; sourceTree = ""; }; + 9B42868C28C1AE2D009034D2 /* YUMIAchieveDeficitSheatheRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIAchieveDeficitSheatheRegard.h; sourceTree = ""; }; + 9B42868D28C1AE2D009034D2 /* YUMIAchieveDeficitSheatheRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIAchieveDeficitSheatheRegard.m; sourceTree = ""; }; + 9B42869028C1AED4009034D2 /* YUMIAchieveDeficitSheatheMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIAchieveDeficitSheatheMatrix.h; sourceTree = ""; }; + 9B42869128C1AED4009034D2 /* YUMIAchieveDeficitSheatheMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIAchieveDeficitSheatheMatrix.m; sourceTree = ""; }; + 9B42869328C1E00A009034D2 /* YUMIDeficitSheatheConsequentMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIDeficitSheatheConsequentMatrix.h; sourceTree = ""; }; + 9B42869428C1E00A009034D2 /* YUMIDeficitSheatheConsequentMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIDeficitSheatheConsequentMatrix.m; sourceTree = ""; }; + 9B42869628C1E06B009034D2 /* YUMIDeficitSheatheMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIDeficitSheatheMatrix.h; sourceTree = ""; }; + 9B42869728C1E06B009034D2 /* YUMIDeficitSheatheMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIDeficitSheatheMatrix.m; sourceTree = ""; }; + 9B42869A28C1FD3D009034D2 /* YUMIUnfoildDeficitSheatheElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIUnfoildDeficitSheatheElement.h; sourceTree = ""; }; + 9B42869B28C1FD3D009034D2 /* YUMIUnfoildDeficitSheatheElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIUnfoildDeficitSheatheElement.m; sourceTree = ""; }; + 9B4C5B84292F81FA00CEA41B /* YUMIInterlocutionStatementFanaticsParatiesMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIInterlocutionStatementFanaticsParatiesMatrix.h; sourceTree = ""; }; + 9B4C5B85292F81FA00CEA41B /* YUMIInterlocutionStatementFanaticsParatiesMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIInterlocutionStatementFanaticsParatiesMatrix.m; sourceTree = ""; }; + 9B4D449128F15765002572D5 /* YUMIPresentFortunatePresentPingbackRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIPresentFortunatePresentPingbackRegard.h; sourceTree = ""; }; + 9B4D449228F15765002572D5 /* YUMIPresentFortunatePresentPingbackRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIPresentFortunatePresentPingbackRegard.m; sourceTree = ""; }; + 9B4D449428F15EE7002572D5 /* YUMIPresentWeekSatellitePingbackRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIPresentWeekSatellitePingbackRegard.h; sourceTree = ""; }; + 9B4D449528F15EE7002572D5 /* YUMIPresentWeekSatellitePingbackRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIPresentWeekSatellitePingbackRegard.m; sourceTree = ""; }; + 9B4E91FE28E57A620033419E /* YUMIPresentIntelligenceGenreRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIPresentIntelligenceGenreRegard.h; sourceTree = ""; }; + 9B4E91FF28E57A620033419E /* YUMIPresentIntelligenceGenreRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIPresentIntelligenceGenreRegard.m; sourceTree = ""; }; + 9B6B3AA9278C2EA7005551EC /* YUMIChamberMagnificentPrototypeUpwardsRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberMagnificentPrototypeUpwardsRegard.h; sourceTree = ""; }; + 9B6B3AAA278C2EA7005551EC /* YUMIChamberMagnificentPrototypeUpwardsRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberMagnificentPrototypeUpwardsRegard.m; sourceTree = ""; }; + 9B6E8568281A982A0041A321 /* YUMIChamberEncourageRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberEncourageRegard.h; sourceTree = ""; }; + 9B6E8569281A982A0041A321 /* YUMIChamberEncourageRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberEncourageRegard.m; sourceTree = ""; }; + 9B6E856C281AABAB0041A321 /* YUMIChamberEncourageMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberEncourageMatrix.h; sourceTree = ""; }; + 9B6E856D281AABAB0041A321 /* YUMIChamberEncourageMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberEncourageMatrix.m; sourceTree = ""; }; + 9B6E8571281AB9B20041A321 /* YUMIChamberInsideEncourageElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberInsideEncourageElement.h; sourceTree = ""; }; + 9B6E8572281AB9B20041A321 /* YUMIChamberInsideEncourageElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberInsideEncourageElement.m; sourceTree = ""; }; + 9B6E8575281ABECC0041A321 /* YUMIChamberInsideEncourageDispossessElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberInsideEncourageDispossessElement.h; sourceTree = ""; }; + 9B6E8576281ABECC0041A321 /* YUMIChamberInsideEncourageDispossessElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberInsideEncourageDispossessElement.m; sourceTree = ""; }; + 9B734F71288A787000CBDAA9 /* YUMIManeAccountRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeAccountRegard.h; sourceTree = ""; }; + 9B734F72288A787000CBDAA9 /* YUMIManeAccountRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeAccountRegard.m; sourceTree = ""; }; + 9B734F74288A92FB00CBDAA9 /* YUMIManeFuntionProvisionMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeFuntionProvisionMatrix.h; sourceTree = ""; }; + 9B734F75288A92FB00CBDAA9 /* YUMIManeFuntionProvisionMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeFuntionProvisionMatrix.m; sourceTree = ""; }; + 9B7B605927BB53060070BB72 /* XCombatellegAudienceUpwardsLoudspeakerRegard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XCombatellegAudienceUpwardsLoudspeakerRegard.h; sourceTree = ""; }; + 9B7B605A27BB53060070BB72 /* XCombatellegAudienceUpwardsLoudspeakerRegard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XCombatellegAudienceUpwardsLoudspeakerRegard.m; sourceTree = ""; }; + 9B7B606027BB96E40070BB72 /* YUMIChamberKellegAbstractSolitaireRegard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIChamberKellegAbstractSolitaireRegard.h; sourceTree = ""; }; + 9B7B606127BB96E40070BB72 /* YUMIChamberKellegAbstractSolitaireRegard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberKellegAbstractSolitaireRegard.m; sourceTree = ""; }; + 9B7B606427BBA0EE0070BB72 /* XCombatellegAttentDischargeAbstract.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XCombatellegAttentDischargeAbstract.h; sourceTree = ""; }; + 9B7B606527BBA0EE0070BB72 /* XCombatellegAttentDischargeAbstract.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XCombatellegAttentDischargeAbstract.m; sourceTree = ""; }; + 9B7D80482753783D003DAC0C /* InterlocutionRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = InterlocutionRegardGovernancer.h; sourceTree = ""; }; + 9B7D80492753783D003DAC0C /* InterlocutionRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = InterlocutionRegardGovernancer.m; sourceTree = ""; }; + 9B7D804B27537950003DAC0C /* CommunicationElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CommunicationElement.h; sourceTree = ""; }; + 9B7D804C27537950003DAC0C /* CommunicationElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CommunicationElement.m; sourceTree = ""; }; + 9B7D804E2753AA9D003DAC0C /* UITableView+NIMScrollToBottom.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UITableView+NIMScrollToBottom.m"; sourceTree = ""; }; + 9B7D804F2753AA9D003DAC0C /* UITableView+NIMScrollToBottom.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UITableView+NIMScrollToBottom.h"; sourceTree = ""; }; + 9B7D904B287BC5E20033A45E /* KellegChamberScrollRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KellegChamberScrollRegard.h; sourceTree = ""; }; + 9B7D904C287BC5E20033A45E /* KellegChamberScrollRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = KellegChamberScrollRegard.m; sourceTree = ""; }; + 9B85B6D5279FDABA00A0A1AC /* YUMIConsumerSolitaireCommunicationSolitaireRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIConsumerSolitaireCommunicationSolitaireRegard.h; sourceTree = ""; }; + 9B85B6D6279FDABA00A0A1AC /* YUMIConsumerSolitaireCommunicationSolitaireRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIConsumerSolitaireCommunicationSolitaireRegard.m; sourceTree = ""; }; + 9B85B6D8279FDC5200A0A1AC /* YUMIConsumerSolitaireCommunicationAssembletionRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIConsumerSolitaireCommunicationAssembletionRegardElement.h; sourceTree = ""; }; + 9B85B6D9279FDC5200A0A1AC /* YUMIConsumerSolitaireCommunicationAssembletionRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIConsumerSolitaireCommunicationAssembletionRegardElement.m; sourceTree = ""; }; + 9B85F3512806AB9A006EDF51 /* XCombatellegCombatConsequentRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XCombatellegCombatConsequentRegard.h; sourceTree = ""; }; + 9B85F3522806AB9A006EDF51 /* XCombatellegCombatConsequentRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XCombatellegCombatConsequentRegard.m; sourceTree = ""; }; + 9B85F3542806DD8A006EDF51 /* XCombatellegCombatFinishRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XCombatellegCombatFinishRegard.h; sourceTree = ""; }; + 9B85F3552806DD8A006EDF51 /* XCombatellegCombatFinishRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XCombatellegCombatFinishRegard.m; sourceTree = ""; }; + 9B86D8782817DD8400494FCD /* YUMIChamberImportHideTipRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberImportHideTipRegard.h; sourceTree = ""; }; + 9B86D8792817DD8400494FCD /* YUMIChamberImportHideTipRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberImportHideTipRegard.m; sourceTree = ""; }; + 9B86D88128192DC000494FCD /* YUMIChamberRateEntranceRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberRateEntranceRegard.h; sourceTree = ""; }; + 9B86D88228192DC000494FCD /* YUMIChamberRateEntranceRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberRateEntranceRegard.m; sourceTree = ""; }; + 9B86D884281942D200494FCD /* SocialMiecreoscoopeRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SocialMiecreoscoopeRegard.h; sourceTree = ""; }; + 9B86D885281942D200494FCD /* SocialMiecreoscoopeRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SocialMiecreoscoopeRegard.m; sourceTree = ""; }; + 9B87B3CB2926473D00085110 /* YUMIInterlocutionStatementIntelligenceAssistantElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIInterlocutionStatementIntelligenceAssistantElement.h; sourceTree = ""; }; + 9B87B3CC2926473D00085110 /* YUMIInterlocutionStatementIntelligenceAssistantElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIInterlocutionStatementIntelligenceAssistantElement.m; sourceTree = ""; }; + 9B88E20A28C5EB8300D26FBA /* CommunicationSatisfactionDeficitSheatheRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CommunicationSatisfactionDeficitSheatheRegard.h; sourceTree = ""; }; + 9B88E20B28C5EB8300D26FBA /* CommunicationSatisfactionDeficitSheatheRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CommunicationSatisfactionDeficitSheatheRegard.m; sourceTree = ""; }; + 9B88E20D28C6305400D26FBA /* YUMIChamberHuntforReflectionRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberHuntforReflectionRegardGovernancer.h; sourceTree = ""; }; + 9B88E20E28C6305400D26FBA /* YUMIChamberHuntforReflectionRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberHuntforReflectionRegardGovernancer.m; sourceTree = ""; }; + 9B8DE0DF289CF02900FB6EC2 /* YUMIPresentCompoundMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIPresentCompoundMatrix.h; sourceTree = ""; }; + 9B8DE0E0289CF02900FB6EC2 /* YUMIPresentCompoundMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIPresentCompoundMatrix.m; sourceTree = ""; }; + 9B8DE0E2289CF7AA00FB6EC2 /* YUMIChamberPresentCompoundRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberPresentCompoundRegard.h; sourceTree = ""; }; + 9B8DE0E3289CF7AA00FB6EC2 /* YUMIChamberPresentCompoundRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberPresentCompoundRegard.m; sourceTree = ""; }; + 9B92A33A2797E38100AD168F /* YUMIManeIntelligenceProvisionTabulationRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeIntelligenceProvisionTabulationRegardElement.h; sourceTree = ""; }; + 9B92A33B2797E38100AD168F /* YUMIManeIntelligenceProvisionTabulationRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeIntelligenceProvisionTabulationRegardElement.m; sourceTree = ""; }; + 9B9BBF81288FBFB3004E2E74 /* YUMIStrangeConsumerChamberPresentRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIStrangeConsumerChamberPresentRegard.h; sourceTree = ""; }; + 9B9BBF82288FBFB3004E2E74 /* YUMIStrangeConsumerChamberPresentRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIStrangeConsumerChamberPresentRegard.m; sourceTree = ""; }; + 9B9DD948281BC17600DBA903 /* YUMIConfectioneryTimberFurthaerPreadominantElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIConfectioneryTimberFurthaerPreadominantElement.h; sourceTree = ""; }; + 9B9DD949281BC17600DBA903 /* YUMIConfectioneryTimberFurthaerPreadominantElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIConfectioneryTimberFurthaerPreadominantElement.m; sourceTree = ""; }; + 9BA3B409293DCDFD0071DF1C /* YUMIVersionRefurbishMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIVersionRefurbishMatrix.h; sourceTree = ""; }; + 9BA3B40A293DCDFD0071DF1C /* YUMIVersionRefurbishMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIVersionRefurbishMatrix.m; sourceTree = ""; }; + 9BA3B40D293DD2F90071DF1C /* YUMIAscensionRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIAscensionRegard.h; sourceTree = ""; }; + 9BA3B40E293DD2F90071DF1C /* YUMIAscensionRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIAscensionRegard.m; sourceTree = ""; }; + 9BA812D028BF145700783EA7 /* ClientDeficitSheatheMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ClientDeficitSheatheMatrix.h; sourceTree = ""; }; + 9BA812D128BF145700783EA7 /* ClientDeficitSheatheMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ClientDeficitSheatheMatrix.m; sourceTree = ""; }; + 9BA812D428BF52E100783EA7 /* YUMIChamberDischargeDeficitSheatheRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberDischargeDeficitSheatheRegardGovernancer.h; sourceTree = ""; }; + 9BA812D528BF52E100783EA7 /* YUMIChamberDischargeDeficitSheatheRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberDischargeDeficitSheatheRegardGovernancer.m; sourceTree = ""; }; + 9BA812DB28BF6A7300783EA7 /* YUMIChamberDeficitSheatheExternalizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberDeficitSheatheExternalizer.h; sourceTree = ""; }; + 9BA812DC28BF6A7300783EA7 /* YUMIChamberDeficitSheatheExternalizer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberDeficitSheatheExternalizer.m; sourceTree = ""; }; + 9BA812DE28BF6ABB00783EA7 /* Api+RedPacket.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Api+RedPacket.h"; sourceTree = ""; }; + 9BA812DF28BF6ABB00783EA7 /* Api+RedPacket.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "Api+RedPacket.m"; sourceTree = ""; }; + 9BA812E128BF6AFB00783EA7 /* FBCChamberRedPacketCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FBCChamberRedPacketCeremony.h; sourceTree = ""; }; + 9BA812E228BF70A600783EA7 /* YUMIChamberDeficitSheathePwordRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberDeficitSheathePwordRegard.h; sourceTree = ""; }; + 9BA812E328BF70A600783EA7 /* YUMIChamberDeficitSheathePwordRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberDeficitSheathePwordRegard.m; sourceTree = ""; }; + 9BA8A47427C60D9F000365A3 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; + 9BA8A47627C60DF7000365A3 /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; }; + 9BAA5FEB277A1BBE007453F3 /* YUMIPrivacyRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIPrivacyRegardGovernancer.h; sourceTree = ""; }; + 9BAA5FEC277A1BBE007453F3 /* YUMIPrivacyRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIPrivacyRegardGovernancer.m; sourceTree = ""; }; + 9BAA5FEE277A23F4007453F3 /* YUMIPermissionsRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIPermissionsRegardGovernancer.h; sourceTree = ""; }; + 9BAA5FEF277A23F4007453F3 /* YUMIPermissionsRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIPermissionsRegardGovernancer.m; sourceTree = ""; }; + 9BAC92EC28E6989400147DD8 /* YUMIChamberImportpriseDisportRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberImportpriseDisportRegard.h; sourceTree = ""; }; + 9BAC92ED28E6989400147DD8 /* YUMIChamberImportpriseDisportRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberImportpriseDisportRegard.m; sourceTree = ""; }; + 9BAC92F028E6A05600147DD8 /* YUMIChamberImportpriseDisportMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberImportpriseDisportMatrix.h; sourceTree = ""; }; + 9BAC92F128E6A05600147DD8 /* YUMIChamberImportpriseDisportMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberImportpriseDisportMatrix.m; sourceTree = ""; }; + 9BAC92F328E6E63000147DD8 /* YUMIChamberInsideOperationElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberInsideOperationElement.h; sourceTree = ""; }; + 9BAC92F428E6E63000147DD8 /* YUMIChamberInsideOperationElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberInsideOperationElement.m; sourceTree = ""; }; + 9BAD41AD28C6ECBA005E47B3 /* FBCInChamberRecordCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FBCInChamberRecordCeremony.h; sourceTree = ""; }; + 9BB865B4272076140029CDE0 /* RtcImplRepresendtation.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RtcImplRepresendtation.h; sourceTree = ""; }; + 9BB89DC127FE7F3A00586A83 /* XCombatellegFanaticsRelationMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XCombatellegFanaticsRelationMatrix.h; sourceTree = ""; }; + 9BB89DC227FE7F3A00586A83 /* XCombatellegFanaticsRelationMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XCombatellegFanaticsRelationMatrix.m; sourceTree = ""; }; + 9BB89DC427FEB9E100586A83 /* XCombatellegFanaticsmissionRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XCombatellegFanaticsmissionRegardGovernancer.h; sourceTree = ""; }; + 9BB89DC527FEB9E100586A83 /* XCombatellegFanaticsmissionRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XCombatellegFanaticsmissionRegardGovernancer.m; sourceTree = ""; }; + 9BBC028C2786FA060007C24B /* MagnificentSolitaireMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MagnificentSolitaireMatrix.h; sourceTree = ""; }; + 9BBC028D2786FA060007C24B /* MagnificentSolitaireMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MagnificentSolitaireMatrix.m; sourceTree = ""; }; + 9BBC028F2786FC570007C24B /* YUMIManeMagnificentSolitaireTabulationRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeMagnificentSolitaireTabulationRegardElement.h; sourceTree = ""; }; + 9BBC02902786FC570007C24B /* YUMIManeMagnificentSolitaireTabulationRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeMagnificentSolitaireTabulationRegardElement.m; sourceTree = ""; }; + 9BC5C91A277C8A7B007C8719 /* YUMIReleaseWirelessRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIReleaseWirelessRegardGovernancer.h; sourceTree = ""; }; + 9BC5C91B277C8A7B007C8719 /* YUMIReleaseWirelessRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIReleaseWirelessRegardGovernancer.m; sourceTree = ""; }; + 9BC5C91D277C902B007C8719 /* YUMIReleaseWirelessRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIReleaseWirelessRegard.h; sourceTree = ""; }; + 9BC5C91E277C902B007C8719 /* YUMIReleaseWirelessRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIReleaseWirelessRegard.m; sourceTree = ""; }; + 9BC8C82E28090C9200C24F85 /* YUMIChamberKellegRateOriflammeRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberKellegRateOriflammeRegard.h; sourceTree = ""; }; + 9BC8C82F28090C9200C24F85 /* YUMIChamberKellegRateOriflammeRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberKellegRateOriflammeRegard.m; sourceTree = ""; }; + 9BC9DAED27E33B3F009EE409 /* YUMIChamberPresentBrightnessAnatomiser.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberPresentBrightnessAnatomiser.h; sourceTree = ""; }; + 9BC9DAEE27E33B3F009EE409 /* YUMIChamberPresentBrightnessAnatomiser.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberPresentBrightnessAnatomiser.m; sourceTree = ""; }; + 9BCB999E28F571B500466D64 /* YUMIManeAssembleParatiesChamberRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeAssembleParatiesChamberRegardGovernancer.h; sourceTree = ""; }; + 9BCB999F28F571B500466D64 /* YUMIManeAssembleParatiesChamberRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeAssembleParatiesChamberRegardGovernancer.m; sourceTree = ""; }; + 9BCB99A428F582EC00466D64 /* YUMIManeAssembleChamberCompileElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeAssembleChamberCompileElement.h; sourceTree = ""; }; + 9BCB99A528F582EC00466D64 /* YUMIManeAssembleChamberCompileElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeAssembleChamberCompileElement.m; sourceTree = ""; }; + 9BCD02C52796C02800F396AA /* MiecreoscoopeMagnificentWaveRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MiecreoscoopeMagnificentWaveRegard.h; sourceTree = ""; }; + 9BCD02C62796C02800F396AA /* MiecreoscoopeMagnificentWaveRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MiecreoscoopeMagnificentWaveRegard.m; sourceTree = ""; }; + 9BCE6142277D657600CC0358 /* YUMIReleaseWirelessTabulationRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIReleaseWirelessTabulationRegardElement.h; sourceTree = ""; }; + 9BCE6143277D657600CC0358 /* YUMIReleaseWirelessTabulationRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIReleaseWirelessTabulationRegardElement.m; sourceTree = ""; }; + 9BCFB826289BAC7D0093D863 /* YUMIManeIntelligenceFunctionProvisionProgramming.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeIntelligenceFunctionProvisionProgramming.h; sourceTree = ""; }; + 9BCFB827289BAC7D0093D863 /* YUMIManeIntelligenceFunctionProvisionProgramming.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeIntelligenceFunctionProvisionProgramming.m; sourceTree = ""; }; + 9BD2ECCC288F829600F5CD9A /* YUMIManeTerminalImpressionRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeTerminalImpressionRegardGovernancer.h; sourceTree = ""; }; + 9BD2ECCD288F829600F5CD9A /* YUMIManeTerminalImpressionRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeTerminalImpressionRegardGovernancer.m; sourceTree = ""; }; + 9BD2ECD0288F833B00F5CD9A /* YUMIManeTerminalImpressionMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeTerminalImpressionMatrix.h; sourceTree = ""; }; + 9BD2ECD1288F833B00F5CD9A /* YUMIManeTerminalImpressionMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeTerminalImpressionMatrix.m; sourceTree = ""; }; + 9BD2ECD3288F838200F5CD9A /* YUMIManeTerminalImpressionExternalizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeTerminalImpressionExternalizer.h; sourceTree = ""; }; + 9BD2ECD4288F838200F5CD9A /* YUMIManeTerminalImpressionExternalizer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeTerminalImpressionExternalizer.m; sourceTree = ""; }; + 9BD2ECD6288F849300F5CD9A /* FBCManeFootPrintCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FBCManeFootPrintCeremony.h; sourceTree = ""; }; + 9BD2ECD8288F867000F5CD9A /* YUMIManeTerminalImpressionTabulationRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeTerminalImpressionTabulationRegardElement.h; sourceTree = ""; }; + 9BD2ECD9288F867000F5CD9A /* YUMIManeTerminalImpressionTabulationRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeTerminalImpressionTabulationRegardElement.m; sourceTree = ""; }; + 9BD63FA9277EE885006EB744 /* Api+RoomRadio.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Api+RoomRadio.h"; sourceTree = ""; }; + 9BD63FAA277EE885006EB744 /* Api+RoomRadio.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "Api+RoomRadio.m"; sourceTree = ""; }; + 9BD63FAC277EE97A006EB744 /* YUMIReleaseWirelessExternalizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIReleaseWirelessExternalizer.h; sourceTree = ""; }; + 9BD63FAD277EE97A006EB744 /* YUMIReleaseWirelessExternalizer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIReleaseWirelessExternalizer.m; sourceTree = ""; }; + 9BD63FB1277EF14A006EB744 /* FBCReleaseRadioCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FBCReleaseRadioCeremony.h; sourceTree = ""; }; + 9BD63FB2277EF1B3006EB744 /* YUMIReleaseWirelessMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIReleaseWirelessMatrix.h; sourceTree = ""; }; + 9BD63FB3277EF1B3006EB744 /* YUMIReleaseWirelessMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIReleaseWirelessMatrix.m; sourceTree = ""; }; + 9BD798AF29262434003E03E6 /* YUMIInterlocutionStatementIntelligenceRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIInterlocutionStatementIntelligenceRegard.h; sourceTree = ""; }; + 9BD798B029262434003E03E6 /* YUMIInterlocutionStatementIntelligenceRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIInterlocutionStatementIntelligenceRegard.m; sourceTree = ""; }; + 9BD798B2292632FE003E03E6 /* YUMIInterlocutionStatementIntelligenceProvisionRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIInterlocutionStatementIntelligenceProvisionRegard.h; sourceTree = ""; }; + 9BD798B3292632FE003E03E6 /* YUMIInterlocutionStatementIntelligenceProvisionRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIInterlocutionStatementIntelligenceProvisionRegard.m; sourceTree = ""; }; + 9BD798B52926362F003E03E6 /* YUMIInterlocutionStatementIntelligenceProvision.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIInterlocutionStatementIntelligenceProvision.h; sourceTree = ""; }; + 9BD798B62926362F003E03E6 /* YUMIInterlocutionStatementIntelligenceProvision.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIInterlocutionStatementIntelligenceProvision.m; sourceTree = ""; }; + 9BD8D4E128911E9900AE03FF /* YUMIManeAssembleChamberStatementRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeAssembleChamberStatementRegardGovernancer.h; sourceTree = ""; }; + 9BD8D4E228911E9900AE03FF /* YUMIManeAssembleChamberStatementRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeAssembleChamberStatementRegardGovernancer.m; sourceTree = ""; }; + 9BD8D4E428911F7700AE03FF /* YUMIManeAssembleChamberStatementExternalizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeAssembleChamberStatementExternalizer.h; sourceTree = ""; }; + 9BD8D4E528911F7700AE03FF /* YUMIManeAssembleChamberStatementExternalizer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeAssembleChamberStatementExternalizer.m; sourceTree = ""; }; + 9BD8D4E728911FBD00AE03FF /* FBCManeCollectChamberStatementCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FBCManeCollectChamberStatementCeremony.h; sourceTree = ""; }; + 9BD9A17627A0E953004186FE /* FBCManeVisitorCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FBCManeVisitorCeremony.h; sourceTree = ""; }; + 9BD9A17727A0EC57004186FE /* YUMIManeVacationerExternalizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeVacationerExternalizer.h; sourceTree = ""; }; + 9BD9A17827A0EC57004186FE /* YUMIManeVacationerExternalizer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeVacationerExternalizer.m; sourceTree = ""; }; + 9BD9A17A27A0EE24004186FE /* YUMIManeVacationerRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeVacationerRegardGovernancer.h; sourceTree = ""; }; + 9BD9A17B27A0EE24004186FE /* YUMIManeVacationerRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeVacationerRegardGovernancer.m; sourceTree = ""; }; + 9BD9A17E27A0EFC7004186FE /* YUMIManeVacationerTabulationRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeVacationerTabulationRegardElement.h; sourceTree = ""; }; + 9BD9A17F27A0EFC7004186FE /* YUMIManeVacationerTabulationRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeVacationerTabulationRegardElement.m; sourceTree = ""; }; + 9BD9A18227A0F128004186FE /* YUMIManeVacationerProvisionMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeVacationerProvisionMatrix.h; sourceTree = ""; }; + 9BD9A18327A0F128004186FE /* YUMIManeVacationerProvisionMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeVacationerProvisionMatrix.m; sourceTree = ""; }; + 9BD9A18527A120FD004186FE /* YUMIManeVacationerUnReadMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeVacationerUnReadMatrix.h; sourceTree = ""; }; + 9BD9A18627A120FD004186FE /* YUMIManeVacationerUnReadMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeVacationerUnReadMatrix.m; sourceTree = ""; }; + 9BDA3E7527FD41C200517FE6 /* XCombatellegFanaticsSquadRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XCombatellegFanaticsSquadRegardGovernancer.h; sourceTree = ""; }; + 9BDA3E7627FD41C200517FE6 /* XCombatellegFanaticsSquadRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XCombatellegFanaticsSquadRegardGovernancer.m; sourceTree = ""; }; + 9BDA3E7827FD43EF00517FE6 /* XCombatellegFanaticsSquadEntranceRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XCombatellegFanaticsSquadEntranceRegard.h; sourceTree = ""; }; + 9BDA3E7927FD43EF00517FE6 /* XCombatellegFanaticsSquadEntranceRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XCombatellegFanaticsSquadEntranceRegard.m; sourceTree = ""; }; + 9BDA3E7B27FD47AB00517FE6 /* XCombatellegFanaticsSquadExternalizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XCombatellegFanaticsSquadExternalizer.h; sourceTree = ""; }; + 9BDA3E7C27FD47AB00517FE6 /* XCombatellegFanaticsSquadExternalizer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XCombatellegFanaticsSquadExternalizer.m; sourceTree = ""; }; + 9BDA3E7F27FD480D00517FE6 /* XCombatellegFanaticsTeamCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XCombatellegFanaticsTeamCeremony.h; sourceTree = ""; }; + 9BE01ACC28925F7D00B50299 /* YUMIManeStrangeConsumerReindictRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeStrangeConsumerReindictRegard.h; sourceTree = ""; }; + 9BE01ACD28925F7D00B50299 /* YUMIManeStrangeConsumerReindictRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeStrangeConsumerReindictRegard.m; sourceTree = ""; }; + 9BE01ACF28927AC000B50299 /* YUMIPretendUpwardsProcurementRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIPretendUpwardsProcurementRegardGovernancer.h; sourceTree = ""; }; + 9BE01AD028927AC000B50299 /* YUMIPretendUpwardsProcurementRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIPretendUpwardsProcurementRegardGovernancer.m; sourceTree = ""; }; + 9BE01AD228927E9C00B50299 /* YUMIPretendUpwardsProcurementStatementRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIPretendUpwardsProcurementStatementRegardGovernancer.h; sourceTree = ""; }; + 9BE01AD328927E9C00B50299 /* YUMIPretendUpwardsProcurementStatementRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIPretendUpwardsProcurementStatementRegardGovernancer.m; sourceTree = ""; }; + 9BE01AD8289296B500B50299 /* YUMIPretendUpwardsProcurementExternalizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIPretendUpwardsProcurementExternalizer.h; sourceTree = ""; }; + 9BE01AD9289296B500B50299 /* YUMIPretendUpwardsProcurementExternalizer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIPretendUpwardsProcurementExternalizer.m; sourceTree = ""; }; + 9BE01ADB2892975000B50299 /* FBCPretendedProcurementCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FBCPretendedProcurementCeremony.h; sourceTree = ""; }; + 9BE01ADC2892A66D00B50299 /* PretendUpwardsProcurementMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PretendUpwardsProcurementMatrix.h; sourceTree = ""; }; + 9BE01ADD2892A66D00B50299 /* PretendUpwardsProcurementMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PretendUpwardsProcurementMatrix.m; sourceTree = ""; }; + 9BE01ADF28937DBC00B50299 /* YUMIPretendUpwardsProcurementSolitaireRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIPretendUpwardsProcurementSolitaireRegardGovernancer.h; sourceTree = ""; }; + 9BE01AE028937DBC00B50299 /* YUMIPretendUpwardsProcurementSolitaireRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIPretendUpwardsProcurementSolitaireRegardGovernancer.m; sourceTree = ""; }; + 9BE01AE228937EDE00B50299 /* YUMIPretendUpwardsProcurementAssembletionRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIPretendUpwardsProcurementAssembletionRegardElement.h; sourceTree = ""; }; + 9BE01AE328937EDE00B50299 /* YUMIPretendUpwardsProcurementAssembletionRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIPretendUpwardsProcurementAssembletionRegardElement.m; sourceTree = ""; }; + 9BE01AE528938AB600B50299 /* YUMIPretendUpwardsProcurementSolitaireTabulationRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIPretendUpwardsProcurementSolitaireTabulationRegardElement.h; sourceTree = ""; }; + 9BE01AE628938AB600B50299 /* YUMIPretendUpwardsProcurementSolitaireTabulationRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIPretendUpwardsProcurementSolitaireTabulationRegardElement.m; sourceTree = ""; }; + 9BE01AE82893CB4400B50299 /* YUMIPretendHuntforRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIPretendHuntforRegardGovernancer.h; sourceTree = ""; }; + 9BE01AE92893CB4400B50299 /* YUMIPretendHuntforRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIPretendHuntforRegardGovernancer.m; sourceTree = ""; }; + 9BE01AEB2893D0DF00B50299 /* YUMIPretendProcurementHuntforTabulationRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIPretendProcurementHuntforTabulationRegardElement.h; sourceTree = ""; }; + 9BE01AEC2893D0DF00B50299 /* YUMIPretendProcurementHuntforTabulationRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIPretendProcurementHuntforTabulationRegardElement.m; sourceTree = ""; }; + 9BE01AEE2893E31700B50299 /* StrangeConsumerReindictMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = StrangeConsumerReindictMatrix.h; sourceTree = ""; }; + 9BE01AEF2893E31700B50299 /* StrangeConsumerReindictMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = StrangeConsumerReindictMatrix.m; sourceTree = ""; }; + 9BE01AF52893E7F500B50299 /* YUMIStrangeConsumerReindictAssembletionRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIStrangeConsumerReindictAssembletionRegardElement.h; sourceTree = ""; }; + 9BE01AF62893E7F500B50299 /* YUMIStrangeConsumerReindictAssembletionRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIStrangeConsumerReindictAssembletionRegardElement.m; sourceTree = ""; }; + 9BE2FA8E288010D300EF3D83 /* KellegChamberSrollTipRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KellegChamberSrollTipRegard.h; sourceTree = ""; }; + 9BE2FA8F288010D300EF3D83 /* KellegChamberSrollTipRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = KellegChamberSrollTipRegard.m; sourceTree = ""; }; + 9BE570BA28F65B7200D491A5 /* YUMIManeAssembleChamberElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeAssembleChamberElement.h; sourceTree = ""; }; + 9BE570BB28F65B7200D491A5 /* YUMIManeAssembleChamberElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeAssembleChamberElement.m; sourceTree = ""; }; + 9BE9F0F727FED12D00667200 /* XCombatellegFanaticsPrivilegeMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XCombatellegFanaticsPrivilegeMatrix.h; sourceTree = ""; }; + 9BE9F0F827FED12D00667200 /* XCombatellegFanaticsPrivilegeMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XCombatellegFanaticsPrivilegeMatrix.m; sourceTree = ""; }; + 9BE9F0FA27FED2E100667200 /* XCombatellegFanaticsJoinMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XCombatellegFanaticsJoinMatrix.h; sourceTree = ""; }; + 9BE9F0FB27FED2E100667200 /* XCombatellegFanaticsJoinMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XCombatellegFanaticsJoinMatrix.m; sourceTree = ""; }; + 9BE9F0FD27FED76500667200 /* XCombatellegFanaticsmissionMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XCombatellegFanaticsmissionMatrix.h; sourceTree = ""; }; + 9BE9F0FE27FED76500667200 /* XCombatellegFanaticsmissionMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XCombatellegFanaticsmissionMatrix.m; sourceTree = ""; }; + 9BE9F10027FEE5C200667200 /* XCombatellegFanaticsmissionSpecificMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XCombatellegFanaticsmissionSpecificMatrix.h; sourceTree = ""; }; + 9BE9F10127FEE5C200667200 /* XCombatellegFanaticsmissionSpecificMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XCombatellegFanaticsmissionSpecificMatrix.m; sourceTree = ""; }; + 9BE9F10327FF04CF00667200 /* XCombatellegFanaticsmissionTabulationRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XCombatellegFanaticsmissionTabulationRegardElement.h; sourceTree = ""; }; + 9BE9F10427FF04CF00667200 /* XCombatellegFanaticsmissionTabulationRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XCombatellegFanaticsmissionTabulationRegardElement.m; sourceTree = ""; }; + 9BF4BEBA28D4182E009CF6C2 /* YUMIUnfoildDeficitSheatheMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIUnfoildDeficitSheatheMatrix.h; sourceTree = ""; }; + 9BF4BEBB28D4182E009CF6C2 /* YUMIUnfoildDeficitSheatheMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIUnfoildDeficitSheatheMatrix.m; sourceTree = ""; }; + 9BF5192428801D4700B6BE92 /* YUMIThroughoutChamberCombatComputationDownRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIThroughoutChamberCombatComputationDownRegard.h; sourceTree = ""; }; + 9BF5192528801D4700B6BE92 /* YUMIThroughoutChamberCombatComputationDownRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIThroughoutChamberCombatComputationDownRegard.m; sourceTree = ""; }; + 9BFB101D2897CC4300B3985E /* XCombatellegSolitaireRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XCombatellegSolitaireRegard.h; sourceTree = ""; }; + 9BFB101E2897CC4300B3985E /* XCombatellegSolitaireRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XCombatellegSolitaireRegard.m; sourceTree = ""; }; + 9BFB10202897D68400B3985E /* YUMITabKellegSolitaireMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMITabKellegSolitaireMatrix.h; sourceTree = ""; }; + 9BFB10212897D68400B3985E /* YUMITabKellegSolitaireMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMITabKellegSolitaireMatrix.m; sourceTree = ""; }; + 9BFE0D8C2898C8C300F53C24 /* XCombatellegSolitaireCommunicationAssembletionRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XCombatellegSolitaireCommunicationAssembletionRegardElement.h; sourceTree = ""; }; + 9BFE0D8D2898C8C300F53C24 /* XCombatellegSolitaireCommunicationAssembletionRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XCombatellegSolitaireCommunicationAssembletionRegardElement.m; sourceTree = ""; }; + 9BFE0D902899042600F53C24 /* YUMImissionCompleteTipRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMImissionCompleteTipRegard.h; sourceTree = ""; }; + 9BFE0D912899042600F53C24 /* YUMImissionCompleteTipRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMImissionCompleteTipRegard.m; sourceTree = ""; }; + 9BFE992C288142FD009DA429 /* ChamberClassifyMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ChamberClassifyMatrix.h; sourceTree = ""; }; + 9BFE992D288142FD009DA429 /* ChamberClassifyMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ChamberClassifyMatrix.m; sourceTree = ""; }; + B66633E061B1B34177CD011C /* Pods-YuMi.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-YuMi.release.xcconfig"; path = "Target Support Files/Pods-YuMi/Pods-YuMi.release.xcconfig"; sourceTree = ""; }; + CACF623970097D653132D69A /* Pods_YuMi.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_YuMi.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + E801273E27E323C800BAC3F2 /* YUMIChamberCombatRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberCombatRegardGovernancer.h; sourceTree = ""; }; + E801273F27E323C800BAC3F2 /* YUMIChamberCombatRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberCombatRegardGovernancer.m; sourceTree = ""; }; + E801274127E323E500BAC3F2 /* YUMIChamberCombatExternalizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberCombatExternalizer.h; sourceTree = ""; }; + E801274227E323E500BAC3F2 /* YUMIChamberCombatExternalizer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberCombatExternalizer.m; sourceTree = ""; }; + E801274427E3240000BAC3F2 /* FBCChamberCombatCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FBCChamberCombatCeremony.h; sourceTree = ""; }; + E801274527E3241700BAC3F2 /* Api+RoomPK.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Api+RoomPK.h"; sourceTree = ""; }; + E801274627E3241700BAC3F2 /* Api+RoomPK.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "Api+RoomPK.m"; sourceTree = ""; }; + E801274927E327DA00BAC3F2 /* YUMIChamberCombatGenreTabulationRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberCombatGenreTabulationRegardElement.h; sourceTree = ""; }; + E801274A27E327DA00BAC3F2 /* YUMIChamberCombatGenreTabulationRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberCombatGenreTabulationRegardElement.m; sourceTree = ""; }; + E801274C27E3280000BAC3F2 /* YUMIChamberCombatVoteTabulationRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberCombatVoteTabulationRegardElement.h; sourceTree = ""; }; + E801274D27E3280000BAC3F2 /* YUMIChamberCombatVoteTabulationRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberCombatVoteTabulationRegardElement.m; sourceTree = ""; }; + E801274F27E3281100BAC3F2 /* YUMIChamberCombatIntratemporalTabulationRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberCombatIntratemporalTabulationRegardElement.h; sourceTree = ""; }; + E801275027E3281100BAC3F2 /* YUMIChamberCombatIntratemporalTabulationRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberCombatIntratemporalTabulationRegardElement.m; sourceTree = ""; }; + E801275327E3326000BAC3F2 /* YUMIChamberCombatConsumerRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberCombatConsumerRegard.h; sourceTree = ""; }; + E801275427E3326000BAC3F2 /* YUMIChamberCombatConsumerRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberCombatConsumerRegard.m; sourceTree = ""; }; + E801275627E347FD00BAC3F2 /* ChamberCombatReflectionMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ChamberCombatReflectionMatrix.h; sourceTree = ""; }; + E801275727E347FD00BAC3F2 /* ChamberCombatReflectionMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ChamberCombatReflectionMatrix.m; sourceTree = ""; }; + E80487632717DDD9008595F2 /* YUMIChamberParrotProvision.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberParrotProvision.h; sourceTree = ""; }; + E80487642717DDD9008595F2 /* YUMIChamberParrotProvision.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberParrotProvision.m; sourceTree = ""; }; + E8098CA5282E00920090B9F0 /* Api+Monents.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Api+Monents.h"; sourceTree = ""; }; + E8098CA6282E00920090B9F0 /* Api+Monents.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "Api+Monents.m"; sourceTree = ""; }; + E8098CA8282E03B40090B9F0 /* YUMISeparationsEncourageExternalizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMISeparationsEncourageExternalizer.h; sourceTree = ""; }; + E8098CA9282E03B40090B9F0 /* YUMISeparationsEncourageExternalizer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMISeparationsEncourageExternalizer.m; sourceTree = ""; }; + E8098CAB282E04870090B9F0 /* FBCSeparationsEncourageCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FBCSeparationsEncourageCeremony.h; sourceTree = ""; }; + E8098CAC282E07C00090B9F0 /* YUMISeparationsDispossessTabulationRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMISeparationsDispossessTabulationRegardElement.h; sourceTree = ""; }; + E8098CAD282E07C00090B9F0 /* YUMISeparationsDispossessTabulationRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMISeparationsDispossessTabulationRegardElement.m; sourceTree = ""; }; + E8098CAF282E86EF0090B9F0 /* YUMISeparationsSatisfactionRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMISeparationsSatisfactionRegard.h; sourceTree = ""; }; + E8098CB0282E86EF0090B9F0 /* YUMISeparationsSatisfactionRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMISeparationsSatisfactionRegard.m; sourceTree = ""; }; + E8098CB2282E97550090B9F0 /* YUMIManeBlackStatementExternalizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeBlackStatementExternalizer.h; sourceTree = ""; }; + E8098CB3282E97550090B9F0 /* YUMIManeBlackStatementExternalizer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeBlackStatementExternalizer.m; sourceTree = ""; }; + E8098CB6282E97AC0090B9F0 /* FBCManeBlackStatementCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FBCManeBlackStatementCeremony.h; sourceTree = ""; }; + E80A086027F2AC190027B30C /* ChamberCombatSpecificAbstractMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ChamberCombatSpecificAbstractMatrix.h; sourceTree = ""; }; + E80A086127F2AC190027B30C /* ChamberCombatSpecificAbstractMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ChamberCombatSpecificAbstractMatrix.m; sourceTree = ""; }; + E80A086327F318620027B30C /* YUMIChamberCombatDisportingRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberCombatDisportingRegard.h; sourceTree = ""; }; + E80A086427F318620027B30C /* YUMIChamberCombatDisportingRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberCombatDisportingRegard.m; sourceTree = ""; }; + E80A63DA28B86B9700690914 /* CommunicationSatisfactionSeparationsAutoRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CommunicationSatisfactionSeparationsAutoRegard.h; sourceTree = ""; }; + E80A63DB28B86B9700690914 /* CommunicationSatisfactionSeparationsAutoRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CommunicationSatisfactionSeparationsAutoRegard.m; sourceTree = ""; }; + E80B0710280D0A6700A79F63 /* FanaticsAbstractMatrix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FanaticsAbstractMatrix.h; sourceTree = ""; }; + E80B0711280D0A6700A79F63 /* FanaticsAbstractMatrix.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FanaticsAbstractMatrix.m; sourceTree = ""; }; + E80B0732280D740600A79F63 /* CommunicationSatisfactionUnionRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CommunicationSatisfactionUnionRegard.h; sourceTree = ""; }; + E80B0733280D740600A79F63 /* CommunicationSatisfactionUnionRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CommunicationSatisfactionUnionRegard.m; sourceTree = ""; }; + E80CBDE827D0C53F001E1EC2 /* YUMIWeakIntratemporalr.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIWeakIntratemporalr.h; sourceTree = ""; }; + E80CBDE927D0C53F001E1EC2 /* YUMIWeakIntratemporalr.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIWeakIntratemporalr.m; sourceTree = ""; }; + E80DE4052775665000BE5BCB /* YUMIThresholdReindictAssembletionRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIThresholdReindictAssembletionRegardElement.h; sourceTree = ""; }; + E80DE4062775665000BE5BCB /* YUMIThresholdReindictAssembletionRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIThresholdReindictAssembletionRegardElement.m; sourceTree = ""; }; + E80DE408277568D300BE5BCB /* ThemeColor+FirstRecharge.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "ThemeColor+FirstRecharge.h"; sourceTree = ""; }; + E80DE409277568D300BE5BCB /* ThemeColor+FirstRecharge.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "ThemeColor+FirstRecharge.m"; sourceTree = ""; }; + E80DE40B2775ABA500BE5BCB /* YUMIThresholdReindictFlowProgramming.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIThresholdReindictFlowProgramming.h; sourceTree = ""; }; + E80DE40C2775ABA500BE5BCB /* YUMIThresholdReindictFlowProgramming.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIThresholdReindictFlowProgramming.m; sourceTree = ""; }; + E80DE40E2775C34E00BE5BCB /* YUMIThresholdReindictSuccessRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIThresholdReindictSuccessRegard.h; sourceTree = ""; }; + E80DE40F2775C34E00BE5BCB /* YUMIThresholdReindictSuccessRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIThresholdReindictSuccessRegard.m; sourceTree = ""; }; + E80E09712A40B5DD00CD2BE7 /* YUMIConfectioneryTimberExternalizer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIConfectioneryTimberExternalizer.m; sourceTree = ""; }; + E80E09722A40B5DD00CD2BE7 /* YUMIConfectioneryTimberExternalizer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIConfectioneryTimberExternalizer.h; sourceTree = ""; }; + E80E09742A40B5DD00CD2BE7 /* FBCCandyTreeCeremony.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FBCCandyTreeCeremony.h; sourceTree = ""; }; + E80E09762A40B5DD00CD2BE7 /* ConfectioneryTimberConsequentMatrix.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ConfectioneryTimberConsequentMatrix.m; sourceTree = ""; }; + E80E09772A40B5DD00CD2BE7 /* ConfectioneryTimberReflectionMatrix.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ConfectioneryTimberReflectionMatrix.m; sourceTree = ""; }; + E80E09782A40B5DD00CD2BE7 /* YUMIConfectioneryTimberBrightnessMatrix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIConfectioneryTimberBrightnessMatrix.h; sourceTree = ""; }; + E80E09792A40B5DD00CD2BE7 /* ConfectioneryTimberAbstractMatrix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ConfectioneryTimberAbstractMatrix.h; sourceTree = ""; }; + E80E097A2A40B5DD00CD2BE7 /* YUMIConfectioneryTimberBrightnessMatrix.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIConfectioneryTimberBrightnessMatrix.m; sourceTree = ""; }; + E80E097B2A40B5DD00CD2BE7 /* ConfectioneryTimberReflectionMatrix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ConfectioneryTimberReflectionMatrix.h; sourceTree = ""; }; + E80E097C2A40B5DD00CD2BE7 /* ConfectioneryTimberConsequentMatrix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ConfectioneryTimberConsequentMatrix.h; sourceTree = ""; }; + E80E097D2A40B5DD00CD2BE7 /* ConfectioneryTimberAbstractMatrix.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ConfectioneryTimberAbstractMatrix.m; sourceTree = ""; }; + E80E097F2A40B5DD00CD2BE7 /* YUMIConfectioneryTimberRateRegard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIConfectioneryTimberRateRegard.m; sourceTree = ""; }; + E80E09802A40B5DD00CD2BE7 /* YUMIConfectioneryTimberFurthaerRegard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIConfectioneryTimberFurthaerRegard.m; sourceTree = ""; }; + E80E09812A40B5DD00CD2BE7 /* YUMIConfectioneryTimberRegardGovernancer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIConfectioneryTimberRegardGovernancer.h; sourceTree = ""; }; + E80E09822A40B5DD00CD2BE7 /* YUMIConfectioneryTimberInsufficientBalanceRegard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIConfectioneryTimberInsufficientBalanceRegard.h; sourceTree = ""; }; + E80E09832A40B5DD00CD2BE7 /* YUMIConfectioneryTimberPresentRegard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIConfectioneryTimberPresentRegard.m; sourceTree = ""; }; + E80E09842A40B5DD00CD2BE7 /* YUMIChamberHalfTissueRegard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIChamberHalfTissueRegard.h; sourceTree = ""; }; + E80E09852A40B5DD00CD2BE7 /* YUMIConfectioneryRateAccommodatedRegard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIConfectioneryRateAccommodatedRegard.h; sourceTree = ""; }; + E80E09872A40B5DD00CD2BE7 /* YUMIConfectioneryTimberDispossessableRegardElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIConfectioneryTimberDispossessableRegardElement.m; sourceTree = ""; }; + E80E09882A40B5DD00CD2BE7 /* YUMIConfectioneryTimberFurthaerPreadominantElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIConfectioneryTimberFurthaerPreadominantElement.m; sourceTree = ""; }; + E80E09892A40B5DD00CD2BE7 /* YUMIConfectioneryTimberRateTabulationRegardElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIConfectioneryTimberRateTabulationRegardElement.m; sourceTree = ""; }; + E80E098A2A40B5DD00CD2BE7 /* YUMIConfectioneryTimberFurthaerPreadominantElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIConfectioneryTimberFurthaerPreadominantElement.h; sourceTree = ""; }; + E80E098B2A40B5DD00CD2BE7 /* YUMIConfectioneryTimberDispossessableRegardElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIConfectioneryTimberDispossessableRegardElement.h; sourceTree = ""; }; + E80E098C2A40B5DD00CD2BE7 /* YUMIConfectioneryTimberRateTabulationRegardElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIConfectioneryTimberRateTabulationRegardElement.h; sourceTree = ""; }; + E80E098D2A40B5DD00CD2BE7 /* YUMIConfectioneryTimberRateRegard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIConfectioneryTimberRateRegard.h; sourceTree = ""; }; + E80E098E2A40B5DD00CD2BE7 /* YUMIConfectioneryTimberRegardGovernancer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIConfectioneryTimberRegardGovernancer.m; sourceTree = ""; }; + E80E098F2A40B5DD00CD2BE7 /* YUMIConfectioneryTimberFurthaerRegard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIConfectioneryTimberFurthaerRegard.h; sourceTree = ""; }; + E80E09902A40B5DD00CD2BE7 /* YUMIConfectioneryTimberPresentRegard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIConfectioneryTimberPresentRegard.h; sourceTree = ""; }; + E80E09912A40B5DD00CD2BE7 /* YUMIConfectioneryTimberInsufficientBalanceRegard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIConfectioneryTimberInsufficientBalanceRegard.m; sourceTree = ""; }; + E80E09922A40B5DD00CD2BE7 /* YUMIConfectioneryRateAccommodatedRegard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIConfectioneryRateAccommodatedRegard.m; sourceTree = ""; }; + E80E09932A40B5DD00CD2BE7 /* YUMIChamberHalfTissueRegard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberHalfTissueRegard.m; sourceTree = ""; }; + E80E09952A40B5DD00CD2BE7 /* Api+CandyTree.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "Api+CandyTree.m"; sourceTree = ""; }; + E80E09962A40B5DD00CD2BE7 /* Api+CandyTree.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "Api+CandyTree.h"; sourceTree = ""; }; + E80E09AA2A40B70100CD2BE7 /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hant"; path = "zh-Hant.lproj/Localizable.strings"; sourceTree = ""; }; + E80E09AC2A41336500CD2BE7 /* YUMITissueRegardNevRegard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMITissueRegardNevRegard.m; sourceTree = ""; }; + E80E09AD2A41336500CD2BE7 /* YUMITissueRegardNevRegard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMITissueRegardNevRegard.h; sourceTree = ""; }; + E80E09AF2A41573700CD2BE7 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; }; + E80E09B12A42071C00CD2BE7 /* YUMIChamberSatelliteKitchenOriflammeRegard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIChamberSatelliteKitchenOriflammeRegard.h; sourceTree = ""; }; + E80E09B22A42071D00CD2BE7 /* YUMIChamberSatelliteKitchenOriflammeRegard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberSatelliteKitchenOriflammeRegard.m; sourceTree = ""; }; + E80E09B42A42078F00CD2BE7 /* YUMIChamberSatelliteKitchenMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberSatelliteKitchenMatrix.h; sourceTree = ""; }; + E80E09B52A42078F00CD2BE7 /* YUMIChamberSatelliteKitchenMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberSatelliteKitchenMatrix.m; sourceTree = ""; }; + E80E2375299A47F60013FD40 /* AESUtils.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AESUtils.h; sourceTree = ""; }; + E80E2376299A47F60013FD40 /* AESUtils.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AESUtils.m; sourceTree = ""; }; + E80E900A27E0358900434B90 /* YUMIChamberMotifPrecautiousRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberMotifPrecautiousRegard.h; sourceTree = ""; }; + E80E900B27E0358900434B90 /* YUMIChamberMotifPrecautiousRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberMotifPrecautiousRegard.m; sourceTree = ""; }; + E80EC74C28ACD84000D133C5 /* MHTSpiritDirectorateRegard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MHTSpiritDirectorateRegard.m; sourceTree = ""; }; + E80EC74D28ACD84000D133C5 /* MHTSpiritFacilitater.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MHTSpiritFacilitater.h; sourceTree = ""; }; + E80EC74E28ACD84000D133C5 /* MHTIntrojectionObstacleRegardDispositionuration.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MHTIntrojectionObstacleRegardDispositionuration.m; sourceTree = ""; }; + E80EC74F28ACD84000D133C5 /* UITextView+MHTSpirit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UITextView+MHTSpirit.m"; sourceTree = ""; }; + E80EC75028ACD84000D133C5 /* MHTIntrojectionObstacleRegard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MHTIntrojectionObstacleRegard.m; sourceTree = ""; }; + E80EC75128ACD84000D133C5 /* MHTKeyboardBaseExecutive.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MHTKeyboardBaseExecutive.m; sourceTree = ""; }; + E80EC75228ACD84000D133C5 /* MHTSpirit.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MHTSpirit.m; sourceTree = ""; }; + E80EC75328ACD84000D133C5 /* MHTKeyboardExecutive.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MHTKeyboardExecutive.h; sourceTree = ""; }; + E80EC75428ACD84000D133C5 /* MHTSpiritAttachment.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MHTSpiritAttachment.h; sourceTree = ""; }; + E80EC75528ACD84000D133C5 /* MHTExtendDirectorateRegard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MHTExtendDirectorateRegard.m; sourceTree = ""; }; + E80EC75628ACD84000D133C5 /* UITextView+MHTSpirit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UITextView+MHTSpirit.h"; sourceTree = ""; }; + E80EC75728ACD84000D133C5 /* MHTIntrojectionObstacleRegardDispositionuration.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MHTIntrojectionObstacleRegardDispositionuration.h; sourceTree = ""; }; + E80EC75828ACD84000D133C5 /* MHTSpiritFacilitater.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MHTSpiritFacilitater.m; sourceTree = ""; }; + E80EC75928ACD84000D133C5 /* MHTSpiritDirectorateRegard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MHTSpiritDirectorateRegard.h; sourceTree = ""; }; + E80EC75A28ACD84000D133C5 /* MHTKeyboardBaseExecutive.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MHTKeyboardBaseExecutive.h; sourceTree = ""; }; + E80EC75B28ACD84000D133C5 /* MHTIntrojectionObstacleRegard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MHTIntrojectionObstacleRegard.h; sourceTree = ""; }; + E80EC75C28ACD84000D133C5 /* MHTExtendDirectorateRegard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MHTExtendDirectorateRegard.h; sourceTree = ""; }; + E80EC75D28ACD84000D133C5 /* MHTSpiritAttachment.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MHTSpiritAttachment.m; sourceTree = ""; }; + E80EC75E28ACD84000D133C5 /* MHTKeyboardExecutive.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MHTKeyboardExecutive.m; sourceTree = ""; }; + E80EC75F28ACD84000D133C5 /* MHTSpirit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MHTSpirit.h; sourceTree = ""; }; + E80EC76228ACD84000D133C5 /* emoji_138@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_138@2x.png"; sourceTree = ""; }; + E80EC76328ACD84000D133C5 /* emoji_145@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_145@2x.png"; sourceTree = ""; }; + E80EC76428ACD84000D133C5 /* emoji_126@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_126@2x.png"; sourceTree = ""; }; + E80EC76528ACD84000D133C5 /* emoji_134@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_134@2x.png"; sourceTree = ""; }; + E80EC76628ACD84000D133C5 /* emoji_149@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_149@2x.png"; sourceTree = ""; }; + E80EC76728ACD84000D133C5 /* emoji_80@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_80@2x.png"; sourceTree = ""; }; + E80EC76828ACD84000D133C5 /* emoji_161@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_161@2x.png"; sourceTree = ""; }; + E80EC76928ACD84000D133C5 /* emoji_102@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_102@2x.png"; sourceTree = ""; }; + E80EC76A28ACD84000D133C5 /* emoji_92@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_92@2x.png"; sourceTree = ""; }; + E80EC76B28ACD84000D133C5 /* emoji_110@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_110@2x.png"; sourceTree = ""; }; + E80EC76C28ACD84000D133C5 /* emoji_26@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_26@2x.png"; sourceTree = ""; }; + E80EC76D28ACD84000D133C5 /* emoji_45@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_45@2x.png"; sourceTree = ""; }; + E80EC76E28ACD84000D133C5 /* emoji_38@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_38@2x.png"; sourceTree = ""; }; + E80EC76F28ACD84000D133C5 /* emoji_49@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_49@2x.png"; sourceTree = ""; }; + E80EC77028ACD84000D133C5 /* emoji_34@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_34@2x.png"; sourceTree = ""; }; + E80EC77128ACD84000D133C5 /* emoji_57@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_57@2x.png"; sourceTree = ""; }; + E80EC77228ACD84000D133C5 /* emoji_02@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_02@2x.png"; sourceTree = ""; }; + E80EC77328ACD84000D133C5 /* emoji_61@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_61@2x.png"; sourceTree = ""; }; + E80EC77428ACD84000D133C5 /* emoji_10@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_10@2x.png"; sourceTree = ""; }; + E80EC77528ACD84000D133C5 /* emoji_73@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_73@2x.png"; sourceTree = ""; }; + E80EC77628ACD84000D133C5 /* emoji_55@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_55@2x.png"; sourceTree = ""; }; + E80EC77728ACD84000D133C5 /* emoji_28@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_28@2x.png"; sourceTree = ""; }; + E80EC77828ACD84000D133C5 /* emoji_36@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_36@2x.png"; sourceTree = ""; }; + E80EC77928ACD84000D133C5 /* emoji_47@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_47@2x.png"; sourceTree = ""; }; + E80EC77A28ACD84000D133C5 /* emoji_59@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_59@2x.png"; sourceTree = ""; }; + E80EC77B28ACD84000D133C5 /* emoji_24@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_24@2x.png"; sourceTree = ""; }; + E80EC77C28ACD84000D133C5 /* emoji.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = emoji.xml; sourceTree = ""; }; + E80EC77D28ACD84000D133C5 /* emoji_71@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_71@2x.png"; sourceTree = ""; }; + E80EC77E28ACD84000D133C5 /* emoji_12@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_12@2x.png"; sourceTree = ""; }; + E80EC77F28ACD84000D133C5 /* emoji_63@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_63@2x.png"; sourceTree = ""; }; + E80EC78028ACD84000D133C5 /* emoji_00@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_00@2x.png"; sourceTree = ""; }; + E80EC78128ACD84000D133C5 /* emoji_136@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_136@2x.png"; sourceTree = ""; }; + E80EC78228ACD84000D133C5 /* emoji_128@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_128@2x.png"; sourceTree = ""; }; + E80EC78328ACD84000D133C5 /* emoji_124@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_124@2x.png"; sourceTree = ""; }; + E80EC78428ACD84000D133C5 /* emoji_147@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_147@2x.png"; sourceTree = ""; }; + E80EC78528ACD84000D133C5 /* emoji_112@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_112@2x.png"; sourceTree = ""; }; + E80EC78628ACD84000D133C5 /* emoji_90@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_90@2x.png"; sourceTree = ""; }; + E80EC78728ACD84000D133C5 /* emoji_100@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_100@2x.png"; sourceTree = ""; }; + E80EC78828ACD84000D133C5 /* emoji_82@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_82@2x.png"; sourceTree = ""; }; + E80EC78928ACD84000D133C5 /* emoji_163@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_163@2x.png"; sourceTree = ""; }; + E80EC78A28ACD84000D133C5 /* emoji_67@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_67@2x.png"; sourceTree = ""; }; + E80EC78B28ACD84000D133C5 /* emoji_04@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_04@2x.png"; sourceTree = ""; }; + E80EC78C28ACD84000D133C5 /* emoji_79@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_79@2x.png"; sourceTree = ""; }; + E80EC78D28ACD84000D133C5 /* emoji_08@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_08@2x.png"; sourceTree = ""; }; + E80EC78E28ACD84000D133C5 /* emoji_75@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_75@2x.png"; sourceTree = ""; }; + E80EC78F28ACD84000D133C5 /* emoji_16@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_16@2x.png"; sourceTree = ""; }; + E80EC79028ACD84000D133C5 /* emoji_43@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_43@2x.png"; sourceTree = ""; }; + E80EC79128ACD84000D133C5 /* emoji_20@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_20@2x.png"; sourceTree = ""; }; + E80EC79228ACD84000D133C5 /* emoji_51@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_51@2x.png"; sourceTree = ""; }; + E80EC79328ACD84000D133C5 /* emoji_32@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_32@2x.png"; sourceTree = ""; }; + E80EC79428ACD84000D133C5 /* emoji_98@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_98@2x.png"; sourceTree = ""; }; + E80EC79528ACD84000D133C5 /* emoji_104@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_104@2x.png"; sourceTree = ""; }; + E80EC79628ACD84000D133C5 /* emoji_86@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_86@2x.png"; sourceTree = ""; }; + E80EC79728ACD84000D133C5 /* emoji_116@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_116@2x.png"; sourceTree = ""; }; + E80EC79828ACD84000D133C5 /* emoji_94@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_94@2x.png"; sourceTree = ""; }; + E80EC79928ACD84000D133C5 /* emoji_108@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_108@2x.png"; sourceTree = ""; }; + E80EC79A28ACD84000D133C5 /* emoji_120@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_120@2x.png"; sourceTree = ""; }; + E80EC79B28ACD84000D133C5 /* emoji_143@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_143@2x.png"; sourceTree = ""; }; + E80EC79C28ACD84000D133C5 /* emoji_132@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_132@2x.png"; sourceTree = ""; }; + E80EC79D28ACD84000D133C5 /* emoji_151@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_151@2x.png"; sourceTree = ""; }; + E80EC79E28ACD84000D133C5 /* emoji_96@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_96@2x.png"; sourceTree = ""; }; + E80EC79F28ACD84000D133C5 /* emoji_88@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_88@2x.png"; sourceTree = ""; }; + E80EC7A028ACD84000D133C5 /* emoji_114@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_114@2x.png"; sourceTree = ""; }; + E80EC7A128ACD84000D133C5 /* emoji_84@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_84@2x.png"; sourceTree = ""; }; + E80EC7A228ACD84000D133C5 /* emoji_165@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_165@2x.png"; sourceTree = ""; }; + E80EC7A328ACD84000D133C5 /* emoji_118@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_118@2x.png"; sourceTree = ""; }; + E80EC7A428ACD84000D133C5 /* emoji_106@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_106@2x.png"; sourceTree = ""; }; + E80EC7A528ACD84000D133C5 /* emoji_130@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_130@2x.png"; sourceTree = ""; }; + E80EC7A628ACD84000D133C5 /* emoji_141@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_141@2x.png"; sourceTree = ""; }; + E80EC7A728ACD84000D133C5 /* emoji_122@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_122@2x.png"; sourceTree = ""; }; + E80EC7A828ACD84000D133C5 /* emoji_14@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_14@2x.png"; sourceTree = ""; }; + E80EC7A928ACD84000D133C5 /* emoji_69@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_69@2x.png"; sourceTree = ""; }; + E80EC7AA28ACD84000D133C5 /* emoji_77@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_77@2x.png"; sourceTree = ""; }; + E80EC7AB28ACD84000D133C5 /* emoji_06@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_06@2x.png"; sourceTree = ""; }; + E80EC7AC28ACD84000D133C5 /* emoji_18@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_18@2x.png"; sourceTree = ""; }; + E80EC7AD28ACD84000D133C5 /* emoji_65@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_65@2x.png"; sourceTree = ""; }; + E80EC7AE28ACD84000D133C5 /* emoji_30@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_30@2x.png"; sourceTree = ""; }; + E80EC7AF28ACD84000D133C5 /* emoji_53@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_53@2x.png"; sourceTree = ""; }; + E80EC7B028ACD84000D133C5 /* emoji_22@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_22@2x.png"; sourceTree = ""; }; + E80EC7B128ACD84000D133C5 /* emoji_41@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_41@2x.png"; sourceTree = ""; }; + E80EC7B228ACD84000D133C5 /* emoji_60@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_60@2x.png"; sourceTree = ""; }; + E80EC7B328ACD84000D133C5 /* emoji_03@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_03@2x.png"; sourceTree = ""; }; + E80EC7B428ACD84000D133C5 /* emoji_72@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_72@2x.png"; sourceTree = ""; }; + E80EC7B528ACD84000D133C5 /* emoji_11@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_11@2x.png"; sourceTree = ""; }; + E80EC7B628ACD84000D133C5 /* emoji_39@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_39@2x.png"; sourceTree = ""; }; + E80EC7B728ACD84000D133C5 /* emoji_44@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_44@2x.png"; sourceTree = ""; }; + E80EC7B828ACD84000D133C5 /* emoji_27@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_27@2x.png"; sourceTree = ""; }; + E80EC7B928ACD84000D133C5 /* emoji_200@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_200@2x.png"; sourceTree = ""; }; + E80EC7BA28ACD84000D133C5 /* emoji_56@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_56@2x.png"; sourceTree = ""; }; + E80EC7BB28ACD84000D133C5 /* emoji_35@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_35@2x.png"; sourceTree = ""; }; + E80EC7BC28ACD84000D133C5 /* emoji_48@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_48@2x.png"; sourceTree = ""; }; + E80EC7BD28ACD84000D133C5 /* emoji_103@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_103@2x.png"; sourceTree = ""; }; + E80EC7BE28ACD84000D133C5 /* emoji_81@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_81@2x.png"; sourceTree = ""; }; + E80EC7BF28ACD84000D133C5 /* emoji_160@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_160@2x.png"; sourceTree = ""; }; + E80EC7C028ACD84000D133C5 /* emoji_111@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_111@2x.png"; sourceTree = ""; }; + E80EC7C128ACD84000D133C5 /* emoji_93@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_93@2x.png"; sourceTree = ""; }; + E80EC7C228ACD84000D133C5 /* emoji_127@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_127@2x.png"; sourceTree = ""; }; + E80EC7C328ACD84000D133C5 /* emoji_144@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_144@2x.png"; sourceTree = ""; }; + E80EC7C428ACD84000D133C5 /* emoji_139@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_139@2x.png"; sourceTree = ""; }; + E80EC7C528ACD84000D133C5 /* emoji_148@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_148@2x.png"; sourceTree = ""; }; + E80EC7C628ACD84000D133C5 /* emoji_135@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_135@2x.png"; sourceTree = ""; }; + E80EC7C728ACD84000D133C5 /* emoji_91@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_91@2x.png"; sourceTree = ""; }; + E80EC7C828ACD84000D133C5 /* emoji_113@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_113@2x.png"; sourceTree = ""; }; + E80EC7C928ACD84000D133C5 /* emoji_83@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_83@2x.png"; sourceTree = ""; }; + E80EC7CA28ACD84000D133C5 /* emoji_162@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_162@2x.png"; sourceTree = ""; }; + E80EC7CB28ACD84000D133C5 /* emoji_101@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_101@2x.png"; sourceTree = ""; }; + E80EC7CC28ACD84000D133C5 /* emoji_129@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_129@2x.png"; sourceTree = ""; }; + E80EC7CD28ACD84000D133C5 /* emoji_137@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_137@2x.png"; sourceTree = ""; }; + E80EC7CE28ACD84000D133C5 /* emoji_146@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_146@2x.png"; sourceTree = ""; }; + E80EC7CF28ACD84000D133C5 /* emoji_125@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_125@2x.png"; sourceTree = ""; }; + E80EC7D028ACD84000D133C5 /* emoji_13@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_13@2x.png"; sourceTree = ""; }; + E80EC7D128ACD84000D133C5 /* emoji_70@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_70@2x.png"; sourceTree = ""; }; + E80EC7D228ACD84000D133C5 /* emoji_01@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_01@2x.png"; sourceTree = ""; }; + E80EC7D328ACD84000D133C5 /* emoji_62@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_62@2x.png"; sourceTree = ""; }; + E80EC7D428ACD84000D133C5 /* emoji_37@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_37@2x.png"; sourceTree = ""; }; + E80EC7D528ACD84000D133C5 /* emoji_29@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_29@2x.png"; sourceTree = ""; }; + E80EC7D628ACD84000D133C5 /* emoji_54@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_54@2x.png"; sourceTree = ""; }; + E80EC7D728ACD84000D133C5 /* emoj_s_normal@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoj_s_normal@2x.png"; sourceTree = ""; }; + E80EC7D828ACD84000D133C5 /* emoji_25@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_25@2x.png"; sourceTree = ""; }; + E80EC7D928ACD84000D133C5 /* emoji_58@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_58@2x.png"; sourceTree = ""; }; + E80EC7DA28ACD84000D133C5 /* emoji_46@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_46@2x.png"; sourceTree = ""; }; + E80EC7DB28ACD84000D133C5 /* emoji_del_pressed@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_del_pressed@2x.png"; sourceTree = ""; }; + E80EC7DC28ACD84000D133C5 /* emoji_142@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_142@2x.png"; sourceTree = ""; }; + E80EC7DD28ACD84000D133C5 /* emoji_121@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_121@2x.png"; sourceTree = ""; }; + E80EC7DE28ACD84000D133C5 /* emoji_150@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_150@2x.png"; sourceTree = ""; }; + E80EC7DF28ACD84000D133C5 /* emoji_133@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_133@2x.png"; sourceTree = ""; }; + E80EC7E028ACD84000D133C5 /* emoji_87@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_87@2x.png"; sourceTree = ""; }; + E80EC7E128ACD84000D133C5 /* emoji_166@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_166@2x.png"; sourceTree = ""; }; + E80EC7E228ACD84000D133C5 /* emoji_105@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_105@2x.png"; sourceTree = ""; }; + E80EC7E328ACD84000D133C5 /* emoji_99@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_99@2x.png"; sourceTree = ""; }; + E80EC7E428ACD84000D133C5 /* emoji_109@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_109@2x.png"; sourceTree = ""; }; + E80EC7E528ACD84000D133C5 /* emoji_95@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_95@2x.png"; sourceTree = ""; }; + E80EC7E628ACD84000D133C5 /* emoji_117@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_117@2x.png"; sourceTree = ""; }; + E80EC7E728ACD84000D133C5 /* emoji_21@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_21@2x.png"; sourceTree = ""; }; + E80EC7E828ACD84000D133C5 /* emoji_42@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_42@2x.png"; sourceTree = ""; }; + E80EC7E928ACD84000D133C5 /* emoji_33@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_33@2x.png"; sourceTree = ""; }; + E80EC7EA28ACD84000D133C5 /* emoji_50@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_50@2x.png"; sourceTree = ""; }; + E80EC7EB28ACD84000D133C5 /* emoji_78@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_78@2x.png"; sourceTree = ""; }; + E80EC7EC28ACD84000D133C5 /* emoji_05@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_05@2x.png"; sourceTree = ""; }; + E80EC7ED28ACD84000D133C5 /* emoji_66@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_66@2x.png"; sourceTree = ""; }; + E80EC7EE28ACD84000D133C5 /* emoji_17@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_17@2x.png"; sourceTree = ""; }; + E80EC7EF28ACD84000D133C5 /* emoji_74@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_74@2x.png"; sourceTree = ""; }; + E80EC7F028ACD84000D133C5 /* emoji_09@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_09@2x.png"; sourceTree = ""; }; + E80EC7F128ACD84000D133C5 /* emoji_52@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_52@2x.png"; sourceTree = ""; }; + E80EC7F228ACD84000D133C5 /* emoji_31@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_31@2x.png"; sourceTree = ""; }; + E80EC7F328ACD84000D133C5 /* emoji_40@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_40@2x.png"; sourceTree = ""; }; + E80EC7F428ACD84000D133C5 /* emoji_23@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_23@2x.png"; sourceTree = ""; }; + E80EC7F528ACD84000D133C5 /* emoji_del_normal@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_del_normal@2x.png"; sourceTree = ""; }; + E80EC7F628ACD84000D133C5 /* emoji_76@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_76@2x.png"; sourceTree = ""; }; + E80EC7F728ACD84000D133C5 /* emoji_68@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_68@2x.png"; sourceTree = ""; }; + E80EC7F828ACD84000D133C5 /* emoji_15@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_15@2x.png"; sourceTree = ""; }; + E80EC7F928ACD84000D133C5 /* emoji_64@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_64@2x.png"; sourceTree = ""; }; + E80EC7FA28ACD84000D133C5 /* emoji_19@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_19@2x.png"; sourceTree = ""; }; + E80EC7FB28ACD84000D133C5 /* emoji_07@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_07@2x.png"; sourceTree = ""; }; + E80EC7FC28ACD84000D133C5 /* emoji_131@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_131@2x.png"; sourceTree = ""; }; + E80EC7FD28ACD84000D133C5 /* emoj_s_pressed@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoj_s_pressed@2x.png"; sourceTree = ""; }; + E80EC7FE28ACD84000D133C5 /* emoji_152@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_152@2x.png"; sourceTree = ""; }; + E80EC7FF28ACD84000D133C5 /* emoji_123@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_123@2x.png"; sourceTree = ""; }; + E80EC80028ACD84000D133C5 /* emoji_140@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_140@2x.png"; sourceTree = ""; }; + E80EC80128ACD84000D133C5 /* emoji_115@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_115@2x.png"; sourceTree = ""; }; + E80EC80228ACD84000D133C5 /* emoji_89@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_89@2x.png"; sourceTree = ""; }; + E80EC80328ACD84000D133C5 /* emoji_97@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_97@2x.png"; sourceTree = ""; }; + E80EC80428ACD84000D133C5 /* emoji_107@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_107@2x.png"; sourceTree = ""; }; + E80EC80528ACD84000D133C5 /* emoji_119@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_119@2x.png"; sourceTree = ""; }; + E80EC80628ACD84000D133C5 /* emoji_85@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_85@2x.png"; sourceTree = ""; }; + E80EC80728ACD84000D133C5 /* emoji_164@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "emoji_164@2x.png"; sourceTree = ""; }; + E80EC80828ACD84000D133C5 /* emoji.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = emoji.plist; sourceTree = ""; }; + E80EC8BE28ACDB2A00D133C5 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + E80EC8C028ACF97A00D133C5 /* MHTESentimentIndicateRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MHTESentimentIndicateRegard.h; sourceTree = ""; }; + E80EC8C128ACF97A00D133C5 /* MHTESentimentIndicateRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MHTESentimentIndicateRegard.m; sourceTree = ""; }; + E81060D7298761A300B772F0 /* CommunicationBaseMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CommunicationBaseMatrix.h; sourceTree = ""; }; + E81060D8298761A300B772F0 /* CommunicationBaseMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CommunicationBaseMatrix.m; sourceTree = ""; }; + E81060DA298761F100B772F0 /* CommunicationEssayMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CommunicationEssayMatrix.h; sourceTree = ""; }; + E81060DB298761F100B772F0 /* CommunicationEssayMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CommunicationEssayMatrix.m; sourceTree = ""; }; + E81060DD29876D3A00B772F0 /* CommunicationIntratemporalMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CommunicationIntratemporalMatrix.h; sourceTree = ""; }; + E81060DE29876D3A00B772F0 /* CommunicationIntratemporalMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CommunicationIntratemporalMatrix.m; sourceTree = ""; }; + E81060E029876E9100B772F0 /* CommunicationIndicateMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CommunicationIndicateMatrix.h; sourceTree = ""; }; + E81060E129876E9100B772F0 /* CommunicationIndicateMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CommunicationIndicateMatrix.m; sourceTree = ""; }; + E81060E329876FF300B772F0 /* CommunicationVocalmusicMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CommunicationVocalmusicMatrix.h; sourceTree = ""; }; + E81060E429876FF300B772F0 /* CommunicationVocalmusicMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CommunicationVocalmusicMatrix.m; sourceTree = ""; }; + E81060E62987720F00B772F0 /* CommunicationUnSupportMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CommunicationUnSupportMatrix.h; sourceTree = ""; }; + E81060E72987720F00B772F0 /* CommunicationUnSupportMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CommunicationUnSupportMatrix.m; sourceTree = ""; }; + E81060E92987BE8300B772F0 /* CommunicationPresentMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CommunicationPresentMatrix.h; sourceTree = ""; }; + E81060EA2987BE8300B772F0 /* CommunicationPresentMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CommunicationPresentMatrix.m; sourceTree = ""; }; + E81060EC2987C35700B772F0 /* CommunicationEssayClickMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CommunicationEssayClickMatrix.h; sourceTree = ""; }; + E81060ED2987C35700B772F0 /* CommunicationEssayClickMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CommunicationEssayClickMatrix.m; sourceTree = ""; }; + E81060EF2987C52B00B772F0 /* CommunicationUnionMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CommunicationUnionMatrix.h; sourceTree = ""; }; + E81060F02987C52B00B772F0 /* CommunicationUnionMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CommunicationUnionMatrix.m; sourceTree = ""; }; + E81060F22987C6B200B772F0 /* CommunicationUnfoildEnergeticMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CommunicationUnfoildEnergeticMatrix.h; sourceTree = ""; }; + E81060F32987C6B200B772F0 /* CommunicationUnfoildEnergeticMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CommunicationUnfoildEnergeticMatrix.m; sourceTree = ""; }; + E81060F52987C8A700B772F0 /* CommunicationApplicationParaticipationMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CommunicationApplicationParaticipationMatrix.h; sourceTree = ""; }; + E81060F62987C8A700B772F0 /* CommunicationApplicationParaticipationMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CommunicationApplicationParaticipationMatrix.m; sourceTree = ""; }; + E81060FB2987CC9100B772F0 /* CommunicationPrototypeAscensionMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CommunicationPrototypeAscensionMatrix.h; sourceTree = ""; }; + E81060FC2987CC9100B772F0 /* CommunicationPrototypeAscensionMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CommunicationPrototypeAscensionMatrix.m; sourceTree = ""; }; + E81060FE2987CDCC00B772F0 /* CommunicationTweetMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CommunicationTweetMatrix.h; sourceTree = ""; }; + E81060FF2987CDCC00B772F0 /* CommunicationTweetMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CommunicationTweetMatrix.m; sourceTree = ""; }; + E81061012987CFCE00B772F0 /* CommunicationCommunicationSolitaireMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CommunicationCommunicationSolitaireMatrix.h; sourceTree = ""; }; + E81061022987CFCE00B772F0 /* CommunicationCommunicationSolitaireMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CommunicationCommunicationSolitaireMatrix.m; sourceTree = ""; }; + E81125C2296E57B7000D9804 /* MHTinputAppearanceRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MHTinputAppearanceRegard.h; sourceTree = ""; }; + E81125C3296E57B7000D9804 /* MHTinputAppearanceRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MHTinputAppearanceRegard.m; sourceTree = ""; }; + E81125C5296E596D000D9804 /* MHTIntrojectionAppearancetElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MHTIntrojectionAppearancetElement.h; sourceTree = ""; }; + E81125C6296E596D000D9804 /* MHTIntrojectionAppearancetElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MHTIntrojectionAppearancetElement.m; sourceTree = ""; }; + E81125C8296E606F000D9804 /* MHTAppearanceIndicateMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MHTAppearanceIndicateMatrix.h; sourceTree = ""; }; + E81125C9296E606F000D9804 /* MHTAppearanceIndicateMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MHTAppearanceIndicateMatrix.m; sourceTree = ""; }; + E811FFF52742367B00918544 /* YUMIPresentDispossessAssembletionRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIPresentDispossessAssembletionRegardElement.h; sourceTree = ""; }; + E811FFF62742367B00918544 /* YUMIPresentDispossessAssembletionRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIPresentDispossessAssembletionRegardElement.m; sourceTree = ""; }; + E8133914273E532D00708B66 /* YUMIPresentProvisionAssembletionRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIPresentProvisionAssembletionRegardElement.h; sourceTree = ""; }; + E8133915273E532D00708B66 /* YUMIPresentProvisionAssembletionRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIPresentProvisionAssembletionRegardElement.m; sourceTree = ""; }; + E81366E126F0A1FC0076364C /* SurmountDilemmaMobileRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SurmountDilemmaMobileRegardGovernancer.h; sourceTree = ""; }; + E81366E226F0A1FC0076364C /* SurmountDilemmaMobileRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SurmountDilemmaMobileRegardGovernancer.m; sourceTree = ""; }; + E81366E526F0A49E0076364C /* NSString+Utils.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "NSString+Utils.h"; sourceTree = ""; }; + E81366E626F0A49E0076364C /* NSString+Utils.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "NSString+Utils.m"; sourceTree = ""; }; + E81366F126F0B7C80076364C /* SurmountFullAbstractRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SurmountFullAbstractRegardGovernancer.h; sourceTree = ""; }; + E81366F226F0B7C80076364C /* SurmountFullAbstractRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SurmountFullAbstractRegardGovernancer.m; sourceTree = ""; }; + E81366F426F0C0DF0076364C /* SurmountFullAbstractExternalizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SurmountFullAbstractExternalizer.h; sourceTree = ""; }; + E81366F526F0C0DF0076364C /* SurmountFullAbstractExternalizer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SurmountFullAbstractExternalizer.m; sourceTree = ""; }; + E81366F726F0C0F60076364C /* SurmountFullAbstractCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SurmountFullAbstractCeremony.h; sourceTree = ""; }; + E81366FA26F0D2980076364C /* UIButton+EnlargeTouchArea.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIButton+EnlargeTouchArea.m"; sourceTree = ""; }; + E81366FB26F0D2980076364C /* UIButton+EnlargeTouchArea.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIButton+EnlargeTouchArea.h"; sourceTree = ""; }; + E816C11327608A7500C84014 /* YUMIChamberMiniExecutive.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberMiniExecutive.h; sourceTree = ""; }; + E816C11427608A7500C84014 /* YUMIChamberMiniExecutive.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberMiniExecutive.m; sourceTree = ""; }; + E818DD1A2A4896EE00F163F7 /* YUMISurmountAraeRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMISurmountAraeRegardGovernancer.h; sourceTree = ""; }; + E818DD1B2A4896EE00F163F7 /* YUMISurmountAraeRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMISurmountAraeRegardGovernancer.m; sourceTree = ""; }; + E818DD1D2A48974300F163F7 /* SurmountAreaMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SurmountAreaMatrix.h; sourceTree = ""; }; + E818DD1E2A48974300F163F7 /* SurmountAreaMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SurmountAreaMatrix.m; sourceTree = ""; }; + E818DD202A48977F00F163F7 /* YUMISurmountAreaTabulationRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMISurmountAreaTabulationRegardElement.h; sourceTree = ""; }; + E818DD212A48977F00F163F7 /* YUMISurmountAreaTabulationRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMISurmountAreaTabulationRegardElement.m; sourceTree = ""; }; + E818E346286ECA4B005EDF68 /* YUMISeparationsAnnounceRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMISeparationsAnnounceRegardGovernancer.h; sourceTree = ""; }; + E818E347286ECA4B005EDF68 /* YUMISeparationsAnnounceRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMISeparationsAnnounceRegardGovernancer.m; sourceTree = ""; }; + E818E349286ECABF005EDF68 /* YUMISeparationsAnnounceExternalizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMISeparationsAnnounceExternalizer.h; sourceTree = ""; }; + E818E34A286ECABF005EDF68 /* YUMISeparationsAnnounceExternalizer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMISeparationsAnnounceExternalizer.m; sourceTree = ""; }; + E818E34C286ECAD8005EDF68 /* FBCSeparationsPublishCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FBCSeparationsPublishCeremony.h; sourceTree = ""; }; + E818E34D286EDF72005EDF68 /* YUMISeparationsAnnounceAssembletionRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMISeparationsAnnounceAssembletionRegardElement.h; sourceTree = ""; }; + E818E34E286EDF72005EDF68 /* YUMISeparationsAnnounceAssembletionRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMISeparationsAnnounceAssembletionRegardElement.m; sourceTree = ""; }; + E81A65292834E4F600F55894 /* YUMISeparationsConsiderationRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMISeparationsConsiderationRegardGovernancer.h; sourceTree = ""; }; + E81A652A2834E4F600F55894 /* YUMISeparationsConsiderationRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMISeparationsConsiderationRegardGovernancer.m; sourceTree = ""; }; + E81A652F2834E53600F55894 /* YUMISeparationsRecentlyRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMISeparationsRecentlyRegardGovernancer.h; sourceTree = ""; }; + E81A65302834E53600F55894 /* YUMISeparationsRecentlyRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMISeparationsRecentlyRegardGovernancer.m; sourceTree = ""; }; + E81A653D283511BE00F55894 /* YUMISeparationsCoactiveRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMISeparationsCoactiveRegardGovernancer.h; sourceTree = ""; }; + E81A653E283511BE00F55894 /* YUMISeparationsCoactiveRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMISeparationsCoactiveRegardGovernancer.m; sourceTree = ""; }; + E81A65402835120200F55894 /* YUMISeparationsCoactiveExternalizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMISeparationsCoactiveExternalizer.h; sourceTree = ""; }; + E81A65412835120200F55894 /* YUMISeparationsCoactiveExternalizer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMISeparationsCoactiveExternalizer.m; sourceTree = ""; }; + E81A65432835121000F55894 /* FBCSeparationsInteractiveCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FBCSeparationsInteractiveCeremony.h; sourceTree = ""; }; + E81A6544283519CA00F55894 /* SeparationsMotifMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SeparationsMotifMatrix.h; sourceTree = ""; }; + E81A6545283519CA00F55894 /* SeparationsMotifMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SeparationsMotifMatrix.m; sourceTree = ""; }; + E81A654728351B9500F55894 /* YUMISeparationsEncourageIntelligencerRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMISeparationsEncourageIntelligencerRegard.h; sourceTree = ""; }; + E81A654828351B9500F55894 /* YUMISeparationsEncourageIntelligencerRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMISeparationsEncourageIntelligencerRegard.m; sourceTree = ""; }; + E81A654A28351D9900F55894 /* YUMISeparationsMotifAssembletionRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMISeparationsMotifAssembletionRegardElement.h; sourceTree = ""; }; + E81A654B28351D9900F55894 /* YUMISeparationsMotifAssembletionRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMISeparationsMotifAssembletionRegardElement.m; sourceTree = ""; }; + E81AF32327F1D5B8003B9E43 /* YUMIChamberCombatProgressRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberCombatProgressRegard.h; sourceTree = ""; }; + E81AF32427F1D5B8003B9E43 /* YUMIChamberCombatProgressRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberCombatProgressRegard.m; sourceTree = ""; }; + E81AF32627F1EE69003B9E43 /* YUMIChamberCombatFasciaboardConsumerRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberCombatFasciaboardConsumerRegard.h; sourceTree = ""; }; + E81AF32727F1EE69003B9E43 /* YUMIChamberCombatFasciaboardConsumerRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberCombatFasciaboardConsumerRegard.m; sourceTree = ""; }; + E81C1B1927705F4B0020D1E4 /* FBCArrangeMicCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FBCArrangeMicCeremony.h; sourceTree = ""; }; + E81C1B1A27705F6B0020D1E4 /* YUMIScheduleLoudspeakerExternalizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIScheduleLoudspeakerExternalizer.h; sourceTree = ""; }; + E81C1B1B27705F6B0020D1E4 /* YUMIScheduleLoudspeakerExternalizer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIScheduleLoudspeakerExternalizer.m; sourceTree = ""; }; + E81C1B1D27705F7A0020D1E4 /* YUMIScheduleLoudspeakerRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIScheduleLoudspeakerRegardGovernancer.h; sourceTree = ""; }; + E81C1B1E27705F7A0020D1E4 /* YUMIScheduleLoudspeakerRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIScheduleLoudspeakerRegardGovernancer.m; sourceTree = ""; }; + E81C1B2027705F950020D1E4 /* Api+ArrangeMic.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Api+ArrangeMic.h"; sourceTree = ""; }; + E81C1B2127705F950020D1E4 /* Api+ArrangeMic.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "Api+ArrangeMic.m"; sourceTree = ""; }; + E81C1B242770663B0020D1E4 /* YUMIScheduleLoudspeakerTabulationRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIScheduleLoudspeakerTabulationRegardElement.h; sourceTree = ""; }; + E81C1B252770663B0020D1E4 /* YUMIScheduleLoudspeakerTabulationRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIScheduleLoudspeakerTabulationRegardElement.m; sourceTree = ""; }; + E81C1B27277069DD0020D1E4 /* YUMIScheduleLoudspeakerDispossessTabulationRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIScheduleLoudspeakerDispossessTabulationRegardElement.h; sourceTree = ""; }; + E81C1B28277069DD0020D1E4 /* YUMIScheduleLoudspeakerDispossessTabulationRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIScheduleLoudspeakerDispossessTabulationRegardElement.m; sourceTree = ""; }; + E81C1B2A27706E5C0020D1E4 /* ScheduleLoudspeakerMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ScheduleLoudspeakerMatrix.h; sourceTree = ""; }; + E81C1B2B27706E5C0020D1E4 /* ScheduleLoudspeakerMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ScheduleLoudspeakerMatrix.m; sourceTree = ""; }; + E81C1B2D277071670020D1E4 /* YUMIScheduleLoudspeakerAbstractMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIScheduleLoudspeakerAbstractMatrix.h; sourceTree = ""; }; + E81C1B2E277071670020D1E4 /* YUMIScheduleLoudspeakerAbstractMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIScheduleLoudspeakerAbstractMatrix.m; sourceTree = ""; }; + E81C278826EAFAF60031E639 /* DESEncrypt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DESEncrypt.h; sourceTree = ""; }; + E81C278926EAFAF60031E639 /* Base64.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Base64.m; sourceTree = ""; }; + E81C278A26EAFAF60031E639 /* Base64.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Base64.h; sourceTree = ""; }; + E81C278B26EAFAF60031E639 /* DESEncrypt.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DESEncrypt.m; sourceTree = ""; }; + E81C279426EB39CC0031E639 /* SurmountForgetCiphercodeExternalize.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SurmountForgetCiphercodeExternalize.h; sourceTree = ""; }; + E81C279526EB39CC0031E639 /* SurmountForgetCiphercodeExternalize.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SurmountForgetCiphercodeExternalize.m; sourceTree = ""; }; + E81C279726EB39E10031E639 /* SurmountForgetCiphercodeCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SurmountForgetCiphercodeCeremony.h; sourceTree = ""; }; + E81C279A26EB65560031E639 /* YUMIMacroUitls.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIMacroUitls.h; sourceTree = ""; }; + E81C279B26EEEC620031E639 /* YUMIConstant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIConstant.h; sourceTree = ""; }; + E81C279C26EEEC620031E639 /* YUMIConstant.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIConstant.m; sourceTree = ""; }; + E81C279E26EEF83D0031E639 /* YUMIHtmlUrl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIHtmlUrl.h; sourceTree = ""; }; + E81C279F26EEF83D0031E639 /* YUMIHtmlUrl.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIHtmlUrl.m; sourceTree = ""; }; + E81C27A126EF23370031E639 /* YUMINNNN.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMINNNN.h; sourceTree = ""; }; + E81C27A926EF2D920031E639 /* ThirdConsumerAbstract.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ThirdConsumerAbstract.h; sourceTree = ""; }; + E81C27AA26EF2D920031E639 /* ThirdConsumerAbstract.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ThirdConsumerAbstract.m; sourceTree = ""; }; + E81C27AC26EF39AB0031E639 /* AppDelegate+ThirdConfig.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "AppDelegate+ThirdConfig.h"; sourceTree = ""; }; + E81C27AD26EF39AB0031E639 /* AppDelegate+ThirdConfig.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "AppDelegate+ThirdConfig.m"; sourceTree = ""; }; + E81D587B271FBC3B003063FE /* RtcInterface.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RtcInterface.h; sourceTree = ""; }; + E81D58802720082A003063FE /* MiecreoscoopeWaveRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MiecreoscoopeWaveRegard.h; sourceTree = ""; }; + E81D58812720082A003063FE /* MiecreoscoopeWaveRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MiecreoscoopeWaveRegard.m; sourceTree = ""; }; + E81DCCCB282B63B40039E5C5 /* YUMISeparationsRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMISeparationsRegardGovernancer.h; sourceTree = ""; }; + E81DCCCC282B63B40039E5C5 /* YUMISeparationsRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMISeparationsRegardGovernancer.m; sourceTree = ""; }; + E81DCCCE282B63FD0039E5C5 /* YUMISeparationsEncourageRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMISeparationsEncourageRegardGovernancer.h; sourceTree = ""; }; + E81DCCCF282B63FD0039E5C5 /* YUMISeparationsEncourageRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMISeparationsEncourageRegardGovernancer.m; sourceTree = ""; }; + E81E09C7290F71BF00A1F410 /* YUMIAdvertiseRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIAdvertiseRegard.h; sourceTree = ""; }; + E81E09C8290F71BF00A1F410 /* YUMIAdvertiseRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIAdvertiseRegard.m; sourceTree = ""; }; + E81E09CA290F732500A1F410 /* YUMIAdIndicateTool.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIAdIndicateTool.h; sourceTree = ""; }; + E81E09CB290F732600A1F410 /* YUMIAdIndicateTool.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIAdIndicateTool.m; sourceTree = ""; }; + E81E09CD290F750800A1F410 /* AdvertiseMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AdvertiseMatrix.h; sourceTree = ""; }; + E81E09CE290F750800A1F410 /* AdvertiseMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AdvertiseMatrix.m; sourceTree = ""; }; + E82107792987D4AB00DE7040 /* CommunicationDiscoveryStrangeBewelcometoMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CommunicationDiscoveryStrangeBewelcometoMatrix.h; sourceTree = ""; }; + E821077A2987D4AB00DE7040 /* CommunicationDiscoveryStrangeBewelcometoMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CommunicationDiscoveryStrangeBewelcometoMatrix.m; sourceTree = ""; }; + E821077C2987D67100DE7040 /* CommunicationVenturePrecautiousMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CommunicationVenturePrecautiousMatrix.h; sourceTree = ""; }; + E821077D2987D67100DE7040 /* CommunicationVenturePrecautiousMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CommunicationVenturePrecautiousMatrix.m; sourceTree = ""; }; + E821077F2987D7F300DE7040 /* CommunicationSeparationsMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CommunicationSeparationsMatrix.h; sourceTree = ""; }; + E82107802987D7F300DE7040 /* CommunicationSeparationsMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CommunicationSeparationsMatrix.m; sourceTree = ""; }; + E82107822987E35300DE7040 /* CommunicationSeparationsAutoMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CommunicationSeparationsAutoMatrix.h; sourceTree = ""; }; + E82107832987E35300DE7040 /* CommunicationSeparationsAutoMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CommunicationSeparationsAutoMatrix.m; sourceTree = ""; }; + E82107852987E49100DE7040 /* CommunicationDeficitSheatheMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CommunicationDeficitSheatheMatrix.h; sourceTree = ""; }; + E82107862987E49100DE7040 /* CommunicationDeficitSheatheMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CommunicationDeficitSheatheMatrix.m; sourceTree = ""; }; + E82109AB26F1C8A000FC3319 /* ComputationDownFacilitater.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ComputationDownFacilitater.h; sourceTree = ""; }; + E82109AC26F1C8A000FC3319 /* ComputationDownFacilitater.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ComputationDownFacilitater.m; sourceTree = ""; }; + E82109AE26F1D83500FC3319 /* SurmountDilemmaMobileExternalize.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SurmountDilemmaMobileExternalize.h; sourceTree = ""; }; + E82109AF26F1D83500FC3319 /* SurmountDilemmaMobileExternalize.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SurmountDilemmaMobileExternalize.m; sourceTree = ""; }; + E82325E4274CCAFA003A3332 /* YUMIParaticipationAbstractMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIParaticipationAbstractMatrix.h; sourceTree = ""; }; + E82325E5274CCAFA003A3332 /* YUMIParaticipationAbstractMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIParaticipationAbstractMatrix.m; sourceTree = ""; }; + E82325E7274CE56A003A3332 /* YUMIParaticipationProvision.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIParaticipationProvision.h; sourceTree = ""; }; + E82325E8274CE56A003A3332 /* YUMIParaticipationProvision.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIParaticipationProvision.m; sourceTree = ""; }; + E82325F0274E2DE6003A3332 /* YUMIConsumerSolitaireRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIConsumerSolitaireRegardGovernancer.h; sourceTree = ""; }; + E82325F1274E2DE6003A3332 /* YUMIConsumerSolitaireRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIConsumerSolitaireRegardGovernancer.m; sourceTree = ""; }; + E82325F3274E2E09003A3332 /* YUMIConsumerSolitaireExternalizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIConsumerSolitaireExternalizer.h; sourceTree = ""; }; + E82325F4274E2E09003A3332 /* YUMIConsumerSolitaireExternalizer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIConsumerSolitaireExternalizer.m; sourceTree = ""; }; + E82325F6274E2E27003A3332 /* FBCConsumerSolitaireCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FBCConsumerSolitaireCeremony.h; sourceTree = ""; }; + E82325F7274E2E42003A3332 /* Api+UserCard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Api+UserCard.h"; sourceTree = ""; }; + E82325F8274E2E42003A3332 /* Api+UserCard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "Api+UserCard.m"; sourceTree = ""; }; + E82325FA274E4735003A3332 /* YUMIConsumerSolitaireProvisionMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIConsumerSolitaireProvisionMatrix.h; sourceTree = ""; }; + E82325FB274E4735003A3332 /* YUMIConsumerSolitaireProvisionMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIConsumerSolitaireProvisionMatrix.m; sourceTree = ""; }; + E82325FE274E48EA003A3332 /* YUMIConsumerSolitaireProvisionAssembletionRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIConsumerSolitaireProvisionAssembletionRegardElement.h; sourceTree = ""; }; + E82325FF274E48EA003A3332 /* YUMIConsumerSolitaireProvisionAssembletionRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIConsumerSolitaireProvisionAssembletionRegardElement.m; sourceTree = ""; }; + E8232601274E4AA0003A3332 /* ThemeColor+UserCard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "ThemeColor+UserCard.h"; sourceTree = ""; }; + E8232602274E4AA0003A3332 /* ThemeColor+UserCard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "ThemeColor+UserCard.m"; sourceTree = ""; }; + E823E38C290BE8BD00EADD86 /* DesirePresentAbstractRefurbishMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DesirePresentAbstractRefurbishMatrix.h; sourceTree = ""; }; + E823E38D290BE8BD00EADD86 /* DesirePresentAbstractRefurbishMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = DesirePresentAbstractRefurbishMatrix.m; sourceTree = ""; }; + E824543326F57D6E00BE8163 /* YUMISurmountValidationDilemmaMobileRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMISurmountValidationDilemmaMobileRegardGovernancer.h; sourceTree = ""; }; + E824543426F57D6E00BE8163 /* YUMISurmountValidationDilemmaMobileRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMISurmountValidationDilemmaMobileRegardGovernancer.m; sourceTree = ""; }; + E824543626F5820A00BE8163 /* YUMISurmountValidationDilemmaMobileExternalizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMISurmountValidationDilemmaMobileExternalizer.h; sourceTree = ""; }; + E824543726F5820A00BE8163 /* YUMISurmountValidationDilemmaMobileExternalizer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMISurmountValidationDilemmaMobileExternalizer.m; sourceTree = ""; }; + E824543926F5822800BE8163 /* FBCSurmountVerifBindPhoneCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FBCSurmountVerifBindPhoneCeremony.h; sourceTree = ""; }; + E824543B26F58C3A00BE8163 /* YUMISurmountDilemmaSuccessRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMISurmountDilemmaSuccessRegard.h; sourceTree = ""; }; + E824543C26F58C3A00BE8163 /* YUMISurmountDilemmaSuccessRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMISurmountDilemmaSuccessRegard.m; sourceTree = ""; }; + E824543E26F58F9400BE8163 /* YUMIManeIntersectPwordRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeIntersectPwordRegardGovernancer.h; sourceTree = ""; }; + E824543F26F58F9400BE8163 /* YUMIManeIntersectPwordRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeIntersectPwordRegardGovernancer.m; sourceTree = ""; }; + E824544126F58FCE00BE8163 /* YUMIManeIntersectPwordIntrojectionRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeIntersectPwordIntrojectionRegard.h; sourceTree = ""; }; + E824544226F58FCE00BE8163 /* YUMIManeIntersectPwordIntrojectionRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeIntersectPwordIntrojectionRegard.m; sourceTree = ""; }; + E824544426F5934600BE8163 /* YUMIManeIntersectPwordExternalizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeIntersectPwordExternalizer.h; sourceTree = ""; }; + E824544526F5934600BE8163 /* YUMIManeIntersectPwordExternalizer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeIntersectPwordExternalizer.m; sourceTree = ""; }; + E824544726F5940600BE8163 /* FBCManePayPwordCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FBCManePayPwordCeremony.h; sourceTree = ""; }; + E824544926F5BBB800BE8163 /* YUMIManeModifIntersectPwordRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeModifIntersectPwordRegardGovernancer.h; sourceTree = ""; }; + E824544A26F5BBB800BE8163 /* YUMIManeModifIntersectPwordRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeModifIntersectPwordRegardGovernancer.m; sourceTree = ""; }; + E824544C26F5BC1A00BE8163 /* YUMIManeModifIntersectPwordRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeModifIntersectPwordRegard.h; sourceTree = ""; }; + E824544D26F5BC1A00BE8163 /* YUMIManeModifIntersectPwordRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeModifIntersectPwordRegard.m; sourceTree = ""; }; + E824544F26F5CE6E00BE8163 /* YUMIManeModifIntersectPwordExternalizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeModifIntersectPwordExternalizer.h; sourceTree = ""; }; + E824545026F5CE6E00BE8163 /* YUMIManeModifIntersectPwordExternalizer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeModifIntersectPwordExternalizer.m; sourceTree = ""; }; + E824545226F5CE9C00BE8163 /* FBCManeModifPayCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FBCManeModifPayCeremony.h; sourceTree = ""; }; + E824545426F5E51900BE8163 /* YUMIManeValidationIdentityRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeValidationIdentityRegardGovernancer.h; sourceTree = ""; }; + E824545526F5E51900BE8163 /* YUMIManeValidationIdentityRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeValidationIdentityRegardGovernancer.m; sourceTree = ""; }; + E824545726F5E65900BE8163 /* YUMIManeValidationIdentityRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeValidationIdentityRegard.h; sourceTree = ""; }; + E824545826F5E65900BE8163 /* YUMIManeValidationIdentityRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeValidationIdentityRegard.m; sourceTree = ""; }; + E824545A26F5EEBA00BE8163 /* YUMIManeValidationIdentityExternalizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeValidationIdentityExternalizer.h; sourceTree = ""; }; + E824545B26F5EEBA00BE8163 /* YUMIManeValidationIdentityExternalizer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeValidationIdentityExternalizer.m; sourceTree = ""; }; + E824545D26F5EEFD00BE8163 /* FBCManeVerifIdentityCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FBCManeVerifIdentityCeremony.h; sourceTree = ""; }; + E824545F26F5F4E400BE8163 /* YUMIManeReassociationIntersectPwordRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeReassociationIntersectPwordRegardGovernancer.h; sourceTree = ""; }; + E824546026F5F4E400BE8163 /* YUMIManeReassociationIntersectPwordRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeReassociationIntersectPwordRegardGovernancer.m; sourceTree = ""; }; + E824546226F5FF1C00BE8163 /* YUMIManeReassociationIntersectCiphercodeExternalizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeReassociationIntersectCiphercodeExternalizer.h; sourceTree = ""; }; + E824546326F5FF1C00BE8163 /* YUMIManeReassociationIntersectCiphercodeExternalizer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeReassociationIntersectCiphercodeExternalizer.m; sourceTree = ""; }; + E824546526F5FF5100BE8163 /* FBCManeResetPayCiphercodeCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FBCManeResetPayCiphercodeCeremony.h; sourceTree = ""; }; + E8252FEC27687DF1002B3164 /* ImportpriseAbstractMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ImportpriseAbstractMatrix.h; sourceTree = ""; }; + E8252FED27687DF1002B3164 /* ImportpriseAbstractMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ImportpriseAbstractMatrix.m; sourceTree = ""; }; + E82D5C6B276ADCE700858D6D /* YUMIManePretendDispossessTabulationRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManePretendDispossessTabulationRegardElement.h; sourceTree = ""; }; + E82D5C6C276ADCE700858D6D /* YUMIManePretendDispossessTabulationRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManePretendDispossessTabulationRegardElement.m; sourceTree = ""; }; + E82D5C6E276AE60000858D6D /* IntelligencewearMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IntelligencewearMatrix.h; sourceTree = ""; }; + E82D5C6F276AE60000858D6D /* IntelligencewearMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = IntelligencewearMatrix.m; sourceTree = ""; }; + E82D5C71276AE94800858D6D /* CarMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CarMatrix.h; sourceTree = ""; }; + E82D5C72276AE94800858D6D /* CarMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CarMatrix.m; sourceTree = ""; }; + E82D5C74276AEB5100858D6D /* NameplateMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NameplateMatrix.h; sourceTree = ""; }; + E82D5C75276AEB5100858D6D /* NameplateMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = NameplateMatrix.m; sourceTree = ""; }; + E82D5C78276B25D100858D6D /* SpriteSheetIndicateExecutive.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SpriteSheetIndicateExecutive.h; sourceTree = ""; }; + E82D5C79276B25D100858D6D /* SpriteSheetIndicateExecutive.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SpriteSheetIndicateExecutive.m; sourceTree = ""; }; + E82D5C7B276B343300858D6D /* YYAnimatedImageView+ImageShow.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "YYAnimatedImageView+ImageShow.h"; sourceTree = ""; }; + E82D5C7C276B343300858D6D /* YYAnimatedImageView+ImageShow.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "YYAnimatedImageView+ImageShow.m"; sourceTree = ""; }; + E82E75042828E76400C25EF7 /* YUMICoreAtomicExecutive.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMICoreAtomicExecutive.h; sourceTree = ""; }; + E82E75052828E76400C25EF7 /* YUMICoreAtomicExecutive.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMICoreAtomicExecutive.m; sourceTree = ""; }; + E82EE0F6272FDDFA00D15DC1 /* ConsumerPrivacyRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ConsumerPrivacyRegard.h; sourceTree = ""; }; + E82EE0F7272FDDFA00D15DC1 /* ConsumerPrivacyRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ConsumerPrivacyRegard.m; sourceTree = ""; }; + E833ED0B274FAD1C00A2463B /* XCombatickConsumerMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XCombatickConsumerMatrix.h; sourceTree = ""; }; + E833ED0C274FAD1C00A2463B /* XCombatickConsumerMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XCombatickConsumerMatrix.m; sourceTree = ""; }; + E83645662A40A2DC00E0DBE4 /* YUMICommunicationSolitaireDisporterExecutive.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMICommunicationSolitaireDisporterExecutive.h; sourceTree = ""; }; + E83645672A40A2DC00E0DBE4 /* YUMICommunicationSolitaireDisporterExecutive.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMICommunicationSolitaireDisporterExecutive.m; sourceTree = ""; }; + E83645692A40A33300E0DBE4 /* ManeCommunicationSolitaireStatementAbstractMatrix.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ManeCommunicationSolitaireStatementAbstractMatrix.m; sourceTree = ""; }; + E836456A2A40A33300E0DBE4 /* ManeCommunicationSolitaireStatementAbstractMatrix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ManeCommunicationSolitaireStatementAbstractMatrix.h; sourceTree = ""; }; + E83645A62A40AF5400E0DBE4 /* NSBundle+Localizable.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "NSBundle+Localizable.h"; sourceTree = ""; }; + E83645A72A40AF5400E0DBE4 /* NSBundle+Localizable.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "NSBundle+Localizable.m"; sourceTree = ""; }; + E8383695298A598D00112E1C /* CommunicationTipsMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CommunicationTipsMatrix.h; sourceTree = ""; }; + E8383696298A598D00112E1C /* CommunicationTipsMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CommunicationTipsMatrix.m; sourceTree = ""; }; + E8383698298A59C100112E1C /* CommunicationTipsRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CommunicationTipsRegard.h; sourceTree = ""; }; + E8383699298A59C100112E1C /* CommunicationTipsRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CommunicationTipsRegard.m; sourceTree = ""; }; + E838D99E275E1BF60079E0B5 /* YUMIChamberBrightnessRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberBrightnessRegard.h; sourceTree = ""; }; + E838D99F275E1BF60079E0B5 /* YUMIChamberBrightnessRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberBrightnessRegard.m; sourceTree = ""; }; + E83953202769F33B00CF2F24 /* YUMIChamberFunctionAccommodatedRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberFunctionAccommodatedRegard.h; sourceTree = ""; }; + E83953212769F33B00CF2F24 /* YUMIChamberFunctionAccommodatedRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberFunctionAccommodatedRegard.m; sourceTree = ""; }; + E8395328276A002800CF2F24 /* YUMIManePretendUpwardsRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManePretendUpwardsRegardGovernancer.h; sourceTree = ""; }; + E8395329276A002800CF2F24 /* YUMIManePretendUpwardsRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManePretendUpwardsRegardGovernancer.m; sourceTree = ""; }; + E839532B276A030F00CF2F24 /* YUMIManePretendUpwardsStatementRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManePretendUpwardsStatementRegardGovernancer.h; sourceTree = ""; }; + E839532C276A030F00CF2F24 /* YUMIManePretendUpwardsStatementRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManePretendUpwardsStatementRegardGovernancer.m; sourceTree = ""; }; + E839532F276A03AE00CF2F24 /* Api+DressUp.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Api+DressUp.h"; sourceTree = ""; }; + E8395330276A03AE00CF2F24 /* Api+DressUp.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "Api+DressUp.m"; sourceTree = ""; }; + E8395332276A03C300CF2F24 /* YUMIManePretendUpwardsExternalizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManePretendUpwardsExternalizer.h; sourceTree = ""; }; + E8395333276A03C300CF2F24 /* YUMIManePretendUpwardsExternalizer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManePretendUpwardsExternalizer.m; sourceTree = ""; }; + E8395335276A03E200CF2F24 /* FBCManePretendedCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FBCManePretendedCeremony.h; sourceTree = ""; }; + E8395337276A0CC100CF2F24 /* YUMIManeIntelligencewearTabulationRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeIntelligencewearTabulationRegardElement.h; sourceTree = ""; }; + E8395338276A0CC100CF2F24 /* YUMIManeIntelligencewearTabulationRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeIntelligencewearTabulationRegardElement.m; sourceTree = ""; }; + E839533A276A0CCD00CF2F24 /* YUMIManeCarTabulationRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeCarTabulationRegardElement.h; sourceTree = ""; }; + E839533B276A0CCD00CF2F24 /* YUMIManeCarTabulationRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeCarTabulationRegardElement.m; sourceTree = ""; }; + E839533D276A0CDB00CF2F24 /* YUMIManeNameplateTabulationRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeNameplateTabulationRegardElement.h; sourceTree = ""; }; + E839533E276A0CDB00CF2F24 /* YUMIManeNameplateTabulationRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeNameplateTabulationRegardElement.m; sourceTree = ""; }; + E8398069290288660084BFC8 /* YUMICommunicationAbstractMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMICommunicationAbstractMatrix.h; sourceTree = ""; }; + E839806A290288660084BFC8 /* YUMICommunicationAbstractMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMICommunicationAbstractMatrix.m; sourceTree = ""; }; + E83ABEF4280E9AD800322EE4 /* CommunicationSatisfactionUnSupportRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CommunicationSatisfactionUnSupportRegard.h; sourceTree = ""; }; + E83ABEF5280E9AD800322EE4 /* CommunicationSatisfactionUnSupportRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CommunicationSatisfactionUnSupportRegard.m; sourceTree = ""; }; + E83ABEF7280EAF3F00322EE4 /* CommunicationSatisfactionUnfoildEnergeticRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CommunicationSatisfactionUnfoildEnergeticRegard.h; sourceTree = ""; }; + E83ABEF8280EAF3F00322EE4 /* CommunicationSatisfactionUnfoildEnergeticRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CommunicationSatisfactionUnfoildEnergeticRegard.m; sourceTree = ""; }; + E83ABEFB280EB5E200322EE4 /* SatisfactionUnfoildEnergeticAbstractMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SatisfactionUnfoildEnergeticAbstractMatrix.h; sourceTree = ""; }; + E83ABEFC280EB5E200322EE4 /* SatisfactionUnfoildEnergeticAbstractMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SatisfactionUnfoildEnergeticAbstractMatrix.m; sourceTree = ""; }; + E83ABEFE280EC45700322EE4 /* CommunicationSatisfactionApplicationParaticipationRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CommunicationSatisfactionApplicationParaticipationRegard.h; sourceTree = ""; }; + E83ABEFF280EC45700322EE4 /* CommunicationSatisfactionApplicationParaticipationRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CommunicationSatisfactionApplicationParaticipationRegard.m; sourceTree = ""; }; + E83ABF01280EC90C00322EE4 /* SatisfactionApplicationParaticipationMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SatisfactionApplicationParaticipationMatrix.h; sourceTree = ""; }; + E83ABF02280EC90C00322EE4 /* SatisfactionApplicationParaticipationMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SatisfactionApplicationParaticipationMatrix.m; sourceTree = ""; }; + E83ABF04280EDE2B00322EE4 /* CommunicationSatisfactionPrototypeAscensionRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CommunicationSatisfactionPrototypeAscensionRegard.h; sourceTree = ""; }; + E83ABF05280EDE2B00322EE4 /* CommunicationSatisfactionPrototypeAscensionRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CommunicationSatisfactionPrototypeAscensionRegard.m; sourceTree = ""; }; + E83DB47827462C4500D8CBD1 /* YUMIPresentBigCaptureMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIPresentBigCaptureMatrix.h; sourceTree = ""; }; + E83DB47927462C4500D8CBD1 /* YUMIPresentBigCaptureMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIPresentBigCaptureMatrix.m; sourceTree = ""; }; + E83DB47B2746372300D8CBD1 /* YUMIChamberPresentOriflammeRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberPresentOriflammeRegard.h; sourceTree = ""; }; + E83DB47C2746372300D8CBD1 /* YUMIChamberPresentOriflammeRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberPresentOriflammeRegard.m; sourceTree = ""; }; + E83DB47F274649FB00D8CBD1 /* YUMIPresentOriflammeConsumerAbstractMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIPresentOriflammeConsumerAbstractMatrix.h; sourceTree = ""; }; + E83DB480274649FB00D8CBD1 /* YUMIPresentOriflammeConsumerAbstractMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIPresentOriflammeConsumerAbstractMatrix.m; sourceTree = ""; }; + E83DB4822746661800D8CBD1 /* YUMIChamberPresentPingbackRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberPresentPingbackRegard.h; sourceTree = ""; }; + E83DB4832746661800D8CBD1 /* YUMIChamberPresentPingbackRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberPresentPingbackRegard.m; sourceTree = ""; }; + E83DB485274670DA00D8CBD1 /* YUMIChamberPresentBroadCastMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberPresentBroadCastMatrix.h; sourceTree = ""; }; + E83DB486274670DA00D8CBD1 /* YUMIChamberPresentBroadCastMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberPresentBroadCastMatrix.m; sourceTree = ""; }; + E8412F9427795E34006E1101 /* YUMIChamberCallforFanaticsRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberCallforFanaticsRegard.h; sourceTree = ""; }; + E8412F9527795E34006E1101 /* YUMIChamberCallforFanaticsRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberCallforFanaticsRegard.m; sourceTree = ""; }; + E8412F9727799249006E1101 /* CallforFanaticsMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CallforFanaticsMatrix.h; sourceTree = ""; }; + E8412F9827799249006E1101 /* CallforFanaticsMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CallforFanaticsMatrix.m; sourceTree = ""; }; + E8412FA02779BE8F006E1101 /* YUMIChamberInstanllingRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberInstanllingRegardGovernancer.h; sourceTree = ""; }; + E8412FA12779BE8F006E1101 /* YUMIChamberInstanllingRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberInstanllingRegardGovernancer.m; sourceTree = ""; }; + E8412FA42779BED1006E1101 /* YUMIChamberInstanllingTabulationRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberInstanllingTabulationRegardElement.h; sourceTree = ""; }; + E8412FA52779BED1006E1101 /* YUMIChamberInstanllingTabulationRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberInstanllingTabulationRegardElement.m; sourceTree = ""; }; + E8412FA72779C2ED006E1101 /* YUMIChamberInstanllingProvisionMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberInstanllingProvisionMatrix.h; sourceTree = ""; }; + E8412FA82779C2ED006E1101 /* YUMIChamberInstanllingProvisionMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberInstanllingProvisionMatrix.m; sourceTree = ""; }; + E8412FAD2779CB2D006E1101 /* FBCChamberInstanllingCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FBCChamberInstanllingCeremony.h; sourceTree = ""; }; + E8412FAE2779CB4D006E1101 /* YUMIChamberInstanllingExternalizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberInstanllingExternalizer.h; sourceTree = ""; }; + E8412FAF2779CB4D006E1101 /* YUMIChamberInstanllingExternalizer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberInstanllingExternalizer.m; sourceTree = ""; }; + E8412FB12779E285006E1101 /* Api+RoomSetting.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Api+RoomSetting.h"; sourceTree = ""; }; + E8412FB22779E285006E1101 /* Api+RoomSetting.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "Api+RoomSetting.m"; sourceTree = ""; }; + E84150B927747BAF00A7F548 /* YUMIThresholdReindictExternalizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIThresholdReindictExternalizer.h; sourceTree = ""; }; + E84150BA27747BAF00A7F548 /* YUMIThresholdReindictExternalizer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIThresholdReindictExternalizer.m; sourceTree = ""; }; + E84150BC27747BBD00A7F548 /* FBCFirstReindictCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FBCFirstReindictCeremony.h; sourceTree = ""; }; + E84150BD27747BD300A7F548 /* Api+FirstRecharge.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Api+FirstRecharge.h"; sourceTree = ""; }; + E84150BE27747BD300A7F548 /* Api+FirstRecharge.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "Api+FirstRecharge.m"; sourceTree = ""; }; + E84150C027747BF700A7F548 /* ThresholdReindictMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ThresholdReindictMatrix.h; sourceTree = ""; }; + E84150C127747BF700A7F548 /* ThresholdReindictMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ThresholdReindictMatrix.m; sourceTree = ""; }; + E84150C327747E0900A7F548 /* ThresholdReindictRewardMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ThresholdReindictRewardMatrix.h; sourceTree = ""; }; + E84150C427747E0900A7F548 /* ThresholdReindictRewardMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ThresholdReindictRewardMatrix.m; sourceTree = ""; }; + E841ED5F280FB0BD00904808 /* SatisfactionPrototypeAscensionMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SatisfactionPrototypeAscensionMatrix.h; sourceTree = ""; }; + E841ED60280FB0BD00904808 /* SatisfactionPrototypeAscensionMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SatisfactionPrototypeAscensionMatrix.m; sourceTree = ""; }; + E84843AD27F59E7E0050D365 /* YUMIChamberCombatConsequentRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberCombatConsequentRegard.h; sourceTree = ""; }; + E84843AE27F59E7E0050D365 /* YUMIChamberCombatConsequentRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberCombatConsequentRegard.m; sourceTree = ""; }; + E84843B027F5A0740050D365 /* YUMIRomCombatConsequentChampionDesignation.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIRomCombatConsequentChampionDesignation.h; sourceTree = ""; }; + E84843B127F5A0740050D365 /* YUMIRomCombatConsequentChampionDesignation.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIRomCombatConsequentChampionDesignation.m; sourceTree = ""; }; + E84A2E802A527DF800D6AF8A /* YUMIRevenueReflectionGoldSpecificsVC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIRevenueReflectionGoldSpecificsVC.h; sourceTree = ""; }; + E84A2E812A527DF800D6AF8A /* YUMIRevenueReflectionVC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIRevenueReflectionVC.m; sourceTree = ""; }; + E84A2E822A527DF800D6AF8A /* YUMIExchangeDiamondsVC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIExchangeDiamondsVC.m; sourceTree = ""; }; + E84A2E842A527DF800D6AF8A /* YUMIRevenueReflectionGoldSpecificsVC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIRevenueReflectionGoldSpecificsVC.m; sourceTree = ""; }; + E84A2E862A527DF800D6AF8A /* YUMIRevenueReflectionVC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIRevenueReflectionVC.h; sourceTree = ""; }; + E84A2E882A527DF800D6AF8A /* YUMIExchangeDiamondsVC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIExchangeDiamondsVC.h; sourceTree = ""; }; + E84A2E902A527EBF00D6AF8A /* FBCIncomeRecordCeremony.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FBCIncomeRecordCeremony.h; sourceTree = ""; }; + E84A2E912A527EC700D6AF8A /* YUMIRevenueReflectionExternalize.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIRevenueReflectionExternalize.m; sourceTree = ""; }; + E84A2E922A527EC700D6AF8A /* YUMIRevenueReflectionExternalize.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIRevenueReflectionExternalize.h; sourceTree = ""; }; + E84A2E942A5280F900D6AF8A /* YUMIExchangeDiamondsRegard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIExchangeDiamondsRegard.m; sourceTree = ""; }; + E84A2E952A5280F900D6AF8A /* YUMIExchangeDiamondsRegard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIExchangeDiamondsRegard.h; sourceTree = ""; }; + E84A2E972A52817E00D6AF8A /* YUMIRevenueReflectionRegard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIRevenueReflectionRegard.h; sourceTree = ""; }; + E84A2E982A52817E00D6AF8A /* YUMIRevenueReflectionRegard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIRevenueReflectionRegard.m; sourceTree = ""; }; + E84A2E9A2A52823900D6AF8A /* YUMIEssayField.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIEssayField.h; sourceTree = ""; }; + E84A2E9B2A52823900D6AF8A /* YUMIEssayField.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIEssayField.m; sourceTree = ""; }; + E84A2E9D2A5287D200D6AF8A /* YUMIRevenueReflectionGoldSpecificsRegard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIRevenueReflectionGoldSpecificsRegard.m; sourceTree = ""; }; + E84A2E9E2A5287D200D6AF8A /* YUMIRevenueReflectionGoldSpecificsRegard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIRevenueReflectionGoldSpecificsRegard.h; sourceTree = ""; }; + E84A2EA02A52883000D6AF8A /* YUMIRevenueReflectionGoldSpecificsIntratemporalRegard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIRevenueReflectionGoldSpecificsIntratemporalRegard.m; sourceTree = ""; }; + E84A2EA12A52883000D6AF8A /* YUMIRevenueReflectionGoldSpecificsIntratemporalRegard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIRevenueReflectionGoldSpecificsIntratemporalRegard.h; sourceTree = ""; }; + E84A2EA32A5288CB00D6AF8A /* YUMIGoldSpecificsChooseChamberRegard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIGoldSpecificsChooseChamberRegard.h; sourceTree = ""; }; + E84A2EA42A5288CB00D6AF8A /* YUMIGoldSpecificsChooseChamberRegard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIGoldSpecificsChooseChamberRegard.m; sourceTree = ""; }; + E84A2EA62A5288FD00D6AF8A /* YUMIGoldSpecificsChooseChamberElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIGoldSpecificsChooseChamberElement.h; sourceTree = ""; }; + E84A2EA72A5288FD00D6AF8A /* YUMIGoldSpecificsChooseChamberElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIGoldSpecificsChooseChamberElement.m; sourceTree = ""; }; + E84A2EA92A528A4100D6AF8A /* YUMIRevenueReflectionGoldSpecificsPickRegardRegard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIRevenueReflectionGoldSpecificsPickRegardRegard.m; sourceTree = ""; }; + E84A2EAA2A528A4100D6AF8A /* YUMIRevenueReflectionGoldSpecificsPickRegardRegard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIRevenueReflectionGoldSpecificsPickRegardRegard.h; sourceTree = ""; }; + E84A2EAC2A52F20900D6AF8A /* Launch Screen.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = "Launch Screen.storyboard"; sourceTree = ""; }; + E84A2EAE2A52F27000D6AF8A /* 1242.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = 1242.png; sourceTree = ""; }; + E84B0E3D2727EDF6008818C6 /* YUMIChamberCommunicationTabulationRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberCommunicationTabulationRegardElement.h; sourceTree = ""; }; + E84B0E3E2727EDF6008818C6 /* YUMIChamberCommunicationTabulationRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberCommunicationTabulationRegardElement.m; sourceTree = ""; }; + E84B0E402727EE0A008818C6 /* YUMIChamberCommunicationIntelligencerRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberCommunicationIntelligencerRegard.h; sourceTree = ""; }; + E84B0E412727EE0A008818C6 /* YUMIChamberCommunicationIntelligencerRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberCommunicationIntelligencerRegard.m; sourceTree = ""; }; + E84B0E442727EF9D008818C6 /* YUMIChamberCommunicationAnatomiser.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberCommunicationAnatomiser.h; sourceTree = ""; }; + E84B0E452727EF9D008818C6 /* YUMIChamberCommunicationAnatomiser.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberCommunicationAnatomiser.m; sourceTree = ""; }; + E84B0E4927280289008818C6 /* XPRoomMessageConstant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPRoomMessageConstant.h; sourceTree = ""; }; + E84BF7C8277AF79D00EF8877 /* YUMIChamberInstanllingCoupleElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberInstanllingCoupleElement.h; sourceTree = ""; }; + E84BF7C9277AF79D00EF8877 /* YUMIChamberInstanllingCoupleElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberInstanllingCoupleElement.m; sourceTree = ""; }; + E84BF7CF277BFCDD00EF8877 /* ChamberCoupleMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ChamberCoupleMatrix.h; sourceTree = ""; }; + E84BF7D0277BFCDD00EF8877 /* ChamberCoupleMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ChamberCoupleMatrix.m; sourceTree = ""; }; + E84BF7D2277C383700EF8877 /* YUMIChamberInstanllingIntrojectionRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberInstanllingIntrojectionRegard.h; sourceTree = ""; }; + E84BF7D3277C383700EF8877 /* YUMIChamberInstanllingIntrojectionRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberInstanllingIntrojectionRegard.m; sourceTree = ""; }; + E84BF7D5277C6E2100EF8877 /* YUMIChamberRoleRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberRoleRegardGovernancer.h; sourceTree = ""; }; + E84BF7D6277C6E2100EF8877 /* YUMIChamberRoleRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberRoleRegardGovernancer.m; sourceTree = ""; }; + E84BF7D8277C72AC00EF8877 /* YUMIChamberRoleTabulationRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberRoleTabulationRegardElement.h; sourceTree = ""; }; + E84BF7D9277C72AC00EF8877 /* YUMIChamberRoleTabulationRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberRoleTabulationRegardElement.m; sourceTree = ""; }; + E84BF7DB277C765400EF8877 /* YUMIChamberRoleDispossessTabulationRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberRoleDispossessTabulationRegardElement.h; sourceTree = ""; }; + E84BF7DC277C765400EF8877 /* YUMIChamberRoleDispossessTabulationRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberRoleDispossessTabulationRegardElement.m; sourceTree = ""; }; + E84BF7DE277C869A00EF8877 /* YUMIChamberOnLineRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberOnLineRegardGovernancer.h; sourceTree = ""; }; + E84BF7DF277C869A00EF8877 /* YUMIChamberOnLineRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberOnLineRegardGovernancer.m; sourceTree = ""; }; + E84CBCDF28436D3C00D43221 /* YUMIManeContactRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeContactRegardGovernancer.h; sourceTree = ""; }; + E84CBCE028436D3C00D43221 /* YUMIManeContactRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeContactRegardGovernancer.m; sourceTree = ""; }; + E84CBCE2284372D800D43221 /* YUMIChamberHalfCommunicationRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberHalfCommunicationRegard.h; sourceTree = ""; }; + E84CBCE3284372D800D43221 /* YUMIChamberHalfCommunicationRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberHalfCommunicationRegard.m; sourceTree = ""; }; + E84CBCE52843807400D43221 /* YUMIManeAssistantExternalizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeAssistantExternalizer.h; sourceTree = ""; }; + E84CBCE62843807400D43221 /* YUMIManeAssistantExternalizer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeAssistantExternalizer.m; sourceTree = ""; }; + E84CBCE8284380B300D43221 /* FBCManeFriendCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FBCManeFriendCeremony.h; sourceTree = ""; }; + E852D739286317F0001465ED /* YUMISeparationsSpecificRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMISeparationsSpecificRegardGovernancer.h; sourceTree = ""; }; + E852D73A286317F0001465ED /* YUMISeparationsSpecificRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMISeparationsSpecificRegardGovernancer.m; sourceTree = ""; }; + E852D73C28631C18001465ED /* YUMISeparationsJudgementTabulationRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMISeparationsJudgementTabulationRegardElement.h; sourceTree = ""; }; + E852D73D28631C18001465ED /* YUMISeparationsJudgementTabulationRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMISeparationsJudgementTabulationRegardElement.m; sourceTree = ""; }; + E852D73F2863249F001465ED /* YUMISeparationsReplicationTabulationRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMISeparationsReplicationTabulationRegardElement.h; sourceTree = ""; }; + E852D7402863249F001465ED /* YUMISeparationsReplicationTabulationRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMISeparationsReplicationTabulationRegardElement.m; sourceTree = ""; }; + E852D74228633A08001465ED /* SeparationsJudgementMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SeparationsJudgementMatrix.h; sourceTree = ""; }; + E852D74328633A08001465ED /* SeparationsJudgementMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SeparationsJudgementMatrix.m; sourceTree = ""; }; + E852D74528633E92001465ED /* SeparationsJudgementReplicationMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SeparationsJudgementReplicationMatrix.h; sourceTree = ""; }; + E852D74628633E92001465ED /* SeparationsJudgementReplicationMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SeparationsJudgementReplicationMatrix.m; sourceTree = ""; }; + E85410332864155A005CFD9F /* YUMISeparationSpecificExternalizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMISeparationSpecificExternalizer.h; sourceTree = ""; }; + E85410342864155A005CFD9F /* YUMISeparationSpecificExternalizer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMISeparationSpecificExternalizer.m; sourceTree = ""; }; + E8541036286443D8005CFD9F /* FBCSeparationsDetailCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FBCSeparationsDetailCeremony.h; sourceTree = ""; }; + E854103728646A00005CFD9F /* YUMISeparationsReplicationFurthaerTabulationRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMISeparationsReplicationFurthaerTabulationRegardElement.h; sourceTree = ""; }; + E854103828646A00005CFD9F /* YUMISeparationsReplicationFurthaerTabulationRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMISeparationsReplicationFurthaerTabulationRegardElement.m; sourceTree = ""; }; + E8555159280559FE005F293F /* NSDate+DateUtils.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "NSDate+DateUtils.h"; sourceTree = ""; }; + E855515A280559FE005F293F /* NSDate+DateUtils.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "NSDate+DateUtils.m"; sourceTree = ""; }; + E85E3FA528B7A6F000268DC8 /* CommunicationSatisfactionSeparationsRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CommunicationSatisfactionSeparationsRegard.h; sourceTree = ""; }; + E85E3FA628B7A6F000268DC8 /* CommunicationSatisfactionSeparationsRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CommunicationSatisfactionSeparationsRegard.m; sourceTree = ""; }; + E85E7A3D2A4EB0D200B6D00A /* YUMIUnionHuntforExternalizer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIUnionHuntforExternalizer.h; sourceTree = ""; }; + E85E7A3E2A4EB0D200B6D00A /* YUMIUnionExternalizer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIUnionExternalizer.h; sourceTree = ""; }; + E85E7A402A4EB0D200B6D00A /* YUMISensationalManagementSetExternalizer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMISensationalManagementSetExternalizer.m; sourceTree = ""; }; + E85E7A412A4EB0D200B6D00A /* YUMISensationalManagementExecutiveChamberExternalizer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMISensationalManagementExecutiveChamberExternalizer.m; sourceTree = ""; }; + E85E7A422A4EB0D200B6D00A /* YUMISensationalManagementSetExternalizer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMISensationalManagementSetExternalizer.h; sourceTree = ""; }; + E85E7A432A4EB0D200B6D00A /* YUMISensationalManagementExecutiveChamberExternalizer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMISensationalManagementExecutiveChamberExternalizer.h; sourceTree = ""; }; + E85E7A452A4EB0D200B6D00A /* YUMIUnionRevenueExternalizer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIUnionRevenueExternalizer.m; sourceTree = ""; }; + E85E7A462A4EB0D200B6D00A /* YUMIUnionRevenueSpecificExternalizer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIUnionRevenueSpecificExternalizer.m; sourceTree = ""; }; + E85E7A472A4EB0D200B6D00A /* YUMIUnionRevenueExternalizer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIUnionRevenueExternalizer.h; sourceTree = ""; }; + E85E7A482A4EB0D200B6D00A /* YUMIUnionRevenueSpecificExternalizer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIUnionRevenueSpecificExternalizer.h; sourceTree = ""; }; + E85E7A492A4EB0D200B6D00A /* YUMICollectiveExternalizer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMICollectiveExternalizer.m; sourceTree = ""; }; + E85E7A4A2A4EB0D200B6D00A /* YUMIUnionHuntforExternalizer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIUnionHuntforExternalizer.m; sourceTree = ""; }; + E85E7A4B2A4EB0D200B6D00A /* YUMIUnionExternalizer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIUnionExternalizer.m; sourceTree = ""; }; + E85E7A4D2A4EB0D200B6D00A /* YUMIManeExecutiveSetExternalizer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIManeExecutiveSetExternalizer.m; sourceTree = ""; }; + E85E7A4E2A4EB0D200B6D00A /* YUMIUnionRemoveComponentExternalizer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIUnionRemoveComponentExternalizer.m; sourceTree = ""; }; + E85E7A4F2A4EB0D200B6D00A /* YUMIUnionMangerStatementExternalizer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIUnionMangerStatementExternalizer.h; sourceTree = ""; }; + E85E7A502A4EB0D200B6D00A /* YUMIUnionExecutivePerExternalizer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIUnionExecutivePerExternalizer.m; sourceTree = ""; }; + E85E7A512A4EB0D200B6D00A /* YUMIUnionSetNameExternalizer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIUnionSetNameExternalizer.m; sourceTree = ""; }; + E85E7A522A4EB0D200B6D00A /* YUMIManeExecutiveSetExternalizer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIManeExecutiveSetExternalizer.h; sourceTree = ""; }; + E85E7A532A4EB0D200B6D00A /* YUMIUnionMangerStatementExternalizer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIUnionMangerStatementExternalizer.m; sourceTree = ""; }; + E85E7A542A4EB0D200B6D00A /* YUMIUnionRemoveComponentExternalizer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIUnionRemoveComponentExternalizer.h; sourceTree = ""; }; + E85E7A552A4EB0D200B6D00A /* YUMIUnionSetNameExternalizer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIUnionSetNameExternalizer.h; sourceTree = ""; }; + E85E7A562A4EB0D200B6D00A /* YUMIUnionExecutivePerExternalizer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIUnionExecutivePerExternalizer.h; sourceTree = ""; }; + E85E7A572A4EB0D200B6D00A /* YUMICollectiveExternalizer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMICollectiveExternalizer.h; sourceTree = ""; }; + E85E7A592A4EB0D200B6D00A /* FBCCollectiveCeremony.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FBCCollectiveCeremony.h; sourceTree = ""; }; + E85E7A5B2A4EB0D200B6D00A /* FBCSensationalManagementSetCeremony.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FBCSensationalManagementSetCeremony.h; sourceTree = ""; }; + E85E7A5C2A4EB0D200B6D00A /* FBCSensationalManagementExecutiveChamberCeremony.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FBCSensationalManagementExecutiveChamberCeremony.h; sourceTree = ""; }; + E85E7A5E2A4EB0D200B6D00A /* FBCUnionIncomeCeremony.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FBCUnionIncomeCeremony.h; sourceTree = ""; }; + E85E7A5F2A4EB0D200B6D00A /* FBCUnionIncomeDetailCeremony.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FBCUnionIncomeDetailCeremony.h; sourceTree = ""; }; + E85E7A602A4EB0D200B6D00A /* FBCUnionHuntforCeremony.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FBCUnionHuntforCeremony.h; sourceTree = ""; }; + E85E7A612A4EB0D200B6D00A /* FBCUnionCeremony.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FBCUnionCeremony.h; sourceTree = ""; }; + E85E7A632A4EB0D200B6D00A /* FBCUnionSetExecutiveCeremony.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FBCUnionSetExecutiveCeremony.h; sourceTree = ""; }; + E85E7A642A4EB0D200B6D00A /* FBCUnionExecutivePerCeremony.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FBCUnionExecutivePerCeremony.h; sourceTree = ""; }; + E85E7A652A4EB0D200B6D00A /* FBCUnionRemoveMemberCeremony.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FBCUnionRemoveMemberCeremony.h; sourceTree = ""; }; + E85E7A662A4EB0D200B6D00A /* FBCUnionSetNameCeremony.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FBCUnionSetNameCeremony.h; sourceTree = ""; }; + E85E7A672A4EB0D200B6D00A /* FBCUnionExecutiveStatementCeremony.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FBCUnionExecutiveStatementCeremony.h; sourceTree = ""; }; + E85E7A692A4EB0D200B6D00A /* UnionAuthMatrix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UnionAuthMatrix.h; sourceTree = ""; }; + E85E7A6A2A4EB0D200B6D00A /* CollectiveAbstractMatrix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CollectiveAbstractMatrix.h; sourceTree = ""; }; + E85E7A6B2A4EB0D200B6D00A /* CollectiveSpecificAbstractMatrix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CollectiveSpecificAbstractMatrix.h; sourceTree = ""; }; + E85E7A6C2A4EB0D200B6D00A /* CollectiveComponentSpecificAbstractMatrix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CollectiveComponentSpecificAbstractMatrix.h; sourceTree = ""; }; + E85E7A6D2A4EB0D200B6D00A /* UnionAbstractMatrix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UnionAbstractMatrix.h; sourceTree = ""; }; + E85E7A6F2A4EB0D200B6D00A /* UnionChamberAbstractMatrix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UnionChamberAbstractMatrix.h; sourceTree = ""; }; + E85E7A702A4EB0D200B6D00A /* UnionSensationalManagementAbstractMatrix.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UnionSensationalManagementAbstractMatrix.m; sourceTree = ""; }; + E85E7A712A4EB0D200B6D00A /* UnionHuntforSensationalManagementMatrix.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UnionHuntforSensationalManagementMatrix.m; sourceTree = ""; }; + E85E7A722A4EB0D200B6D00A /* UnionChamberAbstractMatrix.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UnionChamberAbstractMatrix.m; sourceTree = ""; }; + E85E7A732A4EB0D200B6D00A /* UnionSensationalManagementAbstractMatrix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UnionSensationalManagementAbstractMatrix.h; sourceTree = ""; }; + E85E7A742A4EB0D200B6D00A /* UnionHuntforSensationalManagementMatrix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UnionHuntforSensationalManagementMatrix.h; sourceTree = ""; }; + E85E7A762A4EB0D200B6D00A /* UnionRevenueReflectionMatrix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UnionRevenueReflectionMatrix.h; sourceTree = ""; }; + E85E7A772A4EB0D200B6D00A /* UnionRevenueSpecificMatrix.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UnionRevenueSpecificMatrix.m; sourceTree = ""; }; + E85E7A782A4EB0D200B6D00A /* UnionFeatureRevenueReflectionMatrix.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UnionFeatureRevenueReflectionMatrix.m; sourceTree = ""; }; + E85E7A792A4EB0D200B6D00A /* UnionRevenueReflectionMatrix.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UnionRevenueReflectionMatrix.m; sourceTree = ""; }; + E85E7A7A2A4EB0D200B6D00A /* UnionRevenueSpecificMatrix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UnionRevenueSpecificMatrix.h; sourceTree = ""; }; + E85E7A7B2A4EB0D200B6D00A /* UnionFeatureRevenueReflectionMatrix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UnionFeatureRevenueReflectionMatrix.h; sourceTree = ""; }; + E85E7A7C2A4EB0D200B6D00A /* UnionHuntforConsumerAbstractMatrix.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UnionHuntforConsumerAbstractMatrix.m; sourceTree = ""; }; + E85E7A7D2A4EB0D200B6D00A /* UnionCommunicationMatrix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UnionCommunicationMatrix.h; sourceTree = ""; }; + E85E7A7E2A4EB0D200B6D00A /* UnionAuthMatrix.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UnionAuthMatrix.m; sourceTree = ""; }; + E85E7A7F2A4EB0D200B6D00A /* CollectiveAbstractMatrix.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CollectiveAbstractMatrix.m; sourceTree = ""; }; + E85E7A802A4EB0D200B6D00A /* UnionAbstractMatrix.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UnionAbstractMatrix.m; sourceTree = ""; }; + E85E7A812A4EB0D200B6D00A /* CollectiveComponentSpecificAbstractMatrix.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CollectiveComponentSpecificAbstractMatrix.m; sourceTree = ""; }; + E85E7A822A4EB0D200B6D00A /* CollectiveSpecificAbstractMatrix.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CollectiveSpecificAbstractMatrix.m; sourceTree = ""; }; + E85E7A832A4EB0D200B6D00A /* UnionCommunicationMatrix.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UnionCommunicationMatrix.m; sourceTree = ""; }; + E85E7A842A4EB0D200B6D00A /* UnionHuntforConsumerAbstractMatrix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UnionHuntforConsumerAbstractMatrix.h; sourceTree = ""; }; + E85E7A872A4EB0D200B6D00A /* YUMIManeUnionRevenueStatsticsRegardGovernancer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIManeUnionRevenueStatsticsRegardGovernancer.h; sourceTree = ""; }; + E85E7A882A4EB0D200B6D00A /* YUMIManeGoldRevenueReflectionVC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIManeGoldRevenueReflectionVC.m; sourceTree = ""; }; + E85E7A892A4EB0D200B6D00A /* YUMIManeKellegRevenueStatsticsRegardGovernancer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIManeKellegRevenueStatsticsRegardGovernancer.h; sourceTree = ""; }; + E85E7A8A2A4EB0D200B6D00A /* YUMIManeMainRevenueStatsticsRegardGovernancer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIManeMainRevenueStatsticsRegardGovernancer.m; sourceTree = ""; }; + E85E7A8B2A4EB0D200B6D00A /* YUMIManeHallKellegRevenueStatsticsRegardGovernancer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIManeHallKellegRevenueStatsticsRegardGovernancer.m; sourceTree = ""; }; + E85E7A8C2A4EB0D200B6D00A /* YUMIManeCollectiveRevenueStatsticsRegardGovernancer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIManeCollectiveRevenueStatsticsRegardGovernancer.m; sourceTree = ""; }; + E85E7A8D2A4EB0D200B6D00A /* YUMIStrangeManeUnionRevenueReflectionRegardGovernancer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIStrangeManeUnionRevenueReflectionRegardGovernancer.h; sourceTree = ""; }; + E85E7A8E2A4EB0D200B6D00A /* YUMIManeUnionRevenueSpecificRegardGovernancer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIManeUnionRevenueSpecificRegardGovernancer.h; sourceTree = ""; }; + E85E7A8F2A4EB0D200B6D00A /* YUMIManeUnionRevenueReflectionRegardGovernancer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIManeUnionRevenueReflectionRegardGovernancer.h; sourceTree = ""; }; + E85E7A902A4EB0D200B6D00A /* YUMIManeMainRevenueStatsticsRegardGovernancer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIManeMainRevenueStatsticsRegardGovernancer.h; sourceTree = ""; }; + E85E7A912A4EB0D200B6D00A /* YUMIManeKellegRevenueStatsticsRegardGovernancer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIManeKellegRevenueStatsticsRegardGovernancer.m; sourceTree = ""; }; + E85E7A922A4EB0D200B6D00A /* YUMIManeGoldRevenueReflectionVC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIManeGoldRevenueReflectionVC.h; sourceTree = ""; }; + E85E7A932A4EB0D200B6D00A /* YUMIManeUnionRevenueStatsticsRegardGovernancer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIManeUnionRevenueStatsticsRegardGovernancer.m; sourceTree = ""; }; + E85E7A942A4EB0D200B6D00A /* YUMIManeUnionRevenueSpecificRegardGovernancer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIManeUnionRevenueSpecificRegardGovernancer.m; sourceTree = ""; }; + E85E7A952A4EB0D200B6D00A /* YUMIStrangeManeUnionRevenueReflectionRegardGovernancer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIStrangeManeUnionRevenueReflectionRegardGovernancer.m; sourceTree = ""; }; + E85E7A962A4EB0D200B6D00A /* YUMIManeCollectiveRevenueStatsticsRegardGovernancer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIManeCollectiveRevenueStatsticsRegardGovernancer.h; sourceTree = ""; }; + E85E7A972A4EB0D200B6D00A /* YUMIManeHallKellegRevenueStatsticsRegardGovernancer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIManeHallKellegRevenueStatsticsRegardGovernancer.h; sourceTree = ""; }; + E85E7A982A4EB0D200B6D00A /* YUMIManeUnionRevenueReflectionRegardGovernancer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIManeUnionRevenueReflectionRegardGovernancer.m; sourceTree = ""; }; + E85E7A992A4EB0D200B6D00A /* YUMIManeUnionHuntforRegardGovernancer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIManeUnionHuntforRegardGovernancer.h; sourceTree = ""; }; + E85E7A9A2A4EB0D200B6D00A /* YUMIManeCollectiveRegardGovernancer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIManeCollectiveRegardGovernancer.m; sourceTree = ""; }; + E85E7A9C2A4EB0D200B6D00A /* YUMIManeUnionSensationalManagementSetRegardGovernancer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIManeUnionSensationalManagementSetRegardGovernancer.h; sourceTree = ""; }; + E85E7A9D2A4EB0D200B6D00A /* YUMIManeUnionChooseExecutiveRegardGovernancer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIManeUnionChooseExecutiveRegardGovernancer.h; sourceTree = ""; }; + E85E7A9E2A4EB0D200B6D00A /* YUMIManeUnionSensationalManagementSetRegardGovernancer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIManeUnionSensationalManagementSetRegardGovernancer.m; sourceTree = ""; }; + E85E7A9F2A4EB0D200B6D00A /* YUMIManeUnionChooseExecutiveRegardGovernancer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIManeUnionChooseExecutiveRegardGovernancer.m; sourceTree = ""; }; + E85E7AA02A4EB0D200B6D00A /* YUMIManeUnionRegardGovernancer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIManeUnionRegardGovernancer.m; sourceTree = ""; }; + E85E7AA12A4EB0D200B6D00A /* YUMIManeUnionStatementVC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIManeUnionStatementVC.h; sourceTree = ""; }; + E85E7AA22A4EB0D200B6D00A /* YUMIManeExchangeAuthorityVC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIManeExchangeAuthorityVC.h; sourceTree = ""; }; + E85E7AA42A4EB0D200B6D00A /* YUMIUnionSensationalManagementParrotRegard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIUnionSensationalManagementParrotRegard.m; sourceTree = ""; }; + E85E7AA52A4EB0D200B6D00A /* YUMIUnionIntelligencerRegard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIUnionIntelligencerRegard.h; sourceTree = ""; }; + E85E7AA62A4EB0D200B6D00A /* YUMICollectiveParrotRegard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMICollectiveParrotRegard.m; sourceTree = ""; }; + E85E7AA72A4EB0D200B6D00A /* YUMIUnionIntratemporalPickRegard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIUnionIntratemporalPickRegard.m; sourceTree = ""; }; + E85E7AA82A4EB0D200B6D00A /* YUMICollectiveDivisionRegard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMICollectiveDivisionRegard.h; sourceTree = ""; }; + E85E7AA92A4EB0D200B6D00A /* YUMIUnionRevenueIntelligencerRegard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIUnionRevenueIntelligencerRegard.h; sourceTree = ""; }; + E85E7AAA2A4EB0D200B6D00A /* YUMIGoldRevenueDivisionRegard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIGoldRevenueDivisionRegard.h; sourceTree = ""; }; + E85E7AAB2A4EB0D200B6D00A /* YUMIUnionHuntforNevRegard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIUnionHuntforNevRegard.h; sourceTree = ""; }; + E85E7AAC2A4EB0D200B6D00A /* YUMIUnionIntratemporalMonthPickerRegard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIUnionIntratemporalMonthPickerRegard.m; sourceTree = ""; }; + E85E7AAD2A4EB0D200B6D00A /* YUMIStrangeUnionRevenueIntelligencerRegard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIStrangeUnionRevenueIntelligencerRegard.h; sourceTree = ""; }; + E85E7AAE2A4EB0D200B6D00A /* YUMIStrangeUnionIntratemporalPickRegard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIStrangeUnionIntratemporalPickRegard.m; sourceTree = ""; }; + E85E7AAF2A4EB0D200B6D00A /* YUMIUnionRevenueDivisionRegard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIUnionRevenueDivisionRegard.h; sourceTree = ""; }; + E85E7AB02A4EB0D200B6D00A /* YUMIUnionKellegRevenueDivisionRegard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIUnionKellegRevenueDivisionRegard.h; sourceTree = ""; }; + E85E7AB12A4EB0D200B6D00A /* YUMICollectiveDivisionRegard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMICollectiveDivisionRegard.m; sourceTree = ""; }; + E85E7AB22A4EB0D200B6D00A /* YUMIUnionIntelligencerRegard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIUnionIntelligencerRegard.m; sourceTree = ""; }; + E85E7AB32A4EB0D200B6D00A /* YUMICollectiveParrotRegard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMICollectiveParrotRegard.h; sourceTree = ""; }; + E85E7AB42A4EB0D200B6D00A /* YUMIUnionIntratemporalPickRegard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIUnionIntratemporalPickRegard.h; sourceTree = ""; }; + E85E7AB52A4EB0D200B6D00A /* YUMIUnionSensationalManagementParrotRegard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIUnionSensationalManagementParrotRegard.h; sourceTree = ""; }; + E85E7AB62A4EB0D200B6D00A /* YUMIUnionIntratemporalMonthPickerRegard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIUnionIntratemporalMonthPickerRegard.h; sourceTree = ""; }; + E85E7AB72A4EB0D200B6D00A /* YUMIUnionHuntforNevRegard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIUnionHuntforNevRegard.m; sourceTree = ""; }; + E85E7AB82A4EB0D200B6D00A /* YUMIGoldRevenueDivisionRegard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIGoldRevenueDivisionRegard.m; sourceTree = ""; }; + E85E7AB92A4EB0D200B6D00A /* YUMIUnionRevenueIntelligencerRegard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIUnionRevenueIntelligencerRegard.m; sourceTree = ""; }; + E85E7ABA2A4EB0D200B6D00A /* YUMIStrangeUnionIntratemporalPickRegard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIStrangeUnionIntratemporalPickRegard.h; sourceTree = ""; }; + E85E7ABB2A4EB0D200B6D00A /* YUMIStrangeUnionRevenueIntelligencerRegard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIStrangeUnionRevenueIntelligencerRegard.m; sourceTree = ""; }; + E85E7ABC2A4EB0D200B6D00A /* YUMIUnionKellegRevenueDivisionRegard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIUnionKellegRevenueDivisionRegard.m; sourceTree = ""; }; + E85E7ABD2A4EB0D200B6D00A /* YUMIUnionRevenueDivisionRegard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIUnionRevenueDivisionRegard.m; sourceTree = ""; }; + E85E7ABE2A4EB0D200B6D00A /* YUMIManeMainUnionStatementVC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIManeMainUnionStatementVC.m; sourceTree = ""; }; + E85E7AC02A4EB0D200B6D00A /* YUMICollectiveComponentTabulationRegardElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMICollectiveComponentTabulationRegardElement.m; sourceTree = ""; }; + E85E7AC12A4EB0D200B6D00A /* YUMICollectiveChamberAssembletionRegardElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMICollectiveChamberAssembletionRegardElement.m; sourceTree = ""; }; + E85E7AC32A4EB0D200B6D00A /* YUMIManeUnionStatementElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIManeUnionStatementElement.m; sourceTree = ""; }; + E85E7AC42A4EB0D200B6D00A /* YUMIManeUnionStatementElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIManeUnionStatementElement.h; sourceTree = ""; }; + E85E7AC52A4EB0D200B6D00A /* YUMIManeUnionHuntforComponentTabulationRegardElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIManeUnionHuntforComponentTabulationRegardElement.m; sourceTree = ""; }; + E85E7AC62A4EB0D200B6D00A /* YUMIManeUnionDispossessTabulationRegardElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIManeUnionDispossessTabulationRegardElement.h; sourceTree = ""; }; + E85E7AC72A4EB0D200B6D00A /* YUMIUnionDispossessAssembletionRegardElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIUnionDispossessAssembletionRegardElement.h; sourceTree = ""; }; + E85E7AC92A4EB0D200B6D00A /* YUMIUnionSensationalManagementChamberAssembletionRegardElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIUnionSensationalManagementChamberAssembletionRegardElement.h; sourceTree = ""; }; + E85E7ACA2A4EB0D200B6D00A /* YUMIUnionChooseExecutiveChamberTabulationRegardElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIUnionChooseExecutiveChamberTabulationRegardElement.m; sourceTree = ""; }; + E85E7ACB2A4EB0D200B6D00A /* YUMIUnionSensationalManagementSetTabulationRegardElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIUnionSensationalManagementSetTabulationRegardElement.m; sourceTree = ""; }; + E85E7ACC2A4EB0D200B6D00A /* YUMIUnionHuntforSensationalManagementTabulationRegardElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIUnionHuntforSensationalManagementTabulationRegardElement.m; sourceTree = ""; }; + E85E7ACD2A4EB0D200B6D00A /* YUMIUnionSensationalManagementChamberAssembletionRegardElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIUnionSensationalManagementChamberAssembletionRegardElement.m; sourceTree = ""; }; + E85E7ACE2A4EB0D200B6D00A /* YUMIUnionChooseExecutiveChamberTabulationRegardElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIUnionChooseExecutiveChamberTabulationRegardElement.h; sourceTree = ""; }; + E85E7ACF2A4EB0D200B6D00A /* YUMIUnionHuntforSensationalManagementTabulationRegardElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIUnionHuntforSensationalManagementTabulationRegardElement.h; sourceTree = ""; }; + E85E7AD02A4EB0D200B6D00A /* YUMIUnionSensationalManagementSetTabulationRegardElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIUnionSensationalManagementSetTabulationRegardElement.h; sourceTree = ""; }; + E85E7AD22A4EB0D200B6D00A /* YUMIUnionRevenueSpecificAssembletionRegardElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIUnionRevenueSpecificAssembletionRegardElement.m; sourceTree = ""; }; + E85E7AD32A4EB0D200B6D00A /* YUMIUnionRevenueReflectionTabulationRegardElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIUnionRevenueReflectionTabulationRegardElement.m; sourceTree = ""; }; + E85E7AD42A4EB0D200B6D00A /* YUMIUnionFeatureRevenueTabulationRegardElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIUnionFeatureRevenueTabulationRegardElement.h; sourceTree = ""; }; + E85E7AD52A4EB0D200B6D00A /* YUMIUnionSingleChamberRevenueTabulationRegardElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIUnionSingleChamberRevenueTabulationRegardElement.m; sourceTree = ""; }; + E85E7AD62A4EB0D200B6D00A /* YUMIUnionRevenueSpecificAssembletionRegardElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIUnionRevenueSpecificAssembletionRegardElement.h; sourceTree = ""; }; + E85E7AD72A4EB0D200B6D00A /* YUMIUnionFeatureRevenueTabulationRegardElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIUnionFeatureRevenueTabulationRegardElement.m; sourceTree = ""; }; + E85E7AD82A4EB0D200B6D00A /* YUMIUnionRevenueReflectionTabulationRegardElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIUnionRevenueReflectionTabulationRegardElement.h; sourceTree = ""; }; + E85E7AD92A4EB0D200B6D00A /* YUMIUnionSingleChamberRevenueTabulationRegardElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIUnionSingleChamberRevenueTabulationRegardElement.h; sourceTree = ""; }; + E85E7ADA2A4EB0D200B6D00A /* YUMICollectiveChamberAssembletionRegardElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMICollectiveChamberAssembletionRegardElement.h; sourceTree = ""; }; + E85E7ADB2A4EB0D200B6D00A /* YUMICollectiveComponentTabulationRegardElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMICollectiveComponentTabulationRegardElement.h; sourceTree = ""; }; + E85E7ADC2A4EB0D200B6D00A /* YUMIManeUnionDispossessTabulationRegardElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIManeUnionDispossessTabulationRegardElement.m; sourceTree = ""; }; + E85E7ADD2A4EB0D200B6D00A /* YUMIManeUnionHuntforComponentTabulationRegardElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIManeUnionHuntforComponentTabulationRegardElement.h; sourceTree = ""; }; + E85E7ADF2A4EB0D200B6D00A /* YUMIManeExchangeAuthorityElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIManeExchangeAuthorityElement.h; sourceTree = ""; }; + E85E7AE02A4EB0D200B6D00A /* YUMIManePromptWindow.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIManePromptWindow.m; sourceTree = ""; }; + E85E7AE12A4EB0D200B6D00A /* YUMIManeExchangeAuthorityFooderRegard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIManeExchangeAuthorityFooderRegard.h; sourceTree = ""; }; + E85E7AE22A4EB0D200B6D00A /* YUMIManeExchangeAuthorityIntelligenceRegard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIManeExchangeAuthorityIntelligenceRegard.m; sourceTree = ""; }; + E85E7AE32A4EB0D200B6D00A /* YUMIManeExchangeAuthorityElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIManeExchangeAuthorityElement.m; sourceTree = ""; }; + E85E7AE42A4EB0D200B6D00A /* YUMIManePromptWindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIManePromptWindow.h; sourceTree = ""; }; + E85E7AE52A4EB0D200B6D00A /* YUMIManeExchangeAuthorityIntelligenceRegard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIManeExchangeAuthorityIntelligenceRegard.h; sourceTree = ""; }; + E85E7AE62A4EB0D200B6D00A /* YUMIManeExchangeAuthorityFooderRegard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIManeExchangeAuthorityFooderRegard.m; sourceTree = ""; }; + E85E7AE72A4EB0D200B6D00A /* YUMIUnionDispossessAssembletionRegardElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIUnionDispossessAssembletionRegardElement.m; sourceTree = ""; }; + E85E7AE92A4EB0D200B6D00A /* YUMIManeUnionExecutivePerTabulationRegardElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIManeUnionExecutivePerTabulationRegardElement.m; sourceTree = ""; }; + E85E7AEB2A4EB0D200B6D00A /* YUMIManeUnionExecutivePerTabulationRegardElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIManeUnionExecutivePerTabulationRegardElement.h; sourceTree = ""; }; + E85E7AED2A4EB0D200B6D00A /* YUMIManeUnionHuntforRegardGovernancer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIManeUnionHuntforRegardGovernancer.m; sourceTree = ""; }; + E85E7AEE2A4EB0D200B6D00A /* YUMIManeCollectiveRegardGovernancer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIManeCollectiveRegardGovernancer.h; sourceTree = ""; }; + E85E7AF02A4EB0D200B6D00A /* YUMIManeUnionSetNameRegardGovernancer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIManeUnionSetNameRegardGovernancer.h; sourceTree = ""; }; + E85E7AF12A4EB0D200B6D00A /* YUMIManeMangerStatementRegardGovernancer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIManeMangerStatementRegardGovernancer.m; sourceTree = ""; }; + E85E7AF22A4EB0D200B6D00A /* YUMIManeUnionRemoveComponentRegardGovernancer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIManeUnionRemoveComponentRegardGovernancer.h; sourceTree = ""; }; + E85E7AF32A4EB0D200B6D00A /* YUMIManeUnionExecutiveSetRegardGovernancer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIManeUnionExecutiveSetRegardGovernancer.m; sourceTree = ""; }; + E85E7AF42A4EB0D200B6D00A /* YUMIManeUnionExecutivePerRegardGovernancer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIManeUnionExecutivePerRegardGovernancer.m; sourceTree = ""; }; + E85E7AF52A4EB0D200B6D00A /* YUMIManeUnionExecutiveSetRegardGovernancer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIManeUnionExecutiveSetRegardGovernancer.h; sourceTree = ""; }; + E85E7AF62A4EB0D200B6D00A /* YUMIManeUnionRemoveComponentRegardGovernancer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIManeUnionRemoveComponentRegardGovernancer.m; sourceTree = ""; }; + E85E7AF72A4EB0D200B6D00A /* YUMIManeMangerStatementRegardGovernancer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIManeMangerStatementRegardGovernancer.h; sourceTree = ""; }; + E85E7AF82A4EB0D200B6D00A /* YUMIManeUnionSetNameRegardGovernancer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIManeUnionSetNameRegardGovernancer.m; sourceTree = ""; }; + E85E7AF92A4EB0D200B6D00A /* YUMIManeUnionExecutivePerRegardGovernancer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIManeUnionExecutivePerRegardGovernancer.h; sourceTree = ""; }; + E85E7AFA2A4EB0D200B6D00A /* YUMIManeExchangeAuthorityVC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIManeExchangeAuthorityVC.m; sourceTree = ""; }; + E85E7AFB2A4EB0D200B6D00A /* YUMIManeMainUnionStatementVC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIManeMainUnionStatementVC.h; sourceTree = ""; }; + E85E7AFC2A4EB0D200B6D00A /* YUMIManeUnionRegardGovernancer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIManeUnionRegardGovernancer.h; sourceTree = ""; }; + E85E7AFD2A4EB0D200B6D00A /* YUMIManeUnionStatementVC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIManeUnionStatementVC.m; sourceTree = ""; }; + E85E7AFF2A4EB0D200B6D00A /* Api+Guild.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "Api+Guild.m"; sourceTree = ""; }; + E85E7B002A4EB0D200B6D00A /* Api+Guild.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "Api+Guild.h"; sourceTree = ""; }; + E85E7B522A4EB4AD00B6D00A /* YUMIManeUnionStatementMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeUnionStatementMatrix.h; sourceTree = ""; }; + E85E7B532A4EB4AD00B6D00A /* YUMIManeUnionStatementMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeUnionStatementMatrix.m; sourceTree = ""; }; + E85E7B592A4EC35A00B6D00A /* YUMIRevenueReflectionGoldSpecificsMatrix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIRevenueReflectionGoldSpecificsMatrix.h; sourceTree = ""; }; + E85E7B5A2A4EC35A00B6D00A /* YUMIExchangeDiamondsMatrix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIExchangeDiamondsMatrix.h; sourceTree = ""; }; + E85E7B5B2A4EC35A00B6D00A /* YUMIRevenueReflectionMatrix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIRevenueReflectionMatrix.h; sourceTree = ""; }; + E85E7B5C2A4EC35A00B6D00A /* YUMIDilemmaExtractAbstractMatrix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIDilemmaExtractAbstractMatrix.h; sourceTree = ""; }; + E85E7B5D2A4EC35A00B6D00A /* YUMIWithdrawAccountMatrix.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIWithdrawAccountMatrix.m; sourceTree = ""; }; + E85E7B5E2A4EC35A00B6D00A /* YUMIRevenueReflectionMatrix.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIRevenueReflectionMatrix.m; sourceTree = ""; }; + E85E7B5F2A4EC35A00B6D00A /* YUMIExchangeDiamondsMatrix.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIExchangeDiamondsMatrix.m; sourceTree = ""; }; + E85E7B602A4EC35A00B6D00A /* YUMIRevenueReflectionGoldSpecificsMatrix.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIRevenueReflectionGoldSpecificsMatrix.m; sourceTree = ""; }; + E85E7B612A4EC35A00B6D00A /* YUMIDilemmaExtractAbstractMatrix.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIDilemmaExtractAbstractMatrix.m; sourceTree = ""; }; + E85E7B622A4EC35A00B6D00A /* YUMIWithdrawAccountMatrix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIWithdrawAccountMatrix.h; sourceTree = ""; }; + E85E7B692A4EC39400B6D00A /* YUMIManeExchangeAuthorityMatrix.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIManeExchangeAuthorityMatrix.m; sourceTree = ""; }; + E85E7B6A2A4EC39400B6D00A /* YUMIManeExchangeAuthorityMatrix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIManeExchangeAuthorityMatrix.h; sourceTree = ""; }; + E85E7B6C2A4EC4AE00B6D00A /* YUMIManeUnionExternalizer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIManeUnionExternalizer.m; sourceTree = ""; }; + E85E7B6D2A4EC4AE00B6D00A /* YUMIManeUnionExternalizer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIManeUnionExternalizer.h; sourceTree = ""; }; + E85E7B6F2A4EC4B700B6D00A /* FBCManeUnionCeremony.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FBCManeUnionCeremony.h; sourceTree = ""; }; + E85E7B702A4EC93C00B6D00A /* YUMIManeGiveDiamondHuntforRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeGiveDiamondHuntforRegard.h; sourceTree = ""; }; + E85E7B712A4EC93C00B6D00A /* YUMIManeGiveDiamondHuntforRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeGiveDiamondHuntforRegard.m; sourceTree = ""; }; + E85E7B752A4EC99200B6D00A /* YUMIManeGiveDiamondExternalizer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIManeGiveDiamondExternalizer.m; sourceTree = ""; }; + E85E7B762A4EC99200B6D00A /* YUMIManeGiveDiamondExternalizer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIManeGiveDiamondExternalizer.h; sourceTree = ""; }; + E85E7B782A4EC99200B6D00A /* FBCManeGiveDiamondCeremony.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FBCManeGiveDiamondCeremony.h; sourceTree = ""; }; + E85E7B7A2A4EC99200B6D00A /* YUMIManeGiveDiamondSpecificsMatrix.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIManeGiveDiamondSpecificsMatrix.m; sourceTree = ""; }; + E85E7B7B2A4EC99200B6D00A /* YUMIManeGiveDiamondMatrix.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIManeGiveDiamondMatrix.m; sourceTree = ""; }; + E85E7B7C2A4EC99200B6D00A /* YUMIManeGiveDiamondHuntforMatrix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIManeGiveDiamondHuntforMatrix.h; sourceTree = ""; }; + E85E7B7D2A4EC99200B6D00A /* YUMIManeGiveDiamondSpecificsMatrix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIManeGiveDiamondSpecificsMatrix.h; sourceTree = ""; }; + E85E7B7E2A4EC99200B6D00A /* YUMIManeGiveDiamondMatrix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIManeGiveDiamondMatrix.h; sourceTree = ""; }; + E85E7B7F2A4EC99200B6D00A /* YUMIManeGiveDiamondHuntforMatrix.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIManeGiveDiamondHuntforMatrix.m; sourceTree = ""; }; + E85E7B812A4EC99200B6D00A /* YUMIManeGiveDiamondVC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIManeGiveDiamondVC.h; sourceTree = ""; }; + E85E7B822A4EC99200B6D00A /* YUMIManeChooseGiveDiamondVC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIManeChooseGiveDiamondVC.h; sourceTree = ""; }; + E85E7B832A4EC99200B6D00A /* YUMIManeGiveDiamondSpecificsVC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIManeGiveDiamondSpecificsVC.m; sourceTree = ""; }; + E85E7B842A4EC99200B6D00A /* YUMIManeGiveDiamondSpecificsVC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIManeGiveDiamondSpecificsVC.h; sourceTree = ""; }; + E85E7B862A4EC99200B6D00A /* YUMIManeGiveDiamondElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIManeGiveDiamondElement.m; sourceTree = ""; }; + E85E7B872A4EC99200B6D00A /* YUMIManeChooseGiveDiamondRegard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIManeChooseGiveDiamondRegard.m; sourceTree = ""; }; + E85E7B882A4EC99200B6D00A /* YUMIManeConfirmGiveDiamondRegard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIManeConfirmGiveDiamondRegard.h; sourceTree = ""; }; + E85E7B892A4EC99200B6D00A /* YUMIManeGiveDiamondHuntforRegard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIManeGiveDiamondHuntforRegard.m; sourceTree = ""; }; + E85E7B8A2A4EC99200B6D00A /* YUMIManeGiveDiamondCiphercodeRegard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIManeGiveDiamondCiphercodeRegard.m; sourceTree = ""; }; + E85E7B8B2A4EC99200B6D00A /* YUMIManeChooseGivePresentRegardElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIManeChooseGivePresentRegardElement.h; sourceTree = ""; }; + E85E7B8C2A4EC99200B6D00A /* YUMIManeGiveDiamondSpecificsRegard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIManeGiveDiamondSpecificsRegard.h; sourceTree = ""; }; + E85E7B8D2A4EC99200B6D00A /* YUMIManeChooseGivePresentRegard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIManeChooseGivePresentRegard.h; sourceTree = ""; }; + E85E7B8E2A4EC99200B6D00A /* YUMIManeGiveDiamondPwordRegard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIManeGiveDiamondPwordRegard.h; sourceTree = ""; }; + E85E7B8F2A4EC99200B6D00A /* YUMIManeGiveDiamondSpecificsElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIManeGiveDiamondSpecificsElement.h; sourceTree = ""; }; + E85E7B902A4EC99200B6D00A /* YUMIManeChooseGiveDiamondRegard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIManeChooseGiveDiamondRegard.h; sourceTree = ""; }; + E85E7B912A4EC99200B6D00A /* YUMIManeGiveDiamondElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIManeGiveDiamondElement.h; sourceTree = ""; }; + E85E7B922A4EC99200B6D00A /* YUMIManeChooseGivePresentRegardElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIManeChooseGivePresentRegardElement.m; sourceTree = ""; }; + E85E7B932A4EC99200B6D00A /* YUMIManeGiveDiamondCiphercodeRegard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIManeGiveDiamondCiphercodeRegard.h; sourceTree = ""; }; + E85E7B942A4EC99200B6D00A /* YUMIManeGiveDiamondHuntforRegard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIManeGiveDiamondHuntforRegard.h; sourceTree = ""; }; + E85E7B952A4EC99200B6D00A /* YUMIManeConfirmGiveDiamondRegard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIManeConfirmGiveDiamondRegard.m; sourceTree = ""; }; + E85E7B962A4EC99200B6D00A /* YUMIManeGiveDiamondPwordRegard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIManeGiveDiamondPwordRegard.m; sourceTree = ""; }; + E85E7B972A4EC99200B6D00A /* YUMIManeChooseGivePresentRegard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIManeChooseGivePresentRegard.m; sourceTree = ""; }; + E85E7B982A4EC99200B6D00A /* YUMIManeGiveDiamondSpecificsRegard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIManeGiveDiamondSpecificsRegard.m; sourceTree = ""; }; + E85E7B992A4EC99200B6D00A /* YUMIManeGiveDiamondSpecificsElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIManeGiveDiamondSpecificsElement.m; sourceTree = ""; }; + E85E7B9A2A4EC99200B6D00A /* YUMIManeGiveDiamondVC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIManeGiveDiamondVC.m; sourceTree = ""; }; + E85E7B9B2A4EC99200B6D00A /* YUMIManeChooseGiveDiamondVC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIManeChooseGiveDiamondVC.m; sourceTree = ""; }; + E85E7B9D2A4EC99200B6D00A /* Api+GiveDiamond.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "Api+GiveDiamond.h"; sourceTree = ""; }; + E85E7B9E2A4EC99200B6D00A /* Api+GiveDiamond.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "Api+GiveDiamond.m"; sourceTree = ""; }; + E85E7BB12A4ED45300B6D00A /* YUMIPageControl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIPageControl.h; sourceTree = ""; }; + E85E7BB22A4ED45300B6D00A /* YUMIPageControl.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIPageControl.m; sourceTree = ""; }; + E85E7BB42A4ED59900B6D00A /* YUMIRevenueReflectionGoldSpecificsElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIRevenueReflectionGoldSpecificsElement.h; sourceTree = ""; }; + E85E7BB52A4ED59900B6D00A /* YUMIRevenueReflectionGoldSpecificsElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIRevenueReflectionGoldSpecificsElement.m; sourceTree = ""; }; + E85E7BB72A4ED89E00B6D00A /* YUMIRevenueReflectionGoldSpecificsIntelligenceRegard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIRevenueReflectionGoldSpecificsIntelligenceRegard.h; sourceTree = ""; }; + E85E7BB82A4ED89F00B6D00A /* YUMIRevenueReflectionGoldSpecificsIntelligenceRegard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIRevenueReflectionGoldSpecificsIntelligenceRegard.m; sourceTree = ""; }; + E85E7BBA2A4EE70B00B6D00A /* YUMIManeTheUnionElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeTheUnionElement.h; sourceTree = ""; }; + E85E7BBB2A4EE70B00B6D00A /* YUMIManeTheUnionElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeTheUnionElement.m; sourceTree = ""; }; + E85E7BBD2A4EE7AC00B6D00A /* YUMIManeFeaturealConcentrateElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeFeaturealConcentrateElement.h; sourceTree = ""; }; + E85E7BBE2A4EE7AC00B6D00A /* YUMIManeFeaturealConcentrateElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeFeaturealConcentrateElement.m; sourceTree = ""; }; + E85E7BC02A4EE82300B6D00A /* YUMIManeStatementElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeStatementElement.h; sourceTree = ""; }; + E85E7BC12A4EE82300B6D00A /* YUMIManeStatementElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeStatementElement.m; sourceTree = ""; }; + E86507E3281A7D4D006951B0 /* CommunicationSatisfactionTweetRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CommunicationSatisfactionTweetRegard.h; sourceTree = ""; }; + E86507E4281A7D4D006951B0 /* CommunicationSatisfactionTweetRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CommunicationSatisfactionTweetRegard.m; sourceTree = ""; }; + E86507E6281A8212006951B0 /* SatisfactionTweetMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SatisfactionTweetMatrix.h; sourceTree = ""; }; + E86507E7281A8212006951B0 /* SatisfactionTweetMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SatisfactionTweetMatrix.m; sourceTree = ""; }; + E86507E9281A88A9006951B0 /* CommunicationSatisfactionCommunicationSolitaireRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CommunicationSatisfactionCommunicationSolitaireRegard.h; sourceTree = ""; }; + E86507EA281A88A9006951B0 /* CommunicationSatisfactionCommunicationSolitaireRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CommunicationSatisfactionCommunicationSolitaireRegard.m; sourceTree = ""; }; + E86596412701611A00846EBD /* UIImage+ImageEffects.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIImage+ImageEffects.m"; sourceTree = ""; }; + E86596422701611A00846EBD /* UIImage+ImageEffects.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIImage+ImageEffects.h"; sourceTree = ""; }; + E865964F2701A1C000846EBD /* StatsticsticsServing.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = StatsticsticsServing.h; sourceTree = ""; }; + E86596502701A1C000846EBD /* StatsticsticsServing.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = StatsticsticsServing.m; sourceTree = ""; }; + E86596522701A55500846EBD /* StatsticsticsServingFacilitater.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = StatsticsticsServingFacilitater.h; sourceTree = ""; }; + E86596532701A55500846EBD /* StatsticsticsServingFacilitater.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = StatsticsticsServingFacilitater.m; sourceTree = ""; }; + E8659907273E800D00EE349D /* YUMIPresentAssembletionRegardFlowProgramming.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIPresentAssembletionRegardFlowProgramming.h; sourceTree = ""; }; + E8659908273E800D00EE349D /* YUMIPresentAssembletionRegardFlowProgramming.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIPresentAssembletionRegardFlowProgramming.m; sourceTree = ""; }; + E8664ECE27E42238000171BA /* YUMIChamberCombatIntratemporalPickerRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberCombatIntratemporalPickerRegard.h; sourceTree = ""; }; + E8664ECF27E42238000171BA /* YUMIChamberCombatIntratemporalPickerRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberCombatIntratemporalPickerRegard.m; sourceTree = ""; }; + E8664ED127E4258A000171BA /* ChamberCombatIntratemporalProvisionMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ChamberCombatIntratemporalProvisionMatrix.h; sourceTree = ""; }; + E8664ED227E4258A000171BA /* ChamberCombatIntratemporalProvisionMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ChamberCombatIntratemporalProvisionMatrix.m; sourceTree = ""; }; + E8664ED427E434D5000171BA /* YUMIChamberCombatReflectionRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberCombatReflectionRegardGovernancer.h; sourceTree = ""; }; + E8664ED527E434D5000171BA /* YUMIChamberCombatReflectionRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberCombatReflectionRegardGovernancer.m; sourceTree = ""; }; + E8664ED727E4355C000171BA /* YUMIChamberCombatReflectionTabulationRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberCombatReflectionTabulationRegardElement.h; sourceTree = ""; }; + E8664ED827E4355C000171BA /* YUMIChamberCombatReflectionTabulationRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberCombatReflectionTabulationRegardElement.m; sourceTree = ""; }; + E8664EDA27E43632000171BA /* YUMIChamberCombatDispossessTabulationRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberCombatDispossessTabulationRegardElement.h; sourceTree = ""; }; + E8664EDB27E43632000171BA /* YUMIChamberCombatDispossessTabulationRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberCombatDispossessTabulationRegardElement.m; sourceTree = ""; }; + E8664EDD27E45EC7000171BA /* YUMIChamberCombatReflectionExternalizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberCombatReflectionExternalizer.h; sourceTree = ""; }; + E8664EDE27E45EC7000171BA /* YUMIChamberCombatReflectionExternalizer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberCombatReflectionExternalizer.m; sourceTree = ""; }; + E8664EE027E45EE6000171BA /* FBCChamberCombatRecordCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FBCChamberCombatRecordCeremony.h; sourceTree = ""; }; + E8664EE127E47711000171BA /* YUMIChamberCombatReflectionNickRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberCombatReflectionNickRegard.h; sourceTree = ""; }; + E8664EE227E47711000171BA /* YUMIChamberCombatReflectionNickRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberCombatReflectionNickRegard.m; sourceTree = ""; }; + E8664EE427E482EF000171BA /* ChamberCombatSquadMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ChamberCombatSquadMatrix.h; sourceTree = ""; }; + E8664EE527E482EF000171BA /* ChamberCombatSquadMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ChamberCombatSquadMatrix.m; sourceTree = ""; }; + E866B6E32759F96F009B002A /* YUMIMiniChamberRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIMiniChamberRegard.h; sourceTree = ""; }; + E866B6E42759F96F009B002A /* YUMIMiniChamberRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIMiniChamberRegard.m; sourceTree = ""; }; + E8680716271967B00024F48F /* MiecreoscoopeRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MiecreoscoopeRegard.h; sourceTree = ""; }; + E8680717271967B00024F48F /* MiecreoscoopeRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MiecreoscoopeRegard.m; sourceTree = ""; }; + E86A16BD2856D4D5004228B8 /* YUMIInterlocutionDiscoveryStrangeBewelcometoStatementRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIInterlocutionDiscoveryStrangeBewelcometoStatementRegard.h; sourceTree = ""; }; + E86A16BE2856D4D5004228B8 /* YUMIInterlocutionDiscoveryStrangeBewelcometoStatementRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIInterlocutionDiscoveryStrangeBewelcometoStatementRegard.m; sourceTree = ""; }; + E86A16C02856D635004228B8 /* YUMIInterlocutionDiscoveryStrangeBewelcometoTabulationRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIInterlocutionDiscoveryStrangeBewelcometoTabulationRegardElement.h; sourceTree = ""; }; + E86A16C12856D635004228B8 /* YUMIInterlocutionDiscoveryStrangeBewelcometoTabulationRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIInterlocutionDiscoveryStrangeBewelcometoTabulationRegardElement.m; sourceTree = ""; }; + E86A16C32856DBEC004228B8 /* DiscoveryStrangeBewelcometoStatementMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DiscoveryStrangeBewelcometoStatementMatrix.h; sourceTree = ""; }; + E86A16C42856DBEC004228B8 /* DiscoveryStrangeBewelcometoStatementMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = DiscoveryStrangeBewelcometoStatementMatrix.m; sourceTree = ""; }; + E86A16CC28574844004228B8 /* YUMIChamberLicneseHourRateRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberLicneseHourRateRegard.h; sourceTree = ""; }; + E86A16CD28574844004228B8 /* YUMIChamberLicneseHourRateRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberLicneseHourRateRegard.m; sourceTree = ""; }; + E86E79CB28A4E045006DAF48 /* CommunicationSatisfactionVenturePrecautiousRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CommunicationSatisfactionVenturePrecautiousRegard.h; sourceTree = ""; }; + E86E79CC28A4E045006DAF48 /* CommunicationSatisfactionVenturePrecautiousRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CommunicationSatisfactionVenturePrecautiousRegard.m; sourceTree = ""; }; + E86E79CE28A4E0B2006DAF48 /* SatisfactionRistPrecautiousMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SatisfactionRistPrecautiousMatrix.h; sourceTree = ""; }; + E86E79CF28A4E0B2006DAF48 /* SatisfactionRistPrecautiousMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SatisfactionRistPrecautiousMatrix.m; sourceTree = ""; }; + E86E79D128A4E94E006DAF48 /* InterlocutionVentureRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = InterlocutionVentureRegard.h; sourceTree = ""; }; + E86E79D228A4E94E006DAF48 /* InterlocutionVentureRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = InterlocutionVentureRegard.m; sourceTree = ""; }; + E86E79D428A4EA0C006DAF48 /* InterlocutionVentureCache.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = InterlocutionVentureCache.h; sourceTree = ""; }; + E86E79D528A4EA0C006DAF48 /* InterlocutionVentureCache.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = InterlocutionVentureCache.m; sourceTree = ""; }; + E86F6183284F4E4800E8EC9A /* ChamberHalfHourRateMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ChamberHalfHourRateMatrix.h; sourceTree = ""; }; + E86F6184284F4E4800E8EC9A /* ChamberHalfHourRateMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ChamberHalfHourRateMatrix.m; sourceTree = ""; }; + E872309126E8D31500B90D4F /* SurmountValidationCodeRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SurmountValidationCodeRegard.h; sourceTree = ""; }; + E872309226E8D31500B90D4F /* SurmountValidationCodeRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SurmountValidationCodeRegard.m; sourceTree = ""; }; + E8729EB92A3B10C10076D80A /* YuMiRelease.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = YuMiRelease.entitlements; sourceTree = ""; }; + E8729EBA2A3B10C10076D80A /* YuMi.entitlements */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.entitlements; path = YuMi.entitlements; sourceTree = ""; }; + E8729EE72A3B34D20076D80A /* index.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = index.html; sourceTree = ""; }; + E8729EE82A3B34D20076D80A /* upload.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = upload.html; sourceTree = ""; }; + E8729EE92A3B34D30076D80A /* css */ = {isa = PBXFileReference; lastKnownFileType = folder; path = css; sourceTree = ""; }; + E8729EEA2A3B34D30076D80A /* images */ = {isa = PBXFileReference; lastKnownFileType = folder; path = images; sourceTree = ""; }; + E8729EEB2A3B34D30076D80A /* js */ = {isa = PBXFileReference; lastKnownFileType = folder; path = js; sourceTree = ""; }; + E873EB00280922720071030D /* YUMIManeConsumerAbstractDispossessAssembletionRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeConsumerAbstractDispossessAssembletionRegardElement.h; sourceTree = ""; }; + E873EB01280922720071030D /* YUMIManeConsumerAbstractDispossessAssembletionRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeConsumerAbstractDispossessAssembletionRegardElement.m; sourceTree = ""; }; + E873EB03280943ED0071030D /* YUMIManeConsumerAbstractPresentRamparatExternalizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeConsumerAbstractPresentRamparatExternalizer.h; sourceTree = ""; }; + E873EB04280943ED0071030D /* YUMIManeConsumerAbstractPresentRamparatExternalizer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeConsumerAbstractPresentRamparatExternalizer.m; sourceTree = ""; }; + E873EB06280944020071030D /* FBCManeConsumerAbstractPresentWallCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FBCManeConsumerAbstractPresentWallCeremony.h; sourceTree = ""; }; + E873EB07280960990071030D /* YUMIManeConsumerAbstractReputationSolitaireRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeConsumerAbstractReputationSolitaireRegard.h; sourceTree = ""; }; + E873EB08280960990071030D /* YUMIManeConsumerAbstractReputationSolitaireRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeConsumerAbstractReputationSolitaireRegard.m; sourceTree = ""; }; + E873EB0A2809850D0071030D /* CommunicationSatisfactionCustomRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CommunicationSatisfactionCustomRegard.h; sourceTree = ""; }; + E873EB0B2809850D0071030D /* CommunicationSatisfactionCustomRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CommunicationSatisfactionCustomRegard.m; sourceTree = ""; }; + E873EB0D28098D500071030D /* CommunicationSatisfactionPresentRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CommunicationSatisfactionPresentRegard.h; sourceTree = ""; }; + E873EB0E28098D500071030D /* CommunicationSatisfactionPresentRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CommunicationSatisfactionPresentRegard.m; sourceTree = ""; }; + E874B88627215D39003954B9 /* MiecreoscoopeStateMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MiecreoscoopeStateMatrix.h; sourceTree = ""; }; + E874B88727215D39003954B9 /* MiecreoscoopeStateMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MiecreoscoopeStateMatrix.m; sourceTree = ""; }; + E874B88927215EAF003954B9 /* MiecreoscoopeMHTueueMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MiecreoscoopeMHTueueMatrix.h; sourceTree = ""; }; + E874B88A27215EAF003954B9 /* MiecreoscoopeMHTueueMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MiecreoscoopeMHTueueMatrix.m; sourceTree = ""; }; + E8751E5728A62A390056EF44 /* Api+Sailing.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Api+Sailing.h"; sourceTree = ""; }; + E8751E5828A62A390056EF44 /* Api+Sailing.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "Api+Sailing.m"; sourceTree = ""; }; + E8751E5A28A62A530056EF44 /* YUMIMarchingRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIMarchingRegardGovernancer.h; sourceTree = ""; }; + E8751E5B28A62A530056EF44 /* YUMIMarchingRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIMarchingRegardGovernancer.m; sourceTree = ""; }; + E8751E5D28A62A970056EF44 /* YUMIMarchingExternalizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIMarchingExternalizer.h; sourceTree = ""; }; + E8751E5E28A62A970056EF44 /* YUMIMarchingExternalizer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIMarchingExternalizer.m; sourceTree = ""; }; + E8751E6028A62AA60056EF44 /* FBCSailingCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FBCSailingCeremony.h; sourceTree = ""; }; + E8751E6128A646400056EF44 /* YUMIMarchingRateRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIMarchingRateRegard.h; sourceTree = ""; }; + E8751E6228A646400056EF44 /* YUMIMarchingRateRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIMarchingRateRegard.m; sourceTree = ""; }; + E8751E6428A6465A0056EF44 /* YUMIMarchingRateMetroRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIMarchingRateMetroRegard.h; sourceTree = ""; }; + E8751E6528A6465A0056EF44 /* YUMIMarchingRateMetroRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIMarchingRateMetroRegard.m; sourceTree = ""; }; + E8751E6928A64C6E0056EF44 /* YUMIMarchingRateTabulationRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIMarchingRateTabulationRegardElement.h; sourceTree = ""; }; + E8751E6A28A64C6E0056EF44 /* YUMIMarchingRateTabulationRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIMarchingRateTabulationRegardElement.m; sourceTree = ""; }; + E8751E6C28A64F990056EF44 /* YUMIMarchingDispossessTabulationRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIMarchingDispossessTabulationRegardElement.h; sourceTree = ""; }; + E8751E6D28A64F990056EF44 /* YUMIMarchingDispossessTabulationRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIMarchingDispossessTabulationRegardElement.m; sourceTree = ""; }; + E8751E6F28A6541B0056EF44 /* ChamberMarchingRateMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ChamberMarchingRateMatrix.h; sourceTree = ""; }; + E8751E7028A6541B0056EF44 /* ChamberMarchingRateMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ChamberMarchingRateMatrix.m; sourceTree = ""; }; + E8751E7228A665BC0056EF44 /* ChamberMarchingAbstractMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ChamberMarchingAbstractMatrix.h; sourceTree = ""; }; + E8751E7328A665BC0056EF44 /* ChamberMarchingAbstractMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ChamberMarchingAbstractMatrix.m; sourceTree = ""; }; + E875A1B629755EE200AB1BBD /* InterlocutionConsumerAbstractTabulationRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = InterlocutionConsumerAbstractTabulationRegardElement.h; sourceTree = ""; }; + E875A1B729755EE200AB1BBD /* InterlocutionConsumerAbstractTabulationRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = InterlocutionConsumerAbstractTabulationRegardElement.m; sourceTree = ""; }; + E875FA8527D619820086ED04 /* ClientAtomicMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ClientAtomicMatrix.h; sourceTree = ""; }; + E875FA8627D619820086ED04 /* ClientAtomicMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ClientAtomicMatrix.m; sourceTree = ""; }; + E8778ADF2988B4C300CF139B /* CommunicationRevokeMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CommunicationRevokeMatrix.h; sourceTree = ""; }; + E8778AE02988B4C300CF139B /* CommunicationRevokeMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CommunicationRevokeMatrix.m; sourceTree = ""; }; + E8778AE22988B57B00CF139B /* CommunicationSatisfactionRevokeRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CommunicationSatisfactionRevokeRegard.h; sourceTree = ""; }; + E8778AE32988B57B00CF139B /* CommunicationSatisfactionRevokeRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CommunicationSatisfactionRevokeRegard.m; sourceTree = ""; }; + E8778AE52988C1E000CF139B /* YUMIInterlocutionHalloImportRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIInterlocutionHalloImportRegard.h; sourceTree = ""; }; + E8778AE62988C1E000CF139B /* YUMIInterlocutionHalloImportRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIInterlocutionHalloImportRegard.m; sourceTree = ""; }; + E8778AEE2988EF0600CF139B /* YUMIInterlocutionSpeakHalloRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIInterlocutionSpeakHalloRegardGovernancer.h; sourceTree = ""; }; + E8778AEF2988EF0600CF139B /* YUMIInterlocutionSpeakHalloRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIInterlocutionSpeakHalloRegardGovernancer.m; sourceTree = ""; }; + E8778AF32988EF2B00CF139B /* YUMIInterlocutionSpeakHalloTabulationRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIInterlocutionSpeakHalloTabulationRegardElement.h; sourceTree = ""; }; + E8778AF42988EF2B00CF139B /* YUMIInterlocutionSpeakHalloTabulationRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIInterlocutionSpeakHalloTabulationRegardElement.m; sourceTree = ""; }; + E8778AF62988F4E200CF139B /* YUMIInterlocutionSpeakHalloIntelligencerRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIInterlocutionSpeakHalloIntelligencerRegard.h; sourceTree = ""; }; + E8778AF72988F4E200CF139B /* YUMIInterlocutionSpeakHalloIntelligencerRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIInterlocutionSpeakHalloIntelligencerRegard.m; sourceTree = ""; }; + E8778AF92989034200CF139B /* YUMIInterlocutionSpeakHalloDispossessTabulationRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIInterlocutionSpeakHalloDispossessTabulationRegardElement.h; sourceTree = ""; }; + E8778AFA2989034200CF139B /* YUMIInterlocutionSpeakHalloDispossessTabulationRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIInterlocutionSpeakHalloDispossessTabulationRegardElement.m; sourceTree = ""; }; + E877A7E92783E24700EFACED /* EngagementPhaseRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EngagementPhaseRegard.h; sourceTree = ""; }; + E877A7EA2783E24700EFACED /* EngagementPhaseRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = EngagementPhaseRegard.m; sourceTree = ""; }; + E877A7EC278428FB00EFACED /* MiecreoscoopeEngagementProgressRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MiecreoscoopeEngagementProgressRegard.h; sourceTree = ""; }; + E877A7ED278428FB00EFACED /* MiecreoscoopeEngagementProgressRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MiecreoscoopeEngagementProgressRegard.m; sourceTree = ""; }; + E877A7EF27842B2F00EFACED /* YUMIChamberEngagementTissuePrecautiousRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberEngagementTissuePrecautiousRegard.h; sourceTree = ""; }; + E877A7F027842B2F00EFACED /* YUMIChamberEngagementTissuePrecautiousRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberEngagementTissuePrecautiousRegard.m; sourceTree = ""; }; + E877A7F227842EF800EFACED /* YUMIChamberEngagementVipUpwardsLoudspeakerRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberEngagementVipUpwardsLoudspeakerRegard.h; sourceTree = ""; }; + E877A7F327842EF800EFACED /* YUMIChamberEngagementVipUpwardsLoudspeakerRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberEngagementVipUpwardsLoudspeakerRegard.m; sourceTree = ""; }; + E87888F32738C30E00BF1D57 /* StoreKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = StoreKit.framework; path = System/Library/Frameworks/StoreKit.framework; sourceTree = SDKROOT; }; + E8788932273A53D700BF1D57 /* YUMIDischargePresentRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIDischargePresentRegard.h; sourceTree = ""; }; + E8788933273A53D700BF1D57 /* YUMIDischargePresentRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIDischargePresentRegard.m; sourceTree = ""; }; + E878893A273A54C300BF1D57 /* Api+Gift.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Api+Gift.h"; sourceTree = ""; }; + E878893B273A54C300BF1D57 /* Api+Gift.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "Api+Gift.m"; sourceTree = ""; }; + E878893D273A54F500BF1D57 /* YUMIPresentExternalizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIPresentExternalizer.h; sourceTree = ""; }; + E878893E273A54F500BF1D57 /* YUMIPresentExternalizer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIPresentExternalizer.m; sourceTree = ""; }; + E8788940273A55AD00BF1D57 /* YUMIExternalizeConsumersRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIExternalizeConsumersRegard.h; sourceTree = ""; }; + E8788941273A55AD00BF1D57 /* YUMIExternalizeConsumersRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIExternalizeConsumersRegard.m; sourceTree = ""; }; + E8788943273A55C200BF1D57 /* YUMIPresentAbstractRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIPresentAbstractRegard.h; sourceTree = ""; }; + E8788944273A55C200BF1D57 /* YUMIPresentAbstractRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIPresentAbstractRegard.m; sourceTree = ""; }; + E8788946273A55D000BF1D57 /* YUMIPresentObstacleRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIPresentObstacleRegard.h; sourceTree = ""; }; + E8788947273A55D000BF1D57 /* YUMIPresentObstacleRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIPresentObstacleRegard.m; sourceTree = ""; }; + E878894A273A607C00BF1D57 /* YUMIExternalizeConsumerAssembletionRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIExternalizeConsumerAssembletionRegardElement.h; sourceTree = ""; }; + E878894B273A607C00BF1D57 /* YUMIExternalizeConsumerAssembletionRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIExternalizeConsumerAssembletionRegardElement.m; sourceTree = ""; }; + E878894D273A672200BF1D57 /* FBCPresentCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FBCPresentCeremony.h; sourceTree = ""; }; + E878894E273A699900BF1D57 /* ThemeColor+SendGift.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "ThemeColor+SendGift.h"; sourceTree = ""; }; + E878894F273A699900BF1D57 /* ThemeColor+SendGift.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "ThemeColor+SendGift.m"; sourceTree = ""; }; + E878B8562835F0D300E22DCF /* SeparationsCoactiveMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SeparationsCoactiveMatrix.h; sourceTree = ""; }; + E878B8572835F0D300E22DCF /* SeparationsCoactiveMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SeparationsCoactiveMatrix.m; sourceTree = ""; }; + E878B8592835F3BF00E22DCF /* YUMISeparationsCoactiveTabulationRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMISeparationsCoactiveTabulationRegardElement.h; sourceTree = ""; }; + E878B85A2835F3BF00E22DCF /* YUMISeparationsCoactiveTabulationRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMISeparationsCoactiveTabulationRegardElement.m; sourceTree = ""; }; + E878B85C283640A500E22DCF /* SeparationsUnReadMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SeparationsUnReadMatrix.h; sourceTree = ""; }; + E878B85D283640A500E22DCF /* SeparationsUnReadMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SeparationsUnReadMatrix.m; sourceTree = ""; }; + E87A24EF272935920086A794 /* YUMICommunicationRemoteExtMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMICommunicationRemoteExtMatrix.h; sourceTree = ""; }; + E87A24F0272935920086A794 /* YUMICommunicationRemoteExtMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMICommunicationRemoteExtMatrix.m; sourceTree = ""; }; + E87A27012758BC81002DDC7A /* YUMIChamberHuntforAccommodatedRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberHuntforAccommodatedRegardGovernancer.h; sourceTree = ""; }; + E87A27022758BC81002DDC7A /* YUMIChamberHuntforAccommodatedRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberHuntforAccommodatedRegardGovernancer.m; sourceTree = ""; }; + E87AE7F7277AABE50037823A /* YUMIChamberCoupleStatementRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberCoupleStatementRegardGovernancer.h; sourceTree = ""; }; + E87AE7F8277AABE50037823A /* YUMIChamberCoupleStatementRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberCoupleStatementRegardGovernancer.m; sourceTree = ""; }; + E87AE7FA277AAC450037823A /* YUMIChamberCoupleExternalizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberCoupleExternalizer.h; sourceTree = ""; }; + E87AE7FB277AAC450037823A /* YUMIChamberCoupleExternalizer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberCoupleExternalizer.m; sourceTree = ""; }; + E87AE7FD277AAC5A0037823A /* FBCChamberTagCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FBCChamberTagCeremony.h; sourceTree = ""; }; + E87AE8BF284E184300CAFBB3 /* ChamberStrangeConsumerBewelcometoMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ChamberStrangeConsumerBewelcometoMatrix.h; sourceTree = ""; }; + E87AE8C0284E184300CAFBB3 /* ChamberStrangeConsumerBewelcometoMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ChamberStrangeConsumerBewelcometoMatrix.m; sourceTree = ""; }; + E87AE8C3284E1A8400CAFBB3 /* YUMIChamberStrangeConsumerBewelcometoRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberStrangeConsumerBewelcometoRegard.h; sourceTree = ""; }; + E87AE8C4284E1A8400CAFBB3 /* YUMIChamberStrangeConsumerBewelcometoRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberStrangeConsumerBewelcometoRegard.m; sourceTree = ""; }; + E87C0A9B27D9986700CB2241 /* YUMIChamberAcceptAssembletionFlowProgramming.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberAcceptAssembletionFlowProgramming.h; sourceTree = ""; }; + E87C0A9C27D9986700CB2241 /* YUMIChamberAcceptAssembletionFlowProgramming.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberAcceptAssembletionFlowProgramming.m; sourceTree = ""; }; + E87C0A9E27D9DE6400CB2241 /* ChamberAcceptDischargeAbstractMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ChamberAcceptDischargeAbstractMatrix.h; sourceTree = ""; }; + E87C0A9F27D9DE6400CB2241 /* ChamberAcceptDischargeAbstractMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ChamberAcceptDischargeAbstractMatrix.m; sourceTree = ""; }; + E87C54BC2823CC5B0051AA11 /* YUMIManeReassociationSurmountPwordExternalizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeReassociationSurmountPwordExternalizer.h; sourceTree = ""; }; + E87C54BD2823CC5B0051AA11 /* YUMIManeReassociationSurmountPwordExternalizer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeReassociationSurmountPwordExternalizer.m; sourceTree = ""; }; + E87C54BF2823CC940051AA11 /* FBCManeResetSurmountPwordCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FBCManeResetSurmountPwordCeremony.h; sourceTree = ""; }; + E87C54C02823CD6F0051AA11 /* YUMIManeReassociationSurmountPwordRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeReassociationSurmountPwordRegardGovernancer.h; sourceTree = ""; }; + E87C54C12823CD6F0051AA11 /* YUMIManeReassociationSurmountPwordRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeReassociationSurmountPwordRegardGovernancer.m; sourceTree = ""; }; + E87DF4AE2A429B32009C1185 /* YUMIThresholdReindictRegard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIThresholdReindictRegard.m; sourceTree = ""; }; + E87DF4AF2A429B32009C1185 /* YUMIThresholdReindictRegard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIThresholdReindictRegard.h; sourceTree = ""; }; + E87DF4B12A429C6E009C1185 /* ThresholdChargeChamberWindowMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ThresholdChargeChamberWindowMatrix.h; sourceTree = ""; }; + E87DF4B22A429C6E009C1185 /* ThresholdChargeChamberWindowMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ThresholdChargeChamberWindowMatrix.m; sourceTree = ""; }; + E87DF4B52A42C2FD009C1185 /* YUMIThresholdReindictAssembletionRegard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIThresholdReindictAssembletionRegard.m; sourceTree = ""; }; + E87DF4B62A42C2FD009C1185 /* YUMIThresholdReindictAssembletionRegard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIThresholdReindictAssembletionRegard.h; sourceTree = ""; }; + E87DF4BD2A42C8C1009C1185 /* ResidenceCoupleMatrix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ResidenceCoupleMatrix.h; sourceTree = ""; }; + E87DF4BE2A42C8C1009C1185 /* ResidenceCoupleMatrix.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ResidenceCoupleMatrix.m; sourceTree = ""; }; + E87DF4C02A42C900009C1185 /* YUMINoteRegard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMINoteRegard.h; sourceTree = ""; }; + E87DF4C12A42C900009C1185 /* YUMINoteRegard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMINoteRegard.m; sourceTree = ""; }; + E87DF4CA2A42C960009C1185 /* ResidenceOriflammeAbstractMatrix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ResidenceOriflammeAbstractMatrix.h; sourceTree = ""; }; + E87DF4CB2A42C960009C1185 /* ResidenceOriflammeAbstractMatrix.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ResidenceOriflammeAbstractMatrix.m; sourceTree = ""; }; + E87DF4D22A42C9B1009C1185 /* ResidenceEncourageChamberMatrix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ResidenceEncourageChamberMatrix.h; sourceTree = ""; }; + E87DF4D32A42C9B1009C1185 /* ResidenceEncourageChamberMatrix.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ResidenceEncourageChamberMatrix.m; sourceTree = ""; }; + E87DF4D52A42C9C3009C1185 /* ResidenceDisportChamberMatrix.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ResidenceDisportChamberMatrix.m; sourceTree = ""; }; + E87DF4D62A42C9C3009C1185 /* ResidenceDisportChamberMatrix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ResidenceDisportChamberMatrix.h; sourceTree = ""; }; + E87DF4D82A42C9D8009C1185 /* ResidenceAssembleChamberMatrix.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ResidenceAssembleChamberMatrix.m; sourceTree = ""; }; + E87DF4D92A42C9D9009C1185 /* ResidenceAssembleChamberMatrix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ResidenceAssembleChamberMatrix.h; sourceTree = ""; }; + E87DF4DB2A42CA12009C1185 /* ResidenceHuntforConsequentMatrix.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ResidenceHuntforConsequentMatrix.m; sourceTree = ""; }; + E87DF4DC2A42CA12009C1185 /* ResidenceHuntforConsequentMatrix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ResidenceHuntforConsequentMatrix.h; sourceTree = ""; }; + E87DF4DE2A42CA92009C1185 /* YUMIResidenceSloganRegardGovernancer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIResidenceSloganRegardGovernancer.m; sourceTree = ""; }; + E87DF4DF2A42CA92009C1185 /* YUMIResidenceSloganRegardGovernancer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIResidenceSloganRegardGovernancer.h; sourceTree = ""; }; + E87DF4E22A42CAD2009C1185 /* YUMIResidenceHuntforNevRegard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIResidenceHuntforNevRegard.m; sourceTree = ""; }; + E87DF4E32A42CAD2009C1185 /* YUMIResidenceHuntforNevRegard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIResidenceHuntforNevRegard.h; sourceTree = ""; }; + E87DF4E52A42CAFF009C1185 /* YUMIResidenceExternalizer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIResidenceExternalizer.m; sourceTree = ""; }; + E87DF4E62A42CB00009C1185 /* YUMIResidenceExternalizer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIResidenceExternalizer.h; sourceTree = ""; }; + E87DF4E82A42CB24009C1185 /* FBCResidenceCeremony.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FBCResidenceCeremony.h; sourceTree = ""; }; + E87DF4EA2A42CB60009C1185 /* YUMIHuntforStatementTabulationRegardElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIHuntforStatementTabulationRegardElement.m; sourceTree = ""; }; + E87DF4EB2A42CB60009C1185 /* YUMIHuntforStatementTabulationRegardElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIHuntforStatementTabulationRegardElement.h; sourceTree = ""; }; + E87DF4ED2A42CB90009C1185 /* YUMIResidenceAssembleChamberTabulationRegardElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIResidenceAssembleChamberTabulationRegardElement.h; sourceTree = ""; }; + E87DF4EE2A42CB90009C1185 /* YUMIResidenceAssembleChamberTabulationRegardElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIResidenceAssembleChamberTabulationRegardElement.m; sourceTree = ""; }; + E87DF4F02A42CBEC009C1185 /* YUMIResidenceConsumerRegard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIResidenceConsumerRegard.m; sourceTree = ""; }; + E87DF4F12A42CBEC009C1185 /* YUMIResidenceConsumerRegard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIResidenceConsumerRegard.h; sourceTree = ""; }; + E87DF4F32A42CC49009C1185 /* ResidenceParrotAbstractMatrix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ResidenceParrotAbstractMatrix.h; sourceTree = ""; }; + E87DF4F42A42CC49009C1185 /* ResidenceParrotAbstractMatrix.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ResidenceParrotAbstractMatrix.m; sourceTree = ""; }; + E87DF4F62A42CCAB009C1185 /* YUMIResidenceHuntforRelateRegard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIResidenceHuntforRelateRegard.m; sourceTree = ""; }; + E87DF4F72A42CCAB009C1185 /* YUMIResidenceHuntforRelateRegard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIResidenceHuntforRelateRegard.h; sourceTree = ""; }; + E87DF4F92A42CCDD009C1185 /* YUMIResidenceDeficitommendAssembletionRegardElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIResidenceDeficitommendAssembletionRegardElement.h; sourceTree = ""; }; + E87DF4FA2A42CCDE009C1185 /* YUMIResidenceDeficitommendAssembletionRegardElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIResidenceDeficitommendAssembletionRegardElement.m; sourceTree = ""; }; + E87DF4FC2A42CD7D009C1185 /* YUMIChamberHuntforEncourageIntelligenceRegard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberHuntforEncourageIntelligenceRegard.m; sourceTree = ""; }; + E87DF4FD2A42CD7E009C1185 /* YUMIChamberHuntforEncourageIntelligenceRegard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIChamberHuntforEncourageIntelligenceRegard.h; sourceTree = ""; }; + E87DF4FF2A42CDB4009C1185 /* FBCResidenceEncourageCeremony.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FBCResidenceEncourageCeremony.h; sourceTree = ""; }; + E87DF5002A42CDF1009C1185 /* YUMIResidenceConsiderationAssembletionRegardElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIResidenceConsiderationAssembletionRegardElement.h; sourceTree = ""; }; + E87DF5012A42CDF1009C1185 /* YUMIResidenceConsiderationAssembletionRegardElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIResidenceConsiderationAssembletionRegardElement.m; sourceTree = ""; }; + E87DF5032A42CE21009C1185 /* YUMIResidenceHuntforReflectionElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIResidenceHuntforReflectionElement.h; sourceTree = ""; }; + E87DF5042A42CE21009C1185 /* YUMIResidenceHuntforReflectionElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIResidenceHuntforReflectionElement.m; sourceTree = ""; }; + E87DF5062A42CE79009C1185 /* YUMIInChamberReflectionExternalizer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIInChamberReflectionExternalizer.h; sourceTree = ""; }; + E87DF5072A42CE79009C1185 /* YUMIInChamberReflectionExternalizer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIInChamberReflectionExternalizer.m; sourceTree = ""; }; + E87DF5092A42CEC9009C1185 /* ResidenceEveryOneHuntforMatrix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ResidenceEveryOneHuntforMatrix.h; sourceTree = ""; }; + E87DF50A2A42CEC9009C1185 /* ResidenceEveryOneHuntforMatrix.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ResidenceEveryOneHuntforMatrix.m; sourceTree = ""; }; + E87DF50C2A42CF15009C1185 /* ResidenceEnergeticChamberMatrix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ResidenceEnergeticChamberMatrix.h; sourceTree = ""; }; + E87DF50D2A42CF15009C1185 /* ResidenceEnergeticChamberMatrix.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ResidenceEnergeticChamberMatrix.m; sourceTree = ""; }; + E87E545229AA05EA00EBE52B /* YUMITerminalImpressionNevRegard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMITerminalImpressionNevRegard.h; sourceTree = ""; }; + E87E545329AA05EA00EBE52B /* YUMITerminalImpressionNevRegard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMITerminalImpressionNevRegard.m; sourceTree = ""; }; + E87E62552A3F560A002F68C9 /* YUMIResidenceParatiesRegardGovernancer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIResidenceParatiesRegardGovernancer.h; sourceTree = ""; }; + E87E62562A3F560A002F68C9 /* YUMIResidenceParatiesRegardGovernancer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIResidenceParatiesRegardGovernancer.m; sourceTree = ""; }; + E87E62572A3F560A002F68C9 /* YUMIResidenceEncourageRegardGovernancer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIResidenceEncourageRegardGovernancer.h; sourceTree = ""; }; + E87E62582A3F560A002F68C9 /* YUMIResidenceEncourageRegardGovernancer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIResidenceEncourageRegardGovernancer.m; sourceTree = ""; }; + E87E625B2A3F5622002F68C9 /* YUMIStrangeResidenceRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIStrangeResidenceRegardGovernancer.h; sourceTree = ""; }; + E87E625C2A3F5622002F68C9 /* YUMIStrangeResidenceRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIStrangeResidenceRegardGovernancer.m; sourceTree = ""; }; + E87E62602A3F5689002F68C9 /* YUMIStrangeResidenceNevRegard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIStrangeResidenceNevRegard.m; sourceTree = ""; }; + E87E62612A3F5689002F68C9 /* YUMIStrangeResidenceNevRegard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIStrangeResidenceNevRegard.h; sourceTree = ""; }; + E87E62662A3F571C002F68C9 /* YUMIResidenceAccommodatedExternalizer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIResidenceAccommodatedExternalizer.m; sourceTree = ""; }; + E87E62672A3F571D002F68C9 /* YUMIResidenceAccommodatedExternalizer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIResidenceAccommodatedExternalizer.h; sourceTree = ""; }; + E87E62692A3F5756002F68C9 /* FBCResidenceContainerCeremony.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FBCResidenceContainerCeremony.h; sourceTree = ""; }; + E87E626A2A3F5906002F68C9 /* YUMIResidenceOriflammeTabulationRegardElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIResidenceOriflammeTabulationRegardElement.m; sourceTree = ""; }; + E87E626B2A3F5906002F68C9 /* YUMIStrangeResidenceDisportDispossessTabulationRegardElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIStrangeResidenceDisportDispossessTabulationRegardElement.h; sourceTree = ""; }; + E87E626C2A3F5906002F68C9 /* YUMIStrangeResidenceDisportTabulationRegardElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIStrangeResidenceDisportTabulationRegardElement.h; sourceTree = ""; }; + E87E626D2A3F5906002F68C9 /* YUMIStrangeResidenceDisportDispossessTabulationRegardElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIStrangeResidenceDisportDispossessTabulationRegardElement.m; sourceTree = ""; }; + E87E626E2A3F5906002F68C9 /* YUMIStrangeResidenceParatiesTabulationRegardElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIStrangeResidenceParatiesTabulationRegardElement.h; sourceTree = ""; }; + E87E626F2A3F5906002F68C9 /* YUMIStrangeResidenceDisportTabulationRegardElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIStrangeResidenceDisportTabulationRegardElement.m; sourceTree = ""; }; + E87E62702A3F5907002F68C9 /* YUMIStrangeResidenceEncourageTabulationRegardElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIStrangeResidenceEncourageTabulationRegardElement.m; sourceTree = ""; }; + E87E62712A3F5907002F68C9 /* YUMIStrangeResidenceParatiesTabulationRegardElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIStrangeResidenceParatiesTabulationRegardElement.m; sourceTree = ""; }; + E87E62722A3F5907002F68C9 /* YUMIResidenceOriflammeTabulationRegardElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIResidenceOriflammeTabulationRegardElement.h; sourceTree = ""; }; + E87E62732A3F5907002F68C9 /* YUMIStrangeResidenceEncourageTabulationRegardElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIStrangeResidenceEncourageTabulationRegardElement.h; sourceTree = ""; }; + E87E62792A3F5A0D002F68C9 /* YUMIStrangeResidenceEncourageExternalizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIStrangeResidenceEncourageExternalizer.h; sourceTree = ""; }; + E87E627A2A3F5A0D002F68C9 /* YUMIStrangeResidenceEncourageExternalizer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIStrangeResidenceEncourageExternalizer.m; sourceTree = ""; }; + E87E627C2A3F5A63002F68C9 /* FBCStrangeResidenceEncourageCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FBCStrangeResidenceEncourageCeremony.h; sourceTree = ""; }; + E87E627D2A3F5D28002F68C9 /* YUMIStrangeResidenceDisportProvisionAssembletionRegardElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIStrangeResidenceDisportProvisionAssembletionRegardElement.h; sourceTree = ""; }; + E87E627E2A3F5D28002F68C9 /* YUMIStrangeResidenceDisportProvisionAssembletionRegardElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIStrangeResidenceDisportProvisionAssembletionRegardElement.m; sourceTree = ""; }; + E87E63F629AA1A5600EBE52B /* xplan-ios.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = "xplan-ios.xcdatamodel"; sourceTree = ""; }; + E87E914C2796678D00A7B3F2 /* YUMIManePretendDispossessTabulationRegardElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = YUMIManePretendDispossessTabulationRegardElement.h; sourceTree = ""; }; + E87E914D2796678D00A7B3F2 /* YUMIManePretendDispossessTabulationRegardElement.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = YUMIManePretendDispossessTabulationRegardElement.m; sourceTree = ""; }; + E87E91502796A15500A7B3F2 /* MiecreoscoopeExtMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MiecreoscoopeExtMatrix.h; sourceTree = ""; }; + E87E91512796A15500A7B3F2 /* MiecreoscoopeExtMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MiecreoscoopeExtMatrix.m; sourceTree = ""; }; + E87E91532796B6DE00A7B3F2 /* YUMIChamberCallforConsumerRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberCallforConsumerRegardGovernancer.h; sourceTree = ""; }; + E87E91542796B6DE00A7B3F2 /* YUMIChamberCallforConsumerRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberCallforConsumerRegardGovernancer.m; sourceTree = ""; }; + E880B39C278BD49E00A83B0D /* YUMIThroughoutChamberCombatRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIThroughoutChamberCombatRegardGovernancer.h; sourceTree = ""; }; + E880B39D278BD49E00A83B0D /* YUMIThroughoutChamberCombatRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIThroughoutChamberCombatRegardGovernancer.m; sourceTree = ""; }; + E880B39F278BD60C00A83B0D /* YUMIThroughoutChamberCombatChosenChamberRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIThroughoutChamberCombatChosenChamberRegard.h; sourceTree = ""; }; + E880B3A0278BD60C00A83B0D /* YUMIThroughoutChamberCombatChosenChamberRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIThroughoutChamberCombatChosenChamberRegard.m; sourceTree = ""; }; + E880B3A4278BD69900A83B0D /* YUMIThroughoutChamberCombatTabulationRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIThroughoutChamberCombatTabulationRegardElement.h; sourceTree = ""; }; + E880B3A5278BD69900A83B0D /* YUMIThroughoutChamberCombatTabulationRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIThroughoutChamberCombatTabulationRegardElement.m; sourceTree = ""; }; + E880B3A7278BD82300A83B0D /* ThroughoutChamberCombatAbstractMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ThroughoutChamberCombatAbstractMatrix.h; sourceTree = ""; }; + E880B3A8278BD82300A83B0D /* ThroughoutChamberCombatAbstractMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ThroughoutChamberCombatAbstractMatrix.m; sourceTree = ""; }; + E880B3AA278BD98600A83B0D /* YUMIThroughoutChamberCombatDispossessTabulationRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIThroughoutChamberCombatDispossessTabulationRegardElement.h; sourceTree = ""; }; + E880B3AB278BD98600A83B0D /* YUMIThroughoutChamberCombatDispossessTabulationRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIThroughoutChamberCombatDispossessTabulationRegardElement.m; sourceTree = ""; }; + E880B3AD278BE1D800A83B0D /* Api+AcrossRoomPK.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Api+AcrossRoomPK.h"; sourceTree = ""; }; + E880B3AE278BE1D800A83B0D /* Api+AcrossRoomPK.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "Api+AcrossRoomPK.m"; sourceTree = ""; }; + E880B3B0278C1D1800A83B0D /* YUMIThroughoutChamberCombatPreadominantRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIThroughoutChamberCombatPreadominantRegard.h; sourceTree = ""; }; + E880B3B1278C1D1800A83B0D /* YUMIThroughoutChamberCombatPreadominantRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIThroughoutChamberCombatPreadominantRegard.m; sourceTree = ""; }; + E880B3B3278C1FE400A83B0D /* YUMIThroughoutChamberCombatExternalizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIThroughoutChamberCombatExternalizer.h; sourceTree = ""; }; + E880B3B4278C1FE400A83B0D /* YUMIThroughoutChamberCombatExternalizer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIThroughoutChamberCombatExternalizer.m; sourceTree = ""; }; + E880B3B6278C1FFB00A83B0D /* FBCAcrossChamberCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FBCAcrossChamberCeremony.h; sourceTree = ""; }; + E884C36A2743951B00E1EBED /* PresentAchieveAbstractMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PresentAchieveAbstractMatrix.h; sourceTree = ""; }; + E884C36B2743951B00E1EBED /* PresentAchieveAbstractMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PresentAchieveAbstractMatrix.m; sourceTree = ""; }; + E884C36D2743AAC800E1EBED /* AttachmentMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AttachmentMatrix.h; sourceTree = ""; }; + E884C36E2743AAC800E1EBED /* AttachmentMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AttachmentMatrix.m; sourceTree = ""; }; + E884C3702743AEDE00E1EBED /* CustomAttachmentDecoder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CustomAttachmentDecoder.h; sourceTree = ""; }; + E884C3712743AEDE00E1EBED /* CustomAttachmentDecoder.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CustomAttachmentDecoder.m; sourceTree = ""; }; + E885D531297798E1004DC088 /* InterlocutionInstanllingTabulationRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = InterlocutionInstanllingTabulationRegardElement.h; sourceTree = ""; }; + E885D532297798E1004DC088 /* InterlocutionInstanllingTabulationRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = InterlocutionInstanllingTabulationRegardElement.m; sourceTree = ""; }; + E885D5342977CE28004DC088 /* InterlocutionInstanllingMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = InterlocutionInstanllingMatrix.h; sourceTree = ""; }; + E885D5352977CE28004DC088 /* InterlocutionInstanllingMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = InterlocutionInstanllingMatrix.m; sourceTree = ""; }; + E885D5372977D10E004DC088 /* InterlocutionInstanllingConsumerRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = InterlocutionInstanllingConsumerRegard.h; sourceTree = ""; }; + E885D5382977D10E004DC088 /* InterlocutionInstanllingConsumerRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = InterlocutionInstanllingConsumerRegard.m; sourceTree = ""; }; + E885D53A2977FBFD004DC088 /* CommunicationIntratemporalRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CommunicationIntratemporalRegard.h; sourceTree = ""; }; + E885D53B2977FBFD004DC088 /* CommunicationIntratemporalRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CommunicationIntratemporalRegard.m; sourceTree = ""; }; + E88749B4282B8FC600C3C7DB /* SeparationsAbstractMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SeparationsAbstractMatrix.h; sourceTree = ""; }; + E88749B5282B8FC600C3C7DB /* SeparationsAbstractMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SeparationsAbstractMatrix.m; sourceTree = ""; }; + E88863C4278EAFC3004BCFAB /* YUMIThroughoutChamberCombatConsequentRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIThroughoutChamberCombatConsequentRegard.h; sourceTree = ""; }; + E88863C5278EAFC3004BCFAB /* YUMIThroughoutChamberCombatConsequentRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIThroughoutChamberCombatConsequentRegard.m; sourceTree = ""; }; + E88863C7278EBA43004BCFAB /* YUMIThroughoutChamberCombatForceEndConsequentRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIThroughoutChamberCombatForceEndConsequentRegard.h; sourceTree = ""; }; + E88863C8278EBA43004BCFAB /* YUMIThroughoutChamberCombatForceEndConsequentRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIThroughoutChamberCombatForceEndConsequentRegard.m; sourceTree = ""; }; + E88863CA278EC336004BCFAB /* ThroughoutChamberCombatCaptureMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ThroughoutChamberCombatCaptureMatrix.h; sourceTree = ""; }; + E88863CB278EC336004BCFAB /* ThroughoutChamberCombatCaptureMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ThroughoutChamberCombatCaptureMatrix.m; sourceTree = ""; }; + E88863CD278EC393004BCFAB /* YUMIThroughoutChamberCombatCaptureRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIThroughoutChamberCombatCaptureRegard.h; sourceTree = ""; }; + E88863CE278EC393004BCFAB /* YUMIThroughoutChamberCombatCaptureRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIThroughoutChamberCombatCaptureRegard.m; sourceTree = ""; }; + E88863D1278ED4C0004BCFAB /* Intratemporalstamp.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Intratemporalstamp.h; sourceTree = ""; }; + E88863D2278ED4C0004BCFAB /* Intratemporalstamp.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Intratemporalstamp.m; sourceTree = ""; }; + E8899C7D27853B6A007944BE /* EngagementMiecreoscoopeRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EngagementMiecreoscoopeRegard.h; sourceTree = ""; }; + E8899C7E27853B6A007944BE /* EngagementMiecreoscoopeRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = EngagementMiecreoscoopeRegard.m; sourceTree = ""; }; + E8899C802785A694007944BE /* EngagementAbstractMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EngagementAbstractMatrix.h; sourceTree = ""; }; + E8899C812785A694007944BE /* EngagementAbstractMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = EngagementAbstractMatrix.m; sourceTree = ""; }; + E8899C832785CC69007944BE /* YUMIChamberEngagementBrightnessRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberEngagementBrightnessRegard.h; sourceTree = ""; }; + E8899C842785CC69007944BE /* YUMIChamberEngagementBrightnessRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberEngagementBrightnessRegard.m; sourceTree = ""; }; + E88B5CBF26FB407B00DA9178 /* YUMIManeConsumerAbstractRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeConsumerAbstractRegardGovernancer.h; sourceTree = ""; }; + E88B5CC026FB407B00DA9178 /* YUMIManeConsumerAbstractRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeConsumerAbstractRegardGovernancer.m; sourceTree = ""; }; + E88B5CC326FB42B000DA9178 /* YUMIManeConsumerAbstractIntelligencerRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeConsumerAbstractIntelligencerRegard.h; sourceTree = ""; }; + E88B5CC426FB42B000DA9178 /* YUMIManeConsumerAbstractIntelligencerRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeConsumerAbstractIntelligencerRegard.m; sourceTree = ""; }; + E88C728D2828EA4E0047FB2B /* Manual+CoreDataProperties.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "Manual+CoreDataProperties.h"; sourceTree = ""; }; + E88C728E2828EA4E0047FB2B /* Manual+CoreDataClass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "Manual+CoreDataClass.h"; sourceTree = ""; }; + E88C728F2828EA4E0047FB2B /* Manual+CoreDataProperties.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "Manual+CoreDataProperties.m"; sourceTree = ""; }; + E88C72902828EA4E0047FB2B /* Manual+CoreDataClass.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "Manual+CoreDataClass.m"; sourceTree = ""; }; + E88C72932828F1AD0047FB2B /* YUMIChamberManualBibliothecaRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberManualBibliothecaRegardGovernancer.h; sourceTree = ""; }; + E88C72942828F1AD0047FB2B /* YUMIChamberManualBibliothecaRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberManualBibliothecaRegardGovernancer.m; sourceTree = ""; }; + E88C72972828F3620047FB2B /* YUMIChamberManualBibliothecaTabulationRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberManualBibliothecaTabulationRegardElement.h; sourceTree = ""; }; + E88C72982828F3620047FB2B /* YUMIChamberManualBibliothecaTabulationRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberManualBibliothecaTabulationRegardElement.m; sourceTree = ""; }; + E88C729A2828F37D0047FB2B /* YUMIChamberManualBibliothecaDispossessTabulationRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberManualBibliothecaDispossessTabulationRegardElement.h; sourceTree = ""; }; + E88C729B2828F37D0047FB2B /* YUMIChamberManualBibliothecaDispossessTabulationRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberManualBibliothecaDispossessTabulationRegardElement.m; sourceTree = ""; }; + E88C729E2828FCD40047FB2B /* YUMIManualBibliothecaDisportRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManualBibliothecaDisportRegard.h; sourceTree = ""; }; + E88C729F2828FCD40047FB2B /* YUMIManualBibliothecaDisportRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManualBibliothecaDisportRegard.m; sourceTree = ""; }; + E88C72A1282917590047FB2B /* YUMIChamberManualReputationInstanllingRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberManualReputationInstanllingRegard.h; sourceTree = ""; }; + E88C72A2282917590047FB2B /* YUMIChamberManualReputationInstanllingRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberManualReputationInstanllingRegard.m; sourceTree = ""; }; + E88C72A4282921D60047FB2B /* YUMIChamberBackManualDisporterRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberBackManualDisporterRegard.h; sourceTree = ""; }; + E88C72A5282921D60047FB2B /* YUMIChamberBackManualDisporterRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberBackManualDisporterRegard.m; sourceTree = ""; }; + E88E4A7E297673DC00019A50 /* InterlocutionNevEnergeticRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = InterlocutionNevEnergeticRegard.h; sourceTree = ""; }; + E88E4A7F297673DC00019A50 /* InterlocutionNevEnergeticRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = InterlocutionNevEnergeticRegard.m; sourceTree = ""; }; + E8901CF428B38D89001E9A92 /* YUMIGraffitiPresentRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIGraffitiPresentRegard.h; sourceTree = ""; }; + E8901CF528B38D89001E9A92 /* YUMIGraffitiPresentRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIGraffitiPresentRegard.m; sourceTree = ""; }; + E890BC02273CF0500007C46B /* YUMIPresentComputationMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIPresentComputationMatrix.h; sourceTree = ""; }; + E890BC03273CF0500007C46B /* YUMIPresentComputationMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIPresentComputationMatrix.m; sourceTree = ""; }; + E890BC05273CF1800007C46B /* YUMIPresentComputationAssembletionRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIPresentComputationAssembletionRegardElement.h; sourceTree = ""; }; + E890BC06273CF1800007C46B /* YUMIPresentComputationAssembletionRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIPresentComputationAssembletionRegardElement.m; sourceTree = ""; }; + E890BC0B273D09A50007C46B /* YUMIPresentComputationRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIPresentComputationRegard.h; sourceTree = ""; }; + E890BC0C273D09A50007C46B /* YUMIPresentComputationRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIPresentComputationRegard.m; sourceTree = ""; }; + E890BC0E273D23F00007C46B /* PresentAbstractMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PresentAbstractMatrix.h; sourceTree = ""; }; + E890BC0F273D23F00007C46B /* PresentAbstractMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PresentAbstractMatrix.m; sourceTree = ""; }; + E895017E282CAC49007E459A /* YUMISeparationsConsumerAbstractRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMISeparationsConsumerAbstractRegard.h; sourceTree = ""; }; + E895017F282CAC49007E459A /* YUMISeparationsConsumerAbstractRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMISeparationsConsumerAbstractRegard.m; sourceTree = ""; }; + E8950181282CAC6A007E459A /* YUMISeparationsAppearanceRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMISeparationsAppearanceRegard.h; sourceTree = ""; }; + E8950182282CAC6A007E459A /* YUMISeparationsAppearanceRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMISeparationsAppearanceRegard.m; sourceTree = ""; }; + E8950184282CAC80007E459A /* YUMISeparationsTooObstacleRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMISeparationsTooObstacleRegard.h; sourceTree = ""; }; + E8950185282CAC80007E459A /* YUMISeparationsTooObstacleRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMISeparationsTooObstacleRegard.m; sourceTree = ""; }; + E8950187282CFFB1007E459A /* YUMISeparationsProgrammingDisposition.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMISeparationsProgrammingDisposition.h; sourceTree = ""; }; + E8950188282CFFB1007E459A /* YUMISeparationsProgrammingDisposition.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMISeparationsProgrammingDisposition.m; sourceTree = ""; }; + E895018A282D0701007E459A /* YUMISepartionMotifRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMISepartionMotifRegard.h; sourceTree = ""; }; + E895018B282D0701007E459A /* YUMISepartionMotifRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMISepartionMotifRegard.m; sourceTree = ""; }; + E896A9932A49F8A20010FE65 /* login_vapbg.mp4 */ = {isa = PBXFileReference; lastKnownFileType = file; path = login_vapbg.mp4; sourceTree = ""; }; + E896EF922771AAC100AD2CC1 /* YUMIManeFanaticsExternalizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeFanaticsExternalizer.h; sourceTree = ""; }; + E896EF932771AAC100AD2CC1 /* YUMIManeFanaticsExternalizer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeFanaticsExternalizer.m; sourceTree = ""; }; + E896EF952771AAE400AD2CC1 /* YUMIManeConsiderationExternalizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeConsiderationExternalizer.h; sourceTree = ""; }; + E896EF962771AAE400AD2CC1 /* YUMIManeConsiderationExternalizer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeConsiderationExternalizer.m; sourceTree = ""; }; + E896EF982771AB0000AD2CC1 /* FBCManeFanaticsCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FBCManeFanaticsCeremony.h; sourceTree = ""; }; + E896EF992771AB1800AD2CC1 /* FBCManeConsiderationCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FBCManeConsiderationCeremony.h; sourceTree = ""; }; + E896EF9A2771AE6B00AD2CC1 /* YUMIManeFanaticsRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeFanaticsRegardGovernancer.h; sourceTree = ""; }; + E896EF9B2771AE6B00AD2CC1 /* YUMIManeFanaticsRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeFanaticsRegardGovernancer.m; sourceTree = ""; }; + E896EF9D2771AE7B00AD2CC1 /* YUMIManeConsiderationRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeConsiderationRegardGovernancer.h; sourceTree = ""; }; + E896EF9E2771AE7B00AD2CC1 /* YUMIManeConsiderationRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeConsiderationRegardGovernancer.m; sourceTree = ""; }; + E896EFA02771AE9400AD2CC1 /* YUMIManeAssistantRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeAssistantRegardGovernancer.h; sourceTree = ""; }; + E896EFA12771AE9400AD2CC1 /* YUMIManeAssistantRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeAssistantRegardGovernancer.m; sourceTree = ""; }; + E896EFA42771AEDD00AD2CC1 /* YUMIManeFanaticsTabulationRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeFanaticsTabulationRegardElement.h; sourceTree = ""; }; + E896EFA52771AEDD00AD2CC1 /* YUMIManeFanaticsTabulationRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeFanaticsTabulationRegardElement.m; sourceTree = ""; }; + E896EFA72771AEEC00AD2CC1 /* YUMIManeConsiderationTabulationRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeConsiderationTabulationRegardElement.h; sourceTree = ""; }; + E896EFA82771AEEC00AD2CC1 /* YUMIManeConsiderationTabulationRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeConsiderationTabulationRegardElement.m; sourceTree = ""; }; + E896EFAA2771AEFE00AD2CC1 /* YUMIManeAssistantTabulationRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeAssistantTabulationRegardElement.h; sourceTree = ""; }; + E896EFAB2771AEFE00AD2CC1 /* YUMIManeAssistantTabulationRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeAssistantTabulationRegardElement.m; sourceTree = ""; }; + E896EFAD2771AF0F00AD2CC1 /* YUMIManeAssistantDispossessTabulationRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeAssistantDispossessTabulationRegardElement.h; sourceTree = ""; }; + E896EFAE2771AF0F00AD2CC1 /* YUMIManeAssistantDispossessTabulationRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeAssistantDispossessTabulationRegardElement.m; sourceTree = ""; }; + E896EFB02771C93B00AD2CC1 /* YUMIManeAssistantNumberRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeAssistantNumberRegard.h; sourceTree = ""; }; + E896EFB12771C93B00AD2CC1 /* YUMIManeAssistantNumberRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeAssistantNumberRegard.m; sourceTree = ""; }; + E897ABFA28AF2E71003B3587 /* YUMIMarchingPresentRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIMarchingPresentRegard.h; sourceTree = ""; }; + E897ABFB28AF2E71003B3587 /* YUMIMarchingPresentRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIMarchingPresentRegard.m; sourceTree = ""; }; + E897ABFD28AF39B4003B3587 /* YUMIMarchingBrightnessRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIMarchingBrightnessRegard.h; sourceTree = ""; }; + E897ABFE28AF39B4003B3587 /* YUMIMarchingBrightnessRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIMarchingBrightnessRegard.m; sourceTree = ""; }; + E8998D782859784200C68558 /* YUMISVGADisporter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMISVGADisporter.h; sourceTree = ""; }; + E8998D792859784200C68558 /* YUMISVGADisporter.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMISVGADisporter.m; sourceTree = ""; }; + E8998D7E28597B0300C68558 /* YUMIChamberFortunateBigCaptureRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberFortunateBigCaptureRegard.h; sourceTree = ""; }; + E8998D7F28597B0300C68558 /* YUMIChamberFortunateBigCaptureRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberFortunateBigCaptureRegard.m; sourceTree = ""; }; + E8998D832859B4FA00C68558 /* YUMIManeConsumerAbstractPresentRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeConsumerAbstractPresentRegard.h; sourceTree = ""; }; + E8998D842859B4FA00C68558 /* YUMIManeConsumerAbstractPresentRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeConsumerAbstractPresentRegard.m; sourceTree = ""; }; + E8998D892859CB6A00C68558 /* YUMIManeConsumerAbstractPresentRamparatMetroRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeConsumerAbstractPresentRamparatMetroRegardGovernancer.h; sourceTree = ""; }; + E8998D8A2859CB6A00C68558 /* YUMIManeConsumerAbstractPresentRamparatMetroRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeConsumerAbstractPresentRamparatMetroRegardGovernancer.m; sourceTree = ""; }; + E8998D942859DD6F00C68558 /* UIView+Corner.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "UIView+Corner.h"; sourceTree = ""; }; + E8998D952859DD6F00C68558 /* UIView+Corner.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "UIView+Corner.m"; sourceTree = ""; }; + E899C68727508F4E00E189E5 /* YUMIConsumerSolitaireAbstractMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIConsumerSolitaireAbstractMatrix.h; sourceTree = ""; }; + E899C68827508F4E00E189E5 /* YUMIConsumerSolitaireAbstractMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIConsumerSolitaireAbstractMatrix.m; sourceTree = ""; }; + E899C68A275093B700E189E5 /* YUMIConsumerSolitaireMiecreoscoopeProvisionMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIConsumerSolitaireMiecreoscoopeProvisionMatrix.h; sourceTree = ""; }; + E899C68B275093B800E189E5 /* YUMIConsumerSolitaireMiecreoscoopeProvisionMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIConsumerSolitaireMiecreoscoopeProvisionMatrix.m; sourceTree = ""; }; + E89BD7D2277D471100E31B19 /* YUMIChamberOnlineTabulationRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberOnlineTabulationRegardElement.h; sourceTree = ""; }; + E89BD7D3277D471100E31B19 /* YUMIChamberOnlineTabulationRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberOnlineTabulationRegardElement.m; sourceTree = ""; }; + E89D60B8271D643A001F8895 /* Api+Room.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Api+Room.h"; sourceTree = ""; }; + E89D60B9271D643A001F8895 /* Api+Room.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "Api+Room.m"; sourceTree = ""; }; + E89D60BB271D647A001F8895 /* YUMIChamberExternalizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberExternalizer.h; sourceTree = ""; }; + E89D60BC271D647A001F8895 /* YUMIChamberExternalizer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberExternalizer.m; sourceTree = ""; }; + E89D60BE271D648D001F8895 /* FBCChamberCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FBCChamberCeremony.h; sourceTree = ""; }; + E89D60BF271D64B9001F8895 /* ChamberAbstractMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ChamberAbstractMatrix.h; sourceTree = ""; }; + E89D60C0271D64B9001F8895 /* ChamberAbstractMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ChamberAbstractMatrix.m; sourceTree = ""; }; + E89DA66227005931008483C1 /* YUMIIAPFacilitater.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIIAPFacilitater.h; sourceTree = ""; }; + E89DA66327005932008483C1 /* YUMIIAPFacilitater.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIIAPFacilitater.m; sourceTree = ""; }; + E89DA66527006443008483C1 /* ReindictStorage.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ReindictStorage.h; sourceTree = ""; }; + E89DA66627006443008483C1 /* ReindictStorage.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ReindictStorage.m; sourceTree = ""; }; + E89DA67027008D59008483C1 /* RamparatetAbstractMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RamparatetAbstractMatrix.h; sourceTree = ""; }; + E89DA67127008D59008483C1 /* RamparatetAbstractMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RamparatetAbstractMatrix.m; sourceTree = ""; }; + E89DA67327009ACD008483C1 /* YUMIManeReindictNevRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeReindictNevRegard.h; sourceTree = ""; }; + E89DA67427009ACD008483C1 /* YUMIManeReindictNevRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeReindictNevRegard.m; sourceTree = ""; }; + E89DCF5228FFEC67001647EC /* YUMIDesirePresentHistoryTabulationRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIDesirePresentHistoryTabulationRegardElement.h; sourceTree = ""; }; + E89DCF5328FFEC67001647EC /* YUMIDesirePresentHistoryTabulationRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIDesirePresentHistoryTabulationRegardElement.m; sourceTree = ""; }; + E89DCF5528FFF076001647EC /* YUMIDesirePresentDispossessTabulationRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIDesirePresentDispossessTabulationRegardElement.h; sourceTree = ""; }; + E89DCF5628FFF076001647EC /* YUMIDesirePresentDispossessTabulationRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIDesirePresentDispossessTabulationRegardElement.m; sourceTree = ""; }; + E89DCF5828FFF1AD001647EC /* YUMIDesirePresentDivisionRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIDesirePresentDivisionRegard.h; sourceTree = ""; }; + E89DCF5928FFF1AD001647EC /* YUMIDesirePresentDivisionRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIDesirePresentDivisionRegard.m; sourceTree = ""; }; + E89DCF5B2900E5EE001647EC /* DesirePresentHistoryMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DesirePresentHistoryMatrix.h; sourceTree = ""; }; + E89DCF5C2900E5EE001647EC /* DesirePresentHistoryMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = DesirePresentHistoryMatrix.m; sourceTree = ""; }; + E89DCF5E2900F4FB001647EC /* YUMIDesirePresentImportRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIDesirePresentImportRegard.h; sourceTree = ""; }; + E89DCF5F2900F4FB001647EC /* YUMIDesirePresentImportRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIDesirePresentImportRegard.m; sourceTree = ""; }; + E8A03DE02762FA000098D9EA /* YUMIConfectioneryTimberFurthaerRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIConfectioneryTimberFurthaerRegard.h; sourceTree = ""; }; + E8A03DE12762FA000098D9EA /* YUMIConfectioneryTimberFurthaerRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIConfectioneryTimberFurthaerRegard.m; sourceTree = ""; }; + E8A03DE7276301CC0098D9EA /* YUMIConfectioneryRateAccommodatedRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIConfectioneryRateAccommodatedRegard.h; sourceTree = ""; }; + E8A03DE8276301CC0098D9EA /* YUMIConfectioneryRateAccommodatedRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIConfectioneryRateAccommodatedRegard.m; sourceTree = ""; }; + E8A03DEA276301EF0098D9EA /* YUMIConfectioneryTimberRateRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIConfectioneryTimberRateRegard.h; sourceTree = ""; }; + E8A03DEB276301EF0098D9EA /* YUMIConfectioneryTimberRateRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIConfectioneryTimberRateRegard.m; sourceTree = ""; }; + E8A03DEE276303D40098D9EA /* YUMIConfectioneryTimberRateTabulationRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIConfectioneryTimberRateTabulationRegardElement.h; sourceTree = ""; }; + E8A03DEF276303D40098D9EA /* YUMIConfectioneryTimberRateTabulationRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIConfectioneryTimberRateTabulationRegardElement.m; sourceTree = ""; }; + E8A03DF1276328FC0098D9EA /* ConfectioneryTimberReflectionMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ConfectioneryTimberReflectionMatrix.h; sourceTree = ""; }; + E8A03DF2276328FC0098D9EA /* ConfectioneryTimberReflectionMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ConfectioneryTimberReflectionMatrix.m; sourceTree = ""; }; + E8A03DF42763367F0098D9EA /* YUMIConfectioneryTimberDispossessableRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIConfectioneryTimberDispossessableRegardElement.h; sourceTree = ""; }; + E8A03DF52763367F0098D9EA /* YUMIConfectioneryTimberDispossessableRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIConfectioneryTimberDispossessableRegardElement.m; sourceTree = ""; }; + E8A03DF727634A590098D9EA /* ConfectioneryTimberConsequentMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ConfectioneryTimberConsequentMatrix.h; sourceTree = ""; }; + E8A03DF827634A590098D9EA /* ConfectioneryTimberConsequentMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ConfectioneryTimberConsequentMatrix.m; sourceTree = ""; }; + E8A03DFA276350A60098D9EA /* YUMIConfectioneryTimberPresentRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIConfectioneryTimberPresentRegard.h; sourceTree = ""; }; + E8A03DFB276350A60098D9EA /* YUMIConfectioneryTimberPresentRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIConfectioneryTimberPresentRegard.m; sourceTree = ""; }; + E8A03DFD27635F960098D9EA /* YUMIChamberConfectioneryPresentRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberConfectioneryPresentRegard.h; sourceTree = ""; }; + E8A03DFE27635F960098D9EA /* YUMIChamberConfectioneryPresentRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberConfectioneryPresentRegard.m; sourceTree = ""; }; + E8A1E44C2761F98600B294CA /* YUMIConfectioneryTimberRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIConfectioneryTimberRegardGovernancer.h; sourceTree = ""; }; + E8A1E44D2761F98600B294CA /* YUMIConfectioneryTimberRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIConfectioneryTimberRegardGovernancer.m; sourceTree = ""; }; + E8A1E44F2762082A00B294CA /* Api+CandyTree.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Api+CandyTree.h"; sourceTree = ""; }; + E8A1E4502762082A00B294CA /* Api+CandyTree.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "Api+CandyTree.m"; sourceTree = ""; }; + E8A1E452276208E500B294CA /* ConfectioneryTimberAbstractMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ConfectioneryTimberAbstractMatrix.h; sourceTree = ""; }; + E8A1E453276208E500B294CA /* ConfectioneryTimberAbstractMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ConfectioneryTimberAbstractMatrix.m; sourceTree = ""; }; + E8A1E4552762092700B294CA /* YUMIConfectioneryTimberExternalizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIConfectioneryTimberExternalizer.h; sourceTree = ""; }; + E8A1E4562762092700B294CA /* YUMIConfectioneryTimberExternalizer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIConfectioneryTimberExternalizer.m; sourceTree = ""; }; + E8A1E4582762095100B294CA /* FBCCandyTreeCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FBCCandyTreeCeremony.h; sourceTree = ""; }; + E8A1E45927620F4900B294CA /* YUMIChamberHalfTissueRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberHalfTissueRegard.h; sourceTree = ""; }; + E8A1E45A27620F4900B294CA /* YUMIChamberHalfTissueRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberHalfTissueRegard.m; sourceTree = ""; }; + E8A1F792290642500099C952 /* YUMIChamberFurthaerDisportRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberFurthaerDisportRegardGovernancer.h; sourceTree = ""; }; + E8A1F793290642500099C952 /* YUMIChamberFurthaerDisportRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberFurthaerDisportRegardGovernancer.m; sourceTree = ""; }; + E8A1F7952906426B0099C952 /* YUMIChamberFurthaerDisportExternalizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberFurthaerDisportExternalizer.h; sourceTree = ""; }; + E8A1F7962906426B0099C952 /* YUMIChamberFurthaerDisportExternalizer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberFurthaerDisportExternalizer.m; sourceTree = ""; }; + E8A1F7982906427D0099C952 /* FBCChamberFurthaerPlayCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FBCChamberFurthaerPlayCeremony.h; sourceTree = ""; }; + E8A1F79A290644DC0099C952 /* YUMIChamberFurthaerDisportAssembletionRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberFurthaerDisportAssembletionRegardElement.h; sourceTree = ""; }; + E8A1F79B290644DC0099C952 /* YUMIChamberFurthaerDisportAssembletionRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberFurthaerDisportAssembletionRegardElement.m; sourceTree = ""; }; + E8A30BE128534A28003B4873 /* YUMIInterlocutionDiscoveryStrangeRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIInterlocutionDiscoveryStrangeRegardGovernancer.h; sourceTree = ""; }; + E8A30BE228534A28003B4873 /* YUMIInterlocutionDiscoveryStrangeRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIInterlocutionDiscoveryStrangeRegardGovernancer.m; sourceTree = ""; }; + E8A30BE628534A63003B4873 /* YUMIInterlocutionDiscoveryStrangeTabulationRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIInterlocutionDiscoveryStrangeTabulationRegardElement.h; sourceTree = ""; }; + E8A30BE728534A63003B4873 /* YUMIInterlocutionDiscoveryStrangeTabulationRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIInterlocutionDiscoveryStrangeTabulationRegardElement.m; sourceTree = ""; }; + E8A30BE928534A96003B4873 /* YUMIInterlocutionDiscoveryStrangeFiltrateRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIInterlocutionDiscoveryStrangeFiltrateRegard.h; sourceTree = ""; }; + E8A30BEA28534A96003B4873 /* YUMIInterlocutionDiscoveryStrangeFiltrateRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIInterlocutionDiscoveryStrangeFiltrateRegard.m; sourceTree = ""; }; + E8A30BEC28534AB1003B4873 /* YUMIInterlocutionDiscoveryStrangeExternalizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIInterlocutionDiscoveryStrangeExternalizer.h; sourceTree = ""; }; + E8A30BED28534AB1003B4873 /* YUMIInterlocutionDiscoveryStrangeExternalizer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIInterlocutionDiscoveryStrangeExternalizer.m; sourceTree = ""; }; + E8A30BF028534B03003B4873 /* FBCInterlocutionDiscoveryStrangeCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FBCInterlocutionDiscoveryStrangeCeremony.h; sourceTree = ""; }; + E8A30BF128534B17003B4873 /* Api+FindNew.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Api+FindNew.h"; sourceTree = ""; }; + E8A30BF228534B17003B4873 /* Api+FindNew.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "Api+FindNew.m"; sourceTree = ""; }; + E8A30BF428534B35003B4873 /* DiscoveryStrangeConsumerAbstractMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DiscoveryStrangeConsumerAbstractMatrix.h; sourceTree = ""; }; + E8A30BF528534B35003B4873 /* DiscoveryStrangeConsumerAbstractMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = DiscoveryStrangeConsumerAbstractMatrix.m; sourceTree = ""; }; + E8A30BF728534E48003B4873 /* YUMIInterlocutionDiscoveryStrangeDispossessTabulationRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIInterlocutionDiscoveryStrangeDispossessTabulationRegardElement.h; sourceTree = ""; }; + E8A30BF828534E48003B4873 /* YUMIInterlocutionDiscoveryStrangeDispossessTabulationRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIInterlocutionDiscoveryStrangeDispossessTabulationRegardElement.m; sourceTree = ""; }; + E8A3538328FD67320014A784 /* PresentFortunatePingbackMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PresentFortunatePingbackMatrix.h; sourceTree = ""; }; + E8A3538428FD67320014A784 /* PresentFortunatePingbackMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PresentFortunatePingbackMatrix.m; sourceTree = ""; }; + E8A3538C28FE5CED0014A784 /* Api+WishGift.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Api+WishGift.h"; sourceTree = ""; }; + E8A3538D28FE5CED0014A784 /* Api+WishGift.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "Api+WishGift.m"; sourceTree = ""; }; + E8A3538F28FE5F0F0014A784 /* DesirePresentAbstractMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DesirePresentAbstractMatrix.h; sourceTree = ""; }; + E8A3539028FE5F0F0014A784 /* DesirePresentAbstractMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = DesirePresentAbstractMatrix.m; sourceTree = ""; }; + E8A3539228FE605F0014A784 /* DesireExternalizeConsumerMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DesireExternalizeConsumerMatrix.h; sourceTree = ""; }; + E8A3539328FE605F0014A784 /* DesireExternalizeConsumerMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = DesireExternalizeConsumerMatrix.m; sourceTree = ""; }; + E8A3539528FE7C250014A784 /* YUMIDesirePresentExternalizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIDesirePresentExternalizer.h; sourceTree = ""; }; + E8A3539628FE7C250014A784 /* YUMIDesirePresentExternalizer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIDesirePresentExternalizer.m; sourceTree = ""; }; + E8A3539828FE7C4F0014A784 /* FBCDesirePresentCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FBCDesirePresentCeremony.h; sourceTree = ""; }; + E8A3539928FE840A0014A784 /* YUMIDesirePresentRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIDesirePresentRegardGovernancer.h; sourceTree = ""; }; + E8A3539A28FE840A0014A784 /* YUMIDesirePresentRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIDesirePresentRegardGovernancer.m; sourceTree = ""; }; + E8A3539E28FE84670014A784 /* YUMIDesirePresentAbstractRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIDesirePresentAbstractRegard.h; sourceTree = ""; }; + E8A3539F28FE84670014A784 /* YUMIDesirePresentAbstractRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIDesirePresentAbstractRegard.m; sourceTree = ""; }; + E8A353A128FE90F60014A784 /* YUMIDesirePresentCreateRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIDesirePresentCreateRegardGovernancer.h; sourceTree = ""; }; + E8A353A228FE90F60014A784 /* YUMIDesirePresentCreateRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIDesirePresentCreateRegardGovernancer.m; sourceTree = ""; }; + E8A353FF28FEAC5E0014A784 /* YUMIDesirePresentTabulationRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIDesirePresentTabulationRegardElement.h; sourceTree = ""; }; + E8A3540028FEAC5E0014A784 /* YUMIDesirePresentTabulationRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIDesirePresentTabulationRegardElement.m; sourceTree = ""; }; + E8A3540228FEB7100014A784 /* YUMIDesirePresentHistoryRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIDesirePresentHistoryRegardGovernancer.h; sourceTree = ""; }; + E8A3540328FEB7100014A784 /* YUMIDesirePresentHistoryRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIDesirePresentHistoryRegardGovernancer.m; sourceTree = ""; }; + E8A3540528FEBD460014A784 /* YUMIDesirePresentCreateProvisionRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIDesirePresentCreateProvisionRegardGovernancer.h; sourceTree = ""; }; + E8A3540628FEBD460014A784 /* YUMIDesirePresentCreateProvisionRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIDesirePresentCreateProvisionRegardGovernancer.m; sourceTree = ""; }; + E8A3540828FEC0510014A784 /* YUMIDesirePresentStatementRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIDesirePresentStatementRegard.h; sourceTree = ""; }; + E8A3540928FEC0510014A784 /* YUMIDesirePresentStatementRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIDesirePresentStatementRegard.m; sourceTree = ""; }; + E8A72BBA2A3AFB2F00B2EC07 /* PrefixHeader.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PrefixHeader.pch; sourceTree = ""; }; + E8A73F8528586A6F00FD9CBC /* YUMIPresentWeekSatelliteAssembletionRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIPresentWeekSatelliteAssembletionRegardElement.h; sourceTree = ""; }; + E8A73F8628586A6F00FD9CBC /* YUMIPresentWeekSatelliteAssembletionRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIPresentWeekSatelliteAssembletionRegardElement.m; sourceTree = ""; }; + E8A88D2527E8193400CA8837 /* YUMIChamberCombatChosenConsumerRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberCombatChosenConsumerRegard.h; sourceTree = ""; }; + E8A88D2627E8193400CA8837 /* YUMIChamberCombatChosenConsumerRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberCombatChosenConsumerRegard.m; sourceTree = ""; }; + E8A88D2827E81C8600CA8837 /* YUMIChamberCombatConsumerAssembletionRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberCombatConsumerAssembletionRegardElement.h; sourceTree = ""; }; + E8A88D2927E81C8600CA8837 /* YUMIChamberCombatConsumerAssembletionRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberCombatConsumerAssembletionRegardElement.m; sourceTree = ""; }; + E8A88D2B27E81E8700CA8837 /* ChamberCombatChooseConsumerMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ChamberCombatChooseConsumerMatrix.h; sourceTree = ""; }; + E8A88D2C27E81E8700CA8837 /* ChamberCombatChooseConsumerMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ChamberCombatChooseConsumerMatrix.m; sourceTree = ""; }; + E8A88D2E27E85EEA00CA8837 /* ChamberCombatAbstractMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ChamberCombatAbstractMatrix.h; sourceTree = ""; }; + E8A88D2F27E85EEA00CA8837 /* ChamberCombatAbstractMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ChamberCombatAbstractMatrix.m; sourceTree = ""; }; + E8AA6EED27DF1E6B009B4C2B /* YUMIChamberMotifRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberMotifRegardGovernancer.h; sourceTree = ""; }; + E8AA6EEE27DF1E6B009B4C2B /* YUMIChamberMotifRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberMotifRegardGovernancer.m; sourceTree = ""; }; + E8AA6EF027DF1E97009B4C2B /* YUMIChamberMotifExternalizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberMotifExternalizer.h; sourceTree = ""; }; + E8AA6EF127DF1E97009B4C2B /* YUMIChamberMotifExternalizer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberMotifExternalizer.m; sourceTree = ""; }; + E8AA6EF327DF1EB6009B4C2B /* FBCChamberMotifCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FBCChamberMotifCeremony.h; sourceTree = ""; }; + E8AB630B28ADD8C60023B0D2 /* YUMISeparationMotifAccommodatedRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMISeparationMotifAccommodatedRegardGovernancer.h; sourceTree = ""; }; + E8AB630C28ADD8C60023B0D2 /* YUMISeparationMotifAccommodatedRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMISeparationMotifAccommodatedRegardGovernancer.m; sourceTree = ""; }; + E8AB630E28ADD92D0023B0D2 /* YUMISeparationsMotifRecommondRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMISeparationsMotifRecommondRegardGovernancer.h; sourceTree = ""; }; + E8AB630F28ADD92D0023B0D2 /* YUMISeparationsMotifRecommondRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMISeparationsMotifRecommondRegardGovernancer.m; sourceTree = ""; }; + E8AB631128ADDCF20023B0D2 /* YUMISeparationsMotifIntelligencerRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMISeparationsMotifIntelligencerRegard.h; sourceTree = ""; }; + E8AB631228ADDCF20023B0D2 /* YUMISeparationsMotifIntelligencerRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMISeparationsMotifIntelligencerRegard.m; sourceTree = ""; }; + E8AB631428ADE2D20023B0D2 /* YUMISeparationsMotifRecentlyRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMISeparationsMotifRecentlyRegardGovernancer.h; sourceTree = ""; }; + E8AB631528ADE2D20023B0D2 /* YUMISeparationsMotifRecentlyRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMISeparationsMotifRecentlyRegardGovernancer.m; sourceTree = ""; }; + E8AB631728ADE2F40023B0D2 /* YUMISeparationsMotifEncourageExternalizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMISeparationsMotifEncourageExternalizer.h; sourceTree = ""; }; + E8AB631828ADE2F40023B0D2 /* YUMISeparationsMotifEncourageExternalizer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMISeparationsMotifEncourageExternalizer.m; sourceTree = ""; }; + E8AB631A28ADE30E0023B0D2 /* YUMISeparationsMotifRecentlyExternalizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMISeparationsMotifRecentlyExternalizer.h; sourceTree = ""; }; + E8AB631B28ADE30E0023B0D2 /* YUMISeparationsMotifRecentlyExternalizer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMISeparationsMotifRecentlyExternalizer.m; sourceTree = ""; }; + E8AB632028ADE5720023B0D2 /* FBCSeparationsMotifEncourageCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FBCSeparationsMotifEncourageCeremony.h; sourceTree = ""; }; + E8AB632128ADE5880023B0D2 /* FBCSeparationsMotifLatestCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FBCSeparationsMotifLatestCeremony.h; sourceTree = ""; }; + E8AB632228AE10310023B0D2 /* YUMISepartionMotifStatementRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMISepartionMotifStatementRegardGovernancer.h; sourceTree = ""; }; + E8AB632328AE10310023B0D2 /* YUMISepartionMotifStatementRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMISepartionMotifStatementRegardGovernancer.m; sourceTree = ""; }; + E8AB632528AE13210023B0D2 /* YUMISeparationsMotifStatementExternalizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMISeparationsMotifStatementExternalizer.h; sourceTree = ""; }; + E8AB632628AE13210023B0D2 /* YUMISeparationsMotifStatementExternalizer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMISeparationsMotifStatementExternalizer.m; sourceTree = ""; }; + E8AB632928AE15070023B0D2 /* FBCSeparationsMotifStatementCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FBCSeparationsMotifStatementCeremony.h; sourceTree = ""; }; + E8AB632A28AE19600023B0D2 /* YUMISeparationsManeRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMISeparationsManeRegardGovernancer.h; sourceTree = ""; }; + E8AB632B28AE19600023B0D2 /* YUMISeparationsManeRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMISeparationsManeRegardGovernancer.m; sourceTree = ""; }; + E8AB632D28AE19DE0023B0D2 /* YUMISeparationManeExternalizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMISeparationManeExternalizer.h; sourceTree = ""; }; + E8AB632E28AE19DE0023B0D2 /* YUMISeparationManeExternalizer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMISeparationManeExternalizer.m; sourceTree = ""; }; + E8AB633028AE19FA0023B0D2 /* FBCSeparationsManeCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FBCSeparationsManeCeremony.h; sourceTree = ""; }; + E8AB633128AE51470023B0D2 /* YUMIMarchingCaptureRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIMarchingCaptureRegard.h; sourceTree = ""; }; + E8AB633228AE51470023B0D2 /* YUMIMarchingCaptureRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIMarchingCaptureRegard.m; sourceTree = ""; }; + E8AB633428AE54A40023B0D2 /* YUMIMarchingCaptureAssembletionRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIMarchingCaptureAssembletionRegardElement.h; sourceTree = ""; }; + E8AB633528AE54A40023B0D2 /* YUMIMarchingCaptureAssembletionRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIMarchingCaptureAssembletionRegardElement.m; sourceTree = ""; }; + E8AC720E26F43955007D6E91 /* UIIndicateConstant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UIIndicateConstant.h; sourceTree = ""; }; + E8AC720F26F43955007D6E91 /* UIIndicateConstant.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = UIIndicateConstant.m; sourceTree = ""; }; + E8AC721126F46ADD007D6E91 /* YUMIManeInstanllingRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeInstanllingRegardGovernancer.h; sourceTree = ""; }; + E8AC721226F46ADD007D6E91 /* YUMIManeInstanllingRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeInstanllingRegardGovernancer.m; sourceTree = ""; }; + E8AC721426F46B06007D6E91 /* YUMIManeInstanllingTabulationRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeInstanllingTabulationRegardElement.h; sourceTree = ""; }; + E8AC721526F46B06007D6E91 /* YUMIManeInstanllingTabulationRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeInstanllingTabulationRegardElement.m; sourceTree = ""; }; + E8AC721726F46E0B007D6E91 /* YUMIManeInstanllingProvisionMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeInstanllingProvisionMatrix.h; sourceTree = ""; }; + E8AC721826F46E0B007D6E91 /* YUMIManeInstanllingProvisionMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeInstanllingProvisionMatrix.m; sourceTree = ""; }; + E8AC721A26F4720B007D6E91 /* YUMIManeInstanllingExternalize.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeInstanllingExternalize.h; sourceTree = ""; }; + E8AC721B26F4720B007D6E91 /* YUMIManeInstanllingExternalize.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeInstanllingExternalize.m; sourceTree = ""; }; + E8AC721D26F4723D007D6E91 /* FBCManeInstanllingCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FBCManeInstanllingCeremony.h; sourceTree = ""; }; + E8AC721F26F47E23007D6E91 /* YUMIManeAboutUsRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeAboutUsRegardGovernancer.h; sourceTree = ""; }; + E8AC722026F47E23007D6E91 /* YUMIManeAboutUsRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeAboutUsRegardGovernancer.m; sourceTree = ""; }; + E8AC722226F47E5E007D6E91 /* YUMIManeFeedbackRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeFeedbackRegardGovernancer.h; sourceTree = ""; }; + E8AC722326F47E5E007D6E91 /* YUMIManeFeedbackRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeFeedbackRegardGovernancer.m; sourceTree = ""; }; + E8AC722526F482A4007D6E91 /* YUMIManeFeedbackExternalizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeFeedbackExternalizer.h; sourceTree = ""; }; + E8AC722626F482A4007D6E91 /* YUMIManeFeedbackExternalizer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeFeedbackExternalizer.m; sourceTree = ""; }; + E8AC722826F48889007D6E91 /* FBCManeFeedbackCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FBCManeFeedbackCeremony.h; sourceTree = ""; }; + E8AC722A26F49580007D6E91 /* YUMIManeNotificaRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeNotificaRegardGovernancer.h; sourceTree = ""; }; + E8AC722B26F49580007D6E91 /* YUMIManeNotificaRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeNotificaRegardGovernancer.m; sourceTree = ""; }; + E8AC722D26F49610007D6E91 /* YUMIManeNotificationProvisionMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeNotificationProvisionMatrix.h; sourceTree = ""; }; + E8AC722E26F49610007D6E91 /* YUMIManeNotificationProvisionMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeNotificationProvisionMatrix.m; sourceTree = ""; }; + E8AC723026F49710007D6E91 /* YUMIManeNotificationTabulationRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeNotificationTabulationRegardElement.h; sourceTree = ""; }; + E8AC723126F49710007D6E91 /* YUMIManeNotificationTabulationRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeNotificationTabulationRegardElement.m; sourceTree = ""; }; + E8AC723326F49939007D6E91 /* YUMIManeNotificaExternalizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeNotificaExternalizer.h; sourceTree = ""; }; + E8AC723426F49939007D6E91 /* YUMIManeNotificaExternalizer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeNotificaExternalizer.m; sourceTree = ""; }; + E8AC723626F49957007D6E91 /* FBCManeNotificaCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FBCManeNotificaCeremony.h; sourceTree = ""; }; + E8AC723826F49AAE007D6E91 /* YUMIManeNotifyStatus.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeNotifyStatus.h; sourceTree = ""; }; + E8AC723926F49AAE007D6E91 /* YUMIManeNotifyStatus.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeNotifyStatus.m; sourceTree = ""; }; + E8AC723B26F4B6AA007D6E91 /* YUMISurmountDilemmaMobileConsequentRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMISurmountDilemmaMobileConsequentRegardGovernancer.h; sourceTree = ""; }; + E8AC723C26F4B6AA007D6E91 /* YUMISurmountDilemmaMobileConsequentRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMISurmountDilemmaMobileConsequentRegardGovernancer.m; sourceTree = ""; }; + E8AE427127153A3500BEEBB2 /* YUMIChamberImportpriseAccommodatedRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberImportpriseAccommodatedRegard.h; sourceTree = ""; }; + E8AE427227153A3500BEEBB2 /* YUMIChamberImportpriseAccommodatedRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberImportpriseAccommodatedRegard.m; sourceTree = ""; }; + E8AEAED4271412EC0017FCE0 /* YUMIChamberRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberRegardGovernancer.h; sourceTree = ""; }; + E8AEAED5271412EC0017FCE0 /* YUMIChamberRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberRegardGovernancer.m; sourceTree = ""; }; + E8AEAEEB27141AE20017FCE0 /* YUMIChamberBackAccommodatedRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberBackAccommodatedRegard.h; sourceTree = ""; }; + E8AEAEEC27141AE20017FCE0 /* YUMIChamberBackAccommodatedRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberBackAccommodatedRegard.m; sourceTree = ""; }; + E8AEAEEE27141C430017FCE0 /* YUMIChamberParrotAccommodatedRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberParrotAccommodatedRegard.h; sourceTree = ""; }; + E8AEAEEF27141C430017FCE0 /* YUMIChamberParrotAccommodatedRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberParrotAccommodatedRegard.m; sourceTree = ""; }; + E8AEAEF127141C7C0017FCE0 /* YUMIChamberCommunicationAccommodatedRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberCommunicationAccommodatedRegard.h; sourceTree = ""; }; + E8AEAEF227141C7C0017FCE0 /* YUMIChamberCommunicationAccommodatedRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberCommunicationAccommodatedRegard.m; sourceTree = ""; }; + E8AEAEF727141CA30017FCE0 /* ChamberIntelligencerRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ChamberIntelligencerRegard.h; sourceTree = ""; }; + E8AEAEF827141CA30017FCE0 /* ChamberIntelligencerRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ChamberIntelligencerRegard.m; sourceTree = ""; }; + E8AFF7E1298CA1E500FBDE32 /* InterlocutionSpeakHalloComputationMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = InterlocutionSpeakHalloComputationMatrix.h; sourceTree = ""; }; + E8AFF7E2298CA1E500FBDE32 /* InterlocutionSpeakHalloComputationMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = InterlocutionSpeakHalloComputationMatrix.m; sourceTree = ""; }; + E8AFF7E4298CBB3200FBDE32 /* XPCandyTreeRecordView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPCandyTreeRecordView.h; sourceTree = ""; }; + E8AFF7E5298CBB3200FBDE32 /* XPCandyTreeRecordView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPCandyTreeRecordView.m; sourceTree = ""; }; + E8AFF7E7298CBCCE00FBDE32 /* XPCandyTreeRecordTableViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPCandyTreeRecordTableViewCell.h; sourceTree = ""; }; + E8AFF7E8298CBCCE00FBDE32 /* XPCandyTreeRecordTableViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPCandyTreeRecordTableViewCell.m; sourceTree = ""; }; + E8AFF7EA298CE2B700FBDE32 /* CandyTreeGiftModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CandyTreeGiftModel.h; sourceTree = ""; }; + E8AFF7EB298CE2B700FBDE32 /* CandyTreeGiftModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CandyTreeGiftModel.m; sourceTree = ""; }; + E8AFF7ED298CF0DD00FBDE32 /* XPCandyTreeRuleView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPCandyTreeRuleView.h; sourceTree = ""; }; + E8AFF7EE298CF0DD00FBDE32 /* XPCandyTreeRuleView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPCandyTreeRuleView.m; sourceTree = ""; }; + E8AFF7F0298CF29400FBDE32 /* XPCandyTreeRuleTableViewCell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPCandyTreeRuleTableViewCell.h; sourceTree = ""; }; + E8AFF7F1298CF29400FBDE32 /* XPCandyTreeRuleTableViewCell.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPCandyTreeRuleTableViewCell.m; sourceTree = ""; }; + E8AFF7F4298CF52500FBDE32 /* XPCandyTreeRuleHeaderView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XPCandyTreeRuleHeaderView.h; sourceTree = ""; }; + E8AFF7F5298CF52500FBDE32 /* XPCandyTreeRuleHeaderView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XPCandyTreeRuleHeaderView.m; sourceTree = ""; }; + E8B3E8072848B871009746AB /* CallforConsumerAbstractMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CallforConsumerAbstractMatrix.h; sourceTree = ""; }; + E8B3E8082848B871009746AB /* CallforConsumerAbstractMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CallforConsumerAbstractMatrix.m; sourceTree = ""; }; + E8B3E80A2848BA40009746AB /* StrangeConsumerBewelcometoMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = StrangeConsumerBewelcometoMatrix.h; sourceTree = ""; }; + E8B3E80B2848BA40009746AB /* StrangeConsumerBewelcometoMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = StrangeConsumerBewelcometoMatrix.m; sourceTree = ""; }; + E8B825C026EA00DF009E8E9F /* SurmountValidationCodeExternalize.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SurmountValidationCodeExternalize.h; sourceTree = ""; }; + E8B825C126EA00DF009E8E9F /* SurmountValidationCodeExternalize.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SurmountValidationCodeExternalize.m; sourceTree = ""; }; + E8B825C626EA0995009E8E9F /* SurmountVerifCodeCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SurmountVerifCodeCeremony.h; sourceTree = ""; }; + E8B825C826EA1231009E8E9F /* SurmountValidationCodeRegardGovernancer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SurmountValidationCodeRegardGovernancer.m; sourceTree = ""; }; + E8B825C926EA1231009E8E9F /* SurmountValidationCodeRegardGovernancer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SurmountValidationCodeRegardGovernancer.h; sourceTree = ""; }; + E8B825CB26EA18C8009E8E9F /* DJDKMIMOMColor.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DJDKMIMOMColor.h; sourceTree = ""; }; + E8B825CC26EA18C8009E8E9F /* DJDKMIMOMColor.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = DJDKMIMOMColor.m; sourceTree = ""; }; + E8B846BA26FD7C1200A777FE /* UpwardsloadIndicate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UpwardsloadIndicate.h; sourceTree = ""; }; + E8B846BB26FD7C1200A777FE /* UpwardsloadIndicate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = UpwardsloadIndicate.m; sourceTree = ""; }; + E8B846BD26FD827900A777FE /* YUMIManeConsumerAbstractAlbumRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeConsumerAbstractAlbumRegardGovernancer.h; sourceTree = ""; }; + E8B846BE26FD827900A777FE /* YUMIManeConsumerAbstractAlbumRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeConsumerAbstractAlbumRegardGovernancer.m; sourceTree = ""; }; + E8B846C026FD82DC00A777FE /* YUMIManeConsumerAbstractAlbumAssembletionRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeConsumerAbstractAlbumAssembletionRegardElement.h; sourceTree = ""; }; + E8B846C126FD82DC00A777FE /* YUMIManeConsumerAbstractAlbumAssembletionRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeConsumerAbstractAlbumAssembletionRegardElement.m; sourceTree = ""; }; + E8B846C326FDB41A00A777FE /* YUMIManeConsumerAbstractlbumExternalizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeConsumerAbstractlbumExternalizer.h; sourceTree = ""; }; + E8B846C426FDB41A00A777FE /* YUMIManeConsumerAbstractlbumExternalizer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeConsumerAbstractlbumExternalizer.m; sourceTree = ""; }; + E8B846C626FDB44100A777FE /* FBCManeConsumerAbstractAlbumCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FBCManeConsumerAbstractAlbumCeremony.h; sourceTree = ""; }; + E8B846C926FDD7CD00A777FE /* YUMIManeReindictRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeReindictRegardGovernancer.h; sourceTree = ""; }; + E8B846CA26FDD7CD00A777FE /* YUMIManeReindictRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeReindictRegardGovernancer.m; sourceTree = ""; }; + E8B846CD26FDD96100A777FE /* YUMIManeRechageIntelligenceRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeRechageIntelligenceRegard.h; sourceTree = ""; }; + E8B846CE26FDD96100A777FE /* YUMIManeRechageIntelligenceRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeRechageIntelligenceRegard.m; sourceTree = ""; }; + E8B846D126FDDBE600A777FE /* YUMIManeReindictTabulationRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeReindictTabulationRegardElement.h; sourceTree = ""; }; + E8B846D226FDDBE600A777FE /* YUMIManeReindictTabulationRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeReindictTabulationRegardElement.m; sourceTree = ""; }; + E8B846D426FDE01B00A777FE /* YUMIManeReindictExternalizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeReindictExternalizer.h; sourceTree = ""; }; + E8B846D526FDE01B00A777FE /* YUMIManeReindictExternalizer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeReindictExternalizer.m; sourceTree = ""; }; + E8B846D726FDE16300A777FE /* FBCManeReindictCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FBCManeReindictCeremony.h; sourceTree = ""; }; + E8B846DA26FDE24300A777FE /* ReindictStatementMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ReindictStatementMatrix.h; sourceTree = ""; }; + E8B846DB26FDE24300A777FE /* ReindictStatementMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ReindictStatementMatrix.m; sourceTree = ""; }; + E8B9842B28AB77F10022D026 /* YUMISeparationsAnnounceMotifRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMISeparationsAnnounceMotifRegard.h; sourceTree = ""; }; + E8B9842C28AB77F10022D026 /* YUMISeparationsAnnounceMotifRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMISeparationsAnnounceMotifRegard.m; sourceTree = ""; }; + E8B9842E28AB90200022D026 /* YUMISepartionMotifStatementRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMISepartionMotifStatementRegard.h; sourceTree = ""; }; + E8B9842F28AB90200022D026 /* YUMISepartionMotifStatementRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMISepartionMotifStatementRegard.m; sourceTree = ""; }; + E8B9843128ABA2FF0022D026 /* SeparationsPicResAbstract.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SeparationsPicResAbstract.h; sourceTree = ""; }; + E8B9843228ABA2FF0022D026 /* SeparationsPicResAbstract.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SeparationsPicResAbstract.m; sourceTree = ""; }; + E8B9843428ABA8B40022D026 /* YUMISeparationAnnounceSuccessRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMISeparationAnnounceSuccessRegard.h; sourceTree = ""; }; + E8B9843528ABA8B40022D026 /* YUMISeparationAnnounceSuccessRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMISeparationAnnounceSuccessRegard.m; sourceTree = ""; }; + E8BD0F8628A9E9E400DE050D /* ChamberMarchingCaptureMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ChamberMarchingCaptureMatrix.h; sourceTree = ""; }; + E8BD0F8728A9E9E400DE050D /* ChamberMarchingCaptureMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ChamberMarchingCaptureMatrix.m; sourceTree = ""; }; + E8BD0F8928A9EB0A00DE050D /* ChamberMarchingCaptureStatementMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ChamberMarchingCaptureStatementMatrix.h; sourceTree = ""; }; + E8BD0F8A28A9EB0A00DE050D /* ChamberMarchingCaptureStatementMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ChamberMarchingCaptureStatementMatrix.m; sourceTree = ""; }; + E8C1CD6427D88EF800376F83 /* YUMIChamberAcceptRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberAcceptRegardGovernancer.h; sourceTree = ""; }; + E8C1CD6527D88EF800376F83 /* YUMIChamberAcceptRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberAcceptRegardGovernancer.m; sourceTree = ""; }; + E8C1CD6827D8937800376F83 /* YUMIChamberAcceptAssembletionRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberAcceptAssembletionRegardElement.h; sourceTree = ""; }; + E8C1CD6927D8937800376F83 /* YUMIChamberAcceptAssembletionRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberAcceptAssembletionRegardElement.m; sourceTree = ""; }; + E8C1CD6B27D8938C00376F83 /* YUMIChamberAcceptChampionAssembletionRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberAcceptChampionAssembletionRegardElement.h; sourceTree = ""; }; + E8C1CD6C27D8938C00376F83 /* YUMIChamberAcceptChampionAssembletionRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberAcceptChampionAssembletionRegardElement.m; sourceTree = ""; }; + E8C1CD6E27D894B800376F83 /* ChamberAcceptChampionProvisionMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ChamberAcceptChampionProvisionMatrix.h; sourceTree = ""; }; + E8C1CD6F27D894B800376F83 /* ChamberAcceptChampionProvisionMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ChamberAcceptChampionProvisionMatrix.m; sourceTree = ""; }; + E8C1CD7127D8A16500376F83 /* YUMIChamberAcceptTool.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberAcceptTool.h; sourceTree = ""; }; + E8C1CD7227D8A16500376F83 /* YUMIChamberAcceptTool.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberAcceptTool.m; sourceTree = ""; }; + E8C1CD7427D8AE3D00376F83 /* YUMIChamberAcceptExternalizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberAcceptExternalizer.h; sourceTree = ""; }; + E8C1CD7527D8AE3D00376F83 /* YUMIChamberAcceptExternalizer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberAcceptExternalizer.m; sourceTree = ""; }; + E8C1CD7727D8AE5600376F83 /* FBCChamberFaceCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FBCChamberFaceCeremony.h; sourceTree = ""; }; + E8C1CD7827D8B29E00376F83 /* ChamberAcceptAbstractMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ChamberAcceptAbstractMatrix.h; sourceTree = ""; }; + E8C1CD7927D8B29E00376F83 /* ChamberAcceptAbstractMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ChamberAcceptAbstractMatrix.m; sourceTree = ""; }; + E8C214FF274B76F60079E6BF /* YUMIChamberBrightnessHitRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberBrightnessHitRegard.h; sourceTree = ""; }; + E8C21500274B76F60079E6BF /* YUMIChamberBrightnessHitRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberBrightnessHitRegard.m; sourceTree = ""; }; + E8C6FFC827548120004DC9F0 /* Api+Home.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "Api+Home.m"; sourceTree = ""; }; + E8C6FFC927548120004DC9F0 /* Api+Home.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "Api+Home.h"; sourceTree = ""; }; + E8C6FFDE2754EEF9004DC9F0 /* YUMIResidenceHuntforRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIResidenceHuntforRegardGovernancer.h; sourceTree = ""; }; + E8C6FFDF2754EEF9004DC9F0 /* YUMIResidenceHuntforRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIResidenceHuntforRegardGovernancer.m; sourceTree = ""; }; + E8C6FFE42754FE53004DC9F0 /* YUMIResidenceHuntforExternalizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIResidenceHuntforExternalizer.h; sourceTree = ""; }; + E8C6FFE52754FE53004DC9F0 /* YUMIResidenceHuntforExternalizer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIResidenceHuntforExternalizer.m; sourceTree = ""; }; + E8C6FFE72754FE66004DC9F0 /* FBCResidenceHuntforCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FBCResidenceHuntforCeremony.h; sourceTree = ""; }; + E8CEA03B26EA3DE500644B44 /* SurmountCiphercodeExternalize.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SurmountCiphercodeExternalize.h; sourceTree = ""; }; + E8CEA03C26EA3DE500644B44 /* SurmountCiphercodeExternalize.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SurmountCiphercodeExternalize.m; sourceTree = ""; }; + E8CEA03E26EA3E0200644B44 /* SurmountCiphercodeCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SurmountCiphercodeCeremony.h; sourceTree = ""; }; + E8D34D4528080295009C4835 /* YUMIManeConsumerAtomicRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeConsumerAtomicRegardGovernancer.h; sourceTree = ""; }; + E8D34D4628080295009C4835 /* YUMIManeConsumerAtomicRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeConsumerAtomicRegardGovernancer.m; sourceTree = ""; }; + E8D34D4B28080351009C4835 /* YUMIManeAtomicCollectiveTabulationRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeAtomicCollectiveTabulationRegardElement.h; sourceTree = ""; }; + E8D34D4C28080351009C4835 /* YUMIManeAtomicCollectiveTabulationRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeAtomicCollectiveTabulationRegardElement.m; sourceTree = ""; }; + E8D34D4E28080362009C4835 /* YUMIManeAtomicPresentTabulationRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeAtomicPresentTabulationRegardElement.h; sourceTree = ""; }; + E8D34D4F28080362009C4835 /* YUMIManeAtomicPresentTabulationRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeAtomicPresentTabulationRegardElement.m; sourceTree = ""; }; + E8D34D5428080393009C4835 /* YUMIManeAtomicPresentAssembletionRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeAtomicPresentAssembletionRegardElement.h; sourceTree = ""; }; + E8D34D5528080393009C4835 /* YUMIManeAtomicPresentAssembletionRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeAtomicPresentAssembletionRegardElement.m; sourceTree = ""; }; + E8D34D5828082357009C4835 /* ConsumerPresentRamparatAbstractMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ConsumerPresentRamparatAbstractMatrix.h; sourceTree = ""; }; + E8D34D5928082357009C4835 /* ConsumerPresentRamparatAbstractMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ConsumerPresentRamparatAbstractMatrix.m; sourceTree = ""; }; + E8D34D5E28082BA5009C4835 /* YUMIManeConsumerAtomicExternalizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeConsumerAtomicExternalizer.h; sourceTree = ""; }; + E8D34D5F28082BA5009C4835 /* YUMIManeConsumerAtomicExternalizer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeConsumerAtomicExternalizer.m; sourceTree = ""; }; + E8D34D6128082BD4009C4835 /* FBCManeConsumerAtomicCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FBCManeConsumerAtomicCeremony.h; sourceTree = ""; }; + E8D34D6228084E40009C4835 /* YUMIManeConsumerAbstractPresentRamparatRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeConsumerAbstractPresentRamparatRegardGovernancer.h; sourceTree = ""; }; + E8D34D6328084E40009C4835 /* YUMIManeConsumerAbstractPresentRamparatRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeConsumerAbstractPresentRamparatRegardGovernancer.m; sourceTree = ""; }; + E8D34D6528084E88009C4835 /* YUMIManeConsumerAbstractPresentRamparatAssembletionRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeConsumerAbstractPresentRamparatAssembletionRegardElement.h; sourceTree = ""; }; + E8D34D6628084E88009C4835 /* YUMIManeConsumerAbstractPresentRamparatAssembletionRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeConsumerAbstractPresentRamparatAssembletionRegardElement.m; sourceTree = ""; }; + E8D48248278D1F72003C1D08 /* YUMIThroughoutChamberCombatCallforRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIThroughoutChamberCombatCallforRegard.h; sourceTree = ""; }; + E8D48249278D1F73003C1D08 /* YUMIThroughoutChamberCombatCallforRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIThroughoutChamberCombatCallforRegard.m; sourceTree = ""; }; + E8D4824B278D2CE4003C1D08 /* YUMIThroughoutChamberCombatCallforConsequentRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIThroughoutChamberCombatCallforConsequentRegard.h; sourceTree = ""; }; + E8D4824C278D2CE4003C1D08 /* YUMIThroughoutChamberCombatCallforConsequentRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIThroughoutChamberCombatCallforConsequentRegard.m; sourceTree = ""; }; + E8D4824E278D68BA003C1D08 /* YUMIAcrpssChamberCombatFasciaboardRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIAcrpssChamberCombatFasciaboardRegard.h; sourceTree = ""; }; + E8D4824F278D68BA003C1D08 /* YUMIAcrpssChamberCombatFasciaboardRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIAcrpssChamberCombatFasciaboardRegard.m; sourceTree = ""; }; + E8D48251278D8228003C1D08 /* ThroughoutChamberCombatFasciaboardMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ThroughoutChamberCombatFasciaboardMatrix.h; sourceTree = ""; }; + E8D48252278D8228003C1D08 /* ThroughoutChamberCombatFasciaboardMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ThroughoutChamberCombatFasciaboardMatrix.m; sourceTree = ""; }; + E8D48254278D83AE003C1D08 /* YUMIThroughoutChamberCombatFasciaboardConsumerRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIThroughoutChamberCombatFasciaboardConsumerRegard.h; sourceTree = ""; }; + E8D48255278D83AE003C1D08 /* YUMIThroughoutChamberCombatFasciaboardConsumerRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIThroughoutChamberCombatFasciaboardConsumerRegard.m; sourceTree = ""; }; + E8D4DE422940462C00EC788D /* YUMIPresentTwelveSatellitePingbackRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIPresentTwelveSatellitePingbackRegard.h; sourceTree = ""; }; + E8D4DE432940462C00EC788D /* YUMIPresentTwelveSatellitePingbackRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIPresentTwelveSatellitePingbackRegard.m; sourceTree = ""; }; + E8D4DE452940473500EC788D /* PresentTwelveSatelliteThresholdMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PresentTwelveSatelliteThresholdMatrix.h; sourceTree = ""; }; + E8D4DE462940473500EC788D /* PresentTwelveSatelliteThresholdMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PresentTwelveSatelliteThresholdMatrix.m; sourceTree = ""; }; + E8D55C9B28113218006935A5 /* CommunicationParrotMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CommunicationParrotMatrix.h; sourceTree = ""; }; + E8D55C9C28113218006935A5 /* CommunicationParrotMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CommunicationParrotMatrix.m; sourceTree = ""; }; + E8D55C9E281186D6006935A5 /* InterlocutionVocalmusicReflectionRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = InterlocutionVocalmusicReflectionRegard.h; sourceTree = ""; }; + E8D55C9F281186D6006935A5 /* InterlocutionVocalmusicReflectionRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = InterlocutionVocalmusicReflectionRegard.m; sourceTree = ""; }; + E8D7D749282BA1EC0007D7BD /* YUMISeparationsTabulationRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMISeparationsTabulationRegardElement.h; sourceTree = ""; }; + E8D7D74A282BA1EC0007D7BD /* YUMISeparationsTabulationRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMISeparationsTabulationRegardElement.m; sourceTree = ""; }; + E8DAC5AA2858305A00012CFD /* YUMIChamberCommunicationIntumesceRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberCommunicationIntumesceRegard.h; sourceTree = ""; }; + E8DAC5AB2858305A00012CFD /* YUMIChamberCommunicationIntumesceRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberCommunicationIntumesceRegard.m; sourceTree = ""; }; + E8DACCF92766EDC60052092C /* MiecreoscoopePresentStressRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MiecreoscoopePresentStressRegard.h; sourceTree = ""; }; + E8DACCFA2766EDC60052092C /* MiecreoscoopePresentStressRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MiecreoscoopePresentStressRegard.m; sourceTree = ""; }; + E8DACCFC27673F870052092C /* PresentStressAbstractMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PresentStressAbstractMatrix.h; sourceTree = ""; }; + E8DACCFD27673F870052092C /* PresentStressAbstractMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PresentStressAbstractMatrix.m; sourceTree = ""; }; + E8DBB6FB27B63CE000AA285D /* TraitCompetitionMiecreoscoopeRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TraitCompetitionMiecreoscoopeRegard.h; sourceTree = ""; }; + E8DBB6FC27B63CE000AA285D /* TraitCompetitionMiecreoscoopeRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TraitCompetitionMiecreoscoopeRegard.m; sourceTree = ""; }; + E8DD25D8295583920043C7D5 /* XCombatellegRandomCombatPreadominantRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XCombatellegRandomCombatPreadominantRegard.h; sourceTree = ""; }; + E8DD25D9295583920043C7D5 /* XCombatellegRandomCombatPreadominantRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = XCombatellegRandomCombatPreadominantRegard.m; sourceTree = ""; }; + E8DEC990276441AA0078CB70 /* YUMIConfectioneryTimberBrightnessMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIConfectioneryTimberBrightnessMatrix.h; sourceTree = ""; }; + E8DEC991276441AA0078CB70 /* YUMIConfectioneryTimberBrightnessMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIConfectioneryTimberBrightnessMatrix.m; sourceTree = ""; }; + E8DEC99327648FA50078CB70 /* ClientDisposition.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ClientDisposition.h; sourceTree = ""; }; + E8DEC99427648FA50078CB70 /* ClientDisposition.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ClientDisposition.m; sourceTree = ""; }; + E8DEC99C2764A5B60078CB70 /* YUMIChamberFurthaerParrotRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberFurthaerParrotRegardGovernancer.h; sourceTree = ""; }; + E8DEC99D2764A5B60078CB70 /* YUMIChamberFurthaerParrotRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberFurthaerParrotRegardGovernancer.m; sourceTree = ""; }; + E8DEC99F2764A5D20078CB70 /* YUMIChamberFurthaerProvisionMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberFurthaerProvisionMatrix.h; sourceTree = ""; }; + E8DEC9A02764A5D20078CB70 /* YUMIChamberFurthaerProvisionMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberFurthaerProvisionMatrix.m; sourceTree = ""; }; + E8DEC9A22764A6600078CB70 /* YUMIFurthaerParrotExternalizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIFurthaerParrotExternalizer.h; sourceTree = ""; }; + E8DEC9A32764A6600078CB70 /* YUMIFurthaerParrotExternalizer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIFurthaerParrotExternalizer.m; sourceTree = ""; }; + E8DEC9A52764A6760078CB70 /* FBCFurthaerMenuCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FBCFurthaerMenuCeremony.h; sourceTree = ""; }; + E8DEC9A62764A68B0078CB70 /* Api+MoreMenu.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Api+MoreMenu.h"; sourceTree = ""; }; + E8DEC9A72764A68B0078CB70 /* Api+MoreMenu.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "Api+MoreMenu.m"; sourceTree = ""; }; + E8DEC9AA2764A6CD0078CB70 /* YUMIChamberFurthaerParrotAssembletionRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberFurthaerParrotAssembletionRegardElement.h; sourceTree = ""; }; + E8DEC9AB2764A6CD0078CB70 /* YUMIChamberFurthaerParrotAssembletionRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberFurthaerParrotAssembletionRegardElement.m; sourceTree = ""; }; + E8E0DADE285C20E500566A2F /* CommunicationSatisfactionDiscoveryStrangeBewelcometoRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CommunicationSatisfactionDiscoveryStrangeBewelcometoRegard.h; sourceTree = ""; }; + E8E0DADF285C20E500566A2F /* CommunicationSatisfactionDiscoveryStrangeBewelcometoRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CommunicationSatisfactionDiscoveryStrangeBewelcometoRegard.m; sourceTree = ""; }; + E8E0DAE4285C280E00566A2F /* YUMIInterlocutionDiscoveryStrangePrecautiousRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIInterlocutionDiscoveryStrangePrecautiousRegard.h; sourceTree = ""; }; + E8E0DAE5285C280E00566A2F /* YUMIInterlocutionDiscoveryStrangePrecautiousRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIInterlocutionDiscoveryStrangePrecautiousRegard.m; sourceTree = ""; }; + E8E0DAE7285C2E8C00566A2F /* DiscoveryStrangeBewelcometoCommunicationMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DiscoveryStrangeBewelcometoCommunicationMatrix.h; sourceTree = ""; }; + E8E0DAE8285C2E8C00566A2F /* DiscoveryStrangeBewelcometoCommunicationMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = DiscoveryStrangeBewelcometoCommunicationMatrix.m; sourceTree = ""; }; + E8E20BD9281645300033B688 /* InterlocutionAbstractRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = InterlocutionAbstractRegardGovernancer.h; sourceTree = ""; }; + E8E20BDA281645300033B688 /* InterlocutionAbstractRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = InterlocutionAbstractRegardGovernancer.m; sourceTree = ""; }; + E8E20BDC28164D3A0033B688 /* InterlocutionNevRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = InterlocutionNevRegard.h; sourceTree = ""; }; + E8E20BDD28164D3A0033B688 /* InterlocutionNevRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = InterlocutionNevRegard.m; sourceTree = ""; }; + E8E20BE0281695800033B688 /* YUMIManeSurmountCiphercodeRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeSurmountCiphercodeRegardGovernancer.h; sourceTree = ""; }; + E8E20BE1281695800033B688 /* YUMIManeSurmountCiphercodeRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeSurmountCiphercodeRegardGovernancer.m; sourceTree = ""; }; + E8E20BE628169BDC0033B688 /* YUMIManeSurmountCiphercodeExternalizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeSurmountCiphercodeExternalizer.h; sourceTree = ""; }; + E8E20BE728169BDC0033B688 /* YUMIManeSurmountCiphercodeExternalizer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeSurmountCiphercodeExternalizer.m; sourceTree = ""; }; + E8E20BE928169E410033B688 /* FBCManeSurmountCiphercodeCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FBCManeSurmountCiphercodeCeremony.h; sourceTree = ""; }; + E8E20BEA2816A5B90033B688 /* YUMIManeBlackStatementRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeBlackStatementRegardGovernancer.h; sourceTree = ""; }; + E8E20BEB2816A5B90033B688 /* YUMIManeBlackStatementRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeBlackStatementRegardGovernancer.m; sourceTree = ""; }; + E8E20BED2816A5FC0033B688 /* YUMIManeBlackStatementTabulationRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeBlackStatementTabulationRegardElement.h; sourceTree = ""; }; + E8E20BEE2816A5FC0033B688 /* YUMIManeBlackStatementTabulationRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeBlackStatementTabulationRegardElement.m; sourceTree = ""; }; + E8E21A9928B4BD92008F7C9D /* YUMIChamberGraffitiPresentBrightnessRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberGraffitiPresentBrightnessRegard.h; sourceTree = ""; }; + E8E21A9A28B4BD92008F7C9D /* YUMIChamberGraffitiPresentBrightnessRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberGraffitiPresentBrightnessRegard.m; sourceTree = ""; }; + E8E21A9C28B4DFE8008F7C9D /* YUMIMarchingBuyFuelRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIMarchingBuyFuelRegard.h; sourceTree = ""; }; + E8E21A9D28B4DFE8008F7C9D /* YUMIMarchingBuyFuelRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIMarchingBuyFuelRegard.m; sourceTree = ""; }; + E8E70D7526F2F15100F03460 /* YUMIManeRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeRegardGovernancer.h; sourceTree = ""; }; + E8E70D7626F2F15100F03460 /* YUMIManeRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeRegardGovernancer.m; sourceTree = ""; }; + E8E70D7826F2F16600F03460 /* YUMIManeExternalize.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeExternalize.h; sourceTree = ""; }; + E8E70D7926F2F16600F03460 /* YUMIManeExternalize.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeExternalize.m; sourceTree = ""; }; + E8E70D7B26F2F18900F03460 /* FBCManeCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FBCManeCeremony.h; sourceTree = ""; }; + E8E70D7C26F2F19D00F03460 /* Api+Mine.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Api+Mine.h"; sourceTree = ""; }; + E8E70D7D26F2F19D00F03460 /* Api+Mine.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "Api+Mine.m"; sourceTree = ""; }; + E8E70D8126F2F51A00F03460 /* YUMIManeIntelligenceRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeIntelligenceRegard.h; sourceTree = ""; }; + E8E70D8226F2F51A00F03460 /* YUMIManeIntelligenceRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeIntelligenceRegard.m; sourceTree = ""; }; + E8E70D8A26F2F5A500F03460 /* YUMIManeIntelligenceProvisionAssembletionRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeIntelligenceProvisionAssembletionRegardElement.h; sourceTree = ""; }; + E8E70D8B26F2F5A500F03460 /* YUMIManeIntelligenceProvisionAssembletionRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeIntelligenceProvisionAssembletionRegardElement.m; sourceTree = ""; }; + E8E70D9026F2F60C00F03460 /* YUMIManeProvisionMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeProvisionMatrix.h; sourceTree = ""; }; + E8E70D9126F2F60C00F03460 /* YUMIManeProvisionMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeProvisionMatrix.m; sourceTree = ""; }; + E8E7DAE62744F5EF00C631CC /* YUMIPresentStorage.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIPresentStorage.h; sourceTree = ""; }; + E8E7DAE72744F5EF00C631CC /* YUMIPresentStorage.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIPresentStorage.m; sourceTree = ""; }; + E8E7DAE92745158500C631CC /* YUMIExternalizeConsumerAbstractMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIExternalizeConsumerAbstractMatrix.h; sourceTree = ""; }; + E8E7DAEA2745158500C631CC /* YUMIExternalizeConsumerAbstractMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIExternalizeConsumerAbstractMatrix.m; sourceTree = ""; }; + E8E859E728264F4500EE4857 /* YUMIChamberTransferManualRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberTransferManualRegardGovernancer.h; sourceTree = ""; }; + E8E859E828264F4500EE4857 /* YUMIChamberTransferManualRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberTransferManualRegardGovernancer.m; sourceTree = ""; }; + E8EE827B272B9A2300A17217 /* YUMIChamberDischargeEssayRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberDischargeEssayRegard.h; sourceTree = ""; }; + E8EE827C272B9A2300A17217 /* YUMIChamberDischargeEssayRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberDischargeEssayRegard.m; sourceTree = ""; }; + E8EEB8EB26FC2050007C6EBA /* SDPhotoBrowserConfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDPhotoBrowserConfig.h; sourceTree = ""; }; + E8EEB8EC26FC2050007C6EBA /* SDAppearanceBrowser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDAppearanceBrowser.m; sourceTree = ""; }; + E8EEB8ED26FC2050007C6EBA /* SDWaitingRegard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDWaitingRegard.m; sourceTree = ""; }; + E8EEB8EE26FC2050007C6EBA /* SDBrowserIndicateRegard.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDBrowserIndicateRegard.m; sourceTree = ""; }; + E8EEB8EF26FC2050007C6EBA /* SDWaitingRegard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDWaitingRegard.h; sourceTree = ""; }; + E8EEB8F026FC2050007C6EBA /* SDAppearanceBrowser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDAppearanceBrowser.h; sourceTree = ""; }; + E8EEB8F126FC2050007C6EBA /* SDBrowserIndicateRegard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDBrowserIndicateRegard.h; sourceTree = ""; }; + E8EEB8F526FC2673007C6EBA /* ConsumerAppearance.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ConsumerAppearance.h; sourceTree = ""; }; + E8EEB8F626FC2673007C6EBA /* ConsumerAppearance.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ConsumerAppearance.m; sourceTree = ""; }; + E8EEB8F926FC2874007C6EBA /* YUMIManeConsumerAbstractTabulationRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeConsumerAbstractTabulationRegardElement.h; sourceTree = ""; }; + E8EEB8FA26FC2874007C6EBA /* YUMIManeConsumerAbstractTabulationRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeConsumerAbstractTabulationRegardElement.m; sourceTree = ""; }; + E8EEB8FC26FC2DF8007C6EBA /* YUMIManeConsumerAbstractCustomNevRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeConsumerAbstractCustomNevRegard.h; sourceTree = ""; }; + E8EEB8FD26FC2DF8007C6EBA /* YUMIManeConsumerAbstractCustomNevRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeConsumerAbstractCustomNevRegard.m; sourceTree = ""; }; + E8EEB8FF26FC31B6007C6EBA /* YUMIManeConsumerAbstractExternalizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeConsumerAbstractExternalizer.h; sourceTree = ""; }; + E8EEB90026FC31B6007C6EBA /* YUMIManeConsumerAbstractExternalizer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeConsumerAbstractExternalizer.m; sourceTree = ""; }; + E8EEB90226FC31CE007C6EBA /* FBCManeConsumerAbstractCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FBCManeConsumerAbstractCeremony.h; sourceTree = ""; }; + E8EEB90426FC5772007C6EBA /* YUMIManeConsumerAbstractCompileRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeConsumerAbstractCompileRegardGovernancer.h; sourceTree = ""; }; + E8EEB90526FC5772007C6EBA /* YUMIManeConsumerAbstractCompileRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeConsumerAbstractCompileRegardGovernancer.m; sourceTree = ""; }; + E8EEB90726FC579A007C6EBA /* YUMIManeConsumerAbstractCompileTabulationRegardElement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeConsumerAbstractCompileTabulationRegardElement.h; sourceTree = ""; }; + E8EEB90826FC579A007C6EBA /* YUMIManeConsumerAbstractCompileTabulationRegardElement.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeConsumerAbstractCompileTabulationRegardElement.m; sourceTree = ""; }; + E8EEB90A26FC5EBC007C6EBA /* YUMIManeConsumerAbstractCompileMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeConsumerAbstractCompileMatrix.h; sourceTree = ""; }; + E8EEB90B26FC5EBC007C6EBA /* YUMIManeConsumerAbstractCompileMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeConsumerAbstractCompileMatrix.m; sourceTree = ""; }; + E8EEB90D26FC6AB8007C6EBA /* YUMIManeConsumerAbstractCompileExternalizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeConsumerAbstractCompileExternalizer.h; sourceTree = ""; }; + E8EEB90E26FC6AB8007C6EBA /* YUMIManeConsumerAbstractCompileExternalizer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeConsumerAbstractCompileExternalizer.m; sourceTree = ""; }; + E8EEB91026FC6AD3007C6EBA /* FBCManeConsumerAbstractEditCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FBCManeConsumerAbstractEditCeremony.h; sourceTree = ""; }; + E8EEB91226FC7786007C6EBA /* YUMIManeConsumerAbstractNickRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeConsumerAbstractNickRegardGovernancer.h; sourceTree = ""; }; + E8EEB91326FC7786007C6EBA /* YUMIManeConsumerAbstractNickRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeConsumerAbstractNickRegardGovernancer.m; sourceTree = ""; }; + E8EEB91526FC7B35007C6EBA /* YUMIManeConsumerAbstractDesRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeConsumerAbstractDesRegardGovernancer.h; sourceTree = ""; }; + E8EEB91626FC7B35007C6EBA /* YUMIManeConsumerAbstractDesRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeConsumerAbstractDesRegardGovernancer.m; sourceTree = ""; }; + E8EEB91B26FC9D58007C6EBA /* YUMIManeConsumerAbstractDateRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeConsumerAbstractDateRegard.h; sourceTree = ""; }; + E8EEB91C26FC9D58007C6EBA /* YUMIManeConsumerAbstractDateRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeConsumerAbstractDateRegard.m; sourceTree = ""; }; + E8F1558B28124D5200EE8C06 /* CommunicationConentVocalmusicRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CommunicationConentVocalmusicRegard.h; sourceTree = ""; }; + E8F1558C28124D5200EE8C06 /* CommunicationConentVocalmusicRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CommunicationConentVocalmusicRegard.m; sourceTree = ""; }; + E8F1558E28125E2D00EE8C06 /* CommunicationVocalmusicConcentrate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CommunicationVocalmusicConcentrate.h; sourceTree = ""; }; + E8F1558F28125E2D00EE8C06 /* CommunicationVocalmusicConcentrate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CommunicationVocalmusicConcentrate.m; sourceTree = ""; }; + E8F1559128129EBA00EE8C06 /* SatisfactionSecretaryMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SatisfactionSecretaryMatrix.h; sourceTree = ""; }; + E8F1559228129EBA00EE8C06 /* SatisfactionSecretaryMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SatisfactionSecretaryMatrix.m; sourceTree = ""; }; + E8F6135A291E26BD00E12650 /* NSMutableDictionary+Saft.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "NSMutableDictionary+Saft.h"; sourceTree = ""; }; + E8F6135B291E26BD00E12650 /* NSMutableDictionary+Saft.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "NSMutableDictionary+Saft.m"; sourceTree = ""; }; + E8F6135D291E274E00E12650 /* NSArray+Safe.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "NSArray+Safe.h"; sourceTree = ""; }; + E8F6135E291E274E00E12650 /* NSArray+Safe.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "NSArray+Safe.m"; sourceTree = ""; }; + E8F63CAF298B553500B338BA /* InterlocutionSpeakHalloPrototypeMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = InterlocutionSpeakHalloPrototypeMatrix.h; sourceTree = ""; }; + E8F63CB0298B553500B338BA /* InterlocutionSpeakHalloPrototypeMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = InterlocutionSpeakHalloPrototypeMatrix.m; sourceTree = ""; }; + E8F63CB2298B563D00B338BA /* Api+SayHello.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Api+SayHello.h"; sourceTree = ""; }; + E8F63CB3298B563D00B338BA /* Api+SayHello.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "Api+SayHello.m"; sourceTree = ""; }; + E8F63CB5298B566D00B338BA /* YUMIInterlocutionSpeakHalloExternalizer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIInterlocutionSpeakHalloExternalizer.h; sourceTree = ""; }; + E8F63CB6298B566D00B338BA /* YUMIInterlocutionSpeakHalloExternalizer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIInterlocutionSpeakHalloExternalizer.m; sourceTree = ""; }; + E8F63CB8298B5F3D00B338BA /* FBCInterlocutionSayHelloCeremony.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FBCInterlocutionSayHelloCeremony.h; sourceTree = ""; }; + E8F63CB9298B648300B338BA /* InterlocutionSpeakHalloStatementMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = InterlocutionSpeakHalloStatementMatrix.h; sourceTree = ""; }; + E8F63CBA298B648300B338BA /* InterlocutionSpeakHalloStatementMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = InterlocutionSpeakHalloStatementMatrix.m; sourceTree = ""; }; + E8F63CBC298BC90700B338BA /* CandyTreeMoreItemModel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CandyTreeMoreItemModel.h; sourceTree = ""; }; + E8F63CBD298BC90700B338BA /* CandyTreeMoreItemModel.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = CandyTreeMoreItemModel.m; sourceTree = ""; }; + E8F65C1D286998C9009BB5B9 /* YUMIManeParaticipationRegardGovernancer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIManeParaticipationRegardGovernancer.h; sourceTree = ""; }; + E8F65C1E286998C9009BB5B9 /* YUMIManeParaticipationRegardGovernancer.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIManeParaticipationRegardGovernancer.m; sourceTree = ""; }; + E8F65C202869A36F009BB5B9 /* SatisfactionParaticipationSeparationsMatrix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SatisfactionParaticipationSeparationsMatrix.h; sourceTree = ""; }; + E8F65C212869A36F009BB5B9 /* SatisfactionParaticipationSeparationsMatrix.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SatisfactionParaticipationSeparationsMatrix.m; sourceTree = ""; }; + E8FE3C2A2994D0E80006C6C7 /* YUMISwitch.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMISwitch.h; sourceTree = ""; }; + E8FE3C2B2994D0E80006C6C7 /* YUMISwitch.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMISwitch.m; sourceTree = ""; }; + F1D8556D2931FC86008C418F /* YUMIChamberYearImportpriseRegard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = YUMIChamberYearImportpriseRegard.h; sourceTree = ""; }; + F1D8556E2931FC86008C418F /* YUMIChamberYearImportpriseRegard.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = YUMIChamberYearImportpriseRegard.m; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 189DD52626DE255300AB55B1 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 73FFADDC93E195344047A2EC /* Pods_YuMi.framework in Frameworks */, + 186A531926FC592100D67B2C /* libresolv.tbd in Frameworks */, + E87888F42738C30E00BF1D57 /* StoreKit.framework in Frameworks */, + 9BA8A47727C60DF7000365A3 /* AVFoundation.framework in Frameworks */, + 1427212529A7566100C7C423 /* ZegoAudioRoom.framework in Frameworks */, + 9BA8A47527C60D9F000365A3 /* AudioToolbox.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 1427213529A75C7D00C7C423 /* Base */ = { + isa = PBXGroup; + children = ( + 189DD54926DE338800AB55B1 /* BaseRegardGovernancer.h */, + 189DD54A26DE338800AB55B1 /* BaseRegardGovernancer.m */, + 9B0E1C5726E77022005D4442 /* BaseNevigationGovernancer.h */, + 9B0E1C5826E77022005D4442 /* BaseNevigationGovernancer.m */, + ); + path = Base; + sourceTree = ""; + }; + 1427213629A75F6F00C7C423 /* CocoaHttpServer */ = { + isa = PBXGroup; + children = ( + 1427213829A75F6F00C7C423 /* Core */, + 1427217429A75F6F00C7C423 /* MyHyperTextConnection.h */, + 1427213729A75F6F00C7C423 /* MyHyperTextConnection.m */, + 1427217329A75F6F00C7C423 /* SJXCSMIPFacilitater.h */, + 1427218629A75F6F00C7C423 /* SJXCSMIPFacilitater.m */, + 1427217529A75F6F00C7C423 /* Vendor */, + 1427216029A75F6F00C7C423 /* Web */, + ); + path = CocoaHttpServer; + sourceTree = ""; + }; + 1427213829A75F6F00C7C423 /* Core */ = { + isa = PBXGroup; + children = ( + 1427213929A75F6F00C7C423 /* HyperTextConnection.h */, + 1427213A29A75F6F00C7C423 /* HTTPLogging.h */, + 1427213B29A75F6F00C7C423 /* HyperTextCommunication.h */, + 1427213C29A75F6F00C7C423 /* TissueSocket.h */, + 1427213D29A75F6F00C7C423 /* HyperTextAuthenticationRequest.h */, + 1427213E29A75F6F00C7C423 /* Responses */, + 1427214B29A75F6F00C7C423 /* HyperTextServer.h */, + 1427214C29A75F6F00C7C423 /* HyperTextCommunication.m */, + 1427214D29A75F6F00C7C423 /* HyperTextConnection.m */, + 1427214E29A75F6F00C7C423 /* TissueSocket.m */, + 1427214F29A75F6F00C7C423 /* HTTPResponse.h */, + 1427215029A75F6F00C7C423 /* Mime */, + 1427215729A75F6F00C7C423 /* HyperTextAuthenticationRequest.m */, + 1427215829A75F6F00C7C423 /* Categories */, + 1427215F29A75F6F00C7C423 /* HyperTextServer.m */, + ); + path = Core; + sourceTree = ""; + }; + 1427213E29A75F6F00C7C423 /* Responses */ = { + isa = PBXGroup; + children = ( + 1427213F29A75F6F00C7C423 /* HyperTextAsyncAccurateRespond.h */, + 1427214029A75F6F00C7C423 /* HyperTextErrorRespond.m */, + 1427214129A75F6F00C7C423 /* HyperTextAtomicRespond.m */, + 1427214229A75F6F00C7C423 /* HyperTextDeficitirectRespond.h */, + 1427214329A75F6F00C7C423 /* HyperTextDynamicAccurateRespond.m */, + 1427214429A75F6F00C7C423 /* HyperTextAccurateRespond.m */, + 1427214529A75F6F00C7C423 /* HyperTextAsyncAccurateRespond.m */, + 1427214629A75F6F00C7C423 /* HyperTextDeficitirectRespond.m */, + 1427214729A75F6F00C7C423 /* HyperTextAtomicRespond.h */, + 1427214829A75F6F00C7C423 /* HyperTextErrorRespond.h */, + 1427214929A75F6F00C7C423 /* HyperTextAccurateRespond.h */, + 1427214A29A75F6F00C7C423 /* HyperTextDynamicAccurateRespond.h */, + ); + path = Responses; + sourceTree = ""; + }; + 1427215029A75F6F00C7C423 /* Mime */ = { + isa = PBXGroup; + children = ( + 1427215129A75F6F00C7C423 /* MultipartFormAtomicAnatomiser.h */, + 1427215229A75F6F00C7C423 /* MultipartCommunicationIntelligencer.h */, + 1427215329A75F6F00C7C423 /* MultipartCommunicationIntelligencerField.m */, + 1427215429A75F6F00C7C423 /* MultipartFormAtomicAnatomiser.m */, + 1427215529A75F6F00C7C423 /* MultipartCommunicationIntelligencer.m */, + 1427215629A75F6F00C7C423 /* MultipartCommunicationIntelligencerField.h */, + ); + path = Mime; + sourceTree = ""; + }; + 1427215829A75F6F00C7C423 /* Categories */ = { + isa = PBXGroup; + children = ( + 1427215929A75F6F00C7C423 /* DDNumber.m */, + 1427215A29A75F6F00C7C423 /* DDData.m */, + 1427215B29A75F6F00C7C423 /* DDRange.h */, + 1427215C29A75F6F00C7C423 /* DDNumber.h */, + 1427215D29A75F6F00C7C423 /* DDRange.m */, + 1427215E29A75F6F00C7C423 /* DDData.h */, + ); + path = Categories; + sourceTree = ""; + }; + 1427216029A75F6F00C7C423 /* Web */ = { + isa = PBXGroup; + children = ( + E8729EE92A3B34D30076D80A /* css */, + E8729EEA2A3B34D30076D80A /* images */, + E8729EE72A3B34D20076D80A /* index.html */, + E8729EEB2A3B34D30076D80A /* js */, + E8729EE82A3B34D20076D80A /* upload.html */, + ); + path = Web; + sourceTree = ""; + }; + 1427217529A75F6F00C7C423 /* Vendor */ = { + isa = PBXGroup; + children = ( + 1427217629A75F6F00C7C423 /* CocoaLumberjack */, + ); + path = Vendor; + sourceTree = ""; + }; + 1427217629A75F6F00C7C423 /* CocoaLumberjack */ = { + isa = PBXGroup; + children = ( + 1427217729A75F6F00C7C423 /* BWGMKJYlumbes.m */, + 1427217829A75F6F00C7C423 /* BWGLumber.h */, + 1427217929A75F6F00C7C423 /* BWGAbstractAtomicbaselumbes.h */, + 1427217A29A75F6F00C7C423 /* BWGASLlumbes.m */, + 1427217B29A75F6F00C7C423 /* BWGAccuratelumbes.h */, + 1427217C29A75F6F00C7C423 /* Extensions */, + 1427218129A75F6F00C7C423 /* BWGLumber.m */, + 1427218229A75F6F00C7C423 /* BWGMKJYlumbes.h */, + 1427218329A75F6F00C7C423 /* BWGAbstractAtomicbaselumbes.m */, + 1427218429A75F6F00C7C423 /* BWGAccuratelumbes.m */, + 1427218529A75F6F00C7C423 /* BWGASLlumbes.h */, + ); + path = CocoaLumberjack; + sourceTree = ""; + }; + 1427217C29A75F6F00C7C423 /* Extensions */ = { + isa = PBXGroup; + children = ( + 1427217D29A75F6F00C7C423 /* ContextFilterLogFormatter.h */, + 1427217E29A75F6F00C7C423 /* DispatchMHTueueLumberInitialiser.h */, + 1427217F29A75F6F00C7C423 /* ContextFilterLogFormatter.m */, + 1427218029A75F6F00C7C423 /* DispatchMHTueueLumberInitialiser.m */, + ); + path = Extensions; + sourceTree = ""; + }; + 14D8767E29A750A300E1DD7F /* YMWeb */ = { + isa = PBXGroup; + children = ( + E80E09AD2A41336500CD2BE7 /* YUMITissueRegardNevRegard.h */, + E80E09AC2A41336500CD2BE7 /* YUMITissueRegardNevRegard.m */, + 18E7B33026F317A20064BC9B /* YUMITissueRegardGovernancer.h */, + 18E7B33126F317A20064BC9B /* YUMITissueRegardGovernancer.m */, + ); + path = YMWeb; + sourceTree = ""; + }; + 14D8768029A751A100E1DD7F /* Config */ = { + isa = PBXGroup; + children = ( + E8DEC99327648FA50078CB70 /* ClientDisposition.h */, + E8DEC99427648FA50078CB70 /* ClientDisposition.m */, + E875FA8527D619820086ED04 /* ClientAtomicMatrix.h */, + E875FA8627D619820086ED04 /* ClientAtomicMatrix.m */, + 9BA812D028BF145700783EA7 /* ClientDeficitSheatheMatrix.h */, + 9BA812D128BF145700783EA7 /* ClientDeficitSheatheMatrix.m */, + ); + path = Config; + sourceTree = ""; + }; + 14D8768129A751E100E1DD7F /* Image */ = { + isa = PBXGroup; + children = ( + E84A2EAE2A52F27000D6AF8A /* 1242.png */, + ); + path = Image; + sourceTree = ""; + }; + 14D8768429A752B500E1DD7F /* Network */ = { + isa = PBXGroup; + children = ( + 189DD6FD26E20E5900AB55B1 /* HttpRequestFacilitater.h */, + 189DD6FE26E20E5900AB55B1 /* HttpRequestFacilitater.m */, + ); + path = Network; + sourceTree = ""; + }; + 14DCAD12299B9B0B00A7DD31 /* NewLogin */ = { + isa = PBXGroup; + children = ( + E896A9932A49F8A20010FE65 /* login_vapbg.mp4 */, + 14DCAD0F299B946E00A7DD31 /* YUMISurmountBaseRegardGovernancer.h */, + 14DCAD10299B946E00A7DD31 /* YUMISurmountBaseRegardGovernancer.m */, + 14B880DF299A1799005FCA1B /* YUMISurmountRegardGovernancer.h */, + 14B880E0299A1799005FCA1B /* YUMISurmountRegardGovernancer.m */, + 14B880E5299A4B62005FCA1B /* YUMISurmountMobileRegardGovernancer.h */, + 14B880E6299A4B62005FCA1B /* YUMISurmountMobileRegardGovernancer.m */, + 14DCAD06299B36A500A7DD31 /* YUMISurmountPwordRegardGovernancer.h */, + 14DCAD07299B36A500A7DD31 /* YUMISurmountPwordRegardGovernancer.m */, + 14DCAD0C299B6AD900A7DD31 /* YUMIForgetPwordRegardGovernancer.h */, + 14DCAD0D299B6AD900A7DD31 /* YUMIForgetPwordRegardGovernancer.m */, + 14DCAD09299B5D3A00A7DD31 /* YUMISurmountIntrojectionRegard.h */, + 14DCAD0A299B5D3A00A7DD31 /* YUMISurmountIntrojectionRegard.m */, + E818DD1A2A4896EE00F163F7 /* YUMISurmountAraeRegardGovernancer.h */, + E818DD1B2A4896EE00F163F7 /* YUMISurmountAraeRegardGovernancer.m */, + E818DD202A48977F00F163F7 /* YUMISurmountAreaTabulationRegardElement.h */, + E818DD212A48977F00F163F7 /* YUMISurmountAreaTabulationRegardElement.m */, + ); + path = NewLogin; + sourceTree = ""; + }; + 180116F6279E8C3100F2CBC0 /* Date */ = { + isa = PBXGroup; + children = ( + 180116FB279E8CCE00F2CBC0 /* NVDate.h */, + 180116FA279E8CCE00F2CBC0 /* NVDate.m */, + 180116F7279E8C4C00F2CBC0 /* PLIntratemporalUtil.h */, + 180116F8279E8C4C00F2CBC0 /* PLIntratemporalUtil.m */, + E8555159280559FE005F293F /* NSDate+DateUtils.h */, + E855515A280559FE005F293F /* NSDate+DateUtils.m */, + ); + path = Date; + sourceTree = ""; + }; + 18486210271EA9A5005FC5DC /* YMRTC */ = { + isa = PBXGroup; + children = ( + 18486211271EA9DA005FC5DC /* RealtimackExecutive.h */, + 18486212271EA9DA005FC5DC /* RealtimackExecutive.m */, + 18486214271EAA03005FC5DC /* RtcRepresendtation.h */, + 1848623627200FDE005FC5DC /* RtcImpl */, + 184862C927213FC7005FC5DC /* Library */, + ); + path = YMRTC; + sourceTree = ""; + }; + 1848623627200FDE005FC5DC /* RtcImpl */ = { + isa = PBXGroup; + children = ( + 18486215271EAB8C005FC5DC /* BaseRealtimackConnector.h */, + 18486216271EAB8C005FC5DC /* BaseRealtimackConnector.m */, + 18486233271EB794005FC5DC /* AgoraRealtimackConnector.h */, + 18486234271EB794005FC5DC /* AgoraRealtimackConnector.m */, + 184862CD27213FD7005FC5DC /* ZegoRealtimackConnector.h */, + 184862CC27213FD7005FC5DC /* ZegoRealtimackConnector.m */, + 18F40438275E20D900A6C548 /* TRTCRealtimackConnector.h */, + 18F40439275E20D900A6C548 /* TRTCRealtimackConnector.m */, + E81D587B271FBC3B003063FE /* RtcInterface.h */, + 9BB865B4272076140029CDE0 /* RtcImplRepresendtation.h */, + ); + path = RtcImpl; + sourceTree = ""; + }; + 184862C927213FC7005FC5DC /* Library */ = { + isa = PBXGroup; + children = ( + 1427212329A7563A00C7C423 /* ZegoAudioRoom.framework */, + ); + path = Library; + sourceTree = ""; + }; + 186A532B26FC6ED900D67B2C /* MKJPopup */ = { + isa = PBXGroup; + children = ( + 186A533A26FC6ED900D67B2C /* MKJPopup.h */, + 186A532C26FC6ED900D67B2C /* MKJPopup.m */, + 186A532D26FC6ED900D67B2C /* Config */, + 186A533626FC6ED900D67B2C /* Manager */, + 186A533B26FC6ED900D67B2C /* View */, + 186A534026FC6ED900D67B2C /* Service */, + 186A534426FC6ED900D67B2C /* Header */, + ); + path = MKJPopup; + sourceTree = ""; + }; + 186A532D26FC6ED900D67B2C /* Config */ = { + isa = PBXGroup; + children = ( + 186A533226FC6ED900D67B2C /* MKJPrecautiousDisposition.h */, + 186A532E26FC6ED900D67B2C /* MKJPrecautiousDisposition.m */, + 186A533126FC6ED900D67B2C /* MKJActionSheetDisposition.h */, + 186A533526FC6ED900D67B2C /* MKJActionSheetDisposition.m */, + 186A533026FC6ED900D67B2C /* MKJPrecautiousButtonDisposition.h */, + 186A533326FC6ED900D67B2C /* MKJPrecautiousButtonDisposition.m */, + 186A532F26FC6ED900D67B2C /* MKJPrecautiousCommunicationAttributedDisposition.h */, + 186A533426FC6ED900D67B2C /* MKJPrecautiousCommunicationAttributedDisposition.m */, + ); + path = Config; + sourceTree = ""; + }; + 186A533626FC6ED900D67B2C /* Manager */ = { + isa = PBXGroup; + children = ( + 186A533726FC6ED900D67B2C /* TTPopupExecutiveServiceCeremony.h */, + 186A533826FC6ED900D67B2C /* MKJPopupExecutiveServing.h */, + 186A533926FC6ED900D67B2C /* MKJPopupExecutiveServing.m */, + ); + path = Manager; + sourceTree = ""; + }; + 186A533B26FC6ED900D67B2C /* View */ = { + isa = PBXGroup; + children = ( + 186A533E26FC6ED900D67B2C /* MKJPrecautiousRegard.h */, + 186A533C26FC6ED900D67B2C /* MKJPrecautiousRegard.m */, + 186A533D26FC6ED900D67B2C /* MKJActionSheetRegard.h */, + 186A533F26FC6ED900D67B2C /* MKJActionSheetRegard.m */, + ); + path = View; + sourceTree = ""; + }; + 186A534026FC6ED900D67B2C /* Service */ = { + isa = PBXGroup; + children = ( + 186A534326FC6ED900D67B2C /* MKJPopupServing.h */, + 186A534126FC6ED900D67B2C /* MKJPopupServing.m */, + 186A534226FC6ED900D67B2C /* TTPopupServiceCeremony.h */, + ); + path = Service; + sourceTree = ""; + }; + 186A534426FC6ED900D67B2C /* Header */ = { + isa = PBXGroup; + children = ( + 186A534526FC6ED900D67B2C /* TTPopupConstants.h */, + ); + path = Header; + sourceTree = ""; + }; + 186A536026FC6F2E00D67B2C /* ShareView */ = { + isa = PBXGroup; + children = ( + 186A536226FC6F2E00D67B2C /* YUMIParaticipationRegard.h */, + 186A536126FC6F2E00D67B2C /* YUMIParaticipationRegard.m */, + 186A536326FC6F2E00D67B2C /* Model */, + 186A536626FC6F2E00D67B2C /* View */, + ); + path = ShareView; + sourceTree = ""; + }; + 186A536326FC6F2E00D67B2C /* Model */ = { + isa = PBXGroup; + children = ( + E82325E4274CCAFA003A3332 /* YUMIParaticipationAbstractMatrix.h */, + E82325E5274CCAFA003A3332 /* YUMIParaticipationAbstractMatrix.m */, + E82325E7274CE56A003A3332 /* YUMIParaticipationProvision.h */, + E82325E8274CE56A003A3332 /* YUMIParaticipationProvision.m */, + ); + path = Model; + sourceTree = ""; + }; + 186A536626FC6F2E00D67B2C /* View */ = { + isa = PBXGroup; + children = ( + 186A536826FC6F2E00D67B2C /* YUMIParaticipationProvisionElement.h */, + 186A536726FC6F2E00D67B2C /* YUMIParaticipationProvisionElement.m */, + ); + path = View; + sourceTree = ""; + }; + 187EEEA926E62679002833B2 /* Api */ = { + isa = PBXGroup; + children = ( + 189DD75726E6003C00AB55B1 /* Api.h */, + 189DD75826E6003C00AB55B1 /* Api.m */, + ); + path = Api; + sourceTree = ""; + }; + 189DD52026DE255300AB55B1 = { + isa = PBXGroup; + children = ( + 189DD52B26DE255300AB55B1 /* YuMi */, + 189DD52A26DE255300AB55B1 /* Products */, + D09C770DC30B9BAAEAFC7945 /* Pods */, + BFB922F5D81845AC32D1E1ED /* Frameworks */, + 9B9DFDA227DB4F68000F95B3 /* Recovered References */, + ); + sourceTree = ""; + }; + 189DD52A26DE255300AB55B1 /* Products */ = { + isa = PBXGroup; + children = ( + 189DD52926DE255300AB55B1 /* YuMi.app */, + ); + name = Products; + sourceTree = ""; + }; + 189DD52B26DE255300AB55B1 /* YuMi */ = { + isa = PBXGroup; + children = ( + E80E09AF2A41573700CD2BE7 /* GoogleService-Info.plist */, + E8729EBA2A3B10C10076D80A /* YuMi.entitlements */, + E8729EB92A3B10C10076D80A /* YuMiRelease.entitlements */, + 189DD56C26DF5B5400AB55B1 /* CustomUI */, + 189DD5A726DFA09700AB55B1 /* Tools */, + 14D8768429A752B500E1DD7F /* Network */, + E8A1E45C276220B100B294CA /* Resources */, + E81C279926EB64BA0031E639 /* Global */, + 14D8768029A751A100E1DD7F /* Config */, + 189DD56B26DF5B0900AB55B1 /* Structure */, + 189DD56126DE45F800AB55B1 /* Modules */, + E81C27AF26EF39B00031E639 /* AppDelegate */, + 189DD53826DE255600AB55B1 /* Assets.xcassets */, + E84A2EAC2A52F20900D6AF8A /* Launch Screen.storyboard */, + 189DD53D26DE255600AB55B1 /* Info.plist */, + E80E09AB2A40B70100CD2BE7 /* Localizable.strings */, + 189DD53E26DE255600AB55B1 /* main.m */, + ); + path = YuMi; + sourceTree = ""; + }; + 189DD54826DE327B00AB55B1 /* MVP */ = { + isa = PBXGroup; + children = ( + 187EEEA926E62679002833B2 /* Api */, + 189DD56026DE456100AB55B1 /* Model */, + 189DD55326DE382E00AB55B1 /* View */, + 189DD55726DE398A00AB55B1 /* Presenter */, + 189DD55D26DE3BA300AB55B1 /* Protocol */, + ); + path = MVP; + sourceTree = ""; + }; + 189DD55326DE382E00AB55B1 /* View */ = { + isa = PBXGroup; + children = ( + 189DD54E26DE37F900AB55B1 /* MvpRegardGovernancer.h */, + 189DD54F26DE37F900AB55B1 /* MvpRegardGovernancer.m */, + ); + path = View; + sourceTree = ""; + }; + 189DD55726DE398A00AB55B1 /* Presenter */ = { + isa = PBXGroup; + children = ( + 189DD55826DE39D200AB55B1 /* BaseMvpExternalizer.h */, + 189DD55926DE39D200AB55B1 /* BaseMvpExternalizer.m */, + ); + path = Presenter; + sourceTree = ""; + }; + 189DD55D26DE3BA300AB55B1 /* Protocol */ = { + isa = PBXGroup; + children = ( + 189DD55E26DE3BBE00AB55B1 /* BaseMvpCeremony.h */, + ); + path = Protocol; + sourceTree = ""; + }; + 189DD56026DE456100AB55B1 /* Model */ = { + isa = PBXGroup; + children = ( + 14D8767A29A7445C00E1DD7F /* NSObject+AutoCoding.h */, + 14D8767B29A7445C00E1DD7F /* NSObject+AutoCoding.m */, + 187EEEDA26E89B32002833B2 /* BaseMatrix.h */, + 187EEEDB26E89B32002833B2 /* BaseMatrix.m */, + 187EEEDF26E89BFB002833B2 /* AccountMatrix.h */, + 187EEEE026E89BFB002833B2 /* AccountMatrix.m */, + 187EEEEF26E89FE8002833B2 /* AccountAbstractStorage.h */, + 187EEEEE26E89FE8002833B2 /* AccountAbstractStorage.m */, + 18E7B31626F097E00064BC9B /* ConsumerAbstractMatrix.h */, + 18E7B31726F097E00064BC9B /* ConsumerAbstractMatrix.m */, + 18E7B31926F0982E0064BC9B /* ConsumerExpand.h */, + 18E7B31A26F0982E0064BC9B /* ConsumerExpand.m */, + 18E7B31C26F0984C0064BC9B /* ConsumerPrototypeVo.h */, + 18E7B31D26F0984C0064BC9B /* ConsumerPrototypeVo.m */, + 18E7B31F26F098650064BC9B /* ConsumerAbstractCommunicationVo.h */, + 18E7B32026F098650064BC9B /* ConsumerAbstractCommunicationVo.m */, + E8EEB8F526FC2673007C6EBA /* ConsumerAppearance.h */, + E8EEB8F626FC2673007C6EBA /* ConsumerAppearance.m */, + 9B2A12DC2783FEDD00CED41B /* ConsumerVipAbstractVo.h */, + 9B2A12DD2783FEDD00CED41B /* ConsumerVipAbstractVo.m */, + ); + path = Model; + sourceTree = ""; + }; + 189DD56126DE45F800AB55B1 /* Modules */ = { + isa = PBXGroup; + children = ( + E87E624F2A3F54B5002F68C9 /* YMNewHome */, + 18E7B1B426E8B2960064BC9B /* YMTabbar */, + E81DCCC4282B620A0039E5C5 /* YMMonents */, + 18A61BCC274F72ED00A09A54 /* YMMessage */, + E8E70D6E26F2EB1200F03460 /* YMMine */, + 18486210271EA9A5005FC5DC /* YMRTC */, + E8AEAED3271412D00017FCE0 /* YMRoom */, + 189DD56226DE460400AB55B1 /* YMLogin */, + 14D8767E29A750A300E1DD7F /* YMWeb */, + ); + path = Modules; + sourceTree = ""; + }; + 189DD56226DE460400AB55B1 /* YMLogin */ = { + isa = PBXGroup; + children = ( + E8B825BC26E9E520009E8E9F /* Model */, + 189DD75326E2211000AB55B1 /* Api */, + 189DD58A26DF978700AB55B1 /* View */, + 189DD58B26DF978F00AB55B1 /* Presenter */, + 189DD59126DF97F600AB55B1 /* Protocol */, + ); + path = YMLogin; + sourceTree = ""; + }; + 189DD56B26DF5B0900AB55B1 /* Structure */ = { + isa = PBXGroup; + children = ( + E8A72BBA2A3AFB2F00B2EC07 /* PrefixHeader.pch */, + 1427213529A75C7D00C7C423 /* Base */, + 189DD54826DE327B00AB55B1 /* MVP */, + ); + path = Structure; + sourceTree = ""; + }; + 189DD56C26DF5B5400AB55B1 /* CustomUI */ = { + isa = PBXGroup; + children = ( + E8FE3C292994D0CC0006C6C7 /* SwitchView */, + E81E09C6290F719C00A1F410 /* Adbvertise */, + E80EC74A28ACD84000D133C5 /* InputView */, + E8998D932859DD3F00C68558 /* UIViewCorner */, + E8998D772859782C00C68558 /* SVGA */, + E8659640270160F200846EBD /* VagueImageView */, + E8AC720A26F435AF007D6E91 /* UIImageView */, + E81366F926F0D27A0076364C /* UIButton */, + E82109B126F2050D00FC3319 /* UIImage */, + 186A532B26FC6ED900D67B2C /* MKJPopup */, + 186A536026FC6F2E00D67B2C /* ShareView */, + 18E7B26826E8D5D60064BC9B /* XCCurrentVCStackExecutive.h */, + 18E7B26726E8D5D60064BC9B /* XCCurrentVCStackExecutive.m */, + 189DD68326E1FDBB00AB55B1 /* XNDJTBWGLoadingTool.h */, + 189DD68226E1FDBB00AB55B1 /* XNDJTBWGLoadingTool.m */, + E8B825CB26EA18C8009E8E9F /* DJDKMIMOMColor.h */, + E8B825CC26EA18C8009E8E9F /* DJDKMIMOMColor.m */, + ); + path = CustomUI; + sourceTree = ""; + }; + 189DD58A26DF978700AB55B1 /* View */ = { + isa = PBXGroup; + children = ( + 14DCAD12299B9B0B00A7DD31 /* NewLogin */, + E872308A26E89D5100B90D4F /* CustomView */, + E8B825C926EA1231009E8E9F /* SurmountValidationCodeRegardGovernancer.h */, + E8B825C826EA1231009E8E9F /* SurmountValidationCodeRegardGovernancer.m */, + E81366E126F0A1FC0076364C /* SurmountDilemmaMobileRegardGovernancer.h */, + E81366E226F0A1FC0076364C /* SurmountDilemmaMobileRegardGovernancer.m */, + E8AC723B26F4B6AA007D6E91 /* YUMISurmountDilemmaMobileConsequentRegardGovernancer.h */, + E8AC723C26F4B6AA007D6E91 /* YUMISurmountDilemmaMobileConsequentRegardGovernancer.m */, + E81366F126F0B7C80076364C /* SurmountFullAbstractRegardGovernancer.h */, + E81366F226F0B7C80076364C /* SurmountFullAbstractRegardGovernancer.m */, + E824543326F57D6E00BE8163 /* YUMISurmountValidationDilemmaMobileRegardGovernancer.h */, + E824543426F57D6E00BE8163 /* YUMISurmountValidationDilemmaMobileRegardGovernancer.m */, + ); + path = View; + sourceTree = ""; + }; + 189DD58B26DF978F00AB55B1 /* Presenter */ = { + isa = PBXGroup; + children = ( + 189DD58D26DF97E700AB55B1 /* SurmountExternalizer.h */, + 189DD58E26DF97E700AB55B1 /* SurmountExternalizer.m */, + E8B825C026EA00DF009E8E9F /* SurmountValidationCodeExternalize.h */, + E8B825C126EA00DF009E8E9F /* SurmountValidationCodeExternalize.m */, + E8CEA03B26EA3DE500644B44 /* SurmountCiphercodeExternalize.h */, + E8CEA03C26EA3DE500644B44 /* SurmountCiphercodeExternalize.m */, + E81C279426EB39CC0031E639 /* SurmountForgetCiphercodeExternalize.h */, + E81C279526EB39CC0031E639 /* SurmountForgetCiphercodeExternalize.m */, + E81366F426F0C0DF0076364C /* SurmountFullAbstractExternalizer.h */, + E81366F526F0C0DF0076364C /* SurmountFullAbstractExternalizer.m */, + E82109AE26F1D83500FC3319 /* SurmountDilemmaMobileExternalize.h */, + E82109AF26F1D83500FC3319 /* SurmountDilemmaMobileExternalize.m */, + E824543626F5820A00BE8163 /* YUMISurmountValidationDilemmaMobileExternalizer.h */, + E824543726F5820A00BE8163 /* YUMISurmountValidationDilemmaMobileExternalizer.m */, + ); + path = Presenter; + sourceTree = ""; + }; + 189DD59126DF97F600AB55B1 /* Protocol */ = { + isa = PBXGroup; + children = ( + 189DD59426DF986300AB55B1 /* SurmountCeremony.h */, + E8B825C626EA0995009E8E9F /* SurmountVerifCodeCeremony.h */, + E8CEA03E26EA3E0200644B44 /* SurmountCiphercodeCeremony.h */, + E81C279726EB39E10031E639 /* SurmountForgetCiphercodeCeremony.h */, + E81366F726F0C0F60076364C /* SurmountFullAbstractCeremony.h */, + E824543926F5822800BE8163 /* FBCSurmountVerifBindPhoneCeremony.h */, + ); + path = Protocol; + sourceTree = ""; + }; + 189DD5A726DFA09700AB55B1 /* Tools */ = { + isa = PBXGroup; + children = ( + E83645A42A40AEF600E0DBE4 /* Bundle */, + E83645652A40A2CA00E0DBE4 /* CardManager */, + 1427213629A75F6F00C7C423 /* CocoaHttpServer */, + E8F61356291E269700E12650 /* Safe */, + 9B09979F27F19D1C00EB8F14 /* QGVAPlayer */, + 9B33E3C827D85379003B0E62 /* File */, + E80CBDE727D0C528001E1EC2 /* Timer */, + 180116F6279E8C3100F2CBC0 /* Date */, + 9B17F71527BD14FF00440843 /* SVGAAnatomiserExecutive */, + E88863D0278ED4A0004BCFAB /* Intratemporalstamp */, + E82D5C77276B25B000858D6D /* SpriteSheetManager */, + E865964E2701A1A900846EBD /* StatsticsticsServing */, + E89DA6612700590A008483C1 /* IAPHelper */, + E8B846B926FD7BE600A777FE /* UpwardsloadIndicate */, + E8EEB8EA26FC2050007C6EBA /* SDAppearanceBrowser */, + E81366E426F0A4820076364C /* NSString */, + E82109AA26F1C86E00FC3319 /* CountDown */, + E81C278726EAFABF0031E639 /* Security */, + 189DD74D26E21D9000AB55B1 /* GCDHelper */, + 189DD74226E21CCC00AB55B1 /* Reachability */, + 189DD73626E21C3F00AB55B1 /* YYUtility */, + 180806D627293794001FD836 /* NSObject+MJExtension.h */, + 180806D727293794001FD836 /* NSObject+MJExtension.m */, + ); + path = Tools; + sourceTree = ""; + }; + 189DD73626E21C3F00AB55B1 /* YYUtility */ = { + isa = PBXGroup; + children = ( + 189DD73726E21C3F00AB55B1 /* CarrierIdentifier.h */, + 189DD73C26E21C3F00AB55B1 /* YYUtility.h */, + 189DD73926E21C3F00AB55B1 /* YYUtility.m */, + 189DD73B26E21C3F00AB55B1 /* YYUtility+App.m */, + 189DD73A26E21C3F00AB55B1 /* YYUtility+Carrier.m */, + 189DD73826E21C3F00AB55B1 /* YYUtility+Device.m */, + ); + path = YYUtility; + sourceTree = ""; + }; + 189DD74226E21CCC00AB55B1 /* Reachability */ = { + isa = PBXGroup; + children = ( + 189DD74326E21CCC00AB55B1 /* YYReachability.h */, + 189DD74426E21CCC00AB55B1 /* YYReachability.m */, + ); + path = Reachability; + sourceTree = ""; + }; + 189DD74D26E21D9000AB55B1 /* GCDHelper */ = { + isa = PBXGroup; + children = ( + 189DD74E26E21D9000AB55B1 /* GCDHelper.m */, + 189DD74F26E21D9000AB55B1 /* GCDHelper.h */, + ); + path = GCDHelper; + sourceTree = ""; + }; + 189DD75326E2211000AB55B1 /* Api */ = { + isa = PBXGroup; + children = ( + 189DD76026E60DDC00AB55B1 /* Api+Login.h */, + 189DD76126E60DDC00AB55B1 /* Api+Login.m */, + ); + path = Api; + sourceTree = ""; + }; + 18A61BCC274F72ED00A09A54 /* YMMessage */ = { + isa = PBXGroup; + children = ( + E884C3782743B6AA00E1EBED /* Tool */, + 18F404B8276097F200A6C548 /* Model */, + 18F404BD276098A800A6C548 /* Api */, + 18F404BC2760989300A6C548 /* View */, + 18F404C4276099B300A6C548 /* Presenter */, + 18F404C5276099C800A6C548 /* Protocol */, + ); + path = YMMessage; + sourceTree = ""; + }; + 18E7B1B426E8B2960064BC9B /* YMTabbar */ = { + isa = PBXGroup; + children = ( + E8B3E8062848B84F009746AB /* Model */, + E8B3E8052848B849009746AB /* Api */, + E8B3E8042848B842009746AB /* View */, + E8B3E8032848B838009746AB /* Presenter */, + E8B3E8022848B828009746AB /* Protocol */, + ); + path = YMTabbar; + sourceTree = ""; + }; + 18EE3FF52754AFD900A452BF /* SessionList */ = { + isa = PBXGroup; + children = ( + 18A61BE6274F9CF000A09A54 /* InterlocutionStatementRegardGovernancer.h */, + 18A61BE7274F9CF000A09A54 /* InterlocutionStatementRegardGovernancer.m */, + 18EE3FDD2750C1F700A452BF /* InterlocutionStatementElement.h */, + 18EE3FDE2750C1F700A452BF /* InterlocutionStatementElement.m */, + ); + path = SessionList; + sourceTree = ""; + }; + 18EE3FF72754B01D00A452BF /* NIMViews */ = { + isa = PBXGroup; + children = ( + 18EE3FE02750C29D00A452BF /* NEMCBadgeRegard.h */, + 18EE3FE12750C29D00A452BF /* NEMCBadgeRegard.m */, + 9B7D804F2753AA9D003DAC0C /* UITableView+NIMScrollToBottom.h */, + 9B7D804E2753AA9D003DAC0C /* UITableView+NIMScrollToBottom.m */, + 18EE3FF22750FA3700A452BF /* UIView+NIM.h */, + 18EE3FF32750FA3700A452BF /* UIView+NIM.m */, + ); + path = NIMViews; + sourceTree = ""; + }; + 18F403A72758B67900A6C548 /* Content */ = { + isa = PBXGroup; + children = ( + E81060D62987613E00B772F0 /* SesssionModel */, + 18F403A32758B5F900A6C548 /* CommunicationContentCeremony.h */, + E885D53A2977FBFD004DC088 /* CommunicationIntratemporalRegard.h */, + E885D53B2977FBFD004DC088 /* CommunicationIntratemporalRegard.m */, + E8383698298A59C100112E1C /* CommunicationTipsRegard.h */, + E8383699298A59C100112E1C /* CommunicationTipsRegard.m */, + 18F403C92758C66800A6C548 /* CommunicationSatisfactionEssay.h */, + 18F403CA2758C66800A6C548 /* CommunicationSatisfactionEssay.m */, + E8F1558B28124D5200EE8C06 /* CommunicationConentVocalmusicRegard.h */, + E8F1558C28124D5200EE8C06 /* CommunicationConentVocalmusicRegard.m */, + 18F403EC2758CF2F00A6C548 /* CommunicationSatisfactionIndicate.h */, + 18F403ED2758CF2F00A6C548 /* CommunicationSatisfactionIndicate.m */, + E873EB0A2809850D0071030D /* CommunicationSatisfactionCustomRegard.h */, + E873EB0B2809850D0071030D /* CommunicationSatisfactionCustomRegard.m */, + E873EB0D28098D500071030D /* CommunicationSatisfactionPresentRegard.h */, + E873EB0E28098D500071030D /* CommunicationSatisfactionPresentRegard.m */, + 18AAF3EE279EA59300CD7DAD /* CommunicationSatisfactionEssayClickable.h */, + 18AAF3EF279EA59300CD7DAD /* CommunicationSatisfactionEssayClickable.m */, + E80B0732280D740600A79F63 /* CommunicationSatisfactionUnionRegard.h */, + E80B0733280D740600A79F63 /* CommunicationSatisfactionUnionRegard.m */, + E83ABEF4280E9AD800322EE4 /* CommunicationSatisfactionUnSupportRegard.h */, + E83ABEF5280E9AD800322EE4 /* CommunicationSatisfactionUnSupportRegard.m */, + E83ABEF7280EAF3F00322EE4 /* CommunicationSatisfactionUnfoildEnergeticRegard.h */, + E83ABEF8280EAF3F00322EE4 /* CommunicationSatisfactionUnfoildEnergeticRegard.m */, + E83ABEFE280EC45700322EE4 /* CommunicationSatisfactionApplicationParaticipationRegard.h */, + E83ABEFF280EC45700322EE4 /* CommunicationSatisfactionApplicationParaticipationRegard.m */, + E83ABF04280EDE2B00322EE4 /* CommunicationSatisfactionPrototypeAscensionRegard.h */, + E83ABF05280EDE2B00322EE4 /* CommunicationSatisfactionPrototypeAscensionRegard.m */, + E86507E3281A7D4D006951B0 /* CommunicationSatisfactionTweetRegard.h */, + E86507E4281A7D4D006951B0 /* CommunicationSatisfactionTweetRegard.m */, + E86507E9281A88A9006951B0 /* CommunicationSatisfactionCommunicationSolitaireRegard.h */, + E86507EA281A88A9006951B0 /* CommunicationSatisfactionCommunicationSolitaireRegard.m */, + E8E0DADE285C20E500566A2F /* CommunicationSatisfactionDiscoveryStrangeBewelcometoRegard.h */, + E8E0DADF285C20E500566A2F /* CommunicationSatisfactionDiscoveryStrangeBewelcometoRegard.m */, + E86E79CB28A4E045006DAF48 /* CommunicationSatisfactionVenturePrecautiousRegard.h */, + E86E79CC28A4E045006DAF48 /* CommunicationSatisfactionVenturePrecautiousRegard.m */, + E85E3FA528B7A6F000268DC8 /* CommunicationSatisfactionSeparationsRegard.h */, + E85E3FA628B7A6F000268DC8 /* CommunicationSatisfactionSeparationsRegard.m */, + E80A63DA28B86B9700690914 /* CommunicationSatisfactionSeparationsAutoRegard.h */, + E80A63DB28B86B9700690914 /* CommunicationSatisfactionSeparationsAutoRegard.m */, + 9B88E20A28C5EB8300D26FBA /* CommunicationSatisfactionDeficitSheatheRegard.h */, + 9B88E20B28C5EB8300D26FBA /* CommunicationSatisfactionDeficitSheatheRegard.m */, + E8778AE22988B57B00CF139B /* CommunicationSatisfactionRevokeRegard.h */, + E8778AE32988B57B00CF139B /* CommunicationSatisfactionRevokeRegard.m */, + ); + path = Content; + sourceTree = ""; + }; + 18F404B8276097F200A6C548 /* Model */ = { + isa = PBXGroup; + children = ( + E899C68D2750DA3C00E189E5 /* CustomMessage */, + E884C36D2743AAC800E1EBED /* AttachmentMatrix.h */, + E884C36E2743AAC800E1EBED /* AttachmentMatrix.m */, + E8D55C9A281131F1006935A5 /* SessionToolBar */, + E83ABEFA280EB5A000322EE4 /* SessionContent */, + 18F404B92760982000A6C548 /* ChatLimitMatrix.h */, + 18F404BA2760982000A6C548 /* ChatLimitMatrix.m */, + E885D5342977CE28004DC088 /* InterlocutionInstanllingMatrix.h */, + E885D5352977CE28004DC088 /* InterlocutionInstanllingMatrix.m */, + ); + path = Model; + sourceTree = ""; + }; + 18F404BC2760989300A6C548 /* View */ = { + isa = PBXGroup; + children = ( + E8778AE82988EE9200CF139B /* SayHello */, + 9BD798AE29262306003E03E6 /* SessionListHeadView */, + E8A30BDB28534667003B4873 /* FindNew */, + 18EE3FF72754B01D00A452BF /* NIMViews */, + 18EE3FF52754AFD900A452BF /* SessionList */, + 9B7D804727537819003DAC0C /* Session */, + 18EE3FEC2750CE6D00A452BF /* NEMCCommunicationUtils.h */, + 18EE3FED2750CE6D00A452BF /* NEMCCommunicationUtils.m */, + 18EE3FEF2750D2AD00A452BF /* NEMCIntratemporalUtils.h */, + 18EE3FF02750D2AD00A452BF /* NEMCIntratemporalUtils.m */, + 18EE40192754BA9F00A452BF /* NEMCCommunicationMaker.h */, + 18EE40182754BA9F00A452BF /* NEMCCommunicationMaker.m */, + E8F1558E28125E2D00EE8C06 /* CommunicationVocalmusicConcentrate.h */, + E8F1558F28125E2D00EE8C06 /* CommunicationVocalmusicConcentrate.m */, + ); + path = View; + sourceTree = ""; + }; + 18F404BD276098A800A6C548 /* Api */ = { + isa = PBXGroup; + children = ( + 18F404C1276098F100A6C548 /* Api+Message.h */, + 18F404C2276098F100A6C548 /* Api+Message.m */, + ); + path = Api; + sourceTree = ""; + }; + 18F404C4276099B300A6C548 /* Presenter */ = { + isa = PBXGroup; + children = ( + 18F404C727609A4300A6C548 /* CommunicationExternalizer.h */, + 18F404C827609A4300A6C548 /* CommunicationExternalizer.m */, + ); + path = Presenter; + sourceTree = ""; + }; + 18F404C5276099C800A6C548 /* Protocol */ = { + isa = PBXGroup; + children = ( + 18F404C6276099DF00A6C548 /* CommunicationCeremony.h */, + ); + path = Protocol; + sourceTree = ""; + }; + 9B0086C727BA4F4A0032BD2B /* Anchor */ = { + isa = PBXGroup; + children = ( + 9B0086C827BA4F570032BD2B /* KellegMiecreoscoopeRegard.h */, + 9B0086C927BA4F570032BD2B /* KellegMiecreoscoopeRegard.m */, + 9B2EA7C12804052E00ED17BF /* KellegCombatMiecreoscoopeRegard.h */, + 9B2EA7C22804052E00ED17BF /* KellegCombatMiecreoscoopeRegard.m */, + ); + path = Anchor; + sourceTree = ""; + }; + 9B09979F27F19D1C00EB8F14 /* QGVAPlayer */ = { + isa = PBXGroup; + children = ( + 9B0997A227F19DE500EB8F14 /* QGHWDShaders.metal */, + 9B0997A027F19D8900EB8F14 /* README.md */, + ); + path = QGVAPlayer; + sourceTree = ""; + }; + 9B17F71527BD14FF00440843 /* SVGAAnatomiserExecutive */ = { + isa = PBXGroup; + children = ( + 9B17F71627BD150600440843 /* SVGAAnatomiserExecutive.h */, + 9B17F71727BD150600440843 /* SVGAAnatomiserExecutive.m */, + ); + path = SVGAAnatomiserExecutive; + sourceTree = ""; + }; + 9B1B729A28002249003FACE9 /* AnchorFansTeam */ = { + isa = PBXGroup; + children = ( + 9B1B729B28002264003FACE9 /* YUMIManeKellegFanaticsSquadMatrix.h */, + 9B1B729C28002264003FACE9 /* YUMIManeKellegFanaticsSquadMatrix.m */, + ); + path = AnchorFansTeam; + sourceTree = ""; + }; + 9B1B729E280023D5003FACE9 /* AnchorFansTeam */ = { + isa = PBXGroup; + children = ( + 9B1B729F280023F3003FACE9 /* YUMIManeKellegFanaticsSquadTabulationRegardElement.h */, + 9B1B72A0280023F3003FACE9 /* YUMIManeKellegFanaticsSquadTabulationRegardElement.m */, + ); + path = AnchorFansTeam; + sourceTree = ""; + }; + 9B1B72A228002F76003FACE9 /* AnchorPK */ = { + isa = PBXGroup; + children = ( + 9B1B72A9280031A2003FACE9 /* Protocol */, + 9B1B72A82800319B003FACE9 /* Presenter */, + 9B1B72A528003185003FACE9 /* View */, + 9B1B72A42800317F003FACE9 /* Api */, + ); + path = AnchorPK; + sourceTree = ""; + }; + 9B1B72A42800317F003FACE9 /* Api */ = { + isa = PBXGroup; + children = ( + 9B1B72B328003664003FACE9 /* Api+AnchorPk.h */, + 9B1B72B428003664003FACE9 /* Api+AnchorPk.m */, + ); + path = Api; + sourceTree = ""; + }; + 9B1B72A528003185003FACE9 /* View */ = { + isa = PBXGroup; + children = ( + 9B1B72A728003196003FACE9 /* Cell */, + 9B1B72A62800318A003FACE9 /* SubViews */, + 9B1B72AA280031DB003FACE9 /* XCombatellegCombatRegardGovernancer.h */, + 9B1B72AB280031DB003FACE9 /* XCombatellegCombatRegardGovernancer.m */, + 9B1B72AD280031F8003FACE9 /* XCombatellegCombatChosenChamberRegard.h */, + 9B1B72AE280031F8003FACE9 /* XCombatellegCombatChosenChamberRegard.m */, + 9B335B472925D8A00048A116 /* XCombatellegCombatChosenGenreGovernancer.h */, + 9B335B482925D8A00048A116 /* XCombatellegCombatChosenGenreGovernancer.m */, + ); + path = View; + sourceTree = ""; + }; + 9B1B72A62800318A003FACE9 /* SubViews */ = { + isa = PBXGroup; + children = ( + 9B1B72BD2800422E003FACE9 /* XCombatellegCombatPreadominantRegard.h */, + 9B1B72BE2800422E003FACE9 /* XCombatellegCombatPreadominantRegard.m */, + E8DD25D8295583920043C7D5 /* XCombatellegRandomCombatPreadominantRegard.h */, + E8DD25D9295583920043C7D5 /* XCombatellegRandomCombatPreadominantRegard.m */, + 9B2EA7C428041EFC00ED17BF /* XCombatellegPkFasciaboardRegard.h */, + 9B2EA7C528041EFC00ED17BF /* XCombatellegPkFasciaboardRegard.m */, + 9B2EA7CA2804245500ED17BF /* XCombatellegCombatFasciaboardConsumerRegard.h */, + 9B2EA7CB2804245500ED17BF /* XCombatellegCombatFasciaboardConsumerRegard.m */, + 9B3A1DF2280571000058E2DD /* XCombatellegCombatCallforRegard.h */, + 9B3A1DF3280571000058E2DD /* XCombatellegCombatCallforRegard.m */, + 9B85F3512806AB9A006EDF51 /* XCombatellegCombatConsequentRegard.h */, + 9B85F3522806AB9A006EDF51 /* XCombatellegCombatConsequentRegard.m */, + 9B85F3542806DD8A006EDF51 /* XCombatellegCombatFinishRegard.h */, + 9B85F3552806DD8A006EDF51 /* XCombatellegCombatFinishRegard.m */, + ); + path = SubViews; + sourceTree = ""; + }; + 9B1B72A728003196003FACE9 /* Cell */ = { + isa = PBXGroup; + children = ( + 9B1B72BA28003E06003FACE9 /* XCombatellegCombatTabulationRegardElement.h */, + 9B1B72BB28003E06003FACE9 /* XCombatellegCombatTabulationRegardElement.m */, + ); + path = Cell; + sourceTree = ""; + }; + 9B1B72A82800319B003FACE9 /* Presenter */ = { + isa = PBXGroup; + children = ( + 9B1B72B628003772003FACE9 /* XCombatellegCombatExternalizer.h */, + 9B1B72B728003772003FACE9 /* XCombatellegCombatExternalizer.m */, + ); + path = Presenter; + sourceTree = ""; + }; + 9B1B72A9280031A2003FACE9 /* Protocol */ = { + isa = PBXGroup; + children = ( + 9B1B72B9280037C5003FACE9 /* XCombatellegCombatCeremony.h */, + ); + path = Protocol; + sourceTree = ""; + }; + 9B208A372779C1EF00F9E54A /* FaceView */ = { + isa = PBXGroup; + children = ( + E8C1CD5F27D88E4900376F83 /* Model */, + E8C1CD6127D88E6A00376F83 /* View */, + E8C1CD6227D88E7900376F83 /* Presenter */, + E8C1CD6327D88EA300376F83 /* Protocol */, + ); + path = FaceView; + sourceTree = ""; + }; + 9B2F72CD28E45A1C0000E4FA /* QuickMessageView */ = { + isa = PBXGroup; + children = ( + 9B2F72CE28E45A480000E4FA /* YUMIChamberMHTuickCommunicationContainRegard.h */, + 9B2F72CF28E45A480000E4FA /* YUMIChamberMHTuickCommunicationContainRegard.m */, + 9B2F72D128E45C5A0000E4FA /* YUMIChamberMHTuidkCommunicationElement.h */, + 9B2F72D228E45C5A0000E4FA /* YUMIChamberMHTuidkCommunicationElement.m */, + ); + path = QuickMessageView; + sourceTree = ""; + }; + 9B33E3C827D85379003B0E62 /* File */ = { + isa = PBXGroup; + children = ( + 9B33E3C927D85379003B0E62 /* UpwardsloadAccurate.m */, + 9B33E3CA27D85379003B0E62 /* UpwardsloadAccurate.h */, + ); + path = File; + sourceTree = ""; + }; + 9B42868F28C1AEBE009034D2 /* Model */ = { + isa = PBXGroup; + children = ( + 9B42869028C1AED4009034D2 /* YUMIAchieveDeficitSheatheMatrix.h */, + 9B42869128C1AED4009034D2 /* YUMIAchieveDeficitSheatheMatrix.m */, + 9B42869328C1E00A009034D2 /* YUMIDeficitSheatheConsequentMatrix.h */, + 9B42869428C1E00A009034D2 /* YUMIDeficitSheatheConsequentMatrix.m */, + 9B42869628C1E06B009034D2 /* YUMIDeficitSheatheMatrix.h */, + 9B42869728C1E06B009034D2 /* YUMIDeficitSheatheMatrix.m */, + 9BF4BEBA28D4182E009CF6C2 /* YUMIUnfoildDeficitSheatheMatrix.h */, + 9BF4BEBB28D4182E009CF6C2 /* YUMIUnfoildDeficitSheatheMatrix.m */, + ); + path = Model; + sourceTree = ""; + }; + 9B42869928C1FD22009034D2 /* Cell */ = { + isa = PBXGroup; + children = ( + 9B42869A28C1FD3D009034D2 /* YUMIUnfoildDeficitSheatheElement.h */, + 9B42869B28C1FD3D009034D2 /* YUMIUnfoildDeficitSheatheElement.m */, + ); + path = Cell; + sourceTree = ""; + }; + 9B4C5B83292F81D000CEA41B /* Model */ = { + isa = PBXGroup; + children = ( + 9B4C5B84292F81FA00CEA41B /* YUMIInterlocutionStatementFanaticsParatiesMatrix.h */, + 9B4C5B85292F81FA00CEA41B /* YUMIInterlocutionStatementFanaticsParatiesMatrix.m */, + ); + path = Model; + sourceTree = ""; + }; + 9B6E856B281AAB8B0041A321 /* Model */ = { + isa = PBXGroup; + children = ( + 9B6E856C281AABAB0041A321 /* YUMIChamberEncourageMatrix.h */, + 9B6E856D281AABAB0041A321 /* YUMIChamberEncourageMatrix.m */, + ); + path = Model; + sourceTree = ""; + }; + 9B6E8570281AAD260041A321 /* RoomRecommend */ = { + isa = PBXGroup; + children = ( + 9B6E8574281ABEB20041A321 /* SubViews */, + 9B6E8568281A982A0041A321 /* YUMIChamberEncourageRegard.h */, + 9B6E8569281A982A0041A321 /* YUMIChamberEncourageRegard.m */, + 9B6E856B281AAB8B0041A321 /* Model */, + ); + path = RoomRecommend; + sourceTree = ""; + }; + 9B6E8574281ABEB20041A321 /* SubViews */ = { + isa = PBXGroup; + children = ( + 9B6E8571281AB9B20041A321 /* YUMIChamberInsideEncourageElement.h */, + 9B6E8572281AB9B20041A321 /* YUMIChamberInsideEncourageElement.m */, + 9B6E8575281ABECC0041A321 /* YUMIChamberInsideEncourageDispossessElement.h */, + 9B6E8576281ABECC0041A321 /* YUMIChamberInsideEncourageDispossessElement.m */, + 9BAC92F328E6E63000147DD8 /* YUMIChamberInsideOperationElement.h */, + 9BAC92F428E6E63000147DD8 /* YUMIChamberInsideOperationElement.m */, + ); + path = SubViews; + sourceTree = ""; + }; + 9B7B605827BB52FD0070BB72 /* AnchorView */ = { + isa = PBXGroup; + children = ( + 9BDA3E7227FD40DC00517FE6 /* FansTeam */, + 9B7B606327BBA0D40070BB72 /* Model */, + 9B7B606027BB96E40070BB72 /* YUMIChamberKellegAbstractSolitaireRegard.h */, + 9B7B606127BB96E40070BB72 /* YUMIChamberKellegAbstractSolitaireRegard.m */, + 9B7B605927BB53060070BB72 /* XCombatellegAudienceUpwardsLoudspeakerRegard.h */, + 9B7B605A27BB53060070BB72 /* XCombatellegAudienceUpwardsLoudspeakerRegard.m */, + ); + path = AnchorView; + sourceTree = ""; + }; + 9B7B606327BBA0D40070BB72 /* Model */ = { + isa = PBXGroup; + children = ( + 9B7B606427BBA0EE0070BB72 /* XCombatellegAttentDischargeAbstract.h */, + 9B7B606527BBA0EE0070BB72 /* XCombatellegAttentDischargeAbstract.m */, + ); + path = Model; + sourceTree = ""; + }; + 9B7D804727537819003DAC0C /* Session */ = { + isa = PBXGroup; + children = ( + E88E4A7D297673C600019A50 /* View */, + 9B7D80482753783D003DAC0C /* InterlocutionRegardGovernancer.h */, + 9B7D80492753783D003DAC0C /* InterlocutionRegardGovernancer.m */, + E8E20BD9281645300033B688 /* InterlocutionAbstractRegardGovernancer.h */, + E8E20BDA281645300033B688 /* InterlocutionAbstractRegardGovernancer.m */, + E86E79D428A4EA0C006DAF48 /* InterlocutionVentureCache.h */, + E86E79D528A4EA0C006DAF48 /* InterlocutionVentureCache.m */, + 18F403A72758B67900A6C548 /* Content */, + E86B911B281034F10007DEE7 /* Cell */, + ); + path = Session; + sourceTree = ""; + }; + 9B7D904A287BC4FC0033A45E /* AnchorCycleView */ = { + isa = PBXGroup; + children = ( + 9B7D904B287BC5E20033A45E /* KellegChamberScrollRegard.h */, + 9B7D904C287BC5E20033A45E /* KellegChamberScrollRegard.m */, + 9BE2FA8E288010D300EF3D83 /* KellegChamberSrollTipRegard.h */, + 9BE2FA8F288010D300EF3D83 /* KellegChamberSrollTipRegard.m */, + ); + path = AnchorCycleView; + sourceTree = ""; + }; + 9B85B6D4279FDAA900A0A1AC /* SubViews */ = { + isa = PBXGroup; + children = ( + 9B85B6D5279FDABA00A0A1AC /* YUMIConsumerSolitaireCommunicationSolitaireRegard.h */, + 9B85B6D6279FDABA00A0A1AC /* YUMIConsumerSolitaireCommunicationSolitaireRegard.m */, + 9B85B6D8279FDC5200A0A1AC /* YUMIConsumerSolitaireCommunicationAssembletionRegardElement.h */, + 9B85B6D9279FDC5200A0A1AC /* YUMIConsumerSolitaireCommunicationAssembletionRegardElement.m */, + ); + path = SubViews; + sourceTree = ""; + }; + 9B9BBF80288FBF93004E2E74 /* NewUserGift */ = { + isa = PBXGroup; + children = ( + 9B9BBF81288FBFB3004E2E74 /* YUMIStrangeConsumerChamberPresentRegard.h */, + 9B9BBF82288FBFB3004E2E74 /* YUMIStrangeConsumerChamberPresentRegard.m */, + ); + path = NewUserGift; + sourceTree = ""; + }; + 9B9DFDA227DB4F68000F95B3 /* Recovered References */ = { + isa = PBXGroup; + children = ( + 9BA8A47627C60DF7000365A3 /* AVFoundation.framework */, + 9BA8A47427C60D9F000365A3 /* AudioToolbox.framework */, + ); + name = "Recovered References"; + sourceTree = ""; + }; + 9BA3B40C293DD2E00071DF1C /* VersionUpdate */ = { + isa = PBXGroup; + children = ( + 9BA3B40D293DD2F90071DF1C /* YUMIAscensionRegard.h */, + 9BA3B40E293DD2F90071DF1C /* YUMIAscensionRegard.m */, + ); + path = VersionUpdate; + sourceTree = ""; + }; + 9BA812D328BF52A500783EA7 /* SendRedPacket */ = { + isa = PBXGroup; + children = ( + 9B42869928C1FD22009034D2 /* Cell */, + 9B42868F28C1AEBE009034D2 /* Model */, + 9BA812D928BF53DD00783EA7 /* Api */, + 9BA812D828BF539300783EA7 /* Protocol */, + 9BA812D728BF538E00783EA7 /* Presenter */, + 9BA812D428BF52E100783EA7 /* YUMIChamberDischargeDeficitSheatheRegardGovernancer.h */, + 9BA812D528BF52E100783EA7 /* YUMIChamberDischargeDeficitSheatheRegardGovernancer.m */, + 9BA812E228BF70A600783EA7 /* YUMIChamberDeficitSheathePwordRegard.h */, + 9BA812E328BF70A600783EA7 /* YUMIChamberDeficitSheathePwordRegard.m */, + 9B42868C28C1AE2D009034D2 /* YUMIAchieveDeficitSheatheRegard.h */, + 9B42868D28C1AE2D009034D2 /* YUMIAchieveDeficitSheatheRegard.m */, + ); + path = SendRedPacket; + sourceTree = ""; + }; + 9BA812D728BF538E00783EA7 /* Presenter */ = { + isa = PBXGroup; + children = ( + 9BA812DB28BF6A7300783EA7 /* YUMIChamberDeficitSheatheExternalizer.h */, + 9BA812DC28BF6A7300783EA7 /* YUMIChamberDeficitSheatheExternalizer.m */, + ); + path = Presenter; + sourceTree = ""; + }; + 9BA812D828BF539300783EA7 /* Protocol */ = { + isa = PBXGroup; + children = ( + 9BA812E128BF6AFB00783EA7 /* FBCChamberRedPacketCeremony.h */, + ); + path = Protocol; + sourceTree = ""; + }; + 9BA812D928BF53DD00783EA7 /* Api */ = { + isa = PBXGroup; + children = ( + 9BA812DE28BF6ABB00783EA7 /* Api+RedPacket.h */, + 9BA812DF28BF6ABB00783EA7 /* Api+RedPacket.m */, + ); + path = Api; + sourceTree = ""; + }; + 9BC5C915277C809E007C8719 /* ReleaseRadio */ = { + isa = PBXGroup; + children = ( + 9BD63FB0277EF132006EB744 /* Protocol */, + 9BC5C919277C8A4D007C8719 /* Presenter */, + 9BC5C918277C8A22007C8719 /* View */, + 9BC5C917277C8A1D007C8719 /* Api */, + 9BC5C916277C8A17007C8719 /* Model */, + ); + path = ReleaseRadio; + sourceTree = ""; + }; + 9BC5C916277C8A17007C8719 /* Model */ = { + isa = PBXGroup; + children = ( + 9BD63FB2277EF1B3006EB744 /* YUMIReleaseWirelessMatrix.h */, + 9BD63FB3277EF1B3006EB744 /* YUMIReleaseWirelessMatrix.m */, + ); + path = Model; + sourceTree = ""; + }; + 9BC5C917277C8A1D007C8719 /* Api */ = { + isa = PBXGroup; + children = ( + 9BD63FA9277EE885006EB744 /* Api+RoomRadio.h */, + 9BD63FAA277EE885006EB744 /* Api+RoomRadio.m */, + ); + path = Api; + sourceTree = ""; + }; + 9BC5C918277C8A22007C8719 /* View */ = { + isa = PBXGroup; + children = ( + 9BD63FAF277EEAC2006EB744 /* Cell */, + 9BC5C91A277C8A7B007C8719 /* YUMIReleaseWirelessRegardGovernancer.h */, + 9BC5C91B277C8A7B007C8719 /* YUMIReleaseWirelessRegardGovernancer.m */, + 9BC5C91D277C902B007C8719 /* YUMIReleaseWirelessRegard.h */, + 9BC5C91E277C902B007C8719 /* YUMIReleaseWirelessRegard.m */, + ); + path = View; + sourceTree = ""; + }; + 9BC5C919277C8A4D007C8719 /* Presenter */ = { + isa = PBXGroup; + children = ( + 9BD63FAC277EE97A006EB744 /* YUMIReleaseWirelessExternalizer.h */, + 9BD63FAD277EE97A006EB744 /* YUMIReleaseWirelessExternalizer.m */, + ); + path = Presenter; + sourceTree = ""; + }; + 9BCB999D28F5716E00466D64 /* CollectRoom */ = { + isa = PBXGroup; + children = ( + 9BE570B928F65B6000D491A5 /* Cell */, + 9BCB999E28F571B500466D64 /* YUMIManeAssembleParatiesChamberRegardGovernancer.h */, + 9BCB999F28F571B500466D64 /* YUMIManeAssembleParatiesChamberRegardGovernancer.m */, + ); + path = CollectRoom; + sourceTree = ""; + }; + 9BD2ECCF288F832300F5CD9A /* FootPrint */ = { + isa = PBXGroup; + children = ( + 9BD2ECD0288F833B00F5CD9A /* YUMIManeTerminalImpressionMatrix.h */, + 9BD2ECD1288F833B00F5CD9A /* YUMIManeTerminalImpressionMatrix.m */, + ); + path = FootPrint; + sourceTree = ""; + }; + 9BD2ECD7288F865900F5CD9A /* FootPrint */ = { + isa = PBXGroup; + children = ( + 9BD2ECD8288F867000F5CD9A /* YUMIManeTerminalImpressionTabulationRegardElement.h */, + 9BD2ECD9288F867000F5CD9A /* YUMIManeTerminalImpressionTabulationRegardElement.m */, + ); + path = FootPrint; + sourceTree = ""; + }; + 9BD63FAF277EEAC2006EB744 /* Cell */ = { + isa = PBXGroup; + children = ( + 9BCE6142277D657600CC0358 /* YUMIReleaseWirelessTabulationRegardElement.h */, + 9BCE6143277D657600CC0358 /* YUMIReleaseWirelessTabulationRegardElement.m */, + ); + path = Cell; + sourceTree = ""; + }; + 9BD63FB0277EF132006EB744 /* Protocol */ = { + isa = PBXGroup; + children = ( + 9BD63FB1277EF14A006EB744 /* FBCReleaseRadioCeremony.h */, + ); + path = Protocol; + sourceTree = ""; + }; + 9BD798AE29262306003E03E6 /* SessionListHeadView */ = { + isa = PBXGroup; + children = ( + 9B4C5B83292F81D000CEA41B /* Model */, + 9BD798AF29262434003E03E6 /* YUMIInterlocutionStatementIntelligenceRegard.h */, + 9BD798B029262434003E03E6 /* YUMIInterlocutionStatementIntelligenceRegard.m */, + 9BD798B2292632FE003E03E6 /* YUMIInterlocutionStatementIntelligenceProvisionRegard.h */, + 9BD798B3292632FE003E03E6 /* YUMIInterlocutionStatementIntelligenceProvisionRegard.m */, + 9BD798B52926362F003E03E6 /* YUMIInterlocutionStatementIntelligenceProvision.h */, + 9BD798B62926362F003E03E6 /* YUMIInterlocutionStatementIntelligenceProvision.m */, + 9B87B3CB2926473D00085110 /* YUMIInterlocutionStatementIntelligenceAssistantElement.h */, + 9B87B3CC2926473D00085110 /* YUMIInterlocutionStatementIntelligenceAssistantElement.m */, + E8778AE52988C1E000CF139B /* YUMIInterlocutionHalloImportRegard.h */, + E8778AE62988C1E000CF139B /* YUMIInterlocutionHalloImportRegard.m */, + ); + path = SessionListHeadView; + sourceTree = ""; + }; + 9BD9A17D27A0EFB1004186FE /* Visitor */ = { + isa = PBXGroup; + children = ( + 9BD9A17E27A0EFC7004186FE /* YUMIManeVacationerTabulationRegardElement.h */, + 9BD9A17F27A0EFC7004186FE /* YUMIManeVacationerTabulationRegardElement.m */, + 9B2489BA27C4C056006CFB85 /* YUMIManeVacationerDispossessTabulationRegardElement.h */, + 9B2489BB27C4C056006CFB85 /* YUMIManeVacationerDispossessTabulationRegardElement.m */, + ); + path = Visitor; + sourceTree = ""; + }; + 9BD9A18127A0F110004186FE /* Visitor */ = { + isa = PBXGroup; + children = ( + 9BD9A18227A0F128004186FE /* YUMIManeVacationerProvisionMatrix.h */, + 9BD9A18327A0F128004186FE /* YUMIManeVacationerProvisionMatrix.m */, + 9BD9A18527A120FD004186FE /* YUMIManeVacationerUnReadMatrix.h */, + 9BD9A18627A120FD004186FE /* YUMIManeVacationerUnReadMatrix.m */, + ); + path = Visitor; + sourceTree = ""; + }; + 9BDA3E6F27FD401100517FE6 /* Api */ = { + isa = PBXGroup; + children = ( + 9B1B7290280010E8003FACE9 /* Api+FansTeam.h */, + 9B1B7291280010E8003FACE9 /* Api+FansTeam.m */, + ); + path = Api; + sourceTree = ""; + }; + 9BDA3E7027FD401700517FE6 /* View */ = { + isa = PBXGroup; + children = ( + 9BDA3E7527FD41C200517FE6 /* XCombatellegFanaticsSquadRegardGovernancer.h */, + 9BDA3E7627FD41C200517FE6 /* XCombatellegFanaticsSquadRegardGovernancer.m */, + 9BDA3E7827FD43EF00517FE6 /* XCombatellegFanaticsSquadEntranceRegard.h */, + 9BDA3E7927FD43EF00517FE6 /* XCombatellegFanaticsSquadEntranceRegard.m */, + 9BB89DC427FEB9E100586A83 /* XCombatellegFanaticsmissionRegardGovernancer.h */, + 9BB89DC527FEB9E100586A83 /* XCombatellegFanaticsmissionRegardGovernancer.m */, + 9BE9F10327FF04CF00667200 /* XCombatellegFanaticsmissionTabulationRegardElement.h */, + 9BE9F10427FF04CF00667200 /* XCombatellegFanaticsmissionTabulationRegardElement.m */, + ); + path = View; + sourceTree = ""; + }; + 9BDA3E7127FD401C00517FE6 /* Presenter */ = { + isa = PBXGroup; + children = ( + 9BDA3E7B27FD47AB00517FE6 /* XCombatellegFanaticsSquadExternalizer.h */, + 9BDA3E7C27FD47AB00517FE6 /* XCombatellegFanaticsSquadExternalizer.m */, + ); + path = Presenter; + sourceTree = ""; + }; + 9BDA3E7227FD40DC00517FE6 /* FansTeam */ = { + isa = PBXGroup; + children = ( + 9BDA3E7E27FD47FB00517FE6 /* Protocol */, + 9BDA3E7327FD417900517FE6 /* Model */, + 9BDA3E7127FD401C00517FE6 /* Presenter */, + 9BDA3E6F27FD401100517FE6 /* Api */, + 9BDA3E7027FD401700517FE6 /* View */, + ); + path = FansTeam; + sourceTree = ""; + }; + 9BDA3E7327FD417900517FE6 /* Model */ = { + isa = PBXGroup; + children = ( + 9BB89DC127FE7F3A00586A83 /* XCombatellegFanaticsRelationMatrix.h */, + 9BB89DC227FE7F3A00586A83 /* XCombatellegFanaticsRelationMatrix.m */, + 9BE9F0F727FED12D00667200 /* XCombatellegFanaticsPrivilegeMatrix.h */, + 9BE9F0F827FED12D00667200 /* XCombatellegFanaticsPrivilegeMatrix.m */, + 9BE9F0FA27FED2E100667200 /* XCombatellegFanaticsJoinMatrix.h */, + 9BE9F0FB27FED2E100667200 /* XCombatellegFanaticsJoinMatrix.m */, + 9BE9F0FD27FED76500667200 /* XCombatellegFanaticsmissionMatrix.h */, + 9BE9F0FE27FED76500667200 /* XCombatellegFanaticsmissionMatrix.m */, + 9BE9F10027FEE5C200667200 /* XCombatellegFanaticsmissionSpecificMatrix.h */, + 9BE9F10127FEE5C200667200 /* XCombatellegFanaticsmissionSpecificMatrix.m */, + ); + path = Model; + sourceTree = ""; + }; + 9BDA3E7E27FD47FB00517FE6 /* Protocol */ = { + isa = PBXGroup; + children = ( + 9BDA3E7F27FD480D00517FE6 /* XCombatellegFanaticsTeamCeremony.h */, + ); + path = Protocol; + sourceTree = ""; + }; + 9BE01AF42893E7E000B50299 /* Cell */ = { + isa = PBXGroup; + children = ( + 9BE01AF52893E7F500B50299 /* YUMIStrangeConsumerReindictAssembletionRegardElement.h */, + 9BE01AF62893E7F500B50299 /* YUMIStrangeConsumerReindictAssembletionRegardElement.m */, + 9BFE0D8C2898C8C300F53C24 /* XCombatellegSolitaireCommunicationAssembletionRegardElement.h */, + 9BFE0D8D2898C8C300F53C24 /* XCombatellegSolitaireCommunicationAssembletionRegardElement.m */, + ); + path = Cell; + sourceTree = ""; + }; + 9BE570B928F65B6000D491A5 /* Cell */ = { + isa = PBXGroup; + children = ( + 9BE570BA28F65B7200D491A5 /* YUMIManeAssembleChamberElement.h */, + 9BE570BB28F65B7200D491A5 /* YUMIManeAssembleChamberElement.m */, + 9BCB99A428F582EC00466D64 /* YUMIManeAssembleChamberCompileElement.h */, + 9BCB99A528F582EC00466D64 /* YUMIManeAssembleChamberCompileElement.m */, + ); + path = Cell; + sourceTree = ""; + }; + 9BFB101C2897CC3300B3985E /* AnchorCard */ = { + isa = PBXGroup; + children = ( + 9BFB101D2897CC4300B3985E /* XCombatellegSolitaireRegard.h */, + 9BFB101E2897CC4300B3985E /* XCombatellegSolitaireRegard.m */, + ); + path = AnchorCard; + sourceTree = ""; + }; + 9BFE0D8F289903F600F53C24 /* TaskTip */ = { + isa = PBXGroup; + children = ( + 9BFE0D902899042600F53C24 /* YUMImissionCompleteTipRegard.h */, + 9BFE0D912899042600F53C24 /* YUMImissionCompleteTipRegard.m */, + ); + path = TaskTip; + sourceTree = ""; + }; + BFB922F5D81845AC32D1E1ED /* Frameworks */ = { + isa = PBXGroup; + children = ( + E87888F32738C30E00BF1D57 /* StoreKit.framework */, + 186A531826FC591100D67B2C /* libresolv.tbd */, + CACF623970097D653132D69A /* Pods_YuMi.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + D09C770DC30B9BAAEAFC7945 /* Pods */ = { + isa = PBXGroup; + children = ( + 7DB00EC07F1D0ADFF900B38D /* Pods-YuMi.debug.xcconfig */, + B66633E061B1B34177CD011C /* Pods-YuMi.release.xcconfig */, + ); + path = Pods; + sourceTree = ""; + }; + E801273827E322D700BAC3F2 /* RoomPK */ = { + isa = PBXGroup; + children = ( + E801273D27E3230F00BAC3F2 /* Model */, + E801273C27E3230400BAC3F2 /* Api */, + E801273B27E322FE00BAC3F2 /* View */, + E801273A27E322F500BAC3F2 /* Presenter */, + E801273927E322E900BAC3F2 /* Protocol */, + ); + path = RoomPK; + sourceTree = ""; + }; + E801273927E322E900BAC3F2 /* Protocol */ = { + isa = PBXGroup; + children = ( + E801274427E3240000BAC3F2 /* FBCChamberCombatCeremony.h */, + E8664EE027E45EE6000171BA /* FBCChamberCombatRecordCeremony.h */, + ); + path = Protocol; + sourceTree = ""; + }; + E801273A27E322F500BAC3F2 /* Presenter */ = { + isa = PBXGroup; + children = ( + E801274127E323E500BAC3F2 /* YUMIChamberCombatExternalizer.h */, + E801274227E323E500BAC3F2 /* YUMIChamberCombatExternalizer.m */, + E8664EDD27E45EC7000171BA /* YUMIChamberCombatReflectionExternalizer.h */, + E8664EDE27E45EC7000171BA /* YUMIChamberCombatReflectionExternalizer.m */, + ); + path = Presenter; + sourceTree = ""; + }; + E801273B27E322FE00BAC3F2 /* View */ = { + isa = PBXGroup; + children = ( + E801275227E3321C00BAC3F2 /* SubViews */, + E801274827E3278E00BAC3F2 /* Cell */, + E801273E27E323C800BAC3F2 /* YUMIChamberCombatRegardGovernancer.h */, + E801273F27E323C800BAC3F2 /* YUMIChamberCombatRegardGovernancer.m */, + E8664ED427E434D5000171BA /* YUMIChamberCombatReflectionRegardGovernancer.h */, + E8664ED527E434D5000171BA /* YUMIChamberCombatReflectionRegardGovernancer.m */, + E81AF32327F1D5B8003B9E43 /* YUMIChamberCombatProgressRegard.h */, + E81AF32427F1D5B8003B9E43 /* YUMIChamberCombatProgressRegard.m */, + E80A086327F318620027B30C /* YUMIChamberCombatDisportingRegard.h */, + E80A086427F318620027B30C /* YUMIChamberCombatDisportingRegard.m */, + E84843AD27F59E7E0050D365 /* YUMIChamberCombatConsequentRegard.h */, + E84843AE27F59E7E0050D365 /* YUMIChamberCombatConsequentRegard.m */, + ); + path = View; + sourceTree = ""; + }; + E801273C27E3230400BAC3F2 /* Api */ = { + isa = PBXGroup; + children = ( + E801274527E3241700BAC3F2 /* Api+RoomPK.h */, + E801274627E3241700BAC3F2 /* Api+RoomPK.m */, + ); + path = Api; + sourceTree = ""; + }; + E801273D27E3230F00BAC3F2 /* Model */ = { + isa = PBXGroup; + children = ( + E801275627E347FD00BAC3F2 /* ChamberCombatReflectionMatrix.h */, + E801275727E347FD00BAC3F2 /* ChamberCombatReflectionMatrix.m */, + E8664EE427E482EF000171BA /* ChamberCombatSquadMatrix.h */, + E8664EE527E482EF000171BA /* ChamberCombatSquadMatrix.m */, + E8664ED127E4258A000171BA /* ChamberCombatIntratemporalProvisionMatrix.h */, + E8664ED227E4258A000171BA /* ChamberCombatIntratemporalProvisionMatrix.m */, + E8A88D2B27E81E8700CA8837 /* ChamberCombatChooseConsumerMatrix.h */, + E8A88D2C27E81E8700CA8837 /* ChamberCombatChooseConsumerMatrix.m */, + E8A88D2E27E85EEA00CA8837 /* ChamberCombatAbstractMatrix.h */, + E8A88D2F27E85EEA00CA8837 /* ChamberCombatAbstractMatrix.m */, + E80A086027F2AC190027B30C /* ChamberCombatSpecificAbstractMatrix.h */, + E80A086127F2AC190027B30C /* ChamberCombatSpecificAbstractMatrix.m */, + ); + path = Model; + sourceTree = ""; + }; + E801274827E3278E00BAC3F2 /* Cell */ = { + isa = PBXGroup; + children = ( + E801274927E327DA00BAC3F2 /* YUMIChamberCombatGenreTabulationRegardElement.h */, + E801274A27E327DA00BAC3F2 /* YUMIChamberCombatGenreTabulationRegardElement.m */, + E801274C27E3280000BAC3F2 /* YUMIChamberCombatVoteTabulationRegardElement.h */, + E801274D27E3280000BAC3F2 /* YUMIChamberCombatVoteTabulationRegardElement.m */, + E801274F27E3281100BAC3F2 /* YUMIChamberCombatIntratemporalTabulationRegardElement.h */, + E801275027E3281100BAC3F2 /* YUMIChamberCombatIntratemporalTabulationRegardElement.m */, + E8664ED727E4355C000171BA /* YUMIChamberCombatReflectionTabulationRegardElement.h */, + E8664ED827E4355C000171BA /* YUMIChamberCombatReflectionTabulationRegardElement.m */, + E8664EDA27E43632000171BA /* YUMIChamberCombatDispossessTabulationRegardElement.h */, + E8664EDB27E43632000171BA /* YUMIChamberCombatDispossessTabulationRegardElement.m */, + E8A88D2827E81C8600CA8837 /* YUMIChamberCombatConsumerAssembletionRegardElement.h */, + E8A88D2927E81C8600CA8837 /* YUMIChamberCombatConsumerAssembletionRegardElement.m */, + ); + path = Cell; + sourceTree = ""; + }; + E801275227E3321C00BAC3F2 /* SubViews */ = { + isa = PBXGroup; + children = ( + E801275327E3326000BAC3F2 /* YUMIChamberCombatConsumerRegard.h */, + E801275427E3326000BAC3F2 /* YUMIChamberCombatConsumerRegard.m */, + E8664ECE27E42238000171BA /* YUMIChamberCombatIntratemporalPickerRegard.h */, + E8664ECF27E42238000171BA /* YUMIChamberCombatIntratemporalPickerRegard.m */, + E8664EE127E47711000171BA /* YUMIChamberCombatReflectionNickRegard.h */, + E8664EE227E47711000171BA /* YUMIChamberCombatReflectionNickRegard.m */, + E8A88D2527E8193400CA8837 /* YUMIChamberCombatChosenConsumerRegard.h */, + E8A88D2627E8193400CA8837 /* YUMIChamberCombatChosenConsumerRegard.m */, + E81AF32627F1EE69003B9E43 /* YUMIChamberCombatFasciaboardConsumerRegard.h */, + E81AF32727F1EE69003B9E43 /* YUMIChamberCombatFasciaboardConsumerRegard.m */, + E84843B027F5A0740050D365 /* YUMIRomCombatConsequentChampionDesignation.h */, + E84843B127F5A0740050D365 /* YUMIRomCombatConsequentChampionDesignation.m */, + ); + path = SubViews; + sourceTree = ""; + }; + E804875F2717DD70008595F2 /* Model */ = { + isa = PBXGroup; + children = ( + E89D60BF271D64B9001F8895 /* ChamberAbstractMatrix.h */, + E89D60C0271D64B9001F8895 /* ChamberAbstractMatrix.m */, + E8252FEC27687DF1002B3164 /* ImportpriseAbstractMatrix.h */, + E8252FED27687DF1002B3164 /* ImportpriseAbstractMatrix.m */, + E8899C802785A694007944BE /* EngagementAbstractMatrix.h */, + E8899C812785A694007944BE /* EngagementAbstractMatrix.m */, + E87AE8BF284E184300CAFBB3 /* ChamberStrangeConsumerBewelcometoMatrix.h */, + E87AE8C0284E184300CAFBB3 /* ChamberStrangeConsumerBewelcometoMatrix.m */, + ); + path = Model; + sourceTree = ""; + }; + E80487602717DD89008595F2 /* Api */ = { + isa = PBXGroup; + children = ( + E89D60B8271D643A001F8895 /* Api+Room.h */, + E89D60B9271D643A001F8895 /* Api+Room.m */, + ); + path = Api; + sourceTree = ""; + }; + E80487612717DD92008595F2 /* Presenter */ = { + isa = PBXGroup; + children = ( + E89D60BB271D647A001F8895 /* YUMIChamberExternalizer.h */, + E89D60BC271D647A001F8895 /* YUMIChamberExternalizer.m */, + ); + path = Presenter; + sourceTree = ""; + }; + E80487622717DDAE008595F2 /* Protocol */ = { + isa = PBXGroup; + children = ( + E89D60BE271D648D001F8895 /* FBCChamberCeremony.h */, + ); + path = Protocol; + sourceTree = ""; + }; + E80B070F280D0A6700A79F63 /* Friend */ = { + isa = PBXGroup; + children = ( + E80B0710280D0A6700A79F63 /* FanaticsAbstractMatrix.h */, + E80B0711280D0A6700A79F63 /* FanaticsAbstractMatrix.m */, + ); + path = Friend; + sourceTree = ""; + }; + E80CBDE727D0C528001E1EC2 /* Timer */ = { + isa = PBXGroup; + children = ( + E80CBDE827D0C53F001E1EC2 /* YUMIWeakIntratemporalr.h */, + E80CBDE927D0C53F001E1EC2 /* YUMIWeakIntratemporalr.m */, + ); + path = Timer; + sourceTree = ""; + }; + E80DE4042775663500BE5BCB /* Cell */ = { + isa = PBXGroup; + children = ( + E80DE4052775665000BE5BCB /* YUMIThresholdReindictAssembletionRegardElement.h */, + E80DE4062775665000BE5BCB /* YUMIThresholdReindictAssembletionRegardElement.m */, + E80DE40B2775ABA500BE5BCB /* YUMIThresholdReindictFlowProgramming.h */, + E80DE40C2775ABA500BE5BCB /* YUMIThresholdReindictFlowProgramming.m */, + ); + path = Cell; + sourceTree = ""; + }; + E80E096F2A40B5DD00CD2BE7 /* CandyTree */ = { + isa = PBXGroup; + children = ( + E80E09702A40B5DD00CD2BE7 /* Presenter */, + E80E09732A40B5DD00CD2BE7 /* Protocol */, + E80E09752A40B5DD00CD2BE7 /* Model */, + E80E097E2A40B5DD00CD2BE7 /* View */, + E80E09942A40B5DD00CD2BE7 /* Api */, + ); + path = CandyTree; + sourceTree = ""; + }; + E80E09702A40B5DD00CD2BE7 /* Presenter */ = { + isa = PBXGroup; + children = ( + E80E09712A40B5DD00CD2BE7 /* YUMIConfectioneryTimberExternalizer.m */, + E80E09722A40B5DD00CD2BE7 /* YUMIConfectioneryTimberExternalizer.h */, + ); + path = Presenter; + sourceTree = ""; + }; + E80E09732A40B5DD00CD2BE7 /* Protocol */ = { + isa = PBXGroup; + children = ( + E80E09742A40B5DD00CD2BE7 /* FBCCandyTreeCeremony.h */, + ); + path = Protocol; + sourceTree = ""; + }; + E80E09752A40B5DD00CD2BE7 /* Model */ = { + isa = PBXGroup; + children = ( + E80E09762A40B5DD00CD2BE7 /* ConfectioneryTimberConsequentMatrix.m */, + E80E09772A40B5DD00CD2BE7 /* ConfectioneryTimberReflectionMatrix.m */, + E80E09782A40B5DD00CD2BE7 /* YUMIConfectioneryTimberBrightnessMatrix.h */, + E80E09792A40B5DD00CD2BE7 /* ConfectioneryTimberAbstractMatrix.h */, + E80E097A2A40B5DD00CD2BE7 /* YUMIConfectioneryTimberBrightnessMatrix.m */, + E80E097B2A40B5DD00CD2BE7 /* ConfectioneryTimberReflectionMatrix.h */, + E80E097C2A40B5DD00CD2BE7 /* ConfectioneryTimberConsequentMatrix.h */, + E80E097D2A40B5DD00CD2BE7 /* ConfectioneryTimberAbstractMatrix.m */, + ); + path = Model; + sourceTree = ""; + }; + E80E097E2A40B5DD00CD2BE7 /* View */ = { + isa = PBXGroup; + children = ( + E80E09862A40B5DD00CD2BE7 /* Cell */, + E80E09852A40B5DD00CD2BE7 /* YUMIConfectioneryRateAccommodatedRegard.h */, + E80E09922A40B5DD00CD2BE7 /* YUMIConfectioneryRateAccommodatedRegard.m */, + E80E09902A40B5DD00CD2BE7 /* YUMIConfectioneryTimberPresentRegard.h */, + E80E09832A40B5DD00CD2BE7 /* YUMIConfectioneryTimberPresentRegard.m */, + E80E09822A40B5DD00CD2BE7 /* YUMIConfectioneryTimberInsufficientBalanceRegard.h */, + E80E09912A40B5DD00CD2BE7 /* YUMIConfectioneryTimberInsufficientBalanceRegard.m */, + E80E098F2A40B5DD00CD2BE7 /* YUMIConfectioneryTimberFurthaerRegard.h */, + E80E09802A40B5DD00CD2BE7 /* YUMIConfectioneryTimberFurthaerRegard.m */, + E80E098D2A40B5DD00CD2BE7 /* YUMIConfectioneryTimberRateRegard.h */, + E80E097F2A40B5DD00CD2BE7 /* YUMIConfectioneryTimberRateRegard.m */, + E80E09812A40B5DD00CD2BE7 /* YUMIConfectioneryTimberRegardGovernancer.h */, + E80E098E2A40B5DD00CD2BE7 /* YUMIConfectioneryTimberRegardGovernancer.m */, + E80E09842A40B5DD00CD2BE7 /* YUMIChamberHalfTissueRegard.h */, + E80E09932A40B5DD00CD2BE7 /* YUMIChamberHalfTissueRegard.m */, + ); + path = View; + sourceTree = ""; + }; + E80E09862A40B5DD00CD2BE7 /* Cell */ = { + isa = PBXGroup; + children = ( + E80E09872A40B5DD00CD2BE7 /* YUMIConfectioneryTimberDispossessableRegardElement.m */, + E80E09882A40B5DD00CD2BE7 /* YUMIConfectioneryTimberFurthaerPreadominantElement.m */, + E80E09892A40B5DD00CD2BE7 /* YUMIConfectioneryTimberRateTabulationRegardElement.m */, + E80E098A2A40B5DD00CD2BE7 /* YUMIConfectioneryTimberFurthaerPreadominantElement.h */, + E80E098B2A40B5DD00CD2BE7 /* YUMIConfectioneryTimberDispossessableRegardElement.h */, + E80E098C2A40B5DD00CD2BE7 /* YUMIConfectioneryTimberRateTabulationRegardElement.h */, + ); + path = Cell; + sourceTree = ""; + }; + E80E09942A40B5DD00CD2BE7 /* Api */ = { + isa = PBXGroup; + children = ( + E80E09952A40B5DD00CD2BE7 /* Api+CandyTree.m */, + E80E09962A40B5DD00CD2BE7 /* Api+CandyTree.h */, + ); + path = Api; + sourceTree = ""; + }; + E80EC74A28ACD84000D133C5 /* InputView */ = { + isa = PBXGroup; + children = ( + E80EC8BE28ACDB2A00D133C5 /* Assets.xcassets */, + E80EC76128ACD84000D133C5 /* Emoji */, + E80EC80828ACD84000D133C5 /* emoji.plist */, + E80EC74B28ACD84000D133C5 /* InputView */, + ); + path = InputView; + sourceTree = ""; + }; + E80EC74B28ACD84000D133C5 /* InputView */ = { + isa = PBXGroup; + children = ( + E80EC75F28ACD84000D133C5 /* MHTSpirit.h */, + E80EC75228ACD84000D133C5 /* MHTSpirit.m */, + E80EC75428ACD84000D133C5 /* MHTSpiritAttachment.h */, + E80EC75D28ACD84000D133C5 /* MHTSpiritAttachment.m */, + E80EC75928ACD84000D133C5 /* MHTSpiritDirectorateRegard.h */, + E80EC74C28ACD84000D133C5 /* MHTSpiritDirectorateRegard.m */, + E80EC74D28ACD84000D133C5 /* MHTSpiritFacilitater.h */, + E80EC75828ACD84000D133C5 /* MHTSpiritFacilitater.m */, + E80EC75C28ACD84000D133C5 /* MHTExtendDirectorateRegard.h */, + E80EC75528ACD84000D133C5 /* MHTExtendDirectorateRegard.m */, + E80EC75B28ACD84000D133C5 /* MHTIntrojectionObstacleRegard.h */, + E80EC75028ACD84000D133C5 /* MHTIntrojectionObstacleRegard.m */, + E80EC75728ACD84000D133C5 /* MHTIntrojectionObstacleRegardDispositionuration.h */, + E80EC74E28ACD84000D133C5 /* MHTIntrojectionObstacleRegardDispositionuration.m */, + E80EC75A28ACD84000D133C5 /* MHTKeyboardBaseExecutive.h */, + E80EC75128ACD84000D133C5 /* MHTKeyboardBaseExecutive.m */, + E80EC75328ACD84000D133C5 /* MHTKeyboardExecutive.h */, + E80EC75E28ACD84000D133C5 /* MHTKeyboardExecutive.m */, + E81125C2296E57B7000D9804 /* MHTinputAppearanceRegard.h */, + E81125C3296E57B7000D9804 /* MHTinputAppearanceRegard.m */, + E81125C8296E606F000D9804 /* MHTAppearanceIndicateMatrix.h */, + E81125C9296E606F000D9804 /* MHTAppearanceIndicateMatrix.m */, + E80EC75628ACD84000D133C5 /* UITextView+MHTSpirit.h */, + E80EC74F28ACD84000D133C5 /* UITextView+MHTSpirit.m */, + E80EC8C028ACF97A00D133C5 /* MHTESentimentIndicateRegard.h */, + E80EC8C128ACF97A00D133C5 /* MHTESentimentIndicateRegard.m */, + E81125C5296E596D000D9804 /* MHTIntrojectionAppearancetElement.h */, + E81125C6296E596D000D9804 /* MHTIntrojectionAppearancetElement.m */, + ); + path = InputView; + sourceTree = ""; + }; + E80EC76128ACD84000D133C5 /* Emoji */ = { + isa = PBXGroup; + children = ( + E80EC76228ACD84000D133C5 /* emoji_138@2x.png */, + E80EC76328ACD84000D133C5 /* emoji_145@2x.png */, + E80EC76428ACD84000D133C5 /* emoji_126@2x.png */, + E80EC76528ACD84000D133C5 /* emoji_134@2x.png */, + E80EC76628ACD84000D133C5 /* emoji_149@2x.png */, + E80EC76728ACD84000D133C5 /* emoji_80@2x.png */, + E80EC76828ACD84000D133C5 /* emoji_161@2x.png */, + E80EC76928ACD84000D133C5 /* emoji_102@2x.png */, + E80EC76A28ACD84000D133C5 /* emoji_92@2x.png */, + E80EC76B28ACD84000D133C5 /* emoji_110@2x.png */, + E80EC76C28ACD84000D133C5 /* emoji_26@2x.png */, + E80EC76D28ACD84000D133C5 /* emoji_45@2x.png */, + E80EC76E28ACD84000D133C5 /* emoji_38@2x.png */, + E80EC76F28ACD84000D133C5 /* emoji_49@2x.png */, + E80EC77028ACD84000D133C5 /* emoji_34@2x.png */, + E80EC77128ACD84000D133C5 /* emoji_57@2x.png */, + E80EC77228ACD84000D133C5 /* emoji_02@2x.png */, + E80EC77328ACD84000D133C5 /* emoji_61@2x.png */, + E80EC77428ACD84000D133C5 /* emoji_10@2x.png */, + E80EC77528ACD84000D133C5 /* emoji_73@2x.png */, + E80EC77628ACD84000D133C5 /* emoji_55@2x.png */, + E80EC77728ACD84000D133C5 /* emoji_28@2x.png */, + E80EC77828ACD84000D133C5 /* emoji_36@2x.png */, + E80EC77928ACD84000D133C5 /* emoji_47@2x.png */, + E80EC77A28ACD84000D133C5 /* emoji_59@2x.png */, + E80EC77B28ACD84000D133C5 /* emoji_24@2x.png */, + E80EC77C28ACD84000D133C5 /* emoji.xml */, + E80EC77D28ACD84000D133C5 /* emoji_71@2x.png */, + E80EC77E28ACD84000D133C5 /* emoji_12@2x.png */, + E80EC77F28ACD84000D133C5 /* emoji_63@2x.png */, + E80EC78028ACD84000D133C5 /* emoji_00@2x.png */, + E80EC78128ACD84000D133C5 /* emoji_136@2x.png */, + E80EC78228ACD84000D133C5 /* emoji_128@2x.png */, + E80EC78328ACD84000D133C5 /* emoji_124@2x.png */, + E80EC78428ACD84000D133C5 /* emoji_147@2x.png */, + E80EC78528ACD84000D133C5 /* emoji_112@2x.png */, + E80EC78628ACD84000D133C5 /* emoji_90@2x.png */, + E80EC78728ACD84000D133C5 /* emoji_100@2x.png */, + E80EC78828ACD84000D133C5 /* emoji_82@2x.png */, + E80EC78928ACD84000D133C5 /* emoji_163@2x.png */, + E80EC78A28ACD84000D133C5 /* emoji_67@2x.png */, + E80EC78B28ACD84000D133C5 /* emoji_04@2x.png */, + E80EC78C28ACD84000D133C5 /* emoji_79@2x.png */, + E80EC78D28ACD84000D133C5 /* emoji_08@2x.png */, + E80EC78E28ACD84000D133C5 /* emoji_75@2x.png */, + E80EC78F28ACD84000D133C5 /* emoji_16@2x.png */, + E80EC79028ACD84000D133C5 /* emoji_43@2x.png */, + E80EC79128ACD84000D133C5 /* emoji_20@2x.png */, + E80EC79228ACD84000D133C5 /* emoji_51@2x.png */, + E80EC79328ACD84000D133C5 /* emoji_32@2x.png */, + E80EC79428ACD84000D133C5 /* emoji_98@2x.png */, + E80EC79528ACD84000D133C5 /* emoji_104@2x.png */, + E80EC79628ACD84000D133C5 /* emoji_86@2x.png */, + E80EC79728ACD84000D133C5 /* emoji_116@2x.png */, + E80EC79828ACD84000D133C5 /* emoji_94@2x.png */, + E80EC79928ACD84000D133C5 /* emoji_108@2x.png */, + E80EC79A28ACD84000D133C5 /* emoji_120@2x.png */, + E80EC79B28ACD84000D133C5 /* emoji_143@2x.png */, + E80EC79C28ACD84000D133C5 /* emoji_132@2x.png */, + E80EC79D28ACD84000D133C5 /* emoji_151@2x.png */, + E80EC79E28ACD84000D133C5 /* emoji_96@2x.png */, + E80EC79F28ACD84000D133C5 /* emoji_88@2x.png */, + E80EC7A028ACD84000D133C5 /* emoji_114@2x.png */, + E80EC7A128ACD84000D133C5 /* emoji_84@2x.png */, + E80EC7A228ACD84000D133C5 /* emoji_165@2x.png */, + E80EC7A328ACD84000D133C5 /* emoji_118@2x.png */, + E80EC7A428ACD84000D133C5 /* emoji_106@2x.png */, + E80EC7A528ACD84000D133C5 /* emoji_130@2x.png */, + E80EC7A628ACD84000D133C5 /* emoji_141@2x.png */, + E80EC7A728ACD84000D133C5 /* emoji_122@2x.png */, + E80EC7A828ACD84000D133C5 /* emoji_14@2x.png */, + E80EC7A928ACD84000D133C5 /* emoji_69@2x.png */, + E80EC7AA28ACD84000D133C5 /* emoji_77@2x.png */, + E80EC7AB28ACD84000D133C5 /* emoji_06@2x.png */, + E80EC7AC28ACD84000D133C5 /* emoji_18@2x.png */, + E80EC7AD28ACD84000D133C5 /* emoji_65@2x.png */, + E80EC7AE28ACD84000D133C5 /* emoji_30@2x.png */, + E80EC7AF28ACD84000D133C5 /* emoji_53@2x.png */, + E80EC7B028ACD84000D133C5 /* emoji_22@2x.png */, + E80EC7B128ACD84000D133C5 /* emoji_41@2x.png */, + E80EC7B228ACD84000D133C5 /* emoji_60@2x.png */, + E80EC7B328ACD84000D133C5 /* emoji_03@2x.png */, + E80EC7B428ACD84000D133C5 /* emoji_72@2x.png */, + E80EC7B528ACD84000D133C5 /* emoji_11@2x.png */, + E80EC7B628ACD84000D133C5 /* emoji_39@2x.png */, + E80EC7B728ACD84000D133C5 /* emoji_44@2x.png */, + E80EC7B828ACD84000D133C5 /* emoji_27@2x.png */, + E80EC7B928ACD84000D133C5 /* emoji_200@2x.png */, + E80EC7BA28ACD84000D133C5 /* emoji_56@2x.png */, + E80EC7BB28ACD84000D133C5 /* emoji_35@2x.png */, + E80EC7BC28ACD84000D133C5 /* emoji_48@2x.png */, + E80EC7BD28ACD84000D133C5 /* emoji_103@2x.png */, + E80EC7BE28ACD84000D133C5 /* emoji_81@2x.png */, + E80EC7BF28ACD84000D133C5 /* emoji_160@2x.png */, + E80EC7C028ACD84000D133C5 /* emoji_111@2x.png */, + E80EC7C128ACD84000D133C5 /* emoji_93@2x.png */, + E80EC7C228ACD84000D133C5 /* emoji_127@2x.png */, + E80EC7C328ACD84000D133C5 /* emoji_144@2x.png */, + E80EC7C428ACD84000D133C5 /* emoji_139@2x.png */, + E80EC7C528ACD84000D133C5 /* emoji_148@2x.png */, + E80EC7C628ACD84000D133C5 /* emoji_135@2x.png */, + E80EC7C728ACD84000D133C5 /* emoji_91@2x.png */, + E80EC7C828ACD84000D133C5 /* emoji_113@2x.png */, + E80EC7C928ACD84000D133C5 /* emoji_83@2x.png */, + E80EC7CA28ACD84000D133C5 /* emoji_162@2x.png */, + E80EC7CB28ACD84000D133C5 /* emoji_101@2x.png */, + E80EC7CC28ACD84000D133C5 /* emoji_129@2x.png */, + E80EC7CD28ACD84000D133C5 /* emoji_137@2x.png */, + E80EC7CE28ACD84000D133C5 /* emoji_146@2x.png */, + E80EC7CF28ACD84000D133C5 /* emoji_125@2x.png */, + E80EC7D028ACD84000D133C5 /* emoji_13@2x.png */, + E80EC7D128ACD84000D133C5 /* emoji_70@2x.png */, + E80EC7D228ACD84000D133C5 /* emoji_01@2x.png */, + E80EC7D328ACD84000D133C5 /* emoji_62@2x.png */, + E80EC7D428ACD84000D133C5 /* emoji_37@2x.png */, + E80EC7D528ACD84000D133C5 /* emoji_29@2x.png */, + E80EC7D628ACD84000D133C5 /* emoji_54@2x.png */, + E80EC7D728ACD84000D133C5 /* emoj_s_normal@2x.png */, + E80EC7D828ACD84000D133C5 /* emoji_25@2x.png */, + E80EC7D928ACD84000D133C5 /* emoji_58@2x.png */, + E80EC7DA28ACD84000D133C5 /* emoji_46@2x.png */, + E80EC7DB28ACD84000D133C5 /* emoji_del_pressed@2x.png */, + E80EC7DC28ACD84000D133C5 /* emoji_142@2x.png */, + E80EC7DD28ACD84000D133C5 /* emoji_121@2x.png */, + E80EC7DE28ACD84000D133C5 /* emoji_150@2x.png */, + E80EC7DF28ACD84000D133C5 /* emoji_133@2x.png */, + E80EC7E028ACD84000D133C5 /* emoji_87@2x.png */, + E80EC7E128ACD84000D133C5 /* emoji_166@2x.png */, + E80EC7E228ACD84000D133C5 /* emoji_105@2x.png */, + E80EC7E328ACD84000D133C5 /* emoji_99@2x.png */, + E80EC7E428ACD84000D133C5 /* emoji_109@2x.png */, + E80EC7E528ACD84000D133C5 /* emoji_95@2x.png */, + E80EC7E628ACD84000D133C5 /* emoji_117@2x.png */, + E80EC7E728ACD84000D133C5 /* emoji_21@2x.png */, + E80EC7E828ACD84000D133C5 /* emoji_42@2x.png */, + E80EC7E928ACD84000D133C5 /* emoji_33@2x.png */, + E80EC7EA28ACD84000D133C5 /* emoji_50@2x.png */, + E80EC7EB28ACD84000D133C5 /* emoji_78@2x.png */, + E80EC7EC28ACD84000D133C5 /* emoji_05@2x.png */, + E80EC7ED28ACD84000D133C5 /* emoji_66@2x.png */, + E80EC7EE28ACD84000D133C5 /* emoji_17@2x.png */, + E80EC7EF28ACD84000D133C5 /* emoji_74@2x.png */, + E80EC7F028ACD84000D133C5 /* emoji_09@2x.png */, + E80EC7F128ACD84000D133C5 /* emoji_52@2x.png */, + E80EC7F228ACD84000D133C5 /* emoji_31@2x.png */, + E80EC7F328ACD84000D133C5 /* emoji_40@2x.png */, + E80EC7F428ACD84000D133C5 /* emoji_23@2x.png */, + E80EC7F528ACD84000D133C5 /* emoji_del_normal@2x.png */, + E80EC7F628ACD84000D133C5 /* emoji_76@2x.png */, + E80EC7F728ACD84000D133C5 /* emoji_68@2x.png */, + E80EC7F828ACD84000D133C5 /* emoji_15@2x.png */, + E80EC7F928ACD84000D133C5 /* emoji_64@2x.png */, + E80EC7FA28ACD84000D133C5 /* emoji_19@2x.png */, + E80EC7FB28ACD84000D133C5 /* emoji_07@2x.png */, + E80EC7FC28ACD84000D133C5 /* emoji_131@2x.png */, + E80EC7FD28ACD84000D133C5 /* emoj_s_pressed@2x.png */, + E80EC7FE28ACD84000D133C5 /* emoji_152@2x.png */, + E80EC7FF28ACD84000D133C5 /* emoji_123@2x.png */, + E80EC80028ACD84000D133C5 /* emoji_140@2x.png */, + E80EC80128ACD84000D133C5 /* emoji_115@2x.png */, + E80EC80228ACD84000D133C5 /* emoji_89@2x.png */, + E80EC80328ACD84000D133C5 /* emoji_97@2x.png */, + E80EC80428ACD84000D133C5 /* emoji_107@2x.png */, + E80EC80528ACD84000D133C5 /* emoji_119@2x.png */, + E80EC80628ACD84000D133C5 /* emoji_85@2x.png */, + E80EC80728ACD84000D133C5 /* emoji_164@2x.png */, + ); + path = Emoji; + sourceTree = ""; + }; + E81060D62987613E00B772F0 /* SesssionModel */ = { + isa = PBXGroup; + children = ( + E81060D7298761A300B772F0 /* CommunicationBaseMatrix.h */, + E81060D8298761A300B772F0 /* CommunicationBaseMatrix.m */, + E81060DA298761F100B772F0 /* CommunicationEssayMatrix.h */, + E81060DB298761F100B772F0 /* CommunicationEssayMatrix.m */, + E81060DD29876D3A00B772F0 /* CommunicationIntratemporalMatrix.h */, + E81060DE29876D3A00B772F0 /* CommunicationIntratemporalMatrix.m */, + E8383695298A598D00112E1C /* CommunicationTipsMatrix.h */, + E8383696298A598D00112E1C /* CommunicationTipsMatrix.m */, + E81060E029876E9100B772F0 /* CommunicationIndicateMatrix.h */, + E81060E129876E9100B772F0 /* CommunicationIndicateMatrix.m */, + E81060E329876FF300B772F0 /* CommunicationVocalmusicMatrix.h */, + E81060E429876FF300B772F0 /* CommunicationVocalmusicMatrix.m */, + E81060E62987720F00B772F0 /* CommunicationUnSupportMatrix.h */, + E81060E72987720F00B772F0 /* CommunicationUnSupportMatrix.m */, + E81060E92987BE8300B772F0 /* CommunicationPresentMatrix.h */, + E81060EA2987BE8300B772F0 /* CommunicationPresentMatrix.m */, + E81060EC2987C35700B772F0 /* CommunicationEssayClickMatrix.h */, + E81060ED2987C35700B772F0 /* CommunicationEssayClickMatrix.m */, + E81060EF2987C52B00B772F0 /* CommunicationUnionMatrix.h */, + E81060F02987C52B00B772F0 /* CommunicationUnionMatrix.m */, + E81060F22987C6B200B772F0 /* CommunicationUnfoildEnergeticMatrix.h */, + E81060F32987C6B200B772F0 /* CommunicationUnfoildEnergeticMatrix.m */, + E81060F52987C8A700B772F0 /* CommunicationApplicationParaticipationMatrix.h */, + E81060F62987C8A700B772F0 /* CommunicationApplicationParaticipationMatrix.m */, + E81060FB2987CC9100B772F0 /* CommunicationPrototypeAscensionMatrix.h */, + E81060FC2987CC9100B772F0 /* CommunicationPrototypeAscensionMatrix.m */, + E81060FE2987CDCC00B772F0 /* CommunicationTweetMatrix.h */, + E81060FF2987CDCC00B772F0 /* CommunicationTweetMatrix.m */, + E81061012987CFCE00B772F0 /* CommunicationCommunicationSolitaireMatrix.h */, + E81061022987CFCE00B772F0 /* CommunicationCommunicationSolitaireMatrix.m */, + E82107792987D4AB00DE7040 /* CommunicationDiscoveryStrangeBewelcometoMatrix.h */, + E821077A2987D4AB00DE7040 /* CommunicationDiscoveryStrangeBewelcometoMatrix.m */, + E821077C2987D67100DE7040 /* CommunicationVenturePrecautiousMatrix.h */, + E821077D2987D67100DE7040 /* CommunicationVenturePrecautiousMatrix.m */, + E821077F2987D7F300DE7040 /* CommunicationSeparationsMatrix.h */, + E82107802987D7F300DE7040 /* CommunicationSeparationsMatrix.m */, + E82107822987E35300DE7040 /* CommunicationSeparationsAutoMatrix.h */, + E82107832987E35300DE7040 /* CommunicationSeparationsAutoMatrix.m */, + E82107852987E49100DE7040 /* CommunicationDeficitSheatheMatrix.h */, + E82107862987E49100DE7040 /* CommunicationDeficitSheatheMatrix.m */, + E8778ADF2988B4C300CF139B /* CommunicationRevokeMatrix.h */, + E8778AE02988B4C300CF139B /* CommunicationRevokeMatrix.m */, + ); + path = SesssionModel; + sourceTree = ""; + }; + E81366E426F0A4820076364C /* NSString */ = { + isa = PBXGroup; + children = ( + E81366E526F0A49E0076364C /* NSString+Utils.h */, + E81366E626F0A49E0076364C /* NSString+Utils.m */, + ); + path = NSString; + sourceTree = ""; + }; + E81366F926F0D27A0076364C /* UIButton */ = { + isa = PBXGroup; + children = ( + E81366FB26F0D2980076364C /* UIButton+EnlargeTouchArea.h */, + E81366FA26F0D2980076364C /* UIButton+EnlargeTouchArea.m */, + ); + path = UIButton; + sourceTree = ""; + }; + E81C1B1327705EF00020D1E4 /* ArrangeMic */ = { + isa = PBXGroup; + children = ( + E81C1B1827705F2B0020D1E4 /* Model */, + E81C1B1727705F1F0020D1E4 /* Api */, + E81C1B1627705F190020D1E4 /* View */, + E81C1B1527705F130020D1E4 /* Presenter */, + E81C1B1427705F0A0020D1E4 /* Protocol */, + ); + path = ArrangeMic; + sourceTree = ""; + }; + E81C1B1427705F0A0020D1E4 /* Protocol */ = { + isa = PBXGroup; + children = ( + E81C1B1927705F4B0020D1E4 /* FBCArrangeMicCeremony.h */, + ); + path = Protocol; + sourceTree = ""; + }; + E81C1B1527705F130020D1E4 /* Presenter */ = { + isa = PBXGroup; + children = ( + E81C1B1A27705F6B0020D1E4 /* YUMIScheduleLoudspeakerExternalizer.h */, + E81C1B1B27705F6B0020D1E4 /* YUMIScheduleLoudspeakerExternalizer.m */, + ); + path = Presenter; + sourceTree = ""; + }; + E81C1B1627705F190020D1E4 /* View */ = { + isa = PBXGroup; + children = ( + E81C1B23277065F70020D1E4 /* Cell */, + E81C1B1D27705F7A0020D1E4 /* YUMIScheduleLoudspeakerRegardGovernancer.h */, + E81C1B1E27705F7A0020D1E4 /* YUMIScheduleLoudspeakerRegardGovernancer.m */, + ); + path = View; + sourceTree = ""; + }; + E81C1B1727705F1F0020D1E4 /* Api */ = { + isa = PBXGroup; + children = ( + E81C1B2027705F950020D1E4 /* Api+ArrangeMic.h */, + E81C1B2127705F950020D1E4 /* Api+ArrangeMic.m */, + ); + path = Api; + sourceTree = ""; + }; + E81C1B1827705F2B0020D1E4 /* Model */ = { + isa = PBXGroup; + children = ( + E81C1B2A27706E5C0020D1E4 /* ScheduleLoudspeakerMatrix.h */, + E81C1B2B27706E5C0020D1E4 /* ScheduleLoudspeakerMatrix.m */, + E81C1B2D277071670020D1E4 /* YUMIScheduleLoudspeakerAbstractMatrix.h */, + E81C1B2E277071670020D1E4 /* YUMIScheduleLoudspeakerAbstractMatrix.m */, + ); + path = Model; + sourceTree = ""; + }; + E81C1B23277065F70020D1E4 /* Cell */ = { + isa = PBXGroup; + children = ( + E81C1B242770663B0020D1E4 /* YUMIScheduleLoudspeakerTabulationRegardElement.h */, + E81C1B252770663B0020D1E4 /* YUMIScheduleLoudspeakerTabulationRegardElement.m */, + E81C1B27277069DD0020D1E4 /* YUMIScheduleLoudspeakerDispossessTabulationRegardElement.h */, + E81C1B28277069DD0020D1E4 /* YUMIScheduleLoudspeakerDispossessTabulationRegardElement.m */, + ); + path = Cell; + sourceTree = ""; + }; + E81C278726EAFABF0031E639 /* Security */ = { + isa = PBXGroup; + children = ( + E81C278A26EAFAF60031E639 /* Base64.h */, + E81C278926EAFAF60031E639 /* Base64.m */, + E81C278826EAFAF60031E639 /* DESEncrypt.h */, + E81C278B26EAFAF60031E639 /* DESEncrypt.m */, + E80E2375299A47F60013FD40 /* AESUtils.h */, + E80E2376299A47F60013FD40 /* AESUtils.m */, + ); + path = Security; + sourceTree = ""; + }; + E81C279926EB64BA0031E639 /* Global */ = { + isa = PBXGroup; + children = ( + E81C279A26EB65560031E639 /* YUMIMacroUitls.h */, + E81C279B26EEEC620031E639 /* YUMIConstant.h */, + E81C279C26EEEC620031E639 /* YUMIConstant.m */, + E81C279E26EEF83D0031E639 /* YUMIHtmlUrl.h */, + E81C279F26EEF83D0031E639 /* YUMIHtmlUrl.m */, + E81C27A126EF23370031E639 /* YUMINNNN.h */, + ); + path = Global; + sourceTree = ""; + }; + E81C27AF26EF39B00031E639 /* AppDelegate */ = { + isa = PBXGroup; + children = ( + 189DD52C26DE255300AB55B1 /* AppDelegate.h */, + 189DD52D26DE255300AB55B1 /* AppDelegate.m */, + E81C27AC26EF39AB0031E639 /* AppDelegate+ThirdConfig.h */, + E81C27AD26EF39AB0031E639 /* AppDelegate+ThirdConfig.m */, + ); + path = AppDelegate; + sourceTree = ""; + }; + E81DCCC4282B620A0039E5C5 /* YMMonents */ = { + isa = PBXGroup; + children = ( + E81DCCCA282B638B0039E5C5 /* Model */, + E81DCCC9282B63840039E5C5 /* Api */, + E81DCCC8282B637C0039E5C5 /* View */, + E81DCCC7282B636D0039E5C5 /* Presenter */, + E81DCCC6282B63630039E5C5 /* Protocol */, + ); + path = YMMonents; + sourceTree = ""; + }; + E81DCCC6282B63630039E5C5 /* Protocol */ = { + isa = PBXGroup; + children = ( + 1427213129A75A1700C7C423 /* FBCSeparationsLatestCeremony.h */, + 1427213029A759D200C7C423 /* FBCSeparationsConsiderationCeremony.h */, + E8098CAB282E04870090B9F0 /* FBCSeparationsEncourageCeremony.h */, + E81A65432835121000F55894 /* FBCSeparationsInteractiveCeremony.h */, + E8541036286443D8005CFD9F /* FBCSeparationsDetailCeremony.h */, + E818E34C286ECAD8005EDF68 /* FBCSeparationsPublishCeremony.h */, + E8AB632028ADE5720023B0D2 /* FBCSeparationsMotifEncourageCeremony.h */, + E8AB632128ADE5880023B0D2 /* FBCSeparationsMotifLatestCeremony.h */, + E8AB632928AE15070023B0D2 /* FBCSeparationsMotifStatementCeremony.h */, + E8AB633028AE19FA0023B0D2 /* FBCSeparationsManeCeremony.h */, + 14EB640A29A5BEE800A4A00B /* FBCSeparationsDetailRegardGovernancerRepresendtation.h */, + ); + path = Protocol; + sourceTree = ""; + }; + E81DCCC7282B636D0039E5C5 /* Presenter */ = { + isa = PBXGroup; + children = ( + 1427213229A75A2600C7C423 /* YUMISeparationsRecentlyExternalizer.h */, + 1427213329A75A2600C7C423 /* YUMISeparationsRecentlyExternalizer.m */, + 1427212E29A7599500C7C423 /* YUMISeparationsConsiderationExternalizer.h */, + 1427212D29A7599500C7C423 /* YUMISeparationsConsiderationExternalizer.m */, + E8950187282CFFB1007E459A /* YUMISeparationsProgrammingDisposition.h */, + E8950188282CFFB1007E459A /* YUMISeparationsProgrammingDisposition.m */, + E8098CA8282E03B40090B9F0 /* YUMISeparationsEncourageExternalizer.h */, + E8098CA9282E03B40090B9F0 /* YUMISeparationsEncourageExternalizer.m */, + E81A65402835120200F55894 /* YUMISeparationsCoactiveExternalizer.h */, + E81A65412835120200F55894 /* YUMISeparationsCoactiveExternalizer.m */, + E85410332864155A005CFD9F /* YUMISeparationSpecificExternalizer.h */, + E85410342864155A005CFD9F /* YUMISeparationSpecificExternalizer.m */, + E818E349286ECABF005EDF68 /* YUMISeparationsAnnounceExternalizer.h */, + E818E34A286ECABF005EDF68 /* YUMISeparationsAnnounceExternalizer.m */, + E8AB631728ADE2F40023B0D2 /* YUMISeparationsMotifEncourageExternalizer.h */, + E8AB631828ADE2F40023B0D2 /* YUMISeparationsMotifEncourageExternalizer.m */, + E8AB631A28ADE30E0023B0D2 /* YUMISeparationsMotifRecentlyExternalizer.h */, + E8AB631B28ADE30E0023B0D2 /* YUMISeparationsMotifRecentlyExternalizer.m */, + E8AB632528AE13210023B0D2 /* YUMISeparationsMotifStatementExternalizer.h */, + E8AB632628AE13210023B0D2 /* YUMISeparationsMotifStatementExternalizer.m */, + E8AB632D28AE19DE0023B0D2 /* YUMISeparationManeExternalizer.h */, + E8AB632E28AE19DE0023B0D2 /* YUMISeparationManeExternalizer.m */, + ); + path = Presenter; + sourceTree = ""; + }; + E81DCCC8282B637C0039E5C5 /* View */ = { + isa = PBXGroup; + children = ( + E8D7D748282BA1C90007D7BD /* SubViews */, + E8D7D747282BA1C20007D7BD /* Cell */, + E81DCCCB282B63B40039E5C5 /* YUMISeparationsRegardGovernancer.h */, + E81DCCCC282B63B40039E5C5 /* YUMISeparationsRegardGovernancer.m */, + E81DCCCE282B63FD0039E5C5 /* YUMISeparationsEncourageRegardGovernancer.h */, + E81DCCCF282B63FD0039E5C5 /* YUMISeparationsEncourageRegardGovernancer.m */, + E81A65292834E4F600F55894 /* YUMISeparationsConsiderationRegardGovernancer.h */, + E81A652A2834E4F600F55894 /* YUMISeparationsConsiderationRegardGovernancer.m */, + E81A652F2834E53600F55894 /* YUMISeparationsRecentlyRegardGovernancer.h */, + E81A65302834E53600F55894 /* YUMISeparationsRecentlyRegardGovernancer.m */, + E81A653D283511BE00F55894 /* YUMISeparationsCoactiveRegardGovernancer.h */, + E81A653E283511BE00F55894 /* YUMISeparationsCoactiveRegardGovernancer.m */, + E852D739286317F0001465ED /* YUMISeparationsSpecificRegardGovernancer.h */, + E852D73A286317F0001465ED /* YUMISeparationsSpecificRegardGovernancer.m */, + E818E346286ECA4B005EDF68 /* YUMISeparationsAnnounceRegardGovernancer.h */, + E818E347286ECA4B005EDF68 /* YUMISeparationsAnnounceRegardGovernancer.m */, + E8AB630B28ADD8C60023B0D2 /* YUMISeparationMotifAccommodatedRegardGovernancer.h */, + E8AB630C28ADD8C60023B0D2 /* YUMISeparationMotifAccommodatedRegardGovernancer.m */, + E8AB630E28ADD92D0023B0D2 /* YUMISeparationsMotifRecommondRegardGovernancer.h */, + E8AB630F28ADD92D0023B0D2 /* YUMISeparationsMotifRecommondRegardGovernancer.m */, + E8AB631428ADE2D20023B0D2 /* YUMISeparationsMotifRecentlyRegardGovernancer.h */, + E8AB631528ADE2D20023B0D2 /* YUMISeparationsMotifRecentlyRegardGovernancer.m */, + E8AB632228AE10310023B0D2 /* YUMISepartionMotifStatementRegardGovernancer.h */, + E8AB632328AE10310023B0D2 /* YUMISepartionMotifStatementRegardGovernancer.m */, + E8AB632A28AE19600023B0D2 /* YUMISeparationsManeRegardGovernancer.h */, + E8AB632B28AE19600023B0D2 /* YUMISeparationsManeRegardGovernancer.m */, + 149839C2299E088000F82CBF /* YUMIMomentStatementRegardGovernancer.h */, + 149839C3299E088000F82CBF /* YUMIMomentStatementRegardGovernancer.m */, + 14EB640729A5BDDD00A4A00B /* YUMIMomentsSimpleSpecificRegardGovernancer.h */, + 14EB640829A5BDDD00A4A00B /* YUMIMomentsSimpleSpecificRegardGovernancer.m */, + 14EB640B29A5C16000A4A00B /* YUMIMomentsSimpleSpecificNev.h */, + 14EB640C29A5C16000A4A00B /* YUMIMomentsSimpleSpecificNev.m */, + ); + path = View; + sourceTree = ""; + }; + E81DCCC9282B63840039E5C5 /* Api */ = { + isa = PBXGroup; + children = ( + E8098CA5282E00920090B9F0 /* Api+Monents.h */, + E8098CA6282E00920090B9F0 /* Api+Monents.m */, + ); + path = Api; + sourceTree = ""; + }; + E81DCCCA282B638B0039E5C5 /* Model */ = { + isa = PBXGroup; + children = ( + 1427212B29A757EC00C7C423 /* SeparationsStatementAbstractMatrix.h */, + 1427212A29A757EC00C7C423 /* SeparationsStatementAbstractMatrix.m */, + E88749B4282B8FC600C3C7DB /* SeparationsAbstractMatrix.h */, + E88749B5282B8FC600C3C7DB /* SeparationsAbstractMatrix.m */, + E81A6544283519CA00F55894 /* SeparationsMotifMatrix.h */, + E81A6545283519CA00F55894 /* SeparationsMotifMatrix.m */, + E878B8562835F0D300E22DCF /* SeparationsCoactiveMatrix.h */, + E878B8572835F0D300E22DCF /* SeparationsCoactiveMatrix.m */, + E878B85C283640A500E22DCF /* SeparationsUnReadMatrix.h */, + E878B85D283640A500E22DCF /* SeparationsUnReadMatrix.m */, + E852D74228633A08001465ED /* SeparationsJudgementMatrix.h */, + E852D74328633A08001465ED /* SeparationsJudgementMatrix.m */, + E852D74528633E92001465ED /* SeparationsJudgementReplicationMatrix.h */, + E852D74628633E92001465ED /* SeparationsJudgementReplicationMatrix.m */, + E8B9843128ABA2FF0022D026 /* SeparationsPicResAbstract.h */, + E8B9843228ABA2FF0022D026 /* SeparationsPicResAbstract.m */, + ); + path = Model; + sourceTree = ""; + }; + E81E09C6290F719C00A1F410 /* Adbvertise */ = { + isa = PBXGroup; + children = ( + E81E09C7290F71BF00A1F410 /* YUMIAdvertiseRegard.h */, + E81E09C8290F71BF00A1F410 /* YUMIAdvertiseRegard.m */, + E81E09CA290F732500A1F410 /* YUMIAdIndicateTool.h */, + E81E09CB290F732600A1F410 /* YUMIAdIndicateTool.m */, + E81E09CD290F750800A1F410 /* AdvertiseMatrix.h */, + E81E09CE290F750800A1F410 /* AdvertiseMatrix.m */, + ); + path = Adbvertise; + sourceTree = ""; + }; + E82109AA26F1C86E00FC3319 /* CountDown */ = { + isa = PBXGroup; + children = ( + E82109AB26F1C8A000FC3319 /* ComputationDownFacilitater.h */, + E82109AC26F1C8A000FC3319 /* ComputationDownFacilitater.m */, + ); + path = CountDown; + sourceTree = ""; + }; + E82109B126F2050D00FC3319 /* UIImage */ = { + isa = PBXGroup; + children = ( + 189DD67C26E1FD8900AB55B1 /* UIImage+Utils.h */, + 189DD67D26E1FD8900AB55B1 /* UIImage+Utils.m */, + ); + path = UIImage; + sourceTree = ""; + }; + E82325EA274E2D52003A3332 /* UserCard */ = { + isa = PBXGroup; + children = ( + E82325EB274E2D6C003A3332 /* Model */, + E82325EC274E2D7A003A3332 /* Api */, + E82325ED274E2D8E003A3332 /* View */, + E82325EE274E2D97003A3332 /* Presenter */, + E82325EF274E2DA0003A3332 /* Protocol */, + E8232601274E4AA0003A3332 /* ThemeColor+UserCard.h */, + E8232602274E4AA0003A3332 /* ThemeColor+UserCard.m */, + ); + path = UserCard; + sourceTree = ""; + }; + E82325EB274E2D6C003A3332 /* Model */ = { + isa = PBXGroup; + children = ( + E82325FA274E4735003A3332 /* YUMIConsumerSolitaireProvisionMatrix.h */, + E82325FB274E4735003A3332 /* YUMIConsumerSolitaireProvisionMatrix.m */, + E899C68A275093B700E189E5 /* YUMIConsumerSolitaireMiecreoscoopeProvisionMatrix.h */, + E899C68B275093B800E189E5 /* YUMIConsumerSolitaireMiecreoscoopeProvisionMatrix.m */, + E899C68727508F4E00E189E5 /* YUMIConsumerSolitaireAbstractMatrix.h */, + E899C68827508F4E00E189E5 /* YUMIConsumerSolitaireAbstractMatrix.m */, + ); + path = Model; + sourceTree = ""; + }; + E82325EC274E2D7A003A3332 /* Api */ = { + isa = PBXGroup; + children = ( + E82325F7274E2E42003A3332 /* Api+UserCard.h */, + E82325F8274E2E42003A3332 /* Api+UserCard.m */, + ); + path = Api; + sourceTree = ""; + }; + E82325ED274E2D8E003A3332 /* View */ = { + isa = PBXGroup; + children = ( + 9B85B6D4279FDAA900A0A1AC /* SubViews */, + E82325FD274E48D0003A3332 /* Cell */, + E82325F0274E2DE6003A3332 /* YUMIConsumerSolitaireRegardGovernancer.h */, + E82325F1274E2DE6003A3332 /* YUMIConsumerSolitaireRegardGovernancer.m */, + ); + path = View; + sourceTree = ""; + }; + E82325EE274E2D97003A3332 /* Presenter */ = { + isa = PBXGroup; + children = ( + E82325F3274E2E09003A3332 /* YUMIConsumerSolitaireExternalizer.h */, + E82325F4274E2E09003A3332 /* YUMIConsumerSolitaireExternalizer.m */, + ); + path = Presenter; + sourceTree = ""; + }; + E82325EF274E2DA0003A3332 /* Protocol */ = { + isa = PBXGroup; + children = ( + E82325F6274E2E27003A3332 /* FBCConsumerSolitaireCeremony.h */, + ); + path = Protocol; + sourceTree = ""; + }; + E82325FD274E48D0003A3332 /* Cell */ = { + isa = PBXGroup; + children = ( + E82325FE274E48EA003A3332 /* YUMIConsumerSolitaireProvisionAssembletionRegardElement.h */, + E82325FF274E48EA003A3332 /* YUMIConsumerSolitaireProvisionAssembletionRegardElement.m */, + ); + path = Cell; + sourceTree = ""; + }; + E82D5C77276B25B000858D6D /* SpriteSheetManager */ = { + isa = PBXGroup; + children = ( + E82D5C78276B25D100858D6D /* SpriteSheetIndicateExecutive.h */, + E82D5C79276B25D100858D6D /* SpriteSheetIndicateExecutive.m */, + E82D5C7B276B343300858D6D /* YYAnimatedImageView+ImageShow.h */, + E82D5C7C276B343300858D6D /* YYAnimatedImageView+ImageShow.m */, + ); + path = SpriteSheetManager; + sourceTree = ""; + }; + E82E74F92828B1FC00C25EF7 /* Model */ = { + isa = PBXGroup; + children = ( + E88C728D2828EA4E0047FB2B /* Manual+CoreDataProperties.h */, + E88C728E2828EA4E0047FB2B /* Manual+CoreDataClass.h */, + E88C728F2828EA4E0047FB2B /* Manual+CoreDataProperties.m */, + E88C72902828EA4E0047FB2B /* Manual+CoreDataClass.m */, + ); + path = Model; + sourceTree = ""; + }; + E82E74FA2828B20F00C25EF7 /* Presenter */ = { + isa = PBXGroup; + children = ( + E87E63F529AA1A5600EBE52B /* YuMi.xcdatamodeld */, + E82E75042828E76400C25EF7 /* YUMICoreAtomicExecutive.h */, + E82E75052828E76400C25EF7 /* YUMICoreAtomicExecutive.m */, + ); + path = Presenter; + sourceTree = ""; + }; + E83645652A40A2CA00E0DBE4 /* CardManager */ = { + isa = PBXGroup; + children = ( + E83645662A40A2DC00E0DBE4 /* YUMICommunicationSolitaireDisporterExecutive.h */, + E83645672A40A2DC00E0DBE4 /* YUMICommunicationSolitaireDisporterExecutive.m */, + ); + path = CardManager; + sourceTree = ""; + }; + E83645A42A40AEF600E0DBE4 /* Bundle */ = { + isa = PBXGroup; + children = ( + E83645A62A40AF5400E0DBE4 /* NSBundle+Localizable.h */, + E83645A72A40AF5400E0DBE4 /* NSBundle+Localizable.m */, + ); + path = Bundle; + sourceTree = ""; + }; + E838D99D275E1B6C0079E0B5 /* AnimationView */ = { + isa = PBXGroup; + children = ( + E83DB47E274649B200D8CBD1 /* Model */, + E8C214FF274B76F60079E6BF /* YUMIChamberBrightnessHitRegard.h */, + E8C21500274B76F60079E6BF /* YUMIChamberBrightnessHitRegard.m */, + 9B8DE0E2289CF7AA00FB6EC2 /* YUMIChamberPresentCompoundRegard.h */, + 9B8DE0E3289CF7AA00FB6EC2 /* YUMIChamberPresentCompoundRegard.m */, + E83DB47B2746372300D8CBD1 /* YUMIChamberPresentOriflammeRegard.h */, + E83DB47C2746372300D8CBD1 /* YUMIChamberPresentOriflammeRegard.m */, + E83DB4822746661800D8CBD1 /* YUMIChamberPresentPingbackRegard.h */, + E83DB4832746661800D8CBD1 /* YUMIChamberPresentPingbackRegard.m */, + E8A03DFD27635F960098D9EA /* YUMIChamberConfectioneryPresentRegard.h */, + E8A03DFE27635F960098D9EA /* YUMIChamberConfectioneryPresentRegard.m */, + E8899C832785CC69007944BE /* YUMIChamberEngagementBrightnessRegard.h */, + E8899C842785CC69007944BE /* YUMIChamberEngagementBrightnessRegard.m */, + 9B6B3AA9278C2EA7005551EC /* YUMIChamberMagnificentPrototypeUpwardsRegard.h */, + 9B6B3AAA278C2EA7005551EC /* YUMIChamberMagnificentPrototypeUpwardsRegard.m */, + 9BC8C82E28090C9200C24F85 /* YUMIChamberKellegRateOriflammeRegard.h */, + 9BC8C82F28090C9200C24F85 /* YUMIChamberKellegRateOriflammeRegard.m */, + E86A16CC28574844004228B8 /* YUMIChamberLicneseHourRateRegard.h */, + E86A16CD28574844004228B8 /* YUMIChamberLicneseHourRateRegard.m */, + 9B86D8782817DD8400494FCD /* YUMIChamberImportHideTipRegard.h */, + 9B86D8792817DD8400494FCD /* YUMIChamberImportHideTipRegard.m */, + E8998D7E28597B0300C68558 /* YUMIChamberFortunateBigCaptureRegard.h */, + E8998D7F28597B0300C68558 /* YUMIChamberFortunateBigCaptureRegard.m */, + E838D99E275E1BF60079E0B5 /* YUMIChamberBrightnessRegard.h */, + E838D99F275E1BF60079E0B5 /* YUMIChamberBrightnessRegard.m */, + E8E21A9928B4BD92008F7C9D /* YUMIChamberGraffitiPresentBrightnessRegard.h */, + E8E21A9A28B4BD92008F7C9D /* YUMIChamberGraffitiPresentBrightnessRegard.m */, + 9BC9DAED27E33B3F009EE409 /* YUMIChamberPresentBrightnessAnatomiser.h */, + 9BC9DAEE27E33B3F009EE409 /* YUMIChamberPresentBrightnessAnatomiser.m */, + F1D8556D2931FC86008C418F /* YUMIChamberYearImportpriseRegard.h */, + F1D8556E2931FC86008C418F /* YUMIChamberYearImportpriseRegard.m */, + E80E09B12A42071C00CD2BE7 /* YUMIChamberSatelliteKitchenOriflammeRegard.h */, + E80E09B22A42071D00CD2BE7 /* YUMIChamberSatelliteKitchenOriflammeRegard.m */, + ); + path = AnimationView; + sourceTree = ""; + }; + E83953232769FF2400CF2F24 /* DressUp */ = { + isa = PBXGroup; + children = ( + E83953272769FFF100CF2F24 /* Model */, + E839532E276A038500CF2F24 /* Api */, + E83953242769FFD000CF2F24 /* View */, + E83953262769FFE200CF2F24 /* Presenter */, + E83953252769FFD900CF2F24 /* Protocol */, + ); + path = DressUp; + sourceTree = ""; + }; + E83953242769FFD000CF2F24 /* View */ = { + isa = PBXGroup; + children = ( + E8395336276A0C9400CF2F24 /* Cell */, + E8395328276A002800CF2F24 /* YUMIManePretendUpwardsRegardGovernancer.h */, + E8395329276A002800CF2F24 /* YUMIManePretendUpwardsRegardGovernancer.m */, + E839532B276A030F00CF2F24 /* YUMIManePretendUpwardsStatementRegardGovernancer.h */, + E839532C276A030F00CF2F24 /* YUMIManePretendUpwardsStatementRegardGovernancer.m */, + 9B1EF3D027E81C0600554295 /* YUMIManePretendUpwardsIntumesceRegardGovernancer.h */, + 9B1EF3D127E81C0600554295 /* YUMIManePretendUpwardsIntumesceRegardGovernancer.m */, + 9BE01ACF28927AC000B50299 /* YUMIPretendUpwardsProcurementRegardGovernancer.h */, + 9BE01AD028927AC000B50299 /* YUMIPretendUpwardsProcurementRegardGovernancer.m */, + 9BE01AD228927E9C00B50299 /* YUMIPretendUpwardsProcurementStatementRegardGovernancer.h */, + 9BE01AD328927E9C00B50299 /* YUMIPretendUpwardsProcurementStatementRegardGovernancer.m */, + 9BE01ADF28937DBC00B50299 /* YUMIPretendUpwardsProcurementSolitaireRegardGovernancer.h */, + 9BE01AE028937DBC00B50299 /* YUMIPretendUpwardsProcurementSolitaireRegardGovernancer.m */, + 9BE01AE82893CB4400B50299 /* YUMIPretendHuntforRegardGovernancer.h */, + 9BE01AE92893CB4400B50299 /* YUMIPretendHuntforRegardGovernancer.m */, + ); + path = View; + sourceTree = ""; + }; + E83953252769FFD900CF2F24 /* Protocol */ = { + isa = PBXGroup; + children = ( + E8395335276A03E200CF2F24 /* FBCManePretendedCeremony.h */, + 9BE01ADB2892975000B50299 /* FBCPretendedProcurementCeremony.h */, + ); + path = Protocol; + sourceTree = ""; + }; + E83953262769FFE200CF2F24 /* Presenter */ = { + isa = PBXGroup; + children = ( + E8395332276A03C300CF2F24 /* YUMIManePretendUpwardsExternalizer.h */, + E8395333276A03C300CF2F24 /* YUMIManePretendUpwardsExternalizer.m */, + 9BE01AD8289296B500B50299 /* YUMIPretendUpwardsProcurementExternalizer.h */, + 9BE01AD9289296B500B50299 /* YUMIPretendUpwardsProcurementExternalizer.m */, + ); + path = Presenter; + sourceTree = ""; + }; + E83953272769FFF100CF2F24 /* Model */ = { + isa = PBXGroup; + children = ( + E82D5C6E276AE60000858D6D /* IntelligencewearMatrix.h */, + E82D5C6F276AE60000858D6D /* IntelligencewearMatrix.m */, + E82D5C71276AE94800858D6D /* CarMatrix.h */, + E82D5C72276AE94800858D6D /* CarMatrix.m */, + E82D5C74276AEB5100858D6D /* NameplateMatrix.h */, + E82D5C75276AEB5100858D6D /* NameplateMatrix.m */, + 9BBC028C2786FA060007C24B /* MagnificentSolitaireMatrix.h */, + 9BBC028D2786FA060007C24B /* MagnificentSolitaireMatrix.m */, + 9B1FC3D327E49A5D006EFFE0 /* ChatIntumesceMatrix.h */, + 9B1FC3D427E49A5D006EFFE0 /* ChatIntumesceMatrix.m */, + 9BE01ADC2892A66D00B50299 /* PretendUpwardsProcurementMatrix.h */, + 9BE01ADD2892A66D00B50299 /* PretendUpwardsProcurementMatrix.m */, + ); + path = Model; + sourceTree = ""; + }; + E839532E276A038500CF2F24 /* Api */ = { + isa = PBXGroup; + children = ( + E839532F276A03AE00CF2F24 /* Api+DressUp.h */, + E8395330276A03AE00CF2F24 /* Api+DressUp.m */, + ); + path = Api; + sourceTree = ""; + }; + E8395336276A0C9400CF2F24 /* Cell */ = { + isa = PBXGroup; + children = ( + E87E914C2796678D00A7B3F2 /* YUMIManePretendDispossessTabulationRegardElement.h */, + E87E914D2796678D00A7B3F2 /* YUMIManePretendDispossessTabulationRegardElement.m */, + E8395337276A0CC100CF2F24 /* YUMIManeIntelligencewearTabulationRegardElement.h */, + E8395338276A0CC100CF2F24 /* YUMIManeIntelligencewearTabulationRegardElement.m */, + E839533A276A0CCD00CF2F24 /* YUMIManeCarTabulationRegardElement.h */, + E839533B276A0CCD00CF2F24 /* YUMIManeCarTabulationRegardElement.m */, + E839533D276A0CDB00CF2F24 /* YUMIManeNameplateTabulationRegardElement.h */, + E839533E276A0CDB00CF2F24 /* YUMIManeNameplateTabulationRegardElement.m */, + E82D5C6B276ADCE700858D6D /* YUMIManePretendDispossessTabulationRegardElement.h */, + E82D5C6C276ADCE700858D6D /* YUMIManePretendDispossessTabulationRegardElement.m */, + 9BBC028F2786FC570007C24B /* YUMIManeMagnificentSolitaireTabulationRegardElement.h */, + 9BBC02902786FC570007C24B /* YUMIManeMagnificentSolitaireTabulationRegardElement.m */, + 9B1FC3D627E49C36006EFFE0 /* YUMIManePretendIntumesceAssembletionRegardElement.h */, + 9B1FC3D727E49C36006EFFE0 /* YUMIManePretendIntumesceAssembletionRegardElement.m */, + 9B1EF3D327E8294B00554295 /* YUMIManePretendDispossessAssembletionRegardElement.h */, + 9B1EF3D427E8294B00554295 /* YUMIManePretendDispossessAssembletionRegardElement.m */, + 9BE01AE228937EDE00B50299 /* YUMIPretendUpwardsProcurementAssembletionRegardElement.h */, + 9BE01AE328937EDE00B50299 /* YUMIPretendUpwardsProcurementAssembletionRegardElement.m */, + 9BE01AE528938AB600B50299 /* YUMIPretendUpwardsProcurementSolitaireTabulationRegardElement.h */, + 9BE01AE628938AB600B50299 /* YUMIPretendUpwardsProcurementSolitaireTabulationRegardElement.m */, + 9BE01AEB2893D0DF00B50299 /* YUMIPretendProcurementHuntforTabulationRegardElement.h */, + 9BE01AEC2893D0DF00B50299 /* YUMIPretendProcurementHuntforTabulationRegardElement.m */, + ); + path = Cell; + sourceTree = ""; + }; + E83ABEFA280EB5A000322EE4 /* SessionContent */ = { + isa = PBXGroup; + children = ( + E83ABEFB280EB5E200322EE4 /* SatisfactionUnfoildEnergeticAbstractMatrix.h */, + E83ABEFC280EB5E200322EE4 /* SatisfactionUnfoildEnergeticAbstractMatrix.m */, + E83ABF01280EC90C00322EE4 /* SatisfactionApplicationParaticipationMatrix.h */, + E83ABF02280EC90C00322EE4 /* SatisfactionApplicationParaticipationMatrix.m */, + E841ED5F280FB0BD00904808 /* SatisfactionPrototypeAscensionMatrix.h */, + E841ED60280FB0BD00904808 /* SatisfactionPrototypeAscensionMatrix.m */, + E8F1559128129EBA00EE8C06 /* SatisfactionSecretaryMatrix.h */, + E8F1559228129EBA00EE8C06 /* SatisfactionSecretaryMatrix.m */, + E86507E6281A8212006951B0 /* SatisfactionTweetMatrix.h */, + E86507E7281A8212006951B0 /* SatisfactionTweetMatrix.m */, + E86E79CE28A4E0B2006DAF48 /* SatisfactionRistPrecautiousMatrix.h */, + E86E79CF28A4E0B2006DAF48 /* SatisfactionRistPrecautiousMatrix.m */, + E8F65C202869A36F009BB5B9 /* SatisfactionParaticipationSeparationsMatrix.h */, + E8F65C212869A36F009BB5B9 /* SatisfactionParaticipationSeparationsMatrix.m */, + ); + path = SessionContent; + sourceTree = ""; + }; + E83DB47E274649B200D8CBD1 /* Model */ = { + isa = PBXGroup; + children = ( + E83DB47827462C4500D8CBD1 /* YUMIPresentBigCaptureMatrix.h */, + E83DB47927462C4500D8CBD1 /* YUMIPresentBigCaptureMatrix.m */, + E83DB47F274649FB00D8CBD1 /* YUMIPresentOriflammeConsumerAbstractMatrix.h */, + E83DB480274649FB00D8CBD1 /* YUMIPresentOriflammeConsumerAbstractMatrix.m */, + E83DB485274670DA00D8CBD1 /* YUMIChamberPresentBroadCastMatrix.h */, + E83DB486274670DA00D8CBD1 /* YUMIChamberPresentBroadCastMatrix.m */, + E86F6183284F4E4800E8EC9A /* ChamberHalfHourRateMatrix.h */, + E86F6184284F4E4800E8EC9A /* ChamberHalfHourRateMatrix.m */, + 9B8DE0DF289CF02900FB6EC2 /* YUMIPresentCompoundMatrix.h */, + 9B8DE0E0289CF02900FB6EC2 /* YUMIPresentCompoundMatrix.m */, + E80E09B42A42078F00CD2BE7 /* YUMIChamberSatelliteKitchenMatrix.h */, + E80E09B52A42078F00CD2BE7 /* YUMIChamberSatelliteKitchenMatrix.m */, + ); + path = Model; + sourceTree = ""; + }; + E8412F9A2779BAC2006E1101 /* Setting */ = { + isa = PBXGroup; + children = ( + E8412F9F2779BB03006E1101 /* Model */, + E8412F9E2779BAF9006E1101 /* Api */, + E8412F9D2779BAF2006E1101 /* View */, + E8412F9C2779BAE6006E1101 /* Presenter */, + E8412F9B2779BAD5006E1101 /* Protocol */, + ); + path = Setting; + sourceTree = ""; + }; + E8412F9B2779BAD5006E1101 /* Protocol */ = { + isa = PBXGroup; + children = ( + E8412FAD2779CB2D006E1101 /* FBCChamberInstanllingCeremony.h */, + E87AE7FD277AAC5A0037823A /* FBCChamberTagCeremony.h */, + E8AA6EF327DF1EB6009B4C2B /* FBCChamberMotifCeremony.h */, + ); + path = Protocol; + sourceTree = ""; + }; + E8412F9C2779BAE6006E1101 /* Presenter */ = { + isa = PBXGroup; + children = ( + E8412FAE2779CB4D006E1101 /* YUMIChamberInstanllingExternalizer.h */, + E8412FAF2779CB4D006E1101 /* YUMIChamberInstanllingExternalizer.m */, + E87AE7FA277AAC450037823A /* YUMIChamberCoupleExternalizer.h */, + E87AE7FB277AAC450037823A /* YUMIChamberCoupleExternalizer.m */, + E8AA6EF027DF1E97009B4C2B /* YUMIChamberMotifExternalizer.h */, + E8AA6EF127DF1E97009B4C2B /* YUMIChamberMotifExternalizer.m */, + ); + path = Presenter; + sourceTree = ""; + }; + E8412F9D2779BAF2006E1101 /* View */ = { + isa = PBXGroup; + children = ( + E8412FA32779BE9B006E1101 /* Cell */, + E8412FA02779BE8F006E1101 /* YUMIChamberInstanllingRegardGovernancer.h */, + E8412FA12779BE8F006E1101 /* YUMIChamberInstanllingRegardGovernancer.m */, + E87AE7F7277AABE50037823A /* YUMIChamberCoupleStatementRegardGovernancer.h */, + E87AE7F8277AABE50037823A /* YUMIChamberCoupleStatementRegardGovernancer.m */, + E84BF7D2277C383700EF8877 /* YUMIChamberInstanllingIntrojectionRegard.h */, + E84BF7D3277C383700EF8877 /* YUMIChamberInstanllingIntrojectionRegard.m */, + E84BF7D5277C6E2100EF8877 /* YUMIChamberRoleRegardGovernancer.h */, + E84BF7D6277C6E2100EF8877 /* YUMIChamberRoleRegardGovernancer.m */, + E84BF7DE277C869A00EF8877 /* YUMIChamberOnLineRegardGovernancer.h */, + E84BF7DF277C869A00EF8877 /* YUMIChamberOnLineRegardGovernancer.m */, + E87E91532796B6DE00A7B3F2 /* YUMIChamberCallforConsumerRegardGovernancer.h */, + E87E91542796B6DE00A7B3F2 /* YUMIChamberCallforConsumerRegardGovernancer.m */, + E8AA6EED27DF1E6B009B4C2B /* YUMIChamberMotifRegardGovernancer.h */, + E8AA6EEE27DF1E6B009B4C2B /* YUMIChamberMotifRegardGovernancer.m */, + E80E900A27E0358900434B90 /* YUMIChamberMotifPrecautiousRegard.h */, + E80E900B27E0358900434B90 /* YUMIChamberMotifPrecautiousRegard.m */, + 9B32A04528881845002009D2 /* YUMIChamberCoupleStatementRegard.h */, + 9B32A04628881845002009D2 /* YUMIChamberCoupleStatementRegard.m */, + ); + path = View; + sourceTree = ""; + }; + E8412F9E2779BAF9006E1101 /* Api */ = { + isa = PBXGroup; + children = ( + E8412FB12779E285006E1101 /* Api+RoomSetting.h */, + E8412FB22779E285006E1101 /* Api+RoomSetting.m */, + ); + path = Api; + sourceTree = ""; + }; + E8412F9F2779BB03006E1101 /* Model */ = { + isa = PBXGroup; + children = ( + E8412FA72779C2ED006E1101 /* YUMIChamberInstanllingProvisionMatrix.h */, + E8412FA82779C2ED006E1101 /* YUMIChamberInstanllingProvisionMatrix.m */, + E84BF7CF277BFCDD00EF8877 /* ChamberCoupleMatrix.h */, + E84BF7D0277BFCDD00EF8877 /* ChamberCoupleMatrix.m */, + 9BFE992C288142FD009DA429 /* ChamberClassifyMatrix.h */, + 9BFE992D288142FD009DA429 /* ChamberClassifyMatrix.m */, + ); + path = Model; + sourceTree = ""; + }; + E8412FA32779BE9B006E1101 /* Cell */ = { + isa = PBXGroup; + children = ( + E8412FA42779BED1006E1101 /* YUMIChamberInstanllingTabulationRegardElement.h */, + E8412FA52779BED1006E1101 /* YUMIChamberInstanllingTabulationRegardElement.m */, + E84BF7C8277AF79D00EF8877 /* YUMIChamberInstanllingCoupleElement.h */, + E84BF7C9277AF79D00EF8877 /* YUMIChamberInstanllingCoupleElement.m */, + E84BF7D8277C72AC00EF8877 /* YUMIChamberRoleTabulationRegardElement.h */, + E84BF7D9277C72AC00EF8877 /* YUMIChamberRoleTabulationRegardElement.m */, + E84BF7DB277C765400EF8877 /* YUMIChamberRoleDispossessTabulationRegardElement.h */, + E84BF7DC277C765400EF8877 /* YUMIChamberRoleDispossessTabulationRegardElement.m */, + E89BD7D2277D471100E31B19 /* YUMIChamberOnlineTabulationRegardElement.h */, + E89BD7D3277D471100E31B19 /* YUMIChamberOnlineTabulationRegardElement.m */, + ); + path = Cell; + sourceTree = ""; + }; + E84150B027747A7400A7F548 /* FirstRecharge */ = { + isa = PBXGroup; + children = ( + E84150B527747AAD00A7F548 /* Model */, + E84150B427747AA400A7F548 /* Api */, + E84150B327747A9E00A7F548 /* View */, + E84150B227747A9500A7F548 /* Presenter */, + E84150B127747A8D00A7F548 /* Protocol */, + E80DE408277568D300BE5BCB /* ThemeColor+FirstRecharge.h */, + E80DE409277568D300BE5BCB /* ThemeColor+FirstRecharge.m */, + ); + path = FirstRecharge; + sourceTree = ""; + }; + E84150B127747A8D00A7F548 /* Protocol */ = { + isa = PBXGroup; + children = ( + E84150BC27747BBD00A7F548 /* FBCFirstReindictCeremony.h */, + ); + path = Protocol; + sourceTree = ""; + }; + E84150B227747A9500A7F548 /* Presenter */ = { + isa = PBXGroup; + children = ( + E84150B927747BAF00A7F548 /* YUMIThresholdReindictExternalizer.h */, + E84150BA27747BAF00A7F548 /* YUMIThresholdReindictExternalizer.m */, + ); + path = Presenter; + sourceTree = ""; + }; + E84150B327747A9E00A7F548 /* View */ = { + isa = PBXGroup; + children = ( + E87DF4B62A42C2FD009C1185 /* YUMIThresholdReindictAssembletionRegard.h */, + E87DF4B52A42C2FD009C1185 /* YUMIThresholdReindictAssembletionRegard.m */, + E87DF4AF2A429B32009C1185 /* YUMIThresholdReindictRegard.h */, + E87DF4AE2A429B32009C1185 /* YUMIThresholdReindictRegard.m */, + E80DE4042775663500BE5BCB /* Cell */, + E80DE40E2775C34E00BE5BCB /* YUMIThresholdReindictSuccessRegard.h */, + E80DE40F2775C34E00BE5BCB /* YUMIThresholdReindictSuccessRegard.m */, + ); + path = View; + sourceTree = ""; + }; + E84150B427747AA400A7F548 /* Api */ = { + isa = PBXGroup; + children = ( + E84150BD27747BD300A7F548 /* Api+FirstRecharge.h */, + E84150BE27747BD300A7F548 /* Api+FirstRecharge.m */, + ); + path = Api; + sourceTree = ""; + }; + E84150B527747AAD00A7F548 /* Model */ = { + isa = PBXGroup; + children = ( + E84150C027747BF700A7F548 /* ThresholdReindictMatrix.h */, + E84150C127747BF700A7F548 /* ThresholdReindictMatrix.m */, + E84150C327747E0900A7F548 /* ThresholdReindictRewardMatrix.h */, + E84150C427747E0900A7F548 /* ThresholdReindictRewardMatrix.m */, + E87DF4B12A429C6E009C1185 /* ThresholdChargeChamberWindowMatrix.h */, + E87DF4B22A429C6E009C1185 /* ThresholdChargeChamberWindowMatrix.m */, + ); + path = Model; + sourceTree = ""; + }; + E84A2E7E2A527DF800D6AF8A /* IncomeRecord */ = { + isa = PBXGroup; + children = ( + E84A2EAA2A528A4100D6AF8A /* YUMIRevenueReflectionGoldSpecificsPickRegardRegard.h */, + E84A2EA92A528A4100D6AF8A /* YUMIRevenueReflectionGoldSpecificsPickRegardRegard.m */, + E84A2EA62A5288FD00D6AF8A /* YUMIGoldSpecificsChooseChamberElement.h */, + E84A2EA72A5288FD00D6AF8A /* YUMIGoldSpecificsChooseChamberElement.m */, + E84A2EA32A5288CB00D6AF8A /* YUMIGoldSpecificsChooseChamberRegard.h */, + E84A2EA42A5288CB00D6AF8A /* YUMIGoldSpecificsChooseChamberRegard.m */, + E84A2EA12A52883000D6AF8A /* YUMIRevenueReflectionGoldSpecificsIntratemporalRegard.h */, + E84A2EA02A52883000D6AF8A /* YUMIRevenueReflectionGoldSpecificsIntratemporalRegard.m */, + E84A2E9E2A5287D200D6AF8A /* YUMIRevenueReflectionGoldSpecificsRegard.h */, + E84A2E9D2A5287D200D6AF8A /* YUMIRevenueReflectionGoldSpecificsRegard.m */, + E84A2E972A52817E00D6AF8A /* YUMIRevenueReflectionRegard.h */, + E84A2E982A52817E00D6AF8A /* YUMIRevenueReflectionRegard.m */, + E84A2E952A5280F900D6AF8A /* YUMIExchangeDiamondsRegard.h */, + E84A2E942A5280F900D6AF8A /* YUMIExchangeDiamondsRegard.m */, + E84A2E8F2A527E6B00D6AF8A /* Protocol */, + E84A2E8E2A527E6100D6AF8A /* Presenter */, + E84A2E882A527DF800D6AF8A /* YUMIExchangeDiamondsVC.h */, + E84A2E822A527DF800D6AF8A /* YUMIExchangeDiamondsVC.m */, + E84A2E802A527DF800D6AF8A /* YUMIRevenueReflectionGoldSpecificsVC.h */, + E84A2E842A527DF800D6AF8A /* YUMIRevenueReflectionGoldSpecificsVC.m */, + E84A2E862A527DF800D6AF8A /* YUMIRevenueReflectionVC.h */, + E84A2E812A527DF800D6AF8A /* YUMIRevenueReflectionVC.m */, + E84A2E9A2A52823900D6AF8A /* YUMIEssayField.h */, + E84A2E9B2A52823900D6AF8A /* YUMIEssayField.m */, + ); + path = IncomeRecord; + sourceTree = ""; + }; + E84A2E8E2A527E6100D6AF8A /* Presenter */ = { + isa = PBXGroup; + children = ( + E84A2E922A527EC700D6AF8A /* YUMIRevenueReflectionExternalize.h */, + E84A2E912A527EC700D6AF8A /* YUMIRevenueReflectionExternalize.m */, + ); + path = Presenter; + sourceTree = ""; + }; + E84A2E8F2A527E6B00D6AF8A /* Protocol */ = { + isa = PBXGroup; + children = ( + E84A2E902A527EBF00D6AF8A /* FBCIncomeRecordCeremony.h */, + ); + path = Protocol; + sourceTree = ""; + }; + E84B0E3C2727EDD4008818C6 /* View */ = { + isa = PBXGroup; + children = ( + 1808072B2731598F001FD836 /* YUMINetIndicateYYDesignation.h */, + 1808072C2731598F001FD836 /* YUMINetIndicateYYDesignation.m */, + E84B0E3D2727EDF6008818C6 /* YUMIChamberCommunicationTabulationRegardElement.h */, + E84B0E3E2727EDF6008818C6 /* YUMIChamberCommunicationTabulationRegardElement.m */, + E84B0E402727EE0A008818C6 /* YUMIChamberCommunicationIntelligencerRegard.h */, + E84B0E412727EE0A008818C6 /* YUMIChamberCommunicationIntelligencerRegard.m */, + ); + path = View; + sourceTree = ""; + }; + E84B0E432727EF2C008818C6 /* Model */ = { + isa = PBXGroup; + children = ( + E87A24EF272935920086A794 /* YUMICommunicationRemoteExtMatrix.h */, + E87A24F0272935920086A794 /* YUMICommunicationRemoteExtMatrix.m */, + E8398069290288660084BFC8 /* YUMICommunicationAbstractMatrix.h */, + E839806A290288660084BFC8 /* YUMICommunicationAbstractMatrix.m */, + ); + path = Model; + sourceTree = ""; + }; + E84B0E47272801F6008818C6 /* Tool */ = { + isa = PBXGroup; + children = ( + E84B0E4927280289008818C6 /* XPRoomMessageConstant.h */, + E84B0E442727EF9D008818C6 /* YUMIChamberCommunicationAnatomiser.h */, + E84B0E452727EF9D008818C6 /* YUMIChamberCommunicationAnatomiser.m */, + ); + path = Tool; + sourceTree = ""; + }; + E85E7A3B2A4EB0D200B6D00A /* Guild */ = { + isa = PBXGroup; + children = ( + E85E7A3C2A4EB0D200B6D00A /* Presenter */, + E85E7A582A4EB0D200B6D00A /* Protocol */, + E85E7A682A4EB0D200B6D00A /* Model */, + E85E7A852A4EB0D200B6D00A /* View */, + E85E7AFE2A4EB0D200B6D00A /* Api */, + ); + path = Guild; + sourceTree = ""; + }; + E85E7A3C2A4EB0D200B6D00A /* Presenter */ = { + isa = PBXGroup; + children = ( + E85E7B6D2A4EC4AE00B6D00A /* YUMIManeUnionExternalizer.h */, + E85E7B6C2A4EC4AE00B6D00A /* YUMIManeUnionExternalizer.m */, + E85E7A442A4EB0D200B6D00A /* Income */, + E85E7A4C2A4EB0D200B6D00A /* Setting */, + E85E7A3F2A4EB0D200B6D00A /* SuperAdmin */, + E85E7A572A4EB0D200B6D00A /* YUMICollectiveExternalizer.h */, + E85E7A492A4EB0D200B6D00A /* YUMICollectiveExternalizer.m */, + E85E7A3E2A4EB0D200B6D00A /* YUMIUnionExternalizer.h */, + E85E7A4B2A4EB0D200B6D00A /* YUMIUnionExternalizer.m */, + E85E7A3D2A4EB0D200B6D00A /* YUMIUnionHuntforExternalizer.h */, + E85E7A4A2A4EB0D200B6D00A /* YUMIUnionHuntforExternalizer.m */, + ); + path = Presenter; + sourceTree = ""; + }; + E85E7A3F2A4EB0D200B6D00A /* SuperAdmin */ = { + isa = PBXGroup; + children = ( + E85E7A402A4EB0D200B6D00A /* YUMISensationalManagementSetExternalizer.m */, + E85E7A412A4EB0D200B6D00A /* YUMISensationalManagementExecutiveChamberExternalizer.m */, + E85E7A422A4EB0D200B6D00A /* YUMISensationalManagementSetExternalizer.h */, + E85E7A432A4EB0D200B6D00A /* YUMISensationalManagementExecutiveChamberExternalizer.h */, + ); + path = SuperAdmin; + sourceTree = ""; + }; + E85E7A442A4EB0D200B6D00A /* Income */ = { + isa = PBXGroup; + children = ( + E85E7A482A4EB0D200B6D00A /* YUMIUnionRevenueSpecificExternalizer.h */, + E85E7A462A4EB0D200B6D00A /* YUMIUnionRevenueSpecificExternalizer.m */, + E85E7A472A4EB0D200B6D00A /* YUMIUnionRevenueExternalizer.h */, + E85E7A452A4EB0D200B6D00A /* YUMIUnionRevenueExternalizer.m */, + ); + path = Income; + sourceTree = ""; + }; + E85E7A4C2A4EB0D200B6D00A /* Setting */ = { + isa = PBXGroup; + children = ( + E85E7A562A4EB0D200B6D00A /* YUMIUnionExecutivePerExternalizer.h */, + E85E7A502A4EB0D200B6D00A /* YUMIUnionExecutivePerExternalizer.m */, + E85E7A4F2A4EB0D200B6D00A /* YUMIUnionMangerStatementExternalizer.h */, + E85E7A532A4EB0D200B6D00A /* YUMIUnionMangerStatementExternalizer.m */, + E85E7A542A4EB0D200B6D00A /* YUMIUnionRemoveComponentExternalizer.h */, + E85E7A4E2A4EB0D200B6D00A /* YUMIUnionRemoveComponentExternalizer.m */, + E85E7A552A4EB0D200B6D00A /* YUMIUnionSetNameExternalizer.h */, + E85E7A512A4EB0D200B6D00A /* YUMIUnionSetNameExternalizer.m */, + E85E7A522A4EB0D200B6D00A /* YUMIManeExecutiveSetExternalizer.h */, + E85E7A4D2A4EB0D200B6D00A /* YUMIManeExecutiveSetExternalizer.m */, + ); + path = Setting; + sourceTree = ""; + }; + E85E7A582A4EB0D200B6D00A /* Protocol */ = { + isa = PBXGroup; + children = ( + E85E7B6F2A4EC4B700B6D00A /* FBCManeUnionCeremony.h */, + E85E7A5D2A4EB0D200B6D00A /* Income */, + E85E7A622A4EB0D200B6D00A /* Setting */, + E85E7A5A2A4EB0D200B6D00A /* SuperAdmin */, + E85E7A592A4EB0D200B6D00A /* FBCCollectiveCeremony.h */, + E85E7A612A4EB0D200B6D00A /* FBCUnionCeremony.h */, + E85E7A602A4EB0D200B6D00A /* FBCUnionHuntforCeremony.h */, + ); + path = Protocol; + sourceTree = ""; + }; + E85E7A5A2A4EB0D200B6D00A /* SuperAdmin */ = { + isa = PBXGroup; + children = ( + E85E7A5B2A4EB0D200B6D00A /* FBCSensationalManagementSetCeremony.h */, + E85E7A5C2A4EB0D200B6D00A /* FBCSensationalManagementExecutiveChamberCeremony.h */, + ); + path = SuperAdmin; + sourceTree = ""; + }; + E85E7A5D2A4EB0D200B6D00A /* Income */ = { + isa = PBXGroup; + children = ( + E85E7A5E2A4EB0D200B6D00A /* FBCUnionIncomeCeremony.h */, + E85E7A5F2A4EB0D200B6D00A /* FBCUnionIncomeDetailCeremony.h */, + ); + path = Income; + sourceTree = ""; + }; + E85E7A622A4EB0D200B6D00A /* Setting */ = { + isa = PBXGroup; + children = ( + E85E7A632A4EB0D200B6D00A /* FBCUnionSetExecutiveCeremony.h */, + E85E7A642A4EB0D200B6D00A /* FBCUnionExecutivePerCeremony.h */, + E85E7A652A4EB0D200B6D00A /* FBCUnionRemoveMemberCeremony.h */, + E85E7A662A4EB0D200B6D00A /* FBCUnionSetNameCeremony.h */, + E85E7A672A4EB0D200B6D00A /* FBCUnionExecutiveStatementCeremony.h */, + ); + path = Setting; + sourceTree = ""; + }; + E85E7A682A4EB0D200B6D00A /* Model */ = { + isa = PBXGroup; + children = ( + E85E7A6B2A4EB0D200B6D00A /* CollectiveSpecificAbstractMatrix.h */, + E85E7A822A4EB0D200B6D00A /* CollectiveSpecificAbstractMatrix.m */, + E85E7A6A2A4EB0D200B6D00A /* CollectiveAbstractMatrix.h */, + E85E7A7F2A4EB0D200B6D00A /* CollectiveAbstractMatrix.m */, + E85E7A6C2A4EB0D200B6D00A /* CollectiveComponentSpecificAbstractMatrix.h */, + E85E7A812A4EB0D200B6D00A /* CollectiveComponentSpecificAbstractMatrix.m */, + E85E7A692A4EB0D200B6D00A /* UnionAuthMatrix.h */, + E85E7A7E2A4EB0D200B6D00A /* UnionAuthMatrix.m */, + E85E7A6D2A4EB0D200B6D00A /* UnionAbstractMatrix.h */, + E85E7A802A4EB0D200B6D00A /* UnionAbstractMatrix.m */, + E85E7A7D2A4EB0D200B6D00A /* UnionCommunicationMatrix.h */, + E85E7A832A4EB0D200B6D00A /* UnionCommunicationMatrix.m */, + E85E7A842A4EB0D200B6D00A /* UnionHuntforConsumerAbstractMatrix.h */, + E85E7A7C2A4EB0D200B6D00A /* UnionHuntforConsumerAbstractMatrix.m */, + E85E7A752A4EB0D200B6D00A /* Income */, + E85E7A6E2A4EB0D200B6D00A /* SuperAdmin */, + E85E7B522A4EB4AD00B6D00A /* YUMIManeUnionStatementMatrix.h */, + E85E7B532A4EB4AD00B6D00A /* YUMIManeUnionStatementMatrix.m */, + ); + path = Model; + sourceTree = ""; + }; + E85E7A6E2A4EB0D200B6D00A /* SuperAdmin */ = { + isa = PBXGroup; + children = ( + E85E7A6F2A4EB0D200B6D00A /* UnionChamberAbstractMatrix.h */, + E85E7A722A4EB0D200B6D00A /* UnionChamberAbstractMatrix.m */, + E85E7A742A4EB0D200B6D00A /* UnionHuntforSensationalManagementMatrix.h */, + E85E7A712A4EB0D200B6D00A /* UnionHuntforSensationalManagementMatrix.m */, + E85E7A732A4EB0D200B6D00A /* UnionSensationalManagementAbstractMatrix.h */, + E85E7A702A4EB0D200B6D00A /* UnionSensationalManagementAbstractMatrix.m */, + ); + path = SuperAdmin; + sourceTree = ""; + }; + E85E7A752A4EB0D200B6D00A /* Income */ = { + isa = PBXGroup; + children = ( + E85E7A7A2A4EB0D200B6D00A /* UnionRevenueSpecificMatrix.h */, + E85E7A772A4EB0D200B6D00A /* UnionRevenueSpecificMatrix.m */, + E85E7A762A4EB0D200B6D00A /* UnionRevenueReflectionMatrix.h */, + E85E7A792A4EB0D200B6D00A /* UnionRevenueReflectionMatrix.m */, + E85E7A7B2A4EB0D200B6D00A /* UnionFeatureRevenueReflectionMatrix.h */, + E85E7A782A4EB0D200B6D00A /* UnionFeatureRevenueReflectionMatrix.m */, + ); + path = Income; + sourceTree = ""; + }; + E85E7A852A4EB0D200B6D00A /* View */ = { + isa = PBXGroup; + children = ( + E85E7ABF2A4EB0D200B6D00A /* Cell */, + E85E7A862A4EB0D200B6D00A /* IncomeStatis */, + E85E7AEF2A4EB0D200B6D00A /* Setting */, + E85E7AA32A4EB0D200B6D00A /* SubViews */, + E85E7A9B2A4EB0D200B6D00A /* SuperAdmin */, + E85E7AEE2A4EB0D200B6D00A /* YUMIManeCollectiveRegardGovernancer.h */, + E85E7A9A2A4EB0D200B6D00A /* YUMIManeCollectiveRegardGovernancer.m */, + E85E7AA22A4EB0D200B6D00A /* YUMIManeExchangeAuthorityVC.h */, + E85E7AFA2A4EB0D200B6D00A /* YUMIManeExchangeAuthorityVC.m */, + E85E7AA12A4EB0D200B6D00A /* YUMIManeUnionStatementVC.h */, + E85E7AFD2A4EB0D200B6D00A /* YUMIManeUnionStatementVC.m */, + E85E7A992A4EB0D200B6D00A /* YUMIManeUnionHuntforRegardGovernancer.h */, + E85E7AED2A4EB0D200B6D00A /* YUMIManeUnionHuntforRegardGovernancer.m */, + E85E7AFC2A4EB0D200B6D00A /* YUMIManeUnionRegardGovernancer.h */, + E85E7AA02A4EB0D200B6D00A /* YUMIManeUnionRegardGovernancer.m */, + E85E7AFB2A4EB0D200B6D00A /* YUMIManeMainUnionStatementVC.h */, + E85E7ABE2A4EB0D200B6D00A /* YUMIManeMainUnionStatementVC.m */, + ); + path = View; + sourceTree = ""; + }; + E85E7A862A4EB0D200B6D00A /* IncomeStatis */ = { + isa = PBXGroup; + children = ( + E85E7A892A4EB0D200B6D00A /* YUMIManeKellegRevenueStatsticsRegardGovernancer.h */, + E85E7A912A4EB0D200B6D00A /* YUMIManeKellegRevenueStatsticsRegardGovernancer.m */, + E85E7A962A4EB0D200B6D00A /* YUMIManeCollectiveRevenueStatsticsRegardGovernancer.h */, + E85E7A8C2A4EB0D200B6D00A /* YUMIManeCollectiveRevenueStatsticsRegardGovernancer.m */, + E85E7A922A4EB0D200B6D00A /* YUMIManeGoldRevenueReflectionVC.h */, + E85E7A882A4EB0D200B6D00A /* YUMIManeGoldRevenueReflectionVC.m */, + E85E7A8E2A4EB0D200B6D00A /* YUMIManeUnionRevenueSpecificRegardGovernancer.h */, + E85E7A942A4EB0D200B6D00A /* YUMIManeUnionRevenueSpecificRegardGovernancer.m */, + E85E7A8F2A4EB0D200B6D00A /* YUMIManeUnionRevenueReflectionRegardGovernancer.h */, + E85E7A982A4EB0D200B6D00A /* YUMIManeUnionRevenueReflectionRegardGovernancer.m */, + E85E7A872A4EB0D200B6D00A /* YUMIManeUnionRevenueStatsticsRegardGovernancer.h */, + E85E7A932A4EB0D200B6D00A /* YUMIManeUnionRevenueStatsticsRegardGovernancer.m */, + E85E7A972A4EB0D200B6D00A /* YUMIManeHallKellegRevenueStatsticsRegardGovernancer.h */, + E85E7A8B2A4EB0D200B6D00A /* YUMIManeHallKellegRevenueStatsticsRegardGovernancer.m */, + E85E7A902A4EB0D200B6D00A /* YUMIManeMainRevenueStatsticsRegardGovernancer.h */, + E85E7A8A2A4EB0D200B6D00A /* YUMIManeMainRevenueStatsticsRegardGovernancer.m */, + E85E7A8D2A4EB0D200B6D00A /* YUMIStrangeManeUnionRevenueReflectionRegardGovernancer.h */, + E85E7A952A4EB0D200B6D00A /* YUMIStrangeManeUnionRevenueReflectionRegardGovernancer.m */, + ); + path = IncomeStatis; + sourceTree = ""; + }; + E85E7A9B2A4EB0D200B6D00A /* SuperAdmin */ = { + isa = PBXGroup; + children = ( + E85E7A9D2A4EB0D200B6D00A /* YUMIManeUnionChooseExecutiveRegardGovernancer.h */, + E85E7A9F2A4EB0D200B6D00A /* YUMIManeUnionChooseExecutiveRegardGovernancer.m */, + E85E7A9C2A4EB0D200B6D00A /* YUMIManeUnionSensationalManagementSetRegardGovernancer.h */, + E85E7A9E2A4EB0D200B6D00A /* YUMIManeUnionSensationalManagementSetRegardGovernancer.m */, + ); + path = SuperAdmin; + sourceTree = ""; + }; + E85E7AA32A4EB0D200B6D00A /* SubViews */ = { + isa = PBXGroup; + children = ( + E85E7AB32A4EB0D200B6D00A /* YUMICollectiveParrotRegard.h */, + E85E7AA62A4EB0D200B6D00A /* YUMICollectiveParrotRegard.m */, + E85E7AA82A4EB0D200B6D00A /* YUMICollectiveDivisionRegard.h */, + E85E7AB12A4EB0D200B6D00A /* YUMICollectiveDivisionRegard.m */, + E85E7AAA2A4EB0D200B6D00A /* YUMIGoldRevenueDivisionRegard.h */, + E85E7AB82A4EB0D200B6D00A /* YUMIGoldRevenueDivisionRegard.m */, + E85E7AB02A4EB0D200B6D00A /* YUMIUnionKellegRevenueDivisionRegard.h */, + E85E7ABC2A4EB0D200B6D00A /* YUMIUnionKellegRevenueDivisionRegard.m */, + E85E7AA52A4EB0D200B6D00A /* YUMIUnionIntelligencerRegard.h */, + E85E7AB22A4EB0D200B6D00A /* YUMIUnionIntelligencerRegard.m */, + E85E7AA92A4EB0D200B6D00A /* YUMIUnionRevenueIntelligencerRegard.h */, + E85E7AB92A4EB0D200B6D00A /* YUMIUnionRevenueIntelligencerRegard.m */, + E85E7AAF2A4EB0D200B6D00A /* YUMIUnionRevenueDivisionRegard.h */, + E85E7ABD2A4EB0D200B6D00A /* YUMIUnionRevenueDivisionRegard.m */, + E85E7AAB2A4EB0D200B6D00A /* YUMIUnionHuntforNevRegard.h */, + E85E7AB72A4EB0D200B6D00A /* YUMIUnionHuntforNevRegard.m */, + E85E7AB52A4EB0D200B6D00A /* YUMIUnionSensationalManagementParrotRegard.h */, + E85E7AA42A4EB0D200B6D00A /* YUMIUnionSensationalManagementParrotRegard.m */, + E85E7AB62A4EB0D200B6D00A /* YUMIUnionIntratemporalMonthPickerRegard.h */, + E85E7AAC2A4EB0D200B6D00A /* YUMIUnionIntratemporalMonthPickerRegard.m */, + E85E7AB42A4EB0D200B6D00A /* YUMIUnionIntratemporalPickRegard.h */, + E85E7AA72A4EB0D200B6D00A /* YUMIUnionIntratemporalPickRegard.m */, + E85E7AAD2A4EB0D200B6D00A /* YUMIStrangeUnionRevenueIntelligencerRegard.h */, + E85E7ABB2A4EB0D200B6D00A /* YUMIStrangeUnionRevenueIntelligencerRegard.m */, + E85E7ABA2A4EB0D200B6D00A /* YUMIStrangeUnionIntratemporalPickRegard.h */, + E85E7AAE2A4EB0D200B6D00A /* YUMIStrangeUnionIntratemporalPickRegard.m */, + E85E7B702A4EC93C00B6D00A /* YUMIManeGiveDiamondHuntforRegard.h */, + E85E7B712A4EC93C00B6D00A /* YUMIManeGiveDiamondHuntforRegard.m */, + ); + path = SubViews; + sourceTree = ""; + }; + E85E7ABF2A4EB0D200B6D00A /* Cell */ = { + isa = PBXGroup; + children = ( + E85E7ADE2A4EB0D200B6D00A /* ExchangeAuthority */, + E85E7AC22A4EB0D200B6D00A /* GuildList */, + E85E7AD12A4EB0D200B6D00A /* Income */, + E85E7AE82A4EB0D200B6D00A /* Setting */, + E85E7AC82A4EB0D200B6D00A /* SuperAdmin */, + E85E7ADB2A4EB0D200B6D00A /* YUMICollectiveComponentTabulationRegardElement.h */, + E85E7AC02A4EB0D200B6D00A /* YUMICollectiveComponentTabulationRegardElement.m */, + E85E7ADA2A4EB0D200B6D00A /* YUMICollectiveChamberAssembletionRegardElement.h */, + E85E7AC12A4EB0D200B6D00A /* YUMICollectiveChamberAssembletionRegardElement.m */, + E85E7AC72A4EB0D200B6D00A /* YUMIUnionDispossessAssembletionRegardElement.h */, + E85E7AE72A4EB0D200B6D00A /* YUMIUnionDispossessAssembletionRegardElement.m */, + E85E7AC62A4EB0D200B6D00A /* YUMIManeUnionDispossessTabulationRegardElement.h */, + E85E7ADC2A4EB0D200B6D00A /* YUMIManeUnionDispossessTabulationRegardElement.m */, + E85E7ADD2A4EB0D200B6D00A /* YUMIManeUnionHuntforComponentTabulationRegardElement.h */, + E85E7AC52A4EB0D200B6D00A /* YUMIManeUnionHuntforComponentTabulationRegardElement.m */, + ); + path = Cell; + sourceTree = ""; + }; + E85E7AC22A4EB0D200B6D00A /* GuildList */ = { + isa = PBXGroup; + children = ( + E85E7AC42A4EB0D200B6D00A /* YUMIManeUnionStatementElement.h */, + E85E7AC32A4EB0D200B6D00A /* YUMIManeUnionStatementElement.m */, + ); + path = GuildList; + sourceTree = ""; + }; + E85E7AC82A4EB0D200B6D00A /* SuperAdmin */ = { + isa = PBXGroup; + children = ( + E85E7AC92A4EB0D200B6D00A /* YUMIUnionSensationalManagementChamberAssembletionRegardElement.h */, + E85E7ACA2A4EB0D200B6D00A /* YUMIUnionChooseExecutiveChamberTabulationRegardElement.m */, + E85E7ACB2A4EB0D200B6D00A /* YUMIUnionSensationalManagementSetTabulationRegardElement.m */, + E85E7ACC2A4EB0D200B6D00A /* YUMIUnionHuntforSensationalManagementTabulationRegardElement.m */, + E85E7ACD2A4EB0D200B6D00A /* YUMIUnionSensationalManagementChamberAssembletionRegardElement.m */, + E85E7ACE2A4EB0D200B6D00A /* YUMIUnionChooseExecutiveChamberTabulationRegardElement.h */, + E85E7ACF2A4EB0D200B6D00A /* YUMIUnionHuntforSensationalManagementTabulationRegardElement.h */, + E85E7AD02A4EB0D200B6D00A /* YUMIUnionSensationalManagementSetTabulationRegardElement.h */, + ); + path = SuperAdmin; + sourceTree = ""; + }; + E85E7AD12A4EB0D200B6D00A /* Income */ = { + isa = PBXGroup; + children = ( + E85E7AD22A4EB0D200B6D00A /* YUMIUnionRevenueSpecificAssembletionRegardElement.m */, + E85E7AD32A4EB0D200B6D00A /* YUMIUnionRevenueReflectionTabulationRegardElement.m */, + E85E7AD42A4EB0D200B6D00A /* YUMIUnionFeatureRevenueTabulationRegardElement.h */, + E85E7AD52A4EB0D200B6D00A /* YUMIUnionSingleChamberRevenueTabulationRegardElement.m */, + E85E7AD62A4EB0D200B6D00A /* YUMIUnionRevenueSpecificAssembletionRegardElement.h */, + E85E7AD72A4EB0D200B6D00A /* YUMIUnionFeatureRevenueTabulationRegardElement.m */, + E85E7AD82A4EB0D200B6D00A /* YUMIUnionRevenueReflectionTabulationRegardElement.h */, + E85E7AD92A4EB0D200B6D00A /* YUMIUnionSingleChamberRevenueTabulationRegardElement.h */, + ); + path = Income; + sourceTree = ""; + }; + E85E7ADE2A4EB0D200B6D00A /* ExchangeAuthority */ = { + isa = PBXGroup; + children = ( + E85E7ADF2A4EB0D200B6D00A /* YUMIManeExchangeAuthorityElement.h */, + E85E7AE32A4EB0D200B6D00A /* YUMIManeExchangeAuthorityElement.m */, + E85E7AE12A4EB0D200B6D00A /* YUMIManeExchangeAuthorityFooderRegard.h */, + E85E7AE62A4EB0D200B6D00A /* YUMIManeExchangeAuthorityFooderRegard.m */, + E85E7AE52A4EB0D200B6D00A /* YUMIManeExchangeAuthorityIntelligenceRegard.h */, + E85E7AE22A4EB0D200B6D00A /* YUMIManeExchangeAuthorityIntelligenceRegard.m */, + E85E7AE42A4EB0D200B6D00A /* YUMIManePromptWindow.h */, + E85E7AE02A4EB0D200B6D00A /* YUMIManePromptWindow.m */, + ); + path = ExchangeAuthority; + sourceTree = ""; + }; + E85E7AE82A4EB0D200B6D00A /* Setting */ = { + isa = PBXGroup; + children = ( + E85E7AE92A4EB0D200B6D00A /* YUMIManeUnionExecutivePerTabulationRegardElement.m */, + E85E7AEB2A4EB0D200B6D00A /* YUMIManeUnionExecutivePerTabulationRegardElement.h */, + ); + path = Setting; + sourceTree = ""; + }; + E85E7AEF2A4EB0D200B6D00A /* Setting */ = { + isa = PBXGroup; + children = ( + E85E7AF92A4EB0D200B6D00A /* YUMIManeUnionExecutivePerRegardGovernancer.h */, + E85E7AF42A4EB0D200B6D00A /* YUMIManeUnionExecutivePerRegardGovernancer.m */, + E85E7AF52A4EB0D200B6D00A /* YUMIManeUnionExecutiveSetRegardGovernancer.h */, + E85E7AF32A4EB0D200B6D00A /* YUMIManeUnionExecutiveSetRegardGovernancer.m */, + E85E7AF22A4EB0D200B6D00A /* YUMIManeUnionRemoveComponentRegardGovernancer.h */, + E85E7AF62A4EB0D200B6D00A /* YUMIManeUnionRemoveComponentRegardGovernancer.m */, + E85E7AF02A4EB0D200B6D00A /* YUMIManeUnionSetNameRegardGovernancer.h */, + E85E7AF82A4EB0D200B6D00A /* YUMIManeUnionSetNameRegardGovernancer.m */, + E85E7AF72A4EB0D200B6D00A /* YUMIManeMangerStatementRegardGovernancer.h */, + E85E7AF12A4EB0D200B6D00A /* YUMIManeMangerStatementRegardGovernancer.m */, + ); + path = Setting; + sourceTree = ""; + }; + E85E7AFE2A4EB0D200B6D00A /* Api */ = { + isa = PBXGroup; + children = ( + E85E7AFF2A4EB0D200B6D00A /* Api+Guild.m */, + E85E7B002A4EB0D200B6D00A /* Api+Guild.h */, + ); + path = Api; + sourceTree = ""; + }; + E85E7B582A4EC35A00B6D00A /* RecordIncome */ = { + isa = PBXGroup; + children = ( + E85E7B592A4EC35A00B6D00A /* YUMIRevenueReflectionGoldSpecificsMatrix.h */, + E85E7B5A2A4EC35A00B6D00A /* YUMIExchangeDiamondsMatrix.h */, + E85E7B5B2A4EC35A00B6D00A /* YUMIRevenueReflectionMatrix.h */, + E85E7B5C2A4EC35A00B6D00A /* YUMIDilemmaExtractAbstractMatrix.h */, + E85E7B5D2A4EC35A00B6D00A /* YUMIWithdrawAccountMatrix.m */, + E85E7B5E2A4EC35A00B6D00A /* YUMIRevenueReflectionMatrix.m */, + E85E7B5F2A4EC35A00B6D00A /* YUMIExchangeDiamondsMatrix.m */, + E85E7B602A4EC35A00B6D00A /* YUMIRevenueReflectionGoldSpecificsMatrix.m */, + E85E7B612A4EC35A00B6D00A /* YUMIDilemmaExtractAbstractMatrix.m */, + E85E7B622A4EC35A00B6D00A /* YUMIWithdrawAccountMatrix.h */, + ); + path = RecordIncome; + sourceTree = ""; + }; + E85E7B682A4EC39400B6D00A /* ExchangeAuthority */ = { + isa = PBXGroup; + children = ( + E85E7B692A4EC39400B6D00A /* YUMIManeExchangeAuthorityMatrix.m */, + E85E7B6A2A4EC39400B6D00A /* YUMIManeExchangeAuthorityMatrix.h */, + ); + path = ExchangeAuthority; + sourceTree = ""; + }; + E85E7B732A4EC99200B6D00A /* GiveDiamond */ = { + isa = PBXGroup; + children = ( + E85E7B742A4EC99200B6D00A /* Presenter */, + E85E7B772A4EC99200B6D00A /* Protocol */, + E85E7B792A4EC99200B6D00A /* Model */, + E85E7B802A4EC99200B6D00A /* View */, + E85E7B9C2A4EC99200B6D00A /* Api */, + ); + path = GiveDiamond; + sourceTree = ""; + }; + E85E7B742A4EC99200B6D00A /* Presenter */ = { + isa = PBXGroup; + children = ( + E85E7B752A4EC99200B6D00A /* YUMIManeGiveDiamondExternalizer.m */, + E85E7B762A4EC99200B6D00A /* YUMIManeGiveDiamondExternalizer.h */, + ); + path = Presenter; + sourceTree = ""; + }; + E85E7B772A4EC99200B6D00A /* Protocol */ = { + isa = PBXGroup; + children = ( + E85E7B782A4EC99200B6D00A /* FBCManeGiveDiamondCeremony.h */, + ); + path = Protocol; + sourceTree = ""; + }; + E85E7B792A4EC99200B6D00A /* Model */ = { + isa = PBXGroup; + children = ( + E85E7B7D2A4EC99200B6D00A /* YUMIManeGiveDiamondSpecificsMatrix.h */, + E85E7B7A2A4EC99200B6D00A /* YUMIManeGiveDiamondSpecificsMatrix.m */, + E85E7B7E2A4EC99200B6D00A /* YUMIManeGiveDiamondMatrix.h */, + E85E7B7B2A4EC99200B6D00A /* YUMIManeGiveDiamondMatrix.m */, + E85E7B7C2A4EC99200B6D00A /* YUMIManeGiveDiamondHuntforMatrix.h */, + E85E7B7F2A4EC99200B6D00A /* YUMIManeGiveDiamondHuntforMatrix.m */, + ); + path = Model; + sourceTree = ""; + }; + E85E7B802A4EC99200B6D00A /* View */ = { + isa = PBXGroup; + children = ( + E85E7BB72A4ED89E00B6D00A /* YUMIRevenueReflectionGoldSpecificsIntelligenceRegard.h */, + E85E7BB82A4ED89F00B6D00A /* YUMIRevenueReflectionGoldSpecificsIntelligenceRegard.m */, + E85E7B852A4EC99200B6D00A /* Cell */, + E85E7B822A4EC99200B6D00A /* YUMIManeChooseGiveDiamondVC.h */, + E85E7B9B2A4EC99200B6D00A /* YUMIManeChooseGiveDiamondVC.m */, + E85E7B842A4EC99200B6D00A /* YUMIManeGiveDiamondSpecificsVC.h */, + E85E7B832A4EC99200B6D00A /* YUMIManeGiveDiamondSpecificsVC.m */, + E85E7B812A4EC99200B6D00A /* YUMIManeGiveDiamondVC.h */, + E85E7B9A2A4EC99200B6D00A /* YUMIManeGiveDiamondVC.m */, + ); + path = View; + sourceTree = ""; + }; + E85E7B852A4EC99200B6D00A /* Cell */ = { + isa = PBXGroup; + children = ( + E85E7B902A4EC99200B6D00A /* YUMIManeChooseGiveDiamondRegard.h */, + E85E7B872A4EC99200B6D00A /* YUMIManeChooseGiveDiamondRegard.m */, + E85E7B8D2A4EC99200B6D00A /* YUMIManeChooseGivePresentRegard.h */, + E85E7B972A4EC99200B6D00A /* YUMIManeChooseGivePresentRegard.m */, + E85E7B8B2A4EC99200B6D00A /* YUMIManeChooseGivePresentRegardElement.h */, + E85E7B922A4EC99200B6D00A /* YUMIManeChooseGivePresentRegardElement.m */, + E85E7B882A4EC99200B6D00A /* YUMIManeConfirmGiveDiamondRegard.h */, + E85E7B952A4EC99200B6D00A /* YUMIManeConfirmGiveDiamondRegard.m */, + E85E7B912A4EC99200B6D00A /* YUMIManeGiveDiamondElement.h */, + E85E7B862A4EC99200B6D00A /* YUMIManeGiveDiamondElement.m */, + E85E7B8F2A4EC99200B6D00A /* YUMIManeGiveDiamondSpecificsElement.h */, + E85E7B992A4EC99200B6D00A /* YUMIManeGiveDiamondSpecificsElement.m */, + E85E7B8C2A4EC99200B6D00A /* YUMIManeGiveDiamondSpecificsRegard.h */, + E85E7B982A4EC99200B6D00A /* YUMIManeGiveDiamondSpecificsRegard.m */, + E85E7B932A4EC99200B6D00A /* YUMIManeGiveDiamondCiphercodeRegard.h */, + E85E7B8A2A4EC99200B6D00A /* YUMIManeGiveDiamondCiphercodeRegard.m */, + E85E7B8E2A4EC99200B6D00A /* YUMIManeGiveDiamondPwordRegard.h */, + E85E7B962A4EC99200B6D00A /* YUMIManeGiveDiamondPwordRegard.m */, + E85E7B942A4EC99200B6D00A /* YUMIManeGiveDiamondHuntforRegard.h */, + E85E7B892A4EC99200B6D00A /* YUMIManeGiveDiamondHuntforRegard.m */, + E85E7BB12A4ED45300B6D00A /* YUMIPageControl.h */, + E85E7BB22A4ED45300B6D00A /* YUMIPageControl.m */, + E85E7BB42A4ED59900B6D00A /* YUMIRevenueReflectionGoldSpecificsElement.h */, + E85E7BB52A4ED59900B6D00A /* YUMIRevenueReflectionGoldSpecificsElement.m */, + ); + path = Cell; + sourceTree = ""; + }; + E85E7B9C2A4EC99200B6D00A /* Api */ = { + isa = PBXGroup; + children = ( + E85E7B9D2A4EC99200B6D00A /* Api+GiveDiamond.h */, + E85E7B9E2A4EC99200B6D00A /* Api+GiveDiamond.m */, + ); + path = Api; + sourceTree = ""; + }; + E8659640270160F200846EBD /* VagueImageView */ = { + isa = PBXGroup; + children = ( + E86596422701611A00846EBD /* UIImage+ImageEffects.h */, + E86596412701611A00846EBD /* UIImage+ImageEffects.m */, + ); + path = VagueImageView; + sourceTree = ""; + }; + E865964E2701A1A900846EBD /* StatsticsticsServing */ = { + isa = PBXGroup; + children = ( + E865964F2701A1C000846EBD /* StatsticsticsServing.h */, + E86596502701A1C000846EBD /* StatsticsticsServing.m */, + E86596522701A55500846EBD /* StatsticsticsServingFacilitater.h */, + E86596532701A55500846EBD /* StatsticsticsServingFacilitater.m */, + ); + path = StatsticsticsServing; + sourceTree = ""; + }; + E8680707271959090024F48F /* MiecreoscoopeRegard */ = { + isa = PBXGroup; + children = ( + 9B0086C727BA4F4A0032BD2B /* Anchor */, + E8DBB6FA27B63CC300AA285D /* LittleGame */, + E8899C7C27853B46007944BE /* Dating */, + 180806DA27297269001FD836 /* MicroRegardCeremony.h */, + E8680716271967B00024F48F /* MiecreoscoopeRegard.h */, + E8680717271967B00024F48F /* MiecreoscoopeRegard.m */, + 9B86D884281942D200494FCD /* SocialMiecreoscoopeRegard.h */, + 9B86D885281942D200494FCD /* SocialMiecreoscoopeRegard.m */, + E81D58802720082A003063FE /* MiecreoscoopeWaveRegard.h */, + E81D58812720082A003063FE /* MiecreoscoopeWaveRegard.m */, + 9BCD02C52796C02800F396AA /* MiecreoscoopeMagnificentWaveRegard.h */, + 9BCD02C62796C02800F396AA /* MiecreoscoopeMagnificentWaveRegard.m */, + E8DACCF92766EDC60052092C /* MiecreoscoopePresentStressRegard.h */, + E8DACCFA2766EDC60052092C /* MiecreoscoopePresentStressRegard.m */, + ); + path = MiecreoscoopeRegard; + sourceTree = ""; + }; + E86B911B281034F10007DEE7 /* Cell */ = { + isa = PBXGroup; + children = ( + 9B7D804B27537950003DAC0C /* CommunicationElement.h */, + 9B7D804C27537950003DAC0C /* CommunicationElement.m */, + E875A1B629755EE200AB1BBD /* InterlocutionConsumerAbstractTabulationRegardElement.h */, + E875A1B729755EE200AB1BBD /* InterlocutionConsumerAbstractTabulationRegardElement.m */, + E885D531297798E1004DC088 /* InterlocutionInstanllingTabulationRegardElement.h */, + E885D532297798E1004DC088 /* InterlocutionInstanllingTabulationRegardElement.m */, + ); + path = Cell; + sourceTree = ""; + }; + E872308A26E89D5100B90D4F /* CustomView */ = { + isa = PBXGroup; + children = ( + E872309126E8D31500B90D4F /* SurmountValidationCodeRegard.h */, + E872309226E8D31500B90D4F /* SurmountValidationCodeRegard.m */, + E824543B26F58C3A00BE8163 /* YUMISurmountDilemmaSuccessRegard.h */, + E824543C26F58C3A00BE8163 /* YUMISurmountDilemmaSuccessRegard.m */, + E82EE0F6272FDDFA00D15DC1 /* ConsumerPrivacyRegard.h */, + E82EE0F7272FDDFA00D15DC1 /* ConsumerPrivacyRegard.m */, + ); + path = CustomView; + sourceTree = ""; + }; + E874B88527215CFF003954B9 /* Model */ = { + isa = PBXGroup; + children = ( + E874B88627215D39003954B9 /* MiecreoscoopeStateMatrix.h */, + E874B88727215D39003954B9 /* MiecreoscoopeStateMatrix.m */, + E874B88927215EAF003954B9 /* MiecreoscoopeMHTueueMatrix.h */, + E874B88A27215EAF003954B9 /* MiecreoscoopeMHTueueMatrix.m */, + E87E91502796A15500A7B3F2 /* MiecreoscoopeExtMatrix.h */, + E87E91512796A15500A7B3F2 /* MiecreoscoopeExtMatrix.m */, + 9B044D9E282D32F700DE4859 /* MiecreoscoopeCallforExtMatrix.h */, + 9B044D9F282D32F700DE4859 /* MiecreoscoopeCallforExtMatrix.m */, + ); + path = Model; + sourceTree = ""; + }; + E8751E5128A629EB0056EF44 /* Sailing */ = { + isa = PBXGroup; + children = ( + E8751E5628A62A250056EF44 /* Model */, + E8751E5528A62A1D0056EF44 /* Api */, + E8751E5428A62A150056EF44 /* View */, + E8751E5328A62A0E0056EF44 /* Presenter */, + ); + path = Sailing; + sourceTree = ""; + }; + E8751E5228A62A010056EF44 /* Protocol */ = { + isa = PBXGroup; + children = ( + E8751E6028A62AA60056EF44 /* FBCSailingCeremony.h */, + ); + path = Protocol; + sourceTree = ""; + }; + E8751E5328A62A0E0056EF44 /* Presenter */ = { + isa = PBXGroup; + children = ( + E8751E5D28A62A970056EF44 /* YUMIMarchingExternalizer.h */, + E8751E5E28A62A970056EF44 /* YUMIMarchingExternalizer.m */, + E8751E5228A62A010056EF44 /* Protocol */, + ); + path = Presenter; + sourceTree = ""; + }; + E8751E5428A62A150056EF44 /* View */ = { + isa = PBXGroup; + children = ( + E8751E6828A64C550056EF44 /* Cell */, + E8751E6728A64C480056EF44 /* SubViews */, + E8751E5A28A62A530056EF44 /* YUMIMarchingRegardGovernancer.h */, + E8751E5B28A62A530056EF44 /* YUMIMarchingRegardGovernancer.m */, + E8751E6128A646400056EF44 /* YUMIMarchingRateRegard.h */, + E8751E6228A646400056EF44 /* YUMIMarchingRateRegard.m */, + E8751E6428A6465A0056EF44 /* YUMIMarchingRateMetroRegard.h */, + E8751E6528A6465A0056EF44 /* YUMIMarchingRateMetroRegard.m */, + E8AB633128AE51470023B0D2 /* YUMIMarchingCaptureRegard.h */, + E8AB633228AE51470023B0D2 /* YUMIMarchingCaptureRegard.m */, + E897ABFA28AF2E71003B3587 /* YUMIMarchingPresentRegard.h */, + E897ABFB28AF2E71003B3587 /* YUMIMarchingPresentRegard.m */, + E8E21A9C28B4DFE8008F7C9D /* YUMIMarchingBuyFuelRegard.h */, + E8E21A9D28B4DFE8008F7C9D /* YUMIMarchingBuyFuelRegard.m */, + E897ABFD28AF39B4003B3587 /* YUMIMarchingBrightnessRegard.h */, + E897ABFE28AF39B4003B3587 /* YUMIMarchingBrightnessRegard.m */, + ); + path = View; + sourceTree = ""; + }; + E8751E5528A62A1D0056EF44 /* Api */ = { + isa = PBXGroup; + children = ( + E8751E5728A62A390056EF44 /* Api+Sailing.h */, + E8751E5828A62A390056EF44 /* Api+Sailing.m */, + ); + path = Api; + sourceTree = ""; + }; + E8751E5628A62A250056EF44 /* Model */ = { + isa = PBXGroup; + children = ( + E8751E6F28A6541B0056EF44 /* ChamberMarchingRateMatrix.h */, + E8751E7028A6541B0056EF44 /* ChamberMarchingRateMatrix.m */, + E8751E7228A665BC0056EF44 /* ChamberMarchingAbstractMatrix.h */, + E8751E7328A665BC0056EF44 /* ChamberMarchingAbstractMatrix.m */, + E8BD0F8928A9EB0A00DE050D /* ChamberMarchingCaptureStatementMatrix.h */, + E8BD0F8A28A9EB0A00DE050D /* ChamberMarchingCaptureStatementMatrix.m */, + E8BD0F8628A9E9E400DE050D /* ChamberMarchingCaptureMatrix.h */, + E8BD0F8728A9E9E400DE050D /* ChamberMarchingCaptureMatrix.m */, + ); + path = Model; + sourceTree = ""; + }; + E8751E6728A64C480056EF44 /* SubViews */ = { + isa = PBXGroup; + children = ( + ); + path = SubViews; + sourceTree = ""; + }; + E8751E6828A64C550056EF44 /* Cell */ = { + isa = PBXGroup; + children = ( + E8751E6928A64C6E0056EF44 /* YUMIMarchingRateTabulationRegardElement.h */, + E8751E6A28A64C6E0056EF44 /* YUMIMarchingRateTabulationRegardElement.m */, + E8751E6C28A64F990056EF44 /* YUMIMarchingDispossessTabulationRegardElement.h */, + E8751E6D28A64F990056EF44 /* YUMIMarchingDispossessTabulationRegardElement.m */, + E8AB633428AE54A40023B0D2 /* YUMIMarchingCaptureAssembletionRegardElement.h */, + E8AB633528AE54A40023B0D2 /* YUMIMarchingCaptureAssembletionRegardElement.m */, + ); + path = Cell; + sourceTree = ""; + }; + E8778AE82988EE9200CF139B /* SayHello */ = { + isa = PBXGroup; + children = ( + E8778AED2988EEED00CF139B /* Model */, + E8778AEC2988EEE600CF139B /* Api */, + E8778AEB2988EEDB00CF139B /* View */, + E8778AEA2988EED400CF139B /* Presenter */, + E8778AE92988EEBF00CF139B /* Protocol */, + ); + path = SayHello; + sourceTree = ""; + }; + E8778AE92988EEBF00CF139B /* Protocol */ = { + isa = PBXGroup; + children = ( + E8F63CB8298B5F3D00B338BA /* FBCInterlocutionSayHelloCeremony.h */, + ); + path = Protocol; + sourceTree = ""; + }; + E8778AEA2988EED400CF139B /* Presenter */ = { + isa = PBXGroup; + children = ( + E8F63CB5298B566D00B338BA /* YUMIInterlocutionSpeakHalloExternalizer.h */, + E8F63CB6298B566D00B338BA /* YUMIInterlocutionSpeakHalloExternalizer.m */, + ); + path = Presenter; + sourceTree = ""; + }; + E8778AEB2988EEDB00CF139B /* View */ = { + isa = PBXGroup; + children = ( + E8778AF22988EF1300CF139B /* CustomView */, + E8778AF12988EF0A00CF139B /* Cell */, + E8778AEE2988EF0600CF139B /* YUMIInterlocutionSpeakHalloRegardGovernancer.h */, + E8778AEF2988EF0600CF139B /* YUMIInterlocutionSpeakHalloRegardGovernancer.m */, + ); + path = View; + sourceTree = ""; + }; + E8778AEC2988EEE600CF139B /* Api */ = { + isa = PBXGroup; + children = ( + E8F63CB2298B563D00B338BA /* Api+SayHello.h */, + E8F63CB3298B563D00B338BA /* Api+SayHello.m */, + ); + path = Api; + sourceTree = ""; + }; + E8778AED2988EEED00CF139B /* Model */ = { + isa = PBXGroup; + children = ( + E8F63CAF298B553500B338BA /* InterlocutionSpeakHalloPrototypeMatrix.h */, + E8F63CB0298B553500B338BA /* InterlocutionSpeakHalloPrototypeMatrix.m */, + E8F63CB9298B648300B338BA /* InterlocutionSpeakHalloStatementMatrix.h */, + E8F63CBA298B648300B338BA /* InterlocutionSpeakHalloStatementMatrix.m */, + E8AFF7E1298CA1E500FBDE32 /* InterlocutionSpeakHalloComputationMatrix.h */, + E8AFF7E2298CA1E500FBDE32 /* InterlocutionSpeakHalloComputationMatrix.m */, + ); + path = Model; + sourceTree = ""; + }; + E8778AF12988EF0A00CF139B /* Cell */ = { + isa = PBXGroup; + children = ( + E8778AF32988EF2B00CF139B /* YUMIInterlocutionSpeakHalloTabulationRegardElement.h */, + E8778AF42988EF2B00CF139B /* YUMIInterlocutionSpeakHalloTabulationRegardElement.m */, + E8778AF92989034200CF139B /* YUMIInterlocutionSpeakHalloDispossessTabulationRegardElement.h */, + E8778AFA2989034200CF139B /* YUMIInterlocutionSpeakHalloDispossessTabulationRegardElement.m */, + ); + path = Cell; + sourceTree = ""; + }; + E8778AF22988EF1300CF139B /* CustomView */ = { + isa = PBXGroup; + children = ( + E8778AF62988F4E200CF139B /* YUMIInterlocutionSpeakHalloIntelligencerRegard.h */, + E8778AF72988F4E200CF139B /* YUMIInterlocutionSpeakHalloIntelligencerRegard.m */, + ); + path = CustomView; + sourceTree = ""; + }; + E8788931273A53B000BF1D57 /* SendGiftView */ = { + isa = PBXGroup; + children = ( + E8788935273A540400BF1D57 /* Model */, + E8788936273A541500BF1D57 /* Api */, + E8788937273A542700BF1D57 /* View */, + E8788938273A542E00BF1D57 /* Presenter */, + E8788939273A544000BF1D57 /* Protocol */, + E878894E273A699900BF1D57 /* ThemeColor+SendGift.h */, + E878894F273A699900BF1D57 /* ThemeColor+SendGift.m */, + ); + path = SendGiftView; + sourceTree = ""; + }; + E8788935273A540400BF1D57 /* Model */ = { + isa = PBXGroup; + children = ( + E890BC02273CF0500007C46B /* YUMIPresentComputationMatrix.h */, + E890BC03273CF0500007C46B /* YUMIPresentComputationMatrix.m */, + E890BC0E273D23F00007C46B /* PresentAbstractMatrix.h */, + E890BC0F273D23F00007C46B /* PresentAbstractMatrix.m */, + E884C36A2743951B00E1EBED /* PresentAchieveAbstractMatrix.h */, + E884C36B2743951B00E1EBED /* PresentAchieveAbstractMatrix.m */, + E8E7DAE92745158500C631CC /* YUMIExternalizeConsumerAbstractMatrix.h */, + E8E7DAEA2745158500C631CC /* YUMIExternalizeConsumerAbstractMatrix.m */, + E8DACCFC27673F870052092C /* PresentStressAbstractMatrix.h */, + E8DACCFD27673F870052092C /* PresentStressAbstractMatrix.m */, + 9B208A342779B50100F9E54A /* PresentMagnificentAbstractMatrix.h */, + 9B208A352779B50100F9E54A /* PresentMagnificentAbstractMatrix.m */, + 9B41D36C282649230048C588 /* YUMIWeekSatelliteRateConsumerMatrix.h */, + 9B41D36D282649230048C588 /* YUMIWeekSatelliteRateConsumerMatrix.m */, + E8A3538328FD67320014A784 /* PresentFortunatePingbackMatrix.h */, + E8A3538428FD67320014A784 /* PresentFortunatePingbackMatrix.m */, + E8D4DE452940473500EC788D /* PresentTwelveSatelliteThresholdMatrix.h */, + E8D4DE462940473500EC788D /* PresentTwelveSatelliteThresholdMatrix.m */, + ); + path = Model; + sourceTree = ""; + }; + E8788936273A541500BF1D57 /* Api */ = { + isa = PBXGroup; + children = ( + E878893A273A54C300BF1D57 /* Api+Gift.h */, + E878893B273A54C300BF1D57 /* Api+Gift.m */, + ); + path = Api; + sourceTree = ""; + }; + E8788937273A542700BF1D57 /* View */ = { + isa = PBXGroup; + children = ( + E8788949273A594C00BF1D57 /* Cell */, + E8788932273A53D700BF1D57 /* YUMIDischargePresentRegard.h */, + E8788933273A53D700BF1D57 /* YUMIDischargePresentRegard.m */, + 9B4E91FE28E57A620033419E /* YUMIPresentIntelligenceGenreRegard.h */, + 9B4E91FF28E57A620033419E /* YUMIPresentIntelligenceGenreRegard.m */, + E8788940273A55AD00BF1D57 /* YUMIExternalizeConsumersRegard.h */, + E8788941273A55AD00BF1D57 /* YUMIExternalizeConsumersRegard.m */, + E8788943273A55C200BF1D57 /* YUMIPresentAbstractRegard.h */, + E8788944273A55C200BF1D57 /* YUMIPresentAbstractRegard.m */, + E8788946273A55D000BF1D57 /* YUMIPresentObstacleRegard.h */, + E8788947273A55D000BF1D57 /* YUMIPresentObstacleRegard.m */, + E890BC0B273D09A50007C46B /* YUMIPresentComputationRegard.h */, + E890BC0C273D09A50007C46B /* YUMIPresentComputationRegard.m */, + E8901CF428B38D89001E9A92 /* YUMIGraffitiPresentRegard.h */, + E8901CF528B38D89001E9A92 /* YUMIGraffitiPresentRegard.m */, + 9B4D449128F15765002572D5 /* YUMIPresentFortunatePresentPingbackRegard.h */, + 9B4D449228F15765002572D5 /* YUMIPresentFortunatePresentPingbackRegard.m */, + 9B4D449428F15EE7002572D5 /* YUMIPresentWeekSatellitePingbackRegard.h */, + 9B4D449528F15EE7002572D5 /* YUMIPresentWeekSatellitePingbackRegard.m */, + E8D4DE422940462C00EC788D /* YUMIPresentTwelveSatellitePingbackRegard.h */, + E8D4DE432940462C00EC788D /* YUMIPresentTwelveSatellitePingbackRegard.m */, + ); + path = View; + sourceTree = ""; + }; + E8788938273A542E00BF1D57 /* Presenter */ = { + isa = PBXGroup; + children = ( + E878893D273A54F500BF1D57 /* YUMIPresentExternalizer.h */, + E878893E273A54F500BF1D57 /* YUMIPresentExternalizer.m */, + E8E7DAE62744F5EF00C631CC /* YUMIPresentStorage.h */, + E8E7DAE72744F5EF00C631CC /* YUMIPresentStorage.m */, + ); + path = Presenter; + sourceTree = ""; + }; + E8788939273A544000BF1D57 /* Protocol */ = { + isa = PBXGroup; + children = ( + E878894D273A672200BF1D57 /* FBCPresentCeremony.h */, + ); + path = Protocol; + sourceTree = ""; + }; + E8788949273A594C00BF1D57 /* Cell */ = { + isa = PBXGroup; + children = ( + E878894A273A607C00BF1D57 /* YUMIExternalizeConsumerAssembletionRegardElement.h */, + E878894B273A607C00BF1D57 /* YUMIExternalizeConsumerAssembletionRegardElement.m */, + E890BC05273CF1800007C46B /* YUMIPresentComputationAssembletionRegardElement.h */, + E890BC06273CF1800007C46B /* YUMIPresentComputationAssembletionRegardElement.m */, + E8133914273E532D00708B66 /* YUMIPresentProvisionAssembletionRegardElement.h */, + E8133915273E532D00708B66 /* YUMIPresentProvisionAssembletionRegardElement.m */, + E8A73F8528586A6F00FD9CBC /* YUMIPresentWeekSatelliteAssembletionRegardElement.h */, + E8A73F8628586A6F00FD9CBC /* YUMIPresentWeekSatelliteAssembletionRegardElement.m */, + E811FFF52742367B00918544 /* YUMIPresentDispossessAssembletionRegardElement.h */, + E811FFF62742367B00918544 /* YUMIPresentDispossessAssembletionRegardElement.m */, + E8659907273E800D00EE349D /* YUMIPresentAssembletionRegardFlowProgramming.h */, + E8659908273E800D00EE349D /* YUMIPresentAssembletionRegardFlowProgramming.m */, + ); + path = Cell; + sourceTree = ""; + }; + E87AE8C2284E1A6B00CAFBB3 /* NewUserGreet */ = { + isa = PBXGroup; + children = ( + E87AE8C3284E1A8400CAFBB3 /* YUMIChamberStrangeConsumerBewelcometoRegard.h */, + E87AE8C4284E1A8400CAFBB3 /* YUMIChamberStrangeConsumerBewelcometoRegard.m */, + ); + path = NewUserGreet; + sourceTree = ""; + }; + E87DF4B82A42C7BB009C1185 /* Search */ = { + isa = PBXGroup; + children = ( + E87DF4BC2A42C82F009C1185 /* Protocol */, + E87DF4BB2A42C81A009C1185 /* Presenter */, + E87DF4BA2A42C7F9009C1185 /* Model */, + E87DF4B92A42C7E9009C1185 /* View */, + ); + path = Search; + sourceTree = ""; + }; + E87DF4B92A42C7E9009C1185 /* View */ = { + isa = PBXGroup; + children = ( + E87DF4E92A42CB51009C1185 /* Cell */, + E87DF4E12A42CAC1009C1185 /* SubView */, + E8C6FFDE2754EEF9004DC9F0 /* YUMIResidenceHuntforRegardGovernancer.h */, + E8C6FFDF2754EEF9004DC9F0 /* YUMIResidenceHuntforRegardGovernancer.m */, + E87A27012758BC81002DDC7A /* YUMIChamberHuntforAccommodatedRegardGovernancer.h */, + E87A27022758BC81002DDC7A /* YUMIChamberHuntforAccommodatedRegardGovernancer.m */, + 9B88E20D28C6305400D26FBA /* YUMIChamberHuntforReflectionRegardGovernancer.h */, + 9B88E20E28C6305400D26FBA /* YUMIChamberHuntforReflectionRegardGovernancer.m */, + ); + path = View; + sourceTree = ""; + }; + E87DF4BA2A42C7F9009C1185 /* Model */ = { + isa = PBXGroup; + children = ( + E87DF50C2A42CF15009C1185 /* ResidenceEnergeticChamberMatrix.h */, + E87DF50D2A42CF15009C1185 /* ResidenceEnergeticChamberMatrix.m */, + E87DF5092A42CEC9009C1185 /* ResidenceEveryOneHuntforMatrix.h */, + E87DF50A2A42CEC9009C1185 /* ResidenceEveryOneHuntforMatrix.m */, + E87DF4DC2A42CA12009C1185 /* ResidenceHuntforConsequentMatrix.h */, + E87DF4DB2A42CA12009C1185 /* ResidenceHuntforConsequentMatrix.m */, + ); + path = Model; + sourceTree = ""; + }; + E87DF4BB2A42C81A009C1185 /* Presenter */ = { + isa = PBXGroup; + children = ( + E87DF5062A42CE79009C1185 /* YUMIInChamberReflectionExternalizer.h */, + E87DF5072A42CE79009C1185 /* YUMIInChamberReflectionExternalizer.m */, + E8C6FFE42754FE53004DC9F0 /* YUMIResidenceHuntforExternalizer.h */, + E8C6FFE52754FE53004DC9F0 /* YUMIResidenceHuntforExternalizer.m */, + ); + path = Presenter; + sourceTree = ""; + }; + E87DF4BC2A42C82F009C1185 /* Protocol */ = { + isa = PBXGroup; + children = ( + E8C6FFE72754FE66004DC9F0 /* FBCResidenceHuntforCeremony.h */, + 9BAD41AD28C6ECBA005E47B3 /* FBCInChamberRecordCeremony.h */, + ); + path = Protocol; + sourceTree = ""; + }; + E87DF4E12A42CAC1009C1185 /* SubView */ = { + isa = PBXGroup; + children = ( + E87DF4FD2A42CD7E009C1185 /* YUMIChamberHuntforEncourageIntelligenceRegard.h */, + E87DF4FC2A42CD7D009C1185 /* YUMIChamberHuntforEncourageIntelligenceRegard.m */, + E87DF4F72A42CCAB009C1185 /* YUMIResidenceHuntforRelateRegard.h */, + E87DF4F62A42CCAB009C1185 /* YUMIResidenceHuntforRelateRegard.m */, + E87DF4E32A42CAD2009C1185 /* YUMIResidenceHuntforNevRegard.h */, + E87DF4E22A42CAD2009C1185 /* YUMIResidenceHuntforNevRegard.m */, + ); + path = SubView; + sourceTree = ""; + }; + E87DF4E92A42CB51009C1185 /* Cell */ = { + isa = PBXGroup; + children = ( + E87DF5032A42CE21009C1185 /* YUMIResidenceHuntforReflectionElement.h */, + E87DF5042A42CE21009C1185 /* YUMIResidenceHuntforReflectionElement.m */, + E87DF5002A42CDF1009C1185 /* YUMIResidenceConsiderationAssembletionRegardElement.h */, + E87DF5012A42CDF1009C1185 /* YUMIResidenceConsiderationAssembletionRegardElement.m */, + E87DF4F92A42CCDD009C1185 /* YUMIResidenceDeficitommendAssembletionRegardElement.h */, + E87DF4FA2A42CCDE009C1185 /* YUMIResidenceDeficitommendAssembletionRegardElement.m */, + E87DF4ED2A42CB90009C1185 /* YUMIResidenceAssembleChamberTabulationRegardElement.h */, + E87DF4EE2A42CB90009C1185 /* YUMIResidenceAssembleChamberTabulationRegardElement.m */, + E87DF4EB2A42CB60009C1185 /* YUMIHuntforStatementTabulationRegardElement.h */, + E87DF4EA2A42CB60009C1185 /* YUMIHuntforStatementTabulationRegardElement.m */, + ); + path = Cell; + sourceTree = ""; + }; + E87E624F2A3F54B5002F68C9 /* YMNewHome */ = { + isa = PBXGroup; + children = ( + E87E62542A3F55BE002F68C9 /* Model */, + E87E62532A3F55B7002F68C9 /* Api */, + E87E62522A3F55B2002F68C9 /* View */, + E87E62512A3F55AB002F68C9 /* Presenter */, + E87E62502A3F559D002F68C9 /* Protocol */, + ); + path = YMNewHome; + sourceTree = ""; + }; + E87E62502A3F559D002F68C9 /* Protocol */ = { + isa = PBXGroup; + children = ( + E87DF4FF2A42CDB4009C1185 /* FBCResidenceEncourageCeremony.h */, + E87DF4E82A42CB24009C1185 /* FBCResidenceCeremony.h */, + E87E62692A3F5756002F68C9 /* FBCResidenceContainerCeremony.h */, + E87E627C2A3F5A63002F68C9 /* FBCStrangeResidenceEncourageCeremony.h */, + ); + path = Protocol; + sourceTree = ""; + }; + E87E62512A3F55AB002F68C9 /* Presenter */ = { + isa = PBXGroup; + children = ( + E87DF4E62A42CB00009C1185 /* YUMIResidenceExternalizer.h */, + E87DF4E52A42CAFF009C1185 /* YUMIResidenceExternalizer.m */, + E87E62672A3F571D002F68C9 /* YUMIResidenceAccommodatedExternalizer.h */, + E87E62662A3F571C002F68C9 /* YUMIResidenceAccommodatedExternalizer.m */, + E87E62792A3F5A0D002F68C9 /* YUMIStrangeResidenceEncourageExternalizer.h */, + E87E627A2A3F5A0D002F68C9 /* YUMIStrangeResidenceEncourageExternalizer.m */, + ); + path = Presenter; + sourceTree = ""; + }; + E87E62522A3F55B2002F68C9 /* View */ = { + isa = PBXGroup; + children = ( + E87DF4DF2A42CA92009C1185 /* YUMIResidenceSloganRegardGovernancer.h */, + E87DF4DE2A42CA92009C1185 /* YUMIResidenceSloganRegardGovernancer.m */, + E87DF4B82A42C7BB009C1185 /* Search */, + E87E625F2A3F5669002F68C9 /* Cell */, + E87E625E2A3F565D002F68C9 /* CustomView */, + E87E62552A3F560A002F68C9 /* YUMIResidenceParatiesRegardGovernancer.h */, + E87E62562A3F560A002F68C9 /* YUMIResidenceParatiesRegardGovernancer.m */, + E87E62572A3F560A002F68C9 /* YUMIResidenceEncourageRegardGovernancer.h */, + E87E62582A3F560A002F68C9 /* YUMIResidenceEncourageRegardGovernancer.m */, + E87E625B2A3F5622002F68C9 /* YUMIStrangeResidenceRegardGovernancer.h */, + E87E625C2A3F5622002F68C9 /* YUMIStrangeResidenceRegardGovernancer.m */, + ); + path = View; + sourceTree = ""; + }; + E87E62532A3F55B7002F68C9 /* Api */ = { + isa = PBXGroup; + children = ( + E8C6FFC927548120004DC9F0 /* Api+Home.h */, + E8C6FFC827548120004DC9F0 /* Api+Home.m */, + ); + path = Api; + sourceTree = ""; + }; + E87E62542A3F55BE002F68C9 /* Model */ = { + isa = PBXGroup; + children = ( + E87DF4F32A42CC49009C1185 /* ResidenceParrotAbstractMatrix.h */, + E87DF4F42A42CC49009C1185 /* ResidenceParrotAbstractMatrix.m */, + E87DF4D92A42C9D9009C1185 /* ResidenceAssembleChamberMatrix.h */, + E87DF4D82A42C9D8009C1185 /* ResidenceAssembleChamberMatrix.m */, + E87DF4D62A42C9C3009C1185 /* ResidenceDisportChamberMatrix.h */, + E87DF4D52A42C9C3009C1185 /* ResidenceDisportChamberMatrix.m */, + E87DF4D22A42C9B1009C1185 /* ResidenceEncourageChamberMatrix.h */, + E87DF4D32A42C9B1009C1185 /* ResidenceEncourageChamberMatrix.m */, + E87DF4CA2A42C960009C1185 /* ResidenceOriflammeAbstractMatrix.h */, + E87DF4CB2A42C960009C1185 /* ResidenceOriflammeAbstractMatrix.m */, + E87DF4BD2A42C8C1009C1185 /* ResidenceCoupleMatrix.h */, + E87DF4BE2A42C8C1009C1185 /* ResidenceCoupleMatrix.m */, + ); + path = Model; + sourceTree = ""; + }; + E87E625E2A3F565D002F68C9 /* CustomView */ = { + isa = PBXGroup; + children = ( + E87DF4F12A42CBEC009C1185 /* YUMIResidenceConsumerRegard.h */, + E87DF4F02A42CBEC009C1185 /* YUMIResidenceConsumerRegard.m */, + E87DF4C02A42C900009C1185 /* YUMINoteRegard.h */, + E87DF4C12A42C900009C1185 /* YUMINoteRegard.m */, + E87E62612A3F5689002F68C9 /* YUMIStrangeResidenceNevRegard.h */, + E87E62602A3F5689002F68C9 /* YUMIStrangeResidenceNevRegard.m */, + ); + path = CustomView; + sourceTree = ""; + }; + E87E625F2A3F5669002F68C9 /* Cell */ = { + isa = PBXGroup; + children = ( + E87E627D2A3F5D28002F68C9 /* YUMIStrangeResidenceDisportProvisionAssembletionRegardElement.h */, + E87E627E2A3F5D28002F68C9 /* YUMIStrangeResidenceDisportProvisionAssembletionRegardElement.m */, + E87E62722A3F5907002F68C9 /* YUMIResidenceOriflammeTabulationRegardElement.h */, + E87E626A2A3F5906002F68C9 /* YUMIResidenceOriflammeTabulationRegardElement.m */, + E87E626E2A3F5906002F68C9 /* YUMIStrangeResidenceParatiesTabulationRegardElement.h */, + E87E62712A3F5907002F68C9 /* YUMIStrangeResidenceParatiesTabulationRegardElement.m */, + E87E626B2A3F5906002F68C9 /* YUMIStrangeResidenceDisportDispossessTabulationRegardElement.h */, + E87E626D2A3F5906002F68C9 /* YUMIStrangeResidenceDisportDispossessTabulationRegardElement.m */, + E87E626C2A3F5906002F68C9 /* YUMIStrangeResidenceDisportTabulationRegardElement.h */, + E87E626F2A3F5906002F68C9 /* YUMIStrangeResidenceDisportTabulationRegardElement.m */, + E87E62732A3F5907002F68C9 /* YUMIStrangeResidenceEncourageTabulationRegardElement.h */, + E87E62702A3F5907002F68C9 /* YUMIStrangeResidenceEncourageTabulationRegardElement.m */, + ); + path = Cell; + sourceTree = ""; + }; + E880B396278BD3D800A83B0D /* AcrossRoomPK */ = { + isa = PBXGroup; + children = ( + E880B39B278BD45A00A83B0D /* Model */, + E880B39A278BD45200A83B0D /* Api */, + E880B399278BD44500A83B0D /* View */, + E880B398278BD43D00A83B0D /* Presenter */, + E880B397278BD43600A83B0D /* Protocol */, + ); + path = AcrossRoomPK; + sourceTree = ""; + }; + E880B397278BD43600A83B0D /* Protocol */ = { + isa = PBXGroup; + children = ( + E880B3B6278C1FFB00A83B0D /* FBCAcrossChamberCeremony.h */, + ); + path = Protocol; + sourceTree = ""; + }; + E880B398278BD43D00A83B0D /* Presenter */ = { + isa = PBXGroup; + children = ( + E880B3B3278C1FE400A83B0D /* YUMIThroughoutChamberCombatExternalizer.h */, + E880B3B4278C1FE400A83B0D /* YUMIThroughoutChamberCombatExternalizer.m */, + ); + path = Presenter; + sourceTree = ""; + }; + E880B399278BD44500A83B0D /* View */ = { + isa = PBXGroup; + children = ( + E880B3A3278BD66400A83B0D /* SubViews */, + E880B3A2278BD65E00A83B0D /* Cell */, + E880B39C278BD49E00A83B0D /* YUMIThroughoutChamberCombatRegardGovernancer.h */, + E880B39D278BD49E00A83B0D /* YUMIThroughoutChamberCombatRegardGovernancer.m */, + E880B39F278BD60C00A83B0D /* YUMIThroughoutChamberCombatChosenChamberRegard.h */, + E880B3A0278BD60C00A83B0D /* YUMIThroughoutChamberCombatChosenChamberRegard.m */, + ); + path = View; + sourceTree = ""; + }; + E880B39A278BD45200A83B0D /* Api */ = { + isa = PBXGroup; + children = ( + E880B3AD278BE1D800A83B0D /* Api+AcrossRoomPK.h */, + E880B3AE278BE1D800A83B0D /* Api+AcrossRoomPK.m */, + ); + path = Api; + sourceTree = ""; + }; + E880B39B278BD45A00A83B0D /* Model */ = { + isa = PBXGroup; + children = ( + E880B3A7278BD82300A83B0D /* ThroughoutChamberCombatAbstractMatrix.h */, + E880B3A8278BD82300A83B0D /* ThroughoutChamberCombatAbstractMatrix.m */, + E8D48251278D8228003C1D08 /* ThroughoutChamberCombatFasciaboardMatrix.h */, + E8D48252278D8228003C1D08 /* ThroughoutChamberCombatFasciaboardMatrix.m */, + E88863CA278EC336004BCFAB /* ThroughoutChamberCombatCaptureMatrix.h */, + E88863CB278EC336004BCFAB /* ThroughoutChamberCombatCaptureMatrix.m */, + ); + path = Model; + sourceTree = ""; + }; + E880B3A2278BD65E00A83B0D /* Cell */ = { + isa = PBXGroup; + children = ( + E880B3A4278BD69900A83B0D /* YUMIThroughoutChamberCombatTabulationRegardElement.h */, + E880B3A5278BD69900A83B0D /* YUMIThroughoutChamberCombatTabulationRegardElement.m */, + E880B3AA278BD98600A83B0D /* YUMIThroughoutChamberCombatDispossessTabulationRegardElement.h */, + E880B3AB278BD98600A83B0D /* YUMIThroughoutChamberCombatDispossessTabulationRegardElement.m */, + ); + path = Cell; + sourceTree = ""; + }; + E880B3A3278BD66400A83B0D /* SubViews */ = { + isa = PBXGroup; + children = ( + E880B3B0278C1D1800A83B0D /* YUMIThroughoutChamberCombatPreadominantRegard.h */, + E880B3B1278C1D1800A83B0D /* YUMIThroughoutChamberCombatPreadominantRegard.m */, + E8D48248278D1F72003C1D08 /* YUMIThroughoutChamberCombatCallforRegard.h */, + E8D48249278D1F73003C1D08 /* YUMIThroughoutChamberCombatCallforRegard.m */, + E8D4824B278D2CE4003C1D08 /* YUMIThroughoutChamberCombatCallforConsequentRegard.h */, + E8D4824C278D2CE4003C1D08 /* YUMIThroughoutChamberCombatCallforConsequentRegard.m */, + E8D4824E278D68BA003C1D08 /* YUMIAcrpssChamberCombatFasciaboardRegard.h */, + E8D4824F278D68BA003C1D08 /* YUMIAcrpssChamberCombatFasciaboardRegard.m */, + E8D48254278D83AE003C1D08 /* YUMIThroughoutChamberCombatFasciaboardConsumerRegard.h */, + E8D48255278D83AE003C1D08 /* YUMIThroughoutChamberCombatFasciaboardConsumerRegard.m */, + E88863C4278EAFC3004BCFAB /* YUMIThroughoutChamberCombatConsequentRegard.h */, + E88863C5278EAFC3004BCFAB /* YUMIThroughoutChamberCombatConsequentRegard.m */, + E88863C7278EBA43004BCFAB /* YUMIThroughoutChamberCombatForceEndConsequentRegard.h */, + E88863C8278EBA43004BCFAB /* YUMIThroughoutChamberCombatForceEndConsequentRegard.m */, + E88863CD278EC393004BCFAB /* YUMIThroughoutChamberCombatCaptureRegard.h */, + E88863CE278EC393004BCFAB /* YUMIThroughoutChamberCombatCaptureRegard.m */, + 9BF5192428801D4700B6BE92 /* YUMIThroughoutChamberCombatComputationDownRegard.h */, + 9BF5192528801D4700B6BE92 /* YUMIThroughoutChamberCombatComputationDownRegard.m */, + 9B3C1818292CE4FA003AF543 /* XCombatellegCombatAdaptationRegard.h */, + 9B3C1819292CE4FA003AF543 /* XCombatellegCombatAdaptationRegard.m */, + ); + path = SubViews; + sourceTree = ""; + }; + E884C3782743B6AA00E1EBED /* Tool */ = { + isa = PBXGroup; + children = ( + E884C3702743AEDE00E1EBED /* CustomAttachmentDecoder.h */, + E884C3712743AEDE00E1EBED /* CustomAttachmentDecoder.m */, + ); + path = Tool; + sourceTree = ""; + }; + E88863D0278ED4A0004BCFAB /* Intratemporalstamp */ = { + isa = PBXGroup; + children = ( + E88863D1278ED4C0004BCFAB /* Intratemporalstamp.h */, + E88863D2278ED4C0004BCFAB /* Intratemporalstamp.m */, + ); + path = Intratemporalstamp; + sourceTree = ""; + }; + E8899C7C27853B46007944BE /* Dating */ = { + isa = PBXGroup; + children = ( + E877A7EC278428FB00EFACED /* MiecreoscoopeEngagementProgressRegard.h */, + E877A7ED278428FB00EFACED /* MiecreoscoopeEngagementProgressRegard.m */, + E8899C7D27853B6A007944BE /* EngagementMiecreoscoopeRegard.h */, + E8899C7E27853B6A007944BE /* EngagementMiecreoscoopeRegard.m */, + ); + path = Dating; + sourceTree = ""; + }; + E88B5CBE26FB404800DA9178 /* MineInfo */ = { + isa = PBXGroup; + children = ( + E88B5CBF26FB407B00DA9178 /* YUMIManeConsumerAbstractRegardGovernancer.h */, + E88B5CC026FB407B00DA9178 /* YUMIManeConsumerAbstractRegardGovernancer.m */, + E8D34D4528080295009C4835 /* YUMIManeConsumerAtomicRegardGovernancer.h */, + E8D34D4628080295009C4835 /* YUMIManeConsumerAtomicRegardGovernancer.m */, + E8EEB90426FC5772007C6EBA /* YUMIManeConsumerAbstractCompileRegardGovernancer.h */, + E8EEB90526FC5772007C6EBA /* YUMIManeConsumerAbstractCompileRegardGovernancer.m */, + E8EEB91226FC7786007C6EBA /* YUMIManeConsumerAbstractNickRegardGovernancer.h */, + E8EEB91326FC7786007C6EBA /* YUMIManeConsumerAbstractNickRegardGovernancer.m */, + E8EEB91526FC7B35007C6EBA /* YUMIManeConsumerAbstractDesRegardGovernancer.h */, + E8EEB91626FC7B35007C6EBA /* YUMIManeConsumerAbstractDesRegardGovernancer.m */, + E8B846BD26FD827900A777FE /* YUMIManeConsumerAbstractAlbumRegardGovernancer.h */, + E8B846BE26FD827900A777FE /* YUMIManeConsumerAbstractAlbumRegardGovernancer.m */, + E8D34D6228084E40009C4835 /* YUMIManeConsumerAbstractPresentRamparatRegardGovernancer.h */, + E8D34D6328084E40009C4835 /* YUMIManeConsumerAbstractPresentRamparatRegardGovernancer.m */, + E8998D892859CB6A00C68558 /* YUMIManeConsumerAbstractPresentRamparatMetroRegardGovernancer.h */, + E8998D8A2859CB6A00C68558 /* YUMIManeConsumerAbstractPresentRamparatMetroRegardGovernancer.m */, + 1464C5EB29A4784F00AF7C94 /* YUMIManeSimpleConsumerAbstractRegardGovernancer.h */, + 1464C5EC29A4784F00AF7C94 /* YUMIManeSimpleConsumerAbstractRegardGovernancer.m */, + 1464C5EE29A49DDD00AF7C94 /* YUMIManeSimpleConsumerAbstractIntelligencerRegard.h */, + 1464C5EF29A49DDD00AF7C94 /* YUMIManeSimpleConsumerAbstractIntelligencerRegard.m */, + ); + path = MineInfo; + sourceTree = ""; + }; + E88B5CC226FB429C00DA9178 /* MineInfo */ = { + isa = PBXGroup; + children = ( + E8EEB8FC26FC2DF8007C6EBA /* YUMIManeConsumerAbstractCustomNevRegard.h */, + E8EEB8FD26FC2DF8007C6EBA /* YUMIManeConsumerAbstractCustomNevRegard.m */, + E88B5CC326FB42B000DA9178 /* YUMIManeConsumerAbstractIntelligencerRegard.h */, + E88B5CC426FB42B000DA9178 /* YUMIManeConsumerAbstractIntelligencerRegard.m */, + E8EEB91B26FC9D58007C6EBA /* YUMIManeConsumerAbstractDateRegard.h */, + E8EEB91C26FC9D58007C6EBA /* YUMIManeConsumerAbstractDateRegard.m */, + E873EB07280960990071030D /* YUMIManeConsumerAbstractReputationSolitaireRegard.h */, + E873EB08280960990071030D /* YUMIManeConsumerAbstractReputationSolitaireRegard.m */, + E8998D832859B4FA00C68558 /* YUMIManeConsumerAbstractPresentRegard.h */, + E8998D842859B4FA00C68558 /* YUMIManeConsumerAbstractPresentRegard.m */, + ); + path = MineInfo; + sourceTree = ""; + }; + E88C72962828F3410047FB2B /* Cell */ = { + isa = PBXGroup; + children = ( + E88C72972828F3620047FB2B /* YUMIChamberManualBibliothecaTabulationRegardElement.h */, + E88C72982828F3620047FB2B /* YUMIChamberManualBibliothecaTabulationRegardElement.m */, + E88C729A2828F37D0047FB2B /* YUMIChamberManualBibliothecaDispossessTabulationRegardElement.h */, + E88C729B2828F37D0047FB2B /* YUMIChamberManualBibliothecaDispossessTabulationRegardElement.m */, + ); + path = Cell; + sourceTree = ""; + }; + E88C729D2828FCB10047FB2B /* SubViews */ = { + isa = PBXGroup; + children = ( + E88C729E2828FCD40047FB2B /* YUMIManualBibliothecaDisportRegard.h */, + E88C729F2828FCD40047FB2B /* YUMIManualBibliothecaDisportRegard.m */, + E88C72A1282917590047FB2B /* YUMIChamberManualReputationInstanllingRegard.h */, + E88C72A2282917590047FB2B /* YUMIChamberManualReputationInstanllingRegard.m */, + E88C72A4282921D60047FB2B /* YUMIChamberBackManualDisporterRegard.h */, + E88C72A5282921D60047FB2B /* YUMIChamberBackManualDisporterRegard.m */, + ); + path = SubViews; + sourceTree = ""; + }; + E88E4A7D297673C600019A50 /* View */ = { + isa = PBXGroup; + children = ( + 18F404B5276095D700A6C548 /* InterlocutionChatLimitRegard.h */, + 18F404B6276095D700A6C548 /* InterlocutionChatLimitRegard.m */, + E86E79D128A4E94E006DAF48 /* InterlocutionVentureRegard.h */, + E86E79D228A4E94E006DAF48 /* InterlocutionVentureRegard.m */, + E8D55C9E281186D6006935A5 /* InterlocutionVocalmusicReflectionRegard.h */, + E8D55C9F281186D6006935A5 /* InterlocutionVocalmusicReflectionRegard.m */, + E8E20BDC28164D3A0033B688 /* InterlocutionNevRegard.h */, + E8E20BDD28164D3A0033B688 /* InterlocutionNevRegard.m */, + E88E4A7E297673DC00019A50 /* InterlocutionNevEnergeticRegard.h */, + E88E4A7F297673DC00019A50 /* InterlocutionNevEnergeticRegard.m */, + E885D5372977D10E004DC088 /* InterlocutionInstanllingConsumerRegard.h */, + E885D5382977D10E004DC088 /* InterlocutionInstanllingConsumerRegard.m */, + ); + path = View; + sourceTree = ""; + }; + E896EF912771AA6C00AD2CC1 /* Friend */ = { + isa = PBXGroup; + children = ( + E896EF9A2771AE6B00AD2CC1 /* YUMIManeFanaticsRegardGovernancer.h */, + E896EF9B2771AE6B00AD2CC1 /* YUMIManeFanaticsRegardGovernancer.m */, + E896EF9D2771AE7B00AD2CC1 /* YUMIManeConsiderationRegardGovernancer.h */, + E896EF9E2771AE7B00AD2CC1 /* YUMIManeConsiderationRegardGovernancer.m */, + E896EFA02771AE9400AD2CC1 /* YUMIManeAssistantRegardGovernancer.h */, + E896EFA12771AE9400AD2CC1 /* YUMIManeAssistantRegardGovernancer.m */, + E84CBCDF28436D3C00D43221 /* YUMIManeContactRegardGovernancer.h */, + E84CBCE028436D3C00D43221 /* YUMIManeContactRegardGovernancer.m */, + E8F65C1D286998C9009BB5B9 /* YUMIManeParaticipationRegardGovernancer.h */, + E8F65C1E286998C9009BB5B9 /* YUMIManeParaticipationRegardGovernancer.m */, + E84CBCE2284372D800D43221 /* YUMIChamberHalfCommunicationRegard.h */, + E84CBCE3284372D800D43221 /* YUMIChamberHalfCommunicationRegard.m */, + E8DAC5AA2858305A00012CFD /* YUMIChamberCommunicationIntumesceRegard.h */, + E8DAC5AB2858305A00012CFD /* YUMIChamberCommunicationIntumesceRegard.m */, + ); + path = Friend; + sourceTree = ""; + }; + E896EFA32771AEC500AD2CC1 /* Friend */ = { + isa = PBXGroup; + children = ( + E896EFA42771AEDD00AD2CC1 /* YUMIManeFanaticsTabulationRegardElement.h */, + E896EFA52771AEDD00AD2CC1 /* YUMIManeFanaticsTabulationRegardElement.m */, + E896EFA72771AEEC00AD2CC1 /* YUMIManeConsiderationTabulationRegardElement.h */, + E896EFA82771AEEC00AD2CC1 /* YUMIManeConsiderationTabulationRegardElement.m */, + E896EFAA2771AEFE00AD2CC1 /* YUMIManeAssistantTabulationRegardElement.h */, + E896EFAB2771AEFE00AD2CC1 /* YUMIManeAssistantTabulationRegardElement.m */, + E896EFAD2771AF0F00AD2CC1 /* YUMIManeAssistantDispossessTabulationRegardElement.h */, + E896EFAE2771AF0F00AD2CC1 /* YUMIManeAssistantDispossessTabulationRegardElement.m */, + ); + path = Friend; + sourceTree = ""; + }; + E8998D772859782C00C68558 /* SVGA */ = { + isa = PBXGroup; + children = ( + E8998D782859784200C68558 /* YUMISVGADisporter.h */, + E8998D792859784200C68558 /* YUMISVGADisporter.m */, + ); + path = SVGA; + sourceTree = ""; + }; + E8998D932859DD3F00C68558 /* UIViewCorner */ = { + isa = PBXGroup; + children = ( + E8998D942859DD6F00C68558 /* UIView+Corner.h */, + E8998D952859DD6F00C68558 /* UIView+Corner.m */, + ); + path = UIViewCorner; + sourceTree = ""; + }; + E899C68D2750DA3C00E189E5 /* CustomMessage */ = { + isa = PBXGroup; + children = ( + E833ED0B274FAD1C00A2463B /* XCombatickConsumerMatrix.h */, + E833ED0C274FAD1C00A2463B /* XCombatickConsumerMatrix.m */, + ); + path = CustomMessage; + sourceTree = ""; + }; + E89D60B7271D6417001F8895 /* Model */ = { + isa = PBXGroup; + children = ( + E80487632717DDD9008595F2 /* YUMIChamberParrotProvision.h */, + E80487642717DDD9008595F2 /* YUMIChamberParrotProvision.m */, + ); + path = Model; + sourceTree = ""; + }; + E89DA6612700590A008483C1 /* IAPHelper */ = { + isa = PBXGroup; + children = ( + E89DA66227005931008483C1 /* YUMIIAPFacilitater.h */, + E89DA66327005932008483C1 /* YUMIIAPFacilitater.m */, + E89DA66527006443008483C1 /* ReindictStorage.h */, + E89DA66627006443008483C1 /* ReindictStorage.m */, + ); + path = IAPHelper; + sourceTree = ""; + }; + E8A03DED276303BA0098D9EA /* Cell */ = { + isa = PBXGroup; + children = ( + E8A03DEE276303D40098D9EA /* YUMIConfectioneryTimberRateTabulationRegardElement.h */, + E8A03DEF276303D40098D9EA /* YUMIConfectioneryTimberRateTabulationRegardElement.m */, + E8A03DF42763367F0098D9EA /* YUMIConfectioneryTimberDispossessableRegardElement.h */, + E8A03DF52763367F0098D9EA /* YUMIConfectioneryTimberDispossessableRegardElement.m */, + 9B9DD948281BC17600DBA903 /* YUMIConfectioneryTimberFurthaerPreadominantElement.h */, + 9B9DD949281BC17600DBA903 /* YUMIConfectioneryTimberFurthaerPreadominantElement.m */, + E8AFF7E7298CBCCE00FBDE32 /* XPCandyTreeRecordTableViewCell.h */, + E8AFF7E8298CBCCE00FBDE32 /* XPCandyTreeRecordTableViewCell.m */, + E8AFF7F0298CF29400FBDE32 /* XPCandyTreeRuleTableViewCell.h */, + E8AFF7F1298CF29400FBDE32 /* XPCandyTreeRuleTableViewCell.m */, + ); + path = Cell; + sourceTree = ""; + }; + E8A1E4462761F8EA00B294CA /* CandyTree */ = { + isa = PBXGroup; + children = ( + E8A1E44B2761F93600B294CA /* Model */, + E8A1E44A2761F92800B294CA /* Api */, + E8A1E4492761F92100B294CA /* View */, + E8A1E4482761F91200B294CA /* Presenter */, + E8A1E4472761F90700B294CA /* Protocol */, + ); + path = CandyTree; + sourceTree = ""; + }; + E8A1E4472761F90700B294CA /* Protocol */ = { + isa = PBXGroup; + children = ( + E8A1E4582762095100B294CA /* FBCCandyTreeCeremony.h */, + ); + path = Protocol; + sourceTree = ""; + }; + E8A1E4482761F91200B294CA /* Presenter */ = { + isa = PBXGroup; + children = ( + E8A1E4552762092700B294CA /* YUMIConfectioneryTimberExternalizer.h */, + E8A1E4562762092700B294CA /* YUMIConfectioneryTimberExternalizer.m */, + ); + path = Presenter; + sourceTree = ""; + }; + E8A1E4492761F92100B294CA /* View */ = { + isa = PBXGroup; + children = ( + E8AFF7F3298CF4FD00FBDE32 /* SubViews */, + E8A03DED276303BA0098D9EA /* Cell */, + E8A1E44C2761F98600B294CA /* YUMIConfectioneryTimberRegardGovernancer.h */, + E8A1E44D2761F98600B294CA /* YUMIConfectioneryTimberRegardGovernancer.m */, + ); + path = View; + sourceTree = ""; + }; + E8A1E44A2761F92800B294CA /* Api */ = { + isa = PBXGroup; + children = ( + E8A1E44F2762082A00B294CA /* Api+CandyTree.h */, + E8A1E4502762082A00B294CA /* Api+CandyTree.m */, + ); + path = Api; + sourceTree = ""; + }; + E8A1E44B2761F93600B294CA /* Model */ = { + isa = PBXGroup; + children = ( + E8A1E452276208E500B294CA /* ConfectioneryTimberAbstractMatrix.h */, + E8A1E453276208E500B294CA /* ConfectioneryTimberAbstractMatrix.m */, + E8A03DF1276328FC0098D9EA /* ConfectioneryTimberReflectionMatrix.h */, + E8A03DF2276328FC0098D9EA /* ConfectioneryTimberReflectionMatrix.m */, + E8A03DF727634A590098D9EA /* ConfectioneryTimberConsequentMatrix.h */, + E8A03DF827634A590098D9EA /* ConfectioneryTimberConsequentMatrix.m */, + E8DEC990276441AA0078CB70 /* YUMIConfectioneryTimberBrightnessMatrix.h */, + E8DEC991276441AA0078CB70 /* YUMIConfectioneryTimberBrightnessMatrix.m */, + E8F63CBC298BC90700B338BA /* CandyTreeMoreItemModel.h */, + E8F63CBD298BC90700B338BA /* CandyTreeMoreItemModel.m */, + E8AFF7EA298CE2B700FBDE32 /* CandyTreeGiftModel.h */, + E8AFF7EB298CE2B700FBDE32 /* CandyTreeGiftModel.m */, + ); + path = Model; + sourceTree = ""; + }; + E8A1E45C276220B100B294CA /* Resources */ = { + isa = PBXGroup; + children = ( + 14D8768129A751E100E1DD7F /* Image */, + ); + path = Resources; + sourceTree = ""; + }; + E8A1F78D290641D80099C952 /* MorePlay */ = { + isa = PBXGroup; + children = ( + E8A1F791290642040099C952 /* Model */, + E8A1F790290641FB0099C952 /* View */, + E8A1F78F290641EB0099C952 /* Presenter */, + E8A1F78E290641E50099C952 /* Protocol */, + ); + path = MorePlay; + sourceTree = ""; + }; + E8A1F78E290641E50099C952 /* Protocol */ = { + isa = PBXGroup; + children = ( + E8A1F7982906427D0099C952 /* FBCChamberFurthaerPlayCeremony.h */, + ); + path = Protocol; + sourceTree = ""; + }; + E8A1F78F290641EB0099C952 /* Presenter */ = { + isa = PBXGroup; + children = ( + E8A1F7952906426B0099C952 /* YUMIChamberFurthaerDisportExternalizer.h */, + E8A1F7962906426B0099C952 /* YUMIChamberFurthaerDisportExternalizer.m */, + ); + path = Presenter; + sourceTree = ""; + }; + E8A1F790290641FB0099C952 /* View */ = { + isa = PBXGroup; + children = ( + E8A1F799290644C20099C952 /* Cell */, + E8A1F792290642500099C952 /* YUMIChamberFurthaerDisportRegardGovernancer.h */, + E8A1F793290642500099C952 /* YUMIChamberFurthaerDisportRegardGovernancer.m */, + ); + path = View; + sourceTree = ""; + }; + E8A1F791290642040099C952 /* Model */ = { + isa = PBXGroup; + children = ( + 9BAC92F028E6A05600147DD8 /* YUMIChamberImportpriseDisportMatrix.h */, + 9BAC92F128E6A05600147DD8 /* YUMIChamberImportpriseDisportMatrix.m */, + ); + path = Model; + sourceTree = ""; + }; + E8A1F799290644C20099C952 /* Cell */ = { + isa = PBXGroup; + children = ( + E8A1F79A290644DC0099C952 /* YUMIChamberFurthaerDisportAssembletionRegardElement.h */, + E8A1F79B290644DC0099C952 /* YUMIChamberFurthaerDisportAssembletionRegardElement.m */, + ); + path = Cell; + sourceTree = ""; + }; + E8A30BDB28534667003B4873 /* FindNew */ = { + isa = PBXGroup; + children = ( + E8A30BE02853469C003B4873 /* Model */, + E8A30BDF28534693003B4873 /* Api */, + E8A30BDE28534686003B4873 /* View */, + E8A30BDD2853467B003B4873 /* Presenter */, + E8A30BDC28534673003B4873 /* Protocol */, + ); + path = FindNew; + sourceTree = ""; + }; + E8A30BDC28534673003B4873 /* Protocol */ = { + isa = PBXGroup; + children = ( + E8A30BF028534B03003B4873 /* FBCInterlocutionDiscoveryStrangeCeremony.h */, + ); + path = Protocol; + sourceTree = ""; + }; + E8A30BDD2853467B003B4873 /* Presenter */ = { + isa = PBXGroup; + children = ( + E8A30BEC28534AB1003B4873 /* YUMIInterlocutionDiscoveryStrangeExternalizer.h */, + E8A30BED28534AB1003B4873 /* YUMIInterlocutionDiscoveryStrangeExternalizer.m */, + ); + path = Presenter; + sourceTree = ""; + }; + E8A30BDE28534686003B4873 /* View */ = { + isa = PBXGroup; + children = ( + E8A30BE528534A3A003B4873 /* Cell */, + E8A30BE428534A2D003B4873 /* View */, + E8A30BE128534A28003B4873 /* YUMIInterlocutionDiscoveryStrangeRegardGovernancer.h */, + E8A30BE228534A28003B4873 /* YUMIInterlocutionDiscoveryStrangeRegardGovernancer.m */, + ); + path = View; + sourceTree = ""; + }; + E8A30BDF28534693003B4873 /* Api */ = { + isa = PBXGroup; + children = ( + E8A30BF128534B17003B4873 /* Api+FindNew.h */, + E8A30BF228534B17003B4873 /* Api+FindNew.m */, + ); + path = Api; + sourceTree = ""; + }; + E8A30BE02853469C003B4873 /* Model */ = { + isa = PBXGroup; + children = ( + E8A30BF428534B35003B4873 /* DiscoveryStrangeConsumerAbstractMatrix.h */, + E8A30BF528534B35003B4873 /* DiscoveryStrangeConsumerAbstractMatrix.m */, + E86A16C32856DBEC004228B8 /* DiscoveryStrangeBewelcometoStatementMatrix.h */, + E86A16C42856DBEC004228B8 /* DiscoveryStrangeBewelcometoStatementMatrix.m */, + E8E0DAE7285C2E8C00566A2F /* DiscoveryStrangeBewelcometoCommunicationMatrix.h */, + E8E0DAE8285C2E8C00566A2F /* DiscoveryStrangeBewelcometoCommunicationMatrix.m */, + ); + path = Model; + sourceTree = ""; + }; + E8A30BE428534A2D003B4873 /* View */ = { + isa = PBXGroup; + children = ( + E8A30BE928534A96003B4873 /* YUMIInterlocutionDiscoveryStrangeFiltrateRegard.h */, + E8A30BEA28534A96003B4873 /* YUMIInterlocutionDiscoveryStrangeFiltrateRegard.m */, + E86A16BD2856D4D5004228B8 /* YUMIInterlocutionDiscoveryStrangeBewelcometoStatementRegard.h */, + E86A16BE2856D4D5004228B8 /* YUMIInterlocutionDiscoveryStrangeBewelcometoStatementRegard.m */, + E8E0DAE4285C280E00566A2F /* YUMIInterlocutionDiscoveryStrangePrecautiousRegard.h */, + E8E0DAE5285C280E00566A2F /* YUMIInterlocutionDiscoveryStrangePrecautiousRegard.m */, + ); + path = View; + sourceTree = ""; + }; + E8A30BE528534A3A003B4873 /* Cell */ = { + isa = PBXGroup; + children = ( + E8A30BE628534A63003B4873 /* YUMIInterlocutionDiscoveryStrangeTabulationRegardElement.h */, + E8A30BE728534A63003B4873 /* YUMIInterlocutionDiscoveryStrangeTabulationRegardElement.m */, + E8A30BF728534E48003B4873 /* YUMIInterlocutionDiscoveryStrangeDispossessTabulationRegardElement.h */, + E8A30BF828534E48003B4873 /* YUMIInterlocutionDiscoveryStrangeDispossessTabulationRegardElement.m */, + E86A16C02856D635004228B8 /* YUMIInterlocutionDiscoveryStrangeBewelcometoTabulationRegardElement.h */, + E86A16C12856D635004228B8 /* YUMIInterlocutionDiscoveryStrangeBewelcometoTabulationRegardElement.m */, + ); + path = Cell; + sourceTree = ""; + }; + E8A3538628FE5C5B0014A784 /* WishGift */ = { + isa = PBXGroup; + children = ( + E8A3538728FE5C9B0014A784 /* Model */, + E8A3538B28FE5CC80014A784 /* Api */, + E8A3538A28FE5CB90014A784 /* View */, + E8A3538928FE5CB00014A784 /* Presenter */, + E8A3538828FE5CA70014A784 /* Protocol */, + ); + path = WishGift; + sourceTree = ""; + }; + E8A3538728FE5C9B0014A784 /* Model */ = { + isa = PBXGroup; + children = ( + E8A3538F28FE5F0F0014A784 /* DesirePresentAbstractMatrix.h */, + E8A3539028FE5F0F0014A784 /* DesirePresentAbstractMatrix.m */, + E8A3539228FE605F0014A784 /* DesireExternalizeConsumerMatrix.h */, + E8A3539328FE605F0014A784 /* DesireExternalizeConsumerMatrix.m */, + E89DCF5B2900E5EE001647EC /* DesirePresentHistoryMatrix.h */, + E89DCF5C2900E5EE001647EC /* DesirePresentHistoryMatrix.m */, + E823E38C290BE8BD00EADD86 /* DesirePresentAbstractRefurbishMatrix.h */, + E823E38D290BE8BD00EADD86 /* DesirePresentAbstractRefurbishMatrix.m */, + ); + path = Model; + sourceTree = ""; + }; + E8A3538828FE5CA70014A784 /* Protocol */ = { + isa = PBXGroup; + children = ( + E8A3539828FE7C4F0014A784 /* FBCDesirePresentCeremony.h */, + ); + path = Protocol; + sourceTree = ""; + }; + E8A3538928FE5CB00014A784 /* Presenter */ = { + isa = PBXGroup; + children = ( + E8A3539528FE7C250014A784 /* YUMIDesirePresentExternalizer.h */, + E8A3539628FE7C250014A784 /* YUMIDesirePresentExternalizer.m */, + ); + path = Presenter; + sourceTree = ""; + }; + E8A3538A28FE5CB90014A784 /* View */ = { + isa = PBXGroup; + children = ( + E8A3539D28FE84470014A784 /* Cell */, + E8A3539C28FE84400014A784 /* View */, + E8A3539928FE840A0014A784 /* YUMIDesirePresentRegardGovernancer.h */, + E8A3539A28FE840A0014A784 /* YUMIDesirePresentRegardGovernancer.m */, + E8A353A128FE90F60014A784 /* YUMIDesirePresentCreateRegardGovernancer.h */, + E8A353A228FE90F60014A784 /* YUMIDesirePresentCreateRegardGovernancer.m */, + E8A3540228FEB7100014A784 /* YUMIDesirePresentHistoryRegardGovernancer.h */, + E8A3540328FEB7100014A784 /* YUMIDesirePresentHistoryRegardGovernancer.m */, + E8A3540528FEBD460014A784 /* YUMIDesirePresentCreateProvisionRegardGovernancer.h */, + E8A3540628FEBD460014A784 /* YUMIDesirePresentCreateProvisionRegardGovernancer.m */, + ); + path = View; + sourceTree = ""; + }; + E8A3538B28FE5CC80014A784 /* Api */ = { + isa = PBXGroup; + children = ( + E8A3538C28FE5CED0014A784 /* Api+WishGift.h */, + E8A3538D28FE5CED0014A784 /* Api+WishGift.m */, + ); + path = Api; + sourceTree = ""; + }; + E8A3539C28FE84400014A784 /* View */ = { + isa = PBXGroup; + children = ( + E8A3539E28FE84670014A784 /* YUMIDesirePresentAbstractRegard.h */, + E8A3539F28FE84670014A784 /* YUMIDesirePresentAbstractRegard.m */, + E8A3540828FEC0510014A784 /* YUMIDesirePresentStatementRegard.h */, + E8A3540928FEC0510014A784 /* YUMIDesirePresentStatementRegard.m */, + E89DCF5828FFF1AD001647EC /* YUMIDesirePresentDivisionRegard.h */, + E89DCF5928FFF1AD001647EC /* YUMIDesirePresentDivisionRegard.m */, + E89DCF5E2900F4FB001647EC /* YUMIDesirePresentImportRegard.h */, + E89DCF5F2900F4FB001647EC /* YUMIDesirePresentImportRegard.m */, + ); + path = View; + sourceTree = ""; + }; + E8A3539D28FE84470014A784 /* Cell */ = { + isa = PBXGroup; + children = ( + E8A353FF28FEAC5E0014A784 /* YUMIDesirePresentTabulationRegardElement.h */, + E8A3540028FEAC5E0014A784 /* YUMIDesirePresentTabulationRegardElement.m */, + E89DCF5228FFEC67001647EC /* YUMIDesirePresentHistoryTabulationRegardElement.h */, + E89DCF5328FFEC67001647EC /* YUMIDesirePresentHistoryTabulationRegardElement.m */, + E89DCF5528FFF076001647EC /* YUMIDesirePresentDispossessTabulationRegardElement.h */, + E89DCF5628FFF076001647EC /* YUMIDesirePresentDispossessTabulationRegardElement.m */, + ); + path = Cell; + sourceTree = ""; + }; + E8AC720A26F435AF007D6E91 /* UIImageView */ = { + isa = PBXGroup; + children = ( + E8AC720E26F43955007D6E91 /* UIIndicateConstant.h */, + E8AC720F26F43955007D6E91 /* UIIndicateConstant.m */, + 1808072E27315E8E001FD836 /* NetIndicateRegard.h */, + 1808072F27315E8E001FD836 /* NetIndicateRegard.m */, + 18A61BD5274F7F6900A09A54 /* NetIndicateDisposition.h */, + 18A61BD6274F7F6900A09A54 /* NetIndicateDisposition.m */, + ); + path = UIImageView; + sourceTree = ""; + }; + E8AEAED3271412D00017FCE0 /* YMRoom */ = { + isa = PBXGroup; + children = ( + E804875F2717DD70008595F2 /* Model */, + E80487602717DD89008595F2 /* Api */, + E8AEAED8271413530017FCE0 /* View */, + E80487612717DD92008595F2 /* Presenter */, + E80487622717DDAE008595F2 /* Protocol */, + ); + path = YMRoom; + sourceTree = ""; + }; + E8AEAED8271413530017FCE0 /* View */ = { + isa = PBXGroup; + children = ( + E80E096F2A40B5DD00CD2BE7 /* CandyTree */, + 9B208A372779C1EF00F9E54A /* FaceView */, + E8788931273A53B000BF1D57 /* SendGiftView */, + E8A1F78D290641D80099C952 /* MorePlay */, + E8A3538628FE5C5B0014A784 /* WishGift */, + 9B2F72CD28E45A1C0000E4FA /* QuickMessageView */, + 9BA812D328BF52A500783EA7 /* SendRedPacket */, + E8751E5128A629EB0056EF44 /* Sailing */, + 9BFE0D8F289903F600F53C24 /* TaskTip */, + 9B9BBF80288FBF93004E2E74 /* NewUserGift */, + 9B7D904A287BC4FC0033A45E /* AnchorCycleView */, + E87AE8C2284E1A6B00CAFBB3 /* NewUserGreet */, + E8E859E628264F0000EE4857 /* BackMusic */, + 9B6E8570281AAD260041A321 /* RoomRecommend */, + 9B1B72A228002F76003FACE9 /* AnchorPK */, + E801273827E322D700BAC3F2 /* RoomPK */, + 9B7B605827BB52FD0070BB72 /* AnchorView */, + E880B396278BD3D800A83B0D /* AcrossRoomPK */, + E8412F9A2779BAC2006E1101 /* Setting */, + E84150B027747A7400A7F548 /* FirstRecharge */, + E81C1B1327705EF00020D1E4 /* ArrangeMic */, + 9BC5C915277C809E007C8719 /* ReleaseRadio */, + E8A1E4462761F8EA00B294CA /* CandyTree */, + E8DEC9962764A51F0078CB70 /* MoreView */, + E838D99D275E1B6C0079E0B5 /* AnimationView */, + E82325EA274E2D52003A3332 /* UserCard */, + E8AEAEE827141ACC0017FCE0 /* ChamberIntelligencerRegard */, + E8AEAEEA27141ACC0017FCE0 /* PhaseRegard */, + E8AEAEE627141ACC0017FCE0 /* MessageContainerView */, + E8AEAEE527141ACC0017FCE0 /* ActivityContainerView */, + E8AEAEE727141ACC0017FCE0 /* BaseUIContainerView */, + E8AEAEE927141ACC0017FCE0 /* MenuContainerView */, + E8AEAED4271412EC0017FCE0 /* YUMIChamberRegardGovernancer.h */, + E8AEAED5271412EC0017FCE0 /* YUMIChamberRegardGovernancer.m */, + E816C11327608A7500C84014 /* YUMIChamberMiniExecutive.h */, + E816C11427608A7500C84014 /* YUMIChamberMiniExecutive.m */, + 181D7F222727DB1E00B7C059 /* ChamberHostRepresendtation.h */, + 180806F827298F9B001FD836 /* ChamberGuestRepresendtation.h */, + 186F8B472733F2AE007A17BC /* MicroQueueCeremony.h */, + 1845C6412790320E00016EAC /* ChamberAnimationCeremony.h */, + 180806F92729A354001FD836 /* ThemeColor+Room.h */, + 180806FA2729A354001FD836 /* ThemeColor+Room.m */, + E866B6E32759F96F009B002A /* YUMIMiniChamberRegard.h */, + E866B6E42759F96F009B002A /* YUMIMiniChamberRegard.m */, + ); + path = View; + sourceTree = ""; + }; + E8AEAEE527141ACC0017FCE0 /* ActivityContainerView */ = { + isa = PBXGroup; + children = ( + E8AE427127153A3500BEEBB2 /* YUMIChamberImportpriseAccommodatedRegard.h */, + E8AE427227153A3500BEEBB2 /* YUMIChamberImportpriseAccommodatedRegard.m */, + 9BAC92EC28E6989400147DD8 /* YUMIChamberImportpriseDisportRegard.h */, + 9BAC92ED28E6989400147DD8 /* YUMIChamberImportpriseDisportRegard.m */, + ); + path = ActivityContainerView; + sourceTree = ""; + }; + E8AEAEE627141ACC0017FCE0 /* MessageContainerView */ = { + isa = PBXGroup; + children = ( + E84B0E47272801F6008818C6 /* Tool */, + E84B0E432727EF2C008818C6 /* Model */, + E84B0E3C2727EDD4008818C6 /* View */, + E8AEAEF127141C7C0017FCE0 /* YUMIChamberCommunicationAccommodatedRegard.h */, + E8AEAEF227141C7C0017FCE0 /* YUMIChamberCommunicationAccommodatedRegard.m */, + ); + path = MessageContainerView; + sourceTree = ""; + }; + E8AEAEE727141ACC0017FCE0 /* BaseUIContainerView */ = { + isa = PBXGroup; + children = ( + E8AEAEEB27141AE20017FCE0 /* YUMIChamberBackAccommodatedRegard.h */, + E8AEAEEC27141AE20017FCE0 /* YUMIChamberBackAccommodatedRegard.m */, + E83953202769F33B00CF2F24 /* YUMIChamberFunctionAccommodatedRegard.h */, + E83953212769F33B00CF2F24 /* YUMIChamberFunctionAccommodatedRegard.m */, + E877A7EF27842B2F00EFACED /* YUMIChamberEngagementTissuePrecautiousRegard.h */, + E877A7F027842B2F00EFACED /* YUMIChamberEngagementTissuePrecautiousRegard.m */, + E877A7F227842EF800EFACED /* YUMIChamberEngagementVipUpwardsLoudspeakerRegard.h */, + E877A7F327842EF800EFACED /* YUMIChamberEngagementVipUpwardsLoudspeakerRegard.m */, + 9B86D88128192DC000494FCD /* YUMIChamberRateEntranceRegard.h */, + 9B86D88228192DC000494FCD /* YUMIChamberRateEntranceRegard.m */, + 9B044D9B282D2A6400DE4859 /* YUMIChamberKellegRateImportRegard.h */, + 9B044D9C282D2A6400DE4859 /* YUMIChamberKellegRateImportRegard.m */, + ); + path = BaseUIContainerView; + sourceTree = ""; + }; + E8AEAEE827141ACC0017FCE0 /* ChamberIntelligencerRegard */ = { + isa = PBXGroup; + children = ( + E8AEAEF727141CA30017FCE0 /* ChamberIntelligencerRegard.h */, + E8AEAEF827141CA30017FCE0 /* ChamberIntelligencerRegard.m */, + ); + path = ChamberIntelligencerRegard; + sourceTree = ""; + }; + E8AEAEE927141ACC0017FCE0 /* MenuContainerView */ = { + isa = PBXGroup; + children = ( + E89D60B7271D6417001F8895 /* Model */, + E8EE827B272B9A2300A17217 /* YUMIChamberDischargeEssayRegard.h */, + E8EE827C272B9A2300A17217 /* YUMIChamberDischargeEssayRegard.m */, + E8AEAEEE27141C430017FCE0 /* YUMIChamberParrotAccommodatedRegard.h */, + E8AEAEEF27141C430017FCE0 /* YUMIChamberParrotAccommodatedRegard.m */, + ); + path = MenuContainerView; + sourceTree = ""; + }; + E8AEAEEA27141ACC0017FCE0 /* PhaseRegard */ = { + isa = PBXGroup; + children = ( + E874B88527215CFF003954B9 /* Model */, + E8680707271959090024F48F /* MiecreoscoopeRegard */, + 181D7F192726CE2A00B7C059 /* PhaseRegard.h */, + 181D7F1A2726CE2A00B7C059 /* PhaseRegard.m */, + 181D7F1F2727D9DB00B7C059 /* SocialPhaseRegard.h */, + 181D7F202727D9DB00B7C059 /* SocialPhaseRegard.m */, + E877A7E92783E24700EFACED /* EngagementPhaseRegard.h */, + E877A7EA2783E24700EFACED /* EngagementPhaseRegard.m */, + 9B0086C427BA392B0032BD2B /* KellegPhaseRegard.h */, + 9B0086C527BA392B0032BD2B /* KellegPhaseRegard.m */, + 9B2EA7BE2804037700ED17BF /* KellegCombatPhaseRegard.h */, + 9B2EA7BF2804037700ED17BF /* KellegCombatPhaseRegard.m */, + ); + path = PhaseRegard; + sourceTree = ""; + }; + E8AFF7F3298CF4FD00FBDE32 /* SubViews */ = { + isa = PBXGroup; + children = ( + E8A03DE02762FA000098D9EA /* YUMIConfectioneryTimberFurthaerRegard.h */, + E8A03DE12762FA000098D9EA /* YUMIConfectioneryTimberFurthaerRegard.m */, + E8A1E45927620F4900B294CA /* YUMIChamberHalfTissueRegard.h */, + E8A1E45A27620F4900B294CA /* YUMIChamberHalfTissueRegard.m */, + E8A03DE7276301CC0098D9EA /* YUMIConfectioneryRateAccommodatedRegard.h */, + E8A03DE8276301CC0098D9EA /* YUMIConfectioneryRateAccommodatedRegard.m */, + E8A03DEA276301EF0098D9EA /* YUMIConfectioneryTimberRateRegard.h */, + E8A03DEB276301EF0098D9EA /* YUMIConfectioneryTimberRateRegard.m */, + E8A03DFA276350A60098D9EA /* YUMIConfectioneryTimberPresentRegard.h */, + E8A03DFB276350A60098D9EA /* YUMIConfectioneryTimberPresentRegard.m */, + E8AFF7E4298CBB3200FBDE32 /* XPCandyTreeRecordView.h */, + E8AFF7E5298CBB3200FBDE32 /* XPCandyTreeRecordView.m */, + E8AFF7ED298CF0DD00FBDE32 /* XPCandyTreeRuleView.h */, + E8AFF7EE298CF0DD00FBDE32 /* XPCandyTreeRuleView.m */, + E8AFF7F4298CF52500FBDE32 /* XPCandyTreeRuleHeaderView.h */, + E8AFF7F5298CF52500FBDE32 /* XPCandyTreeRuleHeaderView.m */, + ); + path = SubViews; + sourceTree = ""; + }; + E8B3E8022848B828009746AB /* Protocol */ = { + isa = PBXGroup; + children = ( + 18E7B1AE26E8AD760064BC9B /* MainCeremony.h */, + ); + path = Protocol; + sourceTree = ""; + }; + E8B3E8032848B838009746AB /* Presenter */ = { + isa = PBXGroup; + children = ( + 18E7B1B026E8AF980064BC9B /* MainExternalizer.h */, + 18E7B1B126E8AF980064BC9B /* MainExternalizer.m */, + ); + path = Presenter; + sourceTree = ""; + }; + E8B3E8042848B842009746AB /* View */ = { + isa = PBXGroup; + children = ( + 9BA3B40C293DD2E00071DF1C /* VersionUpdate */, + 9BFB101C2897CC3300B3985E /* AnchorCard */, + 9BE01AF42893E7E000B50299 /* Cell */, + 189DD53226DE255300AB55B1 /* TabbarRegardGovernancer.h */, + 189DD53326DE255300AB55B1 /* TabbarRegardGovernancer.m */, + 142721B029A7647F00C7C423 /* YUMIBlankRegardGovernancer.h */, + 142721B129A7647F00C7C423 /* YUMIBlankRegardGovernancer.m */, + 140A7F50299CC69000841594 /* YUMITabObstacle.h */, + 140A7F51299CC69000841594 /* YUMITabObstacle.m */, + ); + path = View; + sourceTree = ""; + }; + E8B3E8052848B849009746AB /* Api */ = { + isa = PBXGroup; + children = ( + 18E7B1B526E8B2D10064BC9B /* Api+Main.h */, + 18E7B1B626E8B2D10064BC9B /* Api+Main.m */, + ); + path = Api; + sourceTree = ""; + }; + E8B3E8062848B84F009746AB /* Model */ = { + isa = PBXGroup; + children = ( + E836456A2A40A33300E0DBE4 /* ManeCommunicationSolitaireStatementAbstractMatrix.h */, + E83645692A40A33300E0DBE4 /* ManeCommunicationSolitaireStatementAbstractMatrix.m */, + E8B3E8072848B871009746AB /* CallforConsumerAbstractMatrix.h */, + E8B3E8082848B871009746AB /* CallforConsumerAbstractMatrix.m */, + E8B3E80A2848BA40009746AB /* StrangeConsumerBewelcometoMatrix.h */, + E8B3E80B2848BA40009746AB /* StrangeConsumerBewelcometoMatrix.m */, + 9BE01AEE2893E31700B50299 /* StrangeConsumerReindictMatrix.h */, + 9BE01AEF2893E31700B50299 /* StrangeConsumerReindictMatrix.m */, + 9BFB10202897D68400B3985E /* YUMITabKellegSolitaireMatrix.h */, + 9BFB10212897D68400B3985E /* YUMITabKellegSolitaireMatrix.m */, + 9BA3B409293DCDFD0071DF1C /* YUMIVersionRefurbishMatrix.h */, + 9BA3B40A293DCDFD0071DF1C /* YUMIVersionRefurbishMatrix.m */, + ); + path = Model; + sourceTree = ""; + }; + E8B825BC26E9E520009E8E9F /* Model */ = { + isa = PBXGroup; + children = ( + E81C27A926EF2D920031E639 /* ThirdConsumerAbstract.h */, + E81C27AA26EF2D920031E639 /* ThirdConsumerAbstract.m */, + E818DD1D2A48974300F163F7 /* SurmountAreaMatrix.h */, + E818DD1E2A48974300F163F7 /* SurmountAreaMatrix.m */, + ); + path = Model; + sourceTree = ""; + }; + E8B846B926FD7BE600A777FE /* UpwardsloadIndicate */ = { + isa = PBXGroup; + children = ( + E8B846BA26FD7C1200A777FE /* UpwardsloadIndicate.h */, + E8B846BB26FD7C1200A777FE /* UpwardsloadIndicate.m */, + ); + path = UpwardsloadIndicate; + sourceTree = ""; + }; + E8B846C826FDD79700A777FE /* Recharge */ = { + isa = PBXGroup; + children = ( + E8B846C926FDD7CD00A777FE /* YUMIManeReindictRegardGovernancer.h */, + E8B846CA26FDD7CD00A777FE /* YUMIManeReindictRegardGovernancer.m */, + 1464C5F129A4C18000AF7C94 /* YUMIIAPReindictRegardGovernancer.h */, + 1464C5F229A4C18000AF7C94 /* YUMIIAPReindictRegardGovernancer.m */, + 1464C5F429A4CA8C00AF7C94 /* YUMIIAPReindictAssembletionRegardElement.h */, + 1464C5F529A4CA8C00AF7C94 /* YUMIIAPReindictAssembletionRegardElement.m */, + 1464C5F729A4D00000AF7C94 /* YUMIIAPReindictIntelligencerRegard.h */, + 1464C5F829A4D00000AF7C94 /* YUMIIAPReindictIntelligencerRegard.m */, + ); + path = Recharge; + sourceTree = ""; + }; + E8B846CC26FDD93D00A777FE /* Recharge */ = { + isa = PBXGroup; + children = ( + E8B846CD26FDD96100A777FE /* YUMIManeRechageIntelligenceRegard.h */, + E8B846CE26FDD96100A777FE /* YUMIManeRechageIntelligenceRegard.m */, + E89DA67327009ACD008483C1 /* YUMIManeReindictNevRegard.h */, + E89DA67427009ACD008483C1 /* YUMIManeReindictNevRegard.m */, + ); + path = Recharge; + sourceTree = ""; + }; + E8B846D026FDDBCD00A777FE /* Recharge */ = { + isa = PBXGroup; + children = ( + E8B846D126FDDBE600A777FE /* YUMIManeReindictTabulationRegardElement.h */, + E8B846D226FDDBE600A777FE /* YUMIManeReindictTabulationRegardElement.m */, + ); + path = Recharge; + sourceTree = ""; + }; + E8B846D926FDE21900A777FE /* Recharge */ = { + isa = PBXGroup; + children = ( + E8B846DA26FDE24300A777FE /* ReindictStatementMatrix.h */, + E8B846DB26FDE24300A777FE /* ReindictStatementMatrix.m */, + E89DA67027008D59008483C1 /* RamparatetAbstractMatrix.h */, + E89DA67127008D59008483C1 /* RamparatetAbstractMatrix.m */, + ); + path = Recharge; + sourceTree = ""; + }; + E8C1CD5F27D88E4900376F83 /* Model */ = { + isa = PBXGroup; + children = ( + E8C1CD6E27D894B800376F83 /* ChamberAcceptChampionProvisionMatrix.h */, + E8C1CD6F27D894B800376F83 /* ChamberAcceptChampionProvisionMatrix.m */, + E8C1CD7827D8B29E00376F83 /* ChamberAcceptAbstractMatrix.h */, + E8C1CD7927D8B29E00376F83 /* ChamberAcceptAbstractMatrix.m */, + E87C0A9E27D9DE6400CB2241 /* ChamberAcceptDischargeAbstractMatrix.h */, + E87C0A9F27D9DE6400CB2241 /* ChamberAcceptDischargeAbstractMatrix.m */, + ); + path = Model; + sourceTree = ""; + }; + E8C1CD6127D88E6A00376F83 /* View */ = { + isa = PBXGroup; + children = ( + E8C1CD6727D8933A00376F83 /* Cell */, + E8C1CD6427D88EF800376F83 /* YUMIChamberAcceptRegardGovernancer.h */, + E8C1CD6527D88EF800376F83 /* YUMIChamberAcceptRegardGovernancer.m */, + ); + path = View; + sourceTree = ""; + }; + E8C1CD6227D88E7900376F83 /* Presenter */ = { + isa = PBXGroup; + children = ( + E8C1CD7127D8A16500376F83 /* YUMIChamberAcceptTool.h */, + E8C1CD7227D8A16500376F83 /* YUMIChamberAcceptTool.m */, + E8C1CD7427D8AE3D00376F83 /* YUMIChamberAcceptExternalizer.h */, + E8C1CD7527D8AE3D00376F83 /* YUMIChamberAcceptExternalizer.m */, + ); + path = Presenter; + sourceTree = ""; + }; + E8C1CD6327D88EA300376F83 /* Protocol */ = { + isa = PBXGroup; + children = ( + E8C1CD7727D8AE5600376F83 /* FBCChamberFaceCeremony.h */, + ); + path = Protocol; + sourceTree = ""; + }; + E8C1CD6727D8933A00376F83 /* Cell */ = { + isa = PBXGroup; + children = ( + E8C1CD6827D8937800376F83 /* YUMIChamberAcceptAssembletionRegardElement.h */, + E8C1CD6927D8937800376F83 /* YUMIChamberAcceptAssembletionRegardElement.m */, + E8C1CD6B27D8938C00376F83 /* YUMIChamberAcceptChampionAssembletionRegardElement.h */, + E8C1CD6C27D8938C00376F83 /* YUMIChamberAcceptChampionAssembletionRegardElement.m */, + E87C0A9B27D9986700CB2241 /* YUMIChamberAcceptAssembletionFlowProgramming.h */, + E87C0A9C27D9986700CB2241 /* YUMIChamberAcceptAssembletionFlowProgramming.m */, + ); + path = Cell; + sourceTree = ""; + }; + E8D34D57280821F3009C4835 /* UserInfo */ = { + isa = PBXGroup; + children = ( + E8D34D5828082357009C4835 /* ConsumerPresentRamparatAbstractMatrix.h */, + E8D34D5928082357009C4835 /* ConsumerPresentRamparatAbstractMatrix.m */, + ); + path = UserInfo; + sourceTree = ""; + }; + E8D55C9A281131F1006935A5 /* SessionToolBar */ = { + isa = PBXGroup; + children = ( + E8D55C9B28113218006935A5 /* CommunicationParrotMatrix.h */, + E8D55C9C28113218006935A5 /* CommunicationParrotMatrix.m */, + ); + path = SessionToolBar; + sourceTree = ""; + }; + E8D7D747282BA1C20007D7BD /* Cell */ = { + isa = PBXGroup; + children = ( + E8D7D749282BA1EC0007D7BD /* YUMISeparationsTabulationRegardElement.h */, + E8D7D74A282BA1EC0007D7BD /* YUMISeparationsTabulationRegardElement.m */, + E8098CAC282E07C00090B9F0 /* YUMISeparationsDispossessTabulationRegardElement.h */, + E8098CAD282E07C00090B9F0 /* YUMISeparationsDispossessTabulationRegardElement.m */, + E81A654A28351D9900F55894 /* YUMISeparationsMotifAssembletionRegardElement.h */, + E81A654B28351D9900F55894 /* YUMISeparationsMotifAssembletionRegardElement.m */, + E878B8592835F3BF00E22DCF /* YUMISeparationsCoactiveTabulationRegardElement.h */, + E878B85A2835F3BF00E22DCF /* YUMISeparationsCoactiveTabulationRegardElement.m */, + E852D73C28631C18001465ED /* YUMISeparationsJudgementTabulationRegardElement.h */, + E852D73D28631C18001465ED /* YUMISeparationsJudgementTabulationRegardElement.m */, + E852D73F2863249F001465ED /* YUMISeparationsReplicationTabulationRegardElement.h */, + E852D7402863249F001465ED /* YUMISeparationsReplicationTabulationRegardElement.m */, + E854103728646A00005CFD9F /* YUMISeparationsReplicationFurthaerTabulationRegardElement.h */, + E854103828646A00005CFD9F /* YUMISeparationsReplicationFurthaerTabulationRegardElement.m */, + E818E34D286EDF72005EDF68 /* YUMISeparationsAnnounceAssembletionRegardElement.h */, + E818E34E286EDF72005EDF68 /* YUMISeparationsAnnounceAssembletionRegardElement.m */, + 149839C5299E0B9F00F82CBF /* YUMIMomentStatementAssembletionRegardElement.h */, + 149839C6299E0B9F00F82CBF /* YUMIMomentStatementAssembletionRegardElement.m */, + ); + path = Cell; + sourceTree = ""; + }; + E8D7D748282BA1C90007D7BD /* SubViews */ = { + isa = PBXGroup; + children = ( + E895017E282CAC49007E459A /* YUMISeparationsConsumerAbstractRegard.h */, + E895017F282CAC49007E459A /* YUMISeparationsConsumerAbstractRegard.m */, + E8950181282CAC6A007E459A /* YUMISeparationsAppearanceRegard.h */, + E8950182282CAC6A007E459A /* YUMISeparationsAppearanceRegard.m */, + E8950184282CAC80007E459A /* YUMISeparationsTooObstacleRegard.h */, + E8950185282CAC80007E459A /* YUMISeparationsTooObstacleRegard.m */, + E8098CAF282E86EF0090B9F0 /* YUMISeparationsSatisfactionRegard.h */, + E8098CB0282E86EF0090B9F0 /* YUMISeparationsSatisfactionRegard.m */, + E895018A282D0701007E459A /* YUMISepartionMotifRegard.h */, + E895018B282D0701007E459A /* YUMISepartionMotifRegard.m */, + E81A654728351B9500F55894 /* YUMISeparationsEncourageIntelligencerRegard.h */, + E81A654828351B9500F55894 /* YUMISeparationsEncourageIntelligencerRegard.m */, + E8B9842B28AB77F10022D026 /* YUMISeparationsAnnounceMotifRegard.h */, + E8B9842C28AB77F10022D026 /* YUMISeparationsAnnounceMotifRegard.m */, + E8B9842E28AB90200022D026 /* YUMISepartionMotifStatementRegard.h */, + E8B9842F28AB90200022D026 /* YUMISepartionMotifStatementRegard.m */, + E8B9843428ABA8B40022D026 /* YUMISeparationAnnounceSuccessRegard.h */, + E8B9843528ABA8B40022D026 /* YUMISeparationAnnounceSuccessRegard.m */, + E8AB631128ADDCF20023B0D2 /* YUMISeparationsMotifIntelligencerRegard.h */, + E8AB631228ADDCF20023B0D2 /* YUMISeparationsMotifIntelligencerRegard.m */, + ); + path = SubViews; + sourceTree = ""; + }; + E8DBB6FA27B63CC300AA285D /* LittleGame */ = { + isa = PBXGroup; + children = ( + E8DBB6FB27B63CE000AA285D /* TraitCompetitionMiecreoscoopeRegard.h */, + E8DBB6FC27B63CE000AA285D /* TraitCompetitionMiecreoscoopeRegard.m */, + ); + path = LittleGame; + sourceTree = ""; + }; + E8DEC9962764A51F0078CB70 /* MoreView */ = { + isa = PBXGroup; + children = ( + E8DEC99B2764A5620078CB70 /* Model */, + E8DEC99A2764A55C0078CB70 /* Api */, + E8DEC9992764A54C0078CB70 /* View */, + E8DEC9982764A5400078CB70 /* Presenter */, + E8DEC9972764A5340078CB70 /* Protocol */, + ); + path = MoreView; + sourceTree = ""; + }; + E8DEC9972764A5340078CB70 /* Protocol */ = { + isa = PBXGroup; + children = ( + E8DEC9A52764A6760078CB70 /* FBCFurthaerMenuCeremony.h */, + ); + path = Protocol; + sourceTree = ""; + }; + E8DEC9982764A5400078CB70 /* Presenter */ = { + isa = PBXGroup; + children = ( + E8DEC9A22764A6600078CB70 /* YUMIFurthaerParrotExternalizer.h */, + E8DEC9A32764A6600078CB70 /* YUMIFurthaerParrotExternalizer.m */, + ); + path = Presenter; + sourceTree = ""; + }; + E8DEC9992764A54C0078CB70 /* View */ = { + isa = PBXGroup; + children = ( + E8DEC9A92764A6AF0078CB70 /* Cell */, + E8DEC99C2764A5B60078CB70 /* YUMIChamberFurthaerParrotRegardGovernancer.h */, + E8DEC99D2764A5B60078CB70 /* YUMIChamberFurthaerParrotRegardGovernancer.m */, + E8412F9427795E34006E1101 /* YUMIChamberCallforFanaticsRegard.h */, + E8412F9527795E34006E1101 /* YUMIChamberCallforFanaticsRegard.m */, + ); + path = View; + sourceTree = ""; + }; + E8DEC99A2764A55C0078CB70 /* Api */ = { + isa = PBXGroup; + children = ( + E8DEC9A62764A68B0078CB70 /* Api+MoreMenu.h */, + E8DEC9A72764A68B0078CB70 /* Api+MoreMenu.m */, + ); + path = Api; + sourceTree = ""; + }; + E8DEC99B2764A5620078CB70 /* Model */ = { + isa = PBXGroup; + children = ( + E8DEC99F2764A5D20078CB70 /* YUMIChamberFurthaerProvisionMatrix.h */, + E8DEC9A02764A5D20078CB70 /* YUMIChamberFurthaerProvisionMatrix.m */, + E8412F9727799249006E1101 /* CallforFanaticsMatrix.h */, + E8412F9827799249006E1101 /* CallforFanaticsMatrix.m */, + ); + path = Model; + sourceTree = ""; + }; + E8DEC9A92764A6AF0078CB70 /* Cell */ = { + isa = PBXGroup; + children = ( + E8DEC9AA2764A6CD0078CB70 /* YUMIChamberFurthaerParrotAssembletionRegardElement.h */, + E8DEC9AB2764A6CD0078CB70 /* YUMIChamberFurthaerParrotAssembletionRegardElement.m */, + ); + path = Cell; + sourceTree = ""; + }; + E8E20BDF281695430033B688 /* Setting */ = { + isa = PBXGroup; + children = ( + E8AC721126F46ADD007D6E91 /* YUMIManeInstanllingRegardGovernancer.h */, + E8AC721226F46ADD007D6E91 /* YUMIManeInstanllingRegardGovernancer.m */, + E8AC721F26F47E23007D6E91 /* YUMIManeAboutUsRegardGovernancer.h */, + E8AC722026F47E23007D6E91 /* YUMIManeAboutUsRegardGovernancer.m */, + E8AC722226F47E5E007D6E91 /* YUMIManeFeedbackRegardGovernancer.h */, + E8AC722326F47E5E007D6E91 /* YUMIManeFeedbackRegardGovernancer.m */, + E8AC722A26F49580007D6E91 /* YUMIManeNotificaRegardGovernancer.h */, + E8AC722B26F49580007D6E91 /* YUMIManeNotificaRegardGovernancer.m */, + E824543E26F58F9400BE8163 /* YUMIManeIntersectPwordRegardGovernancer.h */, + E824543F26F58F9400BE8163 /* YUMIManeIntersectPwordRegardGovernancer.m */, + E824544926F5BBB800BE8163 /* YUMIManeModifIntersectPwordRegardGovernancer.h */, + E824544A26F5BBB800BE8163 /* YUMIManeModifIntersectPwordRegardGovernancer.m */, + E824545426F5E51900BE8163 /* YUMIManeValidationIdentityRegardGovernancer.h */, + E824545526F5E51900BE8163 /* YUMIManeValidationIdentityRegardGovernancer.m */, + E824545F26F5F4E400BE8163 /* YUMIManeReassociationIntersectPwordRegardGovernancer.h */, + E824546026F5F4E400BE8163 /* YUMIManeReassociationIntersectPwordRegardGovernancer.m */, + E8E20BE0281695800033B688 /* YUMIManeSurmountCiphercodeRegardGovernancer.h */, + E8E20BE1281695800033B688 /* YUMIManeSurmountCiphercodeRegardGovernancer.m */, + E87C54C02823CD6F0051AA11 /* YUMIManeReassociationSurmountPwordRegardGovernancer.h */, + E87C54C12823CD6F0051AA11 /* YUMIManeReassociationSurmountPwordRegardGovernancer.m */, + E8E20BEA2816A5B90033B688 /* YUMIManeBlackStatementRegardGovernancer.h */, + E8E20BEB2816A5B90033B688 /* YUMIManeBlackStatementRegardGovernancer.m */, + 140A818B299CFF1C00841594 /* YUMIVendorCallRegardGovernancer.h */, + 140A818C299CFF1C00841594 /* YUMIVendorCallRegardGovernancer.m */, + ); + path = Setting; + sourceTree = ""; + }; + E8E70D6E26F2EB1200F03460 /* YMMine */ = { + isa = PBXGroup; + children = ( + E8E70D7026F2EB3800F03460 /* Model */, + E8E70D6F26F2EB2A00F03460 /* Api */, + E8E70D7126F2EB4900F03460 /* View */, + E8E70D7226F2EB5100F03460 /* Presenter */, + E8E70D7426F2EB6B00F03460 /* Protocol */, + ); + path = YMMine; + sourceTree = ""; + }; + E8E70D6F26F2EB2A00F03460 /* Api */ = { + isa = PBXGroup; + children = ( + E8E70D7C26F2F19D00F03460 /* Api+Mine.h */, + E8E70D7D26F2F19D00F03460 /* Api+Mine.m */, + ); + path = Api; + sourceTree = ""; + }; + E8E70D7026F2EB3800F03460 /* Model */ = { + isa = PBXGroup; + children = ( + E85E7B682A4EC39400B6D00A /* ExchangeAuthority */, + E85E7B582A4EC35A00B6D00A /* RecordIncome */, + 9BD2ECCF288F832300F5CD9A /* FootPrint */, + E80B070F280D0A6700A79F63 /* Friend */, + 9B1B729A28002249003FACE9 /* AnchorFansTeam */, + E8D34D57280821F3009C4835 /* UserInfo */, + 9BD9A18127A0F110004186FE /* Visitor */, + E8B846D926FDE21900A777FE /* Recharge */, + E8E70D9026F2F60C00F03460 /* YUMIManeProvisionMatrix.h */, + E8E70D9126F2F60C00F03460 /* YUMIManeProvisionMatrix.m */, + E8AC721726F46E0B007D6E91 /* YUMIManeInstanllingProvisionMatrix.h */, + E8AC721826F46E0B007D6E91 /* YUMIManeInstanllingProvisionMatrix.m */, + E8AC722D26F49610007D6E91 /* YUMIManeNotificationProvisionMatrix.h */, + E8AC722E26F49610007D6E91 /* YUMIManeNotificationProvisionMatrix.m */, + E8AC723826F49AAE007D6E91 /* YUMIManeNotifyStatus.h */, + E8AC723926F49AAE007D6E91 /* YUMIManeNotifyStatus.m */, + E8EEB90A26FC5EBC007C6EBA /* YUMIManeConsumerAbstractCompileMatrix.h */, + E8EEB90B26FC5EBC007C6EBA /* YUMIManeConsumerAbstractCompileMatrix.m */, + 9B734F74288A92FB00CBDAA9 /* YUMIManeFuntionProvisionMatrix.h */, + 9B734F75288A92FB00CBDAA9 /* YUMIManeFuntionProvisionMatrix.m */, + ); + path = Model; + sourceTree = ""; + }; + E8E70D7126F2EB4900F03460 /* View */ = { + isa = PBXGroup; + children = ( + E84A2E7E2A527DF800D6AF8A /* IncomeRecord */, + E85E7B732A4EC99200B6D00A /* GiveDiamond */, + E85E7A3B2A4EB0D200B6D00A /* Guild */, + 9BCB999D28F5716E00466D64 /* CollectRoom */, + E8E20BDF281695430033B688 /* Setting */, + E896EF912771AA6C00AD2CC1 /* Friend */, + E83953232769FF2400CF2F24 /* DressUp */, + E8E70D8026F2F3C500F03460 /* Cell */, + E8E70D7F26F2F39000F03460 /* SubViews */, + E8E70D7526F2F15100F03460 /* YUMIManeRegardGovernancer.h */, + E8E70D7626F2F15100F03460 /* YUMIManeRegardGovernancer.m */, + 9BD8D4E128911E9900AE03FF /* YUMIManeAssembleChamberStatementRegardGovernancer.h */, + 9BD8D4E228911E9900AE03FF /* YUMIManeAssembleChamberStatementRegardGovernancer.m */, + 9BD9A17A27A0EE24004186FE /* YUMIManeVacationerRegardGovernancer.h */, + 9BD9A17B27A0EE24004186FE /* YUMIManeVacationerRegardGovernancer.m */, + 9BD2ECCC288F829600F5CD9A /* YUMIManeTerminalImpressionRegardGovernancer.h */, + 9BD2ECCD288F829600F5CD9A /* YUMIManeTerminalImpressionRegardGovernancer.m */, + 9B1B729328002099003FACE9 /* YUMIManeFanaticsSquadRegardGovernancer.h */, + 9B1B729428002099003FACE9 /* YUMIManeFanaticsSquadRegardGovernancer.m */, + 14A6034729A3567200D2A6A5 /* YUMISimpleManeRegardGovernancer.h */, + 14A6034829A3567200D2A6A5 /* YUMISimpleManeRegardGovernancer.m */, + 14A6034A29A35EE600D2A6A5 /* YUMIManeProvisionTabulationRegardElement.h */, + 14A6034B29A35EE600D2A6A5 /* YUMIManeProvisionTabulationRegardElement.m */, + 14A6034D29A36D8300D2A6A5 /* YUMISimpleManeIntelligencerRegard.h */, + 14A6034E29A36D8300D2A6A5 /* YUMISimpleManeIntelligencerRegard.m */, + 1464C5E829A45FC300AF7C94 /* YUMIButton.h */, + 1464C5E929A45FC300AF7C94 /* YUMIButton.m */, + E8B846C826FDD79700A777FE /* Recharge */, + E88B5CBE26FB404800DA9178 /* MineInfo */, + 9BAA5FEB277A1BBE007453F3 /* YUMIPrivacyRegardGovernancer.h */, + 9BAA5FEC277A1BBE007453F3 /* YUMIPrivacyRegardGovernancer.m */, + 9BAA5FEE277A23F4007453F3 /* YUMIPermissionsRegardGovernancer.h */, + 9BAA5FEF277A23F4007453F3 /* YUMIPermissionsRegardGovernancer.m */, + ); + path = View; + sourceTree = ""; + }; + E8E70D7226F2EB5100F03460 /* Presenter */ = { + isa = PBXGroup; + children = ( + E8E70D7826F2F16600F03460 /* YUMIManeExternalize.h */, + E8E70D7926F2F16600F03460 /* YUMIManeExternalize.m */, + E8AC721A26F4720B007D6E91 /* YUMIManeInstanllingExternalize.h */, + E8AC721B26F4720B007D6E91 /* YUMIManeInstanllingExternalize.m */, + E8098CB2282E97550090B9F0 /* YUMIManeBlackStatementExternalizer.h */, + E8098CB3282E97550090B9F0 /* YUMIManeBlackStatementExternalizer.m */, + E8AC722526F482A4007D6E91 /* YUMIManeFeedbackExternalizer.h */, + E8AC722626F482A4007D6E91 /* YUMIManeFeedbackExternalizer.m */, + E8AC723326F49939007D6E91 /* YUMIManeNotificaExternalizer.h */, + E8AC723426F49939007D6E91 /* YUMIManeNotificaExternalizer.m */, + E824544426F5934600BE8163 /* YUMIManeIntersectPwordExternalizer.h */, + E824544526F5934600BE8163 /* YUMIManeIntersectPwordExternalizer.m */, + E824544F26F5CE6E00BE8163 /* YUMIManeModifIntersectPwordExternalizer.h */, + E824545026F5CE6E00BE8163 /* YUMIManeModifIntersectPwordExternalizer.m */, + E824545A26F5EEBA00BE8163 /* YUMIManeValidationIdentityExternalizer.h */, + E824545B26F5EEBA00BE8163 /* YUMIManeValidationIdentityExternalizer.m */, + E824546226F5FF1C00BE8163 /* YUMIManeReassociationIntersectCiphercodeExternalizer.h */, + E824546326F5FF1C00BE8163 /* YUMIManeReassociationIntersectCiphercodeExternalizer.m */, + E8E20BE628169BDC0033B688 /* YUMIManeSurmountCiphercodeExternalizer.h */, + E8E20BE728169BDC0033B688 /* YUMIManeSurmountCiphercodeExternalizer.m */, + E87C54BC2823CC5B0051AA11 /* YUMIManeReassociationSurmountPwordExternalizer.h */, + E87C54BD2823CC5B0051AA11 /* YUMIManeReassociationSurmountPwordExternalizer.m */, + E8EEB8FF26FC31B6007C6EBA /* YUMIManeConsumerAbstractExternalizer.h */, + E8EEB90026FC31B6007C6EBA /* YUMIManeConsumerAbstractExternalizer.m */, + E8D34D5E28082BA5009C4835 /* YUMIManeConsumerAtomicExternalizer.h */, + E8D34D5F28082BA5009C4835 /* YUMIManeConsumerAtomicExternalizer.m */, + E873EB03280943ED0071030D /* YUMIManeConsumerAbstractPresentRamparatExternalizer.h */, + E873EB04280943ED0071030D /* YUMIManeConsumerAbstractPresentRamparatExternalizer.m */, + E8EEB90D26FC6AB8007C6EBA /* YUMIManeConsumerAbstractCompileExternalizer.h */, + E8EEB90E26FC6AB8007C6EBA /* YUMIManeConsumerAbstractCompileExternalizer.m */, + E8B846C326FDB41A00A777FE /* YUMIManeConsumerAbstractlbumExternalizer.h */, + E8B846C426FDB41A00A777FE /* YUMIManeConsumerAbstractlbumExternalizer.m */, + E8B846D426FDE01B00A777FE /* YUMIManeReindictExternalizer.h */, + E8B846D526FDE01B00A777FE /* YUMIManeReindictExternalizer.m */, + E896EF922771AAC100AD2CC1 /* YUMIManeFanaticsExternalizer.h */, + E896EF932771AAC100AD2CC1 /* YUMIManeFanaticsExternalizer.m */, + E896EF952771AAE400AD2CC1 /* YUMIManeConsiderationExternalizer.h */, + E896EF962771AAE400AD2CC1 /* YUMIManeConsiderationExternalizer.m */, + E84CBCE52843807400D43221 /* YUMIManeAssistantExternalizer.h */, + E84CBCE62843807400D43221 /* YUMIManeAssistantExternalizer.m */, + 9BD9A17727A0EC57004186FE /* YUMIManeVacationerExternalizer.h */, + 9BD9A17827A0EC57004186FE /* YUMIManeVacationerExternalizer.m */, + 9B1B729628002147003FACE9 /* YUMIManeFanaticsSquadExternalizer.h */, + 9B1B729728002147003FACE9 /* YUMIManeFanaticsSquadExternalizer.m */, + 9BD2ECD3288F838200F5CD9A /* YUMIManeTerminalImpressionExternalizer.h */, + 9BD2ECD4288F838200F5CD9A /* YUMIManeTerminalImpressionExternalizer.m */, + 9BD8D4E428911F7700AE03FF /* YUMIManeAssembleChamberStatementExternalizer.h */, + 9BD8D4E528911F7700AE03FF /* YUMIManeAssembleChamberStatementExternalizer.m */, + ); + path = Presenter; + sourceTree = ""; + }; + E8E70D7426F2EB6B00F03460 /* Protocol */ = { + isa = PBXGroup; + children = ( + E8E70D7B26F2F18900F03460 /* FBCManeCeremony.h */, + E8AC721D26F4723D007D6E91 /* FBCManeInstanllingCeremony.h */, + E8098CB6282E97AC0090B9F0 /* FBCManeBlackStatementCeremony.h */, + E8AC722826F48889007D6E91 /* FBCManeFeedbackCeremony.h */, + E8AC723626F49957007D6E91 /* FBCManeNotificaCeremony.h */, + E824544726F5940600BE8163 /* FBCManePayPwordCeremony.h */, + E824545226F5CE9C00BE8163 /* FBCManeModifPayCeremony.h */, + E824545D26F5EEFD00BE8163 /* FBCManeVerifIdentityCeremony.h */, + E824546526F5FF5100BE8163 /* FBCManeResetPayCiphercodeCeremony.h */, + E8E20BE928169E410033B688 /* FBCManeSurmountCiphercodeCeremony.h */, + E87C54BF2823CC940051AA11 /* FBCManeResetSurmountPwordCeremony.h */, + E8EEB90226FC31CE007C6EBA /* FBCManeConsumerAbstractCeremony.h */, + E8D34D6128082BD4009C4835 /* FBCManeConsumerAtomicCeremony.h */, + E873EB06280944020071030D /* FBCManeConsumerAbstractPresentWallCeremony.h */, + E8EEB91026FC6AD3007C6EBA /* FBCManeConsumerAbstractEditCeremony.h */, + E8B846C626FDB44100A777FE /* FBCManeConsumerAbstractAlbumCeremony.h */, + E8B846D726FDE16300A777FE /* FBCManeReindictCeremony.h */, + E896EF982771AB0000AD2CC1 /* FBCManeFanaticsCeremony.h */, + E896EF992771AB1800AD2CC1 /* FBCManeConsiderationCeremony.h */, + E84CBCE8284380B300D43221 /* FBCManeFriendCeremony.h */, + 9BD9A17627A0E953004186FE /* FBCManeVisitorCeremony.h */, + 9B1B7299280021E7003FACE9 /* FBCManeKellegFanaticsTeamCeremony.h */, + 9BD2ECD6288F849300F5CD9A /* FBCManeFootPrintCeremony.h */, + 9BD8D4E728911FBD00AE03FF /* FBCManeCollectChamberStatementCeremony.h */, + ); + path = Protocol; + sourceTree = ""; + }; + E8E70D7F26F2F39000F03460 /* SubViews */ = { + isa = PBXGroup; + children = ( + E87E545229AA05EA00EBE52B /* YUMITerminalImpressionNevRegard.h */, + E87E545329AA05EA00EBE52B /* YUMITerminalImpressionNevRegard.m */, + E8B846CC26FDD93D00A777FE /* Recharge */, + E88B5CC226FB429C00DA9178 /* MineInfo */, + E8E70D8126F2F51A00F03460 /* YUMIManeIntelligenceRegard.h */, + E8E70D8226F2F51A00F03460 /* YUMIManeIntelligenceRegard.m */, + E896EFB02771C93B00AD2CC1 /* YUMIManeAssistantNumberRegard.h */, + E896EFB12771C93B00AD2CC1 /* YUMIManeAssistantNumberRegard.m */, + 9B734F71288A787000CBDAA9 /* YUMIManeAccountRegard.h */, + 9B734F72288A787000CBDAA9 /* YUMIManeAccountRegard.m */, + E824544126F58FCE00BE8163 /* YUMIManeIntersectPwordIntrojectionRegard.h */, + E824544226F58FCE00BE8163 /* YUMIManeIntersectPwordIntrojectionRegard.m */, + E824544C26F5BC1A00BE8163 /* YUMIManeModifIntersectPwordRegard.h */, + E824544D26F5BC1A00BE8163 /* YUMIManeModifIntersectPwordRegard.m */, + E824545726F5E65900BE8163 /* YUMIManeValidationIdentityRegard.h */, + E824545826F5E65900BE8163 /* YUMIManeValidationIdentityRegard.m */, + 9BE01ACC28925F7D00B50299 /* YUMIManeStrangeConsumerReindictRegard.h */, + 9BE01ACD28925F7D00B50299 /* YUMIManeStrangeConsumerReindictRegard.m */, + ); + path = SubViews; + sourceTree = ""; + }; + E8E70D8026F2F3C500F03460 /* Cell */ = { + isa = PBXGroup; + children = ( + 9BD2ECD7288F865900F5CD9A /* FootPrint */, + 9B1B729E280023D5003FACE9 /* AnchorFansTeam */, + E896EFA32771AEC500AD2CC1 /* Friend */, + 9BD9A17D27A0EFB1004186FE /* Visitor */, + E8B846D026FDDBCD00A777FE /* Recharge */, + E8EEB8F826FC285B007C6EBA /* MineInfo */, + E8E70D8A26F2F5A500F03460 /* YUMIManeIntelligenceProvisionAssembletionRegardElement.h */, + E8E70D8B26F2F5A500F03460 /* YUMIManeIntelligenceProvisionAssembletionRegardElement.m */, + E8AC721426F46B06007D6E91 /* YUMIManeInstanllingTabulationRegardElement.h */, + E8AC721526F46B06007D6E91 /* YUMIManeInstanllingTabulationRegardElement.m */, + E8AC723026F49710007D6E91 /* YUMIManeNotificationTabulationRegardElement.h */, + E8AC723126F49710007D6E91 /* YUMIManeNotificationTabulationRegardElement.m */, + 9B92A33A2797E38100AD168F /* YUMIManeIntelligenceProvisionTabulationRegardElement.h */, + 9B92A33B2797E38100AD168F /* YUMIManeIntelligenceProvisionTabulationRegardElement.m */, + 9BCFB826289BAC7D0093D863 /* YUMIManeIntelligenceFunctionProvisionProgramming.h */, + 9BCFB827289BAC7D0093D863 /* YUMIManeIntelligenceFunctionProvisionProgramming.m */, + E8E20BED2816A5FC0033B688 /* YUMIManeBlackStatementTabulationRegardElement.h */, + E8E20BEE2816A5FC0033B688 /* YUMIManeBlackStatementTabulationRegardElement.m */, + E85E7BBA2A4EE70B00B6D00A /* YUMIManeTheUnionElement.h */, + E85E7BBB2A4EE70B00B6D00A /* YUMIManeTheUnionElement.m */, + E85E7BBD2A4EE7AC00B6D00A /* YUMIManeFeaturealConcentrateElement.h */, + E85E7BBE2A4EE7AC00B6D00A /* YUMIManeFeaturealConcentrateElement.m */, + E85E7BC02A4EE82300B6D00A /* YUMIManeStatementElement.h */, + E85E7BC12A4EE82300B6D00A /* YUMIManeStatementElement.m */, + ); + path = Cell; + sourceTree = ""; + }; + E8E859E628264F0000EE4857 /* BackMusic */ = { + isa = PBXGroup; + children = ( + E82E74F92828B1FC00C25EF7 /* Model */, + E8E859EA28264F4C00EE4857 /* View */, + E82E74FA2828B20F00C25EF7 /* Presenter */, + ); + path = BackMusic; + sourceTree = ""; + }; + E8E859EA28264F4C00EE4857 /* View */ = { + isa = PBXGroup; + children = ( + E88C729D2828FCB10047FB2B /* SubViews */, + E88C72962828F3410047FB2B /* Cell */, + E8E859E728264F4500EE4857 /* YUMIChamberTransferManualRegardGovernancer.h */, + E8E859E828264F4500EE4857 /* YUMIChamberTransferManualRegardGovernancer.m */, + E88C72932828F1AD0047FB2B /* YUMIChamberManualBibliothecaRegardGovernancer.h */, + E88C72942828F1AD0047FB2B /* YUMIChamberManualBibliothecaRegardGovernancer.m */, + ); + path = View; + sourceTree = ""; + }; + E8EEB8EA26FC2050007C6EBA /* SDAppearanceBrowser */ = { + isa = PBXGroup; + children = ( + E8EEB8EB26FC2050007C6EBA /* SDPhotoBrowserConfig.h */, + E8EEB8EC26FC2050007C6EBA /* SDAppearanceBrowser.m */, + E8EEB8ED26FC2050007C6EBA /* SDWaitingRegard.m */, + E8EEB8EE26FC2050007C6EBA /* SDBrowserIndicateRegard.m */, + E8EEB8EF26FC2050007C6EBA /* SDWaitingRegard.h */, + E8EEB8F026FC2050007C6EBA /* SDAppearanceBrowser.h */, + E8EEB8F126FC2050007C6EBA /* SDBrowserIndicateRegard.h */, + ); + path = SDAppearanceBrowser; + sourceTree = ""; + }; + E8EEB8F826FC285B007C6EBA /* MineInfo */ = { + isa = PBXGroup; + children = ( + E8EEB8F926FC2874007C6EBA /* YUMIManeConsumerAbstractTabulationRegardElement.h */, + E8EEB8FA26FC2874007C6EBA /* YUMIManeConsumerAbstractTabulationRegardElement.m */, + E8EEB90726FC579A007C6EBA /* YUMIManeConsumerAbstractCompileTabulationRegardElement.h */, + E8EEB90826FC579A007C6EBA /* YUMIManeConsumerAbstractCompileTabulationRegardElement.m */, + E8B846C026FD82DC00A777FE /* YUMIManeConsumerAbstractAlbumAssembletionRegardElement.h */, + E8B846C126FD82DC00A777FE /* YUMIManeConsumerAbstractAlbumAssembletionRegardElement.m */, + E8D34D4B28080351009C4835 /* YUMIManeAtomicCollectiveTabulationRegardElement.h */, + E8D34D4C28080351009C4835 /* YUMIManeAtomicCollectiveTabulationRegardElement.m */, + E8D34D4E28080362009C4835 /* YUMIManeAtomicPresentTabulationRegardElement.h */, + E8D34D4F28080362009C4835 /* YUMIManeAtomicPresentTabulationRegardElement.m */, + E8D34D5428080393009C4835 /* YUMIManeAtomicPresentAssembletionRegardElement.h */, + E8D34D5528080393009C4835 /* YUMIManeAtomicPresentAssembletionRegardElement.m */, + E8D34D6528084E88009C4835 /* YUMIManeConsumerAbstractPresentRamparatAssembletionRegardElement.h */, + E8D34D6628084E88009C4835 /* YUMIManeConsumerAbstractPresentRamparatAssembletionRegardElement.m */, + E873EB00280922720071030D /* YUMIManeConsumerAbstractDispossessAssembletionRegardElement.h */, + E873EB01280922720071030D /* YUMIManeConsumerAbstractDispossessAssembletionRegardElement.m */, + ); + path = MineInfo; + sourceTree = ""; + }; + E8F61356291E269700E12650 /* Safe */ = { + isa = PBXGroup; + children = ( + E8F6135A291E26BD00E12650 /* NSMutableDictionary+Saft.h */, + E8F6135B291E26BD00E12650 /* NSMutableDictionary+Saft.m */, + E8F6135D291E274E00E12650 /* NSArray+Safe.h */, + E8F6135E291E274E00E12650 /* NSArray+Safe.m */, + ); + path = Safe; + sourceTree = ""; + }; + E8FE3C292994D0CC0006C6C7 /* SwitchView */ = { + isa = PBXGroup; + children = ( + E8FE3C2A2994D0E80006C6C7 /* YUMISwitch.h */, + E8FE3C2B2994D0E80006C6C7 /* YUMISwitch.m */, + ); + path = SwitchView; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 189DD52826DE255300AB55B1 /* YuMi */ = { + isa = PBXNativeTarget; + buildConfigurationList = 189DD54226DE255600AB55B1 /* Build configuration list for PBXNativeTarget "YuMi" */; + buildPhases = ( + 1865B406E358C680125F108D /* [CP] Check Pods Manifest.lock */, + 189DD52526DE255300AB55B1 /* Sources */, + 189DD52626DE255300AB55B1 /* Frameworks */, + 189DD52726DE255300AB55B1 /* Resources */, + 8311720C3643AC2030B96510 /* [CP] Embed Pods Frameworks */, + 4C25F8F9E2D1F501119C383D /* [CP] Copy Pods Resources */, + 18E7B21326E8CD220064BC9B /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = YuMi; + productName = YuMi; + productReference = 189DD52926DE255300AB55B1 /* YuMi.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 189DD52126DE255300AB55B1 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 1240; + TargetAttributes = { + 189DD52826DE255300AB55B1 = { + CreatedOnToolsVersion = 12.4; + }; + }; + }; + buildConfigurationList = 189DD52426DE255300AB55B1 /* Build configuration list for PBXProject "YuMi" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + "zh-Hant", + ); + mainGroup = 189DD52026DE255300AB55B1; + productRefGroup = 189DD52A26DE255300AB55B1 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 189DD52826DE255300AB55B1 /* YuMi */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 189DD52726DE255300AB55B1 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + E80EC88928ACD84000D133C5 /* emoj_s_normal@2x.png in Resources */, + E80EC84628ACD84000D133C5 /* emoji_98@2x.png in Resources */, + E80EC84728ACD84000D133C5 /* emoji_104@2x.png in Resources */, + E80EC83328ACD84000D133C5 /* emoji_136@2x.png in Resources */, + E80EC82628ACD84000D133C5 /* emoji_10@2x.png in Resources */, + E80EC82C28ACD84000D133C5 /* emoji_59@2x.png in Resources */, + E80EC81A28ACD84000D133C5 /* emoji_161@2x.png in Resources */, + E80EC85228ACD84000D133C5 /* emoji_114@2x.png in Resources */, + E80EC81F28ACD84000D133C5 /* emoji_45@2x.png in Resources */, + E80EC85A28ACD84000D133C5 /* emoji_14@2x.png in Resources */, + E80EC8B828ACD84100D133C5 /* emoji_85@2x.png in Resources */, + E80EC82828ACD84000D133C5 /* emoji_55@2x.png in Resources */, + E84A2EAD2A52F20900D6AF8A /* Launch Screen.storyboard in Resources */, + E8729EEF2A3B34D30076D80A /* images in Resources */, + E80EC86728ACD84000D133C5 /* emoji_11@2x.png in Resources */, + E80EC88B28ACD84000D133C5 /* emoji_58@2x.png in Resources */, + E80EC85D28ACD84000D133C5 /* emoji_06@2x.png in Resources */, + E80EC83428ACD84000D133C5 /* emoji_128@2x.png in Resources */, + E80EC81C28ACD84000D133C5 /* emoji_92@2x.png in Resources */, + E80EC81D28ACD84000D133C5 /* emoji_110@2x.png in Resources */, + E80EC8B128ACD84100D133C5 /* emoji_123@2x.png in Resources */, + E80EC89B28ACD84000D133C5 /* emoji_33@2x.png in Resources */, + E80EC85C28ACD84000D133C5 /* emoji_77@2x.png in Resources */, + E80EC85528ACD84000D133C5 /* emoji_118@2x.png in Resources */, + E80EC8B728ACD84100D133C5 /* emoji_119@2x.png in Resources */, + E80EC86228ACD84000D133C5 /* emoji_22@2x.png in Resources */, + E80EC82528ACD84000D133C5 /* emoji_61@2x.png in Resources */, + E80EC81528ACD84000D133C5 /* emoji_145@2x.png in Resources */, + E80EC85428ACD84000D133C5 /* emoji_165@2x.png in Resources */, + E80EC88728ACD84000D133C5 /* emoji_29@2x.png in Resources */, + E80EC83728ACD84000D133C5 /* emoji_112@2x.png in Resources */, + E80EC88C28ACD84000D133C5 /* emoji_46@2x.png in Resources */, + E80EC86028ACD84000D133C5 /* emoji_30@2x.png in Resources */, + E80EC84928ACD84000D133C5 /* emoji_116@2x.png in Resources */, + E80EC89328ACD84000D133C5 /* emoji_166@2x.png in Resources */, + E80EC84228ACD84000D133C5 /* emoji_43@2x.png in Resources */, + E80EC83828ACD84000D133C5 /* emoji_90@2x.png in Resources */, + E80EC86F28ACD84000D133C5 /* emoji_103@2x.png in Resources */, + E80EC8BF28ACDB2A00D133C5 /* Assets.xcassets in Resources */, + E80EC88028ACD84000D133C5 /* emoji_146@2x.png in Resources */, + E80EC82F28ACD84000D133C5 /* emoji_71@2x.png in Resources */, + E80EC8A428ACD84100D133C5 /* emoji_31@2x.png in Resources */, + E80EC85028ACD84000D133C5 /* emoji_96@2x.png in Resources */, + E80EC85E28ACD84000D133C5 /* emoji_18@2x.png in Resources */, + E80EC81428ACD84000D133C5 /* emoji_138@2x.png in Resources */, + E80EC87228ACD84000D133C5 /* emoji_111@2x.png in Resources */, + E80EC8A728ACD84100D133C5 /* emoji_del_normal@2x.png in Resources */, + E80EC88628ACD84000D133C5 /* emoji_37@2x.png in Resources */, + E80EC86C28ACD84000D133C5 /* emoji_56@2x.png in Resources */, + E80EC85128ACD84000D133C5 /* emoji_88@2x.png in Resources */, + E80EC83E28ACD84000D133C5 /* emoji_79@2x.png in Resources */, + E80EC83228ACD84000D133C5 /* emoji_00@2x.png in Resources */, + E80EC89C28ACD84000D133C5 /* emoji_50@2x.png in Resources */, + E80EC87A28ACD84000D133C5 /* emoji_113@2x.png in Resources */, + E80EC88A28ACD84000D133C5 /* emoji_25@2x.png in Resources */, + E80EC87828ACD84000D133C5 /* emoji_135@2x.png in Resources */, + E80EC8AD28ACD84100D133C5 /* emoji_07@2x.png in Resources */, + E80EC8B528ACD84100D133C5 /* emoji_97@2x.png in Resources */, + E80EC82428ACD84000D133C5 /* emoji_02@2x.png in Resources */, + E80EC87428ACD84000D133C5 /* emoji_127@2x.png in Resources */, + E80E09A92A40B70100CD2BE7 /* Localizable.strings in Resources */, + E80EC84828ACD84000D133C5 /* emoji_86@2x.png in Resources */, + E80EC87728ACD84000D133C5 /* emoji_148@2x.png in Resources */, + E80EC81928ACD84000D133C5 /* emoji_80@2x.png in Resources */, + E80EC8B328ACD84100D133C5 /* emoji_115@2x.png in Resources */, + E80EC8A828ACD84100D133C5 /* emoji_76@2x.png in Resources */, + E80EC88E28ACD84000D133C5 /* emoji_142@2x.png in Resources */, + E80EC83D28ACD84000D133C5 /* emoji_04@2x.png in Resources */, + E80EC81728ACD84000D133C5 /* emoji_134@2x.png in Resources */, + E8729EF02A3B34D30076D80A /* js in Resources */, + E80EC88328ACD84000D133C5 /* emoji_70@2x.png in Resources */, + E80EC89528ACD84000D133C5 /* emoji_99@2x.png in Resources */, + E84A2EAF2A52F27000D6AF8A /* 1242.png in Resources */, + E80EC89128ACD84000D133C5 /* emoji_133@2x.png in Resources */, + E80EC87F28ACD84000D133C5 /* emoji_137@2x.png in Resources */, + E80EC8B028ACD84100D133C5 /* emoji_152@2x.png in Resources */, + E80EC85728ACD84000D133C5 /* emoji_130@2x.png in Resources */, + E80EC85F28ACD84000D133C5 /* emoji_65@2x.png in Resources */, + E80EC84028ACD84000D133C5 /* emoji_75@2x.png in Resources */, + E80EC88D28ACD84000D133C5 /* emoji_del_pressed@2x.png in Resources */, + E80EC83A28ACD84000D133C5 /* emoji_82@2x.png in Resources */, + E80EC8B428ACD84100D133C5 /* emoji_89@2x.png in Resources */, + E80EC89F28ACD84000D133C5 /* emoji_66@2x.png in Resources */, + E80EC87128ACD84000D133C5 /* emoji_160@2x.png in Resources */, + E80EC86D28ACD84000D133C5 /* emoji_35@2x.png in Resources */, + E80EC86528ACD84000D133C5 /* emoji_03@2x.png in Resources */, + E80EC85B28ACD84000D133C5 /* emoji_69@2x.png in Resources */, + E80EC8A128ACD84100D133C5 /* emoji_74@2x.png in Resources */, + E80EC8AF28ACD84100D133C5 /* emoj_s_pressed@2x.png in Resources */, + E80EC84528ACD84000D133C5 /* emoji_32@2x.png in Resources */, + E80E09B02A41573700CD2BE7 /* GoogleService-Info.plist in Resources */, + E80EC86928ACD84000D133C5 /* emoji_44@2x.png in Resources */, + E80EC83528ACD84000D133C5 /* emoji_124@2x.png in Resources */, + E80EC8A928ACD84100D133C5 /* emoji_68@2x.png in Resources */, + E80EC89D28ACD84000D133C5 /* emoji_78@2x.png in Resources */, + E80EC8AC28ACD84100D133C5 /* emoji_19@2x.png in Resources */, + E80EC84428ACD84000D133C5 /* emoji_51@2x.png in Resources */, + E80EC84D28ACD84000D133C5 /* emoji_143@2x.png in Resources */, + E80EC81B28ACD84000D133C5 /* emoji_102@2x.png in Resources */, + E80EC89028ACD84000D133C5 /* emoji_150@2x.png in Resources */, + E80EC84128ACD84000D133C5 /* emoji_16@2x.png in Resources */, + E80EC83C28ACD84000D133C5 /* emoji_67@2x.png in Resources */, + E80EC8B928ACD84100D133C5 /* emoji_164@2x.png in Resources */, + E80EC87028ACD84000D133C5 /* emoji_81@2x.png in Resources */, + E80EC8AA28ACD84100D133C5 /* emoji_15@2x.png in Resources */, + E80EC85628ACD84000D133C5 /* emoji_106@2x.png in Resources */, + E80EC89728ACD84000D133C5 /* emoji_95@2x.png in Resources */, + E80EC88828ACD84000D133C5 /* emoji_54@2x.png in Resources */, + E80EC8A528ACD84100D133C5 /* emoji_40@2x.png in Resources */, + E80EC83F28ACD84000D133C5 /* emoji_08@2x.png in Resources */, + E80EC84A28ACD84000D133C5 /* emoji_94@2x.png in Resources */, + E80EC84F28ACD84000D133C5 /* emoji_151@2x.png in Resources */, + E80EC88428ACD84000D133C5 /* emoji_01@2x.png in Resources */, + E80EC8B628ACD84100D133C5 /* emoji_107@2x.png in Resources */, + E80EC83B28ACD84000D133C5 /* emoji_163@2x.png in Resources */, + E80EC87328ACD84000D133C5 /* emoji_93@2x.png in Resources */, + E80EC87D28ACD84000D133C5 /* emoji_101@2x.png in Resources */, + E80EC85328ACD84000D133C5 /* emoji_84@2x.png in Resources */, + E80EC86428ACD84000D133C5 /* emoji_60@2x.png in Resources */, + E80EC89928ACD84000D133C5 /* emoji_21@2x.png in Resources */, + E80EC8BA28ACD84100D133C5 /* emoji.plist in Resources */, + E8729EEC2A3B34D30076D80A /* index.html in Resources */, + E80EC82328ACD84000D133C5 /* emoji_57@2x.png in Resources */, + E80EC87E28ACD84000D133C5 /* emoji_129@2x.png in Resources */, + E80EC86828ACD84000D133C5 /* emoji_39@2x.png in Resources */, + E80EC8B228ACD84100D133C5 /* emoji_140@2x.png in Resources */, + 9B0997A127F19D8A00EB8F14 /* README.md in Resources */, + E80EC89828ACD84000D133C5 /* emoji_117@2x.png in Resources */, + E80EC8A228ACD84100D133C5 /* emoji_09@2x.png in Resources */, + E896A9942A49F8A20010FE65 /* login_vapbg.mp4 in Resources */, + E80EC89228ACD84000D133C5 /* emoji_87@2x.png in Resources */, + E80EC81828ACD84000D133C5 /* emoji_149@2x.png in Resources */, + E80EC83928ACD84000D133C5 /* emoji_100@2x.png in Resources */, + E80EC83028ACD84000D133C5 /* emoji_12@2x.png in Resources */, + E80EC8AE28ACD84100D133C5 /* emoji_131@2x.png in Resources */, + E80EC86128ACD84000D133C5 /* emoji_53@2x.png in Resources */, + E80EC89428ACD84000D133C5 /* emoji_105@2x.png in Resources */, + E80EC82A28ACD84000D133C5 /* emoji_36@2x.png in Resources */, + 189DD53926DE255600AB55B1 /* Assets.xcassets in Resources */, + E80EC8A028ACD84100D133C5 /* emoji_17@2x.png in Resources */, + E80EC85828ACD84000D133C5 /* emoji_141@2x.png in Resources */, + E80EC81E28ACD84000D133C5 /* emoji_26@2x.png in Resources */, + E80EC89628ACD84000D133C5 /* emoji_109@2x.png in Resources */, + E80EC82B28ACD84000D133C5 /* emoji_47@2x.png in Resources */, + E80EC86628ACD84000D133C5 /* emoji_72@2x.png in Resources */, + E80EC83128ACD84000D133C5 /* emoji_63@2x.png in Resources */, + E80EC89E28ACD84000D133C5 /* emoji_05@2x.png in Resources */, + E80EC89A28ACD84000D133C5 /* emoji_42@2x.png in Resources */, + E80EC87528ACD84000D133C5 /* emoji_144@2x.png in Resources */, + E80EC81628ACD84000D133C5 /* emoji_126@2x.png in Resources */, + E80EC8A328ACD84100D133C5 /* emoji_52@2x.png in Resources */, + E80EC84E28ACD84000D133C5 /* emoji_132@2x.png in Resources */, + E8729EED2A3B34D30076D80A /* upload.html in Resources */, + E80EC82928ACD84000D133C5 /* emoji_28@2x.png in Resources */, + E80EC82028ACD84000D133C5 /* emoji_38@2x.png in Resources */, + E8729EEE2A3B34D30076D80A /* css in Resources */, + E80EC8A628ACD84100D133C5 /* emoji_23@2x.png in Resources */, + E80EC84328ACD84000D133C5 /* emoji_20@2x.png in Resources */, + E80EC88528ACD84000D133C5 /* emoji_62@2x.png in Resources */, + E80EC84B28ACD84000D133C5 /* emoji_108@2x.png in Resources */, + E80EC82D28ACD84000D133C5 /* emoji_24@2x.png in Resources */, + E80EC82128ACD84000D133C5 /* emoji_49@2x.png in Resources */, + E80EC8AB28ACD84100D133C5 /* emoji_64@2x.png in Resources */, + E80EC88128ACD84000D133C5 /* emoji_125@2x.png in Resources */, + E80EC87B28ACD84000D133C5 /* emoji_83@2x.png in Resources */, + E80EC82E28ACD84000D133C5 /* emoji.xml in Resources */, + E80EC87928ACD84000D133C5 /* emoji_91@2x.png in Resources */, + E80EC84C28ACD84000D133C5 /* emoji_120@2x.png in Resources */, + E80EC83628ACD84000D133C5 /* emoji_147@2x.png in Resources */, + E80EC86B28ACD84000D133C5 /* emoji_200@2x.png in Resources */, + E80EC88F28ACD84000D133C5 /* emoji_121@2x.png in Resources */, + E80EC87C28ACD84000D133C5 /* emoji_162@2x.png in Resources */, + E80EC82728ACD84000D133C5 /* emoji_73@2x.png in Resources */, + E80EC85928ACD84000D133C5 /* emoji_122@2x.png in Resources */, + E80EC86E28ACD84000D133C5 /* emoji_48@2x.png in Resources */, + E80EC86A28ACD84000D133C5 /* emoji_27@2x.png in Resources */, + E80EC88228ACD84000D133C5 /* emoji_13@2x.png in Resources */, + E80EC82228ACD84000D133C5 /* emoji_34@2x.png in Resources */, + E80EC87628ACD84000D133C5 /* emoji_139@2x.png in Resources */, + E80EC86328ACD84000D133C5 /* emoji_41@2x.png in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 1865B406E358C680125F108D /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-YuMi-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + 4C25F8F9E2D1F501119C383D /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-YuMi/Pods-YuMi-resources-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Copy Pods Resources"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-YuMi/Pods-YuMi-resources-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-YuMi/Pods-YuMi-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; + 8311720C3643AC2030B96510 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-YuMi/Pods-YuMi-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-YuMi/Pods-YuMi-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-YuMi/Pods-YuMi-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 189DD52526DE255300AB55B1 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 9BE01ADA289296B500B50299 /* YUMIPretendUpwardsProcurementExternalizer.m in Sources */, + E8751E6628A6465A0056EF44 /* YUMIMarchingRateMetroRegard.m in Sources */, + 9B2EA7C32804052E00ED17BF /* KellegCombatMiecreoscoopeRegard.m in Sources */, + E8F65C1F286998C9009BB5B9 /* YUMIManeParaticipationRegardGovernancer.m in Sources */, + E85E7BAB2A4EC99300B6D00A /* YUMIManeChooseGivePresentRegard.m in Sources */, + E85E7B3D2A4EB0D300B6D00A /* YUMIUnionRevenueSpecificAssembletionRegardElement.m in Sources */, + 181D7F1B2726CE2A00B7C059 /* PhaseRegard.m in Sources */, + 18EE3FF12750D2AD00A452BF /* NEMCIntratemporalUtils.m in Sources */, + E84BF7DA277C72AC00EF8877 /* YUMIChamberRoleTabulationRegardElement.m in Sources */, + E839532D276A030F00CF2F24 /* YUMIManePretendUpwardsStatementRegardGovernancer.m in Sources */, + E821077B2987D4AB00DE7040 /* CommunicationDiscoveryStrangeBewelcometoMatrix.m in Sources */, + E85E7BA32A4EC99300B6D00A /* YUMIManeGiveDiamondSpecificsVC.m in Sources */, + E8B846D826FDE17300A777FE /* FBCManeReindictCeremony.h in Sources */, + E88C72A6282921D60047FB2B /* YUMIChamberBackManualDisporterRegard.m in Sources */, + E84CBCE72843807500D43221 /* YUMIManeAssistantExternalizer.m in Sources */, + 142721A829A75F6F00C7C423 /* BWGMKJYlumbes.m in Sources */, + E82D5C7D276B343300858D6D /* YYAnimatedImageView+ImageShow.m in Sources */, + E80E09B32A42071D00CD2BE7 /* YUMIChamberSatelliteKitchenOriflammeRegard.m in Sources */, + E8B846C726FDB45000A777FE /* FBCManeConsumerAbstractAlbumCeremony.h in Sources */, + 9B1EF3D527E8294B00554295 /* YUMIManePretendDispossessAssembletionRegardElement.m in Sources */, + E890BC07273CF1800007C46B /* YUMIPresentComputationAssembletionRegardElement.m in Sources */, + E88C72A02828FCD40047FB2B /* YUMIManualBibliothecaDisportRegard.m in Sources */, + E823E38E290BE8BD00EADD86 /* DesirePresentAbstractRefurbishMatrix.m in Sources */, + E80EC80A28ACD84000D133C5 /* MHTSpiritDirectorateRegard.m in Sources */, + E8998D962859DD6F00C68558 /* UIView+Corner.m in Sources */, + E8EEB91126FC6AE2007C6EBA /* FBCManeConsumerAbstractEditCeremony.h in Sources */, + E87E625D2A3F5622002F68C9 /* YUMIStrangeResidenceRegardGovernancer.m in Sources */, + E85E7B202A4EB0D300B6D00A /* YUMIManeUnionRevenueSpecificRegardGovernancer.m in Sources */, + E84A2EA82A5288FD00D6AF8A /* YUMIGoldSpecificsChooseChamberElement.m in Sources */, + E8A353A328FE90F60014A784 /* YUMIDesirePresentCreateRegardGovernancer.m in Sources */, + 180116FC279E8CCE00F2CBC0 /* NVDate.m in Sources */, + E801275827E347FD00BAC3F2 /* ChamberCombatReflectionMatrix.m in Sources */, + E8E0DAE0285C20E500566A2F /* CommunicationSatisfactionDiscoveryStrangeBewelcometoRegard.m in Sources */, + E8A3540128FEAC5E0014A784 /* YUMIDesirePresentTabulationRegardElement.m in Sources */, + E8EEB90326FC31DC007C6EBA /* FBCManeConsumerAbstractCeremony.h in Sources */, + E8232603274E4AA0003A3332 /* ThemeColor+UserCard.m in Sources */, + E87A24F1272935920086A794 /* YUMICommunicationRemoteExtMatrix.m in Sources */, + E8D34D5028080362009C4835 /* YUMIManeAtomicPresentTabulationRegardElement.m in Sources */, + E87C54BE2823CC5B0051AA11 /* YUMIManeReassociationSurmountPwordExternalizer.m in Sources */, + E85E7B322A4EB0D300B6D00A /* YUMIUnionKellegRevenueDivisionRegard.m in Sources */, + 142721AC29A75F6F00C7C423 /* BWGLumber.m in Sources */, + E83953222769F33B00CF2F24 /* YUMIChamberFunctionAccommodatedRegard.m in Sources */, + E87C0AA027D9DE6400CB2241 /* ChamberAcceptDischargeAbstractMatrix.m in Sources */, + 1464C5F629A4CA8C00AF7C94 /* YUMIIAPReindictAssembletionRegardElement.m in Sources */, + E8751E6328A646400056EF44 /* YUMIMarchingRateRegard.m in Sources */, + 9BD9A18027A0EFC7004186FE /* YUMIManeVacationerTabulationRegardElement.m in Sources */, + E85E7B112A4EB0D200B6D00A /* UnionFeatureRevenueReflectionMatrix.m in Sources */, + 9BD2ECD2288F833B00F5CD9A /* YUMIManeTerminalImpressionMatrix.m in Sources */, + E824546626F5FF6000BE8163 /* FBCManeResetPayCiphercodeCeremony.h in Sources */, + E89DA66427005932008483C1 /* YUMIIAPFacilitater.m in Sources */, + E824545E26F5EF2200BE8163 /* FBCManeVerifIdentityCeremony.h in Sources */, + E824545326F5CEAD00BE8163 /* FBCManeModifPayCeremony.h in Sources */, + E84BF7D7277C6E2100EF8877 /* YUMIChamberRoleRegardGovernancer.m in Sources */, + E85E7B242A4EB0D300B6D00A /* YUMIManeUnionSensationalManagementSetRegardGovernancer.m in Sources */, + E87DF4C22A42C900009C1185 /* YUMINoteRegard.m in Sources */, + E8AB631328ADDCF20023B0D2 /* YUMISeparationsMotifIntelligencerRegard.m in Sources */, + 9B86D886281942D200494FCD /* SocialMiecreoscoopeRegard.m in Sources */, + E8664ED027E42238000171BA /* YUMIChamberCombatIntratemporalPickerRegard.m in Sources */, + E85E7B2B2A4EB0D300B6D00A /* YUMIStrangeUnionIntratemporalPickRegard.m in Sources */, + E824544826F5945300BE8163 /* FBCManePayPwordCeremony.h in Sources */, + E8AB633628AE54A40023B0D2 /* YUMIMarchingCaptureAssembletionRegardElement.m in Sources */, + E85E7B4E2A4EB0D300B6D00A /* YUMIManeUnionSetNameRegardGovernancer.m in Sources */, + E824543A26F5880E00BE8163 /* FBCSurmountVerifBindPhoneCeremony.h in Sources */, + E821077E2987D67100DE7040 /* CommunicationVenturePrecautiousMatrix.m in Sources */, + E818DD222A48977F00F163F7 /* YUMISurmountAreaTabulationRegardElement.m in Sources */, + E81060F72987C8A700B772F0 /* CommunicationApplicationParaticipationMatrix.m in Sources */, + E8E20BE2281695800033B688 /* YUMIManeSurmountCiphercodeRegardGovernancer.m in Sources */, + E84A2EA22A52883000D6AF8A /* YUMIRevenueReflectionGoldSpecificsIntratemporalRegard.m in Sources */, + E86E79D628A4EA0C006DAF48 /* InterlocutionVentureCache.m in Sources */, + E824543826F5820A00BE8163 /* YUMISurmountValidationDilemmaMobileExternalizer.m in Sources */, + E8B846BF26FD827900A777FE /* YUMIManeConsumerAbstractAlbumRegardGovernancer.m in Sources */, + E84CBCE128436D3C00D43221 /* YUMIManeContactRegardGovernancer.m in Sources */, + E8D48253278D8228003C1D08 /* ThroughoutChamberCombatFasciaboardMatrix.m in Sources */, + E824545C26F5EEBA00BE8163 /* YUMIManeValidationIdentityExternalizer.m in Sources */, + 9B9BBF83288FBFB3004E2E74 /* YUMIStrangeConsumerChamberPresentRegard.m in Sources */, + E838369A298A59C100112E1C /* CommunicationTipsRegard.m in Sources */, + E8899C852785CC69007944BE /* YUMIChamberEngagementBrightnessRegard.m in Sources */, + E85E7B1B2A4EB0D200B6D00A /* YUMIManeMainRevenueStatsticsRegardGovernancer.m in Sources */, + E84BF7D4277C383700EF8877 /* YUMIChamberInstanllingIntrojectionRegard.m in Sources */, + E8AC723726F49982007D6E91 /* FBCManeNotificaCeremony.h in Sources */, + E896EFAC2771AEFE00AD2CC1 /* YUMIManeAssistantTabulationRegardElement.m in Sources */, + E8664ED327E4258A000171BA /* ChamberCombatIntratemporalProvisionMatrix.m in Sources */, + E8412FA22779BE8F006E1101 /* YUMIChamberInstanllingRegardGovernancer.m in Sources */, + E89D60BD271D647A001F8895 /* YUMIChamberExternalizer.m in Sources */, + E8751E5C28A62A530056EF44 /* YUMIMarchingRegardGovernancer.m in Sources */, + 9B7D904D287BC5E20033A45E /* KellegChamberScrollRegard.m in Sources */, + E80DE4072775665000BE5BCB /* YUMIThresholdReindictAssembletionRegardElement.m in Sources */, + E8899C822785A694007944BE /* EngagementAbstractMatrix.m in Sources */, + 9BB89DC327FE7F3A00586A83 /* XCombatellegFanaticsRelationMatrix.m in Sources */, + E8AC723226F49710007D6E91 /* YUMIManeNotificationTabulationRegardElement.m in Sources */, + E87E62592A3F560B002F68C9 /* YUMIResidenceParatiesRegardGovernancer.m in Sources */, + E8AC722926F488DA007D6E91 /* FBCManeFeedbackCeremony.h in Sources */, + E8A3539128FE5F0F0014A784 /* DesirePresentAbstractMatrix.m in Sources */, + E85E7B3C2A4EB0D300B6D00A /* YUMIUnionSensationalManagementChamberAssembletionRegardElement.m in Sources */, + E85E7B2A2A4EB0D300B6D00A /* YUMIUnionIntratemporalMonthPickerRegard.m in Sources */, + E87E62782A3F5907002F68C9 /* YUMIStrangeResidenceParatiesTabulationRegardElement.m in Sources */, + E8A3539B28FE840A0014A784 /* YUMIDesirePresentRegardGovernancer.m in Sources */, + E8950183282CAC6A007E459A /* YUMISeparationsAppearanceRegard.m in Sources */, + E8AC721E26F472BF007D6E91 /* FBCManeInstanllingCeremony.h in Sources */, + E8F63CB4298B563D00B338BA /* Api+SayHello.m in Sources */, + E81E09C9290F71BF00A1F410 /* YUMIAdvertiseRegard.m in Sources */, + 9BC5C91F277C902B007C8719 /* YUMIReleaseWirelessRegard.m in Sources */, + E84843AF27F59E7E0050D365 /* YUMIChamberCombatConsequentRegard.m in Sources */, + E83DB47A27462C4500D8CBD1 /* YUMIPresentBigCaptureMatrix.m in Sources */, + E86A16C52856DBEC004228B8 /* DiscoveryStrangeBewelcometoStatementMatrix.m in Sources */, + E81366F826F0C12A0076364C /* SurmountFullAbstractCeremony.h in Sources */, + 9BBC028E2786FA060007C24B /* MagnificentSolitaireMatrix.m in Sources */, + 9BCB99A628F582EC00466D64 /* YUMIManeAssembleChamberCompileElement.m in Sources */, + E8E70D7E26F2F19D00F03460 /* Api+Mine.m in Sources */, + 142721AE29A75F6F00C7C423 /* BWGAccuratelumbes.m in Sources */, + E85E7B3B2A4EB0D300B6D00A /* YUMIUnionHuntforSensationalManagementTabulationRegardElement.m in Sources */, + E8751E6E28A64F990056EF44 /* YUMIMarchingDispossessTabulationRegardElement.m in Sources */, + E87E625A2A3F560B002F68C9 /* YUMIResidenceEncourageRegardGovernancer.m in Sources */, + E8950189282CFFB1007E459A /* YUMISeparationsProgrammingDisposition.m in Sources */, + E81061032987CFCE00B772F0 /* CommunicationCommunicationSolitaireMatrix.m in Sources */, + 9BD9A18727A120FD004186FE /* YUMIManeVacationerUnReadMatrix.m in Sources */, + E85E7BAD2A4EC99300B6D00A /* YUMIManeGiveDiamondSpecificsElement.m in Sources */, + E824543D26F58C3A00BE8163 /* YUMISurmountDilemmaSuccessRegard.m in Sources */, + E85E7B282A4EB0D300B6D00A /* YUMICollectiveParrotRegard.m in Sources */, + 9BE01AF72893E7F500B50299 /* YUMIStrangeConsumerReindictAssembletionRegardElement.m in Sources */, + E81125C7296E596D000D9804 /* MHTIntrojectionAppearancetElement.m in Sources */, + E8EEB8F726FC2673007C6EBA /* ConsumerAppearance.m in Sources */, + E81061002987CDCC00B772F0 /* CommunicationTweetMatrix.m in Sources */, + E87DF4CC2A42C960009C1185 /* ResidenceOriflammeAbstractMatrix.m in Sources */, + E8664EDF27E45EC7000171BA /* YUMIChamberCombatReflectionExternalizer.m in Sources */, + E81C27A226EF23490031E639 /* YUMINNNN.h in Sources */, + E80E900C27E0358900434B90 /* YUMIChamberMotifPrecautiousRegard.m in Sources */, + 9BDA3E7A27FD43EF00517FE6 /* XCombatellegFanaticsSquadEntranceRegard.m in Sources */, + E81C279826EB3AC40031E639 /* SurmountForgetCiphercodeCeremony.h in Sources */, + 9BAC92F228E6A05600147DD8 /* YUMIChamberImportpriseDisportMatrix.m in Sources */, + 9BD8D4E328911E9900AE03FF /* YUMIManeAssembleChamberStatementRegardGovernancer.m in Sources */, + E80E09A22A40B5DD00CD2BE7 /* YUMIConfectioneryTimberRegardGovernancer.m in Sources */, + 9B2EA7C628041EFC00ED17BF /* XCombatellegPkFasciaboardRegard.m in Sources */, + E84150BB27747BAF00A7F548 /* YUMIThresholdReindictExternalizer.m in Sources */, + E8A88D2D27E81E8700CA8837 /* ChamberCombatChooseConsumerMatrix.m in Sources */, + E82325F9274E2E42003A3332 /* Api+UserCard.m in Sources */, + E8AB632F28AE19DE0023B0D2 /* YUMISeparationManeExternalizer.m in Sources */, + E85E7B042A4EB0D200B6D00A /* YUMIUnionRevenueSpecificExternalizer.m in Sources */, + 9BD9A17C27A0EE24004186FE /* YUMIManeVacationerRegardGovernancer.m in Sources */, + E82109B026F1D83500FC3319 /* SurmountDilemmaMobileExternalize.m in Sources */, + E81C1B1F27705F7A0020D1E4 /* YUMIScheduleLoudspeakerRegardGovernancer.m in Sources */, + E8B825C726EA0D9A009E8E9F /* SurmountVerifCodeCeremony.h in Sources */, + 14A6034C29A35EE600D2A6A5 /* YUMIManeProvisionTabulationRegardElement.m in Sources */, + 9BAC92F528E6E63000147DD8 /* YUMIChamberInsideOperationElement.m in Sources */, + 9BE570BC28F65B7200D491A5 /* YUMIManeAssembleChamberElement.m in Sources */, + E86A16C22856D635004228B8 /* YUMIInterlocutionDiscoveryStrangeBewelcometoTabulationRegardElement.m in Sources */, + E824544E26F5BC1A00BE8163 /* YUMIManeModifIntersectPwordRegard.m in Sources */, + E86E79CD28A4E045006DAF48 /* CommunicationSatisfactionVenturePrecautiousRegard.m in Sources */, + E855515B280559FE005F293F /* NSDate+DateUtils.m in Sources */, + E8664EE327E47711000171BA /* YUMIChamberCombatReflectionNickRegard.m in Sources */, + E8C1CD7327D8A16500376F83 /* YUMIChamberAcceptTool.m in Sources */, + E81DCCCD282B63B40039E5C5 /* YUMISeparationsRegardGovernancer.m in Sources */, + E86507EB281A88A9006951B0 /* CommunicationSatisfactionCommunicationSolitaireRegard.m in Sources */, + E8B825CA26EA1231009E8E9F /* SurmountValidationCodeRegardGovernancer.m in Sources */, + 189DD76226E60DDC00AB55B1 /* Api+Login.m in Sources */, + E8412FA62779BED1006E1101 /* YUMIChamberInstanllingTabulationRegardElement.m in Sources */, + 9B7D80502753AA9D003DAC0C /* UITableView+NIMScrollToBottom.m in Sources */, + E8AFF7E3298CA1E500FBDE32 /* InterlocutionSpeakHalloComputationMatrix.m in Sources */, + E8998D7A2859784200C68558 /* YUMISVGADisporter.m in Sources */, + 9BD9A18427A0F128004186FE /* YUMIManeVacationerProvisionMatrix.m in Sources */, + E852D73E28631C18001465ED /* YUMISeparationsJudgementTabulationRegardElement.m in Sources */, + E85E7BA22A4EC99300B6D00A /* YUMIManeGiveDiamondHuntforMatrix.m in Sources */, + 1427219829A75F6F00C7C423 /* HyperTextServer.m in Sources */, + E80B0712280D0A6700A79F63 /* FanaticsAbstractMatrix.m in Sources */, + E87E62682A3F571D002F68C9 /* YUMIResidenceAccommodatedExternalizer.m in Sources */, + E8EEB8F326FC2050007C6EBA /* SDWaitingRegard.m in Sources */, + E85E7B2F2A4EB0D300B6D00A /* YUMIGoldRevenueDivisionRegard.m in Sources */, + E8DEC9A12764A5D20078CB70 /* YUMIChamberFurthaerProvisionMatrix.m in Sources */, + E80EC81028ACD84000D133C5 /* MHTExtendDirectorateRegard.m in Sources */, + 9B87B3CD2926473D00085110 /* YUMIInterlocutionStatementIntelligenceAssistantElement.m in Sources */, + E85E7B492A4EB0D300B6D00A /* YUMIManeUnionHuntforRegardGovernancer.m in Sources */, + E80E09A02A40B5DD00CD2BE7 /* YUMIConfectioneryTimberFurthaerPreadominantElement.m in Sources */, + 9B86D88328192DC000494FCD /* YUMIChamberRateEntranceRegard.m in Sources */, + E85E7B012A4EB0D200B6D00A /* YUMISensationalManagementSetExternalizer.m in Sources */, + 18F404B7276095D700A6C548 /* InterlocutionChatLimitRegard.m in Sources */, + E8788942273A55AD00BF1D57 /* YUMIExternalizeConsumersRegard.m in Sources */, + 9BD9A17927A0EC57004186FE /* YUMIManeVacationerExternalizer.m in Sources */, + E8BD0F8828A9E9E400DE050D /* ChamberMarchingCaptureMatrix.m in Sources */, + E8A1F79C290644DC0099C952 /* YUMIChamberFurthaerDisportAssembletionRegardElement.m in Sources */, + E8659909273E800D00EE349D /* YUMIPresentAssembletionRegardFlowProgramming.m in Sources */, + E85E7B262A4EB0D300B6D00A /* YUMIManeUnionRegardGovernancer.m in Sources */, + E85E7B672A4EC35A00B6D00A /* YUMIDilemmaExtractAbstractMatrix.m in Sources */, + E8B846CB26FDD7CD00A777FE /* YUMIManeReindictRegardGovernancer.m in Sources */, + E86596512701A1C000846EBD /* StatsticsticsServing.m in Sources */, + E824544026F58F9400BE8163 /* YUMIManeIntersectPwordRegardGovernancer.m in Sources */, + 9BE01AED2893D0DF00B50299 /* YUMIPretendProcurementHuntforTabulationRegardElement.m in Sources */, + E81060F12987C52B00B772F0 /* CommunicationUnionMatrix.m in Sources */, + E87E62772A3F5907002F68C9 /* YUMIStrangeResidenceEncourageTabulationRegardElement.m in Sources */, + 9BA812D228BF145700783EA7 /* ClientDeficitSheatheMatrix.m in Sources */, + E80E09A32A40B5DD00CD2BE7 /* YUMIConfectioneryTimberInsufficientBalanceRegard.m in Sources */, + 1427219229A75F6F00C7C423 /* MultipartFormAtomicAnatomiser.m in Sources */, + E890BC04273CF0500007C46B /* YUMIPresentComputationMatrix.m in Sources */, + E899C68C275093B800E189E5 /* YUMIConsumerSolitaireMiecreoscoopeProvisionMatrix.m in Sources */, + 9B6E8573281AB9B20041A321 /* YUMIChamberInsideEncourageElement.m in Sources */, + E8A3538528FD67320014A784 /* PresentFortunatePingbackMatrix.m in Sources */, + 9B4C5B86292F81FA00CEA41B /* YUMIInterlocutionStatementFanaticsParatiesMatrix.m in Sources */, + E82325F5274E2E09003A3332 /* YUMIConsumerSolitaireExternalizer.m in Sources */, + E80EC80B28ACD84000D133C5 /* MHTIntrojectionObstacleRegardDispositionuration.m in Sources */, + E880B39E278BD49E00A83B0D /* YUMIThroughoutChamberCombatRegardGovernancer.m in Sources */, + E8AC723D26F4B6AA007D6E91 /* YUMISurmountDilemmaMobileConsequentRegardGovernancer.m in Sources */, + E8AB632728AE13210023B0D2 /* YUMISeparationsMotifStatementExternalizer.m in Sources */, + 1427218729A75F6F00C7C423 /* MyHyperTextConnection.m in Sources */, + E8D55C9D28113218006935A5 /* CommunicationParrotMatrix.m in Sources */, + E87DF4EF2A42CB90009C1185 /* YUMIResidenceAssembleChamberTabulationRegardElement.m in Sources */, + 189DD73E26E21C3F00AB55B1 /* YYUtility.m in Sources */, + 14A6034F29A36D8300D2A6A5 /* YUMISimpleManeIntelligencerRegard.m in Sources */, + E81C1B2F277071670020D1E4 /* YUMIScheduleLoudspeakerAbstractMatrix.m in Sources */, + 9B0086CA27BA4F570032BD2B /* KellegMiecreoscoopeRegard.m in Sources */, + E83ABF00280EC45700322EE4 /* CommunicationSatisfactionApplicationParaticipationRegard.m in Sources */, + F1D8556F2931FC86008C418F /* YUMIChamberYearImportpriseRegard.m in Sources */, + E8B9843628ABA8B40022D026 /* YUMISeparationAnnounceSuccessRegard.m in Sources */, + E87DF4E02A42CA92009C1185 /* YUMIResidenceSloganRegardGovernancer.m in Sources */, + E81C279626EB39CC0031E639 /* SurmountForgetCiphercodeExternalize.m in Sources */, + 18EE3FF42750FA3700A452BF /* UIView+NIM.m in Sources */, + 9BD63FB4277EF1B3006EB744 /* YUMIReleaseWirelessMatrix.m in Sources */, + E80EC8C228ACF97A00D133C5 /* MHTESentimentIndicateRegard.m in Sources */, + E8A03DFF27635F960098D9EA /* YUMIChamberConfectioneryPresentRegard.m in Sources */, + E8A3538E28FE5CED0014A784 /* Api+WishGift.m in Sources */, + 180116F9279E8C4C00F2CBC0 /* PLIntratemporalUtil.m in Sources */, + E87E545429AA05EA00EBE52B /* YUMITerminalImpressionNevRegard.m in Sources */, + E8252FEE27687DF1002B3164 /* ImportpriseAbstractMatrix.m in Sources */, + E84BF7D1277BFCDD00EF8877 /* ChamberCoupleMatrix.m in Sources */, + E8AC723526F49939007D6E91 /* YUMIManeNotificaExternalizer.m in Sources */, + 1427218E29A75F6F00C7C423 /* HyperTextCommunication.m in Sources */, + E80DE40A277568D300BE5BCB /* ThemeColor+FirstRecharge.m in Sources */, + 9B42869828C1E06B009034D2 /* YUMIDeficitSheatheMatrix.m in Sources */, + 18EE3FE22750C29D00A452BF /* NEMCBadgeRegard.m in Sources */, + E82EE0F8272FDDFA00D15DC1 /* ConsumerPrivacyRegard.m in Sources */, + 9BA812E428BF70A600783EA7 /* YUMIChamberDeficitSheathePwordRegard.m in Sources */, + E8998D8B2859CB6A00C68558 /* YUMIManeConsumerAbstractPresentRamparatMetroRegardGovernancer.m in Sources */, + E8DEC9A42764A6600078CB70 /* YUMIFurthaerParrotExternalizer.m in Sources */, + 189DD53426DE255300AB55B1 /* TabbarRegardGovernancer.m in Sources */, + 9BA3B40B293DCDFD0071DF1C /* YUMIVersionRefurbishMatrix.m in Sources */, + 18EE401A2754BA9F00A452BF /* NEMCCommunicationMaker.m in Sources */, + E8EEB91D26FC9D58007C6EBA /* YUMIManeConsumerAbstractDateRegard.m in Sources */, + E80E09972A40B5DD00CD2BE7 /* YUMIConfectioneryTimberExternalizer.m in Sources */, + E82325E9274CE56A003A3332 /* YUMIParaticipationProvision.m in Sources */, + E85E7B192A4EB0D200B6D00A /* UnionCommunicationMatrix.m in Sources */, + 1427219429A75F6F00C7C423 /* HyperTextAuthenticationRequest.m in Sources */, + E890BC0D273D09A50007C46B /* YUMIPresentComputationRegard.m in Sources */, + E880B3B2278C1D1800A83B0D /* YUMIThroughoutChamberCombatPreadominantRegard.m in Sources */, + E8A3539428FE605F0014A784 /* DesireExternalizeConsumerMatrix.m in Sources */, + E81C1B262770663B0020D1E4 /* YUMIScheduleLoudspeakerTabulationRegardElement.m in Sources */, + E81A652B2834E4F600F55894 /* YUMISeparationsConsiderationRegardGovernancer.m in Sources */, + E8E20BEC2816A5B90033B688 /* YUMIManeBlackStatementRegardGovernancer.m in Sources */, + E8AC722F26F49610007D6E91 /* YUMIManeNotificationProvisionMatrix.m in Sources */, + E85410352864155A005CFD9F /* YUMISeparationSpecificExternalizer.m in Sources */, + 9B1B72BC28003E06003FACE9 /* XCombatellegCombatTabulationRegardElement.m in Sources */, + E8E70D7A26F2F16600F03460 /* YUMIManeExternalize.m in Sources */, + E85E7B632A4EC35A00B6D00A /* YUMIWithdrawAccountMatrix.m in Sources */, + E87DF4D42A42C9B1009C1185 /* ResidenceEncourageChamberMatrix.m in Sources */, + 9B42869C28C1FD3D009034D2 /* YUMIUnfoildDeficitSheatheElement.m in Sources */, + 9BFE992E288142FD009DA429 /* ChamberClassifyMatrix.m in Sources */, + E80E09992A40B5DD00CD2BE7 /* ConfectioneryTimberReflectionMatrix.m in Sources */, + 142721AB29A75F6F00C7C423 /* DispatchMHTueueLumberInitialiser.m in Sources */, + E8A88D3027E85EEA00CA8837 /* ChamberCombatAbstractMatrix.m in Sources */, + E85E7B022A4EB0D200B6D00A /* YUMISensationalManagementExecutiveChamberExternalizer.m in Sources */, + E8AB633328AE51470023B0D2 /* YUMIMarchingCaptureRegard.m in Sources */, + 9B2F72D328E45C5A0000E4FA /* YUMIChamberMHTuidkCommunicationElement.m in Sources */, + E85E7B402A4EB0D300B6D00A /* YUMIUnionFeatureRevenueTabulationRegardElement.m in Sources */, + E87E63F729AA1A5600EBE52B /* YuMi.xcdatamodeld in Sources */, + 9BE01ACE28925F7D00B50299 /* YUMIManeStrangeConsumerReindictRegard.m in Sources */, + E83ABF03280EC90C00322EE4 /* SatisfactionApplicationParaticipationMatrix.m in Sources */, + 9BA812E028BF6ABB00783EA7 /* Api+RedPacket.m in Sources */, + 9BA3B40F293DD2F90071DF1C /* YUMIAscensionRegard.m in Sources */, + E81A654928351B9500F55894 /* YUMISeparationsEncourageIntelligencerRegard.m in Sources */, + E84B0E3F2727EDF6008818C6 /* YUMIChamberCommunicationTabulationRegardElement.m in Sources */, + E82325FC274E4735003A3332 /* YUMIConsumerSolitaireProvisionMatrix.m in Sources */, + E8C1CD6627D88EF800376F83 /* YUMIChamberAcceptRegardGovernancer.m in Sources */, + E80DE4102775C34E00BE5BCB /* YUMIThresholdReindictSuccessRegard.m in Sources */, + E8412FB32779E285006E1101 /* Api+RoomSetting.m in Sources */, + 9B2F72D028E45A480000E4FA /* YUMIChamberMHTuickCommunicationContainRegard.m in Sources */, + E81060E82987720F00B772F0 /* CommunicationUnSupportMatrix.m in Sources */, + E8D34D6028082BA5009C4835 /* YUMIManeConsumerAtomicExternalizer.m in Sources */, + E84CBCE4284372D800D43221 /* YUMIChamberHalfCommunicationRegard.m in Sources */, + 140A818D299CFF1C00841594 /* YUMIVendorCallRegardGovernancer.m in Sources */, + E8EEB8F226FC2050007C6EBA /* SDAppearanceBrowser.m in Sources */, + E81C27AB26EF2D920031E639 /* ThirdConsumerAbstract.m in Sources */, + E8788950273A699900BF1D57 /* ThemeColor+SendGift.m in Sources */, + E81C279D26EEEC620031E639 /* YUMIConstant.m in Sources */, + 9B734F73288A787000CBDAA9 /* YUMIManeAccountRegard.m in Sources */, + 14B880E1299A1799005FCA1B /* YUMISurmountRegardGovernancer.m in Sources */, + E8AA6EF227DF1E97009B4C2B /* YUMIChamberMotifExternalizer.m in Sources */, + 9BF4BEBC28D4182E009CF6C2 /* YUMIUnfoildDeficitSheatheMatrix.m in Sources */, + E89DCF5D2900E5EE001647EC /* DesirePresentHistoryMatrix.m in Sources */, + E873EB0C2809850D0071030D /* CommunicationSatisfactionCustomRegard.m in Sources */, + E884C36F2743AAC800E1EBED /* AttachmentMatrix.m in Sources */, + E8AC721926F46E0B007D6E91 /* YUMIManeInstanllingProvisionMatrix.m in Sources */, + 9BE01AF02893E31700B50299 /* StrangeConsumerReindictMatrix.m in Sources */, + E82325E6274CCAFA003A3332 /* YUMIParaticipationAbstractMatrix.m in Sources */, + 9B32A04728881845002009D2 /* YUMIChamberCoupleStatementRegard.m in Sources */, + E85E7B1D2A4EB0D200B6D00A /* YUMIManeCollectiveRevenueStatsticsRegardGovernancer.m in Sources */, + 189DD55A26DE39D200AB55B1 /* BaseMvpExternalizer.m in Sources */, + 1427219029A75F6F00C7C423 /* TissueSocket.m in Sources */, + E83ABEF9280EAF3F00322EE4 /* CommunicationSatisfactionUnfoildEnergeticRegard.m in Sources */, + E83ABF06280EDE2B00322EE4 /* CommunicationSatisfactionPrototypeAscensionRegard.m in Sources */, + E85E7B0E2A4EB0D200B6D00A /* UnionHuntforSensationalManagementMatrix.m in Sources */, + 180806D827293794001FD836 /* NSObject+MJExtension.m in Sources */, + E85E7B4C2A4EB0D300B6D00A /* YUMIManeUnionExecutivePerRegardGovernancer.m in Sources */, + E87DF4BF2A42C8C1009C1185 /* ResidenceCoupleMatrix.m in Sources */, + E88863D3278ED4C0004BCFAB /* Intratemporalstamp.m in Sources */, + E8A3540A28FEC0510014A784 /* YUMIDesirePresentStatementRegard.m in Sources */, + E88863CF278EC393004BCFAB /* YUMIThroughoutChamberCombatCaptureRegard.m in Sources */, + E87DF5082A42CE79009C1185 /* YUMIInChamberReflectionExternalizer.m in Sources */, + 189DD6FF26E20E5900AB55B1 /* HttpRequestFacilitater.m in Sources */, + E85E7B062A4EB0D200B6D00A /* YUMIUnionHuntforExternalizer.m in Sources */, + E8788945273A55C200BF1D57 /* YUMIPresentAbstractRegard.m in Sources */, + 9BF5192628801D4700B6BE92 /* YUMIThroughoutChamberCombatComputationDownRegard.m in Sources */, + E87DF4F52A42CC49009C1185 /* ResidenceParrotAbstractMatrix.m in Sources */, + 9BD63FAB277EE885006EB744 /* Api+RoomRadio.m in Sources */, + E8A30BF328534B17003B4873 /* Api+FindNew.m in Sources */, + E852D7412863249F001465ED /* YUMISeparationsReplicationTabulationRegardElement.m in Sources */, + E8AEAED6271412EC0017FCE0 /* YUMIChamberRegardGovernancer.m in Sources */, + E80A086527F318620027B30C /* YUMIChamberCombatDisportingRegard.m in Sources */, + E8E70D9226F2F60C00F03460 /* YUMIManeProvisionMatrix.m in Sources */, + E818DD1F2A48974300F163F7 /* SurmountAreaMatrix.m in Sources */, + 1427218A29A75F6F00C7C423 /* HyperTextDynamicAccurateRespond.m in Sources */, + E8DACCFE27673F870052092C /* PresentStressAbstractMatrix.m in Sources */, + E8412F9927799249006E1101 /* CallforFanaticsMatrix.m in Sources */, + E88C72912828EA4E0047FB2B /* Manual+CoreDataProperties.m in Sources */, + E84BF7CA277AF79D00EF8877 /* YUMIChamberInstanllingCoupleElement.m in Sources */, + 9BE9F0F927FED12D00667200 /* XCombatellegFanaticsPrivilegeMatrix.m in Sources */, + E87DF5022A42CDF1009C1185 /* YUMIResidenceConsiderationAssembletionRegardElement.m in Sources */, + E8AB631628ADE2D20023B0D2 /* YUMISeparationsMotifRecentlyRegardGovernancer.m in Sources */, + E8B846CF26FDD96100A777FE /* YUMIManeRechageIntelligenceRegard.m in Sources */, + E852D74728633E92001465ED /* SeparationsJudgementReplicationMatrix.m in Sources */, + 186A534926FC6ED900D67B2C /* MKJPrecautiousCommunicationAttributedDisposition.m in Sources */, + E8B3E80C2848BA40009746AB /* StrangeConsumerBewelcometoMatrix.m in Sources */, + E85E7B4D2A4EB0D300B6D00A /* YUMIManeUnionRemoveComponentRegardGovernancer.m in Sources */, + 9BCB99A028F571B500466D64 /* YUMIManeAssembleParatiesChamberRegardGovernancer.m in Sources */, + E81C27AE26EF39AB0031E639 /* AppDelegate+ThirdConfig.m in Sources */, + E8AB631028ADD92D0023B0D2 /* YUMISeparationsMotifRecommondRegardGovernancer.m in Sources */, + E877A7F127842B2F00EFACED /* YUMIChamberEngagementTissuePrecautiousRegard.m in Sources */, + E8E70D8326F2F51A00F03460 /* YUMIManeIntelligenceRegard.m in Sources */, + E80EC81128ACD84000D133C5 /* MHTSpiritFacilitater.m in Sources */, + E8EEB90C26FC5EBC007C6EBA /* YUMIManeConsumerAbstractCompileMatrix.m in Sources */, + 18E7B31826F097E00064BC9B /* ConsumerAbstractMatrix.m in Sources */, + E87DF4F22A42CBEC009C1185 /* YUMIResidenceConsumerRegard.m in Sources */, + E83ABEF6280E9AD800322EE4 /* CommunicationSatisfactionUnSupportRegard.m in Sources */, + E8AC721326F46ADD007D6E91 /* YUMIManeInstanllingRegardGovernancer.m in Sources */, + 18E7B32126F098650064BC9B /* ConsumerAbstractCommunicationVo.m in Sources */, + E8AC722726F482A4007D6E91 /* YUMIManeFeedbackExternalizer.m in Sources */, + E85E7B422A4EB0D300B6D00A /* YUMIManePromptWindow.m in Sources */, + 14EB640929A5BDDD00A4A00B /* YUMIMomentsSimpleSpecificRegardGovernancer.m in Sources */, + 18AAF3F0279EA59300CD7DAD /* CommunicationSatisfactionEssayClickable.m in Sources */, + E8C6FFCC27548120004DC9F0 /* Api+Home.m in Sources */, + E8778AF52988EF2B00CF139B /* YUMIInterlocutionSpeakHalloTabulationRegardElement.m in Sources */, + 186A534E26FC6ED900D67B2C /* MKJPopupServing.m in Sources */, + E85E7B3A2A4EB0D300B6D00A /* YUMIUnionSensationalManagementSetTabulationRegardElement.m in Sources */, + E8778AE72988C1E000CF139B /* YUMIInterlocutionHalloImportRegard.m in Sources */, + 18A61BD7274F7F6900A09A54 /* NetIndicateDisposition.m in Sources */, + E8C21501274B76F60079E6BF /* YUMIChamberBrightnessHitRegard.m in Sources */, + E84A2E9F2A5287D200D6AF8A /* YUMIRevenueReflectionGoldSpecificsRegard.m in Sources */, + E873EB0F28098D500071030D /* CommunicationSatisfactionPresentRegard.m in Sources */, + E8D34D4D28080351009C4835 /* YUMIManeAtomicCollectiveTabulationRegardElement.m in Sources */, + E85E7B292A4EB0D300B6D00A /* YUMIUnionIntratemporalPickRegard.m in Sources */, + E85E7BBF2A4EE7AC00B6D00A /* YUMIManeFeaturealConcentrateElement.m in Sources */, + E8AC722426F47E5E007D6E91 /* YUMIManeFeedbackRegardGovernancer.m in Sources */, + E8664ED627E434D5000171BA /* YUMIChamberCombatReflectionRegardGovernancer.m in Sources */, + E87E914E2796678D00A7B3F2 /* YUMIManePretendDispossessTabulationRegardElement.m in Sources */, + 9B7D804D27537950003DAC0C /* CommunicationElement.m in Sources */, + 9B044D9D282D2A6400DE4859 /* YUMIChamberKellegRateImportRegard.m in Sources */, + E8950180282CAC49007E459A /* YUMISeparationsConsumerAbstractRegard.m in Sources */, + 18F404C927609A4300A6C548 /* CommunicationExternalizer.m in Sources */, + 9BC9DAEF27E33B3F009EE409 /* YUMIChamberPresentBrightnessAnatomiser.m in Sources */, + E89DCF602900F4FB001647EC /* YUMIDesirePresentImportRegard.m in Sources */, + E81366E326F0A1FC0076364C /* SurmountDilemmaMobileRegardGovernancer.m in Sources */, + 1464C5F329A4C18000AF7C94 /* YUMIIAPReindictRegardGovernancer.m in Sources */, + E85E7B662A4EC35A00B6D00A /* YUMIRevenueReflectionGoldSpecificsMatrix.m in Sources */, + 9B2EA7CC2804245500ED17BF /* XCombatellegCombatFasciaboardConsumerRegard.m in Sources */, + E80E09A12A40B5DD00CD2BE7 /* YUMIConfectioneryTimberRateTabulationRegardElement.m in Sources */, + 9B85B6DA279FDC5200A0A1AC /* YUMIConsumerSolitaireCommunicationAssembletionRegardElement.m in Sources */, + E85E7B0D2A4EB0D200B6D00A /* UnionSensationalManagementAbstractMatrix.m in Sources */, + 189DD68426E1FDBB00AB55B1 /* XNDJTBWGLoadingTool.m in Sources */, + 9B1B72AF280031F8003FACE9 /* XCombatellegCombatChosenChamberRegard.m in Sources */, + E818DD1C2A4896EE00F163F7 /* YUMISurmountAraeRegardGovernancer.m in Sources */, + E8D4824A278D1F73003C1D08 /* YUMIThroughoutChamberCombatCallforRegard.m in Sources */, + E85E7B432A4EB0D300B6D00A /* YUMIManeExchangeAuthorityIntelligenceRegard.m in Sources */, + 189DD73F26E21C3F00AB55B1 /* YYUtility+Carrier.m in Sources */, + E87AE7F9277AABE50037823A /* YUMIChamberCoupleStatementRegardGovernancer.m in Sources */, + 18E7B26926E8D5D60064BC9B /* XCCurrentVCStackExecutive.m in Sources */, + E85E7B472A4EB0D300B6D00A /* YUMIManeUnionExecutivePerTabulationRegardElement.m in Sources */, + E824544326F58FCE00BE8163 /* YUMIManeIntersectPwordIntrojectionRegard.m in Sources */, + 9B1B72A1280023F3003FACE9 /* YUMIManeKellegFanaticsSquadTabulationRegardElement.m in Sources */, + 1808073027315E8E001FD836 /* NetIndicateRegard.m in Sources */, + E880B3AC278BD98600A83B0D /* YUMIThroughoutChamberCombatDispossessTabulationRegardElement.m in Sources */, + 18486235271EB794005FC5DC /* AgoraRealtimackConnector.m in Sources */, + E8C1CD7A27D8B29E00376F83 /* ChamberAcceptAbstractMatrix.m in Sources */, + E81C1B1C27705F6B0020D1E4 /* YUMIScheduleLoudspeakerExternalizer.m in Sources */, + 184862CE27213FD7005FC5DC /* ZegoRealtimackConnector.m in Sources */, + E85E7BB32A4ED45300B6D00A /* YUMIPageControl.m in Sources */, + E85E7B3E2A4EB0D300B6D00A /* YUMIUnionRevenueReflectionTabulationRegardElement.m in Sources */, + E8A88D2727E8193400CA8837 /* YUMIChamberCombatChosenConsumerRegard.m in Sources */, + 9B0E1C5926E77022005D4442 /* BaseNevigationGovernancer.m in Sources */, + E8664ED927E4355C000171BA /* YUMIChamberCombatReflectionTabulationRegardElement.m in Sources */, + E8A1F794290642500099C952 /* YUMIChamberFurthaerDisportRegardGovernancer.m in Sources */, + 142721B229A7647F00C7C423 /* YUMIBlankRegardGovernancer.m in Sources */, + E85E7B6B2A4EC39400B6D00A /* YUMIManeExchangeAuthorityMatrix.m in Sources */, + E836456B2A40A33300E0DBE4 /* ManeCommunicationSolitaireStatementAbstractMatrix.m in Sources */, + E85E7B1C2A4EB0D200B6D00A /* YUMIManeHallKellegRevenueStatsticsRegardGovernancer.m in Sources */, + E81060FD2987CC9100B772F0 /* CommunicationPrototypeAscensionMatrix.m in Sources */, + E84BF7DD277C765400EF8877 /* YUMIChamberRoleDispossessTabulationRegardElement.m in Sources */, + E8F6135C291E26BD00E12650 /* NSMutableDictionary+Saft.m in Sources */, + 9BAC92EE28E6989400147DD8 /* YUMIChamberImportpriseDisportRegard.m in Sources */, + 1427213429A75A2600C7C423 /* YUMISeparationsRecentlyExternalizer.m in Sources */, + E83ABEFD280EB5E200322EE4 /* SatisfactionUnfoildEnergeticAbstractMatrix.m in Sources */, + E85E7BAF2A4EC99300B6D00A /* YUMIManeChooseGiveDiamondVC.m in Sources */, + E8EEB8F426FC2050007C6EBA /* SDBrowserIndicateRegard.m in Sources */, + E88863CC278EC336004BCFAB /* ThroughoutChamberCombatCaptureMatrix.m in Sources */, + 14B880E7299A4B62005FCA1B /* YUMISurmountMobileRegardGovernancer.m in Sources */, + E824544626F5934700BE8163 /* YUMIManeIntersectPwordExternalizer.m in Sources */, + 189DD54B26DE338800AB55B1 /* BaseRegardGovernancer.m in Sources */, + 149839C4299E088000F82CBF /* YUMIMomentStatementRegardGovernancer.m in Sources */, + E8B846C226FD82DC00A777FE /* YUMIManeConsumerAbstractAlbumAssembletionRegardElement.m in Sources */, + E816C11527608A7500C84014 /* YUMIChamberMiniExecutive.m in Sources */, + E81060EB2987BE8300B772F0 /* CommunicationPresentMatrix.m in Sources */, + E8EEB91726FC7B35007C6EBA /* YUMIManeConsumerAbstractDesRegardGovernancer.m in Sources */, + 9B1B72AC280031DB003FACE9 /* XCombatellegCombatRegardGovernancer.m in Sources */, + 180806FB2729A354001FD836 /* ThemeColor+Room.m in Sources */, + 9BC8C83028090C9200C24F85 /* YUMIChamberKellegRateOriflammeRegard.m in Sources */, + E81A653F283511BE00F55894 /* YUMISeparationsCoactiveRegardGovernancer.m in Sources */, + 1464C5EA29A45FC300AF7C94 /* YUMIButton.m in Sources */, + E8395331276A03AE00CF2F24 /* Api+DressUp.m in Sources */, + E8B3E8092848B871009746AB /* CallforConsumerAbstractMatrix.m in Sources */, + E85E7B352A4EB0D300B6D00A /* YUMICollectiveComponentTabulationRegardElement.m in Sources */, + E8DEC99E2764A5B60078CB70 /* YUMIChamberFurthaerParrotRegardGovernancer.m in Sources */, + E82325F2274E2DE6003A3332 /* YUMIConsumerSolitaireRegardGovernancer.m in Sources */, + E85E7B512A4EB0D300B6D00A /* Api+Guild.m in Sources */, + E83645682A40A2DC00E0DBE4 /* YUMICommunicationSolitaireDisporterExecutive.m in Sources */, + E8A1F7972906426B0099C952 /* YUMIChamberFurthaerDisportExternalizer.m in Sources */, + E8F65C222869A36F009BB5B9 /* SatisfactionParaticipationSeparationsMatrix.m in Sources */, + 9B6E856E281AABAB0041A321 /* YUMIChamberEncourageMatrix.m in Sources */, + E84A2E992A52817E00D6AF8A /* YUMIRevenueReflectionRegard.m in Sources */, + 142721AD29A75F6F00C7C423 /* BWGAbstractAtomicbaselumbes.m in Sources */, + E801274B27E327DA00BAC3F2 /* YUMIChamberCombatGenreTabulationRegardElement.m in Sources */, + E8412FB02779CB4D006E1101 /* YUMIChamberInstanllingExternalizer.m in Sources */, + E87DF4B02A429B32009C1185 /* YUMIThresholdReindictRegard.m in Sources */, + E878893C273A54C300BF1D57 /* Api+Gift.m in Sources */, + E80E099A2A40B5DD00CD2BE7 /* YUMIConfectioneryTimberBrightnessMatrix.m in Sources */, + E897ABFC28AF2E71003B3587 /* YUMIMarchingPresentRegard.m in Sources */, + E8998D8028597B0300C68558 /* YUMIChamberFortunateBigCaptureRegard.m in Sources */, + E88E4A80297673DC00019A50 /* InterlocutionNevEnergeticRegard.m in Sources */, + E81060DC298761F100B772F0 /* CommunicationEssayMatrix.m in Sources */, + E8DEC9A82764A68B0078CB70 /* Api+MoreMenu.m in Sources */, + 9B86D87A2817DD8400494FCD /* YUMIChamberImportHideTipRegard.m in Sources */, + E8AC721026F43955007D6E91 /* UIIndicateConstant.m in Sources */, + E85E7B122A4EB0D200B6D00A /* UnionRevenueReflectionMatrix.m in Sources */, + E81C27A026EEF83D0031E639 /* YUMIHtmlUrl.m in Sources */, + E8F1558D28124D5200EE8C06 /* CommunicationConentVocalmusicRegard.m in Sources */, + E8E20BDB281645300033B688 /* InterlocutionAbstractRegardGovernancer.m in Sources */, + E8AB631C28ADE30E0023B0D2 /* YUMISeparationsMotifRecentlyExternalizer.m in Sources */, + E80A63DC28B86B9700690914 /* CommunicationSatisfactionSeparationsAutoRegard.m in Sources */, + E8098CB4282E97550090B9F0 /* YUMIManeBlackStatementExternalizer.m in Sources */, + E87DF4DD2A42CA12009C1185 /* ResidenceHuntforConsequentMatrix.m in Sources */, + 1464C5F029A49DDD00AF7C94 /* YUMIManeSimpleConsumerAbstractIntelligencerRegard.m in Sources */, + E85E7B2C2A4EB0D300B6D00A /* YUMICollectiveDivisionRegard.m in Sources */, + E801274E27E3280000BAC3F2 /* YUMIChamberCombatVoteTabulationRegardElement.m in Sources */, + 18E7B1B726E8B2D10064BC9B /* Api+Main.m in Sources */, + E87DF4D72A42C9C3009C1185 /* ResidenceDisportChamberMatrix.m in Sources */, + E8B846D326FDDBE600A777FE /* YUMIManeReindictTabulationRegardElement.m in Sources */, + E8D48256278D83AE003C1D08 /* YUMIThroughoutChamberCombatFasciaboardConsumerRegard.m in Sources */, + E85E7B372A4EB0D300B6D00A /* YUMIManeUnionStatementElement.m in Sources */, + E85E7B502A4EB0D300B6D00A /* YUMIManeUnionStatementVC.m in Sources */, + E824546126F5F4E400BE8163 /* YUMIManeReassociationIntersectPwordRegardGovernancer.m in Sources */, + 14DCAD11299B946E00A7DD31 /* YUMISurmountBaseRegardGovernancer.m in Sources */, + E81D58822720082A003063FE /* MiecreoscoopeWaveRegard.m in Sources */, + E8A73F8728586A6F00FD9CBC /* YUMIPresentWeekSatelliteAssembletionRegardElement.m in Sources */, + E80E09B62A42078F00CD2BE7 /* YUMIChamberSatelliteKitchenMatrix.m in Sources */, + E8B825C226EA00DF009E8E9F /* SurmountValidationCodeExternalize.m in Sources */, + E878B85B2835F3BF00E22DCF /* YUMISeparationsCoactiveTabulationRegardElement.m in Sources */, + 9BCFB828289BAC7D0093D863 /* YUMIManeIntelligenceFunctionProvisionProgramming.m in Sources */, + E8D34D6428084E40009C4835 /* YUMIManeConsumerAbstractPresentRamparatRegardGovernancer.m in Sources */, + E899C68927508F4E00E189E5 /* YUMIConsumerSolitaireAbstractMatrix.m in Sources */, + 9B6B3AAB278C2EA7005551EC /* YUMIChamberMagnificentPrototypeUpwardsRegard.m in Sources */, + E85E7B302A4EB0D300B6D00A /* YUMIUnionRevenueIntelligencerRegard.m in Sources */, + E85E7B222A4EB0D300B6D00A /* YUMIManeUnionRevenueReflectionRegardGovernancer.m in Sources */, + 9BD2ECD5288F838200F5CD9A /* YUMIManeTerminalImpressionExternalizer.m in Sources */, + 9B1B72BF2800422E003FACE9 /* XCombatellegCombatPreadominantRegard.m in Sources */, + 1427219729A75F6F00C7C423 /* DDRange.m in Sources */, + E85E7B6E2A4EC4AE00B6D00A /* YUMIManeUnionExternalizer.m in Sources */, + E81125CA296E606F000D9804 /* MHTAppearanceIndicateMatrix.m in Sources */, + 9B42869528C1E00A009034D2 /* YUMIDeficitSheatheConsequentMatrix.m in Sources */, + 9BE01AE428937EDE00B50299 /* YUMIPretendUpwardsProcurementAssembletionRegardElement.m in Sources */, + 1427219129A75F6F00C7C423 /* MultipartCommunicationIntelligencerField.m in Sources */, + 186A534B26FC6ED900D67B2C /* MKJPopupExecutiveServing.m in Sources */, + E8BD0F8B28A9EB0A00DE050D /* ChamberMarchingCaptureStatementMatrix.m in Sources */, + 9BA812DD28BF6A7300783EA7 /* YUMIChamberDeficitSheatheExternalizer.m in Sources */, + E85E7B642A4EC35A00B6D00A /* YUMIRevenueReflectionMatrix.m in Sources */, + E85E7B082A4EB0D200B6D00A /* YUMIManeExecutiveSetExternalizer.m in Sources */, + 18E7B1B226E8AF980064BC9B /* MainExternalizer.m in Sources */, + E81366F626F0C0DF0076364C /* SurmountFullAbstractExternalizer.m in Sources */, + E8A30BEE28534AB1003B4873 /* YUMIInterlocutionDiscoveryStrangeExternalizer.m in Sources */, + 9BDA3E7727FD41C200517FE6 /* XCombatellegFanaticsSquadRegardGovernancer.m in Sources */, + 18A61BE8274F9CF000A09A54 /* InterlocutionStatementRegardGovernancer.m in Sources */, + E8C1CD6A27D8937800376F83 /* YUMIChamberAcceptAssembletionRegardElement.m in Sources */, + 9B2EA7C02804037700ED17BF /* KellegCombatPhaseRegard.m in Sources */, + E811FFF72742367B00918544 /* YUMIPresentDispossessAssembletionRegardElement.m in Sources */, + 189DD67E26E1FD8900AB55B1 /* UIImage+Utils.m in Sources */, + E824545626F5E51900BE8163 /* YUMIManeValidationIdentityRegardGovernancer.m in Sources */, + E82D5C73276AE94800858D6D /* CarMatrix.m in Sources */, + E85E7B0B2A4EB0D200B6D00A /* YUMIUnionSetNameExternalizer.m in Sources */, + 142721AA29A75F6F00C7C423 /* ContextFilterLogFormatter.m in Sources */, + E87E62762A3F5907002F68C9 /* YUMIStrangeResidenceDisportTabulationRegardElement.m in Sources */, + 186A534726FC6ED900D67B2C /* MKJPrecautiousDisposition.m in Sources */, + 18F403EE2758CF2F00A6C548 /* CommunicationSatisfactionIndicate.m in Sources */, + 18E7B31E26F0984C0064BC9B /* ConsumerPrototypeVo.m in Sources */, + 1427218C29A75F6F00C7C423 /* HyperTextAsyncAccurateRespond.m in Sources */, + E8DD25DA295583920043C7D5 /* XCombatellegRandomCombatPreadominantRegard.m in Sources */, + E8664EDC27E43632000171BA /* YUMIChamberCombatDispossessTabulationRegardElement.m in Sources */, + E8778AE42988B57B00CF139B /* CommunicationSatisfactionRevokeRegard.m in Sources */, + E880B3A9278BD82300A83B0D /* ThroughoutChamberCombatAbstractMatrix.m in Sources */, + 9B88E20F28C6305400D26FBA /* YUMIChamberHuntforReflectionRegardGovernancer.m in Sources */, + E84A2E892A527DF800D6AF8A /* YUMIRevenueReflectionVC.m in Sources */, + E82D5C7A276B25D100858D6D /* SpriteSheetIndicateExecutive.m in Sources */, + E85E7BB02A4EC99300B6D00A /* Api+GiveDiamond.m in Sources */, + E874B88B27215EAF003954B9 /* MiecreoscoopeMHTueueMatrix.m in Sources */, + 9B1B72B828003772003FACE9 /* XCombatellegCombatExternalizer.m in Sources */, + 142721A929A75F6F00C7C423 /* BWGASLlumbes.m in Sources */, + E8EE827D272B9A2300A17217 /* YUMIChamberDischargeEssayRegard.m in Sources */, + E8AB631928ADE2F40023B0D2 /* YUMISeparationsMotifEncourageExternalizer.m in Sources */, + 9BD63FAE277EE97A006EB744 /* YUMIReleaseWirelessExternalizer.m in Sources */, + 9B1FC3D827E49C36006EFFE0 /* YUMIManePretendIntumesceAssembletionRegardElement.m in Sources */, + 9BE01AEA2893CB4400B50299 /* YUMIPretendHuntforRegardGovernancer.m in Sources */, + E8751E6B28A64C6E0056EF44 /* YUMIMarchingRateTabulationRegardElement.m in Sources */, + E80E099E2A40B5DD00CD2BE7 /* YUMIConfectioneryTimberPresentRegard.m in Sources */, + 9B1B72B528003664003FACE9 /* Api+AnchorPk.m in Sources */, + E8EEB90626FC5772007C6EBA /* YUMIManeConsumerAbstractCompileRegardGovernancer.m in Sources */, + E8B846D626FDE01B00A777FE /* YUMIManeReindictExternalizer.m in Sources */, + E8A30BF628534B35003B4873 /* DiscoveryStrangeConsumerAbstractMatrix.m in Sources */, + E801274027E323C800BAC3F2 /* YUMIChamberCombatRegardGovernancer.m in Sources */, + E8EEB91426FC7786007C6EBA /* YUMIManeConsumerAbstractNickRegardGovernancer.m in Sources */, + 18E7B31B26F0982E0064BC9B /* ConsumerExpand.m in Sources */, + 9BDA3E7D27FD47AB00517FE6 /* XCombatellegFanaticsSquadExternalizer.m in Sources */, + E8C6FFE62754FE53004DC9F0 /* YUMIResidenceHuntforExternalizer.m in Sources */, + 9B2A12DE2783FEDD00CED41B /* ConsumerVipAbstractVo.m in Sources */, + E824543526F57D6E00BE8163 /* YUMISurmountValidationDilemmaMobileRegardGovernancer.m in Sources */, + E8680718271967B00024F48F /* MiecreoscoopeRegard.m in Sources */, + E896EF942771AAC100AD2CC1 /* YUMIManeFanaticsExternalizer.m in Sources */, + E8B825CD26EA18C8009E8E9F /* DJDKMIMOMColor.m in Sources */, + E8751E5F28A62A970056EF44 /* YUMIMarchingExternalizer.m in Sources */, + E84A2E962A5280F900D6AF8A /* YUMIExchangeDiamondsRegard.m in Sources */, + E8DAC5AC2858305A00012CFD /* YUMIChamberCommunicationIntumesceRegard.m in Sources */, + 1427218929A75F6F00C7C423 /* HyperTextAtomicRespond.m in Sources */, + E8B9843028AB90200022D026 /* YUMISepartionMotifStatementRegard.m in Sources */, + E8E20BDE28164D3A0033B688 /* InterlocutionNevRegard.m in Sources */, + 9B734F76288A92FB00CBDAA9 /* YUMIManeFuntionProvisionMatrix.m in Sources */, + E82D5C70276AE60000858D6D /* IntelligencewearMatrix.m in Sources */, + E81125C4296E57B7000D9804 /* MHTinputAppearanceRegard.m in Sources */, + E880B3A1278BD60C00A83B0D /* YUMIThroughoutChamberCombatChosenChamberRegard.m in Sources */, + 9B3C181A292CE4FA003AF543 /* XCombatellegCombatAdaptationRegard.m in Sources */, + E80EC80D28ACD84000D133C5 /* MHTIntrojectionObstacleRegard.m in Sources */, + E8D48250278D68BA003C1D08 /* YUMIAcrpssChamberCombatFasciaboardRegard.m in Sources */, + 18F404C3276098F100A6C548 /* Api+Message.m in Sources */, + 9B85B6D7279FDABA00A0A1AC /* YUMIConsumerSolitaireCommunicationSolitaireRegard.m in Sources */, + 9B33E3CB27D85379003B0E62 /* UpwardsloadAccurate.m in Sources */, + E8AEAEF327141C7C0017FCE0 /* YUMIChamberCommunicationAccommodatedRegard.m in Sources */, + 9B1B729D28002264003FACE9 /* YUMIManeKellegFanaticsSquadMatrix.m in Sources */, + E8C6FFE02754EEF9004DC9F0 /* YUMIResidenceHuntforRegardGovernancer.m in Sources */, + E87E627F2A3F5D28002F68C9 /* YUMIStrangeResidenceDisportProvisionAssembletionRegardElement.m in Sources */, + E8AE427327153A3500BEEBB2 /* YUMIChamberImportpriseAccommodatedRegard.m in Sources */, + E89DCF5428FFEC67001647EC /* YUMIDesirePresentHistoryTabulationRegardElement.m in Sources */, + E85E7B072A4EB0D200B6D00A /* YUMIUnionExternalizer.m in Sources */, + 9BB89DC627FEB9E100586A83 /* XCombatellegFanaticsmissionRegardGovernancer.m in Sources */, + E86596432701611A00846EBD /* UIImage+ImageEffects.m in Sources */, + E8E20BEF2816A5FC0033B688 /* YUMIManeBlackStatementTabulationRegardElement.m in Sources */, + 18486217271EAB8C005FC5DC /* BaseRealtimackConnector.m in Sources */, + E80EC81228ACD84000D133C5 /* MHTSpiritAttachment.m in Sources */, + E8DACCFB2766EDC60052092C /* MiecreoscoopePresentStressRegard.m in Sources */, + E85E7BAE2A4EC99300B6D00A /* YUMIManeGiveDiamondVC.m in Sources */, + E8CEA03D26EA3DE500644B44 /* SurmountCiphercodeExternalize.m in Sources */, + E885D533297798E1004DC088 /* InterlocutionInstanllingTabulationRegardElement.m in Sources */, + E85E7BA82A4EC99300B6D00A /* YUMIManeChooseGivePresentRegardElement.m in Sources */, + E8E70D7726F2F15100F03460 /* YUMIManeRegardGovernancer.m in Sources */, + 9B1FC3D527E49A5D006EFFE0 /* ChatIntumesceMatrix.m in Sources */, + E896EFA62771AEDD00AD2CC1 /* YUMIManeFanaticsTabulationRegardElement.m in Sources */, + E8E7DAEB2745158500C631CC /* YUMIExternalizeConsumerAbstractMatrix.m in Sources */, + E83DB487274670DA00D8CBD1 /* YUMIChamberPresentBroadCastMatrix.m in Sources */, + E88863C6278EAFC3004BCFAB /* YUMIThroughoutChamberCombatConsequentRegard.m in Sources */, + E8AC722C26F49580007D6E91 /* YUMIManeNotificaRegardGovernancer.m in Sources */, + 9B335B492925D8A00048A116 /* XCombatellegCombatChosenGenreGovernancer.m in Sources */, + E8098CAE282E07C00090B9F0 /* YUMISeparationsDispossessTabulationRegardElement.m in Sources */, + E85E7B4F2A4EB0D300B6D00A /* YUMIManeExchangeAuthorityVC.m in Sources */, + E84A2E932A527EC800D6AF8A /* YUMIRevenueReflectionExternalize.m in Sources */, + E85E7B172A4EB0D200B6D00A /* CollectiveComponentSpecificAbstractMatrix.m in Sources */, + 9B044DA0282D32F700DE4859 /* MiecreoscoopeCallforExtMatrix.m in Sources */, + E8D7D74B282BA1EC0007D7BD /* YUMISeparationsTabulationRegardElement.m in Sources */, + E8D34D5A28082357009C4835 /* ConsumerPresentRamparatAbstractMatrix.m in Sources */, + E82107842987E35300DE7040 /* CommunicationSeparationsAutoMatrix.m in Sources */, + 189DD52E26DE255300AB55B1 /* AppDelegate.m in Sources */, + E83DB4842746661800D8CBD1 /* YUMIChamberPresentPingbackRegard.m in Sources */, + E8778AF82988F4E200CF139B /* YUMIInterlocutionSpeakHalloIntelligencerRegard.m in Sources */, + E84150C527747E0900A7F548 /* ThresholdReindictRewardMatrix.m in Sources */, + E8B9843328ABA2FF0022D026 /* SeparationsPicResAbstract.m in Sources */, + 9BE9F10227FEE5C200667200 /* XCombatellegFanaticsmissionSpecificMatrix.m in Sources */, + E8E0DAE6285C280E00566A2F /* YUMIInterlocutionDiscoveryStrangePrecautiousRegard.m in Sources */, + E85E7B1A2A4EB0D200B6D00A /* YUMIManeGoldRevenueReflectionVC.m in Sources */, + E86596542701A55500846EBD /* StatsticsticsServingFacilitater.m in Sources */, + E8E21A9B28B4BD92008F7C9D /* YUMIChamberGraffitiPresentBrightnessRegard.m in Sources */, + E85E7B102A4EB0D200B6D00A /* UnionRevenueSpecificMatrix.m in Sources */, + E85E7B132A4EB0D200B6D00A /* UnionHuntforConsumerAbstractMatrix.m in Sources */, + E8E70D8C26F2F5A500F03460 /* YUMIManeIntelligenceProvisionAssembletionRegardElement.m in Sources */, + 9B17F71827BD150600440843 /* SVGAAnatomiserExecutive.m in Sources */, + E87DF5052A42CE21009C1185 /* YUMIResidenceHuntforReflectionElement.m in Sources */, + E8751E5928A62A390056EF44 /* Api+Sailing.m in Sources */, + E897ABFF28AF39B4003B3587 /* YUMIMarchingBrightnessRegard.m in Sources */, + E885D5362977CE28004DC088 /* InterlocutionInstanllingMatrix.m in Sources */, + E80DE40D2775ABA500BE5BCB /* YUMIThresholdReindictFlowProgramming.m in Sources */, + 9BE01AE128937DBC00B50299 /* YUMIPretendUpwardsProcurementSolitaireRegardGovernancer.m in Sources */, + E896EFA22771AE9400AD2CC1 /* YUMIManeAssistantRegardGovernancer.m in Sources */, + 1427218D29A75F6F00C7C423 /* HyperTextDeficitirectRespond.m in Sources */, + E875A1B829755EE200AB1BBD /* InterlocutionConsumerAbstractTabulationRegardElement.m in Sources */, + E8E70D8C26F2F5A500F03460 /* YUMIManeIntelligenceProvisionAssembletionRegardElement.m in Sources */, + 9BE9F0FC27FED2E100667200 /* XCombatellegFanaticsJoinMatrix.m in Sources */, + E87DF50B2A42CEC9009C1185 /* ResidenceEveryOneHuntforMatrix.m in Sources */, + 186A534A26FC6ED900D67B2C /* MKJActionSheetDisposition.m in Sources */, + 9B6E856A281A982A0041A321 /* YUMIChamberEncourageRegard.m in Sources */, + E8DBB6FD27B63CE000AA285D /* TraitCompetitionMiecreoscoopeRegard.m in Sources */, + E85E7B4A2A4EB0D300B6D00A /* YUMIManeMangerStatementRegardGovernancer.m in Sources */, + E81C278D26EAFAF60031E639 /* DESEncrypt.m in Sources */, + E85E7BB92A4ED89F00B6D00A /* YUMIRevenueReflectionGoldSpecificsIntelligenceRegard.m in Sources */, + E84A2EAB2A528A4100D6AF8A /* YUMIRevenueReflectionGoldSpecificsPickRegardRegard.m in Sources */, + E82107812987D7F300DE7040 /* CommunicationSeparationsMatrix.m in Sources */, + E81366E726F0A49E0076364C /* NSString+Utils.m in Sources */, + E8EEB90126FC31B6007C6EBA /* YUMIManeConsumerAbstractExternalizer.m in Sources */, + E81A65312834E53600F55894 /* YUMISeparationsRecentlyRegardGovernancer.m in Sources */, + 18F404BB2760982000A6C548 /* ChatLimitMatrix.m in Sources */, + E8A30BE828534A63003B4873 /* YUMIInterlocutionDiscoveryStrangeTabulationRegardElement.m in Sources */, + 9BE9F10527FF04CF00667200 /* XCombatellegFanaticsmissionTabulationRegardElement.m in Sources */, + 9B92A33C2797E38100AD168F /* YUMIManeIntelligenceProvisionTabulationRegardElement.m in Sources */, + E854103928646A00005CFD9F /* YUMISeparationsReplicationFurthaerTabulationRegardElement.m in Sources */, + 9B8DE0E1289CF02900FB6EC2 /* YUMIPresentCompoundMatrix.m in Sources */, + E85E7B092A4EB0D200B6D00A /* YUMIUnionRemoveComponentExternalizer.m in Sources */, + E8950186282CAC80007E459A /* YUMISeparationsTooObstacleRegard.m in Sources */, + E86507E5281A7D4D006951B0 /* CommunicationSatisfactionTweetRegard.m in Sources */, + E824544B26F5BBB800BE8163 /* YUMIManeModifIntersectPwordRegardGovernancer.m in Sources */, + E81C1B2227705F950020D1E4 /* Api+ArrangeMic.m in Sources */, + 9BD798B4292632FE003E03E6 /* YUMIInterlocutionStatementIntelligenceProvisionRegard.m in Sources */, + E8E20BE828169BDC0033B688 /* YUMIManeSurmountCiphercodeExternalizer.m in Sources */, + E85E7B3F2A4EB0D300B6D00A /* YUMIUnionSingleChamberRevenueTabulationRegardElement.m in Sources */, + 9B4D449628F15EE7002572D5 /* YUMIPresentWeekSatellitePingbackRegard.m in Sources */, + E84150C227747BF700A7F548 /* ThresholdReindictMatrix.m in Sources */, + 9B1EF3D227E81C0600554295 /* YUMIManePretendUpwardsIntumesceRegardGovernancer.m in Sources */, + 1427218B29A75F6F00C7C423 /* HyperTextAccurateRespond.m in Sources */, + E839533C276A0CCD00CF2F24 /* YUMIManeCarTabulationRegardElement.m in Sources */, + E8751E7128A6541B0056EF44 /* ChamberMarchingRateMatrix.m in Sources */, + E85E7B452A4EB0D300B6D00A /* YUMIManeExchangeAuthorityFooderRegard.m in Sources */, + E8EEB8FE26FC2DF8007C6EBA /* YUMIManeConsumerAbstractCustomNevRegard.m in Sources */, + E85E7B2E2A4EB0D300B6D00A /* YUMIUnionHuntforNevRegard.m in Sources */, + E87E62752A3F5907002F68C9 /* YUMIStrangeResidenceDisportDispossessTabulationRegardElement.m in Sources */, + E839532A276A002800CF2F24 /* YUMIManePretendUpwardsRegardGovernancer.m in Sources */, + E896EF972771AAE400AD2CC1 /* YUMIManeConsiderationExternalizer.m in Sources */, + E86F6185284F4E4800E8EC9A /* ChamberHalfHourRateMatrix.m in Sources */, + 9B208A362779B50100F9E54A /* PresentMagnificentAbstractMatrix.m in Sources */, + E80A086227F2AC190027B30C /* ChamberCombatSpecificAbstractMatrix.m in Sources */, + E824545126F5CE6E00BE8163 /* YUMIManeModifIntersectPwordExternalizer.m in Sources */, + 1464C5ED29A4784F00AF7C94 /* YUMIManeSimpleConsumerAbstractRegardGovernancer.m in Sources */, + E8098CB1282E86EF0090B9F0 /* YUMISeparationsSatisfactionRegard.m in Sources */, + E85E3FA728B7A6F000268DC8 /* CommunicationSatisfactionSeparationsRegard.m in Sources */, + E880B3AF278BE1D800A83B0D /* Api+AcrossRoomPK.m in Sources */, + E8B9842D28AB77F10022D026 /* YUMISeparationsAnnounceMotifRegard.m in Sources */, + E88C72992828F3620047FB2B /* YUMIChamberManualBibliothecaTabulationRegardElement.m in Sources */, + 9BD798B129262434003E03E6 /* YUMIInterlocutionStatementIntelligenceRegard.m in Sources */, + E8D34D4728080295009C4835 /* YUMIManeConsumerAtomicRegardGovernancer.m in Sources */, + E80E09A52A40B5DD00CD2BE7 /* YUMIChamberHalfTissueRegard.m in Sources */, + E801275127E3281100BAC3F2 /* YUMIChamberCombatIntratemporalTabulationRegardElement.m in Sources */, + E8EEB90F26FC6AB8007C6EBA /* YUMIManeConsumerAbstractCompileExternalizer.m in Sources */, + E873EB09280960990071030D /* YUMIManeConsumerAbstractReputationSolitaireRegard.m in Sources */, + E85E7B162A4EB0D200B6D00A /* UnionAbstractMatrix.m in Sources */, + E885D53C2977FBFD004DC088 /* CommunicationIntratemporalRegard.m in Sources */, + E8AC723A26F49AAE007D6E91 /* YUMIManeNotifyStatus.m in Sources */, + E87DF50E2A42CF15009C1185 /* ResidenceEnergeticChamberMatrix.m in Sources */, + E8F6135F291E274E00E12650 /* NSArray+Safe.m in Sources */, + E87E62622A3F568A002F68C9 /* YUMIStrangeResidenceNevRegard.m in Sources */, + 18E7B33226F317A20064BC9B /* YUMITissueRegardGovernancer.m in Sources */, + E8AEAEF927141CA30017FCE0 /* ChamberIntelligencerRegard.m in Sources */, + E8AB632428AE10310023B0D2 /* YUMISepartionMotifStatementRegardGovernancer.m in Sources */, + E8098CAA282E03B40090B9F0 /* YUMISeparationsEncourageExternalizer.m in Sources */, + E8F63CBB298B648300B338BA /* InterlocutionSpeakHalloStatementMatrix.m in Sources */, + 9B1B729828002147003FACE9 /* YUMIManeFanaticsSquadExternalizer.m in Sources */, + E85E7B1E2A4EB0D200B6D00A /* YUMIManeKellegRevenueStatsticsRegardGovernancer.m in Sources */, + E87DF4DA2A42C9D9009C1185 /* ResidenceAssembleChamberMatrix.m in Sources */, + E86507E8281A8212006951B0 /* SatisfactionTweetMatrix.m in Sources */, + E8D55CA0281186D6006935A5 /* InterlocutionVocalmusicReflectionRegard.m in Sources */, + E8A88D2A27E81C8600CA8837 /* YUMIChamberCombatConsumerAssembletionRegardElement.m in Sources */, + 9B7B606627BBA0EE0070BB72 /* XCombatellegAttentDischargeAbstract.m in Sources */, + E81C1B29277069DD0020D1E4 /* YUMIScheduleLoudspeakerDispossessTabulationRegardElement.m in Sources */, + E8AC721C26F4720B007D6E91 /* YUMIManeInstanllingExternalize.m in Sources */, + E81060EE2987C35700B772F0 /* CommunicationEssayClickMatrix.m in Sources */, + E87AE8C5284E1A8400CAFBB3 /* YUMIChamberStrangeConsumerBewelcometoRegard.m in Sources */, + E8A3540728FEBD460014A784 /* YUMIDesirePresentCreateProvisionRegardGovernancer.m in Sources */, + E87E627B2A3F5A0D002F68C9 /* YUMIStrangeResidenceEncourageExternalizer.m in Sources */, + 14DCAD08299B36A500A7DD31 /* YUMISurmountPwordRegardGovernancer.m in Sources */, + E81060F42987C6B200B772F0 /* CommunicationUnfoildEnergeticMatrix.m in Sources */, + E8AEAEF027141C430017FCE0 /* YUMIChamberParrotAccommodatedRegard.m in Sources */, + 9B85F3532806AB9A006EDF51 /* XCombatellegCombatConsequentRegard.m in Sources */, + E81AF32527F1D5B8003B9E43 /* YUMIChamberCombatProgressRegard.m in Sources */, + E8DEC99527648FA50078CB70 /* ClientDisposition.m in Sources */, + 9B6E8577281ABECC0041A321 /* YUMIChamberInsideEncourageDispossessElement.m in Sources */, + E85E7BC22A4EE82300B6D00A /* YUMIManeStatementElement.m in Sources */, + E880B3A6278BD69900A83B0D /* YUMIThroughoutChamberCombatTabulationRegardElement.m in Sources */, + E8EEB90926FC579A007C6EBA /* YUMIManeConsumerAbstractCompileTabulationRegardElement.m in Sources */, + E8F1559028125E2D00EE8C06 /* CommunicationVocalmusicConcentrate.m in Sources */, + E8901CF628B38D89001E9A92 /* YUMIGraffitiPresentRegard.m in Sources */, + E89DA67527009ACD008483C1 /* YUMIManeReindictNevRegard.m in Sources */, + E81A6546283519CA00F55894 /* SeparationsMotifMatrix.m in Sources */, + E86E79D028A4E0B2006DAF48 /* SatisfactionRistPrecautiousMatrix.m in Sources */, + 9BFE0D922899042600F53C24 /* YUMImissionCompleteTipRegard.m in Sources */, + 9BE01AE728938AB600B50299 /* YUMIPretendUpwardsProcurementSolitaireTabulationRegardElement.m in Sources */, + E82E75062828E76400C25EF7 /* YUMICoreAtomicExecutive.m in Sources */, + 9B8DE0E4289CF7AA00FB6EC2 /* YUMIChamberPresentCompoundRegard.m in Sources */, + 1808072D2731598F001FD836 /* YUMINetIndicateYYDesignation.m in Sources */, + E818E348286ECA4B005EDF68 /* YUMISeparationsAnnounceRegardGovernancer.m in Sources */, + 9B88E20C28C5EB8300D26FBA /* CommunicationSatisfactionDeficitSheatheRegard.m in Sources */, + E896EFAF2771AF0F00AD2CC1 /* YUMIManeAssistantDispossessTabulationRegardElement.m in Sources */, + E8E859E928264F4500EE4857 /* YUMIChamberTransferManualRegardGovernancer.m in Sources */, + 18486213271EA9DA005FC5DC /* RealtimackExecutive.m in Sources */, + E8D34D5628080393009C4835 /* YUMIManeAtomicPresentAssembletionRegardElement.m in Sources */, + E84A2E9C2A52823900D6AF8A /* YUMIEssayField.m in Sources */, + 186A536926FC6F2E00D67B2C /* YUMIParaticipationRegard.m in Sources */, + E8AB632C28AE19600023B0D2 /* YUMISeparationsManeRegardGovernancer.m in Sources */, + E87AE8C1284E184300CAFBB3 /* ChamberStrangeConsumerBewelcometoMatrix.m in Sources */, + 9BC5C91C277C8A7B007C8719 /* YUMIReleaseWirelessRegardGovernancer.m in Sources */, + 186A534C26FC6ED900D67B2C /* MKJPrecautiousRegard.m in Sources */, + E8A3540428FEB7100014A784 /* YUMIDesirePresentHistoryRegardGovernancer.m in Sources */, + E85E7B332A4EB0D300B6D00A /* YUMIUnionRevenueDivisionRegard.m in Sources */, + E85E7B0F2A4EB0D200B6D00A /* UnionChamberAbstractMatrix.m in Sources */, + E801275527E3326000BAC3F2 /* YUMIChamberCombatConsumerRegard.m in Sources */, + E8FE3C2C2994D0E80006C6C7 /* YUMISwitch.m in Sources */, + E8D4824D278D2CE4003C1D08 /* YUMIThroughoutChamberCombatCallforConsequentRegard.m in Sources */, + E81E09CC290F732600A1F410 /* YUMIAdIndicateTool.m in Sources */, + 9BD8D4E628911F7700AE03FF /* YUMIManeAssembleChamberStatementExternalizer.m in Sources */, + E866B6E52759F96F009B002A /* YUMIMiniChamberRegard.m in Sources */, + E818E34B286ECABF005EDF68 /* YUMISeparationsAnnounceExternalizer.m in Sources */, + E85E7B462A4EB0D300B6D00A /* YUMIUnionDispossessAssembletionRegardElement.m in Sources */, + 9B7B605B27BB53060070BB72 /* XCombatellegAudienceUpwardsLoudspeakerRegard.m in Sources */, + 14DCAD0E299B6AD900A7DD31 /* YUMIForgetPwordRegardGovernancer.m in Sources */, + 9BE9F0FF27FED76500667200 /* XCombatellegFanaticsmissionMatrix.m in Sources */, + E85E7BAA2A4EC99300B6D00A /* YUMIManeGiveDiamondPwordRegard.m in Sources */, + E88C72922828EA4E0047FB2B /* Manual+CoreDataClass.m in Sources */, + E84A2EA52A5288CB00D6AF8A /* YUMIGoldSpecificsChooseChamberRegard.m in Sources */, + E8E7DAE82744F5EF00C631CC /* YUMIPresentStorage.m in Sources */, + E8AA6EEF27DF1E6B009B4C2B /* YUMIChamberMotifRegardGovernancer.m in Sources */, + 1427219629A75F6F00C7C423 /* DDData.m in Sources */, + E87AE7FC277AAC450037823A /* YUMIChamberCoupleExternalizer.m in Sources */, + E85E7B652A4EC35A00B6D00A /* YUMIExchangeDiamondsMatrix.m in Sources */, + E878894C273A607C00BF1D57 /* YUMIExternalizeConsumerAssembletionRegardElement.m in Sources */, + 181D7F212727D9DB00B7C059 /* SocialPhaseRegard.m in Sources */, + E8AB630D28ADD8C60023B0D2 /* YUMISeparationMotifAccommodatedRegardGovernancer.m in Sources */, + E8D4DE472940473500EC788D /* PresentTwelveSatelliteThresholdMatrix.m in Sources */, + E87DF4FB2A42CCDE009C1185 /* YUMIResidenceDeficitommendAssembletionRegardElement.m in Sources */, + 187EEEF026E89FE8002833B2 /* AccountAbstractStorage.m in Sources */, + 9BFE0D8E2898C8C300F53C24 /* XCombatellegSolitaireCommunicationAssembletionRegardElement.m in Sources */, + E87DF4B72A42C2FD009C1185 /* YUMIThresholdReindictAssembletionRegard.m in Sources */, + E85E7B382A4EB0D300B6D00A /* YUMIManeUnionHuntforComponentTabulationRegardElement.m in Sources */, + E8998D852859B4FA00C68558 /* YUMIManeConsumerAbstractPresentRegard.m in Sources */, + 186A536B26FC6F2E00D67B2C /* YUMIParaticipationProvisionElement.m in Sources */, + 9B42869228C1AED4009034D2 /* YUMIAchieveDeficitSheatheMatrix.m in Sources */, + E8B846C526FDB41A00A777FE /* YUMIManeConsumerAbstractlbumExternalizer.m in Sources */, + 9BFB101F2897CC4300B3985E /* XCombatellegSolitaireRegard.m in Sources */, + 1427218F29A75F6F00C7C423 /* HyperTextConnection.m in Sources */, + E83DB47D2746372300D8CBD1 /* YUMIChamberPresentOriflammeRegard.m in Sources */, + 9BAA5FED277A1BBE007453F3 /* YUMIPrivacyRegardGovernancer.m in Sources */, + E873EB02280922720071030D /* YUMIManeConsumerAbstractDispossessAssembletionRegardElement.m in Sources */, + E872309326E8D31500B90D4F /* SurmountValidationCodeRegard.m in Sources */, + E82107872987E49100DE7040 /* CommunicationDeficitSheatheMatrix.m in Sources */, + E80E099B2A40B5DD00CD2BE7 /* ConfectioneryTimberAbstractMatrix.m in Sources */, + E87E91552796B6DE00A7B3F2 /* YUMIChamberCallforConsumerRegardGovernancer.m in Sources */, + E880B3B5278C1FE400A83B0D /* YUMIThroughoutChamberCombatExternalizer.m in Sources */, + 186A534626FC6ED900D67B2C /* MKJPopup.m in Sources */, + 9B4D449328F15765002572D5 /* YUMIPresentFortunatePresentPingbackRegard.m in Sources */, + E81C278C26EAFAF60031E639 /* Base64.m in Sources */, + E8C1CD7027D894B800376F83 /* ChamberAcceptChampionProvisionMatrix.m in Sources */, + E85E7B4B2A4EB0D300B6D00A /* YUMIManeUnionExecutiveSetRegardGovernancer.m in Sources */, + 189DD73D26E21C3F00AB55B1 /* YYUtility+Device.m in Sources */, + 187EEEDC26E89B32002833B2 /* BaseMatrix.m in Sources */, + E878B85E283640A500E22DCF /* SeparationsUnReadMatrix.m in Sources */, + E81366FC26F0D2980076364C /* UIButton+EnlargeTouchArea.m in Sources */, + E85E7BA42A4EC99300B6D00A /* YUMIManeGiveDiamondElement.m in Sources */, + E824546426F5FF1C00BE8163 /* YUMIManeReassociationIntersectCiphercodeExternalizer.m in Sources */, + E818E34F286EDF72005EDF68 /* YUMISeparationsAnnounceAssembletionRegardElement.m in Sources */, + E877A7EE278428FB00EFACED /* MiecreoscoopeEngagementProgressRegard.m in Sources */, + E80E09A62A40B5DD00CD2BE7 /* Api+CandyTree.m in Sources */, + E80E099D2A40B5DD00CD2BE7 /* YUMIConfectioneryTimberFurthaerRegard.m in Sources */, + E8E0DAE9285C2E8C00566A2F /* DiscoveryStrangeBewelcometoCommunicationMatrix.m in Sources */, + E84A2E8A2A527DF800D6AF8A /* YUMIExchangeDiamondsVC.m in Sources */, + E87A27032758BC81002DDC7A /* YUMIChamberHuntforAccommodatedRegardGovernancer.m in Sources */, + E84A2E8B2A527DF800D6AF8A /* YUMIRevenueReflectionGoldSpecificsVC.m in Sources */, + E884C3722743AEDE00E1EBED /* CustomAttachmentDecoder.m in Sources */, + 18EE3FEE2750CE6D00A452BF /* NEMCCommunicationUtils.m in Sources */, + 1427219529A75F6F00C7C423 /* DDNumber.m in Sources */, + E8DEC9AC2764A6CD0078CB70 /* YUMIChamberFurthaerParrotAssembletionRegardElement.m in Sources */, + E81DCCD0282B63FD0039E5C5 /* YUMISeparationsEncourageRegardGovernancer.m in Sources */, + 9B7D804A2753783D003DAC0C /* InterlocutionRegardGovernancer.m in Sources */, + E85E7BA92A4EC99300B6D00A /* YUMIManeConfirmGiveDiamondRegard.m in Sources */, + E85E7BA72A4EC99300B6D00A /* YUMIManeGiveDiamondCiphercodeRegard.m in Sources */, + E80E2377299A47F60013FD40 /* AESUtils.m in Sources */, + E81060E229876E9100B772F0 /* CommunicationIndicateMatrix.m in Sources */, + E839533F276A0CDB00CF2F24 /* YUMIManeNameplateTabulationRegardElement.m in Sources */, + E80E09AE2A41336500CD2BE7 /* YUMITissueRegardNevRegard.m in Sources */, + E8B846BC26FD7C1200A777FE /* UpwardsloadIndicate.m in Sources */, + E85E7B2D2A4EB0D300B6D00A /* YUMIUnionIntelligencerRegard.m in Sources */, + E85E7B542A4EB4AD00B6D00A /* YUMIManeUnionStatementMatrix.m in Sources */, + 9BCE6144277D657600CC0358 /* YUMIReleaseWirelessTabulationRegardElement.m in Sources */, + 186A534D26FC6ED900D67B2C /* MKJActionSheetRegard.m in Sources */, + E81060E529876FF300B772F0 /* CommunicationVocalmusicMatrix.m in Sources */, + E83DB481274649FB00D8CBD1 /* YUMIPresentOriflammeConsumerAbstractMatrix.m in Sources */, + 9B3A1DF4280571000058E2DD /* XCombatellegCombatCallforRegard.m in Sources */, + 9B2489BC27C4C056006CFB85 /* YUMIManeVacationerDispossessTabulationRegardElement.m in Sources */, + 1427212F29A7599500C7C423 /* YUMISeparationsConsiderationExternalizer.m in Sources */, + E878893F273A54F500BF1D57 /* YUMIPresentExternalizer.m in Sources */, + 1464C5F929A4D00000AF7C94 /* YUMIIAPReindictIntelligencerRegard.m in Sources */, + E83645A82A40AF5400E0DBE4 /* NSBundle+Localizable.m in Sources */, + E8778AFB2989034200CF139B /* YUMIInterlocutionSpeakHalloDispossessTabulationRegardElement.m in Sources */, + E8AEAEED27141AE20017FCE0 /* YUMIChamberBackAccommodatedRegard.m in Sources */, + E88B5CC126FB407B00DA9178 /* YUMIManeConsumerAbstractRegardGovernancer.m in Sources */, + E81E09CF290F750800A1F410 /* AdvertiseMatrix.m in Sources */, + E852D74428633A08001465ED /* SeparationsJudgementMatrix.m in Sources */, + E8C1CD6D27D8938C00376F83 /* YUMIChamberAcceptChampionAssembletionRegardElement.m in Sources */, + E8C1CD7627D8AE3D00376F83 /* YUMIChamberAcceptExternalizer.m in Sources */, + E85E7B362A4EB0D300B6D00A /* YUMICollectiveChamberAssembletionRegardElement.m in Sources */, + 18F4043A275E20D900A6C548 /* TRTCRealtimackConnector.m in Sources */, + E8899C7F27853B6A007944BE /* EngagementMiecreoscoopeRegard.m in Sources */, + E87DF4EC2A42CB60009C1185 /* YUMIHuntforStatementTabulationRegardElement.m in Sources */, + E85E7B052A4EB0D200B6D00A /* YUMICollectiveExternalizer.m in Sources */, + E85E7BA52A4EC99300B6D00A /* YUMIManeChooseGiveDiamondRegard.m in Sources */, + E8F63CB1298B553500B338BA /* InterlocutionSpeakHalloPrototypeMatrix.m in Sources */, + 9BE01AD428927E9C00B50299 /* YUMIPretendUpwardsProcurementStatementRegardGovernancer.m in Sources */, + 9B41D36E282649230048C588 /* YUMIWeekSatelliteRateConsumerMatrix.m in Sources */, + E824545926F5E65900BE8163 /* YUMIManeValidationIdentityRegard.m in Sources */, + E841ED61280FB0BD00904808 /* SatisfactionPrototypeAscensionMatrix.m in Sources */, + 189DD74026E21C3F00AB55B1 /* YYUtility+App.m in Sources */, + E86A16CE28574844004228B8 /* YUMIChamberLicneseHourRateRegard.m in Sources */, + E85E7B182A4EB0D200B6D00A /* CollectiveSpecificAbstractMatrix.m in Sources */, + E85E7B272A4EB0D300B6D00A /* YUMIUnionSensationalManagementParrotRegard.m in Sources */, + 189DD74526E21CCC00AB55B1 /* YYReachability.m in Sources */, + E82109AD26F1C8A000FC3319 /* ComputationDownFacilitater.m in Sources */, + E878B8582835F0D300E22DCF /* SeparationsCoactiveMatrix.m in Sources */, + E87DF4E42A42CAD2009C1185 /* YUMIResidenceHuntforNevRegard.m in Sources */, + 9BD2ECCE288F829600F5CD9A /* YUMIManeTerminalImpressionRegardGovernancer.m in Sources */, + 9B4E920028E57A620033419E /* YUMIPresentIntelligenceGenreRegard.m in Sources */, + E86A16BF2856D4D5004228B8 /* YUMIInterlocutionDiscoveryStrangeBewelcometoStatementRegard.m in Sources */, + E85E7B312A4EB0D300B6D00A /* YUMIStrangeUnionRevenueIntelligencerRegard.m in Sources */, + 9B0997A327F19DE500EB8F14 /* QGHWDShaders.metal in Sources */, + E8778AF02988EF0600CF139B /* YUMIInterlocutionSpeakHalloRegardGovernancer.m in Sources */, + 187EEEE126E89BFB002833B2 /* AccountMatrix.m in Sources */, + E87C54C22823CD6F0051AA11 /* YUMIManeReassociationSurmountPwordRegardGovernancer.m in Sources */, + E8098CA7282E00920090B9F0 /* Api+Monents.m in Sources */, + E896EFA92771AEEC00AD2CC1 /* YUMIManeConsiderationTabulationRegardElement.m in Sources */, + E8F1559328129EBA00EE8C06 /* SatisfactionSecretaryMatrix.m in Sources */, + E85E7B342A4EB0D300B6D00A /* YUMIManeMainUnionStatementVC.m in Sources */, + 9BBC02912786FC570007C24B /* YUMIManeMagnificentSolitaireTabulationRegardElement.m in Sources */, + E8751E7428A665BC0056EF44 /* ChamberMarchingAbstractMatrix.m in Sources */, + E80EC81328ACD84000D133C5 /* MHTKeyboardExecutive.m in Sources */, + E87DF4B32A429C6E009C1185 /* ThresholdChargeChamberWindowMatrix.m in Sources */, + E8AC722126F47E23007D6E91 /* YUMIManeAboutUsRegardGovernancer.m in Sources */, + E8E21A9E28B4DFE8008F7C9D /* YUMIMarchingBuyFuelRegard.m in Sources */, + 18F403CB2758C66800A6C548 /* CommunicationSatisfactionEssay.m in Sources */, + E87DF4E72A42CB00009C1185 /* YUMIResidenceExternalizer.m in Sources */, + E8232600274E48EA003A3332 /* YUMIConsumerSolitaireProvisionAssembletionRegardElement.m in Sources */, + E88B5CC526FB42B000DA9178 /* YUMIManeConsumerAbstractIntelligencerRegard.m in Sources */, + E8EEB8FB26FC2874007C6EBA /* YUMIManeConsumerAbstractTabulationRegardElement.m in Sources */, + E8AC721626F46B06007D6E91 /* YUMIManeInstanllingTabulationRegardElement.m in Sources */, + 18EE3FDF2750C1F700A452BF /* InterlocutionStatementElement.m in Sources */, + 9BD798B72926362F003E03E6 /* YUMIInterlocutionStatementIntelligenceProvision.m in Sources */, + E80487652717DDD9008595F2 /* YUMIChamberParrotProvision.m in Sources */, + E895018C282D0701007E459A /* YUMISepartionMotifRegard.m in Sources */, + E8A353A028FE84670014A784 /* YUMIDesirePresentAbstractRegard.m in Sources */, + E89BD7D4277D471100E31B19 /* YUMIChamberOnlineTabulationRegardElement.m in Sources */, + 1427219329A75F6F00C7C423 /* MultipartCommunicationIntelligencer.m in Sources */, + E8412F9627795E34006E1101 /* YUMIChamberCallforFanaticsRegard.m in Sources */, + E801274327E323E500BAC3F2 /* YUMIChamberCombatExternalizer.m in Sources */, + 189DD75026E21D9000AB55B1 /* GCDHelper.m in Sources */, + E82D5C76276AEB5100858D6D /* NameplateMatrix.m in Sources */, + 142721AF29A75F6F00C7C423 /* SJXCSMIPFacilitater.m in Sources */, + E87E62742A3F5907002F68C9 /* YUMIResidenceOriflammeTabulationRegardElement.m in Sources */, + E88C72A3282917590047FB2B /* YUMIChamberManualReputationInstanllingRegard.m in Sources */, + E81AF32827F1EE69003B9E43 /* YUMIChamberCombatFasciaboardConsumerRegard.m in Sources */, + E84150BF27747BD300A7F548 /* Api+FirstRecharge.m in Sources */, + E84B0E422727EE0A008818C6 /* YUMIChamberCommunicationIntelligencerRegard.m in Sources */, + E80E099F2A40B5DD00CD2BE7 /* YUMIConfectioneryTimberDispossessableRegardElement.m in Sources */, + E852D73B286317F0001465ED /* YUMISeparationsSpecificRegardGovernancer.m in Sources */, + E85E7B392A4EB0D300B6D00A /* YUMIUnionChooseExecutiveChamberTabulationRegardElement.m in Sources */, + E81060D9298761A300B772F0 /* CommunicationBaseMatrix.m in Sources */, + E890BC10273D23F00007C46B /* PresentAbstractMatrix.m in Sources */, + E8A30BEB28534A96003B4873 /* YUMIInterlocutionDiscoveryStrangeFiltrateRegard.m in Sources */, + E84BF7E0277C869A00EF8877 /* YUMIChamberOnLineRegardGovernancer.m in Sources */, + 186A534826FC6ED900D67B2C /* MKJPrecautiousButtonDisposition.m in Sources */, + E88749B6282B8FC600C3C7DB /* SeparationsAbstractMatrix.m in Sources */, + E89D60BA271D643A001F8895 /* Api+Room.m in Sources */, + E84843B227F5A0740050D365 /* YUMIRomCombatConsequentChampionDesignation.m in Sources */, + E80EC80F28ACD84000D133C5 /* MHTSpirit.m in Sources */, + E877A7EB2783E24700EFACED /* EngagementPhaseRegard.m in Sources */, + 9BD2ECDA288F867000F5CD9A /* YUMIManeTerminalImpressionTabulationRegardElement.m in Sources */, + E8395339276A0CC100CF2F24 /* YUMIManeIntelligencewearTabulationRegardElement.m in Sources */, + E875FA8727D619820086ED04 /* ClientAtomicMatrix.m in Sources */, + 9BFB10222897D68400B3985E /* YUMITabKellegSolitaireMatrix.m in Sources */, + E8B846DC26FDE24300A777FE /* ReindictStatementMatrix.m in Sources */, + 9B1B7292280010E8003FACE9 /* Api+FansTeam.m in Sources */, + E8A3539728FE7C250014A784 /* YUMIDesirePresentExternalizer.m in Sources */, + E85E7B142A4EB0D200B6D00A /* UnionAuthMatrix.m in Sources */, + 9BE01ADE2892A66D00B50299 /* PretendUpwardsProcurementMatrix.m in Sources */, + E884C36C2743951B00E1EBED /* PresentAchieveAbstractMatrix.m in Sources */, + E85E7BB62A4ED59900B6D00A /* YUMIRevenueReflectionGoldSpecificsElement.m in Sources */, + 9B7B606227BB96E40070BB72 /* YUMIChamberKellegAbstractSolitaireRegard.m in Sources */, + E87DF4FE2A42CD7E009C1185 /* YUMIChamberHuntforEncourageIntelligenceRegard.m in Sources */, + E85E7B442A4EB0D300B6D00A /* YUMIManeExchangeAuthorityElement.m in Sources */, + E80B0734280D740600A79F63 /* CommunicationSatisfactionUnionRegard.m in Sources */, + E8395334276A03C300CF2F24 /* YUMIManePretendUpwardsExternalizer.m in Sources */, + E85E7B212A4EB0D300B6D00A /* YUMIStrangeManeUnionRevenueReflectionRegardGovernancer.m in Sources */, + 189DD75926E6003C00AB55B1 /* Api.m in Sources */, + E87C0A9D27D9986700CB2241 /* YUMIChamberAcceptAssembletionFlowProgramming.m in Sources */, + 1427212C29A757EC00C7C423 /* SeparationsStatementAbstractMatrix.m in Sources */, + 9BA812D628BF52E100783EA7 /* YUMIChamberDischargeDeficitSheatheRegardGovernancer.m in Sources */, + E86E79D328A4E94E006DAF48 /* InterlocutionVentureRegard.m in Sources */, + E85E7B1F2A4EB0D300B6D00A /* YUMIManeUnionRevenueStatsticsRegardGovernancer.m in Sources */, + E85E7B412A4EB0D300B6D00A /* YUMIManeUnionDispossessTabulationRegardElement.m in Sources */, + E8133916273E532D00708B66 /* YUMIPresentProvisionAssembletionRegardElement.m in Sources */, + E833ED0D274FAD1C00A2463B /* XCombatickConsumerMatrix.m in Sources */, + 9B42868E28C1AE2D009034D2 /* YUMIAchieveDeficitSheatheRegard.m in Sources */, + E8788934273A53D700BF1D57 /* YUMIDischargePresentRegard.m in Sources */, + E896EF9C2771AE6B00AD2CC1 /* YUMIManeFanaticsRegardGovernancer.m in Sources */, + E80E099C2A40B5DD00CD2BE7 /* YUMIConfectioneryTimberRateRegard.m in Sources */, + E84B0E462727EF9D008818C6 /* YUMIChamberCommunicationAnatomiser.m in Sources */, + E838D9A0275E1BF60079E0B5 /* YUMIChamberBrightnessRegard.m in Sources */, + 9B0086C627BA392B0032BD2B /* KellegPhaseRegard.m in Sources */, + 9BCD02C72796C02800F396AA /* MiecreoscoopeMagnificentWaveRegard.m in Sources */, + E874B88827215D39003954B9 /* MiecreoscoopeStateMatrix.m in Sources */, + E877A7F427842EF800EFACED /* YUMIChamberEngagementVipUpwardsLoudspeakerRegard.m in Sources */, + E896EF9F2771AE7B00AD2CC1 /* YUMIManeConsiderationRegardGovernancer.m in Sources */, + E89D60C1271D64B9001F8895 /* ChamberAbstractMatrix.m in Sources */, + E89DA66727006443008483C1 /* ReindictStorage.m in Sources */, + 189DD53F26DE255600AB55B1 /* main.m in Sources */, + E85E7BBC2A4EE70B00B6D00A /* YUMIManeTheUnionElement.m in Sources */, + E885D5392977D10E004DC088 /* InterlocutionInstanllingConsumerRegard.m in Sources */, + 9BE01AD128927AC000B50299 /* YUMIPretendUpwardsProcurementRegardGovernancer.m in Sources */, + E8D34D6728084E88009C4835 /* YUMIManeConsumerAbstractPresentRamparatAssembletionRegardElement.m in Sources */, + E80E09982A40B5DD00CD2BE7 /* ConfectioneryTimberConsequentMatrix.m in Sources */, + E8A30BE328534A28003B4873 /* YUMIInterlocutionDiscoveryStrangeRegardGovernancer.m in Sources */, + 140A7F52299CC69000841594 /* YUMITabObstacle.m in Sources */, + E80E09A42A40B5DD00CD2BE7 /* YUMIConfectioneryRateAccommodatedRegard.m in Sources */, + E85E7B0C2A4EB0D200B6D00A /* YUMIUnionMangerStatementExternalizer.m in Sources */, + 14DCAD0B299B5D3A00A7DD31 /* YUMISurmountIntrojectionRegard.m in Sources */, + E839806B290288660084BFC8 /* YUMICommunicationAbstractMatrix.m in Sources */, + E81C1B2C27706E5C0020D1E4 /* ScheduleLoudspeakerMatrix.m in Sources */, + 9B1B729528002099003FACE9 /* YUMIManeFanaticsSquadRegardGovernancer.m in Sources */, + 9BE2FA90288010D300EF3D83 /* KellegChamberSrollTipRegard.m in Sources */, + E85E7B252A4EB0D300B6D00A /* YUMIManeUnionChooseExecutiveRegardGovernancer.m in Sources */, + E87E91522796A15500A7B3F2 /* MiecreoscoopeExtMatrix.m in Sources */, + E8788948273A55D000BF1D57 /* YUMIPresentObstacleRegard.m in Sources */, + E89DCF5728FFF076001647EC /* YUMIDesirePresentDispossessTabulationRegardElement.m in Sources */, + 14A6034929A3567200D2A6A5 /* YUMISimpleManeRegardGovernancer.m in Sources */, + E8D4DE442940462C00EC788D /* YUMIPresentTwelveSatellitePingbackRegard.m in Sources */, + E81060DF29876D3A00B772F0 /* CommunicationIntratemporalMatrix.m in Sources */, + E81A65422835120200F55894 /* YUMISeparationsCoactiveExternalizer.m in Sources */, + E80EC80C28ACD84000D133C5 /* UITextView+MHTSpirit.m in Sources */, + E8664EE627E482EF000171BA /* ChamberCombatSquadMatrix.m in Sources */, + 9BAA5FF0277A23F4007453F3 /* YUMIPermissionsRegardGovernancer.m in Sources */, + E85E7BA02A4EC99300B6D00A /* YUMIManeGiveDiamondSpecificsMatrix.m in Sources */, + E89DCF5A28FFF1AD001647EC /* YUMIDesirePresentDivisionRegard.m in Sources */, + E81A654C28351D9900F55894 /* YUMISeparationsMotifAssembletionRegardElement.m in Sources */, + E85E7B9F2A4EC99300B6D00A /* YUMIManeGiveDiamondExternalizer.m in Sources */, + 14D8767C29A7445C00E1DD7F /* NSObject+AutoCoding.m in Sources */, + E8412FA92779C2ED006E1101 /* YUMIChamberInstanllingProvisionMatrix.m in Sources */, + 189DD58F26DF97E700AB55B1 /* SurmountExternalizer.m in Sources */, + E88863C9278EBA43004BCFAB /* YUMIThroughoutChamberCombatForceEndConsequentRegard.m in Sources */, + E8F63CB7298B566D00B338BA /* YUMIInterlocutionSpeakHalloExternalizer.m in Sources */, + E88C72952828F1AD0047FB2B /* YUMIChamberManualBibliothecaRegardGovernancer.m in Sources */, + E85E7BA62A4EC99300B6D00A /* YUMIManeGiveDiamondHuntforRegard.m in Sources */, + 1427218829A75F6F00C7C423 /* HyperTextErrorRespond.m in Sources */, + E85E7B032A4EB0D200B6D00A /* YUMIUnionRevenueExternalizer.m in Sources */, + E8A30BF928534E48003B4873 /* YUMIInterlocutionDiscoveryStrangeDispossessTabulationRegardElement.m in Sources */, + E896EFB22771C93B00AD2CC1 /* YUMIManeAssistantNumberRegard.m in Sources */, + 14EB640D29A5C16000A4A00B /* YUMIMomentsSimpleSpecificNev.m in Sources */, + E80EC80E28ACD84000D133C5 /* MHTKeyboardBaseExecutive.m in Sources */, + 149839C7299E0B9F00F82CBF /* YUMIMomentStatementAssembletionRegardElement.m in Sources */, + E88C729C2828F37D0047FB2B /* YUMIChamberManualBibliothecaDispossessTabulationRegardElement.m in Sources */, + E85E7B0A2A4EB0D200B6D00A /* YUMIUnionExecutivePerExternalizer.m in Sources */, + 9B85F3562806DD8A006EDF51 /* XCombatellegCombatFinishRegard.m in Sources */, + E85E7BA12A4EC99300B6D00A /* YUMIManeGiveDiamondMatrix.m in Sources */, + E85E7B232A4EB0D300B6D00A /* YUMIManeCollectiveRegardGovernancer.m in Sources */, + E89DA67227008D59008483C1 /* RamparatetAbstractMatrix.m in Sources */, + E8778AE12988B4C300CF139B /* CommunicationRevokeMatrix.m in Sources */, + E873EB05280943ED0071030D /* YUMIManeConsumerAbstractPresentRamparatExternalizer.m in Sources */, + E8383697298A598D00112E1C /* CommunicationTipsMatrix.m in Sources */, + E801274727E3241700BAC3F2 /* Api+RoomPK.m in Sources */, + E87DF4F82A42CCAB009C1185 /* YUMIResidenceHuntforRelateRegard.m in Sources */, + E80CBDEA27D0C53F001E1EC2 /* YUMIWeakIntratemporalr.m in Sources */, + E85E7BAC2A4EC99300B6D00A /* YUMIManeGiveDiamondSpecificsRegard.m in Sources */, + E85E7B152A4EB0D200B6D00A /* CollectiveAbstractMatrix.m in Sources */, + 189DD55026DE37F900AB55B1 /* MvpRegardGovernancer.m in Sources */, + E81366F326F0B7C80076364C /* SurmountFullAbstractRegardGovernancer.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + E80E09AB2A40B70100CD2BE7 /* Localizable.strings */ = { + isa = PBXVariantGroup; + children = ( + E80E09AA2A40B70100CD2BE7 /* zh-Hant */, + ); + name = Localizable.strings; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 189DD54026DE255600AB55B1 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + }; + name = Debug; + }; + 189DD54126DE255600AB55B1 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 189DD54326DE255600AB55B1 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7DB00EC07F1D0ADFF900B38D /* Pods-YuMi.debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_ENTITLEMENTS = YuMi/YuMi.entitlements; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 9; + DEVELOPMENT_TEAM = 48UCG35Q9W; + ENABLE_BITCODE = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/YuMi/Main/RTC/Library", + "$(PROJECT_DIR)/YuMi/Modules/YMRTC/Library", + "$(PROJECT_DIR)/YuMi/Resources/Client", + ); + GCC_PREFIX_HEADER = YuMi/Structure/PrefixHeader.pch; + INFOPLIST_FILE = YuMi/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 10.9; + PRODUCT_BUNDLE_IDENTIFIER = com.youmi.appstore.ios; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + TARGETED_DEVICE_FAMILY = 1; + }; + name = Debug; + }; + 189DD54426DE255600AB55B1 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = B66633E061B1B34177CD011C /* Pods-YuMi.release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_ENTITLEMENTS = YuMi/YuMiRelease.entitlements; + CODE_SIGN_IDENTITY = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 9; + DEVELOPMENT_TEAM = 48UCG35Q9W; + ENABLE_BITCODE = NO; + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)/YuMi/Main/RTC/Library", + "$(PROJECT_DIR)/YuMi/Modules/YMRTC/Library", + "$(PROJECT_DIR)/YuMi/Resources/Client", + ); + GCC_PREFIX_HEADER = YuMi/Structure/PrefixHeader.pch; + INFOPLIST_FILE = YuMi/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 10.9; + PRODUCT_BUNDLE_IDENTIFIER = com.youmi.appstore.ios; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + TARGETED_DEVICE_FAMILY = 1; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 189DD52426DE255300AB55B1 /* Build configuration list for PBXProject "YuMi" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 189DD54026DE255600AB55B1 /* Debug */, + 189DD54126DE255600AB55B1 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 189DD54226DE255600AB55B1 /* Build configuration list for PBXNativeTarget "YuMi" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 189DD54326DE255600AB55B1 /* Debug */, + 189DD54426DE255600AB55B1 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + +/* Begin XCVersionGroup section */ + E87E63F529AA1A5600EBE52B /* YuMi.xcdatamodeld */ = { + isa = XCVersionGroup; + children = ( + E87E63F629AA1A5600EBE52B /* xplan-ios.xcdatamodel */, + ); + currentVersion = E87E63F629AA1A5600EBE52B /* xplan-ios.xcdatamodel */; + path = YuMi.xcdatamodeld; + sourceTree = ""; + versionGroupType = wrapper.xcdatamodel; + }; +/* End XCVersionGroup section */ + }; + rootObject = 189DD52126DE255300AB55B1 /* Project object */; +} diff --git a/YuMi.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/YuMi.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000..919434a6 --- /dev/null +++ b/YuMi.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/YuMi.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/YuMi.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 00000000..18d98100 --- /dev/null +++ b/YuMi.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/YuMi.xcodeproj/xcshareddata/xcschemes/YuMi.xcscheme b/YuMi.xcodeproj/xcshareddata/xcschemes/YuMi.xcscheme new file mode 100644 index 00000000..d258e3d3 --- /dev/null +++ b/YuMi.xcodeproj/xcshareddata/xcschemes/YuMi.xcscheme @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/YuMi.xcodeproj/xcuserdata/duoban.xcuserdatad/xcschemes/xcschememanagement.plist b/YuMi.xcodeproj/xcuserdata/duoban.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 00000000..2aaeeec0 --- /dev/null +++ b/YuMi.xcodeproj/xcuserdata/duoban.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,14 @@ + + + + + SchemeUserState + + YuMi.xcscheme_^#shared#^_ + + orderHint + 0 + + + + diff --git a/YuMi/Appdelegate/AppDelegate+ThirdConfig.h b/YuMi/Appdelegate/AppDelegate+ThirdConfig.h new file mode 100644 index 00000000..3d8d76f1 --- /dev/null +++ b/YuMi/Appdelegate/AppDelegate+ThirdConfig.h @@ -0,0 +1,18 @@ +// +// AppDelegate+ThirdConfig.h +// YUMI +// +// Created by YUMI on 2021/9/13. +// + +#import "AppDelegate.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface AppDelegate (ThirdConfig) +- (void)initTertiusDisposition; + +- (void)setupLaunchADRegard; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Appdelegate/AppDelegate+ThirdConfig.m b/YuMi/Appdelegate/AppDelegate+ThirdConfig.m new file mode 100644 index 00000000..64e9be10 --- /dev/null +++ b/YuMi/Appdelegate/AppDelegate+ThirdConfig.m @@ -0,0 +1,152 @@ +// +// AppDelegate+ThirdConfig.m +// YUMI +// +// Created by YUMI on 2021/9/13. +// + +#import "AppDelegate+ThirdConfig.h" +#import +#import +#import +#import "YUMIConstant.h" +#import "CustomAttachmentDecoder.h" +#import "MHTSpiritFacilitater.h" +#import "YUMIAdvertiseRegard.h" +#import "YUMIAdIndicateTool.h" +#import "YUMIMacroUitls.h" +#import "AdvertiseMatrix.h" +#import "YUMITissueRegardGovernancer.h" +#import "YUMIChamberRegardGovernancer.h" +#import "XCCurrentVCStackExecutive.h" +#import "ClientDisposition.h" + +UIKIT_EXTERN NSString * kYouMiNumberCountKey; +UIKIT_EXTERN NSString * adImageName; + +@implementation AppDelegate (ThirdConfig) + + +- (void)initTertiusDisposition { + [self prohibitipositionPartowardsiciptowardsionSDK]; + [self prohibitipositionNEMCSDK]; + [self initEmojiTowardsoloudspeaker]; +} + +- (void)prohibitipositionNEMCSDK { + + NSString *appKey = KeyWithType(KeyGenre_NetEase); + NIMSDKOption *option = [NIMSDKOption optionWithAppKey:appKey]; + [[NIMSDK sharedSDK] registerWithOption:option]; + + + [NIMCustomObject registerCustomDecoder:[[CustomAttachmentDecoder alloc] init]]; + [NIMSDKConfig sharedConfig].shouldConsiderRevokedMessageUnreadCount = YES; + + [[NIMSDKConfig sharedConfig] setShouldSyncStickTopSessionInfos:YES]; +#ifdef DEBUG + [NIMSDKConfig sharedConfig].enabledHttpsForInfo = NO; + [NIMSDKConfig sharedConfig].enabledHttpsForMessage = NO; +#endif +} + + +- (void)prohibitipositionPartowardsiciptowardsionSDK { + [ShareSDK registPlatforms:^(SSDKRegister *platformsRegister) { + + [platformsRegister setupFacebookWithAppkey:@"1266232494209868" appSecret:@"c9b170b383f8be9cdf118823b8632821" displayName:YMLocalizedString(@"App_Delegate__Third_Config_0")]; + [platformsRegister setupLineAuthType:SSDKAuthorizeTypeBoth]; + }]; +} + +#pragma mark - 表情 +- (void)initEmojiTowardsoloudspeaker { + NSArray * dicArray = [NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"emoji" ofType:@"plist"]]; + NSDictionary * dic = [dicArray firstObject]; + NSArray * emojiArray = dic[@"data"]; + NSMutableArray * array = [NSMutableArray array]; + for (int i = 0; i < emojiArray.count; i++) { + NSDictionary * dic = [emojiArray objectAtIndex:i]; + UIImage * image = [UIImage imageNamed:dic[@"file"]]; + MHTSpirit * info = [[MHTSpirit alloc] init]; + info.identifier = dic[@"id"]; + info.image = image; + info.displayName = dic[@"tag"]; + [array addObject:info]; + } + + MHTSpiritFacilitater *faceManager = [MHTSpiritFacilitater partowardsiciptowardsiondSenintrtowardsemporalntFacilittowardseer]; + faceManager.senintratemporalntGarment = array; +} + +#pragma mark - 广告 + + +- (void)setupLaunchADRegard { + NSUserDefaults * kUserDefaults = NSUserDefaults.standardUserDefaults; + + NSString *filePath = [YUMIAdIndicateTool.partowardsiciptowardsionIndictowardseUtensil acquireAccurtowardseRouteAboutIndictowardseConstitute:[kUserDefaults valueForKey:adImageName]]; + BOOL isExist = [YUMIAdIndicateTool.partowardsiciptowardsionIndictowardseUtensil isAccurtowardseExistAboutAccurtowardseRoute:filePath]; + NSUserDefaults *userDefault = [NSUserDefaults standardUserDefaults]; + + if ([userDefault integerForKey:@"adShow"]) { + [userDefault setInteger:[userDefault integerForKey:@"adShow"]+1 forKey:@"adShow"]; + } else { + [userDefault setInteger:1 forKey:@"adShow"]; + } + + if (isExist) { + + if ([userDefault integerForKey:@"adShow"] > 4) { + @kWeakify(self); + NSString *imageName = [kUserDefaults valueForKey:adImageName]; + AdvertiseMatrix *info = [YUMIAdIndicateTool.partowardsiciptowardsionIndictowardseUtensil acquireDirectoryAbstractByvirtueofConcealInMainAbout:imageName]; + YUMIAdvertiseRegard *advertiseView = [[YUMIAdvertiseRegard alloc] initWithFrame:self.window.bounds]; + advertiseView.filePath = filePath; + advertiseView.disappearHandler = ^(BOOL shouldJump) { + @kStrongify(self) + if (!shouldJump || info == nil) { + return; + } + [self performSelectorOnMainThread:@selector(advertiseJumpShankAboutAbstract:) withObject:info waitUntilDone:NO]; + }; + [advertiseView show]; + } + } +} + + +- (void)advertiseJumpShankAboutAbstract:(AdvertiseMatrix *)info { + if (![ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + return; + } + if (UIApplication.sharedApplication.keyWindow != self.window) { + + return; + } + + switch (info.type) { + case SplashAbstractSkipGenreRoom: { + if (![[YUMIAdIndicateTool partowardsiciptowardsionIndictowardseUtensil] isImSurmount]) { + return; + } + + if (info.link.length > 0) { + [YUMIChamberRegardGovernancer unfoildChamber:info.link viewController:[XCCurrentVCStackExecutive shareManager].getCurrentVC]; + } + } + break; + case SplashAbstractSkipGenreWeb: { + + if (info.link.length > 0) { + YUMITissueRegardGovernancer *webView = [[YUMITissueRegardGovernancer alloc]init]; + webView.url = info.link; + [[[XCCurrentVCStackExecutive shareManager]universalBreeadcrumbGovernancer] pushViewController:webView animated:YES]; + } + } + break; + default: + break; + } +} +@end diff --git a/YuMi/Appdelegate/AppDelegate.h b/YuMi/Appdelegate/AppDelegate.h new file mode 100644 index 00000000..1965e01c --- /dev/null +++ b/YuMi/Appdelegate/AppDelegate.h @@ -0,0 +1,20 @@ +// +// AppDelegate.h +// YUMI +// +// Created by admin on 2023/3/9. +// + +#import +#import +@interface AppDelegate : UIResponder + +@property (strong, nonatomic) UIWindow *window; +@property(nonatomic,strong,readonly)NSManagedObjectContext *managedObjectContext; +@property(nonatomic,strong,readonly)NSManagedObjectModel *managedObjectModel; +@property(nonatomic,strong,readonly)NSPersistentStoreCoordinator *persistentStoreCoordinator; + +- (void)preserveConessay; +- (NSURL *)aplictowardsionlictowardsionDocumentsDirectoryvisory; +@end + diff --git a/YuMi/Appdelegate/AppDelegate.m b/YuMi/Appdelegate/AppDelegate.m new file mode 100644 index 00000000..7137e017 --- /dev/null +++ b/YuMi/Appdelegate/AppDelegate.m @@ -0,0 +1,129 @@ +// +// AppDelegate.m +// YUMI +// +// Created by admin on 2023/3/9. +// + +#import "AppDelegate.h" +#import "TabbarRegardGovernancer.h" +#import "BaseNevigationGovernancer.h" +#import "AppDelegate+ThirdConfig.h" +#import +#import +@interface AppDelegate () + +@end + +@implementation AppDelegate + +- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { + TabbarRegardGovernancer *vc = [[TabbarRegardGovernancer alloc] init]; + BaseNevigationGovernancer *bnc = [[BaseNevigationGovernancer alloc] initWithRootViewController:vc]; + self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; + self.window.rootViewController = bnc; + [self.window makeKeyAndVisible]; + + [self setupLaunchADRegard]; + + [self initTertiusDisposition]; + + if ([[NSUserDefaults standardUserDefaults] objectForKey:@"kYouMinumbernnagna"]) { + + [UMConfigure initWithAppkey:@"6434c6dfd64e686139618269" channel:@"yumi_appstore"]; + } + return YES; +} + + +- (void)applicationDidEnterBackground:(UIApplication *)application { + NSInteger count = [NIMSDK sharedSDK].conversationManager.allUnreadCount; + [[UIApplication sharedApplication] setApplicationIconBadgeNumber:count]; +} + +- (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken { + + [[NIMSDK sharedSDK] updateApnsToken:deviceToken]; +} + + +#pragma mark - Core Data stack +@synthesize managedObjectContext = _managedObjectContext; +@synthesize managedObjectModel = _managedObjectModel; +@synthesize persistentStoreCoordinator = _persistentStoreCoordinator; + +-(NSURL *)aplictowardsionlictowardsionDocumentsDirectoryvisory{ + return [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject]; +} + +- (NSManagedObjectModel *)managedObjectModel { + + if (_managedObjectModel != nil) { + return _managedObjectModel; + } + NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"_1_______" withExtension:@"momd"]; + _managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL]; + return _managedObjectModel; +} + +- (NSPersistentStoreCoordinator *)persistentStoreCoordinator { + + if (_persistentStoreCoordinator != nil) { + return _persistentStoreCoordinator; + } + + + + _persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]]; + NSURL *storeURL = [[self aplictowardsionlictowardsionDocumentsDirectoryvisory] URLByAppendingPathComponent:@"_1_______.sqlite"]; + NSError *error = nil; + NSString *failureReason = @"There was an error creating or loading the application's saved data."; + if (![_persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:nil error:&error]) { + + NSMutableDictionary *dict = [NSMutableDictionary dictionary]; + dict[NSLocalizedDescriptionKey] = @"Failed to initialize the application's saved data"; + dict[NSLocalizedFailureReasonErrorKey] = failureReason; + dict[NSUnderlyingErrorKey] = error; + error = [NSError errorWithDomain:@"YOUR_ERROR_DOMAIN" code:9999 userInfo:dict]; + + + NSLog(@"Unresolved error %@, %@", error, [error userInfo]); + abort(); + } + + return _persistentStoreCoordinator; +} + + +- (NSManagedObjectContext *)managedObjectContext { + + if (_managedObjectContext != nil) { + return _managedObjectContext; + } + + NSPersistentStoreCoordinator *coordinator = [self persistentStoreCoordinator]; + if (!coordinator) { + return nil; + } + _managedObjectContext = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSMainQueueConcurrencyType]; + [_managedObjectContext setPersistentStoreCoordinator:coordinator]; + return _managedObjectContext; +} + +#pragma mark - Core Data Saving support + +- (void)preserveConessay { + NSManagedObjectContext *managedObjectContext = self.managedObjectContext; + if (managedObjectContext != nil) { + NSError *error = nil; + if ([managedObjectContext hasChanges] && ![managedObjectContext save:&error]) { + + + NSLog(@"Unresolved error %@, %@", error, [error userInfo]); + abort(); + } + } +} + + +@end diff --git a/YuMi/Assets.xcassets/AccentColor.colorset/Contents.json b/YuMi/Assets.xcassets/AccentColor.colorset/Contents.json new file mode 100644 index 00000000..35307a7f --- /dev/null +++ b/YuMi/Assets.xcassets/AccentColor.colorset/Contents.json @@ -0,0 +1,7 @@ +{"colors": [{"idiom": "universal"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/AppIcon.appiconset/1024.png b/YuMi/Assets.xcassets/AppIcon.appiconset/1024.png new file mode 100644 index 00000000..7a7f00fb Binary files /dev/null and b/YuMi/Assets.xcassets/AppIcon.appiconset/1024.png differ diff --git a/YuMi/Assets.xcassets/AppIcon.appiconset/Contents.json b/YuMi/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 00000000..afe098f9 --- /dev/null +++ b/YuMi/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "1024.png", "idiom": "universal", "platform": "ios", "size": "1024x1024"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/Contents.json b/YuMi/Assets.xcassets/Contents.json new file mode 100644 index 00000000..e2342777 --- /dev/null +++ b/YuMi/Assets.xcassets/Contents.json @@ -0,0 +1,7 @@ +{"info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/Login/Contents.json b/YuMi/Assets.xcassets/Login/Contents.json new file mode 100644 index 00000000..e2342777 --- /dev/null +++ b/YuMi/Assets.xcassets/Login/Contents.json @@ -0,0 +1,7 @@ +{"info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/Login/yumi_login_agree.imageset/Contents.json b/YuMi/Assets.xcassets/Login/yumi_login_agree.imageset/Contents.json new file mode 100644 index 00000000..bbd28a85 --- /dev/null +++ b/YuMi/Assets.xcassets/Login/yumi_login_agree.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_login_agree@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_login_agree@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/Login/yumi_login_agree.imageset/yumi_login_agree@2x.png b/YuMi/Assets.xcassets/Login/yumi_login_agree.imageset/yumi_login_agree@2x.png new file mode 100644 index 00000000..fc7b7144 Binary files /dev/null and b/YuMi/Assets.xcassets/Login/yumi_login_agree.imageset/yumi_login_agree@2x.png differ diff --git a/YuMi/Assets.xcassets/Login/yumi_login_agree.imageset/yumi_login_agree@3x.png b/YuMi/Assets.xcassets/Login/yumi_login_agree.imageset/yumi_login_agree@3x.png new file mode 100644 index 00000000..72db7a68 Binary files /dev/null and b/YuMi/Assets.xcassets/Login/yumi_login_agree.imageset/yumi_login_agree@3x.png differ diff --git a/YuMi/Assets.xcassets/Login/yumi_login_area_arrow.imageset/Contents.json b/YuMi/Assets.xcassets/Login/yumi_login_area_arrow.imageset/Contents.json new file mode 100644 index 00000000..3c8f0195 --- /dev/null +++ b/YuMi/Assets.xcassets/Login/yumi_login_area_arrow.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_login_area_arrow@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_login_area_arrow@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/Login/yumi_login_area_arrow.imageset/yumi_login_area_arrow@2x.png b/YuMi/Assets.xcassets/Login/yumi_login_area_arrow.imageset/yumi_login_area_arrow@2x.png new file mode 100644 index 00000000..36f3931e Binary files /dev/null and b/YuMi/Assets.xcassets/Login/yumi_login_area_arrow.imageset/yumi_login_area_arrow@2x.png differ diff --git a/YuMi/Assets.xcassets/Login/yumi_login_area_arrow.imageset/yumi_login_area_arrow@3x.png b/YuMi/Assets.xcassets/Login/yumi_login_area_arrow.imageset/yumi_login_area_arrow@3x.png new file mode 100644 index 00000000..17a74e2b Binary files /dev/null and b/YuMi/Assets.xcassets/Login/yumi_login_area_arrow.imageset/yumi_login_area_arrow@3x.png differ diff --git a/YuMi/Assets.xcassets/Login/yumi_login_auth_bubble.imageset/Contents.json b/YuMi/Assets.xcassets/Login/yumi_login_auth_bubble.imageset/Contents.json new file mode 100644 index 00000000..c249575f --- /dev/null +++ b/YuMi/Assets.xcassets/Login/yumi_login_auth_bubble.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_login_auth_bubble@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_login_auth_bubble@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/Login/yumi_login_auth_bubble.imageset/yumi_login_auth_bubble@2x.png b/YuMi/Assets.xcassets/Login/yumi_login_auth_bubble.imageset/yumi_login_auth_bubble@2x.png new file mode 100644 index 00000000..c663537f Binary files /dev/null and b/YuMi/Assets.xcassets/Login/yumi_login_auth_bubble.imageset/yumi_login_auth_bubble@2x.png differ diff --git a/YuMi/Assets.xcassets/Login/yumi_login_auth_bubble.imageset/yumi_login_auth_bubble@3x.png b/YuMi/Assets.xcassets/Login/yumi_login_auth_bubble.imageset/yumi_login_auth_bubble@3x.png new file mode 100644 index 00000000..75c52cdd Binary files /dev/null and b/YuMi/Assets.xcassets/Login/yumi_login_auth_bubble.imageset/yumi_login_auth_bubble@3x.png differ diff --git a/YuMi/Assets.xcassets/Login/yumi_login_bind_phone_background.imageset/Contents.json b/YuMi/Assets.xcassets/Login/yumi_login_bind_phone_background.imageset/Contents.json new file mode 100644 index 00000000..dfd8669f --- /dev/null +++ b/YuMi/Assets.xcassets/Login/yumi_login_bind_phone_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_login_bind_phone_background@2x.png", "idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/Login/yumi_login_bind_phone_background.imageset/yumi_login_bind_phone_background@2x.png b/YuMi/Assets.xcassets/Login/yumi_login_bind_phone_background.imageset/yumi_login_bind_phone_background@2x.png new file mode 100644 index 00000000..f7b61d82 Binary files /dev/null and b/YuMi/Assets.xcassets/Login/yumi_login_bind_phone_background.imageset/yumi_login_bind_phone_background@2x.png differ diff --git a/YuMi/Assets.xcassets/Login/yumi_login_bind_phone_success.imageset/Contents.json b/YuMi/Assets.xcassets/Login/yumi_login_bind_phone_success.imageset/Contents.json new file mode 100644 index 00000000..907d5602 --- /dev/null +++ b/YuMi/Assets.xcassets/Login/yumi_login_bind_phone_success.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_login_bind_phone_success@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_login_bind_phone_success@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/Login/yumi_login_bind_phone_success.imageset/yumi_login_bind_phone_success@2x.png b/YuMi/Assets.xcassets/Login/yumi_login_bind_phone_success.imageset/yumi_login_bind_phone_success@2x.png new file mode 100644 index 00000000..9abb8015 Binary files /dev/null and b/YuMi/Assets.xcassets/Login/yumi_login_bind_phone_success.imageset/yumi_login_bind_phone_success@2x.png differ diff --git a/YuMi/Assets.xcassets/Login/yumi_login_bind_phone_success.imageset/yumi_login_bind_phone_success@3x.png b/YuMi/Assets.xcassets/Login/yumi_login_bind_phone_success.imageset/yumi_login_bind_phone_success@3x.png new file mode 100644 index 00000000..66c93723 Binary files /dev/null and b/YuMi/Assets.xcassets/Login/yumi_login_bind_phone_success.imageset/yumi_login_bind_phone_success@3x.png differ diff --git a/YuMi/Assets.xcassets/Login/yumi_login_button.imageset/Contents.json b/YuMi/Assets.xcassets/Login/yumi_login_button.imageset/Contents.json new file mode 100644 index 00000000..e7c25a70 --- /dev/null +++ b/YuMi/Assets.xcassets/Login/yumi_login_button.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"idiom": "universal", "filename": "yumi_login_button@2x.png", "scale": "2x"}, {"idiom": "universal", "filename": "yumi_login_button@3x.png", "scale": "3x"}], "info": {"version": 1, "author": "xcode"}} + + + + + + diff --git a/YuMi/Assets.xcassets/Login/yumi_login_button.imageset/yumi_login_button@2x.png b/YuMi/Assets.xcassets/Login/yumi_login_button.imageset/yumi_login_button@2x.png new file mode 100644 index 00000000..f8613919 Binary files /dev/null and b/YuMi/Assets.xcassets/Login/yumi_login_button.imageset/yumi_login_button@2x.png differ diff --git a/YuMi/Assets.xcassets/Login/yumi_login_button.imageset/yumi_login_button@3x.png b/YuMi/Assets.xcassets/Login/yumi_login_button.imageset/yumi_login_button@3x.png new file mode 100644 index 00000000..d26dc1af Binary files /dev/null and b/YuMi/Assets.xcassets/Login/yumi_login_button.imageset/yumi_login_button@3x.png differ diff --git a/YuMi/Assets.xcassets/Login/yumi_login_button_sel.imageset/Contents.json b/YuMi/Assets.xcassets/Login/yumi_login_button_sel.imageset/Contents.json new file mode 100644 index 00000000..59bac875 --- /dev/null +++ b/YuMi/Assets.xcassets/Login/yumi_login_button_sel.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"idiom": "universal", "filename": "yumi_login_button_sel@2x.png", "scale": "2x"}, {"idiom": "universal", "filename": "yumi_login_button_sel@3x.png", "scale": "3x"}], "info": {"version": 1, "author": "xcode"}} + + + + + + diff --git a/YuMi/Assets.xcassets/Login/yumi_login_button_sel.imageset/yumi_login_button_sel@2x.png b/YuMi/Assets.xcassets/Login/yumi_login_button_sel.imageset/yumi_login_button_sel@2x.png new file mode 100644 index 00000000..d91a1a02 Binary files /dev/null and b/YuMi/Assets.xcassets/Login/yumi_login_button_sel.imageset/yumi_login_button_sel@2x.png differ diff --git a/YuMi/Assets.xcassets/Login/yumi_login_button_sel.imageset/yumi_login_button_sel@3x.png b/YuMi/Assets.xcassets/Login/yumi_login_button_sel.imageset/yumi_login_button_sel@3x.png new file mode 100644 index 00000000..9615c98d Binary files /dev/null and b/YuMi/Assets.xcassets/Login/yumi_login_button_sel.imageset/yumi_login_button_sel@3x.png differ diff --git a/YuMi/Assets.xcassets/Login/yumi_login_china_mobile.imageset/Contents.json b/YuMi/Assets.xcassets/Login/yumi_login_china_mobile.imageset/Contents.json new file mode 100644 index 00000000..69feb151 --- /dev/null +++ b/YuMi/Assets.xcassets/Login/yumi_login_china_mobile.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_login_china_mobile@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_login_china_mobile@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/Login/yumi_login_china_mobile.imageset/yumi_login_china_mobile@2x.png b/YuMi/Assets.xcassets/Login/yumi_login_china_mobile.imageset/yumi_login_china_mobile@2x.png new file mode 100644 index 00000000..1b371cf9 Binary files /dev/null and b/YuMi/Assets.xcassets/Login/yumi_login_china_mobile.imageset/yumi_login_china_mobile@2x.png differ diff --git a/YuMi/Assets.xcassets/Login/yumi_login_china_mobile.imageset/yumi_login_china_mobile@3x.png b/YuMi/Assets.xcassets/Login/yumi_login_china_mobile.imageset/yumi_login_china_mobile@3x.png new file mode 100644 index 00000000..1dddfda0 Binary files /dev/null and b/YuMi/Assets.xcassets/Login/yumi_login_china_mobile.imageset/yumi_login_china_mobile@3x.png differ diff --git a/YuMi/Assets.xcassets/Login/yumi_login_ct_mobile.imageset/Contents.json b/YuMi/Assets.xcassets/Login/yumi_login_ct_mobile.imageset/Contents.json new file mode 100644 index 00000000..7cfcb0e3 --- /dev/null +++ b/YuMi/Assets.xcassets/Login/yumi_login_ct_mobile.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_login_ct_mobile@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_login_ct_mobile@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/Login/yumi_login_ct_mobile.imageset/yumi_login_ct_mobile@2x.png b/YuMi/Assets.xcassets/Login/yumi_login_ct_mobile.imageset/yumi_login_ct_mobile@2x.png new file mode 100644 index 00000000..e6287ac7 Binary files /dev/null and b/YuMi/Assets.xcassets/Login/yumi_login_ct_mobile.imageset/yumi_login_ct_mobile@2x.png differ diff --git a/YuMi/Assets.xcassets/Login/yumi_login_ct_mobile.imageset/yumi_login_ct_mobile@3x.png b/YuMi/Assets.xcassets/Login/yumi_login_ct_mobile.imageset/yumi_login_ct_mobile@3x.png new file mode 100644 index 00000000..277abd0b Binary files /dev/null and b/YuMi/Assets.xcassets/Login/yumi_login_ct_mobile.imageset/yumi_login_ct_mobile@3x.png differ diff --git a/YuMi/Assets.xcassets/Login/yumi_login_disagree.imageset/Contents.json b/YuMi/Assets.xcassets/Login/yumi_login_disagree.imageset/Contents.json new file mode 100644 index 00000000..560ff02f --- /dev/null +++ b/YuMi/Assets.xcassets/Login/yumi_login_disagree.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_login_disagree@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_login_disagree@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/Login/yumi_login_disagree.imageset/yumi_login_disagree@2x.png b/YuMi/Assets.xcassets/Login/yumi_login_disagree.imageset/yumi_login_disagree@2x.png new file mode 100644 index 00000000..356c685c Binary files /dev/null and b/YuMi/Assets.xcassets/Login/yumi_login_disagree.imageset/yumi_login_disagree@2x.png differ diff --git a/YuMi/Assets.xcassets/Login/yumi_login_disagree.imageset/yumi_login_disagree@3x.png b/YuMi/Assets.xcassets/Login/yumi_login_disagree.imageset/yumi_login_disagree@3x.png new file mode 100644 index 00000000..5c6da9e5 Binary files /dev/null and b/YuMi/Assets.xcassets/Login/yumi_login_disagree.imageset/yumi_login_disagree@3x.png differ diff --git a/YuMi/Assets.xcassets/Login/yumi_login_facebook.imageset/Contents.json b/YuMi/Assets.xcassets/Login/yumi_login_facebook.imageset/Contents.json new file mode 100644 index 00000000..39d47c59 --- /dev/null +++ b/YuMi/Assets.xcassets/Login/yumi_login_facebook.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_login_facebook@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_login_facebook@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/Login/yumi_login_facebook.imageset/yumi_login_facebook@2x.png b/YuMi/Assets.xcassets/Login/yumi_login_facebook.imageset/yumi_login_facebook@2x.png new file mode 100644 index 00000000..9ad5693e Binary files /dev/null and b/YuMi/Assets.xcassets/Login/yumi_login_facebook.imageset/yumi_login_facebook@2x.png differ diff --git a/YuMi/Assets.xcassets/Login/yumi_login_facebook.imageset/yumi_login_facebook@3x.png b/YuMi/Assets.xcassets/Login/yumi_login_facebook.imageset/yumi_login_facebook@3x.png new file mode 100644 index 00000000..11a1748a Binary files /dev/null and b/YuMi/Assets.xcassets/Login/yumi_login_facebook.imageset/yumi_login_facebook@3x.png differ diff --git a/YuMi/Assets.xcassets/Login/yumi_login_full_gen_female_normal.imageset/Contents.json b/YuMi/Assets.xcassets/Login/yumi_login_full_gen_female_normal.imageset/Contents.json new file mode 100644 index 00000000..59eaef1b --- /dev/null +++ b/YuMi/Assets.xcassets/Login/yumi_login_full_gen_female_normal.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_login_full_gen_female_normal@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_login_full_gen_female_normal@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/Login/yumi_login_full_gen_female_normal.imageset/yumi_login_full_gen_female_normal@2x.png b/YuMi/Assets.xcassets/Login/yumi_login_full_gen_female_normal.imageset/yumi_login_full_gen_female_normal@2x.png new file mode 100644 index 00000000..50af3df2 Binary files /dev/null and b/YuMi/Assets.xcassets/Login/yumi_login_full_gen_female_normal.imageset/yumi_login_full_gen_female_normal@2x.png differ diff --git a/YuMi/Assets.xcassets/Login/yumi_login_full_gen_female_normal.imageset/yumi_login_full_gen_female_normal@3x.png b/YuMi/Assets.xcassets/Login/yumi_login_full_gen_female_normal.imageset/yumi_login_full_gen_female_normal@3x.png new file mode 100644 index 00000000..3c9ebc4e Binary files /dev/null and b/YuMi/Assets.xcassets/Login/yumi_login_full_gen_female_normal.imageset/yumi_login_full_gen_female_normal@3x.png differ diff --git a/YuMi/Assets.xcassets/Login/yumi_login_full_gen_female_select.imageset/Contents.json b/YuMi/Assets.xcassets/Login/yumi_login_full_gen_female_select.imageset/Contents.json new file mode 100644 index 00000000..8b95422a --- /dev/null +++ b/YuMi/Assets.xcassets/Login/yumi_login_full_gen_female_select.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_login_full_gen_female_select@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_login_full_gen_female_select@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/Login/yumi_login_full_gen_female_select.imageset/yumi_login_full_gen_female_select@2x.png b/YuMi/Assets.xcassets/Login/yumi_login_full_gen_female_select.imageset/yumi_login_full_gen_female_select@2x.png new file mode 100644 index 00000000..1cfe2342 Binary files /dev/null and b/YuMi/Assets.xcassets/Login/yumi_login_full_gen_female_select.imageset/yumi_login_full_gen_female_select@2x.png differ diff --git a/YuMi/Assets.xcassets/Login/yumi_login_full_gen_female_select.imageset/yumi_login_full_gen_female_select@3x.png b/YuMi/Assets.xcassets/Login/yumi_login_full_gen_female_select.imageset/yumi_login_full_gen_female_select@3x.png new file mode 100644 index 00000000..9b476596 Binary files /dev/null and b/YuMi/Assets.xcassets/Login/yumi_login_full_gen_female_select.imageset/yumi_login_full_gen_female_select@3x.png differ diff --git a/YuMi/Assets.xcassets/Login/yumi_login_full_gen_male_normal.imageset/Contents.json b/YuMi/Assets.xcassets/Login/yumi_login_full_gen_male_normal.imageset/Contents.json new file mode 100644 index 00000000..622dc09a --- /dev/null +++ b/YuMi/Assets.xcassets/Login/yumi_login_full_gen_male_normal.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_login_full_gen_male_normal@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_login_full_gen_male_normal@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/Login/yumi_login_full_gen_male_normal.imageset/yumi_login_full_gen_male_normal@2x.png b/YuMi/Assets.xcassets/Login/yumi_login_full_gen_male_normal.imageset/yumi_login_full_gen_male_normal@2x.png new file mode 100644 index 00000000..148c9c08 Binary files /dev/null and b/YuMi/Assets.xcassets/Login/yumi_login_full_gen_male_normal.imageset/yumi_login_full_gen_male_normal@2x.png differ diff --git a/YuMi/Assets.xcassets/Login/yumi_login_full_gen_male_normal.imageset/yumi_login_full_gen_male_normal@3x.png b/YuMi/Assets.xcassets/Login/yumi_login_full_gen_male_normal.imageset/yumi_login_full_gen_male_normal@3x.png new file mode 100644 index 00000000..3660d254 Binary files /dev/null and b/YuMi/Assets.xcassets/Login/yumi_login_full_gen_male_normal.imageset/yumi_login_full_gen_male_normal@3x.png differ diff --git a/YuMi/Assets.xcassets/Login/yumi_login_full_gen_male_select.imageset/Contents.json b/YuMi/Assets.xcassets/Login/yumi_login_full_gen_male_select.imageset/Contents.json new file mode 100644 index 00000000..eef051d5 --- /dev/null +++ b/YuMi/Assets.xcassets/Login/yumi_login_full_gen_male_select.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_login_full_gen_male_select@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_login_full_gen_male_select@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/Login/yumi_login_full_gen_male_select.imageset/yumi_login_full_gen_male_select@2x.png b/YuMi/Assets.xcassets/Login/yumi_login_full_gen_male_select.imageset/yumi_login_full_gen_male_select@2x.png new file mode 100644 index 00000000..fd1b1819 Binary files /dev/null and b/YuMi/Assets.xcassets/Login/yumi_login_full_gen_male_select.imageset/yumi_login_full_gen_male_select@2x.png differ diff --git a/YuMi/Assets.xcassets/Login/yumi_login_full_gen_male_select.imageset/yumi_login_full_gen_male_select@3x.png b/YuMi/Assets.xcassets/Login/yumi_login_full_gen_male_select.imageset/yumi_login_full_gen_male_select@3x.png new file mode 100644 index 00000000..a9637954 Binary files /dev/null and b/YuMi/Assets.xcassets/Login/yumi_login_full_gen_male_select.imageset/yumi_login_full_gen_male_select@3x.png differ diff --git a/YuMi/Assets.xcassets/Login/yumi_login_full_gen_refresh.imageset/Contents.json b/YuMi/Assets.xcassets/Login/yumi_login_full_gen_refresh.imageset/Contents.json new file mode 100644 index 00000000..0ee96a75 --- /dev/null +++ b/YuMi/Assets.xcassets/Login/yumi_login_full_gen_refresh.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_login_full_gen_refresh@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_login_full_gen_refresh@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/Login/yumi_login_full_gen_refresh.imageset/yumi_login_full_gen_refresh@2x.png b/YuMi/Assets.xcassets/Login/yumi_login_full_gen_refresh.imageset/yumi_login_full_gen_refresh@2x.png new file mode 100644 index 00000000..8a470232 Binary files /dev/null and b/YuMi/Assets.xcassets/Login/yumi_login_full_gen_refresh.imageset/yumi_login_full_gen_refresh@2x.png differ diff --git a/YuMi/Assets.xcassets/Login/yumi_login_full_gen_refresh.imageset/yumi_login_full_gen_refresh@3x.png b/YuMi/Assets.xcassets/Login/yumi_login_full_gen_refresh.imageset/yumi_login_full_gen_refresh@3x.png new file mode 100644 index 00000000..b026f683 Binary files /dev/null and b/YuMi/Assets.xcassets/Login/yumi_login_full_gen_refresh.imageset/yumi_login_full_gen_refresh@3x.png differ diff --git a/YuMi/Assets.xcassets/Login/yumi_login_gmail.imageset/Contents.json b/YuMi/Assets.xcassets/Login/yumi_login_gmail.imageset/Contents.json new file mode 100644 index 00000000..98ff3584 --- /dev/null +++ b/YuMi/Assets.xcassets/Login/yumi_login_gmail.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_login_gmail@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_login_gmail@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/Login/yumi_login_gmail.imageset/yumi_login_gmail@2x.png b/YuMi/Assets.xcassets/Login/yumi_login_gmail.imageset/yumi_login_gmail@2x.png new file mode 100644 index 00000000..a4768a12 Binary files /dev/null and b/YuMi/Assets.xcassets/Login/yumi_login_gmail.imageset/yumi_login_gmail@2x.png differ diff --git a/YuMi/Assets.xcassets/Login/yumi_login_gmail.imageset/yumi_login_gmail@3x.png b/YuMi/Assets.xcassets/Login/yumi_login_gmail.imageset/yumi_login_gmail@3x.png new file mode 100644 index 00000000..fac31962 Binary files /dev/null and b/YuMi/Assets.xcassets/Login/yumi_login_gmail.imageset/yumi_login_gmail@3x.png differ diff --git a/YuMi/Assets.xcassets/Login/yumi_login_line.imageset/Contents.json b/YuMi/Assets.xcassets/Login/yumi_login_line.imageset/Contents.json new file mode 100644 index 00000000..48b9fa06 --- /dev/null +++ b/YuMi/Assets.xcassets/Login/yumi_login_line.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_login_line@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_login_line@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/Login/yumi_login_line.imageset/yumi_login_line@2x.png b/YuMi/Assets.xcassets/Login/yumi_login_line.imageset/yumi_login_line@2x.png new file mode 100644 index 00000000..3a2d6e93 Binary files /dev/null and b/YuMi/Assets.xcassets/Login/yumi_login_line.imageset/yumi_login_line@2x.png differ diff --git a/YuMi/Assets.xcassets/Login/yumi_login_line.imageset/yumi_login_line@3x.png b/YuMi/Assets.xcassets/Login/yumi_login_line.imageset/yumi_login_line@3x.png new file mode 100644 index 00000000..5bcfb779 Binary files /dev/null and b/YuMi/Assets.xcassets/Login/yumi_login_line.imageset/yumi_login_line@3x.png differ diff --git a/YuMi/Assets.xcassets/Login/yumi_login_next.imageset/Contents.json b/YuMi/Assets.xcassets/Login/yumi_login_next.imageset/Contents.json new file mode 100644 index 00000000..83cc7f29 --- /dev/null +++ b/YuMi/Assets.xcassets/Login/yumi_login_next.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_login_next@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_login_next@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/Login/yumi_login_next.imageset/yumi_login_next@2x.png b/YuMi/Assets.xcassets/Login/yumi_login_next.imageset/yumi_login_next@2x.png new file mode 100644 index 00000000..7971fdb1 Binary files /dev/null and b/YuMi/Assets.xcassets/Login/yumi_login_next.imageset/yumi_login_next@2x.png differ diff --git a/YuMi/Assets.xcassets/Login/yumi_login_next.imageset/yumi_login_next@3x.png b/YuMi/Assets.xcassets/Login/yumi_login_next.imageset/yumi_login_next@3x.png new file mode 100644 index 00000000..b5c4228d Binary files /dev/null and b/YuMi/Assets.xcassets/Login/yumi_login_next.imageset/yumi_login_next@3x.png differ diff --git a/YuMi/Assets.xcassets/Login/yumi_login_next_disable.imageset/Contents.json b/YuMi/Assets.xcassets/Login/yumi_login_next_disable.imageset/Contents.json new file mode 100644 index 00000000..4364e0a7 --- /dev/null +++ b/YuMi/Assets.xcassets/Login/yumi_login_next_disable.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_login_next_disable@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_login_next_disable@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/Login/yumi_login_next_disable.imageset/yumi_login_next_disable@2x.png b/YuMi/Assets.xcassets/Login/yumi_login_next_disable.imageset/yumi_login_next_disable@2x.png new file mode 100644 index 00000000..ed4444fb Binary files /dev/null and b/YuMi/Assets.xcassets/Login/yumi_login_next_disable.imageset/yumi_login_next_disable@2x.png differ diff --git a/YuMi/Assets.xcassets/Login/yumi_login_next_disable.imageset/yumi_login_next_disable@3x.png b/YuMi/Assets.xcassets/Login/yumi_login_next_disable.imageset/yumi_login_next_disable@3x.png new file mode 100644 index 00000000..f18e402d Binary files /dev/null and b/YuMi/Assets.xcassets/Login/yumi_login_next_disable.imageset/yumi_login_next_disable@3x.png differ diff --git a/YuMi/Assets.xcassets/Login/yumi_login_phone_type.imageset/Contents.json b/YuMi/Assets.xcassets/Login/yumi_login_phone_type.imageset/Contents.json new file mode 100644 index 00000000..4cb8dba2 --- /dev/null +++ b/YuMi/Assets.xcassets/Login/yumi_login_phone_type.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_login_phone_type@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_login_phone_type@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/Login/yumi_login_phone_type.imageset/yumi_login_phone_type@2x.png b/YuMi/Assets.xcassets/Login/yumi_login_phone_type.imageset/yumi_login_phone_type@2x.png new file mode 100644 index 00000000..c21ce1e6 Binary files /dev/null and b/YuMi/Assets.xcassets/Login/yumi_login_phone_type.imageset/yumi_login_phone_type@2x.png differ diff --git a/YuMi/Assets.xcassets/Login/yumi_login_phone_type.imageset/yumi_login_phone_type@3x.png b/YuMi/Assets.xcassets/Login/yumi_login_phone_type.imageset/yumi_login_phone_type@3x.png new file mode 100644 index 00000000..ebe0d567 Binary files /dev/null and b/YuMi/Assets.xcassets/Login/yumi_login_phone_type.imageset/yumi_login_phone_type@3x.png differ diff --git a/YuMi/Assets.xcassets/Login/yumi_login_phone_white.imageset/Contents.json b/YuMi/Assets.xcassets/Login/yumi_login_phone_white.imageset/Contents.json new file mode 100644 index 00000000..34eec66a --- /dev/null +++ b/YuMi/Assets.xcassets/Login/yumi_login_phone_white.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_login_phone_white@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_login_phone_white@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/Login/yumi_login_phone_white.imageset/yumi_login_phone_white@2x.png b/YuMi/Assets.xcassets/Login/yumi_login_phone_white.imageset/yumi_login_phone_white@2x.png new file mode 100644 index 00000000..b621779a Binary files /dev/null and b/YuMi/Assets.xcassets/Login/yumi_login_phone_white.imageset/yumi_login_phone_white@2x.png differ diff --git a/YuMi/Assets.xcassets/Login/yumi_login_phone_white.imageset/yumi_login_phone_white@3x.png b/YuMi/Assets.xcassets/Login/yumi_login_phone_white.imageset/yumi_login_phone_white@3x.png new file mode 100644 index 00000000..127d17e7 Binary files /dev/null and b/YuMi/Assets.xcassets/Login/yumi_login_phone_white.imageset/yumi_login_phone_white@3x.png differ diff --git a/YuMi/Assets.xcassets/Login/yumi_login_quick_next.imageset/Contents.json b/YuMi/Assets.xcassets/Login/yumi_login_quick_next.imageset/Contents.json new file mode 100644 index 00000000..6792cc98 --- /dev/null +++ b/YuMi/Assets.xcassets/Login/yumi_login_quick_next.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_login_quick_next@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_login_quick_next@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/Login/yumi_login_quick_next.imageset/yumi_login_quick_next@2x.png b/YuMi/Assets.xcassets/Login/yumi_login_quick_next.imageset/yumi_login_quick_next@2x.png new file mode 100644 index 00000000..d4112f80 Binary files /dev/null and b/YuMi/Assets.xcassets/Login/yumi_login_quick_next.imageset/yumi_login_quick_next@2x.png differ diff --git a/YuMi/Assets.xcassets/Login/yumi_login_quick_next.imageset/yumi_login_quick_next@3x.png b/YuMi/Assets.xcassets/Login/yumi_login_quick_next.imageset/yumi_login_quick_next@3x.png new file mode 100644 index 00000000..ef3b4cbd Binary files /dev/null and b/YuMi/Assets.xcassets/Login/yumi_login_quick_next.imageset/yumi_login_quick_next@3x.png differ diff --git a/YuMi/Assets.xcassets/Login/yumi_login_unicom_mobile.imageset/Contents.json b/YuMi/Assets.xcassets/Login/yumi_login_unicom_mobile.imageset/Contents.json new file mode 100644 index 00000000..451a9692 --- /dev/null +++ b/YuMi/Assets.xcassets/Login/yumi_login_unicom_mobile.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_login_unicom_mobile@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_login_unicom_mobile@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/Login/yumi_login_unicom_mobile.imageset/yumi_login_unicom_mobile@2x.png b/YuMi/Assets.xcassets/Login/yumi_login_unicom_mobile.imageset/yumi_login_unicom_mobile@2x.png new file mode 100644 index 00000000..4010ed7d Binary files /dev/null and b/YuMi/Assets.xcassets/Login/yumi_login_unicom_mobile.imageset/yumi_login_unicom_mobile@2x.png differ diff --git a/YuMi/Assets.xcassets/Login/yumi_login_unicom_mobile.imageset/yumi_login_unicom_mobile@3x.png b/YuMi/Assets.xcassets/Login/yumi_login_unicom_mobile.imageset/yumi_login_unicom_mobile@3x.png new file mode 100644 index 00000000..7f68e2be Binary files /dev/null and b/YuMi/Assets.xcassets/Login/yumi_login_unicom_mobile.imageset/yumi_login_unicom_mobile@3x.png differ diff --git a/YuMi/Assets.xcassets/Monents/Contents.json b/YuMi/Assets.xcassets/Monents/Contents.json new file mode 100644 index 00000000..e2342777 --- /dev/null +++ b/YuMi/Assets.xcassets/Monents/Contents.json @@ -0,0 +1,7 @@ +{"info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/Monents/yumi_moment_camera.imageset/Contents.json b/YuMi/Assets.xcassets/Monents/yumi_moment_camera.imageset/Contents.json new file mode 100644 index 00000000..a88a36cd --- /dev/null +++ b/YuMi/Assets.xcassets/Monents/yumi_moment_camera.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_moment_camera@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_moment_camera@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/Monents/yumi_moment_camera.imageset/yumi_moment_camera@2x.png b/YuMi/Assets.xcassets/Monents/yumi_moment_camera.imageset/yumi_moment_camera@2x.png new file mode 100644 index 00000000..a4de235f Binary files /dev/null and b/YuMi/Assets.xcassets/Monents/yumi_moment_camera.imageset/yumi_moment_camera@2x.png differ diff --git a/YuMi/Assets.xcassets/Monents/yumi_moment_camera.imageset/yumi_moment_camera@3x.png b/YuMi/Assets.xcassets/Monents/yumi_moment_camera.imageset/yumi_moment_camera@3x.png new file mode 100644 index 00000000..103773b7 Binary files /dev/null and b/YuMi/Assets.xcassets/Monents/yumi_moment_camera.imageset/yumi_moment_camera@3x.png differ diff --git a/YuMi/Assets.xcassets/Monents/yumi_monents_gen_comment_count.imageset/Contents.json b/YuMi/Assets.xcassets/Monents/yumi_monents_gen_comment_count.imageset/Contents.json new file mode 100644 index 00000000..48e64bfb --- /dev/null +++ b/YuMi/Assets.xcassets/Monents/yumi_monents_gen_comment_count.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_monents_gen_comment_count@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_monents_gen_comment_count@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/Monents/yumi_monents_gen_comment_count.imageset/yumi_monents_gen_comment_count@2x.png b/YuMi/Assets.xcassets/Monents/yumi_monents_gen_comment_count.imageset/yumi_monents_gen_comment_count@2x.png new file mode 100644 index 00000000..2c13e409 Binary files /dev/null and b/YuMi/Assets.xcassets/Monents/yumi_monents_gen_comment_count.imageset/yumi_monents_gen_comment_count@2x.png differ diff --git a/YuMi/Assets.xcassets/Monents/yumi_monents_gen_comment_count.imageset/yumi_monents_gen_comment_count@3x.png b/YuMi/Assets.xcassets/Monents/yumi_monents_gen_comment_count.imageset/yumi_monents_gen_comment_count@3x.png new file mode 100644 index 00000000..418873ce Binary files /dev/null and b/YuMi/Assets.xcassets/Monents/yumi_monents_gen_comment_count.imageset/yumi_monents_gen_comment_count@3x.png differ diff --git a/YuMi/Assets.xcassets/Monents/yumi_monents_gen_like_count_normal.imageset/Contents.json b/YuMi/Assets.xcassets/Monents/yumi_monents_gen_like_count_normal.imageset/Contents.json new file mode 100644 index 00000000..fe4be338 --- /dev/null +++ b/YuMi/Assets.xcassets/Monents/yumi_monents_gen_like_count_normal.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_monents_gen_like_count_normal@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_monents_gen_like_count_normal@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/Monents/yumi_monents_gen_like_count_normal.imageset/yumi_monents_gen_like_count_normal@2x.png b/YuMi/Assets.xcassets/Monents/yumi_monents_gen_like_count_normal.imageset/yumi_monents_gen_like_count_normal@2x.png new file mode 100644 index 00000000..26922663 Binary files /dev/null and b/YuMi/Assets.xcassets/Monents/yumi_monents_gen_like_count_normal.imageset/yumi_monents_gen_like_count_normal@2x.png differ diff --git a/YuMi/Assets.xcassets/Monents/yumi_monents_gen_like_count_normal.imageset/yumi_monents_gen_like_count_normal@3x.png b/YuMi/Assets.xcassets/Monents/yumi_monents_gen_like_count_normal.imageset/yumi_monents_gen_like_count_normal@3x.png new file mode 100644 index 00000000..166c7f76 Binary files /dev/null and b/YuMi/Assets.xcassets/Monents/yumi_monents_gen_like_count_normal.imageset/yumi_monents_gen_like_count_normal@3x.png differ diff --git a/YuMi/Assets.xcassets/Monents/yumi_monents_gen_like_count_select.imageset/Contents.json b/YuMi/Assets.xcassets/Monents/yumi_monents_gen_like_count_select.imageset/Contents.json new file mode 100644 index 00000000..7a063227 --- /dev/null +++ b/YuMi/Assets.xcassets/Monents/yumi_monents_gen_like_count_select.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_monents_gen_like_count_select@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_monents_gen_like_count_select@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/Monents/yumi_monents_gen_like_count_select.imageset/yumi_monents_gen_like_count_select@2x.png b/YuMi/Assets.xcassets/Monents/yumi_monents_gen_like_count_select.imageset/yumi_monents_gen_like_count_select@2x.png new file mode 100644 index 00000000..7ff908d3 Binary files /dev/null and b/YuMi/Assets.xcassets/Monents/yumi_monents_gen_like_count_select.imageset/yumi_monents_gen_like_count_select@2x.png differ diff --git a/YuMi/Assets.xcassets/Monents/yumi_monents_gen_like_count_select.imageset/yumi_monents_gen_like_count_select@3x.png b/YuMi/Assets.xcassets/Monents/yumi_monents_gen_like_count_select.imageset/yumi_monents_gen_like_count_select@3x.png new file mode 100644 index 00000000..25d5e103 Binary files /dev/null and b/YuMi/Assets.xcassets/Monents/yumi_monents_gen_like_count_select.imageset/yumi_monents_gen_like_count_select@3x.png differ diff --git a/YuMi/Assets.xcassets/Monents/yumi_monents_gen_like_report.imageset/Contents.json b/YuMi/Assets.xcassets/Monents/yumi_monents_gen_like_report.imageset/Contents.json new file mode 100644 index 00000000..de5e52df --- /dev/null +++ b/YuMi/Assets.xcassets/Monents/yumi_monents_gen_like_report.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_monents_gen_like_report@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_monents_gen_like_report@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/Monents/yumi_monents_gen_like_report.imageset/yumi_monents_gen_like_report@2x.png b/YuMi/Assets.xcassets/Monents/yumi_monents_gen_like_report.imageset/yumi_monents_gen_like_report@2x.png new file mode 100644 index 00000000..eedd6542 Binary files /dev/null and b/YuMi/Assets.xcassets/Monents/yumi_monents_gen_like_report.imageset/yumi_monents_gen_like_report@2x.png differ diff --git a/YuMi/Assets.xcassets/Monents/yumi_monents_gen_like_report.imageset/yumi_monents_gen_like_report@3x.png b/YuMi/Assets.xcassets/Monents/yumi_monents_gen_like_report.imageset/yumi_monents_gen_like_report@3x.png new file mode 100644 index 00000000..13d53fa7 Binary files /dev/null and b/YuMi/Assets.xcassets/Monents/yumi_monents_gen_like_report.imageset/yumi_monents_gen_like_report@3x.png differ diff --git a/YuMi/Assets.xcassets/Monents/yumi_monents_gen_like_share.imageset/Contents.json b/YuMi/Assets.xcassets/Monents/yumi_monents_gen_like_share.imageset/Contents.json new file mode 100644 index 00000000..7a8bad94 --- /dev/null +++ b/YuMi/Assets.xcassets/Monents/yumi_monents_gen_like_share.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_monents_gen_like_share@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_monents_gen_like_share@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/Monents/yumi_monents_gen_like_share.imageset/yumi_monents_gen_like_share@2x.png b/YuMi/Assets.xcassets/Monents/yumi_monents_gen_like_share.imageset/yumi_monents_gen_like_share@2x.png new file mode 100644 index 00000000..aabc5f93 Binary files /dev/null and b/YuMi/Assets.xcassets/Monents/yumi_monents_gen_like_share.imageset/yumi_monents_gen_like_share@2x.png differ diff --git a/YuMi/Assets.xcassets/Monents/yumi_monents_gen_like_share.imageset/yumi_monents_gen_like_share@3x.png b/YuMi/Assets.xcassets/Monents/yumi_monents_gen_like_share.imageset/yumi_monents_gen_like_share@3x.png new file mode 100644 index 00000000..fc557c07 Binary files /dev/null and b/YuMi/Assets.xcassets/Monents/yumi_monents_gen_like_share.imageset/yumi_monents_gen_like_share@3x.png differ diff --git a/YuMi/Assets.xcassets/Monents/yumi_monents_gen_top.imageset/Contents.json b/YuMi/Assets.xcassets/Monents/yumi_monents_gen_top.imageset/Contents.json new file mode 100644 index 00000000..dc79b56b --- /dev/null +++ b/YuMi/Assets.xcassets/Monents/yumi_monents_gen_top.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_monents_gen_top@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_monents_gen_top@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/Monents/yumi_monents_gen_top.imageset/yumi_monents_gen_top@2x.png b/YuMi/Assets.xcassets/Monents/yumi_monents_gen_top.imageset/yumi_monents_gen_top@2x.png new file mode 100644 index 00000000..671f72b1 Binary files /dev/null and b/YuMi/Assets.xcassets/Monents/yumi_monents_gen_top.imageset/yumi_monents_gen_top@2x.png differ diff --git a/YuMi/Assets.xcassets/Monents/yumi_monents_gen_top.imageset/yumi_monents_gen_top@3x.png b/YuMi/Assets.xcassets/Monents/yumi_monents_gen_top.imageset/yumi_monents_gen_top@3x.png new file mode 100644 index 00000000..3bf9f37d Binary files /dev/null and b/YuMi/Assets.xcassets/Monents/yumi_monents_gen_top.imageset/yumi_monents_gen_top@3x.png differ diff --git a/YuMi/Assets.xcassets/Monents/yumi_monents_gen_topimage_pic.imageset/Contents.json b/YuMi/Assets.xcassets/Monents/yumi_monents_gen_topimage_pic.imageset/Contents.json new file mode 100644 index 00000000..407a9e31 --- /dev/null +++ b/YuMi/Assets.xcassets/Monents/yumi_monents_gen_topimage_pic.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_monents_gen_topimage_pic@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_monents_gen_topimage_pic@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/Monents/yumi_monents_gen_topimage_pic.imageset/yumi_monents_gen_topimage_pic@2x.png b/YuMi/Assets.xcassets/Monents/yumi_monents_gen_topimage_pic.imageset/yumi_monents_gen_topimage_pic@2x.png new file mode 100644 index 00000000..c29578bf Binary files /dev/null and b/YuMi/Assets.xcassets/Monents/yumi_monents_gen_topimage_pic.imageset/yumi_monents_gen_topimage_pic@2x.png differ diff --git a/YuMi/Assets.xcassets/Monents/yumi_monents_gen_topimage_pic.imageset/yumi_monents_gen_topimage_pic@3x.png b/YuMi/Assets.xcassets/Monents/yumi_monents_gen_topimage_pic.imageset/yumi_monents_gen_topimage_pic@3x.png new file mode 100644 index 00000000..cd0b14b6 Binary files /dev/null and b/YuMi/Assets.xcassets/Monents/yumi_monents_gen_topimage_pic.imageset/yumi_monents_gen_topimage_pic@3x.png differ diff --git a/YuMi/Assets.xcassets/Monents/yumi_monents_interactive_delete_message.imageset/Contents.json b/YuMi/Assets.xcassets/Monents/yumi_monents_interactive_delete_message.imageset/Contents.json new file mode 100644 index 00000000..da514b24 --- /dev/null +++ b/YuMi/Assets.xcassets/Monents/yumi_monents_interactive_delete_message.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_monents_interactive_delete_message@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_monents_interactive_delete_message@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/Monents/yumi_monents_interactive_delete_message.imageset/yumi_monents_interactive_delete_message@2x.png b/YuMi/Assets.xcassets/Monents/yumi_monents_interactive_delete_message.imageset/yumi_monents_interactive_delete_message@2x.png new file mode 100644 index 00000000..5001dae1 Binary files /dev/null and b/YuMi/Assets.xcassets/Monents/yumi_monents_interactive_delete_message.imageset/yumi_monents_interactive_delete_message@2x.png differ diff --git a/YuMi/Assets.xcassets/Monents/yumi_monents_interactive_delete_message.imageset/yumi_monents_interactive_delete_message@3x.png b/YuMi/Assets.xcassets/Monents/yumi_monents_interactive_delete_message.imageset/yumi_monents_interactive_delete_message@3x.png new file mode 100644 index 00000000..d9195e9a Binary files /dev/null and b/YuMi/Assets.xcassets/Monents/yumi_monents_interactive_delete_message.imageset/yumi_monents_interactive_delete_message@3x.png differ diff --git a/YuMi/Assets.xcassets/Monents/yumi_monents_publish.imageset/Contents.json b/YuMi/Assets.xcassets/Monents/yumi_monents_publish.imageset/Contents.json new file mode 100644 index 00000000..9df253ec --- /dev/null +++ b/YuMi/Assets.xcassets/Monents/yumi_monents_publish.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_monents_publish@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_monents_publish@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/Monents/yumi_monents_publish.imageset/yumi_monents_publish@2x.png b/YuMi/Assets.xcassets/Monents/yumi_monents_publish.imageset/yumi_monents_publish@2x.png new file mode 100644 index 00000000..62ad223b Binary files /dev/null and b/YuMi/Assets.xcassets/Monents/yumi_monents_publish.imageset/yumi_monents_publish@2x.png differ diff --git a/YuMi/Assets.xcassets/Monents/yumi_monents_publish.imageset/yumi_monents_publish@3x.png b/YuMi/Assets.xcassets/Monents/yumi_monents_publish.imageset/yumi_monents_publish@3x.png new file mode 100644 index 00000000..255a044c Binary files /dev/null and b/YuMi/Assets.xcassets/Monents/yumi_monents_publish.imageset/yumi_monents_publish@3x.png differ diff --git a/YuMi/Assets.xcassets/Monents/yumi_monents_publish_album_delete.imageset/Contents.json b/YuMi/Assets.xcassets/Monents/yumi_monents_publish_album_delete.imageset/Contents.json new file mode 100644 index 00000000..4ce19a68 --- /dev/null +++ b/YuMi/Assets.xcassets/Monents/yumi_monents_publish_album_delete.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_monents_publish_album_delete@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_monents_publish_album_delete@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/Monents/yumi_monents_publish_album_delete.imageset/yumi_monents_publish_album_delete@2x.png b/YuMi/Assets.xcassets/Monents/yumi_monents_publish_album_delete.imageset/yumi_monents_publish_album_delete@2x.png new file mode 100644 index 00000000..57669b83 Binary files /dev/null and b/YuMi/Assets.xcassets/Monents/yumi_monents_publish_album_delete.imageset/yumi_monents_publish_album_delete@2x.png differ diff --git a/YuMi/Assets.xcassets/Monents/yumi_monents_publish_album_delete.imageset/yumi_monents_publish_album_delete@3x.png b/YuMi/Assets.xcassets/Monents/yumi_monents_publish_album_delete.imageset/yumi_monents_publish_album_delete@3x.png new file mode 100644 index 00000000..54c20b85 Binary files /dev/null and b/YuMi/Assets.xcassets/Monents/yumi_monents_publish_album_delete.imageset/yumi_monents_publish_album_delete@3x.png differ diff --git a/YuMi/Assets.xcassets/Monents/yumi_monents_publish_delete.imageset/Contents.json b/YuMi/Assets.xcassets/Monents/yumi_monents_publish_delete.imageset/Contents.json new file mode 100644 index 00000000..484c73b4 --- /dev/null +++ b/YuMi/Assets.xcassets/Monents/yumi_monents_publish_delete.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_monents_publish_delete@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_monents_publish_delete@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/Monents/yumi_monents_publish_delete.imageset/yumi_monents_publish_delete@2x.png b/YuMi/Assets.xcassets/Monents/yumi_monents_publish_delete.imageset/yumi_monents_publish_delete@2x.png new file mode 100644 index 00000000..2242e27c Binary files /dev/null and b/YuMi/Assets.xcassets/Monents/yumi_monents_publish_delete.imageset/yumi_monents_publish_delete@2x.png differ diff --git a/YuMi/Assets.xcassets/Monents/yumi_monents_publish_delete.imageset/yumi_monents_publish_delete@3x.png b/YuMi/Assets.xcassets/Monents/yumi_monents_publish_delete.imageset/yumi_monents_publish_delete@3x.png new file mode 100644 index 00000000..5258cd81 Binary files /dev/null and b/YuMi/Assets.xcassets/Monents/yumi_monents_publish_delete.imageset/yumi_monents_publish_delete@3x.png differ diff --git a/YuMi/Assets.xcassets/Monents/yumi_monents_publish_success_pic.imageset/Contents.json b/YuMi/Assets.xcassets/Monents/yumi_monents_publish_success_pic.imageset/Contents.json new file mode 100644 index 00000000..c81d28ee --- /dev/null +++ b/YuMi/Assets.xcassets/Monents/yumi_monents_publish_success_pic.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_monents_publish_success_pic@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_monents_publish_success_pic@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/Monents/yumi_monents_publish_success_pic.imageset/yumi_monents_publish_success_pic@2x.png b/YuMi/Assets.xcassets/Monents/yumi_monents_publish_success_pic.imageset/yumi_monents_publish_success_pic@2x.png new file mode 100644 index 00000000..5111a7c4 Binary files /dev/null and b/YuMi/Assets.xcassets/Monents/yumi_monents_publish_success_pic.imageset/yumi_monents_publish_success_pic@2x.png differ diff --git a/YuMi/Assets.xcassets/Monents/yumi_monents_publish_success_pic.imageset/yumi_monents_publish_success_pic@3x.png b/YuMi/Assets.xcassets/Monents/yumi_monents_publish_success_pic.imageset/yumi_monents_publish_success_pic@3x.png new file mode 100644 index 00000000..abfa6053 Binary files /dev/null and b/YuMi/Assets.xcassets/Monents/yumi_monents_publish_success_pic.imageset/yumi_monents_publish_success_pic@3x.png differ diff --git a/YuMi/Assets.xcassets/Monents/yumi_monents_same_landLordFlag.imageset/Contents.json b/YuMi/Assets.xcassets/Monents/yumi_monents_same_landLordFlag.imageset/Contents.json new file mode 100644 index 00000000..50003d25 --- /dev/null +++ b/YuMi/Assets.xcassets/Monents/yumi_monents_same_landLordFlag.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_monents_same_landLordFlag@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_monents_same_landLordFlag@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/Monents/yumi_monents_same_landLordFlag.imageset/yumi_monents_same_landLordFlag@2x.png b/YuMi/Assets.xcassets/Monents/yumi_monents_same_landLordFlag.imageset/yumi_monents_same_landLordFlag@2x.png new file mode 100644 index 00000000..0d99dc8d Binary files /dev/null and b/YuMi/Assets.xcassets/Monents/yumi_monents_same_landLordFlag.imageset/yumi_monents_same_landLordFlag@2x.png differ diff --git a/YuMi/Assets.xcassets/Monents/yumi_monents_same_landLordFlag.imageset/yumi_monents_same_landLordFlag@3x.png b/YuMi/Assets.xcassets/Monents/yumi_monents_same_landLordFlag.imageset/yumi_monents_same_landLordFlag@3x.png new file mode 100644 index 00000000..495d6f16 Binary files /dev/null and b/YuMi/Assets.xcassets/Monents/yumi_monents_same_landLordFlag.imageset/yumi_monents_same_landLordFlag@3x.png differ diff --git a/YuMi/Assets.xcassets/Monents/yumi_monents_title_interavtive_message.imageset/Contents.json b/YuMi/Assets.xcassets/Monents/yumi_monents_title_interavtive_message.imageset/Contents.json new file mode 100644 index 00000000..524ef95a --- /dev/null +++ b/YuMi/Assets.xcassets/Monents/yumi_monents_title_interavtive_message.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_monents_title_interavtive_message@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_monents_title_interavtive_message@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/Monents/yumi_monents_title_interavtive_message.imageset/yumi_monents_title_interavtive_message@2x.png b/YuMi/Assets.xcassets/Monents/yumi_monents_title_interavtive_message.imageset/yumi_monents_title_interavtive_message@2x.png new file mode 100644 index 00000000..ba209c7d Binary files /dev/null and b/YuMi/Assets.xcassets/Monents/yumi_monents_title_interavtive_message.imageset/yumi_monents_title_interavtive_message@2x.png differ diff --git a/YuMi/Assets.xcassets/Monents/yumi_monents_title_interavtive_message.imageset/yumi_monents_title_interavtive_message@3x.png b/YuMi/Assets.xcassets/Monents/yumi_monents_title_interavtive_message.imageset/yumi_monents_title_interavtive_message@3x.png new file mode 100644 index 00000000..f073fef0 Binary files /dev/null and b/YuMi/Assets.xcassets/Monents/yumi_monents_title_interavtive_message.imageset/yumi_monents_title_interavtive_message@3x.png differ diff --git a/YuMi/Assets.xcassets/Monents/yumi_monents_topimage_camera.imageset/Contents.json b/YuMi/Assets.xcassets/Monents/yumi_monents_topimage_camera.imageset/Contents.json new file mode 100644 index 00000000..560810f9 --- /dev/null +++ b/YuMi/Assets.xcassets/Monents/yumi_monents_topimage_camera.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_monents_topimage_camera@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_monents_topimage_camera@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/Monents/yumi_monents_topimage_camera.imageset/yumi_monents_topimage_camera@2x.png b/YuMi/Assets.xcassets/Monents/yumi_monents_topimage_camera.imageset/yumi_monents_topimage_camera@2x.png new file mode 100644 index 00000000..36dc130b Binary files /dev/null and b/YuMi/Assets.xcassets/Monents/yumi_monents_topimage_camera.imageset/yumi_monents_topimage_camera@2x.png differ diff --git a/YuMi/Assets.xcassets/Monents/yumi_monents_topimage_camera.imageset/yumi_monents_topimage_camera@3x.png b/YuMi/Assets.xcassets/Monents/yumi_monents_topimage_camera.imageset/yumi_monents_topimage_camera@3x.png new file mode 100644 index 00000000..115b717c Binary files /dev/null and b/YuMi/Assets.xcassets/Monents/yumi_monents_topimage_camera.imageset/yumi_monents_topimage_camera@3x.png differ diff --git a/YuMi/Assets.xcassets/chat/Contents.json b/YuMi/Assets.xcassets/chat/Contents.json new file mode 100644 index 00000000..e2342777 --- /dev/null +++ b/YuMi/Assets.xcassets/chat/Contents.json @@ -0,0 +1,7 @@ +{"info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/chat/SayHello/Contents.json b/YuMi/Assets.xcassets/chat/SayHello/Contents.json new file mode 100644 index 00000000..e2342777 --- /dev/null +++ b/YuMi/Assets.xcassets/chat/SayHello/Contents.json @@ -0,0 +1,7 @@ +{"info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/chat/SayHello/yumi_term_list_hello_enter.imageset/Contents.json b/YuMi/Assets.xcassets/chat/SayHello/yumi_term_list_hello_enter.imageset/Contents.json new file mode 100644 index 00000000..910392d9 --- /dev/null +++ b/YuMi/Assets.xcassets/chat/SayHello/yumi_term_list_hello_enter.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_term_list_hello_enter@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_term_list_hello_enter@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/chat/SayHello/yumi_term_list_hello_enter.imageset/yumi_term_list_hello_enter@2x.png b/YuMi/Assets.xcassets/chat/SayHello/yumi_term_list_hello_enter.imageset/yumi_term_list_hello_enter@2x.png new file mode 100644 index 00000000..6b43980d Binary files /dev/null and b/YuMi/Assets.xcassets/chat/SayHello/yumi_term_list_hello_enter.imageset/yumi_term_list_hello_enter@2x.png differ diff --git a/YuMi/Assets.xcassets/chat/SayHello/yumi_term_list_hello_enter.imageset/yumi_term_list_hello_enter@3x.png b/YuMi/Assets.xcassets/chat/SayHello/yumi_term_list_hello_enter.imageset/yumi_term_list_hello_enter@3x.png new file mode 100644 index 00000000..3d5204d8 Binary files /dev/null and b/YuMi/Assets.xcassets/chat/SayHello/yumi_term_list_hello_enter.imageset/yumi_term_list_hello_enter@3x.png differ diff --git a/YuMi/Assets.xcassets/chat/SayHello/yumi_term_say_hello_list_background.imageset/Contents.json b/YuMi/Assets.xcassets/chat/SayHello/yumi_term_say_hello_list_background.imageset/Contents.json new file mode 100644 index 00000000..80754d0a --- /dev/null +++ b/YuMi/Assets.xcassets/chat/SayHello/yumi_term_say_hello_list_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_term_say_hello_list_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_term_say_hello_list_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/chat/SayHello/yumi_term_say_hello_list_background.imageset/yumi_term_say_hello_list_background@2x.png b/YuMi/Assets.xcassets/chat/SayHello/yumi_term_say_hello_list_background.imageset/yumi_term_say_hello_list_background@2x.png new file mode 100644 index 00000000..27765729 Binary files /dev/null and b/YuMi/Assets.xcassets/chat/SayHello/yumi_term_say_hello_list_background.imageset/yumi_term_say_hello_list_background@2x.png differ diff --git a/YuMi/Assets.xcassets/chat/SayHello/yumi_term_say_hello_list_background.imageset/yumi_term_say_hello_list_background@3x.png b/YuMi/Assets.xcassets/chat/SayHello/yumi_term_say_hello_list_background.imageset/yumi_term_say_hello_list_background@3x.png new file mode 100644 index 00000000..bbc3f9c4 Binary files /dev/null and b/YuMi/Assets.xcassets/chat/SayHello/yumi_term_say_hello_list_background.imageset/yumi_term_say_hello_list_background@3x.png differ diff --git a/YuMi/Assets.xcassets/chat/SayHello/yumi_term_say_hello_matter_background.imageset/Contents.json b/YuMi/Assets.xcassets/chat/SayHello/yumi_term_say_hello_matter_background.imageset/Contents.json new file mode 100644 index 00000000..fafeb551 --- /dev/null +++ b/YuMi/Assets.xcassets/chat/SayHello/yumi_term_say_hello_matter_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_term_say_hello_matter_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_term_say_hello_matter_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/chat/SayHello/yumi_term_say_hello_matter_background.imageset/yumi_term_say_hello_matter_background@2x.png b/YuMi/Assets.xcassets/chat/SayHello/yumi_term_say_hello_matter_background.imageset/yumi_term_say_hello_matter_background@2x.png new file mode 100644 index 00000000..ae5567d4 Binary files /dev/null and b/YuMi/Assets.xcassets/chat/SayHello/yumi_term_say_hello_matter_background.imageset/yumi_term_say_hello_matter_background@2x.png differ diff --git a/YuMi/Assets.xcassets/chat/SayHello/yumi_term_say_hello_matter_background.imageset/yumi_term_say_hello_matter_background@3x.png b/YuMi/Assets.xcassets/chat/SayHello/yumi_term_say_hello_matter_background.imageset/yumi_term_say_hello_matter_background@3x.png new file mode 100644 index 00000000..c2f91761 Binary files /dev/null and b/YuMi/Assets.xcassets/chat/SayHello/yumi_term_say_hello_matter_background.imageset/yumi_term_say_hello_matter_background@3x.png differ diff --git a/YuMi/Assets.xcassets/chat/SessionListHead/Contents.json b/YuMi/Assets.xcassets/chat/SessionListHead/Contents.json new file mode 100644 index 00000000..e2342777 --- /dev/null +++ b/YuMi/Assets.xcassets/chat/SessionListHead/Contents.json @@ -0,0 +1,7 @@ +{"info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/chat/SessionListHead/yumi_term_list_head_activity.imageset/Contents.json b/YuMi/Assets.xcassets/chat/SessionListHead/yumi_term_list_head_activity.imageset/Contents.json new file mode 100644 index 00000000..963a1e9b --- /dev/null +++ b/YuMi/Assets.xcassets/chat/SessionListHead/yumi_term_list_head_activity.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_term_list_head_activity@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_term_list_head_activity@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/chat/SessionListHead/yumi_term_list_head_activity.imageset/yumi_term_list_head_activity@2x.png b/YuMi/Assets.xcassets/chat/SessionListHead/yumi_term_list_head_activity.imageset/yumi_term_list_head_activity@2x.png new file mode 100644 index 00000000..503e3fca Binary files /dev/null and b/YuMi/Assets.xcassets/chat/SessionListHead/yumi_term_list_head_activity.imageset/yumi_term_list_head_activity@2x.png differ diff --git a/YuMi/Assets.xcassets/chat/SessionListHead/yumi_term_list_head_activity.imageset/yumi_term_list_head_activity@3x.png b/YuMi/Assets.xcassets/chat/SessionListHead/yumi_term_list_head_activity.imageset/yumi_term_list_head_activity@3x.png new file mode 100644 index 00000000..9ce40f95 Binary files /dev/null and b/YuMi/Assets.xcassets/chat/SessionListHead/yumi_term_list_head_activity.imageset/yumi_term_list_head_activity@3x.png differ diff --git a/YuMi/Assets.xcassets/chat/SessionListHead/yumi_term_list_head_mengxin.imageset/Contents.json b/YuMi/Assets.xcassets/chat/SessionListHead/yumi_term_list_head_mengxin.imageset/Contents.json new file mode 100644 index 00000000..ed1d5b0b --- /dev/null +++ b/YuMi/Assets.xcassets/chat/SessionListHead/yumi_term_list_head_mengxin.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_term_list_head_mengxin@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_term_list_head_mengxin@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/chat/SessionListHead/yumi_term_list_head_mengxin.imageset/yumi_term_list_head_mengxin@2x.png b/YuMi/Assets.xcassets/chat/SessionListHead/yumi_term_list_head_mengxin.imageset/yumi_term_list_head_mengxin@2x.png new file mode 100644 index 00000000..7f5a93a4 Binary files /dev/null and b/YuMi/Assets.xcassets/chat/SessionListHead/yumi_term_list_head_mengxin.imageset/yumi_term_list_head_mengxin@2x.png differ diff --git a/YuMi/Assets.xcassets/chat/SessionListHead/yumi_term_list_head_mengxin.imageset/yumi_term_list_head_mengxin@3x.png b/YuMi/Assets.xcassets/chat/SessionListHead/yumi_term_list_head_mengxin.imageset/yumi_term_list_head_mengxin@3x.png new file mode 100644 index 00000000..6586d9e5 Binary files /dev/null and b/YuMi/Assets.xcassets/chat/SessionListHead/yumi_term_list_head_mengxin.imageset/yumi_term_list_head_mengxin@3x.png differ diff --git a/YuMi/Assets.xcassets/chat/SessionListHead/yumi_term_list_head_office.imageset/Contents.json b/YuMi/Assets.xcassets/chat/SessionListHead/yumi_term_list_head_office.imageset/Contents.json new file mode 100644 index 00000000..c43f436a --- /dev/null +++ b/YuMi/Assets.xcassets/chat/SessionListHead/yumi_term_list_head_office.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_term_list_head_office@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_term_list_head_office@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/chat/SessionListHead/yumi_term_list_head_office.imageset/yumi_term_list_head_office@2x.png b/YuMi/Assets.xcassets/chat/SessionListHead/yumi_term_list_head_office.imageset/yumi_term_list_head_office@2x.png new file mode 100644 index 00000000..a7e1698b Binary files /dev/null and b/YuMi/Assets.xcassets/chat/SessionListHead/yumi_term_list_head_office.imageset/yumi_term_list_head_office@2x.png differ diff --git a/YuMi/Assets.xcassets/chat/SessionListHead/yumi_term_list_head_office.imageset/yumi_term_list_head_office@3x.png b/YuMi/Assets.xcassets/chat/SessionListHead/yumi_term_list_head_office.imageset/yumi_term_list_head_office@3x.png new file mode 100644 index 00000000..5293fc0e Binary files /dev/null and b/YuMi/Assets.xcassets/chat/SessionListHead/yumi_term_list_head_office.imageset/yumi_term_list_head_office@3x.png differ diff --git a/YuMi/Assets.xcassets/chat/SessionListHead/yumi_term_list_head_subscribe.imageset/Contents.json b/YuMi/Assets.xcassets/chat/SessionListHead/yumi_term_list_head_subscribe.imageset/Contents.json new file mode 100644 index 00000000..6b5579ac --- /dev/null +++ b/YuMi/Assets.xcassets/chat/SessionListHead/yumi_term_list_head_subscribe.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_term_list_head_subscribe@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_term_list_head_subscribe@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/chat/SessionListHead/yumi_term_list_head_subscribe.imageset/yumi_term_list_head_subscribe@2x.png b/YuMi/Assets.xcassets/chat/SessionListHead/yumi_term_list_head_subscribe.imageset/yumi_term_list_head_subscribe@2x.png new file mode 100644 index 00000000..b572dd98 Binary files /dev/null and b/YuMi/Assets.xcassets/chat/SessionListHead/yumi_term_list_head_subscribe.imageset/yumi_term_list_head_subscribe@2x.png differ diff --git a/YuMi/Assets.xcassets/chat/SessionListHead/yumi_term_list_head_subscribe.imageset/yumi_term_list_head_subscribe@3x.png b/YuMi/Assets.xcassets/chat/SessionListHead/yumi_term_list_head_subscribe.imageset/yumi_term_list_head_subscribe@3x.png new file mode 100644 index 00000000..39fdc59f Binary files /dev/null and b/YuMi/Assets.xcassets/chat/SessionListHead/yumi_term_list_head_subscribe.imageset/yumi_term_list_head_subscribe@3x.png differ diff --git a/YuMi/Assets.xcassets/chat/yumi_msg_kit_audio_record_cancel.imageset/Contents.json b/YuMi/Assets.xcassets/chat/yumi_msg_kit_audio_record_cancel.imageset/Contents.json new file mode 100644 index 00000000..b37f9f14 --- /dev/null +++ b/YuMi/Assets.xcassets/chat/yumi_msg_kit_audio_record_cancel.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_msg_kit_audio_record_cancel@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_msg_kit_audio_record_cancel@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/chat/yumi_msg_kit_audio_record_cancel.imageset/yumi_msg_kit_audio_record_cancel@2x.png b/YuMi/Assets.xcassets/chat/yumi_msg_kit_audio_record_cancel.imageset/yumi_msg_kit_audio_record_cancel@2x.png new file mode 100644 index 00000000..32a65ef3 Binary files /dev/null and b/YuMi/Assets.xcassets/chat/yumi_msg_kit_audio_record_cancel.imageset/yumi_msg_kit_audio_record_cancel@2x.png differ diff --git a/YuMi/Assets.xcassets/chat/yumi_msg_kit_audio_record_cancel.imageset/yumi_msg_kit_audio_record_cancel@3x.png b/YuMi/Assets.xcassets/chat/yumi_msg_kit_audio_record_cancel.imageset/yumi_msg_kit_audio_record_cancel@3x.png new file mode 100644 index 00000000..bc115994 Binary files /dev/null and b/YuMi/Assets.xcassets/chat/yumi_msg_kit_audio_record_cancel.imageset/yumi_msg_kit_audio_record_cancel@3x.png differ diff --git a/YuMi/Assets.xcassets/chat/yumi_msg_kit_audio_record_first.imageset/Contents.json b/YuMi/Assets.xcassets/chat/yumi_msg_kit_audio_record_first.imageset/Contents.json new file mode 100644 index 00000000..f42e90bc --- /dev/null +++ b/YuMi/Assets.xcassets/chat/yumi_msg_kit_audio_record_first.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_msg_kit_audio_record_first@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_msg_kit_audio_record_first@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/chat/yumi_msg_kit_audio_record_first.imageset/yumi_msg_kit_audio_record_first@2x.png b/YuMi/Assets.xcassets/chat/yumi_msg_kit_audio_record_first.imageset/yumi_msg_kit_audio_record_first@2x.png new file mode 100644 index 00000000..8add4cf2 Binary files /dev/null and b/YuMi/Assets.xcassets/chat/yumi_msg_kit_audio_record_first.imageset/yumi_msg_kit_audio_record_first@2x.png differ diff --git a/YuMi/Assets.xcassets/chat/yumi_msg_kit_audio_record_first.imageset/yumi_msg_kit_audio_record_first@3x.png b/YuMi/Assets.xcassets/chat/yumi_msg_kit_audio_record_first.imageset/yumi_msg_kit_audio_record_first@3x.png new file mode 100644 index 00000000..0af1597f Binary files /dev/null and b/YuMi/Assets.xcassets/chat/yumi_msg_kit_audio_record_first.imageset/yumi_msg_kit_audio_record_first@3x.png differ diff --git a/YuMi/Assets.xcassets/chat/yumi_msg_kit_audio_record_second.imageset/Contents.json b/YuMi/Assets.xcassets/chat/yumi_msg_kit_audio_record_second.imageset/Contents.json new file mode 100644 index 00000000..ef09cd9b --- /dev/null +++ b/YuMi/Assets.xcassets/chat/yumi_msg_kit_audio_record_second.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_msg_kit_audio_record_second@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_msg_kit_audio_record_second@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/chat/yumi_msg_kit_audio_record_second.imageset/yumi_msg_kit_audio_record_second@2x.png b/YuMi/Assets.xcassets/chat/yumi_msg_kit_audio_record_second.imageset/yumi_msg_kit_audio_record_second@2x.png new file mode 100644 index 00000000..55adf439 Binary files /dev/null and b/YuMi/Assets.xcassets/chat/yumi_msg_kit_audio_record_second.imageset/yumi_msg_kit_audio_record_second@2x.png differ diff --git a/YuMi/Assets.xcassets/chat/yumi_msg_kit_audio_record_second.imageset/yumi_msg_kit_audio_record_second@3x.png b/YuMi/Assets.xcassets/chat/yumi_msg_kit_audio_record_second.imageset/yumi_msg_kit_audio_record_second@3x.png new file mode 100644 index 00000000..b1cebf5b Binary files /dev/null and b/YuMi/Assets.xcassets/chat/yumi_msg_kit_audio_record_second.imageset/yumi_msg_kit_audio_record_second@3x.png differ diff --git a/YuMi/Assets.xcassets/chat/yumi_msg_kit_audio_record_third.imageset/Contents.json b/YuMi/Assets.xcassets/chat/yumi_msg_kit_audio_record_third.imageset/Contents.json new file mode 100644 index 00000000..dd225051 --- /dev/null +++ b/YuMi/Assets.xcassets/chat/yumi_msg_kit_audio_record_third.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_msg_kit_audio_record_third@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_msg_kit_audio_record_third@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/chat/yumi_msg_kit_audio_record_third.imageset/yumi_msg_kit_audio_record_third@2x.png b/YuMi/Assets.xcassets/chat/yumi_msg_kit_audio_record_third.imageset/yumi_msg_kit_audio_record_third@2x.png new file mode 100644 index 00000000..831ef526 Binary files /dev/null and b/YuMi/Assets.xcassets/chat/yumi_msg_kit_audio_record_third.imageset/yumi_msg_kit_audio_record_third@2x.png differ diff --git a/YuMi/Assets.xcassets/chat/yumi_msg_kit_audio_record_third.imageset/yumi_msg_kit_audio_record_third@3x.png b/YuMi/Assets.xcassets/chat/yumi_msg_kit_audio_record_third.imageset/yumi_msg_kit_audio_record_third@3x.png new file mode 100644 index 00000000..3be5f5da Binary files /dev/null and b/YuMi/Assets.xcassets/chat/yumi_msg_kit_audio_record_third.imageset/yumi_msg_kit_audio_record_third@3x.png differ diff --git a/YuMi/Assets.xcassets/chat/yumi_msg_matter_audio_playing_first.imageset/Contents.json b/YuMi/Assets.xcassets/chat/yumi_msg_matter_audio_playing_first.imageset/Contents.json new file mode 100644 index 00000000..44a7e28a --- /dev/null +++ b/YuMi/Assets.xcassets/chat/yumi_msg_matter_audio_playing_first.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_msg_matter_audio_playing_first@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_msg_matter_audio_playing_first@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/chat/yumi_msg_matter_audio_playing_first.imageset/yumi_msg_matter_audio_playing_first@2x.png b/YuMi/Assets.xcassets/chat/yumi_msg_matter_audio_playing_first.imageset/yumi_msg_matter_audio_playing_first@2x.png new file mode 100644 index 00000000..8a88e191 Binary files /dev/null and b/YuMi/Assets.xcassets/chat/yumi_msg_matter_audio_playing_first.imageset/yumi_msg_matter_audio_playing_first@2x.png differ diff --git a/YuMi/Assets.xcassets/chat/yumi_msg_matter_audio_playing_first.imageset/yumi_msg_matter_audio_playing_first@3x.png b/YuMi/Assets.xcassets/chat/yumi_msg_matter_audio_playing_first.imageset/yumi_msg_matter_audio_playing_first@3x.png new file mode 100644 index 00000000..ecbd8356 Binary files /dev/null and b/YuMi/Assets.xcassets/chat/yumi_msg_matter_audio_playing_first.imageset/yumi_msg_matter_audio_playing_first@3x.png differ diff --git a/YuMi/Assets.xcassets/chat/yumi_msg_matter_audio_playing_second.imageset/Contents.json b/YuMi/Assets.xcassets/chat/yumi_msg_matter_audio_playing_second.imageset/Contents.json new file mode 100644 index 00000000..beabb043 --- /dev/null +++ b/YuMi/Assets.xcassets/chat/yumi_msg_matter_audio_playing_second.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_msg_matter_audio_playing_second@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_msg_matter_audio_playing_second@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/chat/yumi_msg_matter_audio_playing_second.imageset/yumi_msg_matter_audio_playing_second@2x.png b/YuMi/Assets.xcassets/chat/yumi_msg_matter_audio_playing_second.imageset/yumi_msg_matter_audio_playing_second@2x.png new file mode 100644 index 00000000..a98e16ee Binary files /dev/null and b/YuMi/Assets.xcassets/chat/yumi_msg_matter_audio_playing_second.imageset/yumi_msg_matter_audio_playing_second@2x.png differ diff --git a/YuMi/Assets.xcassets/chat/yumi_msg_matter_audio_playing_second.imageset/yumi_msg_matter_audio_playing_second@3x.png b/YuMi/Assets.xcassets/chat/yumi_msg_matter_audio_playing_second.imageset/yumi_msg_matter_audio_playing_second@3x.png new file mode 100644 index 00000000..2b7254c6 Binary files /dev/null and b/YuMi/Assets.xcassets/chat/yumi_msg_matter_audio_playing_second.imageset/yumi_msg_matter_audio_playing_second@3x.png differ diff --git a/YuMi/Assets.xcassets/chat/yumi_msg_matter_audio_playing_third.imageset/Contents.json b/YuMi/Assets.xcassets/chat/yumi_msg_matter_audio_playing_third.imageset/Contents.json new file mode 100644 index 00000000..feaaea94 --- /dev/null +++ b/YuMi/Assets.xcassets/chat/yumi_msg_matter_audio_playing_third.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_msg_matter_audio_playing_third@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_msg_matter_audio_playing_third@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/chat/yumi_msg_matter_audio_playing_third.imageset/yumi_msg_matter_audio_playing_third@2x.png b/YuMi/Assets.xcassets/chat/yumi_msg_matter_audio_playing_third.imageset/yumi_msg_matter_audio_playing_third@2x.png new file mode 100644 index 00000000..83758cb2 Binary files /dev/null and b/YuMi/Assets.xcassets/chat/yumi_msg_matter_audio_playing_third.imageset/yumi_msg_matter_audio_playing_third@2x.png differ diff --git a/YuMi/Assets.xcassets/chat/yumi_msg_matter_audio_playing_third.imageset/yumi_msg_matter_audio_playing_third@3x.png b/YuMi/Assets.xcassets/chat/yumi_msg_matter_audio_playing_third.imageset/yumi_msg_matter_audio_playing_third@3x.png new file mode 100644 index 00000000..cf730d3a Binary files /dev/null and b/YuMi/Assets.xcassets/chat/yumi_msg_matter_audio_playing_third.imageset/yumi_msg_matter_audio_playing_third@3x.png differ diff --git a/YuMi/Assets.xcassets/chat/yumi_msg_matter_upgrade_charm.imageset/Contents.json b/YuMi/Assets.xcassets/chat/yumi_msg_matter_upgrade_charm.imageset/Contents.json new file mode 100644 index 00000000..afa31381 --- /dev/null +++ b/YuMi/Assets.xcassets/chat/yumi_msg_matter_upgrade_charm.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_msg_matter_upgrade_charm@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_msg_matter_upgrade_charm@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/chat/yumi_msg_matter_upgrade_charm.imageset/yumi_msg_matter_upgrade_charm@2x.png b/YuMi/Assets.xcassets/chat/yumi_msg_matter_upgrade_charm.imageset/yumi_msg_matter_upgrade_charm@2x.png new file mode 100644 index 00000000..76c7d258 Binary files /dev/null and b/YuMi/Assets.xcassets/chat/yumi_msg_matter_upgrade_charm.imageset/yumi_msg_matter_upgrade_charm@2x.png differ diff --git a/YuMi/Assets.xcassets/chat/yumi_msg_matter_upgrade_charm.imageset/yumi_msg_matter_upgrade_charm@3x.png b/YuMi/Assets.xcassets/chat/yumi_msg_matter_upgrade_charm.imageset/yumi_msg_matter_upgrade_charm@3x.png new file mode 100644 index 00000000..a3cf6010 Binary files /dev/null and b/YuMi/Assets.xcassets/chat/yumi_msg_matter_upgrade_charm.imageset/yumi_msg_matter_upgrade_charm@3x.png differ diff --git a/YuMi/Assets.xcassets/chat/yumi_msg_matter_upgrade_expre.imageset/Contents.json b/YuMi/Assets.xcassets/chat/yumi_msg_matter_upgrade_expre.imageset/Contents.json new file mode 100644 index 00000000..11fe424b --- /dev/null +++ b/YuMi/Assets.xcassets/chat/yumi_msg_matter_upgrade_expre.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_msg_matter_upgrade_expre@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_msg_matter_upgrade_expre@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/chat/yumi_msg_matter_upgrade_expre.imageset/yumi_msg_matter_upgrade_expre@2x.png b/YuMi/Assets.xcassets/chat/yumi_msg_matter_upgrade_expre.imageset/yumi_msg_matter_upgrade_expre@2x.png new file mode 100644 index 00000000..0017a377 Binary files /dev/null and b/YuMi/Assets.xcassets/chat/yumi_msg_matter_upgrade_expre.imageset/yumi_msg_matter_upgrade_expre@2x.png differ diff --git a/YuMi/Assets.xcassets/chat/yumi_msg_matter_upgrade_expre.imageset/yumi_msg_matter_upgrade_expre@3x.png b/YuMi/Assets.xcassets/chat/yumi_msg_matter_upgrade_expre.imageset/yumi_msg_matter_upgrade_expre@3x.png new file mode 100644 index 00000000..3836b279 Binary files /dev/null and b/YuMi/Assets.xcassets/chat/yumi_msg_matter_upgrade_expre.imageset/yumi_msg_matter_upgrade_expre@3x.png differ diff --git a/YuMi/Assets.xcassets/chat/yumi_msg_term_download_fail.imageset/Contents.json b/YuMi/Assets.xcassets/chat/yumi_msg_term_download_fail.imageset/Contents.json new file mode 100644 index 00000000..ce45c965 --- /dev/null +++ b/YuMi/Assets.xcassets/chat/yumi_msg_term_download_fail.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_msg_term_download_fail@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_msg_term_download_fail@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/chat/yumi_msg_term_download_fail.imageset/yumi_msg_term_download_fail@2x.png b/YuMi/Assets.xcassets/chat/yumi_msg_term_download_fail.imageset/yumi_msg_term_download_fail@2x.png new file mode 100644 index 00000000..a34f19b5 Binary files /dev/null and b/YuMi/Assets.xcassets/chat/yumi_msg_term_download_fail.imageset/yumi_msg_term_download_fail@2x.png differ diff --git a/YuMi/Assets.xcassets/chat/yumi_msg_term_download_fail.imageset/yumi_msg_term_download_fail@3x.png b/YuMi/Assets.xcassets/chat/yumi_msg_term_download_fail.imageset/yumi_msg_term_download_fail@3x.png new file mode 100644 index 00000000..e3773bfe Binary files /dev/null and b/YuMi/Assets.xcassets/chat/yumi_msg_term_download_fail.imageset/yumi_msg_term_download_fail@3x.png differ diff --git a/YuMi/Assets.xcassets/chat/yumi_msg_term_find_new_filtrate.imageset/Contents.json b/YuMi/Assets.xcassets/chat/yumi_msg_term_find_new_filtrate.imageset/Contents.json new file mode 100644 index 00000000..e602a3c4 --- /dev/null +++ b/YuMi/Assets.xcassets/chat/yumi_msg_term_find_new_filtrate.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_msg_term_find_new_filtrate@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_msg_term_find_new_filtrate@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/chat/yumi_msg_term_find_new_filtrate.imageset/yumi_msg_term_find_new_filtrate@2x.png b/YuMi/Assets.xcassets/chat/yumi_msg_term_find_new_filtrate.imageset/yumi_msg_term_find_new_filtrate@2x.png new file mode 100644 index 00000000..2f422706 Binary files /dev/null and b/YuMi/Assets.xcassets/chat/yumi_msg_term_find_new_filtrate.imageset/yumi_msg_term_find_new_filtrate@2x.png differ diff --git a/YuMi/Assets.xcassets/chat/yumi_msg_term_find_new_filtrate.imageset/yumi_msg_term_find_new_filtrate@3x.png b/YuMi/Assets.xcassets/chat/yumi_msg_term_find_new_filtrate.imageset/yumi_msg_term_find_new_filtrate@3x.png new file mode 100644 index 00000000..23c88e16 Binary files /dev/null and b/YuMi/Assets.xcassets/chat/yumi_msg_term_find_new_filtrate.imageset/yumi_msg_term_find_new_filtrate@3x.png differ diff --git a/YuMi/Assets.xcassets/chat/yumi_msg_term_menu_camera.imageset/Contents.json b/YuMi/Assets.xcassets/chat/yumi_msg_term_menu_camera.imageset/Contents.json new file mode 100644 index 00000000..3e1e1a8c --- /dev/null +++ b/YuMi/Assets.xcassets/chat/yumi_msg_term_menu_camera.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_msg_term_menu_camera@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_msg_term_menu_camera@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/chat/yumi_msg_term_menu_camera.imageset/yumi_msg_term_menu_camera@2x.png b/YuMi/Assets.xcassets/chat/yumi_msg_term_menu_camera.imageset/yumi_msg_term_menu_camera@2x.png new file mode 100644 index 00000000..bd9f8efe Binary files /dev/null and b/YuMi/Assets.xcassets/chat/yumi_msg_term_menu_camera.imageset/yumi_msg_term_menu_camera@2x.png differ diff --git a/YuMi/Assets.xcassets/chat/yumi_msg_term_menu_camera.imageset/yumi_msg_term_menu_camera@3x.png b/YuMi/Assets.xcassets/chat/yumi_msg_term_menu_camera.imageset/yumi_msg_term_menu_camera@3x.png new file mode 100644 index 00000000..562c5588 Binary files /dev/null and b/YuMi/Assets.xcassets/chat/yumi_msg_term_menu_camera.imageset/yumi_msg_term_menu_camera@3x.png differ diff --git a/YuMi/Assets.xcassets/chat/yumi_msg_term_menu_gift.imageset/Contents.json b/YuMi/Assets.xcassets/chat/yumi_msg_term_menu_gift.imageset/Contents.json new file mode 100644 index 00000000..3d2e927b --- /dev/null +++ b/YuMi/Assets.xcassets/chat/yumi_msg_term_menu_gift.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_msg_term_menu_gift@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_msg_term_menu_gift@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/chat/yumi_msg_term_menu_gift.imageset/yumi_msg_term_menu_gift@2x.png b/YuMi/Assets.xcassets/chat/yumi_msg_term_menu_gift.imageset/yumi_msg_term_menu_gift@2x.png new file mode 100644 index 00000000..71b79e53 Binary files /dev/null and b/YuMi/Assets.xcassets/chat/yumi_msg_term_menu_gift.imageset/yumi_msg_term_menu_gift@2x.png differ diff --git a/YuMi/Assets.xcassets/chat/yumi_msg_term_menu_gift.imageset/yumi_msg_term_menu_gift@3x.png b/YuMi/Assets.xcassets/chat/yumi_msg_term_menu_gift.imageset/yumi_msg_term_menu_gift@3x.png new file mode 100644 index 00000000..f6bc7d55 Binary files /dev/null and b/YuMi/Assets.xcassets/chat/yumi_msg_term_menu_gift.imageset/yumi_msg_term_menu_gift@3x.png differ diff --git a/YuMi/Assets.xcassets/chat/yumi_msg_term_menu_photo.imageset/Contents.json b/YuMi/Assets.xcassets/chat/yumi_msg_term_menu_photo.imageset/Contents.json new file mode 100644 index 00000000..4448fbfd --- /dev/null +++ b/YuMi/Assets.xcassets/chat/yumi_msg_term_menu_photo.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_msg_term_menu_photo@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_msg_term_menu_photo@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/chat/yumi_msg_term_menu_photo.imageset/yumi_msg_term_menu_photo@2x.png b/YuMi/Assets.xcassets/chat/yumi_msg_term_menu_photo.imageset/yumi_msg_term_menu_photo@2x.png new file mode 100644 index 00000000..6bd1fb38 Binary files /dev/null and b/YuMi/Assets.xcassets/chat/yumi_msg_term_menu_photo.imageset/yumi_msg_term_menu_photo@2x.png differ diff --git a/YuMi/Assets.xcassets/chat/yumi_msg_term_menu_photo.imageset/yumi_msg_term_menu_photo@3x.png b/YuMi/Assets.xcassets/chat/yumi_msg_term_menu_photo.imageset/yumi_msg_term_menu_photo@3x.png new file mode 100644 index 00000000..e14af288 Binary files /dev/null and b/YuMi/Assets.xcassets/chat/yumi_msg_term_menu_photo.imageset/yumi_msg_term_menu_photo@3x.png differ diff --git a/YuMi/Assets.xcassets/chat/yumi_msg_term_title_report.imageset/Contents.json b/YuMi/Assets.xcassets/chat/yumi_msg_term_title_report.imageset/Contents.json new file mode 100644 index 00000000..5f62abd8 --- /dev/null +++ b/YuMi/Assets.xcassets/chat/yumi_msg_term_title_report.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_msg_term_title_report@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_msg_term_title_report@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/chat/yumi_msg_term_title_report.imageset/yumi_msg_term_title_report@2x.png b/YuMi/Assets.xcassets/chat/yumi_msg_term_title_report.imageset/yumi_msg_term_title_report@2x.png new file mode 100644 index 00000000..673af4ad Binary files /dev/null and b/YuMi/Assets.xcassets/chat/yumi_msg_term_title_report.imageset/yumi_msg_term_title_report@2x.png differ diff --git a/YuMi/Assets.xcassets/chat/yumi_msg_term_title_report.imageset/yumi_msg_term_title_report@3x.png b/YuMi/Assets.xcassets/chat/yumi_msg_term_title_report.imageset/yumi_msg_term_title_report@3x.png new file mode 100644 index 00000000..93d92d1a Binary files /dev/null and b/YuMi/Assets.xcassets/chat/yumi_msg_term_title_report.imageset/yumi_msg_term_title_report@3x.png differ diff --git a/YuMi/Assets.xcassets/chat/yumi_sessionList_clear.imageset/Contents.json b/YuMi/Assets.xcassets/chat/yumi_sessionList_clear.imageset/Contents.json new file mode 100644 index 00000000..1da425b3 --- /dev/null +++ b/YuMi/Assets.xcassets/chat/yumi_sessionList_clear.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_sessionList_clear@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_sessionList_clear@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/chat/yumi_sessionList_clear.imageset/yumi_sessionList_clear@2x.png b/YuMi/Assets.xcassets/chat/yumi_sessionList_clear.imageset/yumi_sessionList_clear@2x.png new file mode 100644 index 00000000..8d830079 Binary files /dev/null and b/YuMi/Assets.xcassets/chat/yumi_sessionList_clear.imageset/yumi_sessionList_clear@2x.png differ diff --git a/YuMi/Assets.xcassets/chat/yumi_sessionList_clear.imageset/yumi_sessionList_clear@3x.png b/YuMi/Assets.xcassets/chat/yumi_sessionList_clear.imageset/yumi_sessionList_clear@3x.png new file mode 100644 index 00000000..fc610337 Binary files /dev/null and b/YuMi/Assets.xcassets/chat/yumi_sessionList_clear.imageset/yumi_sessionList_clear@3x.png differ diff --git a/YuMi/Assets.xcassets/chat/yumi_term_find_new_refresh.imageset/Contents.json b/YuMi/Assets.xcassets/chat/yumi_term_find_new_refresh.imageset/Contents.json new file mode 100644 index 00000000..cc243b04 --- /dev/null +++ b/YuMi/Assets.xcassets/chat/yumi_term_find_new_refresh.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_term_find_new_refresh@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_term_find_new_refresh@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/chat/yumi_term_find_new_refresh.imageset/yumi_term_find_new_refresh@2x.png b/YuMi/Assets.xcassets/chat/yumi_term_find_new_refresh.imageset/yumi_term_find_new_refresh@2x.png new file mode 100644 index 00000000..77eba4cf Binary files /dev/null and b/YuMi/Assets.xcassets/chat/yumi_term_find_new_refresh.imageset/yumi_term_find_new_refresh@2x.png differ diff --git a/YuMi/Assets.xcassets/chat/yumi_term_find_new_refresh.imageset/yumi_term_find_new_refresh@3x.png b/YuMi/Assets.xcassets/chat/yumi_term_find_new_refresh.imageset/yumi_term_find_new_refresh@3x.png new file mode 100644 index 00000000..d94cabfa Binary files /dev/null and b/YuMi/Assets.xcassets/chat/yumi_term_find_new_refresh.imageset/yumi_term_find_new_refresh@3x.png differ diff --git a/YuMi/Assets.xcassets/chat/yumi_term_input_kit_choose_normal.imageset/Contents.json b/YuMi/Assets.xcassets/chat/yumi_term_input_kit_choose_normal.imageset/Contents.json new file mode 100644 index 00000000..c63521ca --- /dev/null +++ b/YuMi/Assets.xcassets/chat/yumi_term_input_kit_choose_normal.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_term_input_kit_choose_normal@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_term_input_kit_choose_normal@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/chat/yumi_term_input_kit_choose_normal.imageset/yumi_term_input_kit_choose_normal@2x.png b/YuMi/Assets.xcassets/chat/yumi_term_input_kit_choose_normal.imageset/yumi_term_input_kit_choose_normal@2x.png new file mode 100644 index 00000000..0d780261 Binary files /dev/null and b/YuMi/Assets.xcassets/chat/yumi_term_input_kit_choose_normal.imageset/yumi_term_input_kit_choose_normal@2x.png differ diff --git a/YuMi/Assets.xcassets/chat/yumi_term_input_kit_choose_normal.imageset/yumi_term_input_kit_choose_normal@3x.png b/YuMi/Assets.xcassets/chat/yumi_term_input_kit_choose_normal.imageset/yumi_term_input_kit_choose_normal@3x.png new file mode 100644 index 00000000..6ab53597 Binary files /dev/null and b/YuMi/Assets.xcassets/chat/yumi_term_input_kit_choose_normal.imageset/yumi_term_input_kit_choose_normal@3x.png differ diff --git a/YuMi/Assets.xcassets/chat/yumi_term_input_kit_choose_select.imageset/Contents.json b/YuMi/Assets.xcassets/chat/yumi_term_input_kit_choose_select.imageset/Contents.json new file mode 100644 index 00000000..88391471 --- /dev/null +++ b/YuMi/Assets.xcassets/chat/yumi_term_input_kit_choose_select.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_term_input_kit_choose_select@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_term_input_kit_choose_select@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/chat/yumi_term_input_kit_choose_select.imageset/yumi_term_input_kit_choose_select@2x.png b/YuMi/Assets.xcassets/chat/yumi_term_input_kit_choose_select.imageset/yumi_term_input_kit_choose_select@2x.png new file mode 100644 index 00000000..c75fce2c Binary files /dev/null and b/YuMi/Assets.xcassets/chat/yumi_term_input_kit_choose_select.imageset/yumi_term_input_kit_choose_select@2x.png differ diff --git a/YuMi/Assets.xcassets/chat/yumi_term_input_kit_choose_select.imageset/yumi_term_input_kit_choose_select@3x.png b/YuMi/Assets.xcassets/chat/yumi_term_input_kit_choose_select.imageset/yumi_term_input_kit_choose_select@3x.png new file mode 100644 index 00000000..9f7fb0fd Binary files /dev/null and b/YuMi/Assets.xcassets/chat/yumi_term_input_kit_choose_select.imageset/yumi_term_input_kit_choose_select@3x.png differ diff --git a/YuMi/Assets.xcassets/chat/yumi_term_list_background.imageset/Contents.json b/YuMi/Assets.xcassets/chat/yumi_term_list_background.imageset/Contents.json new file mode 100644 index 00000000..3aafb722 --- /dev/null +++ b/YuMi/Assets.xcassets/chat/yumi_term_list_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_term_list_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_term_list_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/chat/yumi_term_list_background.imageset/yumi_term_list_background@2x.png b/YuMi/Assets.xcassets/chat/yumi_term_list_background.imageset/yumi_term_list_background@2x.png new file mode 100644 index 00000000..87c33fc4 Binary files /dev/null and b/YuMi/Assets.xcassets/chat/yumi_term_list_background.imageset/yumi_term_list_background@2x.png differ diff --git a/YuMi/Assets.xcassets/chat/yumi_term_list_background.imageset/yumi_term_list_background@3x.png b/YuMi/Assets.xcassets/chat/yumi_term_list_background.imageset/yumi_term_list_background@3x.png new file mode 100644 index 00000000..5c0f1444 Binary files /dev/null and b/YuMi/Assets.xcassets/chat/yumi_term_list_background.imageset/yumi_term_list_background@3x.png differ diff --git a/YuMi/Assets.xcassets/chat/yumi_term_title_live.imageset/Contents.json b/YuMi/Assets.xcassets/chat/yumi_term_title_live.imageset/Contents.json new file mode 100644 index 00000000..34fd6cef --- /dev/null +++ b/YuMi/Assets.xcassets/chat/yumi_term_title_live.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_term_title_live@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_term_title_live@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/chat/yumi_term_title_live.imageset/yumi_term_title_live@2x.png b/YuMi/Assets.xcassets/chat/yumi_term_title_live.imageset/yumi_term_title_live@2x.png new file mode 100644 index 00000000..2733ba5e Binary files /dev/null and b/YuMi/Assets.xcassets/chat/yumi_term_title_live.imageset/yumi_term_title_live@2x.png differ diff --git a/YuMi/Assets.xcassets/chat/yumi_term_title_live.imageset/yumi_term_title_live@3x.png b/YuMi/Assets.xcassets/chat/yumi_term_title_live.imageset/yumi_term_title_live@3x.png new file mode 100644 index 00000000..6e3c1b5c Binary files /dev/null and b/YuMi/Assets.xcassets/chat/yumi_term_title_live.imageset/yumi_term_title_live@3x.png differ diff --git a/YuMi/Assets.xcassets/chat/yumi_term_user_sex_female.imageset/Contents.json b/YuMi/Assets.xcassets/chat/yumi_term_user_sex_female.imageset/Contents.json new file mode 100644 index 00000000..bc36302d --- /dev/null +++ b/YuMi/Assets.xcassets/chat/yumi_term_user_sex_female.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_term_user_sex_female@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_term_user_sex_female@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/chat/yumi_term_user_sex_female.imageset/yumi_term_user_sex_female@2x.png b/YuMi/Assets.xcassets/chat/yumi_term_user_sex_female.imageset/yumi_term_user_sex_female@2x.png new file mode 100644 index 00000000..d7215335 Binary files /dev/null and b/YuMi/Assets.xcassets/chat/yumi_term_user_sex_female.imageset/yumi_term_user_sex_female@2x.png differ diff --git a/YuMi/Assets.xcassets/chat/yumi_term_user_sex_female.imageset/yumi_term_user_sex_female@3x.png b/YuMi/Assets.xcassets/chat/yumi_term_user_sex_female.imageset/yumi_term_user_sex_female@3x.png new file mode 100644 index 00000000..c9295579 Binary files /dev/null and b/YuMi/Assets.xcassets/chat/yumi_term_user_sex_female.imageset/yumi_term_user_sex_female@3x.png differ diff --git a/YuMi/Assets.xcassets/chat/yumi_term_user_sex_male.imageset/Contents.json b/YuMi/Assets.xcassets/chat/yumi_term_user_sex_male.imageset/Contents.json new file mode 100644 index 00000000..8312d25e --- /dev/null +++ b/YuMi/Assets.xcassets/chat/yumi_term_user_sex_male.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_term_user_sex_male@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_term_user_sex_male@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/chat/yumi_term_user_sex_male.imageset/yumi_term_user_sex_male@2x.png b/YuMi/Assets.xcassets/chat/yumi_term_user_sex_male.imageset/yumi_term_user_sex_male@2x.png new file mode 100644 index 00000000..a921b0ed Binary files /dev/null and b/YuMi/Assets.xcassets/chat/yumi_term_user_sex_male.imageset/yumi_term_user_sex_male@2x.png differ diff --git a/YuMi/Assets.xcassets/chat/yumi_term_user_sex_male.imageset/yumi_term_user_sex_male@3x.png b/YuMi/Assets.xcassets/chat/yumi_term_user_sex_male.imageset/yumi_term_user_sex_male@3x.png new file mode 100644 index 00000000..0c487da6 Binary files /dev/null and b/YuMi/Assets.xcassets/chat/yumi_term_user_sex_male.imageset/yumi_term_user_sex_male@3x.png differ diff --git a/YuMi/Assets.xcassets/chat/yumi_term_warn_close.imageset/Contents.json b/YuMi/Assets.xcassets/chat/yumi_term_warn_close.imageset/Contents.json new file mode 100644 index 00000000..e74d030d --- /dev/null +++ b/YuMi/Assets.xcassets/chat/yumi_term_warn_close.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_term_warn_close@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_term_warn_close@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/chat/yumi_term_warn_close.imageset/yumi_term_warn_close@2x.png b/YuMi/Assets.xcassets/chat/yumi_term_warn_close.imageset/yumi_term_warn_close@2x.png new file mode 100644 index 00000000..8095371f Binary files /dev/null and b/YuMi/Assets.xcassets/chat/yumi_term_warn_close.imageset/yumi_term_warn_close@2x.png differ diff --git a/YuMi/Assets.xcassets/chat/yumi_term_warn_close.imageset/yumi_term_warn_close@3x.png b/YuMi/Assets.xcassets/chat/yumi_term_warn_close.imageset/yumi_term_warn_close@3x.png new file mode 100644 index 00000000..80c52a52 Binary files /dev/null and b/YuMi/Assets.xcassets/chat/yumi_term_warn_close.imageset/yumi_term_warn_close@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/AnchorGrade/Contents.json b/YuMi/Assets.xcassets/jm/AnchorGrade/Contents.json new file mode 100644 index 00000000..e2342777 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/AnchorGrade/Contents.json @@ -0,0 +1,7 @@ +{"info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_a.imageset/Contents.json b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_a.imageset/Contents.json new file mode 100644 index 00000000..2ef0bb4d --- /dev/null +++ b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_a.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_anchor_level_a@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_anchor_level_a@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_a.imageset/yumi_center_anchor_level_a@2x.png b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_a.imageset/yumi_center_anchor_level_a@2x.png new file mode 100644 index 00000000..9e217189 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_a.imageset/yumi_center_anchor_level_a@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_a.imageset/yumi_center_anchor_level_a@3x.png b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_a.imageset/yumi_center_anchor_level_a@3x.png new file mode 100644 index 00000000..48909aaf Binary files /dev/null and b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_a.imageset/yumi_center_anchor_level_a@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_b.imageset/Contents.json b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_b.imageset/Contents.json new file mode 100644 index 00000000..e94e6ab5 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_b.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_anchor_level_b@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_anchor_level_b@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_b.imageset/yumi_center_anchor_level_b@2x.png b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_b.imageset/yumi_center_anchor_level_b@2x.png new file mode 100644 index 00000000..ffd766c1 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_b.imageset/yumi_center_anchor_level_b@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_b.imageset/yumi_center_anchor_level_b@3x.png b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_b.imageset/yumi_center_anchor_level_b@3x.png new file mode 100644 index 00000000..7b37ea17 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_b.imageset/yumi_center_anchor_level_b@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_background.imageset/Contents.json b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_background.imageset/Contents.json new file mode 100644 index 00000000..3afa0fb5 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_anchor_level_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_anchor_level_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_background.imageset/yumi_center_anchor_level_background@2x.png b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_background.imageset/yumi_center_anchor_level_background@2x.png new file mode 100644 index 00000000..9463a5a5 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_background.imageset/yumi_center_anchor_level_background@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_background.imageset/yumi_center_anchor_level_background@3x.png b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_background.imageset/yumi_center_anchor_level_background@3x.png new file mode 100644 index 00000000..e1806779 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_background.imageset/yumi_center_anchor_level_background@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_c.imageset/Contents.json b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_c.imageset/Contents.json new file mode 100644 index 00000000..61625ae0 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_c.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_anchor_level_c@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_anchor_level_c@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_c.imageset/yumi_center_anchor_level_c@2x.png b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_c.imageset/yumi_center_anchor_level_c@2x.png new file mode 100644 index 00000000..eba9630f Binary files /dev/null and b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_c.imageset/yumi_center_anchor_level_c@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_c.imageset/yumi_center_anchor_level_c@3x.png b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_c.imageset/yumi_center_anchor_level_c@3x.png new file mode 100644 index 00000000..dc51f531 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_c.imageset/yumi_center_anchor_level_c@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_d.imageset/Contents.json b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_d.imageset/Contents.json new file mode 100644 index 00000000..f7f5e7db --- /dev/null +++ b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_d.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_anchor_level_d@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_anchor_level_d@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_d.imageset/yumi_center_anchor_level_d@2x.png b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_d.imageset/yumi_center_anchor_level_d@2x.png new file mode 100644 index 00000000..0b263d62 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_d.imageset/yumi_center_anchor_level_d@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_d.imageset/yumi_center_anchor_level_d@3x.png b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_d.imageset/yumi_center_anchor_level_d@3x.png new file mode 100644 index 00000000..fef9e357 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_d.imageset/yumi_center_anchor_level_d@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_enter_a.imageset/Contents.json b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_enter_a.imageset/Contents.json new file mode 100644 index 00000000..8d091d42 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_enter_a.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_anchor_level_enter_a@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_anchor_level_enter_a@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_enter_a.imageset/yumi_center_anchor_level_enter_a@2x.png b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_enter_a.imageset/yumi_center_anchor_level_enter_a@2x.png new file mode 100644 index 00000000..ff8454c8 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_enter_a.imageset/yumi_center_anchor_level_enter_a@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_enter_a.imageset/yumi_center_anchor_level_enter_a@3x.png b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_enter_a.imageset/yumi_center_anchor_level_enter_a@3x.png new file mode 100644 index 00000000..cf97c976 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_enter_a.imageset/yumi_center_anchor_level_enter_a@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_enter_b.imageset/Contents.json b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_enter_b.imageset/Contents.json new file mode 100644 index 00000000..8886423e --- /dev/null +++ b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_enter_b.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_anchor_level_enter_b@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_anchor_level_enter_b@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_enter_b.imageset/yumi_center_anchor_level_enter_b@2x.png b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_enter_b.imageset/yumi_center_anchor_level_enter_b@2x.png new file mode 100644 index 00000000..52af9160 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_enter_b.imageset/yumi_center_anchor_level_enter_b@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_enter_b.imageset/yumi_center_anchor_level_enter_b@3x.png b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_enter_b.imageset/yumi_center_anchor_level_enter_b@3x.png new file mode 100644 index 00000000..639ad57d Binary files /dev/null and b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_enter_b.imageset/yumi_center_anchor_level_enter_b@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_enter_c.imageset/Contents.json b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_enter_c.imageset/Contents.json new file mode 100644 index 00000000..88a4cf1d --- /dev/null +++ b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_enter_c.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_anchor_level_enter_c@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_anchor_level_enter_c@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_enter_c.imageset/yumi_center_anchor_level_enter_c@2x.png b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_enter_c.imageset/yumi_center_anchor_level_enter_c@2x.png new file mode 100644 index 00000000..4e66ea6d Binary files /dev/null and b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_enter_c.imageset/yumi_center_anchor_level_enter_c@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_enter_c.imageset/yumi_center_anchor_level_enter_c@3x.png b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_enter_c.imageset/yumi_center_anchor_level_enter_c@3x.png new file mode 100644 index 00000000..17ebd45d Binary files /dev/null and b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_enter_c.imageset/yumi_center_anchor_level_enter_c@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_enter_d.imageset/Contents.json b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_enter_d.imageset/Contents.json new file mode 100644 index 00000000..afb503a0 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_enter_d.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_anchor_level_enter_d@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_anchor_level_enter_d@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_enter_d.imageset/yumi_center_anchor_level_enter_d@2x.png b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_enter_d.imageset/yumi_center_anchor_level_enter_d@2x.png new file mode 100644 index 00000000..d3558629 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_enter_d.imageset/yumi_center_anchor_level_enter_d@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_enter_d.imageset/yumi_center_anchor_level_enter_d@3x.png b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_enter_d.imageset/yumi_center_anchor_level_enter_d@3x.png new file mode 100644 index 00000000..22c1a000 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_enter_d.imageset/yumi_center_anchor_level_enter_d@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_enter_s.imageset/Contents.json b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_enter_s.imageset/Contents.json new file mode 100644 index 00000000..0abee12a --- /dev/null +++ b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_enter_s.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_anchor_level_enter_s@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_anchor_level_enter_s@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_enter_s.imageset/yumi_center_anchor_level_enter_s@2x.png b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_enter_s.imageset/yumi_center_anchor_level_enter_s@2x.png new file mode 100644 index 00000000..1aa0eec8 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_enter_s.imageset/yumi_center_anchor_level_enter_s@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_enter_s.imageset/yumi_center_anchor_level_enter_s@3x.png b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_enter_s.imageset/yumi_center_anchor_level_enter_s@3x.png new file mode 100644 index 00000000..d8e7cf75 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_enter_s.imageset/yumi_center_anchor_level_enter_s@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_s.imageset/Contents.json b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_s.imageset/Contents.json new file mode 100644 index 00000000..1ded7955 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_s.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_anchor_level_s@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_anchor_level_s@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_s.imageset/yumi_center_anchor_level_s@2x.png b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_s.imageset/yumi_center_anchor_level_s@2x.png new file mode 100644 index 00000000..c9d06c4b Binary files /dev/null and b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_s.imageset/yumi_center_anchor_level_s@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_s.imageset/yumi_center_anchor_level_s@3x.png b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_s.imageset/yumi_center_anchor_level_s@3x.png new file mode 100644 index 00000000..e9cb674b Binary files /dev/null and b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_s.imageset/yumi_center_anchor_level_s@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_title.imageset/Contents.json b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_title.imageset/Contents.json new file mode 100644 index 00000000..926b1451 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_title.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_anchor_level_title@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_anchor_level_title@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_title.imageset/yumi_center_anchor_level_title@2x.png b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_title.imageset/yumi_center_anchor_level_title@2x.png new file mode 100644 index 00000000..ef8f573f Binary files /dev/null and b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_title.imageset/yumi_center_anchor_level_title@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_title.imageset/yumi_center_anchor_level_title@3x.png b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_title.imageset/yumi_center_anchor_level_title@3x.png new file mode 100644 index 00000000..5de0665e Binary files /dev/null and b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_title.imageset/yumi_center_anchor_level_title@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_title_finish.imageset/Contents.json b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_title_finish.imageset/Contents.json new file mode 100644 index 00000000..b60c44d1 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_title_finish.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_anchor_level_title_finish@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_anchor_level_title_finish@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_title_finish.imageset/yumi_center_anchor_level_title_finish@2x.png b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_title_finish.imageset/yumi_center_anchor_level_title_finish@2x.png new file mode 100644 index 00000000..c0cd8711 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_title_finish.imageset/yumi_center_anchor_level_title_finish@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_title_finish.imageset/yumi_center_anchor_level_title_finish@3x.png b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_title_finish.imageset/yumi_center_anchor_level_title_finish@3x.png new file mode 100644 index 00000000..48dc9d33 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_title_finish.imageset/yumi_center_anchor_level_title_finish@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_update.imageset/Contents.json b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_update.imageset/Contents.json new file mode 100644 index 00000000..a3462b69 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_update.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_anchor_level_update@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_anchor_level_update@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_update.imageset/yumi_center_anchor_level_update@2x.png b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_update.imageset/yumi_center_anchor_level_update@2x.png new file mode 100644 index 00000000..7f369e58 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_update.imageset/yumi_center_anchor_level_update@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_update.imageset/yumi_center_anchor_level_update@3x.png b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_update.imageset/yumi_center_anchor_level_update@3x.png new file mode 100644 index 00000000..e9ad4c4c Binary files /dev/null and b/YuMi/Assets.xcassets/jm/AnchorGrade/yumi_center_anchor_level_update.imageset/yumi_center_anchor_level_update@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/Contents.json b/YuMi/Assets.xcassets/jm/Contents.json new file mode 100644 index 00000000..e2342777 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/Contents.json @@ -0,0 +1,7 @@ +{"info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/DressUp/Contents.json b/YuMi/Assets.xcassets/jm/DressUp/Contents.json new file mode 100644 index 00000000..e2342777 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/DressUp/Contents.json @@ -0,0 +1,7 @@ +{"info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/DressUp/yumi_center_dressUp_exclusive.imageset/Contents.json b/YuMi/Assets.xcassets/jm/DressUp/yumi_center_dressUp_exclusive.imageset/Contents.json new file mode 100644 index 00000000..1724dfff --- /dev/null +++ b/YuMi/Assets.xcassets/jm/DressUp/yumi_center_dressUp_exclusive.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_dressUp_exclusive@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_dressUp_exclusive@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/DressUp/yumi_center_dressUp_exclusive.imageset/yumi_center_dressUp_exclusive@2x.png b/YuMi/Assets.xcassets/jm/DressUp/yumi_center_dressUp_exclusive.imageset/yumi_center_dressUp_exclusive@2x.png new file mode 100644 index 00000000..660ace81 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/DressUp/yumi_center_dressUp_exclusive.imageset/yumi_center_dressUp_exclusive@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/DressUp/yumi_center_dressUp_exclusive.imageset/yumi_center_dressUp_exclusive@3x.png b/YuMi/Assets.xcassets/jm/DressUp/yumi_center_dressUp_exclusive.imageset/yumi_center_dressUp_exclusive@3x.png new file mode 100644 index 00000000..da9c0b6d Binary files /dev/null and b/YuMi/Assets.xcassets/jm/DressUp/yumi_center_dressUp_exclusive.imageset/yumi_center_dressUp_exclusive@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/DressUp/yumi_center_dressUp_limit.imageset/Contents.json b/YuMi/Assets.xcassets/jm/DressUp/yumi_center_dressUp_limit.imageset/Contents.json new file mode 100644 index 00000000..43efa1d6 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/DressUp/yumi_center_dressUp_limit.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_dressUp_limit@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_dressUp_limit@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/DressUp/yumi_center_dressUp_limit.imageset/yumi_center_dressUp_limit@2x.png b/YuMi/Assets.xcassets/jm/DressUp/yumi_center_dressUp_limit.imageset/yumi_center_dressUp_limit@2x.png new file mode 100644 index 00000000..dcf45c3c Binary files /dev/null and b/YuMi/Assets.xcassets/jm/DressUp/yumi_center_dressUp_limit.imageset/yumi_center_dressUp_limit@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/DressUp/yumi_center_dressUp_limit.imageset/yumi_center_dressUp_limit@3x.png b/YuMi/Assets.xcassets/jm/DressUp/yumi_center_dressUp_limit.imageset/yumi_center_dressUp_limit@3x.png new file mode 100644 index 00000000..8873b5d8 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/DressUp/yumi_center_dressUp_limit.imageset/yumi_center_dressUp_limit@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/DressUp/yumi_center_dressUp_new.imageset/Contents.json b/YuMi/Assets.xcassets/jm/DressUp/yumi_center_dressUp_new.imageset/Contents.json new file mode 100644 index 00000000..f6f19796 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/DressUp/yumi_center_dressUp_new.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_dressUp_new@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_dressUp_new@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/DressUp/yumi_center_dressUp_new.imageset/yumi_center_dressUp_new@2x.png b/YuMi/Assets.xcassets/jm/DressUp/yumi_center_dressUp_new.imageset/yumi_center_dressUp_new@2x.png new file mode 100644 index 00000000..90f6e439 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/DressUp/yumi_center_dressUp_new.imageset/yumi_center_dressUp_new@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/DressUp/yumi_center_dressUp_new.imageset/yumi_center_dressUp_new@3x.png b/YuMi/Assets.xcassets/jm/DressUp/yumi_center_dressUp_new.imageset/yumi_center_dressUp_new@3x.png new file mode 100644 index 00000000..95033e5b Binary files /dev/null and b/YuMi/Assets.xcassets/jm/DressUp/yumi_center_dressUp_new.imageset/yumi_center_dressUp_new@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/DressUp/yumi_center_dressup_give.imageset/Contents.json b/YuMi/Assets.xcassets/jm/DressUp/yumi_center_dressup_give.imageset/Contents.json new file mode 100644 index 00000000..b661a8b8 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/DressUp/yumi_center_dressup_give.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_dressup_give@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_dressup_give@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/DressUp/yumi_center_dressup_give.imageset/yumi_center_dressup_give@2x.png b/YuMi/Assets.xcassets/jm/DressUp/yumi_center_dressup_give.imageset/yumi_center_dressup_give@2x.png new file mode 100644 index 00000000..5068c609 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/DressUp/yumi_center_dressup_give.imageset/yumi_center_dressup_give@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/DressUp/yumi_center_dressup_give.imageset/yumi_center_dressup_give@3x.png b/YuMi/Assets.xcassets/jm/DressUp/yumi_center_dressup_give.imageset/yumi_center_dressup_give@3x.png new file mode 100644 index 00000000..41fb8446 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/DressUp/yumi_center_dressup_give.imageset/yumi_center_dressup_give@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/DressUp/yumi_center_dressup_grand_background.imageset/Contents.json b/YuMi/Assets.xcassets/jm/DressUp/yumi_center_dressup_grand_background.imageset/Contents.json new file mode 100644 index 00000000..a4a7fd45 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/DressUp/yumi_center_dressup_grand_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_dressup_grand_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_dressup_grand_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/DressUp/yumi_center_dressup_grand_background.imageset/yumi_center_dressup_grand_background@2x.png b/YuMi/Assets.xcassets/jm/DressUp/yumi_center_dressup_grand_background.imageset/yumi_center_dressup_grand_background@2x.png new file mode 100644 index 00000000..913ff1be Binary files /dev/null and b/YuMi/Assets.xcassets/jm/DressUp/yumi_center_dressup_grand_background.imageset/yumi_center_dressup_grand_background@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/DressUp/yumi_center_dressup_grand_background.imageset/yumi_center_dressup_grand_background@3x.png b/YuMi/Assets.xcassets/jm/DressUp/yumi_center_dressup_grand_background.imageset/yumi_center_dressup_grand_background@3x.png new file mode 100644 index 00000000..3ace177c Binary files /dev/null and b/YuMi/Assets.xcassets/jm/DressUp/yumi_center_dressup_grand_background.imageset/yumi_center_dressup_grand_background@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/Guild/Contents.json b/YuMi/Assets.xcassets/jm/Guild/Contents.json new file mode 100644 index 00000000..e2342777 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/Guild/Contents.json @@ -0,0 +1,7 @@ +{"info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_clan_arrow.imageset/Contents.json b/YuMi/Assets.xcassets/jm/Guild/yumi_center_clan_arrow.imageset/Contents.json new file mode 100644 index 00000000..5b25b49e --- /dev/null +++ b/YuMi/Assets.xcassets/jm/Guild/yumi_center_clan_arrow.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_clan_arrow@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_clan_arrow@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_clan_arrow.imageset/yumi_center_clan_arrow@2x.png b/YuMi/Assets.xcassets/jm/Guild/yumi_center_clan_arrow.imageset/yumi_center_clan_arrow@2x.png new file mode 100644 index 00000000..3a7ed8b5 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Guild/yumi_center_clan_arrow.imageset/yumi_center_clan_arrow@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_clan_arrow.imageset/yumi_center_clan_arrow@3x.png b/YuMi/Assets.xcassets/jm/Guild/yumi_center_clan_arrow.imageset/yumi_center_clan_arrow@3x.png new file mode 100644 index 00000000..7fe5d08b Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Guild/yumi_center_clan_arrow.imageset/yumi_center_clan_arrow@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_gen_labelarrow.imageset/Contents.json b/YuMi/Assets.xcassets/jm/Guild/yumi_center_gen_labelarrow.imageset/Contents.json new file mode 100644 index 00000000..db95e21d --- /dev/null +++ b/YuMi/Assets.xcassets/jm/Guild/yumi_center_gen_labelarrow.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_gen_labelarrow@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_gen_labelarrow@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_gen_labelarrow.imageset/yumi_center_gen_labelarrow@2x.png b/YuMi/Assets.xcassets/jm/Guild/yumi_center_gen_labelarrow.imageset/yumi_center_gen_labelarrow@2x.png new file mode 100644 index 00000000..e40ab799 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Guild/yumi_center_gen_labelarrow.imageset/yumi_center_gen_labelarrow@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_gen_labelarrow.imageset/yumi_center_gen_labelarrow@3x.png b/YuMi/Assets.xcassets/jm/Guild/yumi_center_gen_labelarrow.imageset/yumi_center_gen_labelarrow@3x.png new file mode 100644 index 00000000..aaf98edf Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Guild/yumi_center_gen_labelarrow.imageset/yumi_center_gen_labelarrow@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_gen_labelempty.imageset/Contents.json b/YuMi/Assets.xcassets/jm/Guild/yumi_center_gen_labelempty.imageset/Contents.json new file mode 100644 index 00000000..681b7a02 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/Guild/yumi_center_gen_labelempty.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_gen_labelempty@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_gen_labelempty@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_gen_labelempty.imageset/yumi_center_gen_labelempty@2x.png b/YuMi/Assets.xcassets/jm/Guild/yumi_center_gen_labelempty.imageset/yumi_center_gen_labelempty@2x.png new file mode 100644 index 00000000..18cbd371 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Guild/yumi_center_gen_labelempty.imageset/yumi_center_gen_labelempty@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_gen_labelempty.imageset/yumi_center_gen_labelempty@3x.png b/YuMi/Assets.xcassets/jm/Guild/yumi_center_gen_labelempty.imageset/yumi_center_gen_labelempty@3x.png new file mode 100644 index 00000000..0f1cafcf Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Guild/yumi_center_gen_labelempty.imageset/yumi_center_gen_labelempty@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_give_diamone_pic.imageset/Contents.json b/YuMi/Assets.xcassets/jm/Guild/yumi_center_give_diamone_pic.imageset/Contents.json new file mode 100644 index 00000000..96da1794 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/Guild/yumi_center_give_diamone_pic.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_give_diamone_pic@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_give_diamone_pic@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_give_diamone_pic.imageset/yumi_center_give_diamone_pic@2x.png b/YuMi/Assets.xcassets/jm/Guild/yumi_center_give_diamone_pic.imageset/yumi_center_give_diamone_pic@2x.png new file mode 100644 index 00000000..1a1be84b Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Guild/yumi_center_give_diamone_pic.imageset/yumi_center_give_diamone_pic@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_give_diamone_pic.imageset/yumi_center_give_diamone_pic@3x.png b/YuMi/Assets.xcassets/jm/Guild/yumi_center_give_diamone_pic.imageset/yumi_center_give_diamone_pic@3x.png new file mode 100644 index 00000000..6bdffa8b Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Guild/yumi_center_give_diamone_pic.imageset/yumi_center_give_diamone_pic@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_add.imageset/Contents.json b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_add.imageset/Contents.json new file mode 100644 index 00000000..2574b2a1 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_add.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_guild_add@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_guild_add@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_add.imageset/yumi_center_guild_add@2x.png b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_add.imageset/yumi_center_guild_add@2x.png new file mode 100644 index 00000000..39b4ff16 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_add.imageset/yumi_center_guild_add@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_add.imageset/yumi_center_guild_add@3x.png b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_add.imageset/yumi_center_guild_add@3x.png new file mode 100644 index 00000000..92817629 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_add.imageset/yumi_center_guild_add@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_add_room.imageset/Contents.json b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_add_room.imageset/Contents.json new file mode 100644 index 00000000..6faf6b57 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_add_room.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_guild_add_room@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_guild_add_room@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_add_room.imageset/yumi_center_guild_add_room@2x.png b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_add_room.imageset/yumi_center_guild_add_room@2x.png new file mode 100644 index 00000000..dbe0db2a Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_add_room.imageset/yumi_center_guild_add_room@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_add_room.imageset/yumi_center_guild_add_room@3x.png b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_add_room.imageset/yumi_center_guild_add_room@3x.png new file mode 100644 index 00000000..020655fe Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_add_room.imageset/yumi_center_guild_add_room@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_clan_header_anchor_income_background.imageset/Contents.json b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_clan_header_anchor_income_background.imageset/Contents.json new file mode 100644 index 00000000..2fb30746 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_clan_header_anchor_income_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_guild_clan_header_anchor_income_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_guild_clan_header_anchor_income_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_clan_header_anchor_income_background.imageset/yumi_center_guild_clan_header_anchor_income_background@2x.png b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_clan_header_anchor_income_background.imageset/yumi_center_guild_clan_header_anchor_income_background@2x.png new file mode 100644 index 00000000..86fef5e7 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_clan_header_anchor_income_background.imageset/yumi_center_guild_clan_header_anchor_income_background@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_clan_header_anchor_income_background.imageset/yumi_center_guild_clan_header_anchor_income_background@3x.png b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_clan_header_anchor_income_background.imageset/yumi_center_guild_clan_header_anchor_income_background@3x.png new file mode 100644 index 00000000..2e5c0133 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_clan_header_anchor_income_background.imageset/yumi_center_guild_clan_header_anchor_income_background@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_clan_header_background.imageset/Contents.json b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_clan_header_background.imageset/Contents.json new file mode 100644 index 00000000..04e4180b --- /dev/null +++ b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_clan_header_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_guild_clan_header_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_guild_clan_header_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_clan_header_background.imageset/yumi_center_guild_clan_header_background@2x.png b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_clan_header_background.imageset/yumi_center_guild_clan_header_background@2x.png new file mode 100644 index 00000000..d3fb7f40 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_clan_header_background.imageset/yumi_center_guild_clan_header_background@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_clan_header_background.imageset/yumi_center_guild_clan_header_background@3x.png b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_clan_header_background.imageset/yumi_center_guild_clan_header_background@3x.png new file mode 100644 index 00000000..b1b743bf Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_clan_header_background.imageset/yumi_center_guild_clan_header_background@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_clan_header_income_background.imageset/Contents.json b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_clan_header_income_background.imageset/Contents.json new file mode 100644 index 00000000..6c6a8064 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_clan_header_income_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_guild_clan_header_income_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_guild_clan_header_income_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_clan_header_income_background.imageset/yumi_center_guild_clan_header_income_background@2x.png b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_clan_header_income_background.imageset/yumi_center_guild_clan_header_income_background@2x.png new file mode 100644 index 00000000..c4f7b926 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_clan_header_income_background.imageset/yumi_center_guild_clan_header_income_background@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_clan_header_income_background.imageset/yumi_center_guild_clan_header_income_background@3x.png b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_clan_header_income_background.imageset/yumi_center_guild_clan_header_income_background@3x.png new file mode 100644 index 00000000..b32eb6d3 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_clan_header_income_background.imageset/yumi_center_guild_clan_header_income_background@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_clan_header_income_background_two.imageset/Contents.json b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_clan_header_income_background_two.imageset/Contents.json new file mode 100644 index 00000000..7fdea1c3 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_clan_header_income_background_two.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_guild_clan_header_income_background_two@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_guild_clan_header_income_background_two@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_clan_header_income_background_two.imageset/yumi_center_guild_clan_header_income_background_two@2x.png b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_clan_header_income_background_two.imageset/yumi_center_guild_clan_header_income_background_two@2x.png new file mode 100644 index 00000000..b1754869 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_clan_header_income_background_two.imageset/yumi_center_guild_clan_header_income_background_two@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_clan_header_income_background_two.imageset/yumi_center_guild_clan_header_income_background_two@3x.png b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_clan_header_income_background_two.imageset/yumi_center_guild_clan_header_income_background_two@3x.png new file mode 100644 index 00000000..6d86d437 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_clan_header_income_background_two.imageset/yumi_center_guild_clan_header_income_background_two@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_clan_header_superadmin_set_background.imageset/Contents.json b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_clan_header_superadmin_set_background.imageset/Contents.json new file mode 100644 index 00000000..36eb3334 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_clan_header_superadmin_set_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_guild_clan_header_superadmin_set_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_guild_clan_header_superadmin_set_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_clan_header_superadmin_set_background.imageset/yumi_center_guild_clan_header_superadmin_set_background@2x.png b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_clan_header_superadmin_set_background.imageset/yumi_center_guild_clan_header_superadmin_set_background@2x.png new file mode 100644 index 00000000..dd31e5a6 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_clan_header_superadmin_set_background.imageset/yumi_center_guild_clan_header_superadmin_set_background@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_clan_header_superadmin_set_background.imageset/yumi_center_guild_clan_header_superadmin_set_background@3x.png b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_clan_header_superadmin_set_background.imageset/yumi_center_guild_clan_header_superadmin_set_background@3x.png new file mode 100644 index 00000000..a5560e47 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_clan_header_superadmin_set_background.imageset/yumi_center_guild_clan_header_superadmin_set_background@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_clan_header_superadmin_set_background_two.imageset/Contents.json b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_clan_header_superadmin_set_background_two.imageset/Contents.json new file mode 100644 index 00000000..1c5e1fbf --- /dev/null +++ b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_clan_header_superadmin_set_background_two.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_guild_clan_header_superadmin_set_background_two@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_guild_clan_header_superadmin_set_background_two@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_clan_header_superadmin_set_background_two.imageset/yumi_center_guild_clan_header_superadmin_set_background_two@2x.png b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_clan_header_superadmin_set_background_two.imageset/yumi_center_guild_clan_header_superadmin_set_background_two@2x.png new file mode 100644 index 00000000..b9429be5 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_clan_header_superadmin_set_background_two.imageset/yumi_center_guild_clan_header_superadmin_set_background_two@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_clan_header_superadmin_set_background_two.imageset/yumi_center_guild_clan_header_superadmin_set_background_two@3x.png b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_clan_header_superadmin_set_background_two.imageset/yumi_center_guild_clan_header_superadmin_set_background_two@3x.png new file mode 100644 index 00000000..82dc35ea Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_clan_header_superadmin_set_background_two.imageset/yumi_center_guild_clan_header_superadmin_set_background_two@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_guild_edit.imageset/Contents.json b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_guild_edit.imageset/Contents.json new file mode 100644 index 00000000..4e6b2f3b --- /dev/null +++ b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_guild_edit.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_guild_guild_edit@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_guild_guild_edit@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_guild_edit.imageset/yumi_center_guild_guild_edit@2x.png b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_guild_edit.imageset/yumi_center_guild_guild_edit@2x.png new file mode 100644 index 00000000..61e0c854 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_guild_edit.imageset/yumi_center_guild_guild_edit@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_guild_edit.imageset/yumi_center_guild_guild_edit@3x.png b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_guild_edit.imageset/yumi_center_guild_guild_edit@3x.png new file mode 100644 index 00000000..d977fb53 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_guild_edit.imageset/yumi_center_guild_guild_edit@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_guild_header_background.imageset/Contents.json b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_guild_header_background.imageset/Contents.json new file mode 100644 index 00000000..43b374dd --- /dev/null +++ b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_guild_header_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_guild_guild_header_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_guild_guild_header_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_guild_header_background.imageset/yumi_center_guild_guild_header_background@2x.png b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_guild_header_background.imageset/yumi_center_guild_guild_header_background@2x.png new file mode 100644 index 00000000..3afd1605 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_guild_header_background.imageset/yumi_center_guild_guild_header_background@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_guild_header_background.imageset/yumi_center_guild_guild_header_background@3x.png b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_guild_header_background.imageset/yumi_center_guild_guild_header_background@3x.png new file mode 100644 index 00000000..fe571c57 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_guild_header_background.imageset/yumi_center_guild_guild_header_background@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_guild_manager_normal.imageset/Contents.json b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_guild_manager_normal.imageset/Contents.json new file mode 100644 index 00000000..91228b4a --- /dev/null +++ b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_guild_manager_normal.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_guild_guild_manager_normal@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_guild_guild_manager_normal@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_guild_manager_normal.imageset/yumi_center_guild_guild_manager_normal@2x.png b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_guild_manager_normal.imageset/yumi_center_guild_guild_manager_normal@2x.png new file mode 100644 index 00000000..ce17274a Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_guild_manager_normal.imageset/yumi_center_guild_guild_manager_normal@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_guild_manager_normal.imageset/yumi_center_guild_guild_manager_normal@3x.png b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_guild_manager_normal.imageset/yumi_center_guild_guild_manager_normal@3x.png new file mode 100644 index 00000000..0c19cb7a Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_guild_manager_normal.imageset/yumi_center_guild_guild_manager_normal@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_guild_manager_select.imageset/Contents.json b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_guild_manager_select.imageset/Contents.json new file mode 100644 index 00000000..b3efcc14 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_guild_manager_select.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_guild_guild_manager_select@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_guild_guild_manager_select@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_guild_manager_select.imageset/yumi_center_guild_guild_manager_select@2x.png b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_guild_manager_select.imageset/yumi_center_guild_guild_manager_select@2x.png new file mode 100644 index 00000000..7d57a88d Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_guild_manager_select.imageset/yumi_center_guild_guild_manager_select@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_guild_manager_select.imageset/yumi_center_guild_guild_manager_select@3x.png b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_guild_manager_select.imageset/yumi_center_guild_guild_manager_select@3x.png new file mode 100644 index 00000000..99241df7 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_guild_manager_select.imageset/yumi_center_guild_guild_manager_select@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_guild_manager_set.imageset/Contents.json b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_guild_manager_set.imageset/Contents.json new file mode 100644 index 00000000..547fe234 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_guild_manager_set.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_guild_guild_manager_set@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_guild_guild_manager_set@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_guild_manager_set.imageset/yumi_center_guild_guild_manager_set@2x.png b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_guild_manager_set.imageset/yumi_center_guild_guild_manager_set@2x.png new file mode 100644 index 00000000..def2016e Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_guild_manager_set.imageset/yumi_center_guild_guild_manager_set@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_guild_manager_set.imageset/yumi_center_guild_guild_manager_set@3x.png b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_guild_manager_set.imageset/yumi_center_guild_guild_manager_set@3x.png new file mode 100644 index 00000000..b996dd3d Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_guild_manager_set.imageset/yumi_center_guild_guild_manager_set@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_guild_remove_member.imageset/Contents.json b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_guild_remove_member.imageset/Contents.json new file mode 100644 index 00000000..951c7187 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_guild_remove_member.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_guild_guild_remove_member@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_guild_guild_remove_member@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_guild_remove_member.imageset/yumi_center_guild_guild_remove_member@2x.png b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_guild_remove_member.imageset/yumi_center_guild_guild_remove_member@2x.png new file mode 100644 index 00000000..46255fa1 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_guild_remove_member.imageset/yumi_center_guild_guild_remove_member@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_guild_remove_member.imageset/yumi_center_guild_guild_remove_member@3x.png b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_guild_remove_member.imageset/yumi_center_guild_guild_remove_member@3x.png new file mode 100644 index 00000000..8418f20c Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_guild_remove_member.imageset/yumi_center_guild_guild_remove_member@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_guild_section_manager.imageset/Contents.json b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_guild_section_manager.imageset/Contents.json new file mode 100644 index 00000000..9614d0e6 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_guild_section_manager.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_guild_guild_section_manager@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_guild_guild_section_manager@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_guild_section_manager.imageset/yumi_center_guild_guild_section_manager@2x.png b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_guild_section_manager.imageset/yumi_center_guild_guild_section_manager@2x.png new file mode 100644 index 00000000..cc06fabc Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_guild_section_manager.imageset/yumi_center_guild_guild_section_manager@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_guild_section_manager.imageset/yumi_center_guild_guild_section_manager@3x.png b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_guild_section_manager.imageset/yumi_center_guild_guild_section_manager@3x.png new file mode 100644 index 00000000..2a2a39da Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_guild_section_manager.imageset/yumi_center_guild_guild_section_manager@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_income_datePicker_background.imageset/Contents.json b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_income_datePicker_background.imageset/Contents.json new file mode 100644 index 00000000..3e443ffe --- /dev/null +++ b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_income_datePicker_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_guild_income_datePicker_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_guild_income_datePicker_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_income_datePicker_background.imageset/yumi_center_guild_income_datePicker_background@2x.png b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_income_datePicker_background.imageset/yumi_center_guild_income_datePicker_background@2x.png new file mode 100644 index 00000000..bf698eb8 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_income_datePicker_background.imageset/yumi_center_guild_income_datePicker_background@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_income_datePicker_background.imageset/yumi_center_guild_income_datePicker_background@3x.png b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_income_datePicker_background.imageset/yumi_center_guild_income_datePicker_background@3x.png new file mode 100644 index 00000000..23c57e6d Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_income_datePicker_background.imageset/yumi_center_guild_income_datePicker_background@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_income_header_background.imageset/Contents.json b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_income_header_background.imageset/Contents.json new file mode 100644 index 00000000..1395b03e --- /dev/null +++ b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_income_header_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_guild_income_header_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_guild_income_header_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_income_header_background.imageset/yumi_center_guild_income_header_background@2x.png b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_income_header_background.imageset/yumi_center_guild_income_header_background@2x.png new file mode 100644 index 00000000..d10cea73 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_income_header_background.imageset/yumi_center_guild_income_header_background@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_income_header_background.imageset/yumi_center_guild_income_header_background@3x.png b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_income_header_background.imageset/yumi_center_guild_income_header_background@3x.png new file mode 100644 index 00000000..74649544 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_income_header_background.imageset/yumi_center_guild_income_header_background@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_income_record_arrow.imageset/Contents.json b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_income_record_arrow.imageset/Contents.json new file mode 100644 index 00000000..fd64215a --- /dev/null +++ b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_income_record_arrow.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_guild_income_record_arrow@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_guild_income_record_arrow@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_income_record_arrow.imageset/yumi_center_guild_income_record_arrow@2x.png b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_income_record_arrow.imageset/yumi_center_guild_income_record_arrow@2x.png new file mode 100644 index 00000000..927f4001 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_income_record_arrow.imageset/yumi_center_guild_income_record_arrow@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_income_record_arrow.imageset/yumi_center_guild_income_record_arrow@3x.png b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_income_record_arrow.imageset/yumi_center_guild_income_record_arrow@3x.png new file mode 100644 index 00000000..4bca6c6f Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_income_record_arrow.imageset/yumi_center_guild_income_record_arrow@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_list_one.imageset/Contents.json b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_list_one.imageset/Contents.json new file mode 100644 index 00000000..38e6621b --- /dev/null +++ b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_list_one.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_guild_list_one@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_guild_list_one@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_list_one.imageset/yumi_center_guild_list_one@2x.png b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_list_one.imageset/yumi_center_guild_list_one@2x.png new file mode 100644 index 00000000..dbe7b595 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_list_one.imageset/yumi_center_guild_list_one@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_list_one.imageset/yumi_center_guild_list_one@3x.png b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_list_one.imageset/yumi_center_guild_list_one@3x.png new file mode 100644 index 00000000..08764299 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_list_one.imageset/yumi_center_guild_list_one@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_list_three.imageset/Contents.json b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_list_three.imageset/Contents.json new file mode 100644 index 00000000..3f4a4032 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_list_three.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_guild_list_three@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_guild_list_three@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_list_three.imageset/yumi_center_guild_list_three@2x.png b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_list_three.imageset/yumi_center_guild_list_three@2x.png new file mode 100644 index 00000000..a72b6087 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_list_three.imageset/yumi_center_guild_list_three@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_list_three.imageset/yumi_center_guild_list_three@3x.png b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_list_three.imageset/yumi_center_guild_list_three@3x.png new file mode 100644 index 00000000..62063c9f Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_list_three.imageset/yumi_center_guild_list_three@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_list_two.imageset/Contents.json b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_list_two.imageset/Contents.json new file mode 100644 index 00000000..e6b76bb0 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_list_two.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_guild_list_two@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_guild_list_two@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_list_two.imageset/yumi_center_guild_list_two@2x.png b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_list_two.imageset/yumi_center_guild_list_two@2x.png new file mode 100644 index 00000000..19ed6139 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_list_two.imageset/yumi_center_guild_list_two@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_list_two.imageset/yumi_center_guild_list_two@3x.png b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_list_two.imageset/yumi_center_guild_list_two@3x.png new file mode 100644 index 00000000..0985cc3d Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_list_two.imageset/yumi_center_guild_list_two@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_manager_edit_name_logo.imageset/Contents.json b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_manager_edit_name_logo.imageset/Contents.json new file mode 100644 index 00000000..d8593eaa --- /dev/null +++ b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_manager_edit_name_logo.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_guild_manager_edit_name_logo@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_guild_manager_edit_name_logo@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_manager_edit_name_logo.imageset/yumi_center_guild_manager_edit_name_logo@2x.png b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_manager_edit_name_logo.imageset/yumi_center_guild_manager_edit_name_logo@2x.png new file mode 100644 index 00000000..7d42aafd Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_manager_edit_name_logo.imageset/yumi_center_guild_manager_edit_name_logo@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_manager_edit_name_logo.imageset/yumi_center_guild_manager_edit_name_logo@3x.png b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_manager_edit_name_logo.imageset/yumi_center_guild_manager_edit_name_logo@3x.png new file mode 100644 index 00000000..b9569f89 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_manager_edit_name_logo.imageset/yumi_center_guild_manager_edit_name_logo@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_my_pic.imageset/Contents.json b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_my_pic.imageset/Contents.json new file mode 100644 index 00000000..767ef06b --- /dev/null +++ b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_my_pic.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_guild_my_pic@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_guild_my_pic@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_my_pic.imageset/yumi_center_guild_my_pic@2x.png b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_my_pic.imageset/yumi_center_guild_my_pic@2x.png new file mode 100644 index 00000000..a53b32a4 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_my_pic.imageset/yumi_center_guild_my_pic@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_my_pic.imageset/yumi_center_guild_my_pic@3x.png b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_my_pic.imageset/yumi_center_guild_my_pic@3x.png new file mode 100644 index 00000000..fed6ecdf Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_my_pic.imageset/yumi_center_guild_my_pic@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_right_arrow.imageset/Contents.json b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_right_arrow.imageset/Contents.json new file mode 100644 index 00000000..77c467bc --- /dev/null +++ b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_right_arrow.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_guild_right_arrow@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_guild_right_arrow@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_right_arrow.imageset/yumi_center_guild_right_arrow@2x.png b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_right_arrow.imageset/yumi_center_guild_right_arrow@2x.png new file mode 100644 index 00000000..bf7a0913 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_right_arrow.imageset/yumi_center_guild_right_arrow@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_right_arrow.imageset/yumi_center_guild_right_arrow@3x.png b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_right_arrow.imageset/yumi_center_guild_right_arrow@3x.png new file mode 100644 index 00000000..4c1c465d Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_right_arrow.imageset/yumi_center_guild_right_arrow@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_super_admin_more.imageset/Contents.json b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_super_admin_more.imageset/Contents.json new file mode 100644 index 00000000..dc88be52 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_super_admin_more.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_guild_super_admin_more@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_guild_super_admin_more@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_super_admin_more.imageset/yumi_center_guild_super_admin_more@2x.png b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_super_admin_more.imageset/yumi_center_guild_super_admin_more@2x.png new file mode 100644 index 00000000..48c0a00c Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_super_admin_more.imageset/yumi_center_guild_super_admin_more@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_super_admin_more.imageset/yumi_center_guild_super_admin_more@3x.png b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_super_admin_more.imageset/yumi_center_guild_super_admin_more@3x.png new file mode 100644 index 00000000..f079f421 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_super_admin_more.imageset/yumi_center_guild_super_admin_more@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_warning.imageset/Contents.json b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_warning.imageset/Contents.json new file mode 100644 index 00000000..4f667e36 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_warning.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_guild_warning@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_guild_warning@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_warning.imageset/yumi_center_guild_warning@2x.png b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_warning.imageset/yumi_center_guild_warning@2x.png new file mode 100644 index 00000000..dbaf964f Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_warning.imageset/yumi_center_guild_warning@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_warning.imageset/yumi_center_guild_warning@3x.png b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_warning.imageset/yumi_center_guild_warning@3x.png new file mode 100644 index 00000000..1f929df8 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Guild/yumi_center_guild_warning.imageset/yumi_center_guild_warning@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/IncomeRecord/Contents.json b/YuMi/Assets.xcassets/jm/IncomeRecord/Contents.json new file mode 100644 index 00000000..e2342777 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/IncomeRecord/Contents.json @@ -0,0 +1,7 @@ +{"info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_exchange_diamonds_arrow.imageset/Contents.json b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_exchange_diamonds_arrow.imageset/Contents.json new file mode 100644 index 00000000..c658f067 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_exchange_diamonds_arrow.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_exchange_diamonds_arrow@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_exchange_diamonds_arrow@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_exchange_diamonds_arrow.imageset/yumi_exchange_diamonds_arrow@2x.png b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_exchange_diamonds_arrow.imageset/yumi_exchange_diamonds_arrow@2x.png new file mode 100644 index 00000000..bdbae085 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_exchange_diamonds_arrow.imageset/yumi_exchange_diamonds_arrow@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_exchange_diamonds_arrow.imageset/yumi_exchange_diamonds_arrow@3x.png b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_exchange_diamonds_arrow.imageset/yumi_exchange_diamonds_arrow@3x.png new file mode 100644 index 00000000..b5d7426a Binary files /dev/null and b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_exchange_diamonds_arrow.imageset/yumi_exchange_diamonds_arrow@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_exchange_diamonds_pic.imageset/Contents.json b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_exchange_diamonds_pic.imageset/Contents.json new file mode 100644 index 00000000..4140ab21 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_exchange_diamonds_pic.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_exchange_diamonds_pic@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_exchange_diamonds_pic@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_exchange_diamonds_pic.imageset/yumi_exchange_diamonds_pic@2x.png b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_exchange_diamonds_pic.imageset/yumi_exchange_diamonds_pic@2x.png new file mode 100644 index 00000000..202e765a Binary files /dev/null and b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_exchange_diamonds_pic.imageset/yumi_exchange_diamonds_pic@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_exchange_diamonds_pic.imageset/yumi_exchange_diamonds_pic@3x.png b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_exchange_diamonds_pic.imageset/yumi_exchange_diamonds_pic@3x.png new file mode 100644 index 00000000..b4ce2d9c Binary files /dev/null and b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_exchange_diamonds_pic.imageset/yumi_exchange_diamonds_pic@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_exchange_down.imageset/Contents.json b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_exchange_down.imageset/Contents.json new file mode 100644 index 00000000..6b5e9732 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_exchange_down.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_exchange_down@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_exchange_down@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_exchange_down.imageset/yumi_exchange_down@2x.png b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_exchange_down.imageset/yumi_exchange_down@2x.png new file mode 100644 index 00000000..4d9d903d Binary files /dev/null and b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_exchange_down.imageset/yumi_exchange_down@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_exchange_down.imageset/yumi_exchange_down@3x.png b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_exchange_down.imageset/yumi_exchange_down@3x.png new file mode 100644 index 00000000..321695cb Binary files /dev/null and b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_exchange_down.imageset/yumi_exchange_down@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_exchange_down_grey.imageset/Contents.json b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_exchange_down_grey.imageset/Contents.json new file mode 100644 index 00000000..940afdab --- /dev/null +++ b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_exchange_down_grey.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_exchange_down_grey@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_exchange_down_grey@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_exchange_down_grey.imageset/yumi_exchange_down_grey@2x.png b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_exchange_down_grey.imageset/yumi_exchange_down_grey@2x.png new file mode 100644 index 00000000..fe9fa2db Binary files /dev/null and b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_exchange_down_grey.imageset/yumi_exchange_down_grey@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_exchange_down_grey.imageset/yumi_exchange_down_grey@3x.png b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_exchange_down_grey.imageset/yumi_exchange_down_grey@3x.png new file mode 100644 index 00000000..33355405 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_exchange_down_grey.imageset/yumi_exchange_down_grey@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_exchange_gold_pic.imageset/Contents.json b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_exchange_gold_pic.imageset/Contents.json new file mode 100644 index 00000000..f5b96aa9 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_exchange_gold_pic.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_exchange_gold_pic@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_exchange_gold_pic@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_exchange_gold_pic.imageset/yumi_exchange_gold_pic@2x.png b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_exchange_gold_pic.imageset/yumi_exchange_gold_pic@2x.png new file mode 100644 index 00000000..d264342f Binary files /dev/null and b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_exchange_gold_pic.imageset/yumi_exchange_gold_pic@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_exchange_gold_pic.imageset/yumi_exchange_gold_pic@3x.png b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_exchange_gold_pic.imageset/yumi_exchange_gold_pic@3x.png new file mode 100644 index 00000000..583453db Binary files /dev/null and b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_exchange_gold_pic.imageset/yumi_exchange_gold_pic@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_exchange_up.imageset/Contents.json b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_exchange_up.imageset/Contents.json new file mode 100644 index 00000000..30a552e2 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_exchange_up.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_exchange_up@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_exchange_up@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_exchange_up.imageset/yumi_exchange_up@2x.png b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_exchange_up.imageset/yumi_exchange_up@2x.png new file mode 100644 index 00000000..40abfe07 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_exchange_up.imageset/yumi_exchange_up@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_exchange_up.imageset/yumi_exchange_up@3x.png b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_exchange_up.imageset/yumi_exchange_up@3x.png new file mode 100644 index 00000000..58f42b19 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_exchange_up.imageset/yumi_exchange_up@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_exchange_up_grey.imageset/Contents.json b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_exchange_up_grey.imageset/Contents.json new file mode 100644 index 00000000..ad13f933 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_exchange_up_grey.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_exchange_up_grey@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_exchange_up_grey@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_exchange_up_grey.imageset/yumi_exchange_up_grey@2x.png b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_exchange_up_grey.imageset/yumi_exchange_up_grey@2x.png new file mode 100644 index 00000000..81854043 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_exchange_up_grey.imageset/yumi_exchange_up_grey@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_exchange_up_grey.imageset/yumi_exchange_up_grey@3x.png b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_exchange_up_grey.imageset/yumi_exchange_up_grey@3x.png new file mode 100644 index 00000000..85089499 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_exchange_up_grey.imageset/yumi_exchange_up_grey@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_gold_details_add.imageset/Contents.json b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_gold_details_add.imageset/Contents.json new file mode 100644 index 00000000..8c0cfc36 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_gold_details_add.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_gold_details_add@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_gold_details_add@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_gold_details_add.imageset/yumi_gold_details_add@2x.png b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_gold_details_add.imageset/yumi_gold_details_add@2x.png new file mode 100644 index 00000000..7d57963d Binary files /dev/null and b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_gold_details_add.imageset/yumi_gold_details_add@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_gold_details_add.imageset/yumi_gold_details_add@3x.png b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_gold_details_add.imageset/yumi_gold_details_add@3x.png new file mode 100644 index 00000000..f0a1a539 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_gold_details_add.imageset/yumi_gold_details_add@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_gold_details_arrow_up.imageset/Contents.json b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_gold_details_arrow_up.imageset/Contents.json new file mode 100644 index 00000000..fdf83731 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_gold_details_arrow_up.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_gold_details_arrow_up@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_gold_details_arrow_up@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_gold_details_arrow_up.imageset/yumi_gold_details_arrow_up@2x.png b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_gold_details_arrow_up.imageset/yumi_gold_details_arrow_up@2x.png new file mode 100644 index 00000000..f0a82e80 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_gold_details_arrow_up.imageset/yumi_gold_details_arrow_up@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_gold_details_arrow_up.imageset/yumi_gold_details_arrow_up@3x.png b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_gold_details_arrow_up.imageset/yumi_gold_details_arrow_up@3x.png new file mode 100644 index 00000000..8decb72a Binary files /dev/null and b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_gold_details_arrow_up.imageset/yumi_gold_details_arrow_up@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_gold_details_head_background.imageset/Contents.json b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_gold_details_head_background.imageset/Contents.json new file mode 100644 index 00000000..048e5167 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_gold_details_head_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_gold_details_head_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_gold_details_head_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_gold_details_head_background.imageset/yumi_gold_details_head_background@2x.png b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_gold_details_head_background.imageset/yumi_gold_details_head_background@2x.png new file mode 100644 index 00000000..f6113db0 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_gold_details_head_background.imageset/yumi_gold_details_head_background@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_gold_details_head_background.imageset/yumi_gold_details_head_background@3x.png b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_gold_details_head_background.imageset/yumi_gold_details_head_background@3x.png new file mode 100644 index 00000000..117e6435 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_gold_details_head_background.imageset/yumi_gold_details_head_background@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_gold_details_minus.imageset/Contents.json b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_gold_details_minus.imageset/Contents.json new file mode 100644 index 00000000..a308ad38 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_gold_details_minus.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_gold_details_minus@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_gold_details_minus@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_gold_details_minus.imageset/yumi_gold_details_minus@2x.png b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_gold_details_minus.imageset/yumi_gold_details_minus@2x.png new file mode 100644 index 00000000..321d22f9 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_gold_details_minus.imageset/yumi_gold_details_minus@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_gold_details_minus.imageset/yumi_gold_details_minus@3x.png b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_gold_details_minus.imageset/yumi_gold_details_minus@3x.png new file mode 100644 index 00000000..ff175874 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_gold_details_minus.imageset/yumi_gold_details_minus@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_income_record_arrow_1.imageset/Contents.json b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_income_record_arrow_1.imageset/Contents.json new file mode 100644 index 00000000..72a99f74 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_income_record_arrow_1.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_income_record_arrow_1@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_income_record_arrow_1@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_income_record_arrow_1.imageset/yumi_income_record_arrow_1@2x.png b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_income_record_arrow_1.imageset/yumi_income_record_arrow_1@2x.png new file mode 100644 index 00000000..f1c872c5 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_income_record_arrow_1.imageset/yumi_income_record_arrow_1@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_income_record_arrow_1.imageset/yumi_income_record_arrow_1@3x.png b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_income_record_arrow_1.imageset/yumi_income_record_arrow_1@3x.png new file mode 100644 index 00000000..ee8e9c76 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_income_record_arrow_1.imageset/yumi_income_record_arrow_1@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_income_record_arrow_2.imageset/Contents.json b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_income_record_arrow_2.imageset/Contents.json new file mode 100644 index 00000000..a0816652 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_income_record_arrow_2.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_income_record_arrow_2@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_income_record_arrow_2@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_income_record_arrow_2.imageset/yumi_income_record_arrow_2@2x.png b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_income_record_arrow_2.imageset/yumi_income_record_arrow_2@2x.png new file mode 100644 index 00000000..222c9956 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_income_record_arrow_2.imageset/yumi_income_record_arrow_2@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_income_record_arrow_2.imageset/yumi_income_record_arrow_2@3x.png b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_income_record_arrow_2.imageset/yumi_income_record_arrow_2@3x.png new file mode 100644 index 00000000..480be82b Binary files /dev/null and b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_income_record_arrow_2.imageset/yumi_income_record_arrow_2@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_income_record_diamond_background.imageset/Contents.json b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_income_record_diamond_background.imageset/Contents.json new file mode 100644 index 00000000..a0af4d5f --- /dev/null +++ b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_income_record_diamond_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_income_record_diamond_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_income_record_diamond_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_income_record_diamond_background.imageset/yumi_income_record_diamond_background@2x.png b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_income_record_diamond_background.imageset/yumi_income_record_diamond_background@2x.png new file mode 100644 index 00000000..6cf21ad1 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_income_record_diamond_background.imageset/yumi_income_record_diamond_background@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_income_record_diamond_background.imageset/yumi_income_record_diamond_background@3x.png b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_income_record_diamond_background.imageset/yumi_income_record_diamond_background@3x.png new file mode 100644 index 00000000..ce0bff07 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_income_record_diamond_background.imageset/yumi_income_record_diamond_background@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_income_record_gold_background.imageset/Contents.json b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_income_record_gold_background.imageset/Contents.json new file mode 100644 index 00000000..744687e7 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_income_record_gold_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_income_record_gold_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_income_record_gold_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_income_record_gold_background.imageset/yumi_income_record_gold_background@2x.png b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_income_record_gold_background.imageset/yumi_income_record_gold_background@2x.png new file mode 100644 index 00000000..9e34f0c8 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_income_record_gold_background.imageset/yumi_income_record_gold_background@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_income_record_gold_background.imageset/yumi_income_record_gold_background@3x.png b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_income_record_gold_background.imageset/yumi_income_record_gold_background@3x.png new file mode 100644 index 00000000..650feeef Binary files /dev/null and b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_income_record_gold_background.imageset/yumi_income_record_gold_background@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_withdrawal_Head_arrow.imageset/Contents.json b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_withdrawal_Head_arrow.imageset/Contents.json new file mode 100644 index 00000000..47d30c7c --- /dev/null +++ b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_withdrawal_Head_arrow.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_withdrawal_Head_arrow@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_withdrawal_Head_arrow@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_withdrawal_Head_arrow.imageset/yumi_withdrawal_Head_arrow@2x.png b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_withdrawal_Head_arrow.imageset/yumi_withdrawal_Head_arrow@2x.png new file mode 100644 index 00000000..62e871b8 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_withdrawal_Head_arrow.imageset/yumi_withdrawal_Head_arrow@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_withdrawal_Head_arrow.imageset/yumi_withdrawal_Head_arrow@3x.png b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_withdrawal_Head_arrow.imageset/yumi_withdrawal_Head_arrow@3x.png new file mode 100644 index 00000000..9535803e Binary files /dev/null and b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_withdrawal_Head_arrow.imageset/yumi_withdrawal_Head_arrow@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_withdrawal_gold_arrow.imageset/Contents.json b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_withdrawal_gold_arrow.imageset/Contents.json new file mode 100644 index 00000000..772f0059 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_withdrawal_gold_arrow.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_withdrawal_gold_arrow@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_withdrawal_gold_arrow@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_withdrawal_gold_arrow.imageset/yumi_withdrawal_gold_arrow@2x.png b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_withdrawal_gold_arrow.imageset/yumi_withdrawal_gold_arrow@2x.png new file mode 100644 index 00000000..f1c872c5 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_withdrawal_gold_arrow.imageset/yumi_withdrawal_gold_arrow@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_withdrawal_gold_arrow.imageset/yumi_withdrawal_gold_arrow@3x.png b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_withdrawal_gold_arrow.imageset/yumi_withdrawal_gold_arrow@3x.png new file mode 100644 index 00000000..ee8e9c76 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/IncomeRecord/yumi_withdrawal_gold_arrow.imageset/yumi_withdrawal_gold_arrow@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/Noble/Contents.json b/YuMi/Assets.xcassets/jm/Noble/Contents.json new file mode 100644 index 00000000..e2342777 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/Noble/Contents.json @@ -0,0 +1,7 @@ +{"info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/Noble/Rank/Contents.json b/YuMi/Assets.xcassets/jm/Noble/Rank/Contents.json new file mode 100644 index 00000000..e2342777 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/Noble/Rank/Contents.json @@ -0,0 +1,7 @@ +{"info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_grand_first_open_background.imageset/Contents.json b/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_grand_first_open_background.imageset/Contents.json new file mode 100644 index 00000000..cc91e207 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_grand_first_open_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_grand_first_open_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_grand_first_open_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_grand_first_open_background.imageset/yumi_grand_first_open_background@2x.png b/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_grand_first_open_background.imageset/yumi_grand_first_open_background@2x.png new file mode 100644 index 00000000..ab30c80b Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_grand_first_open_background.imageset/yumi_grand_first_open_background@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_grand_first_open_background.imageset/yumi_grand_first_open_background@3x.png b/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_grand_first_open_background.imageset/yumi_grand_first_open_background@3x.png new file mode 100644 index 00000000..849342a6 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_grand_first_open_background.imageset/yumi_grand_first_open_background@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_grand_open_btn_background1.imageset/Contents.json b/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_grand_open_btn_background1.imageset/Contents.json new file mode 100644 index 00000000..b1f536c4 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_grand_open_btn_background1.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_grand_open_btn_background1@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_grand_open_btn_background1@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_grand_open_btn_background1.imageset/yumi_grand_open_btn_background1@2x.png b/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_grand_open_btn_background1.imageset/yumi_grand_open_btn_background1@2x.png new file mode 100644 index 00000000..ae240192 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_grand_open_btn_background1.imageset/yumi_grand_open_btn_background1@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_grand_open_btn_background1.imageset/yumi_grand_open_btn_background1@3x.png b/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_grand_open_btn_background1.imageset/yumi_grand_open_btn_background1@3x.png new file mode 100644 index 00000000..929a4ec5 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_grand_open_btn_background1.imageset/yumi_grand_open_btn_background1@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_grand_open_experience.imageset/Contents.json b/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_grand_open_experience.imageset/Contents.json new file mode 100644 index 00000000..2668222b --- /dev/null +++ b/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_grand_open_experience.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_grand_open_experience@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_grand_open_experience@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_grand_open_experience.imageset/yumi_grand_open_experience@2x.png b/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_grand_open_experience.imageset/yumi_grand_open_experience@2x.png new file mode 100644 index 00000000..e719b95d Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_grand_open_experience.imageset/yumi_grand_open_experience@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_grand_open_experience.imageset/yumi_grand_open_experience@3x.png b/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_grand_open_experience.imageset/yumi_grand_open_experience@3x.png new file mode 100644 index 00000000..6278b0d3 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_grand_open_experience.imageset/yumi_grand_open_experience@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_grand_order_top_background.imageset/Contents.json b/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_grand_order_top_background.imageset/Contents.json new file mode 100644 index 00000000..8a42d406 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_grand_order_top_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_grand_order_top_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_grand_order_top_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_grand_order_top_background.imageset/yumi_grand_order_top_background@2x.png b/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_grand_order_top_background.imageset/yumi_grand_order_top_background@2x.png new file mode 100644 index 00000000..b3af3bf5 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_grand_order_top_background.imageset/yumi_grand_order_top_background@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_grand_order_top_background.imageset/yumi_grand_order_top_background@3x.png b/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_grand_order_top_background.imageset/yumi_grand_order_top_background@3x.png new file mode 100644 index 00000000..d8b810e1 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_grand_order_top_background.imageset/yumi_grand_order_top_background@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_grand_order_update_gen_background.imageset/Contents.json b/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_grand_order_update_gen_background.imageset/Contents.json new file mode 100644 index 00000000..0ae9709b --- /dev/null +++ b/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_grand_order_update_gen_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_grand_order_update_gen_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_grand_order_update_gen_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_grand_order_update_gen_background.imageset/yumi_grand_order_update_gen_background@2x.png b/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_grand_order_update_gen_background.imageset/yumi_grand_order_update_gen_background@2x.png new file mode 100644 index 00000000..3812508e Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_grand_order_update_gen_background.imageset/yumi_grand_order_update_gen_background@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_grand_order_update_gen_background.imageset/yumi_grand_order_update_gen_background@3x.png b/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_grand_order_update_gen_background.imageset/yumi_grand_order_update_gen_background@3x.png new file mode 100644 index 00000000..0ee73214 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_grand_order_update_gen_background.imageset/yumi_grand_order_update_gen_background@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_grand_rank.imageset/Contents.json b/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_grand_rank.imageset/Contents.json new file mode 100644 index 00000000..cf70a1f2 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_grand_rank.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_grand_rank@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_grand_rank@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_grand_rank.imageset/yumi_grand_rank@2x.png b/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_grand_rank.imageset/yumi_grand_rank@2x.png new file mode 100644 index 00000000..03cac764 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_grand_rank.imageset/yumi_grand_rank@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_grand_rank.imageset/yumi_grand_rank@3x.png b/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_grand_rank.imageset/yumi_grand_rank@3x.png new file mode 100644 index 00000000..151b576b Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_grand_rank.imageset/yumi_grand_rank@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_nobel_order_first.imageset/Contents.json b/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_nobel_order_first.imageset/Contents.json new file mode 100644 index 00000000..414c6fe4 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_nobel_order_first.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_nobel_order_first@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_nobel_order_first@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_nobel_order_first.imageset/yumi_nobel_order_first@2x.png b/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_nobel_order_first.imageset/yumi_nobel_order_first@2x.png new file mode 100644 index 00000000..81efbd67 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_nobel_order_first.imageset/yumi_nobel_order_first@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_nobel_order_first.imageset/yumi_nobel_order_first@3x.png b/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_nobel_order_first.imageset/yumi_nobel_order_first@3x.png new file mode 100644 index 00000000..e15cd2af Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_nobel_order_first.imageset/yumi_nobel_order_first@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_nobel_order_matter_background.imageset/Contents.json b/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_nobel_order_matter_background.imageset/Contents.json new file mode 100644 index 00000000..75fc2666 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_nobel_order_matter_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_nobel_order_matter_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_nobel_order_matter_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_nobel_order_matter_background.imageset/yumi_nobel_order_matter_background@2x.png b/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_nobel_order_matter_background.imageset/yumi_nobel_order_matter_background@2x.png new file mode 100644 index 00000000..54b5e77d Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_nobel_order_matter_background.imageset/yumi_nobel_order_matter_background@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_nobel_order_matter_background.imageset/yumi_nobel_order_matter_background@3x.png b/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_nobel_order_matter_background.imageset/yumi_nobel_order_matter_background@3x.png new file mode 100644 index 00000000..afc72bb4 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_nobel_order_matter_background.imageset/yumi_nobel_order_matter_background@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_nobel_order_second.imageset/Contents.json b/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_nobel_order_second.imageset/Contents.json new file mode 100644 index 00000000..597331a6 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_nobel_order_second.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_nobel_order_second@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_nobel_order_second@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_nobel_order_second.imageset/yumi_nobel_order_second@2x.png b/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_nobel_order_second.imageset/yumi_nobel_order_second@2x.png new file mode 100644 index 00000000..69578a7d Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_nobel_order_second.imageset/yumi_nobel_order_second@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_nobel_order_second.imageset/yumi_nobel_order_second@3x.png b/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_nobel_order_second.imageset/yumi_nobel_order_second@3x.png new file mode 100644 index 00000000..cd6dc3b8 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_nobel_order_second.imageset/yumi_nobel_order_second@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_nobel_order_third.imageset/Contents.json b/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_nobel_order_third.imageset/Contents.json new file mode 100644 index 00000000..0d72088c --- /dev/null +++ b/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_nobel_order_third.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_nobel_order_third@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_nobel_order_third@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_nobel_order_third.imageset/yumi_nobel_order_third@2x.png b/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_nobel_order_third.imageset/yumi_nobel_order_third@2x.png new file mode 100644 index 00000000..dd0bb810 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_nobel_order_third.imageset/yumi_nobel_order_third@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_nobel_order_third.imageset/yumi_nobel_order_third@3x.png b/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_nobel_order_third.imageset/yumi_nobel_order_third@3x.png new file mode 100644 index 00000000..e0875d9a Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Noble/Rank/yumi_nobel_order_third.imageset/yumi_nobel_order_third@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/Noble/yumi_grand_indicate_pic.imageset/Contents.json b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_indicate_pic.imageset/Contents.json new file mode 100644 index 00000000..cc3bb87a --- /dev/null +++ b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_indicate_pic.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_grand_indicate_pic@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_grand_indicate_pic@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/Noble/yumi_grand_indicate_pic.imageset/yumi_grand_indicate_pic@2x.png b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_indicate_pic.imageset/yumi_grand_indicate_pic@2x.png new file mode 100644 index 00000000..eaa4cf39 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_indicate_pic.imageset/yumi_grand_indicate_pic@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/Noble/yumi_grand_indicate_pic.imageset/yumi_grand_indicate_pic@3x.png b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_indicate_pic.imageset/yumi_grand_indicate_pic@3x.png new file mode 100644 index 00000000..7097631f Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_indicate_pic.imageset/yumi_grand_indicate_pic@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/Noble/yumi_grand_myLevel_head.imageset/Contents.json b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_myLevel_head.imageset/Contents.json new file mode 100644 index 00000000..05279767 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_myLevel_head.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_grand_myLevel_head@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_grand_myLevel_head@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/Noble/yumi_grand_myLevel_head.imageset/yumi_grand_myLevel_head@2x.png b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_myLevel_head.imageset/yumi_grand_myLevel_head@2x.png new file mode 100644 index 00000000..4bd7e299 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_myLevel_head.imageset/yumi_grand_myLevel_head@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/Noble/yumi_grand_myLevel_head.imageset/yumi_grand_myLevel_head@3x.png b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_myLevel_head.imageset/yumi_grand_myLevel_head@3x.png new file mode 100644 index 00000000..089ca22a Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_myLevel_head.imageset/yumi_grand_myLevel_head@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/Noble/yumi_grand_open_btn.imageset/Contents.json b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_open_btn.imageset/Contents.json new file mode 100644 index 00000000..6ebe814f --- /dev/null +++ b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_open_btn.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_grand_open_btn@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_grand_open_btn@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/Noble/yumi_grand_open_btn.imageset/yumi_grand_open_btn@2x.png b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_open_btn.imageset/yumi_grand_open_btn@2x.png new file mode 100644 index 00000000..d74c368d Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_open_btn.imageset/yumi_grand_open_btn@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/Noble/yumi_grand_open_btn.imageset/yumi_grand_open_btn@3x.png b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_open_btn.imageset/yumi_grand_open_btn@3x.png new file mode 100644 index 00000000..1a4c68c3 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_open_btn.imageset/yumi_grand_open_btn@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/Noble/yumi_grand_open_btn_background.imageset/Contents.json b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_open_btn_background.imageset/Contents.json new file mode 100644 index 00000000..c28e2d4e --- /dev/null +++ b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_open_btn_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_grand_open_btn_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_grand_open_btn_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/Noble/yumi_grand_open_btn_background.imageset/yumi_grand_open_btn_background@2x.png b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_open_btn_background.imageset/yumi_grand_open_btn_background@2x.png new file mode 100644 index 00000000..3f845ec9 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_open_btn_background.imageset/yumi_grand_open_btn_background@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/Noble/yumi_grand_open_btn_background.imageset/yumi_grand_open_btn_background@3x.png b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_open_btn_background.imageset/yumi_grand_open_btn_background@3x.png new file mode 100644 index 00000000..064bec69 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_open_btn_background.imageset/yumi_grand_open_btn_background@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/Noble/yumi_grand_privilege_list_background.imageset/Contents.json b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_privilege_list_background.imageset/Contents.json new file mode 100644 index 00000000..36ba572b --- /dev/null +++ b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_privilege_list_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_grand_privilege_list_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_grand_privilege_list_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/Noble/yumi_grand_privilege_list_background.imageset/yumi_grand_privilege_list_background@2x.png b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_privilege_list_background.imageset/yumi_grand_privilege_list_background@2x.png new file mode 100644 index 00000000..b58f06c9 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_privilege_list_background.imageset/yumi_grand_privilege_list_background@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/Noble/yumi_grand_privilege_list_background.imageset/yumi_grand_privilege_list_background@3x.png b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_privilege_list_background.imageset/yumi_grand_privilege_list_background@3x.png new file mode 100644 index 00000000..e34195c8 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_privilege_list_background.imageset/yumi_grand_privilege_list_background@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/Noble/yumi_grand_privilege_pic.imageset/Contents.json b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_privilege_pic.imageset/Contents.json new file mode 100644 index 00000000..cbbebd1d --- /dev/null +++ b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_privilege_pic.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_grand_privilege_pic@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_grand_privilege_pic@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/Noble/yumi_grand_privilege_pic.imageset/yumi_grand_privilege_pic@2x.png b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_privilege_pic.imageset/yumi_grand_privilege_pic@2x.png new file mode 100644 index 00000000..56088081 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_privilege_pic.imageset/yumi_grand_privilege_pic@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/Noble/yumi_grand_privilege_pic.imageset/yumi_grand_privilege_pic@3x.png b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_privilege_pic.imageset/yumi_grand_privilege_pic@3x.png new file mode 100644 index 00000000..772a3687 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_privilege_pic.imageset/yumi_grand_privilege_pic@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/Noble/yumi_grand_safe_level_arrow.imageset/Contents.json b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_safe_level_arrow.imageset/Contents.json new file mode 100644 index 00000000..9c5351f2 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_safe_level_arrow.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_grand_safe_level_arrow@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_grand_safe_level_arrow@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/Noble/yumi_grand_safe_level_arrow.imageset/yumi_grand_safe_level_arrow@2x.png b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_safe_level_arrow.imageset/yumi_grand_safe_level_arrow@2x.png new file mode 100644 index 00000000..246963fa Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_safe_level_arrow.imageset/yumi_grand_safe_level_arrow@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/Noble/yumi_grand_safe_level_arrow.imageset/yumi_grand_safe_level_arrow@3x.png b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_safe_level_arrow.imageset/yumi_grand_safe_level_arrow@3x.png new file mode 100644 index 00000000..f5fef174 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_safe_level_arrow.imageset/yumi_grand_safe_level_arrow@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/Noble/yumi_grand_time_close.imageset/Contents.json b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_time_close.imageset/Contents.json new file mode 100644 index 00000000..9745d756 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_time_close.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_grand_time_close@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_grand_time_close@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/Noble/yumi_grand_time_close.imageset/yumi_grand_time_close@2x.png b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_time_close.imageset/yumi_grand_time_close@2x.png new file mode 100644 index 00000000..8adc19f1 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_time_close.imageset/yumi_grand_time_close@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/Noble/yumi_grand_time_close.imageset/yumi_grand_time_close@3x.png b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_time_close.imageset/yumi_grand_time_close@3x.png new file mode 100644 index 00000000..7984c037 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_time_close.imageset/yumi_grand_time_close@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/Noble/yumi_grand_time_help.imageset/Contents.json b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_time_help.imageset/Contents.json new file mode 100644 index 00000000..66df4fad --- /dev/null +++ b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_time_help.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_grand_time_help@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_grand_time_help@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/Noble/yumi_grand_time_help.imageset/yumi_grand_time_help@2x.png b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_time_help.imageset/yumi_grand_time_help@2x.png new file mode 100644 index 00000000..7901994d Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_time_help.imageset/yumi_grand_time_help@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/Noble/yumi_grand_time_help.imageset/yumi_grand_time_help@3x.png b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_time_help.imageset/yumi_grand_time_help@3x.png new file mode 100644 index 00000000..56eee2d5 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_time_help.imageset/yumi_grand_time_help@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/Noble/yumi_grand_time_popBg.imageset/Contents.json b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_time_popBg.imageset/Contents.json new file mode 100644 index 00000000..39a4d427 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_time_popBg.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_grand_time_popBg@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_grand_time_popBg@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/Noble/yumi_grand_time_popBg.imageset/yumi_grand_time_popBg@2x.png b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_time_popBg.imageset/yumi_grand_time_popBg@2x.png new file mode 100644 index 00000000..8d991666 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_time_popBg.imageset/yumi_grand_time_popBg@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/Noble/yumi_grand_time_popBg.imageset/yumi_grand_time_popBg@3x.png b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_time_popBg.imageset/yumi_grand_time_popBg@3x.png new file mode 100644 index 00000000..f9e70fbb Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_time_popBg.imageset/yumi_grand_time_popBg@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/Noble/yumi_grand_title_help.imageset/Contents.json b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_title_help.imageset/Contents.json new file mode 100644 index 00000000..09906610 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_title_help.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_grand_title_help@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_grand_title_help@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/Noble/yumi_grand_title_help.imageset/yumi_grand_title_help@2x.png b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_title_help.imageset/yumi_grand_title_help@2x.png new file mode 100644 index 00000000..c9cb20c3 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_title_help.imageset/yumi_grand_title_help@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/Noble/yumi_grand_title_help.imageset/yumi_grand_title_help@3x.png b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_title_help.imageset/yumi_grand_title_help@3x.png new file mode 100644 index 00000000..331864ae Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_title_help.imageset/yumi_grand_title_help@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/Noble/yumi_grand_title_setting.imageset/Contents.json b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_title_setting.imageset/Contents.json new file mode 100644 index 00000000..3cd9ed20 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_title_setting.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_grand_title_setting@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_grand_title_setting@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/Noble/yumi_grand_title_setting.imageset/yumi_grand_title_setting@2x.png b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_title_setting.imageset/yumi_grand_title_setting@2x.png new file mode 100644 index 00000000..9112352b Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_title_setting.imageset/yumi_grand_title_setting@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/Noble/yumi_grand_title_setting.imageset/yumi_grand_title_setting@3x.png b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_title_setting.imageset/yumi_grand_title_setting@3x.png new file mode 100644 index 00000000..81ec23eb Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_title_setting.imageset/yumi_grand_title_setting@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/Noble/yumi_grand_upgrade_dressBtn.imageset/Contents.json b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_upgrade_dressBtn.imageset/Contents.json new file mode 100644 index 00000000..01d83e98 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_upgrade_dressBtn.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_grand_upgrade_dressBtn@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_grand_upgrade_dressBtn@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/Noble/yumi_grand_upgrade_dressBtn.imageset/yumi_grand_upgrade_dressBtn@2x.png b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_upgrade_dressBtn.imageset/yumi_grand_upgrade_dressBtn@2x.png new file mode 100644 index 00000000..85e27925 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_upgrade_dressBtn.imageset/yumi_grand_upgrade_dressBtn@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/Noble/yumi_grand_upgrade_dressBtn.imageset/yumi_grand_upgrade_dressBtn@3x.png b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_upgrade_dressBtn.imageset/yumi_grand_upgrade_dressBtn@3x.png new file mode 100644 index 00000000..9e56c6b4 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_upgrade_dressBtn.imageset/yumi_grand_upgrade_dressBtn@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/Noble/yumi_grand_upgrade_keepBtn.imageset/Contents.json b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_upgrade_keepBtn.imageset/Contents.json new file mode 100644 index 00000000..33520c5f --- /dev/null +++ b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_upgrade_keepBtn.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_grand_upgrade_keepBtn@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_grand_upgrade_keepBtn@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/Noble/yumi_grand_upgrade_keepBtn.imageset/yumi_grand_upgrade_keepBtn@2x.png b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_upgrade_keepBtn.imageset/yumi_grand_upgrade_keepBtn@2x.png new file mode 100644 index 00000000..1a085955 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_upgrade_keepBtn.imageset/yumi_grand_upgrade_keepBtn@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/Noble/yumi_grand_upgrade_keepBtn.imageset/yumi_grand_upgrade_keepBtn@3x.png b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_upgrade_keepBtn.imageset/yumi_grand_upgrade_keepBtn@3x.png new file mode 100644 index 00000000..239731cb Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Noble/yumi_grand_upgrade_keepBtn.imageset/yumi_grand_upgrade_keepBtn@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/Noble/yumi_nobleCenter_head_background.imageset/Contents.json b/YuMi/Assets.xcassets/jm/Noble/yumi_nobleCenter_head_background.imageset/Contents.json new file mode 100644 index 00000000..871f1724 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/Noble/yumi_nobleCenter_head_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_nobleCenter_head_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_nobleCenter_head_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/Noble/yumi_nobleCenter_head_background.imageset/yumi_nobleCenter_head_background@2x.png b/YuMi/Assets.xcassets/jm/Noble/yumi_nobleCenter_head_background.imageset/yumi_nobleCenter_head_background@2x.png new file mode 100644 index 00000000..eceb7d1c Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Noble/yumi_nobleCenter_head_background.imageset/yumi_nobleCenter_head_background@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/Noble/yumi_nobleCenter_head_background.imageset/yumi_nobleCenter_head_background@3x.png b/YuMi/Assets.xcassets/jm/Noble/yumi_nobleCenter_head_background.imageset/yumi_nobleCenter_head_background@3x.png new file mode 100644 index 00000000..ee52c378 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Noble/yumi_nobleCenter_head_background.imageset/yumi_nobleCenter_head_background@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/Setting/Contents.json b/YuMi/Assets.xcassets/jm/Setting/Contents.json new file mode 100644 index 00000000..e2342777 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/Setting/Contents.json @@ -0,0 +1,7 @@ +{"info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/Setting/yumi_center_setting_modif_pay_pwd_hidden.imageset/Contents.json b/YuMi/Assets.xcassets/jm/Setting/yumi_center_setting_modif_pay_pwd_hidden.imageset/Contents.json new file mode 100644 index 00000000..a838356f --- /dev/null +++ b/YuMi/Assets.xcassets/jm/Setting/yumi_center_setting_modif_pay_pwd_hidden.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_setting_modif_pay_pwd_hidden@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_setting_modif_pay_pwd_hidden@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/Setting/yumi_center_setting_modif_pay_pwd_hidden.imageset/yumi_center_setting_modif_pay_pwd_hidden@2x.png b/YuMi/Assets.xcassets/jm/Setting/yumi_center_setting_modif_pay_pwd_hidden.imageset/yumi_center_setting_modif_pay_pwd_hidden@2x.png new file mode 100644 index 00000000..8dfc57fa Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Setting/yumi_center_setting_modif_pay_pwd_hidden.imageset/yumi_center_setting_modif_pay_pwd_hidden@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/Setting/yumi_center_setting_modif_pay_pwd_hidden.imageset/yumi_center_setting_modif_pay_pwd_hidden@3x.png b/YuMi/Assets.xcassets/jm/Setting/yumi_center_setting_modif_pay_pwd_hidden.imageset/yumi_center_setting_modif_pay_pwd_hidden@3x.png new file mode 100644 index 00000000..93a34c41 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Setting/yumi_center_setting_modif_pay_pwd_hidden.imageset/yumi_center_setting_modif_pay_pwd_hidden@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/Setting/yumi_center_setting_modif_pay_pwd_show.imageset/Contents.json b/YuMi/Assets.xcassets/jm/Setting/yumi_center_setting_modif_pay_pwd_show.imageset/Contents.json new file mode 100644 index 00000000..687933c5 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/Setting/yumi_center_setting_modif_pay_pwd_show.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_setting_modif_pay_pwd_show@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_setting_modif_pay_pwd_show@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/Setting/yumi_center_setting_modif_pay_pwd_show.imageset/yumi_center_setting_modif_pay_pwd_show@2x.png b/YuMi/Assets.xcassets/jm/Setting/yumi_center_setting_modif_pay_pwd_show.imageset/yumi_center_setting_modif_pay_pwd_show@2x.png new file mode 100644 index 00000000..1d43565b Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Setting/yumi_center_setting_modif_pay_pwd_show.imageset/yumi_center_setting_modif_pay_pwd_show@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/Setting/yumi_center_setting_modif_pay_pwd_show.imageset/yumi_center_setting_modif_pay_pwd_show@3x.png b/YuMi/Assets.xcassets/jm/Setting/yumi_center_setting_modif_pay_pwd_show.imageset/yumi_center_setting_modif_pay_pwd_show@3x.png new file mode 100644 index 00000000..ceeaac16 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Setting/yumi_center_setting_modif_pay_pwd_show.imageset/yumi_center_setting_modif_pay_pwd_show@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/Setting/yumi_center_setting_pay_password_hidden.imageset/Contents.json b/YuMi/Assets.xcassets/jm/Setting/yumi_center_setting_pay_password_hidden.imageset/Contents.json new file mode 100644 index 00000000..766d0724 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/Setting/yumi_center_setting_pay_password_hidden.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_setting_pay_password_hidden@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_setting_pay_password_hidden@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/Setting/yumi_center_setting_pay_password_hidden.imageset/yumi_center_setting_pay_password_hidden@2x.png b/YuMi/Assets.xcassets/jm/Setting/yumi_center_setting_pay_password_hidden.imageset/yumi_center_setting_pay_password_hidden@2x.png new file mode 100644 index 00000000..1482f98b Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Setting/yumi_center_setting_pay_password_hidden.imageset/yumi_center_setting_pay_password_hidden@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/Setting/yumi_center_setting_pay_password_hidden.imageset/yumi_center_setting_pay_password_hidden@3x.png b/YuMi/Assets.xcassets/jm/Setting/yumi_center_setting_pay_password_hidden.imageset/yumi_center_setting_pay_password_hidden@3x.png new file mode 100644 index 00000000..8d979bc5 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Setting/yumi_center_setting_pay_password_hidden.imageset/yumi_center_setting_pay_password_hidden@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/Setting/yumi_center_setting_pay_password_show.imageset/Contents.json b/YuMi/Assets.xcassets/jm/Setting/yumi_center_setting_pay_password_show.imageset/Contents.json new file mode 100644 index 00000000..83b668a2 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/Setting/yumi_center_setting_pay_password_show.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_setting_pay_password_show@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_setting_pay_password_show@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/Setting/yumi_center_setting_pay_password_show.imageset/yumi_center_setting_pay_password_show@2x.png b/YuMi/Assets.xcassets/jm/Setting/yumi_center_setting_pay_password_show.imageset/yumi_center_setting_pay_password_show@2x.png new file mode 100644 index 00000000..42c9897e Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Setting/yumi_center_setting_pay_password_show.imageset/yumi_center_setting_pay_password_show@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/Setting/yumi_center_setting_pay_password_show.imageset/yumi_center_setting_pay_password_show@3x.png b/YuMi/Assets.xcassets/jm/Setting/yumi_center_setting_pay_password_show.imageset/yumi_center_setting_pay_password_show@3x.png new file mode 100644 index 00000000..00d1835a Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Setting/yumi_center_setting_pay_password_show.imageset/yumi_center_setting_pay_password_show@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/Setting/yumi_center_setting_permission_album.imageset/Contents.json b/YuMi/Assets.xcassets/jm/Setting/yumi_center_setting_permission_album.imageset/Contents.json new file mode 100644 index 00000000..8c524230 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/Setting/yumi_center_setting_permission_album.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_setting_permission_album@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_setting_permission_album@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/Setting/yumi_center_setting_permission_album.imageset/yumi_center_setting_permission_album@2x.png b/YuMi/Assets.xcassets/jm/Setting/yumi_center_setting_permission_album.imageset/yumi_center_setting_permission_album@2x.png new file mode 100644 index 00000000..cb12e33b Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Setting/yumi_center_setting_permission_album.imageset/yumi_center_setting_permission_album@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/Setting/yumi_center_setting_permission_album.imageset/yumi_center_setting_permission_album@3x.png b/YuMi/Assets.xcassets/jm/Setting/yumi_center_setting_permission_album.imageset/yumi_center_setting_permission_album@3x.png new file mode 100644 index 00000000..920e0da8 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Setting/yumi_center_setting_permission_album.imageset/yumi_center_setting_permission_album@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/Setting/yumi_center_setting_permission_camera.imageset/Contents.json b/YuMi/Assets.xcassets/jm/Setting/yumi_center_setting_permission_camera.imageset/Contents.json new file mode 100644 index 00000000..6d433e84 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/Setting/yumi_center_setting_permission_camera.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_setting_permission_camera@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_setting_permission_camera@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/Setting/yumi_center_setting_permission_camera.imageset/yumi_center_setting_permission_camera@2x.png b/YuMi/Assets.xcassets/jm/Setting/yumi_center_setting_permission_camera.imageset/yumi_center_setting_permission_camera@2x.png new file mode 100644 index 00000000..eb568c9e Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Setting/yumi_center_setting_permission_camera.imageset/yumi_center_setting_permission_camera@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/Setting/yumi_center_setting_permission_camera.imageset/yumi_center_setting_permission_camera@3x.png b/YuMi/Assets.xcassets/jm/Setting/yumi_center_setting_permission_camera.imageset/yumi_center_setting_permission_camera@3x.png new file mode 100644 index 00000000..90fdf38e Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Setting/yumi_center_setting_permission_camera.imageset/yumi_center_setting_permission_camera@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/Setting/yumi_center_setting_permission_voice.imageset/Contents.json b/YuMi/Assets.xcassets/jm/Setting/yumi_center_setting_permission_voice.imageset/Contents.json new file mode 100644 index 00000000..aae4fa2b --- /dev/null +++ b/YuMi/Assets.xcassets/jm/Setting/yumi_center_setting_permission_voice.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_setting_permission_voice@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_setting_permission_voice@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/Setting/yumi_center_setting_permission_voice.imageset/yumi_center_setting_permission_voice@2x.png b/YuMi/Assets.xcassets/jm/Setting/yumi_center_setting_permission_voice.imageset/yumi_center_setting_permission_voice@2x.png new file mode 100644 index 00000000..b51cb299 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Setting/yumi_center_setting_permission_voice.imageset/yumi_center_setting_permission_voice@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/Setting/yumi_center_setting_permission_voice.imageset/yumi_center_setting_permission_voice@3x.png b/YuMi/Assets.xcassets/jm/Setting/yumi_center_setting_permission_voice.imageset/yumi_center_setting_permission_voice@3x.png new file mode 100644 index 00000000..d81e3a37 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Setting/yumi_center_setting_permission_voice.imageset/yumi_center_setting_permission_voice@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/Setting/yumi_ming_setting_about_us.imageset/Contents.json b/YuMi/Assets.xcassets/jm/Setting/yumi_ming_setting_about_us.imageset/Contents.json new file mode 100644 index 00000000..7f83e343 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/Setting/yumi_ming_setting_about_us.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_ming_setting_about_us@2x.png", "idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/Setting/yumi_ming_setting_about_us.imageset/yumi_ming_setting_about_us@2x.png b/YuMi/Assets.xcassets/jm/Setting/yumi_ming_setting_about_us.imageset/yumi_ming_setting_about_us@2x.png new file mode 100644 index 00000000..4d458843 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Setting/yumi_ming_setting_about_us.imageset/yumi_ming_setting_about_us@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/SkillCard/Contents.json b/YuMi/Assets.xcassets/jm/SkillCard/Contents.json new file mode 100644 index 00000000..e2342777 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/SkillCard/Contents.json @@ -0,0 +1,7 @@ +{"info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/Contents.json b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/Contents.json new file mode 100644 index 00000000..e2342777 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/Contents.json @@ -0,0 +1,7 @@ +{"info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_00.imageset/Contents.json b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_00.imageset/Contents.json new file mode 100644 index 00000000..7aee0a65 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_00.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_center_voice_shengyin_00.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_00.imageset/yumi_center_voice_shengyin_00.png b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_00.imageset/yumi_center_voice_shengyin_00.png new file mode 100644 index 00000000..fc65d1f8 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_00.imageset/yumi_center_voice_shengyin_00.png differ diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_01.imageset/Contents.json b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_01.imageset/Contents.json new file mode 100644 index 00000000..69a5621b --- /dev/null +++ b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_01.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_center_voice_shengyin_01.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_01.imageset/yumi_center_voice_shengyin_01.png b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_01.imageset/yumi_center_voice_shengyin_01.png new file mode 100644 index 00000000..1592a237 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_01.imageset/yumi_center_voice_shengyin_01.png differ diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_02.imageset/Contents.json b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_02.imageset/Contents.json new file mode 100644 index 00000000..29388d61 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_02.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_center_voice_shengyin_02.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_02.imageset/yumi_center_voice_shengyin_02.png b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_02.imageset/yumi_center_voice_shengyin_02.png new file mode 100644 index 00000000..46d57857 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_02.imageset/yumi_center_voice_shengyin_02.png differ diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_03.imageset/Contents.json b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_03.imageset/Contents.json new file mode 100644 index 00000000..d146627d --- /dev/null +++ b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_03.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_center_voice_shengyin_03.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_03.imageset/yumi_center_voice_shengyin_03.png b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_03.imageset/yumi_center_voice_shengyin_03.png new file mode 100644 index 00000000..1216feae Binary files /dev/null and b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_03.imageset/yumi_center_voice_shengyin_03.png differ diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_04.imageset/Contents.json b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_04.imageset/Contents.json new file mode 100644 index 00000000..e8370940 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_04.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_center_voice_shengyin_04.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_04.imageset/yumi_center_voice_shengyin_04.png b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_04.imageset/yumi_center_voice_shengyin_04.png new file mode 100644 index 00000000..7671fb97 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_04.imageset/yumi_center_voice_shengyin_04.png differ diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_05.imageset/Contents.json b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_05.imageset/Contents.json new file mode 100644 index 00000000..a158e05d --- /dev/null +++ b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_05.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_center_voice_shengyin_05.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_05.imageset/yumi_center_voice_shengyin_05.png b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_05.imageset/yumi_center_voice_shengyin_05.png new file mode 100644 index 00000000..1f68c8e0 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_05.imageset/yumi_center_voice_shengyin_05.png differ diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_06.imageset/Contents.json b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_06.imageset/Contents.json new file mode 100644 index 00000000..05e0081d --- /dev/null +++ b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_06.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_center_voice_shengyin_06.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_06.imageset/yumi_center_voice_shengyin_06.png b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_06.imageset/yumi_center_voice_shengyin_06.png new file mode 100644 index 00000000..c3c65ff6 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_06.imageset/yumi_center_voice_shengyin_06.png differ diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_07.imageset/Contents.json b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_07.imageset/Contents.json new file mode 100644 index 00000000..cb21eb81 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_07.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_center_voice_shengyin_07.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_07.imageset/yumi_center_voice_shengyin_07.png b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_07.imageset/yumi_center_voice_shengyin_07.png new file mode 100644 index 00000000..4b932762 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_07.imageset/yumi_center_voice_shengyin_07.png differ diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_08.imageset/Contents.json b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_08.imageset/Contents.json new file mode 100644 index 00000000..ca05fe43 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_08.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_center_voice_shengyin_08.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_08.imageset/yumi_center_voice_shengyin_08.png b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_08.imageset/yumi_center_voice_shengyin_08.png new file mode 100644 index 00000000..5c0482d3 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_08.imageset/yumi_center_voice_shengyin_08.png differ diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_09.imageset/Contents.json b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_09.imageset/Contents.json new file mode 100644 index 00000000..fdbdbe2e --- /dev/null +++ b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_09.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_center_voice_shengyin_09.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_09.imageset/yumi_center_voice_shengyin_09.png b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_09.imageset/yumi_center_voice_shengyin_09.png new file mode 100644 index 00000000..fbc10d72 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_09.imageset/yumi_center_voice_shengyin_09.png differ diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_10.imageset/Contents.json b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_10.imageset/Contents.json new file mode 100644 index 00000000..e4cc1104 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_10.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_center_voice_shengyin_10.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_10.imageset/yumi_center_voice_shengyin_10.png b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_10.imageset/yumi_center_voice_shengyin_10.png new file mode 100644 index 00000000..ce8801c6 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_10.imageset/yumi_center_voice_shengyin_10.png differ diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_11.imageset/Contents.json b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_11.imageset/Contents.json new file mode 100644 index 00000000..980377e1 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_11.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_center_voice_shengyin_11.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_11.imageset/yumi_center_voice_shengyin_11.png b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_11.imageset/yumi_center_voice_shengyin_11.png new file mode 100644 index 00000000..28219543 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_11.imageset/yumi_center_voice_shengyin_11.png differ diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_12.imageset/Contents.json b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_12.imageset/Contents.json new file mode 100644 index 00000000..b9e5612d --- /dev/null +++ b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_12.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_center_voice_shengyin_12.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_12.imageset/yumi_center_voice_shengyin_12.png b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_12.imageset/yumi_center_voice_shengyin_12.png new file mode 100644 index 00000000..40bcdd1d Binary files /dev/null and b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_12.imageset/yumi_center_voice_shengyin_12.png differ diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_13.imageset/Contents.json b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_13.imageset/Contents.json new file mode 100644 index 00000000..81c8533e --- /dev/null +++ b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_13.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_center_voice_shengyin_13.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_13.imageset/yumi_center_voice_shengyin_13.png b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_13.imageset/yumi_center_voice_shengyin_13.png new file mode 100644 index 00000000..3cf7baf9 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_13.imageset/yumi_center_voice_shengyin_13.png differ diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_14.imageset/Contents.json b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_14.imageset/Contents.json new file mode 100644 index 00000000..31ad3d24 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_14.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_center_voice_shengyin_14.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_14.imageset/yumi_center_voice_shengyin_14.png b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_14.imageset/yumi_center_voice_shengyin_14.png new file mode 100644 index 00000000..bc047a62 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_14.imageset/yumi_center_voice_shengyin_14.png differ diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_15.imageset/Contents.json b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_15.imageset/Contents.json new file mode 100644 index 00000000..89e420ba --- /dev/null +++ b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_15.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_center_voice_shengyin_15.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_15.imageset/yumi_center_voice_shengyin_15.png b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_15.imageset/yumi_center_voice_shengyin_15.png new file mode 100644 index 00000000..b3754f1c Binary files /dev/null and b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_15.imageset/yumi_center_voice_shengyin_15.png differ diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_16.imageset/Contents.json b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_16.imageset/Contents.json new file mode 100644 index 00000000..304305b8 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_16.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_center_voice_shengyin_16.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_16.imageset/yumi_center_voice_shengyin_16.png b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_16.imageset/yumi_center_voice_shengyin_16.png new file mode 100644 index 00000000..21278e72 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_16.imageset/yumi_center_voice_shengyin_16.png differ diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_17.imageset/Contents.json b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_17.imageset/Contents.json new file mode 100644 index 00000000..03e4ce27 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_17.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_center_voice_shengyin_17.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_17.imageset/yumi_center_voice_shengyin_17.png b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_17.imageset/yumi_center_voice_shengyin_17.png new file mode 100644 index 00000000..083290f9 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_17.imageset/yumi_center_voice_shengyin_17.png differ diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_18.imageset/Contents.json b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_18.imageset/Contents.json new file mode 100644 index 00000000..512ba339 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_18.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_center_voice_shengyin_18.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_18.imageset/yumi_center_voice_shengyin_18.png b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_18.imageset/yumi_center_voice_shengyin_18.png new file mode 100644 index 00000000..4ce564a5 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_18.imageset/yumi_center_voice_shengyin_18.png differ diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_19.imageset/Contents.json b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_19.imageset/Contents.json new file mode 100644 index 00000000..f614c0f7 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_19.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_center_voice_shengyin_19.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_19.imageset/yumi_center_voice_shengyin_19.png b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_19.imageset/yumi_center_voice_shengyin_19.png new file mode 100644 index 00000000..da4d257f Binary files /dev/null and b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_19.imageset/yumi_center_voice_shengyin_19.png differ diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_20.imageset/Contents.json b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_20.imageset/Contents.json new file mode 100644 index 00000000..69d95837 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_20.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_center_voice_shengyin_20.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_20.imageset/yumi_center_voice_shengyin_20.png b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_20.imageset/yumi_center_voice_shengyin_20.png new file mode 100644 index 00000000..6b4192d3 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_20.imageset/yumi_center_voice_shengyin_20.png differ diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_21.imageset/Contents.json b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_21.imageset/Contents.json new file mode 100644 index 00000000..3db35d78 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_21.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_center_voice_shengyin_21.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_21.imageset/yumi_center_voice_shengyin_21.png b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_21.imageset/yumi_center_voice_shengyin_21.png new file mode 100644 index 00000000..d16dce3f Binary files /dev/null and b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_21.imageset/yumi_center_voice_shengyin_21.png differ diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_22.imageset/Contents.json b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_22.imageset/Contents.json new file mode 100644 index 00000000..878a4810 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_22.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_center_voice_shengyin_22.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_22.imageset/yumi_center_voice_shengyin_22.png b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_22.imageset/yumi_center_voice_shengyin_22.png new file mode 100644 index 00000000..b251a99b Binary files /dev/null and b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_22.imageset/yumi_center_voice_shengyin_22.png differ diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_23.imageset/Contents.json b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_23.imageset/Contents.json new file mode 100644 index 00000000..47180b6a --- /dev/null +++ b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_23.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_center_voice_shengyin_23.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_23.imageset/yumi_center_voice_shengyin_23.png b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_23.imageset/yumi_center_voice_shengyin_23.png new file mode 100644 index 00000000..6aa61f08 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_23.imageset/yumi_center_voice_shengyin_23.png differ diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_24.imageset/Contents.json b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_24.imageset/Contents.json new file mode 100644 index 00000000..c9011e45 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_24.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_center_voice_shengyin_24.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_24.imageset/yumi_center_voice_shengyin_24.png b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_24.imageset/yumi_center_voice_shengyin_24.png new file mode 100644 index 00000000..0f169202 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_24.imageset/yumi_center_voice_shengyin_24.png differ diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_25.imageset/Contents.json b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_25.imageset/Contents.json new file mode 100644 index 00000000..cb126627 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_25.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_center_voice_shengyin_25.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_25.imageset/yumi_center_voice_shengyin_25.png b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_25.imageset/yumi_center_voice_shengyin_25.png new file mode 100644 index 00000000..b521cf97 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_25.imageset/yumi_center_voice_shengyin_25.png differ diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_26.imageset/Contents.json b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_26.imageset/Contents.json new file mode 100644 index 00000000..88e83070 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_26.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_center_voice_shengyin_26.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_26.imageset/yumi_center_voice_shengyin_26.png b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_26.imageset/yumi_center_voice_shengyin_26.png new file mode 100644 index 00000000..9b3c6609 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_26.imageset/yumi_center_voice_shengyin_26.png differ diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_27.imageset/Contents.json b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_27.imageset/Contents.json new file mode 100644 index 00000000..30ac6999 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_27.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_center_voice_shengyin_27.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_27.imageset/yumi_center_voice_shengyin_27.png b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_27.imageset/yumi_center_voice_shengyin_27.png new file mode 100644 index 00000000..c4e93e22 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_27.imageset/yumi_center_voice_shengyin_27.png differ diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_28.imageset/Contents.json b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_28.imageset/Contents.json new file mode 100644 index 00000000..81f81eef --- /dev/null +++ b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_28.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_center_voice_shengyin_28.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_28.imageset/yumi_center_voice_shengyin_28.png b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_28.imageset/yumi_center_voice_shengyin_28.png new file mode 100644 index 00000000..a0d5f769 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_28.imageset/yumi_center_voice_shengyin_28.png differ diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_29.imageset/Contents.json b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_29.imageset/Contents.json new file mode 100644 index 00000000..a83c129f --- /dev/null +++ b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_29.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_center_voice_shengyin_29.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_29.imageset/yumi_center_voice_shengyin_29.png b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_29.imageset/yumi_center_voice_shengyin_29.png new file mode 100644 index 00000000..b4b3e2b2 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_29.imageset/yumi_center_voice_shengyin_29.png differ diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_30.imageset/Contents.json b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_30.imageset/Contents.json new file mode 100644 index 00000000..14258a09 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_30.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_center_voice_shengyin_30.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_30.imageset/yumi_center_voice_shengyin_30.png b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_30.imageset/yumi_center_voice_shengyin_30.png new file mode 100644 index 00000000..5fe34541 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_30.imageset/yumi_center_voice_shengyin_30.png differ diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_31.imageset/Contents.json b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_31.imageset/Contents.json new file mode 100644 index 00000000..04f50631 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_31.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_center_voice_shengyin_31.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_31.imageset/yumi_center_voice_shengyin_31.png b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_31.imageset/yumi_center_voice_shengyin_31.png new file mode 100644 index 00000000..aa4b69b2 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_31.imageset/yumi_center_voice_shengyin_31.png differ diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_32.imageset/Contents.json b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_32.imageset/Contents.json new file mode 100644 index 00000000..a113923e --- /dev/null +++ b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_32.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_center_voice_shengyin_32.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_32.imageset/yumi_center_voice_shengyin_32.png b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_32.imageset/yumi_center_voice_shengyin_32.png new file mode 100644 index 00000000..fc21390c Binary files /dev/null and b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_32.imageset/yumi_center_voice_shengyin_32.png differ diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_33.imageset/Contents.json b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_33.imageset/Contents.json new file mode 100644 index 00000000..da35f0f1 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_33.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_center_voice_shengyin_33.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_33.imageset/yumi_center_voice_shengyin_33.png b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_33.imageset/yumi_center_voice_shengyin_33.png new file mode 100644 index 00000000..f3a82eac Binary files /dev/null and b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_33.imageset/yumi_center_voice_shengyin_33.png differ diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_34.imageset/Contents.json b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_34.imageset/Contents.json new file mode 100644 index 00000000..a7bcff23 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_34.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_center_voice_shengyin_34.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_34.imageset/yumi_center_voice_shengyin_34.png b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_34.imageset/yumi_center_voice_shengyin_34.png new file mode 100644 index 00000000..c72ba8e6 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_34.imageset/yumi_center_voice_shengyin_34.png differ diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_35.imageset/Contents.json b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_35.imageset/Contents.json new file mode 100644 index 00000000..d2a87f03 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_35.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_center_voice_shengyin_35.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_35.imageset/yumi_center_voice_shengyin_35.png b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_35.imageset/yumi_center_voice_shengyin_35.png new file mode 100644 index 00000000..365bdde2 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_35.imageset/yumi_center_voice_shengyin_35.png differ diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_36.imageset/Contents.json b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_36.imageset/Contents.json new file mode 100644 index 00000000..85ae48e6 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_36.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_center_voice_shengyin_36.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_36.imageset/yumi_center_voice_shengyin_36.png b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_36.imageset/yumi_center_voice_shengyin_36.png new file mode 100644 index 00000000..27cce588 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_36.imageset/yumi_center_voice_shengyin_36.png differ diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_37.imageset/Contents.json b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_37.imageset/Contents.json new file mode 100644 index 00000000..1528bb5b --- /dev/null +++ b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_37.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_center_voice_shengyin_37.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_37.imageset/yumi_center_voice_shengyin_37.png b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_37.imageset/yumi_center_voice_shengyin_37.png new file mode 100644 index 00000000..fc8a1ba3 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_37.imageset/yumi_center_voice_shengyin_37.png differ diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_38.imageset/Contents.json b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_38.imageset/Contents.json new file mode 100644 index 00000000..a11f64c8 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_38.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_center_voice_shengyin_38.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_38.imageset/yumi_center_voice_shengyin_38.png b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_38.imageset/yumi_center_voice_shengyin_38.png new file mode 100644 index 00000000..4bcbe904 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_38.imageset/yumi_center_voice_shengyin_38.png differ diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_39.imageset/Contents.json b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_39.imageset/Contents.json new file mode 100644 index 00000000..048eb41d --- /dev/null +++ b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_39.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_center_voice_shengyin_39.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_39.imageset/yumi_center_voice_shengyin_39.png b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_39.imageset/yumi_center_voice_shengyin_39.png new file mode 100644 index 00000000..c49e927e Binary files /dev/null and b/YuMi/Assets.xcassets/jm/SkillCard/VoiceNote/yumi_center_voice_shengyin_39.imageset/yumi_center_voice_shengyin_39.png differ diff --git a/YuMi/Assets.xcassets/jm/SkillCard/yumi_skillCard_arrow.imageset/Contents.json b/YuMi/Assets.xcassets/jm/SkillCard/yumi_skillCard_arrow.imageset/Contents.json new file mode 100644 index 00000000..c970527e --- /dev/null +++ b/YuMi/Assets.xcassets/jm/SkillCard/yumi_skillCard_arrow.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_skillCard_arrow@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_skillCard_arrow@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/SkillCard/yumi_skillCard_arrow.imageset/yumi_skillCard_arrow@2x.png b/YuMi/Assets.xcassets/jm/SkillCard/yumi_skillCard_arrow.imageset/yumi_skillCard_arrow@2x.png new file mode 100644 index 00000000..924e50f1 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/SkillCard/yumi_skillCard_arrow.imageset/yumi_skillCard_arrow@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/SkillCard/yumi_skillCard_arrow.imageset/yumi_skillCard_arrow@3x.png b/YuMi/Assets.xcassets/jm/SkillCard/yumi_skillCard_arrow.imageset/yumi_skillCard_arrow@3x.png new file mode 100644 index 00000000..2dd98dca Binary files /dev/null and b/YuMi/Assets.xcassets/jm/SkillCard/yumi_skillCard_arrow.imageset/yumi_skillCard_arrow@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/SkillCard/yumi_skillCard_edit.imageset/Contents.json b/YuMi/Assets.xcassets/jm/SkillCard/yumi_skillCard_edit.imageset/Contents.json new file mode 100644 index 00000000..36385dfe --- /dev/null +++ b/YuMi/Assets.xcassets/jm/SkillCard/yumi_skillCard_edit.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_skillCard_edit@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_skillCard_edit@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/SkillCard/yumi_skillCard_edit.imageset/yumi_skillCard_edit@2x.png b/YuMi/Assets.xcassets/jm/SkillCard/yumi_skillCard_edit.imageset/yumi_skillCard_edit@2x.png new file mode 100644 index 00000000..c7a7cdca Binary files /dev/null and b/YuMi/Assets.xcassets/jm/SkillCard/yumi_skillCard_edit.imageset/yumi_skillCard_edit@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/SkillCard/yumi_skillCard_edit.imageset/yumi_skillCard_edit@3x.png b/YuMi/Assets.xcassets/jm/SkillCard/yumi_skillCard_edit.imageset/yumi_skillCard_edit@3x.png new file mode 100644 index 00000000..58707dc1 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/SkillCard/yumi_skillCard_edit.imageset/yumi_skillCard_edit@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/Visitor/Contents.json b/YuMi/Assets.xcassets/jm/Visitor/Contents.json new file mode 100644 index 00000000..e2342777 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/Visitor/Contents.json @@ -0,0 +1,7 @@ +{"info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/Visitor/yumi_visitor_record_letter.imageset/Contents.json b/YuMi/Assets.xcassets/jm/Visitor/yumi_visitor_record_letter.imageset/Contents.json new file mode 100644 index 00000000..b8587dba --- /dev/null +++ b/YuMi/Assets.xcassets/jm/Visitor/yumi_visitor_record_letter.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_visitor_record_letter@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_visitor_record_letter@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/Visitor/yumi_visitor_record_letter.imageset/yumi_visitor_record_letter@2x.png b/YuMi/Assets.xcassets/jm/Visitor/yumi_visitor_record_letter.imageset/yumi_visitor_record_letter@2x.png new file mode 100644 index 00000000..8354db54 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Visitor/yumi_visitor_record_letter.imageset/yumi_visitor_record_letter@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/Visitor/yumi_visitor_record_letter.imageset/yumi_visitor_record_letter@3x.png b/YuMi/Assets.xcassets/jm/Visitor/yumi_visitor_record_letter.imageset/yumi_visitor_record_letter@3x.png new file mode 100644 index 00000000..8953aed8 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/Visitor/yumi_visitor_record_letter.imageset/yumi_visitor_record_letter@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/collectRoom/Contents.json b/YuMi/Assets.xcassets/jm/collectRoom/Contents.json new file mode 100644 index 00000000..e2342777 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/collectRoom/Contents.json @@ -0,0 +1,7 @@ +{"info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/collectRoom/yumi_collect_scope_edit_normal.imageset/Contents.json b/YuMi/Assets.xcassets/jm/collectRoom/yumi_collect_scope_edit_normal.imageset/Contents.json new file mode 100644 index 00000000..fc16a812 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/collectRoom/yumi_collect_scope_edit_normal.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_collect_scope_edit_normal@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_collect_scope_edit_normal@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/collectRoom/yumi_collect_scope_edit_normal.imageset/yumi_collect_scope_edit_normal@2x.png b/YuMi/Assets.xcassets/jm/collectRoom/yumi_collect_scope_edit_normal.imageset/yumi_collect_scope_edit_normal@2x.png new file mode 100644 index 00000000..a4ed1ec4 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/collectRoom/yumi_collect_scope_edit_normal.imageset/yumi_collect_scope_edit_normal@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/collectRoom/yumi_collect_scope_edit_normal.imageset/yumi_collect_scope_edit_normal@3x.png b/YuMi/Assets.xcassets/jm/collectRoom/yumi_collect_scope_edit_normal.imageset/yumi_collect_scope_edit_normal@3x.png new file mode 100644 index 00000000..6afc6dc2 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/collectRoom/yumi_collect_scope_edit_normal.imageset/yumi_collect_scope_edit_normal@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/collectRoom/yumi_collect_scope_edit_selected.imageset/Contents.json b/YuMi/Assets.xcassets/jm/collectRoom/yumi_collect_scope_edit_selected.imageset/Contents.json new file mode 100644 index 00000000..b0844ff9 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/collectRoom/yumi_collect_scope_edit_selected.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_collect_scope_edit_selected@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_collect_scope_edit_selected@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/collectRoom/yumi_collect_scope_edit_selected.imageset/yumi_collect_scope_edit_selected@2x.png b/YuMi/Assets.xcassets/jm/collectRoom/yumi_collect_scope_edit_selected.imageset/yumi_collect_scope_edit_selected@2x.png new file mode 100644 index 00000000..6b12e370 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/collectRoom/yumi_collect_scope_edit_selected.imageset/yumi_collect_scope_edit_selected@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/collectRoom/yumi_collect_scope_edit_selected.imageset/yumi_collect_scope_edit_selected@3x.png b/YuMi/Assets.xcassets/jm/collectRoom/yumi_collect_scope_edit_selected.imageset/yumi_collect_scope_edit_selected@3x.png new file mode 100644 index 00000000..add12f7d Binary files /dev/null and b/YuMi/Assets.xcassets/jm/collectRoom/yumi_collect_scope_edit_selected.imageset/yumi_collect_scope_edit_selected@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_album_reviewing.imageset/Contents.json b/YuMi/Assets.xcassets/jm/yumi_center_album_reviewing.imageset/Contents.json new file mode 100644 index 00000000..b043ec7b --- /dev/null +++ b/YuMi/Assets.xcassets/jm/yumi_center_album_reviewing.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_album_reviewing@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_album_reviewing@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/yumi_center_album_reviewing.imageset/yumi_center_album_reviewing@2x.png b/YuMi/Assets.xcassets/jm/yumi_center_album_reviewing.imageset/yumi_center_album_reviewing@2x.png new file mode 100644 index 00000000..5e2db3c5 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_album_reviewing.imageset/yumi_center_album_reviewing@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_album_reviewing.imageset/yumi_center_album_reviewing@3x.png b/YuMi/Assets.xcassets/jm/yumi_center_album_reviewing.imageset/yumi_center_album_reviewing@3x.png new file mode 100644 index 00000000..8a564ae7 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_album_reviewing.imageset/yumi_center_album_reviewing@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_avatar_reviewing.imageset/Contents.json b/YuMi/Assets.xcassets/jm/yumi_center_avatar_reviewing.imageset/Contents.json new file mode 100644 index 00000000..649b9a03 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/yumi_center_avatar_reviewing.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_avatar_reviewing@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_avatar_reviewing@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/yumi_center_avatar_reviewing.imageset/yumi_center_avatar_reviewing@2x.png b/YuMi/Assets.xcassets/jm/yumi_center_avatar_reviewing.imageset/yumi_center_avatar_reviewing@2x.png new file mode 100644 index 00000000..40710779 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_avatar_reviewing.imageset/yumi_center_avatar_reviewing@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_avatar_reviewing.imageset/yumi_center_avatar_reviewing@3x.png b/YuMi/Assets.xcassets/jm/yumi_center_avatar_reviewing.imageset/yumi_center_avatar_reviewing@3x.png new file mode 100644 index 00000000..797c30c2 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_avatar_reviewing.imageset/yumi_center_avatar_reviewing@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_collection.imageset/Contents.json b/YuMi/Assets.xcassets/jm/yumi_center_collection.imageset/Contents.json new file mode 100644 index 00000000..c039fb33 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/yumi_center_collection.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_collection@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_collection@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/yumi_center_collection.imageset/yumi_center_collection@2x.png b/YuMi/Assets.xcassets/jm/yumi_center_collection.imageset/yumi_center_collection@2x.png new file mode 100644 index 00000000..5edaf850 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_collection.imageset/yumi_center_collection@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_collection.imageset/yumi_center_collection@3x.png b/YuMi/Assets.xcassets/jm/yumi_center_collection.imageset/yumi_center_collection@3x.png new file mode 100644 index 00000000..93109753 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_collection.imageset/yumi_center_collection@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_dress.imageset/Contents.json b/YuMi/Assets.xcassets/jm/yumi_center_dress.imageset/Contents.json new file mode 100644 index 00000000..1fc36d0d --- /dev/null +++ b/YuMi/Assets.xcassets/jm/yumi_center_dress.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_dress@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_dress@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/yumi_center_dress.imageset/yumi_center_dress@2x.png b/YuMi/Assets.xcassets/jm/yumi_center_dress.imageset/yumi_center_dress@2x.png new file mode 100644 index 00000000..6415cd7a Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_dress.imageset/yumi_center_dress@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_dress.imageset/yumi_center_dress@3x.png b/YuMi/Assets.xcassets/jm/yumi_center_dress.imageset/yumi_center_dress@3x.png new file mode 100644 index 00000000..e109d4ed Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_dress.imageset/yumi_center_dress@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_earnings_record.imageset/Contents.json b/YuMi/Assets.xcassets/jm/yumi_center_earnings_record.imageset/Contents.json new file mode 100644 index 00000000..9f1ff16b --- /dev/null +++ b/YuMi/Assets.xcassets/jm/yumi_center_earnings_record.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_earnings_record@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_earnings_record@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/yumi_center_earnings_record.imageset/yumi_center_earnings_record@2x.png b/YuMi/Assets.xcassets/jm/yumi_center_earnings_record.imageset/yumi_center_earnings_record@2x.png new file mode 100644 index 00000000..f6f11164 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_earnings_record.imageset/yumi_center_earnings_record@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_earnings_record.imageset/yumi_center_earnings_record@3x.png b/YuMi/Assets.xcassets/jm/yumi_center_earnings_record.imageset/yumi_center_earnings_record@3x.png new file mode 100644 index 00000000..83c4a4f7 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_earnings_record.imageset/yumi_center_earnings_record@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_fans.imageset/Contents.json b/YuMi/Assets.xcassets/jm/yumi_center_fans.imageset/Contents.json new file mode 100644 index 00000000..dd51222c --- /dev/null +++ b/YuMi/Assets.xcassets/jm/yumi_center_fans.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_fans@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_fans@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/yumi_center_fans.imageset/yumi_center_fans@2x.png b/YuMi/Assets.xcassets/jm/yumi_center_fans.imageset/yumi_center_fans@2x.png new file mode 100644 index 00000000..ef9760f9 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_fans.imageset/yumi_center_fans@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_fans.imageset/yumi_center_fans@3x.png b/YuMi/Assets.xcassets/jm/yumi_center_fans.imageset/yumi_center_fans@3x.png new file mode 100644 index 00000000..77ee4a88 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_fans.imageset/yumi_center_fans@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_feedback.imageset/Contents.json b/YuMi/Assets.xcassets/jm/yumi_center_feedback.imageset/Contents.json new file mode 100644 index 00000000..31c899ff --- /dev/null +++ b/YuMi/Assets.xcassets/jm/yumi_center_feedback.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_feedback@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_feedback@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/yumi_center_feedback.imageset/yumi_center_feedback@2x.png b/YuMi/Assets.xcassets/jm/yumi_center_feedback.imageset/yumi_center_feedback@2x.png new file mode 100644 index 00000000..a66e63ad Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_feedback.imageset/yumi_center_feedback@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_feedback.imageset/yumi_center_feedback@3x.png b/YuMi/Assets.xcassets/jm/yumi_center_feedback.imageset/yumi_center_feedback@3x.png new file mode 100644 index 00000000..1d143c82 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_feedback.imageset/yumi_center_feedback@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_grade.imageset/Contents.json b/YuMi/Assets.xcassets/jm/yumi_center_grade.imageset/Contents.json new file mode 100644 index 00000000..8949965d --- /dev/null +++ b/YuMi/Assets.xcassets/jm/yumi_center_grade.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_grade@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_grade@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/yumi_center_grade.imageset/yumi_center_grade@2x.png b/YuMi/Assets.xcassets/jm/yumi_center_grade.imageset/yumi_center_grade@2x.png new file mode 100644 index 00000000..970517dd Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_grade.imageset/yumi_center_grade@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_grade.imageset/yumi_center_grade@3x.png b/YuMi/Assets.xcassets/jm/yumi_center_grade.imageset/yumi_center_grade@3x.png new file mode 100644 index 00000000..d030725b Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_grade.imageset/yumi_center_grade@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_grand_entrance_hadNoble.imageset/Contents.json b/YuMi/Assets.xcassets/jm/yumi_center_grand_entrance_hadNoble.imageset/Contents.json new file mode 100644 index 00000000..3c3455f2 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/yumi_center_grand_entrance_hadNoble.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_grand_entrance_hadNoble@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_grand_entrance_hadNoble@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/yumi_center_grand_entrance_hadNoble.imageset/yumi_center_grand_entrance_hadNoble@2x.png b/YuMi/Assets.xcassets/jm/yumi_center_grand_entrance_hadNoble.imageset/yumi_center_grand_entrance_hadNoble@2x.png new file mode 100644 index 00000000..9ebdc5a6 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_grand_entrance_hadNoble.imageset/yumi_center_grand_entrance_hadNoble@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_grand_entrance_hadNoble.imageset/yumi_center_grand_entrance_hadNoble@3x.png b/YuMi/Assets.xcassets/jm/yumi_center_grand_entrance_hadNoble.imageset/yumi_center_grand_entrance_hadNoble@3x.png new file mode 100644 index 00000000..a9ffe96a Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_grand_entrance_hadNoble.imageset/yumi_center_grand_entrance_hadNoble@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_grand_entrance_noNoble.imageset/Contents.json b/YuMi/Assets.xcassets/jm/yumi_center_grand_entrance_noNoble.imageset/Contents.json new file mode 100644 index 00000000..bff4c873 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/yumi_center_grand_entrance_noNoble.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_grand_entrance_noNoble@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_grand_entrance_noNoble@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/yumi_center_grand_entrance_noNoble.imageset/yumi_center_grand_entrance_noNoble@2x.png b/YuMi/Assets.xcassets/jm/yumi_center_grand_entrance_noNoble.imageset/yumi_center_grand_entrance_noNoble@2x.png new file mode 100644 index 00000000..f2c464df Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_grand_entrance_noNoble.imageset/yumi_center_grand_entrance_noNoble@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_grand_entrance_noNoble.imageset/yumi_center_grand_entrance_noNoble@3x.png b/YuMi/Assets.xcassets/jm/yumi_center_grand_entrance_noNoble.imageset/yumi_center_grand_entrance_noNoble@3x.png new file mode 100644 index 00000000..afc7c081 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_grand_entrance_noNoble.imageset/yumi_center_grand_entrance_noNoble@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_head_account_background.imageset/Contents.json b/YuMi/Assets.xcassets/jm/yumi_center_head_account_background.imageset/Contents.json new file mode 100644 index 00000000..3573db4d --- /dev/null +++ b/YuMi/Assets.xcassets/jm/yumi_center_head_account_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_head_account_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_head_account_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/yumi_center_head_account_background.imageset/yumi_center_head_account_background@2x.png b/YuMi/Assets.xcassets/jm/yumi_center_head_account_background.imageset/yumi_center_head_account_background@2x.png new file mode 100644 index 00000000..b85dc6e4 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_head_account_background.imageset/yumi_center_head_account_background@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_head_account_background.imageset/yumi_center_head_account_background@3x.png b/YuMi/Assets.xcassets/jm/yumi_center_head_account_background.imageset/yumi_center_head_account_background@3x.png new file mode 100644 index 00000000..ae0264ab Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_head_account_background.imageset/yumi_center_head_account_background@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_head_background.imageset/Contents.json b/YuMi/Assets.xcassets/jm/yumi_center_head_background.imageset/Contents.json new file mode 100644 index 00000000..50733f4f --- /dev/null +++ b/YuMi/Assets.xcassets/jm/yumi_center_head_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_head_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_head_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/yumi_center_head_background.imageset/yumi_center_head_background@2x.png b/YuMi/Assets.xcassets/jm/yumi_center_head_background.imageset/yumi_center_head_background@2x.png new file mode 100644 index 00000000..d2db86ba Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_head_background.imageset/yumi_center_head_background@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_head_background.imageset/yumi_center_head_background@3x.png b/YuMi/Assets.xcassets/jm/yumi_center_head_background.imageset/yumi_center_head_background@3x.png new file mode 100644 index 00000000..db28a275 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_head_background.imageset/yumi_center_head_background@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_item_arrow.imageset/Contents.json b/YuMi/Assets.xcassets/jm/yumi_center_item_arrow.imageset/Contents.json new file mode 100644 index 00000000..956d96d0 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/yumi_center_item_arrow.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_item_arrow@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_item_arrow@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/yumi_center_item_arrow.imageset/yumi_center_item_arrow@2x.png b/YuMi/Assets.xcassets/jm/yumi_center_item_arrow.imageset/yumi_center_item_arrow@2x.png new file mode 100644 index 00000000..04fd9842 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_item_arrow.imageset/yumi_center_item_arrow@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_item_arrow.imageset/yumi_center_item_arrow@3x.png b/YuMi/Assets.xcassets/jm/yumi_center_item_arrow.imageset/yumi_center_item_arrow@3x.png new file mode 100644 index 00000000..331c7dcf Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_item_arrow.imageset/yumi_center_item_arrow@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_me_give.imageset/Contents.json b/YuMi/Assets.xcassets/jm/yumi_center_me_give.imageset/Contents.json new file mode 100644 index 00000000..67ba52b3 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/yumi_center_me_give.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_me_give@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_me_give@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/yumi_center_me_give.imageset/yumi_center_me_give@2x.png b/YuMi/Assets.xcassets/jm/yumi_center_me_give.imageset/yumi_center_me_give@2x.png new file mode 100644 index 00000000..8b906367 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_me_give.imageset/yumi_center_me_give@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_me_give.imageset/yumi_center_me_give@3x.png b/YuMi/Assets.xcassets/jm/yumi_center_me_give.imageset/yumi_center_me_give@3x.png new file mode 100644 index 00000000..5145ce7a Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_me_give.imageset/yumi_center_me_give@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_normal_skill_card.imageset/Contents.json b/YuMi/Assets.xcassets/jm/yumi_center_normal_skill_card.imageset/Contents.json new file mode 100644 index 00000000..5f1eaa44 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/yumi_center_normal_skill_card.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_normal_skill_card@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_normal_skill_card@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/yumi_center_normal_skill_card.imageset/yumi_center_normal_skill_card@2x.png b/YuMi/Assets.xcassets/jm/yumi_center_normal_skill_card.imageset/yumi_center_normal_skill_card@2x.png new file mode 100644 index 00000000..6bb1e450 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_normal_skill_card.imageset/yumi_center_normal_skill_card@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_normal_skill_card.imageset/yumi_center_normal_skill_card@3x.png b/YuMi/Assets.xcassets/jm/yumi_center_normal_skill_card.imageset/yumi_center_normal_skill_card@3x.png new file mode 100644 index 00000000..5702aef9 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_normal_skill_card.imageset/yumi_center_normal_skill_card@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_personal_centermy_room.imageset/Contents.json b/YuMi/Assets.xcassets/jm/yumi_center_personal_centermy_room.imageset/Contents.json new file mode 100644 index 00000000..1584900e --- /dev/null +++ b/YuMi/Assets.xcassets/jm/yumi_center_personal_centermy_room.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_personal_centermy_room@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_personal_centermy_room@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/yumi_center_personal_centermy_room.imageset/yumi_center_personal_centermy_room@2x.png b/YuMi/Assets.xcassets/jm/yumi_center_personal_centermy_room.imageset/yumi_center_personal_centermy_room@2x.png new file mode 100644 index 00000000..601b1470 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_personal_centermy_room.imageset/yumi_center_personal_centermy_room@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_personal_centermy_room.imageset/yumi_center_personal_centermy_room@3x.png b/YuMi/Assets.xcassets/jm/yumi_center_personal_centermy_room.imageset/yumi_center_personal_centermy_room@3x.png new file mode 100644 index 00000000..d6d13c00 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_personal_centermy_room.imageset/yumi_center_personal_centermy_room@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_recharge_background.imageset/Contents.json b/YuMi/Assets.xcassets/jm/yumi_center_recharge_background.imageset/Contents.json new file mode 100644 index 00000000..2f6c890d --- /dev/null +++ b/YuMi/Assets.xcassets/jm/yumi_center_recharge_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_recharge_background@2x.png", "idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/yumi_center_recharge_background.imageset/yumi_center_recharge_background@2x.png b/YuMi/Assets.xcassets/jm/yumi_center_recharge_background.imageset/yumi_center_recharge_background@2x.png new file mode 100644 index 00000000..7ac54fd2 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_recharge_background.imageset/yumi_center_recharge_background@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_recharge_coin_background.imageset/Contents.json b/YuMi/Assets.xcassets/jm/yumi_center_recharge_coin_background.imageset/Contents.json new file mode 100644 index 00000000..212d83ef --- /dev/null +++ b/YuMi/Assets.xcassets/jm/yumi_center_recharge_coin_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_recharge_coin_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_recharge_coin_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/yumi_center_recharge_coin_background.imageset/yumi_center_recharge_coin_background@2x.png b/YuMi/Assets.xcassets/jm/yumi_center_recharge_coin_background.imageset/yumi_center_recharge_coin_background@2x.png new file mode 100644 index 00000000..e00304a8 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_recharge_coin_background.imageset/yumi_center_recharge_coin_background@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_recharge_coin_background.imageset/yumi_center_recharge_coin_background@3x.png b/YuMi/Assets.xcassets/jm/yumi_center_recharge_coin_background.imageset/yumi_center_recharge_coin_background@3x.png new file mode 100644 index 00000000..cd6dcda7 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_recharge_coin_background.imageset/yumi_center_recharge_coin_background@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_recharge_diamond.imageset/Contents.json b/YuMi/Assets.xcassets/jm/yumi_center_recharge_diamond.imageset/Contents.json new file mode 100644 index 00000000..21456dfb --- /dev/null +++ b/YuMi/Assets.xcassets/jm/yumi_center_recharge_diamond.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_recharge_diamond@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_recharge_diamond@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/yumi_center_recharge_diamond.imageset/yumi_center_recharge_diamond@2x.png b/YuMi/Assets.xcassets/jm/yumi_center_recharge_diamond.imageset/yumi_center_recharge_diamond@2x.png new file mode 100644 index 00000000..dc5b0741 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_recharge_diamond.imageset/yumi_center_recharge_diamond@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_recharge_diamond.imageset/yumi_center_recharge_diamond@3x.png b/YuMi/Assets.xcassets/jm/yumi_center_recharge_diamond.imageset/yumi_center_recharge_diamond@3x.png new file mode 100644 index 00000000..cb7bbef3 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_recharge_diamond.imageset/yumi_center_recharge_diamond@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_recharge_header_background.imageset/Contents.json b/YuMi/Assets.xcassets/jm/yumi_center_recharge_header_background.imageset/Contents.json new file mode 100644 index 00000000..e44c749b --- /dev/null +++ b/YuMi/Assets.xcassets/jm/yumi_center_recharge_header_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_recharge_header_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_recharge_header_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/yumi_center_recharge_header_background.imageset/yumi_center_recharge_header_background@2x.png b/YuMi/Assets.xcassets/jm/yumi_center_recharge_header_background.imageset/yumi_center_recharge_header_background@2x.png new file mode 100644 index 00000000..701372b4 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_recharge_header_background.imageset/yumi_center_recharge_header_background@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_recharge_header_background.imageset/yumi_center_recharge_header_background@3x.png b/YuMi/Assets.xcassets/jm/yumi_center_recharge_header_background.imageset/yumi_center_recharge_header_background@3x.png new file mode 100644 index 00000000..43ec48c7 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_recharge_header_background.imageset/yumi_center_recharge_header_background@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_room.imageset/Contents.json b/YuMi/Assets.xcassets/jm/yumi_center_room.imageset/Contents.json new file mode 100644 index 00000000..0c62347b --- /dev/null +++ b/YuMi/Assets.xcassets/jm/yumi_center_room.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_room@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_room@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/yumi_center_room.imageset/yumi_center_room@2x.png b/YuMi/Assets.xcassets/jm/yumi_center_room.imageset/yumi_center_room@2x.png new file mode 100644 index 00000000..abb6c0eb Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_room.imageset/yumi_center_room@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_room.imageset/yumi_center_room@3x.png b/YuMi/Assets.xcassets/jm/yumi_center_room.imageset/yumi_center_room@3x.png new file mode 100644 index 00000000..ed036144 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_room.imageset/yumi_center_room@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_setting.imageset/Contents.json b/YuMi/Assets.xcassets/jm/yumi_center_setting.imageset/Contents.json new file mode 100644 index 00000000..c2fb26c4 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/yumi_center_setting.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_setting@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_setting@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/yumi_center_setting.imageset/yumi_center_setting@2x.png b/YuMi/Assets.xcassets/jm/yumi_center_setting.imageset/yumi_center_setting@2x.png new file mode 100644 index 00000000..9d2fbf69 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_setting.imageset/yumi_center_setting@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_setting.imageset/yumi_center_setting@3x.png b/YuMi/Assets.xcassets/jm/yumi_center_setting.imageset/yumi_center_setting@3x.png new file mode 100644 index 00000000..b5e88c0b Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_setting.imageset/yumi_center_setting@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_teeager_alter_close.imageset/Contents.json b/YuMi/Assets.xcassets/jm/yumi_center_teeager_alter_close.imageset/Contents.json new file mode 100644 index 00000000..e8b0342d --- /dev/null +++ b/YuMi/Assets.xcassets/jm/yumi_center_teeager_alter_close.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_teeager_alter_close@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_teeager_alter_close@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/yumi_center_teeager_alter_close.imageset/yumi_center_teeager_alter_close@2x.png b/YuMi/Assets.xcassets/jm/yumi_center_teeager_alter_close.imageset/yumi_center_teeager_alter_close@2x.png new file mode 100644 index 00000000..456463aa Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_teeager_alter_close.imageset/yumi_center_teeager_alter_close@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_teeager_alter_close.imageset/yumi_center_teeager_alter_close@3x.png b/YuMi/Assets.xcassets/jm/yumi_center_teeager_alter_close.imageset/yumi_center_teeager_alter_close@3x.png new file mode 100644 index 00000000..be0869a9 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_teeager_alter_close.imageset/yumi_center_teeager_alter_close@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_title_setting.imageset/Contents.json b/YuMi/Assets.xcassets/jm/yumi_center_title_setting.imageset/Contents.json new file mode 100644 index 00000000..61843247 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/yumi_center_title_setting.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_title_setting@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_title_setting@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/yumi_center_title_setting.imageset/yumi_center_title_setting@2x.png b/YuMi/Assets.xcassets/jm/yumi_center_title_setting.imageset/yumi_center_title_setting@2x.png new file mode 100644 index 00000000..a8b861e4 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_title_setting.imageset/yumi_center_title_setting@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_title_setting.imageset/yumi_center_title_setting@3x.png b/YuMi/Assets.xcassets/jm/yumi_center_title_setting.imageset/yumi_center_title_setting@3x.png new file mode 100644 index 00000000..8f9ee2de Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_title_setting.imageset/yumi_center_title_setting@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_union.imageset/Contents.json b/YuMi/Assets.xcassets/jm/yumi_center_union.imageset/Contents.json new file mode 100644 index 00000000..c3b10988 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/yumi_center_union.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_union@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_union@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/yumi_center_union.imageset/yumi_center_union@2x.png b/YuMi/Assets.xcassets/jm/yumi_center_union.imageset/yumi_center_union@2x.png new file mode 100644 index 00000000..f98e9b00 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_union.imageset/yumi_center_union@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_union.imageset/yumi_center_union@3x.png b/YuMi/Assets.xcassets/jm/yumi_center_union.imageset/yumi_center_union@3x.png new file mode 100644 index 00000000..56b7b7e4 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_union.imageset/yumi_center_union@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_user_gen_album_add.imageset/Contents.json b/YuMi/Assets.xcassets/jm/yumi_center_user_gen_album_add.imageset/Contents.json new file mode 100644 index 00000000..4ae42eec --- /dev/null +++ b/YuMi/Assets.xcassets/jm/yumi_center_user_gen_album_add.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_user_gen_album_add@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_user_gen_album_add@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/yumi_center_user_gen_album_add.imageset/yumi_center_user_gen_album_add@2x.png b/YuMi/Assets.xcassets/jm/yumi_center_user_gen_album_add.imageset/yumi_center_user_gen_album_add@2x.png new file mode 100644 index 00000000..87770c1f Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_user_gen_album_add.imageset/yumi_center_user_gen_album_add@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_user_gen_album_add.imageset/yumi_center_user_gen_album_add@3x.png b/YuMi/Assets.xcassets/jm/yumi_center_user_gen_album_add.imageset/yumi_center_user_gen_album_add@3x.png new file mode 100644 index 00000000..9b979294 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_user_gen_album_add.imageset/yumi_center_user_gen_album_add@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_user_gen_bottom_attention_normal.imageset/Contents.json b/YuMi/Assets.xcassets/jm/yumi_center_user_gen_bottom_attention_normal.imageset/Contents.json new file mode 100644 index 00000000..b2ff29f3 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/yumi_center_user_gen_bottom_attention_normal.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_user_gen_bottom_attention_normal@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_user_gen_bottom_attention_normal@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/yumi_center_user_gen_bottom_attention_normal.imageset/yumi_center_user_gen_bottom_attention_normal@2x.png b/YuMi/Assets.xcassets/jm/yumi_center_user_gen_bottom_attention_normal.imageset/yumi_center_user_gen_bottom_attention_normal@2x.png new file mode 100644 index 00000000..f812adb6 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_user_gen_bottom_attention_normal.imageset/yumi_center_user_gen_bottom_attention_normal@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_user_gen_bottom_attention_normal.imageset/yumi_center_user_gen_bottom_attention_normal@3x.png b/YuMi/Assets.xcassets/jm/yumi_center_user_gen_bottom_attention_normal.imageset/yumi_center_user_gen_bottom_attention_normal@3x.png new file mode 100644 index 00000000..a57cef64 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_user_gen_bottom_attention_normal.imageset/yumi_center_user_gen_bottom_attention_normal@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_user_gen_bottom_attention_select.imageset/Contents.json b/YuMi/Assets.xcassets/jm/yumi_center_user_gen_bottom_attention_select.imageset/Contents.json new file mode 100644 index 00000000..ae550664 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/yumi_center_user_gen_bottom_attention_select.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_user_gen_bottom_attention_select@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_user_gen_bottom_attention_select@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/yumi_center_user_gen_bottom_attention_select.imageset/yumi_center_user_gen_bottom_attention_select@2x.png b/YuMi/Assets.xcassets/jm/yumi_center_user_gen_bottom_attention_select.imageset/yumi_center_user_gen_bottom_attention_select@2x.png new file mode 100644 index 00000000..73caafa1 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_user_gen_bottom_attention_select.imageset/yumi_center_user_gen_bottom_attention_select@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_user_gen_bottom_attention_select.imageset/yumi_center_user_gen_bottom_attention_select@3x.png b/YuMi/Assets.xcassets/jm/yumi_center_user_gen_bottom_attention_select.imageset/yumi_center_user_gen_bottom_attention_select@3x.png new file mode 100644 index 00000000..edd11862 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_user_gen_bottom_attention_select.imageset/yumi_center_user_gen_bottom_attention_select@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_user_gen_bottom_chat.imageset/Contents.json b/YuMi/Assets.xcassets/jm/yumi_center_user_gen_bottom_chat.imageset/Contents.json new file mode 100644 index 00000000..2a5192e6 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/yumi_center_user_gen_bottom_chat.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_user_gen_bottom_chat@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_user_gen_bottom_chat@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/yumi_center_user_gen_bottom_chat.imageset/yumi_center_user_gen_bottom_chat@2x.png b/YuMi/Assets.xcassets/jm/yumi_center_user_gen_bottom_chat.imageset/yumi_center_user_gen_bottom_chat@2x.png new file mode 100644 index 00000000..d460c495 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_user_gen_bottom_chat.imageset/yumi_center_user_gen_bottom_chat@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_user_gen_bottom_chat.imageset/yumi_center_user_gen_bottom_chat@3x.png b/YuMi/Assets.xcassets/jm/yumi_center_user_gen_bottom_chat.imageset/yumi_center_user_gen_bottom_chat@3x.png new file mode 100644 index 00000000..d065b413 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_user_gen_bottom_chat.imageset/yumi_center_user_gen_bottom_chat@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_user_gen_edit.imageset/Contents.json b/YuMi/Assets.xcassets/jm/yumi_center_user_gen_edit.imageset/Contents.json new file mode 100644 index 00000000..49484a7c --- /dev/null +++ b/YuMi/Assets.xcassets/jm/yumi_center_user_gen_edit.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_user_gen_edit@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_user_gen_edit@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/yumi_center_user_gen_edit.imageset/yumi_center_user_gen_edit@2x.png b/YuMi/Assets.xcassets/jm/yumi_center_user_gen_edit.imageset/yumi_center_user_gen_edit@2x.png new file mode 100644 index 00000000..58769e83 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_user_gen_edit.imageset/yumi_center_user_gen_edit@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_user_gen_edit.imageset/yumi_center_user_gen_edit@3x.png b/YuMi/Assets.xcassets/jm/yumi_center_user_gen_edit.imageset/yumi_center_user_gen_edit@3x.png new file mode 100644 index 00000000..a7138e78 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_user_gen_edit.imageset/yumi_center_user_gen_edit@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_user_gen_edit_clear.imageset/Contents.json b/YuMi/Assets.xcassets/jm/yumi_center_user_gen_edit_clear.imageset/Contents.json new file mode 100644 index 00000000..bd5cbc56 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/yumi_center_user_gen_edit_clear.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_user_gen_edit_clear@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_user_gen_edit_clear@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/yumi_center_user_gen_edit_clear.imageset/yumi_center_user_gen_edit_clear@2x.png b/YuMi/Assets.xcassets/jm/yumi_center_user_gen_edit_clear.imageset/yumi_center_user_gen_edit_clear@2x.png new file mode 100644 index 00000000..b7bdbc83 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_user_gen_edit_clear.imageset/yumi_center_user_gen_edit_clear@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_user_gen_edit_clear.imageset/yumi_center_user_gen_edit_clear@3x.png b/YuMi/Assets.xcassets/jm/yumi_center_user_gen_edit_clear.imageset/yumi_center_user_gen_edit_clear@3x.png new file mode 100644 index 00000000..2edc9acd Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_user_gen_edit_clear.imageset/yumi_center_user_gen_edit_clear@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_user_gen_edit_photo_delete.imageset/Contents.json b/YuMi/Assets.xcassets/jm/yumi_center_user_gen_edit_photo_delete.imageset/Contents.json new file mode 100644 index 00000000..5a418ab2 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/yumi_center_user_gen_edit_photo_delete.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_user_gen_edit_photo_delete@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_user_gen_edit_photo_delete@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/yumi_center_user_gen_edit_photo_delete.imageset/yumi_center_user_gen_edit_photo_delete@2x.png b/YuMi/Assets.xcassets/jm/yumi_center_user_gen_edit_photo_delete.imageset/yumi_center_user_gen_edit_photo_delete@2x.png new file mode 100644 index 00000000..01144467 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_user_gen_edit_photo_delete.imageset/yumi_center_user_gen_edit_photo_delete@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_user_gen_edit_photo_delete.imageset/yumi_center_user_gen_edit_photo_delete@3x.png b/YuMi/Assets.xcassets/jm/yumi_center_user_gen_edit_photo_delete.imageset/yumi_center_user_gen_edit_photo_delete@3x.png new file mode 100644 index 00000000..06478617 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_user_gen_edit_photo_delete.imageset/yumi_center_user_gen_edit_photo_delete@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_user_gen_header_page_background.imageset/Contents.json b/YuMi/Assets.xcassets/jm/yumi_center_user_gen_header_page_background.imageset/Contents.json new file mode 100644 index 00000000..1c43fece --- /dev/null +++ b/YuMi/Assets.xcassets/jm/yumi_center_user_gen_header_page_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_user_gen_header_page_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_user_gen_header_page_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/yumi_center_user_gen_header_page_background.imageset/yumi_center_user_gen_header_page_background@2x.png b/YuMi/Assets.xcassets/jm/yumi_center_user_gen_header_page_background.imageset/yumi_center_user_gen_header_page_background@2x.png new file mode 100644 index 00000000..2d338f7c Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_user_gen_header_page_background.imageset/yumi_center_user_gen_header_page_background@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_user_gen_header_page_background.imageset/yumi_center_user_gen_header_page_background@3x.png b/YuMi/Assets.xcassets/jm/yumi_center_user_gen_header_page_background.imageset/yumi_center_user_gen_header_page_background@3x.png new file mode 100644 index 00000000..a67f9307 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_user_gen_header_page_background.imageset/yumi_center_user_gen_header_page_background@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_user_gen_skill_card_voice_pause.imageset/Contents.json b/YuMi/Assets.xcassets/jm/yumi_center_user_gen_skill_card_voice_pause.imageset/Contents.json new file mode 100644 index 00000000..f73cf1dd --- /dev/null +++ b/YuMi/Assets.xcassets/jm/yumi_center_user_gen_skill_card_voice_pause.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_user_gen_skill_card_voice_pause@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_user_gen_skill_card_voice_pause@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/yumi_center_user_gen_skill_card_voice_pause.imageset/yumi_center_user_gen_skill_card_voice_pause@2x.png b/YuMi/Assets.xcassets/jm/yumi_center_user_gen_skill_card_voice_pause.imageset/yumi_center_user_gen_skill_card_voice_pause@2x.png new file mode 100644 index 00000000..ee96035d Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_user_gen_skill_card_voice_pause.imageset/yumi_center_user_gen_skill_card_voice_pause@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_user_gen_skill_card_voice_pause.imageset/yumi_center_user_gen_skill_card_voice_pause@3x.png b/YuMi/Assets.xcassets/jm/yumi_center_user_gen_skill_card_voice_pause.imageset/yumi_center_user_gen_skill_card_voice_pause@3x.png new file mode 100644 index 00000000..567bf662 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_user_gen_skill_card_voice_pause.imageset/yumi_center_user_gen_skill_card_voice_pause@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_user_gen_skill_card_voice_play.imageset/Contents.json b/YuMi/Assets.xcassets/jm/yumi_center_user_gen_skill_card_voice_play.imageset/Contents.json new file mode 100644 index 00000000..1fdddd46 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/yumi_center_user_gen_skill_card_voice_play.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_user_gen_skill_card_voice_play@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_user_gen_skill_card_voice_play@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/yumi_center_user_gen_skill_card_voice_play.imageset/yumi_center_user_gen_skill_card_voice_play@2x.png b/YuMi/Assets.xcassets/jm/yumi_center_user_gen_skill_card_voice_play.imageset/yumi_center_user_gen_skill_card_voice_play@2x.png new file mode 100644 index 00000000..8ddcdbc5 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_user_gen_skill_card_voice_play.imageset/yumi_center_user_gen_skill_card_voice_play@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_user_gen_skill_card_voice_play.imageset/yumi_center_user_gen_skill_card_voice_play@3x.png b/YuMi/Assets.xcassets/jm/yumi_center_user_gen_skill_card_voice_play.imageset/yumi_center_user_gen_skill_card_voice_play@3x.png new file mode 100644 index 00000000..c6be196b Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_user_gen_skill_card_voice_play.imageset/yumi_center_user_gen_skill_card_voice_play@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_user_id_copy.imageset/Contents.json b/YuMi/Assets.xcassets/jm/yumi_center_user_id_copy.imageset/Contents.json new file mode 100644 index 00000000..7f7c2de2 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/yumi_center_user_id_copy.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_user_id_copy@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_user_id_copy@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/yumi_center_user_id_copy.imageset/yumi_center_user_id_copy@2x.png b/YuMi/Assets.xcassets/jm/yumi_center_user_id_copy.imageset/yumi_center_user_id_copy@2x.png new file mode 100644 index 00000000..4a53217e Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_user_id_copy.imageset/yumi_center_user_id_copy@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_user_id_copy.imageset/yumi_center_user_id_copy@3x.png b/YuMi/Assets.xcassets/jm/yumi_center_user_id_copy.imageset/yumi_center_user_id_copy@3x.png new file mode 100644 index 00000000..36840899 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_user_id_copy.imageset/yumi_center_user_id_copy@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_user_id_copy_white.imageset/Contents.json b/YuMi/Assets.xcassets/jm/yumi_center_user_id_copy_white.imageset/Contents.json new file mode 100644 index 00000000..dff9ab72 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/yumi_center_user_id_copy_white.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_user_id_copy_white@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_user_id_copy_white@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/yumi_center_user_id_copy_white.imageset/yumi_center_user_id_copy_white@2x.png b/YuMi/Assets.xcassets/jm/yumi_center_user_id_copy_white.imageset/yumi_center_user_id_copy_white@2x.png new file mode 100644 index 00000000..5e21fbbf Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_user_id_copy_white.imageset/yumi_center_user_id_copy_white@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_user_id_copy_white.imageset/yumi_center_user_id_copy_white@3x.png b/YuMi/Assets.xcassets/jm/yumi_center_user_id_copy_white.imageset/yumi_center_user_id_copy_white@3x.png new file mode 100644 index 00000000..0300cd66 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_user_id_copy_white.imageset/yumi_center_user_id_copy_white@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_usergen_header_shadow_background.imageset/Contents.json b/YuMi/Assets.xcassets/jm/yumi_center_usergen_header_shadow_background.imageset/Contents.json new file mode 100644 index 00000000..4e063006 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/yumi_center_usergen_header_shadow_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_usergen_header_shadow_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_usergen_header_shadow_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/yumi_center_usergen_header_shadow_background.imageset/yumi_center_usergen_header_shadow_background@2x.png b/YuMi/Assets.xcassets/jm/yumi_center_usergen_header_shadow_background.imageset/yumi_center_usergen_header_shadow_background@2x.png new file mode 100644 index 00000000..5169f8b3 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_usergen_header_shadow_background.imageset/yumi_center_usergen_header_shadow_background@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_usergen_header_shadow_background.imageset/yumi_center_usergen_header_shadow_background@3x.png b/YuMi/Assets.xcassets/jm/yumi_center_usergen_header_shadow_background.imageset/yumi_center_usergen_header_shadow_background@3x.png new file mode 100644 index 00000000..e7161c07 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_usergen_header_shadow_background.imageset/yumi_center_usergen_header_shadow_background@3x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_wallet.imageset/Contents.json b/YuMi/Assets.xcassets/jm/yumi_center_wallet.imageset/Contents.json new file mode 100644 index 00000000..b611fa46 --- /dev/null +++ b/YuMi/Assets.xcassets/jm/yumi_center_wallet.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_center_wallet@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_center_wallet@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/jm/yumi_center_wallet.imageset/yumi_center_wallet@2x.png b/YuMi/Assets.xcassets/jm/yumi_center_wallet.imageset/yumi_center_wallet@2x.png new file mode 100644 index 00000000..b7efa50f Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_wallet.imageset/yumi_center_wallet@2x.png differ diff --git a/YuMi/Assets.xcassets/jm/yumi_center_wallet.imageset/yumi_center_wallet@3x.png b/YuMi/Assets.xcassets/jm/yumi_center_wallet.imageset/yumi_center_wallet@3x.png new file mode 100644 index 00000000..7d834f98 Binary files /dev/null and b/YuMi/Assets.xcassets/jm/yumi_center_wallet.imageset/yumi_center_wallet@3x.png differ diff --git a/YuMi/Assets.xcassets/low/Contents.json b/YuMi/Assets.xcassets/low/Contents.json new file mode 100644 index 00000000..e2342777 --- /dev/null +++ b/YuMi/Assets.xcassets/low/Contents.json @@ -0,0 +1,7 @@ +{"info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/low/Greet/Contents.json b/YuMi/Assets.xcassets/low/Greet/Contents.json new file mode 100644 index 00000000..e2342777 --- /dev/null +++ b/YuMi/Assets.xcassets/low/Greet/Contents.json @@ -0,0 +1,7 @@ +{"info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/low/Greet/yumi_main_new_user_greet_pic.imageset/Contents.json b/YuMi/Assets.xcassets/low/Greet/yumi_main_new_user_greet_pic.imageset/Contents.json new file mode 100644 index 00000000..3225a8a9 --- /dev/null +++ b/YuMi/Assets.xcassets/low/Greet/yumi_main_new_user_greet_pic.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_main_new_user_greet_pic@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_main_new_user_greet_pic@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/low/Greet/yumi_main_new_user_greet_pic.imageset/yumi_main_new_user_greet_pic@2x.png b/YuMi/Assets.xcassets/low/Greet/yumi_main_new_user_greet_pic.imageset/yumi_main_new_user_greet_pic@2x.png new file mode 100644 index 00000000..00db5095 Binary files /dev/null and b/YuMi/Assets.xcassets/low/Greet/yumi_main_new_user_greet_pic.imageset/yumi_main_new_user_greet_pic@2x.png differ diff --git a/YuMi/Assets.xcassets/low/Greet/yumi_main_new_user_greet_pic.imageset/yumi_main_new_user_greet_pic@3x.png b/YuMi/Assets.xcassets/low/Greet/yumi_main_new_user_greet_pic.imageset/yumi_main_new_user_greet_pic@3x.png new file mode 100644 index 00000000..7d1e2632 Binary files /dev/null and b/YuMi/Assets.xcassets/low/Greet/yumi_main_new_user_greet_pic.imageset/yumi_main_new_user_greet_pic@3x.png differ diff --git a/YuMi/Assets.xcassets/low/Greet/yumi_main_new_user_greet_start.imageset/Contents.json b/YuMi/Assets.xcassets/low/Greet/yumi_main_new_user_greet_start.imageset/Contents.json new file mode 100644 index 00000000..db66bf8a --- /dev/null +++ b/YuMi/Assets.xcassets/low/Greet/yumi_main_new_user_greet_start.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_main_new_user_greet_start@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_main_new_user_greet_start@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/low/Greet/yumi_main_new_user_greet_start.imageset/yumi_main_new_user_greet_start@2x.png b/YuMi/Assets.xcassets/low/Greet/yumi_main_new_user_greet_start.imageset/yumi_main_new_user_greet_start@2x.png new file mode 100644 index 00000000..698128e2 Binary files /dev/null and b/YuMi/Assets.xcassets/low/Greet/yumi_main_new_user_greet_start.imageset/yumi_main_new_user_greet_start@2x.png differ diff --git a/YuMi/Assets.xcassets/low/Greet/yumi_main_new_user_greet_start.imageset/yumi_main_new_user_greet_start@3x.png b/YuMi/Assets.xcassets/low/Greet/yumi_main_new_user_greet_start.imageset/yumi_main_new_user_greet_start@3x.png new file mode 100644 index 00000000..9bd06005 Binary files /dev/null and b/YuMi/Assets.xcassets/low/Greet/yumi_main_new_user_greet_start.imageset/yumi_main_new_user_greet_start@3x.png differ diff --git a/YuMi/Assets.xcassets/low/Greet/yumi_main_new_user_greet_wave.imageset/Contents.json b/YuMi/Assets.xcassets/low/Greet/yumi_main_new_user_greet_wave.imageset/Contents.json new file mode 100644 index 00000000..530c04de --- /dev/null +++ b/YuMi/Assets.xcassets/low/Greet/yumi_main_new_user_greet_wave.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_main_new_user_greet_wave@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_main_new_user_greet_wave@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/low/Greet/yumi_main_new_user_greet_wave.imageset/yumi_main_new_user_greet_wave@2x.png b/YuMi/Assets.xcassets/low/Greet/yumi_main_new_user_greet_wave.imageset/yumi_main_new_user_greet_wave@2x.png new file mode 100644 index 00000000..08de6811 Binary files /dev/null and b/YuMi/Assets.xcassets/low/Greet/yumi_main_new_user_greet_wave.imageset/yumi_main_new_user_greet_wave@2x.png differ diff --git a/YuMi/Assets.xcassets/low/Greet/yumi_main_new_user_greet_wave.imageset/yumi_main_new_user_greet_wave@3x.png b/YuMi/Assets.xcassets/low/Greet/yumi_main_new_user_greet_wave.imageset/yumi_main_new_user_greet_wave@3x.png new file mode 100644 index 00000000..ec1e9735 Binary files /dev/null and b/YuMi/Assets.xcassets/low/Greet/yumi_main_new_user_greet_wave.imageset/yumi_main_new_user_greet_wave@3x.png differ diff --git a/YuMi/Assets.xcassets/low/Greet/yumi_scope_new_user_greet_background.imageset/Contents.json b/YuMi/Assets.xcassets/low/Greet/yumi_scope_new_user_greet_background.imageset/Contents.json new file mode 100644 index 00000000..255d780c --- /dev/null +++ b/YuMi/Assets.xcassets/low/Greet/yumi_scope_new_user_greet_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_new_user_greet_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_new_user_greet_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/low/Greet/yumi_scope_new_user_greet_background.imageset/yumi_scope_new_user_greet_background@2x.png b/YuMi/Assets.xcassets/low/Greet/yumi_scope_new_user_greet_background.imageset/yumi_scope_new_user_greet_background@2x.png new file mode 100644 index 00000000..5faa25f1 Binary files /dev/null and b/YuMi/Assets.xcassets/low/Greet/yumi_scope_new_user_greet_background.imageset/yumi_scope_new_user_greet_background@2x.png differ diff --git a/YuMi/Assets.xcassets/low/Greet/yumi_scope_new_user_greet_background.imageset/yumi_scope_new_user_greet_background@3x.png b/YuMi/Assets.xcassets/low/Greet/yumi_scope_new_user_greet_background.imageset/yumi_scope_new_user_greet_background@3x.png new file mode 100644 index 00000000..1697e1fc Binary files /dev/null and b/YuMi/Assets.xcassets/low/Greet/yumi_scope_new_user_greet_background.imageset/yumi_scope_new_user_greet_background@3x.png differ diff --git a/YuMi/Assets.xcassets/low/Greet/yumi_scope_new_user_greet_new.imageset/Contents.json b/YuMi/Assets.xcassets/low/Greet/yumi_scope_new_user_greet_new.imageset/Contents.json new file mode 100644 index 00000000..3980d1de --- /dev/null +++ b/YuMi/Assets.xcassets/low/Greet/yumi_scope_new_user_greet_new.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_new_user_greet_new@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_new_user_greet_new@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/low/Greet/yumi_scope_new_user_greet_new.imageset/yumi_scope_new_user_greet_new@2x.png b/YuMi/Assets.xcassets/low/Greet/yumi_scope_new_user_greet_new.imageset/yumi_scope_new_user_greet_new@2x.png new file mode 100644 index 00000000..7c60d9dc Binary files /dev/null and b/YuMi/Assets.xcassets/low/Greet/yumi_scope_new_user_greet_new.imageset/yumi_scope_new_user_greet_new@2x.png differ diff --git a/YuMi/Assets.xcassets/low/Greet/yumi_scope_new_user_greet_new.imageset/yumi_scope_new_user_greet_new@3x.png b/YuMi/Assets.xcassets/low/Greet/yumi_scope_new_user_greet_new.imageset/yumi_scope_new_user_greet_new@3x.png new file mode 100644 index 00000000..66278343 Binary files /dev/null and b/YuMi/Assets.xcassets/low/Greet/yumi_scope_new_user_greet_new.imageset/yumi_scope_new_user_greet_new@3x.png differ diff --git a/YuMi/Assets.xcassets/low/Live/Contents.json b/YuMi/Assets.xcassets/low/Live/Contents.json new file mode 100644 index 00000000..e2342777 --- /dev/null +++ b/YuMi/Assets.xcassets/low/Live/Contents.json @@ -0,0 +1,7 @@ +{"info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/low/Live/yumi_main_spot_hot_background.imageset/Contents.json b/YuMi/Assets.xcassets/low/Live/yumi_main_spot_hot_background.imageset/Contents.json new file mode 100644 index 00000000..3707a232 --- /dev/null +++ b/YuMi/Assets.xcassets/low/Live/yumi_main_spot_hot_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_main_spot_hot_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_main_spot_hot_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/low/Live/yumi_main_spot_hot_background.imageset/yumi_main_spot_hot_background@2x.png b/YuMi/Assets.xcassets/low/Live/yumi_main_spot_hot_background.imageset/yumi_main_spot_hot_background@2x.png new file mode 100644 index 00000000..4c015d7b Binary files /dev/null and b/YuMi/Assets.xcassets/low/Live/yumi_main_spot_hot_background.imageset/yumi_main_spot_hot_background@2x.png differ diff --git a/YuMi/Assets.xcassets/low/Live/yumi_main_spot_hot_background.imageset/yumi_main_spot_hot_background@3x.png b/YuMi/Assets.xcassets/low/Live/yumi_main_spot_hot_background.imageset/yumi_main_spot_hot_background@3x.png new file mode 100644 index 00000000..4e9db5be Binary files /dev/null and b/YuMi/Assets.xcassets/low/Live/yumi_main_spot_hot_background.imageset/yumi_main_spot_hot_background@3x.png differ diff --git a/YuMi/Assets.xcassets/low/Live/yumi_main_spot_recommend_tag.imageset/Contents.json b/YuMi/Assets.xcassets/low/Live/yumi_main_spot_recommend_tag.imageset/Contents.json new file mode 100644 index 00000000..db583714 --- /dev/null +++ b/YuMi/Assets.xcassets/low/Live/yumi_main_spot_recommend_tag.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_main_spot_recommend_tag@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_main_spot_recommend_tag@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/low/Live/yumi_main_spot_recommend_tag.imageset/yumi_main_spot_recommend_tag@2x.png b/YuMi/Assets.xcassets/low/Live/yumi_main_spot_recommend_tag.imageset/yumi_main_spot_recommend_tag@2x.png new file mode 100644 index 00000000..59ac8883 Binary files /dev/null and b/YuMi/Assets.xcassets/low/Live/yumi_main_spot_recommend_tag.imageset/yumi_main_spot_recommend_tag@2x.png differ diff --git a/YuMi/Assets.xcassets/low/Live/yumi_main_spot_recommend_tag.imageset/yumi_main_spot_recommend_tag@3x.png b/YuMi/Assets.xcassets/low/Live/yumi_main_spot_recommend_tag.imageset/yumi_main_spot_recommend_tag@3x.png new file mode 100644 index 00000000..1c1e183e Binary files /dev/null and b/YuMi/Assets.xcassets/low/Live/yumi_main_spot_recommend_tag.imageset/yumi_main_spot_recommend_tag@3x.png differ diff --git a/YuMi/Assets.xcassets/low/Live/yumi_main_spot_record_background.imageset/Contents.json b/YuMi/Assets.xcassets/low/Live/yumi_main_spot_record_background.imageset/Contents.json new file mode 100644 index 00000000..7e807d2b --- /dev/null +++ b/YuMi/Assets.xcassets/low/Live/yumi_main_spot_record_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_main_spot_record_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_main_spot_record_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/low/Live/yumi_main_spot_record_background.imageset/yumi_main_spot_record_background@2x.png b/YuMi/Assets.xcassets/low/Live/yumi_main_spot_record_background.imageset/yumi_main_spot_record_background@2x.png new file mode 100644 index 00000000..7d70da68 Binary files /dev/null and b/YuMi/Assets.xcassets/low/Live/yumi_main_spot_record_background.imageset/yumi_main_spot_record_background@2x.png differ diff --git a/YuMi/Assets.xcassets/low/Live/yumi_main_spot_record_background.imageset/yumi_main_spot_record_background@3x.png b/YuMi/Assets.xcassets/low/Live/yumi_main_spot_record_background.imageset/yumi_main_spot_record_background@3x.png new file mode 100644 index 00000000..be8cf271 Binary files /dev/null and b/YuMi/Assets.xcassets/low/Live/yumi_main_spot_record_background.imageset/yumi_main_spot_record_background@3x.png differ diff --git a/YuMi/Assets.xcassets/low/Live/yumi_main_spot_record_pic.imageset/Contents.json b/YuMi/Assets.xcassets/low/Live/yumi_main_spot_record_pic.imageset/Contents.json new file mode 100644 index 00000000..7bcbbbd4 --- /dev/null +++ b/YuMi/Assets.xcassets/low/Live/yumi_main_spot_record_pic.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_main_spot_record_pic@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_main_spot_record_pic@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/low/Live/yumi_main_spot_record_pic.imageset/yumi_main_spot_record_pic@2x.png b/YuMi/Assets.xcassets/low/Live/yumi_main_spot_record_pic.imageset/yumi_main_spot_record_pic@2x.png new file mode 100644 index 00000000..bfe6b023 Binary files /dev/null and b/YuMi/Assets.xcassets/low/Live/yumi_main_spot_record_pic.imageset/yumi_main_spot_record_pic@2x.png differ diff --git a/YuMi/Assets.xcassets/low/Live/yumi_main_spot_record_pic.imageset/yumi_main_spot_record_pic@3x.png b/YuMi/Assets.xcassets/low/Live/yumi_main_spot_record_pic.imageset/yumi_main_spot_record_pic@3x.png new file mode 100644 index 00000000..c66e2adb Binary files /dev/null and b/YuMi/Assets.xcassets/low/Live/yumi_main_spot_record_pic.imageset/yumi_main_spot_record_pic@3x.png differ diff --git a/YuMi/Assets.xcassets/low/Note/Contents.json b/YuMi/Assets.xcassets/low/Note/Contents.json new file mode 100644 index 00000000..e2342777 --- /dev/null +++ b/YuMi/Assets.xcassets/low/Note/Contents.json @@ -0,0 +1,7 @@ +{"info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/low/Note/yumi_main_note_00000.imageset/Contents.json b/YuMi/Assets.xcassets/low/Note/yumi_main_note_00000.imageset/Contents.json new file mode 100644 index 00000000..ac515fe2 --- /dev/null +++ b/YuMi/Assets.xcassets/low/Note/yumi_main_note_00000.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_main_note_00000@2x.png", "idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/low/Note/yumi_main_note_00000.imageset/yumi_main_note_00000@2x.png b/YuMi/Assets.xcassets/low/Note/yumi_main_note_00000.imageset/yumi_main_note_00000@2x.png new file mode 100644 index 00000000..d191a800 Binary files /dev/null and b/YuMi/Assets.xcassets/low/Note/yumi_main_note_00000.imageset/yumi_main_note_00000@2x.png differ diff --git a/YuMi/Assets.xcassets/low/Note/yumi_main_note_00001.imageset/Contents.json b/YuMi/Assets.xcassets/low/Note/yumi_main_note_00001.imageset/Contents.json new file mode 100644 index 00000000..0168db96 --- /dev/null +++ b/YuMi/Assets.xcassets/low/Note/yumi_main_note_00001.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_main_note_00001@2x.png", "idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/low/Note/yumi_main_note_00001.imageset/yumi_main_note_00001@2x.png b/YuMi/Assets.xcassets/low/Note/yumi_main_note_00001.imageset/yumi_main_note_00001@2x.png new file mode 100644 index 00000000..304c6eb7 Binary files /dev/null and b/YuMi/Assets.xcassets/low/Note/yumi_main_note_00001.imageset/yumi_main_note_00001@2x.png differ diff --git a/YuMi/Assets.xcassets/low/Note/yumi_main_note_00002.imageset/Contents.json b/YuMi/Assets.xcassets/low/Note/yumi_main_note_00002.imageset/Contents.json new file mode 100644 index 00000000..4de6bac2 --- /dev/null +++ b/YuMi/Assets.xcassets/low/Note/yumi_main_note_00002.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_main_note_00002@2x.png", "idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/low/Note/yumi_main_note_00002.imageset/yumi_main_note_00002@2x.png b/YuMi/Assets.xcassets/low/Note/yumi_main_note_00002.imageset/yumi_main_note_00002@2x.png new file mode 100644 index 00000000..ee156c11 Binary files /dev/null and b/YuMi/Assets.xcassets/low/Note/yumi_main_note_00002.imageset/yumi_main_note_00002@2x.png differ diff --git a/YuMi/Assets.xcassets/low/Note/yumi_main_note_00003.imageset/Contents.json b/YuMi/Assets.xcassets/low/Note/yumi_main_note_00003.imageset/Contents.json new file mode 100644 index 00000000..e1f958d0 --- /dev/null +++ b/YuMi/Assets.xcassets/low/Note/yumi_main_note_00003.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_main_note_00003@2x.png", "idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/low/Note/yumi_main_note_00003.imageset/yumi_main_note_00003@2x.png b/YuMi/Assets.xcassets/low/Note/yumi_main_note_00003.imageset/yumi_main_note_00003@2x.png new file mode 100644 index 00000000..b72ebcce Binary files /dev/null and b/YuMi/Assets.xcassets/low/Note/yumi_main_note_00003.imageset/yumi_main_note_00003@2x.png differ diff --git a/YuMi/Assets.xcassets/low/Note/yumi_main_note_00004.imageset/Contents.json b/YuMi/Assets.xcassets/low/Note/yumi_main_note_00004.imageset/Contents.json new file mode 100644 index 00000000..76a55b12 --- /dev/null +++ b/YuMi/Assets.xcassets/low/Note/yumi_main_note_00004.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_main_note_00004@2x.png", "idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/low/Note/yumi_main_note_00004.imageset/yumi_main_note_00004@2x.png b/YuMi/Assets.xcassets/low/Note/yumi_main_note_00004.imageset/yumi_main_note_00004@2x.png new file mode 100644 index 00000000..aa3a4c69 Binary files /dev/null and b/YuMi/Assets.xcassets/low/Note/yumi_main_note_00004.imageset/yumi_main_note_00004@2x.png differ diff --git a/YuMi/Assets.xcassets/low/Note/yumi_main_note_00005.imageset/Contents.json b/YuMi/Assets.xcassets/low/Note/yumi_main_note_00005.imageset/Contents.json new file mode 100644 index 00000000..b6785e12 --- /dev/null +++ b/YuMi/Assets.xcassets/low/Note/yumi_main_note_00005.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_main_note_00005@2x.png", "idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/low/Note/yumi_main_note_00005.imageset/yumi_main_note_00005@2x.png b/YuMi/Assets.xcassets/low/Note/yumi_main_note_00005.imageset/yumi_main_note_00005@2x.png new file mode 100644 index 00000000..84193462 Binary files /dev/null and b/YuMi/Assets.xcassets/low/Note/yumi_main_note_00005.imageset/yumi_main_note_00005@2x.png differ diff --git a/YuMi/Assets.xcassets/low/Note/yumi_main_note_00006.imageset/Contents.json b/YuMi/Assets.xcassets/low/Note/yumi_main_note_00006.imageset/Contents.json new file mode 100644 index 00000000..a7d1f415 --- /dev/null +++ b/YuMi/Assets.xcassets/low/Note/yumi_main_note_00006.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_main_note_00006@2x.png", "idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/low/Note/yumi_main_note_00006.imageset/yumi_main_note_00006@2x.png b/YuMi/Assets.xcassets/low/Note/yumi_main_note_00006.imageset/yumi_main_note_00006@2x.png new file mode 100644 index 00000000..5d5936d3 Binary files /dev/null and b/YuMi/Assets.xcassets/low/Note/yumi_main_note_00006.imageset/yumi_main_note_00006@2x.png differ diff --git a/YuMi/Assets.xcassets/low/Note/yumi_main_note_00007.imageset/Contents.json b/YuMi/Assets.xcassets/low/Note/yumi_main_note_00007.imageset/Contents.json new file mode 100644 index 00000000..d9d66232 --- /dev/null +++ b/YuMi/Assets.xcassets/low/Note/yumi_main_note_00007.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_main_note_00007@2x.png", "idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/low/Note/yumi_main_note_00007.imageset/yumi_main_note_00007@2x.png b/YuMi/Assets.xcassets/low/Note/yumi_main_note_00007.imageset/yumi_main_note_00007@2x.png new file mode 100644 index 00000000..7926efda Binary files /dev/null and b/YuMi/Assets.xcassets/low/Note/yumi_main_note_00007.imageset/yumi_main_note_00007@2x.png differ diff --git a/YuMi/Assets.xcassets/low/Note/yumi_main_note_00008.imageset/Contents.json b/YuMi/Assets.xcassets/low/Note/yumi_main_note_00008.imageset/Contents.json new file mode 100644 index 00000000..1c619b77 --- /dev/null +++ b/YuMi/Assets.xcassets/low/Note/yumi_main_note_00008.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_main_note_00008@2x.png", "idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/low/Note/yumi_main_note_00008.imageset/yumi_main_note_00008@2x.png b/YuMi/Assets.xcassets/low/Note/yumi_main_note_00008.imageset/yumi_main_note_00008@2x.png new file mode 100644 index 00000000..fabd4d3a Binary files /dev/null and b/YuMi/Assets.xcassets/low/Note/yumi_main_note_00008.imageset/yumi_main_note_00008@2x.png differ diff --git a/YuMi/Assets.xcassets/low/Note/yumi_main_note_00009.imageset/Contents.json b/YuMi/Assets.xcassets/low/Note/yumi_main_note_00009.imageset/Contents.json new file mode 100644 index 00000000..ac05a992 --- /dev/null +++ b/YuMi/Assets.xcassets/low/Note/yumi_main_note_00009.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_main_note_00009@2x.png", "idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/low/Note/yumi_main_note_00009.imageset/yumi_main_note_00009@2x.png b/YuMi/Assets.xcassets/low/Note/yumi_main_note_00009.imageset/yumi_main_note_00009@2x.png new file mode 100644 index 00000000..1f40f2e0 Binary files /dev/null and b/YuMi/Assets.xcassets/low/Note/yumi_main_note_00009.imageset/yumi_main_note_00009@2x.png differ diff --git a/YuMi/Assets.xcassets/low/navigation/Contents.json b/YuMi/Assets.xcassets/low/navigation/Contents.json new file mode 100644 index 00000000..e2342777 --- /dev/null +++ b/YuMi/Assets.xcassets/low/navigation/Contents.json @@ -0,0 +1,7 @@ +{"info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/low/navigation/yumi_main_title_indicator.imageset/Contents.json b/YuMi/Assets.xcassets/low/navigation/yumi_main_title_indicator.imageset/Contents.json new file mode 100644 index 00000000..1130dce8 --- /dev/null +++ b/YuMi/Assets.xcassets/low/navigation/yumi_main_title_indicator.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_main_title_indicator@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_main_title_indicator@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/low/navigation/yumi_main_title_indicator.imageset/yumi_main_title_indicator@2x.png b/YuMi/Assets.xcassets/low/navigation/yumi_main_title_indicator.imageset/yumi_main_title_indicator@2x.png new file mode 100644 index 00000000..79e24a10 Binary files /dev/null and b/YuMi/Assets.xcassets/low/navigation/yumi_main_title_indicator.imageset/yumi_main_title_indicator@2x.png differ diff --git a/YuMi/Assets.xcassets/low/navigation/yumi_main_title_indicator.imageset/yumi_main_title_indicator@3x.png b/YuMi/Assets.xcassets/low/navigation/yumi_main_title_indicator.imageset/yumi_main_title_indicator@3x.png new file mode 100644 index 00000000..d026ab7a Binary files /dev/null and b/YuMi/Assets.xcassets/low/navigation/yumi_main_title_indicator.imageset/yumi_main_title_indicator@3x.png differ diff --git a/YuMi/Assets.xcassets/low/navigation/yumi_main_title_open_room.imageset/Contents.json b/YuMi/Assets.xcassets/low/navigation/yumi_main_title_open_room.imageset/Contents.json new file mode 100644 index 00000000..8d28aa56 --- /dev/null +++ b/YuMi/Assets.xcassets/low/navigation/yumi_main_title_open_room.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_main_title_open_room@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_main_title_open_room@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/low/navigation/yumi_main_title_open_room.imageset/yumi_main_title_open_room@2x.png b/YuMi/Assets.xcassets/low/navigation/yumi_main_title_open_room.imageset/yumi_main_title_open_room@2x.png new file mode 100644 index 00000000..8b8f3977 Binary files /dev/null and b/YuMi/Assets.xcassets/low/navigation/yumi_main_title_open_room.imageset/yumi_main_title_open_room@2x.png differ diff --git a/YuMi/Assets.xcassets/low/navigation/yumi_main_title_open_room.imageset/yumi_main_title_open_room@3x.png b/YuMi/Assets.xcassets/low/navigation/yumi_main_title_open_room.imageset/yumi_main_title_open_room@3x.png new file mode 100644 index 00000000..82153d04 Binary files /dev/null and b/YuMi/Assets.xcassets/low/navigation/yumi_main_title_open_room.imageset/yumi_main_title_open_room@3x.png differ diff --git a/YuMi/Assets.xcassets/low/navigation/yumi_main_title_rank.imageset/Contents.json b/YuMi/Assets.xcassets/low/navigation/yumi_main_title_rank.imageset/Contents.json new file mode 100644 index 00000000..5302b0e1 --- /dev/null +++ b/YuMi/Assets.xcassets/low/navigation/yumi_main_title_rank.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_main_title_rank@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_main_title_rank@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/low/navigation/yumi_main_title_rank.imageset/yumi_main_title_rank@2x.png b/YuMi/Assets.xcassets/low/navigation/yumi_main_title_rank.imageset/yumi_main_title_rank@2x.png new file mode 100644 index 00000000..dcb5f57e Binary files /dev/null and b/YuMi/Assets.xcassets/low/navigation/yumi_main_title_rank.imageset/yumi_main_title_rank@2x.png differ diff --git a/YuMi/Assets.xcassets/low/navigation/yumi_main_title_rank.imageset/yumi_main_title_rank@3x.png b/YuMi/Assets.xcassets/low/navigation/yumi_main_title_rank.imageset/yumi_main_title_rank@3x.png new file mode 100644 index 00000000..32f03fa2 Binary files /dev/null and b/YuMi/Assets.xcassets/low/navigation/yumi_main_title_rank.imageset/yumi_main_title_rank@3x.png differ diff --git a/YuMi/Assets.xcassets/low/navigation/yumi_main_title_search.imageset/Contents.json b/YuMi/Assets.xcassets/low/navigation/yumi_main_title_search.imageset/Contents.json new file mode 100644 index 00000000..a4945062 --- /dev/null +++ b/YuMi/Assets.xcassets/low/navigation/yumi_main_title_search.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_main_title_search@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_main_title_search@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/low/navigation/yumi_main_title_search.imageset/yumi_main_title_search@2x.png b/YuMi/Assets.xcassets/low/navigation/yumi_main_title_search.imageset/yumi_main_title_search@2x.png new file mode 100644 index 00000000..8969e23f Binary files /dev/null and b/YuMi/Assets.xcassets/low/navigation/yumi_main_title_search.imageset/yumi_main_title_search@2x.png differ diff --git a/YuMi/Assets.xcassets/low/navigation/yumi_main_title_search.imageset/yumi_main_title_search@3x.png b/YuMi/Assets.xcassets/low/navigation/yumi_main_title_search.imageset/yumi_main_title_search@3x.png new file mode 100644 index 00000000..c0ff4c02 Binary files /dev/null and b/YuMi/Assets.xcassets/low/navigation/yumi_main_title_search.imageset/yumi_main_title_search@3x.png differ diff --git a/YuMi/Assets.xcassets/low/newhome/Contents.json b/YuMi/Assets.xcassets/low/newhome/Contents.json new file mode 100644 index 00000000..e2342777 --- /dev/null +++ b/YuMi/Assets.xcassets/low/newhome/Contents.json @@ -0,0 +1,7 @@ +{"info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/low/newhome/yumi_main_party_number.imageset/Contents.json b/YuMi/Assets.xcassets/low/newhome/yumi_main_party_number.imageset/Contents.json new file mode 100644 index 00000000..17a52698 --- /dev/null +++ b/YuMi/Assets.xcassets/low/newhome/yumi_main_party_number.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_main_party_number@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_main_party_number@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/low/newhome/yumi_main_party_number.imageset/yumi_main_party_number@2x.png b/YuMi/Assets.xcassets/low/newhome/yumi_main_party_number.imageset/yumi_main_party_number@2x.png new file mode 100644 index 00000000..f37f2dcc Binary files /dev/null and b/YuMi/Assets.xcassets/low/newhome/yumi_main_party_number.imageset/yumi_main_party_number@2x.png differ diff --git a/YuMi/Assets.xcassets/low/newhome/yumi_main_party_number.imageset/yumi_main_party_number@3x.png b/YuMi/Assets.xcassets/low/newhome/yumi_main_party_number.imageset/yumi_main_party_number@3x.png new file mode 100644 index 00000000..103c88d0 Binary files /dev/null and b/YuMi/Assets.xcassets/low/newhome/yumi_main_party_number.imageset/yumi_main_party_number@3x.png differ diff --git a/YuMi/Assets.xcassets/low/newhome/yumi_main_play_female_border.imageset/Contents.json b/YuMi/Assets.xcassets/low/newhome/yumi_main_play_female_border.imageset/Contents.json new file mode 100644 index 00000000..070e5e4c --- /dev/null +++ b/YuMi/Assets.xcassets/low/newhome/yumi_main_play_female_border.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_main_play_female_border@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_main_play_female_border@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/low/newhome/yumi_main_play_female_border.imageset/yumi_main_play_female_border@2x.png b/YuMi/Assets.xcassets/low/newhome/yumi_main_play_female_border.imageset/yumi_main_play_female_border@2x.png new file mode 100644 index 00000000..56490888 Binary files /dev/null and b/YuMi/Assets.xcassets/low/newhome/yumi_main_play_female_border.imageset/yumi_main_play_female_border@2x.png differ diff --git a/YuMi/Assets.xcassets/low/newhome/yumi_main_play_female_border.imageset/yumi_main_play_female_border@3x.png b/YuMi/Assets.xcassets/low/newhome/yumi_main_play_female_border.imageset/yumi_main_play_female_border@3x.png new file mode 100644 index 00000000..289c14b1 Binary files /dev/null and b/YuMi/Assets.xcassets/low/newhome/yumi_main_play_female_border.imageset/yumi_main_play_female_border@3x.png differ diff --git a/YuMi/Assets.xcassets/low/newhome/yumi_main_play_male_border.imageset/Contents.json b/YuMi/Assets.xcassets/low/newhome/yumi_main_play_male_border.imageset/Contents.json new file mode 100644 index 00000000..1eee4538 --- /dev/null +++ b/YuMi/Assets.xcassets/low/newhome/yumi_main_play_male_border.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_main_play_male_border@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_main_play_male_border@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/low/newhome/yumi_main_play_male_border.imageset/yumi_main_play_male_border@2x.png b/YuMi/Assets.xcassets/low/newhome/yumi_main_play_male_border.imageset/yumi_main_play_male_border@2x.png new file mode 100644 index 00000000..6c91e4a0 Binary files /dev/null and b/YuMi/Assets.xcassets/low/newhome/yumi_main_play_male_border.imageset/yumi_main_play_male_border@2x.png differ diff --git a/YuMi/Assets.xcassets/low/newhome/yumi_main_play_male_border.imageset/yumi_main_play_male_border@3x.png b/YuMi/Assets.xcassets/low/newhome/yumi_main_play_male_border.imageset/yumi_main_play_male_border@3x.png new file mode 100644 index 00000000..e48c1297 Binary files /dev/null and b/YuMi/Assets.xcassets/low/newhome/yumi_main_play_male_border.imageset/yumi_main_play_male_border@3x.png differ diff --git a/YuMi/Assets.xcassets/low/newhome/yumi_main_slider_background.imageset/Contents.json b/YuMi/Assets.xcassets/low/newhome/yumi_main_slider_background.imageset/Contents.json new file mode 100644 index 00000000..43afa69f --- /dev/null +++ b/YuMi/Assets.xcassets/low/newhome/yumi_main_slider_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_main_slider_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_main_slider_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/low/newhome/yumi_main_slider_background.imageset/yumi_main_slider_background@2x.png b/YuMi/Assets.xcassets/low/newhome/yumi_main_slider_background.imageset/yumi_main_slider_background@2x.png new file mode 100644 index 00000000..b3cb1ca1 Binary files /dev/null and b/YuMi/Assets.xcassets/low/newhome/yumi_main_slider_background.imageset/yumi_main_slider_background@2x.png differ diff --git a/YuMi/Assets.xcassets/low/newhome/yumi_main_slider_background.imageset/yumi_main_slider_background@3x.png b/YuMi/Assets.xcassets/low/newhome/yumi_main_slider_background.imageset/yumi_main_slider_background@3x.png new file mode 100644 index 00000000..0012027a Binary files /dev/null and b/YuMi/Assets.xcassets/low/newhome/yumi_main_slider_background.imageset/yumi_main_slider_background@3x.png differ diff --git a/YuMi/Assets.xcassets/low/newhome/yumi_main_top_background.imageset/Contents.json b/YuMi/Assets.xcassets/low/newhome/yumi_main_top_background.imageset/Contents.json new file mode 100644 index 00000000..31e5ac9d --- /dev/null +++ b/YuMi/Assets.xcassets/low/newhome/yumi_main_top_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_main_top_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_main_top_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/low/newhome/yumi_main_top_background.imageset/yumi_main_top_background@2x.png b/YuMi/Assets.xcassets/low/newhome/yumi_main_top_background.imageset/yumi_main_top_background@2x.png new file mode 100644 index 00000000..af64611c Binary files /dev/null and b/YuMi/Assets.xcassets/low/newhome/yumi_main_top_background.imageset/yumi_main_top_background@2x.png differ diff --git a/YuMi/Assets.xcassets/low/newhome/yumi_main_top_background.imageset/yumi_main_top_background@3x.png b/YuMi/Assets.xcassets/low/newhome/yumi_main_top_background.imageset/yumi_main_top_background@3x.png new file mode 100644 index 00000000..de28c305 Binary files /dev/null and b/YuMi/Assets.xcassets/low/newhome/yumi_main_top_background.imageset/yumi_main_top_background@3x.png differ diff --git a/YuMi/Assets.xcassets/low/yumi_main_background.imageset/Contents.json b/YuMi/Assets.xcassets/low/yumi_main_background.imageset/Contents.json new file mode 100644 index 00000000..1128d56b --- /dev/null +++ b/YuMi/Assets.xcassets/low/yumi_main_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_main_background@2x.png", "idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/low/yumi_main_background.imageset/yumi_main_background@2x.png b/YuMi/Assets.xcassets/low/yumi_main_background.imageset/yumi_main_background@2x.png new file mode 100644 index 00000000..3c2c331e Binary files /dev/null and b/YuMi/Assets.xcassets/low/yumi_main_background.imageset/yumi_main_background@2x.png differ diff --git a/YuMi/Assets.xcassets/low/yumi_main_hot_section_logo.imageset/Contents.json b/YuMi/Assets.xcassets/low/yumi_main_hot_section_logo.imageset/Contents.json new file mode 100644 index 00000000..ecf6eba3 --- /dev/null +++ b/YuMi/Assets.xcassets/low/yumi_main_hot_section_logo.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_main_hot_section_logo@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_main_hot_section_logo@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/low/yumi_main_hot_section_logo.imageset/yumi_main_hot_section_logo@2x.png b/YuMi/Assets.xcassets/low/yumi_main_hot_section_logo.imageset/yumi_main_hot_section_logo@2x.png new file mode 100644 index 00000000..ab3f7827 Binary files /dev/null and b/YuMi/Assets.xcassets/low/yumi_main_hot_section_logo.imageset/yumi_main_hot_section_logo@2x.png differ diff --git a/YuMi/Assets.xcassets/low/yumi_main_hot_section_logo.imageset/yumi_main_hot_section_logo@3x.png b/YuMi/Assets.xcassets/low/yumi_main_hot_section_logo.imageset/yumi_main_hot_section_logo@3x.png new file mode 100644 index 00000000..e5c6e040 Binary files /dev/null and b/YuMi/Assets.xcassets/low/yumi_main_hot_section_logo.imageset/yumi_main_hot_section_logo@3x.png differ diff --git a/YuMi/Assets.xcassets/low/yumi_main_like_across_pk_background.imageset/Contents.json b/YuMi/Assets.xcassets/low/yumi_main_like_across_pk_background.imageset/Contents.json new file mode 100644 index 00000000..8a215c06 --- /dev/null +++ b/YuMi/Assets.xcassets/low/yumi_main_like_across_pk_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_main_like_across_pk_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_main_like_across_pk_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/low/yumi_main_like_across_pk_background.imageset/yumi_main_like_across_pk_background@2x.png b/YuMi/Assets.xcassets/low/yumi_main_like_across_pk_background.imageset/yumi_main_like_across_pk_background@2x.png new file mode 100644 index 00000000..4c59c6f6 Binary files /dev/null and b/YuMi/Assets.xcassets/low/yumi_main_like_across_pk_background.imageset/yumi_main_like_across_pk_background@2x.png differ diff --git a/YuMi/Assets.xcassets/low/yumi_main_like_across_pk_background.imageset/yumi_main_like_across_pk_background@3x.png b/YuMi/Assets.xcassets/low/yumi_main_like_across_pk_background.imageset/yumi_main_like_across_pk_background@3x.png new file mode 100644 index 00000000..6329ba02 Binary files /dev/null and b/YuMi/Assets.xcassets/low/yumi_main_like_across_pk_background.imageset/yumi_main_like_across_pk_background@3x.png differ diff --git a/YuMi/Assets.xcassets/low/yumi_main_name.imageset/Contents.json b/YuMi/Assets.xcassets/low/yumi_main_name.imageset/Contents.json new file mode 100644 index 00000000..8c102d05 --- /dev/null +++ b/YuMi/Assets.xcassets/low/yumi_main_name.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_main_name@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_main_name@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/low/yumi_main_name.imageset/yumi_main_name@2x.png b/YuMi/Assets.xcassets/low/yumi_main_name.imageset/yumi_main_name@2x.png new file mode 100644 index 00000000..cf8af186 Binary files /dev/null and b/YuMi/Assets.xcassets/low/yumi_main_name.imageset/yumi_main_name@2x.png differ diff --git a/YuMi/Assets.xcassets/low/yumi_main_name.imageset/yumi_main_name@3x.png b/YuMi/Assets.xcassets/low/yumi_main_name.imageset/yumi_main_name@3x.png new file mode 100644 index 00000000..edc8c038 Binary files /dev/null and b/YuMi/Assets.xcassets/low/yumi_main_name.imageset/yumi_main_name@3x.png differ diff --git a/YuMi/Assets.xcassets/low/yumi_main_party_little_game_cover.imageset/Contents.json b/YuMi/Assets.xcassets/low/yumi_main_party_little_game_cover.imageset/Contents.json new file mode 100644 index 00000000..cf8d7141 --- /dev/null +++ b/YuMi/Assets.xcassets/low/yumi_main_party_little_game_cover.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_main_party_little_game_cover@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_main_party_little_game_cover@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/low/yumi_main_party_little_game_cover.imageset/yumi_main_party_little_game_cover@2x.png b/YuMi/Assets.xcassets/low/yumi_main_party_little_game_cover.imageset/yumi_main_party_little_game_cover@2x.png new file mode 100644 index 00000000..77369de0 Binary files /dev/null and b/YuMi/Assets.xcassets/low/yumi_main_party_little_game_cover.imageset/yumi_main_party_little_game_cover@2x.png differ diff --git a/YuMi/Assets.xcassets/low/yumi_main_party_little_game_cover.imageset/yumi_main_party_little_game_cover@3x.png b/YuMi/Assets.xcassets/low/yumi_main_party_little_game_cover.imageset/yumi_main_party_little_game_cover@3x.png new file mode 100644 index 00000000..997bf96e Binary files /dev/null and b/YuMi/Assets.xcassets/low/yumi_main_party_little_game_cover.imageset/yumi_main_party_little_game_cover@3x.png differ diff --git a/YuMi/Assets.xcassets/low/yumi_main_party_little_game_enter.imageset/Contents.json b/YuMi/Assets.xcassets/low/yumi_main_party_little_game_enter.imageset/Contents.json new file mode 100644 index 00000000..5d066693 --- /dev/null +++ b/YuMi/Assets.xcassets/low/yumi_main_party_little_game_enter.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_main_party_little_game_enter@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_main_party_little_game_enter@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/low/yumi_main_party_little_game_enter.imageset/yumi_main_party_little_game_enter@2x.png b/YuMi/Assets.xcassets/low/yumi_main_party_little_game_enter.imageset/yumi_main_party_little_game_enter@2x.png new file mode 100644 index 00000000..9eb1d139 Binary files /dev/null and b/YuMi/Assets.xcassets/low/yumi_main_party_little_game_enter.imageset/yumi_main_party_little_game_enter@2x.png differ diff --git a/YuMi/Assets.xcassets/low/yumi_main_party_little_game_enter.imageset/yumi_main_party_little_game_enter@3x.png b/YuMi/Assets.xcassets/low/yumi_main_party_little_game_enter.imageset/yumi_main_party_little_game_enter@3x.png new file mode 100644 index 00000000..41fba4df Binary files /dev/null and b/YuMi/Assets.xcassets/low/yumi_main_party_little_game_enter.imageset/yumi_main_party_little_game_enter@3x.png differ diff --git a/YuMi/Assets.xcassets/low/yumi_main_party_little_game_match.imageset/Contents.json b/YuMi/Assets.xcassets/low/yumi_main_party_little_game_match.imageset/Contents.json new file mode 100644 index 00000000..51252945 --- /dev/null +++ b/YuMi/Assets.xcassets/low/yumi_main_party_little_game_match.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_main_party_little_game_match@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_main_party_little_game_match@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/low/yumi_main_party_little_game_match.imageset/yumi_main_party_little_game_match@2x.png b/YuMi/Assets.xcassets/low/yumi_main_party_little_game_match.imageset/yumi_main_party_little_game_match@2x.png new file mode 100644 index 00000000..279e1a7b Binary files /dev/null and b/YuMi/Assets.xcassets/low/yumi_main_party_little_game_match.imageset/yumi_main_party_little_game_match@2x.png differ diff --git a/YuMi/Assets.xcassets/low/yumi_main_party_little_game_match.imageset/yumi_main_party_little_game_match@3x.png b/YuMi/Assets.xcassets/low/yumi_main_party_little_game_match.imageset/yumi_main_party_little_game_match@3x.png new file mode 100644 index 00000000..95908819 Binary files /dev/null and b/YuMi/Assets.xcassets/low/yumi_main_party_little_game_match.imageset/yumi_main_party_little_game_match@3x.png differ diff --git a/YuMi/Assets.xcassets/low/yumi_main_party_little_game_matter_background.imageset/Contents.json b/YuMi/Assets.xcassets/low/yumi_main_party_little_game_matter_background.imageset/Contents.json new file mode 100644 index 00000000..db16ef80 --- /dev/null +++ b/YuMi/Assets.xcassets/low/yumi_main_party_little_game_matter_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_main_party_little_game_matter_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_main_party_little_game_matter_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/low/yumi_main_party_little_game_matter_background.imageset/yumi_main_party_little_game_matter_background@2x.png b/YuMi/Assets.xcassets/low/yumi_main_party_little_game_matter_background.imageset/yumi_main_party_little_game_matter_background@2x.png new file mode 100644 index 00000000..37b7093c Binary files /dev/null and b/YuMi/Assets.xcassets/low/yumi_main_party_little_game_matter_background.imageset/yumi_main_party_little_game_matter_background@2x.png differ diff --git a/YuMi/Assets.xcassets/low/yumi_main_party_little_game_matter_background.imageset/yumi_main_party_little_game_matter_background@3x.png b/YuMi/Assets.xcassets/low/yumi_main_party_little_game_matter_background.imageset/yumi_main_party_little_game_matter_background@3x.png new file mode 100644 index 00000000..2c32b335 Binary files /dev/null and b/YuMi/Assets.xcassets/low/yumi_main_party_little_game_matter_background.imageset/yumi_main_party_little_game_matter_background@3x.png differ diff --git a/YuMi/Assets.xcassets/low/yumi_main_recommend_across_pk_background.imageset/Contents.json b/YuMi/Assets.xcassets/low/yumi_main_recommend_across_pk_background.imageset/Contents.json new file mode 100644 index 00000000..2edc0243 --- /dev/null +++ b/YuMi/Assets.xcassets/low/yumi_main_recommend_across_pk_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_main_recommend_across_pk_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_main_recommend_across_pk_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/low/yumi_main_recommend_across_pk_background.imageset/yumi_main_recommend_across_pk_background@2x.png b/YuMi/Assets.xcassets/low/yumi_main_recommend_across_pk_background.imageset/yumi_main_recommend_across_pk_background@2x.png new file mode 100644 index 00000000..1c365771 Binary files /dev/null and b/YuMi/Assets.xcassets/low/yumi_main_recommend_across_pk_background.imageset/yumi_main_recommend_across_pk_background@2x.png differ diff --git a/YuMi/Assets.xcassets/low/yumi_main_recommend_across_pk_background.imageset/yumi_main_recommend_across_pk_background@3x.png b/YuMi/Assets.xcassets/low/yumi_main_recommend_across_pk_background.imageset/yumi_main_recommend_across_pk_background@3x.png new file mode 100644 index 00000000..2b29c426 Binary files /dev/null and b/YuMi/Assets.xcassets/low/yumi_main_recommend_across_pk_background.imageset/yumi_main_recommend_across_pk_background@3x.png differ diff --git a/YuMi/Assets.xcassets/low/yumi_main_recommend_hot_note.imageset/Contents.json b/YuMi/Assets.xcassets/low/yumi_main_recommend_hot_note.imageset/Contents.json new file mode 100644 index 00000000..acc56468 --- /dev/null +++ b/YuMi/Assets.xcassets/low/yumi_main_recommend_hot_note.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_main_recommend_hot_note@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_main_recommend_hot_note@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/low/yumi_main_recommend_hot_note.imageset/yumi_main_recommend_hot_note@2x.png b/YuMi/Assets.xcassets/low/yumi_main_recommend_hot_note.imageset/yumi_main_recommend_hot_note@2x.png new file mode 100644 index 00000000..c304b0d8 Binary files /dev/null and b/YuMi/Assets.xcassets/low/yumi_main_recommend_hot_note.imageset/yumi_main_recommend_hot_note@2x.png differ diff --git a/YuMi/Assets.xcassets/low/yumi_main_recommend_hot_note.imageset/yumi_main_recommend_hot_note@3x.png b/YuMi/Assets.xcassets/low/yumi_main_recommend_hot_note.imageset/yumi_main_recommend_hot_note@3x.png new file mode 100644 index 00000000..3548d57d Binary files /dev/null and b/YuMi/Assets.xcassets/low/yumi_main_recommend_hot_note.imageset/yumi_main_recommend_hot_note@3x.png differ diff --git a/YuMi/Assets.xcassets/low/yumi_main_recommend_indicator_room.imageset/Contents.json b/YuMi/Assets.xcassets/low/yumi_main_recommend_indicator_room.imageset/Contents.json new file mode 100644 index 00000000..9142bcee --- /dev/null +++ b/YuMi/Assets.xcassets/low/yumi_main_recommend_indicator_room.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_main_recommend_indicator_room@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_main_recommend_indicator_room@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/low/yumi_main_recommend_indicator_room.imageset/yumi_main_recommend_indicator_room@2x.png b/YuMi/Assets.xcassets/low/yumi_main_recommend_indicator_room.imageset/yumi_main_recommend_indicator_room@2x.png new file mode 100644 index 00000000..139a798c Binary files /dev/null and b/YuMi/Assets.xcassets/low/yumi_main_recommend_indicator_room.imageset/yumi_main_recommend_indicator_room@2x.png differ diff --git a/YuMi/Assets.xcassets/low/yumi_main_recommend_indicator_room.imageset/yumi_main_recommend_indicator_room@3x.png b/YuMi/Assets.xcassets/low/yumi_main_recommend_indicator_room.imageset/yumi_main_recommend_indicator_room@3x.png new file mode 100644 index 00000000..03f74445 Binary files /dev/null and b/YuMi/Assets.xcassets/low/yumi_main_recommend_indicator_room.imageset/yumi_main_recommend_indicator_room@3x.png differ diff --git a/YuMi/Assets.xcassets/low/yumi_main_recommend_labelbackground.imageset/Contents.json b/YuMi/Assets.xcassets/low/yumi_main_recommend_labelbackground.imageset/Contents.json new file mode 100644 index 00000000..2b3c54fc --- /dev/null +++ b/YuMi/Assets.xcassets/low/yumi_main_recommend_labelbackground.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_main_recommend_labelbackground@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_main_recommend_labelbackground@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/low/yumi_main_recommend_labelbackground.imageset/yumi_main_recommend_labelbackground@2x.png b/YuMi/Assets.xcassets/low/yumi_main_recommend_labelbackground.imageset/yumi_main_recommend_labelbackground@2x.png new file mode 100644 index 00000000..166de603 Binary files /dev/null and b/YuMi/Assets.xcassets/low/yumi_main_recommend_labelbackground.imageset/yumi_main_recommend_labelbackground@2x.png differ diff --git a/YuMi/Assets.xcassets/low/yumi_main_recommend_labelbackground.imageset/yumi_main_recommend_labelbackground@3x.png b/YuMi/Assets.xcassets/low/yumi_main_recommend_labelbackground.imageset/yumi_main_recommend_labelbackground@3x.png new file mode 100644 index 00000000..0de27926 Binary files /dev/null and b/YuMi/Assets.xcassets/low/yumi_main_recommend_labelbackground.imageset/yumi_main_recommend_labelbackground@3x.png differ diff --git a/YuMi/Assets.xcassets/low/yumi_main_recommend_nick_shadow_background.imageset/Contents.json b/YuMi/Assets.xcassets/low/yumi_main_recommend_nick_shadow_background.imageset/Contents.json new file mode 100644 index 00000000..6af006db --- /dev/null +++ b/YuMi/Assets.xcassets/low/yumi_main_recommend_nick_shadow_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_main_recommend_nick_shadow_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_main_recommend_nick_shadow_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/low/yumi_main_recommend_nick_shadow_background.imageset/yumi_main_recommend_nick_shadow_background@2x.png b/YuMi/Assets.xcassets/low/yumi_main_recommend_nick_shadow_background.imageset/yumi_main_recommend_nick_shadow_background@2x.png new file mode 100644 index 00000000..e7b850a3 Binary files /dev/null and b/YuMi/Assets.xcassets/low/yumi_main_recommend_nick_shadow_background.imageset/yumi_main_recommend_nick_shadow_background@2x.png differ diff --git a/YuMi/Assets.xcassets/low/yumi_main_recommend_nick_shadow_background.imageset/yumi_main_recommend_nick_shadow_background@3x.png b/YuMi/Assets.xcassets/low/yumi_main_recommend_nick_shadow_background.imageset/yumi_main_recommend_nick_shadow_background@3x.png new file mode 100644 index 00000000..41becd0b Binary files /dev/null and b/YuMi/Assets.xcassets/low/yumi_main_recommend_nick_shadow_background.imageset/yumi_main_recommend_nick_shadow_background@3x.png differ diff --git a/YuMi/Assets.xcassets/low/yumi_main_recommend_play_list_background.imageset/Contents.json b/YuMi/Assets.xcassets/low/yumi_main_recommend_play_list_background.imageset/Contents.json new file mode 100644 index 00000000..91e97ca1 --- /dev/null +++ b/YuMi/Assets.xcassets/low/yumi_main_recommend_play_list_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_main_recommend_play_list_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_main_recommend_play_list_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/low/yumi_main_recommend_play_list_background.imageset/yumi_main_recommend_play_list_background@2x.png b/YuMi/Assets.xcassets/low/yumi_main_recommend_play_list_background.imageset/yumi_main_recommend_play_list_background@2x.png new file mode 100644 index 00000000..cb392cbb Binary files /dev/null and b/YuMi/Assets.xcassets/low/yumi_main_recommend_play_list_background.imageset/yumi_main_recommend_play_list_background@2x.png differ diff --git a/YuMi/Assets.xcassets/low/yumi_main_recommend_play_list_background.imageset/yumi_main_recommend_play_list_background@3x.png b/YuMi/Assets.xcassets/low/yumi_main_recommend_play_list_background.imageset/yumi_main_recommend_play_list_background@3x.png new file mode 100644 index 00000000..2ddc34a2 Binary files /dev/null and b/YuMi/Assets.xcassets/low/yumi_main_recommend_play_list_background.imageset/yumi_main_recommend_play_list_background@3x.png differ diff --git a/YuMi/Assets.xcassets/low/yumi_main_recommend_play_person_logo.imageset/Contents.json b/YuMi/Assets.xcassets/low/yumi_main_recommend_play_person_logo.imageset/Contents.json new file mode 100644 index 00000000..9dcb45e1 --- /dev/null +++ b/YuMi/Assets.xcassets/low/yumi_main_recommend_play_person_logo.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_main_recommend_play_person_logo@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_main_recommend_play_person_logo@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/low/yumi_main_recommend_play_person_logo.imageset/yumi_main_recommend_play_person_logo@2x.png b/YuMi/Assets.xcassets/low/yumi_main_recommend_play_person_logo.imageset/yumi_main_recommend_play_person_logo@2x.png new file mode 100644 index 00000000..cb2fc3d1 Binary files /dev/null and b/YuMi/Assets.xcassets/low/yumi_main_recommend_play_person_logo.imageset/yumi_main_recommend_play_person_logo@2x.png differ diff --git a/YuMi/Assets.xcassets/low/yumi_main_recommend_play_person_logo.imageset/yumi_main_recommend_play_person_logo@3x.png b/YuMi/Assets.xcassets/low/yumi_main_recommend_play_person_logo.imageset/yumi_main_recommend_play_person_logo@3x.png new file mode 100644 index 00000000..f51aa71b Binary files /dev/null and b/YuMi/Assets.xcassets/low/yumi_main_recommend_play_person_logo.imageset/yumi_main_recommend_play_person_logo@3x.png differ diff --git a/YuMi/Assets.xcassets/low/yumi_main_recommend_scope_more.imageset/Contents.json b/YuMi/Assets.xcassets/low/yumi_main_recommend_scope_more.imageset/Contents.json new file mode 100644 index 00000000..16d13ea4 --- /dev/null +++ b/YuMi/Assets.xcassets/low/yumi_main_recommend_scope_more.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_main_recommend_scope_more@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_main_recommend_scope_more@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/low/yumi_main_recommend_scope_more.imageset/yumi_main_recommend_scope_more@2x.png b/YuMi/Assets.xcassets/low/yumi_main_recommend_scope_more.imageset/yumi_main_recommend_scope_more@2x.png new file mode 100644 index 00000000..2ea81ab4 Binary files /dev/null and b/YuMi/Assets.xcassets/low/yumi_main_recommend_scope_more.imageset/yumi_main_recommend_scope_more@2x.png differ diff --git a/YuMi/Assets.xcassets/low/yumi_main_recommend_scope_more.imageset/yumi_main_recommend_scope_more@3x.png b/YuMi/Assets.xcassets/low/yumi_main_recommend_scope_more.imageset/yumi_main_recommend_scope_more@3x.png new file mode 100644 index 00000000..dbf12f2d Binary files /dev/null and b/YuMi/Assets.xcassets/low/yumi_main_recommend_scope_more.imageset/yumi_main_recommend_scope_more@3x.png differ diff --git a/YuMi/Assets.xcassets/low/yumi_main_recommend_scope_placeholder.imageset/Contents.json b/YuMi/Assets.xcassets/low/yumi_main_recommend_scope_placeholder.imageset/Contents.json new file mode 100644 index 00000000..efd11c73 --- /dev/null +++ b/YuMi/Assets.xcassets/low/yumi_main_recommend_scope_placeholder.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_main_recommend_scope_placeholder@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_main_recommend_scope_placeholder@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/low/yumi_main_recommend_scope_placeholder.imageset/yumi_main_recommend_scope_placeholder@2x.png b/YuMi/Assets.xcassets/low/yumi_main_recommend_scope_placeholder.imageset/yumi_main_recommend_scope_placeholder@2x.png new file mode 100644 index 00000000..666122da Binary files /dev/null and b/YuMi/Assets.xcassets/low/yumi_main_recommend_scope_placeholder.imageset/yumi_main_recommend_scope_placeholder@2x.png differ diff --git a/YuMi/Assets.xcassets/low/yumi_main_recommend_scope_placeholder.imageset/yumi_main_recommend_scope_placeholder@3x.png b/YuMi/Assets.xcassets/low/yumi_main_recommend_scope_placeholder.imageset/yumi_main_recommend_scope_placeholder@3x.png new file mode 100644 index 00000000..de868397 Binary files /dev/null and b/YuMi/Assets.xcassets/low/yumi_main_recommend_scope_placeholder.imageset/yumi_main_recommend_scope_placeholder@3x.png differ diff --git a/YuMi/Assets.xcassets/low/yumi_main_recommend_section_logo.imageset/Contents.json b/YuMi/Assets.xcassets/low/yumi_main_recommend_section_logo.imageset/Contents.json new file mode 100644 index 00000000..9e9201dd --- /dev/null +++ b/YuMi/Assets.xcassets/low/yumi_main_recommend_section_logo.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_main_recommend_section_logo@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_main_recommend_section_logo@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/low/yumi_main_recommend_section_logo.imageset/yumi_main_recommend_section_logo@2x.png b/YuMi/Assets.xcassets/low/yumi_main_recommend_section_logo.imageset/yumi_main_recommend_section_logo@2x.png new file mode 100644 index 00000000..fc0e1c4a Binary files /dev/null and b/YuMi/Assets.xcassets/low/yumi_main_recommend_section_logo.imageset/yumi_main_recommend_section_logo@2x.png differ diff --git a/YuMi/Assets.xcassets/low/yumi_main_recommend_section_logo.imageset/yumi_main_recommend_section_logo@3x.png b/YuMi/Assets.xcassets/low/yumi_main_recommend_section_logo.imageset/yumi_main_recommend_section_logo@3x.png new file mode 100644 index 00000000..29fc3c4f Binary files /dev/null and b/YuMi/Assets.xcassets/low/yumi_main_recommend_section_logo.imageset/yumi_main_recommend_section_logo@3x.png differ diff --git a/YuMi/Assets.xcassets/low/yumi_main_scope_list_note_background.imageset/Contents.json b/YuMi/Assets.xcassets/low/yumi_main_scope_list_note_background.imageset/Contents.json new file mode 100644 index 00000000..56eb5150 --- /dev/null +++ b/YuMi/Assets.xcassets/low/yumi_main_scope_list_note_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_main_scope_list_note_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_main_scope_list_note_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/low/yumi_main_scope_list_note_background.imageset/yumi_main_scope_list_note_background@2x.png b/YuMi/Assets.xcassets/low/yumi_main_scope_list_note_background.imageset/yumi_main_scope_list_note_background@2x.png new file mode 100644 index 00000000..2165c769 Binary files /dev/null and b/YuMi/Assets.xcassets/low/yumi_main_scope_list_note_background.imageset/yumi_main_scope_list_note_background@2x.png differ diff --git a/YuMi/Assets.xcassets/low/yumi_main_scope_list_note_background.imageset/yumi_main_scope_list_note_background@3x.png b/YuMi/Assets.xcassets/low/yumi_main_scope_list_note_background.imageset/yumi_main_scope_list_note_background@3x.png new file mode 100644 index 00000000..e8361dba Binary files /dev/null and b/YuMi/Assets.xcassets/low/yumi_main_scope_list_note_background.imageset/yumi_main_scope_list_note_background@3x.png differ diff --git a/YuMi/Assets.xcassets/low/yumi_main_scope_list_shadow_background.imageset/Contents.json b/YuMi/Assets.xcassets/low/yumi_main_scope_list_shadow_background.imageset/Contents.json new file mode 100644 index 00000000..cd66ead0 --- /dev/null +++ b/YuMi/Assets.xcassets/low/yumi_main_scope_list_shadow_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_main_scope_list_shadow_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_main_scope_list_shadow_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/low/yumi_main_scope_list_shadow_background.imageset/yumi_main_scope_list_shadow_background@2x.png b/YuMi/Assets.xcassets/low/yumi_main_scope_list_shadow_background.imageset/yumi_main_scope_list_shadow_background@2x.png new file mode 100644 index 00000000..18ed228f Binary files /dev/null and b/YuMi/Assets.xcassets/low/yumi_main_scope_list_shadow_background.imageset/yumi_main_scope_list_shadow_background@2x.png differ diff --git a/YuMi/Assets.xcassets/low/yumi_main_scope_list_shadow_background.imageset/yumi_main_scope_list_shadow_background@3x.png b/YuMi/Assets.xcassets/low/yumi_main_scope_list_shadow_background.imageset/yumi_main_scope_list_shadow_background@3x.png new file mode 100644 index 00000000..8f6c0bb7 Binary files /dev/null and b/YuMi/Assets.xcassets/low/yumi_main_scope_list_shadow_background.imageset/yumi_main_scope_list_shadow_background@3x.png differ diff --git a/YuMi/Assets.xcassets/low/yumi_main_search_input_search.imageset/Contents.json b/YuMi/Assets.xcassets/low/yumi_main_search_input_search.imageset/Contents.json new file mode 100644 index 00000000..59fe8a98 --- /dev/null +++ b/YuMi/Assets.xcassets/low/yumi_main_search_input_search.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_main_search_input_search@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_main_search_input_search@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/low/yumi_main_search_input_search.imageset/yumi_main_search_input_search@2x.png b/YuMi/Assets.xcassets/low/yumi_main_search_input_search.imageset/yumi_main_search_input_search@2x.png new file mode 100644 index 00000000..54d74f30 Binary files /dev/null and b/YuMi/Assets.xcassets/low/yumi_main_search_input_search.imageset/yumi_main_search_input_search@2x.png differ diff --git a/YuMi/Assets.xcassets/low/yumi_main_search_input_search.imageset/yumi_main_search_input_search@3x.png b/YuMi/Assets.xcassets/low/yumi_main_search_input_search.imageset/yumi_main_search_input_search@3x.png new file mode 100644 index 00000000..3da55297 Binary files /dev/null and b/YuMi/Assets.xcassets/low/yumi_main_search_input_search.imageset/yumi_main_search_input_search@3x.png differ diff --git a/YuMi/Assets.xcassets/low/yumi_main_search_user_online.imageset/Contents.json b/YuMi/Assets.xcassets/low/yumi_main_search_user_online.imageset/Contents.json new file mode 100644 index 00000000..e734436f --- /dev/null +++ b/YuMi/Assets.xcassets/low/yumi_main_search_user_online.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_main_search_user_online@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_main_search_user_online@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/low/yumi_main_search_user_online.imageset/yumi_main_search_user_online@2x.png b/YuMi/Assets.xcassets/low/yumi_main_search_user_online.imageset/yumi_main_search_user_online@2x.png new file mode 100644 index 00000000..6fb2b19e Binary files /dev/null and b/YuMi/Assets.xcassets/low/yumi_main_search_user_online.imageset/yumi_main_search_user_online@2x.png differ diff --git a/YuMi/Assets.xcassets/low/yumi_main_search_user_online.imageset/yumi_main_search_user_online@3x.png b/YuMi/Assets.xcassets/low/yumi_main_search_user_online.imageset/yumi_main_search_user_online@3x.png new file mode 100644 index 00000000..72898e3e Binary files /dev/null and b/YuMi/Assets.xcassets/low/yumi_main_search_user_online.imageset/yumi_main_search_user_online@3x.png differ diff --git a/YuMi/Assets.xcassets/low/yumi_main_search_white_back.imageset/Contents.json b/YuMi/Assets.xcassets/low/yumi_main_search_white_back.imageset/Contents.json new file mode 100644 index 00000000..ca76d18a --- /dev/null +++ b/YuMi/Assets.xcassets/low/yumi_main_search_white_back.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_main_search_white_back@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_main_search_white_back@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/low/yumi_main_search_white_back.imageset/yumi_main_search_white_back@2x.png b/YuMi/Assets.xcassets/low/yumi_main_search_white_back.imageset/yumi_main_search_white_back@2x.png new file mode 100644 index 00000000..20850ff7 Binary files /dev/null and b/YuMi/Assets.xcassets/low/yumi_main_search_white_back.imageset/yumi_main_search_white_back@2x.png differ diff --git a/YuMi/Assets.xcassets/low/yumi_main_search_white_back.imageset/yumi_main_search_white_back@3x.png b/YuMi/Assets.xcassets/low/yumi_main_search_white_back.imageset/yumi_main_search_white_back@3x.png new file mode 100644 index 00000000..190e9fba Binary files /dev/null and b/YuMi/Assets.xcassets/low/yumi_main_search_white_back.imageset/yumi_main_search_white_back@3x.png differ diff --git a/YuMi/Assets.xcassets/low/yumi_main_title_background.imageset/Contents.json b/YuMi/Assets.xcassets/low/yumi_main_title_background.imageset/Contents.json new file mode 100644 index 00000000..82f7ee71 --- /dev/null +++ b/YuMi/Assets.xcassets/low/yumi_main_title_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_main_title_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_main_title_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/low/yumi_main_title_background.imageset/yumi_main_title_background@2x.png b/YuMi/Assets.xcassets/low/yumi_main_title_background.imageset/yumi_main_title_background@2x.png new file mode 100644 index 00000000..dea19f30 Binary files /dev/null and b/YuMi/Assets.xcassets/low/yumi_main_title_background.imageset/yumi_main_title_background@2x.png differ diff --git a/YuMi/Assets.xcassets/low/yumi_main_title_background.imageset/yumi_main_title_background@3x.png b/YuMi/Assets.xcassets/low/yumi_main_title_background.imageset/yumi_main_title_background@3x.png new file mode 100644 index 00000000..a202d3db Binary files /dev/null and b/YuMi/Assets.xcassets/low/yumi_main_title_background.imageset/yumi_main_title_background@3x.png differ diff --git a/YuMi/Assets.xcassets/low/yumi_main_user_circle.imageset/Contents.json b/YuMi/Assets.xcassets/low/yumi_main_user_circle.imageset/Contents.json new file mode 100644 index 00000000..919616f5 --- /dev/null +++ b/YuMi/Assets.xcassets/low/yumi_main_user_circle.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_main_user_circle@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_main_user_circle@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/low/yumi_main_user_circle.imageset/yumi_main_user_circle@2x.png b/YuMi/Assets.xcassets/low/yumi_main_user_circle.imageset/yumi_main_user_circle@2x.png new file mode 100644 index 00000000..ad58b413 Binary files /dev/null and b/YuMi/Assets.xcassets/low/yumi_main_user_circle.imageset/yumi_main_user_circle@2x.png differ diff --git a/YuMi/Assets.xcassets/low/yumi_main_user_circle.imageset/yumi_main_user_circle@3x.png b/YuMi/Assets.xcassets/low/yumi_main_user_circle.imageset/yumi_main_user_circle@3x.png new file mode 100644 index 00000000..89f0ed71 Binary files /dev/null and b/YuMi/Assets.xcassets/low/yumi_main_user_circle.imageset/yumi_main_user_circle@3x.png differ diff --git a/YuMi/Assets.xcassets/low/yumi_scope_like_collect_scope_hot.imageset/Contents.json b/YuMi/Assets.xcassets/low/yumi_scope_like_collect_scope_hot.imageset/Contents.json new file mode 100644 index 00000000..51205c4b --- /dev/null +++ b/YuMi/Assets.xcassets/low/yumi_scope_like_collect_scope_hot.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_like_collect_scope_hot@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_like_collect_scope_hot@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/low/yumi_scope_like_collect_scope_hot.imageset/yumi_scope_like_collect_scope_hot@2x.png b/YuMi/Assets.xcassets/low/yumi_scope_like_collect_scope_hot.imageset/yumi_scope_like_collect_scope_hot@2x.png new file mode 100644 index 00000000..e53ecc2c Binary files /dev/null and b/YuMi/Assets.xcassets/low/yumi_scope_like_collect_scope_hot.imageset/yumi_scope_like_collect_scope_hot@2x.png differ diff --git a/YuMi/Assets.xcassets/low/yumi_scope_like_collect_scope_hot.imageset/yumi_scope_like_collect_scope_hot@3x.png b/YuMi/Assets.xcassets/low/yumi_scope_like_collect_scope_hot.imageset/yumi_scope_like_collect_scope_hot@3x.png new file mode 100644 index 00000000..734247f7 Binary files /dev/null and b/YuMi/Assets.xcassets/low/yumi_scope_like_collect_scope_hot.imageset/yumi_scope_like_collect_scope_hot@3x.png differ diff --git a/YuMi/Assets.xcassets/main/Contents.json b/YuMi/Assets.xcassets/main/Contents.json new file mode 100644 index 00000000..e2342777 --- /dev/null +++ b/YuMi/Assets.xcassets/main/Contents.json @@ -0,0 +1,7 @@ +{"info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/main/yumi_tab_center_normal.imageset/Contents.json b/YuMi/Assets.xcassets/main/yumi_tab_center_normal.imageset/Contents.json new file mode 100644 index 00000000..40079b67 --- /dev/null +++ b/YuMi/Assets.xcassets/main/yumi_tab_center_normal.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_tab_center_normal@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_tab_center_normal@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/main/yumi_tab_center_normal.imageset/yumi_tab_center_normal@2x.png b/YuMi/Assets.xcassets/main/yumi_tab_center_normal.imageset/yumi_tab_center_normal@2x.png new file mode 100644 index 00000000..72b59a0a Binary files /dev/null and b/YuMi/Assets.xcassets/main/yumi_tab_center_normal.imageset/yumi_tab_center_normal@2x.png differ diff --git a/YuMi/Assets.xcassets/main/yumi_tab_center_normal.imageset/yumi_tab_center_normal@3x.png b/YuMi/Assets.xcassets/main/yumi_tab_center_normal.imageset/yumi_tab_center_normal@3x.png new file mode 100644 index 00000000..f5a57e0d Binary files /dev/null and b/YuMi/Assets.xcassets/main/yumi_tab_center_normal.imageset/yumi_tab_center_normal@3x.png differ diff --git a/YuMi/Assets.xcassets/main/yumi_tab_center_selected.imageset/Contents.json b/YuMi/Assets.xcassets/main/yumi_tab_center_selected.imageset/Contents.json new file mode 100644 index 00000000..3c918a23 --- /dev/null +++ b/YuMi/Assets.xcassets/main/yumi_tab_center_selected.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_tab_center_selected@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_tab_center_selected@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/main/yumi_tab_center_selected.imageset/yumi_tab_center_selected@2x.png b/YuMi/Assets.xcassets/main/yumi_tab_center_selected.imageset/yumi_tab_center_selected@2x.png new file mode 100644 index 00000000..a1901470 Binary files /dev/null and b/YuMi/Assets.xcassets/main/yumi_tab_center_selected.imageset/yumi_tab_center_selected@2x.png differ diff --git a/YuMi/Assets.xcassets/main/yumi_tab_center_selected.imageset/yumi_tab_center_selected@3x.png b/YuMi/Assets.xcassets/main/yumi_tab_center_selected.imageset/yumi_tab_center_selected@3x.png new file mode 100644 index 00000000..601b681e Binary files /dev/null and b/YuMi/Assets.xcassets/main/yumi_tab_center_selected.imageset/yumi_tab_center_selected@3x.png differ diff --git a/YuMi/Assets.xcassets/main/yumi_tab_gameHome_normal.imageset/Contents.json b/YuMi/Assets.xcassets/main/yumi_tab_gameHome_normal.imageset/Contents.json new file mode 100644 index 00000000..b77870e7 --- /dev/null +++ b/YuMi/Assets.xcassets/main/yumi_tab_gameHome_normal.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_tab_gameHome_normal@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_tab_gameHome_normal@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/main/yumi_tab_gameHome_normal.imageset/yumi_tab_gameHome_normal@2x.png b/YuMi/Assets.xcassets/main/yumi_tab_gameHome_normal.imageset/yumi_tab_gameHome_normal@2x.png new file mode 100644 index 00000000..f8afae69 Binary files /dev/null and b/YuMi/Assets.xcassets/main/yumi_tab_gameHome_normal.imageset/yumi_tab_gameHome_normal@2x.png differ diff --git a/YuMi/Assets.xcassets/main/yumi_tab_gameHome_normal.imageset/yumi_tab_gameHome_normal@3x.png b/YuMi/Assets.xcassets/main/yumi_tab_gameHome_normal.imageset/yumi_tab_gameHome_normal@3x.png new file mode 100644 index 00000000..b602f4b6 Binary files /dev/null and b/YuMi/Assets.xcassets/main/yumi_tab_gameHome_normal.imageset/yumi_tab_gameHome_normal@3x.png differ diff --git a/YuMi/Assets.xcassets/main/yumi_tab_gameHome_selected.imageset/Contents.json b/YuMi/Assets.xcassets/main/yumi_tab_gameHome_selected.imageset/Contents.json new file mode 100644 index 00000000..4b02c105 --- /dev/null +++ b/YuMi/Assets.xcassets/main/yumi_tab_gameHome_selected.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_tab_gameHome_selected@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_tab_gameHome_selected@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/main/yumi_tab_gameHome_selected.imageset/yumi_tab_gameHome_selected@2x.png b/YuMi/Assets.xcassets/main/yumi_tab_gameHome_selected.imageset/yumi_tab_gameHome_selected@2x.png new file mode 100644 index 00000000..63951436 Binary files /dev/null and b/YuMi/Assets.xcassets/main/yumi_tab_gameHome_selected.imageset/yumi_tab_gameHome_selected@2x.png differ diff --git a/YuMi/Assets.xcassets/main/yumi_tab_gameHome_selected.imageset/yumi_tab_gameHome_selected@3x.png b/YuMi/Assets.xcassets/main/yumi_tab_gameHome_selected.imageset/yumi_tab_gameHome_selected@3x.png new file mode 100644 index 00000000..9eda1756 Binary files /dev/null and b/YuMi/Assets.xcassets/main/yumi_tab_gameHome_selected.imageset/yumi_tab_gameHome_selected@3x.png differ diff --git a/YuMi/Assets.xcassets/main/yumi_tab_monents_normal.imageset/Contents.json b/YuMi/Assets.xcassets/main/yumi_tab_monents_normal.imageset/Contents.json new file mode 100644 index 00000000..7a3896b5 --- /dev/null +++ b/YuMi/Assets.xcassets/main/yumi_tab_monents_normal.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_tab_monents_normal@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_tab_monents_normal@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/main/yumi_tab_monents_normal.imageset/yumi_tab_monents_normal@2x.png b/YuMi/Assets.xcassets/main/yumi_tab_monents_normal.imageset/yumi_tab_monents_normal@2x.png new file mode 100644 index 00000000..dc88dab9 Binary files /dev/null and b/YuMi/Assets.xcassets/main/yumi_tab_monents_normal.imageset/yumi_tab_monents_normal@2x.png differ diff --git a/YuMi/Assets.xcassets/main/yumi_tab_monents_normal.imageset/yumi_tab_monents_normal@3x.png b/YuMi/Assets.xcassets/main/yumi_tab_monents_normal.imageset/yumi_tab_monents_normal@3x.png new file mode 100644 index 00000000..71b168b9 Binary files /dev/null and b/YuMi/Assets.xcassets/main/yumi_tab_monents_normal.imageset/yumi_tab_monents_normal@3x.png differ diff --git a/YuMi/Assets.xcassets/main/yumi_tab_monents_select.imageset/Contents.json b/YuMi/Assets.xcassets/main/yumi_tab_monents_select.imageset/Contents.json new file mode 100644 index 00000000..086da546 --- /dev/null +++ b/YuMi/Assets.xcassets/main/yumi_tab_monents_select.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_tab_monents_select@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_tab_monents_select@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/main/yumi_tab_monents_select.imageset/yumi_tab_monents_select@2x.png b/YuMi/Assets.xcassets/main/yumi_tab_monents_select.imageset/yumi_tab_monents_select@2x.png new file mode 100644 index 00000000..84eaf6b2 Binary files /dev/null and b/YuMi/Assets.xcassets/main/yumi_tab_monents_select.imageset/yumi_tab_monents_select@2x.png differ diff --git a/YuMi/Assets.xcassets/main/yumi_tab_monents_select.imageset/yumi_tab_monents_select@3x.png b/YuMi/Assets.xcassets/main/yumi_tab_monents_select.imageset/yumi_tab_monents_select@3x.png new file mode 100644 index 00000000..d3ddacf5 Binary files /dev/null and b/YuMi/Assets.xcassets/main/yumi_tab_monents_select.imageset/yumi_tab_monents_select@3x.png differ diff --git a/YuMi/Assets.xcassets/main/yumi_tab_msg_normal.imageset/Contents.json b/YuMi/Assets.xcassets/main/yumi_tab_msg_normal.imageset/Contents.json new file mode 100644 index 00000000..4da8bdd1 --- /dev/null +++ b/YuMi/Assets.xcassets/main/yumi_tab_msg_normal.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_tab_msg_normal@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_tab_msg_normal@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/main/yumi_tab_msg_normal.imageset/yumi_tab_msg_normal@2x.png b/YuMi/Assets.xcassets/main/yumi_tab_msg_normal.imageset/yumi_tab_msg_normal@2x.png new file mode 100644 index 00000000..575b8d1b Binary files /dev/null and b/YuMi/Assets.xcassets/main/yumi_tab_msg_normal.imageset/yumi_tab_msg_normal@2x.png differ diff --git a/YuMi/Assets.xcassets/main/yumi_tab_msg_normal.imageset/yumi_tab_msg_normal@3x.png b/YuMi/Assets.xcassets/main/yumi_tab_msg_normal.imageset/yumi_tab_msg_normal@3x.png new file mode 100644 index 00000000..fe50f33f Binary files /dev/null and b/YuMi/Assets.xcassets/main/yumi_tab_msg_normal.imageset/yumi_tab_msg_normal@3x.png differ diff --git a/YuMi/Assets.xcassets/main/yumi_tab_msg_selected.imageset/Contents.json b/YuMi/Assets.xcassets/main/yumi_tab_msg_selected.imageset/Contents.json new file mode 100644 index 00000000..2724d5b5 --- /dev/null +++ b/YuMi/Assets.xcassets/main/yumi_tab_msg_selected.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_tab_msg_selected@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_tab_msg_selected@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/main/yumi_tab_msg_selected.imageset/yumi_tab_msg_selected@2x.png b/YuMi/Assets.xcassets/main/yumi_tab_msg_selected.imageset/yumi_tab_msg_selected@2x.png new file mode 100644 index 00000000..b3239212 Binary files /dev/null and b/YuMi/Assets.xcassets/main/yumi_tab_msg_selected.imageset/yumi_tab_msg_selected@2x.png differ diff --git a/YuMi/Assets.xcassets/main/yumi_tab_msg_selected.imageset/yumi_tab_msg_selected@3x.png b/YuMi/Assets.xcassets/main/yumi_tab_msg_selected.imageset/yumi_tab_msg_selected@3x.png new file mode 100644 index 00000000..6a7c4de4 Binary files /dev/null and b/YuMi/Assets.xcassets/main/yumi_tab_msg_selected.imageset/yumi_tab_msg_selected@3x.png differ diff --git a/YuMi/Assets.xcassets/middle/Contents.json b/YuMi/Assets.xcassets/middle/Contents.json new file mode 100644 index 00000000..e2342777 --- /dev/null +++ b/YuMi/Assets.xcassets/middle/Contents.json @@ -0,0 +1,7 @@ +{"info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/middle/GiftLuckTab/Contents.json b/YuMi/Assets.xcassets/middle/GiftLuckTab/Contents.json new file mode 100644 index 00000000..e2342777 --- /dev/null +++ b/YuMi/Assets.xcassets/middle/GiftLuckTab/Contents.json @@ -0,0 +1,7 @@ +{"info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/middle/GiftLuckTab/yumi_present_lucky_broadcast_background.imageset/Contents.json b/YuMi/Assets.xcassets/middle/GiftLuckTab/yumi_present_lucky_broadcast_background.imageset/Contents.json new file mode 100644 index 00000000..9f7fc176 --- /dev/null +++ b/YuMi/Assets.xcassets/middle/GiftLuckTab/yumi_present_lucky_broadcast_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_present_lucky_broadcast_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_present_lucky_broadcast_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/middle/GiftLuckTab/yumi_present_lucky_broadcast_background.imageset/yumi_present_lucky_broadcast_background@2x.png b/YuMi/Assets.xcassets/middle/GiftLuckTab/yumi_present_lucky_broadcast_background.imageset/yumi_present_lucky_broadcast_background@2x.png new file mode 100644 index 00000000..61ea2829 Binary files /dev/null and b/YuMi/Assets.xcassets/middle/GiftLuckTab/yumi_present_lucky_broadcast_background.imageset/yumi_present_lucky_broadcast_background@2x.png differ diff --git a/YuMi/Assets.xcassets/middle/GiftLuckTab/yumi_present_lucky_broadcast_background.imageset/yumi_present_lucky_broadcast_background@3x.png b/YuMi/Assets.xcassets/middle/GiftLuckTab/yumi_present_lucky_broadcast_background.imageset/yumi_present_lucky_broadcast_background@3x.png new file mode 100644 index 00000000..d703b966 Binary files /dev/null and b/YuMi/Assets.xcassets/middle/GiftLuckTab/yumi_present_lucky_broadcast_background.imageset/yumi_present_lucky_broadcast_background@3x.png differ diff --git a/YuMi/Assets.xcassets/middle/GiftLuckTab/yumi_present_lucky_broadcast_pic.imageset/Contents.json b/YuMi/Assets.xcassets/middle/GiftLuckTab/yumi_present_lucky_broadcast_pic.imageset/Contents.json new file mode 100644 index 00000000..7d4dac34 --- /dev/null +++ b/YuMi/Assets.xcassets/middle/GiftLuckTab/yumi_present_lucky_broadcast_pic.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_present_lucky_broadcast_pic@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_present_lucky_broadcast_pic@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/middle/GiftLuckTab/yumi_present_lucky_broadcast_pic.imageset/yumi_present_lucky_broadcast_pic@2x.png b/YuMi/Assets.xcassets/middle/GiftLuckTab/yumi_present_lucky_broadcast_pic.imageset/yumi_present_lucky_broadcast_pic@2x.png new file mode 100644 index 00000000..4676af77 Binary files /dev/null and b/YuMi/Assets.xcassets/middle/GiftLuckTab/yumi_present_lucky_broadcast_pic.imageset/yumi_present_lucky_broadcast_pic@2x.png differ diff --git a/YuMi/Assets.xcassets/middle/GiftLuckTab/yumi_present_lucky_broadcast_pic.imageset/yumi_present_lucky_broadcast_pic@3x.png b/YuMi/Assets.xcassets/middle/GiftLuckTab/yumi_present_lucky_broadcast_pic.imageset/yumi_present_lucky_broadcast_pic@3x.png new file mode 100644 index 00000000..67accccf Binary files /dev/null and b/YuMi/Assets.xcassets/middle/GiftLuckTab/yumi_present_lucky_broadcast_pic.imageset/yumi_present_lucky_broadcast_pic@3x.png differ diff --git a/YuMi/Assets.xcassets/middle/GiftLuckTab/yumi_present_lucky_broadcast_playType.imageset/Contents.json b/YuMi/Assets.xcassets/middle/GiftLuckTab/yumi_present_lucky_broadcast_playType.imageset/Contents.json new file mode 100644 index 00000000..5a95f175 --- /dev/null +++ b/YuMi/Assets.xcassets/middle/GiftLuckTab/yumi_present_lucky_broadcast_playType.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_present_lucky_broadcast_playType@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_present_lucky_broadcast_playType@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/middle/GiftLuckTab/yumi_present_lucky_broadcast_playType.imageset/yumi_present_lucky_broadcast_playType@2x.png b/YuMi/Assets.xcassets/middle/GiftLuckTab/yumi_present_lucky_broadcast_playType.imageset/yumi_present_lucky_broadcast_playType@2x.png new file mode 100644 index 00000000..5d0cb3b5 Binary files /dev/null and b/YuMi/Assets.xcassets/middle/GiftLuckTab/yumi_present_lucky_broadcast_playType.imageset/yumi_present_lucky_broadcast_playType@2x.png differ diff --git a/YuMi/Assets.xcassets/middle/GiftLuckTab/yumi_present_lucky_broadcast_playType.imageset/yumi_present_lucky_broadcast_playType@3x.png b/YuMi/Assets.xcassets/middle/GiftLuckTab/yumi_present_lucky_broadcast_playType.imageset/yumi_present_lucky_broadcast_playType@3x.png new file mode 100644 index 00000000..4ca10774 Binary files /dev/null and b/YuMi/Assets.xcassets/middle/GiftLuckTab/yumi_present_lucky_broadcast_playType.imageset/yumi_present_lucky_broadcast_playType@3x.png differ diff --git a/YuMi/Assets.xcassets/middle/GiftWeekStarTab/Contents.json b/YuMi/Assets.xcassets/middle/GiftWeekStarTab/Contents.json new file mode 100644 index 00000000..e2342777 --- /dev/null +++ b/YuMi/Assets.xcassets/middle/GiftWeekStarTab/Contents.json @@ -0,0 +1,7 @@ +{"info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/middle/GiftWeekStarTab/yumi_present_weekStar_background.imageset/Contents.json b/YuMi/Assets.xcassets/middle/GiftWeekStarTab/yumi_present_weekStar_background.imageset/Contents.json new file mode 100644 index 00000000..51e2a4f9 --- /dev/null +++ b/YuMi/Assets.xcassets/middle/GiftWeekStarTab/yumi_present_weekStar_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_present_weekStar_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_present_weekStar_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/middle/GiftWeekStarTab/yumi_present_weekStar_background.imageset/yumi_present_weekStar_background@2x.png b/YuMi/Assets.xcassets/middle/GiftWeekStarTab/yumi_present_weekStar_background.imageset/yumi_present_weekStar_background@2x.png new file mode 100644 index 00000000..c37ae598 Binary files /dev/null and b/YuMi/Assets.xcassets/middle/GiftWeekStarTab/yumi_present_weekStar_background.imageset/yumi_present_weekStar_background@2x.png differ diff --git a/YuMi/Assets.xcassets/middle/GiftWeekStarTab/yumi_present_weekStar_background.imageset/yumi_present_weekStar_background@3x.png b/YuMi/Assets.xcassets/middle/GiftWeekStarTab/yumi_present_weekStar_background.imageset/yumi_present_weekStar_background@3x.png new file mode 100644 index 00000000..1d702001 Binary files /dev/null and b/YuMi/Assets.xcassets/middle/GiftWeekStarTab/yumi_present_weekStar_background.imageset/yumi_present_weekStar_background@3x.png differ diff --git a/YuMi/Assets.xcassets/middle/GiftWeekStarTab/yumi_present_weekStar_entrance.imageset/Contents.json b/YuMi/Assets.xcassets/middle/GiftWeekStarTab/yumi_present_weekStar_entrance.imageset/Contents.json new file mode 100644 index 00000000..7bbfa6d9 --- /dev/null +++ b/YuMi/Assets.xcassets/middle/GiftWeekStarTab/yumi_present_weekStar_entrance.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_present_weekStar_entrance@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_present_weekStar_entrance@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/middle/GiftWeekStarTab/yumi_present_weekStar_entrance.imageset/yumi_present_weekStar_entrance@2x.png b/YuMi/Assets.xcassets/middle/GiftWeekStarTab/yumi_present_weekStar_entrance.imageset/yumi_present_weekStar_entrance@2x.png new file mode 100644 index 00000000..5a910416 Binary files /dev/null and b/YuMi/Assets.xcassets/middle/GiftWeekStarTab/yumi_present_weekStar_entrance.imageset/yumi_present_weekStar_entrance@2x.png differ diff --git a/YuMi/Assets.xcassets/middle/GiftWeekStarTab/yumi_present_weekStar_entrance.imageset/yumi_present_weekStar_entrance@3x.png b/YuMi/Assets.xcassets/middle/GiftWeekStarTab/yumi_present_weekStar_entrance.imageset/yumi_present_weekStar_entrance@3x.png new file mode 100644 index 00000000..d9703e69 Binary files /dev/null and b/YuMi/Assets.xcassets/middle/GiftWeekStarTab/yumi_present_weekStar_entrance.imageset/yumi_present_weekStar_entrance@3x.png differ diff --git a/YuMi/Assets.xcassets/middle/yumi_present_constellationBanner_background.imageset/Contents.json b/YuMi/Assets.xcassets/middle/yumi_present_constellationBanner_background.imageset/Contents.json new file mode 100644 index 00000000..036d9498 --- /dev/null +++ b/YuMi/Assets.xcassets/middle/yumi_present_constellationBanner_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_present_constellationBanner_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_present_constellationBanner_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/middle/yumi_present_constellationBanner_background.imageset/yumi_present_constellationBanner_background@2x.png b/YuMi/Assets.xcassets/middle/yumi_present_constellationBanner_background.imageset/yumi_present_constellationBanner_background@2x.png new file mode 100644 index 00000000..682dbdb3 Binary files /dev/null and b/YuMi/Assets.xcassets/middle/yumi_present_constellationBanner_background.imageset/yumi_present_constellationBanner_background@2x.png differ diff --git a/YuMi/Assets.xcassets/middle/yumi_present_constellationBanner_background.imageset/yumi_present_constellationBanner_background@3x.png b/YuMi/Assets.xcassets/middle/yumi_present_constellationBanner_background.imageset/yumi_present_constellationBanner_background@3x.png new file mode 100644 index 00000000..5234c8cf Binary files /dev/null and b/YuMi/Assets.xcassets/middle/yumi_present_constellationBanner_background.imageset/yumi_present_constellationBanner_background@3x.png differ diff --git a/YuMi/Assets.xcassets/middle/yumi_present_diamond.imageset/Contents.json b/YuMi/Assets.xcassets/middle/yumi_present_diamond.imageset/Contents.json new file mode 100644 index 00000000..023c7502 --- /dev/null +++ b/YuMi/Assets.xcassets/middle/yumi_present_diamond.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_present_diamond@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_present_diamond@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/middle/yumi_present_diamond.imageset/yumi_present_diamond@2x.png b/YuMi/Assets.xcassets/middle/yumi_present_diamond.imageset/yumi_present_diamond@2x.png new file mode 100644 index 00000000..4b44ffe1 Binary files /dev/null and b/YuMi/Assets.xcassets/middle/yumi_present_diamond.imageset/yumi_present_diamond@2x.png differ diff --git a/YuMi/Assets.xcassets/middle/yumi_present_diamond.imageset/yumi_present_diamond@3x.png b/YuMi/Assets.xcassets/middle/yumi_present_diamond.imageset/yumi_present_diamond@3x.png new file mode 100644 index 00000000..81131ba2 Binary files /dev/null and b/YuMi/Assets.xcassets/middle/yumi_present_diamond.imageset/yumi_present_diamond@3x.png differ diff --git a/YuMi/Assets.xcassets/middle/yumi_present_gen_empty_background.imageset/Contents.json b/YuMi/Assets.xcassets/middle/yumi_present_gen_empty_background.imageset/Contents.json new file mode 100644 index 00000000..2af9c149 --- /dev/null +++ b/YuMi/Assets.xcassets/middle/yumi_present_gen_empty_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_present_gen_empty_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_present_gen_empty_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/middle/yumi_present_gen_empty_background.imageset/yumi_present_gen_empty_background@2x.png b/YuMi/Assets.xcassets/middle/yumi_present_gen_empty_background.imageset/yumi_present_gen_empty_background@2x.png new file mode 100644 index 00000000..54e195d6 Binary files /dev/null and b/YuMi/Assets.xcassets/middle/yumi_present_gen_empty_background.imageset/yumi_present_gen_empty_background@2x.png differ diff --git a/YuMi/Assets.xcassets/middle/yumi_present_gen_empty_background.imageset/yumi_present_gen_empty_background@3x.png b/YuMi/Assets.xcassets/middle/yumi_present_gen_empty_background.imageset/yumi_present_gen_empty_background@3x.png new file mode 100644 index 00000000..07d24d31 Binary files /dev/null and b/YuMi/Assets.xcassets/middle/yumi_present_gen_empty_background.imageset/yumi_present_gen_empty_background@3x.png differ diff --git a/YuMi/Assets.xcassets/middle/yumi_present_labeleffect.imageset/Contents.json b/YuMi/Assets.xcassets/middle/yumi_present_labeleffect.imageset/Contents.json new file mode 100644 index 00000000..aa455ad9 --- /dev/null +++ b/YuMi/Assets.xcassets/middle/yumi_present_labeleffect.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_present_labeleffect@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_present_labeleffect@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/middle/yumi_present_labeleffect.imageset/yumi_present_labeleffect@2x.png b/YuMi/Assets.xcassets/middle/yumi_present_labeleffect.imageset/yumi_present_labeleffect@2x.png new file mode 100644 index 00000000..fbc0b9eb Binary files /dev/null and b/YuMi/Assets.xcassets/middle/yumi_present_labeleffect.imageset/yumi_present_labeleffect@2x.png differ diff --git a/YuMi/Assets.xcassets/middle/yumi_present_labeleffect.imageset/yumi_present_labeleffect@3x.png b/YuMi/Assets.xcassets/middle/yumi_present_labeleffect.imageset/yumi_present_labeleffect@3x.png new file mode 100644 index 00000000..da4dca60 Binary files /dev/null and b/YuMi/Assets.xcassets/middle/yumi_present_labeleffect.imageset/yumi_present_labeleffect@3x.png differ diff --git a/YuMi/Assets.xcassets/middle/yumi_present_labelexclude.imageset/Contents.json b/YuMi/Assets.xcassets/middle/yumi_present_labelexclude.imageset/Contents.json new file mode 100644 index 00000000..2fcb1a40 --- /dev/null +++ b/YuMi/Assets.xcassets/middle/yumi_present_labelexclude.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_present_labelexclude@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_present_labelexclude@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/middle/yumi_present_labelexclude.imageset/yumi_present_labelexclude@2x.png b/YuMi/Assets.xcassets/middle/yumi_present_labelexclude.imageset/yumi_present_labelexclude@2x.png new file mode 100644 index 00000000..2ff97492 Binary files /dev/null and b/YuMi/Assets.xcassets/middle/yumi_present_labelexclude.imageset/yumi_present_labelexclude@2x.png differ diff --git a/YuMi/Assets.xcassets/middle/yumi_present_labelexclude.imageset/yumi_present_labelexclude@3x.png b/YuMi/Assets.xcassets/middle/yumi_present_labelexclude.imageset/yumi_present_labelexclude@3x.png new file mode 100644 index 00000000..b2606782 Binary files /dev/null and b/YuMi/Assets.xcassets/middle/yumi_present_labelexclude.imageset/yumi_present_labelexclude@3x.png differ diff --git a/YuMi/Assets.xcassets/middle/yumi_present_labellatest.imageset/Contents.json b/YuMi/Assets.xcassets/middle/yumi_present_labellatest.imageset/Contents.json new file mode 100644 index 00000000..8e5ecff5 --- /dev/null +++ b/YuMi/Assets.xcassets/middle/yumi_present_labellatest.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_present_labellatest@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_present_labellatest@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/middle/yumi_present_labellatest.imageset/yumi_present_labellatest@2x.png b/YuMi/Assets.xcassets/middle/yumi_present_labellatest.imageset/yumi_present_labellatest@2x.png new file mode 100644 index 00000000..d09ed6c8 Binary files /dev/null and b/YuMi/Assets.xcassets/middle/yumi_present_labellatest.imageset/yumi_present_labellatest@2x.png differ diff --git a/YuMi/Assets.xcassets/middle/yumi_present_labellatest.imageset/yumi_present_labellatest@3x.png b/YuMi/Assets.xcassets/middle/yumi_present_labellatest.imageset/yumi_present_labellatest@3x.png new file mode 100644 index 00000000..75e4813b Binary files /dev/null and b/YuMi/Assets.xcassets/middle/yumi_present_labellatest.imageset/yumi_present_labellatest@3x.png differ diff --git a/YuMi/Assets.xcassets/middle/yumi_present_labeltime_limit.imageset/Contents.json b/YuMi/Assets.xcassets/middle/yumi_present_labeltime_limit.imageset/Contents.json new file mode 100644 index 00000000..15d12eaf --- /dev/null +++ b/YuMi/Assets.xcassets/middle/yumi_present_labeltime_limit.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_present_labeltime_limit@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_present_labeltime_limit@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/middle/yumi_present_labeltime_limit.imageset/yumi_present_labeltime_limit@2x.png b/YuMi/Assets.xcassets/middle/yumi_present_labeltime_limit.imageset/yumi_present_labeltime_limit@2x.png new file mode 100644 index 00000000..280e2b9a Binary files /dev/null and b/YuMi/Assets.xcassets/middle/yumi_present_labeltime_limit.imageset/yumi_present_labeltime_limit@2x.png differ diff --git a/YuMi/Assets.xcassets/middle/yumi_present_labeltime_limit.imageset/yumi_present_labeltime_limit@3x.png b/YuMi/Assets.xcassets/middle/yumi_present_labeltime_limit.imageset/yumi_present_labeltime_limit@3x.png new file mode 100644 index 00000000..3ccc124a Binary files /dev/null and b/YuMi/Assets.xcassets/middle/yumi_present_labeltime_limit.imageset/yumi_present_labeltime_limit@3x.png differ diff --git a/YuMi/Assets.xcassets/middle/yumi_present_let_count_arrow.imageset/Contents.json b/YuMi/Assets.xcassets/middle/yumi_present_let_count_arrow.imageset/Contents.json new file mode 100644 index 00000000..e381b909 --- /dev/null +++ b/YuMi/Assets.xcassets/middle/yumi_present_let_count_arrow.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_present_let_count_arrow@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_present_let_count_arrow@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/middle/yumi_present_let_count_arrow.imageset/yumi_present_let_count_arrow@2x.png b/YuMi/Assets.xcassets/middle/yumi_present_let_count_arrow.imageset/yumi_present_let_count_arrow@2x.png new file mode 100644 index 00000000..1687ebc2 Binary files /dev/null and b/YuMi/Assets.xcassets/middle/yumi_present_let_count_arrow.imageset/yumi_present_let_count_arrow@2x.png differ diff --git a/YuMi/Assets.xcassets/middle/yumi_present_let_count_arrow.imageset/yumi_present_let_count_arrow@3x.png b/YuMi/Assets.xcassets/middle/yumi_present_let_count_arrow.imageset/yumi_present_let_count_arrow@3x.png new file mode 100644 index 00000000..7d22ea69 Binary files /dev/null and b/YuMi/Assets.xcassets/middle/yumi_present_let_count_arrow.imageset/yumi_present_let_count_arrow@3x.png differ diff --git a/YuMi/Assets.xcassets/middle/yumi_present_let_count_up_arrow.imageset/Contents.json b/YuMi/Assets.xcassets/middle/yumi_present_let_count_up_arrow.imageset/Contents.json new file mode 100644 index 00000000..e489ff52 --- /dev/null +++ b/YuMi/Assets.xcassets/middle/yumi_present_let_count_up_arrow.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_present_let_count_up_arrow@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_present_let_count_up_arrow@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/middle/yumi_present_let_count_up_arrow.imageset/yumi_present_let_count_up_arrow@2x.png b/YuMi/Assets.xcassets/middle/yumi_present_let_count_up_arrow.imageset/yumi_present_let_count_up_arrow@2x.png new file mode 100644 index 00000000..5ec51d48 Binary files /dev/null and b/YuMi/Assets.xcassets/middle/yumi_present_let_count_up_arrow.imageset/yumi_present_let_count_up_arrow@2x.png differ diff --git a/YuMi/Assets.xcassets/middle/yumi_present_let_count_up_arrow.imageset/yumi_present_let_count_up_arrow@3x.png b/YuMi/Assets.xcassets/middle/yumi_present_let_count_up_arrow.imageset/yumi_present_let_count_up_arrow@3x.png new file mode 100644 index 00000000..ecbe34d8 Binary files /dev/null and b/YuMi/Assets.xcassets/middle/yumi_present_let_count_up_arrow.imageset/yumi_present_let_count_up_arrow@3x.png differ diff --git a/YuMi/Assets.xcassets/middle/yumi_present_let_recharge_arrow.imageset/Contents.json b/YuMi/Assets.xcassets/middle/yumi_present_let_recharge_arrow.imageset/Contents.json new file mode 100644 index 00000000..88ad844f --- /dev/null +++ b/YuMi/Assets.xcassets/middle/yumi_present_let_recharge_arrow.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_present_let_recharge_arrow@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_present_let_recharge_arrow@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/middle/yumi_present_let_recharge_arrow.imageset/yumi_present_let_recharge_arrow@2x.png b/YuMi/Assets.xcassets/middle/yumi_present_let_recharge_arrow.imageset/yumi_present_let_recharge_arrow@2x.png new file mode 100644 index 00000000..1fa7d10c Binary files /dev/null and b/YuMi/Assets.xcassets/middle/yumi_present_let_recharge_arrow.imageset/yumi_present_let_recharge_arrow@2x.png differ diff --git a/YuMi/Assets.xcassets/middle/yumi_present_let_recharge_arrow.imageset/yumi_present_let_recharge_arrow@3x.png b/YuMi/Assets.xcassets/middle/yumi_present_let_recharge_arrow.imageset/yumi_present_let_recharge_arrow@3x.png new file mode 100644 index 00000000..e3a0682f Binary files /dev/null and b/YuMi/Assets.xcassets/middle/yumi_present_let_recharge_arrow.imageset/yumi_present_let_recharge_arrow@3x.png differ diff --git a/YuMi/Assets.xcassets/middle/yumi_present_let_white_count_arrow.imageset/Contents.json b/YuMi/Assets.xcassets/middle/yumi_present_let_white_count_arrow.imageset/Contents.json new file mode 100644 index 00000000..c8270b75 --- /dev/null +++ b/YuMi/Assets.xcassets/middle/yumi_present_let_white_count_arrow.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_present_let_white_count_arrow@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_present_let_white_count_arrow@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/middle/yumi_present_let_white_count_arrow.imageset/yumi_present_let_white_count_arrow@2x.png b/YuMi/Assets.xcassets/middle/yumi_present_let_white_count_arrow.imageset/yumi_present_let_white_count_arrow@2x.png new file mode 100644 index 00000000..af2a9df5 Binary files /dev/null and b/YuMi/Assets.xcassets/middle/yumi_present_let_white_count_arrow.imageset/yumi_present_let_white_count_arrow@2x.png differ diff --git a/YuMi/Assets.xcassets/middle/yumi_present_let_white_count_arrow.imageset/yumi_present_let_white_count_arrow@3x.png b/YuMi/Assets.xcassets/middle/yumi_present_let_white_count_arrow.imageset/yumi_present_let_white_count_arrow@3x.png new file mode 100644 index 00000000..d39d3128 Binary files /dev/null and b/YuMi/Assets.xcassets/middle/yumi_present_let_white_count_arrow.imageset/yumi_present_let_white_count_arrow@3x.png differ diff --git a/YuMi/Assets.xcassets/middle/yumi_present_let_white_count_up_arrow.imageset/Contents.json b/YuMi/Assets.xcassets/middle/yumi_present_let_white_count_up_arrow.imageset/Contents.json new file mode 100644 index 00000000..222e9e3b --- /dev/null +++ b/YuMi/Assets.xcassets/middle/yumi_present_let_white_count_up_arrow.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_present_let_white_count_up_arrow@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_present_let_white_count_up_arrow@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/middle/yumi_present_let_white_count_up_arrow.imageset/yumi_present_let_white_count_up_arrow@2x.png b/YuMi/Assets.xcassets/middle/yumi_present_let_white_count_up_arrow.imageset/yumi_present_let_white_count_up_arrow@2x.png new file mode 100644 index 00000000..a017aca8 Binary files /dev/null and b/YuMi/Assets.xcassets/middle/yumi_present_let_white_count_up_arrow.imageset/yumi_present_let_white_count_up_arrow@2x.png differ diff --git a/YuMi/Assets.xcassets/middle/yumi_present_let_white_count_up_arrow.imageset/yumi_present_let_white_count_up_arrow@3x.png b/YuMi/Assets.xcassets/middle/yumi_present_let_white_count_up_arrow.imageset/yumi_present_let_white_count_up_arrow@3x.png new file mode 100644 index 00000000..98651ed6 Binary files /dev/null and b/YuMi/Assets.xcassets/middle/yumi_present_let_white_count_up_arrow.imageset/yumi_present_let_white_count_up_arrow@3x.png differ diff --git a/YuMi/Assets.xcassets/middle/yumi_present_type_newIcon.imageset/Contents.json b/YuMi/Assets.xcassets/middle/yumi_present_type_newIcon.imageset/Contents.json new file mode 100644 index 00000000..0b33bc7f --- /dev/null +++ b/YuMi/Assets.xcassets/middle/yumi_present_type_newIcon.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_present_type_newIcon@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_present_type_newIcon@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/middle/yumi_present_type_newIcon.imageset/yumi_present_type_newIcon@2x.png b/YuMi/Assets.xcassets/middle/yumi_present_type_newIcon.imageset/yumi_present_type_newIcon@2x.png new file mode 100644 index 00000000..5fe4730f Binary files /dev/null and b/YuMi/Assets.xcassets/middle/yumi_present_type_newIcon.imageset/yumi_present_type_newIcon@2x.png differ diff --git a/YuMi/Assets.xcassets/middle/yumi_present_type_newIcon.imageset/yumi_present_type_newIcon@3x.png b/YuMi/Assets.xcassets/middle/yumi_present_type_newIcon.imageset/yumi_present_type_newIcon@3x.png new file mode 100644 index 00000000..520547ab Binary files /dev/null and b/YuMi/Assets.xcassets/middle/yumi_present_type_newIcon.imageset/yumi_present_type_newIcon@3x.png differ diff --git a/YuMi/Assets.xcassets/middle/yumi_scope_present_graffiti_close.imageset/Contents.json b/YuMi/Assets.xcassets/middle/yumi_scope_present_graffiti_close.imageset/Contents.json new file mode 100644 index 00000000..9c740431 --- /dev/null +++ b/YuMi/Assets.xcassets/middle/yumi_scope_present_graffiti_close.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_present_graffiti_close@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_present_graffiti_close@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/middle/yumi_scope_present_graffiti_close.imageset/yumi_scope_present_graffiti_close@2x.png b/YuMi/Assets.xcassets/middle/yumi_scope_present_graffiti_close.imageset/yumi_scope_present_graffiti_close@2x.png new file mode 100644 index 00000000..600ceeb4 Binary files /dev/null and b/YuMi/Assets.xcassets/middle/yumi_scope_present_graffiti_close.imageset/yumi_scope_present_graffiti_close@2x.png differ diff --git a/YuMi/Assets.xcassets/middle/yumi_scope_present_graffiti_close.imageset/yumi_scope_present_graffiti_close@3x.png b/YuMi/Assets.xcassets/middle/yumi_scope_present_graffiti_close.imageset/yumi_scope_present_graffiti_close@3x.png new file mode 100644 index 00000000..78cb97ef Binary files /dev/null and b/YuMi/Assets.xcassets/middle/yumi_scope_present_graffiti_close.imageset/yumi_scope_present_graffiti_close@3x.png differ diff --git a/YuMi/Assets.xcassets/middle/yumi_scope_present_graffiti_delete.imageset/Contents.json b/YuMi/Assets.xcassets/middle/yumi_scope_present_graffiti_delete.imageset/Contents.json new file mode 100644 index 00000000..913eb352 --- /dev/null +++ b/YuMi/Assets.xcassets/middle/yumi_scope_present_graffiti_delete.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_present_graffiti_delete@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_present_graffiti_delete@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/middle/yumi_scope_present_graffiti_delete.imageset/yumi_scope_present_graffiti_delete@2x.png b/YuMi/Assets.xcassets/middle/yumi_scope_present_graffiti_delete.imageset/yumi_scope_present_graffiti_delete@2x.png new file mode 100644 index 00000000..b41cdc23 Binary files /dev/null and b/YuMi/Assets.xcassets/middle/yumi_scope_present_graffiti_delete.imageset/yumi_scope_present_graffiti_delete@2x.png differ diff --git a/YuMi/Assets.xcassets/middle/yumi_scope_present_graffiti_delete.imageset/yumi_scope_present_graffiti_delete@3x.png b/YuMi/Assets.xcassets/middle/yumi_scope_present_graffiti_delete.imageset/yumi_scope_present_graffiti_delete@3x.png new file mode 100644 index 00000000..3e0d0d06 Binary files /dev/null and b/YuMi/Assets.xcassets/middle/yumi_scope_present_graffiti_delete.imageset/yumi_scope_present_graffiti_delete@3x.png differ diff --git a/YuMi/Assets.xcassets/middle/yumi_scope_present_graffiti_hand.imageset/Contents.json b/YuMi/Assets.xcassets/middle/yumi_scope_present_graffiti_hand.imageset/Contents.json new file mode 100644 index 00000000..1a032826 --- /dev/null +++ b/YuMi/Assets.xcassets/middle/yumi_scope_present_graffiti_hand.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_present_graffiti_hand@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_present_graffiti_hand@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/middle/yumi_scope_present_graffiti_hand.imageset/yumi_scope_present_graffiti_hand@2x.png b/YuMi/Assets.xcassets/middle/yumi_scope_present_graffiti_hand.imageset/yumi_scope_present_graffiti_hand@2x.png new file mode 100644 index 00000000..81475b37 Binary files /dev/null and b/YuMi/Assets.xcassets/middle/yumi_scope_present_graffiti_hand.imageset/yumi_scope_present_graffiti_hand@2x.png differ diff --git a/YuMi/Assets.xcassets/middle/yumi_scope_present_graffiti_hand.imageset/yumi_scope_present_graffiti_hand@3x.png b/YuMi/Assets.xcassets/middle/yumi_scope_present_graffiti_hand.imageset/yumi_scope_present_graffiti_hand@3x.png new file mode 100644 index 00000000..c35a2a64 Binary files /dev/null and b/YuMi/Assets.xcassets/middle/yumi_scope_present_graffiti_hand.imageset/yumi_scope_present_graffiti_hand@3x.png differ diff --git a/YuMi/Assets.xcassets/middle/yumi_scope_present_graffiti_repeal.imageset/Contents.json b/YuMi/Assets.xcassets/middle/yumi_scope_present_graffiti_repeal.imageset/Contents.json new file mode 100644 index 00000000..2be860e4 --- /dev/null +++ b/YuMi/Assets.xcassets/middle/yumi_scope_present_graffiti_repeal.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_present_graffiti_repeal@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_present_graffiti_repeal@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/middle/yumi_scope_present_graffiti_repeal.imageset/yumi_scope_present_graffiti_repeal@2x.png b/YuMi/Assets.xcassets/middle/yumi_scope_present_graffiti_repeal.imageset/yumi_scope_present_graffiti_repeal@2x.png new file mode 100644 index 00000000..7e5455c3 Binary files /dev/null and b/YuMi/Assets.xcassets/middle/yumi_scope_present_graffiti_repeal.imageset/yumi_scope_present_graffiti_repeal@2x.png differ diff --git a/YuMi/Assets.xcassets/middle/yumi_scope_present_graffiti_repeal.imageset/yumi_scope_present_graffiti_repeal@3x.png b/YuMi/Assets.xcassets/middle/yumi_scope_present_graffiti_repeal.imageset/yumi_scope_present_graffiti_repeal@3x.png new file mode 100644 index 00000000..febe7023 Binary files /dev/null and b/YuMi/Assets.xcassets/middle/yumi_scope_present_graffiti_repeal.imageset/yumi_scope_present_graffiti_repeal@3x.png differ diff --git a/YuMi/Assets.xcassets/middle/yumi_scope_present_panel_arrow.imageset/Contents.json b/YuMi/Assets.xcassets/middle/yumi_scope_present_panel_arrow.imageset/Contents.json new file mode 100644 index 00000000..954a5879 --- /dev/null +++ b/YuMi/Assets.xcassets/middle/yumi_scope_present_panel_arrow.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_present_panel_arrow@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_present_panel_arrow@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/middle/yumi_scope_present_panel_arrow.imageset/yumi_scope_present_panel_arrow@2x.png b/YuMi/Assets.xcassets/middle/yumi_scope_present_panel_arrow.imageset/yumi_scope_present_panel_arrow@2x.png new file mode 100644 index 00000000..20a941dc Binary files /dev/null and b/YuMi/Assets.xcassets/middle/yumi_scope_present_panel_arrow.imageset/yumi_scope_present_panel_arrow@2x.png differ diff --git a/YuMi/Assets.xcassets/middle/yumi_scope_present_panel_arrow.imageset/yumi_scope_present_panel_arrow@3x.png b/YuMi/Assets.xcassets/middle/yumi_scope_present_panel_arrow.imageset/yumi_scope_present_panel_arrow@3x.png new file mode 100644 index 00000000..61211b13 Binary files /dev/null and b/YuMi/Assets.xcassets/middle/yumi_scope_present_panel_arrow.imageset/yumi_scope_present_panel_arrow@3x.png differ diff --git a/YuMi/Assets.xcassets/poersioon/Contents.json b/YuMi/Assets.xcassets/poersioon/Contents.json new file mode 100644 index 00000000..e2342777 --- /dev/null +++ b/YuMi/Assets.xcassets/poersioon/Contents.json @@ -0,0 +1,7 @@ +{"info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/poersioon/yumi_version_update_top_background.imageset/Contents.json b/YuMi/Assets.xcassets/poersioon/yumi_version_update_top_background.imageset/Contents.json new file mode 100644 index 00000000..46905590 --- /dev/null +++ b/YuMi/Assets.xcassets/poersioon/yumi_version_update_top_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_version_update_top_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_version_update_top_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/poersioon/yumi_version_update_top_background.imageset/yumi_version_update_top_background@2x.png b/YuMi/Assets.xcassets/poersioon/yumi_version_update_top_background.imageset/yumi_version_update_top_background@2x.png new file mode 100644 index 00000000..4f222711 Binary files /dev/null and b/YuMi/Assets.xcassets/poersioon/yumi_version_update_top_background.imageset/yumi_version_update_top_background@2x.png differ diff --git a/YuMi/Assets.xcassets/poersioon/yumi_version_update_top_background.imageset/yumi_version_update_top_background@3x.png b/YuMi/Assets.xcassets/poersioon/yumi_version_update_top_background.imageset/yumi_version_update_top_background@3x.png new file mode 100644 index 00000000..a0be595c Binary files /dev/null and b/YuMi/Assets.xcassets/poersioon/yumi_version_update_top_background.imageset/yumi_version_update_top_background@3x.png differ diff --git a/YuMi/Assets.xcassets/toast/Contents.json b/YuMi/Assets.xcassets/toast/Contents.json new file mode 100644 index 00000000..e2342777 --- /dev/null +++ b/YuMi/Assets.xcassets/toast/Contents.json @@ -0,0 +1,7 @@ +{"info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/toast/yumi_loading_000.imageset/Contents.json b/YuMi/Assets.xcassets/toast/yumi_loading_000.imageset/Contents.json new file mode 100644 index 00000000..2eb3b3b5 --- /dev/null +++ b/YuMi/Assets.xcassets/toast/yumi_loading_000.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_loading_000.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/toast/yumi_loading_000.imageset/yumi_loading_000.png b/YuMi/Assets.xcassets/toast/yumi_loading_000.imageset/yumi_loading_000.png new file mode 100644 index 00000000..a2572878 Binary files /dev/null and b/YuMi/Assets.xcassets/toast/yumi_loading_000.imageset/yumi_loading_000.png differ diff --git a/YuMi/Assets.xcassets/toast/yumi_loading_001.imageset/Contents.json b/YuMi/Assets.xcassets/toast/yumi_loading_001.imageset/Contents.json new file mode 100644 index 00000000..557f467d --- /dev/null +++ b/YuMi/Assets.xcassets/toast/yumi_loading_001.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_loading_001.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/toast/yumi_loading_001.imageset/yumi_loading_001.png b/YuMi/Assets.xcassets/toast/yumi_loading_001.imageset/yumi_loading_001.png new file mode 100644 index 00000000..7d81c89e Binary files /dev/null and b/YuMi/Assets.xcassets/toast/yumi_loading_001.imageset/yumi_loading_001.png differ diff --git a/YuMi/Assets.xcassets/toast/yumi_loading_002.imageset/Contents.json b/YuMi/Assets.xcassets/toast/yumi_loading_002.imageset/Contents.json new file mode 100644 index 00000000..5ffb90a5 --- /dev/null +++ b/YuMi/Assets.xcassets/toast/yumi_loading_002.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_loading_002.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/toast/yumi_loading_002.imageset/yumi_loading_002.png b/YuMi/Assets.xcassets/toast/yumi_loading_002.imageset/yumi_loading_002.png new file mode 100644 index 00000000..aba45718 Binary files /dev/null and b/YuMi/Assets.xcassets/toast/yumi_loading_002.imageset/yumi_loading_002.png differ diff --git a/YuMi/Assets.xcassets/toast/yumi_loading_003.imageset/Contents.json b/YuMi/Assets.xcassets/toast/yumi_loading_003.imageset/Contents.json new file mode 100644 index 00000000..aeda11fb --- /dev/null +++ b/YuMi/Assets.xcassets/toast/yumi_loading_003.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_loading_003.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/toast/yumi_loading_003.imageset/yumi_loading_003.png b/YuMi/Assets.xcassets/toast/yumi_loading_003.imageset/yumi_loading_003.png new file mode 100644 index 00000000..0d8f3f75 Binary files /dev/null and b/YuMi/Assets.xcassets/toast/yumi_loading_003.imageset/yumi_loading_003.png differ diff --git a/YuMi/Assets.xcassets/toast/yumi_loading_004.imageset/Contents.json b/YuMi/Assets.xcassets/toast/yumi_loading_004.imageset/Contents.json new file mode 100644 index 00000000..efca6935 --- /dev/null +++ b/YuMi/Assets.xcassets/toast/yumi_loading_004.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_loading_004.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/toast/yumi_loading_004.imageset/yumi_loading_004.png b/YuMi/Assets.xcassets/toast/yumi_loading_004.imageset/yumi_loading_004.png new file mode 100644 index 00000000..6bbeafed Binary files /dev/null and b/YuMi/Assets.xcassets/toast/yumi_loading_004.imageset/yumi_loading_004.png differ diff --git a/YuMi/Assets.xcassets/toast/yumi_loading_005.imageset/Contents.json b/YuMi/Assets.xcassets/toast/yumi_loading_005.imageset/Contents.json new file mode 100644 index 00000000..6018f68b --- /dev/null +++ b/YuMi/Assets.xcassets/toast/yumi_loading_005.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_loading_005.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/toast/yumi_loading_005.imageset/yumi_loading_005.png b/YuMi/Assets.xcassets/toast/yumi_loading_005.imageset/yumi_loading_005.png new file mode 100644 index 00000000..ea0c3fa0 Binary files /dev/null and b/YuMi/Assets.xcassets/toast/yumi_loading_005.imageset/yumi_loading_005.png differ diff --git a/YuMi/Assets.xcassets/toast/yumi_loading_006.imageset/Contents.json b/YuMi/Assets.xcassets/toast/yumi_loading_006.imageset/Contents.json new file mode 100644 index 00000000..19f46d7d --- /dev/null +++ b/YuMi/Assets.xcassets/toast/yumi_loading_006.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_loading_006.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/toast/yumi_loading_006.imageset/yumi_loading_006.png b/YuMi/Assets.xcassets/toast/yumi_loading_006.imageset/yumi_loading_006.png new file mode 100644 index 00000000..b65eb922 Binary files /dev/null and b/YuMi/Assets.xcassets/toast/yumi_loading_006.imageset/yumi_loading_006.png differ diff --git a/YuMi/Assets.xcassets/toast/yumi_loading_007.imageset/Contents.json b/YuMi/Assets.xcassets/toast/yumi_loading_007.imageset/Contents.json new file mode 100644 index 00000000..55078a04 --- /dev/null +++ b/YuMi/Assets.xcassets/toast/yumi_loading_007.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_loading_007.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/toast/yumi_loading_007.imageset/yumi_loading_007.png b/YuMi/Assets.xcassets/toast/yumi_loading_007.imageset/yumi_loading_007.png new file mode 100644 index 00000000..032d5e65 Binary files /dev/null and b/YuMi/Assets.xcassets/toast/yumi_loading_007.imageset/yumi_loading_007.png differ diff --git a/YuMi/Assets.xcassets/toast/yumi_loading_008.imageset/Contents.json b/YuMi/Assets.xcassets/toast/yumi_loading_008.imageset/Contents.json new file mode 100644 index 00000000..a1ff5b54 --- /dev/null +++ b/YuMi/Assets.xcassets/toast/yumi_loading_008.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_loading_008.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/toast/yumi_loading_008.imageset/yumi_loading_008.png b/YuMi/Assets.xcassets/toast/yumi_loading_008.imageset/yumi_loading_008.png new file mode 100644 index 00000000..cc4fe0eb Binary files /dev/null and b/YuMi/Assets.xcassets/toast/yumi_loading_008.imageset/yumi_loading_008.png differ diff --git a/YuMi/Assets.xcassets/toast/yumi_loading_009.imageset/Contents.json b/YuMi/Assets.xcassets/toast/yumi_loading_009.imageset/Contents.json new file mode 100644 index 00000000..417842e8 --- /dev/null +++ b/YuMi/Assets.xcassets/toast/yumi_loading_009.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_loading_009.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/toast/yumi_loading_009.imageset/yumi_loading_009.png b/YuMi/Assets.xcassets/toast/yumi_loading_009.imageset/yumi_loading_009.png new file mode 100644 index 00000000..9fca4852 Binary files /dev/null and b/YuMi/Assets.xcassets/toast/yumi_loading_009.imageset/yumi_loading_009.png differ diff --git a/YuMi/Assets.xcassets/toast/yumi_loading_010.imageset/Contents.json b/YuMi/Assets.xcassets/toast/yumi_loading_010.imageset/Contents.json new file mode 100644 index 00000000..aec4cfda --- /dev/null +++ b/YuMi/Assets.xcassets/toast/yumi_loading_010.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_loading_010.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/toast/yumi_loading_010.imageset/yumi_loading_010.png b/YuMi/Assets.xcassets/toast/yumi_loading_010.imageset/yumi_loading_010.png new file mode 100644 index 00000000..282be1bf Binary files /dev/null and b/YuMi/Assets.xcassets/toast/yumi_loading_010.imageset/yumi_loading_010.png differ diff --git a/YuMi/Assets.xcassets/toast/yumi_loading_011.imageset/Contents.json b/YuMi/Assets.xcassets/toast/yumi_loading_011.imageset/Contents.json new file mode 100644 index 00000000..4742a17d --- /dev/null +++ b/YuMi/Assets.xcassets/toast/yumi_loading_011.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_loading_011.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/toast/yumi_loading_011.imageset/yumi_loading_011.png b/YuMi/Assets.xcassets/toast/yumi_loading_011.imageset/yumi_loading_011.png new file mode 100644 index 00000000..3846aaae Binary files /dev/null and b/YuMi/Assets.xcassets/toast/yumi_loading_011.imageset/yumi_loading_011.png differ diff --git a/YuMi/Assets.xcassets/toast/yumi_loading_012.imageset/Contents.json b/YuMi/Assets.xcassets/toast/yumi_loading_012.imageset/Contents.json new file mode 100644 index 00000000..856b1dc3 --- /dev/null +++ b/YuMi/Assets.xcassets/toast/yumi_loading_012.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_loading_012.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/toast/yumi_loading_012.imageset/yumi_loading_012.png b/YuMi/Assets.xcassets/toast/yumi_loading_012.imageset/yumi_loading_012.png new file mode 100644 index 00000000..d753dc7a Binary files /dev/null and b/YuMi/Assets.xcassets/toast/yumi_loading_012.imageset/yumi_loading_012.png differ diff --git a/YuMi/Assets.xcassets/toast/yumi_loading_013.imageset/Contents.json b/YuMi/Assets.xcassets/toast/yumi_loading_013.imageset/Contents.json new file mode 100644 index 00000000..a6d98270 --- /dev/null +++ b/YuMi/Assets.xcassets/toast/yumi_loading_013.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_loading_013.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/toast/yumi_loading_013.imageset/yumi_loading_013.png b/YuMi/Assets.xcassets/toast/yumi_loading_013.imageset/yumi_loading_013.png new file mode 100644 index 00000000..fd1f4251 Binary files /dev/null and b/YuMi/Assets.xcassets/toast/yumi_loading_013.imageset/yumi_loading_013.png differ diff --git a/YuMi/Assets.xcassets/toast/yumi_loading_014.imageset/Contents.json b/YuMi/Assets.xcassets/toast/yumi_loading_014.imageset/Contents.json new file mode 100644 index 00000000..6139d636 --- /dev/null +++ b/YuMi/Assets.xcassets/toast/yumi_loading_014.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_loading_014.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/toast/yumi_loading_014.imageset/yumi_loading_014.png b/YuMi/Assets.xcassets/toast/yumi_loading_014.imageset/yumi_loading_014.png new file mode 100644 index 00000000..d16088b8 Binary files /dev/null and b/YuMi/Assets.xcassets/toast/yumi_loading_014.imageset/yumi_loading_014.png differ diff --git a/YuMi/Assets.xcassets/toast/yumi_loading_015.imageset/Contents.json b/YuMi/Assets.xcassets/toast/yumi_loading_015.imageset/Contents.json new file mode 100644 index 00000000..78b79b46 --- /dev/null +++ b/YuMi/Assets.xcassets/toast/yumi_loading_015.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_loading_015.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/toast/yumi_loading_015.imageset/yumi_loading_015.png b/YuMi/Assets.xcassets/toast/yumi_loading_015.imageset/yumi_loading_015.png new file mode 100644 index 00000000..086ba9da Binary files /dev/null and b/YuMi/Assets.xcassets/toast/yumi_loading_015.imageset/yumi_loading_015.png differ diff --git a/YuMi/Assets.xcassets/toast/yumi_loading_016.imageset/Contents.json b/YuMi/Assets.xcassets/toast/yumi_loading_016.imageset/Contents.json new file mode 100644 index 00000000..5f5065ca --- /dev/null +++ b/YuMi/Assets.xcassets/toast/yumi_loading_016.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_loading_016.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/toast/yumi_loading_016.imageset/yumi_loading_016.png b/YuMi/Assets.xcassets/toast/yumi_loading_016.imageset/yumi_loading_016.png new file mode 100644 index 00000000..49248788 Binary files /dev/null and b/YuMi/Assets.xcassets/toast/yumi_loading_016.imageset/yumi_loading_016.png differ diff --git a/YuMi/Assets.xcassets/toast/yumi_loading_017.imageset/Contents.json b/YuMi/Assets.xcassets/toast/yumi_loading_017.imageset/Contents.json new file mode 100644 index 00000000..e2efe9b6 --- /dev/null +++ b/YuMi/Assets.xcassets/toast/yumi_loading_017.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_loading_017.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/toast/yumi_loading_017.imageset/yumi_loading_017.png b/YuMi/Assets.xcassets/toast/yumi_loading_017.imageset/yumi_loading_017.png new file mode 100644 index 00000000..7608bd62 Binary files /dev/null and b/YuMi/Assets.xcassets/toast/yumi_loading_017.imageset/yumi_loading_017.png differ diff --git a/YuMi/Assets.xcassets/toast/yumi_loading_018.imageset/Contents.json b/YuMi/Assets.xcassets/toast/yumi_loading_018.imageset/Contents.json new file mode 100644 index 00000000..86827043 --- /dev/null +++ b/YuMi/Assets.xcassets/toast/yumi_loading_018.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_loading_018.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/toast/yumi_loading_018.imageset/yumi_loading_018.png b/YuMi/Assets.xcassets/toast/yumi_loading_018.imageset/yumi_loading_018.png new file mode 100644 index 00000000..30f7c248 Binary files /dev/null and b/YuMi/Assets.xcassets/toast/yumi_loading_018.imageset/yumi_loading_018.png differ diff --git a/YuMi/Assets.xcassets/toast/yumi_loading_019.imageset/Contents.json b/YuMi/Assets.xcassets/toast/yumi_loading_019.imageset/Contents.json new file mode 100644 index 00000000..08af0293 --- /dev/null +++ b/YuMi/Assets.xcassets/toast/yumi_loading_019.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_loading_019.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/toast/yumi_loading_019.imageset/yumi_loading_019.png b/YuMi/Assets.xcassets/toast/yumi_loading_019.imageset/yumi_loading_019.png new file mode 100644 index 00000000..7059bcbc Binary files /dev/null and b/YuMi/Assets.xcassets/toast/yumi_loading_019.imageset/yumi_loading_019.png differ diff --git a/YuMi/Assets.xcassets/toast/yumi_loading_020.imageset/Contents.json b/YuMi/Assets.xcassets/toast/yumi_loading_020.imageset/Contents.json new file mode 100644 index 00000000..bd1d3328 --- /dev/null +++ b/YuMi/Assets.xcassets/toast/yumi_loading_020.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_loading_020.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/toast/yumi_loading_020.imageset/yumi_loading_020.png b/YuMi/Assets.xcassets/toast/yumi_loading_020.imageset/yumi_loading_020.png new file mode 100644 index 00000000..ecf9ca3f Binary files /dev/null and b/YuMi/Assets.xcassets/toast/yumi_loading_020.imageset/yumi_loading_020.png differ diff --git a/YuMi/Assets.xcassets/toast/yumi_loading_021.imageset/Contents.json b/YuMi/Assets.xcassets/toast/yumi_loading_021.imageset/Contents.json new file mode 100644 index 00000000..6584d89c --- /dev/null +++ b/YuMi/Assets.xcassets/toast/yumi_loading_021.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_loading_021.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/toast/yumi_loading_021.imageset/yumi_loading_021.png b/YuMi/Assets.xcassets/toast/yumi_loading_021.imageset/yumi_loading_021.png new file mode 100644 index 00000000..1184d3d5 Binary files /dev/null and b/YuMi/Assets.xcassets/toast/yumi_loading_021.imageset/yumi_loading_021.png differ diff --git a/YuMi/Assets.xcassets/toast/yumi_loading_022.imageset/Contents.json b/YuMi/Assets.xcassets/toast/yumi_loading_022.imageset/Contents.json new file mode 100644 index 00000000..0ef0755e --- /dev/null +++ b/YuMi/Assets.xcassets/toast/yumi_loading_022.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_loading_022.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/toast/yumi_loading_022.imageset/yumi_loading_022.png b/YuMi/Assets.xcassets/toast/yumi_loading_022.imageset/yumi_loading_022.png new file mode 100644 index 00000000..08d7ed3b Binary files /dev/null and b/YuMi/Assets.xcassets/toast/yumi_loading_022.imageset/yumi_loading_022.png differ diff --git a/YuMi/Assets.xcassets/toast/yumi_loading_023.imageset/Contents.json b/YuMi/Assets.xcassets/toast/yumi_loading_023.imageset/Contents.json new file mode 100644 index 00000000..8a11577e --- /dev/null +++ b/YuMi/Assets.xcassets/toast/yumi_loading_023.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_loading_023.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/toast/yumi_loading_023.imageset/yumi_loading_023.png b/YuMi/Assets.xcassets/toast/yumi_loading_023.imageset/yumi_loading_023.png new file mode 100644 index 00000000..f8e93bab Binary files /dev/null and b/YuMi/Assets.xcassets/toast/yumi_loading_023.imageset/yumi_loading_023.png differ diff --git a/YuMi/Assets.xcassets/toast/yumi_loading_024.imageset/Contents.json b/YuMi/Assets.xcassets/toast/yumi_loading_024.imageset/Contents.json new file mode 100644 index 00000000..31ff3812 --- /dev/null +++ b/YuMi/Assets.xcassets/toast/yumi_loading_024.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_loading_024.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/toast/yumi_loading_024.imageset/yumi_loading_024.png b/YuMi/Assets.xcassets/toast/yumi_loading_024.imageset/yumi_loading_024.png new file mode 100644 index 00000000..46ba066d Binary files /dev/null and b/YuMi/Assets.xcassets/toast/yumi_loading_024.imageset/yumi_loading_024.png differ diff --git a/YuMi/Assets.xcassets/toast/yumi_loading_025.imageset/Contents.json b/YuMi/Assets.xcassets/toast/yumi_loading_025.imageset/Contents.json new file mode 100644 index 00000000..4e19de97 --- /dev/null +++ b/YuMi/Assets.xcassets/toast/yumi_loading_025.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_loading_025.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/toast/yumi_loading_025.imageset/yumi_loading_025.png b/YuMi/Assets.xcassets/toast/yumi_loading_025.imageset/yumi_loading_025.png new file mode 100644 index 00000000..f8daf3cb Binary files /dev/null and b/YuMi/Assets.xcassets/toast/yumi_loading_025.imageset/yumi_loading_025.png differ diff --git a/YuMi/Assets.xcassets/toast/yumi_loading_026.imageset/Contents.json b/YuMi/Assets.xcassets/toast/yumi_loading_026.imageset/Contents.json new file mode 100644 index 00000000..c4f1328e --- /dev/null +++ b/YuMi/Assets.xcassets/toast/yumi_loading_026.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_loading_026.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/toast/yumi_loading_026.imageset/yumi_loading_026.png b/YuMi/Assets.xcassets/toast/yumi_loading_026.imageset/yumi_loading_026.png new file mode 100644 index 00000000..1f4aad83 Binary files /dev/null and b/YuMi/Assets.xcassets/toast/yumi_loading_026.imageset/yumi_loading_026.png differ diff --git a/YuMi/Assets.xcassets/toast/yumi_loading_027.imageset/Contents.json b/YuMi/Assets.xcassets/toast/yumi_loading_027.imageset/Contents.json new file mode 100644 index 00000000..8c29d3de --- /dev/null +++ b/YuMi/Assets.xcassets/toast/yumi_loading_027.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_loading_027.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/toast/yumi_loading_027.imageset/yumi_loading_027.png b/YuMi/Assets.xcassets/toast/yumi_loading_027.imageset/yumi_loading_027.png new file mode 100644 index 00000000..644138ee Binary files /dev/null and b/YuMi/Assets.xcassets/toast/yumi_loading_027.imageset/yumi_loading_027.png differ diff --git a/YuMi/Assets.xcassets/utils/Contents.json b/YuMi/Assets.xcassets/utils/Contents.json new file mode 100644 index 00000000..e2342777 --- /dev/null +++ b/YuMi/Assets.xcassets/utils/Contents.json @@ -0,0 +1,7 @@ +{"info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/utils/Share/Contents.json b/YuMi/Assets.xcassets/utils/Share/Contents.json new file mode 100644 index 00000000..e2342777 --- /dev/null +++ b/YuMi/Assets.xcassets/utils/Share/Contents.json @@ -0,0 +1,7 @@ +{"info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/utils/Share/yumi_parti_friend.imageset/Contents.json b/YuMi/Assets.xcassets/utils/Share/yumi_parti_friend.imageset/Contents.json new file mode 100644 index 00000000..1329ec52 --- /dev/null +++ b/YuMi/Assets.xcassets/utils/Share/yumi_parti_friend.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_parti_friend@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_parti_friend@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/utils/Share/yumi_parti_friend.imageset/yumi_parti_friend@2x.png b/YuMi/Assets.xcassets/utils/Share/yumi_parti_friend.imageset/yumi_parti_friend@2x.png new file mode 100644 index 00000000..2320b503 Binary files /dev/null and b/YuMi/Assets.xcassets/utils/Share/yumi_parti_friend.imageset/yumi_parti_friend@2x.png differ diff --git a/YuMi/Assets.xcassets/utils/Share/yumi_parti_friend.imageset/yumi_parti_friend@3x.png b/YuMi/Assets.xcassets/utils/Share/yumi_parti_friend.imageset/yumi_parti_friend@3x.png new file mode 100644 index 00000000..76e9abca Binary files /dev/null and b/YuMi/Assets.xcassets/utils/Share/yumi_parti_friend.imageset/yumi_parti_friend@3x.png differ diff --git a/YuMi/Assets.xcassets/utils/Share/yumi_parti_qq_disable.imageset/Contents.json b/YuMi/Assets.xcassets/utils/Share/yumi_parti_qq_disable.imageset/Contents.json new file mode 100644 index 00000000..e36cb641 --- /dev/null +++ b/YuMi/Assets.xcassets/utils/Share/yumi_parti_qq_disable.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_parti_qq_disable@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_parti_qq_disable@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/utils/Share/yumi_parti_qq_disable.imageset/yumi_parti_qq_disable@2x.png b/YuMi/Assets.xcassets/utils/Share/yumi_parti_qq_disable.imageset/yumi_parti_qq_disable@2x.png new file mode 100644 index 00000000..73192243 Binary files /dev/null and b/YuMi/Assets.xcassets/utils/Share/yumi_parti_qq_disable.imageset/yumi_parti_qq_disable@2x.png differ diff --git a/YuMi/Assets.xcassets/utils/Share/yumi_parti_qq_disable.imageset/yumi_parti_qq_disable@3x.png b/YuMi/Assets.xcassets/utils/Share/yumi_parti_qq_disable.imageset/yumi_parti_qq_disable@3x.png new file mode 100644 index 00000000..95bad63b Binary files /dev/null and b/YuMi/Assets.xcassets/utils/Share/yumi_parti_qq_disable.imageset/yumi_parti_qq_disable@3x.png differ diff --git a/YuMi/Assets.xcassets/utils/Share/yumi_parti_qqzone_disable.imageset/Contents.json b/YuMi/Assets.xcassets/utils/Share/yumi_parti_qqzone_disable.imageset/Contents.json new file mode 100644 index 00000000..0ead9fad --- /dev/null +++ b/YuMi/Assets.xcassets/utils/Share/yumi_parti_qqzone_disable.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_parti_qqzone_disable@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_parti_qqzone_disable@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/utils/Share/yumi_parti_qqzone_disable.imageset/yumi_parti_qqzone_disable@2x.png b/YuMi/Assets.xcassets/utils/Share/yumi_parti_qqzone_disable.imageset/yumi_parti_qqzone_disable@2x.png new file mode 100644 index 00000000..f70832e9 Binary files /dev/null and b/YuMi/Assets.xcassets/utils/Share/yumi_parti_qqzone_disable.imageset/yumi_parti_qqzone_disable@2x.png differ diff --git a/YuMi/Assets.xcassets/utils/Share/yumi_parti_qqzone_disable.imageset/yumi_parti_qqzone_disable@3x.png b/YuMi/Assets.xcassets/utils/Share/yumi_parti_qqzone_disable.imageset/yumi_parti_qqzone_disable@3x.png new file mode 100644 index 00000000..df4c5093 Binary files /dev/null and b/YuMi/Assets.xcassets/utils/Share/yumi_parti_qqzone_disable.imageset/yumi_parti_qqzone_disable@3x.png differ diff --git a/YuMi/Assets.xcassets/utils/yumi_same_avatar.imageset/Contents.json b/YuMi/Assets.xcassets/utils/yumi_same_avatar.imageset/Contents.json new file mode 100644 index 00000000..30e747e1 --- /dev/null +++ b/YuMi/Assets.xcassets/utils/yumi_same_avatar.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_same_avatar@2x.png", "idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/utils/yumi_same_avatar.imageset/yumi_same_avatar@2x.png b/YuMi/Assets.xcassets/utils/yumi_same_avatar.imageset/yumi_same_avatar@2x.png new file mode 100644 index 00000000..4d458843 Binary files /dev/null and b/YuMi/Assets.xcassets/utils/yumi_same_avatar.imageset/yumi_same_avatar@2x.png differ diff --git a/YuMi/Assets.xcassets/utils/yumi_same_checkbox_checked.imageset/Contents.json b/YuMi/Assets.xcassets/utils/yumi_same_checkbox_checked.imageset/Contents.json new file mode 100644 index 00000000..587e62e0 --- /dev/null +++ b/YuMi/Assets.xcassets/utils/yumi_same_checkbox_checked.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_same_checkbox_checked@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_same_checkbox_checked@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/utils/yumi_same_checkbox_checked.imageset/yumi_same_checkbox_checked@2x.png b/YuMi/Assets.xcassets/utils/yumi_same_checkbox_checked.imageset/yumi_same_checkbox_checked@2x.png new file mode 100644 index 00000000..96e828c4 Binary files /dev/null and b/YuMi/Assets.xcassets/utils/yumi_same_checkbox_checked.imageset/yumi_same_checkbox_checked@2x.png differ diff --git a/YuMi/Assets.xcassets/utils/yumi_same_checkbox_checked.imageset/yumi_same_checkbox_checked@3x.png b/YuMi/Assets.xcassets/utils/yumi_same_checkbox_checked.imageset/yumi_same_checkbox_checked@3x.png new file mode 100644 index 00000000..6e4b2b42 Binary files /dev/null and b/YuMi/Assets.xcassets/utils/yumi_same_checkbox_checked.imageset/yumi_same_checkbox_checked@3x.png differ diff --git a/YuMi/Assets.xcassets/utils/yumi_same_checkbox_uncheck.imageset/Contents.json b/YuMi/Assets.xcassets/utils/yumi_same_checkbox_uncheck.imageset/Contents.json new file mode 100644 index 00000000..16e167aa --- /dev/null +++ b/YuMi/Assets.xcassets/utils/yumi_same_checkbox_uncheck.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_same_checkbox_uncheck@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_same_checkbox_uncheck@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/utils/yumi_same_checkbox_uncheck.imageset/yumi_same_checkbox_uncheck@2x.png b/YuMi/Assets.xcassets/utils/yumi_same_checkbox_uncheck.imageset/yumi_same_checkbox_uncheck@2x.png new file mode 100644 index 00000000..a1a96976 Binary files /dev/null and b/YuMi/Assets.xcassets/utils/yumi_same_checkbox_uncheck.imageset/yumi_same_checkbox_uncheck@2x.png differ diff --git a/YuMi/Assets.xcassets/utils/yumi_same_checkbox_uncheck.imageset/yumi_same_checkbox_uncheck@3x.png b/YuMi/Assets.xcassets/utils/yumi_same_checkbox_uncheck.imageset/yumi_same_checkbox_uncheck@3x.png new file mode 100644 index 00000000..4fb2a562 Binary files /dev/null and b/YuMi/Assets.xcassets/utils/yumi_same_checkbox_uncheck.imageset/yumi_same_checkbox_uncheck@3x.png differ diff --git a/YuMi/Assets.xcassets/utils/yumi_same_close_white.imageset/Contents.json b/YuMi/Assets.xcassets/utils/yumi_same_close_white.imageset/Contents.json new file mode 100644 index 00000000..53d57bba --- /dev/null +++ b/YuMi/Assets.xcassets/utils/yumi_same_close_white.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_same_close_white@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_same_close_white@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/utils/yumi_same_close_white.imageset/yumi_same_close_white@2x.png b/YuMi/Assets.xcassets/utils/yumi_same_close_white.imageset/yumi_same_close_white@2x.png new file mode 100644 index 00000000..81c35a9b Binary files /dev/null and b/YuMi/Assets.xcassets/utils/yumi_same_close_white.imageset/yumi_same_close_white@2x.png differ diff --git a/YuMi/Assets.xcassets/utils/yumi_same_close_white.imageset/yumi_same_close_white@3x.png b/YuMi/Assets.xcassets/utils/yumi_same_close_white.imageset/yumi_same_close_white@3x.png new file mode 100644 index 00000000..7c0906d7 Binary files /dev/null and b/YuMi/Assets.xcassets/utils/yumi_same_close_white.imageset/yumi_same_close_white@3x.png differ diff --git a/YuMi/Assets.xcassets/utils/yumi_same_diamond.imageset/Contents.json b/YuMi/Assets.xcassets/utils/yumi_same_diamond.imageset/Contents.json new file mode 100644 index 00000000..ef74ad57 --- /dev/null +++ b/YuMi/Assets.xcassets/utils/yumi_same_diamond.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_same_diamond@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_same_diamond@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/utils/yumi_same_diamond.imageset/yumi_same_diamond@2x.png b/YuMi/Assets.xcassets/utils/yumi_same_diamond.imageset/yumi_same_diamond@2x.png new file mode 100644 index 00000000..224577a4 Binary files /dev/null and b/YuMi/Assets.xcassets/utils/yumi_same_diamond.imageset/yumi_same_diamond@2x.png differ diff --git a/YuMi/Assets.xcassets/utils/yumi_same_diamond.imageset/yumi_same_diamond@3x.png b/YuMi/Assets.xcassets/utils/yumi_same_diamond.imageset/yumi_same_diamond@3x.png new file mode 100644 index 00000000..b3b507f6 Binary files /dev/null and b/YuMi/Assets.xcassets/utils/yumi_same_diamond.imageset/yumi_same_diamond@3x.png differ diff --git a/YuMi/Assets.xcassets/utils/yumi_same_empty.imageset/Contents.json b/YuMi/Assets.xcassets/utils/yumi_same_empty.imageset/Contents.json new file mode 100644 index 00000000..0f6ee490 --- /dev/null +++ b/YuMi/Assets.xcassets/utils/yumi_same_empty.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_same_empty@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_same_empty@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/utils/yumi_same_empty.imageset/yumi_same_empty@2x.png b/YuMi/Assets.xcassets/utils/yumi_same_empty.imageset/yumi_same_empty@2x.png new file mode 100644 index 00000000..77e3e7b4 Binary files /dev/null and b/YuMi/Assets.xcassets/utils/yumi_same_empty.imageset/yumi_same_empty@2x.png differ diff --git a/YuMi/Assets.xcassets/utils/yumi_same_empty.imageset/yumi_same_empty@3x.png b/YuMi/Assets.xcassets/utils/yumi_same_empty.imageset/yumi_same_empty@3x.png new file mode 100644 index 00000000..174402d2 Binary files /dev/null and b/YuMi/Assets.xcassets/utils/yumi_same_empty.imageset/yumi_same_empty@3x.png differ diff --git a/YuMi/Assets.xcassets/utils/yumi_same_empty_avatar.imageset/Contents.json b/YuMi/Assets.xcassets/utils/yumi_same_empty_avatar.imageset/Contents.json new file mode 100644 index 00000000..5bafffa3 --- /dev/null +++ b/YuMi/Assets.xcassets/utils/yumi_same_empty_avatar.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_same_empty_avatar@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_same_empty_avatar@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/utils/yumi_same_empty_avatar.imageset/yumi_same_empty_avatar@2x.png b/YuMi/Assets.xcassets/utils/yumi_same_empty_avatar.imageset/yumi_same_empty_avatar@2x.png new file mode 100644 index 00000000..6d15dc28 Binary files /dev/null and b/YuMi/Assets.xcassets/utils/yumi_same_empty_avatar.imageset/yumi_same_empty_avatar@2x.png differ diff --git a/YuMi/Assets.xcassets/utils/yumi_same_empty_avatar.imageset/yumi_same_empty_avatar@3x.png b/YuMi/Assets.xcassets/utils/yumi_same_empty_avatar.imageset/yumi_same_empty_avatar@3x.png new file mode 100644 index 00000000..a381d232 Binary files /dev/null and b/YuMi/Assets.xcassets/utils/yumi_same_empty_avatar.imageset/yumi_same_empty_avatar@3x.png differ diff --git a/YuMi/Assets.xcassets/utils/yumi_same_female.imageset/Contents.json b/YuMi/Assets.xcassets/utils/yumi_same_female.imageset/Contents.json new file mode 100644 index 00000000..38a1d96c --- /dev/null +++ b/YuMi/Assets.xcassets/utils/yumi_same_female.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_same_female@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_same_female@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/utils/yumi_same_female.imageset/yumi_same_female@2x.png b/YuMi/Assets.xcassets/utils/yumi_same_female.imageset/yumi_same_female@2x.png new file mode 100644 index 00000000..89d16ae0 Binary files /dev/null and b/YuMi/Assets.xcassets/utils/yumi_same_female.imageset/yumi_same_female@2x.png differ diff --git a/YuMi/Assets.xcassets/utils/yumi_same_female.imageset/yumi_same_female@3x.png b/YuMi/Assets.xcassets/utils/yumi_same_female.imageset/yumi_same_female@3x.png new file mode 100644 index 00000000..c9ed0554 Binary files /dev/null and b/YuMi/Assets.xcassets/utils/yumi_same_female.imageset/yumi_same_female@3x.png differ diff --git a/YuMi/Assets.xcassets/utils/yumi_same_male.imageset/Contents.json b/YuMi/Assets.xcassets/utils/yumi_same_male.imageset/Contents.json new file mode 100644 index 00000000..3cbe04e7 --- /dev/null +++ b/YuMi/Assets.xcassets/utils/yumi_same_male.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_same_male@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_same_male@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/utils/yumi_same_male.imageset/yumi_same_male@2x.png b/YuMi/Assets.xcassets/utils/yumi_same_male.imageset/yumi_same_male@2x.png new file mode 100644 index 00000000..2020e4ed Binary files /dev/null and b/YuMi/Assets.xcassets/utils/yumi_same_male.imageset/yumi_same_male@2x.png differ diff --git a/YuMi/Assets.xcassets/utils/yumi_same_male.imageset/yumi_same_male@3x.png b/YuMi/Assets.xcassets/utils/yumi_same_male.imageset/yumi_same_male@3x.png new file mode 100644 index 00000000..fe53a6bc Binary files /dev/null and b/YuMi/Assets.xcassets/utils/yumi_same_male.imageset/yumi_same_male@3x.png differ diff --git a/YuMi/Assets.xcassets/utils/yumi_same_new_user.imageset/Contents.json b/YuMi/Assets.xcassets/utils/yumi_same_new_user.imageset/Contents.json new file mode 100644 index 00000000..f553354d --- /dev/null +++ b/YuMi/Assets.xcassets/utils/yumi_same_new_user.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_same_new_user@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_same_new_user@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/utils/yumi_same_new_user.imageset/yumi_same_new_user@2x.png b/YuMi/Assets.xcassets/utils/yumi_same_new_user.imageset/yumi_same_new_user@2x.png new file mode 100644 index 00000000..1628e5e5 Binary files /dev/null and b/YuMi/Assets.xcassets/utils/yumi_same_new_user.imageset/yumi_same_new_user@2x.png differ diff --git a/YuMi/Assets.xcassets/utils/yumi_same_new_user.imageset/yumi_same_new_user@3x.png b/YuMi/Assets.xcassets/utils/yumi_same_new_user.imageset/yumi_same_new_user@3x.png new file mode 100644 index 00000000..452dbb63 Binary files /dev/null and b/YuMi/Assets.xcassets/utils/yumi_same_new_user.imageset/yumi_same_new_user@3x.png differ diff --git a/YuMi/Assets.xcassets/utils/yumi_same_offical.imageset/Contents.json b/YuMi/Assets.xcassets/utils/yumi_same_offical.imageset/Contents.json new file mode 100644 index 00000000..5589e375 --- /dev/null +++ b/YuMi/Assets.xcassets/utils/yumi_same_offical.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_same_offical@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_same_offical@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/utils/yumi_same_offical.imageset/yumi_same_offical@2x.png b/YuMi/Assets.xcassets/utils/yumi_same_offical.imageset/yumi_same_offical@2x.png new file mode 100644 index 00000000..762378ec Binary files /dev/null and b/YuMi/Assets.xcassets/utils/yumi_same_offical.imageset/yumi_same_offical@2x.png differ diff --git a/YuMi/Assets.xcassets/utils/yumi_same_offical.imageset/yumi_same_offical@3x.png b/YuMi/Assets.xcassets/utils/yumi_same_offical.imageset/yumi_same_offical@3x.png new file mode 100644 index 00000000..60e4b7df Binary files /dev/null and b/YuMi/Assets.xcassets/utils/yumi_same_offical.imageset/yumi_same_offical@3x.png differ diff --git a/YuMi/Assets.xcassets/utils/yumi_same_pic_beautiful.imageset/Contents.json b/YuMi/Assets.xcassets/utils/yumi_same_pic_beautiful.imageset/Contents.json new file mode 100644 index 00000000..9243dda6 --- /dev/null +++ b/YuMi/Assets.xcassets/utils/yumi_same_pic_beautiful.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_same_pic_beautiful@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_same_pic_beautiful@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/utils/yumi_same_pic_beautiful.imageset/yumi_same_pic_beautiful@2x.png b/YuMi/Assets.xcassets/utils/yumi_same_pic_beautiful.imageset/yumi_same_pic_beautiful@2x.png new file mode 100644 index 00000000..8c0027dc Binary files /dev/null and b/YuMi/Assets.xcassets/utils/yumi_same_pic_beautiful.imageset/yumi_same_pic_beautiful@2x.png differ diff --git a/YuMi/Assets.xcassets/utils/yumi_same_pic_beautiful.imageset/yumi_same_pic_beautiful@3x.png b/YuMi/Assets.xcassets/utils/yumi_same_pic_beautiful.imageset/yumi_same_pic_beautiful@3x.png new file mode 100644 index 00000000..b2693b8c Binary files /dev/null and b/YuMi/Assets.xcassets/utils/yumi_same_pic_beautiful.imageset/yumi_same_pic_beautiful@3x.png differ diff --git a/YuMi/Assets.xcassets/utils/yumi_same_right_arrow.imageset/Contents.json b/YuMi/Assets.xcassets/utils/yumi_same_right_arrow.imageset/Contents.json new file mode 100644 index 00000000..72e01338 --- /dev/null +++ b/YuMi/Assets.xcassets/utils/yumi_same_right_arrow.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_same_right_arrow@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_same_right_arrow@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/utils/yumi_same_right_arrow.imageset/yumi_same_right_arrow@2x.png b/YuMi/Assets.xcassets/utils/yumi_same_right_arrow.imageset/yumi_same_right_arrow@2x.png new file mode 100644 index 00000000..78cc4b36 Binary files /dev/null and b/YuMi/Assets.xcassets/utils/yumi_same_right_arrow.imageset/yumi_same_right_arrow@2x.png differ diff --git a/YuMi/Assets.xcassets/utils/yumi_same_right_arrow.imageset/yumi_same_right_arrow@3x.png b/YuMi/Assets.xcassets/utils/yumi_same_right_arrow.imageset/yumi_same_right_arrow@3x.png new file mode 100644 index 00000000..e7b60966 Binary files /dev/null and b/YuMi/Assets.xcassets/utils/yumi_same_right_arrow.imageset/yumi_same_right_arrow@3x.png differ diff --git a/YuMi/Assets.xcassets/utils/yumi_same_super_admin.imageset/Contents.json b/YuMi/Assets.xcassets/utils/yumi_same_super_admin.imageset/Contents.json new file mode 100644 index 00000000..062f58fc --- /dev/null +++ b/YuMi/Assets.xcassets/utils/yumi_same_super_admin.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_same_super_admin@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_same_super_admin@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/utils/yumi_same_super_admin.imageset/yumi_same_super_admin@2x.png b/YuMi/Assets.xcassets/utils/yumi_same_super_admin.imageset/yumi_same_super_admin@2x.png new file mode 100644 index 00000000..00b91a28 Binary files /dev/null and b/YuMi/Assets.xcassets/utils/yumi_same_super_admin.imageset/yumi_same_super_admin@2x.png differ diff --git a/YuMi/Assets.xcassets/utils/yumi_same_super_admin.imageset/yumi_same_super_admin@3x.png b/YuMi/Assets.xcassets/utils/yumi_same_super_admin.imageset/yumi_same_super_admin@3x.png new file mode 100644 index 00000000..61476bc5 Binary files /dev/null and b/YuMi/Assets.xcassets/utils/yumi_same_super_admin.imageset/yumi_same_super_admin@3x.png differ diff --git a/YuMi/Assets.xcassets/utils/yumi_same_title_back.imageset/Contents.json b/YuMi/Assets.xcassets/utils/yumi_same_title_back.imageset/Contents.json new file mode 100644 index 00000000..a2d8dc94 --- /dev/null +++ b/YuMi/Assets.xcassets/utils/yumi_same_title_back.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_same_title_back@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_same_title_back@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/utils/yumi_same_title_back.imageset/yumi_same_title_back@2x.png b/YuMi/Assets.xcassets/utils/yumi_same_title_back.imageset/yumi_same_title_back@2x.png new file mode 100644 index 00000000..cb4dccef Binary files /dev/null and b/YuMi/Assets.xcassets/utils/yumi_same_title_back.imageset/yumi_same_title_back@2x.png differ diff --git a/YuMi/Assets.xcassets/utils/yumi_same_title_back.imageset/yumi_same_title_back@3x.png b/YuMi/Assets.xcassets/utils/yumi_same_title_back.imageset/yumi_same_title_back@3x.png new file mode 100644 index 00000000..cda46398 Binary files /dev/null and b/YuMi/Assets.xcassets/utils/yumi_same_title_back.imageset/yumi_same_title_back@3x.png differ diff --git a/YuMi/Assets.xcassets/yeeat/Contents.json b/YuMi/Assets.xcassets/yeeat/Contents.json new file mode 100644 index 00000000..e2342777 --- /dev/null +++ b/YuMi/Assets.xcassets/yeeat/Contents.json @@ -0,0 +1,7 @@ +{"info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yeeat/yumi_parti_copy_link.imageset/Contents.json b/YuMi/Assets.xcassets/yeeat/yumi_parti_copy_link.imageset/Contents.json new file mode 100644 index 00000000..eb83c77f --- /dev/null +++ b/YuMi/Assets.xcassets/yeeat/yumi_parti_copy_link.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_parti_copy_link@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_parti_copy_link@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yeeat/yumi_parti_copy_link.imageset/yumi_parti_copy_link@2x.png b/YuMi/Assets.xcassets/yeeat/yumi_parti_copy_link.imageset/yumi_parti_copy_link@2x.png new file mode 100644 index 00000000..403c9556 Binary files /dev/null and b/YuMi/Assets.xcassets/yeeat/yumi_parti_copy_link.imageset/yumi_parti_copy_link@2x.png differ diff --git a/YuMi/Assets.xcassets/yeeat/yumi_parti_copy_link.imageset/yumi_parti_copy_link@3x.png b/YuMi/Assets.xcassets/yeeat/yumi_parti_copy_link.imageset/yumi_parti_copy_link@3x.png new file mode 100644 index 00000000..df872cf1 Binary files /dev/null and b/YuMi/Assets.xcassets/yeeat/yumi_parti_copy_link.imageset/yumi_parti_copy_link@3x.png differ diff --git a/YuMi/Assets.xcassets/yeeat/yumi_parti_fb.imageset/Contents.json b/YuMi/Assets.xcassets/yeeat/yumi_parti_fb.imageset/Contents.json new file mode 100644 index 00000000..79535cb7 --- /dev/null +++ b/YuMi/Assets.xcassets/yeeat/yumi_parti_fb.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_parti_fb@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_parti_fb@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yeeat/yumi_parti_fb.imageset/yumi_parti_fb@2x.png b/YuMi/Assets.xcassets/yeeat/yumi_parti_fb.imageset/yumi_parti_fb@2x.png new file mode 100644 index 00000000..503fc4ea Binary files /dev/null and b/YuMi/Assets.xcassets/yeeat/yumi_parti_fb.imageset/yumi_parti_fb@2x.png differ diff --git a/YuMi/Assets.xcassets/yeeat/yumi_parti_fb.imageset/yumi_parti_fb@3x.png b/YuMi/Assets.xcassets/yeeat/yumi_parti_fb.imageset/yumi_parti_fb@3x.png new file mode 100644 index 00000000..91a86ae2 Binary files /dev/null and b/YuMi/Assets.xcassets/yeeat/yumi_parti_fb.imageset/yumi_parti_fb@3x.png differ diff --git a/YuMi/Assets.xcassets/yeeat/yumi_parti_line.imageset/Contents.json b/YuMi/Assets.xcassets/yeeat/yumi_parti_line.imageset/Contents.json new file mode 100644 index 00000000..4a778c5e --- /dev/null +++ b/YuMi/Assets.xcassets/yeeat/yumi_parti_line.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_parti_line@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_parti_line@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yeeat/yumi_parti_line.imageset/yumi_parti_line@2x.png b/YuMi/Assets.xcassets/yeeat/yumi_parti_line.imageset/yumi_parti_line@2x.png new file mode 100644 index 00000000..cb6b55ff Binary files /dev/null and b/YuMi/Assets.xcassets/yeeat/yumi_parti_line.imageset/yumi_parti_line@2x.png differ diff --git a/YuMi/Assets.xcassets/yeeat/yumi_parti_line.imageset/yumi_parti_line@3x.png b/YuMi/Assets.xcassets/yeeat/yumi_parti_line.imageset/yumi_parti_line@3x.png new file mode 100644 index 00000000..b4229a5b Binary files /dev/null and b/YuMi/Assets.xcassets/yeeat/yumi_parti_line.imageset/yumi_parti_line@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/Contents.json b/YuMi/Assets.xcassets/yna/AcrossRoomPK/Contents.json new file mode 100644 index 00000000..e2342777 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/AcrossRoomPK/Contents.json @@ -0,0 +1,7 @@ +{"info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_acrossPK_countDown_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_acrossPK_countDown_background.imageset/Contents.json new file mode 100644 index 00000000..af8b039b --- /dev/null +++ b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_acrossPK_countDown_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_acrossPK_countDown_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_acrossPK_countDown_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_acrossPK_countDown_background.imageset/yumi_acrossPK_countDown_background@2x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_acrossPK_countDown_background.imageset/yumi_acrossPK_countDown_background@2x.png new file mode 100644 index 00000000..36d6c850 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_acrossPK_countDown_background.imageset/yumi_acrossPK_countDown_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_acrossPK_countDown_background.imageset/yumi_acrossPK_countDown_background@3x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_acrossPK_countDown_background.imageset/yumi_acrossPK_countDown_background@3x.png new file mode 100644 index 00000000..1b3e6907 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_acrossPK_countDown_background.imageset/yumi_acrossPK_countDown_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_acrossPK_countDown_left_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_acrossPK_countDown_left_background.imageset/Contents.json new file mode 100644 index 00000000..43bc9983 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_acrossPK_countDown_left_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_acrossPK_countDown_left_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_acrossPK_countDown_left_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_acrossPK_countDown_left_background.imageset/yumi_acrossPK_countDown_left_background@2x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_acrossPK_countDown_left_background.imageset/yumi_acrossPK_countDown_left_background@2x.png new file mode 100644 index 00000000..8d28c05b Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_acrossPK_countDown_left_background.imageset/yumi_acrossPK_countDown_left_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_acrossPK_countDown_left_background.imageset/yumi_acrossPK_countDown_left_background@3x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_acrossPK_countDown_left_background.imageset/yumi_acrossPK_countDown_left_background@3x.png new file mode 100644 index 00000000..ef16dd9f Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_acrossPK_countDown_left_background.imageset/yumi_acrossPK_countDown_left_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_anchor_pk_invite_pic.imageset/Contents.json b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_anchor_pk_invite_pic.imageset/Contents.json new file mode 100644 index 00000000..96edebed --- /dev/null +++ b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_anchor_pk_invite_pic.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_anchor_pk_invite_pic@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_anchor_pk_invite_pic@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_anchor_pk_invite_pic.imageset/yumi_anchor_pk_invite_pic@2x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_anchor_pk_invite_pic.imageset/yumi_anchor_pk_invite_pic@2x.png new file mode 100644 index 00000000..d35132e9 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_anchor_pk_invite_pic.imageset/yumi_anchor_pk_invite_pic@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_anchor_pk_invite_pic.imageset/yumi_anchor_pk_invite_pic@3x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_anchor_pk_invite_pic.imageset/yumi_anchor_pk_invite_pic@3x.png new file mode 100644 index 00000000..4e14e661 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_anchor_pk_invite_pic.imageset/yumi_anchor_pk_invite_pic@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_anchor_pk_mute_other.imageset/Contents.json b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_anchor_pk_mute_other.imageset/Contents.json new file mode 100644 index 00000000..45aa7673 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_anchor_pk_mute_other.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_anchor_pk_mute_other@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_anchor_pk_mute_other@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_anchor_pk_mute_other.imageset/yumi_anchor_pk_mute_other@2x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_anchor_pk_mute_other.imageset/yumi_anchor_pk_mute_other@2x.png new file mode 100644 index 00000000..5c1b63c2 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_anchor_pk_mute_other.imageset/yumi_anchor_pk_mute_other@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_anchor_pk_mute_other.imageset/yumi_anchor_pk_mute_other@3x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_anchor_pk_mute_other.imageset/yumi_anchor_pk_mute_other@3x.png new file mode 100644 index 00000000..24d6471d Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_anchor_pk_mute_other.imageset/yumi_anchor_pk_mute_other@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_anchor_pk_open_other.imageset/Contents.json b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_anchor_pk_open_other.imageset/Contents.json new file mode 100644 index 00000000..3ba0e43b --- /dev/null +++ b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_anchor_pk_open_other.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_anchor_pk_open_other@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_anchor_pk_open_other@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_anchor_pk_open_other.imageset/yumi_anchor_pk_open_other@2x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_anchor_pk_open_other.imageset/yumi_anchor_pk_open_other@2x.png new file mode 100644 index 00000000..d24299c8 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_anchor_pk_open_other.imageset/yumi_anchor_pk_open_other@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_anchor_pk_open_other.imageset/yumi_anchor_pk_open_other@3x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_anchor_pk_open_other.imageset/yumi_anchor_pk_open_other@3x.png new file mode 100644 index 00000000..f9ad4cc7 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_anchor_pk_open_other.imageset/yumi_anchor_pk_open_other@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_anchor_pk_random_pic.imageset/Contents.json b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_anchor_pk_random_pic.imageset/Contents.json new file mode 100644 index 00000000..42151371 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_anchor_pk_random_pic.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_anchor_pk_random_pic@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_anchor_pk_random_pic@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_anchor_pk_random_pic.imageset/yumi_anchor_pk_random_pic@2x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_anchor_pk_random_pic.imageset/yumi_anchor_pk_random_pic@2x.png new file mode 100644 index 00000000..02350819 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_anchor_pk_random_pic.imageset/yumi_anchor_pk_random_pic@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_anchor_pk_random_pic.imageset/yumi_anchor_pk_random_pic@3x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_anchor_pk_random_pic.imageset/yumi_anchor_pk_random_pic@3x.png new file mode 100644 index 00000000..9ddd35b6 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_anchor_pk_random_pic.imageset/yumi_anchor_pk_random_pic@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_roomg_across_pk_choose_normal.imageset/Contents.json b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_roomg_across_pk_choose_normal.imageset/Contents.json new file mode 100644 index 00000000..b3643651 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_roomg_across_pk_choose_normal.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_roomg_across_pk_choose_normal@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_roomg_across_pk_choose_normal@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_roomg_across_pk_choose_normal.imageset/yumi_roomg_across_pk_choose_normal@2x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_roomg_across_pk_choose_normal.imageset/yumi_roomg_across_pk_choose_normal@2x.png new file mode 100644 index 00000000..b6dc109e Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_roomg_across_pk_choose_normal.imageset/yumi_roomg_across_pk_choose_normal@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_roomg_across_pk_choose_normal.imageset/yumi_roomg_across_pk_choose_normal@3x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_roomg_across_pk_choose_normal.imageset/yumi_roomg_across_pk_choose_normal@3x.png new file mode 100644 index 00000000..53129c2e Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_roomg_across_pk_choose_normal.imageset/yumi_roomg_across_pk_choose_normal@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_roomg_across_pk_choose_select.imageset/Contents.json b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_roomg_across_pk_choose_select.imageset/Contents.json new file mode 100644 index 00000000..5574650d --- /dev/null +++ b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_roomg_across_pk_choose_select.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_roomg_across_pk_choose_select@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_roomg_across_pk_choose_select@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_roomg_across_pk_choose_select.imageset/yumi_roomg_across_pk_choose_select@2x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_roomg_across_pk_choose_select.imageset/yumi_roomg_across_pk_choose_select@2x.png new file mode 100644 index 00000000..5086f3ba Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_roomg_across_pk_choose_select.imageset/yumi_roomg_across_pk_choose_select@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_roomg_across_pk_choose_select.imageset/yumi_roomg_across_pk_choose_select@3x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_roomg_across_pk_choose_select.imageset/yumi_roomg_across_pk_choose_select@3x.png new file mode 100644 index 00000000..037fbc38 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_roomg_across_pk_choose_select.imageset/yumi_roomg_across_pk_choose_select@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_delete_pk_room.imageset/Contents.json b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_delete_pk_room.imageset/Contents.json new file mode 100644 index 00000000..8cce3a3f --- /dev/null +++ b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_delete_pk_room.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_across_delete_pk_room@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_across_delete_pk_room@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_delete_pk_room.imageset/yumi_scope_across_delete_pk_room@2x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_delete_pk_room.imageset/yumi_scope_across_delete_pk_room@2x.png new file mode 100644 index 00000000..6b635b94 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_delete_pk_room.imageset/yumi_scope_across_delete_pk_room@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_delete_pk_room.imageset/yumi_scope_across_delete_pk_room@3x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_delete_pk_room.imageset/yumi_scope_across_delete_pk_room@3x.png new file mode 100644 index 00000000..410f4372 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_delete_pk_room.imageset/yumi_scope_across_delete_pk_room@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_add_room.imageset/Contents.json b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_add_room.imageset/Contents.json new file mode 100644 index 00000000..630050eb --- /dev/null +++ b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_add_room.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_across_pk_add_room@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_across_pk_add_room@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_add_room.imageset/yumi_scope_across_pk_add_room@2x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_add_room.imageset/yumi_scope_across_pk_add_room@2x.png new file mode 100644 index 00000000..596d56d9 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_add_room.imageset/yumi_scope_across_pk_add_room@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_add_room.imageset/yumi_scope_across_pk_add_room@3x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_add_room.imageset/yumi_scope_across_pk_add_room@3x.png new file mode 100644 index 00000000..c4c61f74 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_add_room.imageset/yumi_scope_across_pk_add_room@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_help.imageset/Contents.json b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_help.imageset/Contents.json new file mode 100644 index 00000000..7b4b58e4 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_help.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_across_pk_help@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_across_pk_help@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_help.imageset/yumi_scope_across_pk_help@2x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_help.imageset/yumi_scope_across_pk_help@2x.png new file mode 100644 index 00000000..2f1847ff Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_help.imageset/yumi_scope_across_pk_help@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_help.imageset/yumi_scope_across_pk_help@3x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_help.imageset/yumi_scope_across_pk_help@3x.png new file mode 100644 index 00000000..d5828dc4 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_help.imageset/yumi_scope_across_pk_help@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_invite_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_invite_background.imageset/Contents.json new file mode 100644 index 00000000..423f65b3 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_invite_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_across_pk_invite_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_across_pk_invite_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_invite_background.imageset/yumi_scope_across_pk_invite_background@2x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_invite_background.imageset/yumi_scope_across_pk_invite_background@2x.png new file mode 100644 index 00000000..fe4d7f78 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_invite_background.imageset/yumi_scope_across_pk_invite_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_invite_background.imageset/yumi_scope_across_pk_invite_background@3x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_invite_background.imageset/yumi_scope_across_pk_invite_background@3x.png new file mode 100644 index 00000000..b423b02e Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_invite_background.imageset/yumi_scope_across_pk_invite_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_invite_result_accept_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_invite_result_accept_background.imageset/Contents.json new file mode 100644 index 00000000..6d4347ab --- /dev/null +++ b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_invite_result_accept_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_across_pk_invite_result_accept_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_across_pk_invite_result_accept_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_invite_result_accept_background.imageset/yumi_scope_across_pk_invite_result_accept_background@2x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_invite_result_accept_background.imageset/yumi_scope_across_pk_invite_result_accept_background@2x.png new file mode 100644 index 00000000..84081415 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_invite_result_accept_background.imageset/yumi_scope_across_pk_invite_result_accept_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_invite_result_accept_background.imageset/yumi_scope_across_pk_invite_result_accept_background@3x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_invite_result_accept_background.imageset/yumi_scope_across_pk_invite_result_accept_background@3x.png new file mode 100644 index 00000000..44950d5b Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_invite_result_accept_background.imageset/yumi_scope_across_pk_invite_result_accept_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_invite_result_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_invite_result_background.imageset/Contents.json new file mode 100644 index 00000000..ab550dc7 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_invite_result_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_across_pk_invite_result_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_across_pk_invite_result_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_invite_result_background.imageset/yumi_scope_across_pk_invite_result_background@2x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_invite_result_background.imageset/yumi_scope_across_pk_invite_result_background@2x.png new file mode 100644 index 00000000..33b08841 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_invite_result_background.imageset/yumi_scope_across_pk_invite_result_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_invite_result_background.imageset/yumi_scope_across_pk_invite_result_background@3x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_invite_result_background.imageset/yumi_scope_across_pk_invite_result_background@3x.png new file mode 100644 index 00000000..742f3ecb Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_invite_result_background.imageset/yumi_scope_across_pk_invite_result_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_invite_result_close.imageset/Contents.json b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_invite_result_close.imageset/Contents.json new file mode 100644 index 00000000..92f07b21 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_invite_result_close.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_across_pk_invite_result_close@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_across_pk_invite_result_close@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_invite_result_close.imageset/yumi_scope_across_pk_invite_result_close@2x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_invite_result_close.imageset/yumi_scope_across_pk_invite_result_close@2x.png new file mode 100644 index 00000000..4f59fc70 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_invite_result_close.imageset/yumi_scope_across_pk_invite_result_close@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_invite_result_close.imageset/yumi_scope_across_pk_invite_result_close@3x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_invite_result_close.imageset/yumi_scope_across_pk_invite_result_close@3x.png new file mode 100644 index 00000000..a5a1cd0f Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_invite_result_close.imageset/yumi_scope_across_pk_invite_result_close@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_background.imageset/Contents.json new file mode 100644 index 00000000..a535fa49 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_across_pk_panel_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_across_pk_panel_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_background.imageset/yumi_scope_across_pk_panel_background@2x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_background.imageset/yumi_scope_across_pk_panel_background@2x.png new file mode 100644 index 00000000..deb8c08b Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_background.imageset/yumi_scope_across_pk_panel_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_background.imageset/yumi_scope_across_pk_panel_background@3x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_background.imageset/yumi_scope_across_pk_panel_background@3x.png new file mode 100644 index 00000000..59f41a55 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_background.imageset/yumi_scope_across_pk_panel_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_charm_avatar.imageset/Contents.json b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_charm_avatar.imageset/Contents.json new file mode 100644 index 00000000..d917a38a --- /dev/null +++ b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_charm_avatar.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_across_pk_panel_charm_avatar@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_across_pk_panel_charm_avatar@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_charm_avatar.imageset/yumi_scope_across_pk_panel_charm_avatar@2x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_charm_avatar.imageset/yumi_scope_across_pk_panel_charm_avatar@2x.png new file mode 100644 index 00000000..e8fc0b01 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_charm_avatar.imageset/yumi_scope_across_pk_panel_charm_avatar@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_charm_avatar.imageset/yumi_scope_across_pk_panel_charm_avatar@3x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_charm_avatar.imageset/yumi_scope_across_pk_panel_charm_avatar@3x.png new file mode 100644 index 00000000..52c26be4 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_charm_avatar.imageset/yumi_scope_across_pk_panel_charm_avatar@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_charm_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_charm_background.imageset/Contents.json new file mode 100644 index 00000000..d12c2240 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_charm_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_across_pk_panel_charm_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_across_pk_panel_charm_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_charm_background.imageset/yumi_scope_across_pk_panel_charm_background@2x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_charm_background.imageset/yumi_scope_across_pk_panel_charm_background@2x.png new file mode 100644 index 00000000..63d4ed6b Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_charm_background.imageset/yumi_scope_across_pk_panel_charm_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_charm_background.imageset/yumi_scope_across_pk_panel_charm_background@3x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_charm_background.imageset/yumi_scope_across_pk_panel_charm_background@3x.png new file mode 100644 index 00000000..3a13d437 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_charm_background.imageset/yumi_scope_across_pk_panel_charm_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_charm_head.imageset/Contents.json b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_charm_head.imageset/Contents.json new file mode 100644 index 00000000..2c026d14 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_charm_head.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_across_pk_panel_charm_head@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_across_pk_panel_charm_head@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_charm_head.imageset/yumi_scope_across_pk_panel_charm_head@2x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_charm_head.imageset/yumi_scope_across_pk_panel_charm_head@2x.png new file mode 100644 index 00000000..21153548 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_charm_head.imageset/yumi_scope_across_pk_panel_charm_head@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_charm_head.imageset/yumi_scope_across_pk_panel_charm_head@3x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_charm_head.imageset/yumi_scope_across_pk_panel_charm_head@3x.png new file mode 100644 index 00000000..b423f4ec Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_charm_head.imageset/yumi_scope_across_pk_panel_charm_head@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_contribute_avatar.imageset/Contents.json b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_contribute_avatar.imageset/Contents.json new file mode 100644 index 00000000..996f7784 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_contribute_avatar.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_across_pk_panel_contribute_avatar@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_across_pk_panel_contribute_avatar@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_contribute_avatar.imageset/yumi_scope_across_pk_panel_contribute_avatar@2x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_contribute_avatar.imageset/yumi_scope_across_pk_panel_contribute_avatar@2x.png new file mode 100644 index 00000000..a8d92b1e Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_contribute_avatar.imageset/yumi_scope_across_pk_panel_contribute_avatar@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_contribute_avatar.imageset/yumi_scope_across_pk_panel_contribute_avatar@3x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_contribute_avatar.imageset/yumi_scope_across_pk_panel_contribute_avatar@3x.png new file mode 100644 index 00000000..92cd2e7d Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_contribute_avatar.imageset/yumi_scope_across_pk_panel_contribute_avatar@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_contribute_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_contribute_background.imageset/Contents.json new file mode 100644 index 00000000..d4c548e9 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_contribute_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_across_pk_panel_contribute_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_across_pk_panel_contribute_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_contribute_background.imageset/yumi_scope_across_pk_panel_contribute_background@2x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_contribute_background.imageset/yumi_scope_across_pk_panel_contribute_background@2x.png new file mode 100644 index 00000000..660ab7c4 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_contribute_background.imageset/yumi_scope_across_pk_panel_contribute_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_contribute_background.imageset/yumi_scope_across_pk_panel_contribute_background@3x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_contribute_background.imageset/yumi_scope_across_pk_panel_contribute_background@3x.png new file mode 100644 index 00000000..fbc206fe Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_contribute_background.imageset/yumi_scope_across_pk_panel_contribute_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_contribute_head.imageset/Contents.json b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_contribute_head.imageset/Contents.json new file mode 100644 index 00000000..608c6a01 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_contribute_head.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_across_pk_panel_contribute_head@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_across_pk_panel_contribute_head@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_contribute_head.imageset/yumi_scope_across_pk_panel_contribute_head@2x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_contribute_head.imageset/yumi_scope_across_pk_panel_contribute_head@2x.png new file mode 100644 index 00000000..653ac777 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_contribute_head.imageset/yumi_scope_across_pk_panel_contribute_head@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_contribute_head.imageset/yumi_scope_across_pk_panel_contribute_head@3x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_contribute_head.imageset/yumi_scope_across_pk_panel_contribute_head@3x.png new file mode 100644 index 00000000..2352713d Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_contribute_head.imageset/yumi_scope_across_pk_panel_contribute_head@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_fold.imageset/Contents.json b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_fold.imageset/Contents.json new file mode 100644 index 00000000..7bf95ea6 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_fold.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_across_pk_panel_fold@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_across_pk_panel_fold@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_fold.imageset/yumi_scope_across_pk_panel_fold@2x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_fold.imageset/yumi_scope_across_pk_panel_fold@2x.png new file mode 100644 index 00000000..4b07819a Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_fold.imageset/yumi_scope_across_pk_panel_fold@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_fold.imageset/yumi_scope_across_pk_panel_fold@3x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_fold.imageset/yumi_scope_across_pk_panel_fold@3x.png new file mode 100644 index 00000000..2a8e5414 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_fold.imageset/yumi_scope_across_pk_panel_fold@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_help.imageset/Contents.json b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_help.imageset/Contents.json new file mode 100644 index 00000000..3528d27a --- /dev/null +++ b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_help.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_across_pk_panel_help@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_across_pk_panel_help@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_help.imageset/yumi_scope_across_pk_panel_help@2x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_help.imageset/yumi_scope_across_pk_panel_help@2x.png new file mode 100644 index 00000000..a78b7c60 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_help.imageset/yumi_scope_across_pk_panel_help@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_help.imageset/yumi_scope_across_pk_panel_help@3x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_help.imageset/yumi_scope_across_pk_panel_help@3x.png new file mode 100644 index 00000000..d1111f7b Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_help.imageset/yumi_scope_across_pk_panel_help@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_rule_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_rule_background.imageset/Contents.json new file mode 100644 index 00000000..aff8c2ef --- /dev/null +++ b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_rule_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_across_pk_panel_rule_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_across_pk_panel_rule_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_rule_background.imageset/yumi_scope_across_pk_panel_rule_background@2x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_rule_background.imageset/yumi_scope_across_pk_panel_rule_background@2x.png new file mode 100644 index 00000000..452c94a5 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_rule_background.imageset/yumi_scope_across_pk_panel_rule_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_rule_background.imageset/yumi_scope_across_pk_panel_rule_background@3x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_rule_background.imageset/yumi_scope_across_pk_panel_rule_background@3x.png new file mode 100644 index 00000000..aa660230 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_rule_background.imageset/yumi_scope_across_pk_panel_rule_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_small_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_small_background.imageset/Contents.json new file mode 100644 index 00000000..33fe7b09 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_small_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_across_pk_panel_small_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_across_pk_panel_small_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_small_background.imageset/yumi_scope_across_pk_panel_small_background@2x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_small_background.imageset/yumi_scope_across_pk_panel_small_background@2x.png new file mode 100644 index 00000000..b35bb8ed Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_small_background.imageset/yumi_scope_across_pk_panel_small_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_small_background.imageset/yumi_scope_across_pk_panel_small_background@3x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_small_background.imageset/yumi_scope_across_pk_panel_small_background@3x.png new file mode 100644 index 00000000..b6884cfb Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_panel_small_background.imageset/yumi_scope_across_pk_panel_small_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_prize_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_prize_background.imageset/Contents.json new file mode 100644 index 00000000..b035e2d0 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_prize_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_across_pk_prize_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_across_pk_prize_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_prize_background.imageset/yumi_scope_across_pk_prize_background@2x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_prize_background.imageset/yumi_scope_across_pk_prize_background@2x.png new file mode 100644 index 00000000..21672567 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_prize_background.imageset/yumi_scope_across_pk_prize_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_prize_background.imageset/yumi_scope_across_pk_prize_background@3x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_prize_background.imageset/yumi_scope_across_pk_prize_background@3x.png new file mode 100644 index 00000000..129a5772 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_prize_background.imageset/yumi_scope_across_pk_prize_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_prize_ko.imageset/Contents.json b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_prize_ko.imageset/Contents.json new file mode 100644 index 00000000..efd01ed9 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_prize_ko.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_across_pk_prize_ko@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_across_pk_prize_ko@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_prize_ko.imageset/yumi_scope_across_pk_prize_ko@2x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_prize_ko.imageset/yumi_scope_across_pk_prize_ko@2x.png new file mode 100644 index 00000000..adce8f05 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_prize_ko.imageset/yumi_scope_across_pk_prize_ko@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_prize_ko.imageset/yumi_scope_across_pk_prize_ko@3x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_prize_ko.imageset/yumi_scope_across_pk_prize_ko@3x.png new file mode 100644 index 00000000..e52ff8ea Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_prize_ko.imageset/yumi_scope_across_pk_prize_ko@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_fail_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_fail_background.imageset/Contents.json new file mode 100644 index 00000000..95846949 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_fail_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_across_pk_result_fail_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_across_pk_result_fail_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_fail_background.imageset/yumi_scope_across_pk_result_fail_background@2x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_fail_background.imageset/yumi_scope_across_pk_result_fail_background@2x.png new file mode 100644 index 00000000..5b6d405a Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_fail_background.imageset/yumi_scope_across_pk_result_fail_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_fail_background.imageset/yumi_scope_across_pk_result_fail_background@3x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_fail_background.imageset/yumi_scope_across_pk_result_fail_background@3x.png new file mode 100644 index 00000000..9a093616 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_fail_background.imageset/yumi_scope_across_pk_result_fail_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_fail_close.imageset/Contents.json b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_fail_close.imageset/Contents.json new file mode 100644 index 00000000..1233f62f --- /dev/null +++ b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_fail_close.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_across_pk_result_fail_close@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_across_pk_result_fail_close@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_fail_close.imageset/yumi_scope_across_pk_result_fail_close@2x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_fail_close.imageset/yumi_scope_across_pk_result_fail_close@2x.png new file mode 100644 index 00000000..dff3dd33 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_fail_close.imageset/yumi_scope_across_pk_result_fail_close@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_fail_close.imageset/yumi_scope_across_pk_result_fail_close@3x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_fail_close.imageset/yumi_scope_across_pk_result_fail_close@3x.png new file mode 100644 index 00000000..851fb286 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_fail_close.imageset/yumi_scope_across_pk_result_fail_close@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_fail_person_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_fail_person_background.imageset/Contents.json new file mode 100644 index 00000000..84b2a3c2 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_fail_person_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_across_pk_result_fail_person_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_across_pk_result_fail_person_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_fail_person_background.imageset/yumi_scope_across_pk_result_fail_person_background@2x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_fail_person_background.imageset/yumi_scope_across_pk_result_fail_person_background@2x.png new file mode 100644 index 00000000..678b5ece Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_fail_person_background.imageset/yumi_scope_across_pk_result_fail_person_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_fail_person_background.imageset/yumi_scope_across_pk_result_fail_person_background@3x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_fail_person_background.imageset/yumi_scope_across_pk_result_fail_person_background@3x.png new file mode 100644 index 00000000..e4036301 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_fail_person_background.imageset/yumi_scope_across_pk_result_fail_person_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_forcednd_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_forcednd_background.imageset/Contents.json new file mode 100644 index 00000000..eb1e02a1 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_forcednd_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_across_pk_result_forcednd_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_across_pk_result_forcednd_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_forcednd_background.imageset/yumi_scope_across_pk_result_forcednd_background@2x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_forcednd_background.imageset/yumi_scope_across_pk_result_forcednd_background@2x.png new file mode 100644 index 00000000..e2db4c0f Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_forcednd_background.imageset/yumi_scope_across_pk_result_forcednd_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_forcednd_background.imageset/yumi_scope_across_pk_result_forcednd_background@3x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_forcednd_background.imageset/yumi_scope_across_pk_result_forcednd_background@3x.png new file mode 100644 index 00000000..a83e3f11 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_forcednd_background.imageset/yumi_scope_across_pk_result_forcednd_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_forceend_blue_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_forceend_blue_background.imageset/Contents.json new file mode 100644 index 00000000..1d0feda0 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_forceend_blue_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_across_pk_result_forceend_blue_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_across_pk_result_forceend_blue_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_forceend_blue_background.imageset/yumi_scope_across_pk_result_forceend_blue_background@2x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_forceend_blue_background.imageset/yumi_scope_across_pk_result_forceend_blue_background@2x.png new file mode 100644 index 00000000..68656524 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_forceend_blue_background.imageset/yumi_scope_across_pk_result_forceend_blue_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_forceend_blue_background.imageset/yumi_scope_across_pk_result_forceend_blue_background@3x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_forceend_blue_background.imageset/yumi_scope_across_pk_result_forceend_blue_background@3x.png new file mode 100644 index 00000000..0cbea123 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_forceend_blue_background.imageset/yumi_scope_across_pk_result_forceend_blue_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_forceend_pk_pic.imageset/Contents.json b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_forceend_pk_pic.imageset/Contents.json new file mode 100644 index 00000000..e7b94e5e --- /dev/null +++ b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_forceend_pk_pic.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_across_pk_result_forceend_pk_pic@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_across_pk_result_forceend_pk_pic@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_forceend_pk_pic.imageset/yumi_scope_across_pk_result_forceend_pk_pic@2x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_forceend_pk_pic.imageset/yumi_scope_across_pk_result_forceend_pk_pic@2x.png new file mode 100644 index 00000000..3814754f Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_forceend_pk_pic.imageset/yumi_scope_across_pk_result_forceend_pk_pic@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_forceend_pk_pic.imageset/yumi_scope_across_pk_result_forceend_pk_pic@3x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_forceend_pk_pic.imageset/yumi_scope_across_pk_result_forceend_pk_pic@3x.png new file mode 100644 index 00000000..946c0bb4 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_forceend_pk_pic.imageset/yumi_scope_across_pk_result_forceend_pk_pic@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_forceend_red_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_forceend_red_background.imageset/Contents.json new file mode 100644 index 00000000..3b5ca372 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_forceend_red_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_across_pk_result_forceend_red_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_across_pk_result_forceend_red_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_forceend_red_background.imageset/yumi_scope_across_pk_result_forceend_red_background@2x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_forceend_red_background.imageset/yumi_scope_across_pk_result_forceend_red_background@2x.png new file mode 100644 index 00000000..02297f34 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_forceend_red_background.imageset/yumi_scope_across_pk_result_forceend_red_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_forceend_red_background.imageset/yumi_scope_across_pk_result_forceend_red_background@3x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_forceend_red_background.imageset/yumi_scope_across_pk_result_forceend_red_background@3x.png new file mode 100644 index 00000000..e337d407 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_forceend_red_background.imageset/yumi_scope_across_pk_result_forceend_red_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_pk_pic.imageset/Contents.json b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_pk_pic.imageset/Contents.json new file mode 100644 index 00000000..ea53c949 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_pk_pic.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_across_pk_result_pk_pic@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_across_pk_result_pk_pic@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_pk_pic.imageset/yumi_scope_across_pk_result_pk_pic@2x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_pk_pic.imageset/yumi_scope_across_pk_result_pk_pic@2x.png new file mode 100644 index 00000000..513de01d Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_pk_pic.imageset/yumi_scope_across_pk_result_pk_pic@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_pk_pic.imageset/yumi_scope_across_pk_result_pk_pic@3x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_pk_pic.imageset/yumi_scope_across_pk_result_pk_pic@3x.png new file mode 100644 index 00000000..346bb125 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_pk_pic.imageset/yumi_scope_across_pk_result_pk_pic@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_red_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_red_background.imageset/Contents.json new file mode 100644 index 00000000..70c3b490 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_red_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_across_pk_result_red_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_across_pk_result_red_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_red_background.imageset/yumi_scope_across_pk_result_red_background@2x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_red_background.imageset/yumi_scope_across_pk_result_red_background@2x.png new file mode 100644 index 00000000..bb0e50b1 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_red_background.imageset/yumi_scope_across_pk_result_red_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_red_background.imageset/yumi_scope_across_pk_result_red_background@3x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_red_background.imageset/yumi_scope_across_pk_result_red_background@3x.png new file mode 100644 index 00000000..b2f7b6d5 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_red_background.imageset/yumi_scope_across_pk_result_red_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_tie_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_tie_background.imageset/Contents.json new file mode 100644 index 00000000..7f10813d --- /dev/null +++ b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_tie_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_across_pk_result_tie_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_across_pk_result_tie_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_tie_background.imageset/yumi_scope_across_pk_result_tie_background@2x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_tie_background.imageset/yumi_scope_across_pk_result_tie_background@2x.png new file mode 100644 index 00000000..f8795a89 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_tie_background.imageset/yumi_scope_across_pk_result_tie_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_tie_background.imageset/yumi_scope_across_pk_result_tie_background@3x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_tie_background.imageset/yumi_scope_across_pk_result_tie_background@3x.png new file mode 100644 index 00000000..fb4ed3b0 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_tie_background.imageset/yumi_scope_across_pk_result_tie_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_tie_close.imageset/Contents.json b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_tie_close.imageset/Contents.json new file mode 100644 index 00000000..fe443384 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_tie_close.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_across_pk_result_tie_close@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_across_pk_result_tie_close@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_tie_close.imageset/yumi_scope_across_pk_result_tie_close@2x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_tie_close.imageset/yumi_scope_across_pk_result_tie_close@2x.png new file mode 100644 index 00000000..0a0ee8e4 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_tie_close.imageset/yumi_scope_across_pk_result_tie_close@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_tie_close.imageset/yumi_scope_across_pk_result_tie_close@3x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_tie_close.imageset/yumi_scope_across_pk_result_tie_close@3x.png new file mode 100644 index 00000000..4c6d38dd Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_tie_close.imageset/yumi_scope_across_pk_result_tie_close@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_tie_person_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_tie_person_background.imageset/Contents.json new file mode 100644 index 00000000..eb52ea2f --- /dev/null +++ b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_tie_person_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_across_pk_result_tie_person_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_across_pk_result_tie_person_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_tie_person_background.imageset/yumi_scope_across_pk_result_tie_person_background@2x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_tie_person_background.imageset/yumi_scope_across_pk_result_tie_person_background@2x.png new file mode 100644 index 00000000..24350fe1 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_tie_person_background.imageset/yumi_scope_across_pk_result_tie_person_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_tie_person_background.imageset/yumi_scope_across_pk_result_tie_person_background@3x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_tie_person_background.imageset/yumi_scope_across_pk_result_tie_person_background@3x.png new file mode 100644 index 00000000..be684c5c Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_tie_person_background.imageset/yumi_scope_across_pk_result_tie_person_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_win_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_win_background.imageset/Contents.json new file mode 100644 index 00000000..2c7153b4 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_win_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_across_pk_result_win_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_across_pk_result_win_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_win_background.imageset/yumi_scope_across_pk_result_win_background@2x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_win_background.imageset/yumi_scope_across_pk_result_win_background@2x.png new file mode 100644 index 00000000..3f34903f Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_win_background.imageset/yumi_scope_across_pk_result_win_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_win_background.imageset/yumi_scope_across_pk_result_win_background@3x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_win_background.imageset/yumi_scope_across_pk_result_win_background@3x.png new file mode 100644 index 00000000..9b52ae39 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_win_background.imageset/yumi_scope_across_pk_result_win_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_win_blue_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_win_blue_background.imageset/Contents.json new file mode 100644 index 00000000..2c248e8a --- /dev/null +++ b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_win_blue_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_across_pk_result_win_blue_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_across_pk_result_win_blue_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_win_blue_background.imageset/yumi_scope_across_pk_result_win_blue_background@2x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_win_blue_background.imageset/yumi_scope_across_pk_result_win_blue_background@2x.png new file mode 100644 index 00000000..79c309a7 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_win_blue_background.imageset/yumi_scope_across_pk_result_win_blue_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_win_blue_background.imageset/yumi_scope_across_pk_result_win_blue_background@3x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_win_blue_background.imageset/yumi_scope_across_pk_result_win_blue_background@3x.png new file mode 100644 index 00000000..14622458 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_win_blue_background.imageset/yumi_scope_across_pk_result_win_blue_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_win_close.imageset/Contents.json b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_win_close.imageset/Contents.json new file mode 100644 index 00000000..5e7f9e9c --- /dev/null +++ b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_win_close.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_across_pk_result_win_close@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_across_pk_result_win_close@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_win_close.imageset/yumi_scope_across_pk_result_win_close@2x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_win_close.imageset/yumi_scope_across_pk_result_win_close@2x.png new file mode 100644 index 00000000..32799cef Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_win_close.imageset/yumi_scope_across_pk_result_win_close@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_win_close.imageset/yumi_scope_across_pk_result_win_close@3x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_win_close.imageset/yumi_scope_across_pk_result_win_close@3x.png new file mode 100644 index 00000000..eb4318b9 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_win_close.imageset/yumi_scope_across_pk_result_win_close@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_win_person_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_win_person_background.imageset/Contents.json new file mode 100644 index 00000000..a21f9e13 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_win_person_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_across_pk_result_win_person_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_across_pk_result_win_person_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_win_person_background.imageset/yumi_scope_across_pk_result_win_person_background@2x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_win_person_background.imageset/yumi_scope_across_pk_result_win_person_background@2x.png new file mode 100644 index 00000000..4144cb57 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_win_person_background.imageset/yumi_scope_across_pk_result_win_person_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_win_person_background.imageset/yumi_scope_across_pk_result_win_person_background@3x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_win_person_background.imageset/yumi_scope_across_pk_result_win_person_background@3x.png new file mode 100644 index 00000000..5745c835 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_win_person_background.imageset/yumi_scope_across_pk_result_win_person_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_win_pic.imageset/Contents.json b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_win_pic.imageset/Contents.json new file mode 100644 index 00000000..6b2adf83 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_win_pic.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_across_pk_result_win_pic@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_across_pk_result_win_pic@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_win_pic.imageset/yumi_scope_across_pk_result_win_pic@2x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_win_pic.imageset/yumi_scope_across_pk_result_win_pic@2x.png new file mode 100644 index 00000000..ae6deb60 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_win_pic.imageset/yumi_scope_across_pk_result_win_pic@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_win_pic.imageset/yumi_scope_across_pk_result_win_pic@3x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_win_pic.imageset/yumi_scope_across_pk_result_win_pic@3x.png new file mode 100644 index 00000000..f4dc17ff Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_result_win_pic.imageset/yumi_scope_across_pk_result_win_pic@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_rule_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_rule_background.imageset/Contents.json new file mode 100644 index 00000000..6789304b --- /dev/null +++ b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_rule_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_across_pk_rule_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_across_pk_rule_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_rule_background.imageset/yumi_scope_across_pk_rule_background@2x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_rule_background.imageset/yumi_scope_across_pk_rule_background@2x.png new file mode 100644 index 00000000..81a2e923 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_rule_background.imageset/yumi_scope_across_pk_rule_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_rule_background.imageset/yumi_scope_across_pk_rule_background@3x.png b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_rule_background.imageset/yumi_scope_across_pk_rule_background@3x.png new file mode 100644 index 00000000..f9ad33f5 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/AcrossRoomPK/yumi_scope_across_pk_rule_background.imageset/yumi_scope_across_pk_rule_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Activity/Contents.json b/YuMi/Assets.xcassets/yna/Activity/Contents.json new file mode 100644 index 00000000..e2342777 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Activity/Contents.json @@ -0,0 +1,7 @@ +{"info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Activity/yumi_scope_activity_banner_normal.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Activity/yumi_scope_activity_banner_normal.imageset/Contents.json new file mode 100644 index 00000000..7bb332c8 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Activity/yumi_scope_activity_banner_normal.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_activity_banner_normal@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_activity_banner_normal@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Activity/yumi_scope_activity_banner_normal.imageset/yumi_scope_activity_banner_normal@2x.png b/YuMi/Assets.xcassets/yna/Activity/yumi_scope_activity_banner_normal.imageset/yumi_scope_activity_banner_normal@2x.png new file mode 100644 index 00000000..8e34d8f5 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Activity/yumi_scope_activity_banner_normal.imageset/yumi_scope_activity_banner_normal@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Activity/yumi_scope_activity_banner_normal.imageset/yumi_scope_activity_banner_normal@3x.png b/YuMi/Assets.xcassets/yna/Activity/yumi_scope_activity_banner_normal.imageset/yumi_scope_activity_banner_normal@3x.png new file mode 100644 index 00000000..a0e529b3 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Activity/yumi_scope_activity_banner_normal.imageset/yumi_scope_activity_banner_normal@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Activity/yumi_scope_activity_banner_select.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Activity/yumi_scope_activity_banner_select.imageset/Contents.json new file mode 100644 index 00000000..a45f89f8 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Activity/yumi_scope_activity_banner_select.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_activity_banner_select@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_activity_banner_select@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Activity/yumi_scope_activity_banner_select.imageset/yumi_scope_activity_banner_select@2x.png b/YuMi/Assets.xcassets/yna/Activity/yumi_scope_activity_banner_select.imageset/yumi_scope_activity_banner_select@2x.png new file mode 100644 index 00000000..a01e066a Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Activity/yumi_scope_activity_banner_select.imageset/yumi_scope_activity_banner_select@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Activity/yumi_scope_activity_banner_select.imageset/yumi_scope_activity_banner_select@3x.png b/YuMi/Assets.xcassets/yna/Activity/yumi_scope_activity_banner_select.imageset/yumi_scope_activity_banner_select@3x.png new file mode 100644 index 00000000..24a3e0d9 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Activity/yumi_scope_activity_banner_select.imageset/yumi_scope_activity_banner_select@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/Contents.json new file mode 100644 index 00000000..e2342777 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/Contents.json @@ -0,0 +1,7 @@ +{"info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_invite_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_invite_background.imageset/Contents.json new file mode 100644 index 00000000..68e1026f --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_invite_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_anchorPK_invite_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_anchorPK_invite_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_invite_background.imageset/yumi_anchorPK_invite_background@2x.png b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_invite_background.imageset/yumi_anchorPK_invite_background@2x.png new file mode 100644 index 00000000..33843450 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_invite_background.imageset/yumi_anchorPK_invite_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_invite_background.imageset/yumi_anchorPK_invite_background@3x.png b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_invite_background.imageset/yumi_anchorPK_invite_background@3x.png new file mode 100644 index 00000000..202a4d9b Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_invite_background.imageset/yumi_anchorPK_invite_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_MVP.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_MVP.imageset/Contents.json new file mode 100644 index 00000000..ca19aa68 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_MVP.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_anchorPK_panel_MVP@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_anchorPK_panel_MVP@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_MVP.imageset/yumi_anchorPK_panel_MVP@2x.png b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_MVP.imageset/yumi_anchorPK_panel_MVP@2x.png new file mode 100644 index 00000000..1f030983 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_MVP.imageset/yumi_anchorPK_panel_MVP@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_MVP.imageset/yumi_anchorPK_panel_MVP@3x.png b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_MVP.imageset/yumi_anchorPK_panel_MVP@3x.png new file mode 100644 index 00000000..a88b9e9c Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_MVP.imageset/yumi_anchorPK_panel_MVP@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_background.imageset/Contents.json new file mode 100644 index 00000000..e20dda0b --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_anchorPK_panel_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_anchorPK_panel_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_background.imageset/yumi_anchorPK_panel_background@2x.png b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_background.imageset/yumi_anchorPK_panel_background@2x.png new file mode 100644 index 00000000..16c8eeac Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_background.imageset/yumi_anchorPK_panel_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_background.imageset/yumi_anchorPK_panel_background@3x.png b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_background.imageset/yumi_anchorPK_panel_background@3x.png new file mode 100644 index 00000000..d51011f3 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_background.imageset/yumi_anchorPK_panel_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_blue_micState.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_blue_micState.imageset/Contents.json new file mode 100644 index 00000000..071ee327 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_blue_micState.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_anchorPK_panel_blue_micState@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_anchorPK_panel_blue_micState@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_blue_micState.imageset/yumi_anchorPK_panel_blue_micState@2x.png b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_blue_micState.imageset/yumi_anchorPK_panel_blue_micState@2x.png new file mode 100644 index 00000000..492cbe05 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_blue_micState.imageset/yumi_anchorPK_panel_blue_micState@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_blue_micState.imageset/yumi_anchorPK_panel_blue_micState@3x.png b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_blue_micState.imageset/yumi_anchorPK_panel_blue_micState@3x.png new file mode 100644 index 00000000..1e8579a7 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_blue_micState.imageset/yumi_anchorPK_panel_blue_micState@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_blue_progress.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_blue_progress.imageset/Contents.json new file mode 100644 index 00000000..2a37c5d4 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_blue_progress.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_anchorPK_panel_blue_progress@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_anchorPK_panel_blue_progress@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_blue_progress.imageset/yumi_anchorPK_panel_blue_progress@2x.png b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_blue_progress.imageset/yumi_anchorPK_panel_blue_progress@2x.png new file mode 100644 index 00000000..37accf50 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_blue_progress.imageset/yumi_anchorPK_panel_blue_progress@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_blue_progress.imageset/yumi_anchorPK_panel_blue_progress@3x.png b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_blue_progress.imageset/yumi_anchorPK_panel_blue_progress@3x.png new file mode 100644 index 00000000..59915175 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_blue_progress.imageset/yumi_anchorPK_panel_blue_progress@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_blue_star.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_blue_star.imageset/Contents.json new file mode 100644 index 00000000..3ac35d07 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_blue_star.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_anchorPK_panel_blue_star@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_anchorPK_panel_blue_star@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_blue_star.imageset/yumi_anchorPK_panel_blue_star@2x.png b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_blue_star.imageset/yumi_anchorPK_panel_blue_star@2x.png new file mode 100644 index 00000000..0ae05a91 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_blue_star.imageset/yumi_anchorPK_panel_blue_star@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_blue_star.imageset/yumi_anchorPK_panel_blue_star@3x.png b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_blue_star.imageset/yumi_anchorPK_panel_blue_star@3x.png new file mode 100644 index 00000000..7ed230b5 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_blue_star.imageset/yumi_anchorPK_panel_blue_star@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_red_micState.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_red_micState.imageset/Contents.json new file mode 100644 index 00000000..a07f1684 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_red_micState.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_anchorPK_panel_red_micState@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_anchorPK_panel_red_micState@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_red_micState.imageset/yumi_anchorPK_panel_red_micState@2x.png b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_red_micState.imageset/yumi_anchorPK_panel_red_micState@2x.png new file mode 100644 index 00000000..69709b85 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_red_micState.imageset/yumi_anchorPK_panel_red_micState@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_red_micState.imageset/yumi_anchorPK_panel_red_micState@3x.png b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_red_micState.imageset/yumi_anchorPK_panel_red_micState@3x.png new file mode 100644 index 00000000..8b97974b Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_red_micState.imageset/yumi_anchorPK_panel_red_micState@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_red_progress.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_red_progress.imageset/Contents.json new file mode 100644 index 00000000..5b16ffdc --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_red_progress.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_anchorPK_panel_red_progress@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_anchorPK_panel_red_progress@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_red_progress.imageset/yumi_anchorPK_panel_red_progress@2x.png b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_red_progress.imageset/yumi_anchorPK_panel_red_progress@2x.png new file mode 100644 index 00000000..16501aac Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_red_progress.imageset/yumi_anchorPK_panel_red_progress@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_red_progress.imageset/yumi_anchorPK_panel_red_progress@3x.png b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_red_progress.imageset/yumi_anchorPK_panel_red_progress@3x.png new file mode 100644 index 00000000..cd883aff Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_red_progress.imageset/yumi_anchorPK_panel_red_progress@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_red_star.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_red_star.imageset/Contents.json new file mode 100644 index 00000000..df8604e8 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_red_star.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_anchorPK_panel_red_star@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_anchorPK_panel_red_star@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_red_star.imageset/yumi_anchorPK_panel_red_star@2x.png b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_red_star.imageset/yumi_anchorPK_panel_red_star@2x.png new file mode 100644 index 00000000..0d3d9573 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_red_star.imageset/yumi_anchorPK_panel_red_star@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_red_star.imageset/yumi_anchorPK_panel_red_star@3x.png b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_red_star.imageset/yumi_anchorPK_panel_red_star@3x.png new file mode 100644 index 00000000..059ca96f Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_panel_red_star.imageset/yumi_anchorPK_panel_red_star@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_prize_KO.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_prize_KO.imageset/Contents.json new file mode 100644 index 00000000..2cd1e6a3 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_prize_KO.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_anchorPK_prize_KO@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_anchorPK_prize_KO@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_prize_KO.imageset/yumi_anchorPK_prize_KO@2x.png b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_prize_KO.imageset/yumi_anchorPK_prize_KO@2x.png new file mode 100644 index 00000000..d49d28e8 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_prize_KO.imageset/yumi_anchorPK_prize_KO@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_prize_KO.imageset/yumi_anchorPK_prize_KO@3x.png b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_prize_KO.imageset/yumi_anchorPK_prize_KO@3x.png new file mode 100644 index 00000000..96fee756 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_prize_KO.imageset/yumi_anchorPK_prize_KO@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_prize_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_prize_background.imageset/Contents.json new file mode 100644 index 00000000..774816cb --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_prize_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_anchorPK_prize_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_anchorPK_prize_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_prize_background.imageset/yumi_anchorPK_prize_background@2x.png b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_prize_background.imageset/yumi_anchorPK_prize_background@2x.png new file mode 100644 index 00000000..339fe74c Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_prize_background.imageset/yumi_anchorPK_prize_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_prize_background.imageset/yumi_anchorPK_prize_background@3x.png b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_prize_background.imageset/yumi_anchorPK_prize_background@3x.png new file mode 100644 index 00000000..b5033dcc Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_prize_background.imageset/yumi_anchorPK_prize_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_prize_onLook_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_prize_onLook_background.imageset/Contents.json new file mode 100644 index 00000000..a73a0556 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_prize_onLook_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_anchorPK_prize_onLook_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_anchorPK_prize_onLook_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_prize_onLook_background.imageset/yumi_anchorPK_prize_onLook_background@2x.png b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_prize_onLook_background.imageset/yumi_anchorPK_prize_onLook_background@2x.png new file mode 100644 index 00000000..fc4aa422 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_prize_onLook_background.imageset/yumi_anchorPK_prize_onLook_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_prize_onLook_background.imageset/yumi_anchorPK_prize_onLook_background@3x.png b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_prize_onLook_background.imageset/yumi_anchorPK_prize_onLook_background@3x.png new file mode 100644 index 00000000..53268edc Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_prize_onLook_background.imageset/yumi_anchorPK_prize_onLook_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_blueValue_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_blueValue_background.imageset/Contents.json new file mode 100644 index 00000000..af78473a --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_blueValue_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_anchorPK_result_blueValue_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_anchorPK_result_blueValue_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_blueValue_background.imageset/yumi_anchorPK_result_blueValue_background@2x.png b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_blueValue_background.imageset/yumi_anchorPK_result_blueValue_background@2x.png new file mode 100644 index 00000000..1e17de69 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_blueValue_background.imageset/yumi_anchorPK_result_blueValue_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_blueValue_background.imageset/yumi_anchorPK_result_blueValue_background@3x.png b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_blueValue_background.imageset/yumi_anchorPK_result_blueValue_background@3x.png new file mode 100644 index 00000000..17d535ba Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_blueValue_background.imageset/yumi_anchorPK_result_blueValue_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_contribute_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_contribute_background.imageset/Contents.json new file mode 100644 index 00000000..ae26eab2 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_contribute_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_anchorPK_result_contribute_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_anchorPK_result_contribute_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_contribute_background.imageset/yumi_anchorPK_result_contribute_background@2x.png b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_contribute_background.imageset/yumi_anchorPK_result_contribute_background@2x.png new file mode 100644 index 00000000..22290458 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_contribute_background.imageset/yumi_anchorPK_result_contribute_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_contribute_background.imageset/yumi_anchorPK_result_contribute_background@3x.png b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_contribute_background.imageset/yumi_anchorPK_result_contribute_background@3x.png new file mode 100644 index 00000000..c8ba556c Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_contribute_background.imageset/yumi_anchorPK_result_contribute_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_fail_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_fail_background.imageset/Contents.json new file mode 100644 index 00000000..b98f97d6 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_fail_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_anchorPK_result_fail_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_anchorPK_result_fail_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_fail_background.imageset/yumi_anchorPK_result_fail_background@2x.png b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_fail_background.imageset/yumi_anchorPK_result_fail_background@2x.png new file mode 100644 index 00000000..7239b71f Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_fail_background.imageset/yumi_anchorPK_result_fail_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_fail_background.imageset/yumi_anchorPK_result_fail_background@3x.png b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_fail_background.imageset/yumi_anchorPK_result_fail_background@3x.png new file mode 100644 index 00000000..4d1f9f5e Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_fail_background.imageset/yumi_anchorPK_result_fail_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_fail_headWear.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_fail_headWear.imageset/Contents.json new file mode 100644 index 00000000..7dd1cb26 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_fail_headWear.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_anchorPK_result_fail_headWear@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_anchorPK_result_fail_headWear@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_fail_headWear.imageset/yumi_anchorPK_result_fail_headWear@2x.png b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_fail_headWear.imageset/yumi_anchorPK_result_fail_headWear@2x.png new file mode 100644 index 00000000..0405d205 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_fail_headWear.imageset/yumi_anchorPK_result_fail_headWear@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_fail_headWear.imageset/yumi_anchorPK_result_fail_headWear@3x.png b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_fail_headWear.imageset/yumi_anchorPK_result_fail_headWear@3x.png new file mode 100644 index 00000000..31d1f574 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_fail_headWear.imageset/yumi_anchorPK_result_fail_headWear@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_fail_title_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_fail_title_background.imageset/Contents.json new file mode 100644 index 00000000..08c299e7 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_fail_title_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_anchorPK_result_fail_title_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_anchorPK_result_fail_title_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_fail_title_background.imageset/yumi_anchorPK_result_fail_title_background@2x.png b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_fail_title_background.imageset/yumi_anchorPK_result_fail_title_background@2x.png new file mode 100644 index 00000000..84e7f185 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_fail_title_background.imageset/yumi_anchorPK_result_fail_title_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_fail_title_background.imageset/yumi_anchorPK_result_fail_title_background@3x.png b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_fail_title_background.imageset/yumi_anchorPK_result_fail_title_background@3x.png new file mode 100644 index 00000000..2fbcdc87 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_fail_title_background.imageset/yumi_anchorPK_result_fail_title_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_mvp_pic.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_mvp_pic.imageset/Contents.json new file mode 100644 index 00000000..33102607 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_mvp_pic.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_anchorPK_result_mvp_pic@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_anchorPK_result_mvp_pic@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_mvp_pic.imageset/yumi_anchorPK_result_mvp_pic@2x.png b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_mvp_pic.imageset/yumi_anchorPK_result_mvp_pic@2x.png new file mode 100644 index 00000000..571bbe54 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_mvp_pic.imageset/yumi_anchorPK_result_mvp_pic@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_mvp_pic.imageset/yumi_anchorPK_result_mvp_pic@3x.png b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_mvp_pic.imageset/yumi_anchorPK_result_mvp_pic@3x.png new file mode 100644 index 00000000..48956021 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_mvp_pic.imageset/yumi_anchorPK_result_mvp_pic@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_redValue_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_redValue_background.imageset/Contents.json new file mode 100644 index 00000000..162e7227 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_redValue_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_anchorPK_result_redValue_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_anchorPK_result_redValue_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_redValue_background.imageset/yumi_anchorPK_result_redValue_background@2x.png b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_redValue_background.imageset/yumi_anchorPK_result_redValue_background@2x.png new file mode 100644 index 00000000..7f747ce7 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_redValue_background.imageset/yumi_anchorPK_result_redValue_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_redValue_background.imageset/yumi_anchorPK_result_redValue_background@3x.png b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_redValue_background.imageset/yumi_anchorPK_result_redValue_background@3x.png new file mode 100644 index 00000000..5a76e83f Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_redValue_background.imageset/yumi_anchorPK_result_redValue_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_tie_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_tie_background.imageset/Contents.json new file mode 100644 index 00000000..4d652a14 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_tie_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_anchorPK_result_tie_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_anchorPK_result_tie_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_tie_background.imageset/yumi_anchorPK_result_tie_background@2x.png b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_tie_background.imageset/yumi_anchorPK_result_tie_background@2x.png new file mode 100644 index 00000000..9b01a72c Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_tie_background.imageset/yumi_anchorPK_result_tie_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_tie_background.imageset/yumi_anchorPK_result_tie_background@3x.png b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_tie_background.imageset/yumi_anchorPK_result_tie_background@3x.png new file mode 100644 index 00000000..b1d92049 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_tie_background.imageset/yumi_anchorPK_result_tie_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_tie_headWear.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_tie_headWear.imageset/Contents.json new file mode 100644 index 00000000..c94fe0e8 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_tie_headWear.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_anchorPK_result_tie_headWear@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_anchorPK_result_tie_headWear@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_tie_headWear.imageset/yumi_anchorPK_result_tie_headWear@2x.png b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_tie_headWear.imageset/yumi_anchorPK_result_tie_headWear@2x.png new file mode 100644 index 00000000..d113f27a Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_tie_headWear.imageset/yumi_anchorPK_result_tie_headWear@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_tie_headWear.imageset/yumi_anchorPK_result_tie_headWear@3x.png b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_tie_headWear.imageset/yumi_anchorPK_result_tie_headWear@3x.png new file mode 100644 index 00000000..40afc900 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_tie_headWear.imageset/yumi_anchorPK_result_tie_headWear@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_tie_title_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_tie_title_background.imageset/Contents.json new file mode 100644 index 00000000..1b40ef5e --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_tie_title_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_anchorPK_result_tie_title_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_anchorPK_result_tie_title_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_tie_title_background.imageset/yumi_anchorPK_result_tie_title_background@2x.png b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_tie_title_background.imageset/yumi_anchorPK_result_tie_title_background@2x.png new file mode 100644 index 00000000..1921280a Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_tie_title_background.imageset/yumi_anchorPK_result_tie_title_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_tie_title_background.imageset/yumi_anchorPK_result_tie_title_background@3x.png b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_tie_title_background.imageset/yumi_anchorPK_result_tie_title_background@3x.png new file mode 100644 index 00000000..ac297800 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_tie_title_background.imageset/yumi_anchorPK_result_tie_title_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_win_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_win_background.imageset/Contents.json new file mode 100644 index 00000000..2147230f --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_win_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_anchorPK_result_win_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_anchorPK_result_win_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_win_background.imageset/yumi_anchorPK_result_win_background@2x.png b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_win_background.imageset/yumi_anchorPK_result_win_background@2x.png new file mode 100644 index 00000000..8c1a472c Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_win_background.imageset/yumi_anchorPK_result_win_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_win_background.imageset/yumi_anchorPK_result_win_background@3x.png b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_win_background.imageset/yumi_anchorPK_result_win_background@3x.png new file mode 100644 index 00000000..b022230e Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_win_background.imageset/yumi_anchorPK_result_win_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_win_headWear.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_win_headWear.imageset/Contents.json new file mode 100644 index 00000000..e496e267 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_win_headWear.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_anchorPK_result_win_headWear@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_anchorPK_result_win_headWear@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_win_headWear.imageset/yumi_anchorPK_result_win_headWear@2x.png b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_win_headWear.imageset/yumi_anchorPK_result_win_headWear@2x.png new file mode 100644 index 00000000..5407b9a9 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_win_headWear.imageset/yumi_anchorPK_result_win_headWear@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_win_headWear.imageset/yumi_anchorPK_result_win_headWear@3x.png b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_win_headWear.imageset/yumi_anchorPK_result_win_headWear@3x.png new file mode 100644 index 00000000..fc54fa46 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_win_headWear.imageset/yumi_anchorPK_result_win_headWear@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_win_title_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_win_title_background.imageset/Contents.json new file mode 100644 index 00000000..4b7dc8ff --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_win_title_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_anchorPK_result_win_title_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_anchorPK_result_win_title_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_win_title_background.imageset/yumi_anchorPK_result_win_title_background@2x.png b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_win_title_background.imageset/yumi_anchorPK_result_win_title_background@2x.png new file mode 100644 index 00000000..ba723fa8 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_win_title_background.imageset/yumi_anchorPK_result_win_title_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_win_title_background.imageset/yumi_anchorPK_result_win_title_background@3x.png b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_win_title_background.imageset/yumi_anchorPK_result_win_title_background@3x.png new file mode 100644 index 00000000..3f75e083 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPK_result_win_title_background.imageset/yumi_anchorPK_result_win_title_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_micro_attention.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_micro_attention.imageset/Contents.json new file mode 100644 index 00000000..378bfd2d --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_micro_attention.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_anchorPk_micro_attention@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_anchorPk_micro_attention@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_micro_attention.imageset/yumi_anchorPk_micro_attention@2x.png b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_micro_attention.imageset/yumi_anchorPk_micro_attention@2x.png new file mode 100644 index 00000000..bba97490 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_micro_attention.imageset/yumi_anchorPk_micro_attention@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_micro_attention.imageset/yumi_anchorPk_micro_attention@3x.png b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_micro_attention.imageset/yumi_anchorPk_micro_attention@3x.png new file mode 100644 index 00000000..ea8ccbee Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_micro_attention.imageset/yumi_anchorPk_micro_attention@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_micro_follow.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_micro_follow.imageset/Contents.json new file mode 100644 index 00000000..7736a165 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_micro_follow.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_anchorPk_micro_follow@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_anchorPk_micro_follow@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_micro_follow.imageset/yumi_anchorPk_micro_follow@2x.png b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_micro_follow.imageset/yumi_anchorPk_micro_follow@2x.png new file mode 100644 index 00000000..410f1c63 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_micro_follow.imageset/yumi_anchorPk_micro_follow@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_micro_follow.imageset/yumi_anchorPk_micro_follow@3x.png b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_micro_follow.imageset/yumi_anchorPk_micro_follow@3x.png new file mode 100644 index 00000000..4dcef749 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_micro_follow.imageset/yumi_anchorPk_micro_follow@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_micro_result_fail.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_micro_result_fail.imageset/Contents.json new file mode 100644 index 00000000..461c0130 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_micro_result_fail.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_anchorPk_micro_result_fail@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_anchorPk_micro_result_fail@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_micro_result_fail.imageset/yumi_anchorPk_micro_result_fail@2x.png b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_micro_result_fail.imageset/yumi_anchorPk_micro_result_fail@2x.png new file mode 100644 index 00000000..f7c1cffd Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_micro_result_fail.imageset/yumi_anchorPk_micro_result_fail@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_micro_result_fail.imageset/yumi_anchorPk_micro_result_fail@3x.png b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_micro_result_fail.imageset/yumi_anchorPk_micro_result_fail@3x.png new file mode 100644 index 00000000..289a2581 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_micro_result_fail.imageset/yumi_anchorPk_micro_result_fail@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_micro_result_tie.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_micro_result_tie.imageset/Contents.json new file mode 100644 index 00000000..2886462e --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_micro_result_tie.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_anchorPk_micro_result_tie@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_anchorPk_micro_result_tie@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_micro_result_tie.imageset/yumi_anchorPk_micro_result_tie@2x.png b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_micro_result_tie.imageset/yumi_anchorPk_micro_result_tie@2x.png new file mode 100644 index 00000000..39e62ba8 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_micro_result_tie.imageset/yumi_anchorPk_micro_result_tie@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_micro_result_tie.imageset/yumi_anchorPk_micro_result_tie@3x.png b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_micro_result_tie.imageset/yumi_anchorPk_micro_result_tie@3x.png new file mode 100644 index 00000000..1f59a6ac Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_micro_result_tie.imageset/yumi_anchorPk_micro_result_tie@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_micro_result_win.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_micro_result_win.imageset/Contents.json new file mode 100644 index 00000000..8e4ffd62 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_micro_result_win.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_anchorPk_micro_result_win@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_anchorPk_micro_result_win@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_micro_result_win.imageset/yumi_anchorPk_micro_result_win@2x.png b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_micro_result_win.imageset/yumi_anchorPk_micro_result_win@2x.png new file mode 100644 index 00000000..7850eaa5 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_micro_result_win.imageset/yumi_anchorPk_micro_result_win@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_micro_result_win.imageset/yumi_anchorPk_micro_result_win@3x.png b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_micro_result_win.imageset/yumi_anchorPk_micro_result_win@3x.png new file mode 100644 index 00000000..26811521 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_micro_result_win.imageset/yumi_anchorPk_micro_result_win@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_panel_ruleBg.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_panel_ruleBg.imageset/Contents.json new file mode 100644 index 00000000..0664a7df --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_panel_ruleBg.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_anchorPk_panel_ruleBg@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_anchorPk_panel_ruleBg@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_panel_ruleBg.imageset/yumi_anchorPk_panel_ruleBg@2x.png b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_panel_ruleBg.imageset/yumi_anchorPk_panel_ruleBg@2x.png new file mode 100644 index 00000000..fcc2faa4 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_panel_ruleBg.imageset/yumi_anchorPk_panel_ruleBg@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_panel_ruleBg.imageset/yumi_anchorPk_panel_ruleBg@3x.png b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_panel_ruleBg.imageset/yumi_anchorPk_panel_ruleBg@3x.png new file mode 100644 index 00000000..1335f69f Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_panel_ruleBg.imageset/yumi_anchorPk_panel_ruleBg@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_panel_vs.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_panel_vs.imageset/Contents.json new file mode 100644 index 00000000..97e815c1 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_panel_vs.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_anchorPk_panel_vs@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_anchorPk_panel_vs@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_panel_vs.imageset/yumi_anchorPk_panel_vs@2x.png b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_panel_vs.imageset/yumi_anchorPk_panel_vs@2x.png new file mode 100644 index 00000000..8a5825f5 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_panel_vs.imageset/yumi_anchorPk_panel_vs@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_panel_vs.imageset/yumi_anchorPk_panel_vs@3x.png b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_panel_vs.imageset/yumi_anchorPk_panel_vs@3x.png new file mode 100644 index 00000000..1f459fb2 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_panel_vs.imageset/yumi_anchorPk_panel_vs@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_result_close.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_result_close.imageset/Contents.json new file mode 100644 index 00000000..46e1f524 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_result_close.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_anchorPk_result_close@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_anchorPk_result_close@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_result_close.imageset/yumi_anchorPk_result_close@2x.png b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_result_close.imageset/yumi_anchorPk_result_close@2x.png new file mode 100644 index 00000000..b28b6b90 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_result_close.imageset/yumi_anchorPk_result_close@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_result_close.imageset/yumi_anchorPk_result_close@3x.png b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_result_close.imageset/yumi_anchorPk_result_close@3x.png new file mode 100644 index 00000000..0b0023bd Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/AnchorPk/yumi_anchorPk_result_close.imageset/yumi_anchorPk_result_close@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/Contents.json new file mode 100644 index 00000000..e2342777 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/Contents.json @@ -0,0 +1,7 @@ +{"info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/Loading/Contents.json new file mode 100644 index 00000000..e2342777 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/Loading/Contents.json @@ -0,0 +1,7 @@ +{"info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_000.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_000.imageset/Contents.json new file mode 100644 index 00000000..498e046b --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_000.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_anchorLoading_000.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_000.imageset/yumi_anchorLoading_000.png b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_000.imageset/yumi_anchorLoading_000.png new file mode 100644 index 00000000..45600679 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_000.imageset/yumi_anchorLoading_000.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_001.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_001.imageset/Contents.json new file mode 100644 index 00000000..5137bb52 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_001.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_anchorLoading_001.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_001.imageset/yumi_anchorLoading_001.png b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_001.imageset/yumi_anchorLoading_001.png new file mode 100644 index 00000000..ed5bcfe8 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_001.imageset/yumi_anchorLoading_001.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_002.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_002.imageset/Contents.json new file mode 100644 index 00000000..a0fc31bc --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_002.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_anchorLoading_002.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_002.imageset/yumi_anchorLoading_002.png b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_002.imageset/yumi_anchorLoading_002.png new file mode 100644 index 00000000..e6fef5d9 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_002.imageset/yumi_anchorLoading_002.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_003.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_003.imageset/Contents.json new file mode 100644 index 00000000..f91d2602 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_003.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_anchorLoading_003.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_003.imageset/yumi_anchorLoading_003.png b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_003.imageset/yumi_anchorLoading_003.png new file mode 100644 index 00000000..fe689303 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_003.imageset/yumi_anchorLoading_003.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_004.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_004.imageset/Contents.json new file mode 100644 index 00000000..da276668 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_004.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_anchorLoading_004.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_004.imageset/yumi_anchorLoading_004.png b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_004.imageset/yumi_anchorLoading_004.png new file mode 100644 index 00000000..8601e8cd Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_004.imageset/yumi_anchorLoading_004.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_005.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_005.imageset/Contents.json new file mode 100644 index 00000000..ec26cfa9 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_005.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_anchorLoading_005.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_005.imageset/yumi_anchorLoading_005.png b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_005.imageset/yumi_anchorLoading_005.png new file mode 100644 index 00000000..7c7c9f1b Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_005.imageset/yumi_anchorLoading_005.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_006.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_006.imageset/Contents.json new file mode 100644 index 00000000..e2d17ec4 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_006.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_anchorLoading_006.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_006.imageset/yumi_anchorLoading_006.png b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_006.imageset/yumi_anchorLoading_006.png new file mode 100644 index 00000000..1a8686f6 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_006.imageset/yumi_anchorLoading_006.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_007.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_007.imageset/Contents.json new file mode 100644 index 00000000..811ee4fe --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_007.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_anchorLoading_007.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_007.imageset/yumi_anchorLoading_007.png b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_007.imageset/yumi_anchorLoading_007.png new file mode 100644 index 00000000..a0b4478a Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_007.imageset/yumi_anchorLoading_007.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_008.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_008.imageset/Contents.json new file mode 100644 index 00000000..5cd3ee29 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_008.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_anchorLoading_008.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_008.imageset/yumi_anchorLoading_008.png b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_008.imageset/yumi_anchorLoading_008.png new file mode 100644 index 00000000..38bb3308 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_008.imageset/yumi_anchorLoading_008.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_009.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_009.imageset/Contents.json new file mode 100644 index 00000000..5e6c7238 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_009.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_anchorLoading_009.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_009.imageset/yumi_anchorLoading_009.png b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_009.imageset/yumi_anchorLoading_009.png new file mode 100644 index 00000000..0c57293f Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_009.imageset/yumi_anchorLoading_009.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_010.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_010.imageset/Contents.json new file mode 100644 index 00000000..e68191b6 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_010.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_anchorLoading_010.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_010.imageset/yumi_anchorLoading_010.png b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_010.imageset/yumi_anchorLoading_010.png new file mode 100644 index 00000000..2b552c92 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_010.imageset/yumi_anchorLoading_010.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_011.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_011.imageset/Contents.json new file mode 100644 index 00000000..16c4c9d0 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_011.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_anchorLoading_011.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_011.imageset/yumi_anchorLoading_011.png b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_011.imageset/yumi_anchorLoading_011.png new file mode 100644 index 00000000..563a7cde Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_011.imageset/yumi_anchorLoading_011.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_012.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_012.imageset/Contents.json new file mode 100644 index 00000000..ae4ad1b3 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_012.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_anchorLoading_012.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_012.imageset/yumi_anchorLoading_012.png b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_012.imageset/yumi_anchorLoading_012.png new file mode 100644 index 00000000..a3804d46 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_012.imageset/yumi_anchorLoading_012.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_013.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_013.imageset/Contents.json new file mode 100644 index 00000000..87507eab --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_013.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_anchorLoading_013.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_013.imageset/yumi_anchorLoading_013.png b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_013.imageset/yumi_anchorLoading_013.png new file mode 100644 index 00000000..ab7fc802 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_013.imageset/yumi_anchorLoading_013.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_014.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_014.imageset/Contents.json new file mode 100644 index 00000000..02fe508d --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_014.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_anchorLoading_014.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_014.imageset/yumi_anchorLoading_014.png b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_014.imageset/yumi_anchorLoading_014.png new file mode 100644 index 00000000..8e36749b Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_014.imageset/yumi_anchorLoading_014.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_015.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_015.imageset/Contents.json new file mode 100644 index 00000000..ef91aaec --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_015.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_anchorLoading_015.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_015.imageset/yumi_anchorLoading_015.png b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_015.imageset/yumi_anchorLoading_015.png new file mode 100644 index 00000000..32c00bc4 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_015.imageset/yumi_anchorLoading_015.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_016.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_016.imageset/Contents.json new file mode 100644 index 00000000..0f048e28 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_016.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_anchorLoading_016.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_016.imageset/yumi_anchorLoading_016.png b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_016.imageset/yumi_anchorLoading_016.png new file mode 100644 index 00000000..ee525faf Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_016.imageset/yumi_anchorLoading_016.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_017.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_017.imageset/Contents.json new file mode 100644 index 00000000..e1b581d0 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_017.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_anchorLoading_017.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_017.imageset/yumi_anchorLoading_017.png b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_017.imageset/yumi_anchorLoading_017.png new file mode 100644 index 00000000..235670ff Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_017.imageset/yumi_anchorLoading_017.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_018.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_018.imageset/Contents.json new file mode 100644 index 00000000..158f383f --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_018.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_anchorLoading_018.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_018.imageset/yumi_anchorLoading_018.png b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_018.imageset/yumi_anchorLoading_018.png new file mode 100644 index 00000000..6a8c9f1d Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_018.imageset/yumi_anchorLoading_018.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_019.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_019.imageset/Contents.json new file mode 100644 index 00000000..18c69634 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_019.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_anchorLoading_019.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_019.imageset/yumi_anchorLoading_019.png b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_019.imageset/yumi_anchorLoading_019.png new file mode 100644 index 00000000..26f6ade0 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_019.imageset/yumi_anchorLoading_019.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_020.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_020.imageset/Contents.json new file mode 100644 index 00000000..fdb067ad --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_020.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_anchorLoading_020.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_020.imageset/yumi_anchorLoading_020.png b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_020.imageset/yumi_anchorLoading_020.png new file mode 100644 index 00000000..7cebcac4 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_020.imageset/yumi_anchorLoading_020.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_021.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_021.imageset/Contents.json new file mode 100644 index 00000000..d9910f81 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_021.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_anchorLoading_021.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_021.imageset/yumi_anchorLoading_021.png b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_021.imageset/yumi_anchorLoading_021.png new file mode 100644 index 00000000..a48da136 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_021.imageset/yumi_anchorLoading_021.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_022.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_022.imageset/Contents.json new file mode 100644 index 00000000..159572c0 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_022.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_anchorLoading_022.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_022.imageset/yumi_anchorLoading_022.png b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_022.imageset/yumi_anchorLoading_022.png new file mode 100644 index 00000000..4bb74b7d Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_022.imageset/yumi_anchorLoading_022.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_023.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_023.imageset/Contents.json new file mode 100644 index 00000000..35b58206 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_023.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_anchorLoading_023.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_023.imageset/yumi_anchorLoading_023.png b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_023.imageset/yumi_anchorLoading_023.png new file mode 100644 index 00000000..23a15ef1 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_023.imageset/yumi_anchorLoading_023.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_024.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_024.imageset/Contents.json new file mode 100644 index 00000000..7549d875 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_024.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_anchorLoading_024.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_024.imageset/yumi_anchorLoading_024.png b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_024.imageset/yumi_anchorLoading_024.png new file mode 100644 index 00000000..a9215d0c Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_024.imageset/yumi_anchorLoading_024.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_025.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_025.imageset/Contents.json new file mode 100644 index 00000000..eb65fe93 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_025.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_anchorLoading_025.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_025.imageset/yumi_anchorLoading_025.png b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_025.imageset/yumi_anchorLoading_025.png new file mode 100644 index 00000000..459ceb77 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_025.imageset/yumi_anchorLoading_025.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_026.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_026.imageset/Contents.json new file mode 100644 index 00000000..0ccd7573 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_026.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_anchorLoading_026.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_026.imageset/yumi_anchorLoading_026.png b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_026.imageset/yumi_anchorLoading_026.png new file mode 100644 index 00000000..7bcd4a96 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_026.imageset/yumi_anchorLoading_026.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_027.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_027.imageset/Contents.json new file mode 100644 index 00000000..17d7b80a --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_027.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_anchorLoading_027.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_027.imageset/yumi_anchorLoading_027.png b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_027.imageset/yumi_anchorLoading_027.png new file mode 100644 index 00000000..1909c9a0 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_027.imageset/yumi_anchorLoading_027.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_028.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_028.imageset/Contents.json new file mode 100644 index 00000000..57e9706b --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_028.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_anchorLoading_028.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_028.imageset/yumi_anchorLoading_028.png b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_028.imageset/yumi_anchorLoading_028.png new file mode 100644 index 00000000..ae7b858c Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_028.imageset/yumi_anchorLoading_028.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_029.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_029.imageset/Contents.json new file mode 100644 index 00000000..46e9d37c --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_029.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_anchorLoading_029.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_029.imageset/yumi_anchorLoading_029.png b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_029.imageset/yumi_anchorLoading_029.png new file mode 100644 index 00000000..fc82efa8 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_029.imageset/yumi_anchorLoading_029.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_030.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_030.imageset/Contents.json new file mode 100644 index 00000000..7471bbe6 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_030.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_anchorLoading_030.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_030.imageset/yumi_anchorLoading_030.png b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_030.imageset/yumi_anchorLoading_030.png new file mode 100644 index 00000000..381bdecd Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_030.imageset/yumi_anchorLoading_030.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_031.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_031.imageset/Contents.json new file mode 100644 index 00000000..7687873d --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_031.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_anchorLoading_031.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_031.imageset/yumi_anchorLoading_031.png b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_031.imageset/yumi_anchorLoading_031.png new file mode 100644 index 00000000..1701f85e Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_031.imageset/yumi_anchorLoading_031.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_032.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_032.imageset/Contents.json new file mode 100644 index 00000000..211ff212 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_032.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_anchorLoading_032.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_032.imageset/yumi_anchorLoading_032.png b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_032.imageset/yumi_anchorLoading_032.png new file mode 100644 index 00000000..21d1693c Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_032.imageset/yumi_anchorLoading_032.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_033.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_033.imageset/Contents.json new file mode 100644 index 00000000..7967de02 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_033.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_anchorLoading_033.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_033.imageset/yumi_anchorLoading_033.png b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_033.imageset/yumi_anchorLoading_033.png new file mode 100644 index 00000000..a74d8f5d Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_033.imageset/yumi_anchorLoading_033.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_034.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_034.imageset/Contents.json new file mode 100644 index 00000000..3160446e --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_034.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_anchorLoading_034.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_034.imageset/yumi_anchorLoading_034.png b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_034.imageset/yumi_anchorLoading_034.png new file mode 100644 index 00000000..db7952ba Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_034.imageset/yumi_anchorLoading_034.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_035.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_035.imageset/Contents.json new file mode 100644 index 00000000..c67441ac --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_035.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_anchorLoading_035.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_035.imageset/yumi_anchorLoading_035.png b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_035.imageset/yumi_anchorLoading_035.png new file mode 100644 index 00000000..0a1d34ea Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_035.imageset/yumi_anchorLoading_035.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_036.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_036.imageset/Contents.json new file mode 100644 index 00000000..39789fc9 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_036.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_anchorLoading_036.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_036.imageset/yumi_anchorLoading_036.png b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_036.imageset/yumi_anchorLoading_036.png new file mode 100644 index 00000000..8ea28cc7 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_036.imageset/yumi_anchorLoading_036.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_037.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_037.imageset/Contents.json new file mode 100644 index 00000000..b5a669fd --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_037.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_anchorLoading_037.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_037.imageset/yumi_anchorLoading_037.png b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_037.imageset/yumi_anchorLoading_037.png new file mode 100644 index 00000000..09275e10 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_037.imageset/yumi_anchorLoading_037.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_038.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_038.imageset/Contents.json new file mode 100644 index 00000000..f833cd7c --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_038.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_anchorLoading_038.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_038.imageset/yumi_anchorLoading_038.png b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_038.imageset/yumi_anchorLoading_038.png new file mode 100644 index 00000000..79fe1281 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_038.imageset/yumi_anchorLoading_038.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_039.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_039.imageset/Contents.json new file mode 100644 index 00000000..1eddce8e --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_039.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_anchorLoading_039.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_039.imageset/yumi_anchorLoading_039.png b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_039.imageset/yumi_anchorLoading_039.png new file mode 100644 index 00000000..cbcf388d Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_039.imageset/yumi_anchorLoading_039.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_040.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_040.imageset/Contents.json new file mode 100644 index 00000000..4a33c38a --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_040.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_anchorLoading_040.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_040.imageset/yumi_anchorLoading_040.png b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_040.imageset/yumi_anchorLoading_040.png new file mode 100644 index 00000000..b08a5ece Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_040.imageset/yumi_anchorLoading_040.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_041.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_041.imageset/Contents.json new file mode 100644 index 00000000..6dd03c25 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_041.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_anchorLoading_041.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_041.imageset/yumi_anchorLoading_041.png b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_041.imageset/yumi_anchorLoading_041.png new file mode 100644 index 00000000..28a71ba3 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_041.imageset/yumi_anchorLoading_041.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_042.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_042.imageset/Contents.json new file mode 100644 index 00000000..6412b297 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_042.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_anchorLoading_042.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_042.imageset/yumi_anchorLoading_042.png b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_042.imageset/yumi_anchorLoading_042.png new file mode 100644 index 00000000..22824db7 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_042.imageset/yumi_anchorLoading_042.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_043.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_043.imageset/Contents.json new file mode 100644 index 00000000..e1e53ef0 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_043.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_anchorLoading_043.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_043.imageset/yumi_anchorLoading_043.png b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_043.imageset/yumi_anchorLoading_043.png new file mode 100644 index 00000000..51839364 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_043.imageset/yumi_anchorLoading_043.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_044.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_044.imageset/Contents.json new file mode 100644 index 00000000..05a32063 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_044.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_anchorLoading_044.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_044.imageset/yumi_anchorLoading_044.png b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_044.imageset/yumi_anchorLoading_044.png new file mode 100644 index 00000000..f94612ea Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_044.imageset/yumi_anchorLoading_044.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_045.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_045.imageset/Contents.json new file mode 100644 index 00000000..b56b011d --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_045.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_anchorLoading_045.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_045.imageset/yumi_anchorLoading_045.png b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_045.imageset/yumi_anchorLoading_045.png new file mode 100644 index 00000000..e6973fd8 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_045.imageset/yumi_anchorLoading_045.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_046.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_046.imageset/Contents.json new file mode 100644 index 00000000..ebd2be4b --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_046.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_anchorLoading_046.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_046.imageset/yumi_anchorLoading_046.png b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_046.imageset/yumi_anchorLoading_046.png new file mode 100644 index 00000000..a1951214 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_046.imageset/yumi_anchorLoading_046.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_047.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_047.imageset/Contents.json new file mode 100644 index 00000000..0746b34f --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_047.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_anchorLoading_047.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_047.imageset/yumi_anchorLoading_047.png b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_047.imageset/yumi_anchorLoading_047.png new file mode 100644 index 00000000..b022cbe5 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/Loading/yumi_anchorLoading_047.imageset/yumi_anchorLoading_047.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_Task_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_Task_background.imageset/Contents.json new file mode 100644 index 00000000..ac18469e --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_Task_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_anchor_fansTeam_Task_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_anchor_fansTeam_Task_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_Task_background.imageset/yumi_anchor_fansTeam_Task_background@2x.png b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_Task_background.imageset/yumi_anchor_fansTeam_Task_background@2x.png new file mode 100644 index 00000000..46369943 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_Task_background.imageset/yumi_anchor_fansTeam_Task_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_Task_background.imageset/yumi_anchor_fansTeam_Task_background@3x.png b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_Task_background.imageset/yumi_anchor_fansTeam_Task_background@3x.png new file mode 100644 index 00000000..50505d50 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_Task_background.imageset/yumi_anchor_fansTeam_Task_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_entrance_hadOpen.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_entrance_hadOpen.imageset/Contents.json new file mode 100644 index 00000000..612b8601 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_entrance_hadOpen.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_anchor_fansTeam_entrance_hadOpen@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_anchor_fansTeam_entrance_hadOpen@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_entrance_hadOpen.imageset/yumi_anchor_fansTeam_entrance_hadOpen@2x.png b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_entrance_hadOpen.imageset/yumi_anchor_fansTeam_entrance_hadOpen@2x.png new file mode 100644 index 00000000..e32f27f3 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_entrance_hadOpen.imageset/yumi_anchor_fansTeam_entrance_hadOpen@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_entrance_hadOpen.imageset/yumi_anchor_fansTeam_entrance_hadOpen@3x.png b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_entrance_hadOpen.imageset/yumi_anchor_fansTeam_entrance_hadOpen@3x.png new file mode 100644 index 00000000..5572fa10 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_entrance_hadOpen.imageset/yumi_anchor_fansTeam_entrance_hadOpen@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_entrance_pic.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_entrance_pic.imageset/Contents.json new file mode 100644 index 00000000..a0acc3d3 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_entrance_pic.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_anchor_fansTeam_entrance_pic@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_anchor_fansTeam_entrance_pic@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_entrance_pic.imageset/yumi_anchor_fansTeam_entrance_pic@2x.png b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_entrance_pic.imageset/yumi_anchor_fansTeam_entrance_pic@2x.png new file mode 100644 index 00000000..aff310a4 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_entrance_pic.imageset/yumi_anchor_fansTeam_entrance_pic@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_entrance_pic.imageset/yumi_anchor_fansTeam_entrance_pic@3x.png b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_entrance_pic.imageset/yumi_anchor_fansTeam_entrance_pic@3x.png new file mode 100644 index 00000000..c81bde5e Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_entrance_pic.imageset/yumi_anchor_fansTeam_entrance_pic@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_help.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_help.imageset/Contents.json new file mode 100644 index 00000000..66c6f307 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_help.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_anchor_fansTeam_help@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_anchor_fansTeam_help@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_help.imageset/yumi_anchor_fansTeam_help@2x.png b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_help.imageset/yumi_anchor_fansTeam_help@2x.png new file mode 100644 index 00000000..9c200ad0 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_help.imageset/yumi_anchor_fansTeam_help@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_help.imageset/yumi_anchor_fansTeam_help@3x.png b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_help.imageset/yumi_anchor_fansTeam_help@3x.png new file mode 100644 index 00000000..5d43b82f Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_help.imageset/yumi_anchor_fansTeam_help@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_more.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_more.imageset/Contents.json new file mode 100644 index 00000000..a6235f1b --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_more.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_anchor_fansTeam_more@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_anchor_fansTeam_more@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_more.imageset/yumi_anchor_fansTeam_more@2x.png b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_more.imageset/yumi_anchor_fansTeam_more@2x.png new file mode 100644 index 00000000..26ffdded Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_more.imageset/yumi_anchor_fansTeam_more@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_more.imageset/yumi_anchor_fansTeam_more@3x.png b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_more.imageset/yumi_anchor_fansTeam_more@3x.png new file mode 100644 index 00000000..879a8a2d Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_more.imageset/yumi_anchor_fansTeam_more@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_nameplate.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_nameplate.imageset/Contents.json new file mode 100644 index 00000000..2d976bab --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_nameplate.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_anchor_fansTeam_nameplate@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_anchor_fansTeam_nameplate@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_nameplate.imageset/yumi_anchor_fansTeam_nameplate@2x.png b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_nameplate.imageset/yumi_anchor_fansTeam_nameplate@2x.png new file mode 100644 index 00000000..dd70e6ef Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_nameplate.imageset/yumi_anchor_fansTeam_nameplate@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_nameplate.imageset/yumi_anchor_fansTeam_nameplate@3x.png b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_nameplate.imageset/yumi_anchor_fansTeam_nameplate@3x.png new file mode 100644 index 00000000..f66857f7 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_nameplate.imageset/yumi_anchor_fansTeam_nameplate@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_rank.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_rank.imageset/Contents.json new file mode 100644 index 00000000..6bbe7ff0 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_rank.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_anchor_fansTeam_rank@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_anchor_fansTeam_rank@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_rank.imageset/yumi_anchor_fansTeam_rank@2x.png b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_rank.imageset/yumi_anchor_fansTeam_rank@2x.png new file mode 100644 index 00000000..8bd6bbe6 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_rank.imageset/yumi_anchor_fansTeam_rank@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_rank.imageset/yumi_anchor_fansTeam_rank@3x.png b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_rank.imageset/yumi_anchor_fansTeam_rank@3x.png new file mode 100644 index 00000000..a939f457 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_rank.imageset/yumi_anchor_fansTeam_rank@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_ruleBg.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_ruleBg.imageset/Contents.json new file mode 100644 index 00000000..fabad48d --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_ruleBg.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_anchor_fansTeam_ruleBg@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_anchor_fansTeam_ruleBg@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_ruleBg.imageset/yumi_anchor_fansTeam_ruleBg@2x.png b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_ruleBg.imageset/yumi_anchor_fansTeam_ruleBg@2x.png new file mode 100644 index 00000000..21440b55 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_ruleBg.imageset/yumi_anchor_fansTeam_ruleBg@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_ruleBg.imageset/yumi_anchor_fansTeam_ruleBg@3x.png b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_ruleBg.imageset/yumi_anchor_fansTeam_ruleBg@3x.png new file mode 100644 index 00000000..e4c8056c Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_ruleBg.imageset/yumi_anchor_fansTeam_ruleBg@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_task.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_task.imageset/Contents.json new file mode 100644 index 00000000..06524634 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_task.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_anchor_fansTeam_task@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_anchor_fansTeam_task@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_task.imageset/yumi_anchor_fansTeam_task@2x.png b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_task.imageset/yumi_anchor_fansTeam_task@2x.png new file mode 100644 index 00000000..1f2b2b1b Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_task.imageset/yumi_anchor_fansTeam_task@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_task.imageset/yumi_anchor_fansTeam_task@3x.png b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_task.imageset/yumi_anchor_fansTeam_task@3x.png new file mode 100644 index 00000000..678312cb Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_fansTeam_task.imageset/yumi_anchor_fansTeam_task@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_hourRank_btn.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_hourRank_btn.imageset/Contents.json new file mode 100644 index 00000000..4325c6a4 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_hourRank_btn.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_anchor_hourRank_btn@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_anchor_hourRank_btn@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_hourRank_btn.imageset/yumi_anchor_hourRank_btn@2x.png b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_hourRank_btn.imageset/yumi_anchor_hourRank_btn@2x.png new file mode 100644 index 00000000..c473a6f6 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_hourRank_btn.imageset/yumi_anchor_hourRank_btn@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_hourRank_btn.imageset/yumi_anchor_hourRank_btn@3x.png b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_hourRank_btn.imageset/yumi_anchor_hourRank_btn@3x.png new file mode 100644 index 00000000..50340a80 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_hourRank_btn.imageset/yumi_anchor_hourRank_btn@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_hour_order_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_hour_order_background.imageset/Contents.json new file mode 100644 index 00000000..5a32cd87 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_hour_order_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_anchor_hour_order_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_anchor_hour_order_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_hour_order_background.imageset/yumi_anchor_hour_order_background@2x.png b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_hour_order_background.imageset/yumi_anchor_hour_order_background@2x.png new file mode 100644 index 00000000..84bb25cc Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_hour_order_background.imageset/yumi_anchor_hour_order_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_hour_order_background.imageset/yumi_anchor_hour_order_background@3x.png b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_hour_order_background.imageset/yumi_anchor_hour_order_background@3x.png new file mode 100644 index 00000000..a5c320d7 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_hour_order_background.imageset/yumi_anchor_hour_order_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_hour_order_pic.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_hour_order_pic.imageset/Contents.json new file mode 100644 index 00000000..32c985b4 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_hour_order_pic.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_anchor_hour_order_pic@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_anchor_hour_order_pic@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_hour_order_pic.imageset/yumi_anchor_hour_order_pic@2x.png b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_hour_order_pic.imageset/yumi_anchor_hour_order_pic@2x.png new file mode 100644 index 00000000..e737b291 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_hour_order_pic.imageset/yumi_anchor_hour_order_pic@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_hour_order_pic.imageset/yumi_anchor_hour_order_pic@3x.png b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_hour_order_pic.imageset/yumi_anchor_hour_order_pic@3x.png new file mode 100644 index 00000000..502446d2 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_hour_order_pic.imageset/yumi_anchor_hour_order_pic@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_scroll_tip.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_scroll_tip.imageset/Contents.json new file mode 100644 index 00000000..591977d5 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_scroll_tip.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_anchor_scroll_tip@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_anchor_scroll_tip@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_scroll_tip.imageset/yumi_anchor_scroll_tip@2x.png b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_scroll_tip.imageset/yumi_anchor_scroll_tip@2x.png new file mode 100644 index 00000000..d09d7747 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_scroll_tip.imageset/yumi_anchor_scroll_tip@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_scroll_tip.imageset/yumi_anchor_scroll_tip@3x.png b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_scroll_tip.imageset/yumi_anchor_scroll_tip@3x.png new file mode 100644 index 00000000..9bf3139d Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/yumi_anchor_scroll_tip.imageset/yumi_anchor_scroll_tip@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/yumi_join_anchor_fansTeam_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Anchor/yumi_join_anchor_fansTeam_background.imageset/Contents.json new file mode 100644 index 00000000..d0d27499 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Anchor/yumi_join_anchor_fansTeam_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_join_anchor_fansTeam_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_join_anchor_fansTeam_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Anchor/yumi_join_anchor_fansTeam_background.imageset/yumi_join_anchor_fansTeam_background@2x.png b/YuMi/Assets.xcassets/yna/Anchor/yumi_join_anchor_fansTeam_background.imageset/yumi_join_anchor_fansTeam_background@2x.png new file mode 100644 index 00000000..67ec603a Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/yumi_join_anchor_fansTeam_background.imageset/yumi_join_anchor_fansTeam_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Anchor/yumi_join_anchor_fansTeam_background.imageset/yumi_join_anchor_fansTeam_background@3x.png b/YuMi/Assets.xcassets/yna/Anchor/yumi_join_anchor_fansTeam_background.imageset/yumi_join_anchor_fansTeam_background@3x.png new file mode 100644 index 00000000..512bd7eb Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Anchor/yumi_join_anchor_fansTeam_background.imageset/yumi_join_anchor_fansTeam_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/BackMusic/Contents.json b/YuMi/Assets.xcassets/yna/BackMusic/Contents.json new file mode 100644 index 00000000..e2342777 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/BackMusic/Contents.json @@ -0,0 +1,7 @@ +{"info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_library_pause.imageset/Contents.json b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_library_pause.imageset/Contents.json new file mode 100644 index 00000000..ec12ace5 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_library_pause.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_musimage_library_pause@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_musimage_library_pause@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_library_pause.imageset/yumi_scope_musimage_library_pause@2x.png b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_library_pause.imageset/yumi_scope_musimage_library_pause@2x.png new file mode 100644 index 00000000..0241c31b Binary files /dev/null and b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_library_pause.imageset/yumi_scope_musimage_library_pause@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_library_pause.imageset/yumi_scope_musimage_library_pause@3x.png b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_library_pause.imageset/yumi_scope_musimage_library_pause@3x.png new file mode 100644 index 00000000..3dadb4c8 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_library_pause.imageset/yumi_scope_musimage_library_pause@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_library_play.imageset/Contents.json b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_library_play.imageset/Contents.json new file mode 100644 index 00000000..63ac76a5 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_library_play.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_musimage_library_play@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_musimage_library_play@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_library_play.imageset/yumi_scope_musimage_library_play@2x.png b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_library_play.imageset/yumi_scope_musimage_library_play@2x.png new file mode 100644 index 00000000..efe14778 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_library_play.imageset/yumi_scope_musimage_library_play@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_library_play.imageset/yumi_scope_musimage_library_play@3x.png b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_library_play.imageset/yumi_scope_musimage_library_play@3x.png new file mode 100644 index 00000000..91f3b4d1 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_library_play.imageset/yumi_scope_musimage_library_play@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_library_title_add.imageset/Contents.json b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_library_title_add.imageset/Contents.json new file mode 100644 index 00000000..2fc0e2bb --- /dev/null +++ b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_library_title_add.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_musimage_library_title_add@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_musimage_library_title_add@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_library_title_add.imageset/yumi_scope_musimage_library_title_add@2x.png b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_library_title_add.imageset/yumi_scope_musimage_library_title_add@2x.png new file mode 100644 index 00000000..ef7dadfb Binary files /dev/null and b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_library_title_add.imageset/yumi_scope_musimage_library_title_add@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_library_title_add.imageset/yumi_scope_musimage_library_title_add@3x.png b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_library_title_add.imageset/yumi_scope_musimage_library_title_add@3x.png new file mode 100644 index 00000000..1defccfc Binary files /dev/null and b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_library_title_add.imageset/yumi_scope_musimage_library_title_add@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_library_volum_setting.imageset/Contents.json b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_library_volum_setting.imageset/Contents.json new file mode 100644 index 00000000..767c77d8 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_library_volum_setting.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_musimage_library_volum_setting@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_musimage_library_volum_setting@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_library_volum_setting.imageset/yumi_scope_musimage_library_volum_setting@2x.png b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_library_volum_setting.imageset/yumi_scope_musimage_library_volum_setting@2x.png new file mode 100644 index 00000000..6770aaff Binary files /dev/null and b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_library_volum_setting.imageset/yumi_scope_musimage_library_volum_setting@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_library_volum_setting.imageset/yumi_scope_musimage_library_volum_setting@3x.png b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_library_volum_setting.imageset/yumi_scope_musimage_library_volum_setting@3x.png new file mode 100644 index 00000000..3163fab1 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_library_volum_setting.imageset/yumi_scope_musimage_library_volum_setting@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_player_enter.imageset/Contents.json b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_player_enter.imageset/Contents.json new file mode 100644 index 00000000..022e7209 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_player_enter.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_musimage_player_enter@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_musimage_player_enter@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_player_enter.imageset/yumi_scope_musimage_player_enter@2x.png b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_player_enter.imageset/yumi_scope_musimage_player_enter@2x.png new file mode 100644 index 00000000..d3a47ef9 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_player_enter.imageset/yumi_scope_musimage_player_enter@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_player_enter.imageset/yumi_scope_musimage_player_enter@3x.png b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_player_enter.imageset/yumi_scope_musimage_player_enter@3x.png new file mode 100644 index 00000000..5d440022 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_player_enter.imageset/yumi_scope_musimage_player_enter@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_small_player_more.imageset/Contents.json b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_small_player_more.imageset/Contents.json new file mode 100644 index 00000000..e5b9a646 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_small_player_more.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_musimage_small_player_more@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_small_player_more.imageset/yumi_scope_musimage_small_player_more@3x.png b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_small_player_more.imageset/yumi_scope_musimage_small_player_more@3x.png new file mode 100644 index 00000000..0bc56689 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_small_player_more.imageset/yumi_scope_musimage_small_player_more@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_small_player_next.imageset/Contents.json b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_small_player_next.imageset/Contents.json new file mode 100644 index 00000000..1f924a1d --- /dev/null +++ b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_small_player_next.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_musimage_small_player_next@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_musimage_small_player_next@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_small_player_next.imageset/yumi_scope_musimage_small_player_next@2x.png b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_small_player_next.imageset/yumi_scope_musimage_small_player_next@2x.png new file mode 100644 index 00000000..165a63a6 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_small_player_next.imageset/yumi_scope_musimage_small_player_next@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_small_player_next.imageset/yumi_scope_musimage_small_player_next@3x.png b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_small_player_next.imageset/yumi_scope_musimage_small_player_next@3x.png new file mode 100644 index 00000000..87c0d95f Binary files /dev/null and b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_small_player_next.imageset/yumi_scope_musimage_small_player_next@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_small_player_order.imageset/Contents.json b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_small_player_order.imageset/Contents.json new file mode 100644 index 00000000..293464fc --- /dev/null +++ b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_small_player_order.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_musimage_small_player_order@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_musimage_small_player_order@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_small_player_order.imageset/yumi_scope_musimage_small_player_order@2x.png b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_small_player_order.imageset/yumi_scope_musimage_small_player_order@2x.png new file mode 100644 index 00000000..66109fc1 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_small_player_order.imageset/yumi_scope_musimage_small_player_order@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_small_player_order.imageset/yumi_scope_musimage_small_player_order@3x.png b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_small_player_order.imageset/yumi_scope_musimage_small_player_order@3x.png new file mode 100644 index 00000000..135d4956 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_small_player_order.imageset/yumi_scope_musimage_small_player_order@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_small_player_pause.imageset/Contents.json b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_small_player_pause.imageset/Contents.json new file mode 100644 index 00000000..31250296 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_small_player_pause.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_musimage_small_player_pause@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_musimage_small_player_pause@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_small_player_pause.imageset/yumi_scope_musimage_small_player_pause@2x.png b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_small_player_pause.imageset/yumi_scope_musimage_small_player_pause@2x.png new file mode 100644 index 00000000..5c3db183 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_small_player_pause.imageset/yumi_scope_musimage_small_player_pause@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_small_player_pause.imageset/yumi_scope_musimage_small_player_pause@3x.png b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_small_player_pause.imageset/yumi_scope_musimage_small_player_pause@3x.png new file mode 100644 index 00000000..c8b0a2d8 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_small_player_pause.imageset/yumi_scope_musimage_small_player_pause@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_small_player_play.imageset/Contents.json b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_small_player_play.imageset/Contents.json new file mode 100644 index 00000000..bef46d62 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_small_player_play.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_musimage_small_player_play@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_musimage_small_player_play@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_small_player_play.imageset/yumi_scope_musimage_small_player_play@2x.png b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_small_player_play.imageset/yumi_scope_musimage_small_player_play@2x.png new file mode 100644 index 00000000..01218fc1 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_small_player_play.imageset/yumi_scope_musimage_small_player_play@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_small_player_play.imageset/yumi_scope_musimage_small_player_play@3x.png b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_small_player_play.imageset/yumi_scope_musimage_small_player_play@3x.png new file mode 100644 index 00000000..17dde82a Binary files /dev/null and b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_small_player_play.imageset/yumi_scope_musimage_small_player_play@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_small_player_single.imageset/Contents.json b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_small_player_single.imageset/Contents.json new file mode 100644 index 00000000..6bc516cb --- /dev/null +++ b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_small_player_single.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_musimage_small_player_single@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_musimage_small_player_single@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_small_player_single.imageset/yumi_scope_musimage_small_player_single@2x.png b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_small_player_single.imageset/yumi_scope_musimage_small_player_single@2x.png new file mode 100644 index 00000000..c6f04a94 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_small_player_single.imageset/yumi_scope_musimage_small_player_single@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_small_player_single.imageset/yumi_scope_musimage_small_player_single@3x.png b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_small_player_single.imageset/yumi_scope_musimage_small_player_single@3x.png new file mode 100644 index 00000000..233d0956 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_small_player_single.imageset/yumi_scope_musimage_small_player_single@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_small_player_voice.imageset/Contents.json b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_small_player_voice.imageset/Contents.json new file mode 100644 index 00000000..baca36b4 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_small_player_voice.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_musimage_small_player_voice@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_musimage_small_player_voice@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_small_player_voice.imageset/yumi_scope_musimage_small_player_voice@2x.png b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_small_player_voice.imageset/yumi_scope_musimage_small_player_voice@2x.png new file mode 100644 index 00000000..3e354aa9 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_small_player_voice.imageset/yumi_scope_musimage_small_player_voice@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_small_player_voice.imageset/yumi_scope_musimage_small_player_voice@3x.png b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_small_player_voice.imageset/yumi_scope_musimage_small_player_voice@3x.png new file mode 100644 index 00000000..7bccaa58 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_small_player_voice.imageset/yumi_scope_musimage_small_player_voice@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_small_player_white_dot.imageset/Contents.json b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_small_player_white_dot.imageset/Contents.json new file mode 100644 index 00000000..f36ac0b7 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_small_player_white_dot.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_musimage_small_player_white_dot@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_musimage_small_player_white_dot@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_small_player_white_dot.imageset/yumi_scope_musimage_small_player_white_dot@2x.png b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_small_player_white_dot.imageset/yumi_scope_musimage_small_player_white_dot@2x.png new file mode 100644 index 00000000..19d718ce Binary files /dev/null and b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_small_player_white_dot.imageset/yumi_scope_musimage_small_player_white_dot@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_small_player_white_dot.imageset/yumi_scope_musimage_small_player_white_dot@3x.png b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_small_player_white_dot.imageset/yumi_scope_musimage_small_player_white_dot@3x.png new file mode 100644 index 00000000..c7c7c048 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_small_player_white_dot.imageset/yumi_scope_musimage_small_player_white_dot@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_transfer_computer.imageset/Contents.json b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_transfer_computer.imageset/Contents.json new file mode 100644 index 00000000..4dffddae --- /dev/null +++ b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_transfer_computer.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_musimage_transfer_computer@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_musimage_transfer_computer@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_transfer_computer.imageset/yumi_scope_musimage_transfer_computer@2x.png b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_transfer_computer.imageset/yumi_scope_musimage_transfer_computer@2x.png new file mode 100644 index 00000000..eb0be1ea Binary files /dev/null and b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_transfer_computer.imageset/yumi_scope_musimage_transfer_computer@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_transfer_computer.imageset/yumi_scope_musimage_transfer_computer@3x.png b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_transfer_computer.imageset/yumi_scope_musimage_transfer_computer@3x.png new file mode 100644 index 00000000..a51832ca Binary files /dev/null and b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_transfer_computer.imageset/yumi_scope_musimage_transfer_computer@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_transfer_wifi.imageset/Contents.json b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_transfer_wifi.imageset/Contents.json new file mode 100644 index 00000000..a09b1d1e --- /dev/null +++ b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_transfer_wifi.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_musimage_transfer_wifi@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_musimage_transfer_wifi@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_transfer_wifi.imageset/yumi_scope_musimage_transfer_wifi@2x.png b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_transfer_wifi.imageset/yumi_scope_musimage_transfer_wifi@2x.png new file mode 100644 index 00000000..8ab93c44 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_transfer_wifi.imageset/yumi_scope_musimage_transfer_wifi@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_transfer_wifi.imageset/yumi_scope_musimage_transfer_wifi@3x.png b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_transfer_wifi.imageset/yumi_scope_musimage_transfer_wifi@3x.png new file mode 100644 index 00000000..e51dfa85 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_transfer_wifi.imageset/yumi_scope_musimage_transfer_wifi@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_voice_setting_dot.imageset/Contents.json b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_voice_setting_dot.imageset/Contents.json new file mode 100644 index 00000000..5794aea3 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_voice_setting_dot.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_musimage_voice_setting_dot@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_musimage_voice_setting_dot@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_voice_setting_dot.imageset/yumi_scope_musimage_voice_setting_dot@2x.png b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_voice_setting_dot.imageset/yumi_scope_musimage_voice_setting_dot@2x.png new file mode 100644 index 00000000..efaba192 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_voice_setting_dot.imageset/yumi_scope_musimage_voice_setting_dot@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_voice_setting_dot.imageset/yumi_scope_musimage_voice_setting_dot@3x.png b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_voice_setting_dot.imageset/yumi_scope_musimage_voice_setting_dot@3x.png new file mode 100644 index 00000000..2d02b5f7 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/BackMusic/yumi_scope_musimage_voice_setting_dot.imageset/yumi_scope_musimage_voice_setting_dot@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Broadcast/Contents.json b/YuMi/Assets.xcassets/yna/Broadcast/Contents.json new file mode 100644 index 00000000..e2342777 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Broadcast/Contents.json @@ -0,0 +1,7 @@ +{"info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_avatar_board.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_avatar_board.imageset/Contents.json new file mode 100644 index 00000000..9c352610 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_avatar_board.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_present_broadcast_avatar_board@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_present_broadcast_avatar_board@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_avatar_board.imageset/yumi_scope_present_broadcast_avatar_board@2x.png b/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_avatar_board.imageset/yumi_scope_present_broadcast_avatar_board@2x.png new file mode 100644 index 00000000..2c7adcc0 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_avatar_board.imageset/yumi_scope_present_broadcast_avatar_board@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_avatar_board.imageset/yumi_scope_present_broadcast_avatar_board@3x.png b/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_avatar_board.imageset/yumi_scope_present_broadcast_avatar_board@3x.png new file mode 100644 index 00000000..37b3cd4e Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_avatar_board.imageset/yumi_scope_present_broadcast_avatar_board@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_close.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_close.imageset/Contents.json new file mode 100644 index 00000000..4189c96e --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_close.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_present_broadcast_close@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_present_broadcast_close@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_close.imageset/yumi_scope_present_broadcast_close@2x.png b/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_close.imageset/yumi_scope_present_broadcast_close@2x.png new file mode 100644 index 00000000..c9b3623a Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_close.imageset/yumi_scope_present_broadcast_close@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_close.imageset/yumi_scope_present_broadcast_close@3x.png b/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_close.imageset/yumi_scope_present_broadcast_close@3x.png new file mode 100644 index 00000000..616a3924 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_close.imageset/yumi_scope_present_broadcast_close@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_high_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_high_background.imageset/Contents.json new file mode 100644 index 00000000..b9ae025b --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_high_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_present_broadcast_high_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_present_broadcast_high_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_high_background.imageset/yumi_scope_present_broadcast_high_background@2x.png b/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_high_background.imageset/yumi_scope_present_broadcast_high_background@2x.png new file mode 100644 index 00000000..a7cbaa85 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_high_background.imageset/yumi_scope_present_broadcast_high_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_high_background.imageset/yumi_scope_present_broadcast_high_background@3x.png b/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_high_background.imageset/yumi_scope_present_broadcast_high_background@3x.png new file mode 100644 index 00000000..ef197e90 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_high_background.imageset/yumi_scope_present_broadcast_high_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_higher_nick_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_higher_nick_background.imageset/Contents.json new file mode 100644 index 00000000..fa7eff3a --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_higher_nick_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_present_broadcast_higher_nick_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_present_broadcast_higher_nick_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_higher_nick_background.imageset/yumi_scope_present_broadcast_higher_nick_background@2x.png b/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_higher_nick_background.imageset/yumi_scope_present_broadcast_higher_nick_background@2x.png new file mode 100644 index 00000000..5c0ac055 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_higher_nick_background.imageset/yumi_scope_present_broadcast_higher_nick_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_higher_nick_background.imageset/yumi_scope_present_broadcast_higher_nick_background@3x.png b/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_higher_nick_background.imageset/yumi_scope_present_broadcast_higher_nick_background@3x.png new file mode 100644 index 00000000..daa8e2af Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_higher_nick_background.imageset/yumi_scope_present_broadcast_higher_nick_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_low_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_low_background.imageset/Contents.json new file mode 100644 index 00000000..5ee256b7 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_low_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_present_broadcast_low_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_present_broadcast_low_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_low_background.imageset/yumi_scope_present_broadcast_low_background@2x.png b/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_low_background.imageset/yumi_scope_present_broadcast_low_background@2x.png new file mode 100644 index 00000000..d6092d00 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_low_background.imageset/yumi_scope_present_broadcast_low_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_low_background.imageset/yumi_scope_present_broadcast_low_background@3x.png b/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_low_background.imageset/yumi_scope_present_broadcast_low_background@3x.png new file mode 100644 index 00000000..a3f66f78 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_low_background.imageset/yumi_scope_present_broadcast_low_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_middle_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_middle_background.imageset/Contents.json new file mode 100644 index 00000000..fe400061 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_middle_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_present_broadcast_middle_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_present_broadcast_middle_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_middle_background.imageset/yumi_scope_present_broadcast_middle_background@2x.png b/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_middle_background.imageset/yumi_scope_present_broadcast_middle_background@2x.png new file mode 100644 index 00000000..bdf3c37c Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_middle_background.imageset/yumi_scope_present_broadcast_middle_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_middle_background.imageset/yumi_scope_present_broadcast_middle_background@3x.png b/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_middle_background.imageset/yumi_scope_present_broadcast_middle_background@3x.png new file mode 100644 index 00000000..0d2b9181 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_middle_background.imageset/yumi_scope_present_broadcast_middle_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_normal_nick_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_normal_nick_background.imageset/Contents.json new file mode 100644 index 00000000..e98a2d18 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_normal_nick_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_present_broadcast_normal_nick_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_present_broadcast_normal_nick_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_normal_nick_background.imageset/yumi_scope_present_broadcast_normal_nick_background@2x.png b/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_normal_nick_background.imageset/yumi_scope_present_broadcast_normal_nick_background@2x.png new file mode 100644 index 00000000..c702f302 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_normal_nick_background.imageset/yumi_scope_present_broadcast_normal_nick_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_normal_nick_background.imageset/yumi_scope_present_broadcast_normal_nick_background@3x.png b/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_normal_nick_background.imageset/yumi_scope_present_broadcast_normal_nick_background@3x.png new file mode 100644 index 00000000..2e726c1a Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_normal_nick_background.imageset/yumi_scope_present_broadcast_normal_nick_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_send.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_send.imageset/Contents.json new file mode 100644 index 00000000..fb45af3d --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_send.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_present_broadcast_send@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_present_broadcast_send@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_send.imageset/yumi_scope_present_broadcast_send@2x.png b/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_send.imageset/yumi_scope_present_broadcast_send@2x.png new file mode 100644 index 00000000..a0a8e1c7 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_send.imageset/yumi_scope_present_broadcast_send@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_send.imageset/yumi_scope_present_broadcast_send@3x.png b/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_send.imageset/yumi_scope_present_broadcast_send@3x.png new file mode 100644 index 00000000..a4a0a836 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Broadcast/yumi_scope_present_broadcast_send.imageset/yumi_scope_present_broadcast_send@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/CandyTree/Contents.json b/YuMi/Assets.xcassets/yna/CandyTree/Contents.json new file mode 100644 index 00000000..e2342777 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/CandyTree/Contents.json @@ -0,0 +1,7 @@ +{"info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/CandyTree/yumi_candy_tree_diamond.imageset/Contents.json b/YuMi/Assets.xcassets/yna/CandyTree/yumi_candy_tree_diamond.imageset/Contents.json new file mode 100644 index 00000000..3c579028 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/CandyTree/yumi_candy_tree_diamond.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_candy_tree_diamond@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_candy_tree_diamond@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/CandyTree/yumi_candy_tree_diamond.imageset/yumi_candy_tree_diamond@2x.png b/YuMi/Assets.xcassets/yna/CandyTree/yumi_candy_tree_diamond.imageset/yumi_candy_tree_diamond@2x.png new file mode 100644 index 00000000..7613b5a0 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/CandyTree/yumi_candy_tree_diamond.imageset/yumi_candy_tree_diamond@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/CandyTree/yumi_candy_tree_diamond.imageset/yumi_candy_tree_diamond@3x.png b/YuMi/Assets.xcassets/yna/CandyTree/yumi_candy_tree_diamond.imageset/yumi_candy_tree_diamond@3x.png new file mode 100644 index 00000000..94d6de0b Binary files /dev/null and b/YuMi/Assets.xcassets/yna/CandyTree/yumi_candy_tree_diamond.imageset/yumi_candy_tree_diamond@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/CandyTree/yumi_candy_tree_levle_fifth.imageset/Contents.json b/YuMi/Assets.xcassets/yna/CandyTree/yumi_candy_tree_levle_fifth.imageset/Contents.json new file mode 100644 index 00000000..13e12ea3 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/CandyTree/yumi_candy_tree_levle_fifth.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_candy_tree_levle_fifth@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_candy_tree_levle_fifth@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/CandyTree/yumi_candy_tree_levle_fifth.imageset/yumi_candy_tree_levle_fifth@2x.png b/YuMi/Assets.xcassets/yna/CandyTree/yumi_candy_tree_levle_fifth.imageset/yumi_candy_tree_levle_fifth@2x.png new file mode 100644 index 00000000..1e989c34 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/CandyTree/yumi_candy_tree_levle_fifth.imageset/yumi_candy_tree_levle_fifth@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/CandyTree/yumi_candy_tree_levle_fifth.imageset/yumi_candy_tree_levle_fifth@3x.png b/YuMi/Assets.xcassets/yna/CandyTree/yumi_candy_tree_levle_fifth.imageset/yumi_candy_tree_levle_fifth@3x.png new file mode 100644 index 00000000..391d66bd Binary files /dev/null and b/YuMi/Assets.xcassets/yna/CandyTree/yumi_candy_tree_levle_fifth.imageset/yumi_candy_tree_levle_fifth@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/CandyTree/yumi_candy_tree_levle_fourth.imageset/Contents.json b/YuMi/Assets.xcassets/yna/CandyTree/yumi_candy_tree_levle_fourth.imageset/Contents.json new file mode 100644 index 00000000..020ad396 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/CandyTree/yumi_candy_tree_levle_fourth.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_candy_tree_levle_fourth@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_candy_tree_levle_fourth@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/CandyTree/yumi_candy_tree_levle_fourth.imageset/yumi_candy_tree_levle_fourth@2x.png b/YuMi/Assets.xcassets/yna/CandyTree/yumi_candy_tree_levle_fourth.imageset/yumi_candy_tree_levle_fourth@2x.png new file mode 100644 index 00000000..43501526 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/CandyTree/yumi_candy_tree_levle_fourth.imageset/yumi_candy_tree_levle_fourth@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/CandyTree/yumi_candy_tree_levle_fourth.imageset/yumi_candy_tree_levle_fourth@3x.png b/YuMi/Assets.xcassets/yna/CandyTree/yumi_candy_tree_levle_fourth.imageset/yumi_candy_tree_levle_fourth@3x.png new file mode 100644 index 00000000..53989bc0 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/CandyTree/yumi_candy_tree_levle_fourth.imageset/yumi_candy_tree_levle_fourth@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/CandyTree/yumi_candy_tree_levle_third.imageset/Contents.json b/YuMi/Assets.xcassets/yna/CandyTree/yumi_candy_tree_levle_third.imageset/Contents.json new file mode 100644 index 00000000..7d9dee3e --- /dev/null +++ b/YuMi/Assets.xcassets/yna/CandyTree/yumi_candy_tree_levle_third.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_candy_tree_levle_third@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_candy_tree_levle_third@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/CandyTree/yumi_candy_tree_levle_third.imageset/yumi_candy_tree_levle_third@2x.png b/YuMi/Assets.xcassets/yna/CandyTree/yumi_candy_tree_levle_third.imageset/yumi_candy_tree_levle_third@2x.png new file mode 100644 index 00000000..eb45d611 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/CandyTree/yumi_candy_tree_levle_third.imageset/yumi_candy_tree_levle_third@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/CandyTree/yumi_candy_tree_levle_third.imageset/yumi_candy_tree_levle_third@3x.png b/YuMi/Assets.xcassets/yna/CandyTree/yumi_candy_tree_levle_third.imageset/yumi_candy_tree_levle_third@3x.png new file mode 100644 index 00000000..8d8c416f Binary files /dev/null and b/YuMi/Assets.xcassets/yna/CandyTree/yumi_candy_tree_levle_third.imageset/yumi_candy_tree_levle_third@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_add.imageset/Contents.json b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_add.imageset/Contents.json new file mode 100644 index 00000000..206eec52 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_add.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_candy_tree_add@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_candy_tree_add@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_add.imageset/yumi_scope_candy_tree_add@2x.png b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_add.imageset/yumi_scope_candy_tree_add@2x.png new file mode 100644 index 00000000..e90a1ebb Binary files /dev/null and b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_add.imageset/yumi_scope_candy_tree_add@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_add.imageset/yumi_scope_candy_tree_add@3x.png b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_add.imageset/yumi_scope_candy_tree_add@3x.png new file mode 100644 index 00000000..32ffebdc Binary files /dev/null and b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_add.imageset/yumi_scope_candy_tree_add@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_back.imageset/Contents.json b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_back.imageset/Contents.json new file mode 100644 index 00000000..693e85ce --- /dev/null +++ b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_back.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_candy_tree_back@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_candy_tree_back@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_back.imageset/yumi_scope_candy_tree_back@2x.png b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_back.imageset/yumi_scope_candy_tree_back@2x.png new file mode 100644 index 00000000..2c128417 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_back.imageset/yumi_scope_candy_tree_back@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_back.imageset/yumi_scope_candy_tree_back@3x.png b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_back.imageset/yumi_scope_candy_tree_back@3x.png new file mode 100644 index 00000000..582698a2 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_back.imageset/yumi_scope_candy_tree_back@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_background.imageset/Contents.json new file mode 100644 index 00000000..52708c75 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_candy_tree_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_candy_tree_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_background.imageset/yumi_scope_candy_tree_background@2x.png b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_background.imageset/yumi_scope_candy_tree_background@2x.png new file mode 100644 index 00000000..28a309be Binary files /dev/null and b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_background.imageset/yumi_scope_candy_tree_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_background.imageset/yumi_scope_candy_tree_background@3x.png b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_background.imageset/yumi_scope_candy_tree_background@3x.png new file mode 100644 index 00000000..5298d816 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_background.imageset/yumi_scope_candy_tree_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_candy.imageset/Contents.json b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_candy.imageset/Contents.json new file mode 100644 index 00000000..049e18fd --- /dev/null +++ b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_candy.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_candy_tree_candy@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_candy_tree_candy@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_candy.imageset/yumi_scope_candy_tree_candy@2x.png b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_candy.imageset/yumi_scope_candy_tree_candy@2x.png new file mode 100644 index 00000000..8ce98843 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_candy.imageset/yumi_scope_candy_tree_candy@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_candy.imageset/yumi_scope_candy_tree_candy@3x.png b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_candy.imageset/yumi_scope_candy_tree_candy@3x.png new file mode 100644 index 00000000..ae08acdb Binary files /dev/null and b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_candy.imageset/yumi_scope_candy_tree_candy@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_enter.imageset/Contents.json b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_enter.imageset/Contents.json new file mode 100644 index 00000000..6d2fcf45 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_enter.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_candy_tree_enter@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_candy_tree_enter@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_enter.imageset/yumi_scope_candy_tree_enter@2x.png b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_enter.imageset/yumi_scope_candy_tree_enter@2x.png new file mode 100644 index 00000000..615023b3 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_enter.imageset/yumi_scope_candy_tree_enter@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_enter.imageset/yumi_scope_candy_tree_enter@3x.png b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_enter.imageset/yumi_scope_candy_tree_enter@3x.png new file mode 100644 index 00000000..1206baad Binary files /dev/null and b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_enter.imageset/yumi_scope_candy_tree_enter@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_more.imageset/Contents.json b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_more.imageset/Contents.json new file mode 100644 index 00000000..2cdb2bb6 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_more.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_candy_tree_more@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_candy_tree_more@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_more.imageset/yumi_scope_candy_tree_more@2x.png b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_more.imageset/yumi_scope_candy_tree_more@2x.png new file mode 100644 index 00000000..99343314 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_more.imageset/yumi_scope_candy_tree_more@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_more.imageset/yumi_scope_candy_tree_more@3x.png b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_more.imageset/yumi_scope_candy_tree_more@3x.png new file mode 100644 index 00000000..8b89ff76 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_more.imageset/yumi_scope_candy_tree_more@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_pick_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_pick_background.imageset/Contents.json new file mode 100644 index 00000000..00979c83 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_pick_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_candy_tree_pick_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_candy_tree_pick_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_pick_background.imageset/yumi_scope_candy_tree_pick_background@2x.png b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_pick_background.imageset/yumi_scope_candy_tree_pick_background@2x.png new file mode 100644 index 00000000..92aa4d9f Binary files /dev/null and b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_pick_background.imageset/yumi_scope_candy_tree_pick_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_pick_background.imageset/yumi_scope_candy_tree_pick_background@3x.png b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_pick_background.imageset/yumi_scope_candy_tree_pick_background@3x.png new file mode 100644 index 00000000..a5c42b09 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_pick_background.imageset/yumi_scope_candy_tree_pick_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_pick_disable.imageset/Contents.json b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_pick_disable.imageset/Contents.json new file mode 100644 index 00000000..bc1710b4 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_pick_disable.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_candy_tree_pick_disable@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_candy_tree_pick_disable@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_pick_disable.imageset/yumi_scope_candy_tree_pick_disable@2x.png b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_pick_disable.imageset/yumi_scope_candy_tree_pick_disable@2x.png new file mode 100644 index 00000000..5055b240 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_pick_disable.imageset/yumi_scope_candy_tree_pick_disable@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_pick_disable.imageset/yumi_scope_candy_tree_pick_disable@3x.png b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_pick_disable.imageset/yumi_scope_candy_tree_pick_disable@3x.png new file mode 100644 index 00000000..d939777a Binary files /dev/null and b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_pick_disable.imageset/yumi_scope_candy_tree_pick_disable@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_pick_normal.imageset/Contents.json b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_pick_normal.imageset/Contents.json new file mode 100644 index 00000000..d410f321 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_pick_normal.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_candy_tree_pick_normal@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_candy_tree_pick_normal@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_pick_normal.imageset/yumi_scope_candy_tree_pick_normal@2x.png b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_pick_normal.imageset/yumi_scope_candy_tree_pick_normal@2x.png new file mode 100644 index 00000000..a68ee9a1 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_pick_normal.imageset/yumi_scope_candy_tree_pick_normal@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_pick_normal.imageset/yumi_scope_candy_tree_pick_normal@3x.png b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_pick_normal.imageset/yumi_scope_candy_tree_pick_normal@3x.png new file mode 100644 index 00000000..654260b5 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_pick_normal.imageset/yumi_scope_candy_tree_pick_normal@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_rank.imageset/Contents.json b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_rank.imageset/Contents.json new file mode 100644 index 00000000..4bd6ff2a --- /dev/null +++ b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_rank.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_candy_tree_rank@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_candy_tree_rank@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_rank.imageset/yumi_scope_candy_tree_rank@2x.png b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_rank.imageset/yumi_scope_candy_tree_rank@2x.png new file mode 100644 index 00000000..ad22370f Binary files /dev/null and b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_rank.imageset/yumi_scope_candy_tree_rank@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_rank.imageset/yumi_scope_candy_tree_rank@3x.png b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_rank.imageset/yumi_scope_candy_tree_rank@3x.png new file mode 100644 index 00000000..737df334 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_rank.imageset/yumi_scope_candy_tree_rank@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_record_refresh.imageset/Contents.json b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_record_refresh.imageset/Contents.json new file mode 100644 index 00000000..a4704aad --- /dev/null +++ b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_record_refresh.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_candy_tree_record_refresh@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_candy_tree_record_refresh@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_record_refresh.imageset/yumi_scope_candy_tree_record_refresh@2x.png b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_record_refresh.imageset/yumi_scope_candy_tree_record_refresh@2x.png new file mode 100644 index 00000000..07826b2c Binary files /dev/null and b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_record_refresh.imageset/yumi_scope_candy_tree_record_refresh@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_record_refresh.imageset/yumi_scope_candy_tree_record_refresh@3x.png b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_record_refresh.imageset/yumi_scope_candy_tree_record_refresh@3x.png new file mode 100644 index 00000000..a23f424c Binary files /dev/null and b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_record_refresh.imageset/yumi_scope_candy_tree_record_refresh@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_subtract.imageset/Contents.json b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_subtract.imageset/Contents.json new file mode 100644 index 00000000..82b45174 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_subtract.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_candy_tree_subtract@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_candy_tree_subtract@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_subtract.imageset/yumi_scope_candy_tree_subtract@2x.png b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_subtract.imageset/yumi_scope_candy_tree_subtract@2x.png new file mode 100644 index 00000000..7029bfe5 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_subtract.imageset/yumi_scope_candy_tree_subtract@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_subtract.imageset/yumi_scope_candy_tree_subtract@3x.png b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_subtract.imageset/yumi_scope_candy_tree_subtract@3x.png new file mode 100644 index 00000000..5abbd941 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candy_tree_subtract.imageset/yumi_scope_candy_tree_subtract@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candytree_large_present_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candytree_large_present_background.imageset/Contents.json new file mode 100644 index 00000000..10a5019b --- /dev/null +++ b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candytree_large_present_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_candytree_large_present_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_candytree_large_present_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candytree_large_present_background.imageset/yumi_scope_candytree_large_present_background@2x.png b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candytree_large_present_background.imageset/yumi_scope_candytree_large_present_background@2x.png new file mode 100644 index 00000000..fbec3c9e Binary files /dev/null and b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candytree_large_present_background.imageset/yumi_scope_candytree_large_present_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candytree_large_present_background.imageset/yumi_scope_candytree_large_present_background@3x.png b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candytree_large_present_background.imageset/yumi_scope_candytree_large_present_background@3x.png new file mode 100644 index 00000000..d41b42d1 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candytree_large_present_background.imageset/yumi_scope_candytree_large_present_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candytree_prompt.imageset/Contents.json b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candytree_prompt.imageset/Contents.json new file mode 100644 index 00000000..77e35828 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candytree_prompt.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_candytree_prompt@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_candytree_prompt@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candytree_prompt.imageset/yumi_scope_candytree_prompt@2x.png b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candytree_prompt.imageset/yumi_scope_candytree_prompt@2x.png new file mode 100644 index 00000000..61d9dd0c Binary files /dev/null and b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candytree_prompt.imageset/yumi_scope_candytree_prompt@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candytree_prompt.imageset/yumi_scope_candytree_prompt@3x.png b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candytree_prompt.imageset/yumi_scope_candytree_prompt@3x.png new file mode 100644 index 00000000..a7e8cf73 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candytree_prompt.imageset/yumi_scope_candytree_prompt@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candytree_wish_num1.imageset/Contents.json b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candytree_wish_num1.imageset/Contents.json new file mode 100644 index 00000000..ee7b7a63 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candytree_wish_num1.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_candytree_wish_num1@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_candytree_wish_num1@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candytree_wish_num1.imageset/yumi_scope_candytree_wish_num1@2x.png b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candytree_wish_num1.imageset/yumi_scope_candytree_wish_num1@2x.png new file mode 100644 index 00000000..3a86fd67 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candytree_wish_num1.imageset/yumi_scope_candytree_wish_num1@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candytree_wish_num1.imageset/yumi_scope_candytree_wish_num1@3x.png b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candytree_wish_num1.imageset/yumi_scope_candytree_wish_num1@3x.png new file mode 100644 index 00000000..bf298cc4 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candytree_wish_num1.imageset/yumi_scope_candytree_wish_num1@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candytree_wish_num2.imageset/Contents.json b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candytree_wish_num2.imageset/Contents.json new file mode 100644 index 00000000..2278f5f9 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candytree_wish_num2.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_candytree_wish_num2@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_candytree_wish_num2@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candytree_wish_num2.imageset/yumi_scope_candytree_wish_num2@2x.png b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candytree_wish_num2.imageset/yumi_scope_candytree_wish_num2@2x.png new file mode 100644 index 00000000..272074ea Binary files /dev/null and b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candytree_wish_num2.imageset/yumi_scope_candytree_wish_num2@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candytree_wish_num2.imageset/yumi_scope_candytree_wish_num2@3x.png b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candytree_wish_num2.imageset/yumi_scope_candytree_wish_num2@3x.png new file mode 100644 index 00000000..f492cfaf Binary files /dev/null and b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candytree_wish_num2.imageset/yumi_scope_candytree_wish_num2@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candytree_wish_num3.imageset/Contents.json b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candytree_wish_num3.imageset/Contents.json new file mode 100644 index 00000000..2a24decc --- /dev/null +++ b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candytree_wish_num3.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_candytree_wish_num3@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_candytree_wish_num3@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candytree_wish_num3.imageset/yumi_scope_candytree_wish_num3@2x.png b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candytree_wish_num3.imageset/yumi_scope_candytree_wish_num3@2x.png new file mode 100644 index 00000000..6967eeda Binary files /dev/null and b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candytree_wish_num3.imageset/yumi_scope_candytree_wish_num3@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candytree_wish_num3.imageset/yumi_scope_candytree_wish_num3@3x.png b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candytree_wish_num3.imageset/yumi_scope_candytree_wish_num3@3x.png new file mode 100644 index 00000000..98bd9b1d Binary files /dev/null and b/YuMi/Assets.xcassets/yna/CandyTree/yumi_scope_candytree_wish_num3.imageset/yumi_scope_candytree_wish_num3@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Contents.json b/YuMi/Assets.xcassets/yna/Contents.json new file mode 100644 index 00000000..e2342777 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Contents.json @@ -0,0 +1,7 @@ +{"info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Dating/Contents.json b/YuMi/Assets.xcassets/yna/Dating/Contents.json new file mode 100644 index 00000000..e2342777 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Dating/Contents.json @@ -0,0 +1,7 @@ +{"info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_alert_close.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_alert_close.imageset/Contents.json new file mode 100644 index 00000000..afbbff2f --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_alert_close.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_mode_dating_alert_close@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_mode_dating_alert_close@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_alert_close.imageset/yumi_scope_mode_dating_alert_close@2x.png b/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_alert_close.imageset/yumi_scope_mode_dating_alert_close@2x.png new file mode 100644 index 00000000..83ba63ca Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_alert_close.imageset/yumi_scope_mode_dating_alert_close@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_alert_close.imageset/yumi_scope_mode_dating_alert_close@3x.png b/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_alert_close.imageset/yumi_scope_mode_dating_alert_close@3x.png new file mode 100644 index 00000000..83c1044d Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_alert_close.imageset/yumi_scope_mode_dating_alert_close@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_background.imageset/Contents.json new file mode 100644 index 00000000..d8a10ac6 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_mode_dating_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_mode_dating_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_background.imageset/yumi_scope_mode_dating_background@2x.png b/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_background.imageset/yumi_scope_mode_dating_background@2x.png new file mode 100644 index 00000000..37170396 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_background.imageset/yumi_scope_mode_dating_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_background.imageset/yumi_scope_mode_dating_background@3x.png b/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_background.imageset/yumi_scope_mode_dating_background@3x.png new file mode 100644 index 00000000..37cc7f5f Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_background.imageset/yumi_scope_mode_dating_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_enter.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_enter.imageset/Contents.json new file mode 100644 index 00000000..9de2137e --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_enter.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_mode_dating_enter@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_mode_dating_enter@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_enter.imageset/yumi_scope_mode_dating_enter@2x.png b/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_enter.imageset/yumi_scope_mode_dating_enter@2x.png new file mode 100644 index 00000000..b4af60b4 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_enter.imageset/yumi_scope_mode_dating_enter@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_enter.imageset/yumi_scope_mode_dating_enter@3x.png b/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_enter.imageset/yumi_scope_mode_dating_enter@3x.png new file mode 100644 index 00000000..2756259e Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_enter.imageset/yumi_scope_mode_dating_enter@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_female_select.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_female_select.imageset/Contents.json new file mode 100644 index 00000000..a1c9b287 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_female_select.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_mode_dating_female_select@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_mode_dating_female_select@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_female_select.imageset/yumi_scope_mode_dating_female_select@2x.png b/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_female_select.imageset/yumi_scope_mode_dating_female_select@2x.png new file mode 100644 index 00000000..2dda5503 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_female_select.imageset/yumi_scope_mode_dating_female_select@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_female_select.imageset/yumi_scope_mode_dating_female_select@3x.png b/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_female_select.imageset/yumi_scope_mode_dating_female_select@3x.png new file mode 100644 index 00000000..0c8e578c Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_female_select.imageset/yumi_scope_mode_dating_female_select@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_heart_pic.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_heart_pic.imageset/Contents.json new file mode 100644 index 00000000..299a112b --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_heart_pic.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_mode_dating_heart_pic@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_mode_dating_heart_pic@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_heart_pic.imageset/yumi_scope_mode_dating_heart_pic@2x.png b/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_heart_pic.imageset/yumi_scope_mode_dating_heart_pic@2x.png new file mode 100644 index 00000000..0d6ce52a Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_heart_pic.imageset/yumi_scope_mode_dating_heart_pic@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_heart_pic.imageset/yumi_scope_mode_dating_heart_pic@3x.png b/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_heart_pic.imageset/yumi_scope_mode_dating_heart_pic@3x.png new file mode 100644 index 00000000..6c1a3a8e Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_heart_pic.imageset/yumi_scope_mode_dating_heart_pic@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_male_select.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_male_select.imageset/Contents.json new file mode 100644 index 00000000..8116347c --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_male_select.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_mode_dating_male_select@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_mode_dating_male_select@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_male_select.imageset/yumi_scope_mode_dating_male_select@2x.png b/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_male_select.imageset/yumi_scope_mode_dating_male_select@2x.png new file mode 100644 index 00000000..1e3c505a Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_male_select.imageset/yumi_scope_mode_dating_male_select@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_male_select.imageset/yumi_scope_mode_dating_male_select@3x.png b/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_male_select.imageset/yumi_scope_mode_dating_male_select@3x.png new file mode 100644 index 00000000..a3c9b480 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_male_select.imageset/yumi_scope_mode_dating_male_select@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_not_select.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_not_select.imageset/Contents.json new file mode 100644 index 00000000..41c6661b --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_not_select.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_mode_dating_not_select@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_mode_dating_not_select@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_not_select.imageset/yumi_scope_mode_dating_not_select@2x.png b/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_not_select.imageset/yumi_scope_mode_dating_not_select@2x.png new file mode 100644 index 00000000..40177970 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_not_select.imageset/yumi_scope_mode_dating_not_select@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_not_select.imageset/yumi_scope_mode_dating_not_select@3x.png b/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_not_select.imageset/yumi_scope_mode_dating_not_select@3x.png new file mode 100644 index 00000000..cf9a205a Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_not_select.imageset/yumi_scope_mode_dating_not_select@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_pick_heart.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_pick_heart.imageset/Contents.json new file mode 100644 index 00000000..e223dbf7 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_pick_heart.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_scope_mode_dating_pick_heart.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_pick_heart.imageset/yumi_scope_mode_dating_pick_heart.png b/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_pick_heart.imageset/yumi_scope_mode_dating_pick_heart.png new file mode 100644 index 00000000..596da2ff Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_pick_heart.imageset/yumi_scope_mode_dating_pick_heart.png differ diff --git a/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_progress_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_progress_background.imageset/Contents.json new file mode 100644 index 00000000..47427ed4 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_progress_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_mode_dating_progress_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_mode_dating_progress_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_progress_background.imageset/yumi_scope_mode_dating_progress_background@2x.png b/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_progress_background.imageset/yumi_scope_mode_dating_progress_background@2x.png new file mode 100644 index 00000000..a9676997 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_progress_background.imageset/yumi_scope_mode_dating_progress_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_progress_background.imageset/yumi_scope_mode_dating_progress_background@3x.png b/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_progress_background.imageset/yumi_scope_mode_dating_progress_background@3x.png new file mode 100644 index 00000000..c7027e70 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_progress_background.imageset/yumi_scope_mode_dating_progress_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_vip.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_vip.imageset/Contents.json new file mode 100644 index 00000000..ea753f51 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_vip.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_mode_dating_vip@2x.png", "idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_vip.imageset/yumi_scope_mode_dating_vip@2x.png b/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_vip.imageset/yumi_scope_mode_dating_vip@2x.png new file mode 100644 index 00000000..d888fedf Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_vip.imageset/yumi_scope_mode_dating_vip@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_vip_rule_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_vip_rule_background.imageset/Contents.json new file mode 100644 index 00000000..ae6d1286 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_vip_rule_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_mode_dating_vip_rule_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_mode_dating_vip_rule_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_vip_rule_background.imageset/yumi_scope_mode_dating_vip_rule_background@2x.png b/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_vip_rule_background.imageset/yumi_scope_mode_dating_vip_rule_background@2x.png new file mode 100644 index 00000000..0bd65613 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_vip_rule_background.imageset/yumi_scope_mode_dating_vip_rule_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_vip_rule_background.imageset/yumi_scope_mode_dating_vip_rule_background@3x.png b/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_vip_rule_background.imageset/yumi_scope_mode_dating_vip_rule_background@3x.png new file mode 100644 index 00000000..535957d8 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_vip_rule_background.imageset/yumi_scope_mode_dating_vip_rule_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_vip_title.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_vip_title.imageset/Contents.json new file mode 100644 index 00000000..4070bf4d --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_vip_title.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_mode_dating_vip_title@2x.png", "idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_vip_title.imageset/yumi_scope_mode_dating_vip_title@2x.png b/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_vip_title.imageset/yumi_scope_mode_dating_vip_title@2x.png new file mode 100644 index 00000000..de1b75d0 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Dating/yumi_scope_mode_dating_vip_title.imageset/yumi_scope_mode_dating_vip_title@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Face/Contents.json b/YuMi/Assets.xcassets/yna/Face/Contents.json new file mode 100644 index 00000000..e2342777 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Face/Contents.json @@ -0,0 +1,7 @@ +{"info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Face/yumi_scope_face_nobel_lock.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Face/yumi_scope_face_nobel_lock.imageset/Contents.json new file mode 100644 index 00000000..060a1a4b --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Face/yumi_scope_face_nobel_lock.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_face_nobel_lock@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_face_nobel_lock@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Face/yumi_scope_face_nobel_lock.imageset/yumi_scope_face_nobel_lock@2x.png b/YuMi/Assets.xcassets/yna/Face/yumi_scope_face_nobel_lock.imageset/yumi_scope_face_nobel_lock@2x.png new file mode 100644 index 00000000..3687cbd9 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Face/yumi_scope_face_nobel_lock.imageset/yumi_scope_face_nobel_lock@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Face/yumi_scope_face_nobel_lock.imageset/yumi_scope_face_nobel_lock@3x.png b/YuMi/Assets.xcassets/yna/Face/yumi_scope_face_nobel_lock.imageset/yumi_scope_face_nobel_lock@3x.png new file mode 100644 index 00000000..1c30c195 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Face/yumi_scope_face_nobel_lock.imageset/yumi_scope_face_nobel_lock@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Face/yumi_scope_face_nobel_privil.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Face/yumi_scope_face_nobel_privil.imageset/Contents.json new file mode 100644 index 00000000..dc07ac19 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Face/yumi_scope_face_nobel_privil.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_face_nobel_privil@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_face_nobel_privil@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Face/yumi_scope_face_nobel_privil.imageset/yumi_scope_face_nobel_privil@2x.png b/YuMi/Assets.xcassets/yna/Face/yumi_scope_face_nobel_privil.imageset/yumi_scope_face_nobel_privil@2x.png new file mode 100644 index 00000000..9a37483d Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Face/yumi_scope_face_nobel_privil.imageset/yumi_scope_face_nobel_privil@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Face/yumi_scope_face_nobel_privil.imageset/yumi_scope_face_nobel_privil@3x.png b/YuMi/Assets.xcassets/yna/Face/yumi_scope_face_nobel_privil.imageset/yumi_scope_face_nobel_privil@3x.png new file mode 100644 index 00000000..72c4a688 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Face/yumi_scope_face_nobel_privil.imageset/yumi_scope_face_nobel_privil@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/FirstRecharge/Contents.json b/YuMi/Assets.xcassets/yna/FirstRecharge/Contents.json new file mode 100644 index 00000000..e2342777 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/FirstRecharge/Contents.json @@ -0,0 +1,7 @@ +{"info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_present_first_recharge_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_present_first_recharge_background.imageset/Contents.json new file mode 100644 index 00000000..e8a7fc04 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_present_first_recharge_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_present_first_recharge_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_present_first_recharge_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_present_first_recharge_background.imageset/yumi_present_first_recharge_background@2x.png b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_present_first_recharge_background.imageset/yumi_present_first_recharge_background@2x.png new file mode 100644 index 00000000..a71cf10d Binary files /dev/null and b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_present_first_recharge_background.imageset/yumi_present_first_recharge_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_present_first_recharge_background.imageset/yumi_present_first_recharge_background@3x.png b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_present_first_recharge_background.imageset/yumi_present_first_recharge_background@3x.png new file mode 100644 index 00000000..e389e86b Binary files /dev/null and b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_present_first_recharge_background.imageset/yumi_present_first_recharge_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_background.imageset/Contents.json new file mode 100644 index 00000000..86608743 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_first_recharge_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_first_recharge_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_background.imageset/yumi_scope_first_recharge_background@2x.png b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_background.imageset/yumi_scope_first_recharge_background@2x.png new file mode 100644 index 00000000..65922634 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_background.imageset/yumi_scope_first_recharge_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_background.imageset/yumi_scope_first_recharge_background@3x.png b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_background.imageset/yumi_scope_first_recharge_background@3x.png new file mode 100644 index 00000000..f43dbb74 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_background.imageset/yumi_scope_first_recharge_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_cell_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_cell_background.imageset/Contents.json new file mode 100644 index 00000000..5a2d00e9 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_cell_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_first_recharge_cell_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_first_recharge_cell_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_cell_background.imageset/yumi_scope_first_recharge_cell_background@2x.png b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_cell_background.imageset/yumi_scope_first_recharge_cell_background@2x.png new file mode 100644 index 00000000..0c6ca325 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_cell_background.imageset/yumi_scope_first_recharge_cell_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_cell_background.imageset/yumi_scope_first_recharge_cell_background@3x.png b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_cell_background.imageset/yumi_scope_first_recharge_cell_background@3x.png new file mode 100644 index 00000000..daa1c0b7 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_cell_background.imageset/yumi_scope_first_recharge_cell_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_descrip_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_descrip_background.imageset/Contents.json new file mode 100644 index 00000000..9d699ec4 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_descrip_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_first_recharge_descrip_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_first_recharge_descrip_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_descrip_background.imageset/yumi_scope_first_recharge_descrip_background@2x.png b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_descrip_background.imageset/yumi_scope_first_recharge_descrip_background@2x.png new file mode 100644 index 00000000..2f16d524 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_descrip_background.imageset/yumi_scope_first_recharge_descrip_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_descrip_background.imageset/yumi_scope_first_recharge_descrip_background@3x.png b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_descrip_background.imageset/yumi_scope_first_recharge_descrip_background@3x.png new file mode 100644 index 00000000..89c3943d Binary files /dev/null and b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_descrip_background.imageset/yumi_scope_first_recharge_descrip_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_enter.imageset/Contents.json b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_enter.imageset/Contents.json new file mode 100644 index 00000000..4338d2ca --- /dev/null +++ b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_enter.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_first_recharge_enter@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_first_recharge_enter@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_enter.imageset/yumi_scope_first_recharge_enter@2x.png b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_enter.imageset/yumi_scope_first_recharge_enter@2x.png new file mode 100644 index 00000000..f1be5703 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_enter.imageset/yumi_scope_first_recharge_enter@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_enter.imageset/yumi_scope_first_recharge_enter@3x.png b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_enter.imageset/yumi_scope_first_recharge_enter@3x.png new file mode 100644 index 00000000..3f6214a1 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_enter.imageset/yumi_scope_first_recharge_enter@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_extra.imageset/Contents.json b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_extra.imageset/Contents.json new file mode 100644 index 00000000..ac60a551 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_extra.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_first_recharge_extra@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_first_recharge_extra@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_extra.imageset/yumi_scope_first_recharge_extra@2x.png b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_extra.imageset/yumi_scope_first_recharge_extra@2x.png new file mode 100644 index 00000000..271ec991 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_extra.imageset/yumi_scope_first_recharge_extra@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_extra.imageset/yumi_scope_first_recharge_extra@3x.png b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_extra.imageset/yumi_scope_first_recharge_extra@3x.png new file mode 100644 index 00000000..d9642493 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_extra.imageset/yumi_scope_first_recharge_extra@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_help.imageset/Contents.json b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_help.imageset/Contents.json new file mode 100644 index 00000000..119185d5 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_help.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_first_recharge_help@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_first_recharge_help@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_help.imageset/yumi_scope_first_recharge_help@2x.png b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_help.imageset/yumi_scope_first_recharge_help@2x.png new file mode 100644 index 00000000..1f3b81a1 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_help.imageset/yumi_scope_first_recharge_help@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_help.imageset/yumi_scope_first_recharge_help@3x.png b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_help.imageset/yumi_scope_first_recharge_help@3x.png new file mode 100644 index 00000000..59e3cec5 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_help.imageset/yumi_scope_first_recharge_help@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_recharge.imageset/Contents.json b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_recharge.imageset/Contents.json new file mode 100644 index 00000000..c79f55be --- /dev/null +++ b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_recharge.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_first_recharge_recharge@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_first_recharge_recharge@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_recharge.imageset/yumi_scope_first_recharge_recharge@2x.png b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_recharge.imageset/yumi_scope_first_recharge_recharge@2x.png new file mode 100644 index 00000000..8c941b96 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_recharge.imageset/yumi_scope_first_recharge_recharge@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_recharge.imageset/yumi_scope_first_recharge_recharge@3x.png b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_recharge.imageset/yumi_scope_first_recharge_recharge@3x.png new file mode 100644 index 00000000..809e7868 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_recharge.imageset/yumi_scope_first_recharge_recharge@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_recharge_arrow.imageset/Contents.json b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_recharge_arrow.imageset/Contents.json new file mode 100644 index 00000000..54cc82cd --- /dev/null +++ b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_recharge_arrow.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_first_recharge_recharge_arrow@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_first_recharge_recharge_arrow@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_recharge_arrow.imageset/yumi_scope_first_recharge_recharge_arrow@2x.png b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_recharge_arrow.imageset/yumi_scope_first_recharge_recharge_arrow@2x.png new file mode 100644 index 00000000..0eecba5f Binary files /dev/null and b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_recharge_arrow.imageset/yumi_scope_first_recharge_recharge_arrow@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_recharge_arrow.imageset/yumi_scope_first_recharge_recharge_arrow@3x.png b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_recharge_arrow.imageset/yumi_scope_first_recharge_recharge_arrow@3x.png new file mode 100644 index 00000000..7032a94f Binary files /dev/null and b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_recharge_arrow.imageset/yumi_scope_first_recharge_recharge_arrow@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_reward_extra_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_reward_extra_background.imageset/Contents.json new file mode 100644 index 00000000..ef207cdf --- /dev/null +++ b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_reward_extra_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_first_recharge_reward_extra_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_first_recharge_reward_extra_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_reward_extra_background.imageset/yumi_scope_first_recharge_reward_extra_background@2x.png b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_reward_extra_background.imageset/yumi_scope_first_recharge_reward_extra_background@2x.png new file mode 100644 index 00000000..2deb5cff Binary files /dev/null and b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_reward_extra_background.imageset/yumi_scope_first_recharge_reward_extra_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_reward_extra_background.imageset/yumi_scope_first_recharge_reward_extra_background@3x.png b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_reward_extra_background.imageset/yumi_scope_first_recharge_reward_extra_background@3x.png new file mode 100644 index 00000000..1e969e10 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_reward_extra_background.imageset/yumi_scope_first_recharge_reward_extra_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_segment_select.imageset/Contents.json b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_segment_select.imageset/Contents.json new file mode 100644 index 00000000..dd5af62c --- /dev/null +++ b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_segment_select.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_first_recharge_segment_select@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_first_recharge_segment_select@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_segment_select.imageset/yumi_scope_first_recharge_segment_select@2x.png b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_segment_select.imageset/yumi_scope_first_recharge_segment_select@2x.png new file mode 100644 index 00000000..82bc7273 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_segment_select.imageset/yumi_scope_first_recharge_segment_select@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_segment_select.imageset/yumi_scope_first_recharge_segment_select@3x.png b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_segment_select.imageset/yumi_scope_first_recharge_segment_select@3x.png new file mode 100644 index 00000000..5e097c79 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_segment_select.imageset/yumi_scope_first_recharge_segment_select@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_success_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_success_background.imageset/Contents.json new file mode 100644 index 00000000..87a69f06 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_success_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_first_recharge_success_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_first_recharge_success_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_success_background.imageset/yumi_scope_first_recharge_success_background@2x.png b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_success_background.imageset/yumi_scope_first_recharge_success_background@2x.png new file mode 100644 index 00000000..b62219f7 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_success_background.imageset/yumi_scope_first_recharge_success_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_success_background.imageset/yumi_scope_first_recharge_success_background@3x.png b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_success_background.imageset/yumi_scope_first_recharge_success_background@3x.png new file mode 100644 index 00000000..17a36bba Binary files /dev/null and b/YuMi/Assets.xcassets/yna/FirstRecharge/yumi_scope_first_recharge_success_background.imageset/yumi_scope_first_recharge_success_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Menu/Contents.json b/YuMi/Assets.xcassets/yna/Menu/Contents.json new file mode 100644 index 00000000..e2342777 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Menu/Contents.json @@ -0,0 +1,7 @@ +{"info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_arrange_mic.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_arrange_mic.imageset/Contents.json new file mode 100644 index 00000000..ebb578fe --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_arrange_mic.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_menu_arrange_mic@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_menu_arrange_mic@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_arrange_mic.imageset/yumi_scope_menu_arrange_mic@2x.png b/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_arrange_mic.imageset/yumi_scope_menu_arrange_mic@2x.png new file mode 100644 index 00000000..ac09288e Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_arrange_mic.imageset/yumi_scope_menu_arrange_mic@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_arrange_mic.imageset/yumi_scope_menu_arrange_mic@3x.png b/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_arrange_mic.imageset/yumi_scope_menu_arrange_mic@3x.png new file mode 100644 index 00000000..e25293dd Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_arrange_mic.imageset/yumi_scope_menu_arrange_mic@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_arrange_mimage_new.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_arrange_mimage_new.imageset/Contents.json new file mode 100644 index 00000000..9bb98693 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_arrange_mimage_new.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_menu_arrange_mimage_new@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_menu_arrange_mimage_new@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_arrange_mimage_new.imageset/yumi_scope_menu_arrange_mimage_new@2x.png b/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_arrange_mimage_new.imageset/yumi_scope_menu_arrange_mimage_new@2x.png new file mode 100644 index 00000000..15a8125c Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_arrange_mimage_new.imageset/yumi_scope_menu_arrange_mimage_new@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_arrange_mimage_new.imageset/yumi_scope_menu_arrange_mimage_new@3x.png b/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_arrange_mimage_new.imageset/yumi_scope_menu_arrange_mimage_new@3x.png new file mode 100644 index 00000000..c8006b0b Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_arrange_mimage_new.imageset/yumi_scope_menu_arrange_mimage_new@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_face.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_face.imageset/Contents.json new file mode 100644 index 00000000..a39269f2 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_face.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_menu_face@2x.png", "idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_face.imageset/yumi_scope_menu_face@2x.png b/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_face.imageset/yumi_scope_menu_face@2x.png new file mode 100644 index 00000000..acd69d9e Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_face.imageset/yumi_scope_menu_face@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_gift.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_gift.imageset/Contents.json new file mode 100644 index 00000000..50cb7930 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_gift.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_menu_gift@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_menu_gift@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_gift.imageset/yumi_scope_menu_gift@2x.png b/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_gift.imageset/yumi_scope_menu_gift@2x.png new file mode 100644 index 00000000..65c56251 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_gift.imageset/yumi_scope_menu_gift@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_gift.imageset/yumi_scope_menu_gift@3x.png b/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_gift.imageset/yumi_scope_menu_gift@3x.png new file mode 100644 index 00000000..a2fcd3fb Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_gift.imageset/yumi_scope_menu_gift@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_gift1.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_gift1.imageset/Contents.json new file mode 100644 index 00000000..acb1dd21 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_gift1.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_menu_gift1@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_menu_gift1@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_gift1.imageset/yumi_scope_menu_gift1@2x.png b/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_gift1.imageset/yumi_scope_menu_gift1@2x.png new file mode 100644 index 00000000..c73f9812 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_gift1.imageset/yumi_scope_menu_gift1@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_gift1.imageset/yumi_scope_menu_gift1@3x.png b/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_gift1.imageset/yumi_scope_menu_gift1@3x.png new file mode 100644 index 00000000..44bc348c Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_gift1.imageset/yumi_scope_menu_gift1@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_message.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_message.imageset/Contents.json new file mode 100644 index 00000000..d638de51 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_message.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_menu_message@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_menu_message@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_message.imageset/yumi_scope_menu_message@2x.png b/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_message.imageset/yumi_scope_menu_message@2x.png new file mode 100644 index 00000000..ced34589 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_message.imageset/yumi_scope_menu_message@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_message.imageset/yumi_scope_menu_message@3x.png b/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_message.imageset/yumi_scope_menu_message@3x.png new file mode 100644 index 00000000..316fca22 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_message.imageset/yumi_scope_menu_message@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_mimage_close.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_mimage_close.imageset/Contents.json new file mode 100644 index 00000000..65a2ccdc --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_mimage_close.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_menu_mimage_close@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_menu_mimage_close@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_mimage_close.imageset/yumi_scope_menu_mimage_close@2x.png b/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_mimage_close.imageset/yumi_scope_menu_mimage_close@2x.png new file mode 100644 index 00000000..8aed89bf Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_mimage_close.imageset/yumi_scope_menu_mimage_close@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_mimage_close.imageset/yumi_scope_menu_mimage_close@3x.png b/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_mimage_close.imageset/yumi_scope_menu_mimage_close@3x.png new file mode 100644 index 00000000..e59c9727 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_mimage_close.imageset/yumi_scope_menu_mimage_close@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_mimage_open.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_mimage_open.imageset/Contents.json new file mode 100644 index 00000000..4243aae0 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_mimage_open.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_menu_mimage_open@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_menu_mimage_open@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_mimage_open.imageset/yumi_scope_menu_mimage_open@2x.png b/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_mimage_open.imageset/yumi_scope_menu_mimage_open@2x.png new file mode 100644 index 00000000..c51a2f3f Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_mimage_open.imageset/yumi_scope_menu_mimage_open@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_mimage_open.imageset/yumi_scope_menu_mimage_open@3x.png b/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_mimage_open.imageset/yumi_scope_menu_mimage_open@3x.png new file mode 100644 index 00000000..9fc391b8 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_mimage_open.imageset/yumi_scope_menu_mimage_open@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_more.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_more.imageset/Contents.json new file mode 100644 index 00000000..71603381 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_more.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_menu_more@2x.png", "idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_more.imageset/yumi_scope_menu_more@2x.png b/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_more.imageset/yumi_scope_menu_more@2x.png new file mode 100644 index 00000000..6ecc742f Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_more.imageset/yumi_scope_menu_more@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_new_message.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_new_message.imageset/Contents.json new file mode 100644 index 00000000..7a07d9b6 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_new_message.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_menu_new_message@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_menu_new_message@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_new_message.imageset/yumi_scope_menu_new_message@2x.png b/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_new_message.imageset/yumi_scope_menu_new_message@2x.png new file mode 100644 index 00000000..29e7043b Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_new_message.imageset/yumi_scope_menu_new_message@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_new_message.imageset/yumi_scope_menu_new_message@3x.png b/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_new_message.imageset/yumi_scope_menu_new_message@3x.png new file mode 100644 index 00000000..80c4264c Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_new_message.imageset/yumi_scope_menu_new_message@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_noble.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_noble.imageset/Contents.json new file mode 100644 index 00000000..c4fd9e05 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_noble.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_menu_noble@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_menu_noble@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_noble.imageset/yumi_scope_menu_noble@2x.png b/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_noble.imageset/yumi_scope_menu_noble@2x.png new file mode 100644 index 00000000..d014afd0 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_noble.imageset/yumi_scope_menu_noble@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_noble.imageset/yumi_scope_menu_noble@3x.png b/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_noble.imageset/yumi_scope_menu_noble@3x.png new file mode 100644 index 00000000..acad4dc2 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_noble.imageset/yumi_scope_menu_noble@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_present_first_recharge.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_present_first_recharge.imageset/Contents.json new file mode 100644 index 00000000..a7bab415 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_present_first_recharge.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_menu_present_first_recharge@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_menu_present_first_recharge@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_present_first_recharge.imageset/yumi_scope_menu_present_first_recharge@2x.png b/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_present_first_recharge.imageset/yumi_scope_menu_present_first_recharge@2x.png new file mode 100644 index 00000000..26920d41 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_present_first_recharge.imageset/yumi_scope_menu_present_first_recharge@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_present_first_recharge.imageset/yumi_scope_menu_present_first_recharge@3x.png b/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_present_first_recharge.imageset/yumi_scope_menu_present_first_recharge@3x.png new file mode 100644 index 00000000..6e1b973d Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Menu/yumi_scope_menu_present_first_recharge.imageset/yumi_scope_menu_present_first_recharge@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Mini/Contents.json b/YuMi/Assets.xcassets/yna/Mini/Contents.json new file mode 100644 index 00000000..e2342777 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Mini/Contents.json @@ -0,0 +1,7 @@ +{"info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Mini/yumi_scope_mini_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Mini/yumi_scope_mini_background.imageset/Contents.json new file mode 100644 index 00000000..18a1c047 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Mini/yumi_scope_mini_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_mini_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_mini_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Mini/yumi_scope_mini_background.imageset/yumi_scope_mini_background@2x.png b/YuMi/Assets.xcassets/yna/Mini/yumi_scope_mini_background.imageset/yumi_scope_mini_background@2x.png new file mode 100644 index 00000000..b39bae8b Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Mini/yumi_scope_mini_background.imageset/yumi_scope_mini_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Mini/yumi_scope_mini_background.imageset/yumi_scope_mini_background@3x.png b/YuMi/Assets.xcassets/yna/Mini/yumi_scope_mini_background.imageset/yumi_scope_mini_background@3x.png new file mode 100644 index 00000000..25c42571 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Mini/yumi_scope_mini_background.imageset/yumi_scope_mini_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Mini/yumi_scope_mini_close.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Mini/yumi_scope_mini_close.imageset/Contents.json new file mode 100644 index 00000000..0e8a3b35 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Mini/yumi_scope_mini_close.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_mini_close@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_mini_close@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Mini/yumi_scope_mini_close.imageset/yumi_scope_mini_close@2x.png b/YuMi/Assets.xcassets/yna/Mini/yumi_scope_mini_close.imageset/yumi_scope_mini_close@2x.png new file mode 100644 index 00000000..575a81c4 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Mini/yumi_scope_mini_close.imageset/yumi_scope_mini_close@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Mini/yumi_scope_mini_close.imageset/yumi_scope_mini_close@3x.png b/YuMi/Assets.xcassets/yna/Mini/yumi_scope_mini_close.imageset/yumi_scope_mini_close@3x.png new file mode 100644 index 00000000..cc8b2bed Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Mini/yumi_scope_mini_close.imageset/yumi_scope_mini_close@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/MoreMenu/Contents.json b/YuMi/Assets.xcassets/yna/MoreMenu/Contents.json new file mode 100644 index 00000000..e2342777 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/MoreMenu/Contents.json @@ -0,0 +1,7 @@ +{"info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_anchor_pk.imageset/Contents.json b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_anchor_pk.imageset/Contents.json new file mode 100644 index 00000000..ccf02467 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_anchor_pk.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_more_menu_anchor_pk@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_more_menu_anchor_pk@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_anchor_pk.imageset/yumi_scope_more_menu_anchor_pk@2x.png b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_anchor_pk.imageset/yumi_scope_more_menu_anchor_pk@2x.png new file mode 100644 index 00000000..02848a72 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_anchor_pk.imageset/yumi_scope_more_menu_anchor_pk@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_anchor_pk.imageset/yumi_scope_more_menu_anchor_pk@3x.png b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_anchor_pk.imageset/yumi_scope_more_menu_anchor_pk@3x.png new file mode 100644 index 00000000..2dc9372b Binary files /dev/null and b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_anchor_pk.imageset/yumi_scope_more_menu_anchor_pk@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_cross_pk.imageset/Contents.json b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_cross_pk.imageset/Contents.json new file mode 100644 index 00000000..f4e73ff7 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_cross_pk.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_more_menu_cross_pk@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_more_menu_cross_pk@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_cross_pk.imageset/yumi_scope_more_menu_cross_pk@2x.png b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_cross_pk.imageset/yumi_scope_more_menu_cross_pk@2x.png new file mode 100644 index 00000000..1fbfdd31 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_cross_pk.imageset/yumi_scope_more_menu_cross_pk@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_cross_pk.imageset/yumi_scope_more_menu_cross_pk@3x.png b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_cross_pk.imageset/yumi_scope_more_menu_cross_pk@3x.png new file mode 100644 index 00000000..928f76e8 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_cross_pk.imageset/yumi_scope_more_menu_cross_pk@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_dating.imageset/Contents.json b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_dating.imageset/Contents.json new file mode 100644 index 00000000..7afe9e55 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_dating.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_more_menu_dating@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_more_menu_dating@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_dating.imageset/yumi_scope_more_menu_dating@2x.png b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_dating.imageset/yumi_scope_more_menu_dating@2x.png new file mode 100644 index 00000000..2979afbc Binary files /dev/null and b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_dating.imageset/yumi_scope_more_menu_dating@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_dating.imageset/yumi_scope_more_menu_dating@3x.png b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_dating.imageset/yumi_scope_more_menu_dating@3x.png new file mode 100644 index 00000000..10e92b78 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_dating.imageset/yumi_scope_more_menu_dating@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_invite_friend.imageset/Contents.json b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_invite_friend.imageset/Contents.json new file mode 100644 index 00000000..83711ee0 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_invite_friend.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_more_menu_invite_friend@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_more_menu_invite_friend@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_invite_friend.imageset/yumi_scope_more_menu_invite_friend@2x.png b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_invite_friend.imageset/yumi_scope_more_menu_invite_friend@2x.png new file mode 100644 index 00000000..b62a724e Binary files /dev/null and b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_invite_friend.imageset/yumi_scope_more_menu_invite_friend@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_invite_friend.imageset/yumi_scope_more_menu_invite_friend@3x.png b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_invite_friend.imageset/yumi_scope_more_menu_invite_friend@3x.png new file mode 100644 index 00000000..a9822c8e Binary files /dev/null and b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_invite_friend.imageset/yumi_scope_more_menu_invite_friend@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_message.imageset/Contents.json b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_message.imageset/Contents.json new file mode 100644 index 00000000..234957ca --- /dev/null +++ b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_message.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_more_menu_message@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_more_menu_message@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_message.imageset/yumi_scope_more_menu_message@2x.png b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_message.imageset/yumi_scope_more_menu_message@2x.png new file mode 100644 index 00000000..ad4ab26a Binary files /dev/null and b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_message.imageset/yumi_scope_more_menu_message@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_message.imageset/yumi_scope_more_menu_message@3x.png b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_message.imageset/yumi_scope_more_menu_message@3x.png new file mode 100644 index 00000000..ddf5ff4f Binary files /dev/null and b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_message.imageset/yumi_scope_more_menu_message@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_msg_clean.imageset/Contents.json b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_msg_clean.imageset/Contents.json new file mode 100644 index 00000000..2cc5cd3b --- /dev/null +++ b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_msg_clean.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_more_menu_msg_clean@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_more_menu_msg_clean@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_msg_clean.imageset/yumi_scope_more_menu_msg_clean@2x.png b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_msg_clean.imageset/yumi_scope_more_menu_msg_clean@2x.png new file mode 100644 index 00000000..6a4f64db Binary files /dev/null and b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_msg_clean.imageset/yumi_scope_more_menu_msg_clean@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_msg_clean.imageset/yumi_scope_more_menu_msg_clean@3x.png b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_msg_clean.imageset/yumi_scope_more_menu_msg_clean@3x.png new file mode 100644 index 00000000..d64d6d2d Binary files /dev/null and b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_msg_clean.imageset/yumi_scope_more_menu_msg_clean@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_present_effect.imageset/Contents.json b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_present_effect.imageset/Contents.json new file mode 100644 index 00000000..d331e246 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_present_effect.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_more_menu_present_effect@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_more_menu_present_effect@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_present_effect.imageset/yumi_scope_more_menu_present_effect@2x.png b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_present_effect.imageset/yumi_scope_more_menu_present_effect@2x.png new file mode 100644 index 00000000..dc4d244a Binary files /dev/null and b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_present_effect.imageset/yumi_scope_more_menu_present_effect@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_present_effect.imageset/yumi_scope_more_menu_present_effect@3x.png b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_present_effect.imageset/yumi_scope_more_menu_present_effect@3x.png new file mode 100644 index 00000000..a8623903 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_present_effect.imageset/yumi_scope_more_menu_present_effect@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_present_value.imageset/Contents.json b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_present_value.imageset/Contents.json new file mode 100644 index 00000000..510b07ac --- /dev/null +++ b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_present_value.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_more_menu_present_value@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_more_menu_present_value@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_present_value.imageset/yumi_scope_more_menu_present_value@2x.png b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_present_value.imageset/yumi_scope_more_menu_present_value@2x.png new file mode 100644 index 00000000..725e663c Binary files /dev/null and b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_present_value.imageset/yumi_scope_more_menu_present_value@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_present_value.imageset/yumi_scope_more_menu_present_value@3x.png b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_present_value.imageset/yumi_scope_more_menu_present_value@3x.png new file mode 100644 index 00000000..4eef09c1 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_present_value.imageset/yumi_scope_more_menu_present_value@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_release_radio.imageset/Contents.json b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_release_radio.imageset/Contents.json new file mode 100644 index 00000000..2fafa655 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_release_radio.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_more_menu_release_radio@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_more_menu_release_radio@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_release_radio.imageset/yumi_scope_more_menu_release_radio@2x.png b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_release_radio.imageset/yumi_scope_more_menu_release_radio@2x.png new file mode 100644 index 00000000..58d4a10b Binary files /dev/null and b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_release_radio.imageset/yumi_scope_more_menu_release_radio@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_release_radio.imageset/yumi_scope_more_menu_release_radio@3x.png b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_release_radio.imageset/yumi_scope_more_menu_release_radio@3x.png new file mode 100644 index 00000000..317c236a Binary files /dev/null and b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_release_radio.imageset/yumi_scope_more_menu_release_radio@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_scope_pk.imageset/Contents.json b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_scope_pk.imageset/Contents.json new file mode 100644 index 00000000..cfb6d695 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_scope_pk.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_more_menu_scope_pk@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_more_menu_scope_pk@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_scope_pk.imageset/yumi_scope_more_menu_scope_pk@2x.png b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_scope_pk.imageset/yumi_scope_more_menu_scope_pk@2x.png new file mode 100644 index 00000000..1433bb27 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_scope_pk.imageset/yumi_scope_more_menu_scope_pk@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_scope_pk.imageset/yumi_scope_more_menu_scope_pk@3x.png b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_scope_pk.imageset/yumi_scope_more_menu_scope_pk@3x.png new file mode 100644 index 00000000..c69d8e96 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_scope_pk.imageset/yumi_scope_more_menu_scope_pk@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_setting.imageset/Contents.json b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_setting.imageset/Contents.json new file mode 100644 index 00000000..d35910c3 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_setting.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_more_menu_setting@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_more_menu_setting@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_setting.imageset/yumi_scope_more_menu_setting@2x.png b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_setting.imageset/yumi_scope_more_menu_setting@2x.png new file mode 100644 index 00000000..3f441ab4 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_setting.imageset/yumi_scope_more_menu_setting@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_setting.imageset/yumi_scope_more_menu_setting@3x.png b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_setting.imageset/yumi_scope_more_menu_setting@3x.png new file mode 100644 index 00000000..7c21214a Binary files /dev/null and b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_setting.imageset/yumi_scope_more_menu_setting@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_trumpet.imageset/Contents.json b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_trumpet.imageset/Contents.json new file mode 100644 index 00000000..1e729457 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_trumpet.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_more_menu_trumpet@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_more_menu_trumpet@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_trumpet.imageset/yumi_scope_more_menu_trumpet@2x.png b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_trumpet.imageset/yumi_scope_more_menu_trumpet@2x.png new file mode 100644 index 00000000..fdc51214 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_trumpet.imageset/yumi_scope_more_menu_trumpet@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_trumpet.imageset/yumi_scope_more_menu_trumpet@3x.png b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_trumpet.imageset/yumi_scope_more_menu_trumpet@3x.png new file mode 100644 index 00000000..47ebaf78 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_menu_trumpet.imageset/yumi_scope_more_menu_trumpet@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_voice_close.imageset/Contents.json b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_voice_close.imageset/Contents.json new file mode 100644 index 00000000..cc47a1a7 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_voice_close.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_more_voice_close@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_more_voice_close@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_voice_close.imageset/yumi_scope_more_voice_close@2x.png b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_voice_close.imageset/yumi_scope_more_voice_close@2x.png new file mode 100644 index 00000000..e3f575bc Binary files /dev/null and b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_voice_close.imageset/yumi_scope_more_voice_close@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_voice_close.imageset/yumi_scope_more_voice_close@3x.png b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_voice_close.imageset/yumi_scope_more_voice_close@3x.png new file mode 100644 index 00000000..79cb446b Binary files /dev/null and b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_voice_close.imageset/yumi_scope_more_voice_close@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_voice_open.imageset/Contents.json b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_voice_open.imageset/Contents.json new file mode 100644 index 00000000..58665ada --- /dev/null +++ b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_voice_open.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_more_voice_open@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_more_voice_open@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_voice_open.imageset/yumi_scope_more_voice_open@2x.png b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_voice_open.imageset/yumi_scope_more_voice_open@2x.png new file mode 100644 index 00000000..9c22c999 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_voice_open.imageset/yumi_scope_more_voice_open@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_voice_open.imageset/yumi_scope_more_voice_open@3x.png b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_voice_open.imageset/yumi_scope_more_voice_open@3x.png new file mode 100644 index 00000000..185d53d1 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/MoreMenu/yumi_scope_more_voice_open.imageset/yumi_scope_more_voice_open@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/NewUserGift/Contents.json b/YuMi/Assets.xcassets/yna/NewUserGift/Contents.json new file mode 100644 index 00000000..e2342777 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/NewUserGift/Contents.json @@ -0,0 +1,7 @@ +{"info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/NewUserGift/yumi_scope_newUser_present_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/NewUserGift/yumi_scope_newUser_present_background.imageset/Contents.json new file mode 100644 index 00000000..73763e8d --- /dev/null +++ b/YuMi/Assets.xcassets/yna/NewUserGift/yumi_scope_newUser_present_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_newUser_present_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_newUser_present_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/NewUserGift/yumi_scope_newUser_present_background.imageset/yumi_scope_newUser_present_background@2x.png b/YuMi/Assets.xcassets/yna/NewUserGift/yumi_scope_newUser_present_background.imageset/yumi_scope_newUser_present_background@2x.png new file mode 100644 index 00000000..769f4602 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/NewUserGift/yumi_scope_newUser_present_background.imageset/yumi_scope_newUser_present_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/NewUserGift/yumi_scope_newUser_present_background.imageset/yumi_scope_newUser_present_background@3x.png b/YuMi/Assets.xcassets/yna/NewUserGift/yumi_scope_newUser_present_background.imageset/yumi_scope_newUser_present_background@3x.png new file mode 100644 index 00000000..84c8aff7 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/NewUserGift/yumi_scope_newUser_present_background.imageset/yumi_scope_newUser_present_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Position/Contents.json b/YuMi/Assets.xcassets/yna/Position/Contents.json new file mode 100644 index 00000000..e2342777 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Position/Contents.json @@ -0,0 +1,7 @@ +{"info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Position/yumi_scope_game_position_crown.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Position/yumi_scope_game_position_crown.imageset/Contents.json new file mode 100644 index 00000000..53b2c93e --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Position/yumi_scope_game_position_crown.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_scope_game_position_crown.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Position/yumi_scope_game_position_crown.imageset/yumi_scope_game_position_crown.png b/YuMi/Assets.xcassets/yna/Position/yumi_scope_game_position_crown.imageset/yumi_scope_game_position_crown.png new file mode 100644 index 00000000..75f66a85 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Position/yumi_scope_game_position_crown.imageset/yumi_scope_game_position_crown.png differ diff --git a/YuMi/Assets.xcassets/yna/Position/yumi_scope_game_position_mine.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Position/yumi_scope_game_position_mine.imageset/Contents.json new file mode 100644 index 00000000..25cbbd5a --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Position/yumi_scope_game_position_mine.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_scope_game_position_mine.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Position/yumi_scope_game_position_mine.imageset/yumi_scope_game_position_mine.png b/YuMi/Assets.xcassets/yna/Position/yumi_scope_game_position_mine.imageset/yumi_scope_game_position_mine.png new file mode 100644 index 00000000..90ce8366 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Position/yumi_scope_game_position_mine.imageset/yumi_scope_game_position_mine.png differ diff --git a/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_boss.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_boss.imageset/Contents.json new file mode 100644 index 00000000..17a4609b --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_boss.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_position_boss@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_position_boss@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_boss.imageset/yumi_scope_position_boss@2x.png b/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_boss.imageset/yumi_scope_position_boss@2x.png new file mode 100644 index 00000000..6cccd815 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_boss.imageset/yumi_scope_position_boss@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_boss.imageset/yumi_scope_position_boss@3x.png b/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_boss.imageset/yumi_scope_position_boss@3x.png new file mode 100644 index 00000000..8eb3c18a Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_boss.imageset/yumi_scope_position_boss@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_dating_female_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_dating_female_background.imageset/Contents.json new file mode 100644 index 00000000..1d6b54c1 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_dating_female_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_position_dating_female_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_position_dating_female_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_dating_female_background.imageset/yumi_scope_position_dating_female_background@2x.png b/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_dating_female_background.imageset/yumi_scope_position_dating_female_background@2x.png new file mode 100644 index 00000000..8b7a053f Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_dating_female_background.imageset/yumi_scope_position_dating_female_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_dating_female_background.imageset/yumi_scope_position_dating_female_background@3x.png b/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_dating_female_background.imageset/yumi_scope_position_dating_female_background@3x.png new file mode 100644 index 00000000..48eb3670 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_dating_female_background.imageset/yumi_scope_position_dating_female_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_dating_male_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_dating_male_background.imageset/Contents.json new file mode 100644 index 00000000..d23daea9 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_dating_male_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_position_dating_male_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_position_dating_male_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_dating_male_background.imageset/yumi_scope_position_dating_male_background@2x.png b/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_dating_male_background.imageset/yumi_scope_position_dating_male_background@2x.png new file mode 100644 index 00000000..428c427e Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_dating_male_background.imageset/yumi_scope_position_dating_male_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_dating_male_background.imageset/yumi_scope_position_dating_male_background@3x.png b/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_dating_male_background.imageset/yumi_scope_position_dating_male_background@3x.png new file mode 100644 index 00000000..26e0d83b Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_dating_male_background.imageset/yumi_scope_position_dating_male_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_forbid_kicked.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_forbid_kicked.imageset/Contents.json new file mode 100644 index 00000000..4700af47 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_forbid_kicked.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_position_forbid_kicked@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_position_forbid_kicked@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_forbid_kicked.imageset/yumi_scope_position_forbid_kicked@2x.png b/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_forbid_kicked.imageset/yumi_scope_position_forbid_kicked@2x.png new file mode 100644 index 00000000..ad3191ff Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_forbid_kicked.imageset/yumi_scope_position_forbid_kicked@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_forbid_kicked.imageset/yumi_scope_position_forbid_kicked@3x.png b/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_forbid_kicked.imageset/yumi_scope_position_forbid_kicked@3x.png new file mode 100644 index 00000000..fe2c1474 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_forbid_kicked.imageset/yumi_scope_position_forbid_kicked@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_giftValue_heart.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_giftValue_heart.imageset/Contents.json new file mode 100644 index 00000000..609f48a9 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_giftValue_heart.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_position_giftValue_heart@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_position_giftValue_heart@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_giftValue_heart.imageset/yumi_scope_position_giftValue_heart@2x.png b/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_giftValue_heart.imageset/yumi_scope_position_giftValue_heart@2x.png new file mode 100644 index 00000000..28c40e9c Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_giftValue_heart.imageset/yumi_scope_position_giftValue_heart@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_giftValue_heart.imageset/yumi_scope_position_giftValue_heart@3x.png b/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_giftValue_heart.imageset/yumi_scope_position_giftValue_heart@3x.png new file mode 100644 index 00000000..16915ab4 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_giftValue_heart.imageset/yumi_scope_position_giftValue_heart@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_lock.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_lock.imageset/Contents.json new file mode 100644 index 00000000..138e9beb --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_lock.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_position_lock@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_position_lock@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_lock.imageset/yumi_scope_position_lock@2x.png b/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_lock.imageset/yumi_scope_position_lock@2x.png new file mode 100644 index 00000000..0e888936 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_lock.imageset/yumi_scope_position_lock@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_lock.imageset/yumi_scope_position_lock@3x.png b/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_lock.imageset/yumi_scope_position_lock@3x.png new file mode 100644 index 00000000..27287306 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_lock.imageset/yumi_scope_position_lock@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_lock1.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_lock1.imageset/Contents.json new file mode 100644 index 00000000..ff219fec --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_lock1.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_position_lock1@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_position_lock1@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_lock1.imageset/yumi_scope_position_lock1@2x.png b/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_lock1.imageset/yumi_scope_position_lock1@2x.png new file mode 100644 index 00000000..fd98342c Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_lock1.imageset/yumi_scope_position_lock1@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_lock1.imageset/yumi_scope_position_lock1@3x.png b/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_lock1.imageset/yumi_scope_position_lock1@3x.png new file mode 100644 index 00000000..af4415de Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_lock1.imageset/yumi_scope_position_lock1@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_mute.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_mute.imageset/Contents.json new file mode 100644 index 00000000..d3c4f064 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_mute.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_position_mute@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_position_mute@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_mute.imageset/yumi_scope_position_mute@2x.png b/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_mute.imageset/yumi_scope_position_mute@2x.png new file mode 100644 index 00000000..6680808f Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_mute.imageset/yumi_scope_position_mute@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_mute.imageset/yumi_scope_position_mute@3x.png b/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_mute.imageset/yumi_scope_position_mute@3x.png new file mode 100644 index 00000000..90d3c2d5 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_mute.imageset/yumi_scope_position_mute@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_mute_Anchor.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_mute_Anchor.imageset/Contents.json new file mode 100644 index 00000000..b34ee498 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_mute_Anchor.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_position_mute_Anchor@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_position_mute_Anchor@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_mute_Anchor.imageset/yumi_scope_position_mute_Anchor@2x.png b/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_mute_Anchor.imageset/yumi_scope_position_mute_Anchor@2x.png new file mode 100644 index 00000000..c905fb49 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_mute_Anchor.imageset/yumi_scope_position_mute_Anchor@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_mute_Anchor.imageset/yumi_scope_position_mute_Anchor@3x.png b/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_mute_Anchor.imageset/yumi_scope_position_mute_Anchor@3x.png new file mode 100644 index 00000000..cfe0acc5 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_mute_Anchor.imageset/yumi_scope_position_mute_Anchor@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_normal.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_normal.imageset/Contents.json new file mode 100644 index 00000000..2ec3a56d --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_normal.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_position_normal@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_position_normal@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_normal.imageset/yumi_scope_position_normal@2x.png b/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_normal.imageset/yumi_scope_position_normal@2x.png new file mode 100644 index 00000000..b1e662f8 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_normal.imageset/yumi_scope_position_normal@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_normal.imageset/yumi_scope_position_normal@3x.png b/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_normal.imageset/yumi_scope_position_normal@3x.png new file mode 100644 index 00000000..3ffcf28d Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_normal.imageset/yumi_scope_position_normal@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_normal1.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_normal1.imageset/Contents.json new file mode 100644 index 00000000..1e6ffebf --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_normal1.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_position_normal1@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_position_normal1@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_normal1.imageset/yumi_scope_position_normal1@2x.png b/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_normal1.imageset/yumi_scope_position_normal1@2x.png new file mode 100644 index 00000000..bf8ec3cb Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_normal1.imageset/yumi_scope_position_normal1@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_normal1.imageset/yumi_scope_position_normal1@3x.png b/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_normal1.imageset/yumi_scope_position_normal1@3x.png new file mode 100644 index 00000000..4c2d70cb Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Position/yumi_scope_position_normal1.imageset/yumi_scope_position_normal1@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Position/yumi_scope_postion_topimage_edit.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Position/yumi_scope_postion_topimage_edit.imageset/Contents.json new file mode 100644 index 00000000..561010c1 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Position/yumi_scope_postion_topimage_edit.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_postion_topimage_edit@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_postion_topimage_edit@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Position/yumi_scope_postion_topimage_edit.imageset/yumi_scope_postion_topimage_edit@2x.png b/YuMi/Assets.xcassets/yna/Position/yumi_scope_postion_topimage_edit.imageset/yumi_scope_postion_topimage_edit@2x.png new file mode 100644 index 00000000..e18bb070 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Position/yumi_scope_postion_topimage_edit.imageset/yumi_scope_postion_topimage_edit@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Position/yumi_scope_postion_topimage_edit.imageset/yumi_scope_postion_topimage_edit@3x.png b/YuMi/Assets.xcassets/yna/Position/yumi_scope_postion_topimage_edit.imageset/yumi_scope_postion_topimage_edit@3x.png new file mode 100644 index 00000000..fd5256c1 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Position/yumi_scope_postion_topimage_edit.imageset/yumi_scope_postion_topimage_edit@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Radio/Contents.json b/YuMi/Assets.xcassets/yna/Radio/Contents.json new file mode 100644 index 00000000..e2342777 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Radio/Contents.json @@ -0,0 +1,7 @@ +{"info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Radio/yumi_scope_radio_back.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Radio/yumi_scope_radio_back.imageset/Contents.json new file mode 100644 index 00000000..6d9a92b3 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Radio/yumi_scope_radio_back.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_radio_back@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_radio_back@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Radio/yumi_scope_radio_back.imageset/yumi_scope_radio_back@2x.png b/YuMi/Assets.xcassets/yna/Radio/yumi_scope_radio_back.imageset/yumi_scope_radio_back@2x.png new file mode 100644 index 00000000..6e2e7eb1 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Radio/yumi_scope_radio_back.imageset/yumi_scope_radio_back@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Radio/yumi_scope_radio_back.imageset/yumi_scope_radio_back@3x.png b/YuMi/Assets.xcassets/yna/Radio/yumi_scope_radio_back.imageset/yumi_scope_radio_back@3x.png new file mode 100644 index 00000000..c18eede0 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Radio/yumi_scope_radio_back.imageset/yumi_scope_radio_back@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Radio/yumi_scope_radio_release_close.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Radio/yumi_scope_radio_release_close.imageset/Contents.json new file mode 100644 index 00000000..4ea03ef6 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Radio/yumi_scope_radio_release_close.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_radio_release_close@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_radio_release_close@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Radio/yumi_scope_radio_release_close.imageset/yumi_scope_radio_release_close@2x.png b/YuMi/Assets.xcassets/yna/Radio/yumi_scope_radio_release_close.imageset/yumi_scope_radio_release_close@2x.png new file mode 100644 index 00000000..438b5a45 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Radio/yumi_scope_radio_release_close.imageset/yumi_scope_radio_release_close@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Radio/yumi_scope_radio_release_close.imageset/yumi_scope_radio_release_close@3x.png b/YuMi/Assets.xcassets/yna/Radio/yumi_scope_radio_release_close.imageset/yumi_scope_radio_release_close@3x.png new file mode 100644 index 00000000..4caedd44 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Radio/yumi_scope_radio_release_close.imageset/yumi_scope_radio_release_close@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/RedPacket/Contents.json b/YuMi/Assets.xcassets/yna/RedPacket/Contents.json new file mode 100644 index 00000000..e2342777 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/RedPacket/Contents.json @@ -0,0 +1,7 @@ +{"info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/RedPacket/yumi_redPacket_entrance.imageset/Contents.json b/YuMi/Assets.xcassets/yna/RedPacket/yumi_redPacket_entrance.imageset/Contents.json new file mode 100644 index 00000000..941eb3ef --- /dev/null +++ b/YuMi/Assets.xcassets/yna/RedPacket/yumi_redPacket_entrance.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"filename": "yumi_redPacket_entrance.png", "idiom": "universal", "scale": "1x"}, {"idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/RedPacket/yumi_redPacket_entrance.imageset/yumi_redPacket_entrance.png b/YuMi/Assets.xcassets/yna/RedPacket/yumi_redPacket_entrance.imageset/yumi_redPacket_entrance.png new file mode 100644 index 00000000..bce336b9 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RedPacket/yumi_redPacket_entrance.imageset/yumi_redPacket_entrance.png differ diff --git a/YuMi/Assets.xcassets/yna/RedPacket/yumi_redPacket_msg_inValid_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/RedPacket/yumi_redPacket_msg_inValid_background.imageset/Contents.json new file mode 100644 index 00000000..01218f21 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/RedPacket/yumi_redPacket_msg_inValid_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_redPacket_msg_inValid_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_redPacket_msg_inValid_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/RedPacket/yumi_redPacket_msg_inValid_background.imageset/yumi_redPacket_msg_inValid_background@2x.png b/YuMi/Assets.xcassets/yna/RedPacket/yumi_redPacket_msg_inValid_background.imageset/yumi_redPacket_msg_inValid_background@2x.png new file mode 100644 index 00000000..3569f338 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RedPacket/yumi_redPacket_msg_inValid_background.imageset/yumi_redPacket_msg_inValid_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/RedPacket/yumi_redPacket_msg_inValid_background.imageset/yumi_redPacket_msg_inValid_background@3x.png b/YuMi/Assets.xcassets/yna/RedPacket/yumi_redPacket_msg_inValid_background.imageset/yumi_redPacket_msg_inValid_background@3x.png new file mode 100644 index 00000000..1227b9c6 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RedPacket/yumi_redPacket_msg_inValid_background.imageset/yumi_redPacket_msg_inValid_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/RedPacket/yumi_redPacket_msg_pic.imageset/Contents.json b/YuMi/Assets.xcassets/yna/RedPacket/yumi_redPacket_msg_pic.imageset/Contents.json new file mode 100644 index 00000000..4d657ad8 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/RedPacket/yumi_redPacket_msg_pic.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_redPacket_msg_pic@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_redPacket_msg_pic@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/RedPacket/yumi_redPacket_msg_pic.imageset/yumi_redPacket_msg_pic@2x.png b/YuMi/Assets.xcassets/yna/RedPacket/yumi_redPacket_msg_pic.imageset/yumi_redPacket_msg_pic@2x.png new file mode 100644 index 00000000..6f95c21e Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RedPacket/yumi_redPacket_msg_pic.imageset/yumi_redPacket_msg_pic@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/RedPacket/yumi_redPacket_msg_pic.imageset/yumi_redPacket_msg_pic@3x.png b/YuMi/Assets.xcassets/yna/RedPacket/yumi_redPacket_msg_pic.imageset/yumi_redPacket_msg_pic@3x.png new file mode 100644 index 00000000..abd8ee3a Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RedPacket/yumi_redPacket_msg_pic.imageset/yumi_redPacket_msg_pic@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/RedPacket/yumi_redPacket_msg_valid_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/RedPacket/yumi_redPacket_msg_valid_background.imageset/Contents.json new file mode 100644 index 00000000..5a10611d --- /dev/null +++ b/YuMi/Assets.xcassets/yna/RedPacket/yumi_redPacket_msg_valid_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_redPacket_msg_valid_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_redPacket_msg_valid_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/RedPacket/yumi_redPacket_msg_valid_background.imageset/yumi_redPacket_msg_valid_background@2x.png b/YuMi/Assets.xcassets/yna/RedPacket/yumi_redPacket_msg_valid_background.imageset/yumi_redPacket_msg_valid_background@2x.png new file mode 100644 index 00000000..a560ec0f Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RedPacket/yumi_redPacket_msg_valid_background.imageset/yumi_redPacket_msg_valid_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/RedPacket/yumi_redPacket_msg_valid_background.imageset/yumi_redPacket_msg_valid_background@3x.png b/YuMi/Assets.xcassets/yna/RedPacket/yumi_redPacket_msg_valid_background.imageset/yumi_redPacket_msg_valid_background@3x.png new file mode 100644 index 00000000..3def04d1 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RedPacket/yumi_redPacket_msg_valid_background.imageset/yumi_redPacket_msg_valid_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/RedPacket/yumi_redPacket_open.imageset/Contents.json b/YuMi/Assets.xcassets/yna/RedPacket/yumi_redPacket_open.imageset/Contents.json new file mode 100644 index 00000000..c7bc7e1b --- /dev/null +++ b/YuMi/Assets.xcassets/yna/RedPacket/yumi_redPacket_open.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_redPacket_open@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_redPacket_open@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/RedPacket/yumi_redPacket_open.imageset/yumi_redPacket_open@2x.png b/YuMi/Assets.xcassets/yna/RedPacket/yumi_redPacket_open.imageset/yumi_redPacket_open@2x.png new file mode 100644 index 00000000..b99e0464 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RedPacket/yumi_redPacket_open.imageset/yumi_redPacket_open@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/RedPacket/yumi_redPacket_open.imageset/yumi_redPacket_open@3x.png b/YuMi/Assets.xcassets/yna/RedPacket/yumi_redPacket_open.imageset/yumi_redPacket_open@3x.png new file mode 100644 index 00000000..fb61376e Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RedPacket/yumi_redPacket_open.imageset/yumi_redPacket_open@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/RedPacket/yumi_redPacket_openRoom.imageset/Contents.json b/YuMi/Assets.xcassets/yna/RedPacket/yumi_redPacket_openRoom.imageset/Contents.json new file mode 100644 index 00000000..deebf8c3 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/RedPacket/yumi_redPacket_openRoom.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_redPacket_openRoom@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_redPacket_openRoom@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/RedPacket/yumi_redPacket_openRoom.imageset/yumi_redPacket_openRoom@2x.png b/YuMi/Assets.xcassets/yna/RedPacket/yumi_redPacket_openRoom.imageset/yumi_redPacket_openRoom@2x.png new file mode 100644 index 00000000..cc7bca8f Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RedPacket/yumi_redPacket_openRoom.imageset/yumi_redPacket_openRoom@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/RedPacket/yumi_redPacket_openRoom.imageset/yumi_redPacket_openRoom@3x.png b/YuMi/Assets.xcassets/yna/RedPacket/yumi_redPacket_openRoom.imageset/yumi_redPacket_openRoom@3x.png new file mode 100644 index 00000000..14be0f15 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RedPacket/yumi_redPacket_openRoom.imageset/yumi_redPacket_openRoom@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/RedPacket/yumi_redPacket_receive_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/RedPacket/yumi_redPacket_receive_background.imageset/Contents.json new file mode 100644 index 00000000..227b3a6c --- /dev/null +++ b/YuMi/Assets.xcassets/yna/RedPacket/yumi_redPacket_receive_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_redPacket_receive_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_redPacket_receive_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/RedPacket/yumi_redPacket_receive_background.imageset/yumi_redPacket_receive_background@2x.png b/YuMi/Assets.xcassets/yna/RedPacket/yumi_redPacket_receive_background.imageset/yumi_redPacket_receive_background@2x.png new file mode 100644 index 00000000..13f4ca00 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RedPacket/yumi_redPacket_receive_background.imageset/yumi_redPacket_receive_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/RedPacket/yumi_redPacket_receive_background.imageset/yumi_redPacket_receive_background@3x.png b/YuMi/Assets.xcassets/yna/RedPacket/yumi_redPacket_receive_background.imageset/yumi_redPacket_receive_background@3x.png new file mode 100644 index 00000000..ec12e2b7 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RedPacket/yumi_redPacket_receive_background.imageset/yumi_redPacket_receive_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/RedPacket/yumi_redPacket_result_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/RedPacket/yumi_redPacket_result_background.imageset/Contents.json new file mode 100644 index 00000000..74d655e3 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/RedPacket/yumi_redPacket_result_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_redPacket_result_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_redPacket_result_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/RedPacket/yumi_redPacket_result_background.imageset/yumi_redPacket_result_background@2x.png b/YuMi/Assets.xcassets/yna/RedPacket/yumi_redPacket_result_background.imageset/yumi_redPacket_result_background@2x.png new file mode 100644 index 00000000..c5c22653 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RedPacket/yumi_redPacket_result_background.imageset/yumi_redPacket_result_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/RedPacket/yumi_redPacket_result_background.imageset/yumi_redPacket_result_background@3x.png b/YuMi/Assets.xcassets/yna/RedPacket/yumi_redPacket_result_background.imageset/yumi_redPacket_result_background@3x.png new file mode 100644 index 00000000..6b839852 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RedPacket/yumi_redPacket_result_background.imageset/yumi_redPacket_result_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/RedPacket/yumi_send_redPacket_button.imageset/Contents.json b/YuMi/Assets.xcassets/yna/RedPacket/yumi_send_redPacket_button.imageset/Contents.json new file mode 100644 index 00000000..fa95758e --- /dev/null +++ b/YuMi/Assets.xcassets/yna/RedPacket/yumi_send_redPacket_button.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_send_redPacket_button@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_send_redPacket_button@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/RedPacket/yumi_send_redPacket_button.imageset/yumi_send_redPacket_button@2x.png b/YuMi/Assets.xcassets/yna/RedPacket/yumi_send_redPacket_button.imageset/yumi_send_redPacket_button@2x.png new file mode 100644 index 00000000..c7699819 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RedPacket/yumi_send_redPacket_button.imageset/yumi_send_redPacket_button@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/RedPacket/yumi_send_redPacket_button.imageset/yumi_send_redPacket_button@3x.png b/YuMi/Assets.xcassets/yna/RedPacket/yumi_send_redPacket_button.imageset/yumi_send_redPacket_button@3x.png new file mode 100644 index 00000000..7e3fbbf9 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RedPacket/yumi_send_redPacket_button.imageset/yumi_send_redPacket_button@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/RedPacket/yumi_send_redPacket_cancel.imageset/Contents.json b/YuMi/Assets.xcassets/yna/RedPacket/yumi_send_redPacket_cancel.imageset/Contents.json new file mode 100644 index 00000000..7738d28c --- /dev/null +++ b/YuMi/Assets.xcassets/yna/RedPacket/yumi_send_redPacket_cancel.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_send_redPacket_cancel@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_send_redPacket_cancel@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/RedPacket/yumi_send_redPacket_cancel.imageset/yumi_send_redPacket_cancel@2x.png b/YuMi/Assets.xcassets/yna/RedPacket/yumi_send_redPacket_cancel.imageset/yumi_send_redPacket_cancel@2x.png new file mode 100644 index 00000000..5564c1f5 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RedPacket/yumi_send_redPacket_cancel.imageset/yumi_send_redPacket_cancel@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/RedPacket/yumi_send_redPacket_cancel.imageset/yumi_send_redPacket_cancel@3x.png b/YuMi/Assets.xcassets/yna/RedPacket/yumi_send_redPacket_cancel.imageset/yumi_send_redPacket_cancel@3x.png new file mode 100644 index 00000000..e2414f80 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RedPacket/yumi_send_redPacket_cancel.imageset/yumi_send_redPacket_cancel@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/RedPacket/yumi_send_redPacket_help.imageset/Contents.json b/YuMi/Assets.xcassets/yna/RedPacket/yumi_send_redPacket_help.imageset/Contents.json new file mode 100644 index 00000000..1617094c --- /dev/null +++ b/YuMi/Assets.xcassets/yna/RedPacket/yumi_send_redPacket_help.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_send_redPacket_help@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_send_redPacket_help@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/RedPacket/yumi_send_redPacket_help.imageset/yumi_send_redPacket_help@2x.png b/YuMi/Assets.xcassets/yna/RedPacket/yumi_send_redPacket_help.imageset/yumi_send_redPacket_help@2x.png new file mode 100644 index 00000000..7ae544ef Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RedPacket/yumi_send_redPacket_help.imageset/yumi_send_redPacket_help@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/RedPacket/yumi_send_redPacket_help.imageset/yumi_send_redPacket_help@3x.png b/YuMi/Assets.xcassets/yna/RedPacket/yumi_send_redPacket_help.imageset/yumi_send_redPacket_help@3x.png new file mode 100644 index 00000000..84d3963b Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RedPacket/yumi_send_redPacket_help.imageset/yumi_send_redPacket_help@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/RedPacket/yumi_send_redpacket_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/RedPacket/yumi_send_redpacket_background.imageset/Contents.json new file mode 100644 index 00000000..593e97b1 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/RedPacket/yumi_send_redpacket_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_send_redpacket_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_send_redpacket_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/RedPacket/yumi_send_redpacket_background.imageset/yumi_send_redpacket_background@2x.png b/YuMi/Assets.xcassets/yna/RedPacket/yumi_send_redpacket_background.imageset/yumi_send_redpacket_background@2x.png new file mode 100644 index 00000000..83ab4a83 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RedPacket/yumi_send_redpacket_background.imageset/yumi_send_redpacket_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/RedPacket/yumi_send_redpacket_background.imageset/yumi_send_redpacket_background@3x.png b/YuMi/Assets.xcassets/yna/RedPacket/yumi_send_redpacket_background.imageset/yumi_send_redpacket_background@3x.png new file mode 100644 index 00000000..395df9e8 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RedPacket/yumi_send_redpacket_background.imageset/yumi_send_redpacket_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/RoomPK/Contents.json b/YuMi/Assets.xcassets/yna/RoomPK/Contents.json new file mode 100644 index 00000000..e2342777 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/RoomPK/Contents.json @@ -0,0 +1,7 @@ +{"info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_choose_user_mimage_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_choose_user_mimage_background.imageset/Contents.json new file mode 100644 index 00000000..d65ac6eb --- /dev/null +++ b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_choose_user_mimage_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_pk_choose_user_mimage_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_pk_choose_user_mimage_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_choose_user_mimage_background.imageset/yumi_scope_pk_choose_user_mimage_background@2x.png b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_choose_user_mimage_background.imageset/yumi_scope_pk_choose_user_mimage_background@2x.png new file mode 100644 index 00000000..0c033d47 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_choose_user_mimage_background.imageset/yumi_scope_pk_choose_user_mimage_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_choose_user_mimage_background.imageset/yumi_scope_pk_choose_user_mimage_background@3x.png b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_choose_user_mimage_background.imageset/yumi_scope_pk_choose_user_mimage_background@3x.png new file mode 100644 index 00000000..af9286ee Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_choose_user_mimage_background.imageset/yumi_scope_pk_choose_user_mimage_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_normal_member_enter.imageset/Contents.json b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_normal_member_enter.imageset/Contents.json new file mode 100644 index 00000000..9552f509 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_normal_member_enter.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_pk_normal_member_enter@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_pk_normal_member_enter@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_normal_member_enter.imageset/yumi_scope_pk_normal_member_enter@2x.png b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_normal_member_enter.imageset/yumi_scope_pk_normal_member_enter@2x.png new file mode 100644 index 00000000..659ff036 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_normal_member_enter.imageset/yumi_scope_pk_normal_member_enter@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_normal_member_enter.imageset/yumi_scope_pk_normal_member_enter@3x.png b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_normal_member_enter.imageset/yumi_scope_pk_normal_member_enter@3x.png new file mode 100644 index 00000000..f5a7ac24 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_normal_member_enter.imageset/yumi_scope_pk_normal_member_enter@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_playing_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_playing_background.imageset/Contents.json new file mode 100644 index 00000000..97d18536 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_playing_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_pk_playing_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_pk_playing_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_playing_background.imageset/yumi_scope_pk_playing_background@2x.png b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_playing_background.imageset/yumi_scope_pk_playing_background@2x.png new file mode 100644 index 00000000..9b47f501 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_playing_background.imageset/yumi_scope_pk_playing_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_playing_background.imageset/yumi_scope_pk_playing_background@3x.png b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_playing_background.imageset/yumi_scope_pk_playing_background@3x.png new file mode 100644 index 00000000..ddff9c07 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_playing_background.imageset/yumi_scope_pk_playing_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_playing_fold.imageset/Contents.json b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_playing_fold.imageset/Contents.json new file mode 100644 index 00000000..08ca0cdb --- /dev/null +++ b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_playing_fold.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_pk_playing_fold@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_pk_playing_fold@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_playing_fold.imageset/yumi_scope_pk_playing_fold@2x.png b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_playing_fold.imageset/yumi_scope_pk_playing_fold@2x.png new file mode 100644 index 00000000..4a945dd6 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_playing_fold.imageset/yumi_scope_pk_playing_fold@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_playing_fold.imageset/yumi_scope_pk_playing_fold@3x.png b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_playing_fold.imageset/yumi_scope_pk_playing_fold@3x.png new file mode 100644 index 00000000..daffc167 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_playing_fold.imageset/yumi_scope_pk_playing_fold@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_position_blue_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_position_blue_background.imageset/Contents.json new file mode 100644 index 00000000..1aca75d6 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_position_blue_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_pk_position_blue_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_pk_position_blue_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_position_blue_background.imageset/yumi_scope_pk_position_blue_background@2x.png b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_position_blue_background.imageset/yumi_scope_pk_position_blue_background@2x.png new file mode 100644 index 00000000..6005e3c3 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_position_blue_background.imageset/yumi_scope_pk_position_blue_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_position_blue_background.imageset/yumi_scope_pk_position_blue_background@3x.png b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_position_blue_background.imageset/yumi_scope_pk_position_blue_background@3x.png new file mode 100644 index 00000000..1190dd44 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_position_blue_background.imageset/yumi_scope_pk_position_blue_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_position_red_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_position_red_background.imageset/Contents.json new file mode 100644 index 00000000..7fc0f06e --- /dev/null +++ b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_position_red_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_pk_position_red_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_pk_position_red_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_position_red_background.imageset/yumi_scope_pk_position_red_background@2x.png b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_position_red_background.imageset/yumi_scope_pk_position_red_background@2x.png new file mode 100644 index 00000000..1c3e670d Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_position_red_background.imageset/yumi_scope_pk_position_red_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_position_red_background.imageset/yumi_scope_pk_position_red_background@3x.png b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_position_red_background.imageset/yumi_scope_pk_position_red_background@3x.png new file mode 100644 index 00000000..a3fbb40e Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_position_red_background.imageset/yumi_scope_pk_position_red_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_progrss_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_progrss_background.imageset/Contents.json new file mode 100644 index 00000000..86c4b16d --- /dev/null +++ b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_progrss_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_pk_progrss_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_pk_progrss_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_progrss_background.imageset/yumi_scope_pk_progrss_background@2x.png b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_progrss_background.imageset/yumi_scope_pk_progrss_background@2x.png new file mode 100644 index 00000000..eb762837 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_progrss_background.imageset/yumi_scope_pk_progrss_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_progrss_background.imageset/yumi_scope_pk_progrss_background@3x.png b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_progrss_background.imageset/yumi_scope_pk_progrss_background@3x.png new file mode 100644 index 00000000..799d18a1 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_progrss_background.imageset/yumi_scope_pk_progrss_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_progrss_blue_add.imageset/Contents.json b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_progrss_blue_add.imageset/Contents.json new file mode 100644 index 00000000..bcade9d6 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_progrss_blue_add.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_pk_progrss_blue_add@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_pk_progrss_blue_add@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_progrss_blue_add.imageset/yumi_scope_pk_progrss_blue_add@2x.png b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_progrss_blue_add.imageset/yumi_scope_pk_progrss_blue_add@2x.png new file mode 100644 index 00000000..f4215f46 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_progrss_blue_add.imageset/yumi_scope_pk_progrss_blue_add@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_progrss_blue_add.imageset/yumi_scope_pk_progrss_blue_add@3x.png b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_progrss_blue_add.imageset/yumi_scope_pk_progrss_blue_add@3x.png new file mode 100644 index 00000000..0b01fb34 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_progrss_blue_add.imageset/yumi_scope_pk_progrss_blue_add@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_progrss_line_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_progrss_line_background.imageset/Contents.json new file mode 100644 index 00000000..a9971b24 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_progrss_line_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_pk_progrss_line_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_pk_progrss_line_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_progrss_line_background.imageset/yumi_scope_pk_progrss_line_background@2x.png b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_progrss_line_background.imageset/yumi_scope_pk_progrss_line_background@2x.png new file mode 100644 index 00000000..b39dec7f Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_progrss_line_background.imageset/yumi_scope_pk_progrss_line_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_progrss_line_background.imageset/yumi_scope_pk_progrss_line_background@3x.png b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_progrss_line_background.imageset/yumi_scope_pk_progrss_line_background@3x.png new file mode 100644 index 00000000..11e7d8fe Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_progrss_line_background.imageset/yumi_scope_pk_progrss_line_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_progrss_red_add.imageset/Contents.json b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_progrss_red_add.imageset/Contents.json new file mode 100644 index 00000000..0fd7912a --- /dev/null +++ b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_progrss_red_add.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_pk_progrss_red_add@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_pk_progrss_red_add@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_progrss_red_add.imageset/yumi_scope_pk_progrss_red_add@2x.png b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_progrss_red_add.imageset/yumi_scope_pk_progrss_red_add@2x.png new file mode 100644 index 00000000..1bef608a Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_progrss_red_add.imageset/yumi_scope_pk_progrss_red_add@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_progrss_red_add.imageset/yumi_scope_pk_progrss_red_add@3x.png b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_progrss_red_add.imageset/yumi_scope_pk_progrss_red_add@3x.png new file mode 100644 index 00000000..7610b5f1 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_progrss_red_add.imageset/yumi_scope_pk_progrss_red_add@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_record_line_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_record_line_background.imageset/Contents.json new file mode 100644 index 00000000..b0fa297c --- /dev/null +++ b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_record_line_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_pk_record_line_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_pk_record_line_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_record_line_background.imageset/yumi_scope_pk_record_line_background@2x.png b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_record_line_background.imageset/yumi_scope_pk_record_line_background@2x.png new file mode 100644 index 00000000..04f579c6 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_record_line_background.imageset/yumi_scope_pk_record_line_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_record_line_background.imageset/yumi_scope_pk_record_line_background@3x.png b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_record_line_background.imageset/yumi_scope_pk_record_line_background@3x.png new file mode 100644 index 00000000..9262079e Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_record_line_background.imageset/yumi_scope_pk_record_line_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_record_lose.imageset/Contents.json b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_record_lose.imageset/Contents.json new file mode 100644 index 00000000..4a8dac93 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_record_lose.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_pk_record_lose@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_pk_record_lose@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_record_lose.imageset/yumi_scope_pk_record_lose@2x.png b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_record_lose.imageset/yumi_scope_pk_record_lose@2x.png new file mode 100644 index 00000000..c9594596 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_record_lose.imageset/yumi_scope_pk_record_lose@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_record_lose.imageset/yumi_scope_pk_record_lose@3x.png b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_record_lose.imageset/yumi_scope_pk_record_lose@3x.png new file mode 100644 index 00000000..e56ac03e Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_record_lose.imageset/yumi_scope_pk_record_lose@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_record_winner.imageset/Contents.json b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_record_winner.imageset/Contents.json new file mode 100644 index 00000000..6aa9c4f6 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_record_winner.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_pk_record_winner@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_pk_record_winner@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_record_winner.imageset/yumi_scope_pk_record_winner@2x.png b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_record_winner.imageset/yumi_scope_pk_record_winner@2x.png new file mode 100644 index 00000000..2f382613 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_record_winner.imageset/yumi_scope_pk_record_winner@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_record_winner.imageset/yumi_scope_pk_record_winner@3x.png b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_record_winner.imageset/yumi_scope_pk_record_winner@3x.png new file mode 100644 index 00000000..24c9be28 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_record_winner.imageset/yumi_scope_pk_record_winner@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_blue_victory_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_blue_victory_background.imageset/Contents.json new file mode 100644 index 00000000..5718c24f --- /dev/null +++ b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_blue_victory_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_pk_result_blue_victory_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_pk_result_blue_victory_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_blue_victory_background.imageset/yumi_scope_pk_result_blue_victory_background@2x.png b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_blue_victory_background.imageset/yumi_scope_pk_result_blue_victory_background@2x.png new file mode 100644 index 00000000..24ddbe7a Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_blue_victory_background.imageset/yumi_scope_pk_result_blue_victory_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_blue_victory_background.imageset/yumi_scope_pk_result_blue_victory_background@3x.png b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_blue_victory_background.imageset/yumi_scope_pk_result_blue_victory_background@3x.png new file mode 100644 index 00000000..7bf4bf99 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_blue_victory_background.imageset/yumi_scope_pk_result_blue_victory_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_bottom_loser_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_bottom_loser_background.imageset/Contents.json new file mode 100644 index 00000000..b898b935 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_bottom_loser_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_pk_result_bottom_loser_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_pk_result_bottom_loser_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_bottom_loser_background.imageset/yumi_scope_pk_result_bottom_loser_background@2x.png b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_bottom_loser_background.imageset/yumi_scope_pk_result_bottom_loser_background@2x.png new file mode 100644 index 00000000..497ef21b Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_bottom_loser_background.imageset/yumi_scope_pk_result_bottom_loser_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_bottom_loser_background.imageset/yumi_scope_pk_result_bottom_loser_background@3x.png b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_bottom_loser_background.imageset/yumi_scope_pk_result_bottom_loser_background@3x.png new file mode 100644 index 00000000..53f9a0e8 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_bottom_loser_background.imageset/yumi_scope_pk_result_bottom_loser_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_bottom_win_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_bottom_win_background.imageset/Contents.json new file mode 100644 index 00000000..24a10b2f --- /dev/null +++ b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_bottom_win_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_pk_result_bottom_win_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_pk_result_bottom_win_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_bottom_win_background.imageset/yumi_scope_pk_result_bottom_win_background@2x.png b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_bottom_win_background.imageset/yumi_scope_pk_result_bottom_win_background@2x.png new file mode 100644 index 00000000..3af61ff0 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_bottom_win_background.imageset/yumi_scope_pk_result_bottom_win_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_bottom_win_background.imageset/yumi_scope_pk_result_bottom_win_background@3x.png b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_bottom_win_background.imageset/yumi_scope_pk_result_bottom_win_background@3x.png new file mode 100644 index 00000000..119ef45e Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_bottom_win_background.imageset/yumi_scope_pk_result_bottom_win_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_loser_result_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_loser_result_background.imageset/Contents.json new file mode 100644 index 00000000..4770c1c5 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_loser_result_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_pk_result_loser_result_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_pk_result_loser_result_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_loser_result_background.imageset/yumi_scope_pk_result_loser_result_background@2x.png b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_loser_result_background.imageset/yumi_scope_pk_result_loser_result_background@2x.png new file mode 100644 index 00000000..c6914b4a Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_loser_result_background.imageset/yumi_scope_pk_result_loser_result_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_loser_result_background.imageset/yumi_scope_pk_result_loser_result_background@3x.png b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_loser_result_background.imageset/yumi_scope_pk_result_loser_result_background@3x.png new file mode 100644 index 00000000..be3fd57a Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_loser_result_background.imageset/yumi_scope_pk_result_loser_result_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_matter_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_matter_background.imageset/Contents.json new file mode 100644 index 00000000..8975ffd8 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_matter_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_pk_result_matter_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_pk_result_matter_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_matter_background.imageset/yumi_scope_pk_result_matter_background@2x.png b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_matter_background.imageset/yumi_scope_pk_result_matter_background@2x.png new file mode 100644 index 00000000..d28e58aa Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_matter_background.imageset/yumi_scope_pk_result_matter_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_matter_background.imageset/yumi_scope_pk_result_matter_background@3x.png b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_matter_background.imageset/yumi_scope_pk_result_matter_background@3x.png new file mode 100644 index 00000000..12e634fd Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_matter_background.imageset/yumi_scope_pk_result_matter_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_top_draw_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_top_draw_background.imageset/Contents.json new file mode 100644 index 00000000..24da5be5 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_top_draw_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_pk_result_top_draw_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_pk_result_top_draw_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_top_draw_background.imageset/yumi_scope_pk_result_top_draw_background@2x.png b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_top_draw_background.imageset/yumi_scope_pk_result_top_draw_background@2x.png new file mode 100644 index 00000000..686f0f22 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_top_draw_background.imageset/yumi_scope_pk_result_top_draw_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_top_draw_background.imageset/yumi_scope_pk_result_top_draw_background@3x.png b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_top_draw_background.imageset/yumi_scope_pk_result_top_draw_background@3x.png new file mode 100644 index 00000000..ac4b3b03 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_top_draw_background.imageset/yumi_scope_pk_result_top_draw_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_top_loser_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_top_loser_background.imageset/Contents.json new file mode 100644 index 00000000..e028460e --- /dev/null +++ b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_top_loser_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_pk_result_top_loser_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_pk_result_top_loser_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_top_loser_background.imageset/yumi_scope_pk_result_top_loser_background@2x.png b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_top_loser_background.imageset/yumi_scope_pk_result_top_loser_background@2x.png new file mode 100644 index 00000000..5818e109 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_top_loser_background.imageset/yumi_scope_pk_result_top_loser_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_top_loser_background.imageset/yumi_scope_pk_result_top_loser_background@3x.png b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_top_loser_background.imageset/yumi_scope_pk_result_top_loser_background@3x.png new file mode 100644 index 00000000..be2a8c19 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_top_loser_background.imageset/yumi_scope_pk_result_top_loser_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_top_win_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_top_win_background.imageset/Contents.json new file mode 100644 index 00000000..3db5e948 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_top_win_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_pk_result_top_win_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_pk_result_top_win_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_top_win_background.imageset/yumi_scope_pk_result_top_win_background@2x.png b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_top_win_background.imageset/yumi_scope_pk_result_top_win_background@2x.png new file mode 100644 index 00000000..1513b67d Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_top_win_background.imageset/yumi_scope_pk_result_top_win_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_top_win_background.imageset/yumi_scope_pk_result_top_win_background@3x.png b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_top_win_background.imageset/yumi_scope_pk_result_top_win_background@3x.png new file mode 100644 index 00000000..d985d139 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_top_win_background.imageset/yumi_scope_pk_result_top_win_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_user_mvp.imageset/Contents.json b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_user_mvp.imageset/Contents.json new file mode 100644 index 00000000..154c7aa9 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_user_mvp.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_pk_result_user_mvp@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_pk_result_user_mvp@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_user_mvp.imageset/yumi_scope_pk_result_user_mvp@2x.png b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_user_mvp.imageset/yumi_scope_pk_result_user_mvp@2x.png new file mode 100644 index 00000000..17be28f5 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_user_mvp.imageset/yumi_scope_pk_result_user_mvp@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_user_mvp.imageset/yumi_scope_pk_result_user_mvp@3x.png b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_user_mvp.imageset/yumi_scope_pk_result_user_mvp@3x.png new file mode 100644 index 00000000..26a57b18 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_result_user_mvp.imageset/yumi_scope_pk_result_user_mvp@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_user_unselect.imageset/Contents.json b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_user_unselect.imageset/Contents.json new file mode 100644 index 00000000..6360680d --- /dev/null +++ b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_user_unselect.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_pk_user_unselect@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_pk_user_unselect@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_user_unselect.imageset/yumi_scope_pk_user_unselect@2x.png b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_user_unselect.imageset/yumi_scope_pk_user_unselect@2x.png new file mode 100644 index 00000000..765f2b72 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_user_unselect.imageset/yumi_scope_pk_user_unselect@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_user_unselect.imageset/yumi_scope_pk_user_unselect@3x.png b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_user_unselect.imageset/yumi_scope_pk_user_unselect@3x.png new file mode 100644 index 00000000..75f79a20 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_user_unselect.imageset/yumi_scope_pk_user_unselect@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_vote_normal.imageset/Contents.json b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_vote_normal.imageset/Contents.json new file mode 100644 index 00000000..d4e33e58 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_vote_normal.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_pk_vote_normal@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_pk_vote_normal@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_vote_normal.imageset/yumi_scope_pk_vote_normal@2x.png b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_vote_normal.imageset/yumi_scope_pk_vote_normal@2x.png new file mode 100644 index 00000000..89fa21e1 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_vote_normal.imageset/yumi_scope_pk_vote_normal@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_vote_normal.imageset/yumi_scope_pk_vote_normal@3x.png b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_vote_normal.imageset/yumi_scope_pk_vote_normal@3x.png new file mode 100644 index 00000000..51b72f8a Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_vote_normal.imageset/yumi_scope_pk_vote_normal@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_vote_select.imageset/Contents.json b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_vote_select.imageset/Contents.json new file mode 100644 index 00000000..b28f187c --- /dev/null +++ b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_vote_select.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_pk_vote_select@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_pk_vote_select@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_vote_select.imageset/yumi_scope_pk_vote_select@2x.png b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_vote_select.imageset/yumi_scope_pk_vote_select@2x.png new file mode 100644 index 00000000..cc3e67a6 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_vote_select.imageset/yumi_scope_pk_vote_select@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_vote_select.imageset/yumi_scope_pk_vote_select@3x.png b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_vote_select.imageset/yumi_scope_pk_vote_select@3x.png new file mode 100644 index 00000000..fb2c2234 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_vote_select.imageset/yumi_scope_pk_vote_select@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_vs_logo.imageset/Contents.json b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_vs_logo.imageset/Contents.json new file mode 100644 index 00000000..5412855b --- /dev/null +++ b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_vs_logo.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_pk_vs_logo@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_pk_vs_logo@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_vs_logo.imageset/yumi_scope_pk_vs_logo@2x.png b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_vs_logo.imageset/yumi_scope_pk_vs_logo@2x.png new file mode 100644 index 00000000..35e6e828 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_vs_logo.imageset/yumi_scope_pk_vs_logo@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_vs_logo.imageset/yumi_scope_pk_vs_logo@3x.png b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_vs_logo.imageset/yumi_scope_pk_vs_logo@3x.png new file mode 100644 index 00000000..49d7039f Binary files /dev/null and b/YuMi/Assets.xcassets/yna/RoomPK/yumi_scope_pk_vs_logo.imageset/yumi_scope_pk_vs_logo@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Sailing/Contents.json b/YuMi/Assets.xcassets/yna/Sailing/Contents.json new file mode 100644 index 00000000..e2342777 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Sailing/Contents.json @@ -0,0 +1,7 @@ +{"info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailiing_enter.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailiing_enter.imageset/Contents.json new file mode 100644 index 00000000..ff8c128b --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailiing_enter.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_sailiing_enter@2x.png", "idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailiing_enter.imageset/yumi_scope_sailiing_enter@2x.png b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailiing_enter.imageset/yumi_scope_sailiing_enter@2x.png new file mode 100644 index 00000000..fe242b31 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailiing_enter.imageset/yumi_scope_sailiing_enter@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_add.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_add.imageset/Contents.json new file mode 100644 index 00000000..2130357e --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_add.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_sailing_add@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_sailing_add@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_add.imageset/yumi_scope_sailing_add@2x.png b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_add.imageset/yumi_scope_sailing_add@2x.png new file mode 100644 index 00000000..d270c068 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_add.imageset/yumi_scope_sailing_add@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_add.imageset/yumi_scope_sailing_add@3x.png b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_add.imageset/yumi_scope_sailing_add@3x.png new file mode 100644 index 00000000..0d749995 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_add.imageset/yumi_scope_sailing_add@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_animation_present_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_animation_present_background.imageset/Contents.json new file mode 100644 index 00000000..ff745c40 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_animation_present_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_sailing_animation_present_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_sailing_animation_present_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_animation_present_background.imageset/yumi_scope_sailing_animation_present_background@2x.png b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_animation_present_background.imageset/yumi_scope_sailing_animation_present_background@2x.png new file mode 100644 index 00000000..9f74e31b Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_animation_present_background.imageset/yumi_scope_sailing_animation_present_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_animation_present_background.imageset/yumi_scope_sailing_animation_present_background@3x.png b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_animation_present_background.imageset/yumi_scope_sailing_animation_present_background@3x.png new file mode 100644 index 00000000..78344f5a Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_animation_present_background.imageset/yumi_scope_sailing_animation_present_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_background.imageset/Contents.json new file mode 100644 index 00000000..e5d5e8b1 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_sailing_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_sailing_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_background.imageset/yumi_scope_sailing_background@2x.png b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_background.imageset/yumi_scope_sailing_background@2x.png new file mode 100644 index 00000000..fce4201b Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_background.imageset/yumi_scope_sailing_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_background.imageset/yumi_scope_sailing_background@3x.png b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_background.imageset/yumi_scope_sailing_background@3x.png new file mode 100644 index 00000000..0367f65d Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_background.imageset/yumi_scope_sailing_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_buy_fuel_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_buy_fuel_background.imageset/Contents.json new file mode 100644 index 00000000..7f8604f0 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_buy_fuel_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_sailing_buy_fuel_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_sailing_buy_fuel_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_buy_fuel_background.imageset/yumi_scope_sailing_buy_fuel_background@2x.png b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_buy_fuel_background.imageset/yumi_scope_sailing_buy_fuel_background@2x.png new file mode 100644 index 00000000..f30d1b98 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_buy_fuel_background.imageset/yumi_scope_sailing_buy_fuel_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_buy_fuel_background.imageset/yumi_scope_sailing_buy_fuel_background@3x.png b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_buy_fuel_background.imageset/yumi_scope_sailing_buy_fuel_background@3x.png new file mode 100644 index 00000000..cf8abef3 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_buy_fuel_background.imageset/yumi_scope_sailing_buy_fuel_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_buy_fuel_cancel.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_buy_fuel_cancel.imageset/Contents.json new file mode 100644 index 00000000..957cdccb --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_buy_fuel_cancel.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_sailing_buy_fuel_cancel@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_sailing_buy_fuel_cancel@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_buy_fuel_cancel.imageset/yumi_scope_sailing_buy_fuel_cancel@2x.png b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_buy_fuel_cancel.imageset/yumi_scope_sailing_buy_fuel_cancel@2x.png new file mode 100644 index 00000000..5732b4fc Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_buy_fuel_cancel.imageset/yumi_scope_sailing_buy_fuel_cancel@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_buy_fuel_cancel.imageset/yumi_scope_sailing_buy_fuel_cancel@3x.png b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_buy_fuel_cancel.imageset/yumi_scope_sailing_buy_fuel_cancel@3x.png new file mode 100644 index 00000000..e54f7455 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_buy_fuel_cancel.imageset/yumi_scope_sailing_buy_fuel_cancel@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_buy_fuel_sure.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_buy_fuel_sure.imageset/Contents.json new file mode 100644 index 00000000..23813c48 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_buy_fuel_sure.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_sailing_buy_fuel_sure@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_sailing_buy_fuel_sure@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_buy_fuel_sure.imageset/yumi_scope_sailing_buy_fuel_sure@2x.png b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_buy_fuel_sure.imageset/yumi_scope_sailing_buy_fuel_sure@2x.png new file mode 100644 index 00000000..89f3b787 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_buy_fuel_sure.imageset/yumi_scope_sailing_buy_fuel_sure@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_buy_fuel_sure.imageset/yumi_scope_sailing_buy_fuel_sure@3x.png b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_buy_fuel_sure.imageset/yumi_scope_sailing_buy_fuel_sure@3x.png new file mode 100644 index 00000000..21bf52c5 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_buy_fuel_sure.imageset/yumi_scope_sailing_buy_fuel_sure@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_description.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_description.imageset/Contents.json new file mode 100644 index 00000000..5f32514b --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_description.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_sailing_description@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_sailing_description@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_description.imageset/yumi_scope_sailing_description@2x.png b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_description.imageset/yumi_scope_sailing_description@2x.png new file mode 100644 index 00000000..c0c5d308 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_description.imageset/yumi_scope_sailing_description@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_description.imageset/yumi_scope_sailing_description@3x.png b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_description.imageset/yumi_scope_sailing_description@3x.png new file mode 100644 index 00000000..917c5b3c Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_description.imageset/yumi_scope_sailing_description@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_explore.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_explore.imageset/Contents.json new file mode 100644 index 00000000..d2128b66 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_explore.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_sailing_explore@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_sailing_explore@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_explore.imageset/yumi_scope_sailing_explore@2x.png b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_explore.imageset/yumi_scope_sailing_explore@2x.png new file mode 100644 index 00000000..1015f9b5 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_explore.imageset/yumi_scope_sailing_explore@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_explore.imageset/yumi_scope_sailing_explore@3x.png b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_explore.imageset/yumi_scope_sailing_explore@3x.png new file mode 100644 index 00000000..2d333202 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_explore.imageset/yumi_scope_sailing_explore@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_explore_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_explore_background.imageset/Contents.json new file mode 100644 index 00000000..95c17e55 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_explore_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_sailing_explore_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_sailing_explore_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_explore_background.imageset/yumi_scope_sailing_explore_background@2x.png b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_explore_background.imageset/yumi_scope_sailing_explore_background@2x.png new file mode 100644 index 00000000..e046cff3 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_explore_background.imageset/yumi_scope_sailing_explore_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_explore_background.imageset/yumi_scope_sailing_explore_background@3x.png b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_explore_background.imageset/yumi_scope_sailing_explore_background@3x.png new file mode 100644 index 00000000..d5b3de2c Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_explore_background.imageset/yumi_scope_sailing_explore_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_getfule.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_getfule.imageset/Contents.json new file mode 100644 index 00000000..4f035c7b --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_getfule.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_sailing_getfule@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_sailing_getfule@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_getfule.imageset/yumi_scope_sailing_getfule@2x.png b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_getfule.imageset/yumi_scope_sailing_getfule@2x.png new file mode 100644 index 00000000..6ca80617 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_getfule.imageset/yumi_scope_sailing_getfule@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_getfule.imageset/yumi_scope_sailing_getfule@3x.png b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_getfule.imageset/yumi_scope_sailing_getfule@3x.png new file mode 100644 index 00000000..f405eb2c Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_getfule.imageset/yumi_scope_sailing_getfule@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_order_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_order_background.imageset/Contents.json new file mode 100644 index 00000000..a8749f9c --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_order_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_sailing_order_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_sailing_order_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_order_background.imageset/yumi_scope_sailing_order_background@2x.png b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_order_background.imageset/yumi_scope_sailing_order_background@2x.png new file mode 100644 index 00000000..09fb5dcf Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_order_background.imageset/yumi_scope_sailing_order_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_order_background.imageset/yumi_scope_sailing_order_background@3x.png b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_order_background.imageset/yumi_scope_sailing_order_background@3x.png new file mode 100644 index 00000000..8ad132d2 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_order_background.imageset/yumi_scope_sailing_order_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_order_first.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_order_first.imageset/Contents.json new file mode 100644 index 00000000..3322f1da --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_order_first.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_sailing_order_first@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_sailing_order_first@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_order_first.imageset/yumi_scope_sailing_order_first@2x.png b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_order_first.imageset/yumi_scope_sailing_order_first@2x.png new file mode 100644 index 00000000..423e556d Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_order_first.imageset/yumi_scope_sailing_order_first@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_order_first.imageset/yumi_scope_sailing_order_first@3x.png b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_order_first.imageset/yumi_scope_sailing_order_first@3x.png new file mode 100644 index 00000000..06bdaa07 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_order_first.imageset/yumi_scope_sailing_order_first@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_order_second.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_order_second.imageset/Contents.json new file mode 100644 index 00000000..3d4bc34d --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_order_second.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_sailing_order_second@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_sailing_order_second@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_order_second.imageset/yumi_scope_sailing_order_second@2x.png b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_order_second.imageset/yumi_scope_sailing_order_second@2x.png new file mode 100644 index 00000000..f7ea5355 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_order_second.imageset/yumi_scope_sailing_order_second@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_order_second.imageset/yumi_scope_sailing_order_second@3x.png b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_order_second.imageset/yumi_scope_sailing_order_second@3x.png new file mode 100644 index 00000000..8efc967d Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_order_second.imageset/yumi_scope_sailing_order_second@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_order_third.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_order_third.imageset/Contents.json new file mode 100644 index 00000000..5bd1a56f --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_order_third.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_sailing_order_third@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_sailing_order_third@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_order_third.imageset/yumi_scope_sailing_order_third@2x.png b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_order_third.imageset/yumi_scope_sailing_order_third@2x.png new file mode 100644 index 00000000..59b7b24b Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_order_third.imageset/yumi_scope_sailing_order_third@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_order_third.imageset/yumi_scope_sailing_order_third@3x.png b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_order_third.imageset/yumi_scope_sailing_order_third@3x.png new file mode 100644 index 00000000..1ab5f546 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_order_third.imageset/yumi_scope_sailing_order_third@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_prize_cowry_large.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_prize_cowry_large.imageset/Contents.json new file mode 100644 index 00000000..74d509e1 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_prize_cowry_large.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_sailing_prize_cowry_large@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_sailing_prize_cowry_large@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_prize_cowry_large.imageset/yumi_scope_sailing_prize_cowry_large@2x.png b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_prize_cowry_large.imageset/yumi_scope_sailing_prize_cowry_large@2x.png new file mode 100644 index 00000000..3c7fc797 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_prize_cowry_large.imageset/yumi_scope_sailing_prize_cowry_large@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_prize_cowry_large.imageset/yumi_scope_sailing_prize_cowry_large@3x.png b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_prize_cowry_large.imageset/yumi_scope_sailing_prize_cowry_large@3x.png new file mode 100644 index 00000000..f8e597d6 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_prize_cowry_large.imageset/yumi_scope_sailing_prize_cowry_large@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_prize_crowy.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_prize_crowy.imageset/Contents.json new file mode 100644 index 00000000..021ddd8b --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_prize_crowy.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_sailing_prize_crowy@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_sailing_prize_crowy@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_prize_crowy.imageset/yumi_scope_sailing_prize_crowy@2x.png b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_prize_crowy.imageset/yumi_scope_sailing_prize_crowy@2x.png new file mode 100644 index 00000000..26a4606e Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_prize_crowy.imageset/yumi_scope_sailing_prize_crowy@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_prize_crowy.imageset/yumi_scope_sailing_prize_crowy@3x.png b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_prize_crowy.imageset/yumi_scope_sailing_prize_crowy@3x.png new file mode 100644 index 00000000..b46e61f7 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_prize_crowy.imageset/yumi_scope_sailing_prize_crowy@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_prize_normal_large.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_prize_normal_large.imageset/Contents.json new file mode 100644 index 00000000..0b485872 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_prize_normal_large.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_sailing_prize_normal_large@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_sailing_prize_normal_large@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_prize_normal_large.imageset/yumi_scope_sailing_prize_normal_large@2x.png b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_prize_normal_large.imageset/yumi_scope_sailing_prize_normal_large@2x.png new file mode 100644 index 00000000..93fb6469 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_prize_normal_large.imageset/yumi_scope_sailing_prize_normal_large@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_prize_normal_large.imageset/yumi_scope_sailing_prize_normal_large@3x.png b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_prize_normal_large.imageset/yumi_scope_sailing_prize_normal_large@3x.png new file mode 100644 index 00000000..9dc4a6fc Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_prize_normal_large.imageset/yumi_scope_sailing_prize_normal_large@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_prize_one.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_prize_one.imageset/Contents.json new file mode 100644 index 00000000..206c1927 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_prize_one.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_sailing_prize_one@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_sailing_prize_one@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_prize_one.imageset/yumi_scope_sailing_prize_one@2x.png b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_prize_one.imageset/yumi_scope_sailing_prize_one@2x.png new file mode 100644 index 00000000..559c6187 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_prize_one.imageset/yumi_scope_sailing_prize_one@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_prize_one.imageset/yumi_scope_sailing_prize_one@3x.png b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_prize_one.imageset/yumi_scope_sailing_prize_one@3x.png new file mode 100644 index 00000000..9a5d9f2d Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_prize_one.imageset/yumi_scope_sailing_prize_one@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_rank.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_rank.imageset/Contents.json new file mode 100644 index 00000000..037dd029 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_rank.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_sailing_rank@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_sailing_rank@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_rank.imageset/yumi_scope_sailing_rank@2x.png b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_rank.imageset/yumi_scope_sailing_rank@2x.png new file mode 100644 index 00000000..94a5a801 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_rank.imageset/yumi_scope_sailing_rank@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_rank.imageset/yumi_scope_sailing_rank@3x.png b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_rank.imageset/yumi_scope_sailing_rank@3x.png new file mode 100644 index 00000000..46010058 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_rank.imageset/yumi_scope_sailing_rank@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_record.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_record.imageset/Contents.json new file mode 100644 index 00000000..ce5e9e44 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_record.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_sailing_record@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_sailing_record@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_record.imageset/yumi_scope_sailing_record@2x.png b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_record.imageset/yumi_scope_sailing_record@2x.png new file mode 100644 index 00000000..799ed1dd Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_record.imageset/yumi_scope_sailing_record@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_record.imageset/yumi_scope_sailing_record@3x.png b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_record.imageset/yumi_scope_sailing_record@3x.png new file mode 100644 index 00000000..1a2768cb Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_record.imageset/yumi_scope_sailing_record@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_redu.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_redu.imageset/Contents.json new file mode 100644 index 00000000..a9998b10 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_redu.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_sailing_redu@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_sailing_redu@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_redu.imageset/yumi_scope_sailing_redu@2x.png b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_redu.imageset/yumi_scope_sailing_redu@2x.png new file mode 100644 index 00000000..a494a778 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_redu.imageset/yumi_scope_sailing_redu@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_redu.imageset/yumi_scope_sailing_redu@3x.png b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_redu.imageset/yumi_scope_sailing_redu@3x.png new file mode 100644 index 00000000..ea97813e Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_redu.imageset/yumi_scope_sailing_redu@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_rule_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_rule_background.imageset/Contents.json new file mode 100644 index 00000000..6ea27024 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_rule_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_sailing_rule_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_sailing_rule_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_rule_background.imageset/yumi_scope_sailing_rule_background@2x.png b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_rule_background.imageset/yumi_scope_sailing_rule_background@2x.png new file mode 100644 index 00000000..e00418b5 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_rule_background.imageset/yumi_scope_sailing_rule_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_rule_background.imageset/yumi_scope_sailing_rule_background@3x.png b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_rule_background.imageset/yumi_scope_sailing_rule_background@3x.png new file mode 100644 index 00000000..7118fad2 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_rule_background.imageset/yumi_scope_sailing_rule_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_sailing.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_sailing.imageset/Contents.json new file mode 100644 index 00000000..40931515 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_sailing.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_sailing_sailing@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_sailing_sailing@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_sailing.imageset/yumi_scope_sailing_sailing@2x.png b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_sailing.imageset/yumi_scope_sailing_sailing@2x.png new file mode 100644 index 00000000..7beaa3ad Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_sailing.imageset/yumi_scope_sailing_sailing@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_sailing.imageset/yumi_scope_sailing_sailing@3x.png b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_sailing.imageset/yumi_scope_sailing_sailing@3x.png new file mode 100644 index 00000000..a886d1cb Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_sailing.imageset/yumi_scope_sailing_sailing@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_tips_normal.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_tips_normal.imageset/Contents.json new file mode 100644 index 00000000..848a250a --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_tips_normal.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_sailing_tips_normal@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_sailing_tips_normal@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_tips_normal.imageset/yumi_scope_sailing_tips_normal@2x.png b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_tips_normal.imageset/yumi_scope_sailing_tips_normal@2x.png new file mode 100644 index 00000000..0f70c7b9 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_tips_normal.imageset/yumi_scope_sailing_tips_normal@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_tips_normal.imageset/yumi_scope_sailing_tips_normal@3x.png b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_tips_normal.imageset/yumi_scope_sailing_tips_normal@3x.png new file mode 100644 index 00000000..89ae3b01 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_tips_normal.imageset/yumi_scope_sailing_tips_normal@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_tips_select.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_tips_select.imageset/Contents.json new file mode 100644 index 00000000..111c80e5 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_tips_select.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_sailing_tips_select@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_sailing_tips_select@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_tips_select.imageset/yumi_scope_sailing_tips_select@2x.png b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_tips_select.imageset/yumi_scope_sailing_tips_select@2x.png new file mode 100644 index 00000000..15e517d8 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_tips_select.imageset/yumi_scope_sailing_tips_select@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_tips_select.imageset/yumi_scope_sailing_tips_select@3x.png b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_tips_select.imageset/yumi_scope_sailing_tips_select@3x.png new file mode 100644 index 00000000..2def6254 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Sailing/yumi_scope_sailing_tips_select.imageset/yumi_scope_sailing_tips_select@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Setting/Contents.json b/YuMi/Assets.xcassets/yna/Setting/Contents.json new file mode 100644 index 00000000..e2342777 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Setting/Contents.json @@ -0,0 +1,7 @@ +{"info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Setting/yumi_scope_setting_arrow.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Setting/yumi_scope_setting_arrow.imageset/Contents.json new file mode 100644 index 00000000..8714c0ec --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Setting/yumi_scope_setting_arrow.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_setting_arrow@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_setting_arrow@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Setting/yumi_scope_setting_arrow.imageset/yumi_scope_setting_arrow@2x.png b/YuMi/Assets.xcassets/yna/Setting/yumi_scope_setting_arrow.imageset/yumi_scope_setting_arrow@2x.png new file mode 100644 index 00000000..7214d0d5 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Setting/yumi_scope_setting_arrow.imageset/yumi_scope_setting_arrow@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Setting/yumi_scope_setting_arrow.imageset/yumi_scope_setting_arrow@3x.png b/YuMi/Assets.xcassets/yna/Setting/yumi_scope_setting_arrow.imageset/yumi_scope_setting_arrow@3x.png new file mode 100644 index 00000000..82e517c5 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Setting/yumi_scope_setting_arrow.imageset/yumi_scope_setting_arrow@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Setting/yumi_scope_setting_labelclose.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Setting/yumi_scope_setting_labelclose.imageset/Contents.json new file mode 100644 index 00000000..8f0c1305 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Setting/yumi_scope_setting_labelclose.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_setting_labelclose@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_setting_labelclose@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Setting/yumi_scope_setting_labelclose.imageset/yumi_scope_setting_labelclose@2x.png b/YuMi/Assets.xcassets/yna/Setting/yumi_scope_setting_labelclose.imageset/yumi_scope_setting_labelclose@2x.png new file mode 100644 index 00000000..5b4581ce Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Setting/yumi_scope_setting_labelclose.imageset/yumi_scope_setting_labelclose@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Setting/yumi_scope_setting_labelclose.imageset/yumi_scope_setting_labelclose@3x.png b/YuMi/Assets.xcassets/yna/Setting/yumi_scope_setting_labelclose.imageset/yumi_scope_setting_labelclose@3x.png new file mode 100644 index 00000000..d5afcabc Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Setting/yumi_scope_setting_labelclose.imageset/yumi_scope_setting_labelclose@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Trumpet/Contents.json b/YuMi/Assets.xcassets/yna/Trumpet/Contents.json new file mode 100644 index 00000000..e2342777 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Trumpet/Contents.json @@ -0,0 +1,7 @@ +{"info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Trumpet/yumi_rooom_trumpet_backgroundImage.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Trumpet/yumi_rooom_trumpet_backgroundImage.imageset/Contents.json new file mode 100644 index 00000000..54316fba --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Trumpet/yumi_rooom_trumpet_backgroundImage.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_rooom_trumpet_backgroundImage@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_rooom_trumpet_backgroundImage@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Trumpet/yumi_rooom_trumpet_backgroundImage.imageset/yumi_rooom_trumpet_backgroundImage@2x.png b/YuMi/Assets.xcassets/yna/Trumpet/yumi_rooom_trumpet_backgroundImage.imageset/yumi_rooom_trumpet_backgroundImage@2x.png new file mode 100644 index 00000000..b7f8d3f0 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Trumpet/yumi_rooom_trumpet_backgroundImage.imageset/yumi_rooom_trumpet_backgroundImage@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Trumpet/yumi_rooom_trumpet_backgroundImage.imageset/yumi_rooom_trumpet_backgroundImage@3x.png b/YuMi/Assets.xcassets/yna/Trumpet/yumi_rooom_trumpet_backgroundImage.imageset/yumi_rooom_trumpet_backgroundImage@3x.png new file mode 100644 index 00000000..262b41f3 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Trumpet/yumi_rooom_trumpet_backgroundImage.imageset/yumi_rooom_trumpet_backgroundImage@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/Trumpet/yumi_rooom_trumpet_send.imageset/Contents.json b/YuMi/Assets.xcassets/yna/Trumpet/yumi_rooom_trumpet_send.imageset/Contents.json new file mode 100644 index 00000000..420524b8 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/Trumpet/yumi_rooom_trumpet_send.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_rooom_trumpet_send@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_rooom_trumpet_send@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/Trumpet/yumi_rooom_trumpet_send.imageset/yumi_rooom_trumpet_send@2x.png b/YuMi/Assets.xcassets/yna/Trumpet/yumi_rooom_trumpet_send.imageset/yumi_rooom_trumpet_send@2x.png new file mode 100644 index 00000000..b0a6df24 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Trumpet/yumi_rooom_trumpet_send.imageset/yumi_rooom_trumpet_send@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/Trumpet/yumi_rooom_trumpet_send.imageset/yumi_rooom_trumpet_send@3x.png b/YuMi/Assets.xcassets/yna/Trumpet/yumi_rooom_trumpet_send.imageset/yumi_rooom_trumpet_send@3x.png new file mode 100644 index 00000000..49fc0657 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/Trumpet/yumi_rooom_trumpet_send.imageset/yumi_rooom_trumpet_send@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/UserCard/Contents.json b/YuMi/Assets.xcassets/yna/UserCard/Contents.json new file mode 100644 index 00000000..e2342777 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/UserCard/Contents.json @@ -0,0 +1,7 @@ +{"info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_attention_disable.imageset/Contents.json b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_attention_disable.imageset/Contents.json new file mode 100644 index 00000000..901285a5 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_attention_disable.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_usercard_attention_disable@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_usercard_attention_disable@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_attention_disable.imageset/yumi_usercard_attention_disable@2x.png b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_attention_disable.imageset/yumi_usercard_attention_disable@2x.png new file mode 100644 index 00000000..f52b0f36 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_attention_disable.imageset/yumi_usercard_attention_disable@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_attention_disable.imageset/yumi_usercard_attention_disable@3x.png b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_attention_disable.imageset/yumi_usercard_attention_disable@3x.png new file mode 100644 index 00000000..dc41af8f Binary files /dev/null and b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_attention_disable.imageset/yumi_usercard_attention_disable@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_attention_normal.imageset/Contents.json b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_attention_normal.imageset/Contents.json new file mode 100644 index 00000000..54c24fb2 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_attention_normal.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_usercard_attention_normal@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_usercard_attention_normal@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_attention_normal.imageset/yumi_usercard_attention_normal@2x.png b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_attention_normal.imageset/yumi_usercard_attention_normal@2x.png new file mode 100644 index 00000000..e27cd0ef Binary files /dev/null and b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_attention_normal.imageset/yumi_usercard_attention_normal@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_attention_normal.imageset/yumi_usercard_attention_normal@3x.png b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_attention_normal.imageset/yumi_usercard_attention_normal@3x.png new file mode 100644 index 00000000..d253eebe Binary files /dev/null and b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_attention_normal.imageset/yumi_usercard_attention_normal@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_blacklist_normal.imageset/Contents.json b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_blacklist_normal.imageset/Contents.json new file mode 100644 index 00000000..b50fa8b3 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_blacklist_normal.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_usercard_blacklist_normal@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_usercard_blacklist_normal@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_blacklist_normal.imageset/yumi_usercard_blacklist_normal@2x.png b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_blacklist_normal.imageset/yumi_usercard_blacklist_normal@2x.png new file mode 100644 index 00000000..0adaaf78 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_blacklist_normal.imageset/yumi_usercard_blacklist_normal@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_blacklist_normal.imageset/yumi_usercard_blacklist_normal@3x.png b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_blacklist_normal.imageset/yumi_usercard_blacklist_normal@3x.png new file mode 100644 index 00000000..03cd993b Binary files /dev/null and b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_blacklist_normal.imageset/yumi_usercard_blacklist_normal@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_chat_normal.imageset/Contents.json b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_chat_normal.imageset/Contents.json new file mode 100644 index 00000000..ec969a1a --- /dev/null +++ b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_chat_normal.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_usercard_chat_normal@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_usercard_chat_normal@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_chat_normal.imageset/yumi_usercard_chat_normal@2x.png b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_chat_normal.imageset/yumi_usercard_chat_normal@2x.png new file mode 100644 index 00000000..8e2df782 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_chat_normal.imageset/yumi_usercard_chat_normal@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_chat_normal.imageset/yumi_usercard_chat_normal@3x.png b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_chat_normal.imageset/yumi_usercard_chat_normal@3x.png new file mode 100644 index 00000000..b6c87178 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_chat_normal.imageset/yumi_usercard_chat_normal@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_close.imageset/Contents.json b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_close.imageset/Contents.json new file mode 100644 index 00000000..49e3a04f --- /dev/null +++ b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_close.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_usercard_close@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_usercard_close@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_close.imageset/yumi_usercard_close@2x.png b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_close.imageset/yumi_usercard_close@2x.png new file mode 100644 index 00000000..07835c1f Binary files /dev/null and b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_close.imageset/yumi_usercard_close@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_close.imageset/yumi_usercard_close@3x.png b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_close.imageset/yumi_usercard_close@3x.png new file mode 100644 index 00000000..eff08fd1 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_close.imageset/yumi_usercard_close@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_invite_micro_disable.imageset/Contents.json b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_invite_micro_disable.imageset/Contents.json new file mode 100644 index 00000000..8681774e --- /dev/null +++ b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_invite_micro_disable.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_usercard_invite_micro_disable@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_usercard_invite_micro_disable@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_invite_micro_disable.imageset/yumi_usercard_invite_micro_disable@2x.png b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_invite_micro_disable.imageset/yumi_usercard_invite_micro_disable@2x.png new file mode 100644 index 00000000..0a77d109 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_invite_micro_disable.imageset/yumi_usercard_invite_micro_disable@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_invite_micro_disable.imageset/yumi_usercard_invite_micro_disable@3x.png b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_invite_micro_disable.imageset/yumi_usercard_invite_micro_disable@3x.png new file mode 100644 index 00000000..5b94942b Binary files /dev/null and b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_invite_micro_disable.imageset/yumi_usercard_invite_micro_disable@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_invite_micro_normal.imageset/Contents.json b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_invite_micro_normal.imageset/Contents.json new file mode 100644 index 00000000..30c20955 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_invite_micro_normal.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_usercard_invite_micro_normal@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_usercard_invite_micro_normal@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_invite_micro_normal.imageset/yumi_usercard_invite_micro_normal@2x.png b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_invite_micro_normal.imageset/yumi_usercard_invite_micro_normal@2x.png new file mode 100644 index 00000000..5c7ce7a0 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_invite_micro_normal.imageset/yumi_usercard_invite_micro_normal@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_invite_micro_normal.imageset/yumi_usercard_invite_micro_normal@3x.png b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_invite_micro_normal.imageset/yumi_usercard_invite_micro_normal@3x.png new file mode 100644 index 00000000..f68bcb5f Binary files /dev/null and b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_invite_micro_normal.imageset/yumi_usercard_invite_micro_normal@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_invite_micro_owner.imageset/Contents.json b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_invite_micro_owner.imageset/Contents.json new file mode 100644 index 00000000..4696246f --- /dev/null +++ b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_invite_micro_owner.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_usercard_invite_micro_owner@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_usercard_invite_micro_owner@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_invite_micro_owner.imageset/yumi_usercard_invite_micro_owner@2x.png b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_invite_micro_owner.imageset/yumi_usercard_invite_micro_owner@2x.png new file mode 100644 index 00000000..e6171eb8 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_invite_micro_owner.imageset/yumi_usercard_invite_micro_owner@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_invite_micro_owner.imageset/yumi_usercard_invite_micro_owner@3x.png b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_invite_micro_owner.imageset/yumi_usercard_invite_micro_owner@3x.png new file mode 100644 index 00000000..1c0450b0 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_invite_micro_owner.imageset/yumi_usercard_invite_micro_owner@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_invite_micro_owner_disable.imageset/Contents.json b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_invite_micro_owner_disable.imageset/Contents.json new file mode 100644 index 00000000..1eac1c1c --- /dev/null +++ b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_invite_micro_owner_disable.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_usercard_invite_micro_owner_disable@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_usercard_invite_micro_owner_disable@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_invite_micro_owner_disable.imageset/yumi_usercard_invite_micro_owner_disable@2x.png b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_invite_micro_owner_disable.imageset/yumi_usercard_invite_micro_owner_disable@2x.png new file mode 100644 index 00000000..214baa93 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_invite_micro_owner_disable.imageset/yumi_usercard_invite_micro_owner_disable@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_invite_micro_owner_disable.imageset/yumi_usercard_invite_micro_owner_disable@3x.png b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_invite_micro_owner_disable.imageset/yumi_usercard_invite_micro_owner_disable@3x.png new file mode 100644 index 00000000..e412cf00 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_invite_micro_owner_disable.imageset/yumi_usercard_invite_micro_owner_disable@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_kickout_normal.imageset/Contents.json b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_kickout_normal.imageset/Contents.json new file mode 100644 index 00000000..ba76ce54 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_kickout_normal.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_usercard_kickout_normal@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_usercard_kickout_normal@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_kickout_normal.imageset/yumi_usercard_kickout_normal@2x.png b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_kickout_normal.imageset/yumi_usercard_kickout_normal@2x.png new file mode 100644 index 00000000..c13df71b Binary files /dev/null and b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_kickout_normal.imageset/yumi_usercard_kickout_normal@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_kickout_normal.imageset/yumi_usercard_kickout_normal@3x.png b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_kickout_normal.imageset/yumi_usercard_kickout_normal@3x.png new file mode 100644 index 00000000..fa7bd7f1 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_kickout_normal.imageset/yumi_usercard_kickout_normal@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_manager_disable.imageset/Contents.json b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_manager_disable.imageset/Contents.json new file mode 100644 index 00000000..27a23673 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_manager_disable.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_usercard_manager_disable@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_usercard_manager_disable@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_manager_disable.imageset/yumi_usercard_manager_disable@2x.png b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_manager_disable.imageset/yumi_usercard_manager_disable@2x.png new file mode 100644 index 00000000..756e5c70 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_manager_disable.imageset/yumi_usercard_manager_disable@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_manager_disable.imageset/yumi_usercard_manager_disable@3x.png b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_manager_disable.imageset/yumi_usercard_manager_disable@3x.png new file mode 100644 index 00000000..b2a29714 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_manager_disable.imageset/yumi_usercard_manager_disable@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_manager_normal.imageset/Contents.json b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_manager_normal.imageset/Contents.json new file mode 100644 index 00000000..59cd09e1 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_manager_normal.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_usercard_manager_normal@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_usercard_manager_normal@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_manager_normal.imageset/yumi_usercard_manager_normal@2x.png b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_manager_normal.imageset/yumi_usercard_manager_normal@2x.png new file mode 100644 index 00000000..d486f102 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_manager_normal.imageset/yumi_usercard_manager_normal@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_manager_normal.imageset/yumi_usercard_manager_normal@3x.png b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_manager_normal.imageset/yumi_usercard_manager_normal@3x.png new file mode 100644 index 00000000..a2153ea0 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_manager_normal.imageset/yumi_usercard_manager_normal@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_sendpresent_normal.imageset/Contents.json b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_sendpresent_normal.imageset/Contents.json new file mode 100644 index 00000000..ea72b33c --- /dev/null +++ b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_sendpresent_normal.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_usercard_sendpresent_normal@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_usercard_sendpresent_normal@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_sendpresent_normal.imageset/yumi_usercard_sendpresent_normal@2x.png b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_sendpresent_normal.imageset/yumi_usercard_sendpresent_normal@2x.png new file mode 100644 index 00000000..b40d47fe Binary files /dev/null and b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_sendpresent_normal.imageset/yumi_usercard_sendpresent_normal@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_sendpresent_normal.imageset/yumi_usercard_sendpresent_normal@3x.png b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_sendpresent_normal.imageset/yumi_usercard_sendpresent_normal@3x.png new file mode 100644 index 00000000..6bab5891 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/UserCard/yumi_usercard_sendpresent_normal.imageset/yumi_usercard_sendpresent_normal@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/WishGift/Contents.json b/YuMi/Assets.xcassets/yna/WishGift/Contents.json new file mode 100644 index 00000000..e2342777 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/WishGift/Contents.json @@ -0,0 +1,7 @@ +{"info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_more_menu_wish_gift.imageset/Contents.json b/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_more_menu_wish_gift.imageset/Contents.json new file mode 100644 index 00000000..21afed23 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_more_menu_wish_gift.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_more_menu_wish_gift@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_more_menu_wish_gift@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_more_menu_wish_gift.imageset/yumi_scope_more_menu_wish_gift@2x.png b/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_more_menu_wish_gift.imageset/yumi_scope_more_menu_wish_gift@2x.png new file mode 100644 index 00000000..6e9873f3 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_more_menu_wish_gift.imageset/yumi_scope_more_menu_wish_gift@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_more_menu_wish_gift.imageset/yumi_scope_more_menu_wish_gift@3x.png b/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_more_menu_wish_gift.imageset/yumi_scope_more_menu_wish_gift@3x.png new file mode 100644 index 00000000..631466ee Binary files /dev/null and b/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_more_menu_wish_gift.imageset/yumi_scope_more_menu_wish_gift@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_wish_create_arrow.imageset/Contents.json b/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_wish_create_arrow.imageset/Contents.json new file mode 100644 index 00000000..a6f86738 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_wish_create_arrow.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_wish_create_arrow@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_wish_create_arrow@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_wish_create_arrow.imageset/yumi_scope_wish_create_arrow@2x.png b/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_wish_create_arrow.imageset/yumi_scope_wish_create_arrow@2x.png new file mode 100644 index 00000000..73d23ef0 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_wish_create_arrow.imageset/yumi_scope_wish_create_arrow@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_wish_create_arrow.imageset/yumi_scope_wish_create_arrow@3x.png b/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_wish_create_arrow.imageset/yumi_scope_wish_create_arrow@3x.png new file mode 100644 index 00000000..bedfed3f Binary files /dev/null and b/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_wish_create_arrow.imageset/yumi_scope_wish_create_arrow@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_wish_present_add.imageset/Contents.json b/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_wish_present_add.imageset/Contents.json new file mode 100644 index 00000000..01af9e71 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_wish_present_add.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_wish_present_add@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_wish_present_add@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_wish_present_add.imageset/yumi_scope_wish_present_add@2x.png b/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_wish_present_add.imageset/yumi_scope_wish_present_add@2x.png new file mode 100644 index 00000000..34c875af Binary files /dev/null and b/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_wish_present_add.imageset/yumi_scope_wish_present_add@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_wish_present_add.imageset/yumi_scope_wish_present_add@3x.png b/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_wish_present_add.imageset/yumi_scope_wish_present_add@3x.png new file mode 100644 index 00000000..f15e6a37 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_wish_present_add.imageset/yumi_scope_wish_present_add@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_wish_present_completion.imageset/Contents.json b/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_wish_present_completion.imageset/Contents.json new file mode 100644 index 00000000..261b3e9e --- /dev/null +++ b/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_wish_present_completion.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_wish_present_completion@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_wish_present_completion@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_wish_present_completion.imageset/yumi_scope_wish_present_completion@2x.png b/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_wish_present_completion.imageset/yumi_scope_wish_present_completion@2x.png new file mode 100644 index 00000000..b9f5be3c Binary files /dev/null and b/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_wish_present_completion.imageset/yumi_scope_wish_present_completion@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_wish_present_completion.imageset/yumi_scope_wish_present_completion@3x.png b/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_wish_present_completion.imageset/yumi_scope_wish_present_completion@3x.png new file mode 100644 index 00000000..8a23ff05 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_wish_present_completion.imageset/yumi_scope_wish_present_completion@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_wish_present_mesage_finish.imageset/Contents.json b/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_wish_present_mesage_finish.imageset/Contents.json new file mode 100644 index 00000000..a187d787 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_wish_present_mesage_finish.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_wish_present_mesage_finish@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_wish_present_mesage_finish@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_wish_present_mesage_finish.imageset/yumi_scope_wish_present_mesage_finish@2x.png b/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_wish_present_mesage_finish.imageset/yumi_scope_wish_present_mesage_finish@2x.png new file mode 100644 index 00000000..42395e22 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_wish_present_mesage_finish.imageset/yumi_scope_wish_present_mesage_finish@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_wish_present_mesage_finish.imageset/yumi_scope_wish_present_mesage_finish@3x.png b/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_wish_present_mesage_finish.imageset/yumi_scope_wish_present_mesage_finish@3x.png new file mode 100644 index 00000000..cd1179d1 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_wish_present_mesage_finish.imageset/yumi_scope_wish_present_mesage_finish@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_wish_present_panel_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_wish_present_panel_background.imageset/Contents.json new file mode 100644 index 00000000..4d332e47 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_wish_present_panel_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_wish_present_panel_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_wish_present_panel_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_wish_present_panel_background.imageset/yumi_scope_wish_present_panel_background@2x.png b/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_wish_present_panel_background.imageset/yumi_scope_wish_present_panel_background@2x.png new file mode 100644 index 00000000..f3ed87f8 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_wish_present_panel_background.imageset/yumi_scope_wish_present_panel_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_wish_present_panel_background.imageset/yumi_scope_wish_present_panel_background@3x.png b/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_wish_present_panel_background.imageset/yumi_scope_wish_present_panel_background@3x.png new file mode 100644 index 00000000..e1ce852a Binary files /dev/null and b/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_wish_present_panel_background.imageset/yumi_scope_wish_present_panel_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_wish_present_panel_present_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_wish_present_panel_present_background.imageset/Contents.json new file mode 100644 index 00000000..5d954cfd --- /dev/null +++ b/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_wish_present_panel_present_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_wish_present_panel_present_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_wish_present_panel_present_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_wish_present_panel_present_background.imageset/yumi_scope_wish_present_panel_present_background@2x.png b/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_wish_present_panel_present_background.imageset/yumi_scope_wish_present_panel_present_background@2x.png new file mode 100644 index 00000000..d57e1d5a Binary files /dev/null and b/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_wish_present_panel_present_background.imageset/yumi_scope_wish_present_panel_present_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_wish_present_panel_present_background.imageset/yumi_scope_wish_present_panel_present_background@3x.png b/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_wish_present_panel_present_background.imageset/yumi_scope_wish_present_panel_present_background@3x.png new file mode 100644 index 00000000..3133f4db Binary files /dev/null and b/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_wish_present_panel_present_background.imageset/yumi_scope_wish_present_panel_present_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_wish_present_subtract.imageset/Contents.json b/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_wish_present_subtract.imageset/Contents.json new file mode 100644 index 00000000..cb9cd19f --- /dev/null +++ b/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_wish_present_subtract.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_wish_present_subtract@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_wish_present_subtract@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_wish_present_subtract.imageset/yumi_scope_wish_present_subtract@2x.png b/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_wish_present_subtract.imageset/yumi_scope_wish_present_subtract@2x.png new file mode 100644 index 00000000..43110bfa Binary files /dev/null and b/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_wish_present_subtract.imageset/yumi_scope_wish_present_subtract@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_wish_present_subtract.imageset/yumi_scope_wish_present_subtract@3x.png b/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_wish_present_subtract.imageset/yumi_scope_wish_present_subtract@3x.png new file mode 100644 index 00000000..8680a7a0 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/WishGift/yumi_scope_wish_present_subtract.imageset/yumi_scope_wish_present_subtract@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/YearActivity/Contents.json b/YuMi/Assets.xcassets/yna/YearActivity/Contents.json new file mode 100644 index 00000000..e2342777 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/YearActivity/Contents.json @@ -0,0 +1,7 @@ +{"info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/YearActivity/yumi_YearActivity_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/YearActivity/yumi_YearActivity_background.imageset/Contents.json new file mode 100644 index 00000000..a5735e07 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/YearActivity/yumi_YearActivity_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_YearActivity_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_YearActivity_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/YearActivity/yumi_YearActivity_background.imageset/yumi_YearActivity_background@2x.png b/YuMi/Assets.xcassets/yna/YearActivity/yumi_YearActivity_background.imageset/yumi_YearActivity_background@2x.png new file mode 100644 index 00000000..4ac2096c Binary files /dev/null and b/YuMi/Assets.xcassets/yna/YearActivity/yumi_YearActivity_background.imageset/yumi_YearActivity_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/YearActivity/yumi_YearActivity_background.imageset/yumi_YearActivity_background@3x.png b/YuMi/Assets.xcassets/yna/YearActivity/yumi_YearActivity_background.imageset/yumi_YearActivity_background@3x.png new file mode 100644 index 00000000..63224c80 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/YearActivity/yumi_YearActivity_background.imageset/yumi_YearActivity_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/YearActivity/yumi_YearActivity_goto.imageset/Contents.json b/YuMi/Assets.xcassets/yna/YearActivity/yumi_YearActivity_goto.imageset/Contents.json new file mode 100644 index 00000000..a9c9f81d --- /dev/null +++ b/YuMi/Assets.xcassets/yna/YearActivity/yumi_YearActivity_goto.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_YearActivity_goto@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_YearActivity_goto@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/YearActivity/yumi_YearActivity_goto.imageset/yumi_YearActivity_goto@2x.png b/YuMi/Assets.xcassets/yna/YearActivity/yumi_YearActivity_goto.imageset/yumi_YearActivity_goto@2x.png new file mode 100644 index 00000000..299bea39 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/YearActivity/yumi_YearActivity_goto.imageset/yumi_YearActivity_goto@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/YearActivity/yumi_YearActivity_goto.imageset/yumi_YearActivity_goto@3x.png b/YuMi/Assets.xcassets/yna/YearActivity/yumi_YearActivity_goto.imageset/yumi_YearActivity_goto@3x.png new file mode 100644 index 00000000..08c62973 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/YearActivity/yumi_YearActivity_goto.imageset/yumi_YearActivity_goto@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/yumi_min_scope_back.imageset/Contents.json b/YuMi/Assets.xcassets/yna/yumi_min_scope_back.imageset/Contents.json new file mode 100644 index 00000000..d202bec9 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/yumi_min_scope_back.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_min_scope_back@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_min_scope_back@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/yumi_min_scope_back.imageset/yumi_min_scope_back@2x.png b/YuMi/Assets.xcassets/yna/yumi_min_scope_back.imageset/yumi_min_scope_back@2x.png new file mode 100644 index 00000000..bb29f4ac Binary files /dev/null and b/YuMi/Assets.xcassets/yna/yumi_min_scope_back.imageset/yumi_min_scope_back@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/yumi_min_scope_back.imageset/yumi_min_scope_back@3x.png b/YuMi/Assets.xcassets/yna/yumi_min_scope_back.imageset/yumi_min_scope_back@3x.png new file mode 100644 index 00000000..f7688944 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/yumi_min_scope_back.imageset/yumi_min_scope_back@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/yumi_scope_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/yumi_scope_background.imageset/Contents.json new file mode 100644 index 00000000..88c314b8 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/yumi_scope_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_background@2x.png", "idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/yumi_scope_background.imageset/yumi_scope_background@2x.png b/YuMi/Assets.xcassets/yna/yumi_scope_background.imageset/yumi_scope_background@2x.png new file mode 100644 index 00000000..00754d4b Binary files /dev/null and b/YuMi/Assets.xcassets/yna/yumi_scope_background.imageset/yumi_scope_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/yumi_scope_collect_normal.imageset/Contents.json b/YuMi/Assets.xcassets/yna/yumi_scope_collect_normal.imageset/Contents.json new file mode 100644 index 00000000..5332e16e --- /dev/null +++ b/YuMi/Assets.xcassets/yna/yumi_scope_collect_normal.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_collect_normal@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_collect_normal@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/yumi_scope_collect_normal.imageset/yumi_scope_collect_normal@2x.png b/YuMi/Assets.xcassets/yna/yumi_scope_collect_normal.imageset/yumi_scope_collect_normal@2x.png new file mode 100644 index 00000000..fc7181b8 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/yumi_scope_collect_normal.imageset/yumi_scope_collect_normal@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/yumi_scope_collect_normal.imageset/yumi_scope_collect_normal@3x.png b/YuMi/Assets.xcassets/yna/yumi_scope_collect_normal.imageset/yumi_scope_collect_normal@3x.png new file mode 100644 index 00000000..82407043 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/yumi_scope_collect_normal.imageset/yumi_scope_collect_normal@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/yumi_scope_collect_selected.imageset/Contents.json b/YuMi/Assets.xcassets/yna/yumi_scope_collect_selected.imageset/Contents.json new file mode 100644 index 00000000..6dfa464e --- /dev/null +++ b/YuMi/Assets.xcassets/yna/yumi_scope_collect_selected.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_collect_selected@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_collect_selected@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/yumi_scope_collect_selected.imageset/yumi_scope_collect_selected@2x.png b/YuMi/Assets.xcassets/yna/yumi_scope_collect_selected.imageset/yumi_scope_collect_selected@2x.png new file mode 100644 index 00000000..ccfab612 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/yumi_scope_collect_selected.imageset/yumi_scope_collect_selected@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/yumi_scope_collect_selected.imageset/yumi_scope_collect_selected@3x.png b/YuMi/Assets.xcassets/yna/yumi_scope_collect_selected.imageset/yumi_scope_collect_selected@3x.png new file mode 100644 index 00000000..26c2a93c Binary files /dev/null and b/YuMi/Assets.xcassets/yna/yumi_scope_collect_selected.imageset/yumi_scope_collect_selected@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/yumi_scope_enterRoom_hide.imageset/Contents.json b/YuMi/Assets.xcassets/yna/yumi_scope_enterRoom_hide.imageset/Contents.json new file mode 100644 index 00000000..ab42b359 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/yumi_scope_enterRoom_hide.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_enterRoom_hide@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_enterRoom_hide@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/yumi_scope_enterRoom_hide.imageset/yumi_scope_enterRoom_hide@2x.png b/YuMi/Assets.xcassets/yna/yumi_scope_enterRoom_hide.imageset/yumi_scope_enterRoom_hide@2x.png new file mode 100644 index 00000000..49ec100d Binary files /dev/null and b/YuMi/Assets.xcassets/yna/yumi_scope_enterRoom_hide.imageset/yumi_scope_enterRoom_hide@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/yumi_scope_enterRoom_hide.imageset/yumi_scope_enterRoom_hide@3x.png b/YuMi/Assets.xcassets/yna/yumi_scope_enterRoom_hide.imageset/yumi_scope_enterRoom_hide@3x.png new file mode 100644 index 00000000..2f60b33e Binary files /dev/null and b/YuMi/Assets.xcassets/yna/yumi_scope_enterRoom_hide.imageset/yumi_scope_enterRoom_hide@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/yumi_scope_gen_back.imageset/Contents.json b/YuMi/Assets.xcassets/yna/yumi_scope_gen_back.imageset/Contents.json new file mode 100644 index 00000000..054ecf65 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/yumi_scope_gen_back.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_gen_back@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_gen_back@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/yumi_scope_gen_back.imageset/yumi_scope_gen_back@2x.png b/YuMi/Assets.xcassets/yna/yumi_scope_gen_back.imageset/yumi_scope_gen_back@2x.png new file mode 100644 index 00000000..129f8bcd Binary files /dev/null and b/YuMi/Assets.xcassets/yna/yumi_scope_gen_back.imageset/yumi_scope_gen_back@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/yumi_scope_gen_back.imageset/yumi_scope_gen_back@3x.png b/YuMi/Assets.xcassets/yna/yumi_scope_gen_back.imageset/yumi_scope_gen_back@3x.png new file mode 100644 index 00000000..45a632ed Binary files /dev/null and b/YuMi/Assets.xcassets/yna/yumi_scope_gen_back.imageset/yumi_scope_gen_back@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/yumi_scope_gen_exit.imageset/Contents.json b/YuMi/Assets.xcassets/yna/yumi_scope_gen_exit.imageset/Contents.json new file mode 100644 index 00000000..f8aa8447 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/yumi_scope_gen_exit.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_gen_exit@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_gen_exit@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/yumi_scope_gen_exit.imageset/yumi_scope_gen_exit@2x.png b/YuMi/Assets.xcassets/yna/yumi_scope_gen_exit.imageset/yumi_scope_gen_exit@2x.png new file mode 100644 index 00000000..b463366b Binary files /dev/null and b/YuMi/Assets.xcassets/yna/yumi_scope_gen_exit.imageset/yumi_scope_gen_exit@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/yumi_scope_gen_exit.imageset/yumi_scope_gen_exit@3x.png b/YuMi/Assets.xcassets/yna/yumi_scope_gen_exit.imageset/yumi_scope_gen_exit@3x.png new file mode 100644 index 00000000..5ed24314 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/yumi_scope_gen_exit.imageset/yumi_scope_gen_exit@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/yumi_scope_gen_lock_room.imageset/Contents.json b/YuMi/Assets.xcassets/yna/yumi_scope_gen_lock_room.imageset/Contents.json new file mode 100644 index 00000000..badd9048 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/yumi_scope_gen_lock_room.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_gen_lock_room@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_gen_lock_room@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/yumi_scope_gen_lock_room.imageset/yumi_scope_gen_lock_room@2x.png b/YuMi/Assets.xcassets/yna/yumi_scope_gen_lock_room.imageset/yumi_scope_gen_lock_room@2x.png new file mode 100644 index 00000000..616ab781 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/yumi_scope_gen_lock_room.imageset/yumi_scope_gen_lock_room@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/yumi_scope_gen_lock_room.imageset/yumi_scope_gen_lock_room@3x.png b/YuMi/Assets.xcassets/yna/yumi_scope_gen_lock_room.imageset/yumi_scope_gen_lock_room@3x.png new file mode 100644 index 00000000..c63fc95d Binary files /dev/null and b/YuMi/Assets.xcassets/yna/yumi_scope_gen_lock_room.imageset/yumi_scope_gen_lock_room@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/yumi_scope_gen_mini.imageset/Contents.json b/YuMi/Assets.xcassets/yna/yumi_scope_gen_mini.imageset/Contents.json new file mode 100644 index 00000000..2aa268c9 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/yumi_scope_gen_mini.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_gen_mini@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_gen_mini@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/yumi_scope_gen_mini.imageset/yumi_scope_gen_mini@2x.png b/YuMi/Assets.xcassets/yna/yumi_scope_gen_mini.imageset/yumi_scope_gen_mini@2x.png new file mode 100644 index 00000000..675294e0 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/yumi_scope_gen_mini.imageset/yumi_scope_gen_mini@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/yumi_scope_gen_mini.imageset/yumi_scope_gen_mini@3x.png b/YuMi/Assets.xcassets/yna/yumi_scope_gen_mini.imageset/yumi_scope_gen_mini@3x.png new file mode 100644 index 00000000..514b3c4f Binary files /dev/null and b/YuMi/Assets.xcassets/yna/yumi_scope_gen_mini.imageset/yumi_scope_gen_mini@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/yumi_scope_gen_present_effect.imageset/Contents.json b/YuMi/Assets.xcassets/yna/yumi_scope_gen_present_effect.imageset/Contents.json new file mode 100644 index 00000000..6d1369e9 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/yumi_scope_gen_present_effect.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_gen_present_effect@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_gen_present_effect@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/yumi_scope_gen_present_effect.imageset/yumi_scope_gen_present_effect@2x.png b/YuMi/Assets.xcassets/yna/yumi_scope_gen_present_effect.imageset/yumi_scope_gen_present_effect@2x.png new file mode 100644 index 00000000..ae0db866 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/yumi_scope_gen_present_effect.imageset/yumi_scope_gen_present_effect@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/yumi_scope_gen_present_effect.imageset/yumi_scope_gen_present_effect@3x.png b/YuMi/Assets.xcassets/yna/yumi_scope_gen_present_effect.imageset/yumi_scope_gen_present_effect@3x.png new file mode 100644 index 00000000..a7e18e0c Binary files /dev/null and b/YuMi/Assets.xcassets/yna/yumi_scope_gen_present_effect.imageset/yumi_scope_gen_present_effect@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/yumi_scope_gen_report.imageset/Contents.json b/YuMi/Assets.xcassets/yna/yumi_scope_gen_report.imageset/Contents.json new file mode 100644 index 00000000..89328439 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/yumi_scope_gen_report.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_gen_report@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_gen_report@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/yumi_scope_gen_report.imageset/yumi_scope_gen_report@2x.png b/YuMi/Assets.xcassets/yna/yumi_scope_gen_report.imageset/yumi_scope_gen_report@2x.png new file mode 100644 index 00000000..6d3bd3ee Binary files /dev/null and b/YuMi/Assets.xcassets/yna/yumi_scope_gen_report.imageset/yumi_scope_gen_report@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/yumi_scope_gen_report.imageset/yumi_scope_gen_report@3x.png b/YuMi/Assets.xcassets/yna/yumi_scope_gen_report.imageset/yumi_scope_gen_report@3x.png new file mode 100644 index 00000000..a507057f Binary files /dev/null and b/YuMi/Assets.xcassets/yna/yumi_scope_gen_report.imageset/yumi_scope_gen_report@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/yumi_scope_gen_setting.imageset/Contents.json b/YuMi/Assets.xcassets/yna/yumi_scope_gen_setting.imageset/Contents.json new file mode 100644 index 00000000..14c3fa44 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/yumi_scope_gen_setting.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_gen_setting@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_gen_setting@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/yumi_scope_gen_setting.imageset/yumi_scope_gen_setting@2x.png b/YuMi/Assets.xcassets/yna/yumi_scope_gen_setting.imageset/yumi_scope_gen_setting@2x.png new file mode 100644 index 00000000..17ee03de Binary files /dev/null and b/YuMi/Assets.xcassets/yna/yumi_scope_gen_setting.imageset/yumi_scope_gen_setting@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/yumi_scope_gen_setting.imageset/yumi_scope_gen_setting@3x.png b/YuMi/Assets.xcassets/yna/yumi_scope_gen_setting.imageset/yumi_scope_gen_setting@3x.png new file mode 100644 index 00000000..8e79365e Binary files /dev/null and b/YuMi/Assets.xcassets/yna/yumi_scope_gen_setting.imageset/yumi_scope_gen_setting@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/yumi_scope_licnese_hour_order_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/yumi_scope_licnese_hour_order_background.imageset/Contents.json new file mode 100644 index 00000000..dad4f956 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/yumi_scope_licnese_hour_order_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_licnese_hour_order_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_licnese_hour_order_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/yumi_scope_licnese_hour_order_background.imageset/yumi_scope_licnese_hour_order_background@2x.png b/YuMi/Assets.xcassets/yna/yumi_scope_licnese_hour_order_background.imageset/yumi_scope_licnese_hour_order_background@2x.png new file mode 100644 index 00000000..24e20269 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/yumi_scope_licnese_hour_order_background.imageset/yumi_scope_licnese_hour_order_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/yumi_scope_licnese_hour_order_background.imageset/yumi_scope_licnese_hour_order_background@3x.png b/YuMi/Assets.xcassets/yna/yumi_scope_licnese_hour_order_background.imageset/yumi_scope_licnese_hour_order_background@3x.png new file mode 100644 index 00000000..932bfc7b Binary files /dev/null and b/YuMi/Assets.xcassets/yna/yumi_scope_licnese_hour_order_background.imageset/yumi_scope_licnese_hour_order_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/yumi_scope_msg_tips_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/yumi_scope_msg_tips_background.imageset/Contents.json new file mode 100644 index 00000000..fc634020 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/yumi_scope_msg_tips_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_msg_tips_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_msg_tips_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/yumi_scope_msg_tips_background.imageset/yumi_scope_msg_tips_background@2x.png b/YuMi/Assets.xcassets/yna/yumi_scope_msg_tips_background.imageset/yumi_scope_msg_tips_background@2x.png new file mode 100644 index 00000000..edf88242 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/yumi_scope_msg_tips_background.imageset/yumi_scope_msg_tips_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/yumi_scope_msg_tips_background.imageset/yumi_scope_msg_tips_background@3x.png b/YuMi/Assets.xcassets/yna/yumi_scope_msg_tips_background.imageset/yumi_scope_msg_tips_background@3x.png new file mode 100644 index 00000000..f43f5ff5 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/yumi_scope_msg_tips_background.imageset/yumi_scope_msg_tips_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/yumi_scope_present_all_mic.imageset/Contents.json b/YuMi/Assets.xcassets/yna/yumi_scope_present_all_mic.imageset/Contents.json new file mode 100644 index 00000000..11d9cca9 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/yumi_scope_present_all_mic.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_present_all_mic@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_present_all_mic@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/yumi_scope_present_all_mic.imageset/yumi_scope_present_all_mic@2x.png b/YuMi/Assets.xcassets/yna/yumi_scope_present_all_mic.imageset/yumi_scope_present_all_mic@2x.png new file mode 100644 index 00000000..3ad43e37 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/yumi_scope_present_all_mic.imageset/yumi_scope_present_all_mic@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/yumi_scope_present_all_mic.imageset/yumi_scope_present_all_mic@3x.png b/YuMi/Assets.xcassets/yna/yumi_scope_present_all_mic.imageset/yumi_scope_present_all_mic@3x.png new file mode 100644 index 00000000..d5378abd Binary files /dev/null and b/YuMi/Assets.xcassets/yna/yumi_scope_present_all_mic.imageset/yumi_scope_present_all_mic@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/yumi_scope_present_banner_high_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/yumi_scope_present_banner_high_background.imageset/Contents.json new file mode 100644 index 00000000..c59f36d3 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/yumi_scope_present_banner_high_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_present_banner_high_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_present_banner_high_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/yumi_scope_present_banner_high_background.imageset/yumi_scope_present_banner_high_background@2x.png b/YuMi/Assets.xcassets/yna/yumi_scope_present_banner_high_background.imageset/yumi_scope_present_banner_high_background@2x.png new file mode 100644 index 00000000..b8ebcbea Binary files /dev/null and b/YuMi/Assets.xcassets/yna/yumi_scope_present_banner_high_background.imageset/yumi_scope_present_banner_high_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/yumi_scope_present_banner_high_background.imageset/yumi_scope_present_banner_high_background@3x.png b/YuMi/Assets.xcassets/yna/yumi_scope_present_banner_high_background.imageset/yumi_scope_present_banner_high_background@3x.png new file mode 100644 index 00000000..bf1a7df1 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/yumi_scope_present_banner_high_background.imageset/yumi_scope_present_banner_high_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/yumi_scope_present_banner_light.imageset/Contents.json b/YuMi/Assets.xcassets/yna/yumi_scope_present_banner_light.imageset/Contents.json new file mode 100644 index 00000000..7aa2b34a --- /dev/null +++ b/YuMi/Assets.xcassets/yna/yumi_scope_present_banner_light.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_present_banner_light@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_present_banner_light@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/yumi_scope_present_banner_light.imageset/yumi_scope_present_banner_light@2x.png b/YuMi/Assets.xcassets/yna/yumi_scope_present_banner_light.imageset/yumi_scope_present_banner_light@2x.png new file mode 100644 index 00000000..91b2e314 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/yumi_scope_present_banner_light.imageset/yumi_scope_present_banner_light@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/yumi_scope_present_banner_light.imageset/yumi_scope_present_banner_light@3x.png b/YuMi/Assets.xcassets/yna/yumi_scope_present_banner_light.imageset/yumi_scope_present_banner_light@3x.png new file mode 100644 index 00000000..2c2c05fb Binary files /dev/null and b/YuMi/Assets.xcassets/yna/yumi_scope_present_banner_light.imageset/yumi_scope_present_banner_light@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/yumi_scope_present_banner_low_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/yumi_scope_present_banner_low_background.imageset/Contents.json new file mode 100644 index 00000000..c9ba4400 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/yumi_scope_present_banner_low_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_present_banner_low_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_present_banner_low_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/yumi_scope_present_banner_low_background.imageset/yumi_scope_present_banner_low_background@2x.png b/YuMi/Assets.xcassets/yna/yumi_scope_present_banner_low_background.imageset/yumi_scope_present_banner_low_background@2x.png new file mode 100644 index 00000000..2f978871 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/yumi_scope_present_banner_low_background.imageset/yumi_scope_present_banner_low_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/yumi_scope_present_banner_low_background.imageset/yumi_scope_present_banner_low_background@3x.png b/YuMi/Assets.xcassets/yna/yumi_scope_present_banner_low_background.imageset/yumi_scope_present_banner_low_background@3x.png new file mode 100644 index 00000000..c6b12a2e Binary files /dev/null and b/YuMi/Assets.xcassets/yna/yumi_scope_present_banner_low_background.imageset/yumi_scope_present_banner_low_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/yumi_scope_present_banner_middle_background.imageset/Contents.json b/YuMi/Assets.xcassets/yna/yumi_scope_present_banner_middle_background.imageset/Contents.json new file mode 100644 index 00000000..dabecb27 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/yumi_scope_present_banner_middle_background.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_present_banner_middle_background@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_present_banner_middle_background@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/yumi_scope_present_banner_middle_background.imageset/yumi_scope_present_banner_middle_background@2x.png b/YuMi/Assets.xcassets/yna/yumi_scope_present_banner_middle_background.imageset/yumi_scope_present_banner_middle_background@2x.png new file mode 100644 index 00000000..3a98fbec Binary files /dev/null and b/YuMi/Assets.xcassets/yna/yumi_scope_present_banner_middle_background.imageset/yumi_scope_present_banner_middle_background@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/yumi_scope_present_banner_middle_background.imageset/yumi_scope_present_banner_middle_background@3x.png b/YuMi/Assets.xcassets/yna/yumi_scope_present_banner_middle_background.imageset/yumi_scope_present_banner_middle_background@3x.png new file mode 100644 index 00000000..bcd44c22 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/yumi_scope_present_banner_middle_background.imageset/yumi_scope_present_banner_middle_background@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/yumi_scope_present_grand_entrance.imageset/Contents.json b/YuMi/Assets.xcassets/yna/yumi_scope_present_grand_entrance.imageset/Contents.json new file mode 100644 index 00000000..7c534a7e --- /dev/null +++ b/YuMi/Assets.xcassets/yna/yumi_scope_present_grand_entrance.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_present_grand_entrance@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_present_grand_entrance@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/yumi_scope_present_grand_entrance.imageset/yumi_scope_present_grand_entrance@2x.png b/YuMi/Assets.xcassets/yna/yumi_scope_present_grand_entrance.imageset/yumi_scope_present_grand_entrance@2x.png new file mode 100644 index 00000000..839de445 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/yumi_scope_present_grand_entrance.imageset/yumi_scope_present_grand_entrance@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/yumi_scope_present_grand_entrance.imageset/yumi_scope_present_grand_entrance@3x.png b/YuMi/Assets.xcassets/yna/yumi_scope_present_grand_entrance.imageset/yumi_scope_present_grand_entrance@3x.png new file mode 100644 index 00000000..72c4a688 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/yumi_scope_present_grand_entrance.imageset/yumi_scope_present_grand_entrance@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/yumi_scope_present_grand_lock.imageset/Contents.json b/YuMi/Assets.xcassets/yna/yumi_scope_present_grand_lock.imageset/Contents.json new file mode 100644 index 00000000..09085412 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/yumi_scope_present_grand_lock.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_present_grand_lock@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_present_grand_lock@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/yumi_scope_present_grand_lock.imageset/yumi_scope_present_grand_lock@2x.png b/YuMi/Assets.xcassets/yna/yumi_scope_present_grand_lock.imageset/yumi_scope_present_grand_lock@2x.png new file mode 100644 index 00000000..1d91aebf Binary files /dev/null and b/YuMi/Assets.xcassets/yna/yumi_scope_present_grand_lock.imageset/yumi_scope_present_grand_lock@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/yumi_scope_present_grand_lock.imageset/yumi_scope_present_grand_lock@3x.png b/YuMi/Assets.xcassets/yna/yumi_scope_present_grand_lock.imageset/yumi_scope_present_grand_lock@3x.png new file mode 100644 index 00000000..51774f53 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/yumi_scope_present_grand_lock.imageset/yumi_scope_present_grand_lock@3x.png differ diff --git a/YuMi/Assets.xcassets/yna/yumi_scope_secretMan.imageset/Contents.json b/YuMi/Assets.xcassets/yna/yumi_scope_secretMan.imageset/Contents.json new file mode 100644 index 00000000..58f660b0 --- /dev/null +++ b/YuMi/Assets.xcassets/yna/yumi_scope_secretMan.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_secretMan@2x.png", "idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/yumi_scope_secretMan.imageset/yumi_scope_secretMan@2x.png b/YuMi/Assets.xcassets/yna/yumi_scope_secretMan.imageset/yumi_scope_secretMan@2x.png new file mode 100644 index 00000000..ec711b53 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/yumi_scope_secretMan.imageset/yumi_scope_secretMan@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/yumi_scope_star_kitchen.imageset/Contents.json b/YuMi/Assets.xcassets/yna/yumi_scope_star_kitchen.imageset/Contents.json new file mode 100644 index 00000000..b0b909bf --- /dev/null +++ b/YuMi/Assets.xcassets/yna/yumi_scope_star_kitchen.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "yumi_scope_star_kitchen@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "yumi_scope_star_kitchen@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/Assets.xcassets/yna/yumi_scope_star_kitchen.imageset/yumi_scope_star_kitchen@2x.png b/YuMi/Assets.xcassets/yna/yumi_scope_star_kitchen.imageset/yumi_scope_star_kitchen@2x.png new file mode 100644 index 00000000..37657243 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/yumi_scope_star_kitchen.imageset/yumi_scope_star_kitchen@2x.png differ diff --git a/YuMi/Assets.xcassets/yna/yumi_scope_star_kitchen.imageset/yumi_scope_star_kitchen@3x.png b/YuMi/Assets.xcassets/yna/yumi_scope_star_kitchen.imageset/yumi_scope_star_kitchen@3x.png new file mode 100644 index 00000000..db086f23 Binary files /dev/null and b/YuMi/Assets.xcassets/yna/yumi_scope_star_kitchen.imageset/yumi_scope_star_kitchen@3x.png differ diff --git a/YuMi/Config/ClientAtomicMatrix.h b/YuMi/Config/ClientAtomicMatrix.h new file mode 100644 index 00000000..904604ec --- /dev/null +++ b/YuMi/Config/ClientAtomicMatrix.h @@ -0,0 +1,45 @@ +// +// ClientAtomicMatrix.h +// YUMI +// +// Created by YUMI on 2022/3/7. +// + +#import +#import "ClientDeficitSheatheMatrix.h" +#import "AdvertiseMatrix.h" +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSInteger, FaceLivenessStrategy) { + FaceLivenessStrategy_Pass = 0, + FaceLivenessStrategy_Force = 1, + FaceLivenessStrategy_Guide = 2, +}; + +@interface ClientAtomicMatrix : NSObject +@property (nonatomic,strong) NSArray *homeTabList; +@property (nonatomic,copy) NSDictionary *faceInitData; +@property (nonatomic,assign) BOOL appStoreAuditNoticeVersion; +@property(nonatomic, assign) NSInteger roomMessageCount; +@property (nonatomic,assign) NSInteger findNewbieCharmLevel; +@property (nonatomic,assign) double hideCarEffectGiftPrice; +@property (nonatomic, assign) NSInteger linearlyPoolOpenLevel; +@property (nonatomic, strong) ClientDeficitSheatheMatrix *redEnvelopeConfig; +@property (nonatomic,strong) AdvertiseMatrix *splashVo; +@property (nonatomic, strong) NSArray *officialMsgUids; +@property (nonatomic,strong) NSArray *officialAccountUids; +@property (nonatomic,assign) BOOL twelveStarSwitch; +@property (nonatomic,assign) FaceLivenessStrategy certificationType; + +@property (nonatomic,strong) NSMutableArray *giveDiamondErbanNoList; +@property (nonatomic,strong) NSMutableArray *giveGiftErbanNoList; +@property (nonatomic,assign) NSInteger giveDiamondDailyNum; +@property (nonatomic,assign) NSInteger giveDiamondOnceLimitNum; +@property (nonatomic,assign) NSInteger giveDiamondExperLevel; +@property (nonatomic,assign) NSInteger giveGiftExperLevel; + +@property (nonatomic,assign) double giveDiamondRate; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Config/ClientAtomicMatrix.m b/YuMi/Config/ClientAtomicMatrix.m new file mode 100644 index 00000000..a2d4a69f --- /dev/null +++ b/YuMi/Config/ClientAtomicMatrix.m @@ -0,0 +1,19 @@ +// +// ClientAtomicMatrix.m +// YUMI +// +// Created by YUMI on 2022/3/7. +// + +#import "ClientAtomicMatrix.h" +#import "YUMIAdIndicateTool.h" +@implementation ClientAtomicMatrix + +- (void)setSplashVo:(AdvertiseMatrix *)splashVo { + _splashVo = splashVo; + if (_splashVo) { + [YUMIAdIndicateTool.partowardsiciptowardsionIndictowardseUtensil preserveDirectoryAbstract:splashVo]; + } +} + +@end diff --git a/YuMi/Config/ClientDeficitSheatheMatrix.h b/YuMi/Config/ClientDeficitSheatheMatrix.h new file mode 100644 index 00000000..6c5ffbc6 --- /dev/null +++ b/YuMi/Config/ClientDeficitSheatheMatrix.h @@ -0,0 +1,34 @@ +// +// ClientDeficitSheatheMatrix.h +// YUMI +// +// Created by YUMI on 2022/8/31. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + + +@interface ClientDeficitSheatheMatrix : NSObject + +@property (nonatomic, assign) BOOL open; +@property (nonatomic, assign) long long pushUserId; +@property (nonatomic, strong) NSNumber *roomRedEnvelopeMaxNum; +@property (nonatomic, strong) NSNumber *roomRedEnvelopeMinAmount; +@property (nonatomic, strong) NSNumber *roomRedEnvelopeMinNum; +@property (nonatomic, strong) NSNumber *serverRedEnvelopeMaxNum; +@property (nonatomic, strong) NSNumber *serverRedEnvelopeMinAmount; +@property (nonatomic, strong) NSNumber *serverRedEnvelopeMinNum; +@property (nonatomic, strong) NSNumber *roomRedEnvelopeMaxAmount; +@property (nonatomic, strong) NSNumber *serverRedEnvelopeMaxAmount; +@property (nonatomic, strong) NSNumber *redEnvelopedPosition; +@property (nonatomic, strong) NSNumber *redEnvelopeType; +@property (nonatomic, strong) NSNumber *exchangeDiamondsRate; +@property (nonatomic, copy) NSString *serverAppVersion; + +@property (nonatomic, strong) NSArray *openRooms; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Config/ClientDeficitSheatheMatrix.m b/YuMi/Config/ClientDeficitSheatheMatrix.m new file mode 100644 index 00000000..24691f1c --- /dev/null +++ b/YuMi/Config/ClientDeficitSheatheMatrix.m @@ -0,0 +1,13 @@ +// +// ClientDeficitSheatheMatrix.m +// YUMI +// +// Created by YUMI on 2022/8/31. +// + +#import "ClientDeficitSheatheMatrix.h" + +@implementation ClientDeficitSheatheMatrix + + +@end diff --git a/YuMi/Config/ClientDisposition.h b/YuMi/Config/ClientDisposition.h new file mode 100644 index 00000000..95159b4f --- /dev/null +++ b/YuMi/Config/ClientDisposition.h @@ -0,0 +1,28 @@ +// +// ClientDisposition.h +// YUMI +// +// Created by YUMI on 2021/12/11. +// + +#import +#import "ClientAtomicMatrix.h" +NS_ASSUME_NONNULL_BEGIN + +@interface ClientDisposition : NSObject ++ (instancetype)partowardsiciptowardsionDisposition; +- (void)clientInit; +@property (nonatomic,assign) BOOL iosMobileBind;; +@property (nonatomic,assign) BOOL unfoildConfectioneryTimber; +@property (nonatomic,strong) ClientAtomicMatrix *dispositionAbstract; +@property (nonatomic, assign) NSInteger unfoildConfectioneryTimberRestrictionPrototype; +@property (nonatomic,assign) BOOL canUnfoild; +@property (nonatomic, copy) NSString *version; +@property (nonatomic, copy) NSString *zipMd5; +@property (nonatomic, strong) NSURL *zipUrl; + +- (void)accelertowardseCourageBrtowardsIntrtowardsemper; +- (void)replacementCourageBrtowardsIntrtowardsemper; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Config/ClientDisposition.m b/YuMi/Config/ClientDisposition.m new file mode 100644 index 00000000..d8a14bd1 --- /dev/null +++ b/YuMi/Config/ClientDisposition.m @@ -0,0 +1,99 @@ +// +// ClientDisposition.m +// YUMI +// +// Created by YUMI on 2021/12/11. +// + +#import "ClientDisposition.h" +#import "Api+Main.h" +#import "DESEncrypt.h" +#import "YUMIConstant.h" +#import +#import "YUMIChamberAcceptTool.h" +#import "NSString+Utils.h" +#import "YYUtility.h" +#import "YUMIWeakIntratemporalr.h" +#import "Api+Main.h" + +@interface ClientDisposition () +{ + NSTimer * timer; +} +@property (nonatomic,assign) int retryCount; +@end + +@implementation ClientDisposition + ++ (instancetype)partowardsiciptowardsionDisposition { + static dispatch_once_t onceToken; + static ClientDisposition * config; + dispatch_once(&onceToken, ^{ + config = [[ClientDisposition alloc] init]; + }); + return config; +} + +- (void)clientInit { + self.canUnfoild = NO; + [Api clientInitDisposition:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + self.retryCount = 0; + NSDictionary * initData = data.data; + self.canUnfoild = ![initData[@"aModel"] boolValue]; + self.iosMobileBind = [initData[@"iosPhoneBind"] boolValue]; + + self.unfoildConfectioneryTimber = [initData[@"openBoxSwitch"] boolValue]; + self.unfoildConfectioneryTimberRestrictionPrototype = [initData[@"openBoxSwitchLevelNo"] intValue]; + ClientAtomicMatrix * model = [ClientAtomicMatrix mtowardsrixAboutImpactbasket:data.data]; + self.dispositionAbstract = model; + + NSString *json = initData[@"faceJson"][@"json"]; + NSString *deJson = [DESEncrypt decryptUseDES:json key:KeyWithType(KeyGenre_FacePwdEncode)]; + NSDictionary *faceInitData = [deJson toJSONGroal]; + model.faceInitData = faceInitData; + if (faceInitData) { + [YUMIChamberAcceptTool partowardsiciptowardsionAcceptUtensil].version = [NSString stringWithFormat:@"%@",faceInitData[@"version"]]; + [YUMIChamberAcceptTool partowardsiciptowardsionAcceptUtensil].zipMd5 = [[NSString stringWithFormat:@"%@",faceInitData[@"zipMd5"]] uppercaseString]; + [YUMIChamberAcceptTool partowardsiciptowardsionAcceptUtensil].zipUrl = [NSString stringWithFormat:@"%@",faceInitData[@"zipUrl"]]; + + [[YUMIChamberAcceptTool partowardsiciptowardsionAcceptUtensil] preserveAcceptAbstractSttowardsement:faceInitData]; + + [[YUMIChamberAcceptTool partowardsiciptowardsionAcceptUtensil] downAcceptTowardsoloudspeaker]; + } + + + NSString *serverVer = initData[@"appStoreAuditNoticeVersion"]; + NSString *shortVer = [YYUtility appVersion]; + BOOL isHigh = [NSString versionContraprohibititinguishInthecaseofmerBWStt:serverVer andNewStr:shortVer]; + model.appStoreAuditNoticeVersion = isHigh; + self.dispositionAbstract = model; + [[NSNotificationCenter defaultCenter] postNotificationName:@"reloadnewtab" object:nil]; + } else { + if (self.retryCount < 10) { + [self clientInit]; + self.retryCount+=1; + } + } + }]; +} + +- (void)accelertowardseCourageBrtowardsIntrtowardsemper { + if (timer) { + return; + } + timer = [YUMIWeakIntratemporalr scheduledTimerWithTimeInterval:30 block:^(id userInfo) { + [Api requisitionClientCourageBrtowards:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + + }]; + } userInfo:nil repeats:YES]; +} + +- (void)replacementCourageBrtowardsIntrtowardsemper { + if (timer) { + timer = nil; + } +} + + +@end diff --git a/YuMi/CustomUI/Adbvertise/AdvertiseMatrix.h b/YuMi/CustomUI/Adbvertise/AdvertiseMatrix.h new file mode 100644 index 00000000..923424ca --- /dev/null +++ b/YuMi/CustomUI/Adbvertise/AdvertiseMatrix.h @@ -0,0 +1,24 @@ +// +// AdvertiseMatrix.h +// YUMI +// +// Created by YUMI on 2022/10/31. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSInteger, SplashAbstractSkipGenre) { + SplashAbstractSkipGenrePage = 1, + SplashAbstractSkipGenreRoom = 2, + SplashAbstractSkipGenreWeb = 3, +}; + +@interface AdvertiseMatrix : NSObject +@property (nonatomic, strong) NSString *link; +@property (nonatomic, assign) SplashAbstractSkipGenre type; +@property (nonatomic, copy) NSString *pict; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/CustomUI/Adbvertise/AdvertiseMatrix.m b/YuMi/CustomUI/Adbvertise/AdvertiseMatrix.m new file mode 100644 index 00000000..ac963d28 --- /dev/null +++ b/YuMi/CustomUI/Adbvertise/AdvertiseMatrix.m @@ -0,0 +1,12 @@ +// +// AdvertiseMatrix.m +// YUMI +// +// Created by YUMI on 2022/10/31. +// + +#import "AdvertiseMatrix.h" + +@implementation AdvertiseMatrix + +@end diff --git a/YuMi/CustomUI/Adbvertise/YUMIAdIndicateTool.h b/YuMi/CustomUI/Adbvertise/YUMIAdIndicateTool.h new file mode 100644 index 00000000..41edbcc7 --- /dev/null +++ b/YuMi/CustomUI/Adbvertise/YUMIAdIndicateTool.h @@ -0,0 +1,35 @@ +// +// YMAdImageTool.h +// YUMI +// +// Created by YUMI on 2022/10/31. +// + +#import +#import "AdvertiseMatrix.h" +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIAdIndicateTool : NSObject ++ (instancetype)partowardsiciptowardsionIndictowardseUtensil; + +@property (nonatomic,assign)BOOL isImSurmount; + +- (AdvertiseMatrix *)acquireDirectoryAbstractByvirtueofConcealInMainAbout:(NSString *)link; +- (void)preserveDirectoryAbstract:(AdvertiseMatrix *)adInfo; + +- (BOOL)isAccurtowardseExistAboutAccurtowardseRoute:(NSString *)filePath; + + +- (void)acquireDirectoryvertisingIndictowardse; + + +- (void)downchamberDirectoryIndictowardseAboutWeebsite:(NSString *)imageUrl imageName:(NSString *)imageName; + + +- (void)representtowardsionInthecaseofmerIndictowardse; + + +- (NSString *)acquireAccurtowardseRouteAboutIndictowardseConstitute:(NSString *)imageName; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/CustomUI/Adbvertise/YUMIAdIndicateTool.m b/YuMi/CustomUI/Adbvertise/YUMIAdIndicateTool.m new file mode 100644 index 00000000..91a0e15e --- /dev/null +++ b/YuMi/CustomUI/Adbvertise/YUMIAdIndicateTool.m @@ -0,0 +1,132 @@ +// +// YMAdImageTool.m +// YUMI +// +// Created by YUMI on 2022/10/31. +// + +#import "YUMIAdIndicateTool.h" +#import + +#define CACHENAME @"XPUserCache" + +UIKIT_EXTERN NSString * const adImageName; +@interface YUMIAdIndicateTool () +@property (nonatomic, strong) YYCache *yyConceal; +@property (nonatomic,strong) AdvertiseMatrix *infoMatrix; +@end + +static YUMIAdIndicateTool* tool; +@implementation YUMIAdIndicateTool + ++ (instancetype)partowardsiciptowardsionIndictowardseUtensil { + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + tool = [[YUMIAdIndicateTool alloc] init]; + }); + return tool; +} + +- (instancetype)init +{ + self = [super init]; + if (self) { + self.yyConceal = [YYCache cacheWithName:CACHENAME]; + } + return self; +} + +- (AdvertiseMatrix *)acquireDirectoryAbstractByvirtueofConcealInMainAbout:(NSString *)link { + if (link.length > 0) { + if ([self.yyConceal containsObjectForKey:link]) { + return [self.yyConceal objectForKey:link]; + }else { + return nil; + } + }else { + return nil; + } + return nil; +} + + +- (void)preserveDirectoryAbstract:(AdvertiseMatrix *)adInfo { + self.infoMatrix = adInfo; + NSArray *stringArr = [adInfo.pict componentsSeparatedByString:@"/"]; + NSString *key = stringArr.lastObject; + [self.yyConceal setObject:adInfo forKey:key withBlock:^{ + + }]; + + [self acquireDirectoryvertisingIndictowardse]; +} + + +- (BOOL)isAccurtowardseExistAboutAccurtowardseRoute:(NSString *)filePath { + NSFileManager *fileManager = [NSFileManager defaultManager]; + BOOL isDirectory = FALSE; + return [fileManager fileExistsAtPath:filePath isDirectory:&isDirectory]; +} + + +- (void)acquireDirectoryvertisingIndictowardse { + + if (self.infoMatrix.pict.length > 0) { + NSString *imageUrl = self.infoMatrix.pict; + + NSArray *stringArr = [imageUrl componentsSeparatedByString:@"/"]; + NSString *imageName = stringArr.lastObject; + + + NSString *filePath = [self acquireAccurtowardseRouteAboutIndictowardseConstitute:imageName]; + BOOL isExist = [self isAccurtowardseExistAboutAccurtowardseRoute:filePath]; + if (!isExist){ + [self downchamberDirectoryIndictowardseAboutWeebsite:imageUrl imageName:imageName]; + } + }else { + [self representtowardsionInthecaseofmerIndictowardse]; + } +} + + +- (void)downchamberDirectoryIndictowardseAboutWeebsite:(NSString *)imageUrl imageName:(NSString *)imageName { + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ + + NSString *encode = [imageUrl stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]]; + NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:encode]]; + UIImage *image = [UIImage imageWithData:data]; + + NSString *filePath = [self acquireAccurtowardseRouteAboutIndictowardseConstitute:imageName]; + if ([UIImagePNGRepresentation(image) writeToFile:filePath atomically:YES]) { + [self representtowardsionInthecaseofmerIndictowardse]; + [[NSUserDefaults standardUserDefaults] setValue:imageName forKey:adImageName]; + [[NSUserDefaults standardUserDefaults] synchronize]; + }else{ + [self representtowardsionInthecaseofmerIndictowardse]; + } + + }); +} + + +- (void)representtowardsionInthecaseofmerIndictowardse { + NSString *imageName = [[NSUserDefaults standardUserDefaults] valueForKey:adImageName]; + if (imageName) { + NSString *filePath = [self acquireAccurtowardseRouteAboutIndictowardseConstitute:imageName]; + NSFileManager *fileManager = [NSFileManager defaultManager]; + [fileManager removeItemAtPath:filePath error:nil]; + } +} + + +- (NSString *)acquireAccurtowardseRouteAboutIndictowardseConstitute:(NSString *)imageName { + if (imageName) { + NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask, YES); + NSString *filePath = [[paths objectAtIndex:0] stringByAppendingPathComponent:imageName]; + + return filePath; + } + + return nil; +} +@end diff --git a/YuMi/CustomUI/Adbvertise/YUMIAdvertiseRegard.h b/YuMi/CustomUI/Adbvertise/YUMIAdvertiseRegard.h new file mode 100644 index 00000000..8b668aa0 --- /dev/null +++ b/YuMi/CustomUI/Adbvertise/YUMIAdvertiseRegard.h @@ -0,0 +1,25 @@ +// +// YMAdvertiseView.h +// YUMI +// +// Created by YUMI on 2022/10/31. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIAdvertiseRegard : UIView + + +- (void)show; + + +@property (nonatomic, copy) NSString *filePath; + +@property (nonatomic, strong) UIImage *adIndicate; + +@property (nonatomic, copy) void(^disappearHandler)(BOOL shouldJump); +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/CustomUI/Adbvertise/YUMIAdvertiseRegard.m b/YuMi/CustomUI/Adbvertise/YUMIAdvertiseRegard.m new file mode 100644 index 00000000..f08341bf --- /dev/null +++ b/YuMi/CustomUI/Adbvertise/YUMIAdvertiseRegard.m @@ -0,0 +1,194 @@ +// +// YMAdvertiseView.m +// YUMI +// +// Created by YUMI on 2022/10/31. +// + +#import "YUMIAdvertiseRegard.h" +#import "AppDelegate.h" +#import +#import +#import "YUMIMacroUitls.h" +#import "UIImage+Utils.h" +NSString *const adImageName = @"adImageName"; +NSString *const adUrl = @"adUrl"; +static int const showtime = 3; + +@interface YUMIAdvertiseRegard() + +@property (nonatomic, strong) UIImageView *adRegard; + +@property (nonatomic, strong) UIButton *computationdownBtuton; + +@property (nonatomic, strong) NSTimer *computationIntratemper; + +@property (nonatomic, assign) int count; + +@property (nonatomic, strong) UIWindow *window; + +@end + + +@implementation YUMIAdvertiseRegard + +#pragma mark - Initialize Methods + +- (instancetype)initWithFrame:(CGRect)frame { + if (self = [super initWithFrame:frame]) { + + _adRegard = [[UIImageView alloc] initWithFrame:frame]; + _adRegard.userInteractionEnabled = YES; + _adRegard.contentMode = UIViewContentModeScaleAspectFill; + _adRegard.clipsToBounds = YES; + [self addSubview:_adRegard]; + + UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(dwellBetowardsDirectoryRegardPerformance)]; + [_adRegard addGestureRecognizer:tap]; + [self addSubview:self.computationdownBtuton]; + } + return self; +} + +#pragma mark - Public Methods + +- (void)show { + + [self gcdCoundownHander]; + + UIWindow *keyWindow = [UIApplication sharedApplication].keyWindow; + [self.window.rootViewController.view addSubview:self]; + [self.window makeKeyAndVisible]; + [keyWindow makeKeyWindow]; +} + + +#pragma mark - Event Response + +- (void)dwellBetowardsDirectoryRegardPerformance { + [self prohibitiaplictowardsionearAboutJumpShank:YES]; +} + +- (void)onTicktackSkipBtuton:(UIButton *)sender { + [self prohibitiaplictowardsionearAboutJumpShank:NO]; +} + + +#pragma mark - Privite Method + +- (void)gcdCoundownHander { + __block int timeout = showtime; + dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); + dispatch_source_t _timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, queue); + dispatch_source_set_timer(_timer, DISPATCH_TIME_NOW, 1.0 * NSEC_PER_SEC, 0); + + dispatch_source_set_event_handler(_timer, ^{ + + if (timeout <= 0) { + dispatch_source_cancel(_timer); + dispatch_async(dispatch_get_main_queue(), ^{ + [self prohibitiaplictowardsionearAboutJumpShank:NO]; + }); + } else { + dispatch_async(dispatch_get_main_queue(), ^{ + if (self.computationdownBtuton) { + [self.computationdownBtuton setTitle:YMLocalizedString(@"YUMI_Advertise_View_0") forState:UIControlStateNormal]; + } + }); + timeout--; + } + }); + dispatch_resume(_timer); +} + +- (void)prohibitiaplictowardsionearAboutJumpShank:(BOOL)shouldJump { + if (self.computationIntratemper) { + [self.computationIntratemper invalidate]; + self.computationIntratemper = nil; + } + + @kWeakify(self) + [UIView animateWithDuration:0.5f animations:^{ + @kStrongify(self) + self.window.hidden = YES; + + } completion:^(BOOL finished) { + @kStrongify(self) + + [self removeFromSuperview]; + self.window = nil; + + !self.disappearHandler ?: self.disappearHandler(shouldJump); + }]; +} + + +- (NSString *)deviceName { + + size_t size; + int nR = sysctlbyname("hw.machine", NULL, &size, NULL, 0); + char *machine = (char *)malloc(size); + nR = sysctlbyname("hw.machine", machine, &size, NULL, 0); + NSString *platform = [NSString stringWithCString:machine encoding:NSUTF8StringEncoding]; + free(machine); + return platform; +} + +- (BOOL)needComputtowardsionPubescenceBtuton { + + NSString *platform = [self deviceName]; + BOOL needBtn = YES; + if ([platform isEqualToString:@"iPhone6,1"] || + [platform isEqualToString:@"iPhone6,2"] || + [platform isEqualToString:@"iPhone7,1"] || + [platform isEqualToString:@"iPhone7,2"] || + [platform isEqualToString:@"iPhone8,1"] || + [platform isEqualToString:@"iPhone8,2"] || + [platform isEqualToString:@"iPhone8,4"]) { + needBtn = NO; + } + return needBtn; +} + +#pragma mark - Setter +- (void)setFilePath:(NSString *)filePath { + _filePath = filePath; + UIImage *image = [UIImage imageWithContentsOfFile:filePath]; + _adRegard.image = [image cutIndictowardse:[UIScreen mainScreen].bounds.size]; +} + +- (void)setAdIndicate:(UIImage *)adIndicate { + _adIndicate = adIndicate; + _adRegard.image = [adIndicate cutIndictowardse:[UIScreen mainScreen].bounds.size]; +} + + +#pragma mark - Getter + +- (UIWindow *)window { + if (_window == nil) { + _window = [[UIWindow alloc] initWithFrame:UIScreen.mainScreen.bounds]; + _window.windowLevel = UIWindowLevelAlert; + _window.userInteractionEnabled = YES; + _window.rootViewController = [[UIViewController alloc] init]; + } + return _window; +} + +- (UIButton *)computationdownBtuton { + if (_computationdownBtuton == nil) { + CGFloat btnW = 60; + CGFloat btnH = 30; + _computationdownBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + _computationdownBtuton.frame = CGRectMake(KScreenWidth - btnW - 24, btnH + 10, btnW, btnH); + [_computationdownBtuton addTarget:self action:@selector(onTicktackSkipBtuton:) forControlEvents:UIControlEventTouchUpInside]; + [_computationdownBtuton setTitle:YMLocalizedString(@"YUMI_Advertise_View_1") forState:UIControlStateNormal]; + _computationdownBtuton.titleLabel.font = [UIFont systemFontOfSize:15]; + [_computationdownBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + _computationdownBtuton.backgroundColor = [UIColor colorWithRed:38 /255.0 green:38 /255.0 blue:38 /255.0 alpha:0.6]; + _computationdownBtuton.layer.cornerRadius = 4; + } + return _computationdownBtuton; +} + +@end diff --git a/YuMi/CustomUI/DJDKMIMOMColor.h b/YuMi/CustomUI/DJDKMIMOMColor.h new file mode 100644 index 00000000..44d15bdc --- /dev/null +++ b/YuMi/CustomUI/DJDKMIMOMColor.h @@ -0,0 +1,57 @@ +// +// DJDKMIMOMColor.h +// YUMI +// +// Created by YUMI on 2021/9/9. +// + +#import + +#define UIColorFromRGB(rgbValue) [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 green:((float)((rgbValue & 0xFF00) >> 8))/255.0 blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0] + +#define UIColorRGBAlpha(rgbValue,a) [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 green:((float)((rgbValue & 0xFF00) >> 8))/255.0 blue:((float)(rgbValue & 0xFF))/255.0 alpha:(a)] +NS_ASSUME_NONNULL_BEGIN + +@interface DJDKMIMOMColor : NSObject ++ (UIColor *)aplictowardsionMainPrettify; ++ (UIColor *)aplictowardsionUnderlinePrettify; ++ (UIColor *)aplictowardsionUnderlinePrettify1; ++ (UIColor *)aplictowardsionUnderlinePrettify2; + ++ (UIColor *)aplictowardsionEncouragegroundPrettify; ++ (UIColor *)aplictowardsionElementEncouragegroundPrettify; ++ (UIColor *)mainEssayPrettify; ++ (UIColor *)instantEssayPrettify; ++ (UIColor *)essayTertiusPrettify; ++ (UIColor *)dividerPrettify; + + + ++ (UIColor *)acknowledgementBtutonObliquityInititowardsePrettify; ++ (UIColor *)acknowledgementBtutonObliquityMiddlePrettify; ++ (UIColor *)acknowledgementBtutonObliquityConcludePrettify; ++ (UIColor *)acknowledgementBtutonEssayPrettify; ++ (UIColor *)revoctowardsionBtutonObliquityInititowardsePrettify; ++ (UIColor *)revoctowardsionBtutonObliquityConcludePrettify; ++ (UIColor *)revoctowardsionBtutonEssayPrettify; ++ (UIColor *)revoctowardsionBtutonOrdinaryBackgroundPrettify; ++ (UIColor *)prohibitionBtutonPrettify; ++ (UIColor *)prohibitionBtutonEssayPrettify; + + + ++ (UIColor *)precautiousEncouragegroundPrettify; ++ (UIColor *)precautiousChampionPrettify; ++ (UIColor *)precautiousCommunictowardsionPrettify; ++ (UIColor *)performanceSepartowardsorPrettify; + + ++ (UIColor *)tabbarOrdinaryPrettify; ++ (UIColor *)tabbarRegardPrettify; + ++ (UIColor *)colorAboutHexBWSttr:(NSString *)hexString; + ++ (UIColor *)introjectionEssayPrettify; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/CustomUI/DJDKMIMOMColor.m b/YuMi/CustomUI/DJDKMIMOMColor.m new file mode 100644 index 00000000..f003a0c4 --- /dev/null +++ b/YuMi/CustomUI/DJDKMIMOMColor.m @@ -0,0 +1,154 @@ +// +// ThemeColor.m +// YUMI +// +// Created by YUMI on 2021/9/9. +// + +#import "DJDKMIMOMColor.h" + +@implementation DJDKMIMOMColor ++ (UIColor *)aplictowardsionMainPrettify { + return UIColorFromRGB(0x9682FF); +} + ++ (UIColor *)aplictowardsionUnderlinePrettify { + return UIColorFromRGB(0x248CFE); +} + ++ (UIColor *)aplictowardsionUnderlinePrettify1 { + return UIColorFromRGB(0xBF36FF); +} + ++ (UIColor *)aplictowardsionUnderlinePrettify2 { + return UIColorFromRGB(0xFB486A); +} + + ++ (UIColor *)aplictowardsionEncouragegroundPrettify { + return UIColorFromRGB(0xF3F5FA); +} ++ (UIColor *)aplictowardsionElementEncouragegroundPrettify { + return UIColorFromRGB(0xFFFFFF); +} ++ (UIColor *)mainEssayPrettify { + return UIColorFromRGB(0x161958); +} ++ (UIColor *)instantEssayPrettify { + return UIColorFromRGB(0x8A8CAB); +} ++ (UIColor *)essayTertiusPrettify { + return UIColorFromRGB(0xBABBCD); +} ++ (UIColor *)dividerPrettify { + return UIColorFromRGB(0xE8E8E8); +} + + + ++ (UIColor *)acknowledgementBtutonObliquityInititowardsePrettify { + return UIColorFromRGB(0x3CAAFF); +} ++ (UIColor *)acknowledgementBtutonObliquityConcludePrettify { + return UIColorFromRGB(0xB176FF); +} ++ (UIColor *)acknowledgementBtutonEssayPrettify { + return UIColorFromRGB(0xFFFFFF); +} ++ (UIColor *)revoctowardsionBtutonObliquityInititowardsePrettify { + return UIColorFromRGB(0xCEEFFD); +} + ++ (UIColor *)acknowledgementBtutonObliquityMiddlePrettify { + return [self colorAboutHexBWSttr:@"#9CB3FF"]; +} ++ (UIColor *)revoctowardsionBtutonObliquityConcludePrettify { + return UIColorFromRGB(0xD2F4F4); +} ++ (UIColor *)revoctowardsionBtutonEssayPrettify { + return UIColorFromRGB(0x5FCCE4); +} ++ (UIColor *)revoctowardsionBtutonOrdinaryBackgroundPrettify { + return UIColorFromRGB(0xCEEFFD); +} ++ (UIColor *)prohibitionBtutonPrettify { + return UIColorFromRGB(0xCEEFFD); +} ++ (UIColor *)prohibitionBtutonEssayPrettify { + return UIColorFromRGB(0x5FCCE4); +} + + + ++ (UIColor *)precautiousEncouragegroundPrettify { + return UIColorFromRGB(0xFFFFFF); +} ++ (UIColor *)precautiousChampionPrettify { + return UIColorFromRGB(0x333333); +} ++ (UIColor *)precautiousCommunictowardsionPrettify { + return UIColorFromRGB(0x333333); +} ++ (UIColor *)performanceSepartowardsorPrettify { + return UIColorFromRGB(0xF0F0F0); +} + + ++ (UIColor *)tabbarOrdinaryPrettify { + return UIColorRGBAlpha(0x333333, 0.4); +} ++ (UIColor *)tabbarRegardPrettify { + return UIColorFromRGB(0xFFFFFF); +} + ++ (UIColor *)colorAboutHexBWSttr: (NSString *) hexString { + if (hexString.length == 0) { + return [UIColor blackColor]; + } + NSString *colorString = [[hexString stringByReplacingOccurrencesOfString: @"#" withString: @""] uppercaseString]; + CGFloat alpha, red, blue, green; + switch ([colorString length]) { + case 3: + alpha = 1.0f; + red = [self colorComponentByvirtueof: colorString start: 0 length: 1]; + green = [self colorComponentByvirtueof: colorString start: 1 length: 1]; + blue = [self colorComponentByvirtueof: colorString start: 2 length: 1]; + break; + case 4: + alpha = [self colorComponentByvirtueof: colorString start: 0 length: 1]; + red = [self colorComponentByvirtueof: colorString start: 1 length: 1]; + green = [self colorComponentByvirtueof: colorString start: 2 length: 1]; + blue = [self colorComponentByvirtueof: colorString start: 3 length: 1]; + break; + case 6: + alpha = 1.0f; + red = [self colorComponentByvirtueof: colorString start: 0 length: 2]; + green = [self colorComponentByvirtueof: colorString start: 2 length: 2]; + blue = [self colorComponentByvirtueof: colorString start: 4 length: 2]; + break; + case 8: + alpha = [self colorComponentByvirtueof: colorString start: 0 length: 2]; + red = [self colorComponentByvirtueof: colorString start: 2 length: 2]; + green = [self colorComponentByvirtueof: colorString start: 4 length: 2]; + blue = [self colorComponentByvirtueof: colorString start: 6 length: 2]; + break; + default: + [NSException raise:@"Invalid color value" format: @"Color value %@ is invalid. It should be a hex value of the form #RBG, #ARGB, #RRGGBB, or #AARRGGBB", hexString]; + break; + } + return [UIColor colorWithRed: red green: green blue: blue alpha: alpha]; +} + ++ (CGFloat) colorComponentByvirtueof: (NSString *) string start: (NSUInteger) start length: (NSUInteger) length { + NSString *substring = [string substringWithRange: NSMakeRange(start, length)]; + NSString *fullHex = length == 2 ? substring : [NSString stringWithFormat: @"%@%@", substring, substring]; + unsigned hexComponent; + [[NSScanner scannerWithString: fullHex] scanHexInt: &hexComponent]; + return hexComponent / 255.0; +} + ++ (UIColor *)introjectionEssayPrettify { + return [self colorAboutHexBWSttr:@"#1F1A4E"]; +} + +@end diff --git a/YuMi/CustomUI/InputView/Assets.xcassets/Color/Contents.json b/YuMi/CustomUI/InputView/Assets.xcassets/Color/Contents.json new file mode 100644 index 00000000..e2342777 --- /dev/null +++ b/YuMi/CustomUI/InputView/Assets.xcassets/Color/Contents.json @@ -0,0 +1,7 @@ +{"info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/CustomUI/InputView/Assets.xcassets/Contents.json b/YuMi/CustomUI/InputView/Assets.xcassets/Contents.json new file mode 100644 index 00000000..e2342777 --- /dev/null +++ b/YuMi/CustomUI/InputView/Assets.xcassets/Contents.json @@ -0,0 +1,7 @@ +{"info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/CustomUI/InputView/Assets.xcassets/input/Contents.json b/YuMi/CustomUI/InputView/Assets.xcassets/input/Contents.json new file mode 100644 index 00000000..e2342777 --- /dev/null +++ b/YuMi/CustomUI/InputView/Assets.xcassets/input/Contents.json @@ -0,0 +1,7 @@ +{"info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/CustomUI/InputView/Assets.xcassets/input/q_chat_emoji_black_normal.imageset/Contents.json b/YuMi/CustomUI/InputView/Assets.xcassets/input/q_chat_emoji_black_normal.imageset/Contents.json new file mode 100644 index 00000000..d85227be --- /dev/null +++ b/YuMi/CustomUI/InputView/Assets.xcassets/input/q_chat_emoji_black_normal.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"appearances": [{"appearance": "luminosity", "value": "dark"}], "idiom": "universal", "scale": "1x"}, {"filename": "chat_icon_emoji_black_l_normal@2x.png", "idiom": "universal", "scale": "2x"}, {"appearances": [{"appearance": "luminosity", "value": "dark"}], "filename": "chat_icon_emoji_black_l_normal@2x-1.png", "idiom": "universal", "scale": "2x"}, {"filename": "chat_icon_emoji_black_l_normal@3x.png", "idiom": "universal", "scale": "3x"}, {"appearances": [{"appearance": "luminosity", "value": "dark"}], "filename": "chat_icon_emoji_black_l_normal@3x-1.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/CustomUI/InputView/Assets.xcassets/input/q_chat_emoji_black_normal.imageset/chat_icon_emoji_black_l_normal@2x-1.png b/YuMi/CustomUI/InputView/Assets.xcassets/input/q_chat_emoji_black_normal.imageset/chat_icon_emoji_black_l_normal@2x-1.png new file mode 100644 index 00000000..fad0d7b4 Binary files /dev/null and b/YuMi/CustomUI/InputView/Assets.xcassets/input/q_chat_emoji_black_normal.imageset/chat_icon_emoji_black_l_normal@2x-1.png differ diff --git a/YuMi/CustomUI/InputView/Assets.xcassets/input/q_chat_emoji_black_normal.imageset/chat_icon_emoji_black_l_normal@2x.png b/YuMi/CustomUI/InputView/Assets.xcassets/input/q_chat_emoji_black_normal.imageset/chat_icon_emoji_black_l_normal@2x.png new file mode 100644 index 00000000..0028b945 Binary files /dev/null and b/YuMi/CustomUI/InputView/Assets.xcassets/input/q_chat_emoji_black_normal.imageset/chat_icon_emoji_black_l_normal@2x.png differ diff --git a/YuMi/CustomUI/InputView/Assets.xcassets/input/q_chat_emoji_black_normal.imageset/chat_icon_emoji_black_l_normal@3x-1.png b/YuMi/CustomUI/InputView/Assets.xcassets/input/q_chat_emoji_black_normal.imageset/chat_icon_emoji_black_l_normal@3x-1.png new file mode 100644 index 00000000..4ef66d2c Binary files /dev/null and b/YuMi/CustomUI/InputView/Assets.xcassets/input/q_chat_emoji_black_normal.imageset/chat_icon_emoji_black_l_normal@3x-1.png differ diff --git a/YuMi/CustomUI/InputView/Assets.xcassets/input/q_chat_emoji_black_normal.imageset/chat_icon_emoji_black_l_normal@3x.png b/YuMi/CustomUI/InputView/Assets.xcassets/input/q_chat_emoji_black_normal.imageset/chat_icon_emoji_black_l_normal@3x.png new file mode 100644 index 00000000..84a013c0 Binary files /dev/null and b/YuMi/CustomUI/InputView/Assets.xcassets/input/q_chat_emoji_black_normal.imageset/chat_icon_emoji_black_l_normal@3x.png differ diff --git a/YuMi/CustomUI/InputView/Assets.xcassets/input/q_chat_extend_black_normal.imageset/Contents.json b/YuMi/CustomUI/InputView/Assets.xcassets/input/q_chat_extend_black_normal.imageset/Contents.json new file mode 100644 index 00000000..79871e16 --- /dev/null +++ b/YuMi/CustomUI/InputView/Assets.xcassets/input/q_chat_extend_black_normal.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"appearances": [{"appearance": "luminosity", "value": "dark"}], "idiom": "universal", "scale": "1x"}, {"filename": "chat_icon_more_black_l_normal@2x.png", "idiom": "universal", "scale": "2x"}, {"appearances": [{"appearance": "luminosity", "value": "dark"}], "filename": "chat_icon_more_black_l_normal@2x-1.png", "idiom": "universal", "scale": "2x"}, {"filename": "chat_icon_more_black_l_normal@3x.png", "idiom": "universal", "scale": "3x"}, {"appearances": [{"appearance": "luminosity", "value": "dark"}], "filename": "chat_icon_more_black_l_normal@3x-1.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/CustomUI/InputView/Assets.xcassets/input/q_chat_extend_black_normal.imageset/chat_icon_more_black_l_normal@2x-1.png b/YuMi/CustomUI/InputView/Assets.xcassets/input/q_chat_extend_black_normal.imageset/chat_icon_more_black_l_normal@2x-1.png new file mode 100644 index 00000000..9a304e4a Binary files /dev/null and b/YuMi/CustomUI/InputView/Assets.xcassets/input/q_chat_extend_black_normal.imageset/chat_icon_more_black_l_normal@2x-1.png differ diff --git a/YuMi/CustomUI/InputView/Assets.xcassets/input/q_chat_extend_black_normal.imageset/chat_icon_more_black_l_normal@2x.png b/YuMi/CustomUI/InputView/Assets.xcassets/input/q_chat_extend_black_normal.imageset/chat_icon_more_black_l_normal@2x.png new file mode 100644 index 00000000..9092a911 Binary files /dev/null and b/YuMi/CustomUI/InputView/Assets.xcassets/input/q_chat_extend_black_normal.imageset/chat_icon_more_black_l_normal@2x.png differ diff --git a/YuMi/CustomUI/InputView/Assets.xcassets/input/q_chat_extend_black_normal.imageset/chat_icon_more_black_l_normal@3x-1.png b/YuMi/CustomUI/InputView/Assets.xcassets/input/q_chat_extend_black_normal.imageset/chat_icon_more_black_l_normal@3x-1.png new file mode 100644 index 00000000..d7fea729 Binary files /dev/null and b/YuMi/CustomUI/InputView/Assets.xcassets/input/q_chat_extend_black_normal.imageset/chat_icon_more_black_l_normal@3x-1.png differ diff --git a/YuMi/CustomUI/InputView/Assets.xcassets/input/q_chat_extend_black_normal.imageset/chat_icon_more_black_l_normal@3x.png b/YuMi/CustomUI/InputView/Assets.xcassets/input/q_chat_extend_black_normal.imageset/chat_icon_more_black_l_normal@3x.png new file mode 100644 index 00000000..b1c46d8c Binary files /dev/null and b/YuMi/CustomUI/InputView/Assets.xcassets/input/q_chat_extend_black_normal.imageset/chat_icon_more_black_l_normal@3x.png differ diff --git a/YuMi/CustomUI/InputView/Assets.xcassets/input/q_chat_keyboard_black_normal.imageset/Contents.json b/YuMi/CustomUI/InputView/Assets.xcassets/input/q_chat_keyboard_black_normal.imageset/Contents.json new file mode 100644 index 00000000..6ea19768 --- /dev/null +++ b/YuMi/CustomUI/InputView/Assets.xcassets/input/q_chat_keyboard_black_normal.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"appearances": [{"appearance": "luminosity", "value": "dark"}], "idiom": "universal", "scale": "1x"}, {"filename": "chat_icon_keyboard_black_l_normal@2x.png", "idiom": "universal", "scale": "2x"}, {"appearances": [{"appearance": "luminosity", "value": "dark"}], "filename": "chat_icon_keyboard_black_l_normal@2x-1.png", "idiom": "universal", "scale": "2x"}, {"filename": "chat_icon_keyboard_black_l_normal@3x.png", "idiom": "universal", "scale": "3x"}, {"appearances": [{"appearance": "luminosity", "value": "dark"}], "filename": "chat_icon_keyboard_black_l_normal@3x-1.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/CustomUI/InputView/Assets.xcassets/input/q_chat_keyboard_black_normal.imageset/chat_icon_keyboard_black_l_normal@2x-1.png b/YuMi/CustomUI/InputView/Assets.xcassets/input/q_chat_keyboard_black_normal.imageset/chat_icon_keyboard_black_l_normal@2x-1.png new file mode 100644 index 00000000..e991f616 Binary files /dev/null and b/YuMi/CustomUI/InputView/Assets.xcassets/input/q_chat_keyboard_black_normal.imageset/chat_icon_keyboard_black_l_normal@2x-1.png differ diff --git a/YuMi/CustomUI/InputView/Assets.xcassets/input/q_chat_keyboard_black_normal.imageset/chat_icon_keyboard_black_l_normal@2x.png b/YuMi/CustomUI/InputView/Assets.xcassets/input/q_chat_keyboard_black_normal.imageset/chat_icon_keyboard_black_l_normal@2x.png new file mode 100644 index 00000000..3fcf613b Binary files /dev/null and b/YuMi/CustomUI/InputView/Assets.xcassets/input/q_chat_keyboard_black_normal.imageset/chat_icon_keyboard_black_l_normal@2x.png differ diff --git a/YuMi/CustomUI/InputView/Assets.xcassets/input/q_chat_keyboard_black_normal.imageset/chat_icon_keyboard_black_l_normal@3x-1.png b/YuMi/CustomUI/InputView/Assets.xcassets/input/q_chat_keyboard_black_normal.imageset/chat_icon_keyboard_black_l_normal@3x-1.png new file mode 100644 index 00000000..fd03b3ca Binary files /dev/null and b/YuMi/CustomUI/InputView/Assets.xcassets/input/q_chat_keyboard_black_normal.imageset/chat_icon_keyboard_black_l_normal@3x-1.png differ diff --git a/YuMi/CustomUI/InputView/Assets.xcassets/input/q_chat_keyboard_black_normal.imageset/chat_icon_keyboard_black_l_normal@3x.png b/YuMi/CustomUI/InputView/Assets.xcassets/input/q_chat_keyboard_black_normal.imageset/chat_icon_keyboard_black_l_normal@3x.png new file mode 100644 index 00000000..e0f45e62 Binary files /dev/null and b/YuMi/CustomUI/InputView/Assets.xcassets/input/q_chat_keyboard_black_normal.imageset/chat_icon_keyboard_black_l_normal@3x.png differ diff --git a/YuMi/CustomUI/InputView/Assets.xcassets/input/q_chat_voice_black_normal.imageset/Contents.json b/YuMi/CustomUI/InputView/Assets.xcassets/input/q_chat_voice_black_normal.imageset/Contents.json new file mode 100644 index 00000000..38c70b13 --- /dev/null +++ b/YuMi/CustomUI/InputView/Assets.xcassets/input/q_chat_voice_black_normal.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"appearances": [{"appearance": "luminosity", "value": "dark"}], "idiom": "universal", "scale": "1x"}, {"filename": "chat_icon_voice@2x.png", "idiom": "universal", "scale": "2x"}, {"appearances": [{"appearance": "luminosity", "value": "dark"}], "filename": "chat_icon_voice_dark@2x.png", "idiom": "universal", "scale": "2x"}, {"filename": "chat_icon_voice@3x.png", "idiom": "universal", "scale": "3x"}, {"appearances": [{"appearance": "luminosity", "value": "dark"}], "filename": "chat_icon_voice_dark@3x.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/CustomUI/InputView/Assets.xcassets/input/q_chat_voice_black_normal.imageset/chat_icon_voice@2x.png b/YuMi/CustomUI/InputView/Assets.xcassets/input/q_chat_voice_black_normal.imageset/chat_icon_voice@2x.png new file mode 100644 index 00000000..d366fe8b Binary files /dev/null and b/YuMi/CustomUI/InputView/Assets.xcassets/input/q_chat_voice_black_normal.imageset/chat_icon_voice@2x.png differ diff --git a/YuMi/CustomUI/InputView/Assets.xcassets/input/q_chat_voice_black_normal.imageset/chat_icon_voice@3x.png b/YuMi/CustomUI/InputView/Assets.xcassets/input/q_chat_voice_black_normal.imageset/chat_icon_voice@3x.png new file mode 100644 index 00000000..cdb0d958 Binary files /dev/null and b/YuMi/CustomUI/InputView/Assets.xcassets/input/q_chat_voice_black_normal.imageset/chat_icon_voice@3x.png differ diff --git a/YuMi/CustomUI/InputView/Assets.xcassets/input/q_chat_voice_black_normal.imageset/chat_icon_voice_dark@2x.png b/YuMi/CustomUI/InputView/Assets.xcassets/input/q_chat_voice_black_normal.imageset/chat_icon_voice_dark@2x.png new file mode 100644 index 00000000..4986e668 Binary files /dev/null and b/YuMi/CustomUI/InputView/Assets.xcassets/input/q_chat_voice_black_normal.imageset/chat_icon_voice_dark@2x.png differ diff --git a/YuMi/CustomUI/InputView/Assets.xcassets/input/q_chat_voice_black_normal.imageset/chat_icon_voice_dark@3x.png b/YuMi/CustomUI/InputView/Assets.xcassets/input/q_chat_voice_black_normal.imageset/chat_icon_voice_dark@3x.png new file mode 100644 index 00000000..e8d65ba5 Binary files /dev/null and b/YuMi/CustomUI/InputView/Assets.xcassets/input/q_chat_voice_black_normal.imageset/chat_icon_voice_dark@3x.png differ diff --git a/YuMi/CustomUI/InputView/Assets.xcassets/input/q_emotion_delete.imageset/Contents.json b/YuMi/CustomUI/InputView/Assets.xcassets/input/q_emotion_delete.imageset/Contents.json new file mode 100644 index 00000000..355f10b1 --- /dev/null +++ b/YuMi/CustomUI/InputView/Assets.xcassets/input/q_emotion_delete.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"filename": "compose_emotion_delete_highlighted.png", "idiom": "universal", "scale": "2x"}, {"filename": "compose_emotion_delete_highlighted-1.png", "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/CustomUI/InputView/Assets.xcassets/input/q_emotion_delete.imageset/compose_emotion_delete_highlighted-1.png b/YuMi/CustomUI/InputView/Assets.xcassets/input/q_emotion_delete.imageset/compose_emotion_delete_highlighted-1.png new file mode 100644 index 00000000..f2cea355 Binary files /dev/null and b/YuMi/CustomUI/InputView/Assets.xcassets/input/q_emotion_delete.imageset/compose_emotion_delete_highlighted-1.png differ diff --git a/YuMi/CustomUI/InputView/Assets.xcassets/input/q_emotion_delete.imageset/compose_emotion_delete_highlighted.png b/YuMi/CustomUI/InputView/Assets.xcassets/input/q_emotion_delete.imageset/compose_emotion_delete_highlighted.png new file mode 100644 index 00000000..9387ab0e Binary files /dev/null and b/YuMi/CustomUI/InputView/Assets.xcassets/input/q_emotion_delete.imageset/compose_emotion_delete_highlighted.png differ diff --git a/YuMi/CustomUI/InputView/Assets.xcassets/q_white_btn.imageset/Contents.json b/YuMi/CustomUI/InputView/Assets.xcassets/q_white_btn.imageset/Contents.json new file mode 100644 index 00000000..31fed830 --- /dev/null +++ b/YuMi/CustomUI/InputView/Assets.xcassets/q_white_btn.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"appearances": [{"appearance": "luminosity", "value": "dark"}], "idiom": "universal", "scale": "1x"}, {"filename": "white_rect.png", "idiom": "universal", "scale": "2x"}, {"appearances": [{"appearance": "luminosity", "value": "dark"}], "filename": "white_btn_dark.png", "idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}, {"appearances": [{"appearance": "luminosity", "value": "dark"}], "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/CustomUI/InputView/Assets.xcassets/q_white_btn.imageset/white_btn_dark.png b/YuMi/CustomUI/InputView/Assets.xcassets/q_white_btn.imageset/white_btn_dark.png new file mode 100644 index 00000000..41afdfe4 Binary files /dev/null and b/YuMi/CustomUI/InputView/Assets.xcassets/q_white_btn.imageset/white_btn_dark.png differ diff --git a/YuMi/CustomUI/InputView/Assets.xcassets/q_white_btn.imageset/white_rect.png b/YuMi/CustomUI/InputView/Assets.xcassets/q_white_btn.imageset/white_rect.png new file mode 100644 index 00000000..193e45de Binary files /dev/null and b/YuMi/CustomUI/InputView/Assets.xcassets/q_white_btn.imageset/white_rect.png differ diff --git a/YuMi/CustomUI/InputView/Assets.xcassets/q_white_input_btn.imageset/Contents.json b/YuMi/CustomUI/InputView/Assets.xcassets/q_white_input_btn.imageset/Contents.json new file mode 100644 index 00000000..7d331812 --- /dev/null +++ b/YuMi/CustomUI/InputView/Assets.xcassets/q_white_input_btn.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"appearances": [{"appearance": "luminosity", "value": "dark"}], "idiom": "universal", "scale": "1x"}, {"filename": "white_rect.png", "idiom": "universal", "scale": "2x"}, {"appearances": [{"appearance": "luminosity", "value": "dark"}], "filename": "white_input_btn_dark.png", "idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}, {"appearances": [{"appearance": "luminosity", "value": "dark"}], "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/CustomUI/InputView/Assets.xcassets/q_white_input_btn.imageset/white_input_btn_dark.png b/YuMi/CustomUI/InputView/Assets.xcassets/q_white_input_btn.imageset/white_input_btn_dark.png new file mode 100644 index 00000000..b475825f Binary files /dev/null and b/YuMi/CustomUI/InputView/Assets.xcassets/q_white_input_btn.imageset/white_input_btn_dark.png differ diff --git a/YuMi/CustomUI/InputView/Assets.xcassets/q_white_input_btn.imageset/white_rect.png b/YuMi/CustomUI/InputView/Assets.xcassets/q_white_input_btn.imageset/white_rect.png new file mode 100644 index 00000000..193e45de Binary files /dev/null and b/YuMi/CustomUI/InputView/Assets.xcassets/q_white_input_btn.imageset/white_rect.png differ diff --git a/YuMi/CustomUI/InputView/Assets.xcassets/q_white_input_press_btn.imageset/Contents.json b/YuMi/CustomUI/InputView/Assets.xcassets/q_white_input_press_btn.imageset/Contents.json new file mode 100644 index 00000000..2f04e003 --- /dev/null +++ b/YuMi/CustomUI/InputView/Assets.xcassets/q_white_input_press_btn.imageset/Contents.json @@ -0,0 +1,7 @@ +{"images": [{"idiom": "universal", "scale": "1x"}, {"appearances": [{"appearance": "luminosity", "value": "dark"}], "idiom": "universal", "scale": "1x"}, {"filename": "white_input_press_btn.png", "idiom": "universal", "scale": "2x"}, {"appearances": [{"appearance": "luminosity", "value": "dark"}], "filename": "white_input_press_btn_dark.png", "idiom": "universal", "scale": "2x"}, {"idiom": "universal", "scale": "3x"}, {"appearances": [{"appearance": "luminosity", "value": "dark"}], "idiom": "universal", "scale": "3x"}], "info": {"author": "xcode", "version": 1}} + + + + + + diff --git a/YuMi/CustomUI/InputView/Assets.xcassets/q_white_input_press_btn.imageset/white_input_press_btn.png b/YuMi/CustomUI/InputView/Assets.xcassets/q_white_input_press_btn.imageset/white_input_press_btn.png new file mode 100644 index 00000000..8478d580 Binary files /dev/null and b/YuMi/CustomUI/InputView/Assets.xcassets/q_white_input_press_btn.imageset/white_input_press_btn.png differ diff --git a/YuMi/CustomUI/InputView/Assets.xcassets/q_white_input_press_btn.imageset/white_input_press_btn_dark.png b/YuMi/CustomUI/InputView/Assets.xcassets/q_white_input_press_btn.imageset/white_input_press_btn_dark.png new file mode 100644 index 00000000..0833fdb2 Binary files /dev/null and b/YuMi/CustomUI/InputView/Assets.xcassets/q_white_input_press_btn.imageset/white_input_press_btn_dark.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoj_s_normal@2x.png b/YuMi/CustomUI/InputView/Emoji/emoj_s_normal@2x.png new file mode 100755 index 00000000..897ad0cb Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoj_s_normal@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoj_s_pressed@2x.png b/YuMi/CustomUI/InputView/Emoji/emoj_s_pressed@2x.png new file mode 100755 index 00000000..c51bc399 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoj_s_pressed@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji.xml b/YuMi/CustomUI/InputView/Emoji/emoji.xml new file mode 100755 index 00000000..0637c204 --- /dev/null +++ b/YuMi/CustomUI/InputView/Emoji/emoji.xml @@ -0,0 +1,135 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_00@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_00@2x.png new file mode 100755 index 00000000..dd5dd8d7 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_00@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_01@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_01@2x.png new file mode 100755 index 00000000..4f332896 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_01@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_02@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_02@2x.png new file mode 100755 index 00000000..9dc1d119 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_02@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_03@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_03@2x.png new file mode 100755 index 00000000..528109ca Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_03@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_04@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_04@2x.png new file mode 100755 index 00000000..0983afa1 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_04@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_05@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_05@2x.png new file mode 100755 index 00000000..beb98622 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_05@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_06@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_06@2x.png new file mode 100755 index 00000000..c973e82a Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_06@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_07@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_07@2x.png new file mode 100755 index 00000000..d469b806 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_07@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_08@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_08@2x.png new file mode 100755 index 00000000..485919c4 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_08@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_09@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_09@2x.png new file mode 100755 index 00000000..12225206 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_09@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_100@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_100@2x.png new file mode 100755 index 00000000..07af5c3d Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_100@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_101@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_101@2x.png new file mode 100755 index 00000000..cc7eea4b Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_101@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_102@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_102@2x.png new file mode 100755 index 00000000..e919b07d Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_102@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_103@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_103@2x.png new file mode 100755 index 00000000..dd515ac2 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_103@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_104@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_104@2x.png new file mode 100755 index 00000000..e602afde Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_104@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_105@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_105@2x.png new file mode 100755 index 00000000..50aacba2 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_105@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_106@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_106@2x.png new file mode 100755 index 00000000..61d3e7c6 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_106@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_107@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_107@2x.png new file mode 100755 index 00000000..446f2d71 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_107@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_108@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_108@2x.png new file mode 100755 index 00000000..b9f3f721 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_108@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_109@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_109@2x.png new file mode 100755 index 00000000..1a84c7a1 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_109@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_10@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_10@2x.png new file mode 100755 index 00000000..9a709d8a Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_10@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_110@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_110@2x.png new file mode 100755 index 00000000..983468b8 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_110@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_111@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_111@2x.png new file mode 100755 index 00000000..5eecf6e1 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_111@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_112@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_112@2x.png new file mode 100755 index 00000000..8865949a Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_112@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_113@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_113@2x.png new file mode 100755 index 00000000..22899ba7 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_113@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_114@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_114@2x.png new file mode 100755 index 00000000..8470f72b Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_114@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_115@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_115@2x.png new file mode 100755 index 00000000..b47fc94a Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_115@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_116@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_116@2x.png new file mode 100755 index 00000000..4f332896 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_116@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_117@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_117@2x.png new file mode 100755 index 00000000..45b1608e Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_117@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_118@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_118@2x.png new file mode 100755 index 00000000..45d03d71 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_118@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_119@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_119@2x.png new file mode 100755 index 00000000..d85b88f4 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_119@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_11@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_11@2x.png new file mode 100755 index 00000000..bb542c22 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_11@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_120@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_120@2x.png new file mode 100755 index 00000000..c207d208 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_120@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_121@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_121@2x.png new file mode 100755 index 00000000..b0149b42 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_121@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_122@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_122@2x.png new file mode 100755 index 00000000..215ac5cc Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_122@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_123@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_123@2x.png new file mode 100755 index 00000000..c91f406e Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_123@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_124@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_124@2x.png new file mode 100755 index 00000000..dc0edcf6 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_124@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_125@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_125@2x.png new file mode 100755 index 00000000..20a8679d Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_125@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_126@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_126@2x.png new file mode 100755 index 00000000..25a9174c Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_126@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_127@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_127@2x.png new file mode 100755 index 00000000..254ee819 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_127@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_128@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_128@2x.png new file mode 100755 index 00000000..3a77bc18 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_128@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_129@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_129@2x.png new file mode 100755 index 00000000..169c0c9e Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_129@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_12@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_12@2x.png new file mode 100755 index 00000000..b938ab41 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_12@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_130@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_130@2x.png new file mode 100755 index 00000000..ae5b1ec4 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_130@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_131@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_131@2x.png new file mode 100755 index 00000000..bfa80445 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_131@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_132@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_132@2x.png new file mode 100755 index 00000000..6ca60024 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_132@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_133@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_133@2x.png new file mode 100755 index 00000000..9fb0e74e Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_133@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_134@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_134@2x.png new file mode 100755 index 00000000..7ad7a7ab Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_134@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_135@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_135@2x.png new file mode 100755 index 00000000..40ca36e0 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_135@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_136@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_136@2x.png new file mode 100755 index 00000000..51012a04 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_136@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_137@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_137@2x.png new file mode 100755 index 00000000..4915d13e Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_137@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_138@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_138@2x.png new file mode 100755 index 00000000..c541baef Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_138@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_139@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_139@2x.png new file mode 100755 index 00000000..eb4ab8fd Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_139@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_13@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_13@2x.png new file mode 100755 index 00000000..672585d4 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_13@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_140@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_140@2x.png new file mode 100755 index 00000000..23e285e7 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_140@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_141@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_141@2x.png new file mode 100755 index 00000000..eecfa585 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_141@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_142@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_142@2x.png new file mode 100755 index 00000000..4506b64e Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_142@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_143@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_143@2x.png new file mode 100755 index 00000000..955131cf Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_143@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_144@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_144@2x.png new file mode 100755 index 00000000..32f8f8c1 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_144@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_145@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_145@2x.png new file mode 100755 index 00000000..d0d10118 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_145@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_146@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_146@2x.png new file mode 100755 index 00000000..6b89422b Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_146@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_147@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_147@2x.png new file mode 100755 index 00000000..03259c68 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_147@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_148@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_148@2x.png new file mode 100755 index 00000000..23ad740d Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_148@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_149@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_149@2x.png new file mode 100755 index 00000000..73aabfa9 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_149@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_14@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_14@2x.png new file mode 100755 index 00000000..8c697c5c Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_14@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_150@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_150@2x.png new file mode 100755 index 00000000..9acd173d Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_150@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_151@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_151@2x.png new file mode 100755 index 00000000..cf26bac0 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_151@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_152@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_152@2x.png new file mode 100755 index 00000000..a083eae9 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_152@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_15@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_15@2x.png new file mode 100755 index 00000000..f67d2f43 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_15@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_160@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_160@2x.png new file mode 100755 index 00000000..104b8e77 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_160@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_161@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_161@2x.png new file mode 100755 index 00000000..3bb2c09f Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_161@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_162@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_162@2x.png new file mode 100755 index 00000000..22878157 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_162@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_163@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_163@2x.png new file mode 100755 index 00000000..f60ddff3 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_163@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_164@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_164@2x.png new file mode 100755 index 00000000..488d3f32 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_164@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_165@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_165@2x.png new file mode 100755 index 00000000..a104c057 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_165@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_166@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_166@2x.png new file mode 100755 index 00000000..88b2089c Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_166@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_16@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_16@2x.png new file mode 100755 index 00000000..7cf8fc6d Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_16@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_17@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_17@2x.png new file mode 100755 index 00000000..7392218e Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_17@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_18@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_18@2x.png new file mode 100755 index 00000000..ed51d591 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_18@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_19@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_19@2x.png new file mode 100755 index 00000000..ce7b1f3e Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_19@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_200@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_200@2x.png new file mode 100755 index 00000000..26969e15 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_200@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_20@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_20@2x.png new file mode 100755 index 00000000..b8425bdc Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_20@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_21@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_21@2x.png new file mode 100755 index 00000000..80c188ac Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_21@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_22@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_22@2x.png new file mode 100755 index 00000000..4e01c845 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_22@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_23@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_23@2x.png new file mode 100755 index 00000000..b3c17e92 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_23@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_24@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_24@2x.png new file mode 100755 index 00000000..ab29f320 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_24@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_25@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_25@2x.png new file mode 100755 index 00000000..bbd0d020 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_25@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_26@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_26@2x.png new file mode 100755 index 00000000..000649f4 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_26@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_27@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_27@2x.png new file mode 100755 index 00000000..da48ca5d Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_27@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_28@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_28@2x.png new file mode 100755 index 00000000..8b2d6fdc Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_28@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_29@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_29@2x.png new file mode 100755 index 00000000..d9f0b4e4 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_29@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_30@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_30@2x.png new file mode 100755 index 00000000..f35f8785 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_30@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_31@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_31@2x.png new file mode 100755 index 00000000..9f463977 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_31@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_32@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_32@2x.png new file mode 100755 index 00000000..a740ba8b Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_32@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_33@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_33@2x.png new file mode 100755 index 00000000..99525193 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_33@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_34@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_34@2x.png new file mode 100755 index 00000000..fdc51c74 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_34@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_35@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_35@2x.png new file mode 100755 index 00000000..f85aaad6 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_35@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_36@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_36@2x.png new file mode 100755 index 00000000..ee6c25f3 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_36@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_37@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_37@2x.png new file mode 100755 index 00000000..b0043280 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_37@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_38@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_38@2x.png new file mode 100755 index 00000000..8de34969 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_38@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_39@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_39@2x.png new file mode 100755 index 00000000..769cc2f1 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_39@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_40@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_40@2x.png new file mode 100755 index 00000000..1081c1b8 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_40@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_41@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_41@2x.png new file mode 100755 index 00000000..f607cf62 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_41@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_42@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_42@2x.png new file mode 100755 index 00000000..9b90dc3f Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_42@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_43@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_43@2x.png new file mode 100755 index 00000000..4cd324eb Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_43@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_44@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_44@2x.png new file mode 100755 index 00000000..38ca0557 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_44@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_45@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_45@2x.png new file mode 100755 index 00000000..05261cb9 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_45@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_46@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_46@2x.png new file mode 100755 index 00000000..3161ab0c Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_46@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_47@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_47@2x.png new file mode 100755 index 00000000..11b6213b Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_47@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_48@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_48@2x.png new file mode 100755 index 00000000..eaf2772a Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_48@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_49@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_49@2x.png new file mode 100755 index 00000000..a45f717c Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_49@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_50@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_50@2x.png new file mode 100755 index 00000000..fb8ca09a Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_50@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_51@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_51@2x.png new file mode 100755 index 00000000..a0f9f738 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_51@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_52@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_52@2x.png new file mode 100755 index 00000000..076aa9f7 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_52@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_53@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_53@2x.png new file mode 100755 index 00000000..b7eaedf3 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_53@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_54@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_54@2x.png new file mode 100755 index 00000000..f242ab93 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_54@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_55@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_55@2x.png new file mode 100755 index 00000000..76d1c4f7 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_55@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_56@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_56@2x.png new file mode 100755 index 00000000..6f213565 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_56@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_57@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_57@2x.png new file mode 100755 index 00000000..6ca60024 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_57@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_58@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_58@2x.png new file mode 100755 index 00000000..75856426 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_58@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_59@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_59@2x.png new file mode 100755 index 00000000..437c2260 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_59@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_60@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_60@2x.png new file mode 100755 index 00000000..4b968da1 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_60@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_61@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_61@2x.png new file mode 100755 index 00000000..b94f50d5 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_61@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_62@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_62@2x.png new file mode 100755 index 00000000..4d094a39 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_62@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_63@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_63@2x.png new file mode 100755 index 00000000..f8724089 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_63@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_64@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_64@2x.png new file mode 100755 index 00000000..c15d6159 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_64@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_65@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_65@2x.png new file mode 100755 index 00000000..62d134ef Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_65@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_66@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_66@2x.png new file mode 100755 index 00000000..bac9d51a Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_66@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_67@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_67@2x.png new file mode 100755 index 00000000..c6498a90 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_67@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_68@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_68@2x.png new file mode 100755 index 00000000..cfb8a6d9 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_68@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_69@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_69@2x.png new file mode 100755 index 00000000..0bbeeb84 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_69@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_70@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_70@2x.png new file mode 100755 index 00000000..f8eb4195 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_70@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_71@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_71@2x.png new file mode 100755 index 00000000..3e93db96 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_71@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_72@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_72@2x.png new file mode 100755 index 00000000..a41712dc Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_72@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_73@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_73@2x.png new file mode 100755 index 00000000..72b33de1 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_73@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_74@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_74@2x.png new file mode 100755 index 00000000..14f33155 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_74@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_75@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_75@2x.png new file mode 100755 index 00000000..8275f639 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_75@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_76@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_76@2x.png new file mode 100755 index 00000000..8455b1e7 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_76@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_77@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_77@2x.png new file mode 100755 index 00000000..f0bc20ff Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_77@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_78@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_78@2x.png new file mode 100755 index 00000000..8ba315c0 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_78@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_79@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_79@2x.png new file mode 100755 index 00000000..d7d7fe1b Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_79@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_80@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_80@2x.png new file mode 100755 index 00000000..7fbb9993 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_80@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_81@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_81@2x.png new file mode 100755 index 00000000..a2c4825a Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_81@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_82@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_82@2x.png new file mode 100755 index 00000000..5fdde7d1 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_82@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_83@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_83@2x.png new file mode 100755 index 00000000..f0a62f6e Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_83@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_84@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_84@2x.png new file mode 100755 index 00000000..452631f9 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_84@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_85@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_85@2x.png new file mode 100755 index 00000000..7992ddd6 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_85@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_86@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_86@2x.png new file mode 100755 index 00000000..c41ea897 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_86@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_87@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_87@2x.png new file mode 100755 index 00000000..1df97576 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_87@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_88@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_88@2x.png new file mode 100755 index 00000000..54abef09 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_88@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_89@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_89@2x.png new file mode 100755 index 00000000..b8d716ef Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_89@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_90@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_90@2x.png new file mode 100755 index 00000000..c0203eb6 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_90@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_91@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_91@2x.png new file mode 100755 index 00000000..56b89334 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_91@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_92@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_92@2x.png new file mode 100755 index 00000000..ac8796bb Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_92@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_93@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_93@2x.png new file mode 100755 index 00000000..48ac0da5 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_93@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_94@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_94@2x.png new file mode 100755 index 00000000..053912bf Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_94@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_95@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_95@2x.png new file mode 100755 index 00000000..43e29646 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_95@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_96@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_96@2x.png new file mode 100755 index 00000000..5d9c02f8 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_96@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_97@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_97@2x.png new file mode 100755 index 00000000..006e0b6f Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_97@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_98@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_98@2x.png new file mode 100755 index 00000000..c5da70db Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_98@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_99@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_99@2x.png new file mode 100755 index 00000000..1624c51c Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_99@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_del_normal@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_del_normal@2x.png new file mode 100755 index 00000000..fd4fb6db Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_del_normal@2x.png differ diff --git a/YuMi/CustomUI/InputView/Emoji/emoji_del_pressed@2x.png b/YuMi/CustomUI/InputView/Emoji/emoji_del_pressed@2x.png new file mode 100755 index 00000000..538ee329 Binary files /dev/null and b/YuMi/CustomUI/InputView/Emoji/emoji_del_pressed@2x.png differ diff --git a/YuMi/CustomUI/InputView/InputView/MHTAppearanceIndicateMatrix.h b/YuMi/CustomUI/InputView/InputView/MHTAppearanceIndicateMatrix.h new file mode 100644 index 00000000..141737e0 --- /dev/null +++ b/YuMi/CustomUI/InputView/InputView/MHTAppearanceIndicateMatrix.h @@ -0,0 +1,21 @@ +// +// MHTAppearanceIndicateMatrix.h +// YUMI +// +// Created by YUMI on 2023/1/11. +// + +#import +#import +NS_ASSUME_NONNULL_BEGIN + +@interface MHTAppearanceIndicateMatrix : NSObject +@property (nonatomic,assign) BOOL isSelect; +@property (nonatomic,assign) BOOL isOrigin; +@property (nonatomic,strong) TZAssetModel *assetInfo; +@property (nonatomic,strong) UIImage *originImage; +@property (nonatomic,strong) UIImage *compressImage; +@property (nonatomic,assign) NSInteger number; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/CustomUI/InputView/InputView/MHTAppearanceIndicateMatrix.m b/YuMi/CustomUI/InputView/InputView/MHTAppearanceIndicateMatrix.m new file mode 100644 index 00000000..f1080cc6 --- /dev/null +++ b/YuMi/CustomUI/InputView/InputView/MHTAppearanceIndicateMatrix.m @@ -0,0 +1,12 @@ +// +// MHTAppearanceIndicateMatrix.m +// YUMI +// +// Created by YUMI on 2023/1/11. +// + +#import "MHTAppearanceIndicateMatrix.h" + +@implementation MHTAppearanceIndicateMatrix + +@end diff --git a/YuMi/CustomUI/InputView/InputView/MHTESentimentIndicateRegard.h b/YuMi/CustomUI/InputView/InputView/MHTESentimentIndicateRegard.h new file mode 100644 index 00000000..d43558c5 --- /dev/null +++ b/YuMi/CustomUI/InputView/InputView/MHTESentimentIndicateRegard.h @@ -0,0 +1,16 @@ +// +// MHTESentimentIndicateRegard.h +// YUMI +// +// Created by YUMI on 2022/8/17. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface MHTESentimentIndicateRegard : UIImageView +@property (nonatomic, strong) NSString *exhibitionEssay; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/CustomUI/InputView/InputView/MHTESentimentIndicateRegard.m b/YuMi/CustomUI/InputView/InputView/MHTESentimentIndicateRegard.m new file mode 100644 index 00000000..c767e280 --- /dev/null +++ b/YuMi/CustomUI/InputView/InputView/MHTESentimentIndicateRegard.m @@ -0,0 +1,14 @@ +// +// MHTESentimentIndicateRegard.m +// YUMI +// +// Created by YUMI on 2022/8/17. +// + +#import "MHTESentimentIndicateRegard.h" + +@implementation MHTESentimentIndicateRegard + + + +@end diff --git a/YuMi/CustomUI/InputView/InputView/MHTExtendDirectorateRegard.h b/YuMi/CustomUI/InputView/InputView/MHTExtendDirectorateRegard.h new file mode 100755 index 00000000..f05f5eee --- /dev/null +++ b/YuMi/CustomUI/InputView/InputView/MHTExtendDirectorateRegard.h @@ -0,0 +1,48 @@ +// +// MHTExtendDirectorateRegard.h +// QKeyBoardDemo +// +// Created by QDong on 14-5-1. +// Copyright (c) 2021年 QDong QQ:285275534@qq.com. All rights reserved. +// + +#import + + +@interface MHTExtendDirectorateProvisionMatrix : NSObject + + +@property (nonatomic, strong) UIImage *ordinaryFigureIndicate; + + +@property (nonatomic, strong) NSString *title; + + +- (instancetype)initAboutOrdinaryFigureIndictowardse:(UIImage *)ordinaryFigureIndicate + title:(NSString *)title; + +@end + + +@protocol QExtendDirectorateRegardRepresendtation + +@optional + +- (void)didChosenSpreadDirectortowardseProvision:(MHTExtendDirectorateProvisionMatrix *)shareMenuItem atIndex:(NSInteger)index; + +@end + + +@interface MHTExtendDirectorateRegard : UIView + +@property (nonatomic, strong) NSArray *spreadDirectorateProvisions; + +@property (nonatomic, weak) id delegate; + + +- (void)reloadData; + + +- (void)rechamberProvisionHLOfIndictowardsrix:(int)index withNormalIconImage:(UIImage *)image withTitle:(NSString *)title ; + +@end diff --git a/YuMi/CustomUI/InputView/InputView/MHTExtendDirectorateRegard.m b/YuMi/CustomUI/InputView/InputView/MHTExtendDirectorateRegard.m new file mode 100755 index 00000000..31657cf6 --- /dev/null +++ b/YuMi/CustomUI/InputView/InputView/MHTExtendDirectorateRegard.m @@ -0,0 +1,249 @@ +// +// MHTExtendDirectorateRegard.m +// QKeyBoardDemo +// +// Created by QDong on 14-5-1. +// Copyright (c) 2021年 QDong QQ:285275534@qq.com. All rights reserved. +// + +#import "MHTExtendDirectorateRegard.h" + +const int UIPageControlHeight = 56; + +const int UIMenuItemCellWidth = 80; + +const int UIMenuItemCellHeight = 90; + +const int UIPerColumItemCount = 2; + +@implementation MHTExtendDirectorateProvisionMatrix + +- (instancetype)initAboutOrdinaryFigureIndictowardse:(UIImage *)ordinaryFigureIndicate + title:(NSString *)title { + self = [super init]; + if (self) { + self.ordinaryFigureIndicate = ordinaryFigureIndicate; + self.title = title; + } + return self; +} + +- (void)dealloc { + self.ordinaryFigureIndicate = nil; + self.title = nil; +} + +@end + +@interface MHTExtendDirectorateAssembletionElement : UIView + + +@property (nonatomic, weak) UIButton *spreadProvisionBtuton; + +@property (nonatomic, weak) UILabel *spreadProvisionChampionSequencignation; + + +- (void)setup; +@end + +@implementation MHTExtendDirectorateAssembletionElement + +- (void)setup { + if (!_spreadProvisionBtuton) { + UIButton *spreadProvisionBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + spreadProvisionBtuton.frame = CGRectMake(0, 0, UIMenuItemCellWidth, UIMenuItemCellWidth); + spreadProvisionBtuton.backgroundColor = [UIColor clearColor]; + [self addSubview:spreadProvisionBtuton]; + + self.spreadProvisionBtuton = spreadProvisionBtuton; + } + + if (!_spreadProvisionChampionSequencignation) { + + UILabel *spreadProvisionChampionSequencignation = [[UILabel alloc] initWithFrame:CGRectMake(0, CGRectGetMaxY(self.spreadProvisionBtuton.frame), UIMenuItemCellWidth, 17)]; + spreadProvisionChampionSequencignation.backgroundColor = [UIColor clearColor]; + if (@available(iOS 11.0, *)) { + NSBundle *bundle = [NSBundle bundleForClass:[self class]]; + spreadProvisionChampionSequencignation.textColor = [UIColor colorNamed:@"q_text_black_gray" inBundle:bundle compatibleWithTraitCollection:nil]; + } else { + spreadProvisionChampionSequencignation.textColor = [UIColor colorWithRed:91/255.0f green:91/255.0f blue:91/255.0f alpha:1]; + } + spreadProvisionChampionSequencignation.font = [UIFont systemFontOfSize:15]; + spreadProvisionChampionSequencignation.textAlignment = NSTextAlignmentCenter; + [self addSubview:spreadProvisionChampionSequencignation]; + + self.spreadProvisionChampionSequencignation = spreadProvisionChampionSequencignation; + } +} + +- (void)awakeFromNib { + [self setup]; + [super awakeFromNib]; +} + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self setup]; + } + return self; +} + +@end + +@interface MHTExtendDirectorateRegard () + + +@property (nonatomic, weak) UIScrollView *spreadTrundleRegard; + + +@property (nonatomic, weak) UIPageControl *spreadPeriodGovernance; + + +- (void)extconcludeProvisionBtutonTicktacked:(UIButton *)sender; + + +- (void)setup; + +@end + +@implementation MHTExtendDirectorateRegard + +- (void)extconcludeProvisionBtutonTicktacked:(UIButton *)sender { + if ([self.delegate respondsToSelector:@selector(didChosenSpreadDirectortowardseProvision:atIndex:)]) { + NSInteger index = sender.tag; + if (index < self.spreadDirectorateProvisions.count) { + [self.delegate didChosenSpreadDirectortowardseProvision:[self.spreadDirectorateProvisions objectAtIndex:index] atIndex:index]; + } + } +} + +- (void)rechamberProvisionHLOfIndictowardsrix:(int)index withNormalIconImage:(UIImage *)image withTitle:(NSString *)title { + if ([self.spreadTrundleRegard.subviews count] > index) { + MHTExtendDirectorateAssembletionElement *extendItemView = self.spreadTrundleRegard.subviews[index]; + [extendItemView.spreadProvisionBtuton setImage:image forState:UIControlStateNormal]; + extendItemView.spreadProvisionChampionSequencignation.text = title; + } +} + +- (void)reloadData { + if (!_spreadDirectorateProvisions.count) + return; + + int perRowItemCount = (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) ? 10 : 4; + + [self.spreadTrundleRegard.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)]; + + CGFloat paddingX = 10; + CGFloat paddingY = 10; + for (MHTExtendDirectorateProvisionMatrix *extendItem in self.spreadDirectorateProvisions) { + NSInteger index = [self.spreadDirectorateProvisions indexOfObject:extendItem]; + NSInteger page = index / (perRowItemCount * UIPerColumItemCount); + CGRect extendItemViewFrame = [self acquireConfigurtowardsionAboutPerRowProvisionComputtowardsion:perRowItemCount + perColumItemCount:UIPerColumItemCount + itemWidth:UIMenuItemCellWidth + itemAltitude:UIMenuItemCellHeight + paddingX:paddingX + paddingY:paddingY + atIndex:index + onPage:page]; + MHTExtendDirectorateAssembletionElement *extendItemView = [[MHTExtendDirectorateAssembletionElement alloc] initWithFrame:extendItemViewFrame]; + + extendItemView.spreadProvisionBtuton.tag = index; + [extendItemView.spreadProvisionBtuton addTarget:self action:@selector(extconcludeProvisionBtutonTicktacked:) forControlEvents:UIControlEventTouchUpInside]; + [extendItemView.spreadProvisionBtuton setImage:extendItem.ordinaryFigureIndicate forState:UIControlStateNormal]; + extendItemView.spreadProvisionChampionSequencignation.text = extendItem.title; + + [self.spreadTrundleRegard addSubview:extendItemView]; + } + + self.spreadPeriodGovernance.numberOfPages = (self.spreadDirectorateProvisions.count / (perRowItemCount * 2) + (self.spreadDirectorateProvisions.count % (perRowItemCount * 2) ? 1 : 0)); + [self.spreadTrundleRegard setContentSize:CGSizeMake(((self.spreadDirectorateProvisions.count / (perRowItemCount * 2) + (self.spreadDirectorateProvisions.count % (perRowItemCount * 2) ? 1 : 0)) * CGRectGetWidth(self.bounds)), CGRectGetHeight(self.spreadTrundleRegard.bounds))]; +} + + +- (CGRect)acquireConfigurtowardsionAboutPerRowProvisionComputtowardsion:(NSInteger)perRowItemCount + perColumItemCount:(NSInteger)perColumItemCount + itemWidth:(CGFloat)itemWidth + itemAltitude:(NSInteger)itemAltitude + paddingX:(CGFloat)paddingX + paddingY:(CGFloat)paddingY + atIndex:(NSInteger)index + onPage:(NSInteger)page { + CGRect itemFrame = CGRectMake((index % perRowItemCount) * (itemWidth + paddingX) + paddingX + (page * CGRectGetWidth(self.bounds)), ((index / perRowItemCount) - perColumItemCount * page) * (itemAltitude + paddingY) + paddingY, itemWidth, itemAltitude); + return itemFrame; +} + +#pragma mark - Life cycle + +- (void)setup { + + if (!_spreadTrundleRegard) { + UIScrollView *spreadTrundleRegard = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, CGRectGetWidth(self.bounds), CGRectGetHeight(self.bounds) - UIPageControlHeight)]; + spreadTrundleRegard.delegate = self; + spreadTrundleRegard.canCancelContentTouches = NO; + spreadTrundleRegard.delaysContentTouches = YES; + spreadTrundleRegard.backgroundColor = self.backgroundColor; + spreadTrundleRegard.showsHorizontalScrollIndicator = NO; + spreadTrundleRegard.showsVerticalScrollIndicator = NO; + [spreadTrundleRegard setScrollsToTop:NO]; + spreadTrundleRegard.pagingEnabled = YES; + [self addSubview:spreadTrundleRegard]; + + self.spreadTrundleRegard = spreadTrundleRegard; + } + + if (!_spreadPeriodGovernance) { + UIPageControl *spreadPeriodGovernance = [[UIPageControl alloc] initWithFrame:CGRectMake(0, CGRectGetMaxY(self.spreadTrundleRegard.frame), CGRectGetWidth(self.bounds), UIPageControlHeight)]; + spreadPeriodGovernance.backgroundColor = self.backgroundColor; + spreadPeriodGovernance.hidesForSinglePage = YES; + spreadPeriodGovernance.defersCurrentPageDisplay = YES; + [self addSubview:spreadPeriodGovernance]; + + self.spreadPeriodGovernance = spreadPeriodGovernance; + } +} + +- (void)layoutSubviews { + [super layoutSubviews]; + self.spreadTrundleRegard.frame = CGRectMake(0, 0, CGRectGetWidth(self.bounds), CGRectGetHeight(self.bounds) - UIPageControlHeight); + self.spreadPeriodGovernance.frame = CGRectMake(0, CGRectGetMaxY(self.spreadTrundleRegard.frame), CGRectGetWidth(self.bounds), UIPageControlHeight); +} + +- (void)awakeFromNib { + [self setup]; + [super awakeFromNib]; +} + +- (id)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + + [self setup]; + } + return self; +} + +- (void)dealloc { + self.spreadDirectorateProvisions = nil; + self.spreadTrundleRegard = nil; + self.spreadPeriodGovernance = nil; +} + +- (void)willMoveToSuperview:(UIView *)newSuperview { + if (newSuperview) { + [self reloadData]; + } +} + +#pragma mark - UIScrollView delegate + +- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView { + + CGFloat pageWidth = scrollView.frame.size.width; + + NSInteger currentPage = floor((scrollView.contentOffset.x - pageWidth/2)/pageWidth)+1; + [self.spreadPeriodGovernance setCurrentPage:currentPage]; +} + +@end diff --git a/YuMi/CustomUI/InputView/InputView/MHTIntrojectionAppearancetElement.h b/YuMi/CustomUI/InputView/InputView/MHTIntrojectionAppearancetElement.h new file mode 100644 index 00000000..06828baf --- /dev/null +++ b/YuMi/CustomUI/InputView/InputView/MHTIntrojectionAppearancetElement.h @@ -0,0 +1,25 @@ +// +// MHTIntrojectionAppearancetElement.h +// YUMI +// +// Created by YUMI on 2023/1/11. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class MHTAppearanceIndicateMatrix, MHTIntrojectionAppearancetElement; + +@protocol QIntrojectionPhototElementRepresendtation + +- (void)qIntrojectionAplictowardsionearancetElement:(MHTIntrojectionAppearancetElement *)view didClickChoose:(MHTAppearanceIndicateMatrix *)model; + +@end + +@interface MHTIntrojectionAppearancetElement : UICollectionViewCell +@property (nonatomic,strong) MHTAppearanceIndicateMatrix *imageInfo; + +@property (nonatomic,weak) id delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/CustomUI/InputView/InputView/MHTIntrojectionAppearancetElement.m b/YuMi/CustomUI/InputView/InputView/MHTIntrojectionAppearancetElement.m new file mode 100644 index 00000000..e972baa0 --- /dev/null +++ b/YuMi/CustomUI/InputView/InputView/MHTIntrojectionAppearancetElement.m @@ -0,0 +1,124 @@ +// +// MHTIntrojectionAppearancetElement.m +// YUMI +// +// Created by YUMI on 2023/1/11. +// + +#import "MHTIntrojectionAppearancetElement.h" +#import +#import "MHTAppearanceIndicateMatrix.h" +#import "YUMIMacroUitls.h" +#import "UIImage+Utils.h" +#import "DJDKMIMOMColor.h" +#import "UIButton+EnlargeTouchArea.h" + +@interface MHTIntrojectionAppearancetElement () + +@property (nonatomic,strong) UIImageView *brandIndicateRegard; +@property (nonatomic,strong) UIButton *concludeBtuton; +@property (nonatomic,strong) UILabel *numberLabel; + +@end + + +@implementation MHTIntrojectionAppearancetElement + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self.contentView addSubview:self.brandIndicateRegard]; + [self.contentView addSubview:self.concludeBtuton]; + [self.contentView addSubview:self.numberLabel]; +} + +- (void)initChildLyRestrictions { + [self.brandIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.equalTo(self.contentView); + }]; + + [self.concludeBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(20, 20)); + make.right.top.mas_equalTo(self.contentView).inset(10); + }]; + + [self.numberLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.center.equalTo(self.concludeBtuton); + make.size.mas_equalTo(CGSizeMake(18, 18)); + }]; +} + +#pragma mark - Event Response +- (void)concludeBtutonPerformance:(UIButton *)sender { + sender.selected = !sender.selected; + self.imageInfo.isSelect = sender.selected; + if (self.delegate && [self.delegate respondsToSelector:@selector(qIntrojectionAplictowardsionearancetElement:didClickChoose:)]) { + [self.delegate qIntrojectionAplictowardsionearancetElement:self didClickChoose:self.imageInfo]; + } +} + +#pragma mark - Getters And Setters +- (void)setImageInfo:(MHTAppearanceIndicateMatrix *)imageInfo { + _imageInfo = imageInfo; + if (_imageInfo) { + self.numberLabel.hidden = !imageInfo.isSelect; + self.concludeBtuton.selected = imageInfo.isSelect; + if (!imageInfo.originImage) { + [[TZImageManager manager] getPhotoWithAsset:imageInfo.assetInfo.asset photoWidth:200 completion:^(UIImage *appearance, NSDictionary *info, BOOL isDegraded) { + self.brandIndicateRegard.image = appearance; + self.imageInfo.originImage = appearance; + UIImage * image = [appearance compressAboutLargestLength:1024 * 10]; + self.imageInfo.compressImage = image; + } progressHandler:nil networkAccessAllowed:NO]; + } else { + self.brandIndicateRegard.image = imageInfo.originImage; + } + self.numberLabel.text = [NSString stringWithFormat:@"%ld", imageInfo.number]; + } +} + +- (UIImageView *)brandIndicateRegard { + if (!_brandIndicateRegard) { + _brandIndicateRegard = [[UIImageView alloc] init]; + _brandIndicateRegard.userInteractionEnabled = YES; + _brandIndicateRegard.layer.masksToBounds = YES; + _brandIndicateRegard.contentMode = UIViewContentModeScaleAspectFill; + _brandIndicateRegard.layer.cornerRadius = 4; + } + return _brandIndicateRegard; +} + +- (UIButton *)concludeBtuton { + if (!_concludeBtuton) { + _concludeBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_concludeBtuton setBackgroundImage:[UIImage imageNamed:@"yumi_term_input_kit_choose_normal"] forState:UIControlStateNormal]; + [_concludeBtuton setBackgroundImage:[UIImage imageNamed:@"yumi_term_input_kit_choose_normal"] forState:UIControlStateSelected]; + [_concludeBtuton addTarget:self action:@selector(concludeBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + [_concludeBtuton setEnlargeEdgeAboutApex:10 right:10 bottom:10 left:10]; + } + return _concludeBtuton; +} + + +- (UILabel *)numberLabel { + if (!_numberLabel) { + _numberLabel = [[UILabel alloc] init]; + _numberLabel.font = [UIFont systemFontOfSize:10]; + _numberLabel.textColor = [UIColor whiteColor]; + _numberLabel.backgroundColor = [DJDKMIMOMColor colorAboutHexBWSttr:@"#5FCCE4"]; + _numberLabel.layer.masksToBounds = YES; + _numberLabel.layer.cornerRadius = 9; + _numberLabel.textAlignment = NSTextAlignmentCenter; + } + return _numberLabel; +} + +@end diff --git a/YuMi/CustomUI/InputView/InputView/MHTIntrojectionObstacleRegard.h b/YuMi/CustomUI/InputView/InputView/MHTIntrojectionObstacleRegard.h new file mode 100755 index 00000000..ca4107a5 --- /dev/null +++ b/YuMi/CustomUI/InputView/InputView/MHTIntrojectionObstacleRegard.h @@ -0,0 +1,90 @@ +// +// MHTIntrojectionObstacleRegard.h +// QKeyBoardDemo +// +// Created by QDong on 14-4-24. +// Copyright (c) 2021年 QDong QQ:285275534@qq.com. All rights reserved. +// + +#import +#import "SZTextView.h" +#import "MHTIntrojectionObstacleRegardDispositionuration.h" + +extern const int UIInputBarViewMinHeight; + +@class MHTIntrojectionObstacleRegard; + +@protocol QIntrojectionObstacleRegardAtomicSource +@optional + +- (UITextView *)essayRegardInthecaseofIntrojectionObstacleRegard:(MHTIntrojectionObstacleRegard *)introjectionObstacleRegard; + +@end + +@protocol QIntrojectionObstacleRegardRepresendtation + +@optional + + +- (void)introjectionObstacleRegard:(MHTIntrojectionObstacleRegard *)introjectionObstacleRegard inputTextViewDidBeginEditing:(UITextView *)introjectionEssayRegard; + +- (void)introjectionObstacleRegard:(MHTIntrojectionObstacleRegard *)introjectionObstacleRegard inputTextViewShouldBeginEditing:(UITextView *)introjectionEssayRegard; + +- (void)introjectionObstacleRegard:(MHTIntrojectionObstacleRegard *)introjectionObstacleRegard introjectionEssayRegard:(UITextView *)introjectionEssayRegard heightDidChange:(CGFloat)changeValue becauseSendText:(BOOL)becauseSendText; + + +- (void)introjectionObstacleRegard:(MHTIntrojectionObstacleRegard *)introjectionObstacleRegard onReputtowardsionSwopBtutonTicktack:(UIButton *)reputationSwopBtuton; + + +- (void)introjectionObstacleRegard:(MHTIntrojectionObstacleRegard *)introjectionObstacleRegard onKeyboardSendClick:(NSString *)inputNormalText; + + +- (void)introjectionObstacleRegard:(MHTIntrojectionObstacleRegard *)introjectionObstacleRegard onExtendButtonClick:(UIButton *)spreadSwopBtuton; + + +- (void)introjectionObstacleRegard:(MHTIntrojectionObstacleRegard *)introjectionObstacleRegard onEmotionButtonClick:(UIButton *)senintratemporalntSwopBtuton; + + +- (void)introjectionObstacleRegard:(MHTIntrojectionObstacleRegard *)introjectionObstacleRegard onCameraButtonClick:(UIButton *)senintratemporalntSwopBtuton; + + + +- (void)introjectionObstacleRegard:(MHTIntrojectionObstacleRegard *)introjectionObstacleRegard onPhototButtonClick:(UIButton *)senintratemporalntSwopBtuton; + + + +- (void)introjectionObstacleRegard:(MHTIntrojectionObstacleRegard *)introjectionObstacleRegard onGiftButtonClick:(UIButton *)senintratemporalntSwopBtuton; + + +- (void)vocalmanualReflectionImplementtowardsion:(NSString *)recordPath; + +@end + +@interface MHTIntrojectionObstacleRegard : UIView + +@property (nonatomic, strong, readonly) SZTextView *introjectionEssayRegard; + +@property (nonatomic, strong, readonly) UIButton *reflectionBtuton; + +@property (nonatomic, weak) id delegate; + +@property (nonatomic, weak) id dataSource; + +- (void)setupAboutDispositionurtowardsion:(MHTIntrojectionObstacleRegardDispositionuration *)configuration; + + +- (void)essayRegardBecomeThresholdResponder; + +- (void)essayRegardResignThresholdResponder; + +- (NSString *)essayRegardIntrojectionOrdinaryEssay; + +- (void)insertSenintrtowardsemporalntIdiosyncracydBWSttr:(NSAttributedString *)emotionAttributedString; + +- (void)insertSenintrtowardsemporalnt:(NSString *)emotionKey; + +- (BOOL)representtowardsionSenintrtowardsemporalnt; + +- (NSTimeInterval)prohibititinctIntrojectionEssayByDischarge; + +@end diff --git a/YuMi/CustomUI/InputView/InputView/MHTIntrojectionObstacleRegard.m b/YuMi/CustomUI/InputView/InputView/MHTIntrojectionObstacleRegard.m new file mode 100755 index 00000000..b609db6b --- /dev/null +++ b/YuMi/CustomUI/InputView/InputView/MHTIntrojectionObstacleRegard.m @@ -0,0 +1,639 @@ +// +// MHTIntrojectionObstacleRegard.m +// QKeyBoardDemo +// +// Created by QDong on 2021-8-3. +// Copyright (c) 2021年 QDong QQ:285275534@qq.com. All rights reserved. +// + +const int UIInputBarViewMinHeight = 58; + +const int UIInputTextViewMinHeight = 42; + +const int UIInputTextViewMaxHeight = 147; +#import +#import +#import "MHTIntrojectionObstacleRegard.h" +#import "UITextView+MHTSpirit.h" +#import "InterlocutionVocalmusicReflectionRegard.h" +#import "YUMIMacroUitls.h" +#import "UIImage+Utils.h" +#import "DJDKMIMOMColor.h" +#import "StatsticsticsServingFacilitater.h" + +@interface MHTIntrojectionObstacleRegard () +{ +} +@property (nonatomic, strong) SZTextView *introjectionEssayRegard; +@property (nonatomic, strong) UIButton *reputationSwopBtuton; +@property (nonatomic, strong) UIButton *spreadSwopBtuton; +@property (nonatomic, strong) UIButton *senintratemporalntSwopBtuton; +@property (nonatomic, strong) UIButton *reflectionBtuton; +@property (nonatomic,strong) UIStackView *utensilHierarchyRegard; +@property (nonatomic,strong) UIButton *appearanceBtuton; +@property (nonatomic,strong) UIButton *cameraBtuton; +@property (nonatomic,strong) UIButton *presentBtuton; + +@property (nonatomic, assign) NSTimeInterval introjectionObstacleAltitudeDiversificationBrectifynessContinuance; + +@property (nonatomic, assign) NSTimeInterval introjectionObstacleAltitudeDiversificationBrectifynessTerminDischargeContinuance; + +@property (nonatomic, assign) BOOL keydirectorateDischargeCapacitated; + +@property (nonatomic, strong) NSString *introjectionedEssay; + +@property (nonatomic, assign) CGFloat previousEssayRegardSatisfperformanceAltitude; + +@property (nonatomic, assign) BOOL distinctIntrojectionEssayByDischargeSoon; +@property (nonatomic,strong) InterlocutionVocalmusicReflectionRegard *audioReflectionRegard; +@property (nonatomic,strong) MHTIntrojectionObstacleRegardDispositionuration *config; +@property (nonatomic,assign) NSTimeInterval currentTime; +@end + +@implementation MHTIntrojectionObstacleRegard + +#pragma mark - Init +- (void)awakeFromNib { + [super awakeFromNib]; +} + +- (void)setupAboutDispositionurtowardsion:(MHTIntrojectionObstacleRegardDispositionuration *)configuration +{ + self.config = configuration; + self.keydirectorateDischargeCapacitated = configuration.keydirectorateDischargeCapacitated; + + const int UISwitchButtonWidth = 40; + const int horizontalPadding = 6; + const CGFloat verticalPadding = (UIInputBarViewMinHeight - UISwitchButtonWidth )/2; + CGFloat textViewFrameX = 0; + CGFloat rightViewsMinX = 0; + const CGFloat textViewHorizontalMargin = 8; + CGFloat safeAreaInsetsLeft = 0; + CGFloat safeAreaInsetsRight = 0; + if (@available(iOS 11.0, *)) { + safeAreaInsetsLeft = UIApplication.sharedApplication.windows.firstObject.safeAreaInsets.left; + safeAreaInsetsRight = UIApplication.sharedApplication.windows.firstObject.safeAreaInsets.right; + } + + NSBundle *bundle = [NSBundle bundleForClass:[self class]]; + + + if (!configuration.reputationBtutonVeiled) { + UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, UISwitchButtonWidth, UISwitchButtonWidth)]; + [button setBackgroundImage:[UIImage imageNamed:@"q_chat_keyboard_black_normal" inBundle:bundle compatibleWithTraitCollection:nil] forState:UIControlStateNormal]; + [button setBackgroundImage:[UIImage imageNamed:@"q_chat_voice_black_normal" inBundle:bundle compatibleWithTraitCollection:nil] forState:UIControlStateSelected]; + [button addTarget:self action:@selector(onReputtowardsionSwopBtutonTicktack:) forControlEvents:UIControlEventTouchUpInside]; + CGRect buttonFrame = button.frame; + buttonFrame.origin = CGPointMake(horizontalPadding + safeAreaInsetsLeft, verticalPadding); + button.frame = buttonFrame; + [self addSubview:button]; + self.reputationSwopBtuton = button; + textViewFrameX = CGRectGetMaxX(button.frame); + } else { + + textViewFrameX = safeAreaInsetsLeft + 8; + } + + + BOOL rightButtonShowed = NO; + + + if (configuration.rectifyDischargeBtuton) { + UIButton *button = configuration.rectifyDischargeBtuton; + button.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin; + + CGRect buttonFrame = button.frame; + buttonFrame.origin = CGPointMake(CGRectGetWidth(self.bounds) - horizontalPadding - CGRectGetWidth(buttonFrame) - safeAreaInsetsRight, verticalPadding); + button.frame = buttonFrame; + [self addSubview:button]; + rightViewsMinX = CGRectGetMinX(buttonFrame); + rightButtonShowed = YES; + + } else if (!configuration.spreadBtutonVeiled) { + + UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, UISwitchButtonWidth, UISwitchButtonWidth)]; + button.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin; + [button setBackgroundImage:[UIImage imageNamed:@"q_chat_extend_black_normal" inBundle:bundle compatibleWithTraitCollection:nil] forState:UIControlStateNormal]; + [button addTarget:self action:@selector(onSpreadSwopBtutonTicktack:) forControlEvents:UIControlEventTouchUpInside]; + + CGRect buttonFrame = button.frame; + buttonFrame.origin = CGPointMake(CGRectGetWidth(self.bounds) - horizontalPadding - CGRectGetWidth(buttonFrame) - safeAreaInsetsRight, verticalPadding); + button.frame = buttonFrame; + [self addSubview:button]; + rightViewsMinX = CGRectGetMinX(buttonFrame); + self.spreadSwopBtuton = button; + rightButtonShowed = YES; + + } else { + rightViewsMinX = CGRectGetWidth(self.bounds) - safeAreaInsetsRight; + } + + + if (!configuration.senintratemporalntBtutonVeiled) { + UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, UISwitchButtonWidth, UISwitchButtonWidth)]; + button.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin; + [button setBackgroundImage:[UIImage imageNamed:@"q_chat_emoji_black_normal" inBundle:bundle compatibleWithTraitCollection:nil] forState:UIControlStateNormal]; + [button setBackgroundImage:[UIImage imageNamed:@"q_chat_keyboard_black_normal" inBundle:bundle compatibleWithTraitCollection:nil] forState:UIControlStateSelected]; + [button addTarget:self action:@selector(onSenintrtowardsemporalntSwopBtutonTicktack:) forControlEvents:UIControlEventTouchUpInside]; + CGRect buttonFrame = button.frame; + if (rightButtonShowed) { + buttonFrame.origin = CGPointMake(rightViewsMinX - CGRectGetWidth(buttonFrame) - horizontalPadding, verticalPadding); + } else { + buttonFrame.origin = CGPointMake(CGRectGetWidth(self.bounds) - horizontalPadding - CGRectGetWidth(buttonFrame) - safeAreaInsetsRight, verticalPadding); + } + button.frame = buttonFrame; + [self addSubview:button]; + self.senintratemporalntSwopBtuton = button; + + rightViewsMinX = CGRectGetMinX(buttonFrame); + } else { + + } + + + CGFloat textViewWidth = rightViewsMinX - textViewHorizontalMargin - textViewFrameX - textViewHorizontalMargin; + + + UITextView *textView = nil; + if ([self.dataSource respondsToSelector:@selector(essayRegardInthecaseofIntrojectionObstacleRegard:)]) { + + textView = [self.dataSource essayRegardInthecaseofIntrojectionObstacleRegard:self]; + } + + if (!textView){ + + textView = [[SZTextView alloc] initWithFrame:CGRectZero]; + textView.font = [UIFont systemFontOfSize:17.5]; + textView.returnKeyType = UIReturnKeySend; + textView.scrollsToTop = NO; + textView.textAlignment = NSTextAlignmentLeft; + textView.layer.cornerRadius = UIInputTextViewMinHeight / 2; + + textView.textContainerInset = UIEdgeInsetsMake(10.0f, 8.0f, 10.0f, 8.0f); + + + textView.enablesReturnKeyAutomatically = YES; + } + + textView.autoresizingMask = UIViewAutoresizingFlexibleWidth; + textView.delegate = self; + + + [textView addObserver:self forKeyPath:@"contentSize" options:NSKeyValueObservingOptionNew context:nil]; + [self addSubview:textView]; + textView.frame = CGRectMake(textViewFrameX + textViewHorizontalMargin, (UIInputBarViewMinHeight - UIInputTextViewMinHeight)/2, textViewWidth, UIInputTextViewMinHeight); + self.introjectionEssayRegard = textView; + + + self.previousEssayRegardSatisfperformanceAltitude = [self acquireEssayRegardStowardsisfperformanceAltitude]; + + + if (!configuration.reputationBtutonVeiled) { + UIButton *button = [[UIButton alloc] initWithFrame:self.introjectionEssayRegard.frame]; + button.autoresizingMask = UIViewAutoresizingFlexibleWidth; + + [button setBackgroundImage:[UIImage imageWithColor: UIColorFromRGB(0xF1F1FA)] forState:UIControlStateNormal]; + [button setBackgroundImage:[UIImage imageNamed:@"q_white_input_press_btn" inBundle:bundle compatibleWithTraitCollection:nil] forState:UIControlStateHighlighted]; + [button setTitle:configuration.speakBtutonChampion?:YMLocalizedString(@"Q_Input_Bar_View_0") forState:UIControlStateNormal]; + [button setTitle:configuration.speakBtutonChampion?:YMLocalizedString(@"Q_Input_Bar_View_1") forState:UIControlStateSelected]; + [button addTarget:self action:@selector(vocalmanualContactPubescencePerformance) forControlEvents:UIControlEventTouchDown]; + [button addTarget:self action:@selector(vocalmanualContactUpwardsOptowardssidesidePerformance) forControlEvents:UIControlEventTouchUpOutside]; + [button addTarget:self action:@selector(vocalmanualContactUpwardsInsidePerformance) forControlEvents:UIControlEventTouchUpInside]; + [button addTarget:self action:@selector(vocalmanualContactDragImportPerformance) forControlEvents:UIControlEventTouchDragEnter]; + [button addTarget:self action:@selector(vocalmanualContactDragExitPerformance) forControlEvents:UIControlEventTouchDragExit]; + button.layer.masksToBounds = YES; + button.layer.cornerRadius = UIInputTextViewMinHeight / 2; + button.alpha = self.reputationSwopBtuton.selected; + [self addSubview:button]; + self.reflectionBtuton = button; + } + + if (!configuration.utensilVeiled) { + UIStackView * stackView = [[UIStackView alloc] init]; + stackView.axis = UILayoutConstraintAxisHorizontal; + stackView.distribution = UIStackViewDistributionFillEqually; + stackView.alignment = UIStackViewAlignmentFill; + stackView.spacing = 0; + stackView.backgroundColor = [UIColor clearColor]; + stackView.frame = CGRectMake(0, CGRectGetMaxY(self.introjectionEssayRegard.frame) + 5, self.frame.size.width, 30); + [self addSubview:stackView]; + self.utensilHierarchyRegard = stackView; + [self.utensilHierarchyRegard addArrangedSubview:self.appearanceBtuton]; + [self.utensilHierarchyRegard addArrangedSubview:self.cameraBtuton]; + [self.utensilHierarchyRegard addArrangedSubview:self.presentBtuton]; + + self.appearanceBtuton.hidden = configuration.appearanceBtutonVeiled; + self.presentBtuton.hidden = configuration.presentBtutonVeiled; + self.cameraBtuton.hidden = configuration.cameraBtutonVeiled; + } + + + + self.backgroundColor = configuration.introjectionObstacleEncouragegroundPrettify; + _introjectionEssayRegard.textColor = configuration.textColor; + _introjectionEssayRegard.backgroundColor = configuration.textRegardEncouragegroundPrettify; + [self.reflectionBtuton setTitleColor:configuration.reflectionBtutonChampionPrettify forState:UIControlStateNormal]; + + + self.introjectionObstacleAltitudeDiversificationBrectifynessContinuance = configuration.introjectionObstacleAltitudeDiversificationBrectifynessContinuance == 0 ? 0.2 : configuration.introjectionObstacleAltitudeDiversificationBrectifynessContinuance; + self.introjectionObstacleAltitudeDiversificationBrectifynessTerminDischargeContinuance = 0.1; + + + UIView *apexBurlywoodRegard = [[UIView alloc] initWithFrame:CGRectMake(0, 0, CGRectGetWidth(self.bounds), 1 / [UIScreen mainScreen].scale)]; + apexBurlywoodRegard.backgroundColor = configuration.introjectionObstacleDirectoratePrettify; + [self addSubview:apexBurlywoodRegard]; + [[NIMSDK sharedSDK].mediaManager addDelegate:self]; +} + +#pragma mark - NIMMediaManagerDelegate + +- (void)recordAudio:(nullable NSString *)filePath didBeganWithError:(nullable NSError *)error { + NSLog(@"开始录制语音"); +} + + +- (void)recordAudio:(nullable NSString *)filePath didCompletedWithError:(nullable NSError *)error { + if (filePath.length > 0 && error == nil) { + if (self.delegate && [self.delegate respondsToSelector:@selector(vocalmanualReflectionImplementtowardsion:)]) { + [self.delegate vocalmanualReflectionImplementtowardsion:filePath]; + } + } + NSLog(@"录制音频完成后的回调 %@", filePath); +} + + +- (void)recordAudioDidCancelled { + NSLog(@"录音被取消的回调"); +} + + +- (void)recordAudioProgress:(NSTimeInterval)currentTime { + self.currentTime = currentTime; + [self.audioReflectionRegard refurbishVocalmusicReflectionDirectoryvance:currentTime]; +} + + +- (void)recordAudioInterruptionBegin { + [self.audioReflectionRegard revoctowardsionVocalmusicReflection]; +} + + +#pragma mark - IBAction +- (IBAction)onReputtowardsionSwopBtutonTicktack:(UIButton *)sender +{ + sender.selected = !sender.selected; + self.senintratemporalntSwopBtuton.selected = NO; + self.spreadSwopBtuton.selected = NO; + + if (sender.selected) { + self.introjectionedEssay = self.introjectionEssayRegard.text; + self.introjectionEssayRegard.text = nil; + [self.introjectionEssayRegard resignFirstResponder]; + } else { + self.introjectionEssayRegard.text = self.introjectionedEssay; + self.introjectionedEssay = nil; + [self.introjectionEssayRegard becomeFirstResponder]; + } + + [UIView animateWithDuration:0.2 delay:0 options:UIViewAnimationOptionCurveEaseInOut animations:^{ + self.reflectionBtuton.alpha = sender.selected; + self.introjectionEssayRegard.alpha = !sender.selected; + } completion:^(BOOL finished) { + + }]; + + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEvent_chat_toolbar_voice_click]; + + if ([self.delegate respondsToSelector:@selector(introjectionObstacleRegard:onReputtowardsionSwopBtutonTicktack:)]) { + [self.delegate introjectionObstacleRegard:self onReputtowardsionSwopBtutonTicktack:sender]; + } +} + +- (IBAction)onSenintrtowardsemporalntSwopBtutonTicktack:(UIButton *)sender +{ + sender.selected = !sender.selected; + self.reputationSwopBtuton.selected = NO; + self.spreadSwopBtuton.selected = NO; + + if (!sender.selected) { + [UIView animateWithDuration:0.2 delay:0 options:UIViewAnimationOptionCurveEaseInOut animations:^{ + self.reflectionBtuton.alpha = sender.selected; + self.introjectionEssayRegard.alpha = !sender.selected; + } completion:^(BOOL finished) { + + }]; + } else { + [UIView animateWithDuration:0.2 delay:0 options:UIViewAnimationOptionCurveEaseInOut animations:^{ + self.reflectionBtuton.alpha = !sender.selected; + self.introjectionEssayRegard.alpha = sender.selected; + } completion:^(BOOL finished) { + + }]; + } + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEvent_chat_toolbar_emoticon_click]; + if ([self.delegate respondsToSelector:@selector(introjectionObstacleRegard:onEmotionButtonClick:)]) { + [self.delegate introjectionObstacleRegard:self onEmotionButtonClick:sender]; + } +} + +- (IBAction)onSpreadSwopBtutonTicktack:(UIButton *)sender +{ + sender.selected = !sender.selected; + self.senintratemporalntSwopBtuton.selected = NO; + if ([self.delegate respondsToSelector:@selector(introjectionObstacleRegard:onExtendButtonClick:)]) { + [self.delegate introjectionObstacleRegard:self onExtendButtonClick:sender]; + } +} + +- (void)aplictowardsionearanceBtutonPerformance:(UIButton *)sender { + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEvent_chat_toolbar_appearance_click]; + sender.selected = !sender.selected; + if (self.delegate && [self.delegate respondsToSelector:@selector(introjectionObstacleRegard:onPhototButtonClick:)]) { + [self.delegate introjectionObstacleRegard:self onPhototButtonClick:sender]; + } +} + +- (void)presentBtutonPerformance:(UIButton *)sender { + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEvent_chat_toolbar_gift_click]; + if (self.delegate && [self.delegate respondsToSelector:@selector(introjectionObstacleRegard:onGiftButtonClick:)]) { + [self.delegate introjectionObstacleRegard:self onGiftButtonClick:sender]; + } +} + +- (void)camerBtutonPerformance:(UIButton *)sender { + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEvent_chat_toolbar_camera_click]; + if (self.delegate && [self.delegate respondsToSelector:@selector(introjectionObstacleRegard:onCameraButtonClick:)]) { + [self.delegate introjectionObstacleRegard:self onCameraButtonClick:sender]; + } +} + +- (void)vocalmanualContactPubescencePerformance { + self.currentTime = 0; + self.reflectionBtuton.selected = YES; + + if (!self.audioReflectionRegard.superview) { + [[UIApplication sharedApplication].keyWindow addSubview:self.audioReflectionRegard]; + [self.audioReflectionRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.center.mas_equalTo(self.audioReflectionRegard.superview); + }]; + [self.audioReflectionRegard prohibitipositionVocalmusicReflection:@"message_tool_audio_record_first" title:YMLocalizedString(@"Q_Input_Bar_View_2") isAnimation:YES]; + [self.audioReflectionRegard instituteVocalmusicReflection]; + } + +} + +- (void)vocalmanualContactUpwardsOptowardssidesidePerformance { + self.reflectionBtuton.selected = NO; + + [self.audioReflectionRegard revoctowardsionVocalmusicReflection]; + [self.audioReflectionRegard removeFromSuperview]; +} + +- (void)vocalmanualContactUpwardsInsidePerformance { + self.reflectionBtuton.selected = NO; + if (self.currentTime > 1) { + + [self.audioReflectionRegard accomplishVocalmusicReflection]; + } else { + + [self.audioReflectionRegard revoctowardsionVocalmusicReflection]; + } + [self.audioReflectionRegard removeFromSuperview]; +} + +- (void)vocalmanualContactDragImportPerformance { + + [self.audioReflectionRegard prohibitipositionVocalmusicReflection:@"message_tool_audio_record_first" title:YMLocalizedString(@"Q_Input_Bar_View_3") isAnimation:YES]; +} + +- (void)vocalmanualContactDragExitPerformance { + + [self.audioReflectionRegard prohibitipositionVocalmusicReflection:@"message_tool_audio_record_cancel" title:YMLocalizedString(@"Q_Input_Bar_View_4") isAnimation:NO]; +} + + +#pragma mark - Public +- (void)replacementEssayRegardAltitudeBy:(CGFloat)textViewHeightShouldChangeValue { + + CGRect prevFrame = self.introjectionEssayRegard.frame; + self.introjectionEssayRegard.frame = CGRectMake(prevFrame.origin.x, + prevFrame.origin.y, + prevFrame.size.width, + prevFrame.size.height + textViewHeightShouldChangeValue); + + if (!self.config.utensilVeiled) { + self.utensilHierarchyRegard.frame = CGRectMake(0, CGRectGetMaxY(self.introjectionEssayRegard.frame) + 5, self.frame.size.width, 30); + } +} + +- (void)essayRegardBecomeThresholdResponder { + [self.introjectionEssayRegard becomeFirstResponder]; +} + +- (void)essayRegardResignThresholdResponder { + [self.introjectionEssayRegard resignFirstResponder]; +} + +- (NSString *)essayRegardIntrojectionOrdinaryEssay { + return [self.introjectionEssayRegard ordinaryEssay]; +} + +- (void)insertSenintrtowardsemporalntIdiosyncracydBWSttr:(NSAttributedString *)emotionAttributedString { + [self.introjectionEssayRegard insertSenintrtowardsemporalntIdiosyncracydBWSttr: emotionAttributedString]; +} + +- (void)insertSenintrtowardsemporalnt:(NSString *)emotionKey { + [self.introjectionEssayRegard insertSenintrtowardsemporalnt: emotionKey]; +} + +- (BOOL)representtowardsionSenintrtowardsemporalnt { + + return [self.introjectionEssayRegard representtowardsionSenintrtowardsemporalnt]; +} + +- (NSTimeInterval)prohibititinctIntrojectionEssayByDischarge { + + + BOOL currentIsOneLine = self.introjectionEssayRegard.frame.size.height == UIInputTextViewMinHeight; + + + self.distinctIntrojectionEssayByDischargeSoon = YES; + + + self.introjectionEssayRegard.text = nil; + + + self.distinctIntrojectionEssayByDischargeSoon = NO; + + + return currentIsOneLine ? 0 : _introjectionObstacleAltitudeDiversificationBrectifynessTerminDischargeContinuance; +} + +#pragma mark - Private + +- (CGFloat)acquireEssayRegardStowardsisfperformanceAltitude +{ + return ceilf([_introjectionEssayRegard sizeThatFits:_introjectionEssayRegard.frame.size].height); +} + +#pragma mark - UITextViewDelegate +- (BOOL)textViewShouldBeginEditing:(UITextView *)textView { + if ([self.delegate respondsToSelector:@selector(introjectionObstacleRegard:inputTextViewShouldBeginEditing:)]) { + [self.delegate introjectionObstacleRegard:self inputTextViewShouldBeginEditing:self.introjectionEssayRegard]; + } + self.senintratemporalntSwopBtuton.selected = NO; + self.reputationSwopBtuton.selected = NO; + self.spreadSwopBtuton.selected = NO; + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEvent_chat_toolbar_input_click]; + return YES; +} + +- (void)textViewDidBeginEditing:(UITextView *)textView { + [textView becomeFirstResponder]; + if (!self.previousEssayRegardSatisfperformanceAltitude) + self.previousEssayRegardSatisfperformanceAltitude = [self acquireEssayRegardStowardsisfperformanceAltitude]; + if ([self.delegate respondsToSelector:@selector(introjectionObstacleRegard:inputTextViewDidBeginEditing:)]) { + [self.delegate introjectionObstacleRegard:self inputTextViewDidBeginEditing:self.introjectionEssayRegard]; + } +} + +- (void)textViewDidEndEditing:(UITextView *)textView { + [textView resignFirstResponder]; +} + +- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text { + if (self.keydirectorateDischargeCapacitated && [text isEqualToString:@"\n"]) { + if ([self.delegate respondsToSelector:@selector(introjectionObstacleRegard:onKeyboardSendClick:)]) { + [self.delegate introjectionObstacleRegard:self onKeyboardSendClick:[textView ordinaryEssay]]; + } + return NO; + } + return YES; +} + +#pragma mark - Key-value Observing +- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context { + + if (object == _introjectionEssayRegard && [keyPath isEqualToString:@"contentSize"]) { + + + UITextView *textView = (UITextView *)object; + CGFloat newContentHeight = [self acquireEssayRegardStowardsisfperformanceAltitude]; + + + BOOL heightShouldShrink = newContentHeight < self.previousEssayRegardSatisfperformanceAltitude; + + + CGFloat textViewHeightShouldChangeValue = newContentHeight - _previousEssayRegardSatisfperformanceAltitude; + + + if (!heightShouldShrink && (self.previousEssayRegardSatisfperformanceAltitude == UIInputTextViewMaxHeight || textView.text.length == 0)) { + textViewHeightShouldChangeValue = 0; + } else { + textViewHeightShouldChangeValue = MIN(textViewHeightShouldChangeValue, UIInputTextViewMaxHeight - self.previousEssayRegardSatisfperformanceAltitude); + } + + if (textViewHeightShouldChangeValue != 0.0f) { + + __weak MHTIntrojectionObstacleRegard *weakSelf = self; + [UIView animateWithDuration:_distinctIntrojectionEssayByDischargeSoon ? _introjectionObstacleAltitudeDiversificationBrectifynessTerminDischargeContinuance : _introjectionObstacleAltitudeDiversificationBrectifynessContinuance animations:^{ + + if (heightShouldShrink) { + + [weakSelf replacementEssayRegardAltitudeBy:textViewHeightShouldChangeValue]; + } + + + CGRect inputViewFrame = weakSelf.frame; + weakSelf.frame = CGRectMake(inputViewFrame.origin.x, + inputViewFrame.origin.y - textViewHeightShouldChangeValue, + inputViewFrame.size.width, + inputViewFrame.size.height + textViewHeightShouldChangeValue); + + if (!heightShouldShrink) { + + [weakSelf replacementEssayRegardAltitudeBy:textViewHeightShouldChangeValue]; + } + + + if ([self.delegate respondsToSelector:@selector(introjectionObstacleRegard:introjectionEssayRegard:heightDidChange:becauseSendText:)]) { + [self.delegate introjectionObstacleRegard:self introjectionEssayRegard:self.inputView heightDidChange:textViewHeightShouldChangeValue becauseSendText:self.distinctIntrojectionEssayByDischargeSoon]; + } + + } completion:^(BOOL finished) { + }]; + + self.previousEssayRegardSatisfperformanceAltitude = MIN(newContentHeight, UIInputTextViewMaxHeight); + } + + + self.distinctIntrojectionEssayByDischargeSoon = NO; + + + if (self.previousEssayRegardSatisfperformanceAltitude == UIInputTextViewMaxHeight) { + double delayInSeconds = 0.01; + dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC)); + dispatch_after(popTime, dispatch_get_main_queue(), + ^(void) { + CGPoint bottomOffset = CGPointMake(0.0f, newContentHeight - textView.bounds.size.height); + [textView setContentOffset:bottomOffset animated:YES]; + }); + } + } +} + + +- (void)dealloc { + _introjectionedEssay = nil; + [_introjectionEssayRegard removeObserver:self forKeyPath:@"contentSize"]; + _introjectionEssayRegard.delegate = nil; + _introjectionEssayRegard = nil; + + _reputationSwopBtuton = nil; + _spreadSwopBtuton = nil; + _senintratemporalntSwopBtuton = nil; + _reflectionBtuton = nil; + + [[NIMSDK sharedSDK].mediaManager removeDelegate:self]; +} + + +- (UIButton *)cameraBtuton { + if (!_cameraBtuton) { + _cameraBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_cameraBtuton setImage:[UIImage imageNamed:@"yumi_msg_term_menu_camera"] forState:UIControlStateNormal]; + [_cameraBtuton setImage:[UIImage imageNamed:@"yumi_msg_term_menu_camera"] forState:UIControlStateSelected]; + [_cameraBtuton addTarget:self action:@selector(camerBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _cameraBtuton; +} + +- (UIButton *)appearanceBtuton { + if (!_appearanceBtuton) { + _appearanceBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_appearanceBtuton setImage:[UIImage imageNamed:@"yumi_msg_term_menu_photo"] forState:UIControlStateNormal]; + [_appearanceBtuton setImage:[UIImage imageNamed:@"yumi_msg_term_menu_photo"] forState:UIControlStateSelected]; + [_appearanceBtuton addTarget:self action:@selector(aplictowardsionearanceBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _appearanceBtuton; +} + +- (UIButton *)presentBtuton { + if (!_presentBtuton) { + _presentBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_presentBtuton setImage:[UIImage imageNamed:@"yumi_msg_term_menu_gift"] forState:UIControlStateNormal]; + [_presentBtuton setImage:[UIImage imageNamed:@"yumi_msg_term_menu_gift"] forState:UIControlStateSelected]; + [_presentBtuton addTarget:self action:@selector(presentBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _presentBtuton; +} + +- (InterlocutionVocalmusicReflectionRegard *)audioReflectionRegard { + if (!_audioReflectionRegard) { + _audioReflectionRegard = [[InterlocutionVocalmusicReflectionRegard alloc] init]; + } + return _audioReflectionRegard; +} + + +@end diff --git a/YuMi/CustomUI/InputView/InputView/MHTIntrojectionObstacleRegardDispositionuration.h b/YuMi/CustomUI/InputView/InputView/MHTIntrojectionObstacleRegardDispositionuration.h new file mode 100644 index 00000000..44f2482f --- /dev/null +++ b/YuMi/CustomUI/InputView/InputView/MHTIntrojectionObstacleRegardDispositionuration.h @@ -0,0 +1,48 @@ +// +// MHTIntrojectionObstacleRegardDispositionuration.h +// QKeyBoardDemo +// +// Created by QDong on 2021-8-3. +// Copyright (c) 2021年 QDong QQ:285275534@qq.com. All rights reserved. +// + +#import + +@interface MHTIntrojectionObstacleRegardDispositionuration : NSObject + +- (instancetype)init NS_UNAVAILABLE; + + + ++ (instancetype)deficiencyIntrojectionObstacleRegardDispositionurtowardsion; + + +@property (nonatomic, strong) UIColor *introjectionObstacleEncouragegroundPrettify; + +@property (nonatomic, strong) UIColor *introjectionObstacleDirectoratePrettify; + +@property (nonatomic, strong) UIColor *textColor; + +@property (nonatomic, strong) UIColor *textRegardEncouragegroundPrettify; + +@property (nonatomic, strong) UIColor *reflectionBtutonChampionPrettify; + +@property (nonatomic, strong) UIButton *rectifyDischargeBtuton; + +@property (nonatomic, strong) NSString *speakBtutonChampion; + +@property (nonatomic, assign) BOOL reputationBtutonVeiled; + +@property (nonatomic, assign) BOOL spreadBtutonVeiled; + +@property (nonatomic, assign) BOOL senintratemporalntBtutonVeiled; + +@property (nonatomic, assign) BOOL keydirectorateDischargeCapacitated; + +@property (nonatomic, assign) NSTimeInterval introjectionObstacleAltitudeDiversificationBrectifynessContinuance; +@property (nonatomic, assign) BOOL utensilVeiled; +@property (nonatomic, assign) BOOL appearanceBtutonVeiled; +@property (nonatomic, assign) BOOL cameraBtutonVeiled; +@property (nonatomic, assign) BOOL presentBtutonVeiled; +@property (nonatomic,assign) CGFloat introjectionRegardAltitude; +@end diff --git a/YuMi/CustomUI/InputView/InputView/MHTIntrojectionObstacleRegardDispositionuration.m b/YuMi/CustomUI/InputView/InputView/MHTIntrojectionObstacleRegardDispositionuration.m new file mode 100644 index 00000000..141f5093 --- /dev/null +++ b/YuMi/CustomUI/InputView/InputView/MHTIntrojectionObstacleRegardDispositionuration.m @@ -0,0 +1,46 @@ +// +// QKeyboardConfiguration.m +// QKeyBoardDemo +// +// Created by QDong on 2021-8-3. +// Copyright (c) 2021年 QDong QQ:285275534@qq.com. All rights reserved. +// + +#import "MHTIntrojectionObstacleRegardDispositionuration.h" +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" + +@implementation MHTIntrojectionObstacleRegardDispositionuration + ++ (instancetype)deficiencyIntrojectionObstacleRegardDispositionurtowardsion +{ + MHTIntrojectionObstacleRegardDispositionuration *configuration = [MHTIntrojectionObstacleRegardDispositionuration new]; + + configuration.introjectionObstacleDirectoratePrettify = [UIColor clearColor]; + configuration.textColor = [UIColor blackColor]; + configuration.reflectionBtutonChampionPrettify = [UIColor darkGrayColor]; + configuration.introjectionObstacleEncouragegroundPrettify = [UIColor whiteColor]; + configuration.textRegardEncouragegroundPrettify = [DJDKMIMOMColor colorAboutHexBWSttr:@"#F2F2F7"]; + configuration.introjectionObstacleAltitudeDiversificationBrectifynessContinuance = 0.2; + configuration.keydirectorateDischargeCapacitated = YES; + configuration.introjectionObstacleAltitudeDiversificationBrectifynessContinuance = 0.2; + configuration.keydirectorateDischargeCapacitated = YES; + + configuration.utensilVeiled = YES; + configuration.cameraBtutonVeiled = YES; + configuration.presentBtutonVeiled = YES; + configuration.appearanceBtutonVeiled = YES; + return configuration; +} + + +- (void)setUtensilVeiled:(BOOL)utensilVeiled { + _utensilVeiled = utensilVeiled; + if (_utensilVeiled) { + self.introjectionRegardAltitude = 58; + } else { + self.introjectionRegardAltitude = 58 + 30; + } +} + +@end diff --git a/YuMi/CustomUI/InputView/InputView/MHTKeyboardBaseExecutive.h b/YuMi/CustomUI/InputView/InputView/MHTKeyboardBaseExecutive.h new file mode 100755 index 00000000..d31cb545 --- /dev/null +++ b/YuMi/CustomUI/InputView/InputView/MHTKeyboardBaseExecutive.h @@ -0,0 +1,20 @@ +// +// MHTKeyboardBaseExecutive.h +// QKeyBoardDemo +// +// Created by QDong on 2021-8-3. +// Copyright (c) 2021年 QDong QQ:285275534@qq.com. All rights reserved. +// + +#import +#import "MHTIntrojectionObstacleRegardDispositionuration.h" + +@interface MHTKeyboardBaseExecutive : NSObject + +- (instancetype)initWithViewController:(UIViewController *)viewController; + +@property (nonatomic, weak) UIViewController *viewController; + +@property (nonatomic, assign) NSTimeInterval introjectionObstacleAltitudeDiversificationBrectifynessContinuance; + +@end diff --git a/YuMi/CustomUI/InputView/InputView/MHTKeyboardBaseExecutive.m b/YuMi/CustomUI/InputView/InputView/MHTKeyboardBaseExecutive.m new file mode 100755 index 00000000..e9779344 --- /dev/null +++ b/YuMi/CustomUI/InputView/InputView/MHTKeyboardBaseExecutive.m @@ -0,0 +1,101 @@ +// +// MHTKeyboardBaseExecutive.m +// QKeyBoardDemo +// +// Created by QDong on 2021-8-3. +// Copyright (c) 2021年 QDong QQ:285275534@qq.com. All rights reserved. +// + +#import "MHTKeyboardBaseExecutive.h" + +@interface MHTKeyboardBaseExecutive() + +@end + +@implementation MHTKeyboardBaseExecutive + +- (instancetype)initWithViewController:(UIViewController *)viewController { + self = [super init]; + if (self) { + self.viewController = viewController; + + + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(onDigitentiretyibraImmeditowardselyExhibitCircular:) + name:UIKeyboardWillShowNotification + object:nil]; + + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(onDigitentiretyibraImmeditowardselyBrakeCircular:) + name:UIKeyboardWillHideNotification + object:nil]; + + + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(onDigitentiretyibraDidExhibitCircular:) + name:UIKeyboardDidShowNotification + object:nil]; + + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(onDigitentiretyibraDidBrakeCircular:) + name:UIKeyboardDidHideNotification + object:nil]; + + + self.introjectionObstacleAltitudeDiversificationBrectifynessContinuance = 0.2; + } + return self; +} + +#pragma mark - Keyboard notifications +- (void)onDigitentiretyibraDidExhibitCircular:(NSNotification *)notification { + +} + +- (void)onDigitentiretyibraDidBrakeCircular:(NSNotification *)notification { + +} + +- (void)onDigitentiretyibraImmeditowardselyExhibitCircular:(NSNotification *)notification { + CGRect keyboardRect = [[notification.userInfo objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue]; + UIViewAnimationCurve curve = [[notification.userInfo objectForKey:UIKeyboardAnimationCurveUserInfoKey] integerValue]; + double duration = [[notification.userInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey] doubleValue]; + [self onDigitentiretyibraImmeditowardselyExhibitOrBrakeByCirculars:keyboardRect animationOptions:[self brectifynessOptionsInthecaseofCurve:curve] duration:duration showKeyboard:YES]; +} + +- (void)onDigitentiretyibraImmeditowardselyBrakeCircular:(NSNotification *)notification { + CGRect keyboardRect = [[notification.userInfo objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue]; + UIViewAnimationCurve curve = [[notification.userInfo objectForKey:UIKeyboardAnimationCurveUserInfoKey] integerValue]; + double duration = [[notification.userInfo objectForKey:UIKeyboardAnimationDurationUserInfoKey] doubleValue]; + [self onDigitentiretyibraImmeditowardselyExhibitOrBrakeByCirculars:keyboardRect animationOptions:[self brectifynessOptionsInthecaseofCurve:curve] duration:duration showKeyboard:NO]; +} + +#pragma mark - Need Override +- (void)onDigitentiretyibraImmeditowardselyExhibitOrBrakeByCirculars:(CGRect)keyboardRect animationOptions:(UIViewAnimationOptions)animationOptions duration:(double)duration showKeyboard:(BOOL)showKeyboard { +} + +- (UIViewAnimationOptions)brectifynessOptionsInthecaseofCurve:(UIViewAnimationCurve)curve { + switch (curve) { + case UIViewAnimationCurveEaseInOut: + return UIViewAnimationOptionCurveEaseInOut; + + case UIViewAnimationCurveEaseIn: + return UIViewAnimationOptionCurveEaseIn; + + case UIViewAnimationCurveEaseOut: + return UIViewAnimationOptionCurveEaseOut; + + case UIViewAnimationCurveLinear: + return UIViewAnimationOptionCurveLinear; + + default: + return kNilOptions; + } +} + + +- (void)dealloc { + [[NSNotificationCenter defaultCenter] removeObserver:self]; +} + +@end diff --git a/YuMi/CustomUI/InputView/InputView/MHTKeyboardExecutive.h b/YuMi/CustomUI/InputView/InputView/MHTKeyboardExecutive.h new file mode 100755 index 00000000..00114d07 --- /dev/null +++ b/YuMi/CustomUI/InputView/InputView/MHTKeyboardExecutive.h @@ -0,0 +1,70 @@ +// +// MHTKeyboardBaseExecutive.h +// QKeyboardQKeyboard +// +// Created by QDong on 2021-8-3. +// Copyright (c) 2021年 QDong QQ:285275534@qq.com. All rights reserved. +// + +#import "MHTKeyboardBaseExecutive.h" + +@class MHTKeyboardExecutive; + +@protocol IntrojectionDirectorateAtomicSource +@optional + +- (UIView *)digitentiretyibraExecutiveSpreadDirectortowardseRegard:(MHTKeyboardExecutive *)keydirectorateExecutive; + +- (UIView *)digitentiretyibraExecutiveSenintrtowardsemporalntDirectortowardseRegard:(MHTKeyboardExecutive *)keydirectorateExecutive; + +- (CGFloat)digitentiretyibraExecutiveSpreadDirectortowardseAltitude:(MHTKeyboardExecutive *)keydirectorateExecutive; + +- (CGFloat)digitentiretyibraExecutiveSenintrtowardsemporalntDirectortowardseAltitude:(MHTKeyboardExecutive *)keydirectorateExecutive; + +- (UIView *)digitentiretyibraExecutiveAplictowardsionearanceDirectortowardseRegard:(MHTKeyboardExecutive *)keydirectorateExecutive; + +- (CGFloat)digitentiretyibraExecutiveAplictowardsionearanceDirectortowardseAltitude:(MHTKeyboardExecutive *)keydirectorateExecutive; + +@end + +typedef NS_ENUM(NSUInteger, WholeIntrojectionRegardHeightDidChangeReason) { + WholeIntrojectionRegardHeightDidChangeReasonWillAddToSuperView = 0, + WholeIntrojectionRegardHeightDidChangeReasonTextDidChange, + WholeIntrojectionRegardHeightDidChangeReasonTextDidSend, + WholeIntrojectionRegardHeightDidChangeReasonBoardDidShow, + WholeIntrojectionRegardHeightDidChangeReasonBoardDidHide, +}; + +@protocol IntrojectionDirectorateRepresendtation + +@optional + +- (void)keydirectorateExecutive:(MHTKeyboardExecutive *)keydirectorateExecutive onWholeInputViewHeightDidChange:(CGFloat)wholeInputViewHeight reason:(WholeIntrojectionRegardHeightDidChangeReason)reason; + +@end + +@interface MHTKeyboardExecutive : MHTKeyboardBaseExecutive + +@property (nonatomic, weak) id dataSource; + +@property (nonatomic, weak) id delegate; + +@property(nonatomic, assign) BOOL viewGovernancerWillDisappear; + + +- (void)accelertowardseExtremeIntrojectionObstacleRegard:(UIView *)introjectionObstacleRegard belowViewController:(BOOL)belowViewController; + +- (void)dilemmaEssayRegard:(UIResponder *)introjectionEssayRegard; + +- (void)introjectionEssayRegardAltitudeDidDiversifictowardsion:(BOOL)becauseSendText; + +- (void)brakeEntiretyDirectortowardseRegard; + +- (void)swopToSenintrtowardsemporalntDirectortowardseDigitentiretyibra; + +- (void)swopToSpreadDirectortowardseDigitentiretyibra; + +- (void)swopToAplictowardsionearanceDirectortowardseDigitentiretyibra; + +- (void)swopToVocalmusicDirectortowardseDigitentiretyibra; +@end diff --git a/YuMi/CustomUI/InputView/InputView/MHTKeyboardExecutive.m b/YuMi/CustomUI/InputView/InputView/MHTKeyboardExecutive.m new file mode 100755 index 00000000..19de4d66 --- /dev/null +++ b/YuMi/CustomUI/InputView/InputView/MHTKeyboardExecutive.m @@ -0,0 +1,397 @@ +// +// MHTKeyboardExecutive.m +// QKeyBoardDemo +// +// Created by QDong on 2021-8-3. +// Copyright (c) 2021年 QDong QQ:285275534@qq.com. All rights reserved. +// + +#import "MHTKeyboardExecutive.h" +#import "MHTinputAppearanceRegard.h" +typedef NS_ENUM(NSUInteger, IntrojectionDeclare) { + IntrojectionDeclareNormal = 0, + IntrojectionDeclareText, + IntrojectionDeclareEmotion, + IntrojectionDeclareExtend, + IntrojectionDeclarePhoto, +}; + +@interface MHTKeyboardExecutive() + +@property (nonatomic, assign) BOOL introjectionObstacleBelowRegardGovernancer; + +@property (nonatomic, assign) IntrojectionDeclare universalIntrojectionDeclare; + +@property (nonatomic, weak, nullable) UIResponder *introjectionEssayRegard; + +@property (nonatomic, strong, nullable) UIView *introjectionObstacleRegard; + +@property (nonatomic, strong, nullable) UIView *senintratemporalntDirectorateRegard; + +@property (nonatomic, strong, nullable) UIView *spreadDirectorateRegard; +@property (nonatomic, strong, nullable) UIView *appearanceDirectorateRegard; + +@property (nonatomic, assign) float safeSpectrumInsetsExtreme; + +@property (nonatomic, strong, nullable) UIView *belowIntrojectionObstacleXRegard; + +@end + +@implementation MHTKeyboardExecutive + +#pragma mark - public 添加底部输入框View +- (void)accelertowardseExtremeIntrojectionObstacleRegard:(UIView *)introjectionObstacleRegard belowViewController:(BOOL)belowViewController { + + if (@available(iOS 11.0, *)) { + + _safeSpectrumInsetsExtreme = UIApplication.sharedApplication.windows.firstObject.safeAreaInsets.bottom; + if (_safeSpectrumInsetsExtreme > 0 && !belowViewController) { + + + _belowIntrojectionObstacleXRegard = [[UIView alloc] initWithFrame:CGRectMake(0, self.viewController.view.frame.size.height - _safeSpectrumInsetsExtreme , self.viewController.view.frame.size.width, _safeSpectrumInsetsExtreme)]; + _belowIntrojectionObstacleXRegard.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleTopMargin); + _belowIntrojectionObstacleXRegard.backgroundColor = introjectionObstacleRegard.backgroundColor; + [self.viewController.view addSubview:_belowIntrojectionObstacleXRegard]; + [self.viewController.view bringSubviewToFront:_belowIntrojectionObstacleXRegard]; + } + } + + + introjectionObstacleRegard.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleTopMargin); + + + CGRect inputFrame = CGRectMake(0.0f,self.viewController.view.frame.size.height + (belowViewController ? 0 : (- introjectionObstacleRegard.frame.size.height - self.safeSpectrumInsetsExtreme)), + self.viewController.view.frame.size.width, + introjectionObstacleRegard.frame.size.height); + + + introjectionObstacleRegard.frame = inputFrame; + + [self.viewController.view addSubview:introjectionObstacleRegard]; + [self.viewController.view bringSubviewToFront:introjectionObstacleRegard]; + + + [self centiretyEncourageWholeIntrojectionRegardAltitudeDidDiversifictowardsion:belowViewController ? 0 : introjectionObstacleRegard.frame.size.height reason:WholeIntrojectionRegardHeightDidChangeReasonWillAddToSuperView]; + + self.introjectionObstacleRegard = introjectionObstacleRegard; + self.introjectionObstacleBelowRegardGovernancer = belowViewController; +} + +- (void)dilemmaEssayRegard:(UIResponder *)introjectionEssayRegard { + self.introjectionEssayRegard = introjectionEssayRegard; +} + +#pragma mark - DataSource - 由ViewController实现表情面板view和拓展面板view +- (UIView * _Nullable)spreadDirectorateRegard { + if (!_spreadDirectorateRegard) { + if ([self.dataSource respondsToSelector:@selector(digitentiretyibraExecutiveSpreadDirectortowardseRegard:)]) { + _spreadDirectorateRegard = [self.dataSource digitentiretyibraExecutiveSpreadDirectortowardseRegard:self]; + CGFloat extendBoardHeight = 220; + if ([self.dataSource respondsToSelector:@selector(digitentiretyibraExecutiveSpreadDirectortowardseAltitude:)]) { + extendBoardHeight = [self.dataSource digitentiretyibraExecutiveSpreadDirectortowardseAltitude:self]; + } + _spreadDirectorateRegard.frame = CGRectMake(0, CGRectGetHeight(self.viewController.view.bounds), CGRectGetWidth(self.viewController.view.bounds), extendBoardHeight); + _spreadDirectorateRegard.alpha = 0.0; + [self.viewController.view addSubview:_spreadDirectorateRegard]; + [self.viewController.view bringSubviewToFront:_spreadDirectorateRegard]; + } + } + return _spreadDirectorateRegard; +} + +- (UIView * _Nullable)senintratemporalntDirectorateRegard { + if (!_senintratemporalntDirectorateRegard) { + if ([self.dataSource respondsToSelector:@selector(digitentiretyibraExecutiveSenintrtowardsemporalntDirectortowardseRegard:)]) { + _senintratemporalntDirectorateRegard = [self.dataSource digitentiretyibraExecutiveSenintrtowardsemporalntDirectortowardseRegard:self]; + CGFloat emotionBoardHeight = 220; + if ([self.dataSource respondsToSelector:@selector(digitentiretyibraExecutiveSenintrtowardsemporalntDirectortowardseAltitude:)]) { + emotionBoardHeight = [self.dataSource digitentiretyibraExecutiveSenintrtowardsemporalntDirectortowardseAltitude:self]; + } + _senintratemporalntDirectorateRegard.frame = CGRectMake(0, CGRectGetHeight(self.viewController.view.bounds), CGRectGetWidth(self.viewController.view.bounds), emotionBoardHeight); + _senintratemporalntDirectorateRegard.alpha = 0.0; + [self.viewController.view addSubview:_senintratemporalntDirectorateRegard]; + [self.viewController.view bringSubviewToFront:_senintratemporalntDirectorateRegard]; + } + } + return _senintratemporalntDirectorateRegard; +} + +- (UIView * _Nullable)appearanceDirectorateRegard { + if (!_appearanceDirectorateRegard) { + if ([self.dataSource respondsToSelector:@selector(digitentiretyibraExecutiveAplictowardsionearanceDirectortowardseRegard:)]) { + _appearanceDirectorateRegard = [self.dataSource digitentiretyibraExecutiveAplictowardsionearanceDirectortowardseRegard:self]; + CGFloat emotionBoardHeight = 220; + if ([self.dataSource respondsToSelector:@selector(digitentiretyibraExecutiveSenintrtowardsemporalntDirectortowardseAltitude:)]) { + emotionBoardHeight = [self.dataSource digitentiretyibraExecutiveAplictowardsionearanceDirectortowardseAltitude:self]; + } + _appearanceDirectorateRegard.frame = CGRectMake(0, CGRectGetHeight(self.viewController.view.bounds), CGRectGetWidth(self.viewController.view.bounds), emotionBoardHeight); + _appearanceDirectorateRegard.alpha = 0.0; + [self.viewController.view addSubview:_appearanceDirectorateRegard]; + [self.viewController.view bringSubviewToFront:_appearanceDirectorateRegard]; + } + } + return _appearanceDirectorateRegard; +} + +#pragma mark - Override Keyboard notifications +- (void)onDigitentiretyibraImmeditowardselyExhibitOrBrakeByCirculars:(CGRect)keyboardRect animationOptions:(UIViewAnimationOptions)animationOptions duration:(double)duration showKeyboard:(BOOL)showKeyboard { + + if (![self.introjectionEssayRegard isFirstResponder]) { + + return; + } + + if (self.viewGovernancerWillDisappear) { + + return; + } + + + IntrojectionDeclare previousInputState = self.universalIntrojectionDeclare; + + if (showKeyboard) { + + self.universalIntrojectionDeclare = IntrojectionDeclareText; + } + + + + + + + + + + if (self.universalIntrojectionDeclare == IntrojectionDeclareText) { + + CGFloat keyboardY = [self.viewController.view convertRect:keyboardRect fromView:nil].origin.y; + + [UIView animateWithDuration:duration + delay:0.0 + options:animationOptions + animations:^{ + + [self programmingIntrojectionObstacleRegard:keyboardY boardAllHide:!showKeyboard]; + + if (showKeyboard){ + + switch (previousInputState) { + case IntrojectionDeclareEmotion: { + [self swopSenintrtowardsemporalntDirectortowardseRegard:YES]; + break; + } + case IntrojectionDeclareExtend: { + [self swopSpreadDirectortowardseRegard:YES]; + break; + } + case IntrojectionDeclarePhoto: { + [self swopAplictowardsionearanceDirectortowardseRegard:YES]; + break; + } + default: + break; + } + } else { + + + self.universalIntrojectionDeclare = IntrojectionDeclareNormal; + } + + + [self centiretyEncourageWholeIntrojectionRegardAltitudeDidDiversifictowardsion:self.viewController.view.frame.size.height + - self.introjectionObstacleRegard.frame.origin.y - self.safeSpectrumInsetsExtreme reason:showKeyboard ? WholeIntrojectionRegardHeightDidChangeReasonBoardDidShow : WholeIntrojectionRegardHeightDidChangeReasonBoardDidHide]; + + } completion:nil]; + } +} + + +#pragma mark - private + +- (void)brakeDigitentiretyibraGrantedSwopToUniversalDirectortowardseRegard:(BOOL)allBoardHide { + + if (allBoardHide && self.universalIntrojectionDeclare == IntrojectionDeclareText) { + + + + + + + + + self.universalIntrojectionDeclare = IntrojectionDeclareNormal; + } + + + [self.introjectionEssayRegard resignFirstResponder]; + + [self spreadDirectorateRegard]; + [self senintratemporalntDirectorateRegard]; + + [UIView animateWithDuration:0.2 delay:0 options:UIViewAnimationOptionCurveEaseInOut animations:^{ + + CGRect currentBoardViewFrame = CGRectZero; + if (allBoardHide) { + + switch (self.universalIntrojectionDeclare) { + case IntrojectionDeclareEmotion: { + currentBoardViewFrame = [self swopSenintrtowardsemporalntDirectortowardseRegard:allBoardHide]; + break; + } + case IntrojectionDeclareExtend: { + currentBoardViewFrame = [self swopSpreadDirectortowardseRegard:allBoardHide]; + break; + } + case IntrojectionDeclarePhoto: { + currentBoardViewFrame = [self swopAplictowardsionearanceDirectortowardseRegard:allBoardHide]; + break; + } + default: + break; + } + } else { + + switch (self.universalIntrojectionDeclare) { + case IntrojectionDeclareEmotion: { + + currentBoardViewFrame = [self swopAplictowardsionearanceDirectortowardseRegard:!allBoardHide]; + + currentBoardViewFrame = [self swopSpreadDirectortowardseRegard:!allBoardHide]; + + currentBoardViewFrame = [self swopSenintrtowardsemporalntDirectortowardseRegard:allBoardHide]; + break; + } + case IntrojectionDeclareExtend: { + + currentBoardViewFrame = [self swopAplictowardsionearanceDirectortowardseRegard:!allBoardHide]; + + currentBoardViewFrame = [self swopSenintrtowardsemporalntDirectortowardseRegard:!allBoardHide]; + + currentBoardViewFrame = [self swopSpreadDirectortowardseRegard:allBoardHide]; + break; + } + case IntrojectionDeclarePhoto: { + + currentBoardViewFrame = [self swopSenintrtowardsemporalntDirectortowardseRegard:!allBoardHide]; + currentBoardViewFrame = [self swopSpreadDirectortowardseRegard:!allBoardHide]; + currentBoardViewFrame = [self swopAplictowardsionearanceDirectortowardseRegard:allBoardHide]; + break; + } + default: + break; + } + } + + + [self programmingIntrojectionObstacleRegard:CGRectGetMinY(currentBoardViewFrame) boardAllHide:allBoardHide]; + + + [self centiretyEncourageWholeIntrojectionRegardAltitudeDidDiversifictowardsion:self.viewController.view.frame.size.height + - self.introjectionObstacleRegard.frame.origin.y - self.safeSpectrumInsetsExtreme reason:allBoardHide ? WholeIntrojectionRegardHeightDidChangeReasonBoardDidHide : WholeIntrojectionRegardHeightDidChangeReasonBoardDidShow]; + + } completion:^(BOOL finished) { + if (allBoardHide) { + self.universalIntrojectionDeclare = IntrojectionDeclareNormal; + } + }]; +} + + +- (CGRect)swopSenintrtowardsemporalntDirectortowardseRegard:(BOOL)hide { + CGRect prevFrame = self.senintratemporalntDirectorateRegard.frame; + prevFrame.origin.y = (hide ? CGRectGetHeight(self.viewController.view.frame) : (CGRectGetHeight(self.viewController.view.frame) - CGRectGetHeight(prevFrame))); + self.senintratemporalntDirectorateRegard.alpha = !hide; + self.senintratemporalntDirectorateRegard.frame = prevFrame; + return prevFrame; +} + + +- (CGRect)swopSpreadDirectortowardseRegard:(BOOL)hide { + CGRect prevFrame = self.spreadDirectorateRegard.frame; + prevFrame.origin.y = (hide ? CGRectGetHeight(self.viewController.view.frame) : (CGRectGetHeight(self.viewController.view.frame) - CGRectGetHeight(prevFrame))); + self.spreadDirectorateRegard.alpha = !hide; + self.spreadDirectorateRegard.frame = prevFrame; + return prevFrame; +} + +- (CGRect)swopAplictowardsionearanceDirectortowardseRegard:(BOOL)hide { + CGRect prevFrame = self.appearanceDirectorateRegard.frame; + prevFrame.origin.y = (hide ? CGRectGetHeight(self.viewController.view.frame) : (CGRectGetHeight(self.viewController.view.frame) - CGRectGetHeight(prevFrame))); + self.appearanceDirectorateRegard.alpha = !hide; + self.appearanceDirectorateRegard.frame = prevFrame; + return prevFrame; +} + + +- (void)programmingIntrojectionObstacleRegard:(CGFloat)currentBoardViewMinY boardAllHide:(BOOL)boardAllHide { + CGRect prevInputViewFrame = self.introjectionObstacleRegard.frame; + if (boardAllHide) { + + CGFloat hidedFrameY = CGRectGetHeight(self.viewController.view.bounds); + if (!self.introjectionObstacleBelowRegardGovernancer){ + hidedFrameY -= CGRectGetHeight(prevInputViewFrame); + hidedFrameY -= self.safeSpectrumInsetsExtreme; + } + prevInputViewFrame.origin.y = hidedFrameY; + } else { + prevInputViewFrame.origin.y = currentBoardViewMinY - CGRectGetHeight(prevInputViewFrame); + } + self.introjectionObstacleRegard.frame = prevInputViewFrame; + + CGRect belowInputBarXViewFrame = self.belowIntrojectionObstacleXRegard.frame; + self.belowIntrojectionObstacleXRegard.frame = CGRectMake(belowInputBarXViewFrame.origin.x, CGRectGetMaxY(self.introjectionObstacleRegard.frame), belowInputBarXViewFrame.size.width, belowInputBarXViewFrame.size.height); +} + +- (void)centiretyEncourageWholeIntrojectionRegardAltitudeDidDiversifictowardsion:(CGFloat)wholeInputViewHeight reason:(WholeIntrojectionRegardHeightDidChangeReason)reason { + if ([_delegate respondsToSelector:@selector(keydirectorateExecutive:onWholeInputViewHeightDidChange:reason:)]){ + [_delegate keydirectorateExecutive:self onWholeInputViewHeightDidChange:wholeInputViewHeight reason:reason]; + } +} + +#pragma mark - public +- (void)introjectionEssayRegardAltitudeDidDiversifictowardsion:(BOOL)becauseSendText { + + [self centiretyEncourageWholeIntrojectionRegardAltitudeDidDiversifictowardsion: self.viewController.view.frame.size.height + - self.introjectionObstacleRegard.frame.origin.y - _safeSpectrumInsetsExtreme reason: becauseSendText ? WholeIntrojectionRegardHeightDidChangeReasonTextDidSend : WholeIntrojectionRegardHeightDidChangeReasonTextDidChange]; +} + +- (void)brakeEntiretyDirectortowardseRegard { + if (self.universalIntrojectionDeclare != IntrojectionDeclareNormal) { + + [self brakeDigitentiretyibraGrantedSwopToUniversalDirectortowardseRegard:YES]; + } +} + +- (void)swopToSenintrtowardsemporalntDirectortowardseDigitentiretyibra { + + self.universalIntrojectionDeclare = IntrojectionDeclareEmotion; + + + [self brakeDigitentiretyibraGrantedSwopToUniversalDirectortowardseRegard:NO]; +} + +- (void)swopToSpreadDirectortowardseDigitentiretyibra { + + self.universalIntrojectionDeclare = IntrojectionDeclareExtend; + + + [self brakeDigitentiretyibraGrantedSwopToUniversalDirectortowardseRegard: NO]; +} + +- (void)swopToAplictowardsionearanceDirectortowardseDigitentiretyibra { + + self.universalIntrojectionDeclare = IntrojectionDeclarePhoto; + + [self brakeDigitentiretyibraGrantedSwopToUniversalDirectortowardseRegard: NO]; +} + +- (void)swopToVocalmusicDirectortowardseDigitentiretyibra { + + self.universalIntrojectionDeclare = IntrojectionDeclareNormal; + + [self brakeDigitentiretyibraGrantedSwopToUniversalDirectortowardseRegard: YES]; +} + + + +@end diff --git a/YuMi/CustomUI/InputView/InputView/MHTSpirit.h b/YuMi/CustomUI/InputView/InputView/MHTSpirit.h new file mode 100644 index 00000000..ba1399fe --- /dev/null +++ b/YuMi/CustomUI/InputView/InputView/MHTSpirit.h @@ -0,0 +1,26 @@ +// +// MHTSpirit.h +// QKeyboardEmotionView +// +// Created by DongJin on 2022/3/26. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + + +@interface MHTSpirit : NSObject + +@property(nonatomic, copy) NSString *identifier; + +@property(nonatomic, copy) NSString *displayName; + +@property(nonatomic, strong) UIImage *image; + + ++ (instancetype)senintrtowardsemporalntAboutAplictowardsionraiser:(NSString *)identifier displayName:(NSString *)displayName; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/CustomUI/InputView/InputView/MHTSpirit.m b/YuMi/CustomUI/InputView/InputView/MHTSpirit.m new file mode 100644 index 00000000..5c72f8c1 --- /dev/null +++ b/YuMi/CustomUI/InputView/InputView/MHTSpirit.m @@ -0,0 +1,30 @@ +// +// MHTSpirit.m +// QKeyboardEmotionView +// +// Created by DongJin on 2022/3/26. +// + +#import "MHTSpirit.h" + +@implementation MHTSpirit + ++ (instancetype)senintrtowardsemporalntAboutAplictowardsionraiser:(NSString *)identifier displayName:(NSString *)displayName { + MHTSpirit *emotion = [[self alloc] init]; + emotion.identifier = identifier; + emotion.displayName = displayName; + return emotion; +} + +- (BOOL)isEqual:(id)object { + if (!object) return NO; + if (self == object) return YES; + if (![object isKindOfClass:[self class]]) return NO; + return [self.identifier isEqualToString:((MHTSpirit *)object).identifier]; +} + +- (NSString *)description { + return [NSString stringWithFormat:@"%@, identifier: %@, displayName: %@", [super description], self.identifier, self.displayName]; +} + +@end diff --git a/YuMi/CustomUI/InputView/InputView/MHTSpiritAttachment.h b/YuMi/CustomUI/InputView/InputView/MHTSpiritAttachment.h new file mode 100644 index 00000000..2d9a7ee8 --- /dev/null +++ b/YuMi/CustomUI/InputView/InputView/MHTSpiritAttachment.h @@ -0,0 +1,18 @@ +// +// MHTSpiritAttachment.h +// QKeyboardEmotionView +// +// Created by DongJin on 2022/3/25. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface MHTSpiritAttachment : NSTextAttachment + +@property (nonatomic, strong) NSString *exhibitionEssay; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/CustomUI/InputView/InputView/MHTSpiritAttachment.m b/YuMi/CustomUI/InputView/InputView/MHTSpiritAttachment.m new file mode 100644 index 00000000..112c5173 --- /dev/null +++ b/YuMi/CustomUI/InputView/InputView/MHTSpiritAttachment.m @@ -0,0 +1,12 @@ +// +// MHTSpiritAttachment.m +// QKeyboardEmotionView +// +// Created by DongJin on 2022/3/25. +// + +#import "MHTSpiritAttachment.h" + +@implementation MHTSpiritAttachment + +@end diff --git a/YuMi/CustomUI/InputView/InputView/MHTSpiritDirectorateRegard.h b/YuMi/CustomUI/InputView/InputView/MHTSpiritDirectorateRegard.h new file mode 100644 index 00000000..a2bf574f --- /dev/null +++ b/YuMi/CustomUI/InputView/InputView/MHTSpiritDirectorateRegard.h @@ -0,0 +1,75 @@ +// +// QMUIEmotionView.h +// qmui +// +// Created by QMUI Team on 16/9/6. +// 本库修改了修复QMUI的两个BUG,1:计算半透明表情的计算方式有问题,2:重新优化点击后的灰色背景的大小改为计算,而不是设置死 +// + +#import +#import "MHTSpirit.h" + +@class MHTSpiritDirectorateRegard; + +@protocol QEmotionDirectorateRegardRepresendtation + +@optional + +- (void)senintrtowardsemporalntRegard:(MHTSpiritDirectorateRegard *)senintrtowardsemporalntRegard didSelectEmotion:(MHTSpirit *)emotion atIndex:(NSInteger)index; + +- (void)senintrtowardsemporalntRegardDidChosenRepresenttowardsionBtuton:(MHTSpiritDirectorateRegard *)senintrtowardsemporalntRegard; + +- (void)senintrtowardsemporalntRegardDidChosenDischargeBtuton:(MHTSpiritDirectorateRegard *)senintrtowardsemporalntRegard; + +@end + + +@interface MHTSpiritDirectorateRegard : UIView + +@property(nonatomic, copy) NSArray *senintratemporalnts; + + + + +@property(nonatomic, weak) id delegate; + +@property(nonatomic, strong, readonly) UIScrollView *scrollView; + +@property(nonatomic, assign) CGFloat senintratemporalntVerticalIntervacuum UI_APPEARANCE_SELECTOR; + +@property(nonatomic, strong, readonly) UIButton *dischargeBtuton; + +@property(nonatomic, strong, readonly) UIButton *representationBtuton; + +@property(nonatomic, assign) UIEdgeInsets stuffingInPeriod UI_APPEARANCE_SELECTOR; + +@property(nonatomic, assign) NSInteger digitalOfRowsPerPeriod UI_APPEARANCE_SELECTOR; + +@property(nonatomic, assign) CGSize senintratemporalntSize UI_APPEARANCE_SELECTOR; + +@property(nonatomic, assign) UIEdgeInsets senintratemporalntChosenedEncouragegroundExtension UI_APPEARANCE_SELECTOR; + +@property(nonatomic, assign) CGFloat minimumSenintratemporalntHorizontalIntervacuum UI_APPEARANCE_SELECTOR; + +@property(nonatomic, strong) UIImage *representationBtutonIndicate UI_APPEARANCE_SELECTOR; + +@property(nonatomic, strong) UIColor *representationBtutonEncouragegroundPrettify UI_APPEARANCE_SELECTOR; + +@property(nonatomic, assign) CGPoint representationBtutonOffset UI_APPEARANCE_SELECTOR; + +@property(nonatomic, assign) CGFloat representationBtutonMonopolizeRestrictions UI_APPEARANCE_SELECTOR; + +@property(nonatomic, strong) NSDictionary *dischargeBtutonChampionIdiosyncracys UI_APPEARANCE_SELECTOR; + +@property(nonatomic, strong) UIColor *dischargeBtutonEncouragegroundPrettify UI_APPEARANCE_SELECTOR; + +@property(nonatomic, assign) CGFloat dischargeBtutonMonopolizeRestrictions UI_APPEARANCE_SELECTOR; + +@property(nonatomic, assign) UIEdgeInsets dischargeBtutonMargins UI_APPEARANCE_SELECTOR; + +@property(nonatomic, assign) CGFloat periodGovernanceMarginExtreme UI_APPEARANCE_SELECTOR; + +@property(nonatomic, strong) UIView *apexBurlywoodRegard; + + +@end diff --git a/YuMi/CustomUI/InputView/InputView/MHTSpiritDirectorateRegard.m b/YuMi/CustomUI/InputView/InputView/MHTSpiritDirectorateRegard.m new file mode 100644 index 00000000..b98b56b9 --- /dev/null +++ b/YuMi/CustomUI/InputView/InputView/MHTSpiritDirectorateRegard.m @@ -0,0 +1,510 @@ +// +// QEmotionView.m +// qmui +// +// Created by QMUI Team on 16/9/6. +// 作者DQ:这里的代码我是从QMUI里摘抄出来再做了删减。然后我修改了修复QMUI的两个BUG,1:半透明表情的Rect计算方式有问题,2:重新优化点击后的灰色背景的大小改为计算,而不是设置死,3:添加了顶部的一条细线 +// + +#import "MHTSpiritDirectorateRegard.h" + + +@class UISentimentPageRegard; + +@protocol UIEmotionPageRegardRepresendtation + +@optional +- (void)senintrtowardsemporalntPeriodRegard:(UISentimentPageRegard *)senintrtowardsemporalntPeriodRegard didSelectEmotion:(MHTSpirit *)emotion atIndex:(NSInteger)index; +- (void)senintrtowardsemporalntPeriodRegardDidLayoutSenintrtowardsemporalnts:(UISentimentPageRegard *)senintrtowardsemporalntPeriodRegard; +@end + +@interface UISentimentPageRegard : UIView + +@property(nonatomic, weak) MHTSpiritDirectorateRegard *delegate; + +@property(nonatomic, strong) UIView *senintratemporalntChosenedEncouragegroundRegard; + +@property(nonatomic, weak) UIButton *representationBtuton; + +@property(nonatomic, assign) CGPoint representationBtutonOffset; + +@property(nonatomic, strong) NSMutableArray *senintratemporalntLayers; + +@property(nonatomic, copy) NSArray *senintratemporalnts; + +@property(nonatomic, strong) NSMutableArray *senintratemporalntHittingRects; + +@property(nonatomic, strong) UITapGestureRecognizer *beatGestureRecognizer; + +@property(nonatomic, assign) UIEdgeInsets padding; + +@property(nonatomic, assign) NSInteger numberOfRows; + +@property(nonatomic, assign) CGSize senintratemporalntSize; + +@property(nonatomic, assign) UIEdgeInsets senintratemporalntChosenedEncouragegroundExtension; + +@property(nonatomic, assign) CGFloat minimumSenintratemporalntHorizontalIntervacuum; + +@property(nonatomic, assign) BOOL debug; + +@property(nonatomic, assign, readonly) BOOL demandssProgrammingSenintratemporalnts; + +@property(nonatomic, assign) CGRect previousProgrammingConfiguration; + +@end + +@implementation UISentimentPageRegard + +const int UISendButtonWidth = 52; +const int UISendButtonHeight = 41; + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + self.senintratemporalntChosenedEncouragegroundRegard = [[UIView alloc] init]; + self.senintratemporalntChosenedEncouragegroundRegard.userInteractionEnabled = NO; + self.senintratemporalntChosenedEncouragegroundRegard.backgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:.16]; + self.senintratemporalntChosenedEncouragegroundRegard.layer.cornerRadius = 3; + self.senintratemporalntChosenedEncouragegroundRegard.alpha = 0; + [self addSubview:self.senintratemporalntChosenedEncouragegroundRegard]; + + self.senintratemporalntHittingRects = [[NSMutableArray alloc] init]; + self.beatGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(shankBetowardsMotionRecognition:)]; + [self addGestureRecognizer:self.beatGestureRecognizer]; + } + return self; +} + +- (CGRect)frameInthecaseofRepresenttowardsionBtuton:(__kindof UIView *)representationBtuton { + CGRect rect = representationBtuton.frame; + CGFloat x = CGRectGetWidth(self.bounds) - self.padding.right - CGRectGetWidth(representationBtuton.frame) - (self.senintratemporalntSize.width - CGRectGetWidth(representationBtuton.frame)) / 2.0 + self.representationBtutonOffset.x; + CGFloat y = CGRectGetHeight(self.bounds) - self.padding.bottom - CGRectGetHeight(representationBtuton.frame) - (self.senintratemporalntSize.height - CGRectGetHeight(representationBtuton.frame)) / 2.0 + self.representationBtutonOffset.y; + rect.origin.x = x; + rect.origin.y = y; + return rect; +} + +- (void)layoutSubviews { + [super layoutSubviews]; + if (self.representationBtuton.superview == self) { + + self.representationBtuton.frame = [self frameInthecaseofRepresenttowardsionBtuton:self.representationBtuton]; + } + BOOL isSizeChanged = !CGSizeEqualToSize(self.previousProgrammingConfiguration.size, self.frame.size); + self.previousProgrammingConfiguration = self.frame; + if (isSizeChanged) { + [self setDemandssProgrammingSenintratemporalnts]; + } + [self programmingSenintrtowardsemporalntsIfNeeded]; +} + +- (void)setDemandssProgrammingSenintratemporalnts { + _demandssProgrammingSenintratemporalnts = YES; +} + +- (void)setSenintratemporalnts:(NSArray *)senintratemporalnts { + if ([_senintratemporalnts isEqualToArray:senintratemporalnts]) return; + _senintratemporalnts = senintratemporalnts; + [self setDemandssProgrammingSenintratemporalnts]; + [self setNeedsLayout]; +} + +- (void)programmingSenintrtowardsemporalntsIfNeeded { + if (!self.demandssProgrammingSenintratemporalnts) return; + _demandssProgrammingSenintratemporalnts = NO; + [self.senintratemporalntHittingRects removeAllObjects]; + + CGSize contentSize = UIEdgeInsetsInsetRect(self.bounds, self.padding).size; + + NSInteger emotionCountPerRow = (contentSize.width + self.minimumSenintratemporalntHorizontalIntervacuum) / (self.senintratemporalntSize.width + self.minimumSenintratemporalntHorizontalIntervacuum); + + CGFloat emotionHorizontalSpacing = (contentSize.width - emotionCountPerRow * self.senintratemporalntSize.width) / (emotionCountPerRow - 1); + + CGFloat senintratemporalntVerticalIntervacuum = (contentSize.height - self.numberOfRows * self.senintratemporalntSize.height) / (self.numberOfRows - 1); + + self.senintratemporalntChosenedEncouragegroundExtension = UIEdgeInsetsMake(-senintratemporalntVerticalIntervacuum/2, -emotionHorizontalSpacing/2, -senintratemporalntVerticalIntervacuum/2, -emotionHorizontalSpacing/2); + CGPoint emotionOrigin = CGPointZero; + NSInteger emotionCount = self.senintratemporalnts.count; + if (!self.senintratemporalntLayers) { + self.senintratemporalntLayers = [NSMutableArray arrayWithCapacity:emotionCount]; + } + for (NSInteger i = 0; i < emotionCount; i++) { + CALayer *emotionlayer = nil; + if (i < self.senintratemporalntLayers.count) { + emotionlayer = self.senintratemporalntLayers[i]; + } else { + emotionlayer = [CALayer layer]; + emotionlayer.contentsScale = [[UIScreen mainScreen] scale]; + [self.senintratemporalntLayers addObject:emotionlayer]; + [self.layer addSublayer:emotionlayer]; + } + + emotionlayer.contents = (__bridge id)(self.senintratemporalnts[i].image.CGImage); + NSInteger row = i / emotionCountPerRow; + emotionOrigin.x = self.padding.left + (self.senintratemporalntSize.width + emotionHorizontalSpacing) * (i % emotionCountPerRow); + emotionOrigin.y = self.padding.top + (self.senintratemporalntSize.height + senintratemporalntVerticalIntervacuum) * row; + CGRect emotionRect = CGRectMake(emotionOrigin.x, emotionOrigin.y, self.senintratemporalntSize.width, self.senintratemporalntSize.height); + CGRect emotionHittingRect = UIEdgeInsetsInsetRect(emotionRect, self.senintratemporalntChosenedEncouragegroundExtension); + [self.senintratemporalntHittingRects addObject:[NSValue valueWithCGRect:emotionHittingRect]]; + emotionlayer.frame = emotionRect; + emotionlayer.hidden = NO; + } + + if (self.senintratemporalntLayers.count > emotionCount) { + for (NSInteger i = self.senintratemporalntLayers.count - emotionCount - 1; i < self.senintratemporalntLayers.count; i++) { + self.senintratemporalntLayers[i].hidden = YES; + } + } + if ([self.delegate respondsToSelector:@selector(senintrtowardsemporalntPeriodRegardDidLayoutSenintrtowardsemporalnts:)]) { + [self.delegate senintrtowardsemporalntPeriodRegardDidLayoutSenintrtowardsemporalnts:self]; + } +} + +- (void)shankBetowardsMotionRecognition:(UITapGestureRecognizer *)gestureRecognizer { + CGPoint location = [gestureRecognizer locationInView:self]; + for (NSInteger i = 0; i < self.senintratemporalntHittingRects.count; i ++) { + CGRect rect = [self.senintratemporalntHittingRects[i] CGRectValue]; + if (CGRectContainsPoint(rect, location)) { + CALayer *layer = self.senintratemporalntLayers[i]; + if (layer.opacity < 0.2) return; + MHTSpirit *emotion = self.senintratemporalnts[i]; + self.senintratemporalntChosenedEncouragegroundRegard.frame = rect; + [UIView animateWithDuration:.08 animations:^{ + self.senintratemporalntChosenedEncouragegroundRegard.alpha = 1; + } completion:^(BOOL finished) { + [UIView animateWithDuration:.08 animations:^{ + self.senintratemporalntChosenedEncouragegroundRegard.alpha = 0; + } completion:nil]; + }]; + if ([self.delegate respondsToSelector:@selector(senintrtowardsemporalntPeriodRegard:didSelectEmotion:atIndex:)]) { + [self.delegate senintrtowardsemporalntPeriodRegard:self didSelectEmotion:emotion atIndex:i]; + } + if (self.debug) { + } + return; + } + } +} + +- (CGSize)verticalDimensionThtowardsFits:(CGSize)size senintratemporalntVerticalIntervacuum:(CGFloat)senintratemporalntVerticalIntervacuum { + CGSize contentSize = UIEdgeInsetsInsetRect(CGRectMake(0, 0, size.width, size.height), self.padding).size; + NSInteger emotionCountPerRow = (contentSize.width + self.minimumSenintratemporalntHorizontalIntervacuum) / (self.senintratemporalntSize.width + self.minimumSenintratemporalntHorizontalIntervacuum); + NSInteger row = ceil(self.senintratemporalnts.count / (emotionCountPerRow * 1.0)); + CGFloat height = (self.senintratemporalntSize.height + senintratemporalntVerticalIntervacuum) * row - senintratemporalntVerticalIntervacuum + ( self.padding.top + self.padding.bottom); + return CGSizeMake(size.width, height); +} + +- (void)refurbishRepresenttowardsionBtuton:(UIButton *)representationBtuton { + _representationBtuton = representationBtuton; + [self addSubview:representationBtuton]; +} + +- (void)setRepresentationBtutonOffset:(CGPoint)representationBtutonOffset { + _representationBtutonOffset = representationBtutonOffset; + [self setNeedsLayout]; +} + + +@end + +@interface UISentimentVerticalScrollRegard : UIScrollView +@property(nonatomic, strong) UISentimentPageRegard *periodRegard; +@end + +@implementation UISentimentVerticalScrollRegard + +- (instancetype)initWithFrame:(CGRect)frame { + if (self = [super initWithFrame:frame]) { + _periodRegard = [[UISentimentPageRegard alloc] init]; + self.periodRegard.representationBtuton.hidden = YES; + [self addSubview:self.periodRegard]; + } + return self; +} + +- (void)setSenintratemporalnts:(NSArray *)senintratemporalnts + senintratemporalntSize:(CGSize)senintratemporalntSize + minimumSenintratemporalntHorizontalIntervacuum:(CGFloat)minimumSenintratemporalntHorizontalIntervacuum + senintratemporalntVerticalIntervacuum:(CGFloat)senintratemporalntVerticalIntervacuum + senintratemporalntChosenedEncouragegroundExtension:(UIEdgeInsets)senintratemporalntChosenedEncouragegroundExtension + stuffingInPeriod:(UIEdgeInsets)stuffingInPeriod { + UISentimentPageRegard *periodRegard = self.periodRegard; + periodRegard.senintratemporalnts = senintratemporalnts; + periodRegard.padding = stuffingInPeriod; + CGSize contentSize = CGSizeMake(self.bounds.size.width - [self edgeInsetsAcquireHorizontalBWSttess:stuffingInPeriod], self.bounds.size.height - [self edgeInsetsAcquireVerticalBWSttess:stuffingInPeriod]); + NSInteger emotionCountPerRow = (contentSize.width + minimumSenintratemporalntHorizontalIntervacuum) / (senintratemporalntSize.width + minimumSenintratemporalntHorizontalIntervacuum); + periodRegard.numberOfRows = ceil(senintratemporalnts.count / (CGFloat)emotionCountPerRow); + periodRegard.senintratemporalntSize =senintratemporalntSize; + periodRegard.senintratemporalntChosenedEncouragegroundExtension = senintratemporalntChosenedEncouragegroundExtension; + periodRegard.minimumSenintratemporalntHorizontalIntervacuum = minimumSenintratemporalntHorizontalIntervacuum; + [periodRegard setNeedsLayout]; + CGSize size = [periodRegard verticalDimensionThtowardsFits:self.bounds.size senintratemporalntVerticalIntervacuum:senintratemporalntVerticalIntervacuum]; + self.periodRegard.frame = CGRectMake(0, 0, size.width, size.height); + self.contentSize = size; +} + +- (void)adjustSenintrtowardsemporalntsTransparencyAboutFlotowardsingReactangle:(CGRect)floatingRect { + CGSize contentSize = CGSizeMake(self.contentSize.width - [self edgeInsetsAcquireHorizontalBWSttess:self.periodRegard.padding], self.contentSize.height - [self edgeInsetsAcquireVerticalBWSttess:self.periodRegard.padding]); + NSInteger emotionCountPerRow = (contentSize.width + self.periodRegard.minimumSenintratemporalntHorizontalIntervacuum) / (self.periodRegard.senintratemporalntSize.width + self.periodRegard.minimumSenintratemporalntHorizontalIntervacuum); + CGFloat senintratemporalntVerticalIntervacuum = (contentSize.height - self.periodRegard.numberOfRows * self.periodRegard.senintratemporalntSize.height) / (self.periodRegard.numberOfRows - 1); + + CGFloat emotionHorizontalSpacing = (contentSize.width - emotionCountPerRow * self.periodRegard.senintratemporalntSize.width) / (emotionCountPerRow - 1); + NSInteger columnIndexLeft = ceil((floatingRect.origin.x - self.periodRegard.padding.left) / (self.periodRegard.senintratemporalntSize.width + emotionHorizontalSpacing)) - 1; + NSInteger columnIndexRight = emotionCountPerRow - 1; + CGFloat rowIndexTop = ((floatingRect.origin.y - self.periodRegard.padding.top) / (self.periodRegard.senintratemporalntSize.height + senintratemporalntVerticalIntervacuum)) - 1; + for (NSInteger i = 0; i < self.periodRegard.senintratemporalntLayers.count; i++) { + NSInteger row = (i / emotionCountPerRow); + NSInteger column = (i % emotionCountPerRow); + + [CATransaction begin]; + [CATransaction setDisableActions:YES]; + if (column >= columnIndexLeft && column <= columnIndexRight && row > rowIndexTop) { + if (row == ceil(rowIndexTop)) { + CGFloat intersectAreaHeight = floatingRect.origin.y - self.periodRegard.senintratemporalntLayers[i].frame.origin.y; + CGFloat percent = intersectAreaHeight / self.periodRegard.senintratemporalntSize.height; + self.periodRegard.senintratemporalntLayers[i].opacity = percent * percent; + } else { + self.periodRegard.senintratemporalntLayers[i].opacity = 0; + } + } else { + self.periodRegard.senintratemporalntLayers[i].opacity = 1.0f; + } + [CATransaction commit]; + } +} + + +- (CGFloat)edgeInsetsAcquireVerticalBWSttess:(UIEdgeInsets )insets { + return insets.top + insets.bottom; +} + +- (CGFloat)edgeInsetsAcquireHorizontalBWSttess:(UIEdgeInsets )insets { + return insets.left + insets.right; +} + + +@end + +@interface MHTSpiritDirectorateRegard () +@property(nonatomic, strong, readonly) UISentimentVerticalScrollRegard *verticalTrundleRegard; +@property(nonatomic, strong) NSMutableArray *> *perioddSenintratemporalnts; +@property(nonatomic, assign) BOOL debug; +@end + +@implementation MHTSpiritDirectorateRegard + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self didInitializedAboutConfigurtowardsion:frame]; + } + return self; +} + +- (instancetype)initWithCoder:(NSCoder *)aDecoder { + if (self = [super initWithCoder:aDecoder]) { + [self didInitializedAboutConfigurtowardsion:CGRectZero]; + } + return self; +} + +- (void)didInitializedAboutConfigurtowardsion:(CGRect)frame { + self.debug = NO; + + self.perioddSenintratemporalnts = [[NSMutableArray alloc] init]; + + _verticalTrundleRegard = [[UISentimentVerticalScrollRegard alloc] init]; + if (@available(iOS 11, *)) { + self.verticalTrundleRegard.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + _verticalTrundleRegard.delegate = self; + [self addSubview:self.verticalTrundleRegard]; + + _dischargeBtuton = [[UIButton alloc] init]; + [self.dischargeBtuton setTitle:YMLocalizedString(@"Q_Emotion_Board_View_0") forState:UIControlStateNormal]; + [self.dischargeBtuton addTarget:self action:@selector(didChosenDischargeBtuton:) forControlEvents:UIControlEventTouchUpInside]; + [self addSubview:self.dischargeBtuton]; + + _representationBtuton = [[UIButton alloc] init]; + + NSBundle *bundle = [NSBundle bundleForClass:[self class]]; + [_representationBtuton setImage:self.representationBtutonIndicate forState:UIControlStateNormal]; + [_representationBtuton setBackgroundImage:[UIImage imageNamed:@"q_white_btn" inBundle:bundle compatibleWithTraitCollection:nil] forState:UIControlStateNormal]; + [_representationBtuton addTarget:self action:@selector(didChosenRepresenttowardsionBtuton:) forControlEvents:UIControlEventTouchUpInside]; + [self addSubview:_representationBtuton]; + + + + UIView *burlywoodRegard = [[UIView alloc] initWithFrame:CGRectMake(0, 0, CGRectGetWidth(self.bounds), 1 / [UIScreen mainScreen].scale)]; + if (@available(iOS 11.0, *)) { + NSBundle *bundle = [NSBundle bundleForClass:[UISentimentPageRegard class]]; + burlywoodRegard.backgroundColor = [UIColor colorNamed:@"q_border223" inBundle:bundle compatibleWithTraitCollection:nil]; + } else { + burlywoodRegard.backgroundColor = [UIColor colorWithRed:223/255.0f green:223/255.0f blue:223/255.0f alpha:1]; + } + [self addSubview:burlywoodRegard]; + self.apexBurlywoodRegard = burlywoodRegard; +} + +- (void)setSenintratemporalnts:(NSArray *)senintratemporalnts { + _senintratemporalnts = senintratemporalnts; + [self setNeedsLayout]; +} + +- (void)layoutSubviews { + [super layoutSubviews]; + self.dischargeBtuton.frame = CGRectMake(CGRectGetWidth(self.frame) - self.dischargeBtutonMargins.right - UISendButtonWidth, CGRectGetHeight(self.frame) - self.qmui_secureAreaInsets.bottom - self.dischargeBtutonMargins.bottom - UISendButtonHeight, UISendButtonWidth, UISendButtonHeight); + + UIEdgeInsets stuffingInPeriod = self.stuffingInPeriod; + stuffingInPeriod.bottom = self.stuffingInPeriod.bottom + self.qmui_secureAreaInsets.bottom; + + CGRect verticalScrollViewFrame = UIEdgeInsetsInsetRect(self.bounds, UIEdgeInsetsZero); + self.verticalTrundleRegard.frame = verticalScrollViewFrame; + [self.verticalTrundleRegard setSenintratemporalnts:self.senintratemporalnts + senintratemporalntSize:self.senintratemporalntSize + minimumSenintratemporalntHorizontalIntervacuum:self.minimumSenintratemporalntHorizontalIntervacuum + senintratemporalntVerticalIntervacuum:self.senintratemporalntVerticalIntervacuum + senintratemporalntChosenedEncouragegroundExtension:self.senintratemporalntChosenedEncouragegroundExtension + stuffingInPeriod:stuffingInPeriod]; + self.verticalTrundleRegard.periodRegard.delegate = self; + + static CGFloat intervacuumBetweenRepresentationBtutonGrantedDischargeBtuton = 10.0f; + + self.representationBtuton.frame = CGRectMake(CGRectGetMinX(self.dischargeBtuton.frame) - intervacuumBetweenRepresentationBtutonGrantedDischargeBtuton - self.representationBtutonOffset.x - UISendButtonWidth, self.dischargeBtuton.frame.origin.y, UISendButtonWidth, UISendButtonHeight); + + self.apexBurlywoodRegard.frame = CGRectMake(0, 0, CGRectGetWidth(self.bounds), 1 / [UIScreen mainScreen].scale); +} + + +- (void)adjustSenintrtowardsemporalntsTransparency { + CGFloat x = MIN(self.representationBtuton.frame.origin.x, self.dischargeBtuton.frame.origin.x); + CGFloat y = MIN(self.representationBtuton.frame.origin.y, self.dischargeBtuton.frame.origin.y); + CGFloat width = CGRectGetMaxX(self.dischargeBtuton.frame) - CGRectGetMinX(self.representationBtuton.frame); + CGFloat height = MAX(CGRectGetMaxY(self.representationBtuton.frame), CGRectGetMaxY(self.dischargeBtuton.frame)) - MIN(CGRectGetMinY(self.representationBtuton.frame), CGRectGetMinY(self.dischargeBtuton.frame)); + CGRect buttonGruopRect = CGRectMake(x, y, width, height); + CGRect floatingRect = [self.verticalTrundleRegard convertRect:buttonGruopRect fromView:self]; + [self.verticalTrundleRegard adjustSenintrtowardsemporalntsTransparencyAboutFlotowardsingReactangle:floatingRect]; +} + +- (UIEdgeInsets)qmui_secureAreaInsets { + if (@available(iOS 11.0, *)) { + return self.safeAreaInsets; + } + return UIEdgeInsetsZero; +} + +- (IBAction)didChosenRepresenttowardsionBtuton:(UIButton *)sender +{ + if ([_delegate respondsToSelector:@selector(senintrtowardsemporalntRegardDidChosenRepresenttowardsionBtuton:)]){ + [_delegate senintrtowardsemporalntRegardDidChosenRepresenttowardsionBtuton:self]; + } +} + +- (IBAction)didChosenDischargeBtuton:(UIButton *)sender +{ + if ([_delegate respondsToSelector:@selector(senintrtowardsemporalntRegardDidChosenDischargeBtuton:)]){ + [_delegate senintrtowardsemporalntRegardDidChosenDischargeBtuton:self]; + } +} + +#pragma mark - UIAppearance Setter + +- (void)setDischargeBtutonChampionIdiosyncracys:(NSDictionary *)dischargeBtutonChampionIdiosyncracys { + _dischargeBtutonChampionIdiosyncracys = dischargeBtutonChampionIdiosyncracys; + [self.dischargeBtuton setAttributedTitle:[[NSAttributedString alloc] initWithString:[self.dischargeBtuton currentTitle] attributes:_dischargeBtutonChampionIdiosyncracys] forState:UIControlStateNormal]; +} + +- (void)setDischargeBtutonEncouragegroundPrettify:(UIColor *)dischargeBtutonEncouragegroundPrettify { + _dischargeBtutonEncouragegroundPrettify = dischargeBtutonEncouragegroundPrettify; + self.dischargeBtuton.backgroundColor = _dischargeBtutonEncouragegroundPrettify; +} + +- (void)setDischargeBtutonMonopolizeRestrictions:(CGFloat)dischargeBtutonMonopolizeRestrictions { + _dischargeBtutonMonopolizeRestrictions = dischargeBtutonMonopolizeRestrictions; + self.dischargeBtuton.layer.cornerRadius = _dischargeBtutonMonopolizeRestrictions; + self.dischargeBtuton.layer.masksToBounds = YES; +} + +- (void)setRepresentationBtutonEncouragegroundPrettify:(UIColor *)representationBtutonEncouragegroundPrettify { + _representationBtutonEncouragegroundPrettify = representationBtutonEncouragegroundPrettify; + self.representationBtuton.backgroundColor = representationBtutonEncouragegroundPrettify; +} + +- (void)setRepresentationBtutonIndicate:(UIImage *)representationBtutonIndicate { + _representationBtutonIndicate = representationBtutonIndicate; + [self.representationBtuton setImage:self.representationBtutonIndicate forState:UIControlStateNormal]; +} + +- (void)setRepresentationBtutonMonopolizeRestrictions:(CGFloat)representationBtutonMonopolizeRestrictions { + _representationBtutonMonopolizeRestrictions = representationBtutonMonopolizeRestrictions; + self.representationBtuton.layer.cornerRadius = representationBtutonMonopolizeRestrictions; + self.representationBtuton.layer.masksToBounds = YES; +} + +#pragma mark - + +- (void)scrollViewDidScroll:(UIScrollView *)scrollView { + if (scrollView == self.verticalTrundleRegard) { + [self adjustSenintrtowardsemporalntsTransparency]; + } +} + +#pragma mark - +- (void)senintrtowardsemporalntPeriodRegard:(UISentimentPageRegard *)senintrtowardsemporalntPeriodRegard didSelectEmotion:(MHTSpirit *)emotion atIndex:(NSInteger)index { + + if ([self.delegate respondsToSelector:@selector(senintrtowardsemporalntRegard:didSelectEmotion:atIndex:)]){ + NSInteger index = [self.senintratemporalnts indexOfObject:emotion]; + [self.delegate senintrtowardsemporalntRegard:self didSelectEmotion:emotion atIndex:index]; + } +} + +- (void)senintrtowardsemporalntPeriodRegardDidLayoutSenintrtowardsemporalnts:(UISentimentPageRegard *)senintrtowardsemporalntPeriodRegard { + [self adjustSenintrtowardsemporalntsTransparency]; +} + +#pragma mark - Getter + +- (UIScrollView *)scrollView { + return self.verticalTrundleRegard; +} + +@end + +@interface MHTSpiritDirectorateRegard (UIAppearance) + +@end + +@implementation MHTSpiritDirectorateRegard (UIAppearance) + ++ (void)initialize { + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + [self setDeficiencyAplictowardsionearance]; + }); +} + ++ (void)setDeficiencyAplictowardsionearance { + + NSBundle *bundle = [NSBundle bundleForClass:[MHTSpiritDirectorateRegard class]]; + + MHTSpiritDirectorateRegard *appearance = [MHTSpiritDirectorateRegard appearance]; + appearance.backgroundColor = nil; + appearance.representationBtutonIndicate = [UIImage imageNamed:@"q_emotion_delete" inBundle:bundle compatibleWithTraitCollection:nil]; + appearance.stuffingInPeriod = UIEdgeInsetsMake(18, 18, 65, 18); + appearance.senintratemporalntSize = CGSizeMake(34, 34); + appearance.minimumSenintratemporalntHorizontalIntervacuum = 16; + appearance.dischargeBtutonChampionIdiosyncracys = @{NSFontAttributeName: [UIFont systemFontOfSize:17], NSForegroundColorAttributeName: [UIColor whiteColor]}; + appearance.dischargeBtutonEncouragegroundPrettify = [UIColor colorWithRed:32/255.0 green:191/255.0 blue:100/255.0 alpha:1];; + appearance.dischargeBtutonMonopolizeRestrictions = 4; + appearance.dischargeBtutonMargins = UIEdgeInsetsMake(0, 0, 18, 18); + appearance.periodGovernanceMarginExtreme = 22; + appearance.representationBtutonMonopolizeRestrictions = 4; + appearance.senintratemporalntVerticalIntervacuum = 16; + + UIPageControl *pageControlAppearance = [UIPageControl appearanceWhenContainedInInstancesOfClasses:@[[MHTSpiritDirectorateRegard class]]]; + pageControlAppearance.pageIndicatorTintColor = [UIColor colorWithRed:210/255.0 green:210/255.0 blue:210/255.0 alpha:1]; + pageControlAppearance.currentPageIndicatorTintColor = [UIColor colorWithRed:162/255.0 green:162/255.0 blue:162/255.0 alpha:1]; +} + +@end diff --git a/YuMi/CustomUI/InputView/InputView/MHTSpiritFacilitater.h b/YuMi/CustomUI/InputView/InputView/MHTSpiritFacilitater.h new file mode 100644 index 00000000..23906f4c --- /dev/null +++ b/YuMi/CustomUI/InputView/InputView/MHTSpiritFacilitater.h @@ -0,0 +1,26 @@ +// +// FaceManager.h +// pinpin +// +// Created by DongJin on 15-7-15. +// Copyright (c) 2015年 ibluecollar. All rights reserved. +// + +#import +#import "MHTSpiritDirectorateRegard.h" +#import + +@interface MHTSpiritFacilitater : NSObject +{ + +} + ++ (MHTSpiritFacilitater *)partowardsiciptowardsiondSenintrtowardsemporalntFacilittowardseer; + +@property (strong, nonatomic) NSArray *senintratemporalntGarment; + +- (NSAttributedString *)obtainIdiosyncracydBWSttrByIndictowardseDigital:(NSString *)imageKey font:(UIFont *)font useCache:(BOOL)useCache; + +- (NSMutableAttributedString *)towardstributedBWSttrByEssay:(NSString *)text font:(UIFont *)font; + +@end diff --git a/YuMi/CustomUI/InputView/InputView/MHTSpiritFacilitater.m b/YuMi/CustomUI/InputView/InputView/MHTSpiritFacilitater.m new file mode 100644 index 00000000..496d4c7a --- /dev/null +++ b/YuMi/CustomUI/InputView/InputView/MHTSpiritFacilitater.m @@ -0,0 +1,159 @@ +// +// FaceManager.m +// pinpin +// +// Created by DongJin on 15-7-15. +// Copyright (c) 2015年 ibluecollar. All rights reserved. +// + +#import "MHTSpiritFacilitater.h" +#import "MHTESentimentIndicateRegard.h" +#import + +@interface MHTSpiritFacilitater() + +@property (strong, nonatomic) NSDictionary *concealGeneralIndicateImpactbasket; + +@property (strong, nonatomic) NSMutableDictionary *concealAttributedImpactbasket; + +@property (strong, nonatomic) NSRegularExpression * regularExpression; + + +@end + +@implementation MHTSpiritFacilitater + ++ (MHTSpiritFacilitater *)partowardsiciptowardsiondSenintrtowardsemporalntFacilittowardseer { + static MHTSpiritFacilitater *_sharedFaceManager = nil; + static dispatch_once_t predUser; + dispatch_once(&predUser, ^{ + _sharedFaceManager = [[MHTSpiritFacilitater alloc] init]; + + _sharedFaceManager.regularExpression = + [NSRegularExpression regularExpressionWithPattern:@"\\[[a-zA-Z0-9\\u4e00-\\u9fa5]+\\]" + options:kNilOptions + error:nil]; + + _sharedFaceManager.concealAttributedImpactbasket = [NSMutableDictionary dictionary]; + }); + return _sharedFaceManager; +} + +#pragma mark - public +- (void)setSenintratemporalntGarment:(NSArray *)senintratemporalntGarment { + + _senintratemporalntGarment = senintratemporalntGarment; + + + _concealGeneralIndicateImpactbasket = nil; + [self concealGeneralIndicateImpactbasket]; +} + +- (NSDictionary *)concealGeneralIndicateImpactbasket { + if (!_concealGeneralIndicateImpactbasket) { + NSMutableDictionary *emotionImageDictionary = [[NSMutableDictionary alloc] init]; + for (MHTSpirit *e in _senintratemporalntGarment) { + if (!e.image) { + + e.image = [UIImage imageNamed:e.identifier]; + } + [emotionImageDictionary setObject:e.image forKey:e.displayName]; + } + _concealGeneralIndicateImpactbasket = emotionImageDictionary; + } + return _concealGeneralIndicateImpactbasket; +} + +- (NSMutableAttributedString *)towardstributedBWSttrByEssay:(NSString *)text font:(UIFont *)font { + + NSArray *emojis = [self.regularExpression matchesInString:text options:NSMatchingWithTransparentBounds range:NSMakeRange(0, [text length])]; + + NSMutableAttributedString *intactAttributeString = [[NSMutableAttributedString alloc] initWithString:text]; + + + [emojis enumerateObjectsWithOptions:NSEnumerationReverse usingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + + NSTextCheckingResult *result = (NSTextCheckingResult *)obj; + + NSString *emojiKey = [text substringWithRange:result.range]; + + BOOL useCache = NO; + if (@available(iOS 15.0, *)) { + + + useCache = NO; + } + NSAttributedString *imageAttributedString = [self obtainIdiosyncracydBWSttrByIndictowardseDigital:emojiKey font:font useCache:useCache]; + if (imageAttributedString) { + [intactAttributeString replaceCharactersInRange:result.range withAttributedString:imageAttributedString]; + } + }]; + + + [intactAttributeString addAttributes:@{NSFontAttributeName: font} range:NSMakeRange(0, intactAttributeString.length)]; + + return intactAttributeString; +} + +#pragma mark - public +- (NSAttributedString *)obtainIdiosyncracydBWSttrByIndictowardseDigital:(NSString *)imageKey font:(UIFont *)font useCache:(BOOL)useCache { + + if (!useCache) { + + UIImage *image = self.concealGeneralIndicateImpactbasket[imageKey]; + if (!image){ + + return nil; + } + MHTESentimentIndicateRegard *imageView = [[MHTESentimentIndicateRegard alloc] init]; + imageView.layer.masksToBounds = YES; + imageView.contentMode = UIViewContentModeScaleAspectFit; + imageView.exhibitionEssay = imageKey; + imageView.image = image; + if (image) { + CGFloat scale = image.size.width / image.size.height; + imageView.bounds = CGRectMake(0, 0, 20 * scale, 20); + } else { + imageView.bounds = CGRectMake(0, 0, 20, 20); + } + imageView.bounds = CGRectMake(0, 0, font.lineHeight, font.lineHeight); + NSMutableAttributedString * attrString = [NSMutableAttributedString yy_attachmentStringWithContent:imageView contentMode:UIViewContentModeScaleAspectFit attachmentSize:CGSizeMake(imageView.bounds.size.width, imageView.bounds.size.height) alignToFont:[UIFont systemFontOfSize:15.0] alignment:YYTextVerticalAlignmentCenter]; + return attrString; + } + + + + + NSString *keyFont = [NSString stringWithFormat:@"%@%.1f", imageKey, font.pointSize]; + + NSAttributedString *result = _concealAttributedImpactbasket[keyFont]; + if (result){ + + return result; + } + + UIImage *image = self.concealGeneralIndicateImpactbasket[imageKey]; + if (!image){ + + return nil; + } + MHTESentimentIndicateRegard *imageView = [[MHTESentimentIndicateRegard alloc] init]; + imageView.layer.masksToBounds = YES; + imageView.contentMode = UIViewContentModeScaleAspectFit; + imageView.exhibitionEssay = imageKey; + imageView.image = image; + if (image) { + CGFloat scale = image.size.width / image.size.height; + imageView.bounds = CGRectMake(0, 0, 20 * scale, 20); + } else { + imageView.bounds = CGRectMake(0, 0, 20, 20); + } + imageView.bounds = CGRectMake(0, 0, font.lineHeight, font.lineHeight); + NSMutableAttributedString * attrString = [NSMutableAttributedString yy_attachmentStringWithContent:imageView contentMode:UIViewContentModeScaleAspectFit attachmentSize:CGSizeMake(imageView.bounds.size.width, imageView.bounds.size.height) alignToFont:[UIFont systemFontOfSize:15.0] alignment:YYTextVerticalAlignmentCenter]; + + [_concealAttributedImpactbasket setObject:attrString forKey:keyFont]; + return result; +} + + +@end diff --git a/YuMi/CustomUI/InputView/InputView/MHTinputAppearanceRegard.h b/YuMi/CustomUI/InputView/InputView/MHTinputAppearanceRegard.h new file mode 100644 index 00000000..1f588b96 --- /dev/null +++ b/YuMi/CustomUI/InputView/InputView/MHTinputAppearanceRegard.h @@ -0,0 +1,28 @@ +// +// MHTinputAppearanceRegard.h +// YUMI +// +// Created by YUMI on 2023/1/11. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class MHTinputAppearanceRegard; +@protocol QinputPhotoRegardRepresendtation + +- (void)qintrojectionAplictowardsionearanceRegard:(MHTinputAppearanceRegard *)view didClickPhoto:(UIButton *)sender; +- (void)qintrojectionAplictowardsionearanceRegard:(MHTinputAppearanceRegard *)view didClickSend:(NSArray *)appearanceStatement; +@end + +@interface MHTinputAppearanceRegard : UIView + +@property (nonatomic,strong) NSArray *appearanceStatement; +@property (nonatomic,weak) id delegate; +@property (nonatomic,assign) BOOL isOrigin; + +- (void)replacementConcludeAplictowardsionearances; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/CustomUI/InputView/InputView/MHTinputAppearanceRegard.m b/YuMi/CustomUI/InputView/InputView/MHTinputAppearanceRegard.m new file mode 100644 index 00000000..1d5aac22 --- /dev/null +++ b/YuMi/CustomUI/InputView/InputView/MHTinputAppearanceRegard.m @@ -0,0 +1,224 @@ +// +// MHTinputAppearanceRegard.m +// YUMI +// +// Created by YUMI on 2023/1/11. +// + +#import "MHTinputAppearanceRegard.h" +#import +#import "DJDKMIMOMColor.h" +#import "UIImage+Utils.h" +#import "NSArray+Safe.h" +#import "XNDJTBWGLoadingTool.h" +#import "MHTAppearanceIndicateMatrix.h" +#import "MHTIntrojectionAppearancetElement.h" + +@interface MHTinputAppearanceRegard () + +@property (nonatomic,strong) UICollectionView *collectionView; +@property (nonatomic,strong) UIButton *appearanceBtuton; +@property (nonatomic,strong) UIButton *derivationBtuton; +@property (nonatomic,strong) UIButton *dischargeBtuton; +@property (nonatomic,strong) NSMutableArray *concludeGarment; + +@end + +@implementation MHTinputAppearanceRegard + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} +#pragma mark - Public Method +- (void)replacementConcludeAplictowardsionearances { + [self.concludeGarment removeAllObjects]; + for (MHTAppearanceIndicateMatrix * model in self.appearanceStatement) { + model.isSelect = NO; + } + [self.collectionView reloadData]; + if (self.appearanceStatement.count > 0) { + [self.collectionView scrollToItemAtIndexPath:[NSIndexPath indexPathForItem:0 inSection:0] atScrollPosition:UICollectionViewScrollPositionNone animated:NO]; + } +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.collectionView]; + [self addSubview:self.appearanceBtuton]; + [self addSubview:self.derivationBtuton]; + [self addSubview:self.dischargeBtuton]; +} + +- (void)initChildLyRestrictions { + [self.collectionView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.left.right.equalTo(self).offset(0); + make.height.mas_equalTo(138 + 16); + }]; + + [self.appearanceBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self).offset(16); + make.top.mas_equalTo(self.collectionView.mas_bottom).offset(1); + }]; + + [self.derivationBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(50, 25)); + make.left.mas_equalTo(self.appearanceBtuton.mas_right).offset(20); + make.centerY.mas_equalTo(self.appearanceBtuton); + }]; + + [self.dischargeBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(56, 22)); + make.right.mas_equalTo(self).offset(-16); + make.centerY.mas_equalTo(self.appearanceBtuton); + }]; +} + +#pragma mark - UICollectionViewDelegate And UICollectionViewDatasource +- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { + return self.appearanceStatement.count; +} + +- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { + MHTIntrojectionAppearancetElement * cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([MHTIntrojectionAppearancetElement class]) forIndexPath:indexPath]; +MHTAppearanceIndicateMatrix * imageInfo = [self.appearanceStatement secureGroalTowardsIndictowardsrix1:indexPath.row]; + cell.imageInfo = imageInfo; + cell.delegate = self; + return cell; +} + +- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath { + [collectionView deselectItemAtIndexPath:indexPath animated:YES]; +} + +#pragma mark - MHTIntrojectionAppearancetElement +- (void)qIntrojectionAplictowardsionearancetElement:(MHTIntrojectionAppearancetElement *)view didClickChoose:(MHTAppearanceIndicateMatrix *)model { + model.isOrigin = self.isOrigin; + if (self.concludeGarment.count > 9) { + model.isSelect = NO; + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:YMLocalizedString(@"Qinput_Photo_View_0")]; + [self.collectionView reloadData]; + return; + } + + if (model.isSelect) { + if (![self.concludeGarment containsObject:model]) { + [self.concludeGarment addObject:model]; + } + if ([self.appearanceStatement containsObject:model]) { + NSInteger index = [self.appearanceStatement indexOfObject:model]; + [self.collectionView scrollToItemAtIndexPath:[NSIndexPath indexPathForRow:index + 1 inSection:0] atScrollPosition:UICollectionViewScrollPositionRight animated:YES]; + } + model.number = self.concludeGarment.count; + } else { + + for (MHTAppearanceIndicateMatrix * imageModel in self.concludeGarment) { + if (imageModel.number > model.number) { + imageModel.number -=1; + } + } + + if ([self.concludeGarment containsObject:model]) { + [self.concludeGarment removeObject:model]; + } + } + + [self.collectionView reloadData]; +} + +#pragma mark - Event Response +- (void)aplictowardsionearanceBtutonPerformance:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(qintrojectionAplictowardsionearanceRegard:didClickPhoto:)]) { + [self.delegate qintrojectionAplictowardsionearanceRegard:self didClickPhoto:sender]; + } +} + +- (void)derivtowardsionBtutonPerformance:(UIButton *)sender { + sender.selected = !sender.selected; + self.isOrigin = sender.selected; +} + +- (void)prohibitichargeBtutonPerformance:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(qintrojectionAplictowardsionearanceRegard:didClickSend:)]) { + [self.delegate qintrojectionAplictowardsionearanceRegard:self didClickSend:self.concludeGarment]; + } +} + +#pragma mark - Getters And Setters +- (UICollectionView *)collectionView{ + if (!_collectionView) { + UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init]; + _collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout]; + layout.itemSize = CGSizeMake(95, 138); + layout.scrollDirection = UICollectionViewScrollDirectionHorizontal; + layout.minimumLineSpacing = 10; + layout.sectionInset = UIEdgeInsetsMake(0, 8, 8, 8); + _collectionView.dataSource = self; + _collectionView.delegate = self; + _collectionView.showsHorizontalScrollIndicator = NO; + if (@available(iOS 11.0, *)) { + _collectionView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + _collectionView.backgroundColor = [DJDKMIMOMColor colorAboutHexBWSttr:@"#F4F4FA"]; + [_collectionView registerClass:[MHTIntrojectionAppearancetElement class] forCellWithReuseIdentifier:NSStringFromClass([MHTIntrojectionAppearancetElement class])]; + } + return _collectionView; +} + +- (UIButton *)appearanceBtuton { + if (!_appearanceBtuton) { + _appearanceBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_appearanceBtuton setTitle:YMLocalizedString(@"Qinput_Photo_View_1") forState:UIControlStateNormal]; + [_appearanceBtuton setTitleColor:[DJDKMIMOMColor mainEssayPrettify] forState:UIControlStateNormal]; + _appearanceBtuton.titleLabel.font = [UIFont systemFontOfSize:14]; + [_appearanceBtuton addTarget:self action:@selector(aplictowardsionearanceBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _appearanceBtuton; +} + +- (UIButton *)derivationBtuton { + if (!_derivationBtuton) { + _derivationBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_derivationBtuton setTitle:YMLocalizedString(@"Qinput_Photo_View_2") forState:UIControlStateNormal]; + [_derivationBtuton setTitleColor:[DJDKMIMOMColor mainEssayPrettify] forState:UIControlStateNormal]; + _derivationBtuton.titleLabel.font = [UIFont systemFontOfSize:12]; + [_derivationBtuton setImage:[UIImage imageNamed:@"yumi_term_input_kit_choose_normal"] forState:UIControlStateNormal]; + [_derivationBtuton setImage:[UIImage imageNamed:@"yumi_term_input_kit_choose_select"] forState:UIControlStateSelected]; + _derivationBtuton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft; + [_derivationBtuton setImageEdgeInsets:UIEdgeInsetsMake(0, 2, 0, 0)]; + [_derivationBtuton setTitleEdgeInsets:UIEdgeInsetsMake(0, 5, 0, 0)]; + _derivationBtuton.layer.masksToBounds = YES; + _derivationBtuton.layer.cornerRadius = 14; + [_derivationBtuton addTarget:self action:@selector(derivtowardsionBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _derivationBtuton; +} + +- (UIButton *)dischargeBtuton { + if (!_dischargeBtuton) { + _dischargeBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_dischargeBtuton setTitle:YMLocalizedString(@"Qinput_Photo_View_3") forState:UIControlStateNormal]; + [_dischargeBtuton setTitleColor:[DJDKMIMOMColor acknowledgementBtutonEssayPrettify] forState:UIControlStateNormal]; + _dischargeBtuton.titleLabel.font = [UIFont systemFontOfSize:12]; + [_dischargeBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + _dischargeBtuton.layer.masksToBounds = YES; + _dischargeBtuton.layer.cornerRadius = 10; + [_dischargeBtuton addTarget:self action:@selector(prohibitichargeBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _dischargeBtuton; +} + +- (NSMutableArray *)concludeGarment { + if(!_concludeGarment) { + _concludeGarment = [NSMutableArray array]; + } + return _concludeGarment; +} + + + +@end diff --git a/YuMi/CustomUI/InputView/InputView/UITextView+MHTSpirit.h b/YuMi/CustomUI/InputView/InputView/UITextView+MHTSpirit.h new file mode 100644 index 00000000..c66704b0 --- /dev/null +++ b/YuMi/CustomUI/InputView/InputView/UITextView+MHTSpirit.h @@ -0,0 +1,26 @@ +// +// UITextView+MHTSpirit.h +// QKeyBoardDemo +// +// Created by QDong on 2021-8-3. +// Copyright (c) 2021年 QDong QQ:285275534@qq.com. All rights reserved. +// + + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface UITextView (MHTSpirit) + +- (void)insertSenintrtowardsemporalntIdiosyncracydBWSttr:(NSAttributedString *)emotionAttributedString; + +- (void)insertSenintrtowardsemporalnt:(NSString *)emotionKey; + +- (BOOL)representtowardsionSenintrtowardsemporalnt; + +- (NSString *)ordinaryEssay; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/CustomUI/InputView/InputView/UITextView+MHTSpirit.m b/YuMi/CustomUI/InputView/InputView/UITextView+MHTSpirit.m new file mode 100644 index 00000000..1ca2340f --- /dev/null +++ b/YuMi/CustomUI/InputView/InputView/UITextView+MHTSpirit.m @@ -0,0 +1,95 @@ +// +// UITextView+MHTSpirit.h +// QKeyBoardDemo +// +// Created by QDong on 2021-8-3. +// Copyright (c) 2021年 QDong QQ:285275534@qq.com. All rights reserved. +// + +#import "UITextView+MHTSpirit.h" +#import "MHTESentimentIndicateRegard.h" +#import "YYText.h" + +@implementation UITextView (MHTSpirit) + +- (void)insertSenintrtowardsemporalntIdiosyncracydBWSttr:(NSAttributedString *)emotionAttributedString { + if (!emotionAttributedString){ + return; + } + NSMutableAttributedString *content = self.attributedText.mutableCopy; + + int location = (int)self.selectedRange.location; + [content insertAttributedString:emotionAttributedString atIndex:location]; + + [content addAttributes:@{NSFontAttributeName: self.font, NSForegroundColorAttributeName: self.textColor} range:NSMakeRange(location, emotionAttributedString.length)]; + + self.attributedText = content; + + NSRange range; + range.location = location + emotionAttributedString.length; + range.length = 0; + self.selectedRange = range; +} + +- (void)insertSenintrtowardsemporalnt:(NSString *)emotionKey { + NSMutableAttributedString *content = self.attributedText.mutableCopy; + + int location = (int)self.selectedRange.location; + [content insertAttributedString:[[NSAttributedString alloc] initWithString:emotionKey attributes:@{NSFontAttributeName:self.font,NSForegroundColorAttributeName:self.textColor}] atIndex:location]; + + self.attributedText = content; + + NSRange range; + range.location = location + emotionKey.length; + range.length = 0; + self.selectedRange = range; +} + +- (BOOL)representtowardsionSenintrtowardsemporalnt { + + int location = (int)self.selectedRange.location; + if(location == 0){ + return NO; + } + + NSString *headresult = [self.text substringToIndex:location]; + + if ([headresult hasSuffix:@"]"]) { + + for (int i = (int)[headresult length]; i>=0 ; i--) { + + char tempString = [headresult characterAtIndex:(i-1)]; + if (tempString == '[') { + NSMutableAttributedString *content = self.attributedText.mutableCopy; + + [content deleteCharactersInRange:NSMakeRange(i - 1,location - i + 1)]; + self.attributedText = content; + + NSRange range; + range.location = [headresult length]; + range.length = 0; + self.selectedRange = range; + return YES; + } + } + } + return NO; +} + +- (NSString *)ordinaryEssay { + NSMutableString *normalMutableString = self.attributedText.string.mutableCopy; + CGSize maxSize = CGSizeMake(50, MAXFLOAT); + YYTextLayout * layout = [YYTextLayout layoutWithContainerSize:maxSize text:self.attributedText]; + for (int i = 0; i< layout.attachments.count; i++) { + YYTextAttachment * attachment = [layout.attachments objectAtIndex:i]; + if (!attachment || ![attachment.content isKindOfClass:[MHTESentimentIndicateRegard class]]) continue; + MHTESentimentIndicateRegard* imageView = attachment.content; + NSValue * value = [layout.attachmentRanges objectAtIndex:i]; + NSRange range = value.rangeValue; + if (!imageView.exhibitionEssay) continue; + [normalMutableString replaceCharactersInRange:range withString:imageView.exhibitionEssay]; + } + return normalMutableString; +} + +@end diff --git a/YuMi/CustomUI/InputView/emoji.plist b/YuMi/CustomUI/InputView/emoji.plist new file mode 100755 index 00000000..c3b53471 --- /dev/null +++ b/YuMi/CustomUI/InputView/emoji.plist @@ -0,0 +1,1022 @@ + + + + + + data + + + file + emoji_01.png + id + emoticon_emoji_01 + tag + [可爱] + + + file + emoji_00.png + id + emoticon_emoji_0 + tag + [大笑] + + + file + emoji_02.png + id + emoticon_emoji_02 + tag + [色] + + + file + emoji_03.png + id + emoticon_emoji_03 + tag + [嘘] + + + file + emoji_04.png + id + emoticon_emoji_04 + tag + [亲] + + + file + emoji_05.png + id + emoticon_emoji_05 + tag + [呆] + + + file + emoji_06.png + id + emoticon_emoji_06 + tag + [口水] + + + file + emoji_145.png + id + emoticon_emoji_145 + tag + [汗] + + + file + emoji_07.png + id + emoticon_emoji_07 + tag + [呲牙] + + + file + emoji_08.png + id + emoticon_emoji_08 + tag + [鬼脸] + + + file + emoji_09.png + id + emoticon_emoji_09 + tag + [害羞] + + + file + emoji_10.png + id + emoticon_emoji_10 + tag + [偷笑] + + + file + emoji_11.png + id + emoticon_emoji_11 + tag + [调皮] + + + file + emoji_12.png + id + emoticon_emoji_12 + tag + [可怜] + + + file + emoji_13.png + id + emoticon_emoji_13 + tag + [敲] + + + file + emoji_14.png + id + emoticon_emoji_14 + tag + [惊讶] + + + file + emoji_15.png + id + emoticon_emoji_15 + tag + [流感] + + + file + emoji_16.png + id + emoticon_emoji_16 + tag + [委屈] + + + file + emoji_17.png + id + emoticon_emoji_17 + tag + [流泪] + + + file + emoji_18.png + id + emoticon_emoji_18 + tag + [嚎哭] + + + file + emoji_19.png + id + emoticon_emoji_19 + tag + [惊恐] + + + file + emoji_20.png + id + emoticon_emoji_20 + tag + [怒] + + + file + emoji_21.png + id + emoticon_emoji_21 + tag + [酷] + + + file + emoji_22.png + id + emoticon_emoji_22 + tag + [不说] + + + file + emoji_23.png + id + emoticon_emoji_23 + tag + [鄙视] + + + file + emoji_24.png + id + emoticon_emoji_24 + tag + [阿弥陀佛] + + + file + emoji_25.png + id + emoticon_emoji_25 + tag + [奸笑] + + + file + emoji_26.png + id + emoticon_emoji_26 + tag + [睡着] + + + file + emoji_27.png + id + emoticon_emoji_27 + tag + [口罩] + + + file + emoji_28.png + id + emoticon_emoji_28 + tag + [努力] + + + file + emoji_29.png + id + emoticon_emoji_29 + tag + [抠鼻孔] + + + file + emoji_30.png + id + emoticon_emoji_30 + tag + [疑问] + + + file + emoji_31.png + id + emoticon_emoji_31 + tag + [怒骂] + + + file + emoji_32.png + id + emoticon_emoji_32 + tag + [晕] + + + file + emoji_33.png + id + emoticon_emoji_33 + tag + [呕吐] + + + file + emoji_160.png + id + emoticon_emoji_160 + tag + [拜一拜] + + + file + emoji_161.png + id + emoticon_emoji_161 + tag + [惊喜] + + + file + emoji_162.png + id + emoticon_emoji_162 + tag + [流汗] + + + file + emoji_163.png + id + emoticon_emoji_163 + tag + [卖萌] + + + file + emoji_164.png + id + emoticon_emoji_164 + tag + [默契眨眼] + + + file + emoji_165.png + id + emoticon_emoji_165 + tag + [烧香拜佛] + + + file + emoji_166.png + id + emoticon_emoji_166 + tag + [晚安] + + + file + emoji_34.png + id + emoticon_emoji_34 + tag + [强] + + + file + emoji_35.png + id + emoticon_emoji_35 + tag + [弱] + + + file + emoji_36.png + id + emoticon_emoji_36 + tag + [OK] + + + file + emoji_37.png + id + emoticon_emoji_37 + tag + [拳头] + + + file + emoji_38.png + id + emoticon_emoji_38 + tag + [胜利] + + + file + emoji_39.png + id + emoticon_emoji_39 + tag + [鼓掌] + + + file + emoji_200.png + id + emoticon_emoji_200 + tag + [握手] + + + file + emoji_40.png + id + emoticon_emoji_40 + tag + [发怒] + + + file + emoji_41.png + id + emoticon_emoji_41 + tag + [骷髅] + + + file + emoji_42.png + id + emoticon_emoji_42 + tag + [便便] + + + file + emoji_43.png + id + emoticon_emoji_43 + tag + [火] + + + file + emoji_44.png + id + emoticon_emoji_44 + tag + [溜] + + + file + emoji_45.png + id + emoticon_emoji_45 + tag + [爱心] + + + file + emoji_46.png + id + emoticon_emoji_46 + tag + [心碎] + + + file + emoji_47.png + id + emoticon_emoji_47 + tag + [钟情] + + + file + emoji_48.png + id + emoticon_emoji_48 + tag + [唇] + + + file + emoji_49.png + id + emoticon_emoji_49 + tag + [戒指] + + + file + emoji_50.png + id + emoticon_emoji_50 + tag + [钻石] + + + file + emoji_51.png + id + emoticon_emoji_51 + tag + [太阳] + + + file + emoji_52.png + id + emoticon_emoji_52 + tag + [有时晴] + + + file + emoji_53.png + id + emoticon_emoji_53 + tag + [多云] + + + file + emoji_54.png + id + emoticon_emoji_54 + tag + [雷] + + + file + emoji_55.png + id + emoticon_emoji_55 + tag + [雨] + + + file + emoji_56.png + id + emoticon_emoji_56 + tag + [雪花] + + + file + emoji_57.png + id + emoticon_emoji_57 + tag + [爱人] + + + file + emoji_58.png + id + emoticon_emoji_58 + tag + [帽子] + + + file + emoji_59.png + id + emoticon_emoji_59 + tag + [皇冠] + + + file + emoji_60.png + id + emoticon_emoji_60 + tag + [篮球] + + + file + emoji_61.png + id + emoticon_emoji_61 + tag + [足球] + + + file + emoji_62.png + id + emoticon_emoji_62 + tag + [垒球] + + + file + emoji_63.png + id + emoticon_emoji_63 + tag + [网球] + + + file + emoji_64.png + id + emoticon_emoji_64 + tag + [台球] + + + file + emoji_65.png + id + emoticon_emoji_65 + tag + [咖啡] + + + file + emoji_66.png + id + emoticon_emoji_66 + tag + [啤酒] + + + file + emoji_67.png + id + emoticon_emoji_67 + tag + [干杯] + + + file + emoji_68.png + id + emoticon_emoji_68 + tag + [柠檬汁] + + + file + emoji_69.png + id + emoticon_emoji_69 + tag + [餐具] + + + file + emoji_70.png + id + emoticon_emoji_70 + tag + [汉堡] + + + file + emoji_71.png + id + emoticon_emoji_71 + tag + [鸡腿] + + + file + emoji_72.png + id + emoticon_emoji_72 + tag + [面条] + + + file + emoji_73.png + id + emoticon_emoji_73 + tag + [冰淇淋] + + + file + emoji_74.png + id + emoticon_emoji_74 + tag + [沙冰] + + + file + emoji_75.png + id + emoticon_emoji_75 + tag + [生日蛋糕] + + + file + emoji_76.png + id + emoticon_emoji_76 + tag + [蛋糕] + + + file + emoji_77.png + id + emoticon_emoji_77 + tag + [糖果] + + + file + emoji_78.png + id + emoticon_emoji_78 + tag + [葡萄] + + + file + emoji_79.png + id + emoticon_emoji_79 + tag + [西瓜] + + + file + emoji_80.png + id + emoticon_emoji_80 + tag + [光碟] + + + file + emoji_81.png + id + emoticon_emoji_81 + tag + [手机] + + + file + emoji_82.png + id + emoticon_emoji_82 + tag + [电话] + + + file + emoji_83.png + id + emoticon_emoji_83 + tag + [电视] + + + file + emoji_84.png + id + emoticon_emoji_84 + tag + [声音开启] + + + file + emoji_85.png + id + emoticon_emoji_85 + tag + [声音关闭] + + + file + emoji_86.png + id + emoticon_emoji_86 + tag + [铃铛] + + + file + emoji_87.png + id + emoticon_emoji_87 + tag + [锁头] + + + file + emoji_88.png + id + emoticon_emoji_88 + tag + [放大镜] + + + file + emoji_89.png + id + emoticon_emoji_89 + tag + [灯泡] + + + file + emoji_90.png + id + emoticon_emoji_90 + tag + [锤头] + + + file + emoji_91.png + id + emoticon_emoji_91 + tag + [烟] + + + file + emoji_92.png + id + emoticon_emoji_92 + tag + [炸弹] + + + file + emoji_93.png + id + emoticon_emoji_93 + tag + [枪] + + + file + emoji_94.png + id + emoticon_emoji_94 + tag + [刀] + + + file + emoji_95.png + id + emoticon_emoji_95 + tag + [药] + + + file + emoji_96.png + id + emoticon_emoji_96 + tag + [打针] + + + file + emoji_97.png + id + emoticon_emoji_97 + tag + [钱袋] + + + file + emoji_98.png + id + emoticon_emoji_98 + tag + [钞票] + + + file + emoji_99.png + id + emoticon_emoji_99 + tag + [银行卡] + + + file + emoji_100.png + id + emoticon_emoji_100 + tag + [手柄] + + + file + emoji_101.png + id + emoticon_emoji_101 + tag + [麻将] + + + file + emoji_102.png + id + emoticon_emoji_102 + tag + [调色板] + + + file + emoji_103.png + id + emoticon_emoji_103 + tag + [电影] + + + file + emoji_104.png + id + emoticon_emoji_104 + tag + [麦克风] + + + file + emoji_105.png + id + emoticon_emoji_105 + tag + [耳机] + + + file + emoji_106.png + id + emoticon_emoji_106 + tag + [音乐] + + + file + emoji_107.png + id + emoticon_emoji_107 + tag + [吉他] + + + file + emoji_108.png + id + emoticon_emoji_108 + tag + [火箭] + + + file + emoji_109.png + id + emoticon_emoji_109 + tag + [飞机] + + + file + emoji_110.png + id + emoticon_emoji_110 + tag + [火车] + + + file + emoji_111.png + id + emoticon_emoji_111 + tag + [公交] + + + file + emoji_112.png + id + emoticon_emoji_112 + tag + [轿车] + + + file + emoji_113.png + id + emoticon_emoji_113 + tag + [出租车] + + + file + emoji_114.png + id + emoticon_emoji_114 + tag + [警车] + + + file + emoji_115.png + id + emoticon_emoji_115 + tag + [自行车] + + + info + + id + default + normal + emoj_s_normal.png + pressed + emoj_s_pressed.png + title + emoji + + + + diff --git a/YuMi/CustomUI/MKJPopup/Config/MKJActionSheetDisposition.h b/YuMi/CustomUI/MKJPopup/Config/MKJActionSheetDisposition.h new file mode 100644 index 00000000..b47a3c51 --- /dev/null +++ b/YuMi/CustomUI/MKJPopup/Config/MKJActionSheetDisposition.h @@ -0,0 +1,45 @@ +// +// MKJActionSheetDisposition.h +// AFNetworking +// +// Created by lee on 2019/5/23. +// action sheet item 配置 + +#import + +typedef enum : NSUInteger { + TTItemSelectNormal, + TTItemSelectHighLight, +} TTItemSelectType; + + +NS_ASSUME_NONNULL_BEGIN +typedef void(^TTActionSheetClickAction)(void); + +@interface MKJActionSheetDisposition : NSObject + + +@property (nonatomic, copy) NSString *title; + + +@property (nonatomic, strong) UIColor *titleColor; + + +@property (nonatomic, assign) TTItemSelectType type; + + +@property (nonatomic, copy) TTActionSheetClickAction ticktackPerformance; + + ++ (MKJActionSheetDisposition *)normalTitle:(NSString *)title + ticktackPerformance:(TTActionSheetClickAction)ticktackPerformance; ++ (MKJActionSheetDisposition *)normalTitle:(NSString *)title + selectColorType:(TTItemSelectType)type ticktackPerformance:(TTActionSheetClickAction)ticktackPerformance; + + ++ (MKJActionSheetDisposition *)actionWithTitle:(NSString *)title + color:(UIColor *)textColor + handler:(TTActionSheetClickAction)handler; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/CustomUI/MKJPopup/Config/MKJActionSheetDisposition.m b/YuMi/CustomUI/MKJPopup/Config/MKJActionSheetDisposition.m new file mode 100644 index 00000000..c9a333e9 --- /dev/null +++ b/YuMi/CustomUI/MKJPopup/Config/MKJActionSheetDisposition.m @@ -0,0 +1,42 @@ +// +// MKJActionSheetDisposition.m +// AFNetworking +// +// Created by lee on 2019/5/23. +// + +#import "MKJActionSheetDisposition.h" +#import "DJDKMIMOMColor.h" + +@implementation MKJActionSheetDisposition + + ++ (MKJActionSheetDisposition *)normalTitle:(NSString *)title ticktackPerformance:(TTActionSheetClickAction)ticktackPerformance { + + return [self normalTitle:title selectColorType:TTItemSelectNormal ticktackPerformance:ticktackPerformance]; +} + ++ (MKJActionSheetDisposition *)normalTitle:(NSString *)title selectColorType:(TTItemSelectType)type ticktackPerformance:(TTActionSheetClickAction)ticktackPerformance { + + UIColor *color = type == TTItemSelectHighLight ? [DJDKMIMOMColor precautiousChampionPrettify] : [DJDKMIMOMColor precautiousChampionPrettify]; + + MKJActionSheetDisposition *config = [self actionWithTitle:title color:color handler:ticktackPerformance]; + config.type = type; + + return config; +} + ++ (MKJActionSheetDisposition *)actionWithTitle:(NSString *)title + color:(UIColor *)textColor + handler:(TTActionSheetClickAction)handler { + + MKJActionSheetDisposition *config = [[MKJActionSheetDisposition alloc] init]; + config.type = TTItemSelectNormal; + config.title = title; + config.titleColor = textColor; + config.ticktackPerformance = handler; + + return config; +} + +@end diff --git a/YuMi/CustomUI/MKJPopup/Config/MKJPrecautiousButtonDisposition.h b/YuMi/CustomUI/MKJPopup/Config/MKJPrecautiousButtonDisposition.h new file mode 100644 index 00000000..2e473ce2 --- /dev/null +++ b/YuMi/CustomUI/MKJPopup/Config/MKJPrecautiousButtonDisposition.h @@ -0,0 +1,30 @@ +// +// MKJPrecautiousButtonDisposition.h +// YM_TTChatViewKit +// +// Created by lee on 2019/5/21. +// Copyright © 2023 YUMI. All rights reserved. +// alert 按钮配置 + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface MKJPrecautiousButtonDisposition : NSObject + +@property (nonatomic, copy) NSString *title; + +@property (nonatomic, strong) UIFont *font; + +@property (nonatomic, strong) UIColor *titleColor; + +@property (nonatomic, strong) UIColor *backgroundColor; + +@property (nonatomic, strong) UIImage *backgroundImage; + +@property (nonatomic, assign) CGFloat cornerRadius; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/CustomUI/MKJPopup/Config/MKJPrecautiousButtonDisposition.m b/YuMi/CustomUI/MKJPopup/Config/MKJPrecautiousButtonDisposition.m new file mode 100644 index 00000000..c2e773e8 --- /dev/null +++ b/YuMi/CustomUI/MKJPopup/Config/MKJPrecautiousButtonDisposition.m @@ -0,0 +1,13 @@ +// +// MKJPrecautiousButtonDisposition.m +// YM_TTChatViewKit +// +// Created by lee on 2019/5/21. +// Copyright © 2023 YUMI. All rights reserved. +// + +#import "MKJPrecautiousButtonDisposition.h" + +@implementation MKJPrecautiousButtonDisposition + +@end diff --git a/YuMi/CustomUI/MKJPopup/Config/MKJPrecautiousCommunicationAttributedDisposition.h b/YuMi/CustomUI/MKJPopup/Config/MKJPrecautiousCommunicationAttributedDisposition.h new file mode 100644 index 00000000..24e13e27 --- /dev/null +++ b/YuMi/CustomUI/MKJPopup/Config/MKJPrecautiousCommunicationAttributedDisposition.h @@ -0,0 +1,30 @@ +// +// TTAlertContentAttributedConfig.h +// YM_TTChatViewKit +// +// Created by lee on 2019/5/21. +// Copyright © 2023 YUMI. All rights reserved. +// alert 提示内容富文本配置 + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface MKJPrecautiousCommunicationAttributedDisposition : NSObject + + +@property (nonatomic, copy) NSString *text; + + +@property (nonatomic, strong) UIColor *color; + + +@property (nonatomic, strong) UIFont *font; + + +@property (nonatomic, assign) NSRange range; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/CustomUI/MKJPopup/Config/MKJPrecautiousCommunicationAttributedDisposition.m b/YuMi/CustomUI/MKJPopup/Config/MKJPrecautiousCommunicationAttributedDisposition.m new file mode 100644 index 00000000..2b1652cd --- /dev/null +++ b/YuMi/CustomUI/MKJPopup/Config/MKJPrecautiousCommunicationAttributedDisposition.m @@ -0,0 +1,13 @@ +// +// TTAlertContentAttributedConfig.m +// YM_TTChatViewKit +// +// Created by lee on 2019/5/21. +// Copyright © 2023 YUMI. All rights reserved. +// + +#import "MKJPrecautiousCommunicationAttributedDisposition.h" + +@implementation MKJPrecautiousCommunicationAttributedDisposition + +@end diff --git a/YuMi/CustomUI/MKJPopup/Config/MKJPrecautiousDisposition.h b/YuMi/CustomUI/MKJPopup/Config/MKJPrecautiousDisposition.h new file mode 100644 index 00000000..2ef28bff --- /dev/null +++ b/YuMi/CustomUI/MKJPopup/Config/MKJPrecautiousDisposition.h @@ -0,0 +1,62 @@ +// +// MKJPrecautiousDisposition.h +// YM_TTChatViewKit +// +// Created by lee on 2019/5/20. +// Copyright © 2023 YUMI. All rights reserved. +// alert 配置 + +#import +#import +#import "MKJPrecautiousButtonDisposition.h" +#import "MKJPrecautiousCommunicationAttributedDisposition.h" + +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSUInteger, MKJAlertActionStyle) { + TTAlertActionConfirmStyle = 0, + TTAlertActionCancelStyle = 1, + TTAlertActionBothStyle = 2, +}; + + +@interface MKJPrecautiousDisposition : NSObject +@property (nonatomic, assign) MKJAlertActionStyle performanceStyle; +@property (nonatomic, strong) UIColor *backgroundColor; + +@property (nonatomic, copy) NSString *title; +@property (nonatomic, strong) UIFont *titleFont; +@property (nonatomic, strong) UIColor *titleColor; + +@property (nonatomic, copy) NSString *message; +@property (nonatomic, strong) UIFont *communicationLetterform; +@property (nonatomic, strong) UIColor *communicationPrettify; + +@property (nonatomic, assign) CGFloat communicationBurlywoodIntervacuum; + +@property (nonatomic, strong) NSArray *communicationAttributedDisposition; +@property (nonatomic,strong) NSMutableAttributedString *communicationAttributed; + +@property (nonatomic, strong) MKJPrecautiousButtonDisposition *revocationBtutonDisposition; + +@property (nonatomic, strong) MKJPrecautiousButtonDisposition *acknowledgementBtutonDisposition; + + +@property (nonatomic, assign) CGFloat maskEncouragegroundTransparency; + +@property (nonatomic, assign) CGFloat cornerRadius; + +@property (nonatomic, assign) BOOL shouldDismissOnBackgroundTouch; + + +@property (nonatomic, assign) BOOL disableRobotizationDisappearTerminTicktackBtuton; + + +@property (nonatomic, assign) BOOL shouldFilterSpringforth; + + +@property (nonatomic, copy) NSString *filterIdentifier; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/CustomUI/MKJPopup/Config/MKJPrecautiousDisposition.m b/YuMi/CustomUI/MKJPopup/Config/MKJPrecautiousDisposition.m new file mode 100644 index 00000000..2c940027 --- /dev/null +++ b/YuMi/CustomUI/MKJPopup/Config/MKJPrecautiousDisposition.m @@ -0,0 +1,75 @@ +// +// MKJPrecautiousDisposition.m +// YM_TTChatViewKit +// +// Created by lee on 2019/5/20. +// Copyright © 2023 YUMI. All rights reserved. +// + +#import "MKJPrecautiousDisposition.h" +#import "UIImage+Utils.h" +#import "DJDKMIMOMColor.h" + +static CGFloat kPrecautiousChampionLetterform = 18.f; +static CGFloat kPrecautiousBtutonLetterform = 15.f; +static CGFloat kPrecautiousCommunicationLetterform = 15.f; +static CGFloat kPrecautiousMonopolizeRestrictions = 12.f; +static CGFloat kPrecautiousEncouragegroundPrettifyTransparency = 0.3; +static CGFloat kPrecautiousCommunicationLetterformBurlywoodVacuum = -1; +static CGFloat kPrecautiousBtutonMonopolizeRestrictions = 8.f; + +@implementation MKJPrecautiousDisposition + +- (instancetype)init { + self = [super init]; + if (self) { + + _backgroundColor = [DJDKMIMOMColor precautiousEncouragegroundPrettify]; + + + kPrecautiousChampionLetterform = 16.f; + kPrecautiousMonopolizeRestrictions = 14.f; + kPrecautiousBtutonMonopolizeRestrictions = 19.f; + + _performanceStyle = TTAlertActionBothStyle; + + + _title = @""; + _titleFont = [UIFont fontWithName:@"PingFangSC-Medium" size:kPrecautiousChampionLetterform]; + _titleColor = [DJDKMIMOMColor precautiousChampionPrettify]; + + + _message = @""; + _communicationLetterform = [UIFont systemFontOfSize:kPrecautiousCommunicationLetterform]; + _communicationPrettify = [DJDKMIMOMColor precautiousCommunictowardsionPrettify]; + _communicationBurlywoodIntervacuum = kPrecautiousCommunicationLetterformBurlywoodVacuum; + _communicationAttributedDisposition = @[]; + + + _revocationBtutonDisposition = [[MKJPrecautiousButtonDisposition alloc] init]; + _revocationBtutonDisposition.title = @"取消"; + _revocationBtutonDisposition.font = [UIFont systemFontOfSize:kPrecautiousBtutonLetterform]; + _revocationBtutonDisposition.titleColor = [DJDKMIMOMColor revoctowardsionBtutonEssayPrettify]; + _revocationBtutonDisposition.backgroundImage = [UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor revoctowardsionBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor revoctowardsionBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)]; + _revocationBtutonDisposition.cornerRadius = kPrecautiousBtutonMonopolizeRestrictions; + + + _acknowledgementBtutonDisposition = [[MKJPrecautiousButtonDisposition alloc] init]; + _acknowledgementBtutonDisposition.title = YMLocalizedString(@"TT_Alert_Config_0"); + _acknowledgementBtutonDisposition.font = [UIFont systemFontOfSize:kPrecautiousBtutonLetterform]; + _acknowledgementBtutonDisposition.titleColor = [DJDKMIMOMColor acknowledgementBtutonEssayPrettify]; + _acknowledgementBtutonDisposition.backgroundImage = [UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)]; + _acknowledgementBtutonDisposition.cornerRadius = kPrecautiousBtutonMonopolizeRestrictions; + + _cornerRadius = kPrecautiousMonopolizeRestrictions; + _shouldDismissOnBackgroundTouch = YES; + + + _maskEncouragegroundTransparency = kPrecautiousEncouragegroundPrettifyTransparency; + _disableRobotizationDisappearTerminTicktackBtuton = NO; + } + return self; +} + +@end + diff --git a/YuMi/CustomUI/MKJPopup/Header/TTPopupConstants.h b/YuMi/CustomUI/MKJPopup/Header/TTPopupConstants.h new file mode 100644 index 00000000..95e74623 --- /dev/null +++ b/YuMi/CustomUI/MKJPopup/Header/TTPopupConstants.h @@ -0,0 +1,25 @@ +// +// TTPopupConstants.h +// YM_TTChatViewKit +// +// Created by lvjunhang on 2019/5/21. +// Copyright © 2023 YUMI. All rights reserved. +// + +#import + + +typedef void(^TTPopupCompletionHandler)(void); + + +typedef NS_ENUM(NSUInteger, MKJPopupStyle) { + MKJPopupStyleAlert = 0, + MKJPopupStyleActionSheet +}; + + +typedef NS_ENUM(NSUInteger, MKJPopupPriority) { + MKJPopupPriorityNormal = 0, + MKJPopupPriorityHigh, + MKJPopupPriorityRequired +}; diff --git a/YuMi/CustomUI/MKJPopup/MKJPopup.h b/YuMi/CustomUI/MKJPopup/MKJPopup.h new file mode 100644 index 00000000..e59d4c0d --- /dev/null +++ b/YuMi/CustomUI/MKJPopup/MKJPopup.h @@ -0,0 +1,77 @@ +// +// MKJPopup.h +// YM_TTChatViewKit +// +// Created by lvjunhang on 2019/5/22. +// Copyright © 2023 YUMI. All rights reserved. +// 弹窗工具类 + +#import +#import "TTPopupConstants.h" +#import "MKJPrecautiousDisposition.h" +#import "MKJActionSheetDisposition.h" +#import "MKJPopupServing.h" + +NS_ASSUME_NONNULL_BEGIN + +@class UIView; + +@interface MKJPopup : NSObject + +#pragma mark Alert + ++ (void)precautiousAboutCommunictowardsion:(NSString *)message + acknowledgementHandler:(TTPopupCompletionHandler)acknowledgementHandler + cancelHandler:(TTPopupCompletionHandler)cancelHandler; + + + ++ (void)precautiousAboutDisposition:(MKJPrecautiousDisposition *)config + showBorder:(BOOL)isShowBorder + acknowledgementHandler:(TTPopupCompletionHandler)acknowledgementHandler + cancelHandler:(TTPopupCompletionHandler)cancelHandler; + + + ++ (void)precautiousAboutCommunictowardsion:(NSString *)message + config:(MKJPrecautiousDisposition *)config + showBorder:(BOOL)isShowBorder + cancelHandler:(TTPopupCompletionHandler)cancelHandler + acknowledgementHandler:(TTPopupCompletionHandler)acknowledgementHandler; + + ++ (void)precautiousAboutDisposition:(MKJPrecautiousDisposition *)config + acknowledgementHandler:(TTPopupCompletionHandler)acknowledgementHandler + cancelHandler:(TTPopupCompletionHandler)cancelHandler; + +#pragma mark Action Sheet + ++ (void)performanceSheetAboutProvisions:(NSArray *)items; + + ++ (void)performanceSheetAboutProvisions:(NSArray *)items + showCancelItem:(BOOL)showCancelItem; + + ++ (void)performanceSheetAboutProvisions:(NSArray *)items + cancelHandler:(TTActionSheetClickAction)cancelHandler; + +#pragma mark Popup + ++ (void)popupRegard:(UIView *)customView + style:(MKJPopupStyle)style; + + ++ (void)popupAboutDisposition:(MKJPopupServing *)config; + +#pragma mark Dismiss + ++ (void)dismiss; + +#pragma mark Query + ++ (BOOL)hasExhibitSpringforth; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/CustomUI/MKJPopup/MKJPopup.m b/YuMi/CustomUI/MKJPopup/MKJPopup.m new file mode 100644 index 00000000..24174703 --- /dev/null +++ b/YuMi/CustomUI/MKJPopup/MKJPopup.m @@ -0,0 +1,235 @@ +// +// MKJPopup.m +// YM_TTChatViewKit +// +// Created by lvjunhang on 2019/5/22. +// Copyright © 2023 YUMI. All rights reserved. +// + +#import "MKJPopup.h" +#import "MKJPrecautiousRegard.h" +#import "MKJActionSheetRegard.h" +#import "MKJPopupServing.h" +#import "MKJPopupExecutiveServing.h" + +static CGFloat const kActionSheetViewPadding = 15.f; +static CGFloat const kActionSheetViewCellHeight = 52.f; +static CGFloat const kActionSheetViewCancelViewHeight = 67.f; +static CGFloat const kActionSheetViewBottomPadding = 15.f; +static CGFloat const kMixHeight = 200.f; +static CGFloat const kMaxHeight = 450.f; + +@implementation MKJPopup + +#pragma mark - Public Methods +#pragma mark Alert ++ (void)precautiousAboutCommunictowardsion:(NSString *)message + acknowledgementHandler:(TTPopupCompletionHandler)acknowledgementHandler + cancelHandler:(TTPopupCompletionHandler)cancelHandler { + + [self precautiousAboutCommunictowardsion:message + config:nil + cancelHandler:cancelHandler + acknowledgementHandler:acknowledgementHandler]; +} + ++ (void)precautiousAboutDisposition:(MKJPrecautiousDisposition *)config + acknowledgementHandler:(TTPopupCompletionHandler)acknowledgementHandler + cancelHandler:(TTPopupCompletionHandler)cancelHandler { + + [self precautiousAboutCommunictowardsion:nil + config:config + cancelHandler:cancelHandler + acknowledgementHandler:acknowledgementHandler]; +} + ++ (void)precautiousAboutCommunictowardsion:(NSString *)message + config:(MKJPrecautiousDisposition *)config + cancelHandler:(TTPopupCompletionHandler)cancelHandler + acknowledgementHandler:(TTPopupCompletionHandler)acknowledgementHandler { + + if (!config) { + config = [[MKJPrecautiousDisposition alloc] init]; + config.message = message; + } + + if (config.message.length <= 0 && config.communicationAttributed.length <=0 && config.communicationAttributedDisposition.count <=0) { + NSAssert(NO, @" message can not be nil, 弹窗文案不可以为空"); + return; + } + CGFloat width = [UIScreen mainScreen].bounds.size.width - 40 * 2; + CGFloat height = ([self communictowardsionDimension:config.message width:width].height + 160); + + if (height < kMixHeight) { + height = kMixHeight; + } else if (height > kMaxHeight) { + height = kMaxHeight; + } + MKJPrecautiousRegard *contentView = [[MKJPrecautiousRegard alloc] initWithFrame:CGRectMake(0, 0, width, height)]; + contentView.config = config; + contentView.isDispositionDirectorate = NO; + contentView.revocationPerformance = cancelHandler; + contentView.acknowledgementPerformance = acknowledgementHandler; + if (!contentView.config.disableRobotizationDisappearTerminTicktackBtuton) { + + contentView.disappearPerformance = ^{ + [MKJPopup dismiss]; + }; + } + [self popupRegard:contentView style:MKJPopupStyleAlert config:config]; +} + ++ (void)precautiousAboutDisposition:(MKJPrecautiousDisposition *)config + showBorder:(BOOL)isShowBorder + acknowledgementHandler:(TTPopupCompletionHandler)acknowledgementHandler + cancelHandler:(TTPopupCompletionHandler)cancelHandler { + [self precautiousAboutCommunictowardsion:nil + config:config + showBorder:isShowBorder + cancelHandler:cancelHandler + acknowledgementHandler:acknowledgementHandler]; +} + ++ (void)precautiousAboutCommunictowardsion:(NSString *)message + config:(MKJPrecautiousDisposition *)config + showBorder:(BOOL)isShowBorder + cancelHandler:(TTPopupCompletionHandler)cancelHandler + acknowledgementHandler:(TTPopupCompletionHandler)acknowledgementHandler { + + if (!config) { + config = [[MKJPrecautiousDisposition alloc] init]; + config.message = message; + } + + if (config.message.length <= 0) { + NSAssert(NO, @" message can not be nil, 弹窗文案不可以为空"); + return; + } + + CGFloat width = [UIScreen mainScreen].bounds.size.width - 40 * 2; + CGFloat height = ([self communictowardsionDimension:config.message width:width].height + 160); + + + if (height < kMixHeight) { + height = kMixHeight; + } else if (height > kMaxHeight) { + height = kMaxHeight; + } + + MKJPrecautiousRegard *contentView = [[MKJPrecautiousRegard alloc] initWithFrame:CGRectMake(0, 0, width, height)]; + contentView.config = config; + contentView.revocationPerformance = cancelHandler; + contentView.acknowledgementPerformance = acknowledgementHandler; + contentView.isDispositionDirectorate = isShowBorder; + + if (!contentView.config.disableRobotizationDisappearTerminTicktackBtuton) { + + contentView.disappearPerformance = ^{ + [MKJPopup dismiss]; + }; + } + + [self popupRegard:contentView style:MKJPopupStyleAlert config:config]; +} + +#pragma mark Action Sheet ++ (void)performanceSheetAboutProvisions:(NSArray *)items { + + [MKJPopup performanceSheetAboutProvisions:items showCancelItem:YES cancelHandler:nil]; +} + ++ (void)performanceSheetAboutProvisions:(NSArray *)items + showCancelItem:(BOOL)showCancelItem { + + [MKJPopup performanceSheetAboutProvisions:items showCancelItem:showCancelItem cancelHandler:nil]; +} + ++ (void)performanceSheetAboutProvisions:(NSArray *)items cancelHandler:(TTActionSheetClickAction)cancelHandler { + + [MKJPopup performanceSheetAboutProvisions:items showCancelItem:YES cancelHandler:cancelHandler]; +} + ++ (void)performanceSheetAboutProvisions:(NSArray *)items + showCancelItem:(BOOL)showCancelItem + cancelHandler:(TTActionSheetClickAction)cancelHandler { + + CGFloat width = [UIScreen mainScreen].bounds.size.width - kActionSheetViewPadding * 2; + CGFloat height = kActionSheetViewCellHeight * items.count + kActionSheetViewBottomPadding; + + + if (showCancelItem) { + + height += kActionSheetViewCancelViewHeight; + } + + if (@available(iOS 11.0, *)) { + + height += [UIApplication sharedApplication].keyWindow.safeAreaInsets.bottom; + } + + CGRect rect = CGRectMake(0, 0, width, height); + + MKJActionSheetRegard *sheetView = [[MKJActionSheetRegard alloc] initWithFrame:rect + demandsRevocation:showCancelItem + items:items]; + sheetView.revocationPerformance = cancelHandler; + + + sheetView.disappearPerformance = ^{ + [MKJPopup dismiss]; + }; + + [self popupRegard:sheetView style:MKJPopupStyleActionSheet]; +} + + +#pragma mark Popup ++ (void)popupRegard:(UIView *)customView + style:(MKJPopupStyle)style { + + MKJPopupServing *service = [[MKJPopupServing alloc] init]; + service.style = style; + service.contentView = customView; + + [self popupAboutDisposition:service]; +} + ++ (void)popupRegard:(UIView *)customView + style:(MKJPopupStyle)style + config:(MKJPrecautiousDisposition *)config { + + MKJPopupServing *service = [[MKJPopupServing alloc] init]; + service.style = style; + service.contentView = customView; + service.shouldDismissOnBackgroundTouch = config.shouldDismissOnBackgroundTouch; + service.maskEncouragegroundTransparency = config.maskEncouragegroundTransparency; + [self popupAboutDisposition:service]; +} + + ++ (void)popupAboutDisposition:(MKJPopupServing *)config { + if (![config.contentView isKindOfClass:UIView.class]) { + NSAssert(NO, @"MKJPopup customView should inherit from UIView."); + return; + } + [[MKJPopupExecutiveServing sharedInstance] accelertowardseSpringforthServing:config]; +} + +#pragma mark Dismiss ++ (void)dismiss { + [[MKJPopupExecutiveServing sharedInstance] transltowardseSpringforthServing]; +} + +#pragma mark Query + ++ (BOOL)hasExhibitSpringforth { + return [MKJPopupExecutiveServing sharedInstance].universalSpringforthService != nil; +} + +#pragma mark - Privite ++ (CGSize)communictowardsionDimension:(NSString *)text width:(CGFloat)width { + CGRect stringRect = [text boundingRectWithSize:CGSizeMake(width - 2 * 20, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:15.f]} context:nil]; + return stringRect.size; +} + +@end diff --git a/YuMi/CustomUI/MKJPopup/Manager/MKJPopupExecutiveServing.h b/YuMi/CustomUI/MKJPopup/Manager/MKJPopupExecutiveServing.h new file mode 100644 index 00000000..7dab0004 --- /dev/null +++ b/YuMi/CustomUI/MKJPopup/Manager/MKJPopupExecutiveServing.h @@ -0,0 +1,22 @@ +// +// MKJPopupExecutiveServing.h +// YM_TTChatViewKit +// +// Created by lvjunhang on 2019/5/21. +// Copyright © 2023 YUMI. All rights reserved. +// + +#import +#import "TTPopupExecutiveServiceCeremony.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface MKJPopupExecutiveServing : NSObject + +@property (nonatomic, strong) id universalSpringforthService; + ++ (instancetype)sharedInstance; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/CustomUI/MKJPopup/Manager/MKJPopupExecutiveServing.m b/YuMi/CustomUI/MKJPopup/Manager/MKJPopupExecutiveServing.m new file mode 100644 index 00000000..f019e7f7 --- /dev/null +++ b/YuMi/CustomUI/MKJPopup/Manager/MKJPopupExecutiveServing.m @@ -0,0 +1,188 @@ +// +// MKJPopupExecutiveServing.m +// YM_TTChatViewKit +// +// Created by lvjunhang on 2019/5/21. +// Copyright © 2023 YUMI. All rights reserved. +// + +#import "MKJPopupExecutiveServing.h" + +#import + +@interface MKJPopupExecutiveServing () + +@property (nonatomic, strong) NSMutableArray< id > *queue; + +@property (nonatomic, assign, getter=isExhibitingSpringforth) BOOL showingSpringforth; + +@end + +@implementation MKJPopupExecutiveServing + +#pragma mark - Life Cycle ++ (instancetype)sharedInstance { + static MKJPopupExecutiveServing *instance = nil; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + instance = [[self alloc] init]; + }); + + return instance; +} + +- (instancetype)init { + if (self = [super init]) { + _queue = [NSMutableArray array]; + } + return self; +} + +#pragma mark - TTPopupExecutiveServiceCeremony +- (void)accelertowardseSpringforthServing:(id)service { + if (![service conformsToProtocol:@protocol(TTPopupServiceCeremony)]) { + return; + } + if ([_queue containsObject:service]) { + return; + } + NSInteger insertPosition = [self insertPolariztowardsionInthecaseofSpringforthServing:service]; + if (insertPosition == NSNotFound) { + return; + } + [_queue insertObject:service atIndex:insertPosition]; + + if (_universalSpringforthService == nil && _queue.count == 1) { + [self EvidenceSpringforth]; + } +} + +- (void)transltowardseSpringforthServing { + + + + if (!self.isExhibitingSpringforth) { + return; + } + + if (_universalSpringforthService == nil) { + return; + } + + if (_queue.count > 0) { + [_queue removeObjectAtIndex:0]; + } + + [FFPopup dismissPopupForView:_universalSpringforthService.contentView animated:YES]; + _universalSpringforthService = nil; +} + + +- (void)transltowardseProvenienceWhenContactMaskRegard { + if (_universalSpringforthService == nil) { + return; + } + if (_queue.count > 0) { + [_queue removeObjectAtIndex:0]; + } + _universalSpringforthService = nil; +} + +#pragma mark - Private Methods + +- (void)EvidenceSpringforth { + if (self.isExhibitingSpringforth) { + return; + } + if (_universalSpringforthService) { + return; + } + if (_queue.count == 0) { + return; + } + id popupService = _queue.firstObject; + if (![popupService conformsToProtocol:@protocol(TTPopupServiceCeremony)]) { + return; + } + _universalSpringforthService = popupService; + FFPopupHorizontalLayout horizontalLayout = FFPopupHorizontalLayout_Center; + FFPopupVerticalLayout verticalLayout = FFPopupVerticalLayout_Center; + FFPopupShowType showType = (FFPopupShowType)popupService.showType; + FFPopupDismissType dismissType = FFPopupDismissType_GrowOut; + if (popupService.style == MKJPopupStyleActionSheet) { + verticalLayout = FFPopupVerticalLayout_Bottom; + showType = FFPopupShowType_SlideInFromBottom; + dismissType = FFPopupDismissType_SlideOutToBottom; + } + FFPopup *popup = [FFPopup popupWithContentView:popupService.contentView]; + popup.showType = showType; + popup.dismissType = dismissType; + popup.maskType = FFPopupMaskType_Dimmed; + popup.dimmedMaskAlpha = popupService.maskEncouragegroundTransparency; + popup.shouldDismissOnBackgroundTouch = popupService.shouldDismissOnBackgroundTouch; + + [popup showWithLayout:FFPopupLayoutMake(horizontalLayout, verticalLayout) duration:0.0]; + __weak typeof(self) weakSelf = self; + + + + popup.didFinishDismissingBlock = ^{ + __strong typeof(weakSelf) strongSelf = weakSelf; + BOOL isDismissOnBackgroundTouch = strongSelf.universalSpringforthService != nil; + if (isDismissOnBackgroundTouch) { + + [self transltowardseProvenienceWhenContactMaskRegard]; + } + if (popupService.didFinishDismissHandler) { + popupService.didFinishDismissHandler(isDismissOnBackgroundTouch); + } + + strongSelf.showingSpringforth = NO; + + [strongSelf EvidenceSpringforth]; + }; + + popup.didFinishShowingBlock = ^{ + + self.showingSpringforth = YES; + if (popupService.didFinishShowingHandler) { + popupService.didFinishShowingHandler(); + } + }; +} + + +- (NSInteger)insertPolariztowardsionInthecaseofSpringforthServing:(id)service { + __block NSInteger result = NSNotFound; + if (service == nil) { + return result; + } + if (_queue.count == 0) { + return 0; + } + + if (service.shouldFilterSpringforth && service.filterIdentifier.length > 0) { + BOOL filterFlag = NO; + for (id serv in _queue) { + if ([serv.filterIdentifier isEqualToString:service.filterIdentifier]) { + filterFlag = YES; + break; + } + } + if (filterFlag) { + return result; + } + } + [_queue enumerateObjectsUsingBlock:^(id _Nonnull model, NSUInteger idx, BOOL * _Nonnull stop) { + + if (service.priority > model.priority) { + result = idx; + *stop = YES; + } + }]; + + result = MIN(result, _queue.count); + return result; +} + +@end diff --git a/YuMi/CustomUI/MKJPopup/Manager/TTPopupExecutiveServiceCeremony.h b/YuMi/CustomUI/MKJPopup/Manager/TTPopupExecutiveServiceCeremony.h new file mode 100644 index 00000000..eb39ff0f --- /dev/null +++ b/YuMi/CustomUI/MKJPopup/Manager/TTPopupExecutiveServiceCeremony.h @@ -0,0 +1,19 @@ +// +// TTPopupExecutiveServiceCeremony.h +// YM_TTChatViewKit +// +// Created by lvjunhang on 2019/5/21. +// Copyright © 2023 YUMI. All rights reserved. +// + +#import "TTPopupServiceCeremony.h" + +@protocol TTPopupExecutiveServiceCeremony + + +- (void)accelertowardseSpringforthServing:(id)service; + + +- (void)transltowardseSpringforthServing; + +@end diff --git a/YuMi/CustomUI/MKJPopup/Service/MKJPopupServing.h b/YuMi/CustomUI/MKJPopup/Service/MKJPopupServing.h new file mode 100644 index 00000000..4882f0c2 --- /dev/null +++ b/YuMi/CustomUI/MKJPopup/Service/MKJPopupServing.h @@ -0,0 +1,20 @@ +// +// MKJPopupServing.h +// YM_TTChatViewKit +// +// Created by lvjunhang on 2019/5/21. +// Copyright © 2023 YUMI. All rights reserved. +// + +#import +#import "TTPopupServiceCeremony.h" + +#define TTPopupConfig MKJPopupServing + +NS_ASSUME_NONNULL_BEGIN + +@interface MKJPopupServing : NSObject + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/CustomUI/MKJPopup/Service/MKJPopupServing.m b/YuMi/CustomUI/MKJPopup/Service/MKJPopupServing.m new file mode 100644 index 00000000..03756eb1 --- /dev/null +++ b/YuMi/CustomUI/MKJPopup/Service/MKJPopupServing.m @@ -0,0 +1,36 @@ +// +// MKJPopupServing.m +// YM_TTChatViewKit +// +// Created by lvjunhang on 2019/5/21. +// Copyright © 2023 YUMI. All rights reserved. +// + +#import "MKJPopupServing.h" + +@implementation MKJPopupServing + +@synthesize style = _style; +@synthesize priority = _priority; +@synthesize contentView = _contentView; +@synthesize maskEncouragegroundTransparency = _maskEncouragegroundTransparency; +@synthesize shouldDismissOnBackgroundTouch = _shouldDismissOnBackgroundTouch; +@synthesize didFinishDismissHandler = _didFinishDismissHandler; +@synthesize didFinishShowingHandler = _didFinishShowingHandler; +@synthesize shouldFilterSpringforth = _shouldFilterSpringforth; +@synthesize filterIdentifier = _filterIdentifier; +@synthesize showType = _showType; +- (instancetype)init { + self = [super init]; + if (self) { + _style = MKJPopupStyleAlert; + _priority = MKJPopupPriorityNormal; + _maskEncouragegroundTransparency = 0.5; + _shouldDismissOnBackgroundTouch = YES; + _shouldFilterSpringforth = NO; + _showType = MKJPopupShowGenreDefault; + } + return self; +} + +@end diff --git a/YuMi/CustomUI/MKJPopup/Service/TTPopupServiceCeremony.h b/YuMi/CustomUI/MKJPopup/Service/TTPopupServiceCeremony.h new file mode 100644 index 00000000..383f83c3 --- /dev/null +++ b/YuMi/CustomUI/MKJPopup/Service/TTPopupServiceCeremony.h @@ -0,0 +1,49 @@ +// +// TTPopupServiceCeremony.h +// YM_TTChatViewKit +// +// Created by lvjunhang on 2019/5/21. +// Copyright © 2023 YUMI. All rights reserved. +// + +#import "TTPopupConstants.h" + +typedef NS_ENUM(NSUInteger, MKJPopupShowGenre) { + MKJPopupShowGenre_FadeIn = 1, + MKJPopupShowGenreDefault = 8, +}; + +@class UIView; + +@protocol TTPopupServiceCeremony + + +@property (nonatomic, assign) MKJPopupStyle style; + + +@property (nonatomic, assign) MKJPopupPriority priority; + + +@property (nonatomic, strong) UIView *contentView; + + +@property (nonatomic, assign) CGFloat maskEncouragegroundTransparency; + + +@property (nonatomic, assign) BOOL shouldDismissOnBackgroundTouch; + + +@property (nonatomic, copy) void (^didFinishDismissHandler)(BOOL isDismissOnBackgroundTouch); + + +@property (nonatomic, copy) void (^didFinishShowingHandler)(void); + + +@property (nonatomic, assign) BOOL shouldFilterSpringforth; + + +@property (nonatomic, copy) NSString *filterIdentifier; + + +@property (nonatomic, assign) MKJPopupShowGenre showType; +@end diff --git a/YuMi/CustomUI/MKJPopup/View/MKJActionSheetRegard.h b/YuMi/CustomUI/MKJPopup/View/MKJActionSheetRegard.h new file mode 100644 index 00000000..50f23e6c --- /dev/null +++ b/YuMi/CustomUI/MKJPopup/View/MKJActionSheetRegard.h @@ -0,0 +1,26 @@ +// +// MKJActionSheetRegard.h +// YM_TTChatViewKit +// +// Created by lee on 2019/5/22. +// Copyright © 2023 YUMI. All rights reserved. +// + +#import +#import "TTPopupConstants.h" + +NS_ASSUME_NONNULL_BEGIN + +@class MKJActionSheetDisposition; + +@interface MKJActionSheetRegard : UIView + +@property (nonatomic, copy) TTPopupCompletionHandler revocationPerformance; +@property (nonatomic, copy) TTPopupCompletionHandler disappearPerformance; + +- (instancetype)initWithFrame:(CGRect)frame + demandsRevocation:(BOOL)demandsRevocation + items:(NSArray *)items; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/CustomUI/MKJPopup/View/MKJActionSheetRegard.m b/YuMi/CustomUI/MKJPopup/View/MKJActionSheetRegard.m new file mode 100644 index 00000000..ab0d7f5c --- /dev/null +++ b/YuMi/CustomUI/MKJPopup/View/MKJActionSheetRegard.m @@ -0,0 +1,135 @@ +// +// MKJActionSheetRegard.m +// YM_TTChatViewKit +// +// Created by lee on 2019/5/22. +// Copyright © 2023 YUMI. All rights reserved. +// + +#import "MKJActionSheetRegard.h" +#import "MKJActionSheetDisposition.h" +#import "DJDKMIMOMColor.h" +#import + +static CGFloat const kSheetViewCellHeight = 51.f; +static CGFloat const kSheetViewCornerRadius = 14.f; +static NSString *const kSheetViewCellConst = @"kSheetViewCellConst"; + +@interface MKJActionSheetRegard () + + +@property (nonatomic, strong) UITableView *tableView; + +@property (nonatomic, strong) NSArray *items; + +@property (nonatomic, assign) BOOL demandsRevocation; + +@property (nonatomic, strong) UIButton *revocationBtuton; + +@end + +@implementation MKJActionSheetRegard + +#pragma mark - +#pragma mark lifeCycle +- (instancetype)initWithFrame:(CGRect)frame demandsRevocation:(BOOL)demandsRevocation items:(NSArray *)items { + self = [super initWithFrame:frame]; + if (self) { + _items = items; + _demandsRevocation = demandsRevocation; + [self initRegards]; + [self initRestrictions]; + } + return self; +} + +- (void)initRegards { + [self addSubview:self.tableView]; + [self addSubview:self.revocationBtuton]; +} + +- (void)initRestrictions { + + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self); + make.height.mas_equalTo(self.items.count * kSheetViewCellHeight); + }]; + + if (_demandsRevocation) { + + self.revocationBtuton.hidden = NO; + [self.revocationBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self); + make.height.mas_equalTo(kSheetViewCellHeight); + make.top.mas_equalTo(self.tableView.mas_bottom).offset(15); + }]; + } + +} + +- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { + return 1; +} + +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.items.count; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:kSheetViewCellConst]; + cell.backgroundColor = UIColor.clearColor; + cell.textLabel.textAlignment = NSTextAlignmentCenter; + cell.textLabel.text = _items[indexPath.row].title; + cell.textLabel.textColor = _items[indexPath.row].titleColor; + return cell; +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + [tableView deselectRowAtIndexPath:indexPath animated:YES]; + + + MKJActionSheetDisposition *config = _items[indexPath.row]; + !config.ticktackPerformance ?: config.ticktackPerformance(); + + !_disappearPerformance ?: _disappearPerformance(); +} + +- (void)onTicktackRevoctowardsionBtutonPerformance:(UIButton *)revocationBtuton { + !_revocationPerformance ?: _revocationPerformance(); + !_disappearPerformance ?: _disappearPerformance(); +} + +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.separatorColor = [DJDKMIMOMColor performanceSepartowardsorPrettify]; + _tableView.separatorStyle = UITableViewCellSeparatorStyleSingleLine; + _tableView.rowHeight = kSheetViewCellHeight; + _tableView.tableFooterView = [[UIView alloc] init]; + _tableView.backgroundColor = [UIColor whiteColor]; + _tableView.layer.cornerRadius = kSheetViewCornerRadius; + _tableView.layer.masksToBounds = YES; + _tableView.bounces = NO; + [_tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:kSheetViewCellConst]; + } + return _tableView; +} + +- (UIButton *)revocationBtuton { + if (!_revocationBtuton) { + _revocationBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_revocationBtuton setTitle:YMLocalizedString(@"TT_Action_Sheet_View_0") forState:UIControlStateNormal]; + [_revocationBtuton setBackgroundColor:UIColor.whiteColor]; + [_revocationBtuton setTitleColor:[DJDKMIMOMColor precautiousCommunictowardsionPrettify] forState:UIControlStateNormal]; + [_revocationBtuton.titleLabel setFont:[UIFont systemFontOfSize:16]]; + _revocationBtuton.layer.cornerRadius = kSheetViewCornerRadius; + _revocationBtuton.layer.masksToBounds = YES; + [_revocationBtuton addTarget:self action:@selector(onTicktackRevoctowardsionBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + _revocationBtuton.hidden = YES; + } + return _revocationBtuton; +} + +@end diff --git a/YuMi/CustomUI/MKJPopup/View/MKJPrecautiousRegard.h b/YuMi/CustomUI/MKJPopup/View/MKJPrecautiousRegard.h new file mode 100644 index 00000000..7c0a27e4 --- /dev/null +++ b/YuMi/CustomUI/MKJPopup/View/MKJPrecautiousRegard.h @@ -0,0 +1,25 @@ +// +// MKJPrecautiousRegard.h +// YM_TTChatViewKit +// +// Created by lee on 2019/5/20. +// Copyright © 2023 YUMI. All rights reserved. +// + +#import +#import "TTPopupConstants.h" + +@class MKJPrecautiousDisposition; + +NS_ASSUME_NONNULL_BEGIN + +@interface MKJPrecautiousRegard : UIView +@property (nonatomic, strong) MKJPrecautiousDisposition *config; +@property (nonatomic, assign) BOOL isDispositionDirectorate; +@property (nonatomic, copy) TTPopupCompletionHandler revocationPerformance; +@property (nonatomic, copy) TTPopupCompletionHandler acknowledgementPerformance; +@property (nonatomic, copy) TTPopupCompletionHandler disappearPerformance; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/CustomUI/MKJPopup/View/MKJPrecautiousRegard.m b/YuMi/CustomUI/MKJPopup/View/MKJPrecautiousRegard.m new file mode 100644 index 00000000..3b381378 --- /dev/null +++ b/YuMi/CustomUI/MKJPopup/View/MKJPrecautiousRegard.m @@ -0,0 +1,246 @@ +// +// MKJPrecautiousRegard.m +// YM_TTChatViewKit +// +// Created by lee on 2019/5/20. +// Copyright © 2023 YUMI. All rights reserved. +// + +#import "MKJPrecautiousRegard.h" +#import "MKJPrecautiousDisposition.h" +#import "DJDKMIMOMColor.h" +#import + +static CGFloat const kMargin = 25.f; +static CGFloat const kPadding = 20.f; +static CGFloat const kBtnHeight = 38.f; + +@interface MKJPrecautiousRegard () + +@property (nonatomic, strong) UILabel *titleLabel; +@property (nonatomic, strong) UILabel *communicationSequencignation; +@property (nonatomic, strong) UIButton *revocationBtuton; +@property (nonatomic, strong) UIButton *acknowledgementBtuton; +@property (nonatomic, strong) UIStackView *stackView; + +@end + +@implementation MKJPrecautiousRegard + +#pragma mark - lifeCyle +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initRegards]; + [self initRestrictions]; + } + return self; +} + +- (void)initRegards { + [self addSubview:self.titleLabel]; + [self addSubview:self.communicationSequencignation]; + [self addSubview:self.stackView]; + [self.stackView addSubview:self.revocationBtuton]; + [self.stackView addSubview:self.acknowledgementBtuton]; +} + +- (void)initRestrictions { + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self); + make.top.mas_equalTo(kPadding); + make.left.right.mas_equalTo(self).inset(kPadding); + }]; + + [self.communicationSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.titleLabel.mas_bottom).offset(kMargin); + make.left.right.mas_equalTo(self).inset(kPadding); + }]; + + [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.bottom.mas_equalTo(-kPadding); + make.centerX.mas_equalTo(self); + }]; + + [self.revocationBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(kBtnHeight); + make.width.mas_equalTo(self.mas_width).multipliedBy(0.4); + }]; + + [self.acknowledgementBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(kBtnHeight); + make.width.mas_equalTo(self.mas_width).multipliedBy(0.4); + }]; +} + +#pragma mark - Button Events +- (void)onTicktackConfirmBtutonPerformance:(UIButton *)acknowledgementBtuton { + !_acknowledgementPerformance ?: _acknowledgementPerformance(); + !_disappearPerformance ?: _disappearPerformance(); +} + +- (void)onTicktackRevoctowardsionBtutonPerformance:(UIButton *)revocationBtuton { + !_revocationPerformance ?: _revocationPerformance(); + !_disappearPerformance ?: _disappearPerformance(); +} + +#pragma mark - private method + +- (NSMutableAttributedString *)communictowardsionIdiosyncracyBWSttr:(MKJPrecautiousDisposition *)config { + NSMutableAttributedString *attString = [[NSMutableAttributedString alloc] initWithString:config.message]; + if (config.communicationBurlywoodIntervacuum > 0) { + NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init]; + paragraphStyle.lineSpacing = config.communicationBurlywoodIntervacuum; + paragraphStyle.alignment = self.communicationSequencignation.textAlignment; + [attString addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, config.message.length)]; + } + + + [config.communicationAttributedDisposition enumerateObjectsUsingBlock:^(MKJPrecautiousCommunicationAttributedDisposition * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + + if ([obj isKindOfClass:[MKJPrecautiousCommunicationAttributedDisposition class]]) { + if (obj.text && obj.text.length > 0) { + NSRange range = [config.message rangeOfString:obj.text]; + + if (obj.range.length != 0) { + if (obj.range.location + obj.range.length > config.message.length) { + NSAssert(NO, @"obj.range out of bounds"); + return; + } + range = obj.range; + } + if (obj.font) { + [attString addAttribute:NSFontAttributeName value:obj.font range:range]; + } + if (obj.color) { + [attString addAttribute:NSForegroundColorAttributeName value:obj.color range:range]; + } + } + } + }]; + return attString; +} + +#pragma mark - getter && setter + +- (void)setConfig:(MKJPrecautiousDisposition *)config { + _config = config; + + if (config.cornerRadius > 0) { + self.layer.cornerRadius = config.cornerRadius; + self.layer.masksToBounds = YES; + } + + self.backgroundColor = config.backgroundColor; + + _titleLabel.text = config.title; + _titleLabel.textColor = config.titleColor; + _titleLabel.font = config.titleFont; + + _revocationBtuton.hidden = config.performanceStyle == TTAlertActionConfirmStyle; + _acknowledgementBtuton.hidden = config.performanceStyle == TTAlertActionCancelStyle; + + + [_revocationBtuton setTitle:config.revocationBtutonDisposition.title forState:UIControlStateNormal]; + [_revocationBtuton setTitleColor:config.revocationBtutonDisposition.titleColor forState:UIControlStateNormal]; + [_revocationBtuton.titleLabel setFont:config.revocationBtutonDisposition.font]; + [_revocationBtuton setBackgroundColor:config.revocationBtutonDisposition.backgroundColor]; + [_revocationBtuton setBackgroundImage:config.revocationBtutonDisposition.backgroundImage forState:UIControlStateNormal]; + if (config.revocationBtutonDisposition.cornerRadius > 0) { + _revocationBtuton.layer.cornerRadius = config.revocationBtutonDisposition.cornerRadius; + _revocationBtuton.layer.masksToBounds = YES; + } + + + [_acknowledgementBtuton setTitle:config.acknowledgementBtutonDisposition.title forState:UIControlStateNormal]; + [_acknowledgementBtuton setTitleColor:config.acknowledgementBtutonDisposition.titleColor forState:UIControlStateNormal]; + [_acknowledgementBtuton.titleLabel setFont:config.acknowledgementBtutonDisposition.font]; + [_acknowledgementBtuton setBackgroundColor:config.acknowledgementBtutonDisposition.backgroundColor]; + [_acknowledgementBtuton setBackgroundImage:config.acknowledgementBtutonDisposition.backgroundImage forState:UIControlStateNormal]; + if (config.acknowledgementBtutonDisposition.cornerRadius > 0) { + _acknowledgementBtuton.layer.cornerRadius = config.acknowledgementBtutonDisposition.cornerRadius; + _acknowledgementBtuton.layer.masksToBounds = YES; + } + + + _communicationSequencignation.font = config.communicationLetterform; + _communicationSequencignation.textColor = config.communicationPrettify; + + if (config.communicationAttributedDisposition.count > 0) { + _communicationSequencignation.attributedText = [self communictowardsionIdiosyncracyBWSttr:config]; + _communicationSequencignation.textAlignment = NSTextAlignmentCenter; + } else if(config.communicationAttributed.length > 0) { + _communicationSequencignation.attributedText = config.communicationAttributed; + _communicationSequencignation.textAlignment = NSTextAlignmentCenter; + } else { + _communicationSequencignation.text = config.message; + } + + _revocationBtuton.layer.borderColor = [DJDKMIMOMColor dividerPrettify].CGColor; + _revocationBtuton.layer.borderWidth = 2.f; + _acknowledgementBtuton.layer.borderColor = [DJDKMIMOMColor dividerPrettify].CGColor; + _acknowledgementBtuton.layer.borderWidth = 2.f; +} + +- (void)setIsDispositionDirectorate:(BOOL)isDispositionDirectorate { + _isDispositionDirectorate = isDispositionDirectorate; + if (isDispositionDirectorate) { + + _revocationBtuton.layer.borderColor = [DJDKMIMOMColor dividerPrettify].CGColor; + _revocationBtuton.layer.borderWidth = 2.f; + _acknowledgementBtuton.layer.borderColor = [DJDKMIMOMColor dividerPrettify].CGColor; + _acknowledgementBtuton.layer.borderWidth = 2.f; + }else { + + _revocationBtuton.layer.borderColor = [DJDKMIMOMColor dividerPrettify].CGColor; + _revocationBtuton.layer.borderWidth = 0; + _acknowledgementBtuton.layer.borderColor = [DJDKMIMOMColor dividerPrettify].CGColor; + _acknowledgementBtuton.layer.borderWidth = 0; + } +} + + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.textAlignment = NSTextAlignmentCenter; + } + return _titleLabel ; +} + +- (UILabel *)communicationSequencignation { + if (!_communicationSequencignation) { + _communicationSequencignation = [[UILabel alloc] init]; + _communicationSequencignation.numberOfLines = 0; + _communicationSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _communicationSequencignation; +} + +- (UIButton *)revocationBtuton { + if (!_revocationBtuton) { + _revocationBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_revocationBtuton addTarget:self action:@selector(onTicktackRevoctowardsionBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _revocationBtuton; +} + +- (UIButton *)acknowledgementBtuton { + if (!_acknowledgementBtuton) { + _acknowledgementBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_acknowledgementBtuton addTarget:self action:@selector(onTicktackConfirmBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _acknowledgementBtuton; +} + +- (UIStackView *)stackView { + if (!_stackView) { + _stackView = [[UIStackView alloc] initWithArrangedSubviews:@[self.revocationBtuton, self.acknowledgementBtuton]]; + _stackView.distribution = UIStackViewDistributionFillEqually; + _stackView.alignment = UIStackViewAlignmentCenter; + _stackView.spacing = 16; + } + return _stackView; +} + +@end diff --git a/YuMi/CustomUI/SVGA/YUMISVGADisporter.h b/YuMi/CustomUI/SVGA/YUMISVGADisporter.h new file mode 100644 index 00000000..220780d3 --- /dev/null +++ b/YuMi/CustomUI/SVGA/YUMISVGADisporter.h @@ -0,0 +1,16 @@ +// +// YMSVGAPlayer.h +// YUMI +// +// Created by YUMI on 2022/6/15. +// + +#import "SVGAImageView.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMISVGADisporter : SVGAImageView + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/CustomUI/SVGA/YUMISVGADisporter.m b/YuMi/CustomUI/SVGA/YUMISVGADisporter.m new file mode 100644 index 00000000..546104b4 --- /dev/null +++ b/YuMi/CustomUI/SVGA/YUMISVGADisporter.m @@ -0,0 +1,530 @@ +// +// YMSVGAPlayer.m +// YUMI +// +// Created by YUMI on 2022/6/15. +// + +#import "YUMISVGADisporter.h" +#import "SVGAVideoEntity.h" +#import "SVGAVideoSpriteEntity.h" +#import "SVGAVideoSpriteFrameEntity.h" +#import "SVGAContentLayer.h" +#import "SVGABitmapLayer.h" +#import "SVGAVectorLayer.h" +#import "SVGAAudioLayer.h" +#import "SVGAAudioEntity.h" +#import "YYText.h" + +@interface YUMISVGADisporter () + +@property (nonatomic, strong) CALayer *drawLayer; +@property (nonatomic, strong) NSArray *audioLayers; +@property (nonatomic, strong) CADisplayLink *displayLink; +@property (nonatomic, assign) NSInteger currentFrame; +@property (nonatomic, copy) NSArray *contentLayers; +@property (nonatomic, copy) NSDictionary *dynamicObjects; +@property (nonatomic, copy) NSDictionary *dynamicTexts; +@property (nonatomic, copy) NSDictionary *dynamicDrawings; +@property (nonatomic, copy) NSDictionary *dynamicHiddens; +@property (nonatomic, assign) int loopCount; +@property (nonatomic, assign) NSRange currentRange; +@property (nonatomic, assign) BOOL forwardAnimating; +@property (nonatomic, assign) BOOL reversing; +@property (nonatomic, assign) BOOL audioPlaying; + +@end + + + +@implementation YUMISVGADisporter +@synthesize videoItem = _videoItem; + + +- (instancetype)init { + if (self = [super init]) { + [self initPlayer]; + } + return self; +} + +- (instancetype)initWithFrame:(CGRect)frame { + if (self = [super initWithFrame:frame]) { + [self initPlayer]; + } + return self; +} + +- (instancetype)initWithCoder:(NSCoder *)aDecoder { + if (self = [super initWithCoder:aDecoder]) { + [self initPlayer]; + } + return self; +} + +- (void)initPlayer { + self.contentMode = UIViewContentModeTop; + self.clearsAfterStop = YES; +} + +- (void)willMoveToSuperview:(UIView *)newSuperview { + [super willMoveToSuperview:newSuperview]; + if (newSuperview == nil) { + [self stopAnimation:YES]; + } +} + +- (void)startAnimation { + if (self.videoItem == nil) { + NSLog(@"videoItem could not be nil!"); + return; + } else if (self.drawLayer == nil) { + self.videoItem = _videoItem; + } + [self stopAnimation:NO]; + self.loopCount = 0; + self.displayLink = [CADisplayLink displayLinkWithTarget:self selector:@selector(next)]; + + self.displayLink.frameInterval = 60 / self.videoItem.FPS; + [self.displayLink addToRunLoop:[NSRunLoop mainRunLoop] forMode:NSRunLoopCommonModes]; + self.forwardAnimating = !self.reversing; +} + +- (void)startAnimationWithRange:(NSRange)range reverse:(BOOL)reverse { + self.currentRange = range; + self.reversing = reverse; + if (reverse) { + self.currentFrame = MIN(self.videoItem.frames - 1, range.location + range.length - 1); + } + else { + self.currentFrame = MAX(0, range.location); + } + [self startAnimation]; +} + +- (void)pauseAnimation { + [self stopAnimation:NO]; +} + +- (void)stopAnimation { + [self stopAnimation:self.clearsAfterStop]; +} + +- (void)stopAnimation:(BOOL)clear { + self.forwardAnimating = NO; + if (self.displayLink != nil) { + [self.displayLink invalidate]; + } + if (clear) { + [self clear]; + } + [self clearAudios]; + self.displayLink = nil; +} + +- (void)clear { + self.contentLayers = nil; + [self.drawLayer removeFromSuperlayer]; + self.drawLayer = nil; +} + +- (void)clearAudios { + if (!self.audioPlaying) { + return; + } + for (SVGAAudioLayer *layer in self.audioLayers) { + [layer.audioPlayer stop]; + } + self.audioPlaying = NO; +} + +- (void)stepToFrame:(NSInteger)frame andPlay:(BOOL)andPlay { + if (self.videoItem == nil) { + NSLog(@"videoItem could not be nil!"); + return; + } else if (self.drawLayer == nil) { + self.videoItem = _videoItem; + } + if (frame >= self.videoItem.frames || frame < 0) { + return; + } + [self pauseAnimation]; + self.currentFrame = frame; + [self update]; + if (andPlay) { + self.forwardAnimating = YES; + self.displayLink = [CADisplayLink displayLinkWithTarget:self selector:@selector(next)]; + self.displayLink.frameInterval = 60 / self.videoItem.FPS; + [self.displayLink addToRunLoop:[NSRunLoop mainRunLoop] forMode:NSRunLoopCommonModes]; + } +} + +- (void)stepToPercentage:(CGFloat)percentage andPlay:(BOOL)andPlay { + NSInteger frame = (NSInteger)(self.videoItem.frames * percentage); + if (frame >= self.videoItem.frames && frame > 0) { + frame = self.videoItem.frames - 1; + } + [self stepToFrame:frame andPlay:andPlay]; +} + +- (void)draw { + self.drawLayer = [[CALayer alloc] init]; + self.drawLayer.frame = CGRectMake(0, 0, self.videoItem.videoSize.width, self.videoItem.videoSize.height); + self.drawLayer.masksToBounds = true; + NSMutableDictionary *tempHostLayers = [NSMutableDictionary dictionary]; + NSMutableArray *tempContentLayers = [NSMutableArray array]; + + [self.videoItem.sprites enumerateObjectsUsingBlock:^(SVGAVideoSpriteEntity * _Nonnull butterfly, NSUInteger idx, BOOL * _Nonnull stop) { + UIImage *bitmap; + if (butterfly.imageKey != nil) { + NSString *bitmapKey = [butterfly.imageKey stringByDeletingPathExtension]; + if (self.dynamicObjects[bitmapKey] != nil) { + bitmap = self.dynamicObjects[bitmapKey]; + } + else { + bitmap = self.videoItem.images[bitmapKey]; + } + } + SVGAContentLayer *contentLayer = [butterfly requestLayerWithBitmap:bitmap]; + contentLayer.imageKey = butterfly.imageKey; + [tempContentLayers addObject:contentLayer]; + if ([butterfly.imageKey hasSuffix:@".matte"]) { + CALayer *hostLayer = [[CALayer alloc] init]; + hostLayer.mask = contentLayer; + tempHostLayers[butterfly.imageKey] = hostLayer; + } else { + if (butterfly.matteKey && butterfly.matteKey.length > 0) { + CALayer *hostLayer = tempHostLayers[butterfly.matteKey]; + [hostLayer addSublayer:contentLayer]; + if (![butterfly.matteKey isEqualToString:self.videoItem.sprites[idx - 1].matteKey]) { + [self.drawLayer addSublayer:hostLayer]; + } + } else { + [self.drawLayer addSublayer:contentLayer]; + } + } + if (butterfly.imageKey != nil) { + if (self.dynamicTexts[butterfly.imageKey] != nil) { + NSAttributedString *text = self.dynamicTexts[butterfly.imageKey]; + CGSize bitmapSize = CGSizeMake(self.videoItem.images[butterfly.imageKey].size.width * self.videoItem.images[butterfly.imageKey].scale, self.videoItem.images[butterfly.imageKey].size.height * self.videoItem.images[butterfly.imageKey].scale); + + + CATextLayer *textLayer = [CATextLayer layer]; + textLayer.contentsScale = [[UIScreen mainScreen] scale]; + [textLayer setString:self.dynamicTexts[butterfly.imageKey]]; + textLayer.alignmentMode = kCAAlignmentCenter; + CGSize size = [text boundingRectWithSize:CGSizeMake(bitmapSize.width, CGFLOAT_MAX) + options:NSStringDrawingUsesLineFragmentOrigin + context:NULL].size; + textLayer.frame = CGRectMake(0, 0, size.width, size.height); + [contentLayer addSublayer:textLayer]; + contentLayer.textLayer = textLayer; + [contentLayer resetTextLayerProperties:text]; + } + if (self.dynamicHiddens[butterfly.imageKey] != nil && + [self.dynamicHiddens[butterfly.imageKey] boolValue] == YES) { + contentLayer.dynamicHidden = YES; + } + if (self.dynamicDrawings[butterfly.imageKey] != nil) { + contentLayer.dynamicDrawingBlock = self.dynamicDrawings[butterfly.imageKey]; + } + } + }]; + self.contentLayers = tempContentLayers; + + [self.layer addSublayer:self.drawLayer]; + NSMutableArray *audioLayers = [NSMutableArray array]; + [self.videoItem.audios enumerateObjectsUsingBlock:^(SVGAAudioEntity * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + SVGAAudioLayer *audioLayer = [[SVGAAudioLayer alloc] initWithAudioItem:obj videoItem:self.videoItem]; + [audioLayers addObject:audioLayer]; + }]; + self.audioLayers = audioLayers; + [self update]; + [self resize]; +} + +- (void)resize { + if (self.contentMode == UIViewContentModeScaleAspectFit) { + CGFloat videoRatio = self.videoItem.videoSize.width / self.videoItem.videoSize.height; + CGFloat layerRatio = self.bounds.size.width / self.bounds.size.height; + if (videoRatio > layerRatio) { + CGFloat ratio = self.bounds.size.width / self.videoItem.videoSize.width; + CGPoint offset = CGPointMake( + (1.0 - ratio) / 2.0 * self.videoItem.videoSize.width, + (1.0 - ratio) / 2.0 * self.videoItem.videoSize.height + - (self.bounds.size.height - self.videoItem.videoSize.height * ratio) / 2.0 + ); + self.drawLayer.transform = CATransform3DMakeAffineTransform(CGAffineTransformMake(ratio, 0, 0, ratio, -offset.x, -offset.y)); + } + else { + CGFloat ratio = self.bounds.size.height / self.videoItem.videoSize.height; + CGPoint offset = CGPointMake( + (1.0 - ratio) / 2.0 * self.videoItem.videoSize.width - (self.bounds.size.width - self.videoItem.videoSize.width * ratio) / 2.0, + (1.0 - ratio) / 2.0 * self.videoItem.videoSize.height); + self.drawLayer.transform = CATransform3DMakeAffineTransform(CGAffineTransformMake(ratio, 0, 0, ratio, -offset.x, -offset.y)); + } + } + else if (self.contentMode == UIViewContentModeScaleAspectFill) { + CGFloat videoRatio = self.videoItem.videoSize.width / self.videoItem.videoSize.height; + CGFloat layerRatio = self.bounds.size.width / self.bounds.size.height; + if (videoRatio < layerRatio) { + CGFloat ratio = self.bounds.size.width / self.videoItem.videoSize.width; + CGPoint offset = CGPointMake( + (1.0 - ratio) / 2.0 * self.videoItem.videoSize.width, + (1.0 - ratio) / 2.0 * self.videoItem.videoSize.height + - (self.bounds.size.height - self.videoItem.videoSize.height * ratio) / 2.0 + ); + self.drawLayer.transform = CATransform3DMakeAffineTransform(CGAffineTransformMake(ratio, 0, 0, ratio, -offset.x, -offset.y)); + } + else { + CGFloat ratio = self.bounds.size.height / self.videoItem.videoSize.height; + CGPoint offset = CGPointMake( + (1.0 - ratio) / 2.0 * self.videoItem.videoSize.width - (self.bounds.size.width - self.videoItem.videoSize.width * ratio) / 2.0, + (1.0 - ratio) / 2.0 * self.videoItem.videoSize.height); + self.drawLayer.transform = CATransform3DMakeAffineTransform(CGAffineTransformMake(ratio, 0, 0, ratio, -offset.x, -offset.y)); + } + } + else if (self.contentMode == UIViewContentModeTop) { + CGFloat scaleX = self.frame.size.width / self.videoItem.videoSize.width; + CGPoint offset = CGPointMake((1.0 - scaleX) / 2.0 * self.videoItem.videoSize.width, (1 - scaleX) / 2.0 * self.videoItem.videoSize.height); + self.drawLayer.transform = CATransform3DMakeAffineTransform(CGAffineTransformMake(scaleX, 0, 0, scaleX, -offset.x, -offset.y)); + } + else if (self.contentMode == UIViewContentModeBottom) { + CGFloat scaleX = self.frame.size.width / self.videoItem.videoSize.width; + CGPoint offset = CGPointMake( + (1.0 - scaleX) / 2.0 * self.videoItem.videoSize.width, + (1.0 - scaleX) / 2.0 * self.videoItem.videoSize.height); + self.drawLayer.transform = CATransform3DMakeAffineTransform(CGAffineTransformMake(scaleX, 0, 0, scaleX, -offset.x, -offset.y + self.frame.size.height - self.videoItem.videoSize.height * scaleX)); + } + else if (self.contentMode == UIViewContentModeLeft) { + CGFloat scaleY = self.frame.size.height / self.videoItem.videoSize.height; + CGPoint offset = CGPointMake((1.0 - scaleY) / 2.0 * self.videoItem.videoSize.width, (1 - scaleY) / 2.0 * self.videoItem.videoSize.height); + self.drawLayer.transform = CATransform3DMakeAffineTransform(CGAffineTransformMake(scaleY, 0, 0, scaleY, -offset.x, -offset.y)); + } + else if (self.contentMode == UIViewContentModeRight) { + CGFloat scaleY = self.frame.size.height / self.videoItem.videoSize.height; + CGPoint offset = CGPointMake( + (1.0 - scaleY) / 2.0 * self.videoItem.videoSize.width, + (1.0 - scaleY) / 2.0 * self.videoItem.videoSize.height); + self.drawLayer.transform = CATransform3DMakeAffineTransform(CGAffineTransformMake(scaleY, 0, 0, scaleY, -offset.x + self.frame.size.width - self.videoItem.videoSize.width * scaleY, -offset.y)); + } + else { + CGFloat scaleX = self.frame.size.width / self.videoItem.videoSize.width; + CGFloat scaleY = self.frame.size.height / self.videoItem.videoSize.height; + CGPoint offset = CGPointMake((1.0 - scaleX) / 2.0 * self.videoItem.videoSize.width, (1 - scaleY) / 2.0 * self.videoItem.videoSize.height); + self.drawLayer.transform = CATransform3DMakeAffineTransform(CGAffineTransformMake(scaleX, 0, 0, scaleY, -offset.x, -offset.y)); + } +} + +- (void)layoutSubviews { + [super layoutSubviews]; + [self resize]; +} + +- (void)update { + [CATransaction setDisableActions:YES]; + for (SVGAContentLayer *layer in self.contentLayers) { + if ([layer isKindOfClass:[SVGAContentLayer class]]) { + [layer stepToFrame:self.currentFrame]; + } + } + [CATransaction setDisableActions:NO]; + if (self.forwardAnimating && self.audioLayers.count > 0) { + for (SVGAAudioLayer *layer in self.audioLayers) { + if (!self.audioPlaying && layer.audioItem.startFrame >= self.currentFrame) { + [layer.audioPlayer setCurrentTime:(NSTimeInterval)(layer.audioItem.startTime / 1000)]; + [layer.audioPlayer play]; + self.audioPlaying = YES; + } + if (self.audioPlaying && layer.audioItem.endFrame <= self.currentFrame) { + [layer.audioPlayer stop]; + self.audioPlaying = NO; + } + } + } +} + +- (void)next { + if (self.reversing) { + self.currentFrame--; + if (self.currentFrame < (NSInteger)MAX(0, self.currentRange.location)) { + self.currentFrame = MIN(self.videoItem.frames - 1, self.currentRange.location + self.currentRange.length - 1); + self.loopCount++; + } + } + else { + self.currentFrame++; + if (self.currentFrame >= MIN(self.videoItem.frames, self.currentRange.location + self.currentRange.length)) { + self.currentFrame = MAX(0, self.currentRange.location); + [self clearAudios]; + self.loopCount++; + } + } + if (self.loops > 0 && self.loopCount >= self.loops) { + [self stopAnimation]; + if (!self.clearsAfterStop && [self.fillMode isEqualToString:@"Backward"]) { + [self stepToFrame:MAX(0, self.currentRange.location) andPlay:NO]; + } + else if (!self.clearsAfterStop && [self.fillMode isEqualToString:@"Forward"]) { + [self stepToFrame:MIN(self.videoItem.frames - 1, self.currentRange.location + self.currentRange.length - 1) andPlay:NO]; + } + id delegate = self.delegate; + if (delegate != nil && [delegate respondsToSelector:@selector(svgaPlayerDidFinishedAnimation:)]) { + [delegate svgaPlayerDidFinishedAnimation:self]; + } + return; + } + [self update]; + id delegate = self.delegate; + if (delegate != nil && [delegate respondsToSelector:@selector(svgaPlayerDidAnimatedToFrame:)]) { + [delegate svgaPlayerDidAnimatedToFrame:self.currentFrame]; + } + if (delegate != nil && [delegate respondsToSelector:@selector(svgaPlayerDidAnimatedToPercentage:)] && self.videoItem.frames > 0) { + [delegate svgaPlayerDidAnimatedToPercentage:(CGFloat)(self.currentFrame + 1) / (CGFloat)self.videoItem.frames]; + } +} + +- (void)setVideoItem:(SVGAVideoEntity *)videoItem { + _videoItem = videoItem; + _currentRange = NSMakeRange(0, videoItem.frames); + _reversing = NO; + _currentFrame = 0; + _loopCount = 0; + [[NSOperationQueue mainQueue] addOperationWithBlock:^{ + [self clear]; + [self draw]; + }]; +} + +#pragma mark - Dynamic Object + +- (void)setImage:(UIImage *)image forKey:(NSString *)aKey { + if (image == nil) { + return; + } + NSMutableDictionary *mutableDynamicObjects = [self.dynamicObjects mutableCopy]; + [mutableDynamicObjects setObject:image forKey:aKey]; + self.dynamicObjects = mutableDynamicObjects; + if (self.contentLayers.count > 0) { + for (SVGAContentLayer *layer in self.contentLayers) { + if ([layer isKindOfClass:[SVGAContentLayer class]] && [layer.imageKey isEqualToString:aKey]) { + layer.bitmapLayer.contents = (__bridge id _Nullable)([image CGImage]); + } + } + } +} + +- (void)setImageWithURL:(NSURL *)URL forKey:(NSString *)aKey { + [[[NSURLSession sharedSession] dataTaskWithURL:URL completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) { + if (error == nil && data != nil) { + UIImage *image = [UIImage imageWithData:data]; + if (image != nil) { + [[NSOperationQueue mainQueue] addOperationWithBlock:^{ + [self setImage:image forKey:aKey]; + }]; + } + } + }] resume]; +} + +- (void)setImage:(UIImage *)image forKey:(NSString *)aKey referenceLayer:(CALayer *)referenceLayer { + [self setImage:image forKey:aKey]; +} + +- (void)setAttributedText:(NSAttributedString *)attributedText forKey:(NSString *)aKey { + if (attributedText == nil) { + return; + } + NSMutableDictionary *mutableDynamicTexts = [self.dynamicTexts mutableCopy]; + [mutableDynamicTexts setObject:attributedText forKey:aKey]; + self.dynamicTexts = mutableDynamicTexts; + if (self.contentLayers.count > 0) { + CGSize bitmapSize = CGSizeMake(self.videoItem.images[aKey].size.width * self.videoItem.images[aKey].scale, self.videoItem.images[aKey].size.height * self.videoItem.images[aKey].scale); + CGSize size = [attributedText boundingRectWithSize:bitmapSize + options:NSStringDrawingUsesLineFragmentOrigin context:NULL].size; + CATextLayer *textLayer; + for (SVGAContentLayer *layer in self.contentLayers) { + if ([layer isKindOfClass:[SVGAContentLayer class]] && [layer.imageKey isEqualToString:aKey]) { + textLayer = layer.textLayer; + if (textLayer == nil) { + textLayer = [CATextLayer layer]; + [layer addSublayer:textLayer]; + layer.textLayer = textLayer; + [layer resetTextLayerProperties:attributedText]; + } + } + } + if (textLayer != nil) { + textLayer.contentsScale = [[UIScreen mainScreen] scale]; + [textLayer setString:attributedText]; + textLayer.alignmentMode = kCAAlignmentCenter; + textLayer.frame = CGRectMake(0, 0, size.width, size.height); + } + } +} + +- (void)setDrawingBlock:(SVGAPlayerDynamicDrawingBlock)drawingBlock forKey:(NSString *)aKey { + NSMutableDictionary *mutableDynamicDrawings = [self.dynamicDrawings mutableCopy]; + [mutableDynamicDrawings setObject:drawingBlock forKey:aKey]; + self.dynamicDrawings = mutableDynamicDrawings; + if (self.contentLayers.count > 0) { + for (SVGAContentLayer *layer in self.contentLayers) { + if ([layer isKindOfClass:[SVGAContentLayer class]] && + [layer.imageKey isEqualToString:aKey]) { + layer.dynamicDrawingBlock = drawingBlock; + } + } + } +} + +- (void)setHidden:(BOOL)hidden forKey:(NSString *)aKey { + NSMutableDictionary *mutableDynamicHiddens = [self.dynamicHiddens mutableCopy]; + [mutableDynamicHiddens setObject:@(hidden) forKey:aKey]; + self.dynamicHiddens = mutableDynamicHiddens; + if (self.contentLayers.count > 0) { + for (SVGAContentLayer *layer in self.contentLayers) { + if ([layer isKindOfClass:[SVGAContentLayer class]] && + [layer.imageKey isEqualToString:aKey]) { + layer.dynamicHidden = hidden; + } + } + } +} + +- (void)clearDynamicObjects { + self.dynamicObjects = nil; + self.dynamicTexts = nil; + self.dynamicHiddens = nil; + self.dynamicDrawings = nil; +} + +- (NSDictionary *)dynamicObjects { + if (_dynamicObjects == nil) { + _dynamicObjects = @{}; + } + return _dynamicObjects; +} + +- (NSDictionary *)dynamicTexts { + if (_dynamicTexts == nil) { + _dynamicTexts = @{}; + } + return _dynamicTexts; +} + +- (NSDictionary *)dynamicHiddens { + if (_dynamicHiddens == nil) { + _dynamicHiddens = @{}; + } + return _dynamicHiddens; +} + +- (NSDictionary *)dynamicDrawings { + if (_dynamicDrawings == nil) { + _dynamicDrawings = @{}; + } + return _dynamicDrawings; +} + +@end + diff --git a/YuMi/CustomUI/ShareView/Model/YUMIParaticipationAbstractMatrix.h b/YuMi/CustomUI/ShareView/Model/YUMIParaticipationAbstractMatrix.h new file mode 100644 index 00000000..be576a8e --- /dev/null +++ b/YuMi/CustomUI/ShareView/Model/YUMIParaticipationAbstractMatrix.h @@ -0,0 +1,40 @@ +// +// YMShareModel.h +// YUMI +// +// Created by YUMI on 2021/11/23. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +typedef NS_ENUM(NSUInteger, ShareGenre) { + + ShareGenre_Room = 1, + + ShareGenre_H5 = 2, + + ShareGenre_User_Draw = 888, +}; + +@interface YUMIParaticipationAbstractMatrix : NSObject +@property (nonatomic,copy) NSString *shareTitle; +@property (nonatomic,copy) NSString *shareContent; +@property (nonatomic,copy) NSString *shareUrl; +@property (nonatomic,copy) NSString *shareImageUrl; +@property (nonatomic,copy) UIImage *shareImage; +@property (nonatomic,assign) ShareGenre type; +@property (nonatomic,assign) NSInteger shareType; +@property (nonatomic,assign) NSInteger roomUid; +#pragma mark - 动态分享 +@property (nonatomic,copy) NSString *uid; +@property (nonatomic,copy) NSString *dynamicId; +@property (nonatomic,copy) NSString *worldId; +@property (nonatomic,copy) NSString *imageUrl; +@property (nonatomic,copy) NSString *nick; +@property (nonatomic,copy) NSString *publishUid; +@property (nonatomic,copy) NSString *content; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/CustomUI/ShareView/Model/YUMIParaticipationAbstractMatrix.m b/YuMi/CustomUI/ShareView/Model/YUMIParaticipationAbstractMatrix.m new file mode 100644 index 00000000..c5fefc49 --- /dev/null +++ b/YuMi/CustomUI/ShareView/Model/YUMIParaticipationAbstractMatrix.m @@ -0,0 +1,12 @@ +// +// YMShareModel.m +// YUMI +// +// Created by YUMI on 2021/11/23. +// + +#import "YUMIParaticipationAbstractMatrix.h" + +@implementation YUMIParaticipationAbstractMatrix + +@end diff --git a/YuMi/CustomUI/ShareView/Model/YUMIParaticipationProvision.h b/YuMi/CustomUI/ShareView/Model/YUMIParaticipationProvision.h new file mode 100644 index 00000000..d7b70f10 --- /dev/null +++ b/YuMi/CustomUI/ShareView/Model/YUMIParaticipationProvision.h @@ -0,0 +1,41 @@ +// +// YMShareItem.h +// YUMI +// +// Created by YUMI on 2021/11/23. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +typedef enum : NSUInteger { + + XPShareItemTagWeChat = 1, + + XPShareItemTagMoments, + + XPShareItemTagQQ, + + XPShareItemTagQQZone, + + XPShareItemTagLine, + + XPShareItemTagFaceBook, + + XPShareItemTagCopyLink, + + XPShareItemTagAppFriends, +} XPShareItemTag; + +@interface YUMIParaticipationProvision : NSObject +@property (nonatomic, copy) NSString *title; +@property (nonatomic, copy) NSString *imageName; +@property (nonatomic, copy) NSString *disableImageName; +@property (nonatomic, assign) BOOL disable; +@property (nonatomic, assign) XPShareItemTag type; + ++ (instancetype)itemWitCouple:(XPShareItemTag)itemTag title:(NSString *)title imageName:(NSString *)imageName disableImageName:(NSString *)disableImageName; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/CustomUI/ShareView/Model/YUMIParaticipationProvision.m b/YuMi/CustomUI/ShareView/Model/YUMIParaticipationProvision.m new file mode 100644 index 00000000..e2aa7862 --- /dev/null +++ b/YuMi/CustomUI/ShareView/Model/YUMIParaticipationProvision.m @@ -0,0 +1,23 @@ +// +// YMShareItem.m +// YUMI +// +// Created by YUMI on 2021/11/23. +// + +#import "YUMIParaticipationProvision.h" + +@implementation YUMIParaticipationProvision + ++ (instancetype)itemWitCouple:(XPShareItemTag)itemTag title:(NSString *)title imageName:(NSString *)imageName disableImageName:(NSString *)disableImageName { + YUMIParaticipationProvision *item = [[self alloc] init]; + item.type = itemTag; + item.title = title; + item.imageName = imageName; + item.disableImageName = disableImageName; + item.disable = NO; + return item; +} + + +@end diff --git a/YuMi/CustomUI/ShareView/View/YUMIParaticipationProvisionElement.h b/YuMi/CustomUI/ShareView/View/YUMIParaticipationProvisionElement.h new file mode 100644 index 00000000..18360204 --- /dev/null +++ b/YuMi/CustomUI/ShareView/View/YUMIParaticipationProvisionElement.h @@ -0,0 +1,16 @@ +// +// YMShareItemCell.h +// YMRoomMoudle +// +// Created by YUMI on 2022/9/2. +// Copyright © 2023 YUMI. All rights reserved. +// + +#import +#import "YUMIParaticipationProvision.h" + +@interface YUMIParaticipationProvisionElement : UICollectionViewCell + +@property (nonatomic, strong) YUMIParaticipationProvision *shareProvision; + +@end diff --git a/YuMi/CustomUI/ShareView/View/YUMIParaticipationProvisionElement.m b/YuMi/CustomUI/ShareView/View/YUMIParaticipationProvisionElement.m new file mode 100644 index 00000000..09600664 --- /dev/null +++ b/YuMi/CustomUI/ShareView/View/YUMIParaticipationProvisionElement.m @@ -0,0 +1,77 @@ +// +// YMShareItemCell.m +// YMRoomMoudle +// +// Created by YUMI on 2022/9/2. +// Copyright © 2023 YUMI. All rights reserved. +// + +#import "YUMIParaticipationProvisionElement.h" +#import "DJDKMIMOMColor.h" +#import + +@interface YUMIParaticipationProvisionElement() + +@property (nonatomic, strong) UIImageView *figureIndicateRegard; +@property (nonatomic, strong) UILabel *titleLabel; + +@end + +@implementation YUMIParaticipationProvisionElement + +#pragma mark - Life Style +- (instancetype)initWithFrame:(CGRect)frame{ + if (self=[super initWithFrame:frame]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} +#pragma mark - Private Method +- (void)initSubViews{ + [self.contentView addSubview:self.figureIndicateRegard]; + [self.contentView addSubview:self.titleLabel]; + +} +- (void)initChildLyRestrictions{ + CGFloat wh = 40; + [self.figureIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.equalTo(@(wh)); + make.top.equalTo(self.contentView); + make.centerX.equalTo(self.contentView); + }]; + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.equalTo(self.contentView); + make.top.equalTo(self.figureIndicateRegard.mas_bottom).offset(10); + }]; +} + +#pragma mark - Getters And Setters +- (void)setShareProvision:(YUMIParaticipationProvision *)shareProvision{ + _shareProvision = shareProvision; + self.userInteractionEnabled = shareProvision.disable; + if (!shareProvision.disable) { + self.figureIndicateRegard.image = [UIImage imageNamed:shareProvision.disableImageName]; + }else{ + self.figureIndicateRegard.image = [UIImage imageNamed:shareProvision.imageName]; + } + self.titleLabel.text = shareProvision.title; +} + + +- (UIImageView *)figureIndicateRegard{ + if (!_figureIndicateRegard) { + _figureIndicateRegard = [[UIImageView alloc] init]; + } + return _figureIndicateRegard; +} +- (UILabel *)titleLabel{ + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.textColor = [DJDKMIMOMColor precautiousCommunictowardsionPrettify]; + _titleLabel.font = [UIFont fontWithName:@"PingFang-SC-Medium" size:12]; + _titleLabel.textAlignment = NSTextAlignmentCenter; + } + return _titleLabel; +} +@end diff --git a/YuMi/CustomUI/ShareView/YUMIParaticipationRegard.h b/YuMi/CustomUI/ShareView/YUMIParaticipationRegard.h new file mode 100644 index 00000000..73e105eb --- /dev/null +++ b/YuMi/CustomUI/ShareView/YUMIParaticipationRegard.h @@ -0,0 +1,26 @@ +// +// YMShareView.h +// YMRoomMoudle +// +// Created by YUMI on 2022/9/2. +// Copyright © 2023 YUMI. All rights reserved. +// + +#import +#import "YUMIParaticipationProvision.h" +#import "YUMIParaticipationAbstractMatrix.h" + +@class YUMIParaticipationRegard; +@protocol XCShareRegardRepresendtation +- (void)partowardsiciptowardsionRegardDidTicktackRevoctowardsion:(YUMIParaticipationRegard *)partowardsiciptowardsionRegard; +- (void)partowardsiciptowardsionRegard:(YUMIParaticipationRegard *)partowardsiciptowardsionRegard didSuccess:(YUMIParaticipationAbstractMatrix *)shareInfo; +- (void)partowardsiciptowardsionRegard:(YUMIParaticipationRegard *)partowardsiciptowardsionRegard shareFail:(NSString *)message; +@end; + +@interface YUMIParaticipationRegard : UIView + +@property (nonatomic, weak) id delegate; + +- (instancetype)initWithItems:(NSArray *)items itemSize:(CGSize)itemSize shareInfo:(YUMIParaticipationAbstractMatrix *)shareInfo; + +@end diff --git a/YuMi/CustomUI/ShareView/YUMIParaticipationRegard.m b/YuMi/CustomUI/ShareView/YUMIParaticipationRegard.m new file mode 100644 index 00000000..490b7172 --- /dev/null +++ b/YuMi/CustomUI/ShareView/YUMIParaticipationRegard.m @@ -0,0 +1,224 @@ +// +// XCShareView.m +// XCRoomMoudle +// +// Created by KevinWang on 2018/9/2. +// Copyright © 2018年 YiZhuan. All rights reserved. +// + +#import "YUMIParaticipationRegard.h" +#import +#import +#import +#import "YUMIMacroUitls.h" +#import "DJDKMIMOMColor.h" +#import "XCCurrentVCStackExecutive.h" +#import "MKJPopup.h" +#import "XNDJTBWGLoadingTool.h" +#import "NSArray+Safe.h" +#import "YUMIParaticipationProvisionElement.h" +#import "YUMIManeParaticipationRegardGovernancer.h" + +@interface YUMIParaticipationRegard() +@property (nonatomic, strong) UIButton *cancleBtuton; +@property (nonatomic, strong) UICollectionView *collectionView; +@property (nonatomic, strong) NSArray *items; +@property (nonatomic,assign) CGSize itemSize; +@property (nonatomic,strong) YUMIParaticipationAbstractMatrix *shareInfo; +@end + +@implementation YUMIParaticipationRegard + +#pragma mark - Life Style +- (instancetype)initWithItems:(NSArray *)items itemSize:(CGSize)itemSize shareInfo:(YUMIParaticipationAbstractMatrix *)shareInfo { + if (self = [super init]) { + self.items = items; + self.itemSize =itemSize; + self.shareInfo = shareInfo; + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.collectionView]; + [self addSubview:self.cancleBtuton]; +} + +- (void)initChildLyRestrictions { + + CGFloat collectionWidth = KScreenWidth - 15 * 2; + + int numberLine = collectionWidth / self.itemSize.width; + int page = self.items.count % numberLine > 0 ? (int)self.items.count / numberLine + 1 : (int)self.items.count / numberLine; + CGFloat collectionHeight = page * self.itemSize.height + 20 + (page-1) * 10 + 10; + [self.collectionView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self); + make.height.mas_equalTo(collectionHeight); + make.left.right.mas_equalTo(self).inset(15); + }]; + + [self.cancleBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(45); + make.left.right.mas_equalTo(self.collectionView); + make.top.mas_equalTo(self.collectionView.mas_bottom).offset(15); + }]; + + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(KScreenWidth); + make.bottom.mas_equalTo(self.cancleBtuton.mas_bottom).offset(30); + }]; +} + + +- (BOOL)isInstentiretyClient:(SSDKPlatformType)platform { + return [ShareSDK isClientInstalled:platform]; +} + +- (SSDKPlatformType)acquirePartowardsiciptowardsionPltowardsformGenre:(XPShareItemTag)itemTag { + SSDKPlatformType type; + switch (itemTag) { + case XPShareItemTagFaceBook: + type = SSDKPlatformTypeFacebook; + break; + case XPShareItemTagLine: + type = SSDKPlatformTypeLine; + break; + default: + type = SSDKPlatformTypeUnknown; + break; + } + return type; +} + +#pragma mark - UICollectionViewDelegate +- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section{ + return self.items.count; +} +- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{ + YUMIParaticipationProvisionElement *cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([YUMIParaticipationProvisionElement class]) forIndexPath:indexPath]; + YUMIParaticipationProvision * item = [self.items secureGroalTowardsIndictowardsrix1:indexPath.item]; + if(item != nil){ + if (item.type == XPShareItemTagAppFriends || item.type == XPShareItemTagCopyLink) { + item.disable = YES; + } else { + item.disable = [self isInstentiretyClient:[self acquirePartowardsiciptowardsionPltowardsformGenre:item.type]]; + } + cell.shareProvision = item; + } + return cell; +} +- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{ + [collectionView deselectItemAtIndexPath:indexPath animated:YES]; + YUMIParaticipationProvision * item = [self.items secureGroalTowardsIndictowardsrix1:indexPath.item]; + if (item == nil)return; + if (item.type == XPShareItemTagAppFriends) { + [MKJPopup dismiss]; + YUMIManeParaticipationRegardGovernancer * shareVC = [[YUMIManeParaticipationRegardGovernancer alloc] init]; + shareVC.shareType = ManeShareGenre_Monents; + shareVC.shareInfo = self.shareInfo; + [[XCCurrentVCStackExecutive shareManager].getCurrentVC.navigationController pushViewController:shareVC animated:YES]; + return; + } else if(item.type == XPShareItemTagCopyLink) { + NSString * urlString = self.shareInfo.shareUrl; + UIPasteboard *pasteboard = [UIPasteboard generalPasteboard]; + [pasteboard setString:urlString]; + [XNDJTBWGLoadingTool EvidenceAccomplishmentAboutCommunictowardsion:YMLocalizedString(@"YUMI_Share_View_0")]; + [MKJPopup dismiss]; + return; + } + self.shareInfo.shareType = item.type; + NSMutableDictionary *shareParams = [NSMutableDictionary dictionary]; + NSString * title = [self.shareInfo shareTitle].length > 0 ? self.shareInfo.shareTitle : @""; + NSString * content = self.shareInfo.shareContent.length > 0 ? self.shareInfo.shareContent : @""; + NSString * urlString = self.shareInfo.shareUrl.length > 0 ?self.shareInfo.shareUrl : @""; + NSString * imageURL = self.shareInfo.shareImageUrl.length > 0 ? self.shareInfo.shareImageUrl : @""; + NSString *encodedUrl = [urlString stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]]; + SSDKPlatformType platformType; + if (item.type == XPShareItemTagLine) { + title = YMLocalizedString(@"YUMI_Share_View_1"); + platformType = SSDKPlatformTypeLine; + if (![ShareSDK isClientInstalled:platformType]) { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:YMLocalizedString(@"YUMI_Share_View_2")]; + return; + } + [shareParams SSDKSetupLineParamsByText:encodedUrl image:nil type:SSDKContentTypeAuto]; + } else { + title = YMLocalizedString(@"YUMI_Share_View_3"); + platformType = SSDKPlatformTypeFacebook; + content = YMLocalizedString(@"YUMI_Share_View_4"); + [shareParams SSDKSetupFacebookParamsByText:title image:@"https://image.hfighting.com/morentouxiang.png" url:[NSURL URLWithString:urlString] urlTitle:@"title" urlName:@"name" attachementUrl:nil hashtag:@"#Piko" quote:@"Piko" shareType:SSDKFacebookShareTypeNative type:SSDKContentTypeWebPage]; + } + + [ShareSDK share:platformType parameters:shareParams onStateChanged:^(SSDKResponseState state, NSDictionary *userData, SSDKContentEntity *contentEntity, NSError *error) { + switch (state) { + case SSDKResponseStateSuccess: + { + if (self.delegate && [self.delegate respondsToSelector:@selector(partowardsiciptowardsionRegard:didSuccess:)]) { + [self.delegate partowardsiciptowardsionRegard:self didSuccess:self.shareInfo]; + } + } + break; + case SSDKResponseStateFail: + { + if (self.delegate && [self.delegate respondsToSelector:@selector(partowardsiciptowardsionRegard:shareFail:)]) { + [self.delegate partowardsiciptowardsionRegard:self shareFail:YMLocalizedString(@"YUMI_Share_View_5")]; + } + } + break; + case SSDKResponseStateCancel: + { + if (self.delegate && [self.delegate respondsToSelector:@selector(partowardsiciptowardsionRegard:shareFail:)]) { + [self.delegate partowardsiciptowardsionRegard:self shareFail:YMLocalizedString(@"YUMI_Share_View_6")]; + } + } + break; + default: + break; + } + }]; +} + +#pragma mark - Event Response +- (void)cancleBtutonDidClck:(UIButton *)button{ + if (self.delegate && [self.delegate respondsToSelector:@selector(partowardsiciptowardsionRegardDidTicktackRevoctowardsion:)]) { + [self.delegate partowardsiciptowardsionRegardDidTicktackRevoctowardsion:self]; + } +} + +#pragma mark - Getters And Setters +- (UICollectionView *)collectionView{ + if (!_collectionView) { + UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init]; + layout.itemSize = self.itemSize; + layout.minimumInteritemSpacing = 0; + layout.minimumLineSpacing = 10; + layout.sectionInset = UIEdgeInsetsMake(20, 0, 10, 0); + _collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout]; + _collectionView.backgroundColor = [UIColor whiteColor]; + _collectionView.dataSource = self; + _collectionView.delegate = self; + _collectionView.layer.masksToBounds = YES; + _collectionView.layer.cornerRadius = 15; + [_collectionView registerClass:[YUMIParaticipationProvisionElement class] forCellWithReuseIdentifier:NSStringFromClass([YUMIParaticipationProvisionElement class])]; + } + return _collectionView; +} + +- (UIButton *)cancleBtuton{ + if (!_cancleBtuton) { + _cancleBtuton = [[UIButton alloc] init]; + [_cancleBtuton setBackgroundColor:[UIColor whiteColor]]; + [_cancleBtuton setTitle:YMLocalizedString(@"YUMI_Share_View_7") forState:UIControlStateNormal]; + _cancleBtuton.titleLabel.font = [UIFont fontWithName:@"PingFang-SC-Medium" size:15]; + _cancleBtuton.layer.masksToBounds = YES; + _cancleBtuton.layer.cornerRadius = 45/2; + [_cancleBtuton setTitleColor:[DJDKMIMOMColor essayTertiusPrettify] forState:UIControlStateNormal]; + [_cancleBtuton addTarget:self action:@selector(cancleBtutonDidClck:) forControlEvents:UIControlEventTouchUpInside]; + } + return _cancleBtuton; +} + +@end diff --git a/YuMi/CustomUI/SwitchView/YUMISwitch.h b/YuMi/CustomUI/SwitchView/YUMISwitch.h new file mode 100644 index 00000000..1abd9728 --- /dev/null +++ b/YuMi/CustomUI/SwitchView/YUMISwitch.h @@ -0,0 +1,38 @@ +// +// YMSwitch.h +// YUMI +// +// Created by YUMI on 2023/2/9. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +typedef enum { + CHSwitchShapeOval, + CHSwitchShapeRectangle, + CHSwitchShapeRectangleNoCorner +} CHSwitchShape; + +@interface YUMISwitch : UIControl + +@property (nonatomic, getter = isOn) BOOL on; + +@property (nonatomic, assign) CHSwitchShape shape; + +@property (nonatomic, strong) UIColor *onTintColor; + +@property (nonatomic, strong) UIColor *tintColor; + +@property (nonatomic, strong) UIColor *thumbTintColor; + +@property (nonatomic, assign) BOOL shadow; + +@property (nonatomic, strong) UIColor *tintBorderPrettify; + +@property (nonatomic, strong) UIColor *onTintBorderPrettify; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/CustomUI/SwitchView/YUMISwitch.m b/YuMi/CustomUI/SwitchView/YUMISwitch.m new file mode 100644 index 00000000..faee62da --- /dev/null +++ b/YuMi/CustomUI/SwitchView/YUMISwitch.m @@ -0,0 +1,372 @@ +// +// YMSwitch.m +// YUMI +// +// Created by YUMI on 2023/2/9. +// + +#import "YUMISwitch.h" +#import + +static const CGFloat kAnimateDuration = 0.3f; +static const CGFloat kHorizontalAdjustment = 3.0f; +static const CGFloat kRectShapeCornerRadius = 4.0f; +static const CGFloat kThumbShadowOpacity = 0.3f; +static const CGFloat kThumbShadowRadius = 0.5f; +static const CGFloat kSwitchBorderWidth = 1.75f; + +@interface YUMISwitch () + +@property (nonatomic, strong) UIView *onEncouragegroundRegard; +@property (nonatomic, strong) UIView *offEncouragegroundRegard; +@property (nonatomic, strong) UIView *thumbRegard; + +@end +@implementation YUMISwitch + +@synthesize onEncouragegroundRegard = _onEncouragegroundRegard; +@synthesize offEncouragegroundRegard = _offEncouragegroundRegard; +@synthesize thumbRegard = _thumbRegard; +@synthesize on = _on; +@synthesize shape = _shape; +@synthesize onTintColor = _onTintColor; +@synthesize tintColor = _tintColor; +@synthesize thumbTintColor = _thumbTintColor; +@synthesize shadow = _shadow; +@synthesize onTintBorderPrettify = _onTintBorderPrettify; +@synthesize tintBorderPrettify = _tintBorderPrettify; + +#pragma mark - View +- (id)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self setupUI]; + } + return self; +} + +- (void) awakeFromNib { + [super awakeFromNib]; + + [self setupUI]; +} + +- (void)setupUI { + self.shape = CHSwitchShapeOval; + + [self setBackgroundColor:[UIColor clearColor]]; + + + self.onEncouragegroundRegard = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)]; + [self.onEncouragegroundRegard setBackgroundColor:[UIColor colorWithRed:(19.0f/255.0f) green:(121.0f/255.0f) blue:(208.0f/255.0f) alpha:1.0f]]; + [self.onEncouragegroundRegard.layer setCornerRadius:self.frame.size.height/2]; + [self.onEncouragegroundRegard.layer setShouldRasterize:YES]; + [self.onEncouragegroundRegard.layer setRasterizationScale:[UIScreen mainScreen].scale]; + [self addSubview:self.onEncouragegroundRegard]; + + + self.offEncouragegroundRegard = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)]; + [self.offEncouragegroundRegard setBackgroundColor:[UIColor whiteColor]]; + [self.offEncouragegroundRegard.layer setCornerRadius:self.frame.size.height/2]; + [self.offEncouragegroundRegard.layer setShouldRasterize:YES]; + [self.offEncouragegroundRegard.layer setRasterizationScale:[UIScreen mainScreen].scale]; + [self addSubview:self.offEncouragegroundRegard]; + + + self.thumbRegard = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.frame.size.height-kHorizontalAdjustment, self.frame.size.height-kHorizontalAdjustment)]; + [self.thumbRegard setBackgroundColor:[UIColor whiteColor]]; + [self.thumbRegard setUserInteractionEnabled:YES]; + [self.thumbRegard.layer setCornerRadius:(self.frame.size.height-kHorizontalAdjustment)/2]; + [self.thumbRegard.layer setShadowOffset:CGSizeMake(0, 1)]; + [self.thumbRegard.layer setShouldRasterize:YES]; + [self.thumbRegard.layer setShadowOpacity:kThumbShadowOpacity]; + [self.thumbRegard.layer setRasterizationScale:[UIScreen mainScreen].scale]; + [self addSubview:self.thumbRegard]; + self.shadow = YES; + + + [self.thumbRegard setCenter:CGPointMake(self.thumbRegard.frame.size.width/2, self.frame.size.height/2)]; + + + UITapGestureRecognizer *beatGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self + action:@selector(shankSwopBetowards:)]; + [beatGestureRecognizer setDelegate:self]; + [self.thumbRegard addGestureRecognizer:beatGestureRecognizer]; + + + UITapGestureRecognizer *tapBgGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(shankBackgroundBetowards:)]; + [tapBgGestureRecognizer setDelegate:self]; + [self addGestureRecognizer:tapBgGestureRecognizer]; + + + UIPanGestureRecognizer *panGestureRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(shankPan:)]; + [panGestureRecognizer setDelegate:self]; + [self.thumbRegard addGestureRecognizer:panGestureRecognizer]; + + [self setOn:NO]; +} + +#pragma mark - Accessor +- (BOOL)isOn { + return _on; +} + +- (void)setOn:(BOOL)on { + if (_on != on) + _on = on; + + if (_on) { + [self.onEncouragegroundRegard setAlpha:1.0]; + self.offEncouragegroundRegard.transform = CGAffineTransformMakeScale(0.0, 0.0); + + self.thumbRegard.center = CGPointMake(self.onEncouragegroundRegard.frame.size.width - (self.thumbRegard.frame.size.width + kHorizontalAdjustment)/2, self.thumbRegard.center.y); + } + else { + [self.onEncouragegroundRegard setAlpha:0.0]; + self.offEncouragegroundRegard.transform = CGAffineTransformMakeScale(1.0, 1.0); + + self.thumbRegard.center = CGPointMake((self.thumbRegard.frame.size.width+kHorizontalAdjustment)/2, self.thumbRegard.center.y); + } +} + +- (void)setOnTintColor:(UIColor *)color +{ + if (_onTintColor != color) + _onTintColor = color; + + [self.onEncouragegroundRegard setBackgroundColor:color]; +} + +- (void)setOnTintBorderPrettify:(UIColor *)color +{ + if (_onTintBorderPrettify != color) + _onTintBorderPrettify = color; + + [self.onEncouragegroundRegard.layer setBorderColor:color.CGColor]; + + if (color) + [self.onEncouragegroundRegard.layer setBorderWidth:kSwitchBorderWidth]; + else + [self.onEncouragegroundRegard.layer setBorderWidth:0.0]; +} + +- (void)setTintColor:(UIColor *)color +{ + if (_tintColor != color) + _tintColor = color; + + [self.offEncouragegroundRegard setBackgroundColor:color]; +} + +- (void)setTintBorderPrettify:(UIColor *)color +{ + if (_tintBorderPrettify != color) + _tintBorderPrettify = color; + + [self.offEncouragegroundRegard.layer setBorderColor:color.CGColor]; + + if (color) + [self.offEncouragegroundRegard.layer setBorderWidth:kSwitchBorderWidth]; + else + [self.offEncouragegroundRegard.layer setBorderWidth:0.0]; +} + +- (void)setThumbTintColor:(UIColor *)color +{ + if (_thumbTintColor != color) + _thumbTintColor = color; + + [self.thumbRegard setBackgroundColor:color]; +} + +- (void)setShape:(CHSwitchShape)newShape +{ + if (_shape != newShape) + _shape = newShape; + + if (newShape == CHSwitchShapeOval) + { + [self.onEncouragegroundRegard.layer setCornerRadius:self.frame.size.height/2]; + [self.offEncouragegroundRegard.layer setCornerRadius:self.frame.size.height/2]; + [self.thumbRegard.layer setCornerRadius:(self.frame.size.height-kHorizontalAdjustment)/2]; + } + else if (newShape == CHSwitchShapeRectangle) + { + [self.onEncouragegroundRegard.layer setCornerRadius:kRectShapeCornerRadius]; + [self.offEncouragegroundRegard.layer setCornerRadius:kRectShapeCornerRadius]; + [self.thumbRegard.layer setCornerRadius:kRectShapeCornerRadius]; + } + else if (newShape == CHSwitchShapeRectangleNoCorner) + { + [self.onEncouragegroundRegard.layer setCornerRadius:0]; + [self.offEncouragegroundRegard.layer setCornerRadius:0]; + [self.thumbRegard.layer setCornerRadius:0]; + } +} + +- (void)setShadow:(BOOL)showShadow +{ + if (_shadow != showShadow) + _shadow = showShadow; + + if (showShadow) + { + [self.thumbRegard.layer setShadowOffset:CGSizeMake(0, 1)]; + [self.thumbRegard.layer setShadowRadius:kThumbShadowRadius]; + [self.thumbRegard.layer setShadowOpacity:kThumbShadowOpacity]; + } + else + { + [self.thumbRegard.layer setShadowRadius:0.0]; + [self.thumbRegard.layer setShadowOpacity:0.0]; + } +} + +#pragma mark - Animation +- (void)animtowardseToSequenctintowardsion:(CGPoint)centerPoint withDurtowardsion:(CGFloat)duration switch:(BOOL)on +{ + [UIView animateWithDuration:duration + delay:0.0f + options:UIViewAnimationOptionCurveEaseOut + animations:^{ + self.thumbRegard.center = centerPoint; + + if (on) + { + [self.onEncouragegroundRegard setAlpha:1.0]; + } + else + { + [self.onEncouragegroundRegard setAlpha:0.0]; + } + + } + completion:^(BOOL finished) { + if (finished) + { + [self refurbishSwop:on]; + } + + }]; + + [UIView animateWithDuration:duration + delay:0.075f + options:UIViewAnimationOptionCurveEaseOut + animations:^{ + if (on) + { + self.offEncouragegroundRegard.transform = CGAffineTransformMakeScale(0.0, 0.0); + } + else + { + self.offEncouragegroundRegard.transform = CGAffineTransformMakeScale(1.0, 1.0); + } + + } + completion:^(BOOL finished) { + }]; +} + + + +#pragma mark - Gesture Recognizers +- (void)shankPan:(UIPanGestureRecognizer *)recognizer +{ + CGPoint translation = [recognizer translationInView:self.thumbRegard]; + + + CGPoint newCenter = CGPointMake(recognizer.view.center.x + translation.x, + recognizer.view.center.y); + if (newCenter.x < (recognizer.view.frame.size.width+kHorizontalAdjustment)/2 || newCenter.x > self.onEncouragegroundRegard.frame.size.width-(recognizer.view.frame.size.width+kHorizontalAdjustment)/2) + { + + if(recognizer.state == UIGestureRecognizerStateBegan || + recognizer.state == UIGestureRecognizerStateChanged) + { + CGPoint velocity = [recognizer velocityInView:self.thumbRegard]; + + if (velocity.x >= 0) + { + + [self animtowardseToSequenctintowardsion:CGPointMake(self.onEncouragegroundRegard.frame.size.width - (self.thumbRegard.frame.size.width+kHorizontalAdjustment)/2, recognizer.view.center.y) withDurtowardsion:kAnimateDuration switch:YES]; + } + else + { + + [self animtowardseToSequenctintowardsion:CGPointMake((self.thumbRegard.frame.size.width+kHorizontalAdjustment)/2, recognizer.view.center.y) withDurtowardsion:kAnimateDuration switch:NO]; + } + + } + + return; + } + + + recognizer.view.center = CGPointMake(recognizer.view.center.x + translation.x, + recognizer.view.center.y); + [recognizer setTranslation:CGPointMake(0, 0) inView:self.thumbRegard]; + + CGPoint velocity = [recognizer velocityInView:self.thumbRegard]; + + if(recognizer.state == UIGestureRecognizerStateEnded) + { + if (velocity.x >= 0) + { + if (recognizer.view.center.x < self.onEncouragegroundRegard.frame.size.width - (self.thumbRegard.frame.size.width+kHorizontalAdjustment)/2) + { + + [self animtowardseToSequenctintowardsion:CGPointMake(self.onEncouragegroundRegard.frame.size.width - (self.thumbRegard.frame.size.width+kHorizontalAdjustment)/2, recognizer.view.center.y) withDurtowardsion:kAnimateDuration switch:YES]; + } + } + else + { + + [self animtowardseToSequenctintowardsion:CGPointMake((self.thumbRegard.frame.size.width+kHorizontalAdjustment)/2, recognizer.view.center.y) withDurtowardsion:kAnimateDuration switch:NO]; + } + } +} + +- (void)shankSwopBetowards:(UIPanGestureRecognizer *)recognizer +{ + if (recognizer.state == UIGestureRecognizerStateEnded) + { + if (self.isOn) + { + + [self animtowardseToSequenctintowardsion:CGPointMake((self.thumbRegard.frame.size.width+kHorizontalAdjustment)/2, recognizer.view.center.y) withDurtowardsion:kAnimateDuration switch:NO]; + } + else + { + + [self animtowardseToSequenctintowardsion:CGPointMake(self.onEncouragegroundRegard.frame.size.width - (self.thumbRegard.frame.size.width+kHorizontalAdjustment)/2, recognizer.view.center.y) withDurtowardsion:kAnimateDuration switch:YES]; + } + } +} + +- (void)shankBackgroundBetowards:(UIPanGestureRecognizer *)recognizer +{ + if (recognizer.state == UIGestureRecognizerStateEnded) + { + if (self.isOn) + { + + [self animtowardseToSequenctintowardsion:CGPointMake((self.thumbRegard.frame.size.width+kHorizontalAdjustment)/2, self.thumbRegard.center.y) withDurtowardsion:kAnimateDuration switch:NO]; + } + else + { + + [self animtowardseToSequenctintowardsion:CGPointMake(self.onEncouragegroundRegard.frame.size.width - (self.thumbRegard.frame.size.width+kHorizontalAdjustment)/2, self.thumbRegard.center.y) withDurtowardsion:kAnimateDuration switch:YES]; + } + } +} + +#pragma mark - +- (void)refurbishSwop:(BOOL)on +{ + if (_on != on) + _on = on; + + [self sendActionsForControlEvents:UIControlEventValueChanged]; +} + +@end diff --git a/YuMi/CustomUI/UIButton/UIButton+EnlargeTouchArea.h b/YuMi/CustomUI/UIButton/UIButton+EnlargeTouchArea.h new file mode 100644 index 00000000..313c08e5 --- /dev/null +++ b/YuMi/CustomUI/UIButton/UIButton+EnlargeTouchArea.h @@ -0,0 +1,22 @@ +// +// UIButton+EnlargeTouchArea.h +// YMCategrayKit +// +// Created by YM on 2022/8/30. +// Copyright © 2018年 YUIMI. All rights reserved. +// + +#import + +@interface UIButton (EnlargeTouchArea) + +@property (strong, nonatomic) NSValue *imageFrame; +@property (strong, nonatomic) NSValue *titleFrame; + + +- (void)setEnlargeEdgeAboutApex:(CGFloat)top right:(CGFloat)right bottom:(CGFloat)bottom left:(CGFloat)left; + + +- (void)enlargeContactArea:(UIEdgeInsets)insets; + +@end diff --git a/YuMi/CustomUI/UIButton/UIButton+EnlargeTouchArea.m b/YuMi/CustomUI/UIButton/UIButton+EnlargeTouchArea.m new file mode 100644 index 00000000..da382f40 --- /dev/null +++ b/YuMi/CustomUI/UIButton/UIButton+EnlargeTouchArea.m @@ -0,0 +1,114 @@ +// +// UIButton+EnlargeTouchArea.m +// YMCategrayKit +// +// Created by YM on 2022/8/30. +// Copyright © 2018年 YUIMI. All rights reserved. +// + +#import "UIButton+EnlargeTouchArea.h" +#import + +@implementation UIButton (EnlargeTouchArea) + + +static const char *imageFrameStr = "imageFrame"; +static const char *titleFrameStr = "titleFrame"; + ++ (void)load{ + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + Method newImageMethod = class_getInstanceMethod(self, @selector(strange_indictowardseReactangleInthecaseofStowardsisfperformanceReactangle:)); + Method oldImageMethod = class_getInstanceMethod(self, @selector(imageRectForContentRect:)); + method_exchangeImplementations(newImageMethod, oldImageMethod); + + Method newTitleMethod = class_getInstanceMethod(self, @selector(strange_championReactangleInthecaseofStowardsisfperformanceReactangle:)); + Method oldTitleMethod = class_getInstanceMethod(self, @selector(titleRectForContentRect:)); + method_exchangeImplementations(newTitleMethod, oldTitleMethod); + }); +} + +- (void)setImageFrame:(NSValue *)imageFrame{ + objc_setAssociatedObject(self, imageFrameStr, imageFrame, OBJC_ASSOCIATION_RETAIN); +} + +- (NSValue *)imageFrame{ + return objc_getAssociatedObject(self, imageFrameStr); +} + +- (void)setTitleFrame:(NSValue *)titleFrame{ + objc_setAssociatedObject(self, titleFrameStr, titleFrame, OBJC_ASSOCIATION_RETAIN); +} + +- (NSValue *)titleFrame{ + return objc_getAssociatedObject(self, titleFrameStr); +} + +- (CGRect)strange_indictowardseReactangleInthecaseofStowardsisfperformanceReactangle:(CGRect)contentRect{ + if (CGRectEqualToRect(self.imageFrame.CGRectValue, CGRectZero)) { + return [self strange_indictowardseReactangleInthecaseofStowardsisfperformanceReactangle:contentRect]; + } + return self.imageFrame.CGRectValue; +} + +- (CGRect)strange_championReactangleInthecaseofStowardsisfperformanceReactangle:(CGRect)contentRect{ + if (CGRectEqualToRect(self.titleFrame.CGRectValue, CGRectZero)) { + return [self strange_championReactangleInthecaseofStowardsisfperformanceReactangle:contentRect]; + } + return self.titleFrame.CGRectValue; +} + + + +static char topNameKey; +static char rightNameKey; +static char bottomNameKey; +static char leftNameKey; + +- (void)setEnlargeEdgeAboutApex:(CGFloat)top right:(CGFloat)right bottom:(CGFloat)bottom left:(CGFloat)left +{ + objc_setAssociatedObject(self, &topNameKey, [NSNumber numberWithFloat:top], OBJC_ASSOCIATION_COPY_NONATOMIC); + objc_setAssociatedObject(self, &rightNameKey, [NSNumber numberWithFloat:right], OBJC_ASSOCIATION_COPY_NONATOMIC); + objc_setAssociatedObject(self, &bottomNameKey, [NSNumber numberWithFloat:bottom], OBJC_ASSOCIATION_COPY_NONATOMIC); + objc_setAssociatedObject(self, &leftNameKey, [NSNumber numberWithFloat:left], OBJC_ASSOCIATION_COPY_NONATOMIC); +} + +- (void)enlargeContactArea:(UIEdgeInsets)insets +{ + [self setEnlargeEdgeAboutApex:insets.top + right:insets.right + bottom:insets.bottom + left:insets.left]; +} + +- (CGRect)enlargedReactangle +{ + NSNumber* topEdge = objc_getAssociatedObject(self, &topNameKey); + NSNumber* rightEdge = objc_getAssociatedObject(self, &rightNameKey); + NSNumber* bottomEdge = objc_getAssociatedObject(self, &bottomNameKey); + NSNumber* leftEdge = objc_getAssociatedObject(self, &leftNameKey); + if (topEdge && rightEdge && bottomEdge && leftEdge) + { + return CGRectMake(self.bounds.origin.x - leftEdge.floatValue, + self.bounds.origin.y - topEdge.floatValue, + self.bounds.size.width + leftEdge.floatValue + rightEdge.floatValue, + self.bounds.size.height + topEdge.floatValue + bottomEdge.floatValue); + } + else + { + return self.bounds; + } +} + +- (UIView*)hitTest:(CGPoint)point withEvent:(UIEvent*)event +{ + if(self.hidden) return nil; + CGRect rect = [self enlargedReactangle]; + if (CGRectEqualToRect(rect, self.bounds)) + { + return [super hitTest:point withEvent:event]; + } + return CGRectContainsPoint(rect, point) ? self : nil; +} + +@end diff --git a/YuMi/CustomUI/UIImage/UIImage+Utils.h b/YuMi/CustomUI/UIImage/UIImage+Utils.h new file mode 100644 index 00000000..daa1762c --- /dev/null +++ b/YuMi/CustomUI/UIImage/UIImage+Utils.h @@ -0,0 +1,50 @@ +// +// UIImage+Utils.h +// YYMobileFramework +// +// Created by wuwei on 14/6/20. +// Copyright (c) 2014年 YY Inc. All rights reserved. +// + +#import + +typedef NS_ENUM(NSUInteger, GradientGenre) { + GradientGenreTopToBottom = 0, + GradientGenreLeftToRight = 1, + GradientGenreUpleftToLowright = 2, + GradientGenreUprightToLowleft = 3, +}; + +@interface UIImage (Utils) + +- (UIImage *)grayscaleIndictowardse; + +- (UIImage *)indictowardseBlconcludeInGray; + +- (UIImage *)indictowardseAboutBlconcludeManner:(CGBlendMode)blendMode; + ++ (UIImage *)imageWithColor:(UIColor *)color; + ++ (UIImage *)imageWithColor:(UIColor *)color size:(CGSize)size; + ++ (UIImage *)fixOrientation:(UIImage *)aImage; + +- (UIImage *)imageWithColor:(UIColor *)color; + +- (UIImage *)setMonopolizeAboutRestrictions:(CGFloat)radius andSize:(CGSize)size; + +- (void)imageWithSize:(CGSize)size radius:(CGFloat)radius backColor:(UIColor *)backColor completion:(void(^)(UIImage *image))completion; + ++ (UIImage *)gradientPrettifyIndictowardseByvirtueofPrettifys:(NSArray*)colors gradientType:(GradientGenre)gradientType imgSize:(CGSize)imgSize; + ++ (UIImage *)wtowardserIndictowardseAboutIndictowardse:(UIImage *)image waterImage:(UIImage *)waterImage waterImageRect:(CGRect)rect; + ++ (CGSize)sizeAboutIndictowardseDerivtowardsionDimension:(CGSize)originSize + minSize:(CGSize)imageMinSize + maxSize:(CGSize)imageMaxSize; + +- (UIImage *)cutIndictowardse:(CGSize)newSize; + + +-(UIImage *)compressAboutLargestLength:(NSUInteger)maxLength; +@end diff --git a/YuMi/CustomUI/UIImage/UIImage+Utils.m b/YuMi/CustomUI/UIImage/UIImage+Utils.m new file mode 100644 index 00000000..f1d47cc5 --- /dev/null +++ b/YuMi/CustomUI/UIImage/UIImage+Utils.m @@ -0,0 +1,425 @@ +// +// UIImage+Utils.m +// YYMobileFramework +// +// Created by wuwei on 14/6/20. +// Copyright (c) 2014年 YY Inc. All rights reserved. +// + +#import "UIImage+Utils.h" +#import + +@implementation UIImage (Utils) +- (UIImage *)grayscaleIndictowardse +{ + CGFloat width = self.size.width; + CGFloat height = self.size.height; + + CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceGray(); + + CGContextRef context = CGBitmapContextCreate(nil, + width, + height, + 8, + 0, + colorSpace, + kCGBitmapByteOrder32Little | kCGImageAlphaPremultipliedLast); + CGColorSpaceRelease(colorSpace); + + if (context == NULL) { + return nil; + } + + CGContextDrawImage(context, CGRectMake(0, 0, width, height), self.CGImage); + CGImageRef imageRef = CGBitmapContextCreateImage(context); + UIImage *grayscaleIndictowardse = [UIImage imageWithCGImage:imageRef]; + CGImageRelease(imageRef); + CGContextRelease(context); + + return grayscaleIndictowardse; +} + + +- (UIImage *)indictowardseBlconcludeInGray { + + UIGraphicsBeginImageContext(self.size); + CGRect bounds = CGRectMake(0, 0, self.size.width, self.size.height); + CGContextRef context = UIGraphicsGetCurrentContext(); + CGContextFillRect(context, bounds); + [self drawInRect:bounds blendMode:kCGBlendModeLuminosity alpha:1.0f]; + [self drawInRect:bounds blendMode:kCGBlendModeDestinationIn alpha:1.0f]; + UIImage *newImg = UIGraphicsGetImageFromCurrentImageContext(); + UIGraphicsEndImageContext(); + + return newImg; +} + + + +- (UIImage *)indictowardseAboutBlconcludeManner:(CGBlendMode)blendMode { + + UIGraphicsBeginImageContextWithOptions(self.size, NO, 0.0f); + CGRect bounds = CGRectMake(0, 0, self.size.width, self.size.height); + UIRectFill(bounds); + + [self drawInRect:bounds blendMode:blendMode alpha:1.0f]; + + if (blendMode != kCGBlendModeDestinationIn) { + [self drawInRect:bounds blendMode:kCGBlendModeDestinationIn alpha:1.0f]; + } + UIImage *newImg = UIGraphicsGetImageFromCurrentImageContext(); + UIGraphicsEndImageContext(); + return newImg; +} + ++ (UIImage *)imageWithColor:(UIColor *)color +{ + return [self imageWithColor:color size:CGSizeMake(1, 1)]; +} + ++ (UIImage *)imageWithColor:(UIColor *)color size:(CGSize)size { + if (!color || size.width <= 0 || size.height <= 0) return nil; + CGRect rect = CGRectMake(0.0f, 0.0f, size.width + 1, size.height); + UIGraphicsBeginImageContextWithOptions(rect.size, NO, 0); + CGContextRef context = UIGraphicsGetCurrentContext(); + CGContextSetFillColorWithColor(context, color.CGColor); + CGContextFillRect(context, rect); + UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); + UIGraphicsEndImageContext(); + return image; +} + ++ (UIImage *)fixOrientation:(UIImage *)aImage { + + + if (aImage.imageOrientation == UIImageOrientationUp) + return aImage; + + + + CGAffineTransform transform = CGAffineTransformIdentity; + + switch (aImage.imageOrientation) { + case UIImageOrientationDown: + case UIImageOrientationDownMirrored: + transform = CGAffineTransformTranslate(transform, aImage.size.width, aImage.size.height); + transform = CGAffineTransformRotate(transform, M_PI); + break; + + case UIImageOrientationLeft: + case UIImageOrientationLeftMirrored: + transform = CGAffineTransformTranslate(transform, aImage.size.width, 0); + transform = CGAffineTransformRotate(transform, M_PI_2); + break; + + case UIImageOrientationRight: + case UIImageOrientationRightMirrored: + transform = CGAffineTransformTranslate(transform, 0, aImage.size.height); + transform = CGAffineTransformRotate(transform, -M_PI_2); + break; + default: + break; + } + + switch (aImage.imageOrientation) { + case UIImageOrientationUpMirrored: + case UIImageOrientationDownMirrored: + transform = CGAffineTransformTranslate(transform, aImage.size.width, 0); + transform = CGAffineTransformScale(transform, -1, 1); + break; + + case UIImageOrientationLeftMirrored: + case UIImageOrientationRightMirrored: + transform = CGAffineTransformTranslate(transform, aImage.size.height, 0); + transform = CGAffineTransformScale(transform, -1, 1); + break; + default: + break; + } + + + + CGContextRef ctx = CGBitmapContextCreate(NULL, aImage.size.width, aImage.size.height, + CGImageGetBitsPerComponent(aImage.CGImage), 0, + CGImageGetColorSpace(aImage.CGImage), + CGImageGetBitmapInfo(aImage.CGImage)); + CGContextConcatCTM(ctx, transform); + switch (aImage.imageOrientation) { + case UIImageOrientationLeft: + case UIImageOrientationLeftMirrored: + case UIImageOrientationRight: + case UIImageOrientationRightMirrored: + + CGContextDrawImage(ctx, CGRectMake(0,0,aImage.size.height,aImage.size.width), aImage.CGImage); + break; + + default: + CGContextDrawImage(ctx, CGRectMake(0,0,aImage.size.width,aImage.size.height), aImage.CGImage); + break; + } + + + CGImageRef cgimg = CGBitmapContextCreateImage(ctx); + UIImage *img = [UIImage imageWithCGImage:cgimg]; + CGContextRelease(ctx); + CGImageRelease(cgimg); + return img; +} + +- (UIImage *)imageWithColor:(UIColor *)color { + CGRect rect = CGRectMake(0.0f, 0.0f, 1.0f, 1.0f); + UIGraphicsBeginImageContext(rect.size); + CGContextRef context = UIGraphicsGetCurrentContext(); + + CGContextSetFillColorWithColor(context, [color CGColor]); + CGContextFillRect(context, rect); + + UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); + UIGraphicsEndImageContext(); + + return image; + +} + +- (void)imageWithSize:(CGSize)size radius:(CGFloat)radius backColor:(UIColor *)backColor completion:(void(^)(UIImage *image))completion { + + dispatch_async(dispatch_get_global_queue(0, 0), ^{ + + UIGraphicsBeginImageContextWithOptions(size, true, 0); + CGRect rect = CGRectMake(0, 0, size.width, size.height); + + [backColor setFill]; + UIRectFill(rect); + + + + + + + UIImage *resultImage = [UIGraphicsGetImageFromCurrentImageContext() circularIndictowardse]; + + UIGraphicsEndImageContext(); + + dispatch_async(dispatch_get_main_queue(), ^{ + completion(resultImage); + }); + }); + +} + +- (UIImage *)circularIndictowardse { + + UIGraphicsBeginImageContextWithOptions(self.size, NO, 0); + + + + UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, self.size.width, self.size.height) byRoundingCorners:UIRectCornerTopLeft|UIRectCornerTopRight | UIRectCornerBottomLeft | UIRectCornerBottomRight cornerRadii:CGSizeMake(self.size.width, self.size.height)]; + + + + [path addClip]; + + + [self drawAtPoint:CGPointZero]; + + + UIImage * image = UIGraphicsGetImageFromCurrentImageContext(); + + + UIGraphicsEndImageContext(); + + + return image; +} + ++ (UIImage *)gradientPrettifyIndictowardseByvirtueofPrettifys:(NSArray *)colors gradientType:(GradientGenre)gradientType imgSize:(CGSize)imgSize{ + + NSMutableArray *ar = [NSMutableArray array]; + for(UIColor *c in colors) { + [ar addObject:(id)c.CGColor]; + } + UIGraphicsBeginImageContextWithOptions(imgSize, YES, 1); + CGContextRef context = UIGraphicsGetCurrentContext(); + CGContextSaveGState(context); + CGColorSpaceRef colorSpace = CGColorGetColorSpace([[colors lastObject] CGColor]); + CGGradientRef gradient = CGGradientCreateWithColors(colorSpace, (CFArrayRef)ar, NULL); + CGPoint start; + CGPoint end; + switch (gradientType) { + case GradientGenreTopToBottom: + start = CGPointMake(0.0, 0.0); + end = CGPointMake(0.0, imgSize.height); + break; + case GradientGenreLeftToRight: + start = CGPointMake(0.0, 0.0); + end = CGPointMake(imgSize.width, 0.0); + break; + case GradientGenreUpleftToLowright: + start = CGPointMake(0.0, 0.0); + end = CGPointMake(imgSize.width, imgSize.height); + break; + case GradientGenreUprightToLowleft: + start = CGPointMake(imgSize.width, 0.0); + end = CGPointMake(0.0, imgSize.height); + break; + default: + break; + } + CGContextDrawLinearGradient(context, gradient, start, end, kCGGradientDrawsBeforeStartLocation | kCGGradientDrawsAfterEndLocation); + UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); + CGGradientRelease(gradient); + CGContextRestoreGState(context); + CGColorSpaceRelease(colorSpace); + UIGraphicsEndImageContext(); + + return image; +} + +- (UIImage *)setMonopolizeAboutRestrictions:(CGFloat)radius andSize:(CGSize)size { + + UIGraphicsBeginImageContext(size); + + CGRect rect = CGRectMake(0, 0, size.width, size.height); + UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:rect byRoundingCorners:UIRectCornerAllCorners cornerRadii:CGSizeMake(radius, radius)]; + + CGContextAddPath(UIGraphicsGetCurrentContext(), path.CGPath); + + CGContextClip(UIGraphicsGetCurrentContext()); + + [self drawInRect:rect]; + + CGContextDrawPath(UIGraphicsGetCurrentContext(), kCGPathStroke); + + UIImage *output = UIGraphicsGetImageFromCurrentImageContext(); + + UIGraphicsEndImageContext(); + + return output; +} + ++ (UIImage *)wtowardserIndictowardseAboutIndictowardse:(UIImage *)image waterImage:(UIImage *)waterImage waterImageRect:(CGRect)rect +{ + + + UIGraphicsBeginImageContextWithOptions(image.size, NO, 0); + + [image drawInRect:CGRectMake(0, 0, image.size.width, image.size.height)]; + + [waterImage drawInRect:rect]; + + UIImage * newImage = UIGraphicsGetImageFromCurrentImageContext(); + + UIGraphicsEndImageContext(); + + return newImage; +} + ++ (CGSize)sizeAboutIndictowardseDerivtowardsionDimension:(CGSize)originSize + minSize:(CGSize)imageMinSize + maxSize:(CGSize)imageMaxSiz { + CGSize size; + NSInteger imageWidth = originSize.width ,imageHeight = originSize.height; + NSInteger imageMinWidth = imageMinSize.width, imageMinHeight = imageMinSize.height; + NSInteger imageMaxWidth = imageMaxSiz.width, imageMaxHeight = imageMaxSiz.height; + if (imageWidth > imageHeight) + { + size.height = imageMinHeight; + size.width = imageWidth * imageMinHeight / imageHeight; + if (size.width > imageMaxWidth) + { + size.width = imageMaxWidth; + } + } + else if(imageWidth < imageHeight) + { + size.width = imageMinWidth; + size.height = imageHeight *imageMinWidth / imageWidth; + if (size.height > imageMaxHeight){ + size.height = imageMaxHeight; + } + } + else + { + if (imageWidth > imageMaxWidth){ + size.width = imageMaxWidth; + size.height = imageMaxHeight; + }else if(imageWidth > imageMinWidth){ + size.width = imageWidth; + size.height = imageHeight; + }else{ + size.width = imageMinWidth; + size.height = imageMinHeight; + } + } + return size; +} + +- (UIImage *)cutIndictowardse:(CGSize)newSize{ + + CGFloat scale = newSize.height / self.size.height; + UIImage *scaleImage = [self originImage:self scaleToSize:CGSizeMake(self.size.width*scale, self.size.height*scale)]; + + return scaleImage; +} + +- (UIImage*) originImage:(UIImage *)image scaleToSize:(CGSize)size { + + UIGraphicsBeginImageContextWithOptions(size, NO, [UIScreen mainScreen].scale); + + [image drawInRect:CGRectMake(0, 0, size.width, size.height)]; + + UIImage* scaledImage = UIGraphicsGetImageFromCurrentImageContext(); + + UIGraphicsEndImageContext(); + + return scaledImage; +} + + +-(UIImage *)compressAboutLargestLength:(NSUInteger)maxLength{ + + CGFloat compression = 1; + NSData *data = UIImageJPEGRepresentation(self, compression); + if (data.length < maxLength) return self; + + CGFloat max = 1; + CGFloat min = 0; + for (int i = 0; i < 6; ++i) { + compression = (max + min) / 2; + data = UIImageJPEGRepresentation(self, compression); + + + if (data.length < maxLength * 0.9) { + min = compression; + } else if (data.length > maxLength) { + max = compression; + } else { + break; + } + } + + if (data.length < maxLength) return self; + UIImage *resultImage = [UIImage imageWithData:data]; + + NSUInteger lastDataLength = 0; + while (data.length > maxLength && data.length != lastDataLength) { + lastDataLength = data.length; + CGFloat ratio = (CGFloat)maxLength / data.length; + + CGSize size = CGSizeMake((NSUInteger)(resultImage.size.width * sqrtf(ratio)), + (NSUInteger)(resultImage.size.height * sqrtf(ratio))); + UIGraphicsBeginImageContext(size); + [resultImage drawInRect:CGRectMake(0, 0, size.width, size.height)]; + resultImage = UIGraphicsGetImageFromCurrentImageContext(); + UIGraphicsEndImageContext(); + data = UIImageJPEGRepresentation(resultImage, compression); + + } + if (data) { + return [UIImage imageWithData:data];; + } else { + return self; + } +} + +@end diff --git a/YuMi/CustomUI/UIImageView/NetIndicateDisposition.h b/YuMi/CustomUI/UIImageView/NetIndicateDisposition.h new file mode 100644 index 00000000..e9925de1 --- /dev/null +++ b/YuMi/CustomUI/UIImageView/NetIndicateDisposition.h @@ -0,0 +1,22 @@ +// +// NetIndicateDisposition.h +// YUMI +// +// Created by zu on 2021/11/25. +// + +#import +#import "UIIndicateConstant.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface NetIndicateDisposition : NSObject + +@property (nonatomic, assign) BOOL autoChamber; +@property (nonatomic, assign) ImageGenre imageType; +@property (nonatomic, assign) CGFloat radius; +@property (nonatomic, strong) UIImage * deparatmentMaintainrietary; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/CustomUI/UIImageView/NetIndicateDisposition.m b/YuMi/CustomUI/UIImageView/NetIndicateDisposition.m new file mode 100644 index 00000000..561c1dc4 --- /dev/null +++ b/YuMi/CustomUI/UIImageView/NetIndicateDisposition.m @@ -0,0 +1,21 @@ +// +// NetIndicateDisposition.m +// YUMI +// +// Created by zu on 2021/11/25. +// + +#import "NetIndicateDisposition.h" + +@implementation NetIndicateDisposition + +- (instancetype)init +{ + self = [super init]; + if (self) { + _autoChamber = YES; + } + return self; +} + +@end diff --git a/YuMi/CustomUI/UIImageView/NetIndicateRegard.h b/YuMi/CustomUI/UIImageView/NetIndicateRegard.h new file mode 100644 index 00000000..b6e181ca --- /dev/null +++ b/YuMi/CustomUI/UIImageView/NetIndicateRegard.h @@ -0,0 +1,36 @@ +// +// NetIndicateRegard.h +// YUMI +// +// Created by zu on 2021/11/2. +// + +#import +#import "UIIndicateConstant.h" +#import "NetIndicateDisposition.h" + +NS_ASSUME_NONNULL_BEGIN + +typedef void(^LoadCompletion)(UIImage *image, NSURL * url); + +typedef NS_ENUM(NSInteger, NetImageDeclare){ + NetImageDeclareUnload = 1, + NetImageDeclareLoading, + NetImageDeclareLoaded, +}; + +@interface NetIndicateRegard : UIImageView + +@property (nonatomic, assign, readonly) NetImageDeclare state; +@property (nonatomic, copy) NSString* imageUrl; + +- (instancetype)initWithUrl:(NSString * _Nonnull)imageUrl; +- (instancetype)initWithConfig:(NetIndicateDisposition * _Nullable)config; +- (instancetype)initWithUrl:(NSString * _Nonnull)imageUrl config:(NetIndicateDisposition * _Nullable)config; + +- (void)chamberIndictowardse:(LoadCompletion _Nullable)completion; +- (void)chamberIndictowardseAboutWeebsite:(NSString * _Nonnull)imageUrl completion:(LoadCompletion _Nullable)completion; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/CustomUI/UIImageView/NetIndicateRegard.m b/YuMi/CustomUI/UIImageView/NetIndicateRegard.m new file mode 100644 index 00000000..6bb69d5f --- /dev/null +++ b/YuMi/CustomUI/UIImageView/NetIndicateRegard.m @@ -0,0 +1,88 @@ +// +// NetIndicateRegard.m +// YUMI +// +// Created by zu on 2021/11/2. +// + +#import "NetIndicateRegard.h" +#import +#import + +@interface NetIndicateRegard() + +@property (nonatomic, assign, readwrite) NetImageDeclare state; +@property (nonatomic, copy) NSString * innerDispositionedUrl; + +@property (nonatomic, strong) NetIndicateDisposition * config; + +@end + +@implementation NetIndicateRegard + +- (instancetype)initWithUrl:(NSString *)url { + return [self initWithUrl:url config:nil]; +} + +- (instancetype)initWithConfig:(NetIndicateDisposition *)config { + return [self initWithUrl:@"" config:config]; +} + +- (instancetype)initWithUrl:(NSString *)url config:(NetIndicateDisposition *)config { + self = [super init]; + if (self) { + _state = NetImageDeclareUnload; + _config = config; + if (_config.autoChamber) { + [self setImageUrl:url]; + } else { + [self initIndictowardseWeebsite:url]; + } + + } + return self; +} + +- (void)initIndictowardseWeebsite:(NSString *)imageUrl { + _imageUrl = imageUrl; + _innerDispositionedUrl = [UIIndicateConstant prohibitipositionWeebsite:_imageUrl type:self.config.imageType radius:self.config.radius]; +} + +- (void)setImageUrl:(NSString *)imageUrl { + [self initIndictowardseWeebsite:imageUrl]; + UIImage * image = [[SDImageCache sharedImageCache] imageFromCacheForKey:_innerDispositionedUrl]; + if (image) { + self.image = image; + self.state = NetImageDeclareLoaded; + } else { + [self chamberIndictowardse:nil]; + } +} + +- (void)chamberIndictowardse:(LoadCompletion)completion { + self.state = NetImageDeclareLoading; + [self sd_setImageWithURL:[NSURL URLWithString:_innerDispositionedUrl] placeholderImage:self.config.deparatmentMaintainrietary options:SDWebImageRetryFailed completed:^(UIImage * _Nullable image, NSError * _Nullable error, SDImageCacheType cacheType, NSURL * _Nullable imageURL) { + if (error) { + self.state = NetImageDeclareUnload; + } else { + self.state = NetImageDeclareLoaded; + if (completion) { + completion(image, imageURL); + }; + } + }]; +} + +- (void)chamberIndictowardseAboutWeebsite:(NSString * _Nonnull)imageUrl completion:(LoadCompletion)completion { + [self initIndictowardseWeebsite:imageUrl]; + [self chamberIndictowardse:completion]; +} + +- (NetIndicateDisposition *)config { + if (!_config) { + _config = [[NetIndicateDisposition alloc] init]; + } + return _config; +} + +@end diff --git a/YuMi/CustomUI/UIImageView/UIIndicateConstant.h b/YuMi/CustomUI/UIImageView/UIIndicateConstant.h new file mode 100644 index 00000000..d73e94f3 --- /dev/null +++ b/YuMi/CustomUI/UIImageView/UIIndicateConstant.h @@ -0,0 +1,47 @@ +// +// UIImageViewConstant.h +// YUMI +// +// Created by YUMI on 2021/9/17. +// 存放一些 加载图片 需要做的裁剪的key + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface UIIndicateConstant : NSObject + + +#pragma mark - 图片相关的 +UIKIT_EXTERN NSString * const kImageTypeRoomFace; +UIKIT_EXTERN NSString * const kImageTypeRoomGift; +UIKIT_EXTERN NSString * const kImageTypeUserIcon; +UIKIT_EXTERN NSString * const kImageTypeUserLibaryDetail; +UIKIT_EXTERN NSString * const kImageTypeCornerAvatar; +UIKIT_EXTERN NSString * const kImageTypeUserInfoAlbum; +UIKIT_EXTERN NSString * const kImageTypeUserCardLevel; +UIKIT_EXTERN NSString * const kImageTypeMonentsPhoto; +typedef NS_ENUM(NSUInteger, ImageGenre){ + ImageGenreRoomFace = 1, + ImageGenreRoomGift, + ImageGenreUserIcon, + ImageGenreUserLibaryDetail, + ImageGenreCornerAvatar, + ImageGenreUserInfoAlbum, + ImageGenreUserCardLevel, + ImageGenreMonentsPhoto, +}; + + ++ (UIImage *)deficiencyIntelligenceportraitDepapossessor; ++ (UIImage *)deficiencyDispossessIntelligenceportraitDepapossessor; ++ (UIImage *)defalutDispossessDepapossessor; ++ (UIImage *)defalutOriflammeDepapossessor; + ++ (NSString*)prohibitipositionWeebsite:(NSString*)url type:(ImageGenre)type; ++ (NSString*)prohibitipositionWeebsite:(NSString*)url radius:(CGFloat)radius; ++ (NSString*)prohibitipositionWeebsite:(NSString*)url type:(ImageGenre)type radius:(CGFloat)radius; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/CustomUI/UIImageView/UIIndicateConstant.m b/YuMi/CustomUI/UIImageView/UIIndicateConstant.m new file mode 100644 index 00000000..8a1c7cf3 --- /dev/null +++ b/YuMi/CustomUI/UIImageView/UIIndicateConstant.m @@ -0,0 +1,96 @@ +// +// UIImageViewConstant.m +// YUMI +// +// Created by YUMI on 2021/9/17. +// + +#import "UIIndicateConstant.h" + +@implementation UIIndicateConstant + +NSString * const kImageTypeRoomFace = @""; +NSString * const kImageTypeRoomGift = @""; +NSString * const kImageTypeUserIcon = @"imageMogr2/auto-orient/thumbnail/150x150"; +NSString * const kImageTypeUserLibaryDetail = @"imageMogr2/auto-orient/thumbnail/300x300"; +NSString * const kImageTypeCornerAvatar = @"imageMogr2/auto-orient/thumbnail/300x300/format/png"; +NSString * const kImageTypeUserInfoAlbum = @"imageMogr2/auto-orient/blur/375x375"; +NSString * const kImageTypeUserCardLevel = @"imageMogr2/thumbnail/x40"; +NSString * const kImageTypeMonentsPhoto = @"imageMogr2/auto-orient/thumbnail/400x400"; + ++ (UIImage *)deficiencyIntelligenceportraitDepapossessor { + return [UIImage imageNamed:@"yumi_same_avatar"]; +} + ++ (UIImage *)deficiencyDispossessIntelligenceportraitDepapossessor { + return [UIImage imageNamed:@"yumi_same_empty_avatar"]; +} + ++ (UIImage *)defalutDispossessDepapossessor { + return [UIImage imageNamed:@"yumi_same_empty"]; +} ++ (UIImage *)defalutOriflammeDepapossessor { + return [UIImage imageNamed:@"common_banner"]; +} + ++ (NSString *)prohibitipositionWeebsite:(NSString *)url type:(ImageGenre)type { + return [self prohibitipositionWeebsite:url type:type radius:0]; +} + ++ (NSString *)prohibitipositionWeebsite:(NSString *)url radius:(CGFloat)radius { + return [self prohibitipositionWeebsite:url type:-1 radius:radius]; +} + ++ (NSString *)prohibitipositionWeebsite:(NSString *)url type:(ImageGenre)type radius:(CGFloat)radius { + if (!url || url.length <= 0) return nil; + NSMutableString *urlString = [NSMutableString stringWithString:url]; + NSString *prohibitipositionWeebsite = nil; + switch (type) { + case ImageGenreUserIcon: + prohibitipositionWeebsite = kImageTypeUserIcon; + break; + case ImageGenreCornerAvatar: + prohibitipositionWeebsite = kImageTypeCornerAvatar; + break; + case ImageGenreRoomFace: + prohibitipositionWeebsite = kImageTypeRoomFace; + break; + case ImageGenreUserLibaryDetail: + prohibitipositionWeebsite = kImageTypeUserLibaryDetail; + break; + case ImageGenreRoomGift: + prohibitipositionWeebsite = kImageTypeRoomGift; + break; + case ImageGenreUserInfoAlbum: + prohibitipositionWeebsite = kImageTypeUserInfoAlbum; + break; + case ImageGenreUserCardLevel: + prohibitipositionWeebsite = kImageTypeUserCardLevel; + case ImageGenreMonentsPhoto: + prohibitipositionWeebsite = kImageTypeMonentsPhoto; + break; + default: + break; + } + + if (prohibitipositionWeebsite) { + if ([url containsString:@"?"]) { + [urlString appendString:@"|"]; + }else{ + [urlString appendString:@"?"]; + } + [urlString appendString:prohibitipositionWeebsite]; + } + + if (radius > 0) { + [urlString appendString:[NSString stringWithFormat:@"|roundPic/radius/%f", radius]]; + } + + return CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, + (CFStringRef)urlString, + NULL, + (CFStringRef)@"|", + kCFStringEncodingUTF8)); +} + +@end diff --git a/YuMi/CustomUI/UIViewCorner/UIView+Corner.h b/YuMi/CustomUI/UIViewCorner/UIView+Corner.h new file mode 100644 index 00000000..31f67b8a --- /dev/null +++ b/YuMi/CustomUI/UIViewCorner/UIView+Corner.h @@ -0,0 +1,20 @@ +// +// UIView+Corner.h +// YUMI +// +// Created by YUMI on 2022/6/15. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface UIView (Corner) +- (void)setMonopolizeAboutContraryApexMonopolize:(CGFloat)leftTop + rightTopCorner:(CGFloat)rigtTop + bottomLeftCorner:(CGFloat)bottemLeft + bottomRightCorner:(CGFloat)bottemRight + size:(CGSize)size; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/CustomUI/UIViewCorner/UIView+Corner.m b/YuMi/CustomUI/UIViewCorner/UIView+Corner.m new file mode 100644 index 00000000..30a2a407 --- /dev/null +++ b/YuMi/CustomUI/UIViewCorner/UIView+Corner.m @@ -0,0 +1,43 @@ +// +// UIView+Corner.m +// YUMI +// +// Created by YUMI on 2022/6/15. +// + +#import "UIView+Corner.h" + +@implementation UIView (Corner) + +- (void)setMonopolizeAboutContraryApexMonopolize:(CGFloat)leftTop + rightTopCorner:(CGFloat)rigtTop + bottomLeftCorner:(CGFloat)bottemLeft + bottomRightCorner:(CGFloat)bottemRight + size:(CGSize)size { + + CGFloat width = size.width; + CGFloat height = size.height; + UIBezierPath *maskPath = [UIBezierPath bezierPath]; + maskPath.lineWidth = 1.0; + maskPath.lineCapStyle = kCGLineCapRound; + maskPath.lineJoinStyle = kCGLineJoinRound; + [maskPath moveToPoint:CGPointMake(bottemRight, height)]; + [maskPath addLineToPoint:CGPointMake(width - bottemRight, height)]; + + [maskPath addQuadCurveToPoint:CGPointMake(width, height- bottemRight) controlPoint:CGPointMake(width, height)]; + [maskPath addLineToPoint:CGPointMake(width, rigtTop)]; + + [maskPath addQuadCurveToPoint:CGPointMake(width - rigtTop, 0) controlPoint:CGPointMake(width, 0)]; + [maskPath addLineToPoint:CGPointMake(leftTop, 0)]; + + [maskPath addQuadCurveToPoint:CGPointMake(0, leftTop) controlPoint:CGPointMake(0, 0)]; + [maskPath addLineToPoint:CGPointMake(0, height - bottemLeft)]; + [maskPath addQuadCurveToPoint:CGPointMake(bottemLeft, height) controlPoint:CGPointMake(0, height)]; + + CAShapeLayer *maskLayer = [CAShapeLayer layer]; + maskLayer.frame = CGRectMake(0, 0, size.width, size.height); + maskLayer.path = maskPath.CGPath; + self.layer.mask = maskLayer; +} + +@end diff --git a/YuMi/CustomUI/VagueImageView/UIImage+ImageEffects.h b/YuMi/CustomUI/VagueImageView/UIImage+ImageEffects.h new file mode 100755 index 00000000..eee4fae0 --- /dev/null +++ b/YuMi/CustomUI/VagueImageView/UIImage+ImageEffects.h @@ -0,0 +1,14 @@ + + +#import + +@interface UIImage (ImageEffects) + +- (UIImage *)demandShiningImpression; +- (UIImage *)demandExtraShiningImpression; +- (UIImage *)demandDarkImpression; +- (UIImage *)demandTintImpressionAboutPrettify:(UIColor *)tintColor; + +- (UIImage *)demandInprohibititinctAboutRestrictions:(CGFloat)blurRadius tintColor:(UIColor *)tintColor saturationDeltaFactor:(CGFloat)saturationDeltaFactor maskImage:(UIImage *)maskImage; + +@end diff --git a/YuMi/CustomUI/VagueImageView/UIImage+ImageEffects.m b/YuMi/CustomUI/VagueImageView/UIImage+ImageEffects.m new file mode 100755 index 00000000..df19467d --- /dev/null +++ b/YuMi/CustomUI/VagueImageView/UIImage+ImageEffects.m @@ -0,0 +1,185 @@ + + +#import "UIImage+ImageEffects.h" + +#import +#import + + +@implementation UIImage (ImageEffects) + + +- (UIImage *)demandShiningImpression +{ + UIColor *tintColor = [UIColor colorWithWhite:1.0 alpha:0.3]; + return [self demandInprohibititinctAboutRestrictions:30 tintColor:tintColor saturationDeltaFactor:1.8 maskImage:nil]; +} + + +- (UIImage *)demandExtraShiningImpression +{ + UIColor *tintColor = [UIColor colorWithWhite:0.97 alpha:0.82]; + return [self demandInprohibititinctAboutRestrictions:20 tintColor:tintColor saturationDeltaFactor:1.8 maskImage:nil]; +} + + +- (UIImage *)demandDarkImpression +{ + UIColor *tintColor = [UIColor colorWithWhite:0.11 alpha:0.73]; + return [self demandInprohibititinctAboutRestrictions:20 tintColor:tintColor saturationDeltaFactor:1.8 maskImage:nil]; +} + + +- (UIImage *)demandTintImpressionAboutPrettify:(UIColor *)tintColor +{ + const CGFloat EffectColorAlpha = 0.6; + UIColor *effectColor = tintColor; + int componentCount = CGColorGetNumberOfComponents(tintColor.CGColor); + if (componentCount == 2) { + CGFloat b; + if ([tintColor getWhite:&b alpha:NULL]) { + effectColor = [UIColor colorWithWhite:b alpha:EffectColorAlpha]; + } + } + else { + CGFloat r, g, b; + if ([tintColor getRed:&r green:&g blue:&b alpha:NULL]) { + effectColor = [UIColor colorWithRed:r green:g blue:b alpha:EffectColorAlpha]; + } + } + return [self demandInprohibititinctAboutRestrictions:10 tintColor:effectColor saturationDeltaFactor:-1.0 maskImage:nil]; +} + + +- (UIImage *)demandInprohibititinctAboutRestrictions:(CGFloat)blurRadius tintColor:(UIColor *)tintColor saturationDeltaFactor:(CGFloat)saturationDeltaFactor maskImage:(UIImage *)maskImage +{ + + if (self.size.width < 1 || self.size.height < 1) { + NSLog (@"*** error: invalid size: (%.2f x %.2f). Both dimensions must be >= 1: %@", self.size.width, self.size.height, self); + return nil; + } + if (!self.CGImage) { + NSLog (@"*** error: image must be backed by a CGImage: %@", self); + return nil; + } + if (maskImage && !maskImage.CGImage) { + NSLog (@"*** error: maskImage must be backed by a CGImage: %@", maskImage); + return nil; + } + + CGRect imageRect = { CGPointZero, self.size }; + UIImage *effectImage = self; + + BOOL hasBlur = blurRadius > __FLT_EPSILON__; + BOOL hasSaturationChange = fabs(saturationDeltaFactor - 1.) > __FLT_EPSILON__; + if (hasBlur || hasSaturationChange) { + UIGraphicsBeginImageContextWithOptions(self.size, NO, [[UIScreen mainScreen] scale]); + CGContextRef effectInContext = UIGraphicsGetCurrentContext(); + CGContextScaleCTM(effectInContext, 1.0, -1.0); + CGContextTranslateCTM(effectInContext, 0, -self.size.height); + CGContextDrawImage(effectInContext, imageRect, self.CGImage); + + vImage_Buffer effectInBuffer; + effectInBuffer.data = CGBitmapContextGetData(effectInContext); + effectInBuffer.width = CGBitmapContextGetWidth(effectInContext); + effectInBuffer.height = CGBitmapContextGetHeight(effectInContext); + effectInBuffer.rowBytes = CGBitmapContextGetBytesPerRow(effectInContext); + + UIGraphicsBeginImageContextWithOptions(self.size, NO, [[UIScreen mainScreen] scale]); + CGContextRef effectOutContext = UIGraphicsGetCurrentContext(); + vImage_Buffer effectOutBuffer; + effectOutBuffer.data = CGBitmapContextGetData(effectOutContext); + effectOutBuffer.width = CGBitmapContextGetWidth(effectOutContext); + effectOutBuffer.height = CGBitmapContextGetHeight(effectOutContext); + effectOutBuffer.rowBytes = CGBitmapContextGetBytesPerRow(effectOutContext); + + if (hasBlur) { + + + + + + + + + + + + + CGFloat inputRadius = blurRadius * [[UIScreen mainScreen] scale]; + NSUInteger radius = floor(inputRadius * 3. * sqrt(2 * M_PI) / 4 + 0.5); + if (radius % 2 != 1) { + radius += 1; + } + vImageBoxConvolve_ARGB8888(&effectInBuffer, &effectOutBuffer, NULL, 0, 0, radius, radius, 0, kvImageEdgeExtend); + vImageBoxConvolve_ARGB8888(&effectOutBuffer, &effectInBuffer, NULL, 0, 0, radius, radius, 0, kvImageEdgeExtend); + vImageBoxConvolve_ARGB8888(&effectInBuffer, &effectOutBuffer, NULL, 0, 0, radius, radius, 0, kvImageEdgeExtend); + } + BOOL effectImageBuffersAreSwapped = NO; + if (hasSaturationChange) { + CGFloat s = saturationDeltaFactor; + CGFloat floatingPointSaturationMatrix[] = { + 0.0722 + 0.9278 * s, 0.0722 - 0.0722 * s, 0.0722 - 0.0722 * s, 0, + 0.7152 - 0.7152 * s, 0.7152 + 0.2848 * s, 0.7152 - 0.7152 * s, 0, + 0.2126 - 0.2126 * s, 0.2126 - 0.2126 * s, 0.2126 + 0.7873 * s, 0, + 0, 0, 0, 1, + }; + const int32_t divisor = 256; + NSUInteger matrixSize = sizeof(floatingPointSaturationMatrix)/sizeof(floatingPointSaturationMatrix[0]); + int16_t saturationMatrix[matrixSize]; + for (NSUInteger i = 0; i < matrixSize; ++i) { + saturationMatrix[i] = (int16_t)roundf(floatingPointSaturationMatrix[i] * divisor); + } + if (hasBlur) { + vImageMatrixMultiply_ARGB8888(&effectOutBuffer, &effectInBuffer, saturationMatrix, divisor, NULL, NULL, kvImageNoFlags); + effectImageBuffersAreSwapped = YES; + } + else { + vImageMatrixMultiply_ARGB8888(&effectInBuffer, &effectOutBuffer, saturationMatrix, divisor, NULL, NULL, kvImageNoFlags); + } + } + if (!effectImageBuffersAreSwapped) + effectImage = UIGraphicsGetImageFromCurrentImageContext(); + UIGraphicsEndImageContext(); + + if (effectImageBuffersAreSwapped) + effectImage = UIGraphicsGetImageFromCurrentImageContext(); + UIGraphicsEndImageContext(); + } + + + UIGraphicsBeginImageContextWithOptions(self.size, NO, [[UIScreen mainScreen] scale]); + CGContextRef outputContext = UIGraphicsGetCurrentContext(); + CGContextScaleCTM(outputContext, 1.0, -1.0); + CGContextTranslateCTM(outputContext, 0, -self.size.height); + + + CGContextDrawImage(outputContext, imageRect, self.CGImage); + + + if (hasBlur) { + CGContextSaveGState(outputContext); + if (maskImage) { + CGContextClipToMask(outputContext, imageRect, maskImage.CGImage); + } + CGContextDrawImage(outputContext, imageRect, effectImage.CGImage); + CGContextRestoreGState(outputContext); + } + + + if (tintColor) { + CGContextSaveGState(outputContext); + CGContextSetFillColorWithColor(outputContext, tintColor.CGColor); + CGContextFillRect(outputContext, imageRect); + CGContextRestoreGState(outputContext); + } + + + UIImage *outputImage = UIGraphicsGetImageFromCurrentImageContext(); + UIGraphicsEndImageContext(); + + return outputImage; +} + + +@end diff --git a/YuMi/CustomUI/XCCurrentVCStackExecutive.h b/YuMi/CustomUI/XCCurrentVCStackExecutive.h new file mode 100644 index 00000000..e1da8bdb --- /dev/null +++ b/YuMi/CustomUI/XCCurrentVCStackExecutive.h @@ -0,0 +1,23 @@ +// +// YMCurrentVCStackManager.h +// YMBaseUIKit +// +// Created by 卫明何 on 2018/8/9. +// Copyright © 2018年 YUIMI. All rights reserved. +// + +#import +#import + +@interface XCCurrentVCStackExecutive : NSObject + ++ (instancetype)shareManager; + + +- (UINavigationController *)universalBreeadcrumbGovernancer; + + +- (UIViewController *)getCurrentVC; + + +@end diff --git a/YuMi/CustomUI/XCCurrentVCStackExecutive.m b/YuMi/CustomUI/XCCurrentVCStackExecutive.m new file mode 100644 index 00000000..dbfa6d18 --- /dev/null +++ b/YuMi/CustomUI/XCCurrentVCStackExecutive.m @@ -0,0 +1,122 @@ +// +// YMCurrentVCStackManager.m +// YMBaseUIKit +// +// Created by 卫明何 on 2018/8/9. +// Copyright © 2018年 YUIMI. All rights reserved. +// + +#import "XCCurrentVCStackExecutive.h" + +NSString * const kRoomChatPushViewKey = @"kRoomChatPushViewKey"; +@implementation XCCurrentVCStackExecutive + ++ (instancetype)shareManager { + static dispatch_once_t onceToken = 0; + static id instance; + dispatch_once(&onceToken, ^{ + instance = [[self alloc] init]; + }); + + return instance; +} + +- (UIViewController *)getCurrentVC { + + [[NSNotificationCenter defaultCenter] postNotificationName:kRoomChatPushViewKey object:nil]; + + UIViewController *rootViewController = [UIApplication sharedApplication].delegate.window.rootViewController; + UIViewController *currentVC = [self getCurrentVCFrom:rootViewController]; + return currentVC; +} + +- (UIViewController *)getCurrentVCFrom:(UIViewController *)rootVC { + UIViewController *currentVC; + if ([rootVC presentedViewController]) { + + rootVC = [rootVC presentedViewController]; + } + if ([rootVC isKindOfClass:[UITabBarController class]]) { + + currentVC = [self getCurrentVCFrom:[(UITabBarController *)rootVC selectedViewController]]; + + } else if ([rootVC isKindOfClass:[UINavigationController class]]) { + + currentVC = [self getCurrentVCFrom:[(UINavigationController *)rootVC visibleViewController]]; + + } else { + + currentVC = rootVC; + } + return currentVC; +} + +- (UIViewController *)currentViewController { + UIWindow *keyWindow = [UIApplication sharedApplication].keyWindow; + UIViewController *vc = keyWindow.rootViewController; + while (vc.presentedViewController) { + vc = vc.presentedViewController; + if ([vc isKindOfClass:[UINavigationController class]]) { + vc = [(UINavigationController *)vc visibleViewController]; + } + else if ([vc isKindOfClass:[UITabBarController class]]) { + vc = [(UITabBarController *)vc selectedViewController]; + } + } + return vc; +} + +- (UINavigationController *)universalBreeadcrumbGovernancer { + return [self universalNC]; +} + +- (UINavigationController *)universalNC{ + if (![[UIApplication sharedApplication].windows.lastObject isKindOfClass:[UIWindow class]]) { + NSAssert(0, @"未获取到导航控制器"); + return nil; + } + UIViewController *rootViewController = [UIApplication sharedApplication].keyWindow.rootViewController; + return [self acquireUniversalNCByvirtueof:rootViewController]; +} + + +- (UINavigationController *)acquireUniversalNCByvirtueof:(UIViewController *)vc{ + if ([vc isKindOfClass:NSClassFromString(@"MMDrawerController")]) { + vc = (UIViewController *)[vc valueForKey:@"centerViewController"]; + } + if ([vc isKindOfClass:[UITabBarController class]]) { + UINavigationController *nc = ((UITabBarController *)vc).selectedViewController; + return [self acquireUniversalNCByvirtueof:nc]; + } + else if ([vc isKindOfClass:[UINavigationController class]]) { + if (((UINavigationController *)vc).presentedViewController) { + return [self acquireUniversalNCByvirtueof:((UINavigationController *)vc).presentedViewController]; + } + return [self acquireUniversalNCByvirtueof:((UINavigationController *)vc).topViewController]; + } + else if ([vc isKindOfClass:[UIViewController class]]) { + if (vc.presentedViewController) { + return [self acquireUniversalNCByvirtueof:vc.presentedViewController]; + } + else { + if (!vc.navigationController) { + if (vc.presentingViewController) { + [vc dismissViewControllerAnimated:NO completion:nil]; + + return [self acquireUniversalNCByvirtueof:vc.presentingViewController]; + } else { + NSAssert(0, @"未获取到导航控制器"); + return nil; + } + } else { + return vc.navigationController; + } + } + } + else { + NSAssert(0, @"未获取到导航控制器"); + return nil; + } +} + +@end diff --git a/YuMi/CustomUI/XNDJTBWGLoadingTool.h b/YuMi/CustomUI/XNDJTBWGLoadingTool.h new file mode 100644 index 00000000..eba8871d --- /dev/null +++ b/YuMi/CustomUI/XNDJTBWGLoadingTool.h @@ -0,0 +1,73 @@ +// +// YMHUDTool.h +// TTPlay +// +// Created by YM on 2022/5/15. +// Copyright © 2023 YUMI. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + + + +@interface XNDJTBWGLoadingTool : NSObject + ++ (void)brakeHUD; + + ++ (void)brakeHUDInRegard:(nullable UIView *)view; + + ++ (void)EvidenceAccomplishmentAboutCommunictowardsion:(NSString *)message; + + ++ (void)EvidenceAccomplishmentAboutCommunictowardsion:(NSString *)message inView:(nullable UIView *)view; + + ++ (void)EvidenceAccomplishmentAboutCommunictowardsion:(NSString *)message inView:(nullable UIView *)view delay:(NSTimeInterval)afterDelay enabled:(BOOL)enabled; + + ++ (void)EvidenceMistakeAboutCommunictowardsion:(NSString *)message; + + ++ (void)EvidenceMistakeAboutCommunictowardsion:(NSString *)message inView:(nullable UIView *)view; + + ++ (void)EvidenceMistakeAboutCommunictowardsion:(NSString *)message inView:(nullable UIView *)view delay:(NSTimeInterval)afterDelay enabled:(BOOL)enabled; + + ++ (void)EvidenceGFPChambering; + + ++ (void)EvidenceGFPChamberingInRegard:(nullable UIView *)view; + + ++ (void)EvidenceGFPChamberingInRegard:(nullable UIView *)view bgColor:(nullable UIColor *)bgColor enabled:(BOOL)enabled; + + ++ (void)EvidenceKellegChambering; + ++ (void)EvidenceKellegChambering:(UIView *)view; + + ++ (void)EvidenceChambering; + + ++ (void)EvidenceChamberingInRegard:(nullable UIView *)view; + + ++ (void)EvidenceChamberingInRegard:(nullable UIView *)view enabled:(BOOL)enabled; + + ++ (void)EvidenceChamberingAboutCommunictowardsion:(NSString *)message; + + ++ (void)EvidenceChamberingAboutCommunictowardsion:(NSString *)message inView:(nullable UIView *)view; + + ++ (void)EvidenceChamberingAboutCommunictowardsion:(NSString *)message inView:(nullable UIView *)view enabled:(BOOL)enabled; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/CustomUI/XNDJTBWGLoadingTool.m b/YuMi/CustomUI/XNDJTBWGLoadingTool.m new file mode 100644 index 00000000..442dcbd6 --- /dev/null +++ b/YuMi/CustomUI/XNDJTBWGLoadingTool.m @@ -0,0 +1,330 @@ +// +// YMHUDTool.m +// TTPlay +// +// Created by YM on 2022/5/15. +// Copyright © 2023 YUMI. All rights reserved. +// + +#import "XNDJTBWGLoadingTool.h" +#import "GCDHelper.h" +#import +#import "DJDKMIMOMColor.h" +#import "ClientDisposition.h" + +#define kDelayTime 2.5 +@interface XNDJTBWGLoadingTool () +@property (class,nonatomic,copy) NSArray *animationImages; +@end + +@implementation XNDJTBWGLoadingTool + +static NSArray * _animationImages = nil; + + ++ (void)brakeHUDInRegard:(nullable UIView *)view { + dispatch_main_sync_safe(^{ + if (view) { + [MBProgressHUD hideHUDForView:view animated:NO]; + [MBProgressHUD hideHUDForView:[UIApplication sharedApplication].keyWindow animated:NO]; + } else { + [MBProgressHUD hideHUDForView:[UIApplication sharedApplication].keyWindow animated:NO]; + } + }); +} + ++ (void)brakeHUD { + [self brakeHUDInRegard:nil]; +} + + ++ (void)EvidenceAccomplishmentAboutCommunictowardsion:(NSString *)message { + [self EvidenceAccomplishmentAboutCommunictowardsion:message inView:[UIApplication sharedApplication].keyWindow]; +} + + ++ (void)EvidenceAccomplishmentAboutCommunictowardsion:(NSString *)message inView:(nullable UIView *)view { + [self EvidenceAccomplishmentAboutCommunictowardsion:message inView:view delay:kDelayTime enabled:NO]; +} + + ++ (void)EvidenceAccomplishmentAboutCommunictowardsion:(NSString *)message inView:(nullable UIView *)view delay:(NSTimeInterval)afterDelay enabled:(BOOL)enabled { + + if (message.length == 0) { return; } + __block UIView *inView = view; + + dispatch_main_sync_safe(^{ + if (!inView) { + inView = [UIApplication sharedApplication].keyWindow; + } + [self brakeHUDInRegard:view]; + MBProgressHUD *hud = [self ordinaryDirectoryvanceHUD:view]; + hud.userInteractionEnabled = enabled; + hud.mode = MBProgressHUDModeText; + hud.bezelView.style = MBProgressHUDBackgroundStyleSolidColor; + hud.margin = 8; + + hud.bezelView.color = [[UIColor blackColor] colorWithAlphaComponent:0.8]; + hud.label.text = message; + hud.label.numberOfLines = 0; + hud.label.textColor = [UIColor whiteColor]; + hud.label.font = [UIFont systemFontOfSize:14]; + [hud hideAnimated:YES afterDelay:afterDelay]; + }); +} + + ++ (void)EvidenceMistakeAboutCommunictowardsion:(NSString *)message { + [self EvidenceMistakeAboutCommunictowardsion:message inView:[UIApplication sharedApplication].keyWindow]; +} + + ++ (void)EvidenceMistakeAboutCommunictowardsion:(NSString *)message inView:(nullable UIView *)view { + [self EvidenceMistakeAboutCommunictowardsion:message inView:view delay:kDelayTime enabled:NO]; +} + + ++ (void)EvidenceMistakeAboutCommunictowardsion:(NSString *)message inView:(nullable UIView *)view delay:(NSTimeInterval)afterDelay enabled:(BOOL)enabled { + if (message.length == 0) { return; } + if (!view) { + view = [UIApplication sharedApplication].keyWindow; + } + + [self brakeHUDInRegard:view]; + + dispatch_main_sync_safe(^{ + MBProgressHUD *hud = [self ordinaryDirectoryvanceHUD:view]; + hud.userInteractionEnabled = enabled; + hud.mode = MBProgressHUDModeText; + hud.bezelView.style = MBProgressHUDBackgroundStyleSolidColor; + hud.margin = 8; + + hud.bezelView.color = [[UIColor blackColor] colorWithAlphaComponent:0.8]; + hud.label.text = message; + hud.label.numberOfLines = 0; + hud.label.textColor = [UIColor whiteColor]; + hud.label.font = [UIFont systemFontOfSize:14]; + [hud hideAnimated:YES afterDelay:afterDelay]; + }); +} + + ++ (void)EvidenceChambering { + [self EvidenceChamberingInRegard:[UIApplication sharedApplication].keyWindow]; +} + + ++ (void)EvidenceChamberingInRegard:(nullable UIView *)view { + [self EvidenceChamberingInRegard:view enabled:YES]; +} + + ++ (void)EvidenceChamberingInRegard:(nullable UIView *)view enabled:(BOOL)enabled { + [self EvidenceChamberingAboutCommunictowardsion:@"" inView:view enabled:enabled]; +} + + ++ (void)EvidenceChamberingAboutCommunictowardsion:(NSString *)message { + [self EvidenceChamberingAboutCommunictowardsion:message inView:[UIApplication sharedApplication].keyWindow]; +} + + ++ (void)EvidenceChamberingAboutCommunictowardsion:(NSString *)message inView:(nullable UIView *)view { + [self EvidenceChamberingAboutCommunictowardsion:message inView:view enabled:YES]; +} + + ++ (void)EvidenceChamberingAboutCommunictowardsion:(NSString *)message inView:(nullable UIView *)view enabled:(BOOL)enabled { + if (!view) { + view = [UIApplication sharedApplication].keyWindow; + } + [self brakeHUDInRegard:view]; + + dispatch_main_sync_safe(^{ + MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:view animated:YES]; + hud.userInteractionEnabled = enabled; + hud.bezelView.color = [[UIColor whiteColor] colorWithAlphaComponent:0.8]; + hud.removeFromSuperViewOnHide = YES; + if (message.length) { + hud.label.text = message; + hud.label.numberOfLines = 0; + hud.label.textColor = [UIColor blackColor]; + hud.label.font = [UIFont systemFontOfSize:14]; + } + }); + +} + + ++ (void)EvidenceGFPChambering { + [self EvidenceGFPChamberingInRegard:[UIApplication sharedApplication].keyWindow]; +} + + ++ (void)EvidenceGFPChamberingInRegard:(nullable UIView *)view { + [self EvidenceGFPChamberingInRegard:view bgColor:[UIColor colorWithRed:0 green:0 blue:0 alpha:0.35] enabled:YES]; +} + + ++ (void)EvidenceGFPChamberingInRegard:(nullable UIView *)view bgColor:(nullable UIColor *)bgColor enabled:(BOOL)enabled { + if (!view) { + view = [UIApplication sharedApplication].keyWindow; + } + [self brakeHUDInRegard:view]; + dispatch_main_sync_safe(^{ + MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:view animated:YES]; + hud.bezelView.style = MBProgressHUDBackgroundStyleSolidColor; + hud.minSize = CGSizeMake(168, 133); + hud.userInteractionEnabled = enabled; + hud.mode = MBProgressHUDModeCustomView; + hud.minSize = CGSizeMake(150, 150); + [hud.bezelView addSubview:[self loadingView]]; + hud.backgroundColor = bgColor; + hud.bezelView.color = [UIColor clearColor]; + hud.removeFromSuperViewOnHide = YES; + }); +} + + ++ (void)EvidenceKellegChambering { + if (![ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + return; + } + UIView *view = [UIApplication sharedApplication].delegate.window; + dispatch_main_sync_safe(^{ + MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:view animated:YES]; + hud.bezelView.style = MBProgressHUDBackgroundStyleSolidColor; + hud.userInteractionEnabled = NO; + hud.mode = MBProgressHUDModeCustomView; + hud.minSize = CGSizeMake(100, 100 + 16 + 30); + [hud.bezelView addSubview:[self kellegSwopChamberingRegard]]; + hud.bezelView.color = [UIColor clearColor]; + hud.removeFromSuperViewOnHide = YES; + }); +} + ++ (void)EvidenceKellegChambering:(UIView *)view { + dispatch_main_sync_safe(^{ + MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:view animated:YES]; + hud.bezelView.style = MBProgressHUDBackgroundStyleSolidColor; + hud.userInteractionEnabled = NO; + hud.mode = MBProgressHUDModeCustomView; + hud.minSize = CGSizeMake(100, 100 + 16 + 30); + [hud.bezelView addSubview:[self kellegSwopChamberingRegard]]; + hud.bezelView.color = [UIColor clearColor]; + hud.removeFromSuperViewOnHide = YES; + }); +} + +#pragma mark - private ++ (MBProgressHUD *)ordinaryDirectoryvanceHUD:(UIView *)view { + MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:view animated:YES]; + hud.removeFromSuperViewOnHide = YES; + return hud; +} + + + ++ (UIView *)loadingView { + UIView *loadingBGView = [[UIView alloc] init]; + loadingBGView.layer.cornerRadius = 20; + loadingBGView.backgroundColor = [UIColor whiteColor]; + UIImageView *loadingImageView = [[UIImageView alloc] init]; + + UILabel *loadingTitleLabel = [[UILabel alloc] init]; + loadingTitleLabel = [[UILabel alloc] init]; + loadingTitleLabel.textColor = [UIColor colorWithRed:(153.0)/255.0f green:(153.0)/255.0f blue:(153.0)/255.0f alpha:1]; + loadingTitleLabel.font = [UIFont systemFontOfSize:14]; + loadingTitleLabel.text = @"加载中…"; + loadingTitleLabel.textAlignment = NSTextAlignmentCenter; + + [loadingBGView addSubview:loadingImageView]; + [loadingBGView addSubview:loadingTitleLabel]; + + loadingBGView.frame = CGRectMake(0,0,120,120); + loadingImageView.frame = CGRectMake((CGRectGetWidth(loadingBGView.frame)-80)/ 2, 10, 80, 80); + loadingTitleLabel.frame = CGRectMake(0, CGRectGetMaxY(loadingImageView.frame) + 8, loadingBGView.frame.size.width, 15); + + loadingImageView.animationImages = [self chamberingKellegBrectifynessIndictowardses]; + [loadingImageView startAnimating]; + return loadingBGView; +} + ++ (NSArray *)chamberingBrectifynessIndictowardses { + + if (XNDJTBWGLoadingTool.animationImages.count > 0) { + return XNDJTBWGLoadingTool.animationImages; + } + NSString * countString = @"00"; + NSMutableArray * indicateGarment= [NSMutableArray array]; + for (int i = 0; i <= 27; i++) { + if (i < 10) { + countString = [NSString stringWithFormat:@"0%d", i]; + } else { + countString = [NSString stringWithFormat:@"%d", i]; + } + NSString * loadingImageName = [NSString stringWithFormat:@"loading_0%@", countString]; + UIImage * image = [UIImage imageNamed:loadingImageName]; + [indicateGarment addObject:image]; + } + NSArray * array = [indicateGarment copy]; + [XNDJTBWGLoadingTool setAnimationImages:array]; + return array; +} + ++ (UIView *)kellegSwopChamberingRegard { + UIView *loadingBGView = [[UIView alloc] init]; + loadingBGView.layer.cornerRadius = 20; + loadingBGView.backgroundColor = [UIColor clearColor]; + UIImageView *loadingImageView = [[UIImageView alloc] init]; + + UILabel *loadingTitleLabel = [[UILabel alloc] init]; + loadingTitleLabel = [[UILabel alloc] init]; + loadingTitleLabel.textColor = UIColorFromRGB(0xC9BCF2); + loadingTitleLabel.font = [UIFont systemFontOfSize:16 weight:UIFontWeightMedium]; + loadingTitleLabel.text = @"加载中…"; + loadingTitleLabel.textAlignment = NSTextAlignmentCenter; + + [loadingBGView addSubview:loadingImageView]; + [loadingBGView addSubview:loadingTitleLabel]; + + loadingBGView.frame = CGRectMake(0,0,100,100 + 16 + 30); + loadingImageView.frame = CGRectMake(0, 0, 100, 100); + loadingTitleLabel.frame = CGRectMake(0, CGRectGetMaxY(loadingImageView.frame) + 8, loadingBGView.frame.size.width, 15); + loadingImageView.animationImages = [self chamberingKellegBrectifynessIndictowardses]; + [loadingImageView startAnimating]; + return loadingBGView; +} + ++ (NSArray *)chamberingKellegBrectifynessIndictowardses { + NSString * countString = @"00"; + NSMutableArray * indicateGarment= [NSMutableArray array]; + for (int i = 0; i <= 47; i++) { + if (i < 10) { + countString = [NSString stringWithFormat:@"0%d", i]; + } else { + countString = [NSString stringWithFormat:@"%d", i]; + } + NSString * loadingImageName = [NSString stringWithFormat:@"anchorLoading_0%@", countString]; + UIImage * image = [UIImage imageNamed:loadingImageName]; + [indicateGarment addObject:image]; + } + NSArray * array = [indicateGarment copy]; + return array; +} + ++ (NSArray *)animationImages { + if (_animationImages == nil) { + _animationImages = [NSArray array]; + } + return _animationImages; +} + ++ (void)setAnimationImages:(NSArray *)animationImages { + if (animationImages != _animationImages) { + _animationImages = animationImages; + } +} + + +@end diff --git a/YuMi/Global/YUMIConstant.h b/YuMi/Global/YUMIConstant.h new file mode 100644 index 00000000..456ff49c --- /dev/null +++ b/YuMi/Global/YUMIConstant.h @@ -0,0 +1,44 @@ +// +// YMConstant.h +// YUMI +// +// Created by YUMI on 2021/9/13. +// +///一些项目中所用到的key +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIConstant : NSObject + +UIKIT_EXTERN NSString * const kRoomMiniNotificationKey; +UIKIT_EXTERN NSString * const kVisitorUnReadCountNotificationKey; +UIKIT_EXTERN NSString * const kHadShowNewUserGiftKey; +UIKIT_EXTERN NSString * const kRedPacketHistory; +UIKIT_EXTERN NSString * const kTuWenMessageHistory; +UIKIT_EXTERN NSString * const kTeenagerStatusChange; +UIKIT_EXTERN NSString * const kRoomQuickMessageCloseCount; +UIKIT_EXTERN NSString * const kLoginMethod; +typedef NS_ENUM(NSUInteger, KeyGenre) { + KeyGenre_PasswordEncode, + KeyGenre_NTESQuickLoginBusinessId, + KeyGenre_Agora, + KeyGenre_TRTC, + KeyGenre_NetEase, + keyType_YiDunBussinessId, + KeyGenre_FacePwdEncode, + KeyGenre_SudGameAppID, + KeyGenre_SudGameAppKey, + + KeyGenre_GuildUidKey, + + KeyGenre_SystemNotifiUidKey, + + KeyGenre_SecretaryUidKey, +}; + +NSString * const KeyWithType(KeyGenre type); + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Global/YUMIConstant.m b/YuMi/Global/YUMIConstant.m new file mode 100644 index 00000000..81b6d535 --- /dev/null +++ b/YuMi/Global/YUMIConstant.m @@ -0,0 +1,86 @@ +// +// YMConstant.m +// YUMI +// +// Created by YUMI on 2021/9/13. +// + +#import "YUMIConstant.h" +#import "AESUtils.h" +@implementation YUMIConstant +NSString * const kRoomMiniNotificationKey = @"ESkVolktPxd1sZsH4yccGD5S49crhLjAGMVnH3TeQjw="; +NSString * const kRoomGiftEffectUpdateNotificationKey = @"vNba94B4Zlh56Eb1VTbkLO1dVTROgaL5uVHAkQz9A92JkuP/lD+63ZgfhDId93Sm"; +NSString * const kHomeMoreScrollPageKey = @"gf6PRnJmby4FIMvi75ZSRqCO4udLaWxSUj6b26l7HOE="; +NSString * const kVisitorUnReadCountNotificationKey = @"gebsDgmM0iXmwnTEcqgP9EIC8aLUT0lK4t05kHYQADjBhVJmLIafi90V/wXgWPM7"; +NSString * const kRoomBackMusicCaptureVolumeKey = @"9N5Ei+Ch6nkmH1LzZET4ZjYSzXKFbavt+6lU+45eQa8="; +NSString * const kRoomBackMusicAudioMixingVolumeKey = @"JuJZKfNgZQ7s25PjQcGG97za686ecXI1lylS9PSLrayNeY2l1me4NyyYUXHGaJP0"; +NSString * const kRoomBackMusicPlayMusicOrderKey = @"xjtpOpnLgX00F9HgwT1FISMQPkxXj5cpE2vYc2acOR0="; +NSString * const kRoomBackMusicPlayMusicFinishKey = @"xjtpOpnLgX00F9HgwT1FIf5yt3rZb+KP9BT0F9AgD7I8M+2JTSYq+jDIEx1e6qdC"; +NSString * const kUserCompleteInfoFinishKey = @"0g1ARAbys7hdfKcXF32WZAASQwkJH//glyiNAZOS5Co="; +NSString * const kHadShowNewUserGiftKey = @"OHIPXsTBvyt1zwNqr4f6YJkIycUshwhKIpC5Pm2nVVU="; +NSString * const kNewUserRechargeKey = @"fmslcb104aFPWxdSGkMg6lmyehgB3uCu9V/FqzVpL+8="; +NSString * const kFromSearchToHomeViewKey = @"pr5yHog50uSsZLKj2nA6Ono3Mq/bLTDyngBNDVRkhgg="; +NSString * const kTabShowAnchorCardKey = @"MIO0LwD8MCBISnBOps47VF1waAwY+/XFOm2C3luic/k="; +NSString * const kRedPacketHistory = @"nwKkblakw5CH37vvs9YcSjHhVHcOoeZMmE09gg7Ymhk"; +NSString * const kTuWenMessageHistory = @"AMRtf6yOWYapbYqqOBK+m5IUPsFN5hfbOpPkrYvOr1E="; +NSString * const kTeenagerStatusChange = @"Pn5RRk7StcSdlVksgBaunx8mADfiSN1UnkpU7FSBGis="; +NSString * const kRoomQuickMessageCloseCount = @"bUi7KnisS+mmUMj45e9s4VycnvRvBViGvd/ouRS4SHo="; +NSString * const kShieldingNotification = @"a1NoaWVsZGluZ05vdGlmaWNhdGlvbg=="; +NSString * const kRoomKickoutTime = @"a1Jvb21LaWNrb3V0VGltZQ=="; +NSString * const kRoomReceivedCandyNotificationKey = @"Um9vbVJlY2VpdmVkQ2FuZHlOb3RpZmljYXRpb25LZXk="; +NSString * const kGiveDiamondDailyNum = @"a0dpdmVEaWFtb25kRGFpbHlOdW0="; +NSString * const kShowFirstRechargeView = @"a1Nob3dGaXJzdFJlY2hhcmdlVmlldw=="; +NSString * const kInviteMemeberSuccess = @"a0ludml0ZU1lbWViZXJTdWNjZXNz"; +NSString * const kLoginMethod = @"a0xvZ2luTWV0aG9k"; +NSString * const kRequestRicket = @"a1JlcXVlc3RSaWNrZXQ="; +NSString * const KeyWithType(KeyGenre type) { + BOOL isRelase = NO; +#ifdef DEBUG + isRelase = NO; +#else + isRelase = YES; +#endif + ///测试环境 + if(isRelase == NO){ + + NSDictionary * dic = @{ + @(KeyGenre_PasswordEncode) : @"1ea53d260ecf11e7b56e00163e046a26", + @(KeyGenre_NTESQuickLoginBusinessId) : @"09c1214706c34f4798d3f05d86148608", + @(KeyGenre_Agora) : @"HwmdWg0On+bzIrQvJJA3d8rgc0NMYKwMFhYDcygni8lNnfrtqkAfH1+kGUlrWZ0W", + @(KeyGenre_TRTC) : @"Phn3JPi/ZvZ7zVM099Q3dg==", + + @(KeyGenre_NetEase) : @"d55LVCUFT72SVZskbk1L3ZCVjG+tRnUnOqAGuG04kb9uz+qIvbyudhJLDmbOFDtE", + @(keyType_YiDunBussinessId) : @"tl2ZVgj6Mrf9lhoJ9ikxgu8tHJoloM5pxk+hsHIB4pulU6r531Qc7Ol5X8QR5Jy0", + @(KeyGenre_FacePwdEncode) : @"mjaN83evhuwnbE4yEiLQpvH7sALhxCuJ6aPjPlq5amVpHsQtSdbgri3JoHqf/I9+", + @(KeyGenre_SudGameAppID) : @"bRnNgSyiJHQULD/HF9NTtfEb+0pwxAjj1lNPvryHSoE=", + @(KeyGenre_SudGameAppKey) : @"OFgpvGaGTMDQQZmWqw07VyV2cAGTt2rRYSeZZNe2Gw9mGNxW4h1C/H9GYwl8017U", + @(KeyGenre_GuildUidKey) : @"umyLNHTFzWIPw2FWQcYIeQ==", + @(KeyGenre_SystemNotifiUidKey) : @"ZacsLJGoW2hbNoXo32DnaA==", + @(KeyGenre_SecretaryUidKey) : @"cHTJhjYL9UXGs8NJSFxhdg==" + }; + NSString * value = [dic objectForKey:@(type)]; + return value; + } + ///正式环境 + + NSDictionary * dic = @{ + @(KeyGenre_PasswordEncode) : @"mjaN83evhuwnbE4yEiLQpvH7sALhxCuJ6aPjPlq5amVpHsQtSdbgri3JoHqf/I9+", + @(KeyGenre_NTESQuickLoginBusinessId) : @"sCsa0RnuPYtEeE+efSDuHRYEfCObccfLfAK/Sn1LC8X/YifkZfyHNlCts1syZE3R", + @(KeyGenre_Agora) : @"HwmdWg0On+bzIrQvJJA3d8rgc0NMYKwMFhYDcygni8lNnfrtqkAfH1+kGUlrWZ0W", + @(KeyGenre_TRTC) : @"Phn3JPi/ZvZ7zVM099Q3dg==", + + @(KeyGenre_NetEase) : @"d55LVCUFT72SVZskbk1L3ZCVjG+tRnUnOqAGuG04kb9uz+qIvbyudhJLDmbOFDtE", + @(keyType_YiDunBussinessId) : @"tl2ZVgj6Mrf9lhoJ9ikxgu8tHJoloM5pxk+hsHIB4pulU6r531Qc7Ol5X8QR5Jy0", + @(KeyGenre_FacePwdEncode) : @"mjaN83evhuwnbE4yEiLQpvH7sALhxCuJ6aPjPlq5amVpHsQtSdbgri3JoHqf/I9+", + @(KeyGenre_SudGameAppID) : @"bRnNgSyiJHQULD/HF9NTtfEb+0pwxAjj1lNPvryHSoE=", + @(KeyGenre_SudGameAppKey) : @"OFgpvGaGTMDQQZmWqw07VyV2cAGTt2rRYSeZZNe2Gw9mGNxW4h1C/H9GYwl8017U", + @(KeyGenre_GuildUidKey) : @"umyLNHTFzWIPw2FWQcYIeQ==", + @(KeyGenre_SystemNotifiUidKey) : @"ZacsLJGoW2hbNoXo32DnaA==", + @(KeyGenre_SecretaryUidKey) : @"cHTJhjYL9UXGs8NJSFxhdg==" + }; + NSString * value = [dic objectForKey:@(type)]; + NSString * number = [AESUtils aesDecrypt:value]; + return number; +} + +@end diff --git a/YuMi/Global/YUMIHtmlUrl.h b/YuMi/Global/YUMIHtmlUrl.h new file mode 100644 index 00000000..c3796ff0 --- /dev/null +++ b/YuMi/Global/YUMIHtmlUrl.h @@ -0,0 +1,97 @@ +// +// YMHtmlUrl.h +// YUMI +// +// Created by YUMI on 2021/9/13. +// +///放置h5的链接地址 +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIHtmlUrl : NSObject + +typedef NS_ENUM(NSUInteger, URLGenre) { + kPrivacyURL, + kPrivacySDKURL, + kPrivacyPersonalURL, + kPrivacyDeviceURL, + kUserProtocalURL, + kUserInviteFriendURL, + kFAQURL, + kIdentityURL, + kGameBindAccountURL, + kNurseryURL, + kRechargePrivacyURL, + kReportRoomURL, + + kShareRoomURL, + + kCandyTreeURL, + + kCandyTreeRecordURL, + + kCandyTreeRuleURL, + + kRoomCharmRankURL, + + kRoomRankURL, + + kRoomHourRankURL, + + kUserLevelURL, + + kHomeRankURL, + + kRoomDatingRule, + + kNobleRuleURL, + + kUserRechargeAgrURL, + + kUserRegiServiceAgrURL, + + kLiveServiceAgrURL, + + kCommunitySpecURL, + + kAccountlogoutAgrURL, + + kAccountlogoutURL, + + kAnchorFansOpenURL, + + kAnchorFansListURL, + + kAnchorFansRankURL, + + kAnchorFansRuleURL, + + kNewWeekStarURL, + + kLicenseHourRankURL, + + kLuckyGiftPlayRuleURL, + + kSailingRecordURL, + + kSailingPlayDescdURL, + + kSailingActivityURL, + + kNetworkRenovateURL, + + kMonentsShareURL, + + kRedPacketRuleURL, + + kXinZuoStarURL, + + kMineEarningsRecord, +}; + +NSString * const URLWithType(URLGenre type); + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Global/YUMIHtmlUrl.m b/YuMi/Global/YUMIHtmlUrl.m new file mode 100644 index 00000000..db6443f9 --- /dev/null +++ b/YuMi/Global/YUMIHtmlUrl.m @@ -0,0 +1,66 @@ +// +// YMHtmlUrl.m +// YUMI +// +// Created by YUMI on 2021/9/13. +// + +#import "YUMIHtmlUrl.h" +#import "AESUtils.h" +#import "Base64.h" +#import +@implementation YUMIHtmlUrl + +NSString * const URLWithType(URLGenre type) { + NSString * prefix = @"piko"; + NSDictionary * dic = @{ + @(kPrivacyURL) : @"sPa8x4YF1hFEeCeH5v+RMOulemxgjjZLbxkN8ZrBSM8=", + @(kPrivacySDKURL) : @"EXbb0qKoel1tyEL3rQ3//BQ6p/uA56xs9iAOyFI7TRU=", + @(kPrivacyPersonalURL) : @"u+t46y/9x4S49BgHUeSXxxu2D69UtZtmyhA93HUTvzI=", + @(kPrivacyDeviceURL) : @"u+t46y/9x4S49BgHUeSXx/rPFwLB78TiQyN+xJKENGQ=", + @(kUserProtocalURL) : @"0sBhBaRqf7oBlYvNK4azCrVPTFjv9FYF0A2v9+qkSxg=", + @(kUserInviteFriendURL) : @"HInhWCyiR3L4dAlHrmQ/GttrZqXhOtq85WujAcETPPI=", + @(kFAQURL) : @"k/Bqnh8nGkuhV8KhU6xN5a8EkxEQrbDMAWNBtaAdJCo=", + @(kIdentityURL) : @"EQtrsRlCX2+rJN89+qyAT6JtfEnprTylInFU0tTPyLA=", + @(kGameBindAccountURL) : @"5s9YWzw5Lt6ro86UN4pUFETAyuCsIL3wl00gLK5rCek=", + @(kNurseryURL) : @"ZT1/YWK/T7gXs1rGDAYnbqG0OrzjhPKJfaebh80/1ro=", + @(kRechargePrivacyURL) : @"boJayVmf9bj+vVXabUop2cc110U9LaDdAJhHfbinDzXLhlBtiv3h7J6Sivv3v1Lr", + @(kReportRoomURL) : @"TbIA4vIU9O5Z/RGJKEELZNe7SFzF9ig/Lvo6D1upv/g=", + @(kShareRoomURL) : @"k+TyUH/PriZr4MWmS/rq8BUYAu34MX3ZyAZsDLF0Eck=", + @(kCandyTreeURL) : @"uGP8LbEVEzTWPSSD357NnkHsXf118dGp9qeZO+8idY4=", + @(kCandyTreeRuleURL) : @"V6XAvR9DZVl5TTczQ/JABNYrR8ebdHwSCqNvO+lcxDl8aiBlq4Dt1BNO3V+65Q4B", + @(kCandyTreeRecordURL) : @"V6XAvR9DZVl5TTczQ/JABDNKGpFSnSP/r6WLbu91uPKWKlwVlmlYvkETALeLk7Jz", + @(kRoomCharmRankURL) : @"a5qVnItWuLLh148cl8R/+VuVNfOSOd1nzVzfSFbAxUA=", + @(kRoomRankURL) : @"DqPWO/9EdbpkGl4PoRVQy4+hE8o8EuE30v2vN/yeZFg=", + @(kRoomHourRankURL) : @"DqPWO/9EdbpkGl4PoRVQy7m9/mGnCSpoi673bWBnwBc=", + @(kUserLevelURL) : @"NE+tamYZsEj7S9BySlTpcCyRDMdxsWDzm6KrZTs9Lbo=", + @(kHomeRankURL) : @"V6XAvR9DZVl5TTczQ/JABNoH8I7E1sQ4oZmqs01zOfc=", + @(kRoomDatingRule) : @"BbMeRujqQH/yCud2VyM4tZMYe8oHwrQCEcP50kTTxgQ=", + @(kNobleRuleURL) : @"4x4Blbka3DFMAyZGSVqxAp0jXvE4/JUx48YfowufzircU1vr/Du8GqrouZUzD9Uq", + @(kUserRechargeAgrURL) : @"boJayVmf9bj+vVXabUop2cc110U9LaDdAJhHfbinDzXLhlBtiv3h7J6Sivv3v1Lr", + @(kUserRegiServiceAgrURL): @"0sBhBaRqf7oBlYvNK4azCrVPTFjv9FYF0A2v9+qkSxg=", + @(kLiveServiceAgrURL) : @"83qLuhoOlxXOw3gwkchLAnb0iz5PEjqOS5dKRRzIxVw=", + @(kCommunitySpecURL) : @"oZs0ygpb9qtOkpZG1zcj1qS3fx0xzBArL1h358e1NM3hbbSU8qTOBmxkpJ03iq+K", + @(kAccountlogoutAgrURL) : @"8pzk0dLk9GPSIKjn894dHtmPvxfIJTkUYNP5qTE7GzYpYAG7LWwF1pK7NWb4E0D9", + @(kAccountlogoutURL) : @"8pzk0dLk9GPSIKjn894dHmMgQS2OHgRpZ6NNmxGMZ7E=", + @(kAnchorFansOpenURL) : @"mLMTNiyvF2Tbv4qan6+ogPrhx2U0FdD+3WkY/LdNbduiPL2qYSUiF2VJ2Dfbgnpn", + @(kAnchorFansListURL) : @"mLMTNiyvF2Tbv4qan6+ogDXuGLEHnNEEiALV6JCC/gE=", + @(kAnchorFansRankURL) : @"mLMTNiyvF2Tbv4qan6+ogCO6lES2UPVnrnZbAxJMj9o+Oz0MAqy0RX8j1QuItbfT", + @(kAnchorFansRuleURL) : @"mLMTNiyvF2Tbv4qan6+ogG32ymd/DYTOoOeZFye3U9A=", + @(kNewWeekStarURL) : @"GmT6HOvcXNUSbxa4g7oNm8j+6DnTtsNc9nMk6SrEyCdP95p3Jwz84r/fjSNcBBRi", + @(kLicenseHourRankURL) : @"DqPWO/9EdbpkGl4PoRVQyyMfaOgNqIr7sGIOi+kLkijf1EAcL9tVSblMXjNuq+Qy", + @(kLuckyGiftPlayRuleURL) : @"DcADpWwvzNDc5QYX9hmrJDFatpu+zp4ynUPdb+KeBx0+iFBaBI/MRU80MenYMHKQ", + @(kSailingActivityURL) : @"ZrQv+cP5sXzlvQp0nvUa20JB5cyCS6X8LTGvUroUfxk=", + @(kSailingPlayDescdURL) : @"ZrQv+cP5sXzlvQp0nvUa23RXydMeqE8YfwP1J1xHCv3PdHFTlEJiRJ1vhrmu25pu", + @(kSailingRecordURL) : @"ZrQv+cP5sXzlvQp0nvUa2w5kpdXwSP1aQbPEWUi/gPvrXEWTD9m43qlvhznGtWx1", + @(kNetworkRenovateURL) : @"vMZOLHkGF9uAzm9Ii2dzmQVhtZPf5IUKeg8H7/5FGcWE3YbMNrK59iMSV91HEHz/", + @(kMonentsShareURL) : @"s06Uv+UqjOdDhupnk0YpKKnSCSFCZssMEJxKZdf+s0Ge3zIFKv3knVVNr710Y5eF", + @(kRedPacketRuleURL) : @"nRMNKGz9zmwOEcoRr/bGneWzsrl+qHbvUGgXJhFAfVGcldkazbiNrc/v2rR0HFw+", + @(kXinZuoStarURL) : @"3l3NxeDKO2bNAESpzjZ76mvJa2D26Bgqy+nNusiuH1UHYM+bYk+MM/TNM4VRqk1K", + @(kMineEarningsRecord) : @"0HJ5o+40NtYGeHo1KRoQE3VdLhFQnvGyqgph9CCLjyU53rS29T2nD7UEh3CpX2BG", + }; + NSString * url = [dic objectForKey:@(type)]; + NSString * webUrl = [AESUtils aesDecrypt:url]; + return [NSString stringWithFormat:@"%@/%@",prefix, webUrl]; +} +@end diff --git a/YuMi/Global/YUMIMacroUitls.h b/YuMi/Global/YUMIMacroUitls.h new file mode 100644 index 00000000..41f205a1 --- /dev/null +++ b/YuMi/Global/YUMIMacroUitls.h @@ -0,0 +1,51 @@ +// +// YMMacro.h +// YUMI +// +// Created by YUMI on 2021/9/10. +// +///一些宏 +#ifndef YUMIMacroUitls_h +#define YUMIMacroUitls_h + +#define iPhoneXSeries \ +({BOOL isPhoneXSeries = NO;\ +if (@available(iOS 11.0, *)) {\ +isPhoneXSeries = [[UIApplication sharedApplication] delegate].window.safeAreaInsets.bottom > 0.0;\ +}\ +(isPhoneXSeries);}) + +#define KScreenWidth [[UIScreen mainScreen] bounds].size.width +#define KScreenHeight [[UIScreen mainScreen] bounds].size.height +#define statusbarHeight [[UIApplication sharedApplication] statusBarFrame].size.height +#define kStatusBarHeight statusbarHeight +#define kSafeAreaBottomHeight (iPhoneXSeries ? 34 : 0) +#define kSafeAreaTopHeight (iPhoneXSeries ? 24 : 0) +#define kNavigationHeight (kStatusBarHeight + 44) +#define kTabBarHeight (iPhoneXSeries ? 49.0+34.0 : 49.0) +#define kScreenScale ((CGFloat)KScreenWidth / (CGFloat)375) +#define kScreenHeightScale ((CGFloat)KScreenHeight / (CGFloat)812) +#define kHalfScreenHeight KScreenHeight * 0.65 +#define kGetScaleWidth(width) kRoundValue(width) +#define kRoundValue(value) round(kScreenScale * value) +#define kScreenHeightScale ((CGFloat)KScreenHeight / (CGFloat)812) +#define kWeakify(o) try{}@finally{} __weak typeof(o) o##Weak = o; +#define kStrongify(o) autoreleasepool{} __strong typeof(o) o = o##Weak; + +#import "NSBundle+Localizable.h" +#define YMLocalizedString(key) \ +[NSBundle ymProvincializedBWSttrInthecaseofDigital:(key)] + + +#ifdef DEBUG +#define API_HOST_URL @"https://beta.api.pekolive.com" + +#else + +#define API_HOST_URL @"https://api.hfighting.com" + +#endif + +#define API_Image_URL @"https://image.hfighting.com" + +#endif diff --git a/YuMi/Global/YUMINNNN.h b/YuMi/Global/YUMINNNN.h new file mode 100644 index 00000000..e56385f0 --- /dev/null +++ b/YuMi/Global/YUMINNNN.h @@ -0,0 +1,88 @@ +// +// YMEnum.h +// YUMI +// +// Created by YUMI on 2021/9/13. +// +///放置一些全局的枚举 +#ifndef YUMINNNN_h +#define YUMINNNN_h + +typedef NS_ENUM(NSUInteger, ThirdLoginGenre) { + ThirdLoginGenre_WeChat = 1, + ThirdLoginGenre_QQ = 2, + ThirdLoginGenre_FB = 10, + ThirdLoginGenre_Line = 9, + ThirdLoginGenre_Gmail = 8, + ThirdLoginGenre_Apple = 5, + ThirdLoginGenre_Phone = 11, +}; + +typedef NS_ENUM(NSUInteger, GetSmsGenre) { + GetSmsGenre_Regist = 1, + GetSmsGenre_Login = 2, + GetSmsGenre_Reset_Password = 3, + GetSmsGenre_Bind_Phone = 4, + GetSmsGenre_Bind_ZF = 5, + GetSmsGenre_Reset_ZF = 6, + GetSmsGenre_Unbind_Phone = 7, +}; + +typedef NS_ENUM(NSInteger, GenderGenre) { + GenderGenre_Male = 1, + GenderGenre_Female = 2, +}; + +typedef NS_ENUM(NSInteger, DressUpLabelGenre) { + DressUpLabelGenre_New = 1, + DressUpLabelGenre_Discount = 2, + DressUpLabelGenre_Limit = 3, + DressUpLabelGenre_Exclusive = 4 +}; + +typedef NS_ENUM(NSInteger, GroupGenre) { + GroupGenre_default = 0, + GroupGenre_Blue = 1, + GroupGenre_Red = 2, +}; + +typedef NS_ENUM(NSInteger, ConsumerEnterChamberFromGenre) { + + ConsumerEnterChamberFromGenre_Home_Recommend = 1, + + ConsumerEnterChamberFromGenre_Follow_User = 2, + + ConsumerEnterChamberFromGenre_Follow_Game_Detail = 8, + + ConsumerEnterChamberFromGenre_Cross_Room_PK = 9, + + ConsumerEnterChamberFromGenre_New_User_Greet = 10 +}; +typedef NS_ENUM(NSInteger, LittleGameDisportPosition) { + LittleGameDisportPosition_NoIn = 0, + LittleGameDisportPosition_IsIn = 1, + LittleGameDisportPosition_Ready = 2, + LittleGameDisportPosition_Plying = 3, +}; + +typedef NS_ENUM(NSInteger, ChamberCombatVoteModeGenre){ + ChamberCombatVoteModeGenre_GiftValue = 1, + ChamberCombatVoteModeGenre_NumberPerson = 2, +}; + +typedef NS_ENUM(NSInteger, ChamberCombatResultGenre) { + ChamberCombatResultGenre_Draw = 0, + ChamberCombatResultGenre_Blue = 1, + ChamberCombatResultGenre_Red = 2, +}; + +typedef NS_ENUM(NSInteger, ContactUseingGenre) { + + ContactUseingGenre_Normal = 0, + + ContactUseingGenre_In_Room = 1, + + ContactUseingGenre_Share = 2, +}; + +#endif diff --git a/YuMi/GoogleService-Info.plist b/YuMi/GoogleService-Info.plist new file mode 100644 index 00000000..d7c8943a --- /dev/null +++ b/YuMi/GoogleService-Info.plist @@ -0,0 +1,36 @@ + + + + + CLIENT_ID + 766987211654-f02ueos1jutp7vfn3ntht5pk4oi33jor.apps.googleusercontent.com + REVERSED_CLIENT_ID + com.googleusercontent.apps.766987211654-f02ueos1jutp7vfn3ntht5pk4oi33jor + ANDROID_CLIENT_ID + 766987211654-2b4de5kbhe7tpgtfto4bjll3dj7ih26u.apps.googleusercontent.com + API_KEY + AIzaSyCUcP9kERd1iPT_QiMXn-HrjORv0TEiECg + GCM_SENDER_ID + 766987211654 + PLIST_VERSION + 1 + BUNDLE_ID + com.youmi.appstore.ios + PROJECT_ID + fluid-keyword-363108 + STORAGE_BUCKET + fluid-keyword-363108.appspot.com + IS_ADS_ENABLED + + IS_ANALYTICS_ENABLED + + IS_APPINVITE_ENABLED + + IS_GCM_ENABLED + + IS_SIGNIN_ENABLED + + GOOGLE_APP_ID + 1:766987211654:ios:4ecc6ea6e05a36eb89d207 + + diff --git a/YuMi/Info.plist b/YuMi/Info.plist new file mode 100644 index 00000000..3d8fcbae --- /dev/null +++ b/YuMi/Info.plist @@ -0,0 +1,122 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + Piko + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + $(MARKETING_VERSION) + CFBundleURLTypes + + + CFBundleTypeRole + Editor + CFBundleURLSchemes + + line3rdp.$(PRODUCT_BUNDLE_IDENTIFIER) + + + + CFBundleTypeRole + Editor + CFBundleURLSchemes + + fb1266232494209868 + + + + CFBundleTypeRole + Editor + CFBundleURLSchemes + + com.googleusercontent.apps.766987211654-f02ueos1jutp7vfn3ntht5pk4oi33jor + + + + CFBundleVersion + 9 + FacebookAppID + 1266232494209868 + FacebookClientToken + 189d1a90712cc61cedded4cf1372cb21 + FacebookDisplayName + Piko + LSApplicationQueriesSchemes + + line3rdp.$(PRODUCT_BUNDLE_IDENTIFIER) + lineauth + line + lineauth2 + fbapi20150629 + fbapi20160328 + fbshareextension + fbapi + fbapi20130214 + fbauth + fbauth2 + fbapi + fb-messenger-share-api + + LSRequiresIPhoneOS + + LineSDKConfig + + ChannelID + 1657475529 + + MOBAppKey + 36b91eeac7469 + MOBAppSecret + 63ec0702513aca17e20615dd5dfdc03f + NSAppTransportSecurity + + NSAllowsArbitraryLoads + + + NSCameraUsageDescription + “Piko”需要您的同意,才可以访问进行拍照并上传您的图片,然后展示在您的个人主页上,便于他人查看 + NSLocalNetworkUsageDescription + 此App将可发现和连接到您所用网络上的设备。 + NSMicrophoneUsageDescription + “Piko”需要您的同意,才可以进行语音聊天 + NSPhotoLibraryAddUsageDescription + “Piko”需要您的同意,才可以存储相片到相册 + NSPhotoLibraryUsageDescription + “Piko”需要您的同意,才可以访问相册并选择您需要上传的图片,然后展示在您的个人主页上,便于他人查看 + UIApplicationSupportsIndirectInputEvents + + UIBackgroundModes + + audio + + UILaunchStoryboardName + Launch Screen.storyboard + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + + UIViewControllerBasedStatusBarAppearance + + + diff --git a/YuMi/Launch Screen.storyboard b/YuMi/Launch Screen.storyboard new file mode 100644 index 00000000..a73ce143 --- /dev/null +++ b/YuMi/Launch Screen.storyboard @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/YuMi/Modules/YMLogin/Api/Api+Login.h b/YuMi/Modules/YMLogin/Api/Api+Login.h new file mode 100644 index 00000000..88bde016 --- /dev/null +++ b/YuMi/Modules/YMLogin/Api/Api+Login.h @@ -0,0 +1,54 @@ +// +// Api+Login.h +// YUMI +// +// Created by zu on 2021/9/6. +// + +#import "Api.h" +NS_ASSUME_NONNULL_BEGIN + +@interface Api (Login) + ++ (void)mobileFlexibleSurmount:(HttpRequestHelperCompletion)completion + accessToken:(NSString *)accessToken + token:(NSString *)token; ++ (void)surmountAboutCryptogram:(HttpRequestHelperCompletion)completion + phone:(NSString *)phone + code:(NSString *)code + client_secret:(NSString *)client_secret + version:(NSString *)version + client_id:(NSString *)client_id + grant_type:(NSString *)grant_type + phoneAreaCode:(NSString *)phoneAreaCode; + ++ (void)surmountAboutCiphercryptogram:(HttpRequestHelperCompletion)completion + phone:(NSString *)phone + password:(NSString *)password + client_secret:(NSString *)client_secret + version:(NSString *)version + client_id:(NSString *)client_id + grant_type:(NSString *)grant_type; + ++ (void)replacementCiphercryptogramAboutMobile:(HttpRequestHelperCompletion)complction + phone:(NSString *)phone + newPwd:(NSString *)newPwd + smsCode:(NSString *)smsCode; + ++ (void)surmountAboutTertiusPart:(HttpRequestHelperCompletion)complction + openid:(NSString *)openid + unionid:(NSString *)unionid + access_token:(NSString *)access_token + type:(NSString *)type; + ++ (void)arbitraryMonicer:(HttpRequestHelperCompletion)completion; + ++ (void)dilemmaAplictowardsionartowardsusCryptogram:(HttpRequestHelperCompletion)complection + phone:(NSString *)phone + code:(NSString *)code + ticket:(NSString *)ticket; + ++(void)acquireMobileAreaCryptogramSttowardsement:(HttpRequestHelperCompletion)complection; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMLogin/Api/Api+Login.m b/YuMi/Modules/YMLogin/Api/Api+Login.m new file mode 100644 index 00000000..fd45a86a --- /dev/null +++ b/YuMi/Modules/YMLogin/Api/Api+Login.m @@ -0,0 +1,56 @@ +// +// Api+Login.m +// YUMI +// +// Created by zu on 2021/9/6. +// + +#import "Api+Login.h" +#import +@implementation Api (Login) + ++ (void)mobileFlexibleSurmount:(HttpRequestHelperCompletion)completion accessToken:(NSString *)accessToken token:(NSString *)token { + NSString * fang = [NSString stringFromBase64String:@"YWNjL29uZWNsaWNrL2xvZ2lu"]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, accessToken, token, nil]; +} + ++ (void)surmountAboutCryptogram:(HttpRequestHelperCompletion)completion phone:(NSString *)phone code:(NSString *)code client_secret:(NSString *)client_secret version:(NSString *)version client_id:(NSString *)client_id grant_type:(NSString *)grant_type phoneAreaCode:(NSString *)phoneAreaCode{ + NSString * fang = [NSString stringFromBase64String:@"b2F1dGgvdG9rZW4="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__,phone,code,client_secret,version, client_id, grant_type,phoneAreaCode, nil]; +} + ++ (void)surmountAboutCiphercryptogram:(HttpRequestHelperCompletion)completion phone:(NSString *)phone password:(NSString *)password client_secret:(NSString *)client_secret version:(NSString *)version client_id:(NSString *)client_id grant_type:(NSString *)grant_type { + NSString * fang = [NSString stringFromBase64String:@"b2F1dGgvdG9rZW4="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__,phone,password,client_secret,version, client_id, grant_type, nil]; +} + ++ (void)replacementCiphercryptogramAboutMobile:(HttpRequestHelperCompletion)completion phone:(NSString *)phone newPwd:(NSString *)newPwd smsCode:(NSString *)smsCode { + NSString * fang = [NSString stringFromBase64String:@"YWNjL3B3ZC9yZXNldA=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, phone, newPwd, smsCode, nil]; +} + + ++ (void)surmountAboutTertiusPart:(HttpRequestHelperCompletion)completion openid:(NSString *)openid unionid:(NSString *)unionid access_token:(NSString *)access_token type:(NSString *)type { + NSString * fang = [NSString stringFromBase64String:@"YWNjL3RoaXJkL2xvZ2lu"]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, openid, unionid, access_token, type, nil]; +} + ++ (void)arbitraryMonicer:(HttpRequestHelperCompletion)completion { + NSString * fang = [NSString stringFromBase64String:@"cmFuZG9tL25pY2svZ2V0"]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, nil]; +} + ++ (void)dilemmaAplictowardsionartowardsusCryptogram:(HttpRequestHelperCompletion)complection + phone:(NSString *)phone + code:(NSString *)code + ticket:(NSString *)ticket { + NSString * fang = [NSString stringFromBase64String:@"d2l0aERyYXcvcGhvbmU="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:complection, __FUNCTION__, phone, code, ticket, nil]; +} + ++(void)acquireMobileAreaCryptogramSttowardsement:(HttpRequestHelperCompletion)complection{ + NSString * fang = [NSString stringFromBase64String:@"YXJlYUluZm8vbGlzdA=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:complection, __FUNCTION__,nil]; +} + +@end diff --git a/YuMi/Modules/YMLogin/Model/SurmountAreaMatrix.h b/YuMi/Modules/YMLogin/Model/SurmountAreaMatrix.h new file mode 100644 index 00000000..0d206542 --- /dev/null +++ b/YuMi/Modules/YMLogin/Model/SurmountAreaMatrix.h @@ -0,0 +1,25 @@ +// +// SurmountAreaMatrix.h +// YuMi +// +// Created by YuMi on 2023/6/25. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface SurmountAreaMatrix : NSObject +@property (nonatomic,copy) NSString *codeId; +@property (nonatomic,copy) NSString *name; +@property (nonatomic,copy) NSString *abbr; +@property (nonatomic,copy) NSString *phone_area_code; +@property (nonatomic,copy) NSString *phoneAreaCode; +@property (nonatomic,copy) NSString *seq; +@property (nonatomic,copy) NSString *status; +@property (nonatomic,copy) NSString *region; +@property (nonatomic,copy) NSString *create_time; +@property (nonatomic,copy) NSString *update_time; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMLogin/Model/SurmountAreaMatrix.m b/YuMi/Modules/YMLogin/Model/SurmountAreaMatrix.m new file mode 100644 index 00000000..48c0048b --- /dev/null +++ b/YuMi/Modules/YMLogin/Model/SurmountAreaMatrix.m @@ -0,0 +1,12 @@ +// +// SurmountAreaMatrix.m +// YuMi +// +// Created by YuMi on 2023/6/25. +// + +#import "SurmountAreaMatrix.h" + +@implementation SurmountAreaMatrix + +@end diff --git a/YuMi/Modules/YMLogin/Model/ThirdConsumerAbstract.h b/YuMi/Modules/YMLogin/Model/ThirdConsumerAbstract.h new file mode 100644 index 00000000..b2a65aef --- /dev/null +++ b/YuMi/Modules/YMLogin/Model/ThirdConsumerAbstract.h @@ -0,0 +1,22 @@ +// +// ThirdConsumerAbstract.h +// YUMI +// +// Created by YUMI on 2021/9/13. +// + +#import "NSObject+MJExtension.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface ThirdConsumerAbstract : NSObject +@property (nonatomic,copy) NSString *userName; +@property (nonatomic,copy) NSString *avatarUrl; +@property (nonatomic,copy) NSString * openid; + +@property (nonatomic,copy) NSString * access_token; + +@property (nonatomic,copy) NSString * unionid; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMLogin/Model/ThirdConsumerAbstract.m b/YuMi/Modules/YMLogin/Model/ThirdConsumerAbstract.m new file mode 100644 index 00000000..aff7bfc1 --- /dev/null +++ b/YuMi/Modules/YMLogin/Model/ThirdConsumerAbstract.m @@ -0,0 +1,12 @@ +// +// ThirdConsumerAbstract.m +// YUMI +// +// Created by YUMI on 2021/9/13. +//保存第三方请求的 用户信息 + +#import "ThirdConsumerAbstract.h" + +@implementation ThirdConsumerAbstract + +@end diff --git a/YuMi/Modules/YMLogin/Presenter/SurmountCiphercodeExternalize.h b/YuMi/Modules/YMLogin/Presenter/SurmountCiphercodeExternalize.h new file mode 100644 index 00000000..71c57c70 --- /dev/null +++ b/YuMi/Modules/YMLogin/Presenter/SurmountCiphercodeExternalize.h @@ -0,0 +1,16 @@ +// +// SurmountCiphercodeExternalize.h +// YUMI +// +// Created by YUMI on 2021/9/9. +// + +#import "BaseMvpExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface SurmountCiphercodeExternalize : BaseMvpExternalizer +- (void)surmountAboutMobile:(NSString *)phone password:(NSString *)password; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMLogin/Presenter/SurmountCiphercodeExternalize.m b/YuMi/Modules/YMLogin/Presenter/SurmountCiphercodeExternalize.m new file mode 100644 index 00000000..858e57de --- /dev/null +++ b/YuMi/Modules/YMLogin/Presenter/SurmountCiphercodeExternalize.m @@ -0,0 +1,35 @@ +// +// SurmountCiphercodeExternalize.m +// YUMI +// +// Created by YUMI on 2021/9/9. +// + +#import "SurmountCiphercodeExternalize.h" +#import "Api+Login.h" +#import "AccountAbstractStorage.h" +#import "DESEncrypt.h" +#import "YUMIConstant.h" +#import "AccountMatrix.h" +#import "SurmountCiphercodeCeremony.h" + + +@implementation SurmountCiphercodeExternalize + +- (id)acquireRegard { + return ((id) [super acquireRegard]); +} + +- (void)surmountAboutMobile:(NSString *)phone password:(NSString *)password { + NSString * desPassword = [DESEncrypt encryptUseDES:password key:KeyWithType(KeyGenre_PasswordEncode)]; + NSString * desPhone = [DESEncrypt encryptUseDES:phone key:KeyWithType(KeyGenre_PasswordEncode)]; + [Api surmountAboutCiphercryptogram:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + AccountMatrix * accountModel = [AccountMatrix mtowardsrixAboutImpactbasket:data.data]; + if (accountModel && accountModel.access_token.length > 0) { + [[AccountAbstractStorage instance] preserveSequenceriptionAbstract:accountModel]; + } + [[self acquireRegard] mobileGrantedCiphercryptogramSurmountAccomplishment]; + } EvidenceChambering:YES] phone:desPhone password:desPassword client_secret:@"uyzjdhds" version:@"1" client_id:@"erban-client" grant_type:@"password"]; +} + +@end diff --git a/YuMi/Modules/YMLogin/Presenter/SurmountDilemmaMobileExternalize.h b/YuMi/Modules/YMLogin/Presenter/SurmountDilemmaMobileExternalize.h new file mode 100644 index 00000000..130f3410 --- /dev/null +++ b/YuMi/Modules/YMLogin/Presenter/SurmountDilemmaMobileExternalize.h @@ -0,0 +1,16 @@ +// +// SurmountDilemmaMobileExternalize.h +// YUMI +// +// Created by YUMI on 2021/9/15. +// + +#import "BaseMvpExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface SurmountDilemmaMobileExternalize : BaseMvpExternalizer + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMLogin/Presenter/SurmountDilemmaMobileExternalize.m b/YuMi/Modules/YMLogin/Presenter/SurmountDilemmaMobileExternalize.m new file mode 100644 index 00000000..1068f2aa --- /dev/null +++ b/YuMi/Modules/YMLogin/Presenter/SurmountDilemmaMobileExternalize.m @@ -0,0 +1,17 @@ +// +// SurmountDilemmaMobileExternalize.m +// YUMI +// +// Created by YUMI on 2021/9/15. +// + +#import "SurmountDilemmaMobileExternalize.h" +#import "BaseMvpCeremony.h" + +@implementation SurmountDilemmaMobileExternalize + +- (id)acquireRegard { + return ((id) [super acquireRegard]); +} + +@end diff --git a/YuMi/Modules/YMLogin/Presenter/SurmountExternalizer.h b/YuMi/Modules/YMLogin/Presenter/SurmountExternalizer.h new file mode 100644 index 00000000..367cb827 --- /dev/null +++ b/YuMi/Modules/YMLogin/Presenter/SurmountExternalizer.h @@ -0,0 +1,25 @@ +// +// SurmountExternalizer.h +// YUMI +// +// Created by zu on 2021/9/1. +// + +#import "BaseMvpExternalizer.h" +#import "YUMINNNN.h" +#import +#import +#import +NS_ASSUME_NONNULL_BEGIN + +@interface SurmountExternalizer : BaseMvpExternalizer + +- (void)mobileFlexibleSurmount:(NSString *)accessToken token:(NSString*) token; + + +- (void)tertiusSurmountAboutGenre:(ThirdLoginGenre)type; + +-(void)tertiusSurmountByGoogleAboutPresentingRegardGovernancer:(UIViewController *)presentingViewController configuration:(GIDConfiguration *)configuration; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMLogin/Presenter/SurmountExternalizer.m b/YuMi/Modules/YMLogin/Presenter/SurmountExternalizer.m new file mode 100644 index 00000000..90bd882e --- /dev/null +++ b/YuMi/Modules/YMLogin/Presenter/SurmountExternalizer.m @@ -0,0 +1,168 @@ +// +// SurmountExternalizer.m +// YUMI +// +// Created by zu on 2021/9/1. +// + +#import "SurmountExternalizer.h" +#import +#import +#import "Api+Login.h" +#import "AccountAbstractStorage.h" +#import "XNDJTBWGLoadingTool.h" +#import "YUMIMacroUitls.h" +#import "SurmountCeremony.h" +#import "ThirdConsumerAbstract.h" +#import "AccountMatrix.h" + + + +@implementation SurmountExternalizer + +- (id)acquireRegard { + return ((id) [super acquireRegard]); +} + +- (void)mobileFlexibleSurmount:(NSString *)accessToken token:(NSString *)token { + [Api mobileFlexibleSurmount:[self produceHyperessayImplementtowardsion:^(BaseMatrix *data) { + [[AccountAbstractStorage instance] preserveSequenceriptionAbstract:[AccountMatrix mtowardsrixAboutImpactbasket:data.data]]; + [[self acquireRegard] surmountAccomplishment]; + } EvidenceChambering:YES] accessToken:accessToken token:token]; +} + + +- (void)tertiusSurmountAboutGenre:(ThirdLoginGenre)type{ + + SSDKPlatformType platformType; + switch (type) { + case ThirdLoginGenre_FB: + platformType = SSDKPlatformTypeFacebook; + break; + case ThirdLoginGenre_Line: + platformType = SSDKPlatformTypeLine; + break; + case ThirdLoginGenre_Apple: + platformType = SSDKPlatformTypeAppleAccount; + break; + case ThirdLoginGenre_Gmail: + platformType = SSDKPlatformTypeGooglePlus; + break; + default: + platformType = SSDKPlatformTypeAppleAccount; + break; + } + NSDictionary * settings; + if (type == SSDKPlatformTypeFacebook) { + settings = @{@"isBrowser":@(YES)}; + } + + [ShareSDK cancelAuthorize:platformType result:nil]; + [ShareSDK authorize:platformType settings:settings onStateChanged:^(SSDKResponseState state, SSDKUser *user, NSError *error) { + if (state == SSDKResponseStateSuccess) { + ThirdConsumerAbstract * userInfo = [[ThirdConsumerAbstract alloc] init]; + NSString * openid = @""; + NSString * access_token = user.credential.token.length > 0 ? user.credential.token : @""; + NSString * unionid = @""; + if (platformType == SSDKPlatformTypeLine) { + openid = user.credential.uid.length > 0 ? user.credential.uid : user.uid; + unionid = user.credential.uid.length > 0 ? user.credential.uid : user.uid; + userInfo.userName = user.nickname; + userInfo.avatarUrl = user.icon; + } else if (platformType == SSDKPlatformTypeFacebook) { + openid = user.credential.uid.length > 0 ? user.credential.uid : user.uid;; + unionid = user.credential.uid.length > 0 ? user.credential.uid : user.uid;; + userInfo.userName = user.nickname; + userInfo.avatarUrl = user.icon; + } else if (platformType == SSDKPlatformTypeAppleAccount) { + + unionid = [user.credential rawData][@"user"]; + NSString * familyName = [user.credential rawData][@"fullName"][@"familyName"]; + NSString * givenName = [user.credential rawData][@"fullName"][@"givenName"]; + if (familyName.length > 0 && givenName.length> 0) { + userInfo.userName = [NSString stringWithFormat:@"%@%@", familyName, givenName]; + } + } + if (unionid == nil) { + unionid = @""; + } + openid = unionid; + userInfo.openid = openid; + userInfo.access_token = access_token; + userInfo.unionid = unionid; + + [AccountAbstractStorage instance].thirdUserInfo = userInfo; + [self surmountAboutTertiusPartAboutGenre:type]; + } else if(state == SSDKResponseStateCancel) { + [[self acquireRegard] EvidenceMistakeToast:YMLocalizedString(@"LoginPresenter0")]; + + } else if (state == SSDKResponseStateFail) { + [[self acquireRegard] EvidenceMistakeToast:YMLocalizedString(@"LoginPresenter1")]; + + } + }]; +} +-(void)surmountAboutTertiusPartAboutGenre:(ThirdLoginGenre)type{ + NSString * openid = [AccountAbstractStorage instance].thirdUserInfo.openid; + NSString * access_token = [AccountAbstractStorage instance].thirdUserInfo.access_token; + NSString * unionid = [AccountAbstractStorage instance].thirdUserInfo.unionid; + [Api surmountAboutTertiusPart:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + AccountMatrix * model = [AccountMatrix mtowardsrixAboutImpactbasket:data.data]; + if (model != nil) { + [[AccountAbstractStorage instance] preserveSequenceriptionAbstract:model]; + [[self acquireRegard] surmountAccomplishment]; + } + } fail:^(NSInteger code, NSString * _Nullable msg) { + [[self acquireRegard] EvidenceMistakeToast:YMLocalizedString(@"LoginPresenter1")]; + } EvidenceChambering:YES] openid:openid unionid:unionid access_token:access_token type:[NSString stringWithFormat:@"%lu", (unsigned long)type]]; + + +} + +-(void)tertiusSurmountByGoogleAboutPresentingRegardGovernancer:(UIViewController *)presentingViewController configuration:(GIDConfiguration *)configuration{ + + [GIDSignIn.sharedInstance signInWithConfiguration:configuration + presentingViewController:presentingViewController + callback:^(GIDGoogleUser * _Nullable user, + NSError * _Nullable error) { + if (error != nil) { + if (error.code == kGIDSignInErrorCodeCanceled){ + [[self acquireRegard] EvidenceMistakeToast:YMLocalizedString(@"LoginPresenter0")]; + }else{ + [[self acquireRegard] EvidenceMistakeToast:YMLocalizedString(@"LoginPresenter1")]; + } + } else { + ThirdConsumerAbstract * userInfo = [[ThirdConsumerAbstract alloc] init]; + NSString * openid = user.userID; + NSString * access_token = user.authentication.idToken.length > 0 ? user.authentication.idToken : @""; + NSString * unionid = user.userID; + userInfo.userName = user.profile.name; + userInfo.avatarUrl = [[user.profile imageURLWithDimension:60] absoluteString]; + userInfo.openid = openid; + userInfo.access_token = access_token; + userInfo.unionid = unionid; + + [AccountAbstractStorage instance].thirdUserInfo = userInfo; + [self surmountAboutTertiusGoogle]; + } + }]; +} + +-(void)surmountAboutTertiusGoogle{ + NSString * openid = [AccountAbstractStorage instance].thirdUserInfo.openid; + NSString * access_token = [AccountAbstractStorage instance].thirdUserInfo.access_token; + NSString * unionid = [AccountAbstractStorage instance].thirdUserInfo.unionid; + [Api surmountAboutTertiusPart:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + AccountMatrix * model = [AccountMatrix mtowardsrixAboutImpactbasket:data.data]; + if (model != nil) { + [[AccountAbstractStorage instance] preserveSequenceriptionAbstract:model]; + [[self acquireRegard] surmountAccomplishment]; + } + }fail:^(NSInteger code, NSString * _Nullable msg) { + [[super acquireRegard] EvidenceMistakeToast:YMLocalizedString(@"LoginPresenter1")]; + } EvidenceChambering:YES] openid:openid unionid:unionid access_token:access_token type:[NSString stringWithFormat:@"%lu", (unsigned long)ThirdLoginGenre_Gmail]]; +} + + + +@end diff --git a/YuMi/Modules/YMLogin/Presenter/SurmountForgetCiphercodeExternalize.h b/YuMi/Modules/YMLogin/Presenter/SurmountForgetCiphercodeExternalize.h new file mode 100644 index 00000000..1a6b5cb1 --- /dev/null +++ b/YuMi/Modules/YMLogin/Presenter/SurmountForgetCiphercodeExternalize.h @@ -0,0 +1,18 @@ +// +// SurmountForgetCiphercodeExternalize.h +// YUMI +// +// Created by YUMI on 2021/9/10. +// + +#import "BaseMvpExternalizer.h" +#import "YUMINNNN.h" +NS_ASSUME_NONNULL_BEGIN + +@interface SurmountForgetCiphercodeExternalize : BaseMvpExternalizer +- (void)mobileSmsCryptogram:(NSString *)phone type:(GetSmsGenre)type phoneAreaCode:(NSString *)phoneAreaCode; + +- (void)replacementCiphercryptogram:(NSString *)phone newPwd:(NSString *)newPwd smsCode:(NSString *)smsCode; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMLogin/Presenter/SurmountForgetCiphercodeExternalize.m b/YuMi/Modules/YMLogin/Presenter/SurmountForgetCiphercodeExternalize.m new file mode 100644 index 00000000..e7252bcf --- /dev/null +++ b/YuMi/Modules/YMLogin/Presenter/SurmountForgetCiphercodeExternalize.m @@ -0,0 +1,38 @@ +// +// SurmountForgetCiphercodeExternalize.m +// YUMI +// +// Created by YUMI on 2021/9/10. +// + +#import "SurmountForgetCiphercodeExternalize.h" +#import "AccountAbstractStorage.h" +#import "DESEncrypt.h" +#import "YUMIConstant.h" +#import "Api+Login.h" +#import "SurmountForgetCiphercodeExternalize.h" +#import "SurmountForgetCiphercodeCeremony.h" + +@implementation SurmountForgetCiphercodeExternalize + +- (id)acquireRegard { + return ((id) [super acquireRegard]); +} + +- (void)mobileSmsCryptogram:(NSString *)phone type:(GetSmsGenre)type phoneAreaCode:(NSString *)phoneAreaCode{ + NSString * desPhone = [DESEncrypt encryptUseDES:phone key:KeyWithType(KeyGenre_PasswordEncode)]; + [Api mobileSmsCryptogram:[self produceHyperessayImplementtowardsion:^(id _Nonnull data) { + [[self acquireRegard] mobileSmsCryptogramAccomplishment]; + }] mobile:desPhone type:[NSString stringWithFormat:@"%lu", (unsigned long)type] phoneAreaCode:phoneAreaCode]; +} + + +- (void)replacementCiphercryptogram:(NSString *)phone newPwd:(NSString *)newPwd smsCode:(NSString *)smsCode { + NSString * desPassword = [DESEncrypt encryptUseDES:newPwd key:KeyWithType(KeyGenre_PasswordEncode)]; + NSString * desPhone = [DESEncrypt encryptUseDES:phone key:KeyWithType(KeyGenre_PasswordEncode)]; + [Api replacementCiphercryptogramAboutMobile:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] replacementPasswrodAccomplishment]; + } EvidenceChambering:YES] phone:desPhone newPwd:desPassword smsCode:smsCode]; +} + +@end diff --git a/YuMi/Modules/YMLogin/Presenter/SurmountFullAbstractExternalizer.h b/YuMi/Modules/YMLogin/Presenter/SurmountFullAbstractExternalizer.h new file mode 100644 index 00000000..d5dede96 --- /dev/null +++ b/YuMi/Modules/YMLogin/Presenter/SurmountFullAbstractExternalizer.h @@ -0,0 +1,28 @@ +// +// SurmountFullAbstractExternalizer.h +// YUMI +// +// Created by YUMI on 2021/9/14. +// + +#import "BaseMvpExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN +@class ThirdConsumerAbstract; +@interface SurmountFullAbstractExternalizer : BaseMvpExternalizer + +- (ThirdConsumerAbstract *)acquireTertiusConsumerAbstract; + +- (void)arbitraryDemandMonicer; + +- (void)complectionAbstractAboutIntelligenceportrait:(NSString *)avatar + gender:(NSString *)gender + nick:(NSString *)nick + centiretyforCryptogram:(NSString * __nullable)centiretyforCryptogram + roomUid:(NSString * __nullable)roomUid + shareUid:(NSString * __nullable)shareUid + shareChannel:(NSString * __nullable)shareChannel; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMLogin/Presenter/SurmountFullAbstractExternalizer.m b/YuMi/Modules/YMLogin/Presenter/SurmountFullAbstractExternalizer.m new file mode 100644 index 00000000..4f3c466c --- /dev/null +++ b/YuMi/Modules/YMLogin/Presenter/SurmountFullAbstractExternalizer.m @@ -0,0 +1,71 @@ +// +// SurmountFullAbstractExternalizer.m +// YUMI +// +// Created by YUMI on 2021/9/14. +// + +#import "SurmountFullAbstractExternalizer.h" +#import "Api+Login.h" +#import "SurmountFullAbstractCeremony.h" +#import "NSMutableDictionary+Saft.h" +#import "AccountAbstractStorage.h" +#import "ThirdConsumerAbstract.h" + +@implementation SurmountFullAbstractExternalizer + +- (id)acquireRegard { + return ((id) [super acquireRegard]); +} + + +- (ThirdConsumerAbstract *)acquireTertiusConsumerAbstract { + if ([AccountAbstractStorage instance].thirdUserInfo) { + return [AccountAbstractStorage instance].thirdUserInfo; + } + return nil; +} + +- (void)arbitraryDemandMonicer { + [Api arbitraryMonicer:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] requisitionArbitraryMonicerAccomplishment:data.data]; + }]]; +} + + +- (void)complectionAbstractAboutIntelligenceportrait:(NSString *)avatar + gender:(NSString *)gender + nick:(NSString *)nick + centiretyforCryptogram:(NSString * __nullable)centiretyforCryptogram + roomUid:(NSString * __nullable)roomUid + shareUid:(NSString * __nullable)shareUid + shareChannel:(NSString * __nullable)shareChannel { + NSString * uid = [[AccountAbstractStorage instance] acquireCid]; + NSString * ticket = [[AccountAbstractStorage instance] acquireTicket]; + NSMutableDictionary * params = [NSMutableDictionary dictionary]; + [params secureSetGroal:avatar forKey:@"avatar"]; + [params secureSetGroal:gender forKey:@"gender"]; + [params secureSetGroal:nick forKey:@"nick"]; + [params secureSetGroal:uid forKey:@"uid"]; + [params secureSetGroal:ticket forKey:@"ticket"]; + if (centiretyforCryptogram.length > 0) { + [params secureSetGroal:centiretyforCryptogram forKey:@"inviteCode"]; + } + + if (roomUid.length > 0) { + [params secureSetGroal:roomUid forKey:@"roomUid"]; + } + + if (shareUid.length > 0) { + [params secureSetGroal:shareUid forKey:@"shareUid"]; + } + + if (shareChannel.length > 0) { + [params secureSetGroal:shareChannel forKey:@"shareChannel"]; + } + [Api accomplishConsumerAbstract:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] complementAbstractAccomplishment]; + }] userInfo:params]; +} + +@end diff --git a/YuMi/Modules/YMLogin/Presenter/SurmountValidationCodeExternalize.h b/YuMi/Modules/YMLogin/Presenter/SurmountValidationCodeExternalize.h new file mode 100644 index 00000000..794c37ae --- /dev/null +++ b/YuMi/Modules/YMLogin/Presenter/SurmountValidationCodeExternalize.h @@ -0,0 +1,22 @@ +// +// SurmountValidationCodeExternalize.h +// YUMI +// +// Created by YUMI on 2021/9/9. +// + +#import "BaseMvpExternalizer.h" +#import "YUMINNNN.h" +NS_ASSUME_NONNULL_BEGIN + +@interface SurmountValidationCodeExternalize : BaseMvpExternalizer +- (void)mobileSmsCryptogram:(NSString *)phone type:(GetSmsGenre)type phoneAreaCode:(NSString *)phoneAreaCode; + +- (void)surmountAboutMobile:(NSString *)phone code:(NSString *)code phoneAreaCode:(NSString *)phoneAreaCode; + +- (void)dilemmaAboutMobile:(NSString *)phone code:(NSString *)code; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMLogin/Presenter/SurmountValidationCodeExternalize.m b/YuMi/Modules/YMLogin/Presenter/SurmountValidationCodeExternalize.m new file mode 100644 index 00000000..1689846c --- /dev/null +++ b/YuMi/Modules/YMLogin/Presenter/SurmountValidationCodeExternalize.m @@ -0,0 +1,51 @@ +// +// SurmountValidationCodeExternalize.m +// YUMI +// +// Created by YUMI on 2021/9/9. +// + +#import "SurmountValidationCodeExternalize.h" +#import +#import "AccountAbstractStorage.h" +#import "DESEncrypt.h" +#import "YUMIConstant.h" +#import "Api+Login.h" +#import "SurmountValidationCodeExternalize.h" +#import "SurmountVerifCodeCeremony.h" +#import "AccountMatrix.h" + +@implementation SurmountValidationCodeExternalize + +- (id)acquireRegard { + return ((id) [super acquireRegard]); +} + +- (void)mobileSmsCryptogram:(NSString *)phone type:(GetSmsGenre)type phoneAreaCode:(NSString *)phoneAreaCode { + NSString * desPhone = [DESEncrypt encryptUseDES:phone key:KeyWithType(KeyGenre_PasswordEncode)]; + [Api mobileSmsCryptogram:[self produceHyperessayImplementtowardsion:^(id _Nonnull data) { + [[self acquireRegard] mobileSmsCryptogramAccomplishment]; + }] mobile:desPhone type:[NSString stringWithFormat:@"%lu", (unsigned long)type] phoneAreaCode:phoneAreaCode]; +} + +- (void)surmountAboutMobile:(NSString *)phone code:(NSString *)code phoneAreaCode:(NSString *)phoneAreaCode{ + NSString * desPhone = [DESEncrypt encryptUseDES:phone key:KeyWithType(KeyGenre_PasswordEncode)]; + [Api surmountAboutCryptogram:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + AccountMatrix * accountModel = [AccountMatrix mtowardsrixAboutImpactbasket:data.data]; + + if (accountModel && accountModel.access_token.length > 0) { + [[AccountAbstractStorage instance] preserveSequenceriptionAbstract:accountModel]; + } + [[self acquireRegard] surmountAccomplishment]; + } EvidenceChambering:YES] phone:desPhone code:code client_secret:@"uyzjdhds" version:@"1" client_id:@"erban-client" grant_type:@"password" phoneAreaCode:phoneAreaCode]; +} + +- (void)dilemmaAboutMobile:(NSString *)phone code:(NSString *)code { + NSString * ticket = [[AccountAbstractStorage instance] acquireTicket]; + NSString * desPhone = [DESEncrypt encryptUseDES:phone key:KeyWithType(KeyGenre_PasswordEncode)]; + [Api dilemmaAplictowardsionartowardsusCryptogram:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] dilemmaMobileAccomplishment]; + } EvidenceChambering:YES] phone:desPhone code:code ticket:ticket]; +} + +@end diff --git a/YuMi/Modules/YMLogin/Presenter/YUMISurmountValidationDilemmaMobileExternalizer.h b/YuMi/Modules/YMLogin/Presenter/YUMISurmountValidationDilemmaMobileExternalizer.h new file mode 100644 index 00000000..7a84fe81 --- /dev/null +++ b/YuMi/Modules/YMLogin/Presenter/YUMISurmountValidationDilemmaMobileExternalizer.h @@ -0,0 +1,21 @@ +// +// YMLoginVerifBindPhonePresenter.h +// YUMI +// +// Created by YUMI on 2021/9/18. +// + +#import "MainExternalizer.h" +#import "YUMINNNN.h" +NS_ASSUME_NONNULL_BEGIN + +@interface YUMISurmountValidationDilemmaMobileExternalizer : MainExternalizer + +- (void)mobileSmsCryptogram:(NSString *)phone type:(GetSmsGenre)type phoneAreaCode:(NSString *)phoneAreaCode; + +- (void)examineAplictowardsionartowardsusCryptogramAboutAplictowardsionartowardsus:(NSString *)moblieNum code:(NSString *)code; + +- (void)dilemmakAplictowardsionartowardsusCryptogramAboutAplictowardsionartowardsus:(NSString *)moblieNum code:(NSString *)code; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMLogin/Presenter/YUMISurmountValidationDilemmaMobileExternalizer.m b/YuMi/Modules/YMLogin/Presenter/YUMISurmountValidationDilemmaMobileExternalizer.m new file mode 100644 index 00000000..d9658e2d --- /dev/null +++ b/YuMi/Modules/YMLogin/Presenter/YUMISurmountValidationDilemmaMobileExternalizer.m @@ -0,0 +1,42 @@ +// +// YMLoginVerifBindPhonePresenter.m +// YUMI +// +// Created by YUMI on 2021/9/18. +// + +#import "YUMISurmountValidationDilemmaMobileExternalizer.h" +#import "Api+Login.h" +#import "AccountAbstractStorage.h" +#import "DESEncrypt.h" +#import "YUMIConstant.h" +#import "FBCSurmountVerifBindPhoneCeremony.h" + +@implementation YUMISurmountValidationDilemmaMobileExternalizer + +- (void)mobileSmsCryptogram:(NSString *)phone type:(GetSmsGenre)type phoneAreaCode:(NSString *)phoneAreaCode{ + NSString * typeStr = [NSString stringWithFormat:@"%lu", (unsigned long)type]; + NSString * desPhone = [DESEncrypt encryptUseDES:phone key:KeyWithType(KeyGenre_PasswordEncode)]; + [Api mobileSmsCryptogram:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] mobileSmsCryptogramAccomplishment]; + }] mobile:desPhone type:typeStr phoneAreaCode:phoneAreaCode]; +} + + +- (void)examineAplictowardsionartowardsusCryptogramAboutAplictowardsionartowardsus:(NSString *)moblieNum code:(NSString *)code { + NSString * uid = [[AccountAbstractStorage instance] acquireCid]; + NSString * ticket = [[AccountAbstractStorage instance] acquireTicket]; + NSString * desPhone = [DESEncrypt encryptUseDES:moblieNum key:KeyWithType(KeyGenre_PasswordEncode)]; + [Api examineAplictowardsionartowardsusCryptogram:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] examineAplictowardsionartowardsusCryptogramAboutAplictowardsionartowardsusAccomplishment]; + }] mobile:desPhone code:code uid:uid ticket:ticket]; +} + +- (void)dilemmakAplictowardsionartowardsusCryptogramAboutAplictowardsionartowardsus:(NSString *)moblieNum code:(NSString *)code { + NSString * ticket = [[AccountAbstractStorage instance] acquireTicket]; + NSString * desPhone = [DESEncrypt encryptUseDES:moblieNum key:KeyWithType(KeyGenre_PasswordEncode)]; + [Api dilemmaAplictowardsionartowardsusCryptogram:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] dilemmaAplictowardsionartowardsusCryptogramAboutAplictowardsionartowardsusAccomplishment]; + }] phone:desPhone code:code ticket:ticket]; +} +@end diff --git a/YuMi/Modules/YMLogin/Protocol/FBCSurmountVerifBindPhoneCeremony.h b/YuMi/Modules/YMLogin/Protocol/FBCSurmountVerifBindPhoneCeremony.h new file mode 100644 index 00000000..37c0feb6 --- /dev/null +++ b/YuMi/Modules/YMLogin/Protocol/FBCSurmountVerifBindPhoneCeremony.h @@ -0,0 +1,18 @@ +// +// YMLoginVerifBindPhoneProtocol.h +// YUMI +// +// Created by YUMI on 2021/9/18. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol FBCSurmountVerifBindPhoneCeremony +- (void)mobileSmsCryptogramAccomplishment; +- (void)dilemmaAplictowardsionartowardsusCryptogramAboutAplictowardsionartowardsusAccomplishment; +- (void)examineAplictowardsionartowardsusCryptogramAboutAplictowardsionartowardsusAccomplishment; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMLogin/Protocol/SurmountCeremony.h b/YuMi/Modules/YMLogin/Protocol/SurmountCeremony.h new file mode 100644 index 00000000..74885a5a --- /dev/null +++ b/YuMi/Modules/YMLogin/Protocol/SurmountCeremony.h @@ -0,0 +1,17 @@ +// +// SurmountCeremony.h +// YUMI +// +// Created by zu on 2021/9/1. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol SurmountCeremony + +- (void)surmountAccomplishment; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMLogin/Protocol/SurmountCiphercodeCeremony.h b/YuMi/Modules/YMLogin/Protocol/SurmountCiphercodeCeremony.h new file mode 100644 index 00000000..8e9ed6d3 --- /dev/null +++ b/YuMi/Modules/YMLogin/Protocol/SurmountCiphercodeCeremony.h @@ -0,0 +1,16 @@ +// +// SurmountCiphercodeCeremony.h +// YUMI +// +// Created by YUMI on 2021/9/9. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol SurmountCiphercodeCeremony +- (void)mobileGrantedCiphercryptogramSurmountAccomplishment; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMLogin/Protocol/SurmountForgetCiphercodeCeremony.h b/YuMi/Modules/YMLogin/Protocol/SurmountForgetCiphercodeCeremony.h new file mode 100644 index 00000000..8d78bae0 --- /dev/null +++ b/YuMi/Modules/YMLogin/Protocol/SurmountForgetCiphercodeCeremony.h @@ -0,0 +1,17 @@ +// +// SurmountForgetCiphercodeCeremony.h +// YUMI +// +// Created by YUMI on 2021/9/10. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol SurmountForgetCiphercodeCeremony +- (void)mobileSmsCryptogramAccomplishment; +- (void)replacementPasswrodAccomplishment; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMLogin/Protocol/SurmountFullAbstractCeremony.h b/YuMi/Modules/YMLogin/Protocol/SurmountFullAbstractCeremony.h new file mode 100644 index 00000000..d43c9742 --- /dev/null +++ b/YuMi/Modules/YMLogin/Protocol/SurmountFullAbstractCeremony.h @@ -0,0 +1,17 @@ +// +// SurmountFullAbstractCeremony.h +// YUMI +// +// Created by YUMI on 2021/9/14. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol SurmountFullAbstractCeremony +- (void)requisitionArbitraryMonicerAccomplishment:(NSString *)nick; +- (void)complementAbstractAccomplishment; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMLogin/Protocol/SurmountVerifCodeCeremony.h b/YuMi/Modules/YMLogin/Protocol/SurmountVerifCodeCeremony.h new file mode 100644 index 00000000..ab47728a --- /dev/null +++ b/YuMi/Modules/YMLogin/Protocol/SurmountVerifCodeCeremony.h @@ -0,0 +1,18 @@ +// +// SurmountVerifCodeCeremony.h +// YUMI +// +// Created by YUMI on 2021/9/9. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol SurmountVerifCodeCeremony +- (void)mobileSmsCryptogramAccomplishment; +- (void)surmountAccomplishment; +- (void)dilemmaMobileAccomplishment; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMLogin/View/CustomView/ConsumerPrivacyRegard.h b/YuMi/Modules/YMLogin/View/CustomView/ConsumerPrivacyRegard.h new file mode 100644 index 00000000..828415a9 --- /dev/null +++ b/YuMi/Modules/YMLogin/View/CustomView/ConsumerPrivacyRegard.h @@ -0,0 +1,16 @@ +// +// ConsumerPrivacyRegard.h +// YUMI +// +// Created by YUMI on 2021/11/1. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface ConsumerPrivacyRegard : UIView +@property (nonatomic,strong) UIViewController * controller; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMLogin/View/CustomView/ConsumerPrivacyRegard.m b/YuMi/Modules/YMLogin/View/CustomView/ConsumerPrivacyRegard.m new file mode 100644 index 00000000..da54478d --- /dev/null +++ b/YuMi/Modules/YMLogin/View/CustomView/ConsumerPrivacyRegard.m @@ -0,0 +1,202 @@ +// +// ConsumerPrivacyRegard.m +// YUMI +// +// Created by YUMI on 2021/11/1. +// + +#import "ConsumerPrivacyRegard.h" +#import +#import +#import "YUMIConstant.h" +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" +#import "YUMIHtmlUrl.h" +#import "MKJPopup.h" +#import "UIImage+Utils.h" +#import "YUMITissueRegardGovernancer.h" + +NSString * const kYouMiNumberCountKey = @"kYouMinumbernnagna"; +@interface ConsumerPrivacyRegard () +@property (nonatomic, strong) UILabel *titleLabel; +@property (nonatomic, strong) YYTextView *satisfperformanceSequencignation; +@property (nonatomic,strong) UIStackView *stackView; +@property (nonatomic, strong) UIButton *acknowledgementBtuton; +@property (nonatomic, strong) UIButton *exitBtuton; +@end + +@implementation ConsumerPrivacyRegard + +- (instancetype)initWithFrame:(CGRect)frame +{ + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Response +- (void)onAgreementBtutonTicktack:(UIButton *)sender { + if (sender == self.acknowledgementBtuton) { + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + [defaults setObject:@"isShow" forKey:kYouMiNumberCountKey]; + [defaults synchronize]; + [MKJPopup dismiss]; + } +} + +- (void)routeBtutonTicktack:(UIButton *)sender { + [self routeAplictowardsionlictowardsion]; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor whiteColor]; + self.layer.masksToBounds = YES; + self.layer.cornerRadius = 10; + [self addSubview:self.titleLabel]; + [self addSubview:self.satisfperformanceSequencignation]; + [self addSubview:self.stackView]; + [self.stackView addArrangedSubview:self.exitBtuton]; + [self.stackView addArrangedSubview:self.acknowledgementBtuton]; +} + +- (void)initChildLyRestrictions { + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(KScreenWidth - 38 * 2); + make.height.mas_equalTo(424); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(18); + make.centerX.mas_equalTo(self); + }]; + + [self.satisfperformanceSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(55); + make.left.mas_equalTo(28); + make.right.mas_equalTo(-28); + make.bottom.mas_equalTo(-68); + }]; + + [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.bottom.mas_equalTo(-20); + make.left.right.mas_equalTo(self).inset(15); + make.height.mas_equalTo(36); + }]; + +} + + +- (void)routeAplictowardsionlictowardsion { + [MKJPopup dismiss]; + [UIView beginAnimations:@"exitApplication" context:nil]; + [UIView setAnimationDuration:0.5]; + [UIView setAnimationDelegate:self]; + [UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:self cache:NO]; + [UIView setAnimationDidStopSelector:@selector(brectifynessAccomplished:finished:context:)]; + [UIView commitAnimations]; +} +- (void)brectifynessAccomplished:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context { + if ([animationID compare:@"exitApplication"] == 0) { + exit(0); + } +} + +#pragma mark - getters and setters + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.font = [UIFont systemFontOfSize:16.f weight:UIFontWeightMedium]; + _titleLabel.textColor = [DJDKMIMOMColor precautiousChampionPrettify]; + _titleLabel.text = [NSString stringWithFormat:YMLocalizedString(@"User_Privacy_View_0"), AppName]; + } + return _titleLabel; +} + +- (YYTextView *)satisfperformanceSequencignation { + if (!_satisfperformanceSequencignation) { + _satisfperformanceSequencignation = [[YYTextView alloc]init]; + _satisfperformanceSequencignation.editable = NO; + _satisfperformanceSequencignation.showsVerticalScrollIndicator = NO; + _satisfperformanceSequencignation.showsHorizontalScrollIndicator = NO; + + NSMutableParagraphStyle *paragraphStyle = [NSMutableParagraphStyle new]; + paragraphStyle.lineSpacing = 4; + NSString * agreement = [NSString stringWithFormat:YMLocalizedString(@"User_Privacy_View_1"), AppName]; + NSMutableAttributedString *attStr = [[NSMutableAttributedString alloc] init]; + NSAttributedString *att1 = [[NSAttributedString alloc] initWithString:agreement attributes:@{NSFontAttributeName : [UIFont systemFontOfSize:14], NSForegroundColorAttributeName : [DJDKMIMOMColor essayTertiusPrettify], NSParagraphStyleAttributeName : paragraphStyle, NSKernAttributeName : @(1.0)}]; + + NSMutableAttributedString *att2 = [[NSMutableAttributedString alloc] initWithString:YMLocalizedString(@"User_Privacy_View_2") attributes:@{NSFontAttributeName : [UIFont systemFontOfSize:14 weight:UIFontWeightMedium], NSForegroundColorAttributeName : [DJDKMIMOMColor essayTertiusPrettify], NSParagraphStyleAttributeName : paragraphStyle, NSKernAttributeName : @(1.0)}]; + @kWeakify(self); + [att2 yy_setTextHighlightRange:NSMakeRange(8, 6) color:[DJDKMIMOMColor aplictowardsionMainPrettify] backgroundColor:[UIColor clearColor] tapAction:^(UIView * _Nonnull containerView, NSAttributedString * _Nonnull text, NSRange range, CGRect rect) { + @kStrongify(self); + [MKJPopup dismiss]; + YUMITissueRegardGovernancer *web = [[YUMITissueRegardGovernancer alloc] init]; + web.url = URLWithType(kPrivacyURL); + [self.controller.navigationController pushViewController:web animated:YES]; + }]; + + [att2 yy_setTextHighlightRange:NSMakeRange(15, 6) color:[DJDKMIMOMColor aplictowardsionMainPrettify] backgroundColor:[UIColor clearColor] tapAction:^(UIView * _Nonnull containerView, NSAttributedString * _Nonnull text, NSRange range, CGRect rect) { + @kStrongify(self); + [MKJPopup dismiss]; + YUMITissueRegardGovernancer *web = [[YUMITissueRegardGovernancer alloc] init]; + web.url = URLWithType(kUserProtocalURL); + [self.controller.navigationController pushViewController:web animated:YES]; + }]; + + [attStr appendAttributedString:att1]; + [attStr appendAttributedString:att2]; + + _satisfperformanceSequencignation.attributedText = attStr; + } + return _satisfperformanceSequencignation; +} + +- (UIButton *)acknowledgementBtuton { + if (!_acknowledgementBtuton) { + _acknowledgementBtuton = [[UIButton alloc]init]; + [_acknowledgementBtuton setTitle:YMLocalizedString(@"User_Privacy_View_3") forState:UIControlStateNormal]; + _acknowledgementBtuton.titleLabel.font = [UIFont systemFontOfSize:15]; + [_acknowledgementBtuton setTitleColor:[DJDKMIMOMColor mainEssayPrettify] forState:UIControlStateNormal]; + UIImage *image = [UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify],[DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)]; + [_acknowledgementBtuton setBackgroundImage:image forState:UIControlStateNormal]; + _acknowledgementBtuton.layer.cornerRadius = 18; + _acknowledgementBtuton.layer.masksToBounds = YES; + [_acknowledgementBtuton addTarget:self action:@selector(onAgreementBtutonTicktack:) forControlEvents:UIControlEventTouchUpInside]; + } + return _acknowledgementBtuton; +} + +- (UIButton *)exitBtuton { + if (!_exitBtuton) { + _exitBtuton = [[UIButton alloc]init]; + [_exitBtuton setTitle:YMLocalizedString(@"User_Privacy_View_4") forState:UIControlStateNormal]; + _exitBtuton.titleLabel.font = [UIFont systemFontOfSize:15]; + [_exitBtuton setTitleColor:[DJDKMIMOMColor revoctowardsionBtutonEssayPrettify] forState:UIControlStateNormal]; + UIImage *image = [UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor revoctowardsionBtutonObliquityInititowardsePrettify],[DJDKMIMOMColor revoctowardsionBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)]; + [_exitBtuton setBackgroundImage:image forState:UIControlStateNormal]; + _exitBtuton.layer.cornerRadius = 18; + _exitBtuton.layer.masksToBounds = YES; + [_exitBtuton addTarget:self action:@selector(routeBtutonTicktack:) forControlEvents:UIControlEventTouchUpInside]; + } + return _exitBtuton; +} + +- (UIStackView *)stackView { + if (!_stackView) { + _stackView = [[UIStackView alloc] init]; + _stackView.axis = UILayoutConstraintAxisHorizontal; + _stackView.distribution = UIStackViewDistributionFillEqually; + _stackView.alignment = UIStackViewAlignmentFill; + _stackView.spacing = 20; + } + return _stackView; +} + + + +@end diff --git a/YuMi/Modules/YMLogin/View/CustomView/SurmountValidationCodeRegard.h b/YuMi/Modules/YMLogin/View/CustomView/SurmountValidationCodeRegard.h new file mode 100644 index 00000000..b5448fc4 --- /dev/null +++ b/YuMi/Modules/YMLogin/View/CustomView/SurmountValidationCodeRegard.h @@ -0,0 +1,20 @@ +// +// SurmountValidationCodeRegard.h +// YUMI +// +// Created by YUMI on 2021/9/8. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface SurmountValidationCodeRegard : UIView + +@property (nonatomic,assign) int number; +@property (nonatomic,copy) void(^textFieldChangeBlock)(NSString *); +@property (nonatomic, assign) BOOL shouldBeAssurance; +@property (nonatomic,assign) int type; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMLogin/View/CustomView/SurmountValidationCodeRegard.m b/YuMi/Modules/YMLogin/View/CustomView/SurmountValidationCodeRegard.m new file mode 100644 index 00000000..5b6ced66 --- /dev/null +++ b/YuMi/Modules/YMLogin/View/CustomView/SurmountValidationCodeRegard.m @@ -0,0 +1,161 @@ +// +// SurmountValidationCodeRegard.m +// YUMI +// +// Created by YUMI on 2021/9/8. +// + +#import "SurmountValidationCodeRegard.h" +#import +#import +#import "DJDKMIMOMColor.h" + +@interface SurmountValidationCodeRegard () +@property (nonatomic,strong) UITextField *essayUniverse; +@property (nonatomic,strong) NSMutableArray *sequencigntionGarment; +@end + + +@implementation SurmountValidationCodeRegard + +- (instancetype)initWithFrame:(CGRect)frame +{ + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + [self initOccurrences]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.essayUniverse]; +} + +- (void)initChildLyRestrictions { + [self.essayUniverse mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self); + }]; +} + +- (void)initOccurrences { + @weakify(self); + [[self.essayUniverse rac_signalForControlEvents:UIControlEventEditingChanged] subscribeNext:^(__kindof UITextField *essayUniverse) { + @strongify(self); + [self refurbishSequencigntionsAboutEssay:essayUniverse]; + }]; +} + +- (void)refurbishSequencigntionsAboutEssay:(UITextField *)essayUniverse { + if (essayUniverse.text.length > self.sequencigntionGarment.count) { + essayUniverse.text = [essayUniverse.text substringToIndex:self.sequencigntionGarment.count]; + } + if (essayUniverse.text.length >= self.number) { + [essayUniverse resignFirstResponder]; + if (_textFieldChangeBlock) { + _textFieldChangeBlock(essayUniverse.text); + } + } + + for (UILabel *pwLab in self.sequencigntionGarment) { + if (pwLab.tag < (100 + essayUniverse.text.length)) { + if (self.shouldBeAssurance) { + pwLab.text = @"●"; + } else { + NSRange range = NSMakeRange(pwLab.tag-100, 1); + pwLab.text = [essayUniverse.text substringWithRange:range]; + } + }else{ + pwLab.text = @""; + } + } +} + +- (void)prohibitipositionSequencigntowardsionGarment { + CGFloat itemWidth = 45; + CGFloat itemAltitude = 45; + CGFloat itemSpace = 11; + for (int i = 0; i < _number; i++) { + UILabel * label = [[UILabel alloc] init]; + label.textColor = [DJDKMIMOMColor mainEssayPrettify]; + label.font = [UIFont fontWithName:@"PingFang-SC-Medium" size:18]; + label.textAlignment = NSTextAlignmentCenter; + label.backgroundColor = [DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify]; + label.layer.masksToBounds = YES; + label.layer.cornerRadius = 10; + label.tag = 100 + i; + [self addSubview:label]; + [label mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(itemWidth, itemAltitude)); + make.centerY.mas_equalTo(self); + make.left.mas_equalTo(self).offset((itemWidth + itemSpace)* i); + }]; + [self.sequencigntionGarment addObject:label]; + } + + UILabel * label = [self.sequencigntionGarment lastObject]; + if (label) { + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(label.mas_right); + make.height.mas_equalTo(itemAltitude); + }]; + } +} + +- (void)prohibitipositionSequencigntowardsionGarmentHLOfGiveDiamond { + CGFloat itemWidth = kGetScaleWidth(50); + CGFloat itemAltitude = kGetScaleWidth(50); + CGFloat itemSpace = kGetScaleWidth(9); + for (int i = 0; i < _number; i++) { + UILabel * label = [[UILabel alloc] init]; + label.textColor = [DJDKMIMOMColor mainEssayPrettify]; + label.font = [UIFont fontWithName:@"PingFang-SC-Medium" size:18]; + label.textAlignment = NSTextAlignmentCenter; + label.backgroundColor = UIColorFromRGB(0xF0F5F6); + label.layer.masksToBounds = YES; + label.layer.cornerRadius = kGetScaleWidth(4); + label.tag = 100 + i; + [self addSubview:label]; + [label mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(itemWidth, itemAltitude)); + make.centerY.mas_equalTo(self); + make.left.mas_equalTo(self).offset((itemWidth + itemSpace)* i); + }]; + [self.sequencigntionGarment addObject:label]; + } +} + +#pragma mark - Getters And Setters +- (void)setNumber:(int)number { + _number = number; + if(self.type == 1 && _number > 0){ + [self prohibitipositionSequencigntowardsionGarmentHLOfGiveDiamond]; + return; + } + + if (_number > 0) { + [self prohibitipositionSequencigntowardsionGarment]; + } +} + +- (UITextField *)essayUniverse { + if (!_essayUniverse) { + _essayUniverse = [[UITextField alloc] init]; + _essayUniverse.tintColor = [UIColor clearColor]; + _essayUniverse.textColor = [UIColor clearColor]; + _essayUniverse.keyboardType = UIKeyboardTypeNumberPad; + [_essayUniverse becomeFirstResponder]; + } + return _essayUniverse; +} + +- (NSMutableArray *)sequencigntionGarment { + if (!_sequencigntionGarment) { + _sequencigntionGarment = [NSMutableArray array]; + } + return _sequencigntionGarment; +} + +@end diff --git a/YuMi/Modules/YMLogin/View/CustomView/YUMISurmountDilemmaSuccessRegard.h b/YuMi/Modules/YMLogin/View/CustomView/YUMISurmountDilemmaSuccessRegard.h new file mode 100644 index 00000000..0bcfe382 --- /dev/null +++ b/YuMi/Modules/YMLogin/View/CustomView/YUMISurmountDilemmaSuccessRegard.h @@ -0,0 +1,17 @@ +// +// YMLoginBindSuccessView.h +// YUMI +// +// Created by YUMI on 2021/9/18. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +typedef void(^XPBindViewDismissHandler)(void); +@interface YUMISurmountDilemmaSuccessRegard : UIView +@property (nonatomic, copy) XPBindViewDismissHandler disappearHandler; ++ (void)EvidenceBindAccomplishmentRegardAboutShankr:(XPBindViewDismissHandler)handler; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMLogin/View/CustomView/YUMISurmountDilemmaSuccessRegard.m b/YuMi/Modules/YMLogin/View/CustomView/YUMISurmountDilemmaSuccessRegard.m new file mode 100644 index 00000000..2039bdeb --- /dev/null +++ b/YuMi/Modules/YMLogin/View/CustomView/YUMISurmountDilemmaSuccessRegard.m @@ -0,0 +1,124 @@ +// +// YMLoginBindSuccessView.m +// YUMI +// +// Created by YUMI on 2021/9/18. +// + +#import "YUMISurmountDilemmaSuccessRegard.h" +#import +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" +#import "MKJPopup.h" + +@interface YUMISurmountDilemmaSuccessRegard () + +@property (nonatomic, strong) UIImageView *successIndicateRegard; +@property (nonatomic, strong) UILabel *textLabel; +@property (nonatomic, strong) UIButton *concludeBtuton; + +@end + +@implementation YUMISurmountDilemmaSuccessRegard + +- (instancetype)initWithFrame:(CGRect)frame +{ + self = [super initWithFrame:frame]; + if (self) { + [self baseUI]; + [self initRegards]; + [self initRestrictions]; + } + return self; +} + +- (void)layoutSubviews { + [super layoutSubviews]; + +} + +#pragma mark - +#pragma mark lifeCycle +- (void)baseUI { + self.layer.cornerRadius = 8.f; + self.layer.masksToBounds = YES; + self.backgroundColor = [UIColor whiteColor]; +} +- (void)initRegards { + [self addSubview:self.successIndicateRegard]; + [self addSubview:self.textLabel]; + [self addSubview:self.concludeBtuton]; +} + +- (void)initRestrictions { + [self.successIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(18); + make.centerX.mas_equalTo(0); + make.size.mas_equalTo(CGSizeMake(76, 76)); + }]; + + [self.textLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(0); + make.top.mas_equalTo(self.successIndicateRegard.mas_bottom).offset(7); + }]; + + [self.concludeBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(0); + make.top.mas_equalTo(self.textLabel.mas_bottom).offset(22); + make.height.mas_equalTo(38); + make.width.mas_equalTo(124); + }]; +} + +#pragma mark private methods ++ (void)EvidenceBindAccomplishmentRegardAboutShankr:(XPBindViewDismissHandler)handler { + YUMISurmountDilemmaSuccessRegard *bindSuccessView = [[YUMISurmountDilemmaSuccessRegard alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth - 64, 195)]; + bindSuccessView.disappearHandler = handler; + [MKJPopup popupRegard:bindSuccessView style:MKJPopupStyleAlert]; +} + +#pragma mark - +#pragma mark button click events +- (void)concludeBtutonTicktackPerformance:(UIButton *)btn { + [MKJPopup dismiss]; + !_disappearHandler ? : _disappearHandler(); +} + +#pragma mark - +#pragma mark getter & setter +- (UIImageView *)successIndicateRegard +{ + if (!_successIndicateRegard) { + _successIndicateRegard = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"yumi_login_bind_phone_success"]]; + } + return _successIndicateRegard; +} + +- (UILabel *)textLabel +{ + if (!_textLabel) { + _textLabel = [[UILabel alloc] init]; + _textLabel.text = YMLocalizedString(@"XPLoginBindSuccessView0"); + _textLabel.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _textLabel.font = [UIFont fontWithName:@"PingFangSC-Regular" size:17]; + _textLabel.adjustsFontSizeToFitWidth = YES; + _textLabel.textAlignment = NSTextAlignmentCenter; + } + return _textLabel; +} + +- (UIButton *)concludeBtuton { + if (!_concludeBtuton) { + _concludeBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_concludeBtuton setTitle:YMLocalizedString(@"XPLoginBindSuccessView1") forState:UIControlStateNormal]; + [_concludeBtuton setTitleColor:[DJDKMIMOMColor mainEssayPrettify] forState:UIControlStateNormal]; + [_concludeBtuton setBackgroundColor:[DJDKMIMOMColor aplictowardsionEncouragegroundPrettify]]; + [_concludeBtuton.titleLabel setFont:[UIFont systemFontOfSize:15.f]]; + _concludeBtuton.layer.masksToBounds = YES; + _concludeBtuton.layer.cornerRadius = 19; + [_concludeBtuton addTarget:self action:@selector(concludeBtutonTicktackPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _concludeBtuton; +} + +@end diff --git a/YuMi/Modules/YMLogin/View/NewLogin/YUMIForgetPwordRegardGovernancer.h b/YuMi/Modules/YMLogin/View/NewLogin/YUMIForgetPwordRegardGovernancer.h new file mode 100644 index 00000000..32ae4022 --- /dev/null +++ b/YuMi/Modules/YMLogin/View/NewLogin/YUMIForgetPwordRegardGovernancer.h @@ -0,0 +1,16 @@ +// +// YMForgetPwdViewController.h +// YUMI +// +// Created by XY on 2023/2/14. +// + +#import "YUMISurmountBaseRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIForgetPwordRegardGovernancer : YUMISurmountBaseRegardGovernancer + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMLogin/View/NewLogin/YUMIForgetPwordRegardGovernancer.m b/YuMi/Modules/YMLogin/View/NewLogin/YUMIForgetPwordRegardGovernancer.m new file mode 100644 index 00000000..f2ba4f6e --- /dev/null +++ b/YuMi/Modules/YMLogin/View/NewLogin/YUMIForgetPwordRegardGovernancer.m @@ -0,0 +1,194 @@ +// +// YMForgetPwdViewController.m +// YUMI +// +// Created by XY on 2023/2/14. +// + +#import "YUMIForgetPwordRegardGovernancer.h" +#import +#import "YUMIMacroUitls.h" +#import + +#import "YUMISurmountIntrojectionRegard.h" + +#import "SurmountForgetCiphercodeExternalize.h" +#import "SurmountForgetCiphercodeCeremony.h" +#import "YUMISurmountAraeRegardGovernancer.h" + +@interface YUMIForgetPwordRegardGovernancer () + +@property (nonatomic, strong) UILabel *titleLabel; +@property (nonatomic, strong) YUMISurmountIntrojectionRegard *mobileIntrojectionRegard; +@property (nonatomic, strong) YUMISurmountIntrojectionRegard *cryptogramIntrojectionRegard; +@property (nonatomic, strong) YUMISurmountIntrojectionRegard *pwordIntrojectionRegard; +@property (nonatomic, strong) UIButton *sureBtuton; +@property (nonatomic,copy) NSString *phoneAreaCode; + +@end + +@implementation YUMIForgetPwordRegardGovernancer + +- (SurmountForgetCiphercodeExternalize *)producePresimport { + return [[SurmountForgetCiphercodeExternalize alloc] init]; +} + +- (void)viewDidLoad { + self.phoneAreaCode = @"852"; + self.demandsImpression = YES; + self.demandsEncourage = YES; + [super viewDidLoad]; + [self produceUI]; + [self racBind]; +} + +- (void)produceUI { + [self.view addSubview:self.titleLabel]; + [self.view addSubview:self.mobileIntrojectionRegard]; + [self.view addSubview:self.cryptogramIntrojectionRegard]; + [self.view addSubview:self.pwordIntrojectionRegard]; + [self.view addSubview:self.sureBtuton]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.view); + make.top.mas_equalTo(kStatusBarHeight); + make.height.mas_equalTo(44); + }]; + [self.mobileIntrojectionRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(38); + make.right.mas_equalTo(-38); + make.top.mas_equalTo(139.0/812.0*KScreenHeight); + make.height.mas_equalTo(66); + }]; + [self.cryptogramIntrojectionRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.mobileIntrojectionRegard); + make.right.mas_equalTo(self.mobileIntrojectionRegard); + make.top.mas_equalTo(self.mobileIntrojectionRegard.mas_bottom).offset(16); + make.height.mas_equalTo(self.mobileIntrojectionRegard); + }]; + [self.pwordIntrojectionRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.mobileIntrojectionRegard); + make.right.mas_equalTo(self.mobileIntrojectionRegard); + make.top.mas_equalTo(self.cryptogramIntrojectionRegard.mas_bottom).offset(16); + make.height.mas_equalTo(self.mobileIntrojectionRegard); + }]; + [self.sureBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.pwordIntrojectionRegard.mas_bottom).offset(51); + make.centerX.mas_equalTo(self.view); + make.width.height.mas_equalTo(96); + }]; + +} + +- (void)racBind { + RAC(self.sureBtuton, enabled) = [[RACSignal combineLatest:@[self.mobileIntrojectionRegard.introjectionEssayUniverse.rac_textSignal, self.pwordIntrojectionRegard.introjectionEssayUniverse.rac_textSignal, self.pwordIntrojectionRegard.introjectionEssayUniverse.rac_textSignal] reduce:^id _Nonnull(NSString *phone, NSString* smsCode, NSString *password){ + return @((phone.length == 11) && smsCode.length >= 5 && (password.length >= 6 && password.length <= 16)); + }] takeUntil:self.rac_willDeallocSignal]; +} + +- (void)sureBtutonTicktacked { + NSString *phone = self.mobileIntrojectionRegard.introjectionEssayUniverse.text; + NSString *smsCode = self.cryptogramIntrojectionRegard.introjectionEssayUniverse.text; + NSString *password = self.pwordIntrojectionRegard.introjectionEssayUniverse.text; + [self.presimport replacementCiphercryptogram:phone newPwd:password smsCode:smsCode]; +} + +#pragma mark - FBCSurmountIntrojectionRegardRepresendtation + +- (void)smsCryptogramPerformance { + NSString *phone = self.mobileIntrojectionRegard.introjectionEssayUniverse.text; + if (phone.length != 11 ) { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_Forget_Pwd_View_Controller_0")]; + return; + } + [self.presimport mobileSmsCryptogram:phone type:GetSmsGenre_Reset_Password phoneAreaCode:self.phoneAreaCode]; + +} + +- (void)areaSttowardsementPerformance { + YUMISurmountAraeRegardGovernancer *codeVC = [YUMISurmountAraeRegardGovernancer new]; + codeVC.delegate = self; + [self.navigationController pushViewController:codeVC animated:YES]; +} + +- (void)concludeAreaCryptogramAccomplishment:(NSString *)code { + if (code.length > 0) { + self.phoneAreaCode = code; + [self.mobileIntrojectionRegard.areaCryptogramBtuton setTitle:[NSString stringWithFormat:@"+%@", code] forState:UIControlStateNormal]; + } +} + +#pragma mark - SurmountForgetCiphercodeCeremony + +- (void)mobileSmsCryptogramAccomplishment { + [self EvidenceAccomplishmentToast:YMLocalizedString(@"YUMI_Forget_Pwd_View_Controller_1")]; + [self.cryptogramIntrojectionRegard fireIntrtowardsemper]; +} + +- (void)replacementPasswrodAccomplishment { + [self EvidenceAccomplishmentToast:YMLocalizedString(@"YUMI_Forget_Pwd_View_Controller_2")]; + [self.navigationController popViewControllerAnimated:YES]; + +} + +#pragma mark - 懒加载 + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.text = YMLocalizedString(@"YUMI_Forget_Pwd_View_Controller_3"); + _titleLabel.font = [UIFont systemFontOfSize:18 weight:UIFontWeightMedium]; + _titleLabel.textColor = UIColor.whiteColor; + } + return _titleLabel; +} + +- (YUMISurmountIntrojectionRegard *)mobileIntrojectionRegard { + if (!_mobileIntrojectionRegard) { + _mobileIntrojectionRegard = [[YUMISurmountIntrojectionRegard alloc] init]; + _mobileIntrojectionRegard.areaHierarchyRegard.hidden = NO; + _mobileIntrojectionRegard.delegate = self; + NSMutableAttributedString *placeholder = [[NSMutableAttributedString alloc] initWithString:YMLocalizedString(@"YUMI_Forget_Pwd_View_Controller_4")]; + [placeholder addAttribute:NSForegroundColorAttributeName value:UIColor.whiteColor range:NSMakeRange(0, placeholder.length)]; + _mobileIntrojectionRegard.introjectionEssayUniverse.attributedPlaceholder = placeholder; + _mobileIntrojectionRegard.introjectionEssayUniverse.keyboardType = UIKeyboardTypeNumberPad; + } + return _mobileIntrojectionRegard; +} + +- (YUMISurmountIntrojectionRegard *)cryptogramIntrojectionRegard { + if (!_cryptogramIntrojectionRegard) { + _cryptogramIntrojectionRegard = [[YUMISurmountIntrojectionRegard alloc] init]; + _cryptogramIntrojectionRegard.smsCryptogramBtuton.hidden = NO; + NSMutableAttributedString *placeholder = [[NSMutableAttributedString alloc] initWithString:YMLocalizedString(@"YUMI_Forget_Pwd_View_Controller_5")]; + [placeholder addAttribute:NSForegroundColorAttributeName value:UIColor.whiteColor range:NSMakeRange(0, placeholder.length)]; + _cryptogramIntrojectionRegard.introjectionEssayUniverse.attributedPlaceholder = placeholder; + _cryptogramIntrojectionRegard.introjectionEssayUniverse.keyboardType = UIKeyboardTypeNumberPad; + _cryptogramIntrojectionRegard.delegate = self; + } + return _cryptogramIntrojectionRegard; +} + +- (YUMISurmountIntrojectionRegard *)pwordIntrojectionRegard { + if (!_pwordIntrojectionRegard) { + _pwordIntrojectionRegard = [[YUMISurmountIntrojectionRegard alloc] init]; + NSMutableAttributedString *placeholder = [[NSMutableAttributedString alloc] initWithString:@"请输入密码(6-16个字符)"]; + [placeholder addAttribute:NSForegroundColorAttributeName value:UIColor.whiteColor range:NSMakeRange(0, placeholder.length)]; + _pwordIntrojectionRegard.introjectionEssayUniverse.attributedPlaceholder = placeholder; + _pwordIntrojectionRegard.introjectionEssayUniverse.keyboardType = UIKeyboardTypeAlphabet; + _pwordIntrojectionRegard.introjectionEssayUniverse.secureTextEntry = YES; + } + return _pwordIntrojectionRegard; +} + +- (UIButton *)sureBtuton { + if (!_sureBtuton) { + _sureBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_sureBtuton setImage:[UIImage imageNamed:@"yumi_login_next"] forState:UIControlStateNormal]; + [_sureBtuton setImage:[UIImage imageNamed:@"yumi_login_next_disable"] forState:UIControlStateSelected]; + [_sureBtuton addTarget:self action:@selector(sureBtutonTicktacked) forControlEvents:UIControlEventTouchUpInside]; + } + return _sureBtuton; +} + +@end diff --git a/YuMi/Modules/YMLogin/View/NewLogin/YUMISurmountAraeRegardGovernancer.h b/YuMi/Modules/YMLogin/View/NewLogin/YUMISurmountAraeRegardGovernancer.h new file mode 100644 index 00000000..22dedb2c --- /dev/null +++ b/YuMi/Modules/YMLogin/View/NewLogin/YUMISurmountAraeRegardGovernancer.h @@ -0,0 +1,20 @@ +// +// YUMISurmountAraeRegardGovernancer.h +// YuMi +// +// Created by YuMi on 2023/6/25. +// + +#import "BaseRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN +@protocol FBCSurmountAraeRegardGovernancerRepresendtation + +-(void)concludeAreaCryptogramAccomplishment:(NSString *)code; + +@end +@interface YUMISurmountAraeRegardGovernancer : BaseRegardGovernancer +@property (nonatomic,weak) id delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMLogin/View/NewLogin/YUMISurmountAraeRegardGovernancer.m b/YuMi/Modules/YMLogin/View/NewLogin/YUMISurmountAraeRegardGovernancer.m new file mode 100644 index 00000000..c6b42021 --- /dev/null +++ b/YuMi/Modules/YMLogin/View/NewLogin/YUMISurmountAraeRegardGovernancer.m @@ -0,0 +1,150 @@ +// +// YUMISurmountAraeRegardGovernancer.m +// YuMi +// +// Created by YuMi on 2023/6/25. +// + +#import "YUMISurmountAraeRegardGovernancer.h" +#import "YUMISurmountAreaTabulationRegardElement.h" +#import "SurmountAreaMatrix.h" +#import "NSObject+MJExtension.h" +#import "YUMIMacroUitls.h" +#import "Api+Login.h" +#import +@interface YUMISurmountAraeRegardGovernancer () +@property (nonatomic,strong) UITableView *tableView; +@property (nonatomic,strong) NSMutableArray *listData; +@property (nonatomic,strong) NSMutableArray *championStatement; +@end + +@implementation YUMISurmountAraeRegardGovernancer + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initSubViews]; + [self initChildLyRestrictions]; + [Api acquireMobileAreaCryptogramSttowardsement:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + NSArray *list = [SurmountAreaMatrix mtowardsrixsAboutGarment:data.data]; + [self.championStatement removeAllObjects]; + [self.listData removeAllObjects]; + [self acquireProvincialPlistAboutSttowardsement:list]; + } + }]; +} +#pragma mark - SurmountVerifCodeCeremony + +-(void)acquireMobileAreaCryptogramSttowardsementAccomplishment:(NSArray *)list{ + [self brakeHUD]; + [self.championStatement removeAllObjects]; + [self.listData removeAllObjects]; + [self acquireProvincialPlistAboutSttowardsement:list]; +} +-(void)acquireMobileAreaCryptogramSttowardsementFlunk{ + [self brakeHUD]; + NSBundle *bundle = [NSBundle mainBundle]; + NSString *file = [bundle pathForResource:@"district" ofType:@"plist"]; + NSArray *dictArray = [NSArray arrayWithContentsOfFile:file]; + + NSArray *list = [SurmountAreaMatrix mtowardsrixsAboutGarment:dictArray]; + [self acquireProvincialPlistAboutSttowardsement:list]; +} +-(void)acquireProvincialPlistAboutSttowardsement:(NSArray *)list{ + + NSArray * letterList = @[@"A",@"B",@"C",@"D",@"E",@"F",@"G",@"H",@"I",@"J",@"K",@"L",@"M",@"N",@"O",@"P",@"Q",@"R",@"S",@"T",@"U",@"V",@"W",@"X",@"Y",@"Z"]; + NSMutableArray *otherList = [NSMutableArray array]; + for (NSString *letter in letterList) { + NSMutableArray *matrixStatement = [NSMutableArray array]; + for (SurmountAreaMatrix *model in list) { + NSString *fristLetter = [model.name substringWithRange:NSMakeRange(0, 1)]; + if([letter isEqualToString:fristLetter]){ + [matrixStatement addObject:model]; + }else{ + if(![letterList containsObject:fristLetter] && ![otherList containsObject:model]){ + [otherList addObject:model]; + } + } + } + if(matrixStatement.count > 0){ + + [self.championStatement addObject:letter]; + [self.listData addObject:matrixStatement]; + } + } + [self.listData addObject:otherList]; + [self.championStatement addObject:@"#"]; + [self.tableView reloadData]; +} +#pragma mark - UITableViewDelegate +- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{ + return self.listData.count; +} +- (nullable NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{ + + return self.championStatement[section]; +} +-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ + return [self.listData[section] count]; +} + +- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView { + return self.championStatement; +} + +-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ + YUMISurmountAreaTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMISurmountAreaTabulationRegardElement class]) forIndexPath:indexPath]; + if(indexPath.section < self.listData.count){ + NSArray *listMatrix = self.listData[indexPath.section]; + if(indexPath.row < listMatrix.count){ + cell.areaMatrix =listMatrix[indexPath.row]; + } + } + return cell; +} +-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ + SurmountAreaMatrix *codeModel = self.listData[indexPath.section][indexPath.row]; + if(self.delegate && [self.delegate respondsToSelector:@selector(concludeAreaCryptogramAccomplishment:)]){ + + [self.delegate concludeAreaCryptogramAccomplishment:codeModel.phoneAreaCode ?: codeModel.phone_area_code]; + } + [self.navigationController popViewControllerAnimated:YES]; +} +#pragma mark - Private Method +- (void)initSubViews { + self.title = YMLocalizedString(@"YUMI_Choose_Rrea_Code_VC_0"); + [self.view addSubview:self.tableView]; +} +- (void)initChildLyRestrictions { + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.equalTo(self.view); + }]; +} +#pragma mark - Getters And Setters +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.rowHeight = kGetScaleWidth(37); + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone;; + _tableView.backgroundColor = [UIColor whiteColor]; + [_tableView registerClass:[YUMISurmountAreaTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMISurmountAreaTabulationRegardElement class])]; + } + return _tableView; +} +- (NSMutableArray *)championStatement{ + if (!_championStatement){ + _championStatement = [NSMutableArray array]; + } + return _championStatement; +} +- (NSMutableArray *)listData{ + if (!_listData){ + _listData = [NSMutableArray array]; + } + return _listData; +} + + +@end diff --git a/YuMi/Modules/YMLogin/View/NewLogin/YUMISurmountAreaTabulationRegardElement.h b/YuMi/Modules/YMLogin/View/NewLogin/YUMISurmountAreaTabulationRegardElement.h new file mode 100644 index 00000000..b47959b9 --- /dev/null +++ b/YuMi/Modules/YMLogin/View/NewLogin/YUMISurmountAreaTabulationRegardElement.h @@ -0,0 +1,18 @@ +// +// YUMISurmountAreaTabulationRegardElement.h +// YuMi +// +// Created by YuMi on 2023/6/25. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class SurmountAreaMatrix; +@interface YUMISurmountAreaTabulationRegardElement : UITableViewCell + +@property (nonatomic,strong) SurmountAreaMatrix *areaMatrix; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMLogin/View/NewLogin/YUMISurmountAreaTabulationRegardElement.m b/YuMi/Modules/YMLogin/View/NewLogin/YUMISurmountAreaTabulationRegardElement.m new file mode 100644 index 00000000..df65c862 --- /dev/null +++ b/YuMi/Modules/YMLogin/View/NewLogin/YUMISurmountAreaTabulationRegardElement.m @@ -0,0 +1,72 @@ +// +// YUMISurmountAreaTabulationRegardElement.m +// YuMi +// +// Created by YuMi on 2023/6/25. +// + +#import "YUMISurmountAreaTabulationRegardElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "SurmountAreaMatrix.h" +@interface YUMISurmountAreaTabulationRegardElement() +@property (nonatomic,strong) UILabel *spectrumVeiw; +@property (nonatomic,strong) UILabel *cryptogramRegard; +@end +@implementation YUMISurmountAreaTabulationRegardElement +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor whiteColor]; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.spectrumVeiw]; + [self.contentView addSubview:self.cryptogramRegard]; +} +- (void)initChildLyRestrictions { + [self.spectrumVeiw mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(kGetScaleWidth(15)); + make.centerY.equalTo(self.contentView); + }]; + [self.cryptogramRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(-kGetScaleWidth(15)); + make.centerY.equalTo(self.contentView); + }]; +} +- (void)setAreaMatrix:(SurmountAreaMatrix *)areaMatrix{ + _areaMatrix = areaMatrix; + _spectrumVeiw.text = _areaMatrix.name; + if(_areaMatrix.phoneAreaCode == nil){ + _cryptogramRegard.text = _areaMatrix.phone_area_code; + return; + } + _cryptogramRegard.text = _areaMatrix.phoneAreaCode; +} +#pragma mark - 懒加载 + +- (UILabel *)spectrumVeiw { + if (!_spectrumVeiw) { + _spectrumVeiw = [[UILabel alloc] init]; + _spectrumVeiw.font = [UIFont systemFontOfSize:14]; + _spectrumVeiw.textColor = [DJDKMIMOMColor colorAboutHexBWSttr:@"#1F1A4E"]; + } + return _spectrumVeiw; +} + + +- (UILabel *)cryptogramRegard { + if (!_cryptogramRegard) { + _cryptogramRegard = [[UILabel alloc] init]; + _cryptogramRegard.font = [UIFont systemFontOfSize:14]; + _cryptogramRegard.textColor = [DJDKMIMOMColor colorAboutHexBWSttr:@"#1F1A4E"]; + } + return _cryptogramRegard; +} + +@end diff --git a/YuMi/Modules/YMLogin/View/NewLogin/YUMISurmountBaseRegardGovernancer.h b/YuMi/Modules/YMLogin/View/NewLogin/YUMISurmountBaseRegardGovernancer.h new file mode 100644 index 00000000..a958613b --- /dev/null +++ b/YuMi/Modules/YMLogin/View/NewLogin/YUMISurmountBaseRegardGovernancer.h @@ -0,0 +1,19 @@ +// +// YMLoginBaseViewController.h +// YUMI +// +// Created by XY on 2023/2/14. +// + +#import "MvpRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMISurmountBaseRegardGovernancer : MvpRegardGovernancer + +@property (nonatomic, assign) BOOL demandsImpression; +@property (nonatomic, assign) BOOL demandsEncourage; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMLogin/View/NewLogin/YUMISurmountBaseRegardGovernancer.m b/YuMi/Modules/YMLogin/View/NewLogin/YUMISurmountBaseRegardGovernancer.m new file mode 100644 index 00000000..09b7e0de --- /dev/null +++ b/YuMi/Modules/YMLogin/View/NewLogin/YUMISurmountBaseRegardGovernancer.m @@ -0,0 +1,117 @@ +// +// YMLoginBaseViewController.m +// YUMI +// +// Created by XY on 2023/2/14. +// + +#import "YUMISurmountBaseRegardGovernancer.h" +#import +#import +#import "YUMIMacroUitls.h" +#import "YUMIChamberPresentBrightnessAnatomiser.h" +@interface YUMISurmountBaseRegardGovernancer () + +@property (nonatomic, strong) VAPView *vapView; +@property (nonatomic, strong) UIToolbar *utensilObstacle; +@property (nonatomic, strong) UIButton *encourageBtuton; +@property (nonatomic, strong) YUMIChamberPresentBrightnessAnatomiser *vepporAnatomiser; +@end + +@implementation YUMISurmountBaseRegardGovernancer + +- (BOOL)isVeiledNevObstacle { + return YES; +} + +- (UIStatusBarStyle)preferredStatusBarStyle { + return UIStatusBarStyleLightContent; +} + + +- (void)viewDidLoad { + [super viewDidLoad]; + [self produceBaseUI]; + [self prohibitiportVAP]; +} + +- (void)viewWillAppear:(BOOL)animated { + [super viewWillAppear:animated]; + [self.vapView resumeHWDMP4]; +} + +- (void)viewDidDisappear:(BOOL)animated { + [super viewDidDisappear:animated]; + [self.vapView pauseHWDMP4]; +} + +- (void)produceBaseUI { + [self.view addSubview:self.vapView]; + if (self.demandsImpression) { + [self.view addSubview:self.utensilObstacle]; + } + if (self.demandsEncourage) { + [self.view addSubview:self.encourageBtuton]; + [self.encourageBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(kStatusBarHeight); + make.left.mas_equalTo(0); + make.width.mas_equalTo(44); + make.height.mas_equalTo(44); + }]; + } +} + +- (void)prohibitiportVAP { + NSString *filePath = [[NSBundle mainBundle] pathForResource:@"login_vapbg" ofType:@"mp4"]; + [self.vapView setMute:YES]; + [self.vapView playHWDMP4:filePath repeatCount:1 delegate:self]; +} + +- (void)encourageBtutonTicktacked { + [self.navigationController popViewControllerAnimated:YES]; +} + + +#pragma mark - 懒加载 + +- (VAPView *)vapView { + if (!_vapView) { + _vapView = [[VAPView alloc] initWithFrame:self.view.bounds]; + _vapView.contentMode = UIViewContentModeScaleAspectFill; + _vapView.hwd_enterBackgroundOP = HWDMP4EBOperationTypeDoNothing; + } + return _vapView; +} + +- (UIToolbar *)utensilObstacle { + if (!_utensilObstacle) { + _utensilObstacle = [[UIToolbar alloc] initWithFrame:self.view.bounds]; + _utensilObstacle.barStyle = UIBarStyleBlack; + _utensilObstacle.alpha = 0.92; + } + return _utensilObstacle; +} + +- (UIButton *)encourageBtuton { + if (!_encourageBtuton) { + _encourageBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_encourageBtuton setImage:[UIImage imageNamed:@"yumi_main_search_white_back"] forState:UIControlStateNormal]; + [_encourageBtuton addTarget:self action:@selector(encourageBtutonTicktacked) forControlEvents:UIControlEventTouchUpInside]; + } + return _encourageBtuton; +} + +- (void)dealloc { + [self.vapView stopHWDMP4]; + self.vapView = nil; + NSLog(@"%s",__func__); +} + +- (YUMIChamberPresentBrightnessAnatomiser *)vepporAnatomiser { + if (!_vepporAnatomiser) { + _vepporAnatomiser = [[YUMIChamberPresentBrightnessAnatomiser alloc] init]; + } + return _vepporAnatomiser; +} + +@end diff --git a/YuMi/Modules/YMLogin/View/NewLogin/YUMISurmountIntrojectionRegard.h b/YuMi/Modules/YMLogin/View/NewLogin/YUMISurmountIntrojectionRegard.h new file mode 100644 index 00000000..623c59ad --- /dev/null +++ b/YuMi/Modules/YMLogin/View/NewLogin/YUMISurmountIntrojectionRegard.h @@ -0,0 +1,32 @@ +// +// YMLoginInputView.h +// YUMI +// +// Created by XY on 2023/2/14. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol FBCSurmountIntrojectionRegardRepresendtation + +- (void)smsCryptogramPerformance; + +- (void)areaSttowardsementPerformance; + +@end + +@interface YUMISurmountIntrojectionRegard : UIView +@property (nonatomic,strong) UIStackView *areaHierarchyRegard; +@property (nonatomic, strong) UIButton *areaCryptogramBtuton; +@property (nonatomic, strong) UITextField *introjectionEssayUniverse; +@property (nonatomic, strong) UIButton *smsCryptogramBtuton; + +@property (nonatomic, weak) id delegate; + +- (void)fireIntrtowardsemper; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMLogin/View/NewLogin/YUMISurmountIntrojectionRegard.m b/YuMi/Modules/YMLogin/View/NewLogin/YUMISurmountIntrojectionRegard.m new file mode 100644 index 00000000..6f2778c8 --- /dev/null +++ b/YuMi/Modules/YMLogin/View/NewLogin/YUMISurmountIntrojectionRegard.m @@ -0,0 +1,160 @@ +// +// YMLoginInputView.m +// YUMI +// +// Created by XY on 2023/2/14. +// + +#import "YUMISurmountIntrojectionRegard.h" +#import "DJDKMIMOMColor.h" +#import +#import + +@interface YUMISurmountIntrojectionRegard() + +@property (nonatomic, strong) dispatch_source_t timer; + +@property (nonatomic,strong) UIImageView *areaIndicateRegard; +@end + +@implementation YUMISurmountIntrojectionRegard + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + self.backgroundColor = UIColor.clearColor; + self.layer.cornerRadius = 66.0/2.0; + self.layer.borderWidth = 1; + self.layer.borderColor = [UIColor.whiteColor colorWithAlphaComponent:0.2].CGColor; + + [self produceUI]; + } + return self; +} + +- (void)produceUI { + UIStackView *stackView = [[UIStackView alloc] init]; + stackView.axis = UILayoutConstraintAxisHorizontal; + stackView.distribution = UIStackViewDistributionFill; + stackView.alignment = UIStackViewAlignmentCenter; + stackView.spacing = 5; + [self addSubview:stackView]; + + + UIImageView * areaIndicateRegard = [[UIImageView alloc] init]; + areaIndicateRegard.userInteractionEnabled = YES; + areaIndicateRegard.image = [UIImage imageNamed:@"yumi_login_area_arrow"]; + areaIndicateRegard.userInteractionEnabled = NO; + + + UIButton *areaCryptogramBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [areaCryptogramBtuton setTitle:@"+852" forState:UIControlStateNormal]; + [areaCryptogramBtuton setTitleColor:UIColor.whiteColor forState:UIControlStateNormal]; + areaCryptogramBtuton.titleLabel.font = [UIFont systemFontOfSize:16 weight:UIFontWeightRegular]; + _areaCryptogramBtuton = areaCryptogramBtuton; + areaCryptogramBtuton.userInteractionEnabled = NO; + + UIStackView *areaHierarchyRegard = [[UIStackView alloc] init]; + areaHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + areaHierarchyRegard.distribution = UIStackViewDistributionFill; + areaHierarchyRegard.alignment = UIStackViewAlignmentCenter; + areaHierarchyRegard.spacing = 2; + + + UIButton *areaBtn = [UIButton buttonWithType:UIButtonTypeCustom]; + [areaBtn addTarget:self action:@selector(areaConcludeTicktacked) forControlEvents:UIControlEventTouchUpInside]; + [areaHierarchyRegard addSubview:areaBtn]; + + [areaHierarchyRegard addArrangedSubview:areaCryptogramBtuton]; + [areaHierarchyRegard addArrangedSubview:areaIndicateRegard]; + + [stackView addArrangedSubview:areaHierarchyRegard]; + self.areaHierarchyRegard = areaHierarchyRegard; + + + + UITextField *introjectionEssayUniverse = [[UITextField alloc] init]; + introjectionEssayUniverse.textColor = UIColor.whiteColor; + introjectionEssayUniverse.font = [UIFont systemFontOfSize:18 weight:UIFontWeightRegular]; + [stackView addArrangedSubview:introjectionEssayUniverse]; + self.introjectionEssayUniverse = introjectionEssayUniverse; + + UIButton *smsCryptogramBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [smsCryptogramBtuton setTitle:YMLocalizedString(@"XPLoginInputView0") forState:UIControlStateNormal]; + [smsCryptogramBtuton setTitleColor:UIColorFromRGB(0xFB486A) forState:UIControlStateNormal]; + smsCryptogramBtuton.titleLabel.font = [UIFont systemFontOfSize:14 weight:UIFontWeightRegular]; + [smsCryptogramBtuton addTarget:self action:@selector(smsCryptogramBtutonTicktacked) forControlEvents:UIControlEventTouchUpInside]; + [stackView addArrangedSubview:smsCryptogramBtuton]; + self.smsCryptogramBtuton = smsCryptogramBtuton; + + [stackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(15); + make.right.mas_equalTo(-15); + make.top.bottom.mas_equalTo(0); + }]; + + + [areaIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(18); + make.height.mas_equalTo(18); + }]; + + [areaCryptogramBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(50); + make.height.mas_equalTo(stackView); + }]; + [introjectionEssayUniverse mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(stackView); + }]; + [smsCryptogramBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(80); + make.height.mas_equalTo(stackView); + }]; + + [areaBtn mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(areaHierarchyRegard); + }]; + + + self.areaHierarchyRegard.hidden = YES; + self.smsCryptogramBtuton.hidden = YES; + +} + + +- (void)smsCryptogramBtutonTicktacked { + if (self.delegate && [self.delegate respondsToSelector:@selector(smsCryptogramPerformance)]) { + [self.delegate smsCryptogramPerformance]; + } +} + +- (void)areaConcludeTicktacked { + if (self.delegate && [self.delegate respondsToSelector:@selector(areaSttowardsementPerformance)]) { + [self.delegate areaSttowardsementPerformance]; + } +} + + +- (void)fireIntrtowardsemper { + __block NSInteger count = 60; + dispatch_queue_t queue = dispatch_get_main_queue(); + dispatch_source_t timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, queue); + dispatch_source_set_timer(timer, DISPATCH_TIME_NOW, 1.0 * NSEC_PER_SEC, 0 * NSEC_PER_SEC); + @weakify(self); + dispatch_source_set_event_handler(timer, ^{ + @strongify(self); + count--; + if (count < 0) { + [self.smsCryptogramBtuton setTitle:YMLocalizedString(@"XPLoginInputView1") forState:UIControlStateNormal]; + self.smsCryptogramBtuton.userInteractionEnabled = YES; + dispatch_cancel(self.timer); + }else{ + [self.smsCryptogramBtuton setTitle:[NSString stringWithFormat:@"%lds",count] forState:UIControlStateNormal]; + self.smsCryptogramBtuton.userInteractionEnabled = NO; + } + }); + dispatch_resume(timer); + self.timer = timer; +} + +@end diff --git a/YuMi/Modules/YMLogin/View/NewLogin/YUMISurmountMobileRegardGovernancer.h b/YuMi/Modules/YMLogin/View/NewLogin/YUMISurmountMobileRegardGovernancer.h new file mode 100644 index 00000000..7af7da2d --- /dev/null +++ b/YuMi/Modules/YMLogin/View/NewLogin/YUMISurmountMobileRegardGovernancer.h @@ -0,0 +1,16 @@ +// +// YMLoginPhoneViewController.h +// YUMI +// +// Created by XY on 2023/2/13. +// + +#import "YUMISurmountBaseRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMISurmountMobileRegardGovernancer : YUMISurmountBaseRegardGovernancer + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMLogin/View/NewLogin/YUMISurmountMobileRegardGovernancer.m b/YuMi/Modules/YMLogin/View/NewLogin/YUMISurmountMobileRegardGovernancer.m new file mode 100644 index 00000000..88ad0e36 --- /dev/null +++ b/YuMi/Modules/YMLogin/View/NewLogin/YUMISurmountMobileRegardGovernancer.m @@ -0,0 +1,221 @@ +// +// YMLoginPhoneViewController.m +// YUMI +// +// Created by XY on 2023/2/13. +// + +#import "YUMISurmountMobileRegardGovernancer.h" +#import +#import "YUMIMacroUitls.h" +#import + +#import "YUMISurmountIntrojectionRegard.h" + +#import "YUMISurmountPwordRegardGovernancer.h" +#import "YUMISurmountAraeRegardGovernancer.h" +#import "SurmountValidationCodeExternalize.h" +#import "SurmountVerifCodeCeremony.h" + +@interface YUMISurmountMobileRegardGovernancer () + +@property (nonatomic, strong) UILabel *titleLabel; +@property (nonatomic, strong) UILabel *sequencpSequencignation; +@property (nonatomic, strong) YUMISurmountIntrojectionRegard *mobileIntrojectionRegard; +@property (nonatomic, strong) YUMISurmountIntrojectionRegard *cryptogramIntrojectionRegard; +@property (nonatomic, strong) UIButton *surmountBtuton; +@property (nonatomic, strong) UIButton *pwordSurmountBtuton; +@property (nonatomic,copy) NSString *phoneAreaCode; +@end + +@implementation YUMISurmountMobileRegardGovernancer + +- (SurmountValidationCodeExternalize *)producePresimport { + return [[SurmountValidationCodeExternalize alloc] init]; +} + + +- (void)viewDidLoad { + self.demandsImpression = YES; + self.demandsEncourage = YES; + self.phoneAreaCode = @"852"; + [super viewDidLoad]; + [self produceUI]; + [self racBind]; +} + +- (void)produceUI { + + [self.view addSubview:self.titleLabel]; + [self.view addSubview:self.sequencpSequencignation]; + [self.view addSubview:self.mobileIntrojectionRegard]; + [self.view addSubview:self.cryptogramIntrojectionRegard]; + [self.view addSubview:self.surmountBtuton]; + [self.view addSubview:self.pwordSurmountBtuton]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.view); + make.top.mas_equalTo(146.0/812.0*KScreenHeight); + }]; + [self.sequencpSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.view); + make.top.mas_equalTo(self.titleLabel.mas_bottom).offset(4); + }]; + [self.mobileIntrojectionRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(38); + make.right.mas_equalTo(-38); + make.top.mas_equalTo(self.sequencpSequencignation.mas_bottom).offset(23); + make.height.mas_equalTo(66); + }]; + [self.cryptogramIntrojectionRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.mobileIntrojectionRegard); + make.right.mas_equalTo(self.mobileIntrojectionRegard); + make.top.mas_equalTo(self.mobileIntrojectionRegard.mas_bottom).offset(16); + make.height.mas_equalTo(self.mobileIntrojectionRegard); + }]; + [self.surmountBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.cryptogramIntrojectionRegard.mas_bottom).offset(51); + make.centerX.mas_equalTo(self.view); + make.width.height.mas_equalTo(96); + }]; + [self.pwordSurmountBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.surmountBtuton.mas_bottom).offset(24); + make.centerX.mas_equalTo(self.view); + }]; + +} + +- (void)racBind { + RAC(self.surmountBtuton, enabled) = [[RACSignal combineLatest:@[self.mobileIntrojectionRegard.introjectionEssayUniverse.rac_textSignal, self.cryptogramIntrojectionRegard.introjectionEssayUniverse.rac_textSignal] reduce:^id _Nonnull(NSString *phone, NSString* smsCode){ + return @((phone.length == 11) && smsCode.length >= 5); + }] takeUntil:self.rac_willDeallocSignal]; +} + + +- (void)surmountBtutonTicktacked { + NSString *phone = self.mobileIntrojectionRegard.introjectionEssayUniverse.text; + NSString *smsCode = self.cryptogramIntrojectionRegard.introjectionEssayUniverse.text; + NSString * phoneStr = [NSString stringWithFormat:@"%@%@",self.phoneAreaCode, phone]; + [self.presimport surmountAboutMobile:phoneStr code:smsCode phoneAreaCode:self.phoneAreaCode]; +} + +- (void)pwdSurmountBtutonTicktacked { + YUMISurmountPwordRegardGovernancer *pwdVC = [[YUMISurmountPwordRegardGovernancer alloc] init]; + [self.navigationController pushViewController:pwdVC animated:YES]; +} + +#pragma mark - FBCSurmountIntrojectionRegardRepresendtation + +- (void)smsCryptogramPerformance { + NSString *phone = self.mobileIntrojectionRegard.introjectionEssayUniverse.text; + if (phone.length != 11 ) { + [self EvidenceMistakeToast:YMLocalizedString(@"XPLoginPhoneViewController0")]; + return; + } + [self.presimport mobileSmsCryptogram:phone type:GetSmsGenre_Regist phoneAreaCode:self.phoneAreaCode]; +} + +- (void)areaSttowardsementPerformance { + YUMISurmountAraeRegardGovernancer *codeVC = [YUMISurmountAraeRegardGovernancer new]; + codeVC.delegate = self; + [self.navigationController pushViewController:codeVC animated:YES]; +} + +- (void)concludeAreaCryptogramAccomplishment:(NSString *)code { + if (code.length > 0) { + self.phoneAreaCode = code; + [self.mobileIntrojectionRegard.areaCryptogramBtuton setTitle:[NSString stringWithFormat:@"+%@", code] forState:UIControlStateNormal]; + } +} + +#pragma mark - SurmountVerifCodeCeremony +- (void)surmountAccomplishment { + [self EvidenceAccomplishmentToast:YMLocalizedString(@"XPLoginPhoneViewController1")]; + UIViewController *vc = self.presentingViewController; + while (vc.presentingViewController) { + vc = vc.presentingViewController; + } + [vc dismissViewControllerAnimated:YES completion:nil]; + [self.navigationController popToRootViewControllerAnimated:NO]; +} + + + +#pragma mark - SurmountCeremony +- (void)mobileSmsCryptogramAccomplishment { + [self EvidenceAccomplishmentToast:YMLocalizedString(@"XPLoginPhoneViewController2")]; + [self.cryptogramIntrojectionRegard fireIntrtowardsemper]; +} + +#pragma mark - 懒加载 + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.text = YMLocalizedString(@"XPLoginPhoneViewController3"); + _titleLabel.font = [UIFont systemFontOfSize:24 weight:UIFontWeightMedium]; + _titleLabel.textColor = UIColor.whiteColor; + } + return _titleLabel; +} + +- (UILabel *)sequencpSequencignation { + if (!_sequencpSequencignation) { + _sequencpSequencignation = [[UILabel alloc] init]; + _sequencpSequencignation.text = YMLocalizedString(@"XPLoginPhoneViewController4"); + _sequencpSequencignation.font = [UIFont systemFontOfSize:12 weight:UIFontWeightRegular]; + _sequencpSequencignation.textColor = [UIColor.whiteColor colorWithAlphaComponent:0.6]; + } + return _sequencpSequencignation; +} + +- (YUMISurmountIntrojectionRegard *)mobileIntrojectionRegard { + if (!_mobileIntrojectionRegard) { + _mobileIntrojectionRegard = [[YUMISurmountIntrojectionRegard alloc] init]; + _mobileIntrojectionRegard.areaHierarchyRegard.hidden = NO; + _mobileIntrojectionRegard.delegate = self; + NSMutableAttributedString *placeholder = [[NSMutableAttributedString alloc] initWithString:YMLocalizedString(@"XPLoginPhoneViewController5")]; + [placeholder addAttribute:NSForegroundColorAttributeName value:UIColor.whiteColor range:NSMakeRange(0, placeholder.length)]; + _mobileIntrojectionRegard.introjectionEssayUniverse.attributedPlaceholder = placeholder; + _mobileIntrojectionRegard.introjectionEssayUniverse.keyboardType = UIKeyboardTypeNumberPad; + } + return _mobileIntrojectionRegard; +} + +- (YUMISurmountIntrojectionRegard *)cryptogramIntrojectionRegard { + if (!_cryptogramIntrojectionRegard) { + _cryptogramIntrojectionRegard = [[YUMISurmountIntrojectionRegard alloc] init]; + _cryptogramIntrojectionRegard.smsCryptogramBtuton.hidden = NO; + NSMutableAttributedString *placeholder = [[NSMutableAttributedString alloc] initWithString:YMLocalizedString(@"XPLoginPhoneViewController6")]; + [placeholder addAttribute:NSForegroundColorAttributeName value:UIColor.whiteColor range:NSMakeRange(0, placeholder.length)]; + _cryptogramIntrojectionRegard.introjectionEssayUniverse.attributedPlaceholder = placeholder; + _cryptogramIntrojectionRegard.introjectionEssayUniverse.keyboardType = UIKeyboardTypeNumberPad; + _cryptogramIntrojectionRegard.delegate = self; + } + return _cryptogramIntrojectionRegard; +} + +- (UIButton *)surmountBtuton { + if (!_surmountBtuton) { + _surmountBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_surmountBtuton setImage:[UIImage imageNamed:@"yumi_login_next"] forState:UIControlStateNormal]; + [_surmountBtuton setImage:[UIImage imageNamed:@"yumi_login_next_disable"] forState:UIControlStateDisabled]; + [_surmountBtuton addTarget:self action:@selector(surmountBtutonTicktacked) forControlEvents:UIControlEventTouchUpInside]; + } + return _surmountBtuton; +} + +- (UIButton *)pwordSurmountBtuton { + if (!_pwordSurmountBtuton) { + _pwordSurmountBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + NSMutableAttributedString *title = [[NSMutableAttributedString alloc] initWithString:YMLocalizedString(@"XPLoginPhoneViewController7")]; + [title addAttribute:NSUnderlineStyleAttributeName value:[NSNumber numberWithInteger:NSUnderlineStyleSingle] range:NSMakeRange(0, title.length)]; + [_pwordSurmountBtuton setAttributedTitle:title forState:UIControlStateNormal]; + [_pwordSurmountBtuton setTitleColor:UIColor.whiteColor forState:UIControlStateNormal]; + _pwordSurmountBtuton.titleLabel.font = [UIFont systemFontOfSize:18 weight:UIFontWeightRegular]; + [_pwordSurmountBtuton addTarget:self action:@selector(pwdSurmountBtutonTicktacked) forControlEvents:UIControlEventTouchUpInside]; + } + return _pwordSurmountBtuton; +} + +@end diff --git a/YuMi/Modules/YMLogin/View/NewLogin/YUMISurmountPwordRegardGovernancer.h b/YuMi/Modules/YMLogin/View/NewLogin/YUMISurmountPwordRegardGovernancer.h new file mode 100644 index 00000000..ad22fa46 --- /dev/null +++ b/YuMi/Modules/YMLogin/View/NewLogin/YUMISurmountPwordRegardGovernancer.h @@ -0,0 +1,16 @@ +// +// YMLoginPwdViewController.h +// YUMI +// +// Created by XY on 2023/2/14. +// + +#import "YUMISurmountBaseRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMISurmountPwordRegardGovernancer : YUMISurmountBaseRegardGovernancer + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMLogin/View/NewLogin/YUMISurmountPwordRegardGovernancer.m b/YuMi/Modules/YMLogin/View/NewLogin/YUMISurmountPwordRegardGovernancer.m new file mode 100644 index 00000000..ce2c8880 --- /dev/null +++ b/YuMi/Modules/YMLogin/View/NewLogin/YUMISurmountPwordRegardGovernancer.m @@ -0,0 +1,187 @@ +// +// YMLoginPwdViewController.m +// YUMI +// +// Created by XY on 2023/2/14. +// + +#import "YUMISurmountPwordRegardGovernancer.h" +#import +#import "YUMIMacroUitls.h" +#import + +#import "YUMISurmountIntrojectionRegard.h" +#import "YUMISurmountPwordRegardGovernancer.h" +#import "YUMIForgetPwordRegardGovernancer.h" + +#import "SurmountCiphercodeExternalize.h" +#import "SurmountCiphercodeCeremony.h" + +@interface YUMISurmountPwordRegardGovernancer () + +@property (nonatomic, strong) UILabel *titleLabel; +@property (nonatomic, strong) YUMISurmountIntrojectionRegard *mobileIntrojectionRegard; +@property (nonatomic, strong) YUMISurmountIntrojectionRegard *pwordIntrojectionRegard; +@property (nonatomic, strong) UIButton *surmountBtuton; +@property (nonatomic, strong) UIButton *mobileSurmountBtuton; +@property (nonatomic, strong) UIButton *forgetBtuton; + +@end + +@implementation YUMISurmountPwordRegardGovernancer + +- (SurmountCiphercodeExternalize *)producePresimport { + return [[SurmountCiphercodeExternalize alloc] init]; +} + +- (void)viewDidLoad { + self.demandsImpression = YES; + self.demandsEncourage = YES; + [super viewDidLoad]; + [self produceUI]; + [self racBind]; +} + +- (void)produceUI { + [self.view addSubview:self.titleLabel]; + [self.view addSubview:self.mobileIntrojectionRegard]; + [self.view addSubview:self.pwordIntrojectionRegard]; + [self.view addSubview:self.surmountBtuton]; + [self.view addSubview:self.mobileSurmountBtuton]; + [self.view addSubview:self.forgetBtuton]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.view); + make.top.mas_equalTo(146.0/812.0*KScreenHeight); + }]; + [self.mobileIntrojectionRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(38); + make.right.mas_equalTo(-38); + make.top.mas_equalTo(self.titleLabel.mas_bottom).offset(41); + make.height.mas_equalTo(66); + }]; + [self.pwordIntrojectionRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.mobileIntrojectionRegard); + make.right.mas_equalTo(self.mobileIntrojectionRegard); + make.top.mas_equalTo(self.mobileIntrojectionRegard.mas_bottom).offset(16); + make.height.mas_equalTo(self.mobileIntrojectionRegard); + }]; + [self.surmountBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.pwordIntrojectionRegard.mas_bottom).offset(51); + make.centerX.mas_equalTo(self.view); + make.width.height.mas_equalTo(96); + }]; + [self.mobileSurmountBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.surmountBtuton.mas_bottom).offset(24); + make.centerX.mas_equalTo(self.view); + }]; + [self.forgetBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self.pwordIntrojectionRegard); + make.top.mas_equalTo(self.pwordIntrojectionRegard.mas_bottom).offset(10); + }]; + +} + +- (void)racBind { + RAC(self.surmountBtuton, enabled) = [[RACSignal combineLatest:@[self.mobileIntrojectionRegard.introjectionEssayUniverse.rac_textSignal, self.pwordIntrojectionRegard.introjectionEssayUniverse.rac_textSignal] reduce:^id _Nonnull(NSString *phone, NSString* password){ + return @((phone.length ==11 || phone.length == 7) && password.length >= 6); + }] takeUntil:self.rac_willDeallocSignal]; +} + +- (void)surmountBtutonTicktacked { + NSString *phone = self.mobileIntrojectionRegard.introjectionEssayUniverse.text; + NSString *password = self.pwordIntrojectionRegard.introjectionEssayUniverse.text; + [self.presimport surmountAboutMobile:phone password:password]; +} + +- (void)mobileSurmountBtutonTicktacked { + [self.navigationController popViewControllerAnimated:YES]; +} + +- (void)SpongeoutBtutonTicktacked { + YUMIForgetPwordRegardGovernancer *forgetVC = [[YUMIForgetPwordRegardGovernancer alloc] init]; + [self.navigationController pushViewController:forgetVC animated:YES]; +} + +#pragma mark - SurmountCiphercodeCeremony +- (void)mobileGrantedCiphercryptogramSurmountAccomplishment { + [self EvidenceAccomplishmentToast:YMLocalizedString(@"XPLoginPwdViewController0")]; + UIViewController *vc = self.presentingViewController; + while (vc.presentingViewController) { + vc = vc.presentingViewController; + } + [vc dismissViewControllerAnimated:YES completion:nil]; + [self.navigationController popToRootViewControllerAnimated:NO]; +} + +#pragma mark - 懒加载 + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.text = YMLocalizedString(@"XPLoginPwdViewController1"); + _titleLabel.font = [UIFont systemFontOfSize:24 weight:UIFontWeightMedium]; + _titleLabel.textColor = UIColor.whiteColor; + } + return _titleLabel; +} + +- (YUMISurmountIntrojectionRegard *)mobileIntrojectionRegard { + if (!_mobileIntrojectionRegard) { + _mobileIntrojectionRegard = [[YUMISurmountIntrojectionRegard alloc] init]; + _mobileIntrojectionRegard.areaHierarchyRegard.hidden = YES; + NSMutableAttributedString *placeholder = [[NSMutableAttributedString alloc] initWithString:YMLocalizedString(@"XPLoginPwdViewController2")]; + [placeholder addAttribute:NSForegroundColorAttributeName value:UIColor.whiteColor range:NSMakeRange(0, placeholder.length)]; + _mobileIntrojectionRegard.introjectionEssayUniverse.attributedPlaceholder = placeholder; + _mobileIntrojectionRegard.introjectionEssayUniverse.keyboardType = UIKeyboardTypeNumberPad; + } + return _mobileIntrojectionRegard; +} + +- (YUMISurmountIntrojectionRegard *)pwordIntrojectionRegard { + if (!_pwordIntrojectionRegard) { + _pwordIntrojectionRegard = [[YUMISurmountIntrojectionRegard alloc] init]; + NSMutableAttributedString *placeholder = [[NSMutableAttributedString alloc] initWithString:YMLocalizedString(@"XPLoginPwdViewController3")]; + [placeholder addAttribute:NSForegroundColorAttributeName value:UIColor.whiteColor range:NSMakeRange(0, placeholder.length)]; + _pwordIntrojectionRegard.introjectionEssayUniverse.attributedPlaceholder = placeholder; + _pwordIntrojectionRegard.introjectionEssayUniverse.keyboardType = UIKeyboardTypeAlphabet; + _pwordIntrojectionRegard.introjectionEssayUniverse.secureTextEntry = YES; + } + return _pwordIntrojectionRegard; +} + +- (UIButton *)surmountBtuton { + if (!_surmountBtuton) { + _surmountBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_surmountBtuton setImage:[UIImage imageNamed:@"yumi_login_next"] forState:UIControlStateNormal]; + [_surmountBtuton setImage:[UIImage imageNamed:@"yumi_login_next_disable"] forState:UIControlStateDisabled]; + [_surmountBtuton addTarget:self action:@selector(surmountBtutonTicktacked) forControlEvents:UIControlEventTouchUpInside]; + } + return _surmountBtuton; +} + +- (UIButton *)mobileSurmountBtuton { + if (!_mobileSurmountBtuton) { + _mobileSurmountBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + NSMutableAttributedString *title = [[NSMutableAttributedString alloc] initWithString:YMLocalizedString(@"XPLoginPwdViewController4")]; + [title addAttribute:NSUnderlineStyleAttributeName value:[NSNumber numberWithInteger:NSUnderlineStyleSingle] range:NSMakeRange(0, title.length)]; + [_mobileSurmountBtuton setAttributedTitle:title forState:UIControlStateNormal]; + [_mobileSurmountBtuton setTitleColor:UIColor.whiteColor forState:UIControlStateNormal]; + _mobileSurmountBtuton.titleLabel.font = [UIFont systemFontOfSize:18 weight:UIFontWeightRegular]; + [_mobileSurmountBtuton addTarget:self action:@selector(mobileSurmountBtutonTicktacked) forControlEvents:UIControlEventTouchUpInside]; + } + return _mobileSurmountBtuton; +} + +- (UIButton *)forgetBtuton { + if (!_forgetBtuton) { + _forgetBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_forgetBtuton setTitle:@"忘记密码?" forState:UIControlStateNormal]; + [_forgetBtuton setTitleColor:UIColor.whiteColor forState:UIControlStateNormal]; + _forgetBtuton.titleLabel.font = [UIFont systemFontOfSize:14 weight:UIFontWeightRegular]; + [_forgetBtuton addTarget:self action:@selector(SpongeoutBtutonTicktacked) forControlEvents:UIControlEventTouchUpInside]; + } + return _forgetBtuton; +} + +@end diff --git a/YuMi/Modules/YMLogin/View/NewLogin/YUMISurmountRegardGovernancer.h b/YuMi/Modules/YMLogin/View/NewLogin/YUMISurmountRegardGovernancer.h new file mode 100644 index 00000000..0fec60cb --- /dev/null +++ b/YuMi/Modules/YMLogin/View/NewLogin/YUMISurmountRegardGovernancer.h @@ -0,0 +1,16 @@ +// +// YMLoginViewController.h +// YUMI +// +// Created by XY on 2023/2/13. +// + +#import "YUMISurmountBaseRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMISurmountRegardGovernancer : YUMISurmountBaseRegardGovernancer + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMLogin/View/NewLogin/YUMISurmountRegardGovernancer.m b/YuMi/Modules/YMLogin/View/NewLogin/YUMISurmountRegardGovernancer.m new file mode 100644 index 00000000..c548ced4 --- /dev/null +++ b/YuMi/Modules/YMLogin/View/NewLogin/YUMISurmountRegardGovernancer.m @@ -0,0 +1,370 @@ +// +// YMLoginViewController.m +// YUMI +// +// Created by XY on 2023/2/13. +// + +#import "YUMISurmountRegardGovernancer.h" +#import +#import +#import "DJDKMIMOMColor.h" +#import "UIImage+Utils.h" +#import "YUMIMacroUitls.h" +#import +#import "YUMIHtmlUrl.h" +#import "UIButton+EnlargeTouchArea.h" +#import +#import "YUMIConstant.h" +#import "GCDHelper.h" +#import "MKJPopup.h" +#import "StatsticsticsServingFacilitater.h" +#import "XNDJTBWGLoadingTool.h" +#import "YUMITissueRegardGovernancer.h" +#import "YUMISurmountMobileRegardGovernancer.h" +#import "ConsumerPrivacyRegard.h" +#import "AESUtils.h" +#import "SurmountExternalizer.h" +#import "SurmountCeremony.h" + +UIKIT_EXTERN NSString * const kYouMiNumberCountKey; +NSString * const HadAgreePrivacy = @"HadAgreePrivacy"; + +@interface YUMISurmountRegardGovernancer () + +@property (nonatomic, strong) UIButton *quickSurmountBtuton; +@property (nonatomic, strong) UIButton *agreeBtuton; +@property (nonatomic, strong) YYLabel *protocolSequencignation; +@property (nonatomic, strong) UILabel *separateSequencignation; +@property (nonatomic, strong) UIImageView *attestationIntumesceRegard; +@property (nonatomic, strong) UILabel *attestationIntumesceSequencignation; +@property (nonatomic, strong) UIStackView *stackView; +@property (nonatomic, strong) UIButton *fbBtutonRegard; +@property (nonatomic, strong) UIButton *googleBtutonRegard; +@property (nonatomic, strong) UIButton *burlywoodBtutonRegard; +#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 130000 +@property (nonatomic, strong) ASAuthorizationAppleIDButton *appleBtuton; +#endif +@property (nonatomic,strong) GIDConfiguration *configuration; +@end + +@implementation YUMISurmountRegardGovernancer + +- (SurmountExternalizer *)producePresimport { + return [[SurmountExternalizer alloc] init]; +} + +- (void)viewDidLoad { + self.demandsImpression = NO; + self.demandsEncourage = NO; + [super viewDidLoad]; + [self produceUI]; + +} + +- (void)viewWillAppear:(BOOL)animated { + [super viewWillAppear:animated]; + [self setDispositionPrivacyPrecautiousRegard]; +} + +- (void)produceUI { + [self.view addSubview:self.quickSurmountBtuton]; + [self.view addSubview:self.protocolSequencignation]; + [self.view addSubview:self.agreeBtuton]; + [self.view addSubview:self.separateSequencignation]; + [self.view addSubview:self.stackView]; + [self.view addSubview:self.attestationIntumesceRegard]; + [self.attestationIntumesceRegard addSubview:self.attestationIntumesceSequencignation]; + + [self.stackView addArrangedSubview:self.fbBtutonRegard]; + [self.stackView addArrangedSubview:self.googleBtutonRegard]; + [self.stackView addArrangedSubview:self.burlywoodBtutonRegard]; + [self.stackView addArrangedSubview:self.appleBtuton]; + + [self.quickSurmountBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(45); + make.right.mas_equalTo(-45); + make.height.mas_equalTo(66); + make.centerY.mas_equalTo(self.view); + }]; + [self.protocolSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.quickSurmountBtuton.mas_bottom).offset(56); + make.centerX.mas_equalTo(self.view).offset(10); + make.right.mas_lessThanOrEqualTo(-10); + make.height.mas_greaterThanOrEqualTo(22); + }]; + [self.agreeBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self.protocolSequencignation.mas_left).offset(0); + make.top.mas_equalTo(self.protocolSequencignation.mas_top); + make.width.height.mas_equalTo(22); + }]; + [self.separateSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.view); + make.bottom.mas_equalTo(-169); + }]; + [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.separateSequencignation.mas_bottom).offset(27); + make.centerX.mas_equalTo(self.view); + make.height.mas_equalTo(40); + }]; + [self.attestationIntumesceRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.agreeBtuton).mas_offset((-16)); + make.top.mas_equalTo(self.agreeBtuton.mas_bottom); + make.width.mas_equalTo(235); + make.height.mas_equalTo(29); + }]; + [self.attestationIntumesceSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(8); + make.bottom.mas_equalTo(self.attestationIntumesceRegard).mas_offset(-6); + }]; + + [self.fbBtutonRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(40); + }]; + +} + +- (void)setDispositionPrivacyPrecautiousRegard { + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + NSString *isExhibit = [defaults objectForKey:kYouMiNumberCountKey]; + + if (!isExhibit && isExhibit.length <= 0) { + ConsumerPrivacyRegard * alertView = [[ConsumerPrivacyRegard alloc] init]; + alertView.controller = self; + MKJPopupServing * config = [[MKJPopupServing alloc] init]; + config.shouldDismissOnBackgroundTouch = NO; + config.contentView = alertView; + [MKJPopup popupAboutDisposition:config]; + }; +} + +- (void)surmountDidTicktack:(UIButton *)sender { + if (self.agreeBtuton.selected) { + ThirdLoginGenre type = sender.tag - 1000; + if(type == ThirdLoginGenre_Gmail){ + [self.presimport tertiusSurmountByGoogleAboutPresentingRegardGovernancer:self configuration:self.configuration]; + return; + } + [self.presimport tertiusSurmountAboutGenre:type]; + + } else { + [self EvidenceMistakeToast:YMLocalizedString(@"PKLoginViewController1")]; + } + +} + +- (void)agreeBtutonTicktacked { + self.agreeBtuton.selected = !self.agreeBtuton.selected; + if (self.agreeBtuton.isSelected) { + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + [defaults setObject:@"hadAgree" forKey:HadAgreePrivacy]; + [defaults synchronize]; + [UIView animateWithDuration:0.5 animations:^{ + self.attestationIntumesceRegard.alpha = 0.0; + }]; + } else { + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + NSString * hadAgree = [defaults stringForKey:HadAgreePrivacy]; + if (hadAgree.length > 0) { + [defaults removeObjectForKey:HadAgreePrivacy]; + } + } +} + +- (void)mobileSurmountBtutonTicktacked { + if (self.agreeBtuton.isSelected) { + YUMISurmountMobileRegardGovernancer *phoneVC = [[YUMISurmountMobileRegardGovernancer alloc] init]; + [self.navigationController pushViewController:phoneVC animated:YES]; + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventLoginPhoneClick]; + } else { + [UIView animateWithDuration:0.5 animations:^{ + self.attestationIntumesceRegard.alpha = 1.0; + }]; + } +} + +- (void)flexibleSurmountBtutonTicktacked { + if (self.agreeBtuton.isSelected) { + YUMISurmountMobileRegardGovernancer *phoneVC = [[YUMISurmountMobileRegardGovernancer alloc] init]; + [self.navigationController pushViewController:phoneVC animated:YES]; + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventLoginPhoneClick]; + } else { + [UIView animateWithDuration:0.5 animations:^{ + self.attestationIntumesceRegard.alpha = 1.0; + }]; + } +} +#pragma mark - SurmountCeremony +- (void)surmountAccomplishment { + [self dismissViewControllerAnimated:YES completion:nil]; + [self EvidenceAccomplishmentToast:YMLocalizedString(@"XPLoginViewController4")]; +} + +#pragma mark - 懒加载 + +- (UIButton *)quickSurmountBtuton { + if (!_quickSurmountBtuton) { + _quickSurmountBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + _quickSurmountBtuton.layer.masksToBounds = YES; + _quickSurmountBtuton.layer.cornerRadius = 66.0/2.f; + [_quickSurmountBtuton setTitle:YMLocalizedString(@"XPLoginViewController5") forState:UIControlStateNormal]; + _quickSurmountBtuton.titleLabel.font = [UIFont systemFontOfSize:16 weight:UIFontWeightRegular]; + [_quickSurmountBtuton setTitleColor:UIColor.whiteColor forState:UIControlStateNormal]; + UIImage *image = [UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify],[DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(KScreenWidth - 45 * 2, 45)]; + [_quickSurmountBtuton setBackgroundImage:image forState:UIControlStateNormal]; + [_quickSurmountBtuton setImage:[UIImage imageNamed:@"yumi_login_phone_white"] forState:UIControlStateNormal]; + [_quickSurmountBtuton addTarget:self action:@selector(flexibleSurmountBtutonTicktacked) forControlEvents:UIControlEventTouchUpInside]; + } + return _quickSurmountBtuton; +} + +- (UIButton *)agreeBtuton { + if(!_agreeBtuton) { + _agreeBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_agreeBtuton setImage:[UIImage imageNamed:@"yumi_login_agree"] forState:UIControlStateSelected]; + [_agreeBtuton setImage:[UIImage imageNamed:@"yumi_login_disagree"] forState:UIControlStateNormal]; + [_agreeBtuton setEnlargeEdgeAboutApex:10 right:10 bottom:10 left:10]; + [_agreeBtuton addTarget:self action:@selector(agreeBtutonTicktacked) forControlEvents:UIControlEventTouchUpInside]; + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + NSString *hadAgree = [defaults objectForKey:HadAgreePrivacy]; + if (hadAgree.length > 0) { + _agreeBtuton.selected = YES; + } + } + return _agreeBtuton; +} + +- (YYLabel *)protocolSequencignation { + if (!_protocolSequencignation) { + _protocolSequencignation = [[YYLabel alloc] init]; + _protocolSequencignation.font = [UIFont systemFontOfSize:12]; + _protocolSequencignation.numberOfLines = 0; + + NSMutableAttributedString *attString = [[NSMutableAttributedString alloc] initWithString:YMLocalizedString(@"XPLoginViewController6")]; + attString.yy_color = UIColor.whiteColor; + NSString *userString = YMLocalizedString(@"XPLoginViewController7"); + NSMutableAttributedString *userAttString = [[NSMutableAttributedString alloc] initWithString:userString attributes:@{NSForegroundColorAttributeName:[DJDKMIMOMColor aplictowardsionMainPrettify]}]; + @weakify(self) + [userAttString yy_setTextHighlightRange:NSMakeRange(0, userAttString.length) color:nil backgroundColor:nil userInfo:nil tapAction:^(UIView * _Nonnull containerView, NSAttributedString * _Nonnull text, NSRange range, CGRect rect) { + @strongify(self); + + YUMITissueRegardGovernancer * webVewC = [[YUMITissueRegardGovernancer alloc] init]; + webVewC.url = URLWithType(kUserProtocalURL); + [self.navigationController pushViewController:webVewC animated:YES]; + } longPressAction:nil]; + + NSMutableAttributedString *andString = [[NSMutableAttributedString alloc] initWithString:YMLocalizedString(@"XPLoginViewController8")]; + andString.yy_color = UIColor.whiteColor; + NSString *protocolString = YMLocalizedString(@"XPLoginViewController9"); + NSMutableAttributedString *privateString = [[NSMutableAttributedString alloc] initWithString:protocolString attributes:@{NSForegroundColorAttributeName:[DJDKMIMOMColor aplictowardsionMainPrettify]}]; + [privateString yy_setTextHighlightRange:NSMakeRange(0, privateString.length) color:nil backgroundColor:nil userInfo:nil tapAction:^(UIView * _Nonnull containerView, NSAttributedString * _Nonnull text, NSRange range, CGRect rect) { + @strongify(self); + + YUMITissueRegardGovernancer * webVewC = [[YUMITissueRegardGovernancer alloc] init]; + webVewC.url = URLWithType(kPrivacyURL); + [self.navigationController pushViewController:webVewC animated:YES]; + } longPressAction:nil]; + [attString appendAttributedString:userAttString]; + [attString appendAttributedString:andString]; + [attString appendAttributedString:privateString]; + + _protocolSequencignation.attributedText = attString; + } + return _protocolSequencignation; +} + +- (UILabel *)separateSequencignation { + if (!_separateSequencignation) { + _separateSequencignation = [[UILabel alloc] init]; + _separateSequencignation.text = YMLocalizedString(@"XPLoginViewController10"); + _separateSequencignation.textColor = UIColor.whiteColor; + _separateSequencignation.font = [UIFont systemFontOfSize:12]; + _separateSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _separateSequencignation; +} + +- (UIImageView *)attestationIntumesceRegard { + if (!_attestationIntumesceRegard) { + _attestationIntumesceRegard = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"yumi_login_auth_bubble"]]; + _attestationIntumesceRegard.contentMode = UIViewContentModeScaleAspectFit; + _attestationIntumesceRegard.alpha = 0; + } + return _attestationIntumesceRegard; +} + +- (UIStackView *)stackView { + if (!_stackView) { + _stackView = [[UIStackView alloc] init]; + _stackView.axis = UILayoutConstraintAxisHorizontal; + _stackView.distribution = UIStackViewDistributionFillEqually; + _stackView.alignment = UIStackViewAlignmentFill; + _stackView.spacing = 20; + } + return _stackView; +} + +- (UILabel *)attestationIntumesceSequencignation { + if (!_attestationIntumesceSequencignation) { + _attestationIntumesceSequencignation = [[UILabel alloc] init]; + _attestationIntumesceSequencignation.text = YMLocalizedString(@"XPLoginViewController11"); + _attestationIntumesceSequencignation.font = [UIFont systemFontOfSize:10]; + _attestationIntumesceSequencignation.textColor = UIColor.whiteColor; + } + return _attestationIntumesceSequencignation; +} + +- (UIButton *)fbBtutonRegard { + if (!_fbBtutonRegard) { + _fbBtutonRegard = [UIButton buttonWithType:UIButtonTypeCustom]; + [_fbBtutonRegard setImage: [UIImage imageNamed:@"yumi_login_facebook"] forState:UIControlStateNormal]; + _fbBtutonRegard.tag = 1000 + ThirdLoginGenre_FB; + [_fbBtutonRegard addTarget:self action:@selector(surmountDidTicktack:) forControlEvents:UIControlEventTouchUpInside]; + } + return _fbBtutonRegard; +} + +- (UIButton *)googleBtutonRegard { + if (!_googleBtutonRegard) { + _googleBtutonRegard = [UIButton buttonWithType:UIButtonTypeCustom]; + [_googleBtutonRegard setImage: [UIImage imageNamed:@"yumi_login_gmail"] forState:UIControlStateNormal]; + _googleBtutonRegard.tag = 1000 + ThirdLoginGenre_Gmail; + [_googleBtutonRegard addTarget:self action:@selector(surmountDidTicktack:) forControlEvents:UIControlEventTouchUpInside]; + } + return _googleBtutonRegard; +} + +- (UIButton *)burlywoodBtutonRegard { + if (!_burlywoodBtutonRegard) { + _burlywoodBtutonRegard = [UIButton buttonWithType:UIButtonTypeCustom]; + [_burlywoodBtutonRegard setImage: [UIImage imageNamed:@"yumi_login_line"] forState:UIControlStateNormal]; + _burlywoodBtutonRegard.tag = 1000 + ThirdLoginGenre_Line; + [_burlywoodBtutonRegard addTarget:self action:@selector(surmountDidTicktack:) forControlEvents:UIControlEventTouchUpInside]; + } + return _burlywoodBtutonRegard; +} + +#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 130000 +- (ASAuthorizationAppleIDButton *)appleBtuton API_AVAILABLE(ios(13.0)){ + if (!_appleBtuton) { + if (@available(iOS 13.0, *)) { + _appleBtuton = [[ASAuthorizationAppleIDButton alloc] initWithAuthorizationButtonType:ASAuthorizationAppleIDButtonTypeSignIn authorizationButtonStyle:ASAuthorizationAppleIDButtonStyleWhite]; + } else { + + } + _appleBtuton.cornerRadius = 25; + _appleBtuton.tag = 1000 + ThirdLoginGenre_Apple; + [_appleBtuton addTarget:self action:@selector(surmountDidTicktack:) forControlEvents:UIControlEventTouchUpInside]; + } + return _appleBtuton; +} +#endif +- (GIDConfiguration *)configuration{ + if (!_configuration){ + NSString * number = [AESUtils aesDecrypt:@"ScLBu7ctIiyGCKPro3Jj6XMdsdCCpNT9L4wyjHEF+bguqubkXNSayFBGMKmoDwe1hjfAc958XSaBdMyEaFXLO38Bwq3xURYVNpgEM4b14zg="]; + _configuration = [[GIDConfiguration alloc] initWithClientID:number]; + } + return _configuration; +} + +@end diff --git a/YuMi/Modules/YMLogin/View/NewLogin/login_vapbg.mp4 b/YuMi/Modules/YMLogin/View/NewLogin/login_vapbg.mp4 new file mode 100644 index 00000000..5e184a8f Binary files /dev/null and b/YuMi/Modules/YMLogin/View/NewLogin/login_vapbg.mp4 differ diff --git a/YuMi/Modules/YMLogin/View/SurmountDilemmaMobileRegardGovernancer.h b/YuMi/Modules/YMLogin/View/SurmountDilemmaMobileRegardGovernancer.h new file mode 100644 index 00000000..d4b829a0 --- /dev/null +++ b/YuMi/Modules/YMLogin/View/SurmountDilemmaMobileRegardGovernancer.h @@ -0,0 +1,16 @@ +// +// SurmountDilemmaMobileRegardGovernancer.h +// YUMI +// +// Created by YUMI on 2021/9/14. +// + +#import "MvpRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface SurmountDilemmaMobileRegardGovernancer : MvpRegardGovernancer + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMLogin/View/SurmountDilemmaMobileRegardGovernancer.m b/YuMi/Modules/YMLogin/View/SurmountDilemmaMobileRegardGovernancer.m new file mode 100644 index 00000000..7beff81a --- /dev/null +++ b/YuMi/Modules/YMLogin/View/SurmountDilemmaMobileRegardGovernancer.m @@ -0,0 +1,212 @@ +// +// SurmountDilemmaMobileRegardGovernancer.m +// YUMI +// +// Created by YUMI on 2021/9/14. +// + +#import "SurmountDilemmaMobileRegardGovernancer.h" +#import +#import +#import "YUMIMacroUitls.h" +#import "DJDKMIMOMColor.h" +#import "NSString+Utils.h" +#import "UIButton+EnlargeTouchArea.h" +#import "SurmountDilemmaMobileExternalize.h" +#import "SurmountValidationCodeRegardGovernancer.h" + +@interface SurmountDilemmaMobileRegardGovernancer () +@property (nonatomic, strong) UILabel *titleLabel; +@property (nonatomic, strong) UIView *backgroundRegard; +@property (nonatomic, strong) UILabel *computationrySequencignation; +@property (nonatomic, strong) UITextField *mobileEssayUniverse; +@property (nonatomic, strong) UIButton *surmountBtuton; +@property (nonatomic,strong) UIButton *backButton; +@end + +@implementation SurmountDilemmaMobileRegardGovernancer +- (BOOL)isVeiledNevObstacle { + return YES; +} +#pragma mark - life cycle +- (SurmountDilemmaMobileExternalize *)producePresimport { + return [[SurmountDilemmaMobileExternalize alloc] init]; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self setUpwardsUI]; + [self setEvents]; +} + +- (void)viewDidAppear:(BOOL)animated { + [self EvidenceMistakeToast:@"第三方登录需绑定手机号喔~"]; +} + +- (void)setUpwardsUI { + [self.view addSubview:self.titleLabel]; + [self.view addSubview:self.backgroundRegard]; + [self.backgroundRegard addSubview:self.computationrySequencignation]; + [self.backgroundRegard addSubview:self.mobileEssayUniverse]; + [self.view addSubview:self.surmountBtuton]; + [self.view addSubview:self.backButton]; +} + +- (void)viewDidLayoutSubviews { + [super viewDidLayoutSubviews]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.view); + make.top.mas_equalTo(self.view).offset(150); + }]; + + [self.backgroundRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.view); + make.top.mas_equalTo(self.titleLabel.mas_bottom).offset(50); + make.width.mas_equalTo(280); + make.height.mas_equalTo(45); + }]; + [self.computationrySequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(10); + make.top.mas_equalTo(self.backgroundRegard).offset(5); + make.width.mas_equalTo(60); + make.height.mas_equalTo(35); + }]; + [self.mobileEssayUniverse mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(70); + make.top.mas_equalTo(self.backgroundRegard).offset(5); + make.width.mas_equalTo(200); + make.height.mas_equalTo(35); + }]; + + [self.surmountBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.view); + make.top.mas_equalTo(self.backgroundRegard.mas_bottom).offset(50); + make.width.mas_equalTo(60); + make.height.mas_equalTo(60); + }]; + + [self.backButton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(15, 15)); + make.left.mas_equalTo(self.view).offset(14); + make.top.mas_equalTo(self.view).offset(36 + kSafeAreaTopHeight); + }]; +} + +- (void)setEvents { + @weakify(self) + + [[RACSignal combineLatest:@[self.mobileEssayUniverse.rac_textSignal] + reduce:^id(NSString *phone){ + BOOL enable = phone.length == 11; + return @(enable); + }] subscribeNext:^(NSNumber *enable) { + @strongify(self) + self.surmountBtuton.enabled = [enable boolValue]; + }]; + + + [[[[self.surmountBtuton rac_signalForControlEvents:UIControlEventTouchUpInside] doNext:^(id x) { + @strongify(self) + self.surmountBtuton.enabled = NO; + }] flattenMap:^id (id value) { + return [RACSignal createSignal:^RACDisposable *(id subscriber) { + if (!self.mobileEssayUniverse.text.isMobileDigital) { + [self EvidenceMistakeToast:YMLocalizedString(@"LoginBindPhoneViewController1")]; + [subscriber sendNext:@(NO)]; + }else { + [subscriber sendNext:@(YES)]; + } + [subscriber sendCompleted]; + return nil; + }]; + }] subscribeNext:^(NSNumber *signedIn) { + @strongify(self) + self.surmountBtuton.enabled = YES; + BOOL success = [signedIn boolValue]; + if (success) { + + SurmountValidationCodeRegardGovernancer *codeVC = [[SurmountValidationCodeRegardGovernancer alloc] init]; + codeVC.phone = self.mobileEssayUniverse.text; + codeVC.type = VerifCodeGenre_BindPhone; + [self.navigationController pushViewController:codeVC animated:YES]; + } + }]; +} + +#pragma mark - Event Response +- (void)encourageBtutonPerformance:(UIButton *)sender { + + [self dismissViewControllerAnimated:NO completion:^{ + [self.presimport logout]; + }]; +} + +#pragma mark - Getters And Setters +- (UILabel *)titleLabel{ + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.font = [UIFont fontWithName:@"PingFang-SC-Medium" size:18]; + _titleLabel.text = YMLocalizedString(@"LoginBindPhoneViewController2"); + _titleLabel.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _titleLabel; +} + +- (UIView *)backgroundRegard { + if (!_backgroundRegard) { + _backgroundRegard = [[UIView alloc] init]; + _backgroundRegard.backgroundColor = [DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify]; + _backgroundRegard.layer.cornerRadius = 45/2; + _backgroundRegard.layer.masksToBounds = YES; + } + return _backgroundRegard; +} + +- (UILabel *)computationrySequencignation{ + if (!_computationrySequencignation) { + _computationrySequencignation = [[UILabel alloc] init]; + _computationrySequencignation.font = [UIFont fontWithName:@"PingFang-SC-Medium" size:15]; + _computationrySequencignation.text = @"+852"; + _computationrySequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _computationrySequencignation.backgroundColor = [UIColor clearColor]; + _computationrySequencignation.textAlignment = NSTextAlignmentCenter; + } + return _computationrySequencignation; +} + +- (UITextField *)mobileEssayUniverse { + if (!_mobileEssayUniverse) { + _mobileEssayUniverse = [[UITextField alloc] init]; + _mobileEssayUniverse.keyboardType = UIKeyboardTypeNumberPad; + _mobileEssayUniverse.backgroundColor = [UIColor clearColor]; + _mobileEssayUniverse.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _mobileEssayUniverse.tintColor = [DJDKMIMOMColor aplictowardsionMainPrettify]; + _mobileEssayUniverse.font = [UIFont fontWithName:@"PingFang-SC-Medium" size:15]; + _mobileEssayUniverse.textAlignment = NSTextAlignmentLeft; + } + return _mobileEssayUniverse; +} + +- (UIButton *)surmountBtuton { + if (!_surmountBtuton) { + _surmountBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + _surmountBtuton.enabled = NO; + [_surmountBtuton setImage:[UIImage imageNamed:@"yumi_login_button"] forState:UIControlStateDisabled]; + [_surmountBtuton setImage:[UIImage imageNamed:@"yumi_login_button_sel"] forState:UIControlStateNormal]; + } + return _surmountBtuton; +} + +- (UIButton *)backButton { + if (!_backButton) { + _backButton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_backButton setImage:[UIImage imageNamed:@"yumi_same_title_back"] forState:UIControlStateNormal]; + [_backButton setImage:[UIImage imageNamed:@"yumi_same_title_back"] forState:UIControlStateSelected]; + [_backButton setEnlargeEdgeAboutApex:15 right:15 bottom:15 left:15]; + [_backButton addTarget:self action:@selector(encourageBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _backButton; +} + +@end diff --git a/YuMi/Modules/YMLogin/View/SurmountFullAbstractRegardGovernancer.h b/YuMi/Modules/YMLogin/View/SurmountFullAbstractRegardGovernancer.h new file mode 100644 index 00000000..361df08c --- /dev/null +++ b/YuMi/Modules/YMLogin/View/SurmountFullAbstractRegardGovernancer.h @@ -0,0 +1,16 @@ +// +// SurmountFullAbstractRegardGovernancer.h +// YUMI +// +// Created by YUMI on 2021/9/14. +// + +#import "MvpRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface SurmountFullAbstractRegardGovernancer : MvpRegardGovernancer + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMLogin/View/SurmountFullAbstractRegardGovernancer.m b/YuMi/Modules/YMLogin/View/SurmountFullAbstractRegardGovernancer.m new file mode 100644 index 00000000..02b4182d --- /dev/null +++ b/YuMi/Modules/YMLogin/View/SurmountFullAbstractRegardGovernancer.m @@ -0,0 +1,440 @@ +// +// SurmountFullAbstractRegardGovernancer.m +// YUMI +// +// Created by YUMI on 2021/9/14. +// + +#import "SurmountFullAbstractRegardGovernancer.h" +#import +#import +#import "YUMIMacroUitls.h" +#import "DJDKMIMOMColor.h" +#import "UIImage+Utils.h" +#import "UIButton+EnlargeTouchArea.h" +#import "StatsticsticsServingFacilitater.h" +#import "AccountAbstractStorage.h" +#import "MKJPopup.h" +#import "ThirdConsumerAbstract.h" +#import "SurmountFullAbstractExternalizer.h" +#import "SurmountFullAbstractCeremony.h" + +UIKIT_EXTERN NSString * kUserCompleteInfoFinishKey; + +@interface SurmountFullAbstractRegardGovernancer () +@property (nonatomic,strong) UILabel *titleLabel; +@property (nonatomic,strong) UILabel *remindSequencignation; +@property (nonatomic,strong) UIView * encourageRegard; +@property (nonatomic,strong) UIStackView *stackView; +@property (nonatomic,strong) UILabel *constituteSequencignation; +@property (nonatomic,strong) UITextField *essayUniverse; +@property (nonatomic,strong) UIButton *refreshBtuton; +@property (nonatomic,strong) UIStackView *seaxualityHierarchyRegard; +@property (nonatomic,strong) UIButton *maleBtuton; +@property (nonatomic,strong) UIButton *femaleBtuton; +@property (nonatomic,strong) UIButton *nextBtuton; +@property (nonatomic,strong) UILabel *cryptogramSequencignation; +@property (nonatomic,strong) UIView *cryptogramAccommoengagementRegard; +@property (nonatomic,strong) UITextField *cryptogramEssayUniverse; +@property (nonatomic,strong) UILabel *cryptogramSequencSequencignation; +@property (nonatomic,strong) UILabel *restrictionSequencignation; +@property (nonatomic,strong) ThirdConsumerAbstract *tertiusAbstract; +@property (nonatomic,copy) NSString *seualityBWSttr; +@end + +@implementation SurmountFullAbstractRegardGovernancer + +- (BOOL)isVeiledNevObstacle { + return YES; +} + +- (SurmountFullAbstractExternalizer *)producePresimport { + return [[SurmountFullAbstractExternalizer alloc] init]; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initSubViews]; + [self initChildLyRestrictions]; + [self initOccurrences]; +} + +- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { + [self.view endEditing:YES]; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self.view addSubview:self.titleLabel]; + [self.view addSubview:self.remindSequencignation]; + [self.view addSubview:self.encourageRegard]; + [self.view addSubview:self.seaxualityHierarchyRegard]; + [self.view addSubview:self.cryptogramSequencignation]; + [self.view addSubview:self.cryptogramAccommoengagementRegard]; + [self.view addSubview:self.nextBtuton]; + [self.view addSubview:self.restrictionSequencignation]; + [self.encourageRegard addSubview:self.stackView]; + [self.stackView addArrangedSubview:self.constituteSequencignation]; + [self.stackView addArrangedSubview:self.essayUniverse]; + [self.stackView addArrangedSubview:self.refreshBtuton]; + + [self.seaxualityHierarchyRegard addArrangedSubview:self.maleBtuton]; + [self.seaxualityHierarchyRegard addArrangedSubview:self.femaleBtuton]; + + [self.cryptogramAccommoengagementRegard addSubview:self.cryptogramEssayUniverse]; + [self.cryptogramAccommoengagementRegard addSubview:self.cryptogramSequencSequencignation]; + + if ([self.presimport acquireTertiusConsumerAbstract] && [self.presimport acquireTertiusConsumerAbstract].userName.length > 0) { + self.essayUniverse.text = [self.presimport acquireTertiusConsumerAbstract].userName; + } else { + [self.presimport arbitraryDemandMonicer]; + } +} + +- (void)initChildLyRestrictions { + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.view); + make.top.mas_equalTo(self.view).offset(60 + kSafeAreaTopHeight); + }]; + + [self.remindSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.view); + make.top.mas_equalTo(self.titleLabel.mas_bottom).offset(8); + }]; + + [self.encourageRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.view).inset(52); + make.height.mas_equalTo(45); + make.top.mas_equalTo(self.remindSequencignation.mas_bottom).offset(49); + }]; + + [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.encourageRegard).inset(25); + make.top.bottom.mas_equalTo(self.encourageRegard); + }]; + + + [self.seaxualityHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.encourageRegard); + make.top.mas_equalTo(self.encourageRegard.mas_bottom).offset(15); + }]; + + [self.cryptogramSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.view); + make.top.mas_equalTo(self.seaxualityHierarchyRegard.mas_bottom).offset(20); + }]; + + [self.cryptogramAccommoengagementRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.height.mas_equalTo(self.encourageRegard); + make.top.mas_equalTo(self.cryptogramSequencignation.mas_bottom).offset(11); + }]; + + [self.cryptogramEssayUniverse mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.cryptogramAccommoengagementRegard).offset(10); + make.top.bottom.mas_equalTo(self.cryptogramAccommoengagementRegard); + make.right.mas_equalTo(self.cryptogramSequencSequencignation.mas_left).offset(-5); + }]; + + [self.cryptogramSequencSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self.cryptogramAccommoengagementRegard).offset(-25); + make.centerY.mas_equalTo(self.cryptogramAccommoengagementRegard); + }]; + + [self.nextBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.view).inset(52); + make.height.mas_equalTo(45); + make.top.mas_equalTo(self.cryptogramAccommoengagementRegard.mas_bottom).offset(75); + }]; + + [self.restrictionSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.view); + make.bottom.mas_equalTo(self.view.mas_bottom).offset(-15); + }]; +} + +- (void)initOccurrences { + @weakify(self); + [[self.essayUniverse.rac_textSignal map:^id _Nullable(NSString * _Nullable value) { + if (value.length > 15) { + value = [value substringToIndex:15]; + } + return value; + }] subscribeNext:^(id _Nullable x) { + @strongify(self); + self.essayUniverse.text = x; + [self refurbishLtowardsterBtuton]; + }]; + +} + +- (void)refurbishConsumerAbstract { + [self.presimport complectionAbstractAboutIntelligenceportrait:[self acquireIntelligenceportraitWeebsite] gender:self.maleBtuton.selected ? @"1":@"2" nick:self.essayUniverse.text centiretyforCryptogram:self.cryptogramEssayUniverse.text roomUid:nil shareUid:nil shareChannel:nil]; +} + +- (NSString *)acquireIntelligenceportraitWeebsite { + NSString * avatar; + if ([self.presimport acquireTertiusConsumerAbstract] && [self.presimport acquireTertiusConsumerAbstract].avatarUrl.length > 0) { + avatar = [self.presimport acquireTertiusConsumerAbstract].avatarUrl; + } else { + avatar = @"https://image.hfighting.com/morentouxiang.png"; + } + return avatar; +} + +- (void)refurbishLtowardsterBtuton { + if (self.essayUniverse.text.length > 0 && self.seualityBWSttr.length > 0) { + self.nextBtuton.enabled = YES; + } else { + self.nextBtuton.enabled = NO; + } +} + +#pragma mark - SurmountFullAbstractCeremony +- (void)requisitionArbitraryMonicerAccomplishment:(NSString *)nick { + self.essayUniverse.text = nick; +} + +- (void)complementAbstractAccomplishment { + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventLoginRepariSuccess]; + + [[AccountAbstractStorage instance] preserveTicket:nil]; + UIViewController *vc = self.presentingViewController; + while (vc.presentingViewController) { + vc = vc.presentingViewController; + } + [vc dismissViewControllerAnimated:YES completion:^{ + }]; + NSString * centiretyforCryptogram = self.cryptogramEssayUniverse.text.length > 0 ? self.cryptogramEssayUniverse.text : @""; + [[NSNotificationCenter defaultCenter] postNotificationName:kUserCompleteInfoFinishKey object:centiretyforCryptogram]; +} +#pragma mark - Event Response +- (void)ltowardsterBtutonPerformance:(UIButton *)sender { + if (self.cryptogramEssayUniverse.text.length <= 0) { + MKJPrecautiousDisposition * config = [[MKJPrecautiousDisposition alloc] init]; + config.title = @""; + config.message = YMLocalizedString(@"LoginFullInfoViewController0"); + [MKJPopup precautiousAboutDisposition:config acknowledgementHandler:^{ + [self refurbishConsumerAbstract]; + } cancelHandler:^{ + + }]; + } else { + [self refurbishConsumerAbstract]; + } +} + +- (void)renovtowardseBtutonPerformance:(UIButton *)sender { + CAKeyframeAnimation *lAni = [CAKeyframeAnimation animationWithKeyPath:@"transform.rotation.z"]; + lAni.duration = 1; + lAni.values=@[@0,@(M_PI*2)]; + + lAni.removedOnCompletion = NO; + lAni.fillMode = kCAFillModeForwards; + [sender.layer addAnimation:lAni forKey:nil]; + [self.presimport arbitraryDemandMonicer]; +} + +- (void)maleBtutonPerformance:(UIButton *)sender { + self.femaleBtuton.selected = NO; + sender.selected = YES; + self.seualityBWSttr = @"1"; +} + +- (void)femaleBtutonPerformance:(UIButton *)sender { + sender.selected = YES; + self.maleBtuton.selected = NO; + self.seualityBWSttr = @"2"; +} + +#pragma mark - Getters And Setters +- (void)setSeualityBWSttr:(NSString *)seualityBWSttr { + _seualityBWSttr = seualityBWSttr; + [self refurbishLtowardsterBtuton]; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.text = YMLocalizedString(@"LoginFullInfoViewController1"); + _titleLabel.font = [UIFont fontWithName:@"PingFang-SC-Bold" size:18]; + _titleLabel.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _titleLabel.textAlignment = NSTextAlignmentCenter; + } + return _titleLabel; +} + +- (UILabel *)remindSequencignation { + if (!_remindSequencignation) { + _remindSequencignation = [[UILabel alloc] init]; + _remindSequencignation.text = YMLocalizedString(@"LoginFullInfoViewController2"); + _remindSequencignation.font = [UIFont systemFontOfSize:13]; + _remindSequencignation.textColor = [DJDKMIMOMColor instantEssayPrettify]; + } + return _remindSequencignation; +} + +- (UIStackView *)stackView { + if (!_stackView) { + _stackView = [[UIStackView alloc] init]; + _stackView.axis = UILayoutConstraintAxisHorizontal; + _stackView.distribution = UIStackViewDistributionFill; + _stackView.alignment = UIStackViewAlignmentFill; + _stackView.spacing = 10; + } + return _stackView; +} + +- (UIView *)encourageRegard { + if (!_encourageRegard) { + _encourageRegard = [[UIView alloc] init]; + _encourageRegard.backgroundColor = [DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify]; + _encourageRegard.layer.masksToBounds = YES; + _encourageRegard.layer.cornerRadius = 45/2; + } + return _encourageRegard; +} + +- (UILabel *)constituteSequencignation { + if (!_constituteSequencignation) { + _constituteSequencignation = [[UILabel alloc] init]; + _constituteSequencignation.text = YMLocalizedString(@"LoginFullInfoViewController3"); + _constituteSequencignation.font = [UIFont systemFontOfSize:15]; + _constituteSequencignation.textColor = [DJDKMIMOMColor instantEssayPrettify]; + [_constituteSequencignation setContentCompressionResistancePriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal]; + [_constituteSequencignation setContentHuggingPriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal]; + + } + return _constituteSequencignation; +} + +- (UITextField *)essayUniverse { + if (!_essayUniverse) { + _essayUniverse = [[UITextField alloc] init]; + _essayUniverse.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _essayUniverse.font = [UIFont fontWithName:@"PingFang-SC-Medium" size:15.f]; + _essayUniverse.borderStyle = UITextBorderStyleNone; + _essayUniverse.tintColor = [DJDKMIMOMColor aplictowardsionMainPrettify]; + _essayUniverse.textAlignment = NSTextAlignmentRight; + _essayUniverse.backgroundColor = [UIColor clearColor]; + } + return _essayUniverse; +} + +- (UIButton *)refreshBtuton { + if (!_refreshBtuton) { + _refreshBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_refreshBtuton setImage:[UIImage imageNamed:@"yumi_login_full_gen_refresh"] forState:UIControlStateNormal]; + [_refreshBtuton setImage:[UIImage imageNamed:@"yumi_login_full_gen_refresh"] forState:UIControlStateSelected]; + [_refreshBtuton setEnlargeEdgeAboutApex:0 right:0 bottom:0 left:10]; + [_refreshBtuton setContentHuggingPriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal]; + [_refreshBtuton setContentCompressionResistancePriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal]; + [_refreshBtuton addTarget:self action:@selector(renovtowardseBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _refreshBtuton; +} + +- (UIStackView *)seaxualityHierarchyRegard { + if (!_seaxualityHierarchyRegard) { + _seaxualityHierarchyRegard = [[UIStackView alloc] init]; + _seaxualityHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _seaxualityHierarchyRegard.distribution = UIStackViewDistributionFill; + _seaxualityHierarchyRegard.alignment = UIStackViewAlignmentCenter; + _seaxualityHierarchyRegard.spacing = 15; + } + return _seaxualityHierarchyRegard; +} + +- (UIButton *)maleBtuton { + if (!_maleBtuton) { + _maleBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_maleBtuton setImage:[UIImage imageNamed:@"yumi_login_full_gen_male_normal"] forState:UIControlStateNormal]; + [_maleBtuton setImage:[UIImage imageNamed:@"yumi_login_full_gen_male_select"] forState:UIControlStateSelected]; + [_maleBtuton addTarget:self action:@selector(maleBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _maleBtuton; +} + +- (UIButton *)femaleBtuton { + if (!_femaleBtuton) { + _femaleBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_femaleBtuton setImage:[UIImage imageNamed:@"yumi_login_full_gen_female_normal"] forState:UIControlStateNormal]; + [_femaleBtuton setImage:[UIImage imageNamed:@"yumi_login_full_gen_female_select"] forState:UIControlStateSelected]; + [_femaleBtuton addTarget:self action:@selector(femaleBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _femaleBtuton; +} + +- (UIView *)cryptogramAccommoengagementRegard { + if (!_cryptogramAccommoengagementRegard) { + _cryptogramAccommoengagementRegard = [[UIView alloc] init]; + _cryptogramAccommoengagementRegard.backgroundColor = [DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify]; + _cryptogramAccommoengagementRegard.layer.masksToBounds= YES; + _cryptogramAccommoengagementRegard.layer.cornerRadius = 45/2; + } + return _cryptogramAccommoengagementRegard; +} + +- (UITextField *)cryptogramEssayUniverse { + if (!_cryptogramEssayUniverse) { + _cryptogramEssayUniverse = [[UITextField alloc] init]; + _cryptogramEssayUniverse.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _cryptogramEssayUniverse.font = [UIFont fontWithName:@"PingFang-SC-Medium" size:15.f]; + _cryptogramEssayUniverse.borderStyle = UITextBorderStyleNone; + _cryptogramEssayUniverse.tintColor = [DJDKMIMOMColor aplictowardsionMainPrettify]; + _cryptogramEssayUniverse.textAlignment = NSTextAlignmentLeft; + _cryptogramEssayUniverse.backgroundColor = [UIColor clearColor]; + } + return _cryptogramEssayUniverse; +} + +- (UILabel *)cryptogramSequencignation { + if (!_cryptogramSequencignation) { + _cryptogramSequencignation = [[UILabel alloc] init]; + _cryptogramSequencignation.text = YMLocalizedString(@"LoginFullInfoViewController4"); + _cryptogramSequencignation.font = [UIFont systemFontOfSize:18]; + _cryptogramSequencignation.textAlignment = NSTextAlignmentCenter; + _cryptogramSequencignation.textColor = [DJDKMIMOMColor instantEssayPrettify]; + } + return _cryptogramSequencignation; +} + +- (UILabel *)cryptogramSequencSequencignation { + if (!_cryptogramSequencSequencignation) { + _cryptogramSequencSequencignation = [[UILabel alloc] init]; + _cryptogramSequencSequencignation.text = @"(选填)"; + _cryptogramSequencSequencignation.font = [UIFont systemFontOfSize:15]; + _cryptogramSequencSequencignation.textColor = [DJDKMIMOMColor essayTertiusPrettify]; + [_cryptogramSequencSequencignation setContentHuggingPriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal]; + } + return _cryptogramSequencSequencignation; +} + +- (UIButton *)nextBtuton{ + if (!_nextBtuton) { + _nextBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + _nextBtuton.layer.masksToBounds = YES; + _nextBtuton.layer.cornerRadius = 45/2.f; + [_nextBtuton setTitle:YMLocalizedString(@"LoginFullInfoViewController6") forState:UIControlStateNormal]; + _nextBtuton.titleLabel.font = [UIFont fontWithName:@"PingFang-SC-Medium" size:18]; + [_nextBtuton setTitleColor:[DJDKMIMOMColor acknowledgementBtutonEssayPrettify] forState:UIControlStateNormal]; + _nextBtuton.enabled = NO; + UIImage *image = [UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)]; + [_nextBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor prohibitionBtutonPrettify], [DJDKMIMOMColor prohibitionBtutonPrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateDisabled]; + [_nextBtuton setBackgroundImage:image forState:UIControlStateNormal]; + [_nextBtuton addTarget:self action:@selector(ltowardsterBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _nextBtuton; +} + +- (UILabel *)restrictionSequencignation { + if (!_restrictionSequencignation) { + _restrictionSequencignation = [[UILabel alloc] init]; + _restrictionSequencignation.text = YMLocalizedString(@"LoginFullInfoViewController7"); + _restrictionSequencignation.textAlignment = NSTextAlignmentCenter; + _restrictionSequencignation.font = [UIFont systemFontOfSize:12]; + _restrictionSequencignation.textColor = [DJDKMIMOMColor essayTertiusPrettify]; + } + return _restrictionSequencignation; +} + +@end diff --git a/YuMi/Modules/YMLogin/View/SurmountValidationCodeRegardGovernancer.h b/YuMi/Modules/YMLogin/View/SurmountValidationCodeRegardGovernancer.h new file mode 100644 index 00000000..9e82cfb7 --- /dev/null +++ b/YuMi/Modules/YMLogin/View/SurmountValidationCodeRegardGovernancer.h @@ -0,0 +1,26 @@ +// +// SurmountValidationCodeRegardGovernancer.h +// YUMI +// +// Created by YUMI on 2021/9/8. +// + +#import "MvpRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN +typedef NS_ENUM(NSUInteger, VerifCodeGenre){ + VerifCodeGenre_Regist, + VerifCodeGenre_BindPhone, + VerifCodeGenre_Login, + VerifCodeGenre_AreaCode, +} ; + + +@interface SurmountValidationCodeRegardGovernancer : MvpRegardGovernancer + +@property (nonatomic,copy) NSString *phone; +@property (nonatomic,copy) NSString *phoneAreaCode; +@property (nonatomic,assign) VerifCodeGenre type; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMLogin/View/SurmountValidationCodeRegardGovernancer.m b/YuMi/Modules/YMLogin/View/SurmountValidationCodeRegardGovernancer.m new file mode 100644 index 00000000..39f0380c --- /dev/null +++ b/YuMi/Modules/YMLogin/View/SurmountValidationCodeRegardGovernancer.m @@ -0,0 +1,339 @@ +// +// SurmountValidationCodeRegardGovernancer.m +// YuMi +// +// Created by YuMi on 2021/9/8. +// + +#import "SurmountValidationCodeRegardGovernancer.h" +#import +#import +#import "DJDKMIMOMColor.h" +#import "ComputationDownFacilitater.h" +#import "YUMIMacroUitls.h" +#import "YUMIConstant.h" +#import "XNDJTBWGLoadingTool.h" +#import "UIView+Corner.h" +#import "UIButton+EnlargeTouchArea.h" +#import "SurmountValidationCodeExternalize.h" +#import "SurmountVerifCodeCeremony.h" +#import "SurmountValidationCodeRegard.h" +#import "SurmountFullAbstractRegardGovernancer.h" +#import "YUMISurmountPwordRegardGovernancer.h" + +@interface SurmountValidationCodeRegardGovernancer () +@property (nonatomic,strong) UIImageView *apexEncourageIndiRegard; +@property (nonatomic,strong) UIView *contentView; +@property (nonatomic,strong) UILabel *titleLabel; +@property (nonatomic,strong) UIView *backgroundCryptogramRegard; +@property (nonatomic,strong) UIStackView *cryptogramHierarchyRegard; +@property (nonatomic,strong) UILabel *cutdownSequencignation; +@property (nonatomic,strong) UIButton *retrialCryptogramBtuton; +@property (nonatomic,strong) UITextField *essayUniverse; +@property (nonatomic,strong) UIButton *surmountBtuton; +@property (nonatomic,strong) UIButton *encourageBtuton; +@property (nonatomic,assign) BOOL isSurmountSuccess; +@property (nonatomic,copy) NSString *code; +@end + +@implementation SurmountValidationCodeRegardGovernancer + +- (void)dealloc { + [[ComputationDownFacilitater partowardsiciptowardsionFacilittowardseer] suspeindComputtowardsionPubescence]; +} + +- (BOOL)isVeiledNevObstacle { + return YES; +} + +- (SurmountValidationCodeExternalize *)producePresimport { + return [[SurmountValidationCodeExternalize alloc] init]; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + + + [self initSubViews]; + [self initChildLyRestrictions]; + if(self.type != VerifCodeGenre_AreaCode){ + self.retrialCryptogramBtuton.hidden = YES; + self.cutdownSequencignation.hidden = NO; + [[ComputationDownFacilitater partowardsiciptowardsionFacilittowardseer] unfoildComputtowardsiondownAboutIntrtowardsemporal:60]; + }else{ + self.essayUniverse.keyboardType = UIKeyboardTypeDefault; + } + +} + +- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { + [self.view endEditing:NO]; +} + +- (void)viewDidDisappear:(BOOL)animated { + [super viewDidDisappear:animated]; + [[ComputationDownFacilitater partowardsiciptowardsionFacilittowardseer] suspeindComputtowardsionPubescence]; +} + +#pragma mark - Private Method +- (void)initSubViews { + + [self.view addSubview:self.apexEncourageIndiRegard]; + [self.view addSubview:self.contentView]; + + + if(self.type == VerifCodeGenre_AreaCode){ + self.titleLabel.text = YMLocalizedString(@"LoginVerifCodeViewController5"); + + }else{ + [self.apexEncourageIndiRegard addSubview:self.encourageBtuton]; + [ComputationDownFacilitater partowardsiciptowardsionFacilittowardseer].delegate = self; + } + + [self.apexEncourageIndiRegard addSubview:self.titleLabel]; + + [self.contentView addSubview:self.backgroundCryptogramRegard]; + [self.backgroundCryptogramRegard addSubview:self.cryptogramHierarchyRegard]; + [self.cryptogramHierarchyRegard addArrangedSubview:self.essayUniverse]; + [self.cryptogramHierarchyRegard addArrangedSubview:self.cutdownSequencignation]; + [self.cryptogramHierarchyRegard addArrangedSubview:self.retrialCryptogramBtuton]; + [self.contentView addSubview:self.surmountBtuton]; + + +} + +- (void)initChildLyRestrictions { + [self.apexEncourageIndiRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self.view); + make.height.mas_equalTo(kGetScaleWidth(333)); + }]; + + [self.contentView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.mas_equalTo(self.view); + make.top.equalTo(self.apexEncourageIndiRegard.mas_bottom).mas_offset(-kGetScaleWidth(30)); + }]; + if(self.type != VerifCodeGenre_AreaCode){ + [self.encourageBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.apexEncourageIndiRegard.mas_top).offset(kSafeAreaTopHeight + kGetScaleWidth(52)); + make.width.height.mas_equalTo(kGetScaleWidth(20)); + make.left.mas_equalTo(kGetScaleWidth(15)); + }]; + } + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.apexEncourageIndiRegard).offset(kGetScaleWidth(30)); + make.top.mas_equalTo(self.apexEncourageIndiRegard.mas_top).offset(kSafeAreaTopHeight + kGetScaleWidth(96)); + }]; + + + [self.backgroundCryptogramRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(kGetScaleWidth(30)); + make.right.mas_equalTo(-kGetScaleWidth(33)); + make.left.mas_equalTo(kGetScaleWidth(33)); + make.height.mas_equalTo(kGetScaleWidth(63)); + }]; + + [self.cryptogramHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(kGetScaleWidth(20)); + make.right.mas_equalTo(-kGetScaleWidth(20)); + make.top.bottom.equalTo(self.backgroundCryptogramRegard); + }]; + [self.essayUniverse mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_greaterThanOrEqualTo(kGetScaleWidth(190)); + }]; + [self.surmountBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.equalTo(self.contentView); + make.height.mas_equalTo(kGetScaleWidth(63)); + make.width.mas_equalTo(kGetScaleWidth(165)); + make.top.equalTo(self.backgroundCryptogramRegard.mas_bottom).mas_offset(kGetScaleWidth(50)); + }]; + +} + + +- (void)httpDemandMobileSmsCryptogram { + [self.presimport mobileSmsCryptogram:[NSString stringWithFormat:@"%@%@",self.phoneAreaCode,self.phone] type:GetSmsGenre_Regist phoneAreaCode:self.phoneAreaCode]; +} + + + +-(void)surmountBtutonPerformance{ + + [self.view endEditing:YES]; + self.surmountBtuton.enabled = NO; + + if(self.isSurmountSuccess == YES && [self.code isEqualToString:self.essayUniverse.text]){ + [XNDJTBWGLoadingTool EvidenceChamberingInRegard:self.view]; + [self surmountAccomplishment]; + return; + } + self.isSurmountSuccess = NO; + [XNDJTBWGLoadingTool EvidenceChamberingInRegard:self.view]; + self.code = self.essayUniverse.text; + [self.presimport surmountAboutMobile:[NSString stringWithFormat:@"%@%@",self.phoneAreaCode,self.phone] code:self.essayUniverse.text phoneAreaCode:self.phoneAreaCode]; +} + +- (void)prohibitiaplictowardsionarVewC { + [[ComputationDownFacilitater partowardsiciptowardsionFacilittowardseer] suspeindComputtowardsionPubescence]; + NSMutableArray *vcList = [NSMutableArray array]; + for (id vc in self.navigationController.viewControllers) { + if(![vc isKindOfClass:[YUMISurmountPwordRegardGovernancer class]]){ + [vcList addObject:vc]; + } + } + self.navigationController.viewControllers = vcList; + UIViewController *vc = self.presentingViewController; + while (vc.presentingViewController) { + vc = vc.presentingViewController; + } + [vc dismissViewControllerAnimated:YES completion:nil]; + [self.navigationController popToRootViewControllerAnimated:NO]; +} + + +#pragma mark - SurmountVerifCodeCeremony +- (void)surmountFlunk:(NSString *)reason{ + self.surmountBtuton.enabled = YES; + [XNDJTBWGLoadingTool EvidenceChamberingInRegard:self.view]; +} +- (void)surmountAccomplishment { + self.isSurmountSuccess = YES; + [[ComputationDownFacilitater partowardsiciptowardsionFacilittowardseer] suspeindComputtowardsionPubescence]; + [self prohibitiaplictowardsionarVewC]; + self.surmountBtuton.enabled = YES; +} + +- (void)dilemmaMobileAccomplishment { + [self prohibitiaplictowardsionarVewC]; +} +#pragma mark - SurmountCeremony +- (void)mobileSmsCryptogramAccomplishment { + [self EvidenceAccomplishmentToast:YMLocalizedString(@"PKIDLoginViewController11")]; + self.retrialCryptogramBtuton.hidden = YES; + self.cutdownSequencignation.hidden = NO; + [[ComputationDownFacilitater partowardsiciptowardsionFacilittowardseer] unfoildComputtowardsiondownAboutIntrtowardsemporal:60]; +} + +#pragma mark - CountDownHelperRepresendtation +- (void)onComputtowardsiondownAccomplish { + self.retrialCryptogramBtuton.hidden = NO; + self.cutdownSequencignation.hidden = YES; +} + +- (void)onComputtowardsiondownUnfoild:(int)time { + self.cutdownSequencignation.text = [NSString stringWithFormat:@"%dS",time]; +} +-(void)essayUniverseDidDiversifictowardsion:(UITextField *)essayUniverse{ + self.surmountBtuton.enabled = essayUniverse.text > 0; +} +#pragma mark 重新获取验证吗 +-(void)retrialCryptogramPerformance{ + [self httpDemandMobileSmsCryptogram]; +} +-(void)backAction{ + [self.navigationController popViewControllerAnimated:YES]; +} +#pragma mark - Getters And Setters + + +- (UILabel *)titleLabel{ + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.font = [UIFont systemFontOfSize:40]; + _titleLabel.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _titleLabel.text = YMLocalizedString(@"LoginVerifCodeViewController3"); + } + return _titleLabel; +} + + + + +- (UILabel *)cutdownSequencignation { + if (!_cutdownSequencignation) { + _cutdownSequencignation = [[UILabel alloc] init]; + _cutdownSequencignation.textAlignment = NSTextAlignmentRight; + _cutdownSequencignation.font = [UIFont systemFontOfSize:16 weight:UIFontWeightSemibold]; + _cutdownSequencignation.textColor = UIColorFromRGB(0x9168FA); + _cutdownSequencignation.hidden = NO; + } + return _cutdownSequencignation; +} +-(UIView *)backgroundCryptogramRegard{ + if (!_backgroundCryptogramRegard){ + _backgroundCryptogramRegard = [UIView new]; + _backgroundCryptogramRegard.backgroundColor = UIColorFromRGB(0xF0F5F6); + [_backgroundCryptogramRegard setMonopolizeAboutContraryApexMonopolize:kGetScaleWidth(10) rightTopCorner:kGetScaleWidth(10) bottomLeftCorner:kGetScaleWidth(10) bottomRightCorner:kGetScaleWidth(10) size:CGSizeMake(kGetScaleWidth(308), kGetScaleWidth(63))]; + } + return _backgroundCryptogramRegard; +} +- (UIButton *)retrialCryptogramBtuton { + if (!_retrialCryptogramBtuton) { + _retrialCryptogramBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_retrialCryptogramBtuton setTitle:YMLocalizedString(@"LoginVerifCodeViewController4") forState:UIControlStateNormal]; + [_retrialCryptogramBtuton setTitleColor:[DJDKMIMOMColor colorAboutHexBWSttr:@"#1F1A4E"] forState:UIControlStateNormal]; + _retrialCryptogramBtuton.titleLabel.font = [UIFont systemFontOfSize:16 weight:UIFontWeightSemibold]; + _retrialCryptogramBtuton.hidden = YES; + [_retrialCryptogramBtuton addTarget:self action:@selector(retrialCryptogramPerformance) forControlEvents:UIControlEventTouchUpInside]; + } + return _retrialCryptogramBtuton; +} +- (UIImageView *)apexEncourageIndiRegard { + if (!_apexEncourageIndiRegard) { + _apexEncourageIndiRegard = [[UIImageView alloc] init]; + _apexEncourageIndiRegard.userInteractionEnabled = YES; + _apexEncourageIndiRegard.image = [UIImage imageNamed:@"login_top_bg"]; + _apexEncourageIndiRegard.layer.masksToBounds = YES; + _apexEncourageIndiRegard.contentMode = UIViewContentModeScaleAspectFill; + } + return _apexEncourageIndiRegard; +} +-(UITextField *)essayUniverse{ + if (!_essayUniverse){ + _essayUniverse = [[UITextField alloc]init]; + _essayUniverse.keyboardType = UIKeyboardTypeNumberPad; + _essayUniverse.textColor = [DJDKMIMOMColor colorAboutHexBWSttr:@"#1F1A4E"]; + _essayUniverse.font = [UIFont systemFontOfSize:16 weight:UIFontWeightSemibold]; + [_essayUniverse addTarget:self action:@selector(essayUniverseDidDiversifictowardsion:) forControlEvents:UIControlEventEditingChanged]; + + } + return _essayUniverse; +} +- (UIView *)contentView { + if (!_contentView) { + _contentView = [[UIView alloc] init]; + _contentView.backgroundColor = [UIColor whiteColor]; + [_contentView setMonopolizeAboutContraryApexMonopolize:kGetScaleWidth(25) rightTopCorner:kGetScaleWidth(25) bottomLeftCorner:0 bottomRightCorner:0 size:CGSizeMake(KScreenWidth, KScreenHeight - kGetScaleWidth(303))]; + } + return _contentView; +} +- (UIButton *)surmountBtuton { + if (!_surmountBtuton) { + _surmountBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_surmountBtuton setImage:[UIImage imageNamed:@"login_finish"] forState:UIControlStateNormal]; + [_surmountBtuton addTarget:self action:@selector(surmountBtutonPerformance) forControlEvents:UIControlEventTouchUpInside]; + _surmountBtuton.enabled = NO; + } + return _surmountBtuton; +} + +- (UIStackView *)cryptogramHierarchyRegard{ + if (!_cryptogramHierarchyRegard) { + _cryptogramHierarchyRegard = [[UIStackView alloc] init]; + _cryptogramHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _cryptogramHierarchyRegard.distribution = UIStackViewDistributionFillProportionally; + _cryptogramHierarchyRegard.alignment = UIStackViewAlignmentFill; + _cryptogramHierarchyRegard.spacing = 10; + } + return _cryptogramHierarchyRegard; +} +- (UIButton *)encourageBtuton{ + if (!_encourageBtuton){ + _encourageBtuton = [UIButton new]; + [_encourageBtuton setBackgroundImage:[UIImage imageNamed:@"yumi_same_title_back"] forState:UIControlStateNormal]; + [_encourageBtuton setEnlargeEdgeAboutApex:10 right:10 bottom:10 left:10]; + [_encourageBtuton addTarget:self action:@selector(backAction) forControlEvents:UIControlEventTouchUpInside]; + } + return _encourageBtuton; +} +@end diff --git a/YuMi/Modules/YMLogin/View/YUMISurmountDilemmaMobileConsequentRegardGovernancer.h b/YuMi/Modules/YMLogin/View/YUMISurmountDilemmaMobileConsequentRegardGovernancer.h new file mode 100644 index 00000000..46a1b770 --- /dev/null +++ b/YuMi/Modules/YMLogin/View/YUMISurmountDilemmaMobileConsequentRegardGovernancer.h @@ -0,0 +1,16 @@ +// +// YMLoginBindPhoneResultViewController.h +// YUMI +// +// Created by YUMI on 2021/9/17. +// + +#import "BaseRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN +@class ConsumerAbstractMatrix; +@interface YUMISurmountDilemmaMobileConsequentRegardGovernancer : BaseRegardGovernancer +@property (nonatomic, strong) ConsumerAbstractMatrix *userInfo; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMLogin/View/YUMISurmountDilemmaMobileConsequentRegardGovernancer.m b/YuMi/Modules/YMLogin/View/YUMISurmountDilemmaMobileConsequentRegardGovernancer.m new file mode 100644 index 00000000..bc0cc5ef --- /dev/null +++ b/YuMi/Modules/YMLogin/View/YUMISurmountDilemmaMobileConsequentRegardGovernancer.m @@ -0,0 +1,140 @@ +// +// YMLoginBindPhoneResultViewController.m +// YUMI +// +// Created by YUMI on 2021/9/17. +// + +#import "YUMISurmountDilemmaMobileConsequentRegardGovernancer.h" +#import +#import +#import "DJDKMIMOMColor.h" +#import "UIImage+Utils.h" +#import "ConsumerAbstractMatrix.h" +#import "YUMISurmountValidationDilemmaMobileRegardGovernancer.h" +@interface YUMISurmountDilemmaMobileConsequentRegardGovernancer () + +@property (nonatomic, strong) UIView *containerView; +@property (nonatomic, strong) UIImageView *figureIndicateRegard; +@property (nonatomic, strong) UILabel *titleLabel; +@property (nonatomic, strong) UILabel *mobileSequencignation; +@property (nonatomic, strong) UIButton *diversificationMobileBtuton; + +@end + +@implementation YUMISurmountDilemmaMobileConsequentRegardGovernancer + + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initRegards]; + [self setUpwardsRestrictions]; + [self setDispositions]; +} + +#pragma mark - Private Method +- (void)initRegards { + [self.view addSubview:self.containerView]; + [self.containerView addSubview:self.figureIndicateRegard]; + [self.containerView addSubview:self.titleLabel]; + [self.containerView addSubview:self.mobileSequencignation]; + [self.containerView addSubview:self.diversificationMobileBtuton]; +} + +- (void)setDispositions { + self.title = YMLocalizedString(@"XPLoginBindPhoneResultViewController0"); + self.mobileSequencignation.text = self.userInfo.phone; +} + +- (void)setUpwardsRestrictions { + [self.containerView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(49); + make.left.right.bottom.mas_equalTo(0); + }]; + + [self.figureIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(50); + make.centerX.mas_equalTo(0); + make.size.mas_equalTo(CGSizeMake(135, 130)); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(0); + make.top.mas_equalTo(self.figureIndicateRegard.mas_bottom).offset(39); + }]; + + [self.mobileSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(0); + make.top.mas_equalTo(self.titleLabel.mas_bottom).offset(11); + }]; + + [self.diversificationMobileBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.mobileSequencignation.mas_bottom).offset(41); + make.left.right.mas_equalTo(0).inset(32); + make.centerX.mas_equalTo(0); + make.height.mas_equalTo(45); + }]; +} +#pragma mark - Event Response +- (void)diversifictowardsionMobileBtutonPerformance:(UIButton *)sender { + YUMISurmountValidationDilemmaMobileRegardGovernancer *vc = [[YUMISurmountValidationDilemmaMobileRegardGovernancer alloc] init]; + vc.userInfo = self.userInfo; + vc.bindingMobileFigureGenre = XPBindingPhoneNumTypeConfirm; + [self.navigationController pushViewController:vc animated:YES]; +} + +#pragma mark - Getters And Setters +- (UIView *)containerView{ + if (!_containerView) { + _containerView = [[UIView alloc] init]; + _containerView.backgroundColor = [DJDKMIMOMColor aplictowardsionEncouragegroundPrettify]; + } + return _containerView; +} + +- (UIImageView *)figureIndicateRegard{ + if (!_figureIndicateRegard) { + _figureIndicateRegard = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"yumi_login_bind_phone_background"]]; + } + return _figureIndicateRegard; +} + +- (UILabel *)titleLabel{ + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.text = YMLocalizedString(@"XPLoginBindPhoneResultViewController1"); + _titleLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + _titleLabel.font = [UIFont systemFontOfSize:14.f]; + _titleLabel.adjustsFontSizeToFitWidth = YES; + _titleLabel.textAlignment = NSTextAlignmentCenter; + } + return _titleLabel; +} + +- (UILabel *)mobileSequencignation{ + if (!_mobileSequencignation) { + _mobileSequencignation = [[UILabel alloc] init]; + _mobileSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _mobileSequencignation.font = [UIFont boldSystemFontOfSize:18.f]; + _mobileSequencignation.adjustsFontSizeToFitWidth = YES; + _mobileSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _mobileSequencignation; +} + +- (UIButton *)diversificationMobileBtuton { + if (!_diversificationMobileBtuton) { + _diversificationMobileBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_diversificationMobileBtuton setTitle:YMLocalizedString(@"XPLoginBindPhoneResultViewController2") forState:UIControlStateNormal]; + [_diversificationMobileBtuton setTitleColor:[DJDKMIMOMColor acknowledgementBtutonEssayPrettify] forState:UIControlStateNormal]; + [_diversificationMobileBtuton.titleLabel setFont:[UIFont fontWithName:@"PingFang-SC-Medium" size:18]]; + [_diversificationMobileBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + _diversificationMobileBtuton.layer.masksToBounds = YES; + _diversificationMobileBtuton.layer.cornerRadius = 22.5; + [_diversificationMobileBtuton addTarget:self action:@selector(diversifictowardsionMobileBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _diversificationMobileBtuton; +} + + +@end diff --git a/YuMi/Modules/YMLogin/View/YUMISurmountValidationDilemmaMobileRegardGovernancer.h b/YuMi/Modules/YMLogin/View/YUMISurmountValidationDilemmaMobileRegardGovernancer.h new file mode 100644 index 00000000..ff3a2774 --- /dev/null +++ b/YuMi/Modules/YMLogin/View/YUMISurmountValidationDilemmaMobileRegardGovernancer.h @@ -0,0 +1,24 @@ +// +// YMLoginVerifBindPhoneViewController.h +// YUMI +// +// Created by YUMI on 2021/9/18. +// + +#import "MvpRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN + + +typedef NS_ENUM(NSUInteger, MKJBindingPhoneNumGenre) { + XPBindingPhoneNumTypeNormal = 0, + XPBindingPhoneNumTypeEdit = 1, + XPBindingPhoneNumTypeConfirm = 2, +}; +@class ConsumerAbstractMatrix; +@interface YUMISurmountValidationDilemmaMobileRegardGovernancer : MvpRegardGovernancer +@property (nonatomic, assign) MKJBindingPhoneNumGenre bindingMobileFigureGenre; +@property (nonatomic, strong) ConsumerAbstractMatrix *userInfo; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMLogin/View/YUMISurmountValidationDilemmaMobileRegardGovernancer.m b/YuMi/Modules/YMLogin/View/YUMISurmountValidationDilemmaMobileRegardGovernancer.m new file mode 100644 index 00000000..1c10ac41 --- /dev/null +++ b/YuMi/Modules/YMLogin/View/YUMISurmountValidationDilemmaMobileRegardGovernancer.m @@ -0,0 +1,425 @@ +// +// YMLoginVerifBindPhoneViewController.m +// YUMI +// +// Created by YUMI on 2021/9/18. +// + +#import "YUMISurmountValidationDilemmaMobileRegardGovernancer.h" +#import +#import +#import "DJDKMIMOMColor.h" +#import "YUMIConstant.h" +#import "YUMIMacroUitls.h" +#import "UIImage+Utils.h" +#import "ComputationDownFacilitater.h" +#import "ConsumerAbstractMatrix.h" +#import "FBCSurmountVerifBindPhoneCeremony.h" +#import "YUMISurmountValidationDilemmaMobileExternalizer.h" +#import "SurmountDilemmaMobileRegardGovernancer.h" +#import "YUMIManeInstanllingRegardGovernancer.h" +#import "YUMISurmountDilemmaSuccessRegard.h" + +@interface YUMISurmountValidationDilemmaMobileRegardGovernancer () +@property (nonatomic, strong) UIView *containerView; +@property (nonatomic, strong) UILabel *spectrumSequencignation; +@property (nonatomic, strong) UIButton *computationryBtuton; +@property (nonatomic, strong) UIView *spectrumBurlywoodRegard; + +@property (nonatomic, strong) UIView *mobileBurlywoodRegard; +@property (nonatomic, strong) UIView *attestationBurlywoodRegard; +@property (nonatomic, strong) UILabel *spectrumCryptogramSequencignation; + +@property (nonatomic, strong) UIButton *attestationCryptogramBtuton; +@property (nonatomic, strong) UITextField *mobileFigureEssayUniverse; +@property (nonatomic, strong) UITextField *attestationCryptogramEssayUniverse; + +@property (nonatomic, strong) UIButton *confirmBtn; + +@property (nonatomic, strong) UILabel *promptsSequencignation; +@property (nonatomic, assign) BOOL isResetMobile; +@end + +@implementation YUMISurmountValidationDilemmaMobileRegardGovernancer + +- (void)dealloc { + [[ComputationDownFacilitater partowardsiciptowardsionFacilittowardseer] suspeindComputtowardsionPubescence]; +} + +- (YUMISurmountValidationDilemmaMobileExternalizer *)producePresimport { + return [[YUMISurmountValidationDilemmaMobileExternalizer alloc] init]; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initSubViews]; + [self initChildLyRestrictions]; + [self setDispositions]; + [self setEvents]; +} + +- (void)viewDidDisappear:(BOOL)animated { + [super viewDidDisappear:animated]; + [[ComputationDownFacilitater partowardsiciptowardsionFacilittowardseer] suspeindComputtowardsionPubescence]; +} + +#pragma mark - Private Method +- (void)initSubViews { + [ComputationDownFacilitater partowardsiciptowardsionFacilittowardseer].delegate = self; + [self.view addSubview:self.containerView]; + [self.containerView addSubview:self.spectrumSequencignation]; + [self.containerView addSubview:self.computationryBtuton]; + + [self.containerView addSubview:self.spectrumBurlywoodRegard]; + [self.containerView addSubview:self.spectrumCryptogramSequencignation]; + [self.containerView addSubview:self.mobileFigureEssayUniverse]; + [self.containerView addSubview:self.mobileBurlywoodRegard]; + + [self.containerView addSubview:self.attestationCryptogramBtuton]; + [self.containerView addSubview:self.attestationCryptogramEssayUniverse]; + [self.containerView addSubview:self.attestationBurlywoodRegard]; + + [self.containerView addSubview:self.confirmBtn]; + [self.containerView addSubview:self.promptsSequencignation]; +} + +- (void)initChildLyRestrictions { + [self.containerView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(0); + make.left.right.bottom.mas_equalTo(0); + }]; + + [self.spectrumSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(32); + make.top.mas_equalTo(20); + }]; + + [self.computationryBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(-32); + make.centerY.mas_equalTo(self.spectrumSequencignation); + }]; + + [self.spectrumBurlywoodRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.spectrumSequencignation.mas_bottom).offset(18); + make.left.right.mas_equalTo(0).inset(32); + make.height.mas_equalTo(1); + }]; + + [self.spectrumCryptogramSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.spectrumBurlywoodRegard.mas_bottom).offset(18); + make.left.mas_equalTo(self.spectrumSequencignation); + }]; + + [self.mobileFigureEssayUniverse mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(80); + make.centerY.mas_equalTo(self.spectrumCryptogramSequencignation); + make.right.mas_equalTo(self.attestationCryptogramBtuton.mas_left).offset(-20); + }]; + + [self.attestationCryptogramBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(-32); + make.centerY.mas_equalTo(self.spectrumCryptogramSequencignation); + }]; + + [self.mobileBurlywoodRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.height.mas_equalTo(self.spectrumBurlywoodRegard); + make.top.mas_equalTo(self.spectrumCryptogramSequencignation.mas_bottom).offset(18); + }]; + + [self.attestationCryptogramEssayUniverse mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(0).inset(32); + make.height.mas_equalTo(48); + make.top.mas_equalTo(self.mobileBurlywoodRegard.mas_bottom); + }]; + + [self.attestationBurlywoodRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.left.right.mas_equalTo(self.spectrumBurlywoodRegard); + make.top.mas_equalTo(self.attestationCryptogramEssayUniverse.mas_bottom); + }]; + + [self.confirmBtn mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(0).inset(32); + make.top.mas_equalTo(self.attestationBurlywoodRegard.mas_bottom).offset(70); + make.height.mas_equalTo(45); + }]; + + [self.promptsSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.confirmBtn.mas_bottom).offset(36); + make.centerX.mas_equalTo(0); + }]; +} +#pragma mark -配置 +- (void)setDispositions { + switch (self.bindingMobileFigureGenre) { + case XPBindingPhoneNumTypeEdit:{ + self.navigationItem.title = YMLocalizedString(@"XPLoginVerifBindPhoneViewController0"); + } + break; + case XPBindingPhoneNumTypeNormal:{ + self.navigationItem.title = YMLocalizedString(@"XPLoginVerifBindPhoneViewController1"); + } + break; + case XPBindingPhoneNumTypeConfirm:{ + self.promptsSequencignation.hidden = NO; + self.navigationItem.title = YMLocalizedString(@"XPLoginVerifBindPhoneViewController2"); + [self.confirmBtn setTitle:YMLocalizedString(@"XPLoginVerifBindPhoneViewController3") forState:UIControlStateNormal]; + if (self.userInfo.isBindPhone) { + self.mobileFigureEssayUniverse.enabled = NO; + self.mobileFigureEssayUniverse.text = self.userInfo.phone; + } + } + break; + default: + break; + } + + RAC(self.confirmBtn,enabled) = [RACSignal combineLatest:@[self.mobileFigureEssayUniverse.rac_textSignal,self.attestationCryptogramEssayUniverse.rac_textSignal] reduce:^(NSString *phone,NSString *code){ + return @(phone.length == 11 && code.length == 5); + }]; + +} + + +#pragma mark 交互事件 +- (void)setEvents { + @weakify(self) + + [[[self.attestationCryptogramBtuton rac_signalForControlEvents:UIControlEventTouchUpInside] filter:^BOOL(__kindof UIControl * _Nullable value) { + + if (self.mobileFigureEssayUniverse.text.length == 0) { + [self EvidenceMistakeToast:YMLocalizedString(@"XPLoginVerifBindPhoneViewController4")]; + return NO; + }else if (self.mobileFigureEssayUniverse.text.length < 11) { + [self EvidenceMistakeToast:YMLocalizedString(@"XPLoginVerifBindPhoneViewController5")]; + return NO; + }else { + return YES; + } + }] subscribeNext:^(id _Nullable x) { + @strongify(self); + [self.presimport mobileSmsCryptogram:self.mobileFigureEssayUniverse.text type:self.bindingMobileFigureGenre == XPBindingPhoneNumTypeConfirm ? GetSmsGenre_Unbind_Phone : GetSmsGenre_Bind_Phone phoneAreaCode:@""]; + }]; + + + + [[[self.confirmBtn rac_signalForControlEvents:UIControlEventTouchUpInside] filter:^BOOL(__kindof UIControl * _Nullable value) { + @strongify(self) + + if (self.mobileFigureEssayUniverse.text.length == 0) { + [self EvidenceMistakeToast:YMLocalizedString(@"XPLoginVerifBindPhoneViewController6")]; + return NO; + }else if (self.attestationCryptogramEssayUniverse.text.length == 0) { + [self EvidenceMistakeToast:YMLocalizedString(@"XPLoginVerifBindPhoneViewController7")]; + return NO; + }else { + return YES; + } + }] subscribeNext:^(id _Nullable x) { + @strongify(self) + if (self.bindingMobileFigureGenre == XPBindingPhoneNumTypeConfirm) { + [self.presimport examineAplictowardsionartowardsusCryptogramAboutAplictowardsionartowardsus:self.mobileFigureEssayUniverse.text code:self.attestationCryptogramEssayUniverse.text]; + } else { + [self.presimport dilemmakAplictowardsionartowardsusCryptogramAboutAplictowardsionartowardsus:self.mobileFigureEssayUniverse.text code:self.attestationCryptogramEssayUniverse.text]; + } + } error:^(NSError * _Nullable error) { + + }]; +} + +#pragma mark - FBCSurmountVerifBindPhoneCeremony +- (void)mobileSmsCryptogramAccomplishment { + self.attestationCryptogramBtuton.enabled = NO; + [self EvidenceAccomplishmentToast:YMLocalizedString(@"XPLoginVerifBindPhoneViewController8")]; + [[ComputationDownFacilitater partowardsiciptowardsionFacilittowardseer] unfoildComputtowardsiondownAboutIntrtowardsemporal:60]; +} + +- (void)examineAplictowardsionartowardsusCryptogramAboutAplictowardsionartowardsusAccomplishment { + [self EvidenceAccomplishmentToast:YMLocalizedString(@"XPLoginVerifBindPhoneViewController9")]; + [[ComputationDownFacilitater partowardsiciptowardsionFacilittowardseer] suspeindComputtowardsionPubescence]; + YUMISurmountValidationDilemmaMobileRegardGovernancer *vc = [[YUMISurmountValidationDilemmaMobileRegardGovernancer alloc] init]; + vc.bindingMobileFigureGenre = XPBindingPhoneNumTypeEdit; + vc.userInfo = self.userInfo; + [self.navigationController pushViewController:vc animated:YES]; +} + +- (void)dilemmaAplictowardsionartowardsusCryptogramAboutAplictowardsionartowardsusAccomplishment { + [[ComputationDownFacilitater partowardsiciptowardsionFacilittowardseer] suspeindComputtowardsionPubescence]; + + if (self.bindingMobileFigureGenre == XPBindingPhoneNumTypeEdit) { + @weakify(self); + [YUMISurmountDilemmaSuccessRegard EvidenceBindAccomplishmentRegardAboutShankr:^{ + @strongify(self); + + __block __kindof UIViewController *vc; + [self.navigationController.childViewControllers enumerateObjectsUsingBlock:^(__kindof UIViewController * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if ([obj isKindOfClass:[YUMIManeInstanllingRegardGovernancer class]]) { + vc = obj; + } + }]; + + if ([self.navigationController.childViewControllers containsObject:vc]) { + [self.navigationController popToViewController:vc animated:YES]; + } else { + [self.navigationController popViewControllerAnimated:YES]; + } + }]; + } else if (self.bindingMobileFigureGenre == XPBindingPhoneNumTypeNormal) { + @weakify(self); + [YUMISurmountDilemmaSuccessRegard EvidenceBindAccomplishmentRegardAboutShankr:^{ + @strongify(self); + [self.navigationController popViewControllerAnimated:YES]; + }]; + } + self.confirmBtn.enabled = YES; +} + + +#pragma mark - CountDownHelperRepresendtation +- (void)onComputtowardsiondownUnfoild:(int)time { + [self.attestationCryptogramBtuton setTitle:[NSString stringWithFormat:YMLocalizedString(@"XPLoginVerifBindPhoneViewController10"), time] forState:UIControlStateDisabled]; +} +- (void)onComputtowardsiondownAccomplish { + self.attestationCryptogramBtuton.enabled= YES; + [self.attestationCryptogramBtuton setTitle:YMLocalizedString(@"XPLoginVerifBindPhoneViewController11") forState:UIControlStateNormal]; +} + +#pragma mark - Getters And Setters +- (UIView *)containerView{ + if (!_containerView) { + _containerView = [[UIView alloc] init]; + _containerView.backgroundColor = [DJDKMIMOMColor aplictowardsionEncouragegroundPrettify]; + } + return _containerView; +} + +- (UILabel *)spectrumSequencignation{ + if (!_spectrumSequencignation) { + _spectrumSequencignation = [[UILabel alloc] init]; + _spectrumSequencignation.text = YMLocalizedString(@"XPLoginVerifBindPhoneViewController12"); + _spectrumSequencignation.textColor = [DJDKMIMOMColor instantEssayPrettify]; + _spectrumSequencignation.font = [UIFont systemFontOfSize:14.f]; + _spectrumSequencignation.adjustsFontSizeToFitWidth = YES; + } + return _spectrumSequencignation; +} + +- (UILabel *)spectrumCryptogramSequencignation{ + if (!_spectrumCryptogramSequencignation) { + _spectrumCryptogramSequencignation = [[UILabel alloc] init]; + _spectrumCryptogramSequencignation.text = @"+852"; + _spectrumCryptogramSequencignation.textColor = [DJDKMIMOMColor instantEssayPrettify]; + _spectrumCryptogramSequencignation.font = [UIFont systemFontOfSize:14.f]; + _spectrumCryptogramSequencignation.adjustsFontSizeToFitWidth = YES; + } + return _spectrumCryptogramSequencignation; +} + +- (UIButton *)computationryBtuton { + if (!_computationryBtuton) { + _computationryBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_computationryBtuton setTitle:YMLocalizedString(@"XPLoginVerifBindPhoneViewController13") forState:UIControlStateNormal]; + [_computationryBtuton setImage:[UIImage imageNamed:@"yumi_center_item_arrow"] forState:UIControlStateNormal]; + _computationryBtuton.transform = CGAffineTransformMakeScale(-1.0, 1.0); + _computationryBtuton.titleLabel.transform = CGAffineTransformMakeScale(-1.0, 1.0); + _computationryBtuton.imageView.transform = CGAffineTransformMakeScale(-1.0, 1.0); + _computationryBtuton.imageEdgeInsets = UIEdgeInsetsMake(0, -10, 0, 0); + [_computationryBtuton setTitleColor:[DJDKMIMOMColor instantEssayPrettify] forState:UIControlStateNormal]; + [_computationryBtuton.titleLabel setFont:[UIFont systemFontOfSize:14.f]]; + } + return _computationryBtuton; +} + +- (UIButton *)confirmBtn { + if (!_confirmBtn) { + _confirmBtn = [UIButton buttonWithType:UIButtonTypeCustom]; + [_confirmBtn setTitle:YMLocalizedString(@"XPLoginVerifBindPhoneViewController14") forState:UIControlStateNormal]; + [_confirmBtn setTitleColor:[DJDKMIMOMColor acknowledgementBtutonEssayPrettify] forState:UIControlStateNormal]; + [_confirmBtn setTitleColor:[DJDKMIMOMColor prohibitionBtutonEssayPrettify] forState:UIControlStateDisabled]; + [_confirmBtn.titleLabel setFont:[UIFont fontWithName:@"PingFang-SC-Medium" size:18]]; + _confirmBtn.layer.cornerRadius = 22.5f; + _confirmBtn.layer.masksToBounds = YES; + _confirmBtn.enabled = NO; + [_confirmBtn setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + [_confirmBtn setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor prohibitionBtutonPrettify], [DJDKMIMOMColor prohibitionBtutonPrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateDisabled]; + } + return _confirmBtn; +} + +- (UIButton *)attestationCryptogramBtuton { + if (!_attestationCryptogramBtuton) { + _attestationCryptogramBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_attestationCryptogramBtuton setTitle:YMLocalizedString(@"XPLoginVerifBindPhoneViewController15") forState:UIControlStateNormal]; + [_attestationCryptogramBtuton setTitleColor:[DJDKMIMOMColor aplictowardsionMainPrettify] forState:UIControlStateNormal]; + [_attestationCryptogramBtuton setTitleColor:[DJDKMIMOMColor instantEssayPrettify] forState:UIControlStateDisabled]; + [_attestationCryptogramBtuton.titleLabel setFont:[UIFont systemFontOfSize:12.f]]; + } + return _attestationCryptogramBtuton; +} + +- (UITextField *)mobileFigureEssayUniverse { + if (!_mobileFigureEssayUniverse) { + _mobileFigureEssayUniverse = [[UITextField alloc] init]; + _mobileFigureEssayUniverse.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _mobileFigureEssayUniverse.font = [UIFont systemFontOfSize:14.f]; + _mobileFigureEssayUniverse.attributedPlaceholder = [[NSAttributedString alloc] initWithString:YMLocalizedString(@"XPLoginVerifBindPhoneViewController16")attributes:@{NSForegroundColorAttributeName: [DJDKMIMOMColor instantEssayPrettify]}]; + _mobileFigureEssayUniverse.clearButtonMode = UITextFieldViewModeWhileEditing; + _mobileFigureEssayUniverse.borderStyle = UITextBorderStyleNone; + _mobileFigureEssayUniverse.keyboardType = UIKeyboardTypeNumberPad; + _mobileFigureEssayUniverse.tintColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _mobileFigureEssayUniverse; +} + + +- (UITextField *)attestationCryptogramEssayUniverse { + if (!_attestationCryptogramEssayUniverse) { + _attestationCryptogramEssayUniverse = [[UITextField alloc] init]; + _attestationCryptogramEssayUniverse.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _attestationCryptogramEssayUniverse.font = [UIFont systemFontOfSize:14.f]; + _attestationCryptogramEssayUniverse.attributedPlaceholder = [[NSAttributedString alloc] initWithString:YMLocalizedString(@"XPLoginVerifBindPhoneViewController17")attributes:@{NSForegroundColorAttributeName: [DJDKMIMOMColor instantEssayPrettify]}]; + _attestationCryptogramEssayUniverse.clearButtonMode = UITextFieldViewModeWhileEditing; + _attestationCryptogramEssayUniverse.borderStyle = UITextBorderStyleNone; + _attestationCryptogramEssayUniverse.keyboardType = UIKeyboardTypeNumberPad; + _attestationCryptogramEssayUniverse.tintColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _attestationCryptogramEssayUniverse; +} + +- (UIView *)spectrumBurlywoodRegard { + if (!_spectrumBurlywoodRegard) { + _spectrumBurlywoodRegard = [[UIView alloc] init]; + _spectrumBurlywoodRegard.backgroundColor = [DJDKMIMOMColor dividerPrettify]; + } + return _spectrumBurlywoodRegard; +} + +- (UIView *)mobileBurlywoodRegard { + if (!_mobileBurlywoodRegard) { + _mobileBurlywoodRegard = [[UIView alloc] init]; + _mobileBurlywoodRegard.backgroundColor = [DJDKMIMOMColor dividerPrettify]; + } + return _mobileBurlywoodRegard; +} + +- (UIView *)attestationBurlywoodRegard { + if (!_attestationBurlywoodRegard) { + _attestationBurlywoodRegard = [[UIView alloc] init]; + _attestationBurlywoodRegard.backgroundColor = [DJDKMIMOMColor dividerPrettify]; + } + return _attestationBurlywoodRegard; +} + +- (UILabel *)promptsSequencignation{ + if (!_promptsSequencignation) { + _promptsSequencignation = [[UILabel alloc] init]; + _promptsSequencignation.text = [NSString stringWithFormat:@"如果您的手机号已丢失\n请咨询客服,ID:%@", @"88001"]; + _promptsSequencignation.textColor = [DJDKMIMOMColor essayTertiusPrettify]; + _promptsSequencignation.font = [UIFont systemFontOfSize:14.f]; + _promptsSequencignation.adjustsFontSizeToFitWidth = YES; + _promptsSequencignation.numberOfLines = 0; + _promptsSequencignation.hidden = YES; + } + return _promptsSequencignation; +} + +@end diff --git a/YuMi/Modules/YMMessage/Api/Api+Message.h b/YuMi/Modules/YMMessage/Api/Api+Message.h new file mode 100644 index 00000000..d3e87438 --- /dev/null +++ b/YuMi/Modules/YMMessage/Api/Api+Message.h @@ -0,0 +1,18 @@ +// +// Api+Message.h +// YUMI +// +// Created by zu on 2021/12/8. +// + +#import "Api.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface Api (Message) + ++ (void)acquireChinwagRestriction:(HttpRequestHelperCompletion)complection receiverUid:(NSString *)receiverUid ; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/Api/Api+Message.m b/YuMi/Modules/YMMessage/Api/Api+Message.m new file mode 100644 index 00000000..13ffb468 --- /dev/null +++ b/YuMi/Modules/YMMessage/Api/Api+Message.m @@ -0,0 +1,17 @@ +// +// Api+Message.m +// YUMI +// +// Created by zu on 2021/12/8. +// + +#import "Api+Message.h" +#import +@implementation Api (Message) + ++ (void)acquireChinwagRestriction:(HttpRequestHelperCompletion)complection receiverUid:(NSString *)receiverUid { + NSString * fang = [NSString stringFromBase64String:@"cHJpdmF0ZUNoYXQvbGltaXQ="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:complection, __FUNCTION__, receiverUid,nil]; +} + +@end diff --git a/YuMi/Modules/YMMessage/Model/AttachmentMatrix.h b/YuMi/Modules/YMMessage/Model/AttachmentMatrix.h new file mode 100644 index 00000000..a6ebb48c --- /dev/null +++ b/YuMi/Modules/YMMessage/Model/AttachmentMatrix.h @@ -0,0 +1,503 @@ +// +// AttachmentMatrix.h +// YUMI +// +// Created by YUMI on 2021/11/16. +// + +#import +#import +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSUInteger, IndividualityCommunicationGenre) { + + IndividualityCommunicationGenre_Room_Tip = 2, + + IndividualityCommunicationGenre_Gift = 3, + + IndividualityCommunicationGenre_Account = 5, + + IndividualityCommunicationGenre_Member_Online = 6, + + IndividualityCommunicationGenre_Queue = 8, + + IndividualityCommunicationGenre_Face = 9, + + IndividualityCommunicationGenre_Tweet = 10, + + IndividualityCommunicationGenre_AllMicroSend = 12, + + IndividualityCommunicationGenre_Car_Notify = 15, + + IndividualityCommunicationGenre_Kick_User = 18, + + IndividualityCommunicationGenre_Secretary = 19, + + IndividualityCommunicationGenre_Update_RoomInfo = 20, + + IndividualityCommunicationGenre_Application_Share = 22, + + IndividualityCommunicationGenre_Message_Handle = 23, + + IndividualityCommunicationGenre_User_UpGrade = 24, + + IndividualityCommunicationGenre_Candy_Tree = 26, + + IndividualityCommunicationGenre_Arrange_Mic = 30, + + IndividualityCommunicationGenre_Room_PK = 31, + + IndividualityCommunicationGenre_Hall = 32, + + IndividualityCommunicationGenre_Room_GiftValue = 42, + + IndividualityCommunicationGenre_Version_Update = 49, + + IndividualityCommunicationGenre_Hall_Super_Admin = 50, + + IndividualityCommunicationGenre_Monents = 52, + + IndividualityCommunicationGenre_Collection_Room = 59, + + IndividualityCommunicationGenre_RedPacket = 60, + + IndividualityCommunicationGenre_LuckyBag = 61, + + IndividualityCommunicationGenre_FindNew = 62, + + IndividualityCommunicationGenre_Tarot = 71, + + IndividualityCommunicationGenre_RoomPlay_Dating = 72, + + IndividualityCommunicationGenre_Chat_Risk_Alert = 75, + + IndividualityCommunicationGenre_First_Recharge_Reward = 76, + + IndividualityCommunicationGenre_First_VisitorRecord = 78, + + IndividualityCommunicationGenre_Room_Sailing = 81, + + IndividualityCommunicationGenre_Across_Room_PK = 83, + + IndividualityCommunicationGenre_Noble_VIP = 85, + + IndividualityCommunicationGenre_AnchorRoom_AudienceUpMic = 86, + + IndividualityCommunicationGenre_Skill_Card = 87, + + IndividualityCommunicationGenre_Anchor_Hour_Rank = 89, + + IndividualityCommunicationGenre_Anchor_FansTeam = 90, + + IndividualityCommunicationGenre_Licnese_Hour_Rank = 91, + + IndividualityCommunicationGenre_Task_Complete = 92, + + IndividualityCommunicationGenre_Gift_Compound = 93, + + IndividualityCommunicationGenre_Graffiti_Gift = 94, + + IndividualityCommunicationGenre_Graffiti_Star_Kitchen = 95, + + IndividualityCommunicationGenre_Look_Love = 98, +}; + + +typedef NS_ENUM(NSUInteger, IndividualityCommunicationMetroChamberTip) { + + Custom_Message_Sub_Room_Tip_ShareRoom = 21, + + Custom_Message_Sub_Room_Tip_Attention_Owner = 22, +}; + +typedef NS_ENUM(NSUInteger, IndividualityCommunicationMetroPresent) { + + Custom_Message_Sub_Gift_Send = 31, + + Custom_Message_Sub_Gift_ChannelNotify = 32, + + Custom_Message_Sub_Gift_LuckySend = 34, +}; + +typedef NS_ENUM(NSUInteger, IndividualityCommunicationMetroAccount) { + + Custom_Message_Sub_Account_Changed = 51, +}; + +typedef NS_ENUM(NSInteger, IndividualityCommunicationMetroOnLine) { + + Custom_Message_Type_Attention_Member_Online = 61 +}; + +typedef NS_ENUM(NSInteger, IndividualityCommunicationMetroQueue) { + + Custom_Message_Sub_Queue_Invite = 81, + + Custom_Message_Sub_Queue_Kick = 82, +}; + +typedef NS_ENUM(NSUInteger, IndividualityCommunicationMetroFace) { + + Custom_Message_Sub_Face_Send = 91, +}; + +typedef NS_ENUM(NSInteger, IndividualityCommunicationMetroTweet) { + + Custom_Message_Sub_Tweet_News = 101, +}; + +typedef NS_ENUM(NSUInteger, IndividualityCommunicationMetroAllMiecreoscoopeDischarge) { + + Custom_Message_Sub_AllMicroSend = 121, + + Custom_Message_Sub_AllBatchSend = 123, + + Custom_Message_Sub_AllBatchMicroLuckySend = 124, + + Custom_Message_Sub_AllMicroLuckySend = 125, +}; + +typedef NS_ENUM(NSUInteger, IndividualityCommunicationMetroCar) { + Custom_Message_Sub_Car_EnterRoom = 159, +}; + +typedef NS_ENUM(NSUInteger, IndividualityNotificationMetroKick) { + + Custom_Message_Sub_Kick_BlackList = 182, + + Custom_Message_Sub_Kick_BeKicked = 181, +}; + + +typedef NS_ENUM(NSUInteger, IndividualityNotificationSecretary) { + + Custom_Message_Sub_Secretary_Router = 191, +}; + +typedef NS_ENUM(NSUInteger, IndividualityCommunicationMetroUpdateChamberAbstract) { + + Custom_Message_Sub_Update_RoomInfo_AnimateEffect = 201, + + Custom_Message_Sub_Update_RoomInfo_MessageState = 203, + + Custom_Message_Sub_Update_RoomInfo_Notice = 204, + + Custom_Message_Sub_Update_RoomInfo_RedPacket = 205, + + Custom_Message_Sub_Update_RoomInfo_CleanScreen = 206, +}; + +typedef NS_ENUM(NSInteger, IndividualityCommunicationMetroApplicationShare) { + + Custom_Message_Sub_Application_Share_Room = 221, +}; + + +typedef NS_ENUM(NSInteger, IndividualityCommunicationMetroCommunicationHandle) { + Custom_Message_Sub_Message_Handle_Content = 231, + Custom_Message_Sub_Message_Handle_Bussiness = 232, +}; + +typedef NS_ENUM(NSInteger, IndividualityCommunicationMetroConsumerUpgrade) { + + Custom_Message_Sub_User_UpGrade_Exper = 241, + + Custom_Message_Sub_User_UpGrade_Charm = 242 +}; + +typedef NS_ENUM(NSUInteger, IndividualityCommunicationMetroCandyTree) { + + Custom_Message_Sub_Candy_Tree_Me = 261, + + Custom_Message_Sub_Candy_Tree_InRoom = 262, + + Custom_Message_Sub_Candy_Tree_AllRoom = 263, + + Custom_Message_Sub_Candy_Tree_AllRoom_Notify = 264, + + Custom_Message_Sub_Candy_Tree_InRoom_NeedAllMicSend = 265, + +}; + +typedef NS_ENUM(NSUInteger, IndividualityNotiHeaderArrangeLoudspeaker) { + + Custom_Message_Sub_Arrange_Mic_Non_Empty= 301, + + Custom_Message_Sub_Arrange_Mic_Empty= 302, + + Custom_Message_Sub_Arrange_Mic_Mode_Open= 303, + + Custom_Message_Sub_Arrange_Mic_Mode_Close= 304, + + Custom_Message_Sub_Arrange_Mic_Free_Mic_Open= 305, + + Custom_Message_Sub_Arrange_Mic_Free_Mic_Close= 306, +}; + +typedef NS_ENUM(NSUInteger, IndividualityCommunicationMetroChamberCombat){ + + Custom_Message_Sub_Room_PK_Non_Empty = 311, + + Custom_Message_Sub_Room_PK_Empty = 312, + + Custom_Message_Sub_Room_PK_Mode_Open = 313, + + Custom_Message_Sub_Room_PK_Mode_Close = 314, + + Custom_Message_Sub_Room_PK_Start = 315, + + Custom_Message_Sub_Room_PK_Result = 316, + + Custom_Message_Sub_Room_PK_Re_Start= 317, + + Custom_Message_Sub_Room_PK_Manager_Up_Mic = 318, +}; + +typedef NS_ENUM(NSUInteger, Individuality_Noti_Metro_HALL) { + + Custom_Message_Sub_Hall_Apply_Join = 321, + + Custom_Message_Sub_Hall_Manager_Invite = 322, + + Custom_Message_Sub_Hall_Apply_Exit = 323, + + Custom_Message_Sub_Hall_Notice = 324, + + Custom_Message_Sub_Hall_Become_Hall = 325, +}; + +typedef NS_ENUM(NSUInteger, IndividualityCommunicationMetroChamberPresentValue) { + + Custom_Message_Sub_Room_GiftValue_Sync = 421 +}; + +typedef NS_ENUM(NSUInteger, IndividualityCommunicationVersionUpdateValue) { + + Custom_Message_Version_Update_Value = 491 +}; + +typedef NS_ENUM(NSInteger, IndividualityCommunicationMetroHallSuperAdmin) { + + Custom_Message_Sub_Hall_Super_Admin_Remove_CP_Room_Limit = 501, + + Custom_Message_Sub_Hall_Super_Admin_Remove_Room_Pwd = 502, + + Custom_Message_Sub_Hall_Super_Admin_Lock_Mic = 503, + + Custom_Message_Sub_Hall_Super_Admin_Mute_Mic = 504, + + Custom_Message_Sub_Hall_Super_Admin_Kick_Down_Mic = 505, + + Custom_Message_Sub_Hall_Super_Admin_Mark_Black = 506, + + Custom_Message_Sub_Hall_Super_Admin_Kick_Out_Room = 507, + + Custom_Message_Sub_Hall_Super_Admin_Kick_Manager_Out_Room = 508, +}; + +typedef NS_ENUM(NSUInteger, Individuality_Noti_Metro_Dynamic) { + + Custom_Message_Sub_Monents_Unread_Update = 521, + + Custom_Message_Sub_Monents_Ban_Delete = 522, + + Custom_Message_Sub_Monents_Approved = 523, + + Custom_Message_Sub_Monents_Share = 524, +}; + +typedef NS_ENUM(NSUInteger, IndividualityCommunicationMetroRedPacket) { + Custom_Message_Sub_RoomGiftRedPacket = 601, + Custom_Message_Sub_RoomDiamandRedPacket = 602, + Custom_Message_Sub_AllGiftRedPacket = 603, + Custom_Message_Sub_AllDiamandRedPacket = 604, + Custom_Message_Sub_OpenRedPacketSuccess = 605, +}; + +typedef NS_ENUM(NSUInteger, IndividualityCommunicationMetroCollectChamber) { + + Custom_Message_Sub_Room_Gift_LuckBag= 610, + + Custom_Message_Sub_Room_Gift_LuckBag_Server = 611, +}; + +typedef NS_ENUM(NSUInteger, IndividualityCommunicationFindNewConsumerGreet) { + + Custom_Message_Find_New_Greet_New_User = 621, +}; +typedef NS_ENUM(NSUInteger, IndividualityCommunicationRouter) { + + Custom_Message_Router_H5 = 2, +}; + +typedef NS_ENUM(NSUInteger, IndividualityCommunicationMetroLuckyBag) { + + Custom_Message_Sub_Collect_Room_Tips = 591, + + Custom_Message_Sub_Collect_Room_Remind_User = 592, +}; + +typedef NS_ENUM(NSUInteger, IndividualityCommunicationMetroTarot) { + + Custom_Message_Sub_Tarot = 711, +}; + +typedef NS_ENUM(NSUInteger, IndividualityCommunicationMetroChamberDisportDating){ + + Custom_Message_Sub_Room_Play_Dating_Pick_Heart= 721, + + Custom_Message_Sub_Room_Play_Dating_Public_Result = 722, + + Custom_Message_Sub_Room_Play_Dating_Result_Not_Mutual = 723, + + Custom_Message_Sub_Room_Play_Dating_Result_Mutual = 724, +}; + +typedef NS_ENUM(NSUInteger, IndividualityCommunicationMetroChatRiskAlert) { + + Custom_Message_Sub_Chat_Risk_Alert= 751, +}; + +typedef NS_ENUM(NSUInteger, IndividualityCommunicationMetroFirstRecharge) { + + Custom_Message_Sub_Room_First_Recharge_Reward= 761, + + Custom_Message_Sub_New_User_Recharge_Reward = 762, +}; + +typedef NS_ENUM(NSUInteger, IndividualityCommunicationMetroVisitorRecord) { + + Custom_Message_Sub_Visitor_Record = 781, +}; + +typedef NS_ENUM(NSInteger, IndividualityCommunicationMetroSailing) { + + Custom_Message_Sub_Sailing_Me = 811, + + Custom_Message_Sub_Sailing_InRoom = 812, + + Custom_Message_Sub_Sailing_AllRoom = 813, + + Custom_Message_Sub_Sailing_AllRoom_Notify = 814, + + Custom_Message_Sub_Sailing_InRoom_NeedAllMicSend = 815, +}; + +typedef NS_ENUM(NSUInteger, IndividualityCommunicationMetroThroughoutChamberCombat) { + + Custom_Message_Sub_AcrossRoomPK_Invite = 831, + + Custom_Message_Sub_AcrossRoomPK_Reject = 832, + + Custom_Message_Sub_AcrossRoomPK_Accept = 833, + + Custom_Message_Sub_AcrossRoomPK_Panel = 834, + + Custom_Message_Sub_AcrossRoomPK_End = 835, + + Custom_Message_Sub_AcrossRoomPK_Result = 836, + + + Custom_Message_Sub_AnchorPK_Invite = 837, + + Custom_Message_Sub_AnchorPK_Reject = 838, + + Custom_Message_Sub_AnchorPK_Accept = 839, + + Custom_Message_Sub_AnchorPK_Panel = 8310, + + Custom_Message_Sub_AnchorPK_End = 8311, + + Custom_Message_Sub_AnchorPK_Result = 8312, + + Custom_Message_Sub_AnchorPK_Finish = 8313, + + Custom_Message_Sub_PK_BeginTime = 8314, + + Custom_Message_Sub_AnchorPK_Match_TimeOut = 8315, + + Custom_Message_Sub_AnchorPK_MuteOtherMic = 8316, +}; + +typedef NS_ENUM(NSUInteger, IndividualityCommunicationMetroNobleVIP) { + + Custom_Message_Sub_Room_Open_Noble_VIP = 851, + + Custom_Message_Sub_Open_Noble_Success = 852, + + Custom_Message_Sub_Room_Noble_LevelUp = 853, + + Custom_Message_Sub_Noble_LevelUp_User = 854, + + Custom_Message_Sub_Room_Noble_LevelUp_Suspend = 855, + + Custom_Message_Sub_AllRoom_Noble_LevelUp_Suspend = 856, + + Custom_Message_Sub_Room_Trumpet = 857, + +}; + +typedef NS_ENUM(NSUInteger, IndividualityCommunicationKellegHourRank) { + + Custom_Message_Sub_Anchor_Hour_Rank = 891, +}; + +typedef NS_ENUM(NSUInteger, IndividualityCommunicationKellegFansTeam) { + + Custom_Message_Sub_FansTeam_Open_Success = 901, + + Custom_Message_Sub_FansTeam_Open_Fail = 902, + + Custom_Message_Sub_FansTeam_Join_Success = 903, + + Custom_Message_Sub_FansTeam_Out_Success = 904, +}; + +typedef NS_ENUM(NSUInteger, IndividualityCommunicationLicneseHourRank) { + + Custom_Message_Sub_Licnese_Hour_Rank = 911, +}; + +typedef NS_ENUM(NSUInteger, IndividualityCommunicationTaskComplete) { + + Custom_Message_Sub_TaskComplete = 921, +}; + +typedef NS_ENUM(NSUInteger, IndividualityCommunicationPresentCompound) { + + Custom_Message_Sub_Gift_Compound = 931, +}; + +typedef NS_ENUM(NSUInteger, IndividualityCommunicationGraffitiPresent) { + + Custom_Message_Sub_Graffiti_Gift = 941, +}; + +typedef NS_ENUM(NSUInteger, IndividualityCommunicationGraffitiStarKitchen) { + + Custom_Message_Sub_Star_Kitchen_Room = 950, + + Custom_Message_Sub_Star_Kitchen_Server = 951, +}; + +typedef NS_ENUM(NSUInteger, IndividualityCommunicationMetroLookLove) { + + Custom_Message_Sub_Look_Love_Me = 981, + + Custom_Message_Sub_Look_Love_InRoom = 982, + + Custom_Message_Sub_Look_Love_AllRoom = 983, + + Custom_Message_Sub_Look_Love_AllRoom_Notify = 984, + + Custom_Message_Sub_Look_Love_InRoom_NeedAllMicSend = 985, + +}; + +@interface AttachmentMatrix : NSObject +@property (nonatomic,assign) int first; +@property (nonatomic,assign) int second; +@property (nonatomic, strong) id data; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/Model/AttachmentMatrix.m b/YuMi/Modules/YMMessage/Model/AttachmentMatrix.m new file mode 100644 index 00000000..1e50ea67 --- /dev/null +++ b/YuMi/Modules/YMMessage/Model/AttachmentMatrix.m @@ -0,0 +1,16 @@ +// +// AttachmentMatrix.m +// YUMI +// +// Created by YUMI on 2021/11/16. +// + +#import "AttachmentMatrix.h" +#import "NSObject+MJExtension.h" +@implementation AttachmentMatrix + +- (NSString *)encodeAttachment { + return [self toJSONBWSttr]; +} + +@end diff --git a/YuMi/Modules/YMMessage/Model/ChatLimitMatrix.h b/YuMi/Modules/YMMessage/Model/ChatLimitMatrix.h new file mode 100644 index 00000000..b075c692 --- /dev/null +++ b/YuMi/Modules/YMMessage/Model/ChatLimitMatrix.h @@ -0,0 +1,21 @@ +// +// ChatLimitMatrix.h +// YUMI +// +// Created by zu on 2021/12/8. +// + +#import "NSObject+MJExtension.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface ChatLimitMatrix : NSObject + +@property (nonatomic, assign) BOOL chat; +@property (nonatomic, copy) NSString * message; +@property (nonatomic, copy) NSString * wealthLevel; +@property (nonatomic, copy) NSString * charmLevel; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/Model/ChatLimitMatrix.m b/YuMi/Modules/YMMessage/Model/ChatLimitMatrix.m new file mode 100644 index 00000000..5402a96f --- /dev/null +++ b/YuMi/Modules/YMMessage/Model/ChatLimitMatrix.m @@ -0,0 +1,12 @@ +// +// ChatLimitMatrix.m +// YUMI +// +// Created by zu on 2021/12/8. +// + +#import "ChatLimitMatrix.h" + +@implementation ChatLimitMatrix + +@end diff --git a/YuMi/Modules/YMMessage/Model/CustomMessage/XCombatickConsumerMatrix.h b/YuMi/Modules/YMMessage/Model/CustomMessage/XCombatickConsumerMatrix.h new file mode 100644 index 00000000..3a9a06f4 --- /dev/null +++ b/YuMi/Modules/YMMessage/Model/CustomMessage/XCombatickConsumerMatrix.h @@ -0,0 +1,22 @@ +// +// YMKickUserModel.h +// YUMI +// +// Created by YUMI on 2021/11/25. +// +///用户被踢出房间的模型 +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface XCombatickConsumerMatrix : NSObject +@property (nonatomic, assign) NSInteger uid; +@property (nonatomic, assign) NSInteger handleUid; +@property (nonatomic, copy) NSString *handleNick; +@property (nonatomic, assign) NSInteger targetUid; +@property (nonatomic, copy) NSString *targetNick; +@property (nonatomic, copy) NSString *micPosition; +@property (nonatomic, copy) NSString *micNumber; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/Model/CustomMessage/XCombatickConsumerMatrix.m b/YuMi/Modules/YMMessage/Model/CustomMessage/XCombatickConsumerMatrix.m new file mode 100644 index 00000000..692f7bc3 --- /dev/null +++ b/YuMi/Modules/YMMessage/Model/CustomMessage/XCombatickConsumerMatrix.m @@ -0,0 +1,12 @@ +// +// YMKickUserModel.m +// YUMI +// +// Created by YUMI on 2021/11/25. +// + +#import "XCombatickConsumerMatrix.h" + +@implementation XCombatickConsumerMatrix + +@end diff --git a/YuMi/Modules/YMMessage/Model/InterlocutionInstanllingMatrix.h b/YuMi/Modules/YMMessage/Model/InterlocutionInstanllingMatrix.h new file mode 100644 index 00000000..61afa242 --- /dev/null +++ b/YuMi/Modules/YMMessage/Model/InterlocutionInstanllingMatrix.h @@ -0,0 +1,26 @@ +// +// InterlocutionInstanllingMatrix.h +// YUMI +// +// Created by YUMI on 2023/1/18. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSInteger, InterlocutionInstanllingGenre) { + + InterlocutionInstanllingGenre_Top, + InterlocutionInstanllingGenre_black, + + InterlocutionInstanllingGenre_report +}; + +@interface InterlocutionInstanllingMatrix : NSObject +@property (nonatomic,copy) NSString *title; +@property (nonatomic,assign) InterlocutionInstanllingGenre settingType; +@property (nonatomic,assign) BOOL state; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/Model/InterlocutionInstanllingMatrix.m b/YuMi/Modules/YMMessage/Model/InterlocutionInstanllingMatrix.m new file mode 100644 index 00000000..5b725e92 --- /dev/null +++ b/YuMi/Modules/YMMessage/Model/InterlocutionInstanllingMatrix.m @@ -0,0 +1,12 @@ +// +// InterlocutionInstanllingMatrix.m +// YUMI +// +// Created by YUMI on 2023/1/18. +// + +#import "InterlocutionInstanllingMatrix.h" + +@implementation InterlocutionInstanllingMatrix + +@end diff --git a/YuMi/Modules/YMMessage/Model/SessionContent/SatisfactionApplicationParaticipationMatrix.h b/YuMi/Modules/YMMessage/Model/SessionContent/SatisfactionApplicationParaticipationMatrix.h new file mode 100644 index 00000000..cecc88eb --- /dev/null +++ b/YuMi/Modules/YMMessage/Model/SessionContent/SatisfactionApplicationParaticipationMatrix.h @@ -0,0 +1,17 @@ +// +// SatisfactionApplicationParaticipationMatrix.h +// YUMI +// +// Created by YUMI on 2022/4/19. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@interface SatisfactionApplicationParaticipationMatrix : NSObject +@property (nonatomic,copy) NSString *title; +@property (nonatomic,copy) NSString *actionName; +@property (nonatomic,copy) NSString *routerValue; +@property (nonatomic,copy) NSString *avatar; +@end +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/Model/SessionContent/SatisfactionApplicationParaticipationMatrix.m b/YuMi/Modules/YMMessage/Model/SessionContent/SatisfactionApplicationParaticipationMatrix.m new file mode 100644 index 00000000..317ad378 --- /dev/null +++ b/YuMi/Modules/YMMessage/Model/SessionContent/SatisfactionApplicationParaticipationMatrix.m @@ -0,0 +1,12 @@ +// +// SatisfactionApplicationParaticipationMatrix.m +// YUMI +// +// Created by YUMI on 2022/4/19. +// + +#import "SatisfactionApplicationParaticipationMatrix.h" + +@implementation SatisfactionApplicationParaticipationMatrix + +@end diff --git a/YuMi/Modules/YMMessage/Model/SessionContent/SatisfactionParaticipationSeparationsMatrix.h b/YuMi/Modules/YMMessage/Model/SessionContent/SatisfactionParaticipationSeparationsMatrix.h new file mode 100644 index 00000000..f8314216 --- /dev/null +++ b/YuMi/Modules/YMMessage/Model/SessionContent/SatisfactionParaticipationSeparationsMatrix.h @@ -0,0 +1,25 @@ +// +// SatisfactionParaticipationSeparationsMatrix.h +// YUMI +// +// Created by YUMI on 2022/6/27. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface SatisfactionParaticipationSeparationsMatrix : NSObject +@property (nonatomic,copy) NSString *dynamicId; +@property (nonatomic,copy) NSString *worldId; +@property (nonatomic,copy) NSString *imageUrl; +@property (nonatomic,copy) NSString *nick; +@property (nonatomic,copy) NSString *publishUid; +@property (nonatomic,copy) NSString *content; +@property (nonatomic,copy) NSString *avatar; +@property (nonatomic,copy) NSString *title; +@property (nonatomic,assign) NSInteger routerType; +@property (nonatomic,copy) NSString *routerValue; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/Model/SessionContent/SatisfactionParaticipationSeparationsMatrix.m b/YuMi/Modules/YMMessage/Model/SessionContent/SatisfactionParaticipationSeparationsMatrix.m new file mode 100644 index 00000000..ef4542fe --- /dev/null +++ b/YuMi/Modules/YMMessage/Model/SessionContent/SatisfactionParaticipationSeparationsMatrix.m @@ -0,0 +1,12 @@ +// +// SatisfactionParaticipationSeparationsMatrix.m +// YUMI +// +// Created by YUMI on 2022/6/27. +// + +#import "SatisfactionParaticipationSeparationsMatrix.h" + +@implementation SatisfactionParaticipationSeparationsMatrix + +@end diff --git a/YuMi/Modules/YMMessage/Model/SessionContent/SatisfactionPrototypeAscensionMatrix.h b/YuMi/Modules/YMMessage/Model/SessionContent/SatisfactionPrototypeAscensionMatrix.h new file mode 100644 index 00000000..6eca0cfb --- /dev/null +++ b/YuMi/Modules/YMMessage/Model/SessionContent/SatisfactionPrototypeAscensionMatrix.h @@ -0,0 +1,17 @@ +// +// SatisfactionPrototypeAscensionMatrix.h +// YUMI +// +// Created by YUMI on 2022/4/20. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface SatisfactionPrototypeAscensionMatrix : NSObject +@property (nonatomic, copy) NSString *levelName; +@property (nonatomic,assign) NSInteger levelSeq; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/Model/SessionContent/SatisfactionPrototypeAscensionMatrix.m b/YuMi/Modules/YMMessage/Model/SessionContent/SatisfactionPrototypeAscensionMatrix.m new file mode 100644 index 00000000..e1b4295a --- /dev/null +++ b/YuMi/Modules/YMMessage/Model/SessionContent/SatisfactionPrototypeAscensionMatrix.m @@ -0,0 +1,12 @@ +// +// SatisfactionPrototypeAscensionMatrix.m +// YUMI +// +// Created by YUMI on 2022/4/20. +// + +#import "SatisfactionPrototypeAscensionMatrix.h" + +@implementation SatisfactionPrototypeAscensionMatrix + +@end diff --git a/YuMi/Modules/YMMessage/Model/SessionContent/SatisfactionRistPrecautiousMatrix.h b/YuMi/Modules/YMMessage/Model/SessionContent/SatisfactionRistPrecautiousMatrix.h new file mode 100644 index 00000000..e97d69a3 --- /dev/null +++ b/YuMi/Modules/YMMessage/Model/SessionContent/SatisfactionRistPrecautiousMatrix.h @@ -0,0 +1,16 @@ +// +// SatisfactionRistPrecautiousMatrix.h +// YUMI +// +// Created by YUMI on 2022/8/11. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface SatisfactionRistPrecautiousMatrix : NSObject +@property (nonatomic,strong) NSString *content; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/Model/SessionContent/SatisfactionRistPrecautiousMatrix.m b/YuMi/Modules/YMMessage/Model/SessionContent/SatisfactionRistPrecautiousMatrix.m new file mode 100644 index 00000000..8d92ac62 --- /dev/null +++ b/YuMi/Modules/YMMessage/Model/SessionContent/SatisfactionRistPrecautiousMatrix.m @@ -0,0 +1,12 @@ +// +// SatisfactionRistPrecautiousMatrix.m +// YUMI +// +// Created by YUMI on 2022/8/11. +// + +#import "SatisfactionRistPrecautiousMatrix.h" + +@implementation SatisfactionRistPrecautiousMatrix + +@end diff --git a/YuMi/Modules/YMMessage/Model/SessionContent/SatisfactionSecretaryMatrix.h b/YuMi/Modules/YMMessage/Model/SessionContent/SatisfactionSecretaryMatrix.h new file mode 100644 index 00000000..046a226a --- /dev/null +++ b/YuMi/Modules/YMMessage/Model/SessionContent/SatisfactionSecretaryMatrix.h @@ -0,0 +1,52 @@ +// +// SatisfactionSecretaryMatrix.h +// YUMI +// +// Created by YUMI on 2022/4/22. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSInteger, SecretaryRouterGenre) { + + SecretaryRouterGenre_Room = 1, + + SecretaryRouterGenre_H5 = 2, + + SecretaryRouterGenre_Purse = 3, + + SecretaryRouterGenre_Recharge = 5, + + SecretaryRouterGenre_UserInfo = 6, + + SecretaryRouterGenre_Car = 7, + + SecretaryRouterGenre_Headwear = 8, + + SecretaryRouterGenre_Nameplate = 9, + + SecretaryRouterGenre_Set_Password = 53, + + SecretaryRouterGenre_Nobel_Center = 54, + + SecretaryRouterGenre_User_Card = 55, + + SecretaryRouterGenre_Nobel_Bubble = 56, + + SecretaryRouterGenre_Dressup_Shop = 73, + + SecretaryRouterGenre_My_Dressup = 74, + + SecretaryRouterGenre_Square_Topic = 75, +}; + +@interface SatisfactionSecretaryMatrix : NSObject +@property (nonatomic,copy) NSString *msg; +@property (nonatomic,copy) NSString *title; +@property (nonatomic,assign) SecretaryRouterGenre routerType; +@property (nonatomic,strong) NSString *routerValue; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/Model/SessionContent/SatisfactionSecretaryMatrix.m b/YuMi/Modules/YMMessage/Model/SessionContent/SatisfactionSecretaryMatrix.m new file mode 100644 index 00000000..2aef8ff5 --- /dev/null +++ b/YuMi/Modules/YMMessage/Model/SessionContent/SatisfactionSecretaryMatrix.m @@ -0,0 +1,12 @@ +// +// SatisfactionSecretaryMatrix.m +// YUMI +// +// Created by YUMI on 2022/4/22. +// + +#import "SatisfactionSecretaryMatrix.h" + +@implementation SatisfactionSecretaryMatrix + +@end diff --git a/YuMi/Modules/YMMessage/Model/SessionContent/SatisfactionTweetMatrix.h b/YuMi/Modules/YMMessage/Model/SessionContent/SatisfactionTweetMatrix.h new file mode 100644 index 00000000..86a25806 --- /dev/null +++ b/YuMi/Modules/YMMessage/Model/SessionContent/SatisfactionTweetMatrix.h @@ -0,0 +1,21 @@ +// +// SatisfactionTweetMatrix.h +// YUMI +// +// Created by YUMI on 2022/4/28. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface SatisfactionTweetMatrix : NSObject +@property (nonatomic,copy) NSString *webUrl; +@property (nonatomic,copy) NSString *title; +@property (nonatomic,copy) NSString *desc; +@property (nonatomic,copy) NSString *picUrl; +@property (nonatomic, assign) NSInteger routerType; +@property (nonatomic, copy) NSString *routerValue; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/Model/SessionContent/SatisfactionTweetMatrix.m b/YuMi/Modules/YMMessage/Model/SessionContent/SatisfactionTweetMatrix.m new file mode 100644 index 00000000..38edea14 --- /dev/null +++ b/YuMi/Modules/YMMessage/Model/SessionContent/SatisfactionTweetMatrix.m @@ -0,0 +1,12 @@ +// +// SatisfactionTweetMatrix.m +// YUMI +// +// Created by YUMI on 2022/4/28. +// + +#import "SatisfactionTweetMatrix.h" + +@implementation SatisfactionTweetMatrix + +@end diff --git a/YuMi/Modules/YMMessage/Model/SessionContent/SatisfactionUnfoildEnergeticAbstractMatrix.h b/YuMi/Modules/YMMessage/Model/SessionContent/SatisfactionUnfoildEnergeticAbstractMatrix.h new file mode 100644 index 00000000..4dfffb55 --- /dev/null +++ b/YuMi/Modules/YMMessage/Model/SessionContent/SatisfactionUnfoildEnergeticAbstractMatrix.h @@ -0,0 +1,24 @@ +// +// SatisfactionUnfoildEnergeticAbstractMatrix.h +// YUMI +// +// Created by YUMI on 2022/4/19. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class SatisfactionUnfoildEnergeticConsumerAbstractMatrix; +@interface SatisfactionUnfoildEnergeticAbstractMatrix : NSObject + +@property (nonatomic,copy) NSString *uid; +@property (nonatomic,strong) SatisfactionUnfoildEnergeticConsumerAbstractMatrix *userVo; + +@end + +@interface SatisfactionUnfoildEnergeticConsumerAbstractMatrix : NSObject +@property (nonatomic,copy) NSString *avatar; +@property (nonatomic,copy) NSString *nick; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/Model/SessionContent/SatisfactionUnfoildEnergeticAbstractMatrix.m b/YuMi/Modules/YMMessage/Model/SessionContent/SatisfactionUnfoildEnergeticAbstractMatrix.m new file mode 100644 index 00000000..dcec7127 --- /dev/null +++ b/YuMi/Modules/YMMessage/Model/SessionContent/SatisfactionUnfoildEnergeticAbstractMatrix.m @@ -0,0 +1,18 @@ +// +// SatisfactionUnfoildEnergeticAbstractMatrix.m +// YUMI +// +// Created by YUMI on 2022/4/19. +// 开启直播 + +#import "SatisfactionUnfoildEnergeticAbstractMatrix.h" + +@implementation SatisfactionUnfoildEnergeticAbstractMatrix + +@end + +@implementation SatisfactionUnfoildEnergeticConsumerAbstractMatrix + + + +@end diff --git a/YuMi/Modules/YMMessage/Model/SessionToolBar/CommunicationParrotMatrix.h b/YuMi/Modules/YMMessage/Model/SessionToolBar/CommunicationParrotMatrix.h new file mode 100644 index 00000000..62b742fb --- /dev/null +++ b/YuMi/Modules/YMMessage/Model/SessionToolBar/CommunicationParrotMatrix.h @@ -0,0 +1,25 @@ +// +// CommunicationParrotMatrix.h +// YUMI +// +// Created by YUMI on 2022/4/21. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSInteger, CommunicationParrotGenre) { + + CommunicationParrotGenre_Photo = 1, + + CommunicationParrotGenre_Gift +}; + +@interface CommunicationParrotMatrix : NSObject +@property (nonatomic,strong) NSString *imageName; +@property (nonatomic,assign) CommunicationParrotGenre type; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/Model/SessionToolBar/CommunicationParrotMatrix.m b/YuMi/Modules/YMMessage/Model/SessionToolBar/CommunicationParrotMatrix.m new file mode 100644 index 00000000..617b5531 --- /dev/null +++ b/YuMi/Modules/YMMessage/Model/SessionToolBar/CommunicationParrotMatrix.m @@ -0,0 +1,12 @@ +// +// CommunicationParrotMatrix.m +// YUMI +// +// Created by YUMI on 2022/4/21. +// + +#import "CommunicationParrotMatrix.h" + +@implementation CommunicationParrotMatrix + +@end diff --git a/YuMi/Modules/YMMessage/Presenter/CommunicationExternalizer.h b/YuMi/Modules/YMMessage/Presenter/CommunicationExternalizer.h new file mode 100644 index 00000000..660d5eb3 --- /dev/null +++ b/YuMi/Modules/YMMessage/Presenter/CommunicationExternalizer.h @@ -0,0 +1,23 @@ +// +// CommunicationExternalizer.h +// YUMI +// +// Created by zu on 2021/12/8. +// + +#import "BaseMvpExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface CommunicationExternalizer : BaseMvpExternalizer + +- (void)acquireChinwagRestrictionReceiverCid:(NSString *)receiverUid; + +- (void)getUserInfo:(NSString *)uid; +- (void)acquireFantowardsicsSimilar:(NSString *)likeUid; +- (void)considertowardsionConsumer:(NSString *)targetUid; + +- (void)acquireConsumerAbstractAboutCid:(NSString *)uid; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/Presenter/CommunicationExternalizer.m b/YuMi/Modules/YMMessage/Presenter/CommunicationExternalizer.m new file mode 100644 index 00000000..ee88829f --- /dev/null +++ b/YuMi/Modules/YMMessage/Presenter/CommunicationExternalizer.m @@ -0,0 +1,59 @@ +// +// CommunicationExternalizer.m +// YUMI +// +// Created by zu on 2021/12/8. +// + +#import "CommunicationExternalizer.h" +#import "Api+Message.h" +#import "ChatLimitMatrix.h" +#import "CommunicationCeremony.h" +#import "Api+Mine.h" +#import "ConsumerAbstractMatrix.h" +#import "AccountAbstractStorage.h" +#import "NEMCCommunicationUtils.h" + +@implementation CommunicationExternalizer + +- (void)acquireConsumerAbstractAboutCid:(NSString *)uid { + [Api getUserInfo:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + ConsumerAbstractMatrix * infoMatrix = [ConsumerAbstractMatrix mtowardsrixAboutImpactbasket:data.data]; + [[self acquireRegard] dwellEarnConsumerAbstractAccomplishment:infoMatrix]; + } fail:^(NSInteger code, NSString * _Nullable msg) { + + }] uid:uid]; +} + +- (void)acquireChinwagRestrictionReceiverCid:(NSString *)receiverUid { + [Api acquireChinwagRestriction:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + ChatLimitMatrix *chatLimit = [ChatLimitMatrix mtowardsrixAboutJSON:data.data]; + [[self acquireRegard] dwellEarnRestrictionChinwag:chatLimit]; + } EvidenceChambering:NO errorToast:NO] receiverUid:receiverUid]; +} + +- (void)getUserInfo:(NSString *)uid { + [Api consumerSpecificAbstractImplementtowardsion:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + ConsumerAbstractMatrix * infoMatrix = [ConsumerAbstractMatrix mtowardsrixAboutImpactbasket:data.data]; + [[self acquireRegard] dwellEarnInterlocutionConsumerAbstractAccomplishment:infoMatrix]; + }] uid:uid page:@"1" pageSize:@"20"]; +} + +- (void)acquireFantowardsicsSimilar:(NSString *)likeUid { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [Api considertowardsionPositionImplementtowardsion:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + BOOL isLike = [data.data boolValue] || [NEMCCommunicationUtils isHLOfficalSequenceription:likeUid]; + [[self acquireRegard] acquireFantowardsicsSimilarAccomplishment:isLike]; + }] uid:uid isLikeUid:likeUid]; +} + +- (void)considertowardsionConsumer:(NSString *)targetUid { + NSString * uid = [[AccountAbstractStorage instance] acquireCid]; + NSString * ticket = [[AccountAbstractStorage instance] acquireTicket]; + NSString * type = @"1"; + [Api considertowardsionImplementtowardsion:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] considertowardsionConsumerAccomplishment:targetUid]; + } EvidenceChambering:YES] uid:uid likedUid:targetUid ticket:ticket type:type]; +} + +@end diff --git a/YuMi/Modules/YMMessage/Protocol/CommunicationCeremony.h b/YuMi/Modules/YMMessage/Protocol/CommunicationCeremony.h new file mode 100644 index 00000000..e5a0adc1 --- /dev/null +++ b/YuMi/Modules/YMMessage/Protocol/CommunicationCeremony.h @@ -0,0 +1,25 @@ +// +// CommunicationCeremony.h +// YUMI +// +// Created by zu on 2021/12/8. +// + +#import + +@class ChatLimitMatrix, ConsumerAbstractMatrix; + +NS_ASSUME_NONNULL_BEGIN + +@protocol CommunicationCeremony + +- (void)dwellEarnRestrictionChinwag:(ChatLimitMatrix *)chatLimit; + +- (void)dwellEarnInterlocutionConsumerAbstractAccomplishment:(ConsumerAbstractMatrix *)userInfo; +- (void)acquireFantowardsicsSimilarAccomplishment:(BOOL)isLike; +- (void)considertowardsionConsumerAccomplishment:(NSString *)uid; + +- (void)dwellEarnConsumerAbstractAccomplishment:(ConsumerAbstractMatrix *)userInfo; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/Tool/CustomAttachmentDecoder.h b/YuMi/Modules/YMMessage/Tool/CustomAttachmentDecoder.h new file mode 100644 index 00000000..1f9645ed --- /dev/null +++ b/YuMi/Modules/YMMessage/Tool/CustomAttachmentDecoder.h @@ -0,0 +1,16 @@ +// +// CustomAttachmentDecoder.h +// YUMI +// +// Created by YUMI on 2021/11/16. +// + +#import +#import +NS_ASSUME_NONNULL_BEGIN + +@interface CustomAttachmentDecoder : NSObject + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/Tool/CustomAttachmentDecoder.m b/YuMi/Modules/YMMessage/Tool/CustomAttachmentDecoder.m new file mode 100644 index 00000000..e989dc9a --- /dev/null +++ b/YuMi/Modules/YMMessage/Tool/CustomAttachmentDecoder.m @@ -0,0 +1,39 @@ +// +// CustomAttachmentDecoder.m +// YUMI +// +// Created by YUMI on 2021/11/16. +// + +#import "CustomAttachmentDecoder.h" +#import "NSObject+MJExtension.h" +#import "AttachmentMatrix.h" + +@implementation CustomAttachmentDecoder + +- (id)decodeAttachment:(NSString *)content{ + id attachment; + NSData *data = [content dataUsingEncoding:NSUTF8StringEncoding]; + if (data) { + NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil]; + if ([dict isKindOfClass:[NSDictionary class]]) { + int first = [dict[@"first"] intValue]; + int second = [dict[@"second"] intValue]; + NSDictionary *data = dict[@"data"]; + if ([data isKindOfClass:[NSString class]]) { + data = [(NSString *)data mtowardsrix2dictionary]; + } + if ([data isKindOfClass:[NSDictionary class]]) { + AttachmentMatrix *attachment = [[AttachmentMatrix alloc]init]; + attachment.first = (short)first; + attachment.second = (short)second; + attachment.data = data; + return attachment; + } + + } + } + return attachment; +} + +@end diff --git a/YuMi/Modules/YMMessage/View/CommunicationVocalmusicConcentrate.h b/YuMi/Modules/YMMessage/View/CommunicationVocalmusicConcentrate.h new file mode 100644 index 00000000..81aa249a --- /dev/null +++ b/YuMi/Modules/YMMessage/View/CommunicationVocalmusicConcentrate.h @@ -0,0 +1,18 @@ +// +// CommunicationVocalmusicConcentrate.h +// YUMI +// +// Created by YUMI on 2022/4/22. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class NIMMessage; +@interface CommunicationVocalmusicConcentrate : NSObject ++ (instancetype)partowardsiciptowardsionInstance; +@property (nonatomic,strong, readonly) NIMMessage *universalDisportingCommunication; +- (void)play:(NIMMessage *)message; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/CommunicationVocalmusicConcentrate.m b/YuMi/Modules/YMMessage/View/CommunicationVocalmusicConcentrate.m new file mode 100644 index 00000000..0ed3feac --- /dev/null +++ b/YuMi/Modules/YMMessage/View/CommunicationVocalmusicConcentrate.m @@ -0,0 +1,74 @@ +// +// CommunicationVocalmusicConcentrate.m +// YUMI +// +// Created by YUMI on 2022/4/22. +// + +#import "CommunicationVocalmusicConcentrate.h" +#import + +@interface CommunicationVocalmusicConcentrate () +@property (nonatomic,assign) NSInteger retryCount; +@property (nonatomic,strong,nullable) NIMMessage *universalDisportingCommunication; +@end + +@implementation CommunicationVocalmusicConcentrate + ++ (instancetype)partowardsiciptowardsionInstance { + static CommunicationVocalmusicConcentrate *instance; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + instance = [[CommunicationVocalmusicConcentrate alloc] init]; + }); + return instance; +} + +- (instancetype)init { + self = [super init]; + if (self) { + [[NIMSDK sharedSDK].mediaManager addDelegate:self]; + [self replacementRetryComputtowardsion]; + } + return self; +} + +- (void)replacementRetryComputtowardsion { + _retryCount = 3; +} + +- (void)play:(NIMMessage *)message { + NIMAudioObject *audioObject = (NIMAudioObject *)message.messageObject; + if ([audioObject isKindOfClass:[NIMAudioObject class]]) { + self.universalDisportingCommunication = message; + message.isPlayed = YES; + [[NIMSDK sharedSDK].mediaManager play:audioObject.path]; + } +} + + +#pragma mark - NIMMediaManagerDelegate + +- (void)playAudio:(NSString *)filePath didBeganWithError:(NSError *)error +{ + if (error) { + if (_retryCount > 0){ + + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + [[NIMSDK sharedSDK].mediaManager play:filePath]; + }); + }else{ + self.universalDisportingCommunication = nil; + [self replacementRetryComputtowardsion]; + } + } else { + [self replacementRetryComputtowardsion]; + } +} + +- (void)playAudio:(NSString *)filePath didCompletedWithError:(nullable NSError *)error { + self.universalDisportingCommunication = nil; +} + + +@end diff --git a/YuMi/Modules/YMMessage/View/FindNew/Api/Api+FindNew.h b/YuMi/Modules/YMMessage/View/FindNew/Api/Api+FindNew.h new file mode 100644 index 00000000..b5bde752 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/FindNew/Api/Api+FindNew.h @@ -0,0 +1,20 @@ +// +// Api+FindNew.h +// YUMI +// +// Created by YUMI on 2022/6/10. +// + +#import "Api.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface Api (FindNew) ++ (void)prohibiticoveryStrangeConsumer:(HttpRequestHelperCompletion)completion; + ++ (void)prohibiticoveryStrangeBewelcometoCommunictowardsionSttowardsement:(HttpRequestHelperCompletion)completion start:(NSString *)start pageSize:(NSString *)pageSize; + ++ (void)prohibiticoveryStrangeConsumerBewelcometo:(HttpRequestHelperCompletion)completion helloUid:(NSString *)helloUid message:(NSString *)message; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/FindNew/Api/Api+FindNew.m b/YuMi/Modules/YMMessage/View/FindNew/Api/Api+FindNew.m new file mode 100644 index 00000000..91a33eff --- /dev/null +++ b/YuMi/Modules/YMMessage/View/FindNew/Api/Api+FindNew.m @@ -0,0 +1,32 @@ +// +// Api+FindNew.m +// YUMI +// +// Created by YUMI on 2022/6/10. +// + +#import "Api+FindNew.h" +#import "NSMutableDictionary+Saft.h" +#import +@implementation Api (FindNew) + ++ (void)prohibiticoveryStrangeConsumer:(HttpRequestHelperCompletion)completion { + NSMutableDictionary * pararms = [NSMutableDictionary dictionary]; + [pararms secureSetGroal:@"1" forKey:@"page"]; + [pararms secureSetGroal:@"20" forKey:@"pageSize"]; + NSString * fang = [NSString stringFromBase64String:@"bmV3YmllL3Bvb2xMaXN0"]; + [HttpRequestFacilitater request:fang method:HttpRequestHelperMethodGET params:pararms completion:completion]; +} + + ++ (void)prohibiticoveryStrangeBewelcometoCommunictowardsionSttowardsement:(HttpRequestHelperCompletion)completion start:(NSString *)start pageSize:(NSString *)pageSize { + NSString * fang = [NSString stringFromBase64String:@"bmV3YmllL21lc3NhZ2VMaXN0"]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion,__FUNCTION__, start, pageSize, nil]; +} + ++ (void)prohibiticoveryStrangeConsumerBewelcometo:(HttpRequestHelperCompletion)completion helloUid:(NSString *)helloUid message:(NSString *)message { + NSString * fang = [NSString stringFromBase64String:@"bmV3YmllL2hlbGxv"]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion,__FUNCTION__, helloUid, message, nil]; +} + +@end diff --git a/YuMi/Modules/YMMessage/View/FindNew/Model/DiscoveryStrangeBewelcometoCommunicationMatrix.h b/YuMi/Modules/YMMessage/View/FindNew/Model/DiscoveryStrangeBewelcometoCommunicationMatrix.h new file mode 100644 index 00000000..bc16d48e --- /dev/null +++ b/YuMi/Modules/YMMessage/View/FindNew/Model/DiscoveryStrangeBewelcometoCommunicationMatrix.h @@ -0,0 +1,21 @@ +// +// DiscoveryStrangeBewelcometoCommunicationMatrix.h +// YUMI +// +// Created by YUMI on 2022/6/17. +// + +#import +#import "YUMINNNN.h" +NS_ASSUME_NONNULL_BEGIN + +@interface DiscoveryStrangeBewelcometoCommunicationMatrix : NSObject +@property (nonatomic,copy) NSString *avatar; +@property (nonatomic,copy)NSString *uid; +@property (nonatomic,copy)NSString *inRoomUid; +@property (nonatomic,copy) NSString *nick; +@property (nonatomic,copy) NSString *message; +@property(nonatomic,assign) GenderGenre gender; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/FindNew/Model/DiscoveryStrangeBewelcometoCommunicationMatrix.m b/YuMi/Modules/YMMessage/View/FindNew/Model/DiscoveryStrangeBewelcometoCommunicationMatrix.m new file mode 100644 index 00000000..f0d7cc37 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/FindNew/Model/DiscoveryStrangeBewelcometoCommunicationMatrix.m @@ -0,0 +1,12 @@ +// +// DiscoveryStrangeBewelcometoCommunicationMatrix.m +// YUMI +// +// Created by YUMI on 2022/6/17. +// + +#import "DiscoveryStrangeBewelcometoCommunicationMatrix.h" + +@implementation DiscoveryStrangeBewelcometoCommunicationMatrix + +@end diff --git a/YuMi/Modules/YMMessage/View/FindNew/Model/DiscoveryStrangeBewelcometoStatementMatrix.h b/YuMi/Modules/YMMessage/View/FindNew/Model/DiscoveryStrangeBewelcometoStatementMatrix.h new file mode 100644 index 00000000..05fd01dc --- /dev/null +++ b/YuMi/Modules/YMMessage/View/FindNew/Model/DiscoveryStrangeBewelcometoStatementMatrix.h @@ -0,0 +1,26 @@ +// +// DiscoveryStrangeBewelcometoStatementMatrix.h +// YUMI +// +// Created by YUMI on 2022/6/13. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class DiscoveryStrangeBewelcometoMatrix; +@interface DiscoveryStrangeBewelcometoStatementMatrix : NSObject + +@property (nonatomic,copy) NSString * start; +@property (nonatomic,strong) NSArray *list; + +@end + + +@interface DiscoveryStrangeBewelcometoMatrix : NSObject +@property (nonatomic,assign) NSInteger fId; +@property (nonatomic,copy) NSString *message; +@property (nonatomic,assign) BOOL isSelect; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/FindNew/Model/DiscoveryStrangeBewelcometoStatementMatrix.m b/YuMi/Modules/YMMessage/View/FindNew/Model/DiscoveryStrangeBewelcometoStatementMatrix.m new file mode 100644 index 00000000..b20d3f99 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/FindNew/Model/DiscoveryStrangeBewelcometoStatementMatrix.m @@ -0,0 +1,22 @@ +// +// DiscoveryStrangeBewelcometoStatementMatrix.m +// YUMI +// +// Created by YUMI on 2022/6/13. +// + +#import "DiscoveryStrangeBewelcometoStatementMatrix.h" + +@implementation DiscoveryStrangeBewelcometoStatementMatrix ++ (NSDictionary *)objectCtowardsegorizeInGarment { + return @{@"list": DiscoveryStrangeBewelcometoMatrix.class}; +} +@end + + +@implementation DiscoveryStrangeBewelcometoMatrix + ++ (NSDictionary *)replacedDigitalByvirtueofMaintainertyConstitute { + return @{@"fId": @"id"}; +} +@end diff --git a/YuMi/Modules/YMMessage/View/FindNew/Model/DiscoveryStrangeConsumerAbstractMatrix.h b/YuMi/Modules/YMMessage/View/FindNew/Model/DiscoveryStrangeConsumerAbstractMatrix.h new file mode 100644 index 00000000..be4bcfe8 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/FindNew/Model/DiscoveryStrangeConsumerAbstractMatrix.h @@ -0,0 +1,23 @@ +// +// DiscoveryStrangeConsumerAbstractMatrix.h +// YUMI +// +// Created by YUMI on 2022/6/10. +// + +#import +#import "YUMINNNN.h" +NS_ASSUME_NONNULL_BEGIN + +@interface DiscoveryStrangeConsumerAbstractMatrix : NSObject +@property (nonatomic,copy) NSString *avatar; +@property (nonatomic,copy) NSString *charmUrl; +@property (nonatomic,copy) NSString *erbanNo; +@property (nonatomic,copy) NSString *experUrl; +@property (nonatomic,assign) GenderGenre gender; +@property (nonatomic,copy) NSString *uid; +@property (nonatomic,copy) NSString *nick; +@property (nonatomic,assign) BOOL hello; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/FindNew/Model/DiscoveryStrangeConsumerAbstractMatrix.m b/YuMi/Modules/YMMessage/View/FindNew/Model/DiscoveryStrangeConsumerAbstractMatrix.m new file mode 100644 index 00000000..c031656d --- /dev/null +++ b/YuMi/Modules/YMMessage/View/FindNew/Model/DiscoveryStrangeConsumerAbstractMatrix.m @@ -0,0 +1,12 @@ +// +// DiscoveryStrangeConsumerAbstractMatrix.m +// YUMI +// +// Created by YUMI on 2022/6/10. +// + +#import "DiscoveryStrangeConsumerAbstractMatrix.h" + +@implementation DiscoveryStrangeConsumerAbstractMatrix + +@end diff --git a/YuMi/Modules/YMMessage/View/FindNew/Presenter/YUMIInterlocutionDiscoveryStrangeExternalizer.h b/YuMi/Modules/YMMessage/View/FindNew/Presenter/YUMIInterlocutionDiscoveryStrangeExternalizer.h new file mode 100644 index 00000000..63fa8849 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/FindNew/Presenter/YUMIInterlocutionDiscoveryStrangeExternalizer.h @@ -0,0 +1,18 @@ +// +// YMSessionFindNewPresenter.h +// YUMI +// +// Created by YUMI on 2022/6/10. +// + +#import "BaseMvpExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIInterlocutionDiscoveryStrangeExternalizer : BaseMvpExternalizer + +- (void)acquireDiscoveryStrangeConsumer; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/FindNew/Presenter/YUMIInterlocutionDiscoveryStrangeExternalizer.m b/YuMi/Modules/YMMessage/View/FindNew/Presenter/YUMIInterlocutionDiscoveryStrangeExternalizer.m new file mode 100644 index 00000000..c9eb1b60 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/FindNew/Presenter/YUMIInterlocutionDiscoveryStrangeExternalizer.m @@ -0,0 +1,21 @@ +// +// YMSessionFindNewPresenter.m +// YUMI +// +// Created by YUMI on 2022/6/10. +// + +#import "YUMIInterlocutionDiscoveryStrangeExternalizer.h" +#import "FBCInterlocutionDiscoveryStrangeCeremony.h" +#import "DiscoveryStrangeConsumerAbstractMatrix.h" +#import "Api+FindNew.h" +@implementation YUMIInterlocutionDiscoveryStrangeExternalizer + +- (void)acquireDiscoveryStrangeConsumer { + [Api prohibiticoveryStrangeConsumer:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + NSArray * array = [DiscoveryStrangeConsumerAbstractMatrix mtowardsrixsAboutGarment:data.data]; + [[self acquireRegard] acquireDiscoveryStrangeConsumerAccomplishment:array]; + }]]; +} + +@end diff --git a/YuMi/Modules/YMMessage/View/FindNew/Protocol/FBCInterlocutionDiscoveryStrangeCeremony.h b/YuMi/Modules/YMMessage/View/FindNew/Protocol/FBCInterlocutionDiscoveryStrangeCeremony.h new file mode 100644 index 00000000..441109fe --- /dev/null +++ b/YuMi/Modules/YMMessage/View/FindNew/Protocol/FBCInterlocutionDiscoveryStrangeCeremony.h @@ -0,0 +1,18 @@ +// +// YMSessionFindNewProtocol.h +// YUMI +// +// Created by YUMI on 2022/6/10. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol FBCInterlocutionDiscoveryStrangeCeremony + +- (void)acquireDiscoveryStrangeConsumerAccomplishment:(NSArray *)list; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/FindNew/View/Cell/YUMIInterlocutionDiscoveryStrangeBewelcometoTabulationRegardElement.h b/YuMi/Modules/YMMessage/View/FindNew/View/Cell/YUMIInterlocutionDiscoveryStrangeBewelcometoTabulationRegardElement.h new file mode 100644 index 00000000..4ab38674 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/FindNew/View/Cell/YUMIInterlocutionDiscoveryStrangeBewelcometoTabulationRegardElement.h @@ -0,0 +1,23 @@ +// +// YMSessionFindNewGreetTableViewCell.h +// YUMI +// +// Created by YUMI on 2022/6/13. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class DiscoveryStrangeBewelcometoMatrix, YUMIInterlocutionDiscoveryStrangeBewelcometoTabulationRegardElement; +@protocol FBCInterlocutionDiscoveryStrangeGreetTabulationViweElementRepresendtation + +- (void)yUMIInterlocutionDiscoveryStrangeBewelcometoTarbsultowardsionViweElement:(YUMIInterlocutionDiscoveryStrangeBewelcometoTabulationRegardElement *)view didSelectItem:(DiscoveryStrangeBewelcometoMatrix *)model; + +@end + +@interface YUMIInterlocutionDiscoveryStrangeBewelcometoTabulationRegardElement : UITableViewCell +@property (nonatomic,strong) DiscoveryStrangeBewelcometoMatrix *bewelcometoMatrix; +@property (nonatomic,weak) id delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/FindNew/View/Cell/YUMIInterlocutionDiscoveryStrangeBewelcometoTabulationRegardElement.m b/YuMi/Modules/YMMessage/View/FindNew/View/Cell/YUMIInterlocutionDiscoveryStrangeBewelcometoTabulationRegardElement.m new file mode 100644 index 00000000..09f07d63 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/FindNew/View/Cell/YUMIInterlocutionDiscoveryStrangeBewelcometoTabulationRegardElement.m @@ -0,0 +1,86 @@ +// +// YMSessionFindNewGreetTableViewCell.m +// YUMI +// +// Created by YUMI on 2022/6/13. +// + +#import "YUMIInterlocutionDiscoveryStrangeBewelcometoTabulationRegardElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "DiscoveryStrangeBewelcometoStatementMatrix.h" + +@interface YUMIInterlocutionDiscoveryStrangeBewelcometoTabulationRegardElement () +@property (nonatomic,strong) UIButton *concludeBtuton; +@property (nonatomic,strong) UILabel *titleLabel; +@end + + +@implementation YUMIInterlocutionDiscoveryStrangeBewelcometoTabulationRegardElement +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify]; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.concludeBtuton]; + [self.contentView addSubview:self.titleLabel]; +} + +- (void)initChildLyRestrictions { + [self.concludeBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.titleLabel.mas_centerY); + make.left.mas_equalTo(15); + make.height.width.mas_equalTo(18); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(10); + make.left.mas_equalTo(self.concludeBtuton.mas_right).offset(15); + make.right.mas_lessThanOrEqualTo(-15); + }]; +} + +#pragma mark - Event Response +- (void)concludeBtutonPerformance:(UIButton *)sender { + sender.selected = !sender.selected; + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIInterlocutionDiscoveryStrangeBewelcometoTarbsultowardsionViweElement:didSelectItem:)]) { + [self.delegate yUMIInterlocutionDiscoveryStrangeBewelcometoTarbsultowardsionViweElement:self didSelectItem:self.bewelcometoMatrix]; + } +} +#pragma mark - Getters And Setters +- (void)setBewelcometoMatrix:(DiscoveryStrangeBewelcometoMatrix *)bewelcometoMatrix { + _bewelcometoMatrix = bewelcometoMatrix; + if (_bewelcometoMatrix) { + self.titleLabel.text = _bewelcometoMatrix.message; + self.concludeBtuton.selected = _bewelcometoMatrix.isSelect; + } +} + +- (UIButton *)concludeBtuton { + if (!_concludeBtuton) { + _concludeBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_concludeBtuton setImage:[UIImage imageNamed:@"yumi_center_guild_guild_manager_normal"] forState:UIControlStateNormal]; + [_concludeBtuton setImage:[UIImage imageNamed:@"yumi_center_guild_guild_manager_select"] forState:UIControlStateSelected]; + [_concludeBtuton addTarget:self action:@selector(concludeBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _concludeBtuton; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.font = [UIFont systemFontOfSize:15]; + _titleLabel.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _titleLabel.numberOfLines = 2; + } + return _titleLabel; +} + + +@end diff --git a/YuMi/Modules/YMMessage/View/FindNew/View/Cell/YUMIInterlocutionDiscoveryStrangeDispossessTabulationRegardElement.h b/YuMi/Modules/YMMessage/View/FindNew/View/Cell/YUMIInterlocutionDiscoveryStrangeDispossessTabulationRegardElement.h new file mode 100644 index 00000000..ac17fe76 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/FindNew/View/Cell/YUMIInterlocutionDiscoveryStrangeDispossessTabulationRegardElement.h @@ -0,0 +1,16 @@ +// +// YMSessionFindNewEmptyTableViewCell.h +// YUMI +// +// Created by YUMI on 2022/6/10. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIInterlocutionDiscoveryStrangeDispossessTabulationRegardElement : UITableViewCell + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/FindNew/View/Cell/YUMIInterlocutionDiscoveryStrangeDispossessTabulationRegardElement.m b/YuMi/Modules/YMMessage/View/FindNew/View/Cell/YUMIInterlocutionDiscoveryStrangeDispossessTabulationRegardElement.m new file mode 100644 index 00000000..0d03d03c --- /dev/null +++ b/YuMi/Modules/YMMessage/View/FindNew/View/Cell/YUMIInterlocutionDiscoveryStrangeDispossessTabulationRegardElement.m @@ -0,0 +1,69 @@ +// +// YMSessionFindNewEmptyTableViewCell.m +// YUMI +// +// Created by YUMI on 2022/6/10. +// + +#import "YUMIInterlocutionDiscoveryStrangeDispossessTabulationRegardElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "UIIndicateConstant.h" + +@interface YUMIInterlocutionDiscoveryStrangeDispossessTabulationRegardElement () +@property (nonatomic,strong) UIImageView *dispossessIndicateRegard; +@property (nonatomic,strong) UILabel *titleLabel; +@end + +@implementation YUMIInterlocutionDiscoveryStrangeDispossessTabulationRegardElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor]; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.dispossessIndicateRegard]; + [self.contentView addSubview:self.titleLabel]; +} + +- (void)initChildLyRestrictions { + [self.dispossessIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.contentView); + make.top.mas_equalTo(self.contentView).offset(250); + make.size.mas_equalTo(CGSizeMake(100, 100)); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.dispossessIndicateRegard.mas_bottom).offset(20); + make.left.right.mas_equalTo(self.contentView); + }]; +} +#pragma mark - Getters And Setters +- (UIImageView *)dispossessIndicateRegard { + if (!_dispossessIndicateRegard) { + _dispossessIndicateRegard = [[UIImageView alloc] init]; + _dispossessIndicateRegard.userInteractionEnabled = YES; + _dispossessIndicateRegard.image = [UIIndicateConstant defalutDispossessDepapossessor]; + _dispossessIndicateRegard.layer.masksToBounds = YES; + _dispossessIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _dispossessIndicateRegard; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.text = YMLocalizedString(@"YUMI_Session_Find_New_Empty_Table_View_Cell_0"); + _titleLabel.font = [UIFont systemFontOfSize:16]; + _titleLabel.textAlignment = NSTextAlignmentCenter; + _titleLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + } + return _titleLabel; +}@end diff --git a/YuMi/Modules/YMMessage/View/FindNew/View/Cell/YUMIInterlocutionDiscoveryStrangeTabulationRegardElement.h b/YuMi/Modules/YMMessage/View/FindNew/View/Cell/YUMIInterlocutionDiscoveryStrangeTabulationRegardElement.h new file mode 100644 index 00000000..577dcbe6 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/FindNew/View/Cell/YUMIInterlocutionDiscoveryStrangeTabulationRegardElement.h @@ -0,0 +1,22 @@ +// +// YMSessionFindNewTableViewCell.h +// YUMI +// +// Created by YUMI on 2022/6/10. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class DiscoveryStrangeConsumerAbstractMatrix, YUMIInterlocutionDiscoveryStrangeTabulationRegardElement; +@protocol FBCInterlocutionDiscoveryStrangeTabulationViweElementRepresendtation +- (void)yUMIInterlocutionDiscoveryStrangeTarbsultowardsionViweElement:(YUMIInterlocutionDiscoveryStrangeTabulationRegardElement *)cell didSelectItem:(DiscoveryStrangeConsumerAbstractMatrix *)userInfo; +- (void)yUMIInterlocutionDiscoveryStrangeTarbsultowardsionViweElement:(YUMIInterlocutionDiscoveryStrangeTabulationRegardElement *)cell didClickAvatar:(DiscoveryStrangeConsumerAbstractMatrix *)userInfo; +@end + +@interface YUMIInterlocutionDiscoveryStrangeTabulationRegardElement : UITableViewCell +@property (nonatomic,strong) DiscoveryStrangeConsumerAbstractMatrix *userInfo; +@property (nonatomic,weak) id delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/FindNew/View/Cell/YUMIInterlocutionDiscoveryStrangeTabulationRegardElement.m b/YuMi/Modules/YMMessage/View/FindNew/View/Cell/YUMIInterlocutionDiscoveryStrangeTabulationRegardElement.m new file mode 100644 index 00000000..966ba963 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/FindNew/View/Cell/YUMIInterlocutionDiscoveryStrangeTabulationRegardElement.m @@ -0,0 +1,233 @@ +// +// YMSessionFindNewTableViewCell.m +// YUMI +// +// Created by YUMI on 2022/6/10. +// + +#import "YUMIInterlocutionDiscoveryStrangeTabulationRegardElement.h" +#import +#import +#import "NetIndicateRegard.h" +#import "DJDKMIMOMColor.h" +#import "UIImage+Utils.h" +#import "DiscoveryStrangeConsumerAbstractMatrix.h" + +@interface YUMIInterlocutionDiscoveryStrangeTabulationRegardElement () +@property (nonatomic,strong) NetIndicateRegard *intelligenceportraitIndicateRegard; +@property (nonatomic,strong) UIStackView *stackView; +@property (nonatomic,strong) UILabel *monicerSequencignation; +@property (nonatomic,strong) UIImageView *seaxualityIndicateRegard; +@property (nonatomic,strong) NetIndicateRegard *experIndicateRegard; +@property (nonatomic,strong) NetIndicateRegard *fascinationIndicateRegard; +@property (nonatomic,strong) UILabel * idSequencignation; +@property (nonatomic,strong) UIButton * bewelcometoBtuton; +@end + + +@implementation YUMIInterlocutionDiscoveryStrangeTabulationRegardElement +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor]; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.intelligenceportraitIndicateRegard]; + [self.contentView addSubview:self.stackView]; + [self.contentView addSubview:self.idSequencignation]; + [self.contentView addSubview:self.bewelcometoBtuton]; + + [self.stackView addArrangedSubview:self.monicerSequencignation]; + [self.stackView addArrangedSubview:self.seaxualityIndicateRegard]; + [self.stackView addArrangedSubview:self.experIndicateRegard]; + [self.stackView addArrangedSubview:self.fascinationIndicateRegard]; +} + +- (void)initChildLyRestrictions { + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(45, 45)); + make.centerY.mas_equalTo(self.contentView); + make.left.mas_equalTo(self.contentView).offset(15); + }]; + + [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_right).offset(10); + make.bottom.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_centerY).offset(-2); + make.right.mas_lessThanOrEqualTo(self.bewelcometoBtuton.mas_left).mas_offset(-4); + }]; + + [self.idSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.stackView); + make.top.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_centerY).offset(2); + make.right.mas_equalTo(self.bewelcometoBtuton.mas_left).mas_offset(-4); + }]; + + [self.bewelcometoBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(64); + make.height.mas_equalTo(25); + make.centerY.mas_equalTo(self.contentView); + make.right.mas_equalTo(self.contentView).offset(-15); + }]; +} + +#pragma mark - Event Response +- (void)considertowardsionBtutonPerformance:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIInterlocutionDiscoveryStrangeTarbsultowardsionViweElement:didSelectItem:)]) { + [self.delegate yUMIInterlocutionDiscoveryStrangeTarbsultowardsionViweElement:self didSelectItem:self.userInfo]; + } +} + +- (void)intelligenceportraitBetowardsRecognition { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIInterlocutionDiscoveryStrangeTarbsultowardsionViweElement:didClickAvatar:)]) { + [self.delegate yUMIInterlocutionDiscoveryStrangeTarbsultowardsionViweElement:self didClickAvatar:self.userInfo]; + } +} + +#pragma mark - Getters And Setters +- (void)setUserInfo:(DiscoveryStrangeConsumerAbstractMatrix *)userInfo{ + _userInfo = userInfo; + if (_userInfo) { + self.intelligenceportraitIndicateRegard.imageUrl = _userInfo.avatar; + self.experIndicateRegard.imageUrl = _userInfo.experUrl; + self.fascinationIndicateRegard.imageUrl = _userInfo.charmUrl; + self.monicerSequencignation.text = _userInfo.nick; + NSString *sexStr; + if (_userInfo.gender == GenderGenre_Male) { + sexStr = @"common_male"; + } else { + sexStr = @"common_female"; + } + self.seaxualityIndicateRegard.image = [UIImage imageNamed:sexStr]; + self.idSequencignation.text = [NSString stringWithFormat:@"ID:%@", _userInfo.erbanNo]; + self.bewelcometoBtuton.selected = !_userInfo.hello; + UIImage* image = self.experIndicateRegard.image; + if (image) { + CGFloat scale = image.size.width / image.size.height; + [self.experIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(20* scale, 20)); + }]; + } else { + NSURL *imgUrl = [NSURL URLWithString:_userInfo.experUrl]; + UIImage *myImage = [UIImage imageWithData:[NSData dataWithContentsOfURL:imgUrl]]; + if (myImage) { + CGFloat scale = myImage.size.width / myImage.size.height; + [self.experIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(20* scale, 20)); + }]; + } + } + + UIImage* charmImage = self.fascinationIndicateRegard.image; + if (charmImage) { + CGFloat scale = charmImage.size.width / charmImage.size.height; + [self.fascinationIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(20* scale, 20)); + }]; + } else { + NSURL *imgUrl = [NSURL URLWithString:_userInfo.charmUrl]; + UIImage *myImage = [UIImage imageWithData:[NSData dataWithContentsOfURL:imgUrl]]; + if (myImage) { + CGFloat scale = myImage.size.width / myImage.size.height; + [self.fascinationIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(20* scale, 20)); + }]; + } + } + } +} + +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _intelligenceportraitIndicateRegard.layer.cornerRadius = 45/2; + _intelligenceportraitIndicateRegard.userInteractionEnabled = YES; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(intelligenceportraitBetowardsRecognition)]; + [_intelligenceportraitIndicateRegard addGestureRecognizer:tap]; + } + return _intelligenceportraitIndicateRegard; +} + +- (UIStackView *)stackView { + if (!_stackView) { + _stackView = [[UIStackView alloc] init]; + _stackView.axis = UILayoutConstraintAxisHorizontal; + _stackView.distribution = UIStackViewDistributionFill; + _stackView.alignment = UIStackViewAlignmentCenter; + _stackView.spacing = 2; + } + return _stackView; +} + +- (UILabel *)monicerSequencignation { + if (!_monicerSequencignation) { + _monicerSequencignation = [[UILabel alloc] init]; + _monicerSequencignation.font = [UIFont systemFontOfSize:15]; + _monicerSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _monicerSequencignation; +} + +- (UIImageView *)seaxualityIndicateRegard { + if (!_seaxualityIndicateRegard) { + _seaxualityIndicateRegard = [[UIImageView alloc] init]; + _seaxualityIndicateRegard.userInteractionEnabled = YES; + } + return _seaxualityIndicateRegard; +} + +- (NetIndicateRegard *)experIndicateRegard { + if (!_experIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _experIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + } + return _experIndicateRegard; +} + +- (NetIndicateRegard *)fascinationIndicateRegard { + if (!_fascinationIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _fascinationIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + } + return _fascinationIndicateRegard; +} + + +- (UILabel *)idSequencignation{ + if (!_idSequencignation) { + _idSequencignation = [[UILabel alloc] init]; + _idSequencignation.textColor = [DJDKMIMOMColor instantEssayPrettify]; + _idSequencignation.font = [UIFont systemFontOfSize:14]; + } + return _idSequencignation; +} + +- (UIButton *)bewelcometoBtuton { + if (!_bewelcometoBtuton) { + _bewelcometoBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_bewelcometoBtuton setTitle:YMLocalizedString(@"YUMI_Session_Find_New_Table_View_Cell_0") forState:UIControlStateNormal]; + [_bewelcometoBtuton setTitleColor:[DJDKMIMOMColor acknowledgementBtutonEssayPrettify] forState:UIControlStateNormal]; + _bewelcometoBtuton.titleLabel.font = [UIFont systemFontOfSize:12]; + [_bewelcometoBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + [_bewelcometoBtuton setTitle:YMLocalizedString(@"YUMI_Session_Find_New_Table_View_Cell_1") forState:UIControlStateDisabled]; + [_bewelcometoBtuton setTitleColor:[DJDKMIMOMColor prohibitionBtutonEssayPrettify] forState:UIControlStateSelected]; + [_bewelcometoBtuton setBackgroundImage:[UIImage imageWithColor:[DJDKMIMOMColor prohibitionBtutonPrettify]] forState:UIControlStateSelected]; + _bewelcometoBtuton.layer.masksToBounds = YES; + _bewelcometoBtuton.layer.cornerRadius = 25 /2; + [_bewelcometoBtuton addTarget:self action:@selector(considertowardsionBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _bewelcometoBtuton; +} + +@end diff --git a/YuMi/Modules/YMMessage/View/FindNew/View/View/YUMIInterlocutionDiscoveryStrangeBewelcometoStatementRegard.h b/YuMi/Modules/YMMessage/View/FindNew/View/View/YUMIInterlocutionDiscoveryStrangeBewelcometoStatementRegard.h new file mode 100644 index 00000000..9244486d --- /dev/null +++ b/YuMi/Modules/YMMessage/View/FindNew/View/View/YUMIInterlocutionDiscoveryStrangeBewelcometoStatementRegard.h @@ -0,0 +1,23 @@ +// +// YMSessionFindNewGreetListView.h +// YUMI +// +// Created by YUMI on 2022/6/13. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class YUMIInterlocutionDiscoveryStrangeBewelcometoStatementRegard; +@protocol FBCInterlocutionDiscoveryStrangeGreetStatementRegardRepresendtation + +- (void)yUMIInterlocutionDiscoveryStrangeBewelcometoSttowardsementRegard:(YUMIInterlocutionDiscoveryStrangeBewelcometoStatementRegard *)view greetUserId:(NSString *)userId; + +@end + +@interface YUMIInterlocutionDiscoveryStrangeBewelcometoStatementRegard : UIView +@property (nonatomic,copy) NSString *userId; +@property (nonatomic,weak) id delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/FindNew/View/View/YUMIInterlocutionDiscoveryStrangeBewelcometoStatementRegard.m b/YuMi/Modules/YMMessage/View/FindNew/View/View/YUMIInterlocutionDiscoveryStrangeBewelcometoStatementRegard.m new file mode 100644 index 00000000..03833353 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/FindNew/View/View/YUMIInterlocutionDiscoveryStrangeBewelcometoStatementRegard.m @@ -0,0 +1,233 @@ +// +// YMSessionFindNewGreetListView.m +// YUMI +// +// Created by YUMI on 2022/6/13. +// + +#import "YUMIInterlocutionDiscoveryStrangeBewelcometoStatementRegard.h" +#import +#import "DJDKMIMOMColor.h" +#import "UIImage+Utils.h" +#import "YUMIMacroUitls.h" +#import "XNDJTBWGLoadingTool.h" +#import "Api+FindNew.h" +#import "MKJPopup.h" +#import "NSArray+Safe.h" +#import "DiscoveryStrangeBewelcometoStatementMatrix.h" +#import "YUMIInterlocutionDiscoveryStrangeBewelcometoTabulationRegardElement.h" + +@interface YUMIInterlocutionDiscoveryStrangeBewelcometoStatementRegard () +@property (nonatomic,strong) UILabel *titleLabel; +@property (nonatomic,strong) UIStackView *refreshHierarchyRegard; +@property (nonatomic,strong) UIButton *refreshBtuton; +@property (nonatomic,strong) UILabel *refreshSequencignation; +@property (nonatomic,strong) UITableView *tableView; +@property (nonatomic,strong) UIButton *dischargeBtuton; +@property (nonatomic,strong) NSArray *datasource; +@property (nonatomic,strong) DiscoveryStrangeBewelcometoStatementMatrix *listMatrix; +@property (nonatomic,strong) DiscoveryStrangeBewelcometoMatrix *chosenMatrix; +@end + +@implementation YUMIInterlocutionDiscoveryStrangeBewelcometoStatementRegard + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initHyperessayDemand]; + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} +#pragma mark - Private Method +- (void)initHyperessayDemand { + NSString * start = self.listMatrix ? self.listMatrix.start : @"0"; + [XNDJTBWGLoadingTool EvidenceChambering]; + [Api prohibiticoveryStrangeBewelcometoCommunictowardsionSttowardsement:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + [XNDJTBWGLoadingTool brakeHUD]; + if (code == 200) { + DiscoveryStrangeBewelcometoStatementMatrix * model = [DiscoveryStrangeBewelcometoStatementMatrix mtowardsrixAboutImpactbasket:data.data]; + self.listMatrix = model; + self.datasource = model.list; + if (model.list.count > 0) { + self.chosenMatrix = model.list.firstObject; + } + [self.tableView reloadData]; + } else { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:msg]; + } + } start:start pageSize:@"5"]; +} + +- (void)initSubViews { + self.backgroundColor = [DJDKMIMOMColor aplictowardsionEncouragegroundPrettify]; + [self addSubview:self.titleLabel]; + [self addSubview:self.refreshHierarchyRegard]; + [self addSubview:self.tableView]; + [self addSubview:self.dischargeBtuton]; + + [self.refreshHierarchyRegard addArrangedSubview:self.refreshBtuton]; + [self.refreshHierarchyRegard addArrangedSubview:self.refreshSequencignation]; + + CAShapeLayer * layer = [CAShapeLayer layer]; + UIBezierPath * path= [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, KScreenWidth, kHalfScreenHeight) byRoundingCorners:UIRectCornerTopLeft | UIRectCornerTopRight cornerRadii:CGSizeMake(10, 10)]; + layer.path = path.CGPath; + self.layer.mask = layer; +} + +- (void)initChildLyRestrictions { + self.frame = CGRectMake(0, 0, KScreenWidth, kHalfScreenHeight); + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self).offset(17); + make.left.mas_equalTo(15); + }]; + + [self.refreshHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self).offset(-15); + make.centerY.mas_equalTo(self.titleLabel); + make.height.mas_equalTo(30); + }]; + + [self.refreshBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(30); + }]; + + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self); + make.bottom.mas_equalTo(self.dischargeBtuton.mas_top); + make.top.mas_equalTo(self.titleLabel.mas_bottom).offset(10); + }]; + + [self.dischargeBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.bottom.mas_equalTo(self.mas_bottom).offset(-20); + make.left.right.mas_equalTo(self).inset(57); + make.height.mas_equalTo(44); + }]; +} + + +#pragma mark - UITableViewDelegate And UITableViewDataSource +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.datasource.count; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + return 65; +} + + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + YUMIInterlocutionDiscoveryStrangeBewelcometoTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIInterlocutionDiscoveryStrangeBewelcometoTabulationRegardElement class])]; + DiscoveryStrangeBewelcometoMatrix * model = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + if (model.fId == self.chosenMatrix.fId) { + model.isSelect = YES; + } else { + model.isSelect = NO; + } + cell.bewelcometoMatrix = model; + return cell; +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + [tableView deselectRowAtIndexPath:indexPath animated:YES]; + if (self.datasource.count > 0) { + DiscoveryStrangeBewelcometoMatrix * model = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + self.chosenMatrix = model; + [self.tableView reloadData]; + } +} +#pragma mark - Event Response +- (void)prohibitichargeBtutonPerformance:(UIButton *)sender { + [Api prohibiticoveryStrangeConsumerBewelcometo:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + [XNDJTBWGLoadingTool EvidenceAccomplishmentAboutCommunictowardsion:YMLocalizedString(@"YUMI_Session_Find_New_Greet_List_View_0")]; + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIInterlocutionDiscoveryStrangeBewelcometoSttowardsementRegard:greetUserId:)]) { + [self.delegate yUMIInterlocutionDiscoveryStrangeBewelcometoSttowardsementRegard:self greetUserId:self.userId]; + } + [MKJPopup dismiss]; + } else { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:msg]; + } + } helloUid:self.userId message:self.chosenMatrix.message]; +} + +- (void)betowardsRenovtowardsehRecognition { + [self initHyperessayDemand]; +} + +#pragma mark - Getters And Setters +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.font = [UIFont systemFontOfSize:18 weight:UIFontWeightBold]; + _titleLabel.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _titleLabel.text = YMLocalizedString(@"YUMI_Session_Find_New_Greet_List_View_1"); + } + return _titleLabel; +} + +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.tableFooterView = [UIView new]; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.backgroundColor = [UIColor clearColor]; + if (@available(iOS 11.0, *)) { + _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + [_tableView registerClass:[YUMIInterlocutionDiscoveryStrangeBewelcometoTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIInterlocutionDiscoveryStrangeBewelcometoTabulationRegardElement class])]; + } + return _tableView; +} + +- (UIStackView *)refreshHierarchyRegard { + if (!_refreshHierarchyRegard) { + _refreshHierarchyRegard = [[UIStackView alloc] init]; + _refreshHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _refreshHierarchyRegard.distribution = UIStackViewDistributionFill; + _refreshHierarchyRegard.alignment = UIStackViewAlignmentFill; + _refreshHierarchyRegard.spacing = 2; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(betowardsRenovtowardsehRecognition)]; + [_refreshHierarchyRegard addGestureRecognizer:tap]; + } + return _refreshHierarchyRegard; +} + +- (UIButton *)refreshBtuton { + if (!_refreshBtuton) { + _refreshBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_refreshBtuton setImage:[UIImage imageNamed:@"yumi_term_find_new_refresh"] forState:UIControlStateNormal]; + [_refreshBtuton setImage:[UIImage imageNamed:@"yumi_term_find_new_refresh"] forState:UIControlStateSelected]; + } + return _refreshBtuton; +} + +- (UILabel *)refreshSequencignation { + if (!_refreshSequencignation) { + _refreshSequencignation = [[UILabel alloc] init]; + _refreshSequencignation.font = [UIFont systemFontOfSize:13]; + _refreshSequencignation.textColor = [DJDKMIMOMColor instantEssayPrettify]; + _refreshSequencignation.text = YMLocalizedString(@"YUMI_Session_Find_New_Greet_List_View_2"); + } + return _refreshSequencignation; +} + +- (UIButton *)dischargeBtuton { + if (!_dischargeBtuton) { + _dischargeBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_dischargeBtuton setTitle:YMLocalizedString(@"YUMI_Session_Find_New_Greet_List_View_3") forState:UIControlStateNormal]; + [_dischargeBtuton setTitleColor:[DJDKMIMOMColor acknowledgementBtutonEssayPrettify] forState:UIControlStateNormal]; + _dischargeBtuton.titleLabel.font = [UIFont systemFontOfSize:14]; + [_dischargeBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + _dischargeBtuton.layer.cornerRadius = 22; + _dischargeBtuton.layer.masksToBounds = YES; + [_dischargeBtuton addTarget:self action:@selector(prohibitichargeBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _dischargeBtuton; +} + +@end diff --git a/YuMi/Modules/YMMessage/View/FindNew/View/View/YUMIInterlocutionDiscoveryStrangeFiltrateRegard.h b/YuMi/Modules/YMMessage/View/FindNew/View/View/YUMIInterlocutionDiscoveryStrangeFiltrateRegard.h new file mode 100644 index 00000000..e393bcae --- /dev/null +++ b/YuMi/Modules/YMMessage/View/FindNew/View/View/YUMIInterlocutionDiscoveryStrangeFiltrateRegard.h @@ -0,0 +1,22 @@ +// +// YMSessionFindNewFiltrateView.h +// YUMI +// +// Created by YUMI on 2022/6/10. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class YUMIInterlocutionDiscoveryStrangeFiltrateRegard; +@protocol FBCInterlocutionDiscoveryStrangeFiltrateRegardRepresendtation + +- (void)yUMIInterlocutionDiscoveryStrangeFiltrtowardseRegard:(NSString *)chooseHello chooseSex:(NSString *)sex; + +@end + +@interface YUMIInterlocutionDiscoveryStrangeFiltrateRegard : UIView +@property (nonatomic,weak) id delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/FindNew/View/View/YUMIInterlocutionDiscoveryStrangeFiltrateRegard.m b/YuMi/Modules/YMMessage/View/FindNew/View/View/YUMIInterlocutionDiscoveryStrangeFiltrateRegard.m new file mode 100644 index 00000000..ad2c4885 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/FindNew/View/View/YUMIInterlocutionDiscoveryStrangeFiltrateRegard.m @@ -0,0 +1,333 @@ +// +// YMSessionFindNewFiltrateView.m +// YUMI +// +// Created by YUMI on 2022/6/10. +// + +#import "YUMIInterlocutionDiscoveryStrangeFiltrateRegard.h" +#import +#import "DJDKMIMOMColor.h" +#import "UIImage+Utils.h" +#import "YUMIMacroUitls.h" + +@interface YUMIInterlocutionDiscoveryStrangeFiltrateRegard () + +@property (nonatomic,strong) UILabel *titleLabel; +@property (nonatomic,strong) UILabel *seaxualitySequencignation; +@property (nonatomic,strong) UIStackView *seaxualityHierarchyRegard; +@property (nonatomic,strong) UIButton *entiretyBtuton; +@property (nonatomic,strong) UIButton *maleBtuton; +@property (nonatomic,strong) UIButton *femaleBtuton; +@property (nonatomic,strong) UIButton *sureBtuton; +@property (nonatomic,strong) UILabel *corridoroSequencignation; +@property (nonatomic,strong) UIStackView *corridoroHierarchyRegard; +@property (nonatomic,strong) UIButton *entiretyCorridoroBtuton; +@property (nonatomic,strong) UIButton *notCorridorowBtuton; +@property (nonatomic,strong) UIButton *corridoroBtuton; +@property (nonatomic,copy) NSString *seualityConclude; +@property (nonatomic,copy) NSString *hentiretyoConclude; +@end + + +@implementation YUMIInterlocutionDiscoveryStrangeFiltrateRegard + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.seualityConclude = @"0"; + [self addSubview:self.titleLabel]; + [self addSubview:self.seaxualitySequencignation]; + [self addSubview:self.seaxualityHierarchyRegard]; + [self addSubview:self.corridoroSequencignation]; + [self addSubview:self.corridoroHierarchyRegard]; + [self addSubview:self.sureBtuton]; + + [self.seaxualityHierarchyRegard addArrangedSubview:self.entiretyBtuton]; + [self.seaxualityHierarchyRegard addArrangedSubview:self.femaleBtuton]; + [self.seaxualityHierarchyRegard addArrangedSubview:self.maleBtuton]; + + [self.corridoroHierarchyRegard addArrangedSubview:self.entiretyCorridoroBtuton]; + [self.corridoroHierarchyRegard addArrangedSubview:self.corridoroBtuton]; + [self.corridoroHierarchyRegard addArrangedSubview:self.notCorridorowBtuton]; + + self.backgroundColor = [UIColor whiteColor]; + CAShapeLayer * layer = [CAShapeLayer layer]; + layer.path = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, KScreenWidth, 315) byRoundingCorners:UIRectCornerTopLeft| UIRectCornerTopRight cornerRadii:CGSizeMake(10, 10)].CGPath; + self.layer.masksToBounds = YES; + self.layer.mask = layer; + [self seualityBtutonPerformance:self.entiretyBtuton]; + [self hentiretyoBtutonPerformance:self.entiretyCorridoroBtuton]; +} + +- (void)initChildLyRestrictions { + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(KScreenWidth); + make.height.mas_equalTo(315); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self); + make.top.mas_equalTo(self).offset(15); + }]; + + [self.seaxualitySequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self).offset(15); + make.top.mas_equalTo(self.titleLabel.mas_bottom).offset(12); + }]; + + [self.seaxualityHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.seaxualitySequencignation); + make.top.mas_equalTo(self.seaxualitySequencignation.mas_bottom).offset(12); + make.height.mas_equalTo(26); + make.width.mas_equalTo(72 * 3 + 20 * 2); + }]; + + [self.corridoroSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self).offset(15); + make.top.mas_equalTo(self.seaxualityHierarchyRegard.mas_bottom).offset(24); + }]; + + [self.corridoroHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.seaxualitySequencignation); + make.top.mas_equalTo(self.corridoroSequencignation.mas_bottom).offset(12); + make.height.mas_equalTo(26); + make.width.mas_equalTo(72 * 3 + 20 * 2); + }]; + + [self.sureBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self).inset(57); + make.height.mas_equalTo(38); + make.bottom.mas_equalTo(self).offset(-45); + }]; +} +#pragma mark - Event Response +- (void)seualityBtutonPerformance:(UIButton *)sender { + self.entiretyBtuton.selected = NO; + self.femaleBtuton.selected = NO; + self.maleBtuton.selected = NO; + self.entiretyBtuton.layer.borderWidth = 0; + self.femaleBtuton.layer.borderWidth = 0; + self.maleBtuton.layer.borderWidth = 0; + sender.layer.borderWidth = 0.5; + sender.selected = YES; + self.seualityConclude = [NSString stringWithFormat:@"%ld", sender.tag - 1000]; +} + +- (void)hentiretyoBtutonPerformance:(UIButton *)sender { + self.corridoroBtuton.selected = NO; + self.notCorridorowBtuton.selected = NO; + self.entiretyCorridoroBtuton.selected = NO; + sender.selected = YES; + self.entiretyCorridoroBtuton.layer.borderWidth = 0; + self.corridoroBtuton.layer.borderWidth = 0; + self.notCorridorowBtuton.layer.borderWidth = 0; + sender.layer.borderWidth = 0.5; + self.hentiretyoConclude = [NSString stringWithFormat:@"%ld", sender.tag - 1000]; +} + +- (void)sureBtutonPerformance:(UIButton *)sener { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIInterlocutionDiscoveryStrangeFiltrtowardseRegard:chooseSex:)]) { + [self.delegate yUMIInterlocutionDiscoveryStrangeFiltrtowardseRegard:self.hentiretyoConclude chooseSex:self.seualityConclude]; + } +} + +#pragma mark - Getters And Setters +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.font = [UIFont systemFontOfSize:15 weight:UIFontWeightSemibold]; + _titleLabel.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _titleLabel.text = YMLocalizedString(@"YUMI_Session_Find_New_Filtrate_View_0"); + _titleLabel.textAlignment = NSTextAlignmentCenter; + } + return _titleLabel; +} + +- (UILabel *)seaxualitySequencignation { + if (!_seaxualitySequencignation) { + _seaxualitySequencignation = [[UILabel alloc] init]; + _seaxualitySequencignation.font = [UIFont systemFontOfSize:15]; + _seaxualitySequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _seaxualitySequencignation.text = YMLocalizedString(@"YUMI_Session_Find_New_Filtrate_View_1"); + } + return _seaxualitySequencignation; +} + +- (UIStackView *)seaxualityHierarchyRegard { + if (!_seaxualityHierarchyRegard) { + _seaxualityHierarchyRegard = [[UIStackView alloc] init]; + _seaxualityHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _seaxualityHierarchyRegard.distribution = UIStackViewDistributionFillEqually; + _seaxualityHierarchyRegard.alignment = UIStackViewAlignmentFill; + _seaxualityHierarchyRegard.spacing = 20; + } + return _seaxualityHierarchyRegard; +} + + +- (UIButton *)maleBtuton { + if (!_maleBtuton) { + _maleBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_maleBtuton setTitle:YMLocalizedString(@"YUMI_Session_Find_New_Filtrate_View_2") forState:UIControlStateNormal]; + [_maleBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + _maleBtuton.titleLabel.font = [UIFont systemFontOfSize:12]; + [_maleBtuton setTitleColor:[DJDKMIMOMColor instantEssayPrettify] forState:UIControlStateNormal]; + [_maleBtuton setTitleColor:[DJDKMIMOMColor aplictowardsionMainPrettify] forState:UIControlStateSelected]; + [_maleBtuton setBackgroundImage:[UIImage imageWithColor:UIColorFromRGB(0xF1F1FA)] forState:UIControlStateNormal]; + [_maleBtuton setBackgroundImage:[UIImage imageWithColor:UIColorFromRGB(0xFFF0C9)] forState:UIControlStateSelected]; + _maleBtuton.layer.borderWidth = 0; + _maleBtuton.layer.borderColor = [DJDKMIMOMColor aplictowardsionMainPrettify].CGColor; + _maleBtuton.layer.masksToBounds = YES; + _maleBtuton.layer.cornerRadius = 13; + _maleBtuton.tag = 1001; + [_maleBtuton addTarget:self action:@selector(seualityBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _maleBtuton; +} + +- (UIButton *)femaleBtuton { + if (!_femaleBtuton) { + _femaleBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_femaleBtuton setTitle:YMLocalizedString(@"YUMI_Session_Find_New_Filtrate_View_3") forState:UIControlStateNormal]; + [_femaleBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + _femaleBtuton.titleLabel.font = [UIFont systemFontOfSize:12]; + [_femaleBtuton setTitleColor:[DJDKMIMOMColor instantEssayPrettify] forState:UIControlStateNormal]; + [_femaleBtuton setTitleColor:[DJDKMIMOMColor aplictowardsionMainPrettify] forState:UIControlStateSelected]; + [_femaleBtuton setBackgroundImage:[UIImage imageWithColor:UIColorFromRGB(0xF1F1FA)] forState:UIControlStateNormal]; + [_femaleBtuton setBackgroundImage:[UIImage imageWithColor:UIColorFromRGB(0xFFF0C9)] forState:UIControlStateSelected]; + _femaleBtuton.layer.borderWidth = 0; + _femaleBtuton.layer.borderColor = [DJDKMIMOMColor aplictowardsionMainPrettify].CGColor; + _femaleBtuton.layer.masksToBounds = YES; + _femaleBtuton.layer.cornerRadius = 13; + _femaleBtuton.tag = 1002; + [_femaleBtuton addTarget:self action:@selector(seualityBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _femaleBtuton; +} + +- (UIButton *)entiretyBtuton { + if (!_entiretyBtuton) { + _entiretyBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_entiretyBtuton setTitle:YMLocalizedString(@"YUMI_Session_Find_New_Filtrate_View_4") forState:UIControlStateNormal]; + [_entiretyBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + _entiretyBtuton.titleLabel.font = [UIFont systemFontOfSize:12]; + [_entiretyBtuton setTitleColor:[DJDKMIMOMColor instantEssayPrettify] forState:UIControlStateNormal]; + [_entiretyBtuton setTitleColor:[DJDKMIMOMColor aplictowardsionMainPrettify] forState:UIControlStateSelected]; + [_entiretyBtuton setBackgroundImage:[UIImage imageWithColor:UIColorFromRGB(0xF1F1FA)] forState:UIControlStateNormal]; + [_entiretyBtuton setBackgroundImage:[UIImage imageWithColor:UIColorFromRGB(0xFFF0C9)] forState:UIControlStateSelected]; + _entiretyBtuton.layer.borderWidth = 0.5; + _entiretyBtuton.layer.borderColor = [DJDKMIMOMColor aplictowardsionMainPrettify].CGColor; + _entiretyBtuton.layer.masksToBounds = YES; + _entiretyBtuton.layer.cornerRadius = 13; + _entiretyBtuton.tag = 1000; + _entiretyBtuton.selected = YES; + [_entiretyBtuton addTarget:self action:@selector(seualityBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _entiretyBtuton; +} + +- (UILabel *)corridoroSequencignation { + if (!_corridoroSequencignation) { + _corridoroSequencignation = [[UILabel alloc] init]; + _corridoroSequencignation.font = [UIFont systemFontOfSize:15]; + _corridoroSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _corridoroSequencignation.text = YMLocalizedString(@"YUMI_Session_Find_New_Filtrate_View_5"); + } + return _corridoroSequencignation; +} + +- (UIStackView *)corridoroHierarchyRegard { + if (!_corridoroHierarchyRegard) { + _corridoroHierarchyRegard = [[UIStackView alloc] init]; + _corridoroHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _corridoroHierarchyRegard.distribution = UIStackViewDistributionFillEqually; + _corridoroHierarchyRegard.alignment = UIStackViewAlignmentFill; + _corridoroHierarchyRegard.spacing = 20; + } + return _corridoroHierarchyRegard; +} + +- (UIButton *)corridoroBtuton { + if (!_corridoroBtuton) { + _corridoroBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_corridoroBtuton setTitle:YMLocalizedString(@"YUMI_Session_Find_New_Filtrate_View_6") forState:UIControlStateNormal]; + [_corridoroBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + _corridoroBtuton.titleLabel.font = [UIFont systemFontOfSize:12]; + [_corridoroBtuton setTitleColor:[DJDKMIMOMColor instantEssayPrettify] forState:UIControlStateNormal]; + [_corridoroBtuton setTitleColor:[DJDKMIMOMColor aplictowardsionMainPrettify] forState:UIControlStateSelected]; + [_corridoroBtuton setBackgroundImage:[UIImage imageWithColor:UIColorFromRGB(0xF1F1FA)] forState:UIControlStateNormal]; + [_corridoroBtuton setBackgroundImage:[UIImage imageWithColor:UIColorFromRGB(0xFFF0C9)] forState:UIControlStateSelected]; + _corridoroBtuton.layer.borderWidth = 0.5; + _corridoroBtuton.layer.masksToBounds = YES; + _corridoroBtuton.layer.cornerRadius = 13; + _corridoroBtuton.layer.borderColor = [DJDKMIMOMColor aplictowardsionMainPrettify].CGColor; + _corridoroBtuton.tag = 1001; + [_corridoroBtuton addTarget:self action:@selector(hentiretyoBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _corridoroBtuton; +} + +- (UIButton *)notCorridorowBtuton { + if (!_notCorridorowBtuton) { + _notCorridorowBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_notCorridorowBtuton setTitle:YMLocalizedString(@"YUMI_Session_Find_New_Filtrate_View_7") forState:UIControlStateNormal]; + [_notCorridorowBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + _notCorridorowBtuton.titleLabel.font = [UIFont systemFontOfSize:12]; + [_notCorridorowBtuton setTitleColor:[DJDKMIMOMColor instantEssayPrettify] forState:UIControlStateNormal]; + [_notCorridorowBtuton setTitleColor:[DJDKMIMOMColor aplictowardsionMainPrettify] forState:UIControlStateSelected]; + [_notCorridorowBtuton setBackgroundImage:[UIImage imageWithColor:UIColorFromRGB(0xF1F1FA)] forState:UIControlStateNormal]; + [_notCorridorowBtuton setBackgroundImage:[UIImage imageWithColor:UIColorFromRGB(0xFFF0C9)] forState:UIControlStateSelected]; + _notCorridorowBtuton.layer.borderWidth = 0.5; + _notCorridorowBtuton.layer.masksToBounds = YES; + _notCorridorowBtuton.layer.cornerRadius = 13; + _notCorridorowBtuton.tag = 1002; + _notCorridorowBtuton.layer.borderColor = [DJDKMIMOMColor aplictowardsionMainPrettify].CGColor; + [_notCorridorowBtuton addTarget:self action:@selector(hentiretyoBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _notCorridorowBtuton; +} + +- (UIButton *)entiretyCorridoroBtuton { + if (!_entiretyCorridoroBtuton) { + _entiretyCorridoroBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_entiretyCorridoroBtuton setTitle:YMLocalizedString(@"YUMI_Session_Find_New_Filtrate_View_8") forState:UIControlStateNormal]; + [_entiretyCorridoroBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + _entiretyCorridoroBtuton.titleLabel.font = [UIFont systemFontOfSize:12]; + [_entiretyCorridoroBtuton setTitleColor:[DJDKMIMOMColor instantEssayPrettify] forState:UIControlStateNormal]; + [_entiretyCorridoroBtuton setTitleColor:[DJDKMIMOMColor aplictowardsionMainPrettify] forState:UIControlStateSelected]; + [_entiretyCorridoroBtuton setBackgroundImage:[UIImage imageWithColor:UIColorFromRGB(0xF1F1FA)] forState:UIControlStateNormal]; + [_entiretyCorridoroBtuton setBackgroundImage:[UIImage imageWithColor:UIColorFromRGB(0xFFF0C9)] forState:UIControlStateSelected]; + _entiretyCorridoroBtuton.layer.borderWidth = 0.5; + _entiretyCorridoroBtuton.layer.masksToBounds = YES; + _entiretyCorridoroBtuton.layer.cornerRadius = 13; + _entiretyCorridoroBtuton.layer.borderColor = [DJDKMIMOMColor aplictowardsionMainPrettify].CGColor; + _entiretyCorridoroBtuton.tag = 1000; + [_entiretyCorridoroBtuton addTarget:self action:@selector(hentiretyoBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _entiretyCorridoroBtuton; +} + +- (UIButton *)sureBtuton { + if (!_sureBtuton) { + _sureBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_sureBtuton setTitle:YMLocalizedString(@"YUMI_Session_Find_New_Filtrate_View_9") forState:UIControlStateNormal]; + [_sureBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + _sureBtuton.titleLabel.font = [UIFont systemFontOfSize:14]; + [_sureBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + _sureBtuton.layer.masksToBounds = YES; + _sureBtuton.layer.cornerRadius = 38/2; + [_sureBtuton addTarget:self action:@selector(sureBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _sureBtuton; +} + +@end diff --git a/YuMi/Modules/YMMessage/View/FindNew/View/View/YUMIInterlocutionDiscoveryStrangePrecautiousRegard.h b/YuMi/Modules/YMMessage/View/FindNew/View/View/YUMIInterlocutionDiscoveryStrangePrecautiousRegard.h new file mode 100644 index 00000000..7c8433c1 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/FindNew/View/View/YUMIInterlocutionDiscoveryStrangePrecautiousRegard.h @@ -0,0 +1,16 @@ +// +// YMSessionFindNewAlertView.h +// YUMI +// +// Created by YUMI on 2022/6/17. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class DiscoveryStrangeBewelcometoCommunicationMatrix; +@interface YUMIInterlocutionDiscoveryStrangePrecautiousRegard : UIView +@property (nonatomic,strong) DiscoveryStrangeBewelcometoCommunicationMatrix *userInfo; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/FindNew/View/View/YUMIInterlocutionDiscoveryStrangePrecautiousRegard.m b/YuMi/Modules/YMMessage/View/FindNew/View/View/YUMIInterlocutionDiscoveryStrangePrecautiousRegard.m new file mode 100644 index 00000000..ceaaff0e --- /dev/null +++ b/YuMi/Modules/YMMessage/View/FindNew/View/View/YUMIInterlocutionDiscoveryStrangePrecautiousRegard.m @@ -0,0 +1,198 @@ +// +// YMSessionFindNewAlertView.m +// YUMI +// +// Created by YUMI on 2022/6/17. +// + +#import "YUMIInterlocutionDiscoveryStrangePrecautiousRegard.h" +#import +#import "DJDKMIMOMColor.h" +#import "UIImage+Utils.h" +#import "MKJPopup.h" +#import "NetIndicateRegard.h" +#import "YUMIMacroUitls.h" +#import "Api+Room.h" +#import "XNDJTBWGLoadingTool.h" +#import "XCCurrentVCStackExecutive.h" +#import "DiscoveryStrangeBewelcometoCommunicationMatrix.h" +#import "ChamberAbstractMatrix.h" +#import "YUMIChamberRegardGovernancer.h" +#import "InterlocutionRegardGovernancer.h" +#import "ChamberHostRepresendtation.h" + +@interface YUMIInterlocutionDiscoveryStrangePrecautiousRegard () + +@property (nonatomic,strong) NetIndicateRegard *intelligenceportraitIndicateRegard; +@property (nonatomic,strong) UILabel *monicerSequencignation; +@property (nonatomic,strong) UILabel *communicationSequencignation; +@property (nonatomic,strong) UIButton *revocationBtuton; +@property (nonatomic,strong) UIButton *findBtuton; +@end + + +@implementation YUMIInterlocutionDiscoveryStrangePrecautiousRegard +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify]; + self.layer.masksToBounds = YES; + self.layer.cornerRadius = 10; + [self addSubview:self.intelligenceportraitIndicateRegard]; + [self addSubview:self.monicerSequencignation]; + [self addSubview:self.communicationSequencignation]; + [self addSubview:self.revocationBtuton]; + [self addSubview:self.findBtuton]; +} + +- (void)initChildLyRestrictions { + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(KScreenWidth - 40 * 2); + make.bottom.mas_equalTo(self.revocationBtuton.mas_bottom).offset(15); + }]; + + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(75, 75)); + make.top.mas_equalTo(self).offset(20); + make.centerX.mas_equalTo(self); + }]; + + [self.monicerSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self).inset(10); + make.top.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_bottom).offset(15); + }]; + + [self.communicationSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self).inset(40); + make.top.mas_equalTo(self.monicerSequencignation.mas_bottom).offset(10); + }]; + + [self.revocationBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(120, 40)); + make.right.mas_equalTo(self.mas_centerX).offset(-10); + make.top.mas_equalTo(self.communicationSequencignation.mas_bottom).offset(30); + }]; + + [self.findBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.centerY.mas_equalTo(self.revocationBtuton); + make.left.mas_equalTo(self.mas_centerX).offset(10); + }]; +} + +#pragma mark - Event Response +- (void)revoctowardsionBtutonPerformance:(UIButton *)sender { + [MKJPopup dismiss]; +} + +- (void)prohibiticoveryBtutonPerformance:(UIButton *)sender { + if (self.userInfo.uid.integerValue > 0) { + [Api requisitionConsumerInChamber:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + ChamberAbstractMatrix * roomInfo = [ChamberAbstractMatrix mtowardsrixAboutImpactbasket:data.data]; + if (roomInfo.uid && self.userInfo.uid && self.userInfo.nick.length > 0) { + + [[XCCurrentVCStackExecutive shareManager].getCurrentVC.navigationController.viewControllers enumerateObjectsUsingBlock:^(__kindof UIViewController * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if ([obj isKindOfClass:[YUMIChamberRegardGovernancer class]]) { + [[XCCurrentVCStackExecutive shareManager].getCurrentVC.navigationController popToRootViewControllerAnimated:NO]; + YUMIChamberRegardGovernancer * rooomVC = obj; + [rooomVC exitRoom]; + *stop = YES; + } + }]; + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + [YUMIChamberRegardGovernancer unfoildChamber:[NSString stringWithFormat:@"%ld", roomInfo.uid] fromNick:self.userInfo.nick fromType:ConsumerEnterChamberFromGenre_Follow_User fromUid:self.userInfo.uid viewController:[XCCurrentVCStackExecutive shareManager].getCurrentVC]; + }); + } else { + InterlocutionRegardGovernancer * sessionVC = [[InterlocutionRegardGovernancer alloc] initWithSession:[NIMSession session:self.userInfo.uid type:NIMSessionTypeP2P]]; + [[XCCurrentVCStackExecutive shareManager].getCurrentVC.navigationController pushViewController:sessionVC animated:YES]; + } + } else { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:msg]; + } + } uid:self.userInfo.uid]; + } + [MKJPopup dismiss]; +} + +#pragma mark - Getters And Setters +- (void)setUserInfo:(DiscoveryStrangeBewelcometoCommunicationMatrix *)userInfo { + _userInfo = userInfo; + if (_userInfo) { + self.intelligenceportraitIndicateRegard.imageUrl = _userInfo.avatar; + self.monicerSequencignation.text = _userInfo.nick; + self.communicationSequencignation.text = _userInfo.message; + } +} + + +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _intelligenceportraitIndicateRegard.layer.cornerRadius = 75 /2; + _intelligenceportraitIndicateRegard.layer.borderColor = [DJDKMIMOMColor aplictowardsionMainPrettify].CGColor; + } + return _intelligenceportraitIndicateRegard; +} + +- (UILabel *)monicerSequencignation { + if (!_monicerSequencignation) { + _monicerSequencignation = [[UILabel alloc] init]; + _monicerSequencignation.font = [UIFont systemFontOfSize:15 weight:UIFontWeightMedium]; + _monicerSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _monicerSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _monicerSequencignation; +} + +- (UILabel *)communicationSequencignation { + if (!_communicationSequencignation) { + _communicationSequencignation = [[UILabel alloc] init]; + _communicationSequencignation.font = [UIFont systemFontOfSize:15]; + _communicationSequencignation.textColor = [DJDKMIMOMColor instantEssayPrettify]; + _communicationSequencignation.textAlignment = NSTextAlignmentCenter; + _communicationSequencignation.numberOfLines = 0; + } + return _communicationSequencignation; +} + +- (UIButton *)revocationBtuton { + if (!_revocationBtuton) { + _revocationBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_revocationBtuton setTitle:YMLocalizedString(@"YUMI_Session_Find_New_Alert_View_0") forState:UIControlStateNormal]; + [_revocationBtuton setTitleColor:[DJDKMIMOMColor revoctowardsionBtutonEssayPrettify] forState:UIControlStateNormal]; + _revocationBtuton.titleLabel.font = [UIFont systemFontOfSize:14]; + [_revocationBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor revoctowardsionBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor revoctowardsionBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + _revocationBtuton.layer.masksToBounds = YES; + _revocationBtuton.layer.cornerRadius = 10; + [_revocationBtuton addTarget:self action:@selector(revoctowardsionBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _revocationBtuton; +} + +- (UIButton *)findBtuton { + if (!_findBtuton) { + _findBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_findBtuton setTitle:@"去找TA" forState:UIControlStateNormal]; + [_findBtuton setTitleColor:[DJDKMIMOMColor acknowledgementBtutonEssayPrettify] forState:UIControlStateNormal]; + _findBtuton.titleLabel.font = [UIFont systemFontOfSize:14]; + [_findBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + _findBtuton.layer.masksToBounds = YES; + _findBtuton.layer.cornerRadius = 10; + [_findBtuton addTarget:self action:@selector(prohibiticoveryBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _findBtuton; +} + +@end diff --git a/YuMi/Modules/YMMessage/View/FindNew/View/YUMIInterlocutionDiscoveryStrangeRegardGovernancer.h b/YuMi/Modules/YMMessage/View/FindNew/View/YUMIInterlocutionDiscoveryStrangeRegardGovernancer.h new file mode 100644 index 00000000..b3c4fe16 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/FindNew/View/YUMIInterlocutionDiscoveryStrangeRegardGovernancer.h @@ -0,0 +1,16 @@ +// +// YMSessionFindNewViewController.h +// YUMI +// +// Created by YUMI on 2022/6/10. +// + +#import "MvpRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIInterlocutionDiscoveryStrangeRegardGovernancer : MvpRegardGovernancer + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/FindNew/View/YUMIInterlocutionDiscoveryStrangeRegardGovernancer.m b/YuMi/Modules/YMMessage/View/FindNew/View/YUMIInterlocutionDiscoveryStrangeRegardGovernancer.m new file mode 100644 index 00000000..f2e70197 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/FindNew/View/YUMIInterlocutionDiscoveryStrangeRegardGovernancer.m @@ -0,0 +1,264 @@ +// +// YMSessionFindNewViewController.m +// YUMI +// +// Created by YUMI on 2022/6/10. +// + +#import "YUMIInterlocutionDiscoveryStrangeRegardGovernancer.h" +#import +#import "DJDKMIMOMColor.h" +#import "MKJPopup.h" +#import "XCCurrentVCStackExecutive.h" +#import "NSArray+Safe.h" +#import "ClientDisposition.h" +#import "DiscoveryStrangeConsumerAbstractMatrix.h" +#import "YUMIInterlocutionDiscoveryStrangeTabulationRegardElement.h" +#import "YUMIInterlocutionDiscoveryStrangeDispossessTabulationRegardElement.h" +#import "YUMIInterlocutionDiscoveryStrangeFiltrateRegard.h" +#import "YUMIInterlocutionDiscoveryStrangeBewelcometoStatementRegard.h" +#import "YUMIManeConsumerAbstractRegardGovernancer.h" +#import "YUMIManeSimpleConsumerAbstractRegardGovernancer.h" +#import "FBCInterlocutionDiscoveryStrangeCeremony.h" +#import "YUMIInterlocutionDiscoveryStrangeExternalizer.h" + + +@interface YUMIInterlocutionDiscoveryStrangeRegardGovernancer () +@property (nonatomic,strong) UIView * nevRegard; +@property (nonatomic,strong) UILabel *titleLabel; +@property (nonatomic,strong) UILabel *subChampionSequencignation; +@property (nonatomic,strong) UITableView *tableView; +@property (nonatomic,strong) NSArray *datasource; +@property (nonatomic,strong) NSArray *derivationGarment; +@end + +@implementation YUMIInterlocutionDiscoveryStrangeRegardGovernancer + +- (__kindof id)producePresimport { + return [[YUMIInterlocutionDiscoveryStrangeExternalizer alloc] init];; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self.presimport acquireDiscoveryStrangeConsumer]; + [self initSubViews]; + [self initChildLyRestrictions]; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self.view addSubview:self.tableView]; + self.navigationItem.titleView = self.nevRegard; + + [self.nevRegard addSubview:self.titleLabel]; + [self.nevRegard addSubview:self.subChampionSequencignation]; + + [self accelertowardseBreeadcrumbProvisionAboutIndictowardseSaluttowardsion:@[@"message_session_find_new_filtrate"] isContrary:NO target:self action:@selector(rectifyBtutonPerformance:) tags:nil]; +} + +- (void)initChildLyRestrictions { + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.view); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.nevRegard); + make.bottom.mas_equalTo(self.nevRegard.mas_centerY).offset(-1); + }]; + + [self.subChampionSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.nevRegard); + make.top.mas_equalTo(self.nevRegard.mas_centerY).offset(1); + }]; +} +#pragma mark - UITableViewDelegate And UITableViewDataSource +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.datasource.count > 0 ? self.datasource.count : 1; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + return 65; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + if (self.datasource.count > 0) { + YUMIInterlocutionDiscoveryStrangeTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIInterlocutionDiscoveryStrangeTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIInterlocutionDiscoveryStrangeTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIInterlocutionDiscoveryStrangeTabulationRegardElement class])]; + } + cell.userInfo = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + cell.delegate = self; + return cell; + } + + YUMIInterlocutionDiscoveryStrangeDispossessTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIInterlocutionDiscoveryStrangeDispossessTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIInterlocutionDiscoveryStrangeDispossessTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIInterlocutionDiscoveryStrangeDispossessTabulationRegardElement class])]; + } + return cell; +} + +#pragma mark - FBCInterlocutionDiscoveryStrangeFiltrateRegardRepresendtation +- (void)yUMIInterlocutionDiscoveryStrangeFiltrtowardseRegard:(NSString *)chooseHello chooseSex:(NSString *)sex { + [MKJPopup dismiss]; + NSMutableArray * array = [NSMutableArray array]; + [self.derivationGarment enumerateObjectsUsingBlock:^(DiscoveryStrangeConsumerAbstractMatrix * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if ([sex isEqualToString:@"1"]) { + if (obj.gender == GenderGenre_Male) { + [array addObject: obj]; + } + } else if([sex isEqualToString:@"2"]) { + if (obj.gender == GenderGenre_Female) { + [array addObject: obj]; + } + } else { + [array addObject:obj]; + } + }]; + + NSMutableArray * newArray = [NSMutableArray array]; + [array enumerateObjectsUsingBlock:^(DiscoveryStrangeConsumerAbstractMatrix * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if ([chooseHello isEqualToString:@"0"]) { + [newArray addObject:obj]; + } else if([chooseHello isEqualToString:@"2"]) { + if (obj.hello == YES) { + [newArray addObject:obj]; + } + } else if([chooseHello isEqualToString:@"1"]) { + if (obj.hello == NO) { + [newArray addObject:obj]; + } + } + }]; + self.datasource = newArray; + [self.tableView reloadData]; +} + +#pragma mark - FBCInterlocutionDiscoveryStrangeTabulationViweElementRepresendtation +- (void)yUMIInterlocutionDiscoveryStrangeTarbsultowardsionViweElement:(YUMIInterlocutionDiscoveryStrangeTabulationRegardElement *)cell didSelectItem:(DiscoveryStrangeConsumerAbstractMatrix *)userInfo { + if (userInfo.hello) { + + UIWindow * currentWindow; + for (int i = 0; i < [UIApplication sharedApplication].windows.count; i++) { + UIWindow * window = [[UIApplication sharedApplication].windows secureGroalTowardsIndictowardsrix1:i]; + if(window.tag == 1000) { + currentWindow = window; + break; + } + } + if (currentWindow) { + currentWindow.windowLevel = -1; + } + YUMIInterlocutionDiscoveryStrangeBewelcometoStatementRegard * listView = [[YUMIInterlocutionDiscoveryStrangeBewelcometoStatementRegard alloc] init]; + listView.userId = userInfo.uid; + listView.delegate = self; + [MKJPopup popupRegard:listView style:MKJPopupStyleActionSheet]; + } else { + [self EvidenceMistakeToast:@"该用户被打招呼次数太多了,换一个吧~"]; + } +} + +- (void)yUMIInterlocutionDiscoveryStrangeTarbsultowardsionViweElement:(YUMIInterlocutionDiscoveryStrangeTabulationRegardElement *)cell didClickAvatar:(DiscoveryStrangeConsumerAbstractMatrix *)userInfo { + if (userInfo.uid > 0) { + if ([ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + YUMIManeConsumerAbstractRegardGovernancer * userInfoVC = [[YUMIManeConsumerAbstractRegardGovernancer alloc] init]; + userInfoVC.uid = userInfo.uid.integerValue; + [[XCCurrentVCStackExecutive shareManager].getCurrentVC.navigationController pushViewController:userInfoVC animated:YES]; + }else{ + YUMIManeSimpleConsumerAbstractRegardGovernancer * userInfoVC = [[YUMIManeSimpleConsumerAbstractRegardGovernancer alloc] init]; + userInfoVC.uid = userInfo.uid.integerValue; + [[XCCurrentVCStackExecutive shareManager].getCurrentVC.navigationController pushViewController:userInfoVC animated:YES]; + } + } +} + +#pragma mark - FBCInterlocutionDiscoveryStrangeGreetStatementRegardRepresendtation +- (void)yUMIInterlocutionDiscoveryStrangeBewelcometoSttowardsementRegard:(YUMIInterlocutionDiscoveryStrangeBewelcometoStatementRegard *)view greetUserId:(NSString *)userId { + __block DiscoveryStrangeConsumerAbstractMatrix * userInfo; + [self.datasource enumerateObjectsUsingBlock:^(DiscoveryStrangeConsumerAbstractMatrix * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if (obj.uid.integerValue == userId.integerValue) { + userInfo = obj; + *stop = YES; + } + }]; + if (userInfo) { + userInfo.hello = NO; + } + [self.tableView reloadData]; +} + +#pragma mark - FBCInterlocutionDiscoveryStrangeCeremony +- (void)acquireDiscoveryStrangeConsumerAccomplishment:(NSArray *)list { + self.datasource = list; + self.derivationGarment = list; + [self.tableView reloadData]; +} + +#pragma mark - Event Response +- (void)rectifyBtutonPerformance:(UIButton *)sender { + + UIWindow * currentWindow; + for (int i = 0; i < [UIApplication sharedApplication].windows.count; i++) { + UIWindow * window = [[UIApplication sharedApplication].windows secureGroalTowardsIndictowardsrix1:i]; + if(window.tag == 1000) { + currentWindow = window; + break; + } + } + if (currentWindow) { + currentWindow.windowLevel = -1; + } + + YUMIInterlocutionDiscoveryStrangeFiltrateRegard * flitrView = [[YUMIInterlocutionDiscoveryStrangeFiltrateRegard alloc] init]; + flitrView.delegate = self; + [MKJPopup popupRegard:flitrView style:MKJPopupStyleActionSheet]; +} + +#pragma mark - Getters And Setters +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.tableFooterView = [UIView new]; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.backgroundColor = [UIColor clearColor]; + if (@available(iOS 11.0, *)) { + _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + } + return _tableView; +} + +- (UIView *)nevRegard { + if (!_nevRegard) { + _nevRegard = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 250, 44)]; + _nevRegard.backgroundColor = [UIColor clearColor]; + } + return _nevRegard; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.font = [UIFont systemFontOfSize:15 weight:UIFontWeightSemibold]; + _titleLabel.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _titleLabel.text = YMLocalizedString(@"YUMI_Session_Find_New_View_Controller_1"); + _titleLabel.textAlignment = NSTextAlignmentCenter; + } + return _titleLabel; +} + +- (UILabel *)subChampionSequencignation { + if (!_subChampionSequencignation) { + _subChampionSequencignation = [[UILabel alloc] init]; + _subChampionSequencignation.font = [UIFont systemFontOfSize:13 weight:UIFontWeightSemibold]; + _subChampionSequencignation.textColor = [DJDKMIMOMColor instantEssayPrettify]; + _subChampionSequencignation.text = YMLocalizedString(@"YUMI_Session_Find_New_View_Controller_2"); + _subChampionSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _subChampionSequencignation; +} + + +@end diff --git a/YuMi/Modules/YMMessage/View/NEMCCommunicationMaker.h b/YuMi/Modules/YMMessage/View/NEMCCommunicationMaker.h new file mode 100644 index 00000000..7501a779 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/NEMCCommunicationMaker.h @@ -0,0 +1,34 @@ +// +// NEMCCommunicationMaker.h +// YUMI +// +// Created by zu on 2021/11/28. +// + +#import +#import + +@interface NEMCCommunicationMaker : NSObject + ++ (NIMMessage*)communAboutEssay:(NSString *)text; + ++ (NIMMessage *)communAboutVocalmusic:(NSString *)filePath; + ++ (NIMMessage *)communAboutIndictowardse:(UIImage *)image; + ++ (NIMMessage *)communAboutIndictowardseRoute:(NSString *)path; + ++ (NIMMessage *)communAboutIndictowardseTowardsoloudspeaker:(NSData *)data extension:(NSString *)extension; + ++ (NIMMessage *)communAboutVideo:(NSString *)filePath; + +@end + + +@interface NEMCJudgementMaker : NSObject + ++ (NIMQuickComment *)judgementAboutGenre:(int64_t)type + content:(NSString *)content + ext:(NSString *)ext; + +@end diff --git a/YuMi/Modules/YMMessage/View/NEMCCommunicationMaker.m b/YuMi/Modules/YMMessage/View/NEMCCommunicationMaker.m new file mode 100644 index 00000000..52a84eb6 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/NEMCCommunicationMaker.m @@ -0,0 +1,121 @@ +// +// NEMCCommunicationMaker.m +// YUMI +// +// Created by zu on 2021/11/28. +// + +#import "NEMCCommunicationMaker.h" +#import "YUMIConstant.h" + +@implementation NEMCCommunicationMaker + ++ (NIMMessage*)communAboutEssay:(NSString*)text +{ + NIMMessage *textMessage = [[NIMMessage alloc] init]; + textMessage.text = text; + [self setupCommunictowardsion:textMessage]; + return textMessage; +} + ++ (NIMMessage*)communAboutVocalmusic:(NSString*)filePath +{ + NIMAudioObject *audioObject = [[NIMAudioObject alloc] initWithSourcePath:filePath scene:NIMNOSSceneTypeMessage]; + NIMMessage *message = [[NIMMessage alloc] init]; + message.messageObject = audioObject; + message.text = YMLocalizedString(@"NIM_Message_Maker_0"); + [self setupCommunictowardsion:message]; + return message; +} + ++ (NIMMessage*)communAboutVideo:(NSString*)filePath +{ + NSDateFormatter *engagementInitialiser = [[NSDateFormatter alloc] init]; + [engagementInitialiser setDateFormat:@"yyyy-MM-dd HH:mm"]; + NSString *dateString = [engagementInitialiser stringFromDate:[NSDate date]]; + NIMVideoObject *videoObject = [[NIMVideoObject alloc] initWithSourcePath:filePath scene:NIMNOSSceneTypeMessage]; + videoObject.displayName = [NSString stringWithFormat:@"视频发送于%@", dateString]; + NIMMessage *message = [[NIMMessage alloc] init]; + message.messageObject = videoObject; + message.apnsContent = YMLocalizedString(@"NIM_Message_Maker_2"); + [self setupCommunictowardsion:message]; + return message; +} + ++ (NIMMessage*)communAboutIndictowardse:(UIImage*)image +{ + NIMImageObject *indicateGroal = [[NIMImageObject alloc] initWithImage:image scene:NIMNOSSceneTypeMessage]; + NIMImageOption *option = [[NIMImageOption alloc] init]; + option.compressQuality = 0.7; + indicateGroal.option = option; + return [NEMCCommunicationMaker genertowardseIndictowardseCommunictowardsion:indicateGroal]; +} + ++ (NIMMessage *)communAboutIndictowardseRoute:(NSString*)path +{ + NIMImageObject * indicateGroal = [[NIMImageObject alloc] initWithFilepath:path scene:NIMNOSSceneTypeMessage]; + return [NEMCCommunicationMaker genertowardseIndictowardseCommunictowardsion:indicateGroal]; +} + ++ (NIMMessage *)communAboutIndictowardseTowardsoloudspeaker:(NSData *)data extension:(NSString *)extension +{ + NIMImageObject *indicateGroal = [[NIMImageObject alloc] initWithData:data extension:extension]; + return [NEMCCommunicationMaker genertowardseIndictowardseCommunictowardsion:indicateGroal]; +} + ++ (NIMMessage *)genertowardseIndictowardseCommunictowardsion:(NIMImageObject *)indicateGroal +{ + NSDateFormatter *engagementInitialiser = [[NSDateFormatter alloc] init]; + [engagementInitialiser setDateFormat:@"yyyy-MM-dd HH:mm"]; + NSString *dateString = [engagementInitialiser stringFromDate:[NSDate date]]; + indicateGroal.displayName = [NSString stringWithFormat:@"图片发送于%@", dateString]; + NIMMessage *message = [[NIMMessage alloc] init]; + message.messageObject = indicateGroal; + message.apnsContent = YMLocalizedString(@"NIM_Message_Maker_4"); + [self setupCommunictowardsion:message]; + return message; +} + ++ (void)setupCommunictowardsion:(NIMMessage *)message +{ + message.apnsPayload = @{ + @"apns-collapse-id": message.messageId, + }; + + NIMMessageSetting *setting = [[NIMMessageSetting alloc] init]; + setting.scene = NIMNOSSceneTypeMessage; + setting.apnsEnabled = YES; + message.setting = setting; + + NIMAntiSpamOption *option = [NIMAntiSpamOption new]; + option.yidunEnabled = YES; + option.businessId = KeyWithType(keyType_YiDunBussinessId); + message.antiSpamOption = option; +} + + +@end + + +@implementation NEMCJudgementMaker + ++ (NIMQuickComment *)judgementAboutGenre:(int64_t)type + content:(NSString *)content + ext:(NSString *)ext +{ + NIMQuickComment *comment = [[NIMQuickComment alloc] init]; + comment.ext = ext; + NIMQuickCommentSetting *setting = [[NIMQuickCommentSetting alloc] init]; + setting.needPush = YES; + setting.needBadge = YES; + setting.pushTitle = YMLocalizedString(@"NIM_Message_Maker_5"); + setting.pushContent = content; + setting.pushPayload = @{ + @"key" : @"value" + }; + comment.setting = setting; + comment.replyType = type; + return comment; +} + +@end diff --git a/YuMi/Modules/YMMessage/View/NEMCCommunicationUtils.h b/YuMi/Modules/YMMessage/View/NEMCCommunicationUtils.h new file mode 100644 index 00000000..971650a8 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/NEMCCommunicationUtils.h @@ -0,0 +1,21 @@ +// +// NEMCCommunicationUtils.h +// YUMI +// +// Created by zu on 2021/11/26. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface NEMCCommunicationUtils : NSObject + ++ (NSString *)communicationSatisfperformance:(NIMMessage*)message; + ++ (BOOL)isHLOfficalSequenceription:(NSString *)uid; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/NEMCCommunicationUtils.m b/YuMi/Modules/YMMessage/View/NEMCCommunicationUtils.m new file mode 100644 index 00000000..ff51d137 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/NEMCCommunicationUtils.m @@ -0,0 +1,96 @@ +// +// NEMCCommunicationUtils.m +// YUMI +// +// Created by zu on 2021/11/26. +// + +#import "NEMCCommunicationUtils.h" +#import "AttachmentMatrix.h" +#import "ClientDisposition.h" +#import "YUMIConstant.h" + +@implementation NEMCCommunicationUtils + ++ (NSString *)communicationSatisfperformance:(NIMMessage*)message { + NSString *text = @""; + switch (message.messageType) { + case NIMMessageTypeTip: + case NIMMessageTypeText: + text = message.text; + break; + case NIMMessageTypeAudio: + text = @"[语音]"; + break; + case NIMMessageTypeImage: + text = @"[图片]"; + break; + case NIMMessageTypeVideo: + text = @"[视频]"; + break; + case NIMMessageTypeLocation: + text = @"[位置]"; + break; + case NIMMessageTypeFile: + text = @"[文件]"; + break; + case NIMMessageTypeCustom: { + NIMCustomObject *obj = (NIMCustomObject *) message.messageObject; + AttachmentMatrix *attachment = (AttachmentMatrix *) obj.attachment; + if (attachment.first == IndividualityCommunicationGenre_Secretary) { + if (attachment.second == Custom_Message_Sub_Secretary_Router) { + text = attachment.data[@"title"]; + } + } else if(attachment.first == IndividualityCommunicationGenre_Gift) { + if (attachment.second == Custom_Message_Sub_Gift_Send) { + text = @"[礼物]"; + } + } else if(attachment.first == IndividualityCommunicationGenre_Hall) { + text = @"[您收到一条公会消息]"; + } else if(attachment.first == IndividualityCommunicationGenre_Member_Online && attachment.second == Custom_Message_Type_Attention_Member_Online) { + return @"您关注的TA上线了,快去围观吧~~~"; + } else if(attachment.first == IndividualityCommunicationGenre_Application_Share && attachment.second == Custom_Message_Sub_Application_Share_Room) { + return @"[分享房间]"; + }else if(attachment.first == IndividualityCommunicationGenre_User_UpGrade && (attachment.second == Custom_Message_Sub_User_UpGrade_Charm || attachment.second == Custom_Message_Sub_User_UpGrade_Exper)) { + return @"[升级消息]"; + } else if(attachment.first == IndividualityCommunicationGenre_Tweet && attachment.second == Custom_Message_Sub_Tweet_News) { + return @"[推文消息]"; + } else if(attachment.first == IndividualityCommunicationGenre_FindNew && attachment.second == Custom_Message_Find_New_Greet_New_User) { + NSString * text = attachment.data[@"message"]; + return text.length > 0 ? text : @"[消息]"; + } else if(attachment.first == IndividualityCommunicationGenre_Monents && attachment.second == Custom_Message_Sub_Monents_Share) { + return @"[分享了一条动态]"; + } else if(attachment.first == IndividualityCommunicationGenre_RedPacket && attachment.second == Custom_Message_Sub_AllDiamandRedPacket) { + return @"[你收到一个全服红包]"; + } else { + text = @"[消息]"; + } + if (!text) { + text = message.text; + } + } + break; + default: + text = @"[未知消息]"; + break; + } + return text; +} + ++ (BOOL)isHLOfficalSequenceription:(NSString *)uid { + if (uid.integerValue <= 0) { + return NO; + } + if ([[ClientDisposition partowardsiciptowardsionDisposition].dispositionAbstract.officialMsgUids containsObject:uid]) { + return YES; + } + + if ([[ClientDisposition partowardsiciptowardsionDisposition].dispositionAbstract.officialAccountUids containsObject:uid]) { + return YES; + } + + return ([KeyWithType(KeyGenre_SecretaryUidKey) isEqualToString:uid] || [KeyWithType(KeyGenre_SystemNotifiUidKey) isEqualToString:uid] || [KeyWithType(KeyGenre_GuildUidKey) isEqualToString:uid]); + return NO; +} + +@end diff --git a/YuMi/Modules/YMMessage/View/NEMCIntratemporalUtils.h b/YuMi/Modules/YMMessage/View/NEMCIntratemporalUtils.h new file mode 100644 index 00000000..2c1de7a2 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/NEMCIntratemporalUtils.h @@ -0,0 +1,18 @@ +// +// NEMCIntratemporalUtils.h +// YUMI +// +// Created by zu on 2021/11/26. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface NEMCIntratemporalUtils : NSObject + ++ (NSString *)showTime:(NSTimeInterval)msglastTime showDetail:(BOOL)showDetail; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/NEMCIntratemporalUtils.m b/YuMi/Modules/YMMessage/View/NEMCIntratemporalUtils.m new file mode 100644 index 00000000..113e6dad --- /dev/null +++ b/YuMi/Modules/YMMessage/View/NEMCIntratemporalUtils.m @@ -0,0 +1,96 @@ +// +// NEMCIntratemporalUtils.m +// YUMI +// +// Created by zu on 2021/11/26. +// + +#import "NEMCIntratemporalUtils.h" + +@implementation NEMCIntratemporalUtils + ++ (NSString*)showTime:(NSTimeInterval) msglastTime showDetail:(BOOL)showDetail +{ + + NSDate * nowDate = [NSDate date]; + NSDate * msgDate = [NSDate dateWithTimeIntervalSince1970:msglastTime]; + NSString *result = nil; + NSCalendarUnit components = (NSCalendarUnit)(NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay|NSCalendarUnitWeekday|NSCalendarUnitHour | NSCalendarUnitMinute); + NSDateComponents *nowDateComponents = [[NSCalendar currentCalendar] components:components fromDate:nowDate]; + NSDateComponents *msgDateComponents = [[NSCalendar currentCalendar] components:components fromDate:msgDate]; + + NSInteger hour = msgDateComponents.hour; + double OnedayTimeIntervalValue = 24*60*60; + + result = [self acquirePeriodHLOfIntrtowardsemporal:hour withMinute:msgDateComponents.minute]; + if (hour > 12) + { + hour = hour - 12; + } + + BOOL isSameMonth = (nowDateComponents.year == msgDateComponents.year) && (nowDateComponents.month == msgDateComponents.month); + + if(isSameMonth && (nowDateComponents.day == msgDateComponents.day)) + { + result = [[NSString alloc] initWithFormat:@"%@ %zd:%02d",result,hour,(int)msgDateComponents.minute]; + } + else if(isSameMonth && (nowDateComponents.day == (msgDateComponents.day+1))) + { + result = showDetail? [[NSString alloc] initWithFormat:@"昨天%@ %zd:%02d",result,hour,(int)msgDateComponents.minute] : YMLocalizedString(@"NIM_Time_Utils_1"); + } + else if(isSameMonth && (nowDateComponents.day == (msgDateComponents.day+2))) + { + result = showDetail? [[NSString alloc] initWithFormat:@"前天%@ %zd:%02d",result,hour,(int)msgDateComponents.minute] : YMLocalizedString(@"NIM_Time_Utils_3"); + } + else if([nowDate timeIntervalSinceDate:msgDate] < 7 * OnedayTimeIntervalValue) + { + NSString *weekDay = [self weekdayBWStt:msgDateComponents.weekday]; + result = showDetail? [weekDay stringByAppendingFormat:@"%@ %zd:%02d",result,hour,(int)msgDateComponents.minute] : weekDay; + } + else + { + NSString *day = [NSString stringWithFormat:@"%zd-%zd-%zd", msgDateComponents.year, msgDateComponents.month, msgDateComponents.day]; + result = showDetail? [day stringByAppendingFormat:@"%@ %zd:%02d",result,hour,(int)msgDateComponents.minute]:day; + } + return result; +} + +#pragma mark - Private + ++ (NSString *)acquirePeriodHLOfIntrtowardsemporal:(NSInteger)time withMinute:(NSInteger)minute +{ + NSInteger totalMin = time *60 + minute; + NSString *showPeriodOfTime = @""; + if (totalMin > 0 && totalMin <= 5 * 60) + { + showPeriodOfTime = YMLocalizedString(@"NIM_Time_Utils_4"); + } + else if (totalMin > 5 * 60 && totalMin < 12 * 60) + { + showPeriodOfTime = YMLocalizedString(@"NIM_Time_Utils_5"); + } + else if (totalMin >= 12 * 60 && totalMin <= 18 * 60) + { + showPeriodOfTime = YMLocalizedString(@"NIM_Time_Utils_6"); + } + else if ((totalMin > 18 * 60 && totalMin <= (23 * 60 + 59)) || totalMin == 0) + { + showPeriodOfTime = YMLocalizedString(@"NIM_Time_Utils_7"); + } + return showPeriodOfTime; +} + ++(NSString*)weekdayBWStt:(NSInteger)dayOfWeek +{ + static NSDictionary *daysOfWeekDict = nil; + daysOfWeekDict = @{@(1):YMLocalizedString(@"NIM_Time_Utils_8"), + @(2):YMLocalizedString(@"NIM_Time_Utils_9"), + @(3):YMLocalizedString(@"NIM_Time_Utils_10"), + @(4):YMLocalizedString(@"NIM_Time_Utils_11"), + @(5):YMLocalizedString(@"NIM_Time_Utils_12"), + @(6):YMLocalizedString(@"NIM_Time_Utils_13"), + @(7):YMLocalizedString(@"NIM_Time_Utils_14"),}; + return [daysOfWeekDict objectForKey:@(dayOfWeek)]; +} + +@end diff --git a/YuMi/Modules/YMMessage/View/NIMViews/NEMCBadgeRegard.h b/YuMi/Modules/YMMessage/View/NIMViews/NEMCBadgeRegard.h new file mode 100644 index 00000000..2bf6e6a2 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/NIMViews/NEMCBadgeRegard.h @@ -0,0 +1,18 @@ +// +// NEMCBadgeRegard.h +// NIMKit +// +// Created by chris on 15/2/12. +// Copyright (c) 2015年 Netease. All rights reserved. +// + +#import + +@interface NEMCBadgeRegard : UIView + +@property (nonatomic, copy) NSString *badgeValue; + ++ (instancetype)viewAboutQuantityPrompt:(NSString *)badgeValue; + + +@end diff --git a/YuMi/Modules/YMMessage/View/NIMViews/NEMCBadgeRegard.m b/YuMi/Modules/YMMessage/View/NIMViews/NEMCBadgeRegard.m new file mode 100644 index 00000000..4c41a410 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/NIMViews/NEMCBadgeRegard.m @@ -0,0 +1,167 @@ +// +// NEMCBadgeRegard.m +// NIMKit +// +// Created by chris on 15/2/12. +// Copyright (c) 2015年 Netease. All rights reserved. +// + + +#import "NEMCBadgeRegard.h" + +@interface NEMCBadgeRegard () + +@property (strong) UIColor *badgeBackgroundColor; + +@property (strong) UIColor *borderColor; + +@property (strong) UIColor *quantityEssayPrettify; + +@property (nonatomic) UIFont *quantityEssayLetterform; + +@property (nonatomic) CGFloat quantityApexStuffing; + +@property (nonatomic) CGFloat quantityContraryStuffing; + +@property (nonatomic) CGFloat whiteCircleExtents; + +@end + +@implementation NEMCBadgeRegard + ++ (instancetype)viewAboutQuantityPrompt:(NSString *)badgeValue{ + if (!badgeValue) { + badgeValue = @""; + } + NEMCBadgeRegard *instance = [[NEMCBadgeRegard alloc] init]; + instance.frame = [instance frameAboutBWStt:badgeValue]; + instance.badgeValue = badgeValue; + + return instance; +} + +- (id)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + self.backgroundColor = [UIColor clearColor]; + + _badgeBackgroundColor = [UIColor colorWithRed:((float)((0xFF5B55 & 0xFF0000) >> 16))/255.0 green:((float)((0xFF5B55 & 0xFF00) >> 8))/255.0 blue:((float)(0xFF5B55 & 0xFF))/255.0 alpha:1.0]; + _borderColor = [UIColor colorWithRed:((float)((0xFF5B55 & 0xFF0000) >> 16))/255.0 green:((float)((0xFF5B55 & 0xFF00) >> 8))/255.0 blue:((float)(0xFF5B55 & 0xFF))/255.0 alpha:1.0]; + _quantityEssayPrettify = [UIColor whiteColor]; + _quantityEssayLetterform = [UIFont boldSystemFontOfSize:11]; + _whiteCircleExtents = 0.f; + } + return self; +} + + +- (void)drawRect:(CGRect)rect +{ + CGContextRef context = UIGraphicsGetCurrentContext(); + CGContextSaveGState(context); + if ([[self badgeValue] length]) { + [self drawAboutStowardsisfperformance:rect context:context]; + }else{ + [self drawAboutOptowardssideStowardsisfperformance:rect context:context]; + } + CGContextRestoreGState(context); +} + +- (void)setBadgeValue:(NSString *)badgeValue { + _badgeValue = badgeValue; + if (_badgeValue.integerValue > 9) { + _quantityContraryStuffing = 6.f; + }else{ + _quantityContraryStuffing = 2.f; + } + _quantityApexStuffing = 2.f; + + self.frame = [self frameAboutBWStt:badgeValue]; + + [self setNeedsDisplay]; +} + +- (CGSize)badgeDimensionAboutBWStt:(NSString *)badgeValue{ + if (!badgeValue || badgeValue.length == 0) { + return CGSizeZero; + } + CGSize size = [badgeValue sizeWithAttributes:@{NSFontAttributeName:self.quantityEssayLetterform}]; + if (size.width < size.height) { + size = CGSizeMake(size.height, size.height); + } + return size; +} + +- (CGRect)frameAboutBWStt:(NSString *)badgeValue{ + CGSize badgeSize = [self badgeDimensionAboutBWStt:badgeValue]; + CGRect badgeFrame = CGRectMake(self.frame.origin.x, self.frame.origin.y, badgeSize.width + self.quantityContraryStuffing * 2 + self.whiteCircleExtents * 2, badgeSize.height + self.quantityApexStuffing * 2 + self.whiteCircleExtents * 2); + return badgeFrame; +} + + + +#pragma mark - Private +- (void)drawAboutStowardsisfperformance:(CGRect)rect context:(CGContextRef)context{ + CGRect bodyFrame = self.bounds; + CGRect bkgFrame = CGRectInset(self.bounds, self.whiteCircleExtents, self.whiteCircleExtents); + CGRect badgeSize = CGRectInset(self.bounds, self.whiteCircleExtents + self.quantityContraryStuffing, self.whiteCircleExtents + self.quantityApexStuffing); + if ([self badgeBackgroundColor]) { + CGContextSetFillColorWithColor(context, [self.borderColor CGColor]); + if ([self badgeValue].integerValue > 9) { + CGFloat circleWith = bodyFrame.size.height; + CGFloat totalWidth = bodyFrame.size.width; + CGFloat diffWidth = totalWidth - circleWith; + CGPoint originPoint = bodyFrame.origin; + CGRect leftCicleFrame = CGRectMake(originPoint.x, originPoint.y, circleWith, circleWith); + CGRect centerFrame = CGRectMake(originPoint.x +circleWith/2, originPoint.y, diffWidth, circleWith); + CGRect rightCicleFrame = CGRectMake(originPoint.x +(totalWidth - circleWith), originPoint.y, circleWith, circleWith); + CGContextFillEllipseInRect(context, leftCicleFrame); + CGContextFillRect(context, centerFrame); + CGContextFillEllipseInRect(context, rightCicleFrame); + + }else{ + CGContextFillEllipseInRect(context, bodyFrame); + } + + CGContextSetFillColorWithColor(context, [[self badgeBackgroundColor] CGColor]); + if ([self badgeValue].integerValue > 9) { + CGFloat circleWith = bkgFrame.size.height; + CGFloat totalWidth = bkgFrame.size.width; + CGFloat diffWidth = totalWidth - circleWith; + CGPoint originPoint = bkgFrame.origin; + CGRect leftCicleFrame = CGRectMake(originPoint.x, originPoint.y, circleWith, circleWith); + CGRect centerFrame = CGRectMake(originPoint.x +circleWith/2, originPoint.y, diffWidth, circleWith); + CGRect rightCicleFrame = CGRectMake(originPoint.x +(totalWidth - circleWith), originPoint.y, circleWith, circleWith); + CGContextFillEllipseInRect(context, leftCicleFrame); + CGContextFillRect(context, centerFrame); + CGContextFillEllipseInRect(context, rightCicleFrame); + }else{ + CGContextFillEllipseInRect(context, bkgFrame); + } + } + + CGContextSetFillColorWithColor(context, [[self quantityEssayPrettify] CGColor]); + NSMutableParagraphStyle *badgeTextStyle = [[NSMutableParagraphStyle defaultParagraphStyle] mutableCopy]; + [badgeTextStyle setLineBreakMode:NSLineBreakByWordWrapping]; + [badgeTextStyle setAlignment:NSTextAlignmentCenter]; + + + NSDictionary *badgeTextAttributes = @{ + NSFontAttributeName: [self quantityEssayLetterform], + NSForegroundColorAttributeName: [self quantityEssayPrettify], + NSParagraphStyleAttributeName: badgeTextStyle, + }; + [[self badgeValue] drawInRect:CGRectMake(self.whiteCircleExtents + self.quantityContraryStuffing, + self.whiteCircleExtents + self.quantityApexStuffing, + badgeSize.size.width, badgeSize.size.height) + withAttributes:badgeTextAttributes]; +} + + +- (void)drawAboutOptowardssideStowardsisfperformance:(CGRect)rect context:(CGContextRef)context{ + CGRect bodyFrame = self.bounds; + CGContextSetFillColorWithColor(context, [[UIColor redColor] CGColor]); + CGContextFillEllipseInRect(context, bodyFrame); +} + +@end diff --git a/YuMi/Modules/YMMessage/View/NIMViews/UITableView+NIMScrollToBottom.h b/YuMi/Modules/YMMessage/View/NIMViews/UITableView+NIMScrollToBottom.h new file mode 100644 index 00000000..51cbadce --- /dev/null +++ b/YuMi/Modules/YMMessage/View/NIMViews/UITableView+NIMScrollToBottom.h @@ -0,0 +1,14 @@ +// +// UITableView+NTESScrollToBottom.h +// NIMDemo +// +// Created by chris. +// Copyright (c) 2015年 Netease. All rights reserved. +// + +#import + +@interface UITableView (NIMKit) + +- (void)nim_scrollToExtreme:(BOOL)animation; +@end diff --git a/YuMi/Modules/YMMessage/View/NIMViews/UITableView+NIMScrollToBottom.m b/YuMi/Modules/YMMessage/View/NIMViews/UITableView+NIMScrollToBottom.m new file mode 100644 index 00000000..93068ed9 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/NIMViews/UITableView+NIMScrollToBottom.m @@ -0,0 +1,26 @@ +// +// UITableView+NTESScrollToBottom.m +// NIMDemo +// +// Created by chris. +// Copyright (c) 2015年 Netease. All rights reserved. +// + +#import "UITableView+NIMScrollToBottom.h" + +@implementation UITableView (NIMKit) + +- (void)nim_scrollToExtreme:(BOOL)animation +{ + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + NSInteger row = [self numberOfRowsInSection:1] - 1; + if (row > 0) + { + NSIndexPath *indexPath = [NSIndexPath indexPathForRow:row inSection:1]; + [self scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionBottom animated:animation]; + } + }); +} + + +@end diff --git a/YuMi/Modules/YMMessage/View/NIMViews/UIView+NIM.h b/YuMi/Modules/YMMessage/View/NIMViews/UIView+NIM.h new file mode 100644 index 00000000..86bb7517 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/NIMViews/UIView+NIM.h @@ -0,0 +1,45 @@ +// +// UIView+NIM.h +// NIMKit +// +// Created by chris. +// Copyright (c) 2015年 NetEase. All rights reserved. +// + +#import + +@interface UIView (NIMKit) + +@property (nonatomic) CGFloat nim_left; + + +@property (nonatomic) CGFloat nim_top; + + +@property (nonatomic) CGFloat nim_right; + + +@property (nonatomic) CGFloat nim_bottom; + + +@property (nonatomic) CGFloat nim_width; + + +@property (nonatomic) CGFloat nim_height; + + +@property (nonatomic) CGFloat nim_centerX; + + +@property (nonatomic) CGFloat nim_centerY; + +@property (nonatomic) CGPoint nim_origin; + + +@property (nonatomic) CGSize nim_size; + +- (UIViewController *)nim_viewGovernancer; + + + +@end diff --git a/YuMi/Modules/YMMessage/View/NIMViews/UIView+NIM.m b/YuMi/Modules/YMMessage/View/NIMViews/UIView+NIM.m new file mode 100644 index 00000000..375896bc --- /dev/null +++ b/YuMi/Modules/YMMessage/View/NIMViews/UIView+NIM.m @@ -0,0 +1,137 @@ +// +// UIView+NIM.m +// NIMKit +// +// Created by chris. +// Copyright (c) 2015年 NetEase. All rights reserved. +// + +#import "UIView+NIM.h" + +@implementation UIView (NIMKit) + +- (CGFloat)nim_left { + return self.frame.origin.x; +} + + +- (void)setNim_left:(CGFloat)x { + CGRect frame = self.frame; + frame.origin.x = x; + self.frame = frame; +} + + +- (CGFloat)nim_top { + return self.frame.origin.y; +} + + +- (void)setNim_top:(CGFloat)y { + CGRect frame = self.frame; + frame.origin.y = y; + self.frame = frame; +} + + +- (CGFloat)nim_right { + return self.frame.origin.x + self.frame.size.width; +} + + +- (void)setNim_right:(CGFloat)right { + CGRect frame = self.frame; + frame.origin.x = right - frame.size.width; + self.frame = frame; +} + + +- (CGFloat)nim_bottom { + return self.frame.origin.y + self.frame.size.height; +} + + +- (void)setNim_bottom:(CGFloat)bottom { + CGRect frame = self.frame; + frame.origin.y = bottom - frame.size.height; + self.frame = frame; +} + + +- (CGFloat)nim_centerX { + return self.center.x; +} + + +- (void)setNim_centerX:(CGFloat)centerX { + self.center = CGPointMake(centerX, self.center.y); +} + + +- (CGFloat)nim_centerY { + return self.center.y; +} + + +- (void)setNim_centerY:(CGFloat)centerY { + self.center = CGPointMake(self.center.x, centerY); +} + + +- (CGFloat)nim_width { + return self.frame.size.width; +} + + +- (void)setNim_width:(CGFloat)width { + CGRect frame = self.frame; + frame.size.width = width; + self.frame = frame; +} + + +- (CGFloat)nim_height { + return self.frame.size.height; +} + + +- (void)setNim_height:(CGFloat)height { + CGRect frame = self.frame; + frame.size.height = height; + self.frame = frame; +} +- (CGPoint)nim_origin { + return self.frame.origin; +} + + +- (void)setNim_origin:(CGPoint)origin { + CGRect frame = self.frame; + frame.origin = origin; + self.frame = frame; +} + + +- (CGSize)nim_size { + return self.frame.size; +} + + +- (void)setNim_size:(CGSize)size { + CGRect frame = self.frame; + frame.size = size; + self.frame = frame; +} + + +- (UIViewController *)nim_viewGovernancer{ + for (UIView* next = self; next; next = next.superview) { + UIResponder* nextResponder = [next nextResponder]; + if ([nextResponder isKindOfClass:[UIViewController class]]) { + return (UIViewController*)nextResponder; + } + } + return nil; +} + +@end diff --git a/YuMi/Modules/YMMessage/View/SayHello/Api/Api+SayHello.h b/YuMi/Modules/YMMessage/View/SayHello/Api/Api+SayHello.h new file mode 100644 index 00000000..e3d0e6d0 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/SayHello/Api/Api+SayHello.h @@ -0,0 +1,26 @@ +// +// Api+SayHello.h +// YUMI +// +// Created by YUMI on 2023/2/2. +// + +#import "Api.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface Api (SayHello) + ++ (void)shuntProttypeAbstractimplementtion:(HttpRequestHelperCompletion)complection; + ++ (void)shuntEnableimplementtion:(HttpRequestHelperCompletion)complection enable:(NSString *)enable; + ++ (void)shuntSttowardsementimplementtion:(HttpRequestHelperCompletion)complection page:(NSString *)page size:(NSString *)size; + ++ (void)shuntTicktackChinwagimplementtion:(HttpRequestHelperCompletion)complection toUserId:(NSString *)toUserId; + + ++ (void)shuntCorridoroComputtowardsionimplementtion:(HttpRequestHelperCompletion)complection; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/SayHello/Api/Api+SayHello.m b/YuMi/Modules/YMMessage/View/SayHello/Api/Api+SayHello.m new file mode 100644 index 00000000..0dad215d --- /dev/null +++ b/YuMi/Modules/YMMessage/View/SayHello/Api/Api+SayHello.m @@ -0,0 +1,37 @@ +// +// Api+SayHello.m +// YUMI +// +// Created by YUMI on 2023/2/2. +// + +#import "Api+SayHello.h" +#import +@implementation Api (SayHello) + ++ (void)shuntProttypeAbstractimplementtion:(HttpRequestHelperCompletion)complection { + NSString * fang = [NSString stringFromBase64String:@"c2h1bnQvbGV2ZWxfaW5mbw=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:complection, __FUNCTION__, nil]; +} + ++ (void)shuntEnableimplementtion:(HttpRequestHelperCompletion)complection enable:(NSString *)enable { + NSString * fang = [NSString stringFromBase64String:@"c2h1bnQvZW5hYmxl"]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:complection, __FUNCTION__,enable, nil]; +} + ++ (void)shuntSttowardsementimplementtion:(HttpRequestHelperCompletion)complection page:(NSString *)page size:(NSString *)size { + NSString * fang = [NSString stringFromBase64String:@"c2h1bnQvbGlzdA=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:complection, __FUNCTION__,page, size, nil]; +} + ++ (void)shuntTicktackChinwagimplementtion:(HttpRequestHelperCompletion)complection toUserId:(NSString *)toUserId { + NSString * fang = [NSString stringFromBase64String:@"c2h1bnQvY2xpY2tfY2hhdA=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:complection, __FUNCTION__,toUserId, nil]; +} + ++ (void)shuntCorridoroComputtowardsionimplementtion:(HttpRequestHelperCompletion)complection { + NSString * fang = [NSString stringFromBase64String:@"c2h1bnQvaGVsbG9fY291bnQ="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:complection, __FUNCTION__, nil]; +} + +@end diff --git a/YuMi/Modules/YMMessage/View/SayHello/Model/InterlocutionSpeakHalloComputationMatrix.h b/YuMi/Modules/YMMessage/View/SayHello/Model/InterlocutionSpeakHalloComputationMatrix.h new file mode 100644 index 00000000..50993a7f --- /dev/null +++ b/YuMi/Modules/YMMessage/View/SayHello/Model/InterlocutionSpeakHalloComputationMatrix.h @@ -0,0 +1,17 @@ +// +// InterlocutionSpeakHalloComputationMatrix.h +// YUMI +// +// Created by YUMI on 2023/2/3. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface InterlocutionSpeakHalloComputationMatrix : NSObject +@property (nonatomic,assign) NSInteger helloCount; +@property (nonatomic,assign) BOOL visible; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/SayHello/Model/InterlocutionSpeakHalloComputationMatrix.m b/YuMi/Modules/YMMessage/View/SayHello/Model/InterlocutionSpeakHalloComputationMatrix.m new file mode 100644 index 00000000..d92d9664 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/SayHello/Model/InterlocutionSpeakHalloComputationMatrix.m @@ -0,0 +1,14 @@ +// +// InterlocutionSpeakHalloComputationMatrix.m +// YUMI +// +// Created by YUMI on 2023/2/3. +// + +#import "InterlocutionSpeakHalloComputationMatrix.h" + +@implementation InterlocutionSpeakHalloComputationMatrix + + + +@end diff --git a/YuMi/Modules/YMMessage/View/SayHello/Model/InterlocutionSpeakHalloPrototypeMatrix.h b/YuMi/Modules/YMMessage/View/SayHello/Model/InterlocutionSpeakHalloPrototypeMatrix.h new file mode 100644 index 00000000..3e97d668 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/SayHello/Model/InterlocutionSpeakHalloPrototypeMatrix.h @@ -0,0 +1,20 @@ +// +// InterlocutionSpeakHalloPrototypeMatrix.h +// YUMI +// +// Created by YUMI on 2023/2/2. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface InterlocutionSpeakHalloPrototypeMatrix : NSObject +@property (nonatomic,copy) NSString *currentLevel; +@property (nonatomic,copy) NSString * currentMultiple; +@property (nonatomic,assign) BOOL enable; +@property (nonatomic,copy) NSString *desc; +@property (nonatomic,assign) NSInteger helloCount; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/SayHello/Model/InterlocutionSpeakHalloPrototypeMatrix.m b/YuMi/Modules/YMMessage/View/SayHello/Model/InterlocutionSpeakHalloPrototypeMatrix.m new file mode 100644 index 00000000..7be842e9 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/SayHello/Model/InterlocutionSpeakHalloPrototypeMatrix.m @@ -0,0 +1,12 @@ +// +// InterlocutionSpeakHalloPrototypeMatrix.m +// YUMI +// +// Created by YUMI on 2023/2/2. +// + +#import "InterlocutionSpeakHalloPrototypeMatrix.h" + +@implementation InterlocutionSpeakHalloPrototypeMatrix + +@end diff --git a/YuMi/Modules/YMMessage/View/SayHello/Model/InterlocutionSpeakHalloStatementMatrix.h b/YuMi/Modules/YMMessage/View/SayHello/Model/InterlocutionSpeakHalloStatementMatrix.h new file mode 100644 index 00000000..aaa9143d --- /dev/null +++ b/YuMi/Modules/YMMessage/View/SayHello/Model/InterlocutionSpeakHalloStatementMatrix.h @@ -0,0 +1,25 @@ +// +// InterlocutionSpeakHalloStatementMatrix.h +// YUMI +// +// Created by YUMI on 2023/2/2. +// + +#import +#import "YUMINNNN.h" +NS_ASSUME_NONNULL_BEGIN + +@interface InterlocutionSpeakHalloStatementMatrix : NSObject +@property (nonatomic,assign) NSInteger uid; +@property (nonatomic,copy) NSString *name; +@property (nonatomic,copy) NSString *avatar; +@property (nonatomic,copy) NSString *content; +@property (nonatomic,assign) GenderGenre gender; +@property (nonatomic,copy) NSString *experUrl; +@property (nonatomic,copy) NSString *charmUrl; +@property (nonatomic,copy) NSString *onlineDesc; +@property (nonatomic,assign) BOOL online; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/SayHello/Model/InterlocutionSpeakHalloStatementMatrix.m b/YuMi/Modules/YMMessage/View/SayHello/Model/InterlocutionSpeakHalloStatementMatrix.m new file mode 100644 index 00000000..96c4f683 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/SayHello/Model/InterlocutionSpeakHalloStatementMatrix.m @@ -0,0 +1,16 @@ +// +// InterlocutionSpeakHalloStatementMatrix.m +// YUMI +// +// Created by YUMI on 2023/2/2. +// + +#import "InterlocutionSpeakHalloStatementMatrix.h" + +@implementation InterlocutionSpeakHalloStatementMatrix ++ (NSDictionary *)replacedDigitalByvirtueofMaintainertyConstitute { + return @{@"experUrl":@"userLevelVo.experUrl", + @"charmUrl":@"userLevelVo.charmUrl" + }; +} +@end diff --git a/YuMi/Modules/YMMessage/View/SayHello/Presenter/YUMIInterlocutionSpeakHalloExternalizer.h b/YuMi/Modules/YMMessage/View/SayHello/Presenter/YUMIInterlocutionSpeakHalloExternalizer.h new file mode 100644 index 00000000..d80ab539 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/SayHello/Presenter/YUMIInterlocutionSpeakHalloExternalizer.h @@ -0,0 +1,23 @@ +// +// YMSessionSayHelloPresenter.h +// YUMI +// +// Created by YUMI on 2023/2/2. +// + +#import "BaseMvpExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIInterlocutionSpeakHalloExternalizer : BaseMvpExternalizer + +- (void)shuntProttypeAbstract; + +- (void)shuntEnable:(BOOL)enable; + +- (void)shuntSttowardsement:(NSInteger)page size:(NSInteger)size state:(NSInteger)state; + +- (void)shuntTicktackChinwag:(NSString *)userId; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/SayHello/Presenter/YUMIInterlocutionSpeakHalloExternalizer.m b/YuMi/Modules/YMMessage/View/SayHello/Presenter/YUMIInterlocutionSpeakHalloExternalizer.m new file mode 100644 index 00000000..04a520d5 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/SayHello/Presenter/YUMIInterlocutionSpeakHalloExternalizer.m @@ -0,0 +1,49 @@ +// +// YMSessionSayHelloPresenter.m +// YUMI +// +// Created by YUMI on 2023/2/2. +// + +#import "YUMIInterlocutionSpeakHalloExternalizer.h" +#import "Api+SayHello.h" +#import "InterlocutionSpeakHalloPrototypeMatrix.h" +#import "InterlocutionSpeakHalloStatementMatrix.h" +#import "FBCInterlocutionSayHelloCeremony.h" +@implementation YUMIInterlocutionSpeakHalloExternalizer + +- (void)shuntProttypeAbstract { + [Api shuntProttypeAbstractimplementtion:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + InterlocutionSpeakHalloPrototypeMatrix * prototypeAbstract = [InterlocutionSpeakHalloPrototypeMatrix mtowardsrixAboutImpactbasket:data.data]; + [[self acquireRegard] shuntProttypeAbstractAccomplishment:prototypeAbstract]; + }]]; +} + +- (void)shuntEnable:(BOOL)enable { + NSString * str = enable ? @"1" : @"0"; + [Api shuntEnableimplementtion:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] shuntEnableScucess:enable]; + }] enable:str]; +} + +- (void)shuntSttowardsement:(NSInteger)page size:(NSInteger)size state:(NSInteger)state { + NSString * pageStr = [NSString stringWithFormat:@"%ld", page]; + NSString * sizeStr = [NSString stringWithFormat:@"%ld", size]; + [Api shuntSttowardsementimplementtion:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + NSArray * array = [InterlocutionSpeakHalloStatementMatrix mtowardsrixsAboutGarment:data.data]; + [[self acquireRegard] shuntSttowardsementScuccess:array state:state]; + } fail:^(NSInteger code, NSString * _Nullable msg) { + [[self acquireRegard] shuntSttowardsementFlunkDeclare:state]; + }] page:pageStr size:sizeStr]; +} + + +- (void)shuntTicktackChinwag:(NSString *)userId { + [Api shuntTicktackChinwagimplementtion:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + + } toUserId:userId]; +} + + + +@end diff --git a/YuMi/Modules/YMMessage/View/SayHello/Protocol/FBCInterlocutionSayHelloCeremony.h b/YuMi/Modules/YMMessage/View/SayHello/Protocol/FBCInterlocutionSayHelloCeremony.h new file mode 100644 index 00000000..4f22f5b7 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/SayHello/Protocol/FBCInterlocutionSayHelloCeremony.h @@ -0,0 +1,21 @@ +// +// YMSessionSayHelloProtocol.h +// YUMI +// +// Created by YUMI on 2023/2/2. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class InterlocutionSpeakHalloPrototypeMatrix; +@protocol FBCInterlocutionSayHelloCeremony +- (void)shuntProttypeAbstractAccomplishment:(InterlocutionSpeakHalloPrototypeMatrix *)prototypeAbstract; +- (void)shuntEnableScucess:(BOOL)enable; + +- (void)shuntSttowardsementScuccess:(NSArray *)list state:(NSInteger)state; +- (void)shuntSttowardsementFlunkDeclare:(NSInteger)state; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/SayHello/View/Cell/YUMIInterlocutionSpeakHalloDispossessTabulationRegardElement.h b/YuMi/Modules/YMMessage/View/SayHello/View/Cell/YUMIInterlocutionSpeakHalloDispossessTabulationRegardElement.h new file mode 100644 index 00000000..e5d05d70 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/SayHello/View/Cell/YUMIInterlocutionSpeakHalloDispossessTabulationRegardElement.h @@ -0,0 +1,16 @@ +// +// YMSessionSayHelloEmptyTableViewCell.h +// YUMI +// +// Created by YUMI on 2023/1/31. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIInterlocutionSpeakHalloDispossessTabulationRegardElement : UITableViewCell + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/SayHello/View/Cell/YUMIInterlocutionSpeakHalloDispossessTabulationRegardElement.m b/YuMi/Modules/YMMessage/View/SayHello/View/Cell/YUMIInterlocutionSpeakHalloDispossessTabulationRegardElement.m new file mode 100644 index 00000000..3fc8d42f --- /dev/null +++ b/YuMi/Modules/YMMessage/View/SayHello/View/Cell/YUMIInterlocutionSpeakHalloDispossessTabulationRegardElement.m @@ -0,0 +1,71 @@ +// +// YMSessionSayHelloEmptyTableViewCell.m +// YUMI +// +// Created by YUMI on 2023/1/31. +// + +#import "YUMIInterlocutionSpeakHalloDispossessTabulationRegardElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "UIIndicateConstant.h" + +@interface YUMIInterlocutionSpeakHalloDispossessTabulationRegardElement () +@property (nonatomic,strong) UIImageView *dispossessIndicateRegard; +@property (nonatomic,strong) UILabel *titleLabel; +@end + +@implementation YUMIInterlocutionSpeakHalloDispossessTabulationRegardElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor]; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.dispossessIndicateRegard]; + [self.contentView addSubview:self.titleLabel]; +} + +- (void)initChildLyRestrictions { + [self.dispossessIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.contentView); + make.top.mas_equalTo(self.contentView).offset(250); + make.size.mas_equalTo(CGSizeMake(100, 100)); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.dispossessIndicateRegard.mas_bottom).offset(20); + make.left.right.mas_equalTo(self.contentView); + }]; +} +#pragma mark - Getters And Setters +- (UIImageView *)dispossessIndicateRegard { + if (!_dispossessIndicateRegard) { + _dispossessIndicateRegard = [[UIImageView alloc] init]; + _dispossessIndicateRegard.userInteractionEnabled = YES; + _dispossessIndicateRegard.image = [UIIndicateConstant defalutDispossessDepapossessor]; + _dispossessIndicateRegard.layer.masksToBounds = YES; + _dispossessIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _dispossessIndicateRegard; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.text = YMLocalizedString(@"YUMI_Session_Say_Hello_Empty_Table_View_Cell_0"); + _titleLabel.font = [UIFont systemFontOfSize:16]; + _titleLabel.textAlignment = NSTextAlignmentCenter; + _titleLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + } + return _titleLabel; +} + +@end diff --git a/YuMi/Modules/YMMessage/View/SayHello/View/Cell/YUMIInterlocutionSpeakHalloTabulationRegardElement.h b/YuMi/Modules/YMMessage/View/SayHello/View/Cell/YUMIInterlocutionSpeakHalloTabulationRegardElement.h new file mode 100644 index 00000000..5dec6b8e --- /dev/null +++ b/YuMi/Modules/YMMessage/View/SayHello/View/Cell/YUMIInterlocutionSpeakHalloTabulationRegardElement.h @@ -0,0 +1,22 @@ +// +// YMSessionSayHelloTableViewCell.h +// YUMI +// +// Created by YUMI on 2023/1/31. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class InterlocutionSpeakHalloStatementMatrix, YUMIInterlocutionSpeakHalloTabulationRegardElement; +@protocol FBCInterlocutionSayHelloTabulationViweElementRepresendtation + +- (void)yUMIInterlocutionSpeakCorridoroTarbsultowardsionViweElement:(YUMIInterlocutionSpeakHalloTabulationRegardElement *)view didClickChat:(InterlocutionSpeakHalloStatementMatrix *)info; + +@end +@interface YUMIInterlocutionSpeakHalloTabulationRegardElement : UITableViewCell +@property (nonatomic,strong) InterlocutionSpeakHalloStatementMatrix *shuntAbstract; +@property (nonatomic,weak) id delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/SayHello/View/Cell/YUMIInterlocutionSpeakHalloTabulationRegardElement.m b/YuMi/Modules/YMMessage/View/SayHello/View/Cell/YUMIInterlocutionSpeakHalloTabulationRegardElement.m new file mode 100644 index 00000000..b2a72d5e --- /dev/null +++ b/YuMi/Modules/YMMessage/View/SayHello/View/Cell/YUMIInterlocutionSpeakHalloTabulationRegardElement.m @@ -0,0 +1,243 @@ +// +// YMSessionSayHelloTableViewCell.m +// YUMI +// +// Created by YUMI on 2023/1/31. +// + +#import "YUMIInterlocutionSpeakHalloTabulationRegardElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "NetIndicateRegard.h" +#import "UIImage+Utils.h" +#import "InterlocutionSpeakHalloStatementMatrix.h" + +@interface YUMIInterlocutionSpeakHalloTabulationRegardElement () +@property (nonatomic,strong) NetIndicateRegard *intelligenceportraitIndicateRegard; +@property (nonatomic,strong) UIImageView *seaxualityIndicateRegard; +@property (nonatomic,strong) UILabel *monicerSequencignation; +@property (nonatomic,strong) NetIndicateRegard *prototypeIndicateRegard; +@property (nonatomic,strong) NetIndicateRegard *fascinationIndicateRegard; +@property (nonatomic,strong) UIImageView *encourageRegard; +@property (nonatomic,strong) UILabel *titleLabel; +@property (nonatomic,strong) UIButton *corridoroBtuton; +@property (nonatomic,strong) UILabel *intratemporalSequencignation; +@property (nonatomic,strong) UIView *onBurlywoodRegard; +@end + +@implementation YUMIInterlocutionSpeakHalloTabulationRegardElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor]; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.intelligenceportraitIndicateRegard]; + [self.contentView addSubview:self.seaxualityIndicateRegard]; + [self.contentView addSubview:self.monicerSequencignation]; + [self.contentView addSubview:self.prototypeIndicateRegard]; + [self.contentView addSubview:self.fascinationIndicateRegard]; + [self.contentView addSubview:self.intratemporalSequencignation]; + [self.contentView addSubview:self.onBurlywoodRegard]; + [self.contentView addSubview:self.encourageRegard]; + + [self.encourageRegard addSubview:self.titleLabel]; + [self.encourageRegard addSubview:self.corridoroBtuton]; +} + +- (void)initChildLyRestrictions { + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(54, 54)); + make.left.mas_equalTo(self.contentView).offset(15); + make.top.mas_equalTo(self.contentView); + }]; + + [self.seaxualityIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(14, 14)); + make.bottom.mas_equalTo(self.intelligenceportraitIndicateRegard); + make.right.mas_equalTo(self.intelligenceportraitIndicateRegard); + }]; + + [self.monicerSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_right).offset(12); + make.bottom.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_centerY).offset(-2); + make.right.mas_lessThanOrEqualTo(self.contentView).offset(-20); + }]; + + [self.prototypeIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(20); + make.height.mas_equalTo(20); + make.left.mas_equalTo(self.monicerSequencignation); + make.top.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_centerY).offset(2); + }]; + + [self.fascinationIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(20); + make.left.mas_equalTo(self.prototypeIndicateRegard.mas_right).offset(2); + make.centerY.mas_equalTo(self.prototypeIndicateRegard); + }]; + + [self.intratemporalSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.intelligenceportraitIndicateRegard); + make.right.mas_equalTo(self.contentView).offset(-15); + }]; + + [self.onBurlywoodRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(8, 8)); + make.centerY.mas_equalTo(self.intratemporalSequencignation); + make.right.mas_equalTo(self.intratemporalSequencignation.mas_left).offset(-2); + }]; + + [self.encourageRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(56); + make.left.right.mas_equalTo(self.contentView).inset(15); + make.top.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_bottom).offset(3); + + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.encourageRegard).offset(16); + make.top.mas_equalTo(self.encourageRegard).offset(23); + make.right.mas_lessThanOrEqualTo(self.encourageRegard).offset(-25); + }]; + + [self.corridoroBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(56,24)); + make.centerY.mas_equalTo(self.titleLabel); + make.right.mas_equalTo(self.encourageRegard).offset(-16); + }]; +} + +#pragma mark - Event Response +- (void)hentiretyoBtutonPerformance:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIInterlocutionSpeakCorridoroTarbsultowardsionViweElement:didClickChat:)]) { + [self.delegate yUMIInterlocutionSpeakCorridoroTarbsultowardsionViweElement:self didClickChat:self.shuntAbstract]; + } +} + +#pragma mark - Getters And Setters +- (void)setShuntAbstract:(InterlocutionSpeakHalloStatementMatrix *)shuntAbstract { + _shuntAbstract = shuntAbstract; + if (_shuntAbstract) { + self.intelligenceportraitIndicateRegard.imageUrl = _shuntAbstract.avatar; + self.seaxualityIndicateRegard.image = _shuntAbstract.gender == GenderGenre_Female ? [UIImage imageNamed:@"yumi_same_female"] : [UIImage imageNamed:@"yumi_same_male"]; + self.monicerSequencignation.text = _shuntAbstract.name; + self.prototypeIndicateRegard.imageUrl = _shuntAbstract.experUrl; + self.fascinationIndicateRegard.imageUrl = _shuntAbstract.charmUrl; + self.intratemporalSequencignation.text = _shuntAbstract.onlineDesc; + self.titleLabel.text = _shuntAbstract.content; + self.onBurlywoodRegard.hidden = !_shuntAbstract.online; + } +} + +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _intelligenceportraitIndicateRegard.layer.cornerRadius = 54/2; + } + return _intelligenceportraitIndicateRegard; +} + +- (UILabel *)monicerSequencignation { + if (!_monicerSequencignation) { + _monicerSequencignation = [[UILabel alloc] init]; + _monicerSequencignation.font = [UIFont systemFontOfSize:16 weight:UIFontWeightMedium]; + _monicerSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _monicerSequencignation; +} + +- (UIImageView *)seaxualityIndicateRegard { + if (!_seaxualityIndicateRegard) { + _seaxualityIndicateRegard = [[UIImageView alloc] init]; + _seaxualityIndicateRegard.userInteractionEnabled = YES; + } + return _seaxualityIndicateRegard; +} + +- (NetIndicateRegard *)prototypeIndicateRegard { + if (!_prototypeIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _prototypeIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _prototypeIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _prototypeIndicateRegard; +} + +- (NetIndicateRegard *)fascinationIndicateRegard { + if (!_fascinationIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _fascinationIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _fascinationIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _fascinationIndicateRegard; +} + +- (UIView *)onBurlywoodRegard { + if (!_onBurlywoodRegard) { + _onBurlywoodRegard = [[UIView alloc] init]; + _onBurlywoodRegard.backgroundColor = [DJDKMIMOMColor colorAboutHexBWSttr:@"#97EF30"]; + _onBurlywoodRegard.layer.masksToBounds = YES; + _onBurlywoodRegard.layer.cornerRadius = 4; + } + return _onBurlywoodRegard; +} + +- (UILabel *)intratemporalSequencignation { + if (!_intratemporalSequencignation) { + _intratemporalSequencignation = [[UILabel alloc] init]; + _intratemporalSequencignation.font = [UIFont systemFontOfSize:10]; + _intratemporalSequencignation.textColor = [DJDKMIMOMColor instantEssayPrettify]; + } + return _intratemporalSequencignation; +} + +- (UIImageView *)encourageRegard { + if (!_encourageRegard) { + _encourageRegard = [[UIImageView alloc] init]; + _encourageRegard.userInteractionEnabled = YES; + _encourageRegard.layer.masksToBounds = YES; + _encourageRegard.contentMode = UIViewContentModeScaleAspectFill; + _encourageRegard.image = [[UIImage imageNamed:@"yumi_term_say_hello_matter_background"] resizableImageWithCapInsets:UIEdgeInsetsMake(20, 300, 10, 250) resizingMode:UIImageResizingModeStretch]; + } + return _encourageRegard; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.font = [UIFont systemFontOfSize:12]; + _titleLabel.textColor = [DJDKMIMOMColor colorAboutHexBWSttr:@"#8A8CAB"]; + } + return _titleLabel; +} + +- (UIButton *)corridoroBtuton { + if (!_corridoroBtuton) { + _corridoroBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_corridoroBtuton setTitle:YMLocalizedString(@"YUMI_Session_Say_Hello_Table_View_Cell_0") forState:UIControlStateNormal]; + [_corridoroBtuton setTitleColor:[DJDKMIMOMColor acknowledgementBtutonEssayPrettify] forState:UIControlStateNormal]; + _corridoroBtuton.titleLabel.font = [UIFont systemFontOfSize:12]; + [_corridoroBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + _corridoroBtuton.layer.masksToBounds = YES; + _corridoroBtuton.layer.cornerRadius = 12; + [_corridoroBtuton addTarget:self action:@selector(hentiretyoBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _corridoroBtuton; +} + + +@end diff --git a/YuMi/Modules/YMMessage/View/SayHello/View/CustomView/YUMIInterlocutionSpeakHalloIntelligencerRegard.h b/YuMi/Modules/YMMessage/View/SayHello/View/CustomView/YUMIInterlocutionSpeakHalloIntelligencerRegard.h new file mode 100644 index 00000000..c3a30865 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/SayHello/View/CustomView/YUMIInterlocutionSpeakHalloIntelligencerRegard.h @@ -0,0 +1,25 @@ +// +// YMSessionSayHelloHeaderView.h +// YUMI +// +// Created by YUMI on 2023/1/31. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class YUMIInterlocutionSpeakHalloIntelligencerRegard, InterlocutionSpeakHalloPrototypeMatrix; +@protocol FBCInterlocutionSayHelloIntelligencerRegardRepresendtation + +- (void)yUMIInterlocutionSpeakCorridoroIntelligencerRegard:(YUMIInterlocutionSpeakHalloIntelligencerRegard *)view didClickBack:(UIButton *)sender; + +- (void)YUMIInterlocutionSpeakHalloIntelligencerRegard:(YUMIInterlocutionSpeakHalloIntelligencerRegard *)view didChangeValue:(UISwitch *)switchView; +@end + +@interface YUMIInterlocutionSpeakHalloIntelligencerRegard : UIView +@property (nonatomic,weak) id delegate; + +@property (nonatomic,strong) InterlocutionSpeakHalloPrototypeMatrix *prototypeAbstract; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/SayHello/View/CustomView/YUMIInterlocutionSpeakHalloIntelligencerRegard.m b/YuMi/Modules/YMMessage/View/SayHello/View/CustomView/YUMIInterlocutionSpeakHalloIntelligencerRegard.m new file mode 100644 index 00000000..49f2fdd2 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/SayHello/View/CustomView/YUMIInterlocutionSpeakHalloIntelligencerRegard.m @@ -0,0 +1,216 @@ +// +// YMSessionSayHelloHeaderView.m +// YUMI +// +// Created by YUMI on 2023/1/31. +// + +#import "YUMIInterlocutionSpeakHalloIntelligencerRegard.h" +#import +#import "DJDKMIMOMColor.h" +#import "NetIndicateRegard.h" +#import "YUMIMacroUitls.h" +#import "YUMISwitch.h" +#import "InterlocutionSpeakHalloPrototypeMatrix.h" + +@interface YUMIInterlocutionSpeakHalloIntelligencerRegard () +@property (nonatomic,strong) UIButton *backButton; +@property (nonatomic,strong) UILabel *titleLabel; +@property (nonatomic,strong) YUMISwitch *switchView; +@property (nonatomic,strong) UILabel *universalRateSequencignation; +@property (nonatomic,strong) UILabel *corridoroSequencignation; +@property (nonatomic,strong) UILabel *nextSequencignation; +@property (nonatomic,strong) NetIndicateRegard *prototypeIndicateRegard; +@end + +@implementation YUMIInterlocutionSpeakHalloIntelligencerRegard + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor]; + [self addSubview:self.backButton]; + [self addSubview:self.titleLabel]; + [self addSubview:self.switchView]; + [self addSubview:self.universalRateSequencignation]; + [self addSubview:self.corridoroSequencignation]; + [self addSubview:self.nextSequencignation]; + [self addSubview:self.prototypeIndicateRegard]; +} + +- (void)initChildLyRestrictions { + [self.backButton mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self).mas_offset(10); + make.top.mas_equalTo(statusbarHeight); + make.height.width.mas_equalTo(44); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self); + make.centerY.mas_equalTo(self.backButton); + }]; + + [self.switchView mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self).offset(-15); + make.centerY.mas_equalTo(self.titleLabel); + make.size.mas_equalTo(CGSizeMake(42, 23)); + }]; + + [self.universalRateSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self).offset(15); + make.top.mas_equalTo(self.backButton.mas_bottom).offset(40); + }]; + + [self.corridoroSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.universalRateSequencignation); + make.top.mas_equalTo(self.universalRateSequencignation.mas_bottom).offset(10); + }]; + + [self.nextSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.corridoroSequencignation.mas_bottom); + make.left.mas_equalTo(self.corridoroSequencignation); + }]; + + [self.prototypeIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(130, 115)); + make.right.mas_equalTo(self).offset(-15); + make.top.mas_equalTo(self).offset(kNavigationHeight + 8); + }]; +} + +- (void)produceUniversalRtowardseIdiosyncracy:(NSString *)level { + if (level.length < 0) { + return; + } + NSString * title = [NSString stringWithFormat:@"当前主播评级:%@", level]; + NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] initWithString:title attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:12], NSForegroundColorAttributeName:[DJDKMIMOMColor colorAboutHexBWSttr:@"#1A1A1A"]}]; + [attribute addAttribute:NSForegroundColorAttributeName value:[DJDKMIMOMColor colorAboutHexBWSttr:@"#FF8400"] range:[title rangeOfString:level]]; + [attribute addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:16 weight:UIFontWeightSemibold] range:[title rangeOfString:level]]; + self.universalRateSequencignation.attributedText = attribute; +} + +- (void)produceCorridoroIdiosyncracy:(NSString *)level { + if (level.length < 0) { + return; + } + NSString * levelStr = [NSString stringWithFormat:YMLocalizedString(@"YUMI_Session_Say_Hello_Header_View_1"), level]; + NSString * title = [NSString stringWithFormat:@"当前打招呼流量:%@", levelStr]; + NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] initWithString:title attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:14], NSForegroundColorAttributeName:[DJDKMIMOMColor mainEssayPrettify]}]; + [attribute addAttribute:NSForegroundColorAttributeName value:[DJDKMIMOMColor colorAboutHexBWSttr:@"#171A58"] range:[title rangeOfString:levelStr]]; + [attribute addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:24 weight:UIFontWeightMedium] range:[title rangeOfString:levelStr]]; + self.corridoroSequencignation.attributedText = attribute; +} + + +#pragma mark - Event Response +- (void)encourageBtutonPerformance:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIInterlocutionSpeakCorridoroIntelligencerRegard:didClickBack:)]) { + [self.delegate yUMIInterlocutionSpeakCorridoroIntelligencerRegard:self didClickBack:sender]; + } +} + +- (void)swopDidDiversifictowardsion:(UISwitch *)switchOn { + if (self.delegate && [self.delegate respondsToSelector:@selector(YUMIInterlocutionSpeakHalloIntelligencerRegard:didChangeValue:)]) { + [self.delegate YUMIInterlocutionSpeakHalloIntelligencerRegard:self didChangeValue:switchOn]; + } +} + +#pragma mark - Getters And Setters +- (void)setPrototypeAbstract:(InterlocutionSpeakHalloPrototypeMatrix *)prototypeAbstract { + _prototypeAbstract = prototypeAbstract; + if (_prototypeAbstract) { + self.switchView.on = _prototypeAbstract.enable; + [self produceCorridoroIdiosyncracy:_prototypeAbstract.currentMultiple]; + [self produceUniversalRtowardseIdiosyncracy:_prototypeAbstract.currentLevel]; + self.nextSequencignation.text = _prototypeAbstract.desc; + if ([_prototypeAbstract.currentLevel isEqualToString:@"S"]) { + self.prototypeIndicateRegard.image = [UIImage imageNamed:@"yumi_center_anchor_level_s"]; + } else if([_prototypeAbstract.currentLevel isEqualToString:@"B"]) { + self.prototypeIndicateRegard.image = [UIImage imageNamed:@"yumi_center_anchor_level_b"]; + } else if([_prototypeAbstract.currentLevel isEqualToString:@"C"]) { + self.prototypeIndicateRegard.image = [UIImage imageNamed:@"yumi_center_anchor_level_c"]; + }else if([_prototypeAbstract.currentLevel isEqualToString:@"D"]) { + self.prototypeIndicateRegard.image = [UIImage imageNamed:@"yumi_center_anchor_level_d"]; + } else { + self.prototypeIndicateRegard.image = [UIImage imageNamed:@"yumi_center_anchor_level_a"]; + } + } +} + +- (UIButton *)backButton { + if (!_backButton) { + _backButton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_backButton setImage:[UIImage imageNamed:@"yumi_same_title_back"] forState:UIControlStateNormal]; + [_backButton setImage:[UIImage imageNamed:@"yumi_same_title_back"] forState:UIControlStateSelected]; + [_backButton addTarget:self action:@selector(encourageBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _backButton; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.font = [UIFont systemFontOfSize:18 weight:UIFontWeightMedium]; + _titleLabel.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _titleLabel.text = YMLocalizedString(@"YUMI_Session_Say_Hello_Header_View_3"); + _titleLabel.textAlignment = NSTextAlignmentCenter; + } + return _titleLabel; +} + +- (YUMISwitch *)switchView { + if (!_switchView) { + _switchView = [[YUMISwitch alloc] initWithFrame:CGRectMake(0, 0, 42, 23)]; + _switchView.backgroundColor = [UIColor clearColor]; + _switchView.onTintColor = [DJDKMIMOMColor colorAboutHexBWSttr:@"##5FCCE4"]; + _switchView.tintColor = [DJDKMIMOMColor colorAboutHexBWSttr:@"#C7DAEA"]; + _switchView.thumbTintColor = [UIColor whiteColor]; + _switchView.shadow = NO; + [_switchView addTarget:self action:@selector(swopDidDiversifictowardsion:) forControlEvents:UIControlEventValueChanged]; + + } + return _switchView; +} + +- (UILabel *)universalRateSequencignation { + if (!_universalRateSequencignation) { + _universalRateSequencignation = [[UILabel alloc] init]; + } + return _universalRateSequencignation; +} + +- (UILabel *)corridoroSequencignation { + if (!_corridoroSequencignation) { + _corridoroSequencignation = [[UILabel alloc] init]; + } + return _corridoroSequencignation; +} + +- (UILabel *)nextSequencignation { + if (!_nextSequencignation) { + _nextSequencignation = [[UILabel alloc] init]; + _nextSequencignation.textColor = [DJDKMIMOMColor colorAboutHexBWSttr:@"#BABBCD"]; + _nextSequencignation.font = [UIFont systemFontOfSize:10]; + } + return _nextSequencignation; +} + +- (NetIndicateRegard *)prototypeIndicateRegard { + if (!_prototypeIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _prototypeIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _prototypeIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _prototypeIndicateRegard; +} + +@end diff --git a/YuMi/Modules/YMMessage/View/SayHello/View/YUMIInterlocutionSpeakHalloRegardGovernancer.h b/YuMi/Modules/YMMessage/View/SayHello/View/YUMIInterlocutionSpeakHalloRegardGovernancer.h new file mode 100644 index 00000000..53238432 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/SayHello/View/YUMIInterlocutionSpeakHalloRegardGovernancer.h @@ -0,0 +1,16 @@ +// +// YMSessionSayHelloViewController.h +// YUMI +// +// Created by YUMI on 2023/1/31. +// + +#import "MvpRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIInterlocutionSpeakHalloRegardGovernancer : MvpRegardGovernancer + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/SayHello/View/YUMIInterlocutionSpeakHalloRegardGovernancer.m b/YuMi/Modules/YMMessage/View/SayHello/View/YUMIInterlocutionSpeakHalloRegardGovernancer.m new file mode 100644 index 00000000..ee104d9d --- /dev/null +++ b/YuMi/Modules/YMMessage/View/SayHello/View/YUMIInterlocutionSpeakHalloRegardGovernancer.m @@ -0,0 +1,257 @@ +// +// YMSessionSayHelloViewController.m +// YUMI +// +// Created by YUMI on 2023/1/31. +// + +#import "YUMIInterlocutionSpeakHalloRegardGovernancer.h" +#import +#import +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" +#import "NSArray+Safe.h" +#import "NEMCCommunicationMaker.h" +#import "StatsticsticsServingFacilitater.h" +#import "InterlocutionSpeakHalloPrototypeMatrix.h" +#import "InterlocutionSpeakHalloStatementMatrix.h" +#import "YUMIInterlocutionSpeakHalloIntelligencerRegard.h" +#import "YUMIInterlocutionSpeakHalloTabulationRegardElement.h" +#import "YUMIInterlocutionSpeakHalloDispossessTabulationRegardElement.h" +#import "InterlocutionRegardGovernancer.h" +#import "FBCInterlocutionSayHelloCeremony.h" +#import "YUMIInterlocutionSpeakHalloExternalizer.h" +@interface YUMIInterlocutionSpeakHalloRegardGovernancer () +@property (nonatomic,strong) UIImageView *encourageIndicateRegard; +@property (nonatomic,strong) YUMIInterlocutionSpeakHalloIntelligencerRegard *intelligenceerRegard; +@property (nonatomic,strong) UIView *encourageRegard; +@property (nonatomic,strong) UITableView *tableView; +@property (nonatomic,strong) NSMutableArray *datasource; +@property (nonatomic,assign) NSInteger page; +@property (nonatomic,strong) InterlocutionSpeakHalloPrototypeMatrix *prototypeAbstract; +@end + +@implementation YUMIInterlocutionSpeakHalloRegardGovernancer + +- (BOOL)isVeiledNevObstacle { + return YES; +} + +- (__kindof id)producePresimport { + return [[YUMIInterlocutionSpeakHalloExternalizer alloc] init]; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initIntelligencerGrantedTerminalerRrfresh]; + [self initSubViews]; + [self initChildLyRestrictions]; +} + +- (void)viewWillAppear:(BOOL)animated { + [super viewWillAppear:animated]; + [self intelligenceerRenovtowardseh]; +} + +#pragma mark - Refresh +- (void)initIntelligencerGrantedTerminalerRrfresh { + MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(intelligenceerRenovtowardseh)]; + header.stateLabel.font = [UIFont systemFontOfSize:10.0]; + header.lastUpdatedTimeLabel.font = [UIFont systemFontOfSize:10.0]; + header.stateLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + header.lastUpdatedTimeLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + self.tableView.mj_header = header; + + MJRefreshBackNormalFooter *footer = [MJRefreshBackNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(footerRenovtowardseh)]; + footer.stateLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + footer.stateLabel.font = [UIFont systemFontOfSize:10.0]; + self.tableView.mj_footer = footer; + + [self.presimport shuntProttypeAbstract]; +} + +- (void)intelligenceerRenovtowardseh { + self.page = 1; + [self.presimport shuntSttowardsement:self.page size:20 state:0]; +} + +- (void)footerRenovtowardseh { + self.page ++; + [self.presimport shuntSttowardsement:self.page size:20 state:1]; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self.view addSubview:self.encourageIndicateRegard]; + [self.view addSubview:self.encourageRegard]; + [self.view addSubview:self.tableView]; + [self.view addSubview:self.intelligenceerRegard]; +} + +- (void)initChildLyRestrictions { + [self.encourageIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(KScreenWidth, KScreenWidth)); + make.top.centerX.mas_equalTo(self.view); + }]; + + [self.intelligenceerRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self.view); + make.height.mas_equalTo(220 + kSafeAreaTopHeight); + }]; + + [self.encourageRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.mas_equalTo(self.view); + make.top.mas_equalTo(self.intelligenceerRegard.mas_bottom); + }]; + + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.mas_equalTo(self.encourageRegard); + make.top.mas_equalTo(self.encourageRegard.mas_top).offset(15); + }]; +} + +#pragma mark - FBCInterlocutionSayHelloIntelligencerRegardRepresendtation +- (void)yUMIInterlocutionSpeakCorridoroIntelligencerRegard:(YUMIInterlocutionSpeakHalloIntelligencerRegard *)view didClickBack:(UIButton *)sender { + [self.navigationController popViewControllerAnimated:YES]; +} + +- (void)YUMIInterlocutionSpeakHalloIntelligencerRegard:(YUMIInterlocutionSpeakHalloIntelligencerRegard *)view didChangeValue:(UISwitch *)switchView { + [self.presimport shuntEnable:switchView.on]; + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEvent_user_greetings_switch_click eventAttributes:@{@"enable":@(switchView.on)}]; +} + +#pragma mark - FBCInterlocutionSayHelloCeremony +- (void)shuntEnableScucess:(BOOL)enable { + self.prototypeAbstract.enable = enable; + self.intelligenceerRegard.prototypeAbstract = self.prototypeAbstract; +} + +- (void)shuntSttowardsementFlunkDeclare:(NSInteger)state { + if (state == 0) { + [self.tableView.mj_header endRefreshing]; + } else { + [self.tableView.mj_footer endRefreshing]; + } +} + +- (void)shuntSttowardsementScuccess:(NSArray *)list state:(NSInteger)state { + if (state == 0) { + [self.datasource removeAllObjects]; + [self.tableView.mj_header endRefreshing]; + } else { + [self.tableView.mj_footer endRefreshing]; + } + + if (list.count > 0) { + [self.datasource addObjectsFromArray:list]; + } + [self.tableView reloadData]; +} + +- (void)shuntProttypeAbstractAccomplishment:(InterlocutionSpeakHalloPrototypeMatrix *)prototypeAbstract { + self.prototypeAbstract = prototypeAbstract; + self.intelligenceerRegard.prototypeAbstract = self.prototypeAbstract; +} + +#pragma mark - UITableViewDelegate And UITableViewDataSource +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.datasource.count > 0 ? self.datasource.count : 1; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + return self.datasource.count > 0 ? 130 : KScreenHeight - kSafeAreaTopHeight -230; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + if (self.datasource.count > 0) { + YUMIInterlocutionSpeakHalloTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIInterlocutionSpeakHalloTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIInterlocutionSpeakHalloTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIInterlocutionSpeakHalloTabulationRegardElement class])]; + } + InterlocutionSpeakHalloStatementMatrix * model = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + cell.shuntAbstract = model; + cell.delegate = self; + return cell; + } else { + YUMIInterlocutionSpeakHalloDispossessTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIInterlocutionSpeakHalloDispossessTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIInterlocutionSpeakHalloDispossessTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIInterlocutionSpeakHalloDispossessTabulationRegardElement class])]; + } + return cell; + } +} + +#pragma mark - FBCInterlocutionSayHelloTabulationViweElementRepresendtation +- (void)yUMIInterlocutionSpeakCorridoroTarbsultowardsionViweElement:(YUMIInterlocutionSpeakHalloTabulationRegardElement *)view didClickChat:(InterlocutionSpeakHalloStatementMatrix *)info { + if (info.uid > 0) { + NSString * toUid = [NSString stringWithFormat:@"%ld", info.uid]; + [self.presimport shuntTicktackChinwag:toUid]; + NIMSession * session = [NIMSession session:toUid type:NIMSessionTypeP2P]; + if (info.content.length > 0) { + NIMMessage * message = [NEMCCommunicationMaker communAboutEssay:info.content]; + [[NIMSDK sharedSDK].chatManager sendMessage:message toSession:session error:nil]; + } + + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEvent_user_greetings_chat_click eventAttributes:@{@"uid": toUid}]; + InterlocutionRegardGovernancer * sessionVC = [[InterlocutionRegardGovernancer alloc] initWithSession:session]; + [self.navigationController pushViewController:sessionVC animated:YES]; + }); + } +} + +#pragma mark - Getters And Setters +- (UIImageView *)encourageIndicateRegard { + if (!_encourageIndicateRegard) { + _encourageIndicateRegard = [[UIImageView alloc] init]; + _encourageIndicateRegard.userInteractionEnabled = YES; + _encourageIndicateRegard.image = [UIImage imageNamed:@"yumi_term_say_hello_list_background"]; + } + return _encourageIndicateRegard; +} + +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.tableFooterView = [UIView new]; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.backgroundColor = [UIColor clearColor]; + if (@available(iOS 11.0, *)) { + _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + [_tableView setContentInset:UIEdgeInsetsMake(0, 0, 0, 0)]; + [_tableView registerClass:[YUMIInterlocutionSpeakHalloTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIInterlocutionSpeakHalloTabulationRegardElement class])]; + [_tableView registerClass:[YUMIInterlocutionSpeakHalloDispossessTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIInterlocutionSpeakHalloDispossessTabulationRegardElement class])]; + } + return _tableView; +} + +- (UIView *)encourageRegard { + if (!_encourageRegard) { + _encourageRegard = [[UIView alloc] init]; + _encourageRegard.backgroundColor = [UIColor whiteColor]; + CAShapeLayer * layer = [CAShapeLayer layer]; + layer.path = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, KScreenWidth, KScreenHeight - 230 - kSafeAreaTopHeight) byRoundingCorners:UIRectCornerTopLeft | UIRectCornerTopRight cornerRadii:CGSizeMake(16, 16)].CGPath; + _encourageRegard.layer.mask = layer; + } + return _encourageRegard; +} + +- (YUMIInterlocutionSpeakHalloIntelligencerRegard *)intelligenceerRegard { + if (!_intelligenceerRegard) { + _intelligenceerRegard = [[YUMIInterlocutionSpeakHalloIntelligencerRegard alloc] init]; + _intelligenceerRegard.delegate = self; + } + return _intelligenceerRegard; +} + +- (NSMutableArray *)datasource { + if (!_datasource) { + _datasource = [NSMutableArray array]; + } + return _datasource; +} + +@end diff --git a/YuMi/Modules/YMMessage/View/Session/Cell/CommunicationElement.h b/YuMi/Modules/YMMessage/View/Session/Cell/CommunicationElement.h new file mode 100644 index 00000000..deabe28c --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Cell/CommunicationElement.h @@ -0,0 +1,31 @@ +// +// CommunicationElement.h +// YUMI +// +// Created by zu on 2021/11/28. +// + +#import +#import +#import "CommunicationBaseMatrix.h" +NS_ASSUME_NONNULL_BEGIN + +@protocol CommunicationElementRepresendtation + +- (void)refurbishCommunictowardsionAccomplishment:(NIMMessage *)message; + +- (void)didBetowardsIntelligenceportrait:(NSString *)uid; +- (void)didFlunkRetry:(NIMMessage *)message; +- (void)revokeCommunictowardsionAccomplishment:(NIMMessage *)message; +- (void)representtowardsionCommunictowardsionAccomplishment:(NIMMessage *)message; +@end + +@interface CommunicationElement : UITableViewCell + +- (void)rconcludeerAboutCommunictowardsion:(CommunicationBaseMatrix *)message; +@property (nonatomic,weak) id delegate; + +@property (nonatomic,assign) BOOL isInRoom; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/Session/Cell/CommunicationElement.m b/YuMi/Modules/YMMessage/View/Session/Cell/CommunicationElement.m new file mode 100644 index 00000000..c7e4ce51 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Cell/CommunicationElement.m @@ -0,0 +1,364 @@ +// +// CommunicationElement.m +// YUMI +// +// Created by zu on 2021/11/28. +// + +#import "CommunicationElement.h" +#import "CommunicationContentCeremony.h" +#import "CommunicationSatisfactionEssay.h" +#import "CommunicationSatisfactionIndicate.h" +#import "CommunicationSatisfactionEssayClickable.h" +#import "CommunicationSatisfactionCustomRegard.h" +#import "CommunicationSatisfactionPresentRegard.h" +#import "CommunicationSatisfactionUnionRegard.h" +#import "CommunicationSatisfactionUnSupportRegard.h" +#import "CommunicationSatisfactionUnfoildEnergeticRegard.h" +#import "CommunicationSatisfactionApplicationParaticipationRegard.h" +#import "CommunicationSatisfactionPrototypeAscensionRegard.h" +#import "CommunicationConentVocalmusicRegard.h" +#import "CommunicationSatisfactionTweetRegard.h" +#import "CommunicationSatisfactionCommunicationSolitaireRegard.h" +#import "CommunicationSatisfactionDiscoveryStrangeBewelcometoRegard.h" +#import "CommunicationSatisfactionVenturePrecautiousRegard.h" +#import "CommunicationSatisfactionSeparationsRegard.h" +#import "CommunicationSatisfactionSeparationsAutoRegard.h" +#import "CommunicationSatisfactionDeficitSheatheRegard.h" +#import "CommunicationIntratemporalRegard.h" +#import "StatsticsticsServingFacilitater.h" + +#import "AttachmentMatrix.h" +#import "NetIndicateRegard.h" +#import "DJDKMIMOMColor.h" +#import "PLIntratemporalUtil.h" + +#import "YUMIMacroUitls.h" +#import + +@interface CommunicationElement() + +@property (nonatomic, assign) NIMMessageType messageType; + + +@property (nonatomic, strong) NetIndicateRegard * contraryIntelligenceportrait; + + +@property (nonatomic, strong) NetIndicateRegard * rectifyIntelligenceportrait; +@property (nonatomic,strong) UIButton *failBtuton; + + +@property (nonatomic, strong) UIView * communicationEncourageground; +@property (nonatomic, strong) MASConstraint * communicationEncouragegroundContrary; +@property (nonatomic, strong) MASConstraint * communicationEncouragegroundRectify; + +@property (nonatomic, strong) UIView * communicationSatisfperformance; +@property (nonatomic,strong) NIMMessage *currentMessage; +@property (nonatomic,strong) CommunicationBaseMatrix *universalMatrix; +@end + +@implementation CommunicationElement + + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; + if (self) { + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self initRegards]; + [self initLayout]; + } + return self; +} + +- (void)initRegards { + self.backgroundColor = UIColor.clearColor; + [self.contentView addSubview:self.contraryIntelligenceportrait]; + [self.contentView addSubview:self.rectifyIntelligenceportrait]; + [self.contentView addSubview:self.communicationEncourageground]; + [self.contentView addSubview:self.failBtuton]; + + + + UILongPressGestureRecognizer *longPressGesture = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longPressElementShank:)]; + longPressGesture.minimumPressDuration = 0.5; + [self.communicationEncourageground addGestureRecognizer:longPressGesture]; +} + +- (void)initLayout { + [self.contraryIntelligenceportrait mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.top.mas_equalTo(self).offset(15); + make.width.height.mas_equalTo(45); + }]; + + [self.rectifyIntelligenceportrait mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self).offset(15); + make.right.mas_equalTo(self).offset(-15); + make.width.height.mas_equalTo(45); + }]; + + [self.communicationEncourageground mas_makeConstraints:^(MASConstraintMaker *make) { + self.communicationEncouragegroundContrary = make.left.mas_equalTo(self.contraryIntelligenceportrait.mas_right).offset(15); + self.communicationEncouragegroundRectify = make.right.mas_equalTo(self.rectifyIntelligenceportrait.mas_left).offset(-15); + make.top.mas_equalTo(self).offset(20); + }]; + + [self.failBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(20, 20)); + make.centerY.mas_equalTo(self.communicationEncourageground); + make.left.mas_equalTo(self.communicationEncourageground.mas_right).offset(10); + }]; +} + + +-(void)longPressElementShank:(UILongPressGestureRecognizer *)gesture { + if (!self.currentMessage) { + return; + } + if(gesture.state==UIGestureRecognizerStateBegan) { + [self becomeFirstResponder]; + + UIMenuController *menuController = [UIMenuController sharedMenuController]; + + UIMenuItem *copyItem = [[UIMenuItem alloc] initWithTitle:YMLocalizedString(@"Message_Cell_0") action:@selector(parrotCopyBtutonPressed:)]; + UIMenuItem *deleteItem = [[UIMenuItem alloc] initWithTitle:YMLocalizedString(@"Message_Cell_1") action:@selector(parrotRepresenttowardsionCopyBtutonPressed:)]; + UIMenuItem *revokeItem = [[UIMenuItem alloc] initWithTitle:YMLocalizedString(@"Message_Cell_2") action:@selector(parrotRevokeBtutonPressed:)]; + NSMutableArray * array = [NSMutableArray array]; + if ((self.currentMessage.messageType == NIMMessageTypeText) && !self.universalMatrix.isHiddenAvatar) { + [array addObject:copyItem]; + } + + if (!self.universalMatrix.isHiddenAvatar) { + [array addObject:deleteItem]; + } + + if (self.currentMessage.isOutgoingMsg && [self examineTowardsoloudspeakerAbout:self.currentMessage.timestamp] && (self.currentMessage.messageType == NIMMessageTypeText || self.currentMessage.messageType == NIMMessageTypeImage || self.currentMessage.messageType == NIMMessageTypeAudio)){ + [array addObject:revokeItem]; + } + menuController.menuItems = array; + + [menuController setTargetRect:gesture.view.frame inView:gesture.view.superview]; + + [menuController setMenuVisible:YES animated:YES]; + + [UIMenuController sharedMenuController].menuItems=nil; + } +} + +- (BOOL)examineTowardsoloudspeakerAbout:(long)currentStr { + NSDate* date = [NSDate dateWithTimeIntervalSince1970:currentStr]; + NSCalendar * calendar = [NSCalendar currentCalendar]; + NSCalendarUnit unit =NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay | NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond; + NSDateComponents * cmps = [calendar components:unit fromDate:date toDate:[NSDate date] options:0]; + if (cmps.minute <= 2) { + return YES; + } + return NO; +} + +-(void)parrotCopyBtutonPressed:(UIMenuItem *)menuItem { + [UIPasteboard generalPasteboard].string = self.currentMessage.text; + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEvent_chat_dialogue_copy_click]; +} + +- (void)parrotRepresenttowardsionCopyBtutonPressed:(UIMenuItem *)menuItem { + NIMDeleteMessageOption * opt = [[NIMDeleteMessageOption alloc] init]; + opt.removeFromDB = YES; + [[NIMSDK sharedSDK].conversationManager deleteMessage:self.currentMessage option:opt]; + if (self.delegate && [self.delegate respondsToSelector:@selector(representtowardsionCommunictowardsionAccomplishment:)]) { + [self.delegate representtowardsionCommunictowardsionAccomplishment:self.currentMessage]; + } + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEvent_chat_dialogue_delete_click]; +} + +- (void)parrotRevokeBtutonPressed:(UIMenuItem *)menuItem { + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEvent_chat_dialogue_revocation_click]; + if (self.currentMessage) { + NIMRevokeMessageOption * option = [[NIMRevokeMessageOption alloc] init]; + option.shouldBeCounted = NO; + [[NIMSDK sharedSDK].chatManager revokeMessage:self.currentMessage option:option completion:^(NSError * _Nullable error) { + if (error == nil) { + if (self.delegate && [self.delegate respondsToSelector:@selector(revokeCommunictowardsionAccomplishment:)]) { + [self.delegate revokeCommunictowardsionAccomplishment:self.currentMessage]; + } + } + }]; + } +} + +-(BOOL)canBecomeFirstResponder { + return YES; +} + +-(BOOL)canPerformAction:(SEL)action withSender:(id)sender { + if (action == @selector(parrotCopyBtutonPressed:) || action == @selector(parrotRepresenttowardsionCopyBtutonPressed:) || action == @selector(parrotRevokeBtutonPressed:)) { + return YES; + } + return NO; +} + +- (void)rconcludeerAboutCommunictowardsion:(CommunicationBaseMatrix *)model { + NIMMessage * message = model.message; + self.universalMatrix = model; + self.currentMessage = message; + NSString * avatarUrl = [[NIMSDK sharedSDK].userManager userInfo:message.from].userInfo.avatarUrl; + avatarUrl = [avatarUrl stringByReplacingOccurrencesOfString:@"https" withString:@"http"]; + BOOL isSelf = [[NIMSDK sharedSDK].loginManager.currentAccount isEqualToString:message.from]; + if (isSelf) { + self.contraryIntelligenceportrait.hidden = YES; + self.rectifyIntelligenceportrait.hidden = NO; + [self.communicationEncouragegroundContrary uninstall]; + [self.communicationEncouragegroundRectify install]; + self.rectifyIntelligenceportrait.imageUrl = avatarUrl; + } else { + self.contraryIntelligenceportrait.hidden = NO; + self.rectifyIntelligenceportrait.hidden = YES; + [self.communicationEncouragegroundContrary install]; + [self.communicationEncouragegroundRectify uninstall]; + self.contraryIntelligenceportrait.imageUrl = avatarUrl; + } + + [self shankCommunictowardsionFlunk:model]; + if (self.communicationSatisfperformance) { + [self.communicationSatisfperformance removeFromSuperview]; + } + + NSString * classStr = [model cellStowardsisfperformance:model]; + if (classStr) { + if (![self.communicationSatisfperformance isKindOfClass:NSClassFromString(classStr)]) { + self.communicationSatisfperformance = [[NSClassFromString(classStr) alloc] init]; + } + } else { + NSAssert(classStr != nil, @"message should not be nil"); + } + [self.communicationEncourageground addSubview:self.communicationSatisfperformance]; + [self.communicationSatisfperformance mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.top.right.bottom.mas_equalTo(self.communicationEncourageground); + }]; + + if (model.isHiddenAvatar) { + self.contraryIntelligenceportrait.hidden= YES; + self.rectifyIntelligenceportrait.hidden = YES; + [self.communicationEncourageground mas_remakeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.contentView); + make.top.mas_equalTo(self.contentView).offset(0); + make.height.mas_equalTo(model.height); + }]; + } + [self.communicationSatisfperformance render:model]; +} + +- (void)shankCommunictowardsionFlunk:(CommunicationBaseMatrix *)model { + NIMMessage * message = model.message; + BOOL isHiddenFail = YES; + if (!message.isReceivedMsg) { + isHiddenFail = message.deliveryState != NIMMessageDeliveryStateFailed; + if (message.localExt) { + NSDictionary * dic = message.localExt; + if (((NSString *)dic[@"suggestion"]).integerValue == 2) { + isHiddenFail = NO; + } + } + } else { + isHiddenFail = message.attachmentDownloadState != NIMMessageAttachmentDownloadStateFailed; + } + self.failBtuton.hidden = isHiddenFail || model.isHiddenAvatar; + if (!isHiddenFail) { + if (message.isReceivedMsg) { + [self.failBtuton mas_remakeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(20, 20)); + make.centerY.mas_equalTo(self.communicationEncourageground); + make.left.mas_equalTo(self.communicationEncourageground.mas_right).offset(10); + }]; + } else { + [self.failBtuton mas_remakeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(20, 20)); + make.centerY.mas_equalTo(self.communicationEncourageground); + make.right.mas_equalTo(self.communicationEncourageground.mas_left).offset(-10); + }]; + } + } +} +#pragma mark - CommunicationContentCustomRegardRepresendtation +- (void)refurbishCommunictowardsionAccomplishment:(NIMMessage *)message { + if (self.delegate && [self.delegate respondsToSelector:@selector(refurbishCommunictowardsionAccomplishment:)]) { + [self.delegate refurbishCommunictowardsionAccomplishment:message]; + } +} + +#pragma mark - Event Response +- (void)rectifyIntelligenceportraitBetowardsRecognition { + if (self.delegate && [self.delegate respondsToSelector:@selector(didBetowardsIntelligenceportrait:)]) { + [self.delegate didBetowardsIntelligenceportrait:self.currentMessage.from]; + } +} + +- (void)leftIntelligenceportraitBetowardsRecognition { + if (self.delegate && [self.delegate respondsToSelector:@selector(didBetowardsIntelligenceportrait:)]) { + [self.delegate didBetowardsIntelligenceportrait:self.currentMessage.from]; + } +} + +- (void)flunkBtutonPerformance:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(didFlunkRetry:)]) { + [self.delegate didFlunkRetry:self.currentMessage]; + } +} + +#pragma mark - Getters And Setters +- (NetIndicateRegard *)contraryIntelligenceportrait { + if (!_contraryIntelligenceportrait) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc] init]; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + config.radius = MAXFLOAT; + config.imageType = ImageGenreUserIcon; + _contraryIntelligenceportrait = [[NetIndicateRegard alloc] initWithConfig:config]; + _contraryIntelligenceportrait.layer.masksToBounds = YES; + _contraryIntelligenceportrait.layer.cornerRadius = 45.f / 2; + _contraryIntelligenceportrait.hidden = YES; + _contraryIntelligenceportrait.userInteractionEnabled = YES; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(leftIntelligenceportraitBetowardsRecognition)]; + [_contraryIntelligenceportrait addGestureRecognizer:tap]; + } + return _contraryIntelligenceportrait; +} + +- (NetIndicateRegard *)rectifyIntelligenceportrait { + if (!_rectifyIntelligenceportrait) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc] init]; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + config.radius = MAXFLOAT; + config.imageType = ImageGenreUserIcon; + _rectifyIntelligenceportrait = [[NetIndicateRegard alloc] initWithConfig:config]; + _rectifyIntelligenceportrait.layer.masksToBounds = YES; + _rectifyIntelligenceportrait.layer.cornerRadius = 45.f / 2; + _rectifyIntelligenceportrait.hidden = YES; + _rectifyIntelligenceportrait.userInteractionEnabled = YES; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(rectifyIntelligenceportraitBetowardsRecognition)]; + [_rectifyIntelligenceportrait addGestureRecognizer:tap]; + } + return _rectifyIntelligenceportrait; +} + +- (UIView *)communicationEncourageground { + if (!_communicationEncourageground) { + _communicationEncourageground = [[UIView alloc]init]; + _communicationEncourageground.backgroundColor = [DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify]; + _communicationEncourageground.layer.masksToBounds = YES; + _communicationEncourageground.layer.cornerRadius = 8.f; + } + return _communicationEncourageground; +} + +- (UIButton *)failBtuton { + if (!_failBtuton) { + _failBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_failBtuton setImage:[UIImage imageNamed:@"yumi_msg_term_download_fail"] forState:UIControlStateNormal]; + [_failBtuton setImage:[UIImage imageNamed:@"yumi_msg_term_download_fail"] forState:UIControlStateSelected]; + [_failBtuton addTarget:self action:@selector(flunkBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + _failBtuton.hidden = YES; + } + return _failBtuton; +} + + +@end diff --git a/YuMi/Modules/YMMessage/View/Session/Cell/InterlocutionConsumerAbstractTabulationRegardElement.h b/YuMi/Modules/YMMessage/View/Session/Cell/InterlocutionConsumerAbstractTabulationRegardElement.h new file mode 100644 index 00000000..f4bc3de7 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Cell/InterlocutionConsumerAbstractTabulationRegardElement.h @@ -0,0 +1,23 @@ +// +// InterlocutionConsumerAbstractTabulationRegardElement.h +// YUMI +// +// Created by YUMI on 2023/1/16. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class ConsumerAbstractMatrix, InterlocutionConsumerAbstractTabulationRegardElement; +@protocol InterlocutionConsumerAbstractTabulationViweElementRepresendtation + +- (void)interlocutionConsumerAbstractTarbsultowardsionViweElement:(InterlocutionConsumerAbstractTabulationRegardElement *)view showUserInfoVC:(ConsumerAbstractMatrix *)userInfo; + +@end + +@interface InterlocutionConsumerAbstractTabulationRegardElement : UITableViewCell +@property (nonatomic,strong) ConsumerAbstractMatrix *userInfo; +@property (nonatomic,weak) id delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/Session/Cell/InterlocutionConsumerAbstractTabulationRegardElement.m b/YuMi/Modules/YMMessage/View/Session/Cell/InterlocutionConsumerAbstractTabulationRegardElement.m new file mode 100644 index 00000000..aa2a81e7 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Cell/InterlocutionConsumerAbstractTabulationRegardElement.m @@ -0,0 +1,439 @@ +// +// InterlocutionConsumerAbstractTabulationRegardElement.m +// YUMI +// +// Created by YUMI on 2023/1/16. +// + +#import "InterlocutionConsumerAbstractTabulationRegardElement.h" +#import +#import +#import "DJDKMIMOMColor.h" +#import "NetIndicateRegard.h" +#import "SpriteSheetIndicateExecutive.h" +#import "YUMIMacroUitls.h" +#import "NSArray+Safe.h" +#import "UIImage+Utils.h" +#import "PLIntratemporalUtil.h" +#import "SDAppearanceBrowser.h" +#import "XCCurrentVCStackExecutive.h" +#import "StatsticsticsServingFacilitater.h" +#import "ConsumerAbstractMatrix.h" +#import "ConsumerAppearance.h" +@interface InterlocutionConsumerAbstractElement : UICollectionViewCell +@property (nonatomic,strong) NetIndicateRegard *intelligenceportraitIndicateRegard; + +@end + +@implementation InterlocutionConsumerAbstractElement + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor]; + [self.contentView addSubview:self.intelligenceportraitIndicateRegard]; +} + +- (void)initChildLyRestrictions { + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.equalTo(self.contentView); + }]; +} + +#pragma mark - Getters And Setters +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _intelligenceportraitIndicateRegard.layer.cornerRadius = 8; + _intelligenceportraitIndicateRegard.contentMode = UIViewContentModeScaleAspectFill; + } + return _intelligenceportraitIndicateRegard; +} + +@end + +@interface InterlocutionConsumerAbstractTabulationRegardElement () +@property (nonatomic,strong) UIView *encourageRegard; +@property (nonatomic,strong) UIStackView *stackView; +@property (nonatomic,strong) UIView *consumerRegard; +@property (nonatomic,strong) NetIndicateRegard * intelligenceportraitIndicateRegard; +@property (nonatomic,strong) NetIndicateRegard *magnificentIndicateRegard; +@property (nonatomic,strong) YYAnimatedImageView *intelligencePenetrateIndicateRegard; +@property (nonatomic, strong) SpriteSheetIndicateExecutive *manager; +@property (nonatomic,strong) UILabel *monicerSequencignation; +@property (nonatomic,strong) UIStackView *coupleHierarchyRegard; +@property (nonatomic,strong) UIButton *seaxualityBtuton; +@property (nonatomic,strong) UIButton *constellationBtuton; +@property (nonatomic,strong) UILabel *signSequencignation; +@property (nonatomic,strong) UICollectionView *collectionView; +@end + + +@implementation InterlocutionConsumerAbstractTabulationRegardElement + + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor]; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.encourageRegard]; + [self.contentView addSubview:self.stackView]; + + [self.stackView addArrangedSubview:self.consumerRegard]; + [self.stackView addArrangedSubview:self.collectionView]; + + [self.consumerRegard addSubview:self.intelligenceportraitIndicateRegard]; + [self.consumerRegard addSubview:self.intelligencePenetrateIndicateRegard]; + + [self.consumerRegard addSubview:self.coupleHierarchyRegard]; + [self.consumerRegard addSubview:self.signSequencignation]; + + [self.coupleHierarchyRegard addArrangedSubview:self.magnificentIndicateRegard]; + [self.coupleHierarchyRegard addArrangedSubview:self.monicerSequencignation]; + [self.coupleHierarchyRegard addArrangedSubview:self.seaxualityBtuton]; + [self.coupleHierarchyRegard addArrangedSubview:self.constellationBtuton]; +} + +- (void)initChildLyRestrictions { + [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.contentView).inset(15); + make.top.mas_equalTo(self.contentView).offset(10); + }]; + + [self.encourageRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.contentView).inset(15); + make.bottom.mas_equalTo(self.stackView.mas_bottom).offset(16); + make.top.mas_equalTo(self.contentView).offset(10); + }]; + + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(56, 56)); + make.left.mas_equalTo(self.consumerRegard).offset(22); + make.top.mas_equalTo(self.encourageRegard).offset(22); + }]; + + [self.intelligencePenetrateIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.centerY.mas_equalTo(self.intelligenceportraitIndicateRegard); + make.width.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_width).multipliedBy(1.31); + make.height.mas_equalTo(self.intelligencePenetrateIndicateRegard.mas_width); + }]; + + [self.coupleHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.intelligencePenetrateIndicateRegard.mas_right).offset(12); + make.bottom.mas_equalTo(self.intelligencePenetrateIndicateRegard.mas_centerY).offset(-3); + }]; + + [self.magnificentIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.mas_equalTo(20); + }]; + + [self.seaxualityBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(32, 14)); + }]; + + [self.constellationBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(40, 14)); + }]; + + [self.signSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.monicerSequencignation); + make.right.mas_lessThanOrEqualTo(self.consumerRegard).offset(-5); + make.top.mas_equalTo(self.intelligencePenetrateIndicateRegard.mas_centerY).offset(3); + }]; + + [self.consumerRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(76); + }]; + + [self.collectionView mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(72); + }]; +} + +-(NSInteger) acquireDiana:(long )time +{ + NSDate *date = [NSDate dateWithTimeIntervalSince1970:time/1000]; + NSCalendar* calendar = [NSCalendar currentCalendar]; + NSDateComponents* components = [calendar components:NSCalendarUnitMonth fromDate:date]; + NSInteger month = components.month; + return month; +} + +- (NSInteger) acquireSeason:(long) time +{ + NSDate *date = [NSDate dateWithTimeIntervalSince1970:time/1000]; + NSCalendar* calendar = [NSCalendar currentCalendar]; + NSDateComponents* components = [calendar components:NSCalendarUnitDay fromDate:date]; + NSInteger day = components.day; + return day; +} + +- (NSString *)calcultowardseConstelltowardsionAboutDiana:(long)time { + NSString *astroString = YMLocalizedString(@"Session_User_Info_Table_View_Cell_0"); + NSString *astroFormat = @"102123444543"; + NSString *result; + + NSInteger month = [self acquireDiana:time]; + NSInteger day = [self acquireSeason:time]; + + if (month<1 || month>12 || day<1 || day>31){ + return @"错误日期格式!"; + } + + if(month==2 && day>29) + { + return @"错误日期格式!!"; + }else if(month==4 || month==6 || month==9 || month==11) { + if (day>30) { + return @"错误日期格式!!!"; + } + } + + result=[NSString stringWithFormat:@"%@",[astroString substringWithRange:NSMakeRange(month*2-(day < [[astroFormat substringWithRange:NSMakeRange((month-1), 1)] intValue] - (-19))*2,2)]]; + + return [NSString stringWithFormat:YMLocalizedString(@"Session_User_Info_Table_View_Cell_4"),result]; +} + +#pragma mark - UICollectionViewDelegate And UICollectionViewDataSource +- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { + return self.userInfo.privatePhoto.count; +} + +- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { + InterlocutionConsumerAbstractElement * cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([InterlocutionConsumerAbstractElement class]) forIndexPath:indexPath]; + ConsumerAppearance * appearance = [self.userInfo.privatePhoto secureGroalTowardsIndictowardsrix1:indexPath.row]; + cell.intelligenceportraitIndicateRegard.imageUrl = appearance.photoUrl; + return cell; +} + +- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath { + [collectionView deselectItemAtIndexPath:indexPath animated:YES]; + if (self.userInfo.privatePhoto.count > 0) { + InterlocutionConsumerAbstractElement * cell = (InterlocutionConsumerAbstractElement *)[collectionView cellForItemAtIndexPath:indexPath]; + SDAppearanceBrowser *browser = [[SDAppearanceBrowser alloc]init]; + browser.sourceIndicatesAccommoengagementdRegard = cell; + browser.delegate = self; + browser.indicateComputation = self.userInfo.privatePhoto.count; + browser.universalIndicateIndicatrix = indexPath.row; + browser.isMe = NO; + [browser show]; + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEvent_chat_toolbar_appearance_click]; + } +} + +#pragma mark - SDPhotoBrowserRepresendtation +- (NSURL *)aplictowardsionearanceBrowser:(SDAppearanceBrowser *)browser highQualityIndictowardseWEEBSITEInthecaseofIndictowardsrix:(NSInteger)index { + ConsumerAppearance * appearance = [self.userInfo.privatePhoto secureGroalTowardsIndictowardsrix1:index]; + return [NSURL URLWithString:appearance.photoUrl]; +} + +- (UIImage *)aplictowardsionearanceBrowser:(SDAppearanceBrowser *)browser placeholderIndictowardseInthecaseofIndictowardsrix:(NSInteger)index { + return [UIIndicateConstant defalutOriflammeDepapossessor]; +} + +#pragma mark - Event Response +- (void)intelligenceportraitIndictowardseRegardRecognition { + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEvent_chat_frame_datacard_head_click]; + if (self.delegate && [self.delegate respondsToSelector:@selector(interlocutionConsumerAbstractTarbsultowardsionViweElement:showUserInfoVC:)]) { + [self.delegate interlocutionConsumerAbstractTarbsultowardsionViweElement:self showUserInfoVC:self.userInfo]; + } +} + +#pragma mark - Getters And Setters +- (void)setUserInfo:(ConsumerAbstractMatrix *)userInfo { + _userInfo = userInfo; + if (_userInfo) { + self.intelligenceportraitIndicateRegard.imageUrl = _userInfo.avatar; + NSString * nick = _userInfo.nick; + if (nick.length > 10) { + nick = [nick substringToIndex:10]; + nick = [NSString stringWithFormat:@"%@...", nick]; + } + self.monicerSequencignation.text = nick; + self.signSequencignation.text = _userInfo.userDesc.length > 0 ? _userInfo.userDesc : YMLocalizedString(@"Session_User_Info_Table_View_Cell_5"); + self.magnificentIndicateRegard.imageUrl = _userInfo.userVipInfoVO.vipIcon; + self.magnificentIndicateRegard.hidden = _userInfo.userVipInfoVO.vipIcon.length > 0 ? NO : YES; + NSString * headurl = userInfo.headwearEffect.length > 0 ? userInfo.headwearEffect : userInfo.headwearPic; + if (headurl.length >0) { + self.intelligencePenetrateIndicateRegard.hidden = NO; + NSURL *url = [NSURL URLWithString:headurl]; + @kWeakify(self); + [self.manager chamberSpriteSheetIndictowardseAboutWEEBSITE:url completionBlock:^(YYSpriteSheetImage * _Nullable sprit) { + @kStrongify(self); + self.intelligencePenetrateIndicateRegard.image = sprit; + } failureBlock:^(NSError * _Nullable error) { + }]; + } else { + self.intelligencePenetrateIndicateRegard.hidden = YES; + } + self.collectionView.hidden = _userInfo.privatePhoto.count <= 0; + if (_userInfo.gender == GenderGenre_Male) { + [self.seaxualityBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor colorAboutHexBWSttr:@"#45BBFF"], [DJDKMIMOMColor colorAboutHexBWSttr:@"#8AD4FF"]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + [self.seaxualityBtuton setImage:[UIImage imageNamed:@"yumi_term_user_sex_male"] forState:UIControlStateNormal]; + } else { + [self.seaxualityBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor colorAboutHexBWSttr:@"#FF497D"], [DJDKMIMOMColor colorAboutHexBWSttr:@"#FF90AE"]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + [self.seaxualityBtuton setImage:[UIImage imageNamed:@"yumi_term_user_sex_female"] forState:UIControlStateNormal]; + } + [self.seaxualityBtuton setTitle:[NSString stringWithFormat:@"%ld", [PLIntratemporalUtil ageAboutEngagementByvirtueofBirth:_userInfo.birth]] forState:UIControlStateNormal]; + [self.constellationBtuton setTitle:[self calcultowardseConstelltowardsionAboutDiana:_userInfo.birth] forState:UIControlStateNormal]; + [self.collectionView reloadData]; + } +} + +- (UIView *)encourageRegard { + if (!_encourageRegard) { + _encourageRegard = [[UIView alloc] init]; + _encourageRegard.backgroundColor = [UIColor whiteColor]; + _encourageRegard.layer.masksToBounds = YES; + _encourageRegard.layer.cornerRadius = 8; + } + return _encourageRegard; +} + +- (UIStackView *)stackView { + if (!_stackView) { + _stackView = [[UIStackView alloc] init]; + _stackView.axis = UILayoutConstraintAxisVertical; + _stackView.distribution = UIStackViewDistributionFill; + _stackView.alignment = UIStackViewAlignmentFill; + _stackView.spacing = 12; + } + return _stackView; +} + +- (UIView *)consumerRegard { + if (!_consumerRegard) { + _consumerRegard = [[UIView alloc] init]; + _consumerRegard.backgroundColor = [UIColor clearColor]; + } + return _consumerRegard; +} + +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceportraitIndicateRegard.userInteractionEnabled = YES; + _intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _intelligenceportraitIndicateRegard.layer.cornerRadius = 56 / 2; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(intelligenceportraitIndictowardseRegardRecognition)]; + [_intelligenceportraitIndicateRegard addGestureRecognizer:tap]; + } + return _intelligenceportraitIndicateRegard; +} + + +- (UIStackView *)coupleHierarchyRegard { + if (!_coupleHierarchyRegard) { + _coupleHierarchyRegard = [[UIStackView alloc] init]; + _coupleHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _coupleHierarchyRegard.distribution = UIStackViewDistributionFill; + _coupleHierarchyRegard.alignment = UIStackViewAlignmentCenter; + _coupleHierarchyRegard.spacing = 3; + } + return _coupleHierarchyRegard; +} + +- (YYAnimatedImageView *)intelligencePenetrateIndicateRegard { + if (!_intelligencePenetrateIndicateRegard) { + _intelligencePenetrateIndicateRegard = [[YYAnimatedImageView alloc] init]; + _intelligencePenetrateIndicateRegard.backgroundColor = [UIColor clearColor]; + _intelligencePenetrateIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _intelligencePenetrateIndicateRegard; +} + +- (SpriteSheetIndicateExecutive *)manager { + if (!_manager) { + _manager = [[SpriteSheetIndicateExecutive alloc] init]; + } + return _manager; +} + +- (UILabel *)monicerSequencignation { + if (!_monicerSequencignation) { + _monicerSequencignation = [[UILabel alloc] init]; + _monicerSequencignation.font = [UIFont systemFontOfSize:16 weight:UIFontWeightBold]; + _monicerSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _monicerSequencignation; +} + +- (NetIndicateRegard *)magnificentIndicateRegard { + if (!_magnificentIndicateRegard) { + _magnificentIndicateRegard = [[NetIndicateRegard alloc] init]; + } + return _magnificentIndicateRegard; +} + +- (UILabel *)signSequencignation { + if (!_signSequencignation) { + _signSequencignation = [[UILabel alloc] init]; + _signSequencignation.font = [UIFont systemFontOfSize:12]; + _signSequencignation.textColor = [DJDKMIMOMColor essayTertiusPrettify]; + } + return _signSequencignation; +} + +- (UICollectionView *)collectionView{ + if (!_collectionView) { + UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init]; + layout.sectionInset = UIEdgeInsetsMake(00, 15, 0, 0); + layout.itemSize = CGSizeMake(72, 72); + layout.scrollDirection = UICollectionViewScrollDirectionHorizontal; + layout.minimumLineSpacing = 8; + _collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout]; + _collectionView.dataSource = self; + _collectionView.delegate = self; + _collectionView.backgroundColor = [UIColor clearColor]; + [_collectionView registerClass:[InterlocutionConsumerAbstractElement class] forCellWithReuseIdentifier:NSStringFromClass([InterlocutionConsumerAbstractElement class])]; + } + return _collectionView; +} + +- (UIButton *)seaxualityBtuton { + if (!_seaxualityBtuton) { + _seaxualityBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_seaxualityBtuton setTitle:@"0" forState:UIControlStateNormal]; + [_seaxualityBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + _seaxualityBtuton.titleLabel.font = [UIFont systemFontOfSize:10]; + [_seaxualityBtuton setTitleEdgeInsets:UIEdgeInsetsMake(0, 3, 0, 0)]; + _seaxualityBtuton.layer.masksToBounds = YES; + _seaxualityBtuton.layer.cornerRadius = 7; + } + return _seaxualityBtuton; +} + +- (UIButton *)constellationBtuton { + if (!_constellationBtuton) { + _constellationBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_constellationBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + _constellationBtuton.titleLabel.font = [UIFont systemFontOfSize:10]; + [_constellationBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor colorAboutHexBWSttr:@"#8AD4FF"], [DJDKMIMOMColor colorAboutHexBWSttr:@"#45BBFF"]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + _constellationBtuton.layer.masksToBounds = YES; + _constellationBtuton.layer.cornerRadius = 7; + } + return _constellationBtuton; +} + +@end diff --git a/YuMi/Modules/YMMessage/View/Session/Cell/InterlocutionInstanllingTabulationRegardElement.h b/YuMi/Modules/YMMessage/View/Session/Cell/InterlocutionInstanllingTabulationRegardElement.h new file mode 100644 index 00000000..ea3287a0 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Cell/InterlocutionInstanllingTabulationRegardElement.h @@ -0,0 +1,22 @@ +// +// InterlocutionInstanllingTabulationRegardElement.h +// YUMI +// +// Created by YUMI on 2023/1/18. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class InterlocutionInstanllingMatrix, InterlocutionInstanllingTabulationRegardElement; +@protocol InterlocutionInstanllingTabulationViweElementRepresendtation + +- (void)interlocutionInstanllingTarbsultowardsionViweElement:(InterlocutionInstanllingMatrix *)item switchState:(UISwitch *)switchOn; + +@end +@interface InterlocutionInstanllingTabulationRegardElement : UITableViewCell +@property (nonatomic,strong) InterlocutionInstanllingMatrix *instanllingProvision; +@property (nonatomic,weak) id delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/Session/Cell/InterlocutionInstanllingTabulationRegardElement.m b/YuMi/Modules/YMMessage/View/Session/Cell/InterlocutionInstanllingTabulationRegardElement.m new file mode 100644 index 00000000..36b6c116 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Cell/InterlocutionInstanllingTabulationRegardElement.m @@ -0,0 +1,157 @@ +// +// InterlocutionInstanllingTabulationRegardElement.m +// YUMI +// +// Created by YUMI on 2023/1/18. +// + +#import "InterlocutionInstanllingTabulationRegardElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "InterlocutionInstanllingMatrix.h" +@interface InterlocutionInstanllingTabulationRegardElement () + +@property (nonatomic,strong) UILabel *titleLabel; +@property (nonatomic,strong) UIStackView *stackView; +@property (nonatomic,strong) UISwitch *switchView; +@property (nonatomic,strong) UIImageView *arrowIndicateRegard; +@property (nonatomic,strong) UIView *burlywoodRegard; +@end + + +@implementation InterlocutionInstanllingTabulationRegardElement + + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify]; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.titleLabel]; + [self.contentView addSubview:self.stackView]; + [self.contentView addSubview:self.burlywoodRegard]; + + [self.stackView addArrangedSubview:self.switchView]; + [self.stackView addArrangedSubview:self.arrowIndicateRegard]; +} + +- (void)initChildLyRestrictions { + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.contentView).offset(15); + make.centerY.mas_equalTo(self.contentView); + }]; + + [self.burlywoodRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.bottom.mas_equalTo(self.contentView); + make.height.mas_equalTo(0.5); + make.left.right.mas_equalTo(self.contentView).inset(15); + }]; + + [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self.contentView).offset(-15); + make.centerY.mas_equalTo(self.contentView); + }]; + + [self.arrowIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(5.5, 10)); + }]; + +} + +#pragma mark - Event Response +- (void)swopDidDiversifictowardsion:(UISwitch *)switchOn { + if (self.delegate && [self.delegate respondsToSelector:@selector(interlocutionInstanllingTarbsultowardsionViweElement:switchState:)]) { + [self.delegate interlocutionInstanllingTarbsultowardsionViweElement:self.instanllingProvision switchState:switchOn]; + } +} + +#pragma mark - Getters And Setters +- (void)setSettingItem:(InterlocutionInstanllingMatrix *)instanllingProvision { + _instanllingProvision = instanllingProvision; + if (_instanllingProvision) { + self.titleLabel.text = _instanllingProvision.title; + switch (_instanllingProvision.settingType) { + case InterlocutionInstanllingGenre_Top: + { + self.arrowIndicateRegard.hidden = YES; + self.switchView.hidden = NO; + self.switchView.on = _instanllingProvision.state; + } + break; + case InterlocutionInstanllingGenre_black: + { + self.arrowIndicateRegard.hidden = YES; + self.switchView.hidden = NO; + self.switchView.on = _instanllingProvision.state; + } + break; + case InterlocutionInstanllingGenre_report: + { + self.arrowIndicateRegard.hidden = NO; + self.switchView.hidden = YES; + } + break; + default: + break; + } + } +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.font = [UIFont systemFontOfSize:14]; + _titleLabel.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _titleLabel; +} + +- (UIStackView *)stackView { + if (!_stackView) { + _stackView = [[UIStackView alloc] init]; + _stackView.axis = UILayoutConstraintAxisHorizontal; + _stackView.distribution = UIStackViewDistributionFill; + _stackView.alignment = UIStackViewAlignmentCenter; + _stackView.spacing = 10; + } + return _stackView; +} + +- (UISwitch *)switchView { + if (!_switchView) { + _switchView = [[UISwitch alloc] init]; + _switchView.onTintColor = [DJDKMIMOMColor aplictowardsionUnderlinePrettify]; + _switchView.tintColor = [DJDKMIMOMColor aplictowardsionMainPrettify]; + _switchView.backgroundColor = [UIColor clearColor]; + [_switchView addTarget:self action:@selector(swopDidDiversifictowardsion:) forControlEvents:UIControlEventValueChanged]; + } + return _switchView; +} + +- (UIImageView *)arrowIndicateRegard { + if (!_arrowIndicateRegard) { + _arrowIndicateRegard = [[UIImageView alloc] init]; + _arrowIndicateRegard.userInteractionEnabled = YES; + _arrowIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_setting_arrow"]; + } + return _arrowIndicateRegard; +} + +- (UIView *)burlywoodRegard { + if (!_burlywoodRegard) { + _burlywoodRegard = [[UIView alloc] init]; + _burlywoodRegard.backgroundColor = [DJDKMIMOMColor performanceSepartowardsorPrettify]; + } + return _burlywoodRegard; +} + + + +@end diff --git a/YuMi/Modules/YMMessage/View/Session/Content/CommunicationConentVocalmusicRegard.h b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationConentVocalmusicRegard.h new file mode 100644 index 00000000..10c32fd3 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationConentVocalmusicRegard.h @@ -0,0 +1,16 @@ +// +// CommunicationConentVocalmusicRegard.h +// YUMI +// +// Created by YUMI on 2022/4/22. +// + +#import +#import "CommunicationContentCeremony.h" +NS_ASSUME_NONNULL_BEGIN + +@interface CommunicationConentVocalmusicRegard : UIView + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/Session/Content/CommunicationConentVocalmusicRegard.m b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationConentVocalmusicRegard.m new file mode 100644 index 00000000..60c219cc --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationConentVocalmusicRegard.m @@ -0,0 +1,144 @@ +// +// CommunicationConentVocalmusicRegard.m +// YUMI +// +// Created by YUMI on 2022/4/22. +// + +#import "CommunicationConentVocalmusicRegard.h" +#import +#import +#import "DJDKMIMOMColor.h" +#import "CommunicationVocalmusicConcentrate.h" +#import "CommunicationVocalmusicMatrix.h" +@interface CommunicationConentVocalmusicRegard () +@property (nonatomic,strong) UIView * encourageRegard; +@property (nonatomic,strong) UILabel *intratemporalSequencignation; +@property (nonatomic,strong) UIImageView *audioIndicateRegard; +@property (nonatomic,strong) NIMMessage *message; +@property (nonatomic,assign) BOOL isPlaying; +@end + +@implementation CommunicationConentVocalmusicRegard + +- (void)dealloc { + [[NIMSDK sharedSDK].mediaManager removeDelegate:self]; +} + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [[NIMSDK sharedSDK].mediaManager setNeedProximityMonitor:NO]; + [[NIMSDK sharedSDK].mediaManager addDelegate:self]; + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.encourageRegard]; + [self.encourageRegard addSubview:self.intratemporalSequencignation]; + [self.encourageRegard addSubview:self.audioIndicateRegard]; +} + +- (void)initChildLyRestrictions { + [self.encourageRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self).insets(UIEdgeInsetsMake(MESSAGE_PADDING, MESSAGE_PADDING, MESSAGE_PADDING, MESSAGE_PADDING)); + make.height.mas_equalTo(30); + make.width.mas_equalTo(50); + }]; + + [self.intratemporalSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.encourageRegard).offset(10); + make.centerY.mas_equalTo(self.encourageRegard); + }]; + + [self.audioIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(20, 20)); + make.right.mas_equalTo(self.encourageRegard).offset(-10); + make.centerY.mas_equalTo(self.encourageRegard); + }]; +} + +#pragma mark - NIMMediaManagerDelegate +- (void)playAudio:(NSString *)filePath didBeganWithError:(NSError *)error { + if(filePath && !error) { + if ([CommunicationVocalmusicConcentrate partowardsiciptowardsionInstance].universalDisportingCommunication == self.message) { + [self.audioIndicateRegard startAnimating]; + } + } +} + +- (void)playAudio:(NSString *)filePath didCompletedWithError:(NSError *)error { + [self.audioIndicateRegard stopAnimating]; + UIImage * thirdImage = [UIImage imageNamed:@"yumi_msg_matter_audio_playing_third"]; + self.audioIndicateRegard.image = thirdImage; +} +#pragma mark - Event Response +- (void)didBetowardsEncourageRecognition { + if ([self.message attachmentDownloadState] == NIMMessageAttachmentDownloadStateDownloaded) { + if ([[NIMSDK sharedSDK].mediaManager isPlaying]) { + [[NIMSDK sharedSDK].mediaManager stopPlay]; + } + + if (self.isPlaying) { + [[NIMSDK sharedSDK].mediaManager stopPlay]; + self.isPlaying = NO; + } else { + self.isPlaying = YES; + [[NIMSDK sharedSDK].mediaManager switchAudioOutputDevice:NIMAudioOutputDeviceSpeaker]; + [[CommunicationVocalmusicConcentrate partowardsiciptowardsionInstance] play:self.message]; + } + } +} + +#pragma mark - Getters And Setters +- (UIView *)encourageRegard { + if (!_encourageRegard) { + _encourageRegard = [[UIView alloc] init]; + _encourageRegard.backgroundColor = [UIColor clearColor]; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didBetowardsEncourageRecognition)]; + [_encourageRegard addGestureRecognizer:tap]; + } + return _encourageRegard; +} + +- (UILabel *)intratemporalSequencignation { + if (!_intratemporalSequencignation) { + _intratemporalSequencignation = [[UILabel alloc] init]; + _intratemporalSequencignation.font = [UIFont systemFontOfSize:14 weight:UIFontWeightMedium]; + _intratemporalSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _intratemporalSequencignation; +} + +- (UIImageView *)audioIndicateRegard { + if (!_audioIndicateRegard) { + _audioIndicateRegard = [[UIImageView alloc] init]; + _audioIndicateRegard.userInteractionEnabled = YES; + UIImage * firstImage = [UIImage imageNamed:@"yumi_msg_matter_audio_playing_first"]; + UIImage * secondImage = [UIImage imageNamed:@"yumi_msg_matter_audio_playing_second"]; + UIImage * thirdImage = [UIImage imageNamed:@"yumi_msg_matter_audio_playing_third"]; + _audioIndicateRegard.animationImages = @[firstImage, secondImage, thirdImage]; + _audioIndicateRegard.animationDuration = 1; + _audioIndicateRegard.animationRepeatCount = HUGE; + _audioIndicateRegard.image = thirdImage; + } + return _audioIndicateRegard; +} + + +- (void)render:(CommunicationBaseMatrix *)model { + self.message = model.message; + NIMAudioObject *audioContent = (NIMAudioObject*)[model.message messageObject]; + NSAssert([audioContent isKindOfClass:[NIMAudioObject class]], @"message should be audio"); + [self.encourageRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(model.contentSize.width);; + }]; + self.intratemporalSequencignation.text = [NSString stringWithFormat:@"%zd\"",(audioContent.duration+500)/1000]; +} + + + +@end diff --git a/YuMi/Modules/YMMessage/View/Session/Content/CommunicationContentCeremony.h b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationContentCeremony.h new file mode 100644 index 00000000..198300d2 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationContentCeremony.h @@ -0,0 +1,26 @@ +// +// CommunicationContentCeremony.h +// YUMI +// +// Created by zu on 2021/12/2. +// + +#import +#import "YUMIMacroUitls.h" +@class NIMMessage, CommunicationBaseMatrix; + +NS_ASSUME_NONNULL_BEGIN + +#define AVATAR_SIZE 45 +#define AVATAR_MARGIN_H 15 +#define CONTENT_WIDTH_MAX (KScreenWidth - AVATAR_MARGIN_H * 2 * 2 - AVATAR_SIZE * 2) +#define CONTENT_PADDING_V_TOTAL (5 + 15 * 2) +#define MESSAGE_PADDING (10) + +@protocol CommunicationContentCeremony + +- (void)render:(CommunicationBaseMatrix *)message; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/Session/Content/CommunicationIntratemporalRegard.h b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationIntratemporalRegard.h new file mode 100644 index 00000000..9d8b2f8a --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationIntratemporalRegard.h @@ -0,0 +1,16 @@ +// +// CommunicationIntratemporalRegard.h +// YUMI +// +// Created by YUMI on 2023/1/18. +// + +#import +#import "CommunicationContentCeremony.h" +NS_ASSUME_NONNULL_BEGIN + +@interface CommunicationIntratemporalRegard : UIView + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/Session/Content/CommunicationIntratemporalRegard.m b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationIntratemporalRegard.m new file mode 100644 index 00000000..48b87ffb --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationIntratemporalRegard.m @@ -0,0 +1,52 @@ +// +// CommunicationIntratemporalRegard.m +// YUMI +// +// Created by YUMI on 2023/1/18. +// + +#import "CommunicationIntratemporalRegard.h" +#import +#import +#import "DJDKMIMOMColor.h" +#import "CommunicationIntratemporalMatrix.h" + +@interface CommunicationIntratemporalRegard() + +@property (nonatomic, strong) UILabel * intratemporalSequencignation; +@property (nonatomic,strong) NIMMessage *message; + +@end + +@implementation CommunicationIntratemporalRegard + +- (instancetype)init { + self = [super init]; + if (self) { + [self addSubview:self.intratemporalSequencignation]; + [self.intratemporalSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.equalTo(self).with.insets(UIEdgeInsetsMake(0, 0, 0, 0)); + }]; + } + return self; +} + +- (void)render:(nonnull CommunicationBaseMatrix *)model { + self.superview.backgroundColor = [UIColor clearColor]; + self.message = model.message; + CommunicationIntratemporalMatrix * timeModel= (CommunicationIntratemporalMatrix *)model; + NSString * communicationEssay = timeModel.time; + self.intratemporalSequencignation.text = communicationEssay; +} + +- (UILabel *)intratemporalSequencignation { + if (!_intratemporalSequencignation) { + _intratemporalSequencignation = [[UILabel alloc] init]; + _intratemporalSequencignation.font = [UIFont systemFontOfSize:10]; + _intratemporalSequencignation.textAlignment = NSTextAlignmentCenter; + _intratemporalSequencignation.textColor = [DJDKMIMOMColor essayTertiusPrettify]; + } + return _intratemporalSequencignation; +} + +@end diff --git a/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionApplicationParaticipationRegard.h b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionApplicationParaticipationRegard.h new file mode 100644 index 00000000..d04d4e5a --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionApplicationParaticipationRegard.h @@ -0,0 +1,16 @@ +// +// CommunicationSatisfactionApplicationParaticipationRegard.h +// YUMI +// +// Created by YUMI on 2022/4/19. +// + +#import "CommunicationSatisfactionCustomRegard.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface CommunicationSatisfactionApplicationParaticipationRegard : CommunicationSatisfactionCustomRegard + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionApplicationParaticipationRegard.m b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionApplicationParaticipationRegard.m new file mode 100644 index 00000000..a36bb90c --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionApplicationParaticipationRegard.m @@ -0,0 +1,134 @@ +// +// CommunicationSatisfactionApplicationParaticipationRegard.m +// YUMI +// +// Created by YUMI on 2022/4/19. +// + +#import "CommunicationSatisfactionApplicationParaticipationRegard.h" +#import +#import "DJDKMIMOMColor.h" +#import "NetIndicateRegard.h" +#import "ChamberHostRepresendtation.h" +#import "XCCurrentVCStackExecutive.h" +#import "SatisfactionApplicationParaticipationMatrix.h" +#import "CommunicationApplicationParaticipationMatrix.h" +#import "YUMIChamberRegardGovernancer.h" + +@interface CommunicationSatisfactionApplicationParaticipationRegard () +@property (nonatomic,strong) UILabel *titleLabel; +@property (nonatomic,strong) NetIndicateRegard *intelligenceportraitIndicateRegard; +@property (nonatomic,strong) UIView * burlywoodRegard; +@property (nonatomic,strong) UIButton *importBtuton; +@property (nonatomic,strong) SatisfactionApplicationParaticipationMatrix *shareInfo; +@end + +@implementation CommunicationSatisfactionApplicationParaticipationRegard + + +- (void)render:(CommunicationBaseMatrix *)message { + CommunicationApplicationParaticipationMatrix * model = (CommunicationApplicationParaticipationMatrix *)message; + SatisfactionApplicationParaticipationMatrix *info = model.shareInfo; + if (info) { + self.shareInfo = info; + self.titleLabel.text = info.title; + self.intelligenceportraitIndicateRegard.imageUrl = info.avatar; + if (self.shareInfo.actionName.length > 0) { + [self.importBtuton setTitle:self.shareInfo.actionName forState:UIControlStateNormal]; + } + } +} + + +- (void)initSubViews { + [super initSubViews]; + [self addSubview:self.encourageRegard]; + [self.encourageRegard addSubview:self.titleLabel]; + [self.encourageRegard addSubview:self.intelligenceportraitIndicateRegard]; + [self.encourageRegard addSubview:self.burlywoodRegard]; + [self.encourageRegard addSubview:self.importBtuton]; +} + +- (void)initChildLyRestrictions { + [super initChildLyRestrictions]; + [self.encourageRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(KScreenWidth - AVATAR_MARGIN_H * 2 * 2 - AVATAR_SIZE - AVATAR_MARGIN_H, 90)); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.encourageRegard).offset(10); + make.right.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_left).offset(-10); + make.top.mas_equalTo(self.encourageRegard); + }]; + + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(50, 50)); + make.top.mas_equalTo(self.encourageRegard); + make.right.mas_equalTo(self.encourageRegard); + }]; + + [self.burlywoodRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.encourageRegard).inset(12); + make.height.mas_equalTo(1); + make.bottom.mas_equalTo(self.importBtuton.mas_top); + }]; + + [self.importBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.mas_equalTo(self.encourageRegard); + make.height.mas_equalTo(40); + }]; +} +#pragma mark - Event Response +- (void)importBtutonPerformance:(UIButton *)sender { + if (self.shareInfo.routerValue.length > 0) { + UIViewController * controllerView = [XCCurrentVCStackExecutive shareManager].getCurrentVC; + + [controllerView.navigationController.viewControllers enumerateObjectsUsingBlock:^(__kindof UIViewController * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if ([obj isKindOfClass:[YUMIChamberRegardGovernancer class]]) { + [controllerView.navigationController popToRootViewControllerAnimated:NO]; + YUMIChamberRegardGovernancer * rooomVC = obj; + [rooomVC exitRoom]; + *stop = YES; + } + }]; + [YUMIChamberRegardGovernancer unfoildChamber:self.shareInfo.routerValue viewController:[XCCurrentVCStackExecutive shareManager].getCurrentVC]; + } +} + +#pragma mark - Getters And Setters +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _intelligenceportraitIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _intelligenceportraitIndicateRegard; +} + + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.font = [UIFont systemFontOfSize:14]; + _titleLabel.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _titleLabel.numberOfLines = 2; + } + return _titleLabel; +} + +- (UIButton *)importBtuton { + if (!_importBtuton) { + _importBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_importBtuton setTitle:YMLocalizedString(@"Message_Content_Application_Share_View_0") forState:UIControlStateNormal]; + [_importBtuton setTitleColor:[DJDKMIMOMColor mainEssayPrettify] forState:UIControlStateNormal]; + _importBtuton.titleLabel.font = [UIFont systemFontOfSize:16]; + [_importBtuton addTarget:self action:@selector(importBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _importBtuton; +} + + +@end diff --git a/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionCommunicationSolitaireRegard.h b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionCommunicationSolitaireRegard.h new file mode 100644 index 00000000..2d25f79d --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionCommunicationSolitaireRegard.h @@ -0,0 +1,16 @@ +// +// CommunicationSatisfactionCommunicationSolitaireRegard.h +// YUMI +// +// Created by YUMI on 2022/4/28. +// + +#import "CommunicationSatisfactionCustomRegard.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface CommunicationSatisfactionCommunicationSolitaireRegard : CommunicationSatisfactionCustomRegard + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionCommunicationSolitaireRegard.m b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionCommunicationSolitaireRegard.m new file mode 100644 index 00000000..8fa79f8a --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionCommunicationSolitaireRegard.m @@ -0,0 +1,88 @@ +// +// CommunicationSatisfactionCommunicationSolitaireRegard.m +// YUMI +// +// Created by YUMI on 2022/4/28. +// + +#import "CommunicationSatisfactionCommunicationSolitaireRegard.h" +#import +#import +#import "HttpRequestFacilitater.h" +#import "AttachmentMatrix.h" +#import "UnionCommunicationMatrix.h" +#import "CommunicationCommunicationSolitaireMatrix.h" +#import "DJDKMIMOMColor.h" +#import "XNDJTBWGLoadingTool.h" +#import "AccountAbstractStorage.h" +#import "YUMIManeUnionRegardGovernancer.h" +#import "XCCurrentVCStackExecutive.h" +#define MESSAGE_MAX_WIDTH 180 +@interface CommunicationSatisfactionCommunicationSolitaireRegard () +@property (nonatomic,strong) UILabel *titleLabel; +@property (nonatomic,strong) YYLabel *satisfperformanceSequencignation; +@property (nonatomic,strong) UnionCommunicationMatrix *communicationAbstract; +@property (nonatomic,strong) NIMMessage *message; +@end + +@implementation CommunicationSatisfactionCommunicationSolitaireRegard + +- (void)initSubViews { + [super initSubViews]; + [self.encourageRegard addSubview:self.titleLabel]; + [self.encourageRegard addSubview:self.satisfperformanceSequencignation]; +} + +- (void)initChildLyRestrictions { + [super initChildLyRestrictions]; + [self.encourageRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(MESSAGE_MAX_WIDTH); + make.bottom.mas_equalTo(self.satisfperformanceSequencignation.mas_bottom); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.encourageRegard); + make.top.mas_equalTo(self.encourageRegard).offset(MESSAGE_PADDING); + }]; + + [self.satisfperformanceSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.left.mas_equalTo(self.encourageRegard); + make.top.mas_equalTo(self.titleLabel.mas_bottom).offset(MESSAGE_PADDING); + make.height.mas_equalTo(15); + }]; +} + +- (void)render:(CommunicationBaseMatrix *)model { + self.message = model.message; + CommunicationCommunicationSolitaireMatrix *obj = (CommunicationCommunicationSolitaireMatrix *)model; + UnionCommunicationMatrix * info= obj.guildInfo; + self.communicationAbstract = info; + self.titleLabel.text = info.layout.title.content; + self.titleLabel.font = [UIFont systemFontOfSize:info.layout.title.fontSize weight:info.layout.title.fontBold?UIFontWeightBold:UIFontWeightRegular]; + self.satisfperformanceSequencignation.attributedText = obj.attribute; + self.satisfperformanceSequencignation.textAlignment = NSTextAlignmentCenter; + [self.satisfperformanceSequencignation mas_updateConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(obj.textHeight); + }]; +} + +#pragma mark - Getters And Setters + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.textAlignment= NSTextAlignmentCenter; + _titleLabel.font = [UIFont systemFontOfSize:14]; + _titleLabel.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _titleLabel; +} + +- (YYLabel *)satisfperformanceSequencignation { + if (!_satisfperformanceSequencignation) { + _satisfperformanceSequencignation = [[YYLabel alloc] init]; + _satisfperformanceSequencignation.numberOfLines = 0; + } + return _satisfperformanceSequencignation; +} +@end diff --git a/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionCustomRegard.h b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionCustomRegard.h new file mode 100644 index 00000000..61eb7b1c --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionCustomRegard.h @@ -0,0 +1,28 @@ +// +// CommunicationSatisfactionCustomRegard.h +// YUMI +// +// Created by YUMI on 2022/4/15. +// + +#import +#import +#import "AttachmentMatrix.h" +#import "CommunicationContentCeremony.h" +NS_ASSUME_NONNULL_BEGIN + +@protocol CommunicationContentCustomRegardRepresendtation + +- (void)refurbishCommunictowardsionAccomplishment:(NIMMessage *)message; + +@end + +@interface CommunicationSatisfactionCustomRegard : UIView +- (void)initSubViews; + +- (void)initChildLyRestrictions; +@property (nonatomic,strong, readonly) UIView * encourageRegard; +@property (nonatomic,weak) id delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionCustomRegard.m b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionCustomRegard.m new file mode 100644 index 00000000..c7ce2a39 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionCustomRegard.m @@ -0,0 +1,54 @@ +// +// CommunicationSatisfactionCustomRegard.m +// YUMI +// +// Created by YUMI on 2022/4/15. +// + +#import "CommunicationSatisfactionCustomRegard.h" +#import + +@interface CommunicationSatisfactionCustomRegard () +@property (nonatomic,strong) UIView * encourageRegard; +@end + +@implementation CommunicationSatisfactionCustomRegard + +- (instancetype)init { + if (self = [super init]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Public Method +- (void)initSubViews { + [self addSubview:self.encourageRegard]; +} + +- (void)initChildLyRestrictions { + [self.encourageRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self).insets(UIEdgeInsetsMake(MESSAGE_PADDING, MESSAGE_PADDING, MESSAGE_PADDING, MESSAGE_PADDING)); + }]; +} + + +#pragma mark - CommunicationContentCeremony +- (void)render:(CommunicationBaseMatrix *)model { + +} + ++ (CGFloat)measureAltitude:(NIMMessage *)message { + return 0; +} + +- (UIView *)encourageRegard { + if (!_encourageRegard) { + _encourageRegard = [[UIView alloc] init]; + _encourageRegard.backgroundColor = [UIColor clearColor]; + } + return _encourageRegard; +} + +@end diff --git a/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionDeficitSheatheRegard.h b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionDeficitSheatheRegard.h new file mode 100644 index 00000000..08178be9 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionDeficitSheatheRegard.h @@ -0,0 +1,16 @@ +// +// CommunicationSatisfactionDeficitSheatheRegard.h +// YUMI +// +// Created by YUMI on 2022/9/5. +// + +#import "CommunicationSatisfactionCustomRegard.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface CommunicationSatisfactionDeficitSheatheRegard : CommunicationSatisfactionCustomRegard + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionDeficitSheatheRegard.m b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionDeficitSheatheRegard.m new file mode 100644 index 00000000..c36a1e08 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionDeficitSheatheRegard.m @@ -0,0 +1,203 @@ +// +// CommunicationSatisfactionDeficitSheatheRegard.m +// YUMI +// +// Created by YUMI on 2022/9/5. +// + +#import "CommunicationSatisfactionDeficitSheatheRegard.h" +#import +#import "DJDKMIMOMColor.h" +#import "YUMIAchieveDeficitSheatheMatrix.h" +#import "CommunicationDeficitSheatheMatrix.h" +#import "YUMIConstant.h" +#import "XCCurrentVCStackExecutive.h" +#import "YUMIChamberRegardGovernancer.h" +#import "ChamberHostRepresendtation.h" + +#define MESSAGE_MAX_WIDTH 260 + +@interface CommunicationSatisfactionDeficitSheatheRegard () + +@property (nonatomic, strong) UIImageView *backgroundIndicateRegard; +@property (nonatomic, strong) UIImageView *deficitSheatheIndicateRegard; +@property (nonatomic,strong) UILabel *titleLabel; +@property (nonatomic,strong) UILabel *subLabel; +@property (nonatomic, strong) UIView *devideRegard; +@property (nonatomic, strong) UILabel *sequenceSequencignation; +@property (nonatomic,strong) YUMIAchieveDeficitSheatheMatrix *communicationAbstract; +@property (nonatomic,strong) AttachmentMatrix *attachment; +@property (nonatomic,strong) NIMMessage *message; + +@end + +@implementation CommunicationSatisfactionDeficitSheatheRegard + +- (void)initSubViews { + [super initSubViews]; + [self.encourageRegard addSubview:self.backgroundIndicateRegard]; + [self.encourageRegard addSubview:self.deficitSheatheIndicateRegard]; + [self.encourageRegard addSubview:self.titleLabel]; + [self.encourageRegard addSubview:self.subLabel]; + [self.encourageRegard addSubview:self.devideRegard]; + [self.encourageRegard addSubview:self.sequenceSequencignation]; + + UITapGestureRecognizer * tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(event:)]; + [self.backgroundIndicateRegard addGestureRecognizer:tapGesture]; +} + +- (void)initChildLyRestrictions { + [super initChildLyRestrictions]; + self.encourageRegard.superview.backgroundColor = [UIColor clearColor]; + self.encourageRegard.backgroundColor = [UIColor clearColor]; + [self.encourageRegard mas_remakeConstraints:^(MASConstraintMaker *make) { + make.edges.equalTo(self).inset(0); + make.width.mas_equalTo(MESSAGE_MAX_WIDTH); + make.height.mas_equalTo(95); + }]; + [self.backgroundIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(MESSAGE_MAX_WIDTH); + make.top.mas_equalTo(self.encourageRegard); + make.height.mas_equalTo(95); + make.left.mas_equalTo(self.encourageRegard); + }]; + [self.deficitSheatheIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.encourageRegard).mas_offset(16); + make.width.mas_equalTo(31); + make.height.mas_equalTo(40); + make.top.mas_equalTo(self.encourageRegard).mas_offset(13); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.deficitSheatheIndicateRegard.mas_right).mas_offset(6); + make.height.mas_equalTo(16); + make.top.mas_equalTo(self.deficitSheatheIndicateRegard).mas_offset(12); + }]; + + [self.subLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.titleLabel); + make.top.mas_equalTo(self.titleLabel.mas_bottom).mas_offset(8); + make.height.mas_equalTo(13); + }]; + [self.devideRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(16); + make.right.mas_equalTo(-8); + make.top.mas_equalTo(self.deficitSheatheIndicateRegard.mas_bottom).offset(11); + make.height.mas_equalTo(0.5); + }]; + [self.sequenceSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(16); + make.top.mas_equalTo(self.devideRegard.mas_bottom).offset(9); + make.height.mas_equalTo(13); + }]; +} + +- (void)render:(CommunicationBaseMatrix *)model { + self.message = model.message; + CommunicationDeficitSheatheMatrix *obj = (CommunicationDeficitSheatheMatrix *)model; + YUMIAchieveDeficitSheatheMatrix * info = obj.redInfo; + self.communicationAbstract = info; + + NSTimeInterval now = [[NSDate date] timeIntervalSince1970]; + if (now - model.message.timestamp > 60*30) { + self.titleLabel.text = YMLocalizedString(@"Message_Content_Red_Packet_View_0"); + self.sequenceSequencignation.text = @"下次要快点来哦~"; + self.subLabel.hidden = YES; + self.backgroundIndicateRegard.image = [UIImage imageNamed:@"yumi_redPacket_msg_inValid_background"]; + self.backgroundIndicateRegard.userInteractionEnabled = NO; + } else { + NSArray *redPacketHistory = [[NSUserDefaults standardUserDefaults] objectForKey:kRedPacketHistory]; + if (info) { + if ([redPacketHistory containsObject:info.redEnvelopeId]) { + self.subLabel.hidden = YES; + self.titleLabel.text = YMLocalizedString(@"Message_Content_Red_Packet_View_2"); + self.backgroundIndicateRegard.image = [UIImage imageNamed:@"yumi_redPacket_msg_inValid_background"]; + self.sequenceSequencignation.text = YMLocalizedString(@"Message_Content_Red_Packet_View_3"); + self.backgroundIndicateRegard.userInteractionEnabled = NO; + } else { + self.titleLabel.text = info.sendUserNick; + self.sequenceSequencignation.text = @"点击进房领取>"; + self.subLabel.hidden = NO; + self.backgroundIndicateRegard.image = [UIImage imageNamed:@"yumi_redPacket_msg_valid_background"]; + self.backgroundIndicateRegard.userInteractionEnabled = YES; + [self.titleLabel mas_updateConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.deficitSheatheIndicateRegard).mas_offset(5); + }]; + } + } + } +} + +- (void)event:(UITapGestureRecognizer *)gesture { + UIViewController * controllerView = [XCCurrentVCStackExecutive shareManager].getCurrentVC; + + [controllerView.navigationController.viewControllers enumerateObjectsUsingBlock:^(__kindof UIViewController * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if ([obj isKindOfClass:[YUMIChamberRegardGovernancer class]]) { + [controllerView.navigationController popToRootViewControllerAnimated:NO]; + YUMIChamberRegardGovernancer * rooomVC = obj; + [rooomVC exitRoom]; + *stop = YES; + } + }]; + dispatch_after(1.0, dispatch_get_main_queue(), ^{ + [YUMIChamberRegardGovernancer unfoildChamber:self.communicationAbstract.roomUid viewController:[XCCurrentVCStackExecutive shareManager].getCurrentVC]; + }); +} + +#pragma mark - Getters And Setters +- (UIImageView *)backgroundIndicateRegard { + if (!_backgroundIndicateRegard) { + _backgroundIndicateRegard = [[UIImageView alloc] init]; + _backgroundIndicateRegard.image = [UIImage imageNamed:@"yumi_redPacket_msg_valid_background"]; + self.backgroundIndicateRegard.userInteractionEnabled = YES; + } + return _backgroundIndicateRegard; +} + +- (UIImageView *)deficitSheatheIndicateRegard { + if (!_deficitSheatheIndicateRegard) { + _deficitSheatheIndicateRegard = [[UIImageView alloc] init]; + _deficitSheatheIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + _deficitSheatheIndicateRegard.image = [UIImage imageNamed:@"yumi_redPacket_msg_pic"]; + } + return _deficitSheatheIndicateRegard; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.textAlignment= NSTextAlignmentCenter; + _titleLabel.font = [UIFont systemFontOfSize:16]; + _titleLabel.textColor = [UIColor whiteColor]; + } + return _titleLabel; +} + +- (UILabel *)subLabel { + if (!_subLabel) { + _subLabel = [[UILabel alloc] init]; + _subLabel.text = YMLocalizedString(@"Message_Content_Red_Packet_View_5"); + _subLabel.font = [UIFont systemFontOfSize:13]; + _subLabel.textColor = [UIColor whiteColor]; + } + return _subLabel; +} + +- (UILabel *)sequenceSequencignation { + if (!_sequenceSequencignation) { + _sequenceSequencignation = [[UILabel alloc] init]; + _sequenceSequencignation.font = [UIFont systemFontOfSize:13]; + _sequenceSequencignation.textColor = [UIColor whiteColor]; + } + return _sequenceSequencignation; +} + +- (UIView *)devideRegard { + if (!_devideRegard) { + _devideRegard = [[UIView alloc] init]; + _devideRegard.backgroundColor = [UIColor whiteColor]; + } + return _devideRegard; +} + +@end diff --git a/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionDiscoveryStrangeBewelcometoRegard.h b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionDiscoveryStrangeBewelcometoRegard.h new file mode 100644 index 00000000..27df3826 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionDiscoveryStrangeBewelcometoRegard.h @@ -0,0 +1,16 @@ +// +// CommunicationSatisfactionDiscoveryStrangeBewelcometoRegard.h +// YUMI +// +// Created by YUMI on 2022/6/17. +// + +#import "CommunicationSatisfactionCustomRegard.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface CommunicationSatisfactionDiscoveryStrangeBewelcometoRegard : CommunicationSatisfactionCustomRegard + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionDiscoveryStrangeBewelcometoRegard.m b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionDiscoveryStrangeBewelcometoRegard.m new file mode 100644 index 00000000..b4c4fa58 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionDiscoveryStrangeBewelcometoRegard.m @@ -0,0 +1,56 @@ +// +// CommunicationSatisfactionDiscoveryStrangeBewelcometoRegard.m +// YUMI +// +// Created by YUMI on 2022/6/17. +// + +#import "CommunicationSatisfactionDiscoveryStrangeBewelcometoRegard.h" +#import +#import "NSObject+MJExtension.h" +#import "DJDKMIMOMColor.h" +#import "DiscoveryStrangeBewelcometoCommunicationMatrix.h" +#import "CommunicationDiscoveryStrangeBewelcometoMatrix.h" + +@interface CommunicationSatisfactionDiscoveryStrangeBewelcometoRegard () + +@property (nonatomic,strong) UILabel *titleLabel; + +@end + +@implementation CommunicationSatisfactionDiscoveryStrangeBewelcometoRegard + + +- (void)initSubViews { + [super initSubViews]; + [self.encourageRegard addSubview:self.titleLabel]; +} + +- (void)initChildLyRestrictions { + [super initChildLyRestrictions]; + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.encourageRegard); + }]; +} + + +- (void)render:(nonnull CommunicationBaseMatrix *)model { + CommunicationDiscoveryStrangeBewelcometoMatrix *obj = (CommunicationDiscoveryStrangeBewelcometoMatrix *)model; + [self.encourageRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(obj.contentSize); + }]; + self.titleLabel.attributedText = obj.attributedText; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc]initWithFrame:CGRectZero]; + _titleLabel.preferredMaxLayoutWidth = CONTENT_WIDTH_MAX - MESSAGE_PADDING * 2; + _titleLabel.textColor = DJDKMIMOMColor.mainEssayPrettify; + _titleLabel.font = [UIFont systemFontOfSize:13]; + _titleLabel.numberOfLines = 0; + } + return _titleLabel; +} + +@end diff --git a/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionEssay.h b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionEssay.h new file mode 100644 index 00000000..d8500a41 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionEssay.h @@ -0,0 +1,17 @@ +// +// CommunicationSatisfactionEssay.h +// YUMI +// +// Created by zu on 2021/12/2. +// + +#import +#import "CommunicationContentCeremony.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface CommunicationSatisfactionEssay : UIView + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionEssay.m b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionEssay.m new file mode 100644 index 00000000..064be034 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionEssay.m @@ -0,0 +1,76 @@ +// +// CommunicationSatisfactionEssay.m +// YUMI +// +// Created by zu on 2021/12/2. +// + +#import "CommunicationSatisfactionEssay.h" +#import "DJDKMIMOMColor.h" +#import "NSObject+MJExtension.h" +#import "MHTSpiritFacilitater.h" +#import +#import +#import +#import "CommunicationEssayMatrix.h" +#define MESSAGE_TEXT_PADDING 10 + +@interface CommunicationSatisfactionEssay() + + +@property (nonatomic, strong) YYLabel * communicationEssay; + +@property (nonatomic,strong) NIMMessage *message; + +@end + +@implementation CommunicationSatisfactionEssay + ++ (NSDictionary *)communictowardsionEssayTowardstibutes { + UIFont *font = [UIFont systemFontOfSize:13.f]; + NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init]; + [paragraphStyle setLineSpacing:2.5]; + return @{ + NSFontAttributeName:font, + NSParagraphStyleAttributeName: paragraphStyle + }; +} + +- (instancetype)init { + self = [super init]; + if (self) { + [self addSubview:self.communicationEssay]; + [self.communicationEssay mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.equalTo(self).with.insets(UIEdgeInsetsMake(MESSAGE_TEXT_PADDING, MESSAGE_TEXT_PADDING, MESSAGE_TEXT_PADDING, MESSAGE_TEXT_PADDING)); + }]; + } + return self; +} + +- (void)render:(nonnull CommunicationBaseMatrix *)model { + self.message = model.message; + if (model.messageType == InterlocutionCommunicationGenre_Text) { + CommunicationEssayMatrix * textModel = (CommunicationEssayMatrix *)model; + _communicationEssay.attributedText = textModel.textAttribute; + } else { + NSString * communicationEssay = model.message.text; + if (!communicationEssay || (model.message.messageType != NIMMessageTypeTip && model.message.messageType != NIMMessageTypeText)) { + communicationEssay = YMLocalizedString(@"Message_Content_Text_0"); + } + MHTSpiritFacilitater *faceManager = [MHTSpiritFacilitater partowardsiciptowardsiondSenintrtowardsemporalntFacilittowardseer]; + NSMutableAttributedString * attribute = [faceManager towardstributedBWSttrByEssay:communicationEssay font:[UIFont systemFontOfSize:13]]; + _communicationEssay.attributedText = attribute; + } +} + +- (YYLabel *)communicationEssay { + if (!_communicationEssay) { + _communicationEssay = [[YYLabel alloc]initWithFrame:CGRectZero]; + _communicationEssay.preferredMaxLayoutWidth = CONTENT_WIDTH_MAX - MESSAGE_TEXT_PADDING * 2; + _communicationEssay.textColor = DJDKMIMOMColor.mainEssayPrettify; + _communicationEssay.numberOfLines = 0; + } + return _communicationEssay; +} + +@end diff --git a/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionEssayClickable.h b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionEssayClickable.h new file mode 100644 index 00000000..619ce5db --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionEssayClickable.h @@ -0,0 +1,17 @@ +// +// CommunicationSatisfactionEssayClickable.h +// YUMI +// +// Created by zu on 2022/1/24. +// + +#import "CommunicationSatisfactionCustomRegard.h" +#import "UIView+NIM.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface CommunicationSatisfactionEssayClickable : CommunicationSatisfactionCustomRegard + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionEssayClickable.m b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionEssayClickable.m new file mode 100644 index 00000000..59b2d218 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionEssayClickable.m @@ -0,0 +1,209 @@ +// +// CommunicationSatisfactionEssayClickable.m +// YUMI +// +// Created by zu on 2022/1/24. +// + +#import "CommunicationSatisfactionEssayClickable.h" +#import +#import +#import "DJDKMIMOMColor.h" +#import "NSObject+MJExtension.h" +#import "XCCurrentVCStackExecutive.h" +#import "Api.h" +#import "AccountAbstractStorage.h" +#import "XNDJTBWGLoadingTool.h" +#import "NSObject+MJExtension.h" +#import "ClientDisposition.h" +#import "ConsumerAbstractMatrix.h" +#import "SatisfactionSecretaryMatrix.h" +#import "CommunicationEssayClickMatrix.h" +#import "YUMIChamberRegardGovernancer.h" +#import "YUMITissueRegardGovernancer.h" +#import "YUMIManeReindictRegardGovernancer.h" +#import "YUMIIAPReindictRegardGovernancer.h" +#import "YUMIManeConsumerAbstractRegardGovernancer.h" +#import "YUMIManeSimpleConsumerAbstractRegardGovernancer.h" +#import "YUMIManePretendUpwardsRegardGovernancer.h" +#import "YUMIPretendUpwardsProcurementRegardGovernancer.h" +#import "YUMIManeSurmountCiphercodeRegardGovernancer.h" +#import "YUMISeparationMotifAccommodatedRegardGovernancer.h" +#import "ChamberHostRepresendtation.h" +@interface CommunicationSatisfactionEssayClickable() + + +@property (nonatomic, strong) UILabel * communicationEssay; +@property (nonatomic,strong) SatisfactionSecretaryMatrix *satisfperformanceAbstract; +@end + +@implementation CommunicationSatisfactionEssayClickable + +- (void)initSubViews { + [super initSubViews]; + [self.encourageRegard addSubview:self.communicationEssay]; + UITapGestureRecognizer * tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(event:)]; + [self addGestureRecognizer:tapGesture]; +} + +- (void)initChildLyRestrictions { + [super initChildLyRestrictions]; + [self.communicationEssay mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.encourageRegard).insets(UIEdgeInsetsMake(0, 0, 0, 0)); + }]; +} + +- (void)render:(nonnull CommunicationBaseMatrix *)message { + CommunicationEssayClickMatrix * textModel = (CommunicationEssayClickMatrix *)message; + _communicationEssay.attributedText = textModel.attributedText; +} + +- (void)event:(UITapGestureRecognizer *)gesture { + SecretaryRouterGenre type = self.satisfperformanceAbstract.routerType; + NSString * value = self.satisfperformanceAbstract.routerValue; + switch (type) { + case SecretaryRouterGenre_H5: { + if (value.length) { + YUMITissueRegardGovernancer * webVewC =[[YUMITissueRegardGovernancer alloc] init]; + webVewC.url = value; + [self.nim_viewGovernancer.navigationController pushViewController:webVewC animated:YES]; + } + } + break; + case SecretaryRouterGenre_Room: + { + if (value.length > 0) { + UIViewController * controllerView = [XCCurrentVCStackExecutive shareManager].getCurrentVC; + + [controllerView.navigationController.viewControllers enumerateObjectsUsingBlock:^(__kindof UIViewController * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if ([obj isKindOfClass:[YUMIChamberRegardGovernancer class]]) { + [controllerView.navigationController popToRootViewControllerAnimated:NO]; + YUMIChamberRegardGovernancer * rooomVC = obj; + [rooomVC exitRoom]; + *stop = YES; + } + }]; + [YUMIChamberRegardGovernancer unfoildChamber:value viewController:[XCCurrentVCStackExecutive shareManager].getCurrentVC]; + } + } + break; + case SecretaryRouterGenre_Purse: + case SecretaryRouterGenre_Recharge: + { + YUMIIAPReindictRegardGovernancer * rechargeVC = [[YUMIIAPReindictRegardGovernancer alloc] init]; + [[XCCurrentVCStackExecutive shareManager].getCurrentVC.navigationController pushViewController:rechargeVC animated:YES]; + } + break; + case SecretaryRouterGenre_UserInfo: + { + if (value.length > 0) { + + if ([ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + YUMIManeConsumerAbstractRegardGovernancer * userInfoVC = [[YUMIManeConsumerAbstractRegardGovernancer alloc] init]; + userInfoVC.uid = value.integerValue; + [[XCCurrentVCStackExecutive shareManager].getCurrentVC.navigationController pushViewController:userInfoVC animated:YES]; + }else{ + YUMIManeSimpleConsumerAbstractRegardGovernancer * userInfoVC = [[YUMIManeSimpleConsumerAbstractRegardGovernancer alloc] init]; + userInfoVC.uid = value.integerValue; + [[XCCurrentVCStackExecutive shareManager].getCurrentVC.navigationController pushViewController:userInfoVC animated:YES]; + } + } + } + break; + case SecretaryRouterGenre_Car: + { + YUMIManePretendUpwardsRegardGovernancer * dressUpVC = [[YUMIManePretendUpwardsRegardGovernancer alloc] init]; + dressUpVC.currentIndex = 1; + [[XCCurrentVCStackExecutive shareManager].getCurrentVC.navigationController pushViewController:dressUpVC animated:YES]; + } + break; + case SecretaryRouterGenre_Headwear: + { + YUMIManePretendUpwardsRegardGovernancer * dressUpVC = [[YUMIManePretendUpwardsRegardGovernancer alloc] init]; + dressUpVC.currentIndex = 0; + [[XCCurrentVCStackExecutive shareManager].getCurrentVC.navigationController pushViewController:dressUpVC animated:YES]; + } + break; + case SecretaryRouterGenre_Nameplate: + { + YUMIManePretendUpwardsRegardGovernancer * dressUpVC = [[YUMIManePretendUpwardsRegardGovernancer alloc] init]; + dressUpVC.currentIndex = 2; + [[XCCurrentVCStackExecutive shareManager].getCurrentVC.navigationController pushViewController:dressUpVC animated:YES]; + } + break; + case SecretaryRouterGenre_Nobel_Bubble: + { + YUMIManePretendUpwardsRegardGovernancer * dressUpVC = [[YUMIManePretendUpwardsRegardGovernancer alloc] init]; + dressUpVC.currentIndex = 4; + [[XCCurrentVCStackExecutive shareManager].getCurrentVC.navigationController pushViewController:dressUpVC animated:YES]; + } + break; + case SecretaryRouterGenre_User_Card: + { + YUMIManePretendUpwardsRegardGovernancer * dressUpVC = [[YUMIManePretendUpwardsRegardGovernancer alloc] init]; + dressUpVC.currentIndex = 3; + [[XCCurrentVCStackExecutive shareManager].getCurrentVC.navigationController pushViewController:dressUpVC animated:YES]; + } + break; + case SecretaryRouterGenre_Set_Password: + { + [Api getUserInfo:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + ConsumerAbstractMatrix * userInfo = [ConsumerAbstractMatrix mtowardsrixAboutImpactbasket:data.data]; + if (!userInfo.isBindPhone) { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:@"请先绑定手机号!"]; + return; + } + + if (userInfo.isBindPasswd) { + YUMIManeSurmountCiphercodeRegardGovernancer *vc = [[YUMIManeSurmountCiphercodeRegardGovernancer alloc] init]; + vc.userInfo = userInfo; + vc.isModifiPword = YES; + [[XCCurrentVCStackExecutive shareManager].getCurrentVC.navigationController pushViewController:vc animated:YES]; + } else { + YUMIManeSurmountCiphercodeRegardGovernancer *vc = [[YUMIManeSurmountCiphercodeRegardGovernancer alloc] init]; + vc.userInfo = userInfo; + vc.isModifiPword = NO; + [[XCCurrentVCStackExecutive shareManager].getCurrentVC.navigationController pushViewController:vc animated:YES]; + } + } + } uid:[AccountAbstractStorage instance].acquireCid]; + } + break; + case SecretaryRouterGenre_Dressup_Shop: + { + YUMIPretendUpwardsProcurementRegardGovernancer *vc = [[YUMIPretendUpwardsProcurementRegardGovernancer alloc] init]; + vc.currentIndex = [value integerValue]; + [[XCCurrentVCStackExecutive shareManager].getCurrentVC.navigationController pushViewController:vc animated:YES]; + } + break; + case SecretaryRouterGenre_My_Dressup: + { + YUMIManePretendUpwardsRegardGovernancer * dressUpVC = [[YUMIManePretendUpwardsRegardGovernancer alloc] init]; + dressUpVC.currentIndex = [value integerValue]; + [[XCCurrentVCStackExecutive shareManager].getCurrentVC.navigationController pushViewController:dressUpVC animated:YES]; + } + break; + case SecretaryRouterGenre_Square_Topic: + { + YUMISeparationMotifAccommodatedRegardGovernancer *topicVC = [[YUMISeparationMotifAccommodatedRegardGovernancer alloc] init]; + topicVC.worldId = value; + [[XCCurrentVCStackExecutive shareManager].getCurrentVC.navigationController pushViewController:topicVC animated:YES]; + } + break; + default: + break; + } +} + +- (UILabel *)communicationEssay { + if (!_communicationEssay) { + _communicationEssay = [[UILabel alloc]initWithFrame:CGRectZero]; + _communicationEssay.preferredMaxLayoutWidth = CONTENT_WIDTH_MAX - MESSAGE_PADDING * 2; + _communicationEssay.textColor = DJDKMIMOMColor.mainEssayPrettify; + _communicationEssay.numberOfLines = 0; + } + return _communicationEssay; +} + +@end diff --git a/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionIndicate.h b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionIndicate.h new file mode 100644 index 00000000..5c069df1 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionIndicate.h @@ -0,0 +1,17 @@ +// +// CommunicationSatisfactionIndicate.h +// YUMI +// +// Created by zu on 2021/12/2. +// + +#import +#import "CommunicationContentCeremony.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface CommunicationSatisfactionIndicate : UIView + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionIndicate.m b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionIndicate.m new file mode 100644 index 00000000..5dcd4ae5 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionIndicate.m @@ -0,0 +1,85 @@ +// +// CommunicationSatisfactionIndicate.m +// YUMI +// +// Created by zu on 2021/12/2. +// + +#import "CommunicationSatisfactionIndicate.h" +#import "NetIndicateRegard.h" +#import "SDAppearanceBrowser.h" +#import +#import +#import "UIImage+Utils.h" +#import "CommunicationBaseMatrix.h" +#import "CommunicationIndicateMatrix.h" +#define MESSAGE_IMAGE_MAX_SIZE (CONTENT_WIDTH_MAX) +#define MESSAGE_IMAGE_Min_SIZE (CONTENT_WIDTH_MAX -100) +@interface CommunicationSatisfactionIndicate() + +@property (nonatomic, strong) NetIndicateRegard * communicationIndicate; +@property (nonatomic,strong) CommunicationIndicateMatrix *indicateGroal; + +@end + +@implementation CommunicationSatisfactionIndicate + +- (instancetype)init { + self = [super init]; + if (self) { + [self addSubview:self.communicationIndicate]; + [self.communicationIndicate mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.equalTo(self).with.insets(UIEdgeInsetsMake(MESSAGE_PADDING, MESSAGE_PADDING, MESSAGE_PADDING, MESSAGE_PADDING)); + make.width.height.mas_equalTo(MESSAGE_IMAGE_MAX_SIZE); + }]; + } + return self; +} + +- (void)render:(CommunicationBaseMatrix *)model { + CommunicationIndicateMatrix * imageModel = (CommunicationIndicateMatrix *)model; + self.indicateGroal = imageModel; + [self.communicationIndicate mas_updateConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(model.contentSize.height); + make.width.mas_equalTo(model.contentSize.width); + }]; + if (imageModel.image) { + self.communicationIndicate.image = imageModel.image; + }else { + self.communicationIndicate.imageUrl = imageModel.imageUrl; + } +} + +#pragma mark - SDPhotoBrowserRepresendtation +- (NSURL *)aplictowardsionearanceBrowser:(SDAppearanceBrowser *)browser highQualityIndictowardseWEEBSITEInthecaseofIndictowardsrix:(NSInteger)index { + return [NSURL URLWithString:self.indicateGroal.imageUrl]; +} + +- (UIImage *)aplictowardsionearanceBrowser:(SDAppearanceBrowser *)browser placeholderIndictowardseInthecaseofIndictowardsrix:(NSInteger)index { + return [UIIndicateConstant defalutOriflammeDepapossessor]; +} + +- (void)didBetowardsIndictowardse { + SDAppearanceBrowser *browser = [[SDAppearanceBrowser alloc]init]; + browser.sourceIndicatesAccommoengagementdRegard = self; + browser.delegate = self; + browser.indicateComputation = 1; + browser.universalIndicateIndicatrix = 0; + browser.isMe = NO; + [browser show]; +} + + +- (NetIndicateRegard *)communicationIndicate { + if (!_communicationIndicate) { + _communicationIndicate = [[NetIndicateRegard alloc] init]; + _communicationIndicate.userInteractionEnabled = YES; + _communicationIndicate.layer.masksToBounds = YES; + _communicationIndicate.contentMode = UIViewContentModeScaleAspectFill; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didBetowardsIndictowardse)]; + [_communicationIndicate addGestureRecognizer:tap]; + } + return _communicationIndicate; +} + +@end diff --git a/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionPresentRegard.h b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionPresentRegard.h new file mode 100644 index 00000000..008ede10 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionPresentRegard.h @@ -0,0 +1,16 @@ +// +// CommunicationSatisfactionPresentRegard.h +// YUMI +// +// Created by YUMI on 2022/4/15. +// + +#import "CommunicationSatisfactionCustomRegard.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface CommunicationSatisfactionPresentRegard : CommunicationSatisfactionCustomRegard + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionPresentRegard.m b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionPresentRegard.m new file mode 100644 index 00000000..6a0b86a9 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionPresentRegard.m @@ -0,0 +1,92 @@ +// +// CommunicationSatisfactionPresentRegard.m +// YUMI +// +// Created by YUMI on 2022/4/15. +// + +#import "CommunicationSatisfactionPresentRegard.h" +#import +#import "NetIndicateRegard.h" +#import "DJDKMIMOMColor.h" +#import "PresentAchieveAbstractMatrix.h" +#import "CommunicationPresentMatrix.h" +@interface CommunicationSatisfactionPresentRegard () +@property (nonatomic,strong) NetIndicateRegard *presentIndicateRegard; +@property (nonatomic,strong) UILabel *presentConstituteSequencignation; +@property (nonatomic,strong) UILabel *presentFigureSequencignation; +@end + +@implementation CommunicationSatisfactionPresentRegard + +- (void)initSubViews { + [super initSubViews]; + [self addSubview:self.encourageRegard]; + + [self.encourageRegard addSubview:self.presentIndicateRegard]; + [self.encourageRegard addSubview:self.presentConstituteSequencignation]; + [self.encourageRegard addSubview:self.presentFigureSequencignation]; +} + +- (void)initChildLyRestrictions { + [super initChildLyRestrictions]; + [self.encourageRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(80); + make.width.mas_equalTo(185); + }]; + + [self.presentIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(60, 60)); + make.left.mas_equalTo(self.encourageRegard); + make.centerY.mas_equalTo(self.encourageRegard); + }]; + + [self.presentConstituteSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.presentIndicateRegard.mas_right).offset(10); + make.bottom.mas_equalTo(self.presentIndicateRegard.mas_centerY).offset(-3); + }]; + + [self.presentFigureSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.presentConstituteSequencignation); + make.top.mas_equalTo(self.presentIndicateRegard.mas_centerY).offset(3); + }]; +} + +- (void)render:(CommunicationBaseMatrix *)model { + CommunicationPresentMatrix *obj = (CommunicationPresentMatrix *)model; + self.presentIndicateRegard.imageUrl = obj.giftInfo.giftUrl; + self.presentConstituteSequencignation.text = obj.giftInfo.giftName; + self.presentFigureSequencignation.text = [NSString stringWithFormat:@"X%ld", obj.giftNum]; +} + +- (NetIndicateRegard *)presentIndicateRegard { + if (!_presentIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _presentIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _presentIndicateRegard.contentMode = UIViewContentModeScaleAspectFill; + _presentIndicateRegard.layer.masksToBounds = YES; + } + return _presentIndicateRegard; +} + +- (UILabel *)presentConstituteSequencignation { + if (!_presentConstituteSequencignation) { + _presentConstituteSequencignation = [[UILabel alloc] init]; + _presentConstituteSequencignation.font = [UIFont systemFontOfSize:15]; + _presentConstituteSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _presentConstituteSequencignation; +} + +- (UILabel *)presentFigureSequencignation { + if (!_presentFigureSequencignation) { + _presentFigureSequencignation = [[UILabel alloc] init]; + _presentFigureSequencignation.font = [UIFont systemFontOfSize:12]; + _presentFigureSequencignation.textColor = [DJDKMIMOMColor instantEssayPrettify]; + } + return _presentFigureSequencignation; +} + +@end diff --git a/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionPrototypeAscensionRegard.h b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionPrototypeAscensionRegard.h new file mode 100644 index 00000000..7511f51e --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionPrototypeAscensionRegard.h @@ -0,0 +1,16 @@ +// +// CommunicationSatisfactionPrototypeAscensionRegard.h +// YUMI +// +// Created by YUMI on 2022/4/19. +// + +#import "CommunicationSatisfactionCustomRegard.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface CommunicationSatisfactionPrototypeAscensionRegard : CommunicationSatisfactionCustomRegard + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionPrototypeAscensionRegard.m b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionPrototypeAscensionRegard.m new file mode 100644 index 00000000..b3733280 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionPrototypeAscensionRegard.m @@ -0,0 +1,136 @@ +// +// CommunicationSatisfactionPrototypeAscensionRegard.m +// YUMI +// +// Created by YUMI on 2022/4/19. +// + +#import "CommunicationSatisfactionPrototypeAscensionRegard.h" +#import +#import "DJDKMIMOMColor.h" +#import "NSObject+MJExtension.h" +#import "YUMIHtmlUrl.h" +#import "XCCurrentVCStackExecutive.h" +#import "CommunicationPrototypeAscensionMatrix.h" +#import "YUMITissueRegardGovernancer.h" + +@interface CommunicationSatisfactionPrototypeAscensionRegard () + +@property (nonatomic,strong) UIImageView *brandIndicateRegard; +@property (nonatomic,strong) UILabel *prototypeSequencignation; +@property (nonatomic,strong) UIView * burlywoodRegard; +@property (nonatomic,strong) UIButton *examineBtuton; +@property (nonatomic,strong) UIImageView *arrowIndicateRegard; + +@end + +@implementation CommunicationSatisfactionPrototypeAscensionRegard + + +- (void)render:(CommunicationBaseMatrix *)model { + CommunicationPrototypeAscensionMatrix *obj = (CommunicationPrototypeAscensionMatrix *)model; + self.brandIndicateRegard.image = [UIImage imageNamed:obj.imageName]; + self.prototypeSequencignation.text = obj.level; +} + +- (void)initSubViews { + [super initSubViews]; + [self.encourageRegard addSubview:self.brandIndicateRegard]; + [self.encourageRegard addSubview:self.prototypeSequencignation]; + [self.encourageRegard addSubview:self.burlywoodRegard]; + [self.encourageRegard addSubview:self.examineBtuton]; + [self.encourageRegard addSubview:self.arrowIndicateRegard]; +} + +- (void)initChildLyRestrictions { + [super initChildLyRestrictions]; + [self.encourageRegard mas_remakeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self).insets(UIEdgeInsetsMake(MESSAGE_PADDING, MESSAGE_PADDING, 0, MESSAGE_PADDING)); + make.size.mas_equalTo(CGSizeMake(220, 116)); + }]; + + + [self.brandIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(64,64)); + make.left.mas_equalTo(self.encourageRegard); + make.top.mas_equalTo(self.encourageRegard); + }]; + + [self.prototypeSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.brandIndicateRegard.mas_right).offset(10); + make.right.mas_equalTo(self.encourageRegard); + make.top.mas_equalTo(self.brandIndicateRegard).offset(10); + }]; + + [self.burlywoodRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.encourageRegard); + make.height.mas_equalTo(0.5); + make.top.mas_equalTo(self.brandIndicateRegard.mas_bottom).offset(10); + }]; + + [self.examineBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.encourageRegard); + make.height.mas_equalTo(40); + make.top.mas_equalTo(self.burlywoodRegard.mas_bottom); + }]; + + [self.arrowIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(6.5, 11)); + make.right.mas_equalTo(self.encourageRegard); + make.centerY.mas_equalTo(self.examineBtuton); + }]; +} +#pragma mark - Event Response +- (void)examineBtutonPerformance:(UIButton *)sender { + YUMITissueRegardGovernancer * webVewC = [[YUMITissueRegardGovernancer alloc] init]; + webVewC.url = URLWithType(kUserLevelURL); + [[XCCurrentVCStackExecutive shareManager].getCurrentVC.navigationController pushViewController:webVewC animated:YES]; +} +#pragma mark - Getters And Setters +- (UIImageView *)brandIndicateRegard { + if (!_brandIndicateRegard) { + _brandIndicateRegard = [[UIImageView alloc] init]; + } + return _brandIndicateRegard; +} + +- (UILabel *)prototypeSequencignation { + if (!_prototypeSequencignation) { + _prototypeSequencignation = [[UILabel alloc] init]; + _prototypeSequencignation.font = [UIFont systemFontOfSize:14 weight:UIFontWeightMedium]; + _prototypeSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _prototypeSequencignation.numberOfLines = 2; + } + return _prototypeSequencignation; +} + +- (UIButton *)examineBtuton { + if (!_examineBtuton) { + _examineBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_examineBtuton setTitle:YMLocalizedString(@"Message_Content_Level_Upgrade_View_0") forState:UIControlStateNormal]; + [_examineBtuton setTitleColor:UIColorFromRGB(0x4C5AF1) forState:UIControlStateNormal]; + _examineBtuton.titleLabel.font = [UIFont systemFontOfSize:14]; + [_examineBtuton addTarget:self action:@selector(examineBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _examineBtuton; +} + +- (UIView *)burlywoodRegard { + if (!_burlywoodRegard) { + _burlywoodRegard = [[UIView alloc] init]; + _burlywoodRegard.backgroundColor = [DJDKMIMOMColor dividerPrettify]; + } + return _burlywoodRegard; +} + +- (UIImageView *)arrowIndicateRegard { + if (!_arrowIndicateRegard) { + _arrowIndicateRegard = [[UIImageView alloc] init]; + _arrowIndicateRegard.userInteractionEnabled = YES; + _arrowIndicateRegard.image = [UIImage imageNamed:@"yumi_same_right_arrow"]; + } + return _arrowIndicateRegard; +} + + +@end diff --git a/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionRevokeRegard.h b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionRevokeRegard.h new file mode 100644 index 00000000..e1c1fc3b --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionRevokeRegard.h @@ -0,0 +1,16 @@ +// +// CommunicationSatisfactionRevokeRegard.h +// YUMI +// +// Created by YUMI on 2023/1/31. +// + +#import +#import "CommunicationContentCeremony.h" +NS_ASSUME_NONNULL_BEGIN + +@interface CommunicationSatisfactionRevokeRegard : UIView + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionRevokeRegard.m b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionRevokeRegard.m new file mode 100644 index 00000000..c5c476da --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionRevokeRegard.m @@ -0,0 +1,48 @@ +// +// CommunicationSatisfactionRevokeRegard.m +// YUMI +// +// Created by YUMI on 2023/1/31. +// + +#import "CommunicationSatisfactionRevokeRegard.h" +#import +#import "DJDKMIMOMColor.h" +#import "CommunicationRevokeMatrix.h" + +@interface CommunicationSatisfactionRevokeRegard() + +@property (nonatomic, strong) UILabel * intratemporalSequencignation; + +@end + +@implementation CommunicationSatisfactionRevokeRegard + +- (instancetype)init { + self = [super init]; + if (self) { + [self addSubview:self.intratemporalSequencignation]; + [self.intratemporalSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.equalTo(self).with.insets(UIEdgeInsetsMake(MESSAGE_PADDING, MESSAGE_PADDING, MESSAGE_PADDING, MESSAGE_PADDING)); + }]; + } + return self; +} + +- (void)render:(nonnull CommunicationBaseMatrix *)model { + self.superview.backgroundColor = [UIColor clearColor]; + CommunicationRevokeMatrix * timeModel= (CommunicationRevokeMatrix *)model; + NSString * communicationEssay = timeModel.title; + self.intratemporalSequencignation.text = communicationEssay; +} + +- (UILabel *)intratemporalSequencignation { + if (!_intratemporalSequencignation) { + _intratemporalSequencignation = [[UILabel alloc] init]; + _intratemporalSequencignation.font = [UIFont systemFontOfSize:10]; + _intratemporalSequencignation.textAlignment = NSTextAlignmentCenter; + _intratemporalSequencignation.textColor = [DJDKMIMOMColor essayTertiusPrettify]; + } + return _intratemporalSequencignation; +} +@end diff --git a/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionSeparationsAutoRegard.h b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionSeparationsAutoRegard.h new file mode 100644 index 00000000..b882084b --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionSeparationsAutoRegard.h @@ -0,0 +1,16 @@ +// +// CommunicationSatisfactionSeparationsAutoRegard.h +// YUMI +// +// Created by YUMI on 2022/8/26. +// + +#import "CommunicationSatisfactionCustomRegard.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface CommunicationSatisfactionSeparationsAutoRegard : CommunicationSatisfactionCustomRegard + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionSeparationsAutoRegard.m b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionSeparationsAutoRegard.m new file mode 100644 index 00000000..9fb7ad35 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionSeparationsAutoRegard.m @@ -0,0 +1,88 @@ +// +// CommunicationSatisfactionSeparationsAutoRegard.m +// YUMI +// +// Created by YUMI on 2022/8/26. +// + +#import "CommunicationSatisfactionSeparationsAutoRegard.h" +#import +#import "NSObject+MJExtension.h" +#import "DJDKMIMOMColor.h" +#import "CommunicationSeparationsAutoMatrix.h" +@interface CommunicationSatisfactionSeparationsAutoRegard () + +@property (nonatomic, strong) UILabel *titleLabel; +@property (nonatomic, strong) UILabel *intratemporalSequencignation; +@property (nonatomic, strong) UILabel *communicationSequencignation; +@end + +@implementation CommunicationSatisfactionSeparationsAutoRegard + +- (void)initSubViews { + [super initSubViews]; + [self addSubview:self.encourageRegard]; + + [self.encourageRegard addSubview:self.titleLabel]; + [self.encourageRegard addSubview:self.intratemporalSequencignation]; + [self.encourageRegard addSubview:self.communicationSequencignation]; +} + +- (void)initChildLyRestrictions { + [super initChildLyRestrictions]; + [self.encourageRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(250, 120)); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(14.5); + make.top.mas_equalTo(10); + }]; + + [self.intratemporalSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(-14.5); + make.centerY.mas_equalTo(self.titleLabel); + }]; + + [self.communicationSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self).inset(14.5); + make.top.mas_equalTo(self.titleLabel.mas_bottom).offset(12.5); + }]; +} + +- (void)render:(CommunicationBaseMatrix *)message { + CommunicationSeparationsAutoMatrix *obj = (CommunicationSeparationsAutoMatrix *)message; + self.titleLabel.text = obj.title; + self.intratemporalSequencignation.text = obj.time; + self.communicationSequencignation.attributedText = obj.attributedText; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.textColor = UIColorFromRGB(0x333333); + _titleLabel.font = [UIFont boldSystemFontOfSize:15]; + } + return _titleLabel; +} + +- (UILabel *)intratemporalSequencignation { + if (!_intratemporalSequencignation) { + _intratemporalSequencignation = [[UILabel alloc] init]; + _intratemporalSequencignation.textColor = UIColorFromRGB(0x999999); + _intratemporalSequencignation.font = [UIFont systemFontOfSize:12]; + _intratemporalSequencignation.textAlignment = NSTextAlignmentRight; + } + return _intratemporalSequencignation; +} + +- (UILabel *)communicationSequencignation { + if (!_communicationSequencignation) { + _communicationSequencignation = [[UILabel alloc] init]; + _communicationSequencignation.textColor = UIColorFromRGB(0x333333); + _communicationSequencignation.font = [UIFont systemFontOfSize:14]; + _communicationSequencignation.numberOfLines = 0; + } + return _communicationSequencignation; +} +@end diff --git a/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionSeparationsRegard.h b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionSeparationsRegard.h new file mode 100644 index 00000000..87f9666d --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionSeparationsRegard.h @@ -0,0 +1,16 @@ +// +// CommunicationSatisfactionSeparationsRegard.h +// YUMI +// +// Created by YUMI on 2022/8/25. +// + +#import "CommunicationSatisfactionCustomRegard.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface CommunicationSatisfactionSeparationsRegard : CommunicationSatisfactionCustomRegard + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionSeparationsRegard.m b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionSeparationsRegard.m new file mode 100644 index 00000000..147ca6e1 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionSeparationsRegard.m @@ -0,0 +1,119 @@ +// +// CommunicationSatisfactionSeparationsRegard.m +// YUMI +// +// Created by YUMI on 2022/8/25. +// + +#import "CommunicationSatisfactionSeparationsRegard.h" +#import +#import "NetIndicateRegard.h" +#import "DJDKMIMOMColor.h" +#import "YUMIPresentStorage.h" +#import "NSObject+MJExtension.h" +#import "XCCurrentVCStackExecutive.h" +#import "ClientDisposition.h" +#import "PresentAchieveAbstractMatrix.h" +#import "CommunicationSeparationsMatrix.h" +#import "YUMISeparationsSpecificRegardGovernancer.h" +#import "YUMIMomentsSimpleSpecificRegardGovernancer.h" +#import "SeparationsAbstractMatrix.h" +@interface CommunicationSatisfactionSeparationsRegard () +@property (nonatomic,strong) NetIndicateRegard *reminiscenceRegard; +@property (nonatomic,strong) UILabel *titleLabel; +@property (nonatomic,strong) UILabel *satisfperformanceSequencignation; +@property (nonatomic,strong) SeparationsAbstractMatrix *reminiscence; +@end + +@implementation CommunicationSatisfactionSeparationsRegard + + +- (void)initSubViews { + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(betowardsEncourageRegard)]; + [self.encourageRegard addGestureRecognizer:tap]; + [super initSubViews]; + [self addSubview:self.encourageRegard]; + + [self.encourageRegard addSubview:self.reminiscenceRegard]; + [self.encourageRegard addSubview:self.titleLabel]; + [self.encourageRegard addSubview:self.satisfperformanceSequencignation]; +} + +- (void)initChildLyRestrictions { + [super initChildLyRestrictions]; + [self.encourageRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(250, 60)); + }]; + + [self.reminiscenceRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(50, 50)); + make.left.mas_equalTo(self.encourageRegard); + make.centerY.mas_equalTo(self.encourageRegard); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.reminiscenceRegard.mas_right).offset(10); + make.bottom.mas_equalTo(self.reminiscenceRegard.mas_centerY).offset(-3); + make.right.mas_lessThanOrEqualTo(self.encourageRegard).offset(-10); + }]; + + [self.satisfperformanceSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.titleLabel); + make.top.mas_equalTo(self.reminiscenceRegard.mas_centerY).offset(3); + make.right.mas_lessThanOrEqualTo(self.encourageRegard).offset(-10); + }]; +} + +- (void)betowardsEncourageRegard { + YUMISeparationsSpecificRegardGovernancer * specificRegard = [[YUMISeparationsSpecificRegardGovernancer alloc] init]; + specificRegard.monentsInfo = self.reminiscence; + [[XCCurrentVCStackExecutive shareManager].getCurrentVC.navigationController pushViewController:specificRegard animated:YES]; + if ([ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + YUMISeparationsSpecificRegardGovernancer * specificRegard = [[YUMISeparationsSpecificRegardGovernancer alloc] init]; + specificRegard.monentsInfo = self.reminiscence; + [[XCCurrentVCStackExecutive shareManager].getCurrentVC.navigationController pushViewController:specificRegard animated:YES]; + }else{ + YUMIMomentsSimpleSpecificRegardGovernancer * specificRegard = [[YUMIMomentsSimpleSpecificRegardGovernancer alloc] init]; + specificRegard.monentsInfo = self.reminiscence; + [[XCCurrentVCStackExecutive shareManager].getCurrentVC.navigationController pushViewController:specificRegard animated:YES]; + } +} + +- (void)render:(CommunicationBaseMatrix *)message { + CommunicationSeparationsMatrix *obj = (CommunicationSeparationsMatrix *)message; + self.reminiscence = obj.monentsInfo; + self.reminiscenceRegard.imageUrl = obj.imageUrl; + self.titleLabel.text = obj.title; + self.satisfperformanceSequencignation.text = self.reminiscence.content; +} + +- (NetIndicateRegard *)reminiscenceRegard { + if (!_reminiscenceRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _reminiscenceRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _reminiscenceRegard.contentMode = UIViewContentModeScaleAspectFill; + _reminiscenceRegard.layer.masksToBounds = YES; + _reminiscenceRegard.layer.cornerRadius = 10; + } + return _reminiscenceRegard; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.font = [UIFont systemFontOfSize:15]; + _titleLabel.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _titleLabel; +} + +- (UILabel *)satisfperformanceSequencignation { + if (!_satisfperformanceSequencignation) { + _satisfperformanceSequencignation = [[UILabel alloc] init]; + _satisfperformanceSequencignation.font = [UIFont systemFontOfSize:12]; + _satisfperformanceSequencignation.textColor = [DJDKMIMOMColor instantEssayPrettify]; + } + return _satisfperformanceSequencignation; +}@end diff --git a/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionTweetRegard.h b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionTweetRegard.h new file mode 100644 index 00000000..66b8ade9 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionTweetRegard.h @@ -0,0 +1,16 @@ +// +// CommunicationSatisfactionTweetRegard.h +// YUMI +// +// Created by YUMI on 2022/4/28. +// + +#import "CommunicationSatisfactionCustomRegard.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface CommunicationSatisfactionTweetRegard : CommunicationSatisfactionCustomRegard + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionTweetRegard.m b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionTweetRegard.m new file mode 100644 index 00000000..43e0c3a8 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionTweetRegard.m @@ -0,0 +1,223 @@ +// +// CommunicationSatisfactionTweetRegard.m +// YUMI +// +// Created by YUMI on 2022/4/28. +// + +#import "CommunicationSatisfactionTweetRegard.h" +#import +#import "DJDKMIMOMColor.h" +#import "NetIndicateRegard.h" +#import "NSObject+MJExtension.h" +#import "XCCurrentVCStackExecutive.h" +#import "YUMIConstant.h" +#import "CommunicationTweetMatrix.h" +#import "SatisfactionTweetMatrix.h" +#import "YUMITissueRegardGovernancer.h" +#import "YUMIChamberRegardGovernancer.h" + +@interface CommunicationSatisfactionTweetRegard () +@property (nonatomic,strong) NetIndicateRegard *brandIndicateRegard; +@property (nonatomic,strong) UILabel *titleLabel; +@property (nonatomic,strong) UIView * burlywoodRegard; +@property (nonatomic,strong) UILabel *subChampionSequencignation; +@property (nonatomic,strong) UIButton *examineBtuton; +@property (nonatomic, strong) UIImageView *isStrangeIndicateRegard; +@property (nonatomic,strong) SatisfactionTweetMatrix *tweetMatrix; +@property (nonatomic, copy) NSString *messageId; + +@end + + +@implementation CommunicationSatisfactionTweetRegard + +- (void)render:(CommunicationBaseMatrix *)model1 { + CommunicationTweetMatrix *obj = (CommunicationTweetMatrix *)model1; + SatisfactionTweetMatrix * model = obj.tweetInfo; + self.tweetMatrix = model; + self.messageId = model1.message.messageId; + self.brandIndicateRegard.imageUrl = model.picUrl; + self.titleLabel.attributedText = [[NSMutableAttributedString alloc] initWithString:model.title attributes:[self communictowardsionEssayTowardstibutes:[UIFont systemFontOfSize:16] color:[DJDKMIMOMColor mainEssayPrettify]]]; + self.subChampionSequencignation.attributedText = [[NSMutableAttributedString alloc] initWithString:model.desc attributes:[self communictowardsionEssayTowardstibutes:[UIFont systemFontOfSize:13] color:[DJDKMIMOMColor instantEssayPrettify]]]; + + CGFloat oneHeight = [YMLocalizedString(@"Message_Content_Tweet_View_0") boundingRectWithSize:CGSizeMake(240, CGFLOAT_MAX) options:NSStringDrawingUsesFontLeading | NSStringDrawingUsesLineFragmentOrigin + attributes:[self communictowardsionEssayTowardstibutes:[UIFont systemFontOfSize:16] color:[DJDKMIMOMColor mainEssayPrettify]] context:nil].size.height + 2.5; + + CGFloat titleHeight = [model.title boundingRectWithSize:CGSizeMake(240, CGFLOAT_MAX) options:NSStringDrawingUsesFontLeading | NSStringDrawingUsesLineFragmentOrigin + attributes:[self communictowardsionEssayTowardstibutes:[UIFont systemFontOfSize:16] color:[DJDKMIMOMColor mainEssayPrettify]] context:nil].size.height; + if (titleHeight <= oneHeight * 2) { + [self.titleLabel mas_updateConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(titleHeight + 5); + }]; + } else{ + [self.titleLabel mas_updateConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(oneHeight * 2); + }]; + } + + + + CGFloat desHeight = [model.desc boundingRectWithSize:CGSizeMake(240, CGFLOAT_MAX) options:NSStringDrawingUsesFontLeading | NSStringDrawingUsesLineFragmentOrigin + attributes:[self communictowardsionEssayTowardstibutes:[UIFont systemFontOfSize:13] color:[DJDKMIMOMColor mainEssayPrettify]] context:nil].size.height; + [self.subChampionSequencignation mas_updateConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(desHeight); + }]; + + NSArray *redPacketHistory = [[NSUserDefaults standardUserDefaults] objectForKey:kTuWenMessageHistory]; + if ([redPacketHistory containsObject: model1.message.messageId]) { + self.isStrangeIndicateRegard.hidden = YES; + } else { + self.isStrangeIndicateRegard.hidden = NO; + } +} + +- (NSDictionary *)communictowardsionEssayTowardstibutes:(UIFont *)font color:(UIColor *)color { + NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init]; + [paragraphStyle setLineSpacing:2.5]; + return @{ + NSFontAttributeName:font, + NSParagraphStyleAttributeName: paragraphStyle, + NSForegroundColorAttributeName:color + }; +} + +- (void)initSubViews { + [super initSubViews]; + [self.encourageRegard addSubview:self.titleLabel]; + [self.encourageRegard addSubview:self.brandIndicateRegard]; + [self.encourageRegard addSubview:self.burlywoodRegard]; + [self.encourageRegard addSubview:self.subChampionSequencignation]; + [self.encourageRegard addSubview:self.examineBtuton]; + [self.encourageRegard addSubview:self.isStrangeIndicateRegard]; +} + +- (void)initChildLyRestrictions { + [super initChildLyRestrictions]; + [self.encourageRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(280); + make.bottom.mas_equalTo(self.examineBtuton); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.encourageRegard); + make.top.mas_equalTo(self.encourageRegard); + make.height.mas_equalTo(18); + }]; + + [self.brandIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.encourageRegard); + make.top.mas_equalTo(self.titleLabel.mas_bottom).offset(10); + make.height.mas_equalTo(87); + }]; + + [self.subChampionSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.encourageRegard); + make.top.mas_equalTo(self.brandIndicateRegard.mas_bottom).offset(10); + make.height.mas_equalTo(18); + }]; + + [self.burlywoodRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.encourageRegard); + make.height.mas_equalTo(0.5); + make.top.mas_equalTo(self.subChampionSequencignation.mas_bottom).offset(5); + }]; + + [self.examineBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.encourageRegard); + make.top.mas_equalTo(self.burlywoodRegard.mas_bottom).offset(10); + make.height.mas_equalTo(20); + }]; + [self.isStrangeIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self.encourageRegard); + make.top.mas_equalTo(self.encourageRegard).mas_offset(3); + make.size.mas_equalTo(CGSizeMake(24, 10)); + }]; +} + +#pragma mark - Event Response +- (void)examineBtutonPerformance:(UIButton *)sender { + + NSArray *history = [[NSUserDefaults standardUserDefaults] objectForKey:kTuWenMessageHistory]; + NSMutableArray *tempArray = [NSMutableArray arrayWithArray:history]; + if (![tempArray containsObject:self.messageId]) { + [tempArray addObject:self.messageId]; + [[NSUserDefaults standardUserDefaults] setObject:tempArray forKey:kTuWenMessageHistory]; + [[NSUserDefaults standardUserDefaults] synchronize]; + } + if (self.tweetMatrix.routerType == 1) { + [YUMIChamberRegardGovernancer unfoildChamber:self.tweetMatrix.routerValue viewController:[XCCurrentVCStackExecutive shareManager].getCurrentVC]; + } else if (self.tweetMatrix.routerType == 2) { + YUMITissueRegardGovernancer * webVewC = [[YUMITissueRegardGovernancer alloc] init]; + webVewC.url = self.tweetMatrix.routerValue; + [[XCCurrentVCStackExecutive shareManager].getCurrentVC.navigationController pushViewController:webVewC animated:YES]; + } else { + if ([self.tweetMatrix.webUrl hasPrefix:@"http"]) { + YUMITissueRegardGovernancer * webVewC = [[YUMITissueRegardGovernancer alloc] init]; + webVewC.url = self.tweetMatrix.webUrl; + [[XCCurrentVCStackExecutive shareManager].getCurrentVC.navigationController pushViewController:webVewC animated:YES]; + } + } +} + +#pragma mark - Getters And Setters +- (NetIndicateRegard *)brandIndicateRegard { + if (!_brandIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _brandIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _brandIndicateRegard.layer.masksToBounds = YES; + _brandIndicateRegard.layer.cornerRadius = 10; + _brandIndicateRegard.contentMode = UIViewContentModeScaleAspectFill; + _brandIndicateRegard.layer.masksToBounds = YES; + } + return _brandIndicateRegard; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.numberOfLines = 2; + _titleLabel.preferredMaxLayoutWidth = 240; + } + return _titleLabel; +} + +- (UIView *)burlywoodRegard { + if (!_burlywoodRegard) { + _burlywoodRegard = [[UIView alloc] init]; + _burlywoodRegard.backgroundColor = [DJDKMIMOMColor dividerPrettify]; + } + return _burlywoodRegard; +} + +- (UILabel *)subChampionSequencignation { + if (!_subChampionSequencignation) { + _subChampionSequencignation = [[UILabel alloc] init]; + _subChampionSequencignation.numberOfLines = 0; + _subChampionSequencignation.preferredMaxLayoutWidth = 240; + } + return _subChampionSequencignation; +} + +- (UIButton *)examineBtuton { + if (!_examineBtuton) { + _examineBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_examineBtuton setTitle:YMLocalizedString(@"Message_Content_Tweet_View_1") forState:UIControlStateNormal]; + [_examineBtuton setTitleColor:UIColorFromRGB(0x4C5AF1) forState:UIControlStateNormal]; + _examineBtuton.titleLabel.font = [UIFont systemFontOfSize:14]; + [_examineBtuton addTarget:self action:@selector(examineBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _examineBtuton; +} + +- (UIImageView *)isStrangeIndicateRegard { + if (!_isStrangeIndicateRegard) { + _isStrangeIndicateRegard = [[UIImageView alloc] init]; + _isStrangeIndicateRegard.image = [UIImage imageNamed:@"yumi_present_type_newIcon"]; + _isStrangeIndicateRegard.hidden = YES; + } + return _isStrangeIndicateRegard; +} + +@end diff --git a/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionUnSupportRegard.h b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionUnSupportRegard.h new file mode 100644 index 00000000..2f0e7329 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionUnSupportRegard.h @@ -0,0 +1,16 @@ +// +// MessageContentUnSupport.h +// YUMI +// +// Created by YUMI on 2022/4/19. +// + +#import +#import "CommunicationContentCeremony.h" +NS_ASSUME_NONNULL_BEGIN + +@interface CommunicationSatisfactionUnSupportRegard : UIView + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionUnSupportRegard.m b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionUnSupportRegard.m new file mode 100644 index 00000000..417b4f31 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionUnSupportRegard.m @@ -0,0 +1,61 @@ +// +// MessageContentUnSupport.m +// YUMI +// +// Created by YUMI on 2022/4/19. +// + +#import "CommunicationSatisfactionUnSupportRegard.h" +#import +#import +#import "DJDKMIMOMColor.h" +#import "CommunicationUnSupportMatrix.h" + + +@interface CommunicationSatisfactionUnSupportRegard () +@property (nonatomic,strong) UILabel *unSupportSequencignation; +@end + +@implementation CommunicationSatisfactionUnSupportRegard + +- (void)render:(CommunicationBaseMatrix *)message { + NIMCustomObject *obj = (NIMCustomObject *)message.message.messageObject; + NSLog(@"%@", obj); +} + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.unSupportSequencignation]; +} + +- (void)initChildLyRestrictions { + [self.unSupportSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.equalTo(self).with.insets(UIEdgeInsetsMake(MESSAGE_PADDING, MESSAGE_PADDING, MESSAGE_PADDING, MESSAGE_PADDING)); + }]; +} + +#pragma mark - Getters And Setters +- (UILabel *)unSupportSequencignation { + if (!_unSupportSequencignation) { + _unSupportSequencignation = [[UILabel alloc]initWithFrame:CGRectZero]; + _unSupportSequencignation.preferredMaxLayoutWidth = CONTENT_WIDTH_MAX - MESSAGE_PADDING * 2; + _unSupportSequencignation.textColor = DJDKMIMOMColor.mainEssayPrettify; + _unSupportSequencignation.text = YMLocalizedString(@"Message_Content_Un_Support_View_0"); + _unSupportSequencignation.textAlignment = NSTextAlignmentCenter; + _unSupportSequencignation.font = [UIFont systemFontOfSize:13]; + } + return _unSupportSequencignation; +} + + + +@end diff --git a/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionUnfoildEnergeticRegard.h b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionUnfoildEnergeticRegard.h new file mode 100644 index 00000000..bf46cc9e --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionUnfoildEnergeticRegard.h @@ -0,0 +1,16 @@ +// +// MessageContentOnlineView.h +// YUMI +// +// Created by YUMI on 2022/4/19. +// 关注的人 开启直播 + +#import "CommunicationSatisfactionCustomRegard.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface CommunicationSatisfactionUnfoildEnergeticRegard : CommunicationSatisfactionCustomRegard + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionUnfoildEnergeticRegard.m b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionUnfoildEnergeticRegard.m new file mode 100644 index 00000000..c7930e43 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionUnfoildEnergeticRegard.m @@ -0,0 +1,144 @@ +// +// MessageContentOnlineView.m +// YUMI +// +// Created by YUMI on 2022/4/19. +// + +#import "CommunicationSatisfactionUnfoildEnergeticRegard.h" +#import +#import "NetIndicateRegard.h" +#import "DJDKMIMOMColor.h" +#import "XCCurrentVCStackExecutive.h" +#import "ChamberHostRepresendtation.h" +#import "SatisfactionUnfoildEnergeticAbstractMatrix.h" +#import "CommunicationUnfoildEnergeticMatrix.h" +#import "YUMIChamberRegardGovernancer.h" + + +@interface CommunicationSatisfactionUnfoildEnergeticRegard () +@property (nonatomic,strong) NetIndicateRegard *intelligenceportraitIndicateRegard; +@property (nonatomic,strong) UILabel *titleLabel; +@property (nonatomic,strong) UILabel *idSequencignation; +@property (nonatomic,strong) SatisfactionUnfoildEnergeticAbstractMatrix *userInfo; +@end + +@implementation CommunicationSatisfactionUnfoildEnergeticRegard + + +- (void)render:(CommunicationBaseMatrix *)model { + CommunicationUnfoildEnergeticMatrix *obj = (CommunicationUnfoildEnergeticMatrix *)model; + self.userInfo = obj.userInfo; + if (obj.avatar.length > 0 && obj.nick.length > 0) { + self.intelligenceportraitIndicateRegard.imageUrl = obj.avatar; + self.idSequencignation.text = obj.nick; + } else { + if (obj.uid.integerValue > 0) { + NSArray *uids = @[obj.uid]; + [[NIMSDK sharedSDK].userManager fetchUserInfos:uids completion:^(NSArray * _Nullable users, NSError * _Nullable error) { + if (error == nil) { + NIMUser *user = users[0]; + self.intelligenceportraitIndicateRegard.imageUrl = user.userInfo.avatarUrl; + self.idSequencignation.text = [NSString stringWithFormat:YMLocalizedString(@"Message_Content_Open_Live_View_0"), user.userInfo.nickName]; + } + }]; + } + + } +} + +- (void)initSubViews { + [super initSubViews]; + [self addSubview:self.encourageRegard]; + + [self.encourageRegard addSubview:self.intelligenceportraitIndicateRegard]; + [self.encourageRegard addSubview:self.titleLabel]; + [self.encourageRegard addSubview:self.idSequencignation]; + UITapGestureRecognizer * tap= [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(encourageRegardBetowardsRecognozer)]; + [self.encourageRegard addGestureRecognizer:tap]; +} + + +- (void)initChildLyRestrictions { + [super initChildLyRestrictions]; + [self.encourageRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self).insets(UIEdgeInsetsMake(MESSAGE_PADDING, MESSAGE_PADDING, MESSAGE_PADDING, MESSAGE_PADDING)); + make.size.mas_equalTo(CGSizeMake(200, 50)); + }]; + + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(47, 47)); + make.centerY.mas_equalTo(self.encourageRegard); + make.left.mas_equalTo(self.encourageRegard).offset(10); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_right).offset(10); + make.bottom.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_centerY).offset(-2); + make.right.mas_lessThanOrEqualTo(self.encourageRegard); + }]; + + [self.idSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.titleLabel); + make.top.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_centerY).offset(2); + }]; +} + +#pragma mark - Event Response +- (void)encourageRegardBetowardsRecognozer { + if (self.userInfo.uid.length > 0) { + UIViewController * controllerView = [XCCurrentVCStackExecutive shareManager].getCurrentVC; + + [controllerView.navigationController.viewControllers enumerateObjectsUsingBlock:^(__kindof UIViewController * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if ([obj isKindOfClass:[YUMIChamberRegardGovernancer class]]) { + [controllerView.navigationController popToRootViewControllerAnimated:NO]; + YUMIChamberRegardGovernancer * rooomVC = obj; + [rooomVC exitRoom]; + *stop = YES; + } + }]; + if ([[XCCurrentVCStackExecutive shareManager].getCurrentVC isKindOfClass:[YUMIChamberRegardGovernancer class]]) { + UIViewController * controller = [XCCurrentVCStackExecutive shareManager].getCurrentVC.navigationController.presentingViewController; + if (controller) { + [YUMIChamberRegardGovernancer unfoildChamber:self.userInfo.uid viewController:controller]; + } + } else { + [YUMIChamberRegardGovernancer unfoildChamber:self.userInfo.uid viewController:[XCCurrentVCStackExecutive shareManager].getCurrentVC]; + } + + } +} + +#pragma mark - Getters And Setters +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _intelligenceportraitIndicateRegard.contentMode = UIViewContentModeScaleAspectFill; + } + return _intelligenceportraitIndicateRegard; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.font = [UIFont systemFontOfSize:17]; + _titleLabel.text = @"你关注的TA"; + _titleLabel.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _titleLabel; +} + +- (UILabel *)idSequencignation { + if (!_idSequencignation) { + _idSequencignation = [[UILabel alloc] init]; + _idSequencignation.font = [UIFont systemFontOfSize:13]; + _idSequencignation.textColor = [DJDKMIMOMColor instantEssayPrettify]; + } + return _idSequencignation; +} + +@end diff --git a/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionUnionRegard.h b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionUnionRegard.h new file mode 100644 index 00000000..5b185d6a --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionUnionRegard.h @@ -0,0 +1,15 @@ +// +// CommunicationSatisfactionUnionRegard.h +// YUMI +// +// Created by YUMI on 2022/4/18. +// + +#import "CommunicationSatisfactionCustomRegard.h" +NS_ASSUME_NONNULL_BEGIN + +@interface CommunicationSatisfactionUnionRegard : CommunicationSatisfactionCustomRegard + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionUnionRegard.m b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionUnionRegard.m new file mode 100644 index 00000000..af3bc424 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionUnionRegard.m @@ -0,0 +1,361 @@ +// +// CommunicationSatisfactionUnionRegard.m +// YUMI +// +// Created by YUMI on 2022/4/18. +// + +#import "CommunicationSatisfactionUnionRegard.h" +#import +#import +#import "HttpRequestFacilitater.h" +#import "AttachmentMatrix.h" +#import "UnionCommunicationMatrix.h" +#import "NSObject+MJExtension.h" +#import "DJDKMIMOMColor.h" +#import "XNDJTBWGLoadingTool.h" +#import "AccountAbstractStorage.h" +#import "YUMIManeUnionRegardGovernancer.h" +#import "XCCurrentVCStackExecutive.h" +#import "NSMutableDictionary+Saft.h" +#import "CommunicationUnionMatrix.h" +#define MESSAGE_MAX_WIDTH 230 +#define MESSAGE_TEXT_PADDING 10 +@interface CommunicationSatisfactionUnionRegard () +@property (nonatomic,strong) UIStackView *stackView; +@property (nonatomic,strong) UIView * contentView; +@property (nonatomic,strong) UILabel *titleLabel; +@property (nonatomic,strong) YYLabel *satisfperformanceSequencignation; +@property (nonatomic,strong) UIStackView *governanceHierarchyRegard; +@property (nonatomic,strong) UIButton *rejectBtuton; +@property (nonatomic,strong) UIButton *consequentBtuton; +@property (nonatomic,strong) UIButton *agreeBtuton; +@property (nonatomic,strong) UnionCommunicationMatrix *communicationAbstract; +@property (nonatomic,strong) AttachmentMatrix *attachment; +@property (nonatomic,strong) NIMMessage *message; +@end + +@implementation CommunicationSatisfactionUnionRegard + +- (void)initSubViews { + [super initSubViews]; + [self addSubview:self.encourageRegard]; + + [self.encourageRegard addSubview:self.stackView]; + + [self.stackView addArrangedSubview:self.contentView]; + [self.stackView addArrangedSubview:self.governanceHierarchyRegard]; + + [self.contentView addSubview:self.titleLabel]; + [self.contentView addSubview:self.satisfperformanceSequencignation]; + + [self.governanceHierarchyRegard addArrangedSubview:self.rejectBtuton]; + [self.governanceHierarchyRegard addArrangedSubview:self.consequentBtuton]; + [self.governanceHierarchyRegard addArrangedSubview:self.agreeBtuton]; +} + +- (void)initChildLyRestrictions { + [super initChildLyRestrictions]; + [self.encourageRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(MESSAGE_MAX_WIDTH); + make.bottom.mas_equalTo(self.stackView).offset(MESSAGE_TEXT_PADDING); + }]; + + [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self.encourageRegard); + }]; + + [self.contentView mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(MESSAGE_MAX_WIDTH); + make.height.mas_equalTo(100); + }]; + + [self.governanceHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(44); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.contentView); + make.top.mas_equalTo(self.contentView).offset(20); + }]; + + [self.satisfperformanceSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.left.mas_equalTo(self.contentView).inset(MESSAGE_TEXT_PADDING); + make.top.mas_equalTo(self.titleLabel.mas_bottom).offset(MESSAGE_TEXT_PADDING); + make.bottom.mas_equalTo(self.contentView); + }]; + + CGFloat itemWidth = (MESSAGE_MAX_WIDTH - 15 * 2 - 10) / 2.0; + [self.agreeBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(itemWidth); + make.height.mas_equalTo(30); + }]; + + [self.rejectBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(self.agreeBtuton); + }]; + + [self.consequentBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(30); + }]; +} + +- (void)render:(CommunicationUnionMatrix *)model { + self.message = model.message; + NIMCustomObject *obj = (NIMCustomObject *)model.message.messageObject; + AttachmentMatrix * attach = obj.attachment; + self.attachment = attach; + UnionCommunicationMatrix * info; + if (model.message.localExt) { + info = [UnionCommunicationMatrix mtowardsrixAboutImpactbasket:model.message.localExt]; + } else { + info = [UnionCommunicationMatrix mtowardsrixAboutImpactbasket:attach.data]; + } + self.communicationAbstract = info; + self.titleLabel.text = info.layout.title.content; + self.titleLabel.font = [UIFont systemFontOfSize:info.layout.title.fontSize weight:info.layout.title.fontBold?UIFontWeightBold:UIFontWeightRegular]; + NSMutableAttributedString *attr = [[NSMutableAttributedString alloc]init]; + UnionCommunicationProgrammingMatrix *layout = info.layout; + for (UnionCommunicationProgrammingAbstractMatrix *params in layout.contents) { + if (params.content.length > 0) { + if ([params.content containsString:@"/r/n"]) { + params.content = @"\r\n"; + } + NSMutableAttributedString *subAttr = [[NSMutableAttributedString alloc]initWithString:params.content]; + if (params.fontSize > 0) { + [subAttr addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:params.fontSize weight:params.fontBold?UIFontWeightBold:UIFontWeightRegular] range:NSMakeRange(0, subAttr.length)]; + } + + if (params.fontColor.length > 0) { + [subAttr addAttribute:NSForegroundColorAttributeName value:[DJDKMIMOMColor colorAboutHexBWSttr:params.fontColor] range:NSMakeRange(0, subAttr.length)]; + } + [attr appendAttributedString:subAttr]; + } + } + attr.yy_lineSpacing = 5; + self.satisfperformanceSequencignation.attributedText = attr; + self.satisfperformanceSequencignation.textAlignment = NSTextAlignmentCenter; + CGSize maxSize = CGSizeMake(MESSAGE_MAX_WIDTH - MESSAGE_TEXT_PADDING * 2, CGFLOAT_MAX); + YYTextLayout * contentLayout = [YYTextLayout layoutWithContainerSize:maxSize text:attr]; + CGFloat contentHeight = contentLayout.textBoundingSize.height + 5; + + [self.contentView mas_updateConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(contentHeight + 20+ 15 + 15); + }]; + BOOL isCommonNotice = (attach.second == Custom_Message_Sub_Hall_Notice || attach.second == Custom_Message_Sub_Hall_Become_Hall); + if (!isCommonNotice) { + self.governanceHierarchyRegard.hidden = NO; + if (info.msgStatus == 0) { + info.msgStatus = CommunicationUnionDeclare_Untreated; + } + [self shanktConsequentControll:info second:attach.second]; + } else { + self.governanceHierarchyRegard.hidden = YES; + [self.rejectBtuton setAttributedTitle:nil forState:UIControlStateNormal]; + } +} + +- (void)shanktConsequentControll:(UnionCommunicationMatrix *)info second:(Individuality_Noti_Metro_HALL)second { + self.rejectBtuton.hidden = YES; + self.agreeBtuton.hidden = YES; + self.consequentBtuton.hidden= YES; + CommunicationUnionDeclare state = info.msgStatus; + NSMutableAttributedString *attr = [[NSMutableAttributedString alloc]init]; + switch (state) { + case CommunicationUnionDeclare_Agree: + { + self.consequentBtuton.hidden = NO; + [attr appendAttributedString:[self cretowardsConsequentIdiosyncracy:YMLocalizedString(@"Message_Content_Guild_View_0") textColor:UIColorRGBAlpha(0x09BB07, 0.6)]]; + } + break; + case CommunicationUnionDeclare_Reject: + { + self.consequentBtuton.hidden= NO; + [attr appendAttributedString:[self cretowardsConsequentIdiosyncracy:YMLocalizedString(@"Message_Content_Guild_View_1") textColor:UIColorRGBAlpha(0xFF3852, 0.6)]]; + } + break; + case CommunicationUnionDeclare_OutData: + { + self.consequentBtuton.hidden= NO; + [attr appendAttributedString:[self cretowardsConsequentIdiosyncracy:YMLocalizedString(@"Message_Content_Guild_View_2") textColor:UIColorRGBAlpha(0x333333, 0.6)]]; + } + break; + case CommunicationUnionDeclare_Processed: + { + self.consequentBtuton.hidden= NO; + [attr appendAttributedString:[self cretowardsConsequentIdiosyncracy:YMLocalizedString(@"Message_Content_Guild_View_3") textColor:UIColorFromRGB(0xC6C6E9)]]; + } + break; + case CommunicationUnionDeclare_Untreated: + { + self.agreeBtuton.hidden = NO; + self.rejectBtuton.hidden = second == Custom_Message_Sub_Hall_Apply_Exit; + } + break; + default: + break; + } + if (attr.length > 0) { + [self.consequentBtuton setAttributedTitle:attr forState:UIControlStateNormal]; + } +} + +- (NSAttributedString *)cretowardsConsequentIdiosyncracy:(NSString *)message textColor:(UIColor *)textColor { + if (message.length <=0) { + message = @""; + } + NSMutableAttributedString *attr = [[NSMutableAttributedString alloc]initWithString:message]; + [attr addAttributes:@{NSFontAttributeName:[UIFont systemFontOfSize:14],NSForegroundColorAttributeName:textColor} range:NSMakeRange(0, attr.length)]; + return attr; +} + + +#pragma mark - Event Response +- (void)controllBtutonPerformance:(UIButton *)sender { + NSRange recordRange = [self.communicationAbstract.url rangeOfString:@"recordId="]; + NSString *recordId; + if (!NSEqualRanges(recordRange, NSMakeRange(NSNotFound, 0))) { + if (self.communicationAbstract.url.length > recordRange.location+recordRange.length) { + recordId = [self.communicationAbstract.url substringFromIndex:recordRange.location+recordRange.length]; + } + } + if (recordId.length > 0) { + NSMutableDictionary * params = [NSMutableDictionary dictionary]; + [params secureSetGroal:recordId forKey:@"recordId"]; + [params secureSetGroal:[AccountAbstractStorage instance].acquireCid forKey:@"uid"]; + + NSString * type = sender.tag == 1000? @"0" : @"1"; + if (self.attachment.second == Custom_Message_Sub_Hall_Apply_Join || self.attachment.second == Custom_Message_Sub_Hall_Manager_Invite || self.attachment.second == Custom_Message_Sub_Hall_Apply_Exit) { + if (self.attachment.second != Custom_Message_Sub_Hall_Apply_Exit) { + [params setObject:type forKey:@"type"]; + } + [XNDJTBWGLoadingTool EvidenceChambering]; + [HttpRequestFacilitater POST:self.communicationAbstract.url params:params success:^(BaseMatrix * _Nonnull data) { + [XNDJTBWGLoadingTool brakeHUD]; + NSString *code = [NSString stringWithFormat:@"%@", data.data[@"code"]]; + BOOL isExpired = [code isEqualToString:@"90121"]; + BOOL isHandled = [code isEqualToString:@"90122"]; + CommunicationUnionDeclare state = CommunicationUnionDeclare_Untreated; + if (isExpired) { + state = CommunicationUnionDeclare_OutData; + } else if(isHandled) { + state = CommunicationUnionDeclare_Processed; + } else { + state = sender.tag == 1000 ? CommunicationUnionDeclare_Reject : CommunicationUnionDeclare_Agree; + } + self.communicationAbstract.msgStatus = state; + self.message.localExt = [self.communicationAbstract mtowardsrix2dictionary]; + [[NIMSDK sharedSDK].conversationManager updateMessage:self.message forSession:self.message.session completion:^(NSError * _Nullable error) { + if (self.delegate && [self.delegate respondsToSelector:@selector(refurbishCommunictowardsionAccomplishment:)]) { + [self.delegate refurbishCommunictowardsionAccomplishment:self.message]; + } + }]; + } failure:^(NSInteger resCode, NSString * _Nonnull message) { + [XNDJTBWGLoadingTool brakeHUD]; + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:message]; + }]; + } + } +} + +- (void)stowardsisfperformanceSequencigntionBetowardsRecognition { + if (self.communicationAbstract.routerType == 22 && self.communicationAbstract.routerValue > 0) { + YUMIManeUnionRegardGovernancer * guildVC= [[YUMIManeUnionRegardGovernancer alloc] init]; + guildVC.ownerUid = [AccountAbstractStorage instance].acquireCid; + guildVC.instituteId = [NSString stringWithFormat:@"%ld", self.communicationAbstract.routerValue]; + [[XCCurrentVCStackExecutive shareManager].getCurrentVC.navigationController pushViewController:guildVC animated:YES]; + } +} +#pragma mark - Getters And Setters +- (UIStackView *)stackView { + if (!_stackView) { + _stackView = [[UIStackView alloc] init]; + _stackView.axis = UILayoutConstraintAxisVertical; + _stackView.distribution = UIStackViewDistributionFill; + _stackView.alignment = UIStackViewAlignmentCenter; + _stackView.spacing = 10; + } + return _stackView; +} + +- (UIView *)contentView { + if (!_contentView) { + _contentView = [[UIView alloc] init]; + _contentView.backgroundColor = [UIColor clearColor]; + } + return _contentView; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.textAlignment= NSTextAlignmentCenter; + _titleLabel.font = [UIFont systemFontOfSize:14]; + _titleLabel.textColor = [DJDKMIMOMColor mainEssayPrettify]; + [_titleLabel setContentHuggingPriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisVertical]; + } + return _titleLabel; +} + +- (YYLabel *)satisfperformanceSequencignation { + if (!_satisfperformanceSequencignation) { + _satisfperformanceSequencignation = [[YYLabel alloc] init]; + _satisfperformanceSequencignation.numberOfLines = 0; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(stowardsisfperformanceSequencigntionBetowardsRecognition)]; + [_satisfperformanceSequencignation addGestureRecognizer:tap]; + } + return _satisfperformanceSequencignation; +} + +- (UIStackView *)governanceHierarchyRegard { + if (!_governanceHierarchyRegard) { + _governanceHierarchyRegard = [[UIStackView alloc] init]; + _governanceHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _governanceHierarchyRegard.distribution = UIStackViewDistributionFill; + _governanceHierarchyRegard.alignment = UIStackViewAlignmentCenter; + _governanceHierarchyRegard.spacing = 10; + } + return _governanceHierarchyRegard; +} + +- (UIButton *)rejectBtuton { + if (!_rejectBtuton) { + _rejectBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_rejectBtuton setTitle:YMLocalizedString(@"Message_Content_Guild_View_4") forState:UIControlStateNormal]; + _rejectBtuton.titleLabel.font = [UIFont systemFontOfSize:13]; + [_rejectBtuton setTitleColor:[DJDKMIMOMColor aplictowardsionMainPrettify] forState:UIControlStateNormal]; + _rejectBtuton.layer.masksToBounds = YES; + _rejectBtuton.layer.cornerRadius = 15; + _rejectBtuton.layer.borderColor = [DJDKMIMOMColor aplictowardsionMainPrettify].CGColor; + _rejectBtuton.layer.borderWidth = 1; + [_rejectBtuton setBackgroundColor:[DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify]]; + _rejectBtuton.tag = 1000; + [_rejectBtuton addTarget:self action:@selector(controllBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _rejectBtuton; +} + +- (UIButton *)consequentBtuton { + if (!_consequentBtuton) { + _consequentBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + } + return _consequentBtuton; +} + +- (UIButton *)agreeBtuton { + if (!_agreeBtuton) { + _agreeBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_agreeBtuton setTitle:YMLocalizedString(@"Message_Content_Guild_View_5") forState:UIControlStateNormal]; + _agreeBtuton.titleLabel.font = [UIFont systemFontOfSize:13]; + [_agreeBtuton setTitleColor:[DJDKMIMOMColor mainEssayPrettify] forState:UIControlStateNormal]; + _agreeBtuton.layer.masksToBounds = YES; + _agreeBtuton.layer.cornerRadius = 15; + [_agreeBtuton setBackgroundColor:[DJDKMIMOMColor aplictowardsionMainPrettify]]; + _agreeBtuton.tag = 1001; + [_agreeBtuton addTarget:self action:@selector(controllBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _agreeBtuton; +} + + +@end diff --git a/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionVenturePrecautiousRegard.h b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionVenturePrecautiousRegard.h new file mode 100644 index 00000000..69c0671e --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionVenturePrecautiousRegard.h @@ -0,0 +1,16 @@ +// +// CommunicationSatisfactionVenturePrecautiousRegard.h +// YUMI +// +// Created by YUMI on 2022/8/11. +// + +#import "CommunicationSatisfactionCustomRegard.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface CommunicationSatisfactionVenturePrecautiousRegard : CommunicationSatisfactionCustomRegard + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionVenturePrecautiousRegard.m b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionVenturePrecautiousRegard.m new file mode 100644 index 00000000..e67d8e2c --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationSatisfactionVenturePrecautiousRegard.m @@ -0,0 +1,51 @@ +// +// CommunicationSatisfactionVenturePrecautiousRegard.m +// YUMI +// +// Created by YUMI on 2022/8/11. +// + +#import "CommunicationSatisfactionVenturePrecautiousRegard.h" +#import +#import +#import "CommunicationVenturePrecautiousMatrix.h" + +@interface CommunicationSatisfactionVenturePrecautiousRegard () +@property (nonatomic,strong) YYLabel *satisfperformanceSequencignation; +@end + +@implementation CommunicationSatisfactionVenturePrecautiousRegard + + + +- (void)initSubViews { + [super initSubViews]; + [self.encourageRegard addSubview:self.satisfperformanceSequencignation]; +} + + +- (void)initChildLyRestrictions { + [super initChildLyRestrictions]; + [self.satisfperformanceSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.encourageRegard); + }]; +} + + +- (void)render:(nonnull CommunicationBaseMatrix *)message { + CommunicationVenturePrecautiousMatrix *obj = (CommunicationVenturePrecautiousMatrix *)message; + self.satisfperformanceSequencignation.attributedText = obj.attributedText; + +} + +- (YYLabel *)satisfperformanceSequencignation { + if (!_satisfperformanceSequencignation) { + _satisfperformanceSequencignation = [[YYLabel alloc]initWithFrame:CGRectZero]; + _satisfperformanceSequencignation.preferredMaxLayoutWidth = CONTENT_WIDTH_MAX - MESSAGE_PADDING * 2; + _satisfperformanceSequencignation.numberOfLines = 0; + } + return _satisfperformanceSequencignation; +} + + +@end diff --git a/YuMi/Modules/YMMessage/View/Session/Content/CommunicationTipsRegard.h b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationTipsRegard.h new file mode 100644 index 00000000..3d112f5f --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationTipsRegard.h @@ -0,0 +1,16 @@ +// +// CommunicationTipsRegard.h +// YUMI +// +// Created by YUMI on 2023/2/1. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface CommunicationTipsRegard : UIView + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/Session/Content/CommunicationTipsRegard.m b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationTipsRegard.m new file mode 100644 index 00000000..63f8bd0a --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/CommunicationTipsRegard.m @@ -0,0 +1,49 @@ +// +// CommunicationTipsRegard.m +// YUMI +// +// Created by YUMI on 2023/2/1. +// + +#import "CommunicationTipsRegard.h" +#import +#import +#import "DJDKMIMOMColor.h" +#import "CommunicationTipsMatrix.h" + +@interface CommunicationTipsRegard() + +@property (nonatomic, strong) UILabel * intratemporalSequencignation; +@property (nonatomic,strong) NIMMessage *message; + +@end + +@implementation CommunicationTipsRegard + +- (instancetype)init { + self = [super init]; + if (self) { + [self addSubview:self.intratemporalSequencignation]; + [self.intratemporalSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.equalTo(self).with.insets(UIEdgeInsetsMake(0, 0, 0, 0)); + }]; + } + return self; +} + +- (void)render:(nonnull CommunicationBaseMatrix *)model { + self.superview.backgroundColor = [UIColor clearColor]; + self.message = model.message; + self.intratemporalSequencignation.text = model.message.text; +} + +- (UILabel *)intratemporalSequencignation { + if (!_intratemporalSequencignation) { + _intratemporalSequencignation = [[UILabel alloc] init]; + _intratemporalSequencignation.font = [UIFont systemFontOfSize:10]; + _intratemporalSequencignation.textAlignment = NSTextAlignmentCenter; + _intratemporalSequencignation.textColor = [DJDKMIMOMColor essayTertiusPrettify]; + } + return _intratemporalSequencignation; +} +@end diff --git a/YuMi/Modules/YMMessage/View/Session/Content/MessageContentUnSupport.m b/YuMi/Modules/YMMessage/View/Session/Content/MessageContentUnSupport.m new file mode 100644 index 00000000..3e04f3e0 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/MessageContentUnSupport.m @@ -0,0 +1,14 @@ +// +// MessageContentUnSupport.m +// xplan-ios +// +// Created by 冯硕 on 2022/4/19. +// + +#import "CommunicationSatisfactionUnSupportRegard.h" + +@implementation CommunicationSatisfactionUnSupportRegard + + + +@end diff --git a/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationApplicationParaticipationMatrix.h b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationApplicationParaticipationMatrix.h new file mode 100644 index 00000000..c8616d2a --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationApplicationParaticipationMatrix.h @@ -0,0 +1,16 @@ +// +// CommunicationApplicationParaticipationMatrix.h +// YUMI +// +// Created by YUMI on 2023/1/30. +// + +#import "CommunicationBaseMatrix.h" + +NS_ASSUME_NONNULL_BEGIN +@class SatisfactionApplicationParaticipationMatrix; +@interface CommunicationApplicationParaticipationMatrix : CommunicationBaseMatrix +@property (nonatomic,strong) SatisfactionApplicationParaticipationMatrix *shareInfo; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationApplicationParaticipationMatrix.m b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationApplicationParaticipationMatrix.m new file mode 100644 index 00000000..7b5a8037 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationApplicationParaticipationMatrix.m @@ -0,0 +1,31 @@ +// +// CommunicationApplicationParaticipationMatrix.m +// YUMI +// +// Created by YUMI on 2023/1/30. +// + +#import "CommunicationApplicationParaticipationMatrix.h" +#import "AttachmentMatrix.h" +#import "SatisfactionApplicationParaticipationMatrix.h" +#import "NSObject+MJExtension.h" +@implementation CommunicationApplicationParaticipationMatrix + +- (instancetype)initWithMessage:(NIMMessage *)message { + if (self = [super initWithMessage:message]) { + self.messageType = InterlocutionCommunicationGenre_Custom; + self.contentSize = CGSizeMake(200, 50); + self.height = 90 + CONTENT_PADDING_V_TOTAL; + NIMCustomObject *obj = (NIMCustomObject *)message.messageObject; + AttachmentMatrix * attach = obj.attachment; + SatisfactionApplicationParaticipationMatrix *info = [SatisfactionApplicationParaticipationMatrix mtowardsrixAboutImpactbasket:attach.data]; + self.shareInfo = info; + } + return self; +} + +- (NSString *)cellStowardsisfperformance:(CommunicationBaseMatrix *)model { + return @"CommunicationSatisfactionApplicationParaticipationRegard"; +} + +@end diff --git a/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationBaseMatrix.h b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationBaseMatrix.h new file mode 100644 index 00000000..182ded0e --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationBaseMatrix.h @@ -0,0 +1,46 @@ +// +// CommunicationBaseMatrix.h +// YUMI +// +// Created by YUMI on 2023/1/30. +// + +#import +#import +#import "CommunicationContentCeremony.h" +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSInteger, InterlocutionCommunicationGenre) { + + InterlocutionCommunicationGenre_Text = 1, + + InterlocutionCommunicationGenre_Image, + + InterlocutionCommunicationGenre_Audio, + + InterlocutionCommunicationGenre_Tips, + + InterlocutionCommunicationGenre_Custom, + + InterlocutionCommunicationGenre_Time, + + InterlocutionCommunicationGenre_Revoke, + + InterlocutionCommunicationGenre_UnSupport +}; + +@interface CommunicationBaseMatrix : NSObject +@property (nonatomic,strong) NIMMessage *message; +@property (nonatomic,assign) CGSize contentSize; +@property (nonatomic,assign) CGFloat height; +@property (nonatomic,strong) NSString *nick; +@property (nonatomic,strong) NSString *avatar; +@property (nonatomic,assign) BOOL isOutgoingMsg; +@property (nonatomic,assign) BOOL isHiddenAvatar; +@property (nonatomic,assign) InterlocutionCommunicationGenre messageType; +- (instancetype)initWithMessage:(NIMMessage *)message; + +- (NSString *)cellStowardsisfperformance:(CommunicationBaseMatrix *)model; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationBaseMatrix.m b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationBaseMatrix.m new file mode 100644 index 00000000..a24cdc1d --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationBaseMatrix.m @@ -0,0 +1,25 @@ +// +// CommunicationBaseMatrix.m +// YUMI +// +// Created by YUMI on 2023/1/30. +// + +#import "CommunicationBaseMatrix.h" + +@implementation CommunicationBaseMatrix + +- (instancetype)initWithMessage:(NIMMessage *)message { + if (self = [super init]) { + self.message = message; + self.isHiddenAvatar = NO; + self.messageType = InterlocutionCommunicationGenre_Text; + } + return self; +} + +- (NSString *)cellStowardsisfperformance:(CommunicationBaseMatrix *)model { + return @"CommunicationSatisfactionEssay"; +} + +@end diff --git a/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationCommunicationSolitaireMatrix.h b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationCommunicationSolitaireMatrix.h new file mode 100644 index 00000000..93757214 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationCommunicationSolitaireMatrix.h @@ -0,0 +1,18 @@ +// +// CommunicationCommunicationSolitaireMatrix.h +// YUMI +// +// Created by YUMI on 2023/1/30. +// + +#import "CommunicationBaseMatrix.h" + +NS_ASSUME_NONNULL_BEGIN +@class UnionCommunicationMatrix; +@interface CommunicationCommunicationSolitaireMatrix : CommunicationBaseMatrix +@property (nonatomic,strong) UnionCommunicationMatrix *guildInfo; +@property (nonatomic,strong) NSAttributedString *attribute; +@property (nonatomic,assign) CGFloat textHeight; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationCommunicationSolitaireMatrix.m b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationCommunicationSolitaireMatrix.m new file mode 100644 index 00000000..577430e1 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationCommunicationSolitaireMatrix.m @@ -0,0 +1,68 @@ +// +// CommunicationCommunicationSolitaireMatrix.m +// YUMI +// +// Created by YUMI on 2023/1/30. +// + +#import "CommunicationCommunicationSolitaireMatrix.h" +#import +#import "AttachmentMatrix.h" +#import "UnionCommunicationMatrix.h" +#import "NSObject+MJExtension.h" +#import "DJDKMIMOMColor.h" +@implementation CommunicationCommunicationSolitaireMatrix +- (instancetype)initWithMessage:(NIMMessage *)message { + if (self = [super initWithMessage:message]) { + self.messageType = InterlocutionCommunicationGenre_Custom; + NIMCustomObject *obj = (NIMCustomObject *)message.messageObject; + AttachmentMatrix * attach = obj.attachment; + UnionCommunicationMatrix * info = [UnionCommunicationMatrix mtowardsrixAboutImpactbasket:attach.data]; + self.guildInfo = info; + NSMutableAttributedString *attr = [[NSMutableAttributedString alloc]init]; + UnionCommunicationProgrammingMatrix *layout = info.layout; + for (UnionCommunicationProgrammingAbstractMatrix *params in layout.contents) { + if (params.content.length > 0) { + if ([params.content containsString:@"/r/n"]) { + params.content = @"\r\n"; + } + NSMutableAttributedString *subAttr = [[NSMutableAttributedString alloc]initWithString:params.content]; + if (params.fontSize > 0) { + [subAttr addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:params.fontSize weight:params.fontBold?UIFontWeightBold:UIFontWeightRegular] range:NSMakeRange(0, subAttr.length)]; + } + + if (params.fontColor.length > 0) { + [subAttr addAttribute:NSForegroundColorAttributeName value:[DJDKMIMOMColor colorAboutHexBWSttr:params.fontColor] range:NSMakeRange(0, subAttr.length)]; + } + [attr appendAttributedString:subAttr]; + } + } + + attr.yy_lineSpacing = 5; + CGSize maxSize = CGSizeMake(CONTENT_WIDTH_MAX - MESSAGE_PADDING * 2, CGFLOAT_MAX); + YYTextLayout * contentLayout = [YYTextLayout layoutWithContainerSize:maxSize text:attr]; + self.attribute = attr; + + CGFloat contentHeight = contentLayout.textBoundingSize.height+ 20 + 15 + MESSAGE_PADDING * 4; + self.textHeight = contentLayout.textBoundingSize.height + 5; + self.height = contentHeight + CONTENT_PADDING_V_TOTAL; + } + return self; +} + +- (NSDictionary *)communictowardsionEssayTowardstibutes:(UIFont *)font { + NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init]; + [paragraphStyle setLineSpacing:2.5]; + return @{ + NSFontAttributeName:font, + NSParagraphStyleAttributeName: paragraphStyle + }; +} + + +- (NSString *)cellStowardsisfperformance:(CommunicationBaseMatrix *)model { + return @"CommunicationSatisfactionCommunicationSolitaireRegard"; +} + + +@end diff --git a/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationDeficitSheatheMatrix.h b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationDeficitSheatheMatrix.h new file mode 100644 index 00000000..6eda6296 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationDeficitSheatheMatrix.h @@ -0,0 +1,16 @@ +// +// CommunicationDeficitSheatheMatrix.h +// YUMI +// +// Created by YUMI on 2023/1/30. +// + +#import "CommunicationBaseMatrix.h" + +NS_ASSUME_NONNULL_BEGIN +@class YUMIAchieveDeficitSheatheMatrix; +@interface CommunicationDeficitSheatheMatrix : CommunicationBaseMatrix +@property (nonatomic,strong) YUMIAchieveDeficitSheatheMatrix *redInfo; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationDeficitSheatheMatrix.m b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationDeficitSheatheMatrix.m new file mode 100644 index 00000000..9450b1ca --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationDeficitSheatheMatrix.m @@ -0,0 +1,31 @@ +// +// CommunicationDeficitSheatheMatrix.m +// YUMI +// +// Created by YUMI on 2023/1/30. +// + +#import "CommunicationDeficitSheatheMatrix.h" +#import "AttachmentMatrix.h" +#import "YUMIAchieveDeficitSheatheMatrix.h" +#import "NSObject+MJExtension.h" +@implementation CommunicationDeficitSheatheMatrix + +- (instancetype)initWithMessage:(NIMMessage *)message { + if (self = [super initWithMessage:message]) { + self.messageType = InterlocutionCommunicationGenre_Custom; + NIMCustomObject *obj = (NIMCustomObject *)message.messageObject; + AttachmentMatrix * attach = obj.attachment; + YUMIAchieveDeficitSheatheMatrix * info = [YUMIAchieveDeficitSheatheMatrix mtowardsrixAboutJSON:attach.data]; + self.redInfo = info; + self.contentSize = CGSizeMake(260, 95); + self.height = (95 + CONTENT_PADDING_V_TOTAL); + } + return self; +} + +- (NSString *)cellStowardsisfperformance:(CommunicationBaseMatrix *)model { + return @"CommunicationSatisfactionDeficitSheatheRegard"; +} + +@end diff --git a/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationDiscoveryStrangeBewelcometoMatrix.h b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationDiscoveryStrangeBewelcometoMatrix.h new file mode 100644 index 00000000..21465542 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationDiscoveryStrangeBewelcometoMatrix.h @@ -0,0 +1,17 @@ +// +// CommunicationDiscoveryStrangeBewelcometoMatrix.h +// YUMI +// +// Created by YUMI on 2023/1/30. +// + +#import "CommunicationBaseMatrix.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface CommunicationDiscoveryStrangeBewelcometoMatrix : CommunicationBaseMatrix + +@property (nonatomic,strong) NSAttributedString *attributedText; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationDiscoveryStrangeBewelcometoMatrix.m b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationDiscoveryStrangeBewelcometoMatrix.m new file mode 100644 index 00000000..cd8f19d8 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationDiscoveryStrangeBewelcometoMatrix.m @@ -0,0 +1,48 @@ +// +// CommunicationDiscoveryStrangeBewelcometoMatrix.m +// YUMI +// +// Created by YUMI on 2023/1/30. +// + +#import "CommunicationDiscoveryStrangeBewelcometoMatrix.h" +#import "AttachmentMatrix.h" +#import "DiscoveryStrangeBewelcometoCommunicationMatrix.h" +#import "NSObject+MJExtension.h" +@implementation CommunicationDiscoveryStrangeBewelcometoMatrix +- (instancetype)initWithMessage:(NIMMessage *)message { + if (self = [super initWithMessage:message]) { + self.messageType = InterlocutionCommunicationGenre_Custom; + NIMCustomObject *obj = (NIMCustomObject *)message.messageObject; + AttachmentMatrix * attach = obj.attachment; + DiscoveryStrangeBewelcometoCommunicationMatrix * model = [DiscoveryStrangeBewelcometoCommunicationMatrix mtowardsrixAboutImpactbasket:attach.data]; + NSString * text = model.message; + if (text.length <= 0) { + text = @""; + } + CGSize dstRect = CGSizeMake(CONTENT_WIDTH_MAX - MESSAGE_PADDING * 2, MAXFLOAT); + + CGSize msgSize = [text boundingRectWithSize:dstRect options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingTruncatesLastVisibleLine attributes:[self communictowardsionEssayTowardstibutes] context:nil].size; + self.attributedText = [[NSMutableAttributedString alloc] initWithString:text attributes:[self communictowardsionEssayTowardstibutes]]; + self.contentSize = CGSizeMake(msgSize.width + MESSAGE_PADDING * 2, msgSize.height + MESSAGE_PADDING * 2); + self.height = msgSize.height + MESSAGE_PADDING * 2 + CONTENT_PADDING_V_TOTAL; + } + return self; +} + +- (NSDictionary *)communictowardsionEssayTowardstibutes { + UIFont *font = [UIFont systemFontOfSize:13.f]; + NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init]; + [paragraphStyle setLineSpacing:2.5]; + return @{ + NSFontAttributeName:font, + NSParagraphStyleAttributeName: paragraphStyle + }; +} + + + +- (NSString *)cellStowardsisfperformance:(CommunicationBaseMatrix *)model { + return @"CommunicationSatisfactionDiscoveryStrangeBewelcometoRegard"; +} +@end diff --git a/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationEssayClickMatrix.h b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationEssayClickMatrix.h new file mode 100644 index 00000000..2df6852e --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationEssayClickMatrix.h @@ -0,0 +1,16 @@ +// +// CommunicationEssayClickMatrix.h +// YUMI +// +// Created by YUMI on 2023/1/30. +// + +#import "CommunicationBaseMatrix.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface CommunicationEssayClickMatrix : CommunicationBaseMatrix +@property (nonatomic,strong) NSAttributedString *attributedText; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationEssayClickMatrix.m b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationEssayClickMatrix.m new file mode 100644 index 00000000..db7c74a0 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationEssayClickMatrix.m @@ -0,0 +1,55 @@ +// +// CommunicationEssayClickMatrix.m +// YUMI +// +// Created by YUMI on 2023/1/30. +// + +#import "CommunicationEssayClickMatrix.h" +#import "AttachmentMatrix.h" +@implementation CommunicationEssayClickMatrix + +- (instancetype)initWithMessage:(NIMMessage *)message { + if (self = [super initWithMessage:message]) { + self.messageType = InterlocutionCommunicationGenre_Custom; + + NSString * communicationEssay = message.text; + if (message.messageType == NIMMessageTypeCustom) { + NIMCustomObject *obj = (NIMCustomObject *) message.messageObject; + AttachmentMatrix *attachment = (AttachmentMatrix *) obj.attachment; + if (attachment.first == IndividualityCommunicationGenre_Secretary) { + if (attachment.second == Custom_Message_Sub_Secretary_Router) { + communicationEssay = attachment.data[@"msg"]; + } + } + } + if (!communicationEssay) { + communicationEssay = YMLocalizedString(@"Message_Text_Click_Model_0"); + } + + CGSize dstRect = CGSizeMake(CONTENT_WIDTH_MAX - MESSAGE_PADDING * 2, MAXFLOAT); + + CGSize msgSize = [communicationEssay boundingRectWithSize:dstRect options:NSStringDrawingUsesLineFragmentOrigin attributes:[self communictowardsionEssayTowardstibutes] context:nil].size; + self.attributedText = [[NSAttributedString alloc] initWithString:communicationEssay attributes:[self communictowardsionEssayTowardstibutes]]; + self.height = msgSize.height + MESSAGE_PADDING * 2 + CONTENT_PADDING_V_TOTAL; + self.contentSize = CGSizeMake(msgSize.width + MESSAGE_PADDING * 2, msgSize.height + MESSAGE_PADDING * 2); + + } + return self; +} + +- (NSDictionary *)communictowardsionEssayTowardstibutes { + UIFont *font = [UIFont systemFontOfSize:13.f]; + NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init]; + [paragraphStyle setLineSpacing:2.5]; + return @{ + NSFontAttributeName:font, + NSParagraphStyleAttributeName: paragraphStyle + }; +} + +- (NSString *)cellStowardsisfperformance:(CommunicationBaseMatrix *)model { + return @"CommunicationSatisfactionEssayClickable"; +} + +@end diff --git a/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationEssayMatrix.h b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationEssayMatrix.h new file mode 100644 index 00000000..47bab3be --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationEssayMatrix.h @@ -0,0 +1,18 @@ +// +// CommunicationEssayMatrix.h +// YUMI +// +// Created by YUMI on 2023/1/30. +// + +#import "CommunicationBaseMatrix.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface CommunicationEssayMatrix : CommunicationBaseMatrix + +@property (nonatomic,strong) NSAttributedString *textAttribute; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationEssayMatrix.m b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationEssayMatrix.m new file mode 100644 index 00000000..292b6b8f --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationEssayMatrix.m @@ -0,0 +1,38 @@ +// +// CommunicationEssayMatrix.m +// YUMI +// +// Created by YUMI on 2023/1/30. +// + +#import "CommunicationEssayMatrix.h" +#import "MHTSpiritFacilitater.h" +#import +@implementation CommunicationEssayMatrix + +- (instancetype)initWithMessage:(NIMMessage *)message { + if (self = [super initWithMessage:message]) { + self.messageType = InterlocutionCommunicationGenre_Text; + NSString * communicationEssay = message.text; + if (!communicationEssay) { + communicationEssay = YMLocalizedString(@"Message_Text_Model_0"); + } + CGSize dstRect = CGSizeMake(CONTENT_WIDTH_MAX - MESSAGE_PADDING * 2, MAXFLOAT); + MHTSpiritFacilitater *faceManager = [MHTSpiritFacilitater partowardsiciptowardsiondSenintrtowardsemporalntFacilittowardseer]; + NSMutableAttributedString * attribute = [faceManager towardstributedBWSttrByEssay:communicationEssay font:[UIFont systemFontOfSize:13]]; + self.textAttribute = attribute; + YYTextContainer *container = [YYTextContainer containerWithSize:dstRect]; + container.maximumNumberOfRows = 0; + YYTextLayout *layout = [YYTextLayout layoutWithContainer:container text:attribute]; + CGFloat rowHeight = layout.textBoundingSize.height; + self.contentSize = CGSizeMake(layout.textBoundingSize.width + MESSAGE_PADDING* 2, layout.textBoundingSize.height + MESSAGE_PADDING * 2); + self.height = rowHeight + MESSAGE_PADDING * 2 + CONTENT_PADDING_V_TOTAL; + } + return self; +} + +- (NSString *)cellStowardsisfperformance:(CommunicationBaseMatrix *)model { + return @"CommunicationSatisfactionEssay"; +} + +@end diff --git a/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationIndicateMatrix.h b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationIndicateMatrix.h new file mode 100644 index 00000000..451c390f --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationIndicateMatrix.h @@ -0,0 +1,17 @@ +// +// CommunicationIndicateMatrix.h +// YUMI +// +// Created by YUMI on 2023/1/30. +// + +#import "CommunicationBaseMatrix.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface CommunicationIndicateMatrix : CommunicationBaseMatrix +@property (nonatomic,strong) UIImage *image; +@property (nonatomic,copy) NSString *imageUrl; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationIndicateMatrix.m b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationIndicateMatrix.m new file mode 100644 index 00000000..773f2b12 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationIndicateMatrix.m @@ -0,0 +1,47 @@ +// +// CommunicationIndicateMatrix.m +// YUMI +// +// Created by YUMI on 2023/1/30. +// + +#import "CommunicationIndicateMatrix.h" +#import "UIImage+Utils.h" +#define MESSAGE_IMAGE_MAX_SIZE (CONTENT_WIDTH_MAX) +#define MESSAGE_IMAGE_Min_SIZE (CONTENT_WIDTH_MAX -100) + +@implementation CommunicationIndicateMatrix +- (instancetype)initWithMessage:(NIMMessage *)message { + if (self = [super initWithMessage:message]) { + self.messageType = InterlocutionCommunicationGenre_Image; + NIMImageObject * indicateGroal = (NIMImageObject*)message.messageObject; + CGFloat attachmentImageMinWidth = (MESSAGE_IMAGE_Min_SIZE); + CGFloat attachmentImageMinHeight = (MESSAGE_IMAGE_Min_SIZE); + CGFloat attachmemtImageMaxWidth = (MESSAGE_IMAGE_MAX_SIZE); + CGFloat attachmentImageMaxHeight = (MESSAGE_IMAGE_MAX_SIZE); + CGSize imageSize; + if (!CGSizeEqualToSize(indicateGroal.size, CGSizeZero)) { + imageSize = indicateGroal.size; + }else { + UIImage *image = [UIImage imageWithContentsOfFile:indicateGroal.thumbPath]; + imageSize = image ? image.size : CGSizeZero; + } + CGSize contentSize = [UIImage sizeAboutIndictowardseDerivtowardsionDimension:imageSize + minSize:CGSizeMake(attachmentImageMinWidth, attachmentImageMinHeight) + maxSize:CGSizeMake(attachmemtImageMaxWidth, attachmentImageMaxHeight)]; + self.contentSize = contentSize; + self.height = contentSize.height + MESSAGE_PADDING * 2 + CONTENT_PADDING_V_TOTAL; + UIImage *image = [UIImage imageWithContentsOfFile:indicateGroal.thumbPath]; + if (image) { + self.image = image; + }else { + self.imageUrl = indicateGroal.url; + } + } + return self; +} + +- (NSString *)cellStowardsisfperformance:(CommunicationBaseMatrix *)model { + return @"CommunicationSatisfactionIndicate"; +} +@end diff --git a/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationIntratemporalMatrix.h b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationIntratemporalMatrix.h new file mode 100644 index 00000000..915b3734 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationIntratemporalMatrix.h @@ -0,0 +1,16 @@ +// +// CommunicationIntratemporalMatrix.h +// YUMI +// +// Created by YUMI on 2023/1/30. +// + +#import "CommunicationBaseMatrix.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface CommunicationIntratemporalMatrix : CommunicationBaseMatrix +@property (nonatomic,strong) NSString *time; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationIntratemporalMatrix.m b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationIntratemporalMatrix.m new file mode 100644 index 00000000..1a759204 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationIntratemporalMatrix.m @@ -0,0 +1,26 @@ +// +// CommunicationIntratemporalMatrix.m +// YUMI +// +// Created by YUMI on 2023/1/30. +// + +#import "CommunicationIntratemporalMatrix.h" + +@implementation CommunicationIntratemporalMatrix + +- (instancetype)initWithMessage:(NIMMessage *)message { + if (self = [super initWithMessage:message]) { + self.messageType = InterlocutionCommunicationGenre_Time; + self.contentSize = CGSizeMake(200, 20); + self.height = 20 + CONTENT_PADDING_V_TOTAL; + self.isHiddenAvatar = YES; + } + return self; +} + +- (NSString *)cellStowardsisfperformance:(CommunicationBaseMatrix *)model { + return @"CommunicationIntratemporalRegard"; +} + +@end diff --git a/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationPresentMatrix.h b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationPresentMatrix.h new file mode 100644 index 00000000..3808faa5 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationPresentMatrix.h @@ -0,0 +1,17 @@ +// +// CommunicationPresentMatrix.h +// YUMI +// +// Created by YUMI on 2023/1/30. +// + +#import "CommunicationBaseMatrix.h" +@class PresentAbstractMatrix; +NS_ASSUME_NONNULL_BEGIN + +@interface CommunicationPresentMatrix : CommunicationBaseMatrix +@property (nonatomic,strong) PresentAbstractMatrix *giftInfo; +@property (nonatomic,assign) NSInteger giftNum; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationPresentMatrix.m b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationPresentMatrix.m new file mode 100644 index 00000000..b5689e91 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationPresentMatrix.m @@ -0,0 +1,37 @@ +// +// CommunicationPresentMatrix.m +// YUMI +// +// Created by YUMI on 2023/1/30. +// + +#import "CommunicationPresentMatrix.h" +#import "PresentAchieveAbstractMatrix.h" +#import "NSObject+MJExtension.h" +#import "YUMIPresentStorage.h" +#import "AttachmentMatrix.h" +@implementation CommunicationPresentMatrix + +- (instancetype)initWithMessage:(NIMMessage *)message { + if (self = [super initWithMessage:message]) { + self.messageType = InterlocutionCommunicationGenre_Custom; + self.contentSize = CGSizeMake(185 + MESSAGE_PADDING * 2, 80); + self.height = (CONTENT_PADDING_V_TOTAL + 80 + MESSAGE_PADDING * 2); + NIMCustomObject *obj = (NIMCustomObject *)message.messageObject; + AttachmentMatrix * attach = obj.attachment; + PresentAchieveAbstractMatrix *info = [PresentAchieveAbstractMatrix mtowardsrixAboutImpactbasket:attach.data]; + PresentAbstractMatrix *giftInfo1 = info.gift == nil ? info.giftInfo : info.gift; + if (giftInfo1 == nil) { + giftInfo1 = [[YUMIPresentStorage partowardsiciptowardsionStorage] prohibiticoveryPresentAbstract:info.giftId]; + } + self.giftNum = info.giftNum; + self.giftInfo = giftInfo1; + } + return self; +} + +- (NSString *)cellStowardsisfperformance:(CommunicationBaseMatrix *)model { + return @"CommunicationSatisfactionPresentRegard"; +} + +@end diff --git a/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationPrototypeAscensionMatrix.h b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationPrototypeAscensionMatrix.h new file mode 100644 index 00000000..d3997411 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationPrototypeAscensionMatrix.h @@ -0,0 +1,17 @@ +// +// CommunicationPrototypeAscensionMatrix.h +// YUMI +// +// Created by YUMI on 2023/1/30. +// + +#import "CommunicationBaseMatrix.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface CommunicationPrototypeAscensionMatrix : CommunicationBaseMatrix +@property (nonatomic,strong) NSString *imageName; +@property (nonatomic,strong) NSString *level; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationPrototypeAscensionMatrix.m b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationPrototypeAscensionMatrix.m new file mode 100644 index 00000000..e0b428c3 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationPrototypeAscensionMatrix.m @@ -0,0 +1,37 @@ +// +// CommunicationPrototypeAscensionMatrix.m +// YUMI +// +// Created by YUMI on 2023/1/30. +// + +#import "CommunicationPrototypeAscensionMatrix.h" +#import "AttachmentMatrix.h" +#import "SatisfactionPrototypeAscensionMatrix.h" +#import "NSObject+MJExtension.h" +@implementation CommunicationPrototypeAscensionMatrix + +- (instancetype)initWithMessage:(NIMMessage *)message { + if (self = [super initWithMessage:message]) { + self.messageType = InterlocutionCommunicationGenre_Custom; + self.contentSize = CGSizeMake(220, 116); + self.height = 116 + CONTENT_PADDING_V_TOTAL; + NIMCustomObject *obj = (NIMCustomObject *)message.messageObject; + AttachmentMatrix * attach = obj.attachment; + SatisfactionPrototypeAscensionMatrix * model = [SatisfactionPrototypeAscensionMatrix mtowardsrixAboutJSON:attach.data]; + if (attach.second == Custom_Message_Sub_User_UpGrade_Charm) { + self.imageName = @"message_content_upgrade_charm"; + self.level = [NSString stringWithFormat:@"恭喜!您的魅力等级已到达Lv%@", model.levelName]; + } else { + self.imageName = @"message_content_upgrade_expre"; + self.level = [NSString stringWithFormat:@"恭喜!您的等级已到达Lv%@", model.levelName]; + } + } + return self; +} + +- (NSString *)cellStowardsisfperformance:(CommunicationBaseMatrix *)model { + return @"CommunicationSatisfactionPrototypeAscensionRegard"; +} + +@end diff --git a/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationRevokeMatrix.h b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationRevokeMatrix.h new file mode 100644 index 00000000..3de13624 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationRevokeMatrix.h @@ -0,0 +1,17 @@ +// +// CommunicationRevokeMatrix.h +// YUMI +// +// Created by YUMI on 2023/1/31. +// + +#import "CommunicationBaseMatrix.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface CommunicationRevokeMatrix : CommunicationBaseMatrix + +@property (nonatomic,strong) NSString *title; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationRevokeMatrix.m b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationRevokeMatrix.m new file mode 100644 index 00000000..084673dd --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationRevokeMatrix.m @@ -0,0 +1,31 @@ +// +// CommunicationRevokeMatrix.m +// YUMI +// +// Created by YUMI on 2023/1/31. +// + +#import "CommunicationRevokeMatrix.h" + +@implementation CommunicationRevokeMatrix + +- (instancetype)initWithMessage:(NIMMessage *)message { + if (self = [super initWithMessage:message]) { + self.messageType = InterlocutionCommunicationGenre_Revoke; + NSString * communicationEssay = YMLocalizedString(@"Message_Revoke_Model_0"); + self.title = communicationEssay; + if (communicationEssay.length > 0) { + CGSize size = [communicationEssay boundingRectWithSize:CGSizeMake(150, CGFLOAT_MAX) options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingTruncatesLastVisibleLine attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:10]} context:nil].size; + self.contentSize = CGSizeMake(size.width + 10, 15); + self.height = 15 + CONTENT_PADDING_V_TOTAL; + self.isHiddenAvatar = YES; + } + } + return self; +} + +- (NSString *)cellStowardsisfperformance:(CommunicationBaseMatrix *)model { + return @"CommunicationSatisfactionRevokeRegard"; +} + +@end diff --git a/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationSeparationsAutoMatrix.h b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationSeparationsAutoMatrix.h new file mode 100644 index 00000000..d1b756a9 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationSeparationsAutoMatrix.h @@ -0,0 +1,18 @@ +// +// CommunicationSeparationsAutoMatrix.h +// YUMI +// +// Created by YUMI on 2023/1/30. +// + +#import "CommunicationBaseMatrix.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface CommunicationSeparationsAutoMatrix : CommunicationBaseMatrix +@property (nonatomic,strong) NSString *title; +@property (nonatomic,strong) NSString *time; +@property (nonatomic,strong) NSAttributedString *attributedText; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationSeparationsAutoMatrix.m b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationSeparationsAutoMatrix.m new file mode 100644 index 00000000..3a10b286 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationSeparationsAutoMatrix.m @@ -0,0 +1,46 @@ +// +// CommunicationSeparationsAutoMatrix.m +// YUMI +// +// Created by YUMI on 2023/1/30. +// + +#import "CommunicationSeparationsAutoMatrix.h" +#import "AttachmentMatrix.h" +#import "DJDKMIMOMColor.h" +#import "UnionCommunicationMatrix.h" +#import "NSObject+MJExtension.h" +@implementation CommunicationSeparationsAutoMatrix + +- (instancetype)initWithMessage:(NIMMessage *)message { + if (self = [super initWithMessage:message]) { + self.messageType = InterlocutionCommunicationGenre_Custom; + NIMCustomObject *obj = (NIMCustomObject *)message.messageObject; + AttachmentMatrix * attach = obj.attachment; + NSDictionary * dic = attach.data; + UnionCommunicationMatrix *model = [UnionCommunicationMatrix mtowardsrixAboutImpactbasket:dic]; + UnionCommunicationProgrammingMatrix * layout = model.layout; + if (layout) { + self.title = layout.title.content; + self.time = layout.time.content; + NSMutableAttributedString *msgString = [[NSMutableAttributedString alloc] init]; + + [layout.contents enumerateObjectsUsingBlock:^(UnionCommunicationProgrammingAbstractMatrix * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + NSMutableAttributedString *string = [[NSMutableAttributedString alloc] initWithString:obj.content]; + [string addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:obj.fontSize] range:NSMakeRange(0, string.length)]; + [string addAttribute:NSForegroundColorAttributeName value:UIColorFromRGB(0x333333) range:NSMakeRange(0, string.length)]; + [msgString appendAttributedString:string]; + }]; + self.attributedText = msgString; + } + self.contentSize = CGSizeMake(250, 120); + self.height = (CONTENT_PADDING_V_TOTAL + 120);; + } + return self; +} + +- (NSString *)cellStowardsisfperformance:(CommunicationBaseMatrix *)model { + return @"CommunicationSatisfactionSeparationsAutoRegard"; +} + +@end diff --git a/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationSeparationsMatrix.h b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationSeparationsMatrix.h new file mode 100644 index 00000000..178b46fe --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationSeparationsMatrix.h @@ -0,0 +1,18 @@ +// +// CommunicationSeparationsMatrix.h +// YUMI +// +// Created by YUMI on 2023/1/30. +// + +#import "CommunicationBaseMatrix.h" + +NS_ASSUME_NONNULL_BEGIN +@class SeparationsAbstractMatrix; +@interface CommunicationSeparationsMatrix : CommunicationBaseMatrix +@property (nonatomic,strong) SeparationsAbstractMatrix *monentsInfo; +@property (nonatomic,strong) NSString *imageUrl; +@property (nonatomic,strong) NSString *title; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationSeparationsMatrix.m b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationSeparationsMatrix.m new file mode 100644 index 00000000..ce1ca58f --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationSeparationsMatrix.m @@ -0,0 +1,49 @@ +// +// CommunicationSeparationsMatrix.m +// YUMI +// +// Created by YUMI on 2023/1/30. +// + +#import "CommunicationSeparationsMatrix.h" +#import "AttachmentMatrix.h" +#import "SeparationsAbstractMatrix.h" +#import "NSObject+MJExtension.h" +@implementation CommunicationSeparationsMatrix +- (instancetype)initWithMessage:(NIMMessage *)message { + if (self = [super initWithMessage:message]) { + self.messageType = InterlocutionCommunicationGenre_Custom; + NIMCustomObject *obj = (NIMCustomObject *)message.messageObject; + AttachmentMatrix * attach = obj.attachment; + NSDictionary * dic = attach.data; + self.monentsInfo = [SeparationsAbstractMatrix mtowardsrixAboutImpactbasket:dic]; + self.imageUrl = dic[@"imageUrl"]; + NSString * nick = self.monentsInfo.nick; + if (nick.length > 6) { + nick = [nick substringToIndex:6]; + } + NSString * title = [NSString stringWithFormat:@"%@%@",nick, YMLocalizedString(@"Message_Monents_Model_0")]; + self.title = dic[@"title"] ? dic[@"title"] : title; + self.contentSize = CGSizeMake(250, 60); + self.height = (CONTENT_PADDING_V_TOTAL + 60);; + } + return self; +} + + +- (NSDictionary *)communictowardsionEssayTowardstibutes { + UIFont *font = [UIFont systemFontOfSize:13.f]; + NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init]; + [paragraphStyle setLineSpacing:2.5]; + return @{ + NSFontAttributeName:font, + NSParagraphStyleAttributeName: paragraphStyle + }; +} + + + +- (NSString *)cellStowardsisfperformance:(CommunicationBaseMatrix *)model { + return @"CommunicationSatisfactionSeparationsRegard"; +} +@end diff --git a/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationTipsMatrix.h b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationTipsMatrix.h new file mode 100644 index 00000000..d9fbf8e7 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationTipsMatrix.h @@ -0,0 +1,17 @@ +// +// CommunicationTipsMatrix.h +// YUMI +// +// Created by YUMI on 2023/2/1. +// + +#import "CommunicationBaseMatrix.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface CommunicationTipsMatrix : CommunicationBaseMatrix + +@end + +NS_ASSUME_NONNULL_END + diff --git a/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationTipsMatrix.m b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationTipsMatrix.m new file mode 100644 index 00000000..cfe18e6c --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationTipsMatrix.m @@ -0,0 +1,26 @@ +// +// CommunicationTipsMatrix.m +// YUMI +// +// Created by YUMI on 2023/2/1. +// + +#import "CommunicationTipsMatrix.h" + +@implementation CommunicationTipsMatrix + +- (instancetype)initWithMessage:(NIMMessage *)message { + if (self = [super initWithMessage:message]) { + self.messageType = InterlocutionCommunicationGenre_Tips; + self.contentSize = CGSizeMake(200, 20); + self.height = 20 + CONTENT_PADDING_V_TOTAL; + self.isHiddenAvatar = YES; + } + return self; +} + +- (NSString *)cellStowardsisfperformance:(CommunicationBaseMatrix *)model { + return @"CommunicationTipsRegard"; +} + +@end diff --git a/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationTweetMatrix.h b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationTweetMatrix.h new file mode 100644 index 00000000..3388292f --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationTweetMatrix.h @@ -0,0 +1,16 @@ +// +// CommunicationTweetMatrix.h +// YUMI +// +// Created by YUMI on 2023/1/30. +// + +#import "CommunicationBaseMatrix.h" + +NS_ASSUME_NONNULL_BEGIN +@class SatisfactionTweetMatrix; +@interface CommunicationTweetMatrix : CommunicationBaseMatrix +@property (nonatomic,strong) SatisfactionTweetMatrix *tweetInfo; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationTweetMatrix.m b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationTweetMatrix.m new file mode 100644 index 00000000..fbf6cf90 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationTweetMatrix.m @@ -0,0 +1,52 @@ +// +// CommunicationTweetMatrix.m +// YUMI +// +// Created by YUMI on 2023/1/30. +// + +#import "CommunicationTweetMatrix.h" +#import "AttachmentMatrix.h" +#import "SatisfactionTweetMatrix.h" +#import "NSObject+MJExtension.h" +@implementation CommunicationTweetMatrix + +- (instancetype)initWithMessage:(NIMMessage *)message { + if (self = [super initWithMessage:message]) { + self.messageType = InterlocutionCommunicationGenre_Custom; + NIMCustomObject *obj = (NIMCustomObject *)message.messageObject; + AttachmentMatrix * attach = obj.attachment; + SatisfactionTweetMatrix * model = [SatisfactionTweetMatrix mtowardsrixAboutJSON:attach.data]; + self.tweetInfo = model; + CGFloat oneHeight = [YMLocalizedString(@"Message_Tweet_Model_0") boundingRectWithSize:CGSizeMake(240, CGFLOAT_MAX) options:NSStringDrawingUsesFontLeading | NSStringDrawingUsesLineFragmentOrigin + attributes:[self communictowardsionEssayTowardstibutes:[UIFont systemFontOfSize:16]] context:nil].size.height + 2.5; + + CGFloat titleHeight = [model.title boundingRectWithSize:CGSizeMake(240, CGFLOAT_MAX) options:NSStringDrawingUsesFontLeading | NSStringDrawingUsesLineFragmentOrigin + attributes:[self communictowardsionEssayTowardstibutes:[UIFont systemFontOfSize:16]] context:nil].size.height; + if (titleHeight <= oneHeight * 2) { + titleHeight = titleHeight + 5; + } else { + titleHeight = oneHeight * 2; + } + CGFloat desHeight = [model.desc boundingRectWithSize:CGSizeMake(240, CGFLOAT_MAX) options:NSStringDrawingUsesFontLeading | NSStringDrawingUsesLineFragmentOrigin + attributes:[self communictowardsionEssayTowardstibutes:[UIFont systemFontOfSize:13]] context:nil].size.height; + self.height = titleHeight + desHeight + 85 + 20 + 1 + 35 + MESSAGE_PADDING * 2 + CONTENT_PADDING_V_TOTAL; + } + return self; +} + +- (NSDictionary *)communictowardsionEssayTowardstibutes:(UIFont *)font { + NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init]; + [paragraphStyle setLineSpacing:2.5]; + return @{ + NSFontAttributeName:font, + NSParagraphStyleAttributeName: paragraphStyle + }; +} + + +- (NSString *)cellStowardsisfperformance:(CommunicationBaseMatrix *)model { + return @"CommunicationSatisfactionTweetRegard"; +} + +@end diff --git a/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationUnSupportMatrix.h b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationUnSupportMatrix.h new file mode 100644 index 00000000..ac37c48c --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationUnSupportMatrix.h @@ -0,0 +1,16 @@ +// +// CommunicationUnSupportMatrix.h +// YUMI +// +// Created by YUMI on 2023/1/30. +// + +#import "CommunicationBaseMatrix.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface CommunicationUnSupportMatrix : CommunicationBaseMatrix + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationUnSupportMatrix.m b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationUnSupportMatrix.m new file mode 100644 index 00000000..01c8088a --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationUnSupportMatrix.m @@ -0,0 +1,30 @@ +// +// CommunicationUnSupportMatrix.m +// YUMI +// +// Created by YUMI on 2023/1/30. +// + +#import "CommunicationUnSupportMatrix.h" + +@implementation CommunicationUnSupportMatrix + + +- (instancetype)initWithMessage:(NIMMessage *)message { + if (self = [super initWithMessage:message]) { + self.messageType = InterlocutionCommunicationGenre_Time; + NSString * communicationEssay = YMLocalizedString(@"Message_Un_Support_Model_0"); + if (communicationEssay.length > 0) { + CGSize size = [communicationEssay boundingRectWithSize:CGSizeMake(150, CGFLOAT_MAX) options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingTruncatesLastVisibleLine attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:13]} context:nil].size; + self.contentSize = CGSizeMake(size.width + MESSAGE_PADDING* 2, size.height + MESSAGE_PADDING * 2); + self.height = size.height + MESSAGE_PADDING * 2 + CONTENT_PADDING_V_TOTAL; + } + } + return self; +} + +- (NSString *)cellStowardsisfperformance:(CommunicationBaseMatrix *)model { + return @"CommunicationSatisfactionUnSupportRegard"; +} + +@end diff --git a/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationUnfoildEnergeticMatrix.h b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationUnfoildEnergeticMatrix.h new file mode 100644 index 00000000..03318e5e --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationUnfoildEnergeticMatrix.h @@ -0,0 +1,19 @@ +// +// CommunicationUnfoildEnergeticMatrix.h +// YUMI +// +// Created by YUMI on 2023/1/30. +// + +#import "CommunicationBaseMatrix.h" + +NS_ASSUME_NONNULL_BEGIN +@class SatisfactionUnfoildEnergeticAbstractMatrix; +@interface CommunicationUnfoildEnergeticMatrix : CommunicationBaseMatrix +@property (nonatomic,strong) SatisfactionUnfoildEnergeticAbstractMatrix *userInfo; +@property (nonatomic,strong) NSString *avatar; +@property (nonatomic,strong) NSString *nick; +@property (nonatomic,strong) NSString *uid; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationUnfoildEnergeticMatrix.m b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationUnfoildEnergeticMatrix.m new file mode 100644 index 00000000..8917e570 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationUnfoildEnergeticMatrix.m @@ -0,0 +1,37 @@ +// +// CommunicationUnfoildEnergeticMatrix.m +// YUMI +// +// Created by YUMI on 2023/1/30. +// + +#import "CommunicationUnfoildEnergeticMatrix.h" +#import "AttachmentMatrix.h" +#import "SatisfactionUnfoildEnergeticAbstractMatrix.h" +#import "NSObject+MJExtension.h" +@implementation CommunicationUnfoildEnergeticMatrix + +- (instancetype)initWithMessage:(NIMMessage *)message { + if (self = [super initWithMessage:message]) { + self.messageType = InterlocutionCommunicationGenre_Custom; + self.contentSize = CGSizeMake(200, 50); + self.height = (50 + CONTENT_PADDING_V_TOTAL + MESSAGE_PADDING * 2); + NIMCustomObject *obj = (NIMCustomObject *)message.messageObject; + AttachmentMatrix * attach = obj.attachment; + SatisfactionUnfoildEnergeticAbstractMatrix *info = [SatisfactionUnfoildEnergeticAbstractMatrix mtowardsrixAboutImpactbasket:attach.data]; + self.userInfo = info; + self.uid = info.uid; + if (info.userVo.avatar.length > 0 && info.userVo.nick.length > 0) { + self.avatar = info.userVo.avatar; + self.nick = [NSString stringWithFormat:YMLocalizedString(@"Message_Open_Live_Model_0"), info.userVo.nick]; + } + } + return self; +} + +- (NSString *)cellStowardsisfperformance:(CommunicationBaseMatrix *)model { + return @"CommunicationSatisfactionUnfoildEnergeticRegard"; +} + + +@end diff --git a/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationUnionMatrix.h b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationUnionMatrix.h new file mode 100644 index 00000000..3670c6ad --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationUnionMatrix.h @@ -0,0 +1,16 @@ +// +// CommunicationUnionMatrix.h +// YUMI +// +// Created by YUMI on 2023/1/30. +// + +#import "CommunicationBaseMatrix.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface CommunicationUnionMatrix : CommunicationBaseMatrix + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationUnionMatrix.m b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationUnionMatrix.m new file mode 100644 index 00000000..b5a60910 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationUnionMatrix.m @@ -0,0 +1,72 @@ +// +// CommunicationUnionMatrix.m +// YUMI +// +// Created by YUMI on 2023/1/30. +// + +#import "CommunicationUnionMatrix.h" +#import +#import "AttachmentMatrix.h" +#import "UnionCommunicationMatrix.h" +#import "DJDKMIMOMColor.h" +#import "NSObject+MJExtension.h" +@implementation CommunicationUnionMatrix + +- (instancetype)initWithMessage:(NIMMessage *)message { + if (self = [super initWithMessage:message]) { + self.messageType = InterlocutionCommunicationGenre_Custom; + NIMCustomObject *obj = (NIMCustomObject *)message.messageObject; + AttachmentMatrix * attach = obj.attachment; + UnionCommunicationMatrix * info = [UnionCommunicationMatrix mtowardsrixAboutImpactbasket:attach.data]; + NSMutableAttributedString *attr = [[NSMutableAttributedString alloc]init]; + UnionCommunicationProgrammingMatrix *layout = info.layout; + for (UnionCommunicationProgrammingAbstractMatrix *params in layout.contents) { + if (params.content.length > 0) { + if ([params.content containsString:@"/r/n"]) { + params.content = @"\r\n"; + } + NSMutableAttributedString *subAttr = [[NSMutableAttributedString alloc]initWithString:params.content]; + if (params.fontSize > 0) { + [subAttr addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:params.fontSize weight:params.fontBold?UIFontWeightBold:UIFontWeightRegular] range:NSMakeRange(0, subAttr.length)]; + } + + if (params.fontColor.length > 0) { + [subAttr addAttribute:NSForegroundColorAttributeName value:[DJDKMIMOMColor colorAboutHexBWSttr:params.fontColor] range:NSMakeRange(0, subAttr.length)]; + } + [attr appendAttributedString:subAttr]; + } + } + attr.yy_lineSpacing = 5; + CGSize maxSize = CGSizeMake(230 - MESSAGE_PADDING * 2, CGFLOAT_MAX); + YYTextLayout * contentLayout = [YYTextLayout layoutWithContainerSize:maxSize text:attr]; + + CGFloat contentHeight = contentLayout.textBoundingSize.height + 5 + 20 + 15 + 15 + MESSAGE_PADDING; + + BOOL isCommonNotice = (attach.second == Custom_Message_Sub_Hall_Notice || attach.second == Custom_Message_Sub_Hall_Become_Hall); + if (!isCommonNotice) { + contentHeight += (10+44); + } + self.height = contentHeight + CONTENT_PADDING_V_TOTAL; + self.contentSize = CGSizeMake(CONTENT_WIDTH_MAX, contentHeight + 20 + 15 + 15); + + } + return self; +} + +- (NSDictionary *)communictowardsionEssayTowardstibutes { + UIFont *font = [UIFont systemFontOfSize:13.f]; + NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init]; + [paragraphStyle setLineSpacing:2.5]; + return @{ + NSFontAttributeName:font, + NSParagraphStyleAttributeName: paragraphStyle + }; +} + +- (NSString *)cellStowardsisfperformance:(CommunicationBaseMatrix *)model { + return @"CommunicationSatisfactionUnionRegard"; +} + + +@end diff --git a/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationVenturePrecautiousMatrix.h b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationVenturePrecautiousMatrix.h new file mode 100644 index 00000000..8358d17e --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationVenturePrecautiousMatrix.h @@ -0,0 +1,17 @@ +// +// CommunicationVenturePrecautiousMatrix.h +// YUMI +// +// Created by YUMI on 2023/1/30. +// + +#import "CommunicationBaseMatrix.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface CommunicationVenturePrecautiousMatrix : CommunicationBaseMatrix + +@property (nonatomic,strong) NSAttributedString *attributedText; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationVenturePrecautiousMatrix.m b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationVenturePrecautiousMatrix.m new file mode 100644 index 00000000..2d3c2554 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationVenturePrecautiousMatrix.m @@ -0,0 +1,65 @@ +// +// CommunicationVenturePrecautiousMatrix.m +// YUMI +// +// Created by YUMI on 2023/1/30. +// + +#import "CommunicationVenturePrecautiousMatrix.h" +#import +#import "AttachmentMatrix.h" +#import "SatisfactionRistPrecautiousMatrix.h" +#import "NSObject+MJExtension.h" +#import "DJDKMIMOMColor.h" +#import "YUMITissueRegardGovernancer.h" +#import "XCCurrentVCStackExecutive.h" +#import "YUMIHtmlUrl.h" +@implementation CommunicationVenturePrecautiousMatrix +- (instancetype)initWithMessage:(NIMMessage *)message { + if (self = [super initWithMessage:message]) { + self.messageType = InterlocutionCommunicationGenre_Custom; + NIMCustomObject *obj = (NIMCustomObject *)message.messageObject; + AttachmentMatrix * attach = obj.attachment; + SatisfactionRistPrecautiousMatrix * model = [SatisfactionRistPrecautiousMatrix mtowardsrixAboutImpactbasket:attach.data]; + NSString * text = model.content; + if (text.length <= 0) { + text = @""; + } + + NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] initWithString:text attributes:[self communictowardsionEssayTowardstibutes]]; + NSRange range = [text rangeOfString:@"《整治网络直播乱象》"]; + if ((range.location + range.length) <= text.length) { + [attribute addAttribute:NSForegroundColorAttributeName value:[DJDKMIMOMColor aplictowardsionUnderlinePrettify] range:range]; + [attribute yy_setTextHighlightRange:range color:nil backgroundColor:nil tapAction:^(UIView * _Nonnull containerView, NSAttributedString * _Nonnull text, NSRange range, CGRect rect) { + YUMITissueRegardGovernancer * webVewC = [[YUMITissueRegardGovernancer alloc] init]; + webVewC.url = URLWithType(kNetworkRenovateURL); + [[XCCurrentVCStackExecutive shareManager].getCurrentVC.navigationController pushViewController:webVewC animated:YES]; + }]; + } + self.isHiddenAvatar = YES; + self.attributedText = attribute; + CGSize dstRect = CGSizeMake(CONTENT_WIDTH_MAX - MESSAGE_PADDING * 2, MAXFLOAT); + CGSize msgSize = [text boundingRectWithSize:dstRect options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingTruncatesLastVisibleLine attributes:[self communictowardsionEssayTowardstibutes] context:nil].size; + self.contentSize = CGSizeMake(msgSize.width + MESSAGE_PADDING * 2, msgSize.height + MESSAGE_PADDING * 2); + self.height = msgSize.height + MESSAGE_PADDING * 2 + CONTENT_PADDING_V_TOTAL; + } + return self; +} + + +- (NSDictionary *)communictowardsionEssayTowardstibutes { + UIFont *font = [UIFont systemFontOfSize:13.f]; + NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init]; + [paragraphStyle setLineSpacing:2.5]; + return @{ + NSFontAttributeName:font, + NSParagraphStyleAttributeName: paragraphStyle + }; +} + + + +- (NSString *)cellStowardsisfperformance:(CommunicationBaseMatrix *)model { + return @"CommunicationSatisfactionVenturePrecautiousRegard"; +} +@end diff --git a/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationVocalmusicMatrix.h b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationVocalmusicMatrix.h new file mode 100644 index 00000000..84a54466 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationVocalmusicMatrix.h @@ -0,0 +1,16 @@ +// +// CommunicationVocalmusicMatrix.h +// YUMI +// +// Created by YUMI on 2023/1/30. +// + +#import "CommunicationBaseMatrix.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface CommunicationVocalmusicMatrix : CommunicationBaseMatrix + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationVocalmusicMatrix.m b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationVocalmusicMatrix.m new file mode 100644 index 00000000..dc5c369e --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/Content/SesssionModel/CommunicationVocalmusicMatrix.m @@ -0,0 +1,29 @@ +// +// CommunicationVocalmusicMatrix.m +// YUMI +// +// Created by YUMI on 2023/1/30. +// + +#import "CommunicationVocalmusicMatrix.h" + +@implementation CommunicationVocalmusicMatrix +- (instancetype)initWithMessage:(NIMMessage *)message { + if (self = [super initWithMessage:message]) { + self.messageType = InterlocutionCommunicationGenre_Audio; + NSInteger audioContentHeight = 30; + NIMAudioObject *audioContent = (NIMAudioObject*)[message messageObject]; + CGFloat value = 2*atan((audioContent.duration/1000.0-1)/10.0)/M_PI; + NSInteger audioContentMinWidth = (CONTENT_WIDTH_MAX - 180); + NSInteger audioContentMaxWidth = (CONTENT_WIDTH_MAX - 100); + CGFloat audioWidth = (audioContentMaxWidth - audioContentMinWidth)* value + audioContentMinWidth; + self.contentSize = CGSizeMake(audioWidth, audioContentHeight); + self.height = (audioContentHeight + CONTENT_PADDING_V_TOTAL+ MESSAGE_PADDING * 2); + } + return self; +} + +- (NSString *)cellStowardsisfperformance:(CommunicationBaseMatrix *)model { + return @"CommunicationConentVocalmusicRegard"; +} +@end diff --git a/YuMi/Modules/YMMessage/View/Session/InterlocutionAbstractRegardGovernancer.h b/YuMi/Modules/YMMessage/View/Session/InterlocutionAbstractRegardGovernancer.h new file mode 100644 index 00000000..c24e87a5 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/InterlocutionAbstractRegardGovernancer.h @@ -0,0 +1,18 @@ +// +// InterlocutionAbstractRegardGovernancer.h +// YUMI +// +// Created by YUMI on 2022/4/25. +// + +#import "BaseRegardGovernancer.h" +#import +NS_ASSUME_NONNULL_BEGIN +@class ConsumerAbstractMatrix; +@interface InterlocutionAbstractRegardGovernancer : BaseRegardGovernancer +@property (nonatomic,strong) NIMSession *session; +@property (nonatomic,strong) ConsumerAbstractMatrix *userInfo; +@property (nonatomic,strong) NSMutableDictionary *stickApexCommunications; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/Session/InterlocutionAbstractRegardGovernancer.m b/YuMi/Modules/YMMessage/View/Session/InterlocutionAbstractRegardGovernancer.m new file mode 100644 index 00000000..f2b736a8 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/InterlocutionAbstractRegardGovernancer.m @@ -0,0 +1,255 @@ +// +// InterlocutionAbstractRegardGovernancer.m +// YUMI +// +// Created by YUMI on 2022/4/25. +// + +#import "InterlocutionAbstractRegardGovernancer.h" +#import +#import +#import "DJDKMIMOMColor.h" +#import "NetIndicateRegard.h" +#import "MKJPopup.h" +#import "YUMIHtmlUrl.h" +#import "YUMIMacroUitls.h" +#import "NSArray+Safe.h" +#import "NSMutableDictionary+Saft.h" +#import "StatsticsticsServingFacilitater.h" +#import "ClientDisposition.h" +#import "XNDJTBWGLoadingTool.h" +#import "InterlocutionInstanllingMatrix.h" +#import "ConsumerAbstractMatrix.h" +#import "InterlocutionInstanllingTabulationRegardElement.h" +#import "InterlocutionInstanllingConsumerRegard.h" +#import "YUMITissueRegardGovernancer.h" +#import "YUMIManeConsumerAbstractRegardGovernancer.h" +#import "YUMIManeSimpleConsumerAbstractRegardGovernancer.h" + +@interface InterlocutionAbstractRegardGovernancer () +@property (nonatomic,strong) InterlocutionInstanllingConsumerRegard *intelligenceerRegard; +@property (nonatomic,strong) UITableView *tableView; +@property (nonatomic,strong) NSArray *datasource; +@end + +@implementation InterlocutionAbstractRegardGovernancer + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initSubViews]; + [self initChildLyRestrictions]; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.title = YMLocalizedString(@"Session_Info_View_Controller_0"); + [self.view addSubview:self.tableView]; + self.tableView.tableHeaderView = self.intelligenceerRegard; + self.intelligenceerRegard.userInfo = self.userInfo; +} + +- (void)initChildLyRestrictions { + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.view).inset(15); + make.top.mas_equalTo(self.view).offset(12); + make.height.mas_equalTo(50 * 3 + 70); + }]; +} + +#pragma mark - UITableViewDelegate And UITableViewDataSource +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.datasource.count; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + return 50; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + InterlocutionInstanllingTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([InterlocutionInstanllingTabulationRegardElement class])]; + if (cell == nil) { + cell = [[InterlocutionInstanllingTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([InterlocutionInstanllingTabulationRegardElement class])]; + } + InterlocutionInstanllingMatrix * model= [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + cell.instanllingProvision = model; + cell.delegate = self; + return cell; +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + [tableView deselectRowAtIndexPath:indexPath animated:YES]; + if (self.datasource.count > 0) { + InterlocutionInstanllingMatrix * model = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + if (model.settingType == InterlocutionInstanllingGenre_report) { + if ([ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEvent_chat_set_report_click]; + YUMITissueRegardGovernancer *webVewC = [[YUMITissueRegardGovernancer alloc] init]; + NSString *urlstr = [NSString stringWithFormat:@"%@?reportUid=%ld&source=CHAT",URLWithType(kReportRoomURL),self.userInfo.uid]; + webVewC.url = urlstr; + [self.navigationController pushViewController:webVewC animated:YES]; + } else { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:YMLocalizedString(@"Session_Info_View_Controller_1")]; + } + + } + } +} + +#pragma mark - InterlocutionInstanllingTabulationViweElementRepresendtation +- (void)interlocutionInstanllingTarbsultowardsionViweElement:(InterlocutionInstanllingMatrix *)item switchState:(UISwitch *)switchOn { + NSString * userId = [NSString stringWithFormat:@"%ld",self.userInfo.uid]; + if (item.settingType == InterlocutionInstanllingGenre_Top) { + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEvent_chat_set_top_click]; + if (switchOn.on) { + NIMAddStickTopSessionParams * params = [[NIMAddStickTopSessionParams alloc] initWithSession:self.session]; + [[NIMSDK sharedSDK].chatExtendManager addStickTopSession:params completion:^(NSError * _Nullable error, NIMStickTopSessionInfo * _Nullable newInfo) { + if (error == nil) { + [self.stickApexCommunications secureSetGroal:newInfo forKey:self.session]; + } + }]; + } else { + NIMStickTopSessionInfo * topInfo; + NIMSession * topSession; + for (int i = 0; i < self.stickApexCommunications.allKeys.count; i++) { + NIMSession * session = [self.stickApexCommunications.allKeys secureGroalTowardsIndictowardsrix1:i]; + if (session.sessionId == self.session.sessionId) { + topSession = session; + break; + } + } + if (topSession) { + topInfo = [self.stickApexCommunications objectForKey:topSession]; + } + if (topInfo) { + [[NIMSDK sharedSDK].chatExtendManager removeStickTopSession:topInfo completion:^(NSError * _Nullable error, NIMStickTopSessionInfo * _Nullable removedInfo) { + if (error == nil) { + [self.stickApexCommunications removeObjectForKey:topSession]; + } + }]; + } + } + } else if (item.settingType == InterlocutionInstanllingGenre_black) { + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEvent_chat_set_blacklist_click]; + NSString *title = nil; + NSString *message = nil; + if (switchOn.on) { + title = YMLocalizedString(@"Session_Info_View_Controller_2"); + message = YMLocalizedString(@"Session_Info_View_Controller_3"); + } else { + title = YMLocalizedString(@"Session_Info_View_Controller_4"); + message = YMLocalizedString(@"Session_Info_View_Controller_5"); + } + MKJPrecautiousDisposition *config = [[MKJPrecautiousDisposition alloc] init]; + config.title = title; + config.message = message; + [MKJPopup precautiousAboutDisposition:config acknowledgementHandler:^{ + if (!switchOn.on) { + [[NIMSDK sharedSDK].userManager removeFromBlackBlackList:userId completion:^(NSError * _Nullable error) { + if (error == nil) { + [self EvidenceMistakeToast:YMLocalizedString(@"Session_Info_View_Controller_6")]; + item.state = NO; + [self.tableView reloadData]; + } else { + [self EvidenceMistakeToast:error.description]; + } + + }]; + } else { + [[NIMSDK sharedSDK].userManager addToBlackList:userId completion:^(NSError * _Nullable error) { + if (error == nil) { + [self EvidenceMistakeToast:YMLocalizedString(@"Session_Info_View_Controller_7")]; + item.state = YES; + [self.tableView reloadData]; + } else { + [self EvidenceMistakeToast:error.description]; + } + }]; + } + } cancelHandler:^{ + + }]; + } +} + + +#pragma mark - Event Response +- (void)didBetowardsConsumerRecognition { + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEvent_chat_set_data_click]; + + if ([ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + YUMIManeConsumerAbstractRegardGovernancer * mineVC = [[YUMIManeConsumerAbstractRegardGovernancer alloc] init]; + mineVC.uid = self.userInfo.uid; + [self.navigationController pushViewController:mineVC animated:YES]; + }else{ + YUMIManeSimpleConsumerAbstractRegardGovernancer * mineVC = [[YUMIManeSimpleConsumerAbstractRegardGovernancer alloc] init]; + mineVC.uid = self.userInfo.uid; + [self.navigationController pushViewController:mineVC animated:YES]; + } +} + +#pragma mark - Getters And Setters +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.tableFooterView = [UIView new]; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.backgroundColor = [UIColor whiteColor]; + _tableView.layer.masksToBounds = YES; + _tableView.layer.cornerRadius = 8; + if (@available(iOS 11.0, *)) { + _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + [_tableView registerClass:[InterlocutionInstanllingTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([InterlocutionInstanllingTabulationRegardElement class])]; + } + return _tableView; +} + +- (InterlocutionInstanllingConsumerRegard *)intelligenceerRegard { + if (!_intelligenceerRegard) { + _intelligenceerRegard = [[InterlocutionInstanllingConsumerRegard alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth, 70)]; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didBetowardsConsumerRecognition)]; + [_intelligenceerRegard addGestureRecognizer:tap]; + } + return _intelligenceerRegard; +} + +- (NSArray *)datasource { + if (!_datasource) { + InterlocutionInstanllingMatrix * topModel = [[InterlocutionInstanllingMatrix alloc] init]; + topModel.title = YMLocalizedString(@"Session_Info_View_Controller_8"); + topModel.settingType = InterlocutionInstanllingGenre_Top; + NIMSession * topSession; + for (int i = 0; i < self.stickApexCommunications.allKeys.count; i++) { + NIMSession * session = [self.stickApexCommunications.allKeys secureGroalTowardsIndictowardsrix1:i]; + if (session.sessionId == self.session.sessionId) { + topSession = session; + break; + } + } + if (topSession && topSession.sessionId.length > 0) { + topModel.state = YES; + } else { + topModel.state = NO; + } + + + NSString * uid = [NSString stringWithFormat:@"%ld", self.userInfo.uid]; + BOOL isBlack = [[NIMSDK sharedSDK].userManager isUserInBlackList:uid]; + + InterlocutionInstanllingMatrix * blackModel = [[InterlocutionInstanllingMatrix alloc] init]; + blackModel.title = YMLocalizedString(@"Session_Info_View_Controller_9"); + blackModel.state = isBlack; + blackModel.settingType = InterlocutionInstanllingGenre_black; + + InterlocutionInstanllingMatrix * reportModel = [[InterlocutionInstanllingMatrix alloc] init]; + reportModel.title = YMLocalizedString(@"Session_Info_View_Controller_10"); + reportModel.settingType = InterlocutionInstanllingGenre_report; + + _datasource = @[topModel, blackModel, reportModel]; + } + return _datasource; +} + +@end diff --git a/YuMi/Modules/YMMessage/View/Session/InterlocutionRegardGovernancer.h b/YuMi/Modules/YMMessage/View/Session/InterlocutionRegardGovernancer.h new file mode 100644 index 00000000..2c9fbf2a --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/InterlocutionRegardGovernancer.h @@ -0,0 +1,22 @@ +// +// InterlocutionRegardGovernancer.h +// YUMI +// +// Created by zu on 2021/11/28. +// + +#import "MvpRegardGovernancer.h" +#import "InterlocutionStatementRegardGovernancer.h" +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface InterlocutionRegardGovernancer : MvpRegardGovernancer +@property (nonatomic,assign) NSInteger recordId; +@property (nonatomic,assign) BOOL isConsumer; +- (instancetype)initWithSession:(NIMSession *)session; +@property (nonatomic, assign) InterlocutionStatementOpenGenre unfoildGenre; +@property (nonatomic,strong) NSMutableDictionary *stickApexCommunications; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/Session/InterlocutionRegardGovernancer.m b/YuMi/Modules/YMMessage/View/Session/InterlocutionRegardGovernancer.m new file mode 100644 index 00000000..ad3b168b --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/InterlocutionRegardGovernancer.m @@ -0,0 +1,1071 @@ +// +// InterlocutionRegardGovernancer.m +// YUMI +// +// Created by zu on 2021/11/28. +// + +#import "InterlocutionRegardGovernancer.h" +#import +#import +#import +#import +#import +#import "XCCurrentVCStackExecutive.h" +#import "NEMCCommunicationMaker.h" +#import "YUMIMacroUitls.h" +#import "UITableView+NIMScrollToBottom.h" +#import "DJDKMIMOMColor.h" +#import "NSArray+Safe.h" +#import "MHTSpiritFacilitater.h" +#import "MHTKeyboardExecutive.h" +#import "YYUtility.h" +#import "MKJPopup.h" +#import "AccountAbstractStorage.h" +#import "NSDate+DateUtils.h" +#import "PLIntratemporalUtil.h" +#import "StatsticsticsServingFacilitater.h" +#import "NEMCCommunicationUtils.h" +#import "ClientDisposition.h" +#import "ChamberAbstractMatrix.h" +#import "ConsumerAbstractMatrix.h" +#import "CommunicationParrotMatrix.h" +#import "InterlocutionVentureCache.h" +#import "MHTAppearanceIndicateMatrix.h" +#import "AttachmentMatrix.h" +#import "CommunicationBaseMatrix.h" +#import "CommunicationEssayMatrix.h" +#import "CommunicationVocalmusicMatrix.h" +#import "CommunicationIntratemporalMatrix.h" +#import "CommunicationIndicateMatrix.h" +#import "CommunicationUnSupportMatrix.h" +#import "CommunicationPresentMatrix.h" +#import "CommunicationEssayClickMatrix.h" +#import "CommunicationUnionMatrix.h" +#import "CommunicationUnfoildEnergeticMatrix.h" +#import "CommunicationDeficitSheatheMatrix.h" +#import "CommunicationSeparationsAutoMatrix.h" +#import "CommunicationSeparationsMatrix.h" +#import "CommunicationVenturePrecautiousMatrix.h" +#import "CommunicationDiscoveryStrangeBewelcometoMatrix.h" +#import "CommunicationCommunicationSolitaireMatrix.h" +#import "CommunicationTweetMatrix.h" +#import "CommunicationPrototypeAscensionMatrix.h" +#import "CommunicationUnfoildEnergeticMatrix.h" +#import "CommunicationRevokeMatrix.h" +#import "CommunicationTipsMatrix.h" +#import "YUMIManeConsumerAbstractRegardGovernancer.h" +#import "YUMIManeSimpleConsumerAbstractRegardGovernancer.h" +#import "YUMIChamberRegardGovernancer.h" +#import "ChamberHostRepresendtation.h" +#import "CommunicationElement.h" +#import "InterlocutionChatLimitRegard.h" +#import "YUMIDischargePresentRegard.h" +#import "InterlocutionNevRegard.h" +#import "InterlocutionAbstractRegardGovernancer.h" +#import "InterlocutionVentureRegard.h" +#import "MHTIntrojectionObstacleRegard.h" +#import "MHTKeyboardExecutive.h" +#import "MHTSpiritDirectorateRegard.h" +#import "MHTinputAppearanceRegard.h" +#import "InterlocutionConsumerAbstractTabulationRegardElement.h" +#import "CommunicationExternalizer.h" +#import "CommunicationCeremony.h" + + +@interface InterlocutionRegardGovernancer () + +@property (nonatomic, strong) NIMSession * session; +@property (nonatomic, strong) NSMutableArray * messages; +@property (nonatomic,strong) InterlocutionNevRegard *interlocutionNevRegard; +@property (nonatomic, strong) UITableView * interlocutionTabulationViwe; +@property (nonatomic, strong) ConsumerAbstractMatrix *userInfo; +@property (nonatomic, strong) ConsumerAbstractMatrix *specificConsumerAbstract; +@property (nonatomic,strong) NIMMessage *lastMessage; +@property (nonatomic,strong) InterlocutionVentureRegard *riskPrecautiousRegard; +@property(nonatomic,strong)MHTIntrojectionObstacleRegard *introjectionObstacleRegard; +@property(nonatomic,strong)MHTKeyboardExecutive *keydirectorateExecutive; +@property (nonatomic,strong) MHTinputAppearanceRegard *appearanceRegard; +@property (nonatomic,strong) NSArray *appearancetGarment; +@end + +@implementation InterlocutionRegardGovernancer + +- (BOOL)isVeiledNevObstacle { + return YES; +} + +- (void)dealloc { + [[NIMSDK sharedSDK].chatManager removeDelegate:self]; + [[NIMSDK sharedSDK].conversationManager removeDelegate:self]; + [[NIMSDK sharedSDK].mediaManager removeDelegate:self]; + [[NSNotificationCenter defaultCenter] removeObserver:self]; +} + +- (CommunicationExternalizer *)producePresimport { + return [[CommunicationExternalizer alloc] init]; +} + +- (instancetype)initWithSession:(NIMSession *)session { + self = [super init]; + if (self) { + _session = session; + } + return self; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initRegards]; + [self initLayout]; + [IQKeyboardManager sharedManager].enable = NO; + [IQKeyboardManager sharedManager].enableAutoToolbar = NO; + [self initIntelligencerGrantedTerminalerRrfresh]; + [[NIMSDK sharedSDK].chatManager addDelegate:self]; + [[NIMSDK sharedSDK].conversationManager addDelegate:self]; +} + +- (void)viewWillAppear:(BOOL)animated { + [super viewWillAppear:animated]; + [self.presimport acquireFantowardsicsSimilar:self.session.sessionId]; + [self.presimport acquireConsumerAbstractAboutCid:self.session.sessionId]; +} + +- (void)initIntelligencerGrantedTerminalerRrfresh { + MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(intelligenceerRenovtowardseh)]; + header.stateLabel.font = [UIFont systemFontOfSize:10.0]; + header.lastUpdatedTimeLabel.font = [UIFont systemFontOfSize:10.0]; + header.stateLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + header.lastUpdatedTimeLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + self.interlocutionTabulationViwe.mj_header = header; + [self intelligenceerRenovtowardseh]; + [self initData]; +} + +- (void)intelligenceerRenovtowardseh { + if (self.messages.count > 0) { + CommunicationBaseMatrix * model = self.messages.firstObject; + [[[NIMSDK sharedSDK] conversationManager] messagesInSession:self.session message:model.message limit:20 completion:^(NSError * _Nullable error, NSArray * _Nullable messages) { + [self.interlocutionTabulationViwe.mj_header endRefreshing]; + if (error == nil && messages.count > 0) { + for (int i = ((int)messages.count -1); i >= 0; i--) { + NIMMessage * message = [messages secureGroalTowardsIndictowardsrix1:i]; + CommunicationBaseMatrix * model = [self modeTransformCommunictowardsion:message]; + [self.messages insertObject:model atIndex:0]; + if ((i -1) > 0) { + NIMMessage * message1 = [messages secureGroalTowardsIndictowardsrix1:i -1]; + CGFloat dur = message.timestamp - message1.timestamp; + if (dur / 60 > 5) { + CommunicationBaseMatrix * timeModel = [self produceIntrtowardsemporalCommunictowardsion:message]; + [self.messages insertObject:timeModel atIndex:0]; + } + } + } + } + [self.interlocutionTabulationViwe reloadData]; + }]; + } else { + [[[NIMSDK sharedSDK] conversationManager] messagesInSession:self.session message:nil limit:20 completion:^(NSError * _Nullable error, NSArray * _Nullable messages) { + [self.interlocutionTabulationViwe.mj_header endRefreshing]; + if (error == nil) { + for (int i = 0; i < messages.count; i++) { + NIMMessage * message = [messages secureGroalTowardsIndictowardsrix1:i]; + CommunicationBaseMatrix * model = [self modeTransformCommunictowardsion:message]; + if ((i + 1) < messages.count) { + NIMMessage * message1 = [messages secureGroalTowardsIndictowardsrix1:i + 1]; + CGFloat dur = message1.timestamp - message.timestamp; + if (dur / 60 > 5) { + CommunicationBaseMatrix * timeModel = [self produceIntrtowardsemporalCommunictowardsion:message]; + [self.messages addObject:timeModel]; + } + } + [self.messages addObject:model]; + } + } + [self.interlocutionTabulationViwe reloadData]; + [self.interlocutionTabulationViwe nim_scrollToExtreme:YES]; + }]; + } +} + +#pragma mark - 提前加载相册中的图片 +- (void)chamberBrochureAplictowardsionearances { + @kWeakify(self); + [YYUtility examineAssetsLibrayAvailable:^{ + @kStrongify(self); + + } denied:^{ + + } restriction:^{ + + }]; +} + +#pragma mark - cell的样式 +- (CommunicationBaseMatrix *)modeTransformCommunictowardsion:(NIMMessage *)message { + CommunicationBaseMatrix * model; + switch (message.messageType) { + case NIMMessageTypeText: + model = [[CommunicationEssayMatrix alloc] initWithMessage:message]; + break; + case NIMMessageTypeAudio: + model = [[CommunicationVocalmusicMatrix alloc] initWithMessage:message]; + break; + case NIMMessageTypeImage: + model = [[CommunicationIndicateMatrix alloc] initWithMessage:message]; + break; + case NIMMessageTypeTip: + model = [[CommunicationTipsMatrix alloc] initWithMessage:message]; + break; + case NIMMessageTypeCustom: + model = [self mtowardsrixTransformIndividualityCommunictowardsion:message]; + break; + default: + model = [[CommunicationUnSupportMatrix alloc] initWithMessage:message]; + break; + break; + } + return model; +} + +- (CommunicationBaseMatrix *)mtowardsrixTransformIndividualityCommunictowardsion:(NIMMessage *)message { + CommunicationBaseMatrix * model; + NIMCustomObject *obj = (NIMCustomObject *)message.messageObject; + AttachmentMatrix *attachment = (AttachmentMatrix *)obj.attachment; + if (attachment.first == IndividualityCommunicationGenre_Gift && attachment.second == Custom_Message_Sub_Gift_Send) { + model = [[CommunicationPresentMatrix alloc] initWithMessage:message]; + } else if(attachment.first == IndividualityCommunicationGenre_Secretary) { + model = [[CommunicationEssayClickMatrix alloc] initWithMessage:message]; + } else if(attachment.first == IndividualityCommunicationGenre_Hall) { + model = [[CommunicationUnionMatrix alloc] initWithMessage:message]; + } else if(attachment.first == IndividualityCommunicationGenre_Member_Online && attachment.second == Custom_Message_Type_Attention_Member_Online) { + model = [[CommunicationUnfoildEnergeticMatrix alloc] initWithMessage:message]; + } else if(attachment.first == IndividualityCommunicationGenre_Application_Share && attachment.second == Custom_Message_Sub_Application_Share_Room) { + model = [[CommunicationUnfoildEnergeticMatrix alloc] initWithMessage:message]; + } else if(attachment.first == IndividualityCommunicationGenre_User_UpGrade && (attachment.second == Custom_Message_Sub_User_UpGrade_Charm || attachment.second == Custom_Message_Sub_User_UpGrade_Exper)) { + model = [[CommunicationPrototypeAscensionMatrix alloc] initWithMessage:message]; + } else if(attachment.first == IndividualityCommunicationGenre_Tweet && attachment.second == Custom_Message_Sub_Tweet_News) { + model = [[CommunicationTweetMatrix alloc] initWithMessage:message]; + } else if(attachment.first == IndividualityCommunicationGenre_Skill_Card) { + model = [[CommunicationCommunicationSolitaireMatrix alloc] initWithMessage:message]; + } else if(attachment.first == IndividualityCommunicationGenre_FindNew){ + model = [[CommunicationDiscoveryStrangeBewelcometoMatrix alloc] initWithMessage:message]; + } else if(attachment.first == IndividualityCommunicationGenre_Chat_Risk_Alert) { + model = [[CommunicationVenturePrecautiousMatrix alloc] initWithMessage:message]; + }else if(attachment.first == IndividualityCommunicationGenre_Monents && attachment.second == Custom_Message_Sub_Monents_Share) { + model = [[CommunicationSeparationsMatrix alloc] initWithMessage:message]; + }else if(attachment.first == IndividualityCommunicationGenre_Monents && (attachment.second == Custom_Message_Sub_Monents_Approved | attachment.second == Custom_Message_Sub_Monents_Ban_Delete)) { + model = [[CommunicationSeparationsAutoMatrix alloc] initWithMessage:message]; + } else if(attachment.first == IndividualityCommunicationGenre_Message_Handle && attachment.second == Custom_Message_Sub_Message_Handle_Content) { + model = [[CommunicationSeparationsAutoMatrix alloc] initWithMessage:message]; + } else if (attachment.first == IndividualityCommunicationGenre_RedPacket && attachment.second == Custom_Message_Sub_AllDiamandRedPacket) { + model = [[CommunicationDeficitSheatheMatrix alloc] initWithMessage:message]; + } else { + model = [[CommunicationUnSupportMatrix alloc] initWithMessage:message]; + } + return model; +} + +- (UINavigationController *)acquireDigitalWindowNev { + if ([XCCurrentVCStackExecutive shareManager].getCurrentVC) { + return [XCCurrentVCStackExecutive shareManager].getCurrentVC.navigationController; + } + return self.navigationController; +} + +- (CommunicationBaseMatrix *)produceIntrtowardsemporalCommunictowardsion:(NIMMessage *)message { + CommunicationIntratemporalMatrix * timeModel = [[CommunicationIntratemporalMatrix alloc] initWithMessage:message]; + timeModel.time = [self intrtowardsemporalstrToIntrtowardsemporalInstant:[NSString stringWithFormat:@"%f", message.timestamp]]; + return timeModel; +} + +- (NSString *)intrtowardsemporalstrToIntrtowardsemporalInstant:(NSString *)timeStr { + NSTimeInterval interval = [timeStr doubleValue]; + NSDate *date = [NSDate dateWithTimeIntervalSince1970:interval]; + return [NSDate stringFromDate:date]; +} + +- (void)accelertowardseIntrtowardsemporalCommunictowardsion:(NIMMessage *)message { + if (self.messages.count > 0) { + NIMMessage * lastMessage = self.messages.lastObject.message; + CGFloat dur = message.timestamp - lastMessage.timestamp; + if (dur / 60 > 5) { + NIMMessage * newMessage = [[NIMMessage alloc] init]; + newMessage.timestamp = message.timestamp; + [newMessage setValue:self.session forKey:@"session"]; + CommunicationBaseMatrix * timeModel = [self produceIntrtowardsemporalCommunictowardsion:newMessage]; + [self.messages addObject:timeModel]; + } + } +} + +- (void)accelertowardseRevokeCommunictowardsion:(NIMMessage *)message title:(NSString *)title { + NIMMessage * revokeMessage = [[NIMMessage alloc] init]; + [revokeMessage setValue:self.session forKey:@"session"]; + [revokeMessage setValue:@(NIMMessageTypeTip) forKey:@"messageType"]; + revokeMessage.timestamp = [PLIntratemporalUtil acquireNowIntrtowardsemporalIntrtowardsemporalstampMilliinstant].longLongValue; + revokeMessage.text = title; + [[NIMSDK sharedSDK].conversationManager saveMessage:revokeMessage forSession:self.session completion:nil]; +} + +#pragma mark - Private Method + +- (void)initIntrojectionRegard { + + + MHTIntrojectionObstacleRegardDispositionuration *introjectionObstacleRegardDispositionurtowardsion = [MHTIntrojectionObstacleRegardDispositionuration deficiencyIntrojectionObstacleRegardDispositionurtowardsion]; + introjectionObstacleRegardDispositionurtowardsion.reputationBtutonVeiled = NO; + introjectionObstacleRegardDispositionurtowardsion.spreadBtutonVeiled = YES; + introjectionObstacleRegardDispositionurtowardsion.utensilVeiled = NO; + introjectionObstacleRegardDispositionurtowardsion.presentBtutonVeiled = NO; + introjectionObstacleRegardDispositionurtowardsion.cameraBtutonVeiled = NO; + introjectionObstacleRegardDispositionurtowardsion.appearanceBtutonVeiled = NO; + + _introjectionObstacleRegard = [[MHTIntrojectionObstacleRegard alloc] initWithFrame:CGRectMake(0,0,self.view.frame.size.width,introjectionObstacleRegardDispositionurtowardsion.introjectionRegardAltitude)]; + + [_introjectionObstacleRegard setupAboutDispositionurtowardsion:introjectionObstacleRegardDispositionurtowardsion]; + _introjectionObstacleRegard.delegate = self; + + + _keydirectorateExecutive = [[MHTKeyboardExecutive alloc] initWithViewController:self]; + _keydirectorateExecutive.dataSource = self; + + _keydirectorateExecutive.delegate = self; + [_keydirectorateExecutive accelertowardseExtremeIntrojectionObstacleRegard:_introjectionObstacleRegard belowViewController:NO]; + + + [_keydirectorateExecutive dilemmaEssayRegard:_introjectionObstacleRegard.introjectionEssayRegard]; +} + + +- (void)initRegards { + self.interlocutionNevRegard.isInRoom = self.unfoildGenre == InterlocutionStatementOpenGenreRoom; + [self.view addSubview:self.interlocutionNevRegard]; + [self.view addSubview:self.interlocutionTabulationViwe]; + [self initIntrojectionRegard]; +} + +- (void)initLayout { + [self.interlocutionNevRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(self.unfoildGenre == InterlocutionStatementOpenGenreRoom ? 44 : kNavigationHeight); + make.left.top.right.mas_equalTo(self.view); + }]; +} + +- (void)viewDidLayoutSubviews{ + if (self.unfoildGenre == InterlocutionStatementOpenGenreRoom) { + self.view.frame = CGRectMake(0, 0, KScreenWidth, kHalfScreenHeight); + } +} + +- (void)initData { + NIMUser * user = [[NIMSDK sharedSDK].userManager userInfo:self.session.sessionId]; + if (user) { + self.interlocutionNevRegard.title = user.userInfo.nickName; + } else { + self.interlocutionNevRegard.title = @"加载中……"; + } + [[NIMSDK sharedSDK].conversationManager markAllMessagesReadInSession:self.session]; + [self.presimport acquireChinwagRestrictionReceiverCid:self.session.sessionId]; + [self.presimport getUserInfo:self.session.sessionId]; +} + +- (BOOL)isExistCommunictowardsions:(NIMMessage *)message{ + BOOL isExist = NO; + NIMMessage * model; + for (NIMMessage *item in self.messages.reverseObjectEnumerator.allObjects) { + if ([item isKindOfClass:[NIMMessage class]] && [item.messageId isEqualToString:message.messageId]) { + model = item; + isExist = YES; + break; + } + } + if (model) { + model = message; + } + return isExist; +} + +- (BOOL)EvidenceChinwagVentureRegard:(ConsumerAbstractMatrix *)userInfo { + if (userInfo.banAccount) { + return YES; + } + + NSString * cacheUid = [[InterlocutionVentureCache partowardsiciptowardsionConceal] acquireConcludeChinwagVenturePrecautious:self.session.sessionId]; + + if (cacheUid && [cacheUid isEqualToString:self.session.sessionId]) { + return NO; + } + + if ([[NIMSDK sharedSDK].userManager isMyFriend:self.session.sessionId]) { + return NO; + } + + return YES; +} + +#pragma mark - CommunicationCeremony +- (void)dwellEarnRestrictionChinwag:(ChatLimitMatrix *)chatLimit { + BOOL chatDisabled = !chatLimit.chat && self.messages.count <= 0; + if (chatDisabled) { + InterlocutionChatLimitRegard *chatLimitView = [[InterlocutionChatLimitRegard alloc] initAboutChinwagRestriction:chatLimit]; + self.interlocutionTabulationViwe.tableHeaderView = chatLimitView; + } else { + self.interlocutionTabulationViwe.tableHeaderView = nil; + } + self.introjectionObstacleRegard.userInteractionEnabled = !chatDisabled; + if (chatDisabled) { + self.introjectionObstacleRegard.introjectionEssayRegard.placeholder = YMLocalizedString(@"Session_View_Controller_1"); + } else { + self.introjectionObstacleRegard.introjectionEssayRegard.placeholder = YMLocalizedString(@"Session_View_Controller_2"); + } +} + +- (void)dwellEarnInterlocutionConsumerAbstractAccomplishment:(ConsumerAbstractMatrix *)userInfo { + _userInfo = userInfo; + self.interlocutionNevRegard.userInfo = userInfo; + if (userInfo.roomUid && self.unfoildGenre == InterlocutionStatementOpenGenreDefault) { + if ([self EvidenceChinwagVentureRegard:userInfo]) { + self.riskPrecautiousRegard.warning = userInfo.banAccount ? @" 温馨提醒:当前对方账号存在异常,请谨慎来往!" : @"温馨提示:对方和您非好友关系,请注意隐私安全!"; + if (!self.riskPrecautiousRegard.superview) { + [self.view addSubview:self.riskPrecautiousRegard]; + [self.riskPrecautiousRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.view); + make.top.mas_equalTo(self.interlocutionNevRegard.mas_bottom); + make.height.mas_equalTo(20); + }]; + } + [self.interlocutionTabulationViwe mas_updateConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.interlocutionNevRegard.mas_bottom).mas_offset(20); + }]; + } else { + [self.interlocutionTabulationViwe mas_updateConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.interlocutionNevRegard.mas_bottom).mas_offset(0); + }]; + } + } else { + if ([self EvidenceChinwagVentureRegard:userInfo]) { + self.riskPrecautiousRegard.warning = userInfo.banAccount ? @" 温馨提醒:当前对方账号存在异常,请谨慎来往!" : @"温馨提示:对方和您非好友关系,请注意隐私安全!"; + if (!self.riskPrecautiousRegard.superview) { + [self.view addSubview:self.riskPrecautiousRegard]; + [self.riskPrecautiousRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.view); + make.top.mas_equalTo(self.interlocutionNevRegard.mas_bottom); + make.height.mas_equalTo(20); + }]; + } + [self.interlocutionTabulationViwe mas_updateConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.interlocutionNevRegard.mas_bottom).mas_offset(20); + }]; + } else { + [self.interlocutionTabulationViwe mas_updateConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.interlocutionNevRegard.mas_bottom).mas_offset(0); + }]; + } + + } +} + +- (void)acquireFantowardsicsSimilarAccomplishment:(BOOL)isLike { + self.interlocutionNevRegard.isLike = isLike; +} + +- (void)considertowardsionConsumerAccomplishment:(NSString *)uid { + if ([uid isEqualToString:self.session.sessionId]) { + [self EvidenceAccomplishmentToast:YMLocalizedString(@"Session_View_Controller_7")]; + self.interlocutionNevRegard.isLike = YES; + } +} + +- (void)dwellEarnConsumerAbstractAccomplishment:(ConsumerAbstractMatrix *)userInfo { + self.userInfo = userInfo; + [self.interlocutionTabulationViwe reloadData]; +} + +#pragma mark - CommunicationElementRepresendtation +- (void)refurbishCommunictowardsionAccomplishment:(NIMMessage *)message { + if ([message.session.sessionId isEqualToString:self.session.sessionId]) { + [self.interlocutionTabulationViwe reloadData]; + } +} + +- (void)didBetowardsIntelligenceportrait:(NSString *)uid { + if (uid.length > 0 && ![NEMCCommunicationUtils isHLOfficalSequenceription:uid]) { + + if ([ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + YUMIManeConsumerAbstractRegardGovernancer * infoVC = [[YUMIManeConsumerAbstractRegardGovernancer alloc] init]; + infoVC.uid = uid.integerValue; + [[self acquireDigitalWindowNev] pushViewController:infoVC animated:YES]; + }else{ + YUMIManeSimpleConsumerAbstractRegardGovernancer * infoVC = [[YUMIManeSimpleConsumerAbstractRegardGovernancer alloc] init]; + infoVC.uid = uid.integerValue; + [[self acquireDigitalWindowNev] pushViewController:infoVC animated:YES]; + } + } +} + +- (void)representtowardsionCommunictowardsionAccomplishment:(NIMMessage *)message { + CommunicationBaseMatrix * revokeMessage; + for (int i = 0; i < self.messages.count; i++) { + CommunicationBaseMatrix * message1 = [self.messages secureGroalTowardsIndictowardsrix1:i]; + if ([message.messageId isEqualToString: message1.message.messageId]) { + revokeMessage = message1; + break; + } + } + if (revokeMessage) { + [self.messages removeObject:revokeMessage]; + [self.interlocutionTabulationViwe reloadData]; + } +} + +- (void)revokeCommunictowardsionAccomplishment:(NIMMessage *)message { + CommunicationBaseMatrix * revokeMessage; + for (int i = 0; i < self.messages.count; i++) { + CommunicationBaseMatrix * message1 = [self.messages secureGroalTowardsIndictowardsrix1:i]; + if ([message.messageId isEqualToString:message1.message.messageId]) { + revokeMessage = message1; + break; + } + } + if (revokeMessage) { + [self.messages removeObject:revokeMessage]; + + [self accelertowardseRevokeCommunictowardsion:message title:YMLocalizedString(@"Session_View_Controller_8")]; + } +} + +#pragma mark - InterlocutionNevRegardRepresendtation +- (void)interlocutionNevRegard:(InterlocutionNevRegard *)view didClickLike:(UIButton *)sender { + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEvent_chat_toolbar_fans_click]; + [self.presimport considertowardsionConsumer:self.session.sessionId]; +} + +- (void)interlocutionNevRegard:(InterlocutionNevRegard *)view didClickBack:(UIButton *)sender { + if (self.unfoildGenre == InterlocutionStatementOpenGenreRoom) { + CATransition *transition = [CATransition animation]; + transition.duration = 0.3f; + transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; + transition.type = kCATransitionPush; + transition.subtype = kCATransitionFromLeft; + [self.view.superview.layer addAnimation:transition forKey:nil]; + [self removeFromParentViewController]; + [self.view removeFromSuperview]; + return; + } + [self.navigationController popViewControllerAnimated:YES]; +} + +- (void)interlocutionNevRegard:(InterlocutionNevRegard *)view didClickReport:(UIButton *)sender { + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEvent_chat_toolbar_set_click]; + InterlocutionAbstractRegardGovernancer * reportVC = [[InterlocutionAbstractRegardGovernancer alloc] init]; + reportVC.session = self.session; + reportVC.stickApexCommunications = self.stickApexCommunications; + reportVC.userInfo = self.userInfo; + [self.acquireDigitalWindowNev pushViewController:reportVC animated:YES]; +} + +- (void)interlocutionNevRegard:(InterlocutionNevRegard *)view didRoomLive:(NSString *)roomUid { + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEvent_chat_dialogue_revocation_click]; + if (self.unfoildGenre == InterlocutionStatementOpenGenreDefault) { + __block BOOL isSameRoom = NO; + __block ChamberAbstractMatrix *chamberMatrix; + [self.acquireDigitalWindowNev.viewControllers enumerateObjectsUsingBlock:^(__kindof UIViewController * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if ([obj isKindOfClass:[YUMIChamberRegardGovernancer class]]) { + YUMIChamberRegardGovernancer * rooomVC = obj; + [[self acquireDigitalWindowNev] popToRootViewControllerAnimated:NO]; + chamberMatrix = rooomVC.acquireChamberAbstract; + if(rooomVC.acquireChamberAbstract.uid == [roomUid integerValue]) { + isSameRoom = YES; + } else { + [rooomVC exitRoom]; + } + *stop = YES; + } + }]; + if (!isSameRoom) { + if (chamberMatrix.type == ChamberGenre_MiniGame) { + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + [YUMIChamberRegardGovernancer unfoildChamber:roomUid fromNick:self.userInfo.nick fromType:ConsumerEnterChamberFromGenre_Follow_User fromUid:[NSString stringWithFormat:@"%ld", self.userInfo.uid] viewController:[[XCCurrentVCStackExecutive shareManager] getCurrentVC]]; + }); + } else { + [YUMIChamberRegardGovernancer unfoildChamber:roomUid fromNick:self.userInfo.nick fromType:ConsumerEnterChamberFromGenre_Follow_User fromUid:[NSString stringWithFormat:@"%ld", self.userInfo.uid] viewController:self]; + } + } + } +} + +#pragma mark - UITableViewDataSource +- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { + return 2; +} + +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + if (section == 0) { + if ([NEMCCommunicationUtils isHLOfficalSequenceription:self.session.sessionId]) { + return 0; + } + return self.userInfo ? 1 : 0; + } else { + return self.messages.count; + } +} + +- (nonnull UITableViewCell *)tableView:(nonnull UITableView *)tableView cellForRowAtIndexPath:(nonnull NSIndexPath *)indexPath { + if (indexPath.section == 0) { + InterlocutionConsumerAbstractTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([InterlocutionConsumerAbstractTabulationRegardElement class])]; + if (cell == nil) { + + [tableView registerClass:[InterlocutionConsumerAbstractTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([InterlocutionConsumerAbstractTabulationRegardElement class])]; + cell = [[InterlocutionConsumerAbstractTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([InterlocutionConsumerAbstractTabulationRegardElement class])]; + } + cell.userInfo = self.userInfo; + cell.delegate = self; + return cell; + } else { + CommunicationBaseMatrix * message = [self.messages secureGroalTowardsIndictowardsrix1:indexPath.row]; + NSString * identifier = [message cellStowardsisfperformance:message]; + + CommunicationElement * cell = [tableView dequeueReusableCellWithIdentifier:identifier]; + if (!cell) { + + [tableView registerClass:[CommunicationElement class] forCellReuseIdentifier:identifier]; + + cell = [tableView dequeueReusableCellWithIdentifier:identifier]; + } + cell.delegate = self; + [cell rconcludeerAboutCommunictowardsion:[self.messages secureGroalTowardsIndictowardsrix1:indexPath.row]]; + return cell; + } +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + if (indexPath.section == 0) { + return self.userInfo.privatePhoto.count > 0 ? 182 : 100; + } + CommunicationBaseMatrix *msg = [self.messages secureGroalTowardsIndictowardsrix1:indexPath.row]; + return msg.height; +} + +- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView { + [self.keydirectorateExecutive brakeEntiretyDirectortowardseRegard]; +} + +#pragma mark - NIMChatManagerDelegate +- (void)onRecvMessages:(NSArray *)messages { + NIMMessage *message = messages.firstObject; + NIMSession *session = message.session; + if (![session isEqual:self.session] || !messages.count) { + return; + } + for (NIMMessage *message in messages) { + [self accelertowardseIntrtowardsemporalCommunictowardsion:message]; + if (message.isDeleted) { + continue; + } + CommunicationBaseMatrix * model = [self modeTransformCommunictowardsion:message]; + [self.messages addObject:model]; + } + [self.interlocutionTabulationViwe reloadData]; + [self.interlocutionTabulationViwe nim_scrollToExtreme:YES]; + + [[NIMSDK sharedSDK].conversationManager markAllMessagesReadInSession:self.session]; +} + +- (void)sendMessage:(NIMMessage *)message didCompleteWithError:(NSError *)error { + if (message.session.sessionType != NIMSessionTypeP2P) { + return; + } + + [self accelertowardseIntrtowardsemporalCommunictowardsion:message]; + + if (![self isExistCommunictowardsions:message]) { + CommunicationBaseMatrix * model = [self modeTransformCommunictowardsion:message]; + [self.messages addObject:model]; + } + + if (message.yidunAntiSpamRes) { + NSDictionary * spamRes = message.yidunAntiSpamRes.toJSONGroal; + NSDictionary * spamResExt = ((NSString *)spamRes[@"ext"]).toJSONGroal; + if ([spamResExt[@"antispam"][@"suggestion"] intValue] == 2) { + NSDictionary * dic = @{@"suggestion": @"2"}; + message.localExt = dic; + [[NIMSDK sharedSDK].conversationManager updateMessage:message forSession:self.session completion:nil]; + } + } + [self.interlocutionTabulationViwe reloadData]; + [self.interlocutionTabulationViwe nim_scrollToExtreme:YES]; +} + + +- (void)onRecvRevokeMessageNotification:(NIMRevokeMessageNotification *)notification { + CommunicationBaseMatrix * revokeMessage; + for (int i = 0; i < self.messages.count; i++) { + CommunicationBaseMatrix * message1 = [self.messages secureGroalTowardsIndictowardsrix1:i]; + if ([notification.message.messageId isEqualToString:message1.message.messageId]) { + revokeMessage = message1; + break; + } + } + if (revokeMessage) { + [self.messages removeObject:revokeMessage]; + [self.interlocutionTabulationViwe reloadData]; + } +} +#pragma mark - NIMConversationManagerDelegate +- (void)messagesDeletedInSession:(NIMSession *)session { + [self.messages removeAllObjects]; + [self initData]; +} + +- (void)didFlunkRetry:(NIMMessage *)message { + if (message.isReceivedMsg) { + [[NIMSDK sharedSDK].chatManager fetchMessageAttachment:message error:nil]; + } else { + [[NIMSDK sharedSDK].chatManager resendMessage:message error:nil]; + } +} + +- (void)prohibitichargeEssayCommunictowardsion:(NSString *)text { + NIMMessage *message = [NEMCCommunicationMaker communAboutEssay:text]; + [[[NIMSDK sharedSDK] chatManager] sendMessage:message toSession:self.session error:nil]; +} + +- (void)vocalmanualReflectionImplementtowardsion:(NSString *)recordPath { + NIMMessage *message = [NEMCCommunicationMaker communAboutVocalmusic:recordPath]; + [[[NIMSDK sharedSDK] chatManager] sendMessage:message toSession:self.session error:nil]; +} + +#pragma mark - TZImagePickerControllerDelegate +- (void)imagePickerController:(TZImagePickerController *)picker didFinishPickingPhotos:(NSArray *)photos sourceAssets:(NSArray *)assets isSelectOriginalPhoto:(BOOL)isSelectOriginalPhoto infos:(NSArray *)infos { + [photos enumerateObjectsUsingBlock:^(UIImage * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if (obj) { + + NIMMessage * message = [NEMCCommunicationMaker communAboutIndictowardse:obj]; + + [[NIMSDK sharedSDK].chatManager sendMessage:message toSession:self.session error:nil]; + } + }]; +} + +#pragma mark - InterlocutionRiskRegardRepresendtation +- (void)interlocutionVentureRegardConcludeBtutonTicktack:(InterlocutionVentureRegard *)view { + [[InterlocutionVentureCache partowardsiciptowardsionConceal] preserveConcludeVenture:self.session.sessionId]; + [self.riskPrecautiousRegard removeFromSuperview]; + [self.interlocutionTabulationViwe mas_updateConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.interlocutionNevRegard.mas_bottom).mas_offset(0); + }]; +} + +#pragma mark - InterlocutionConsumerAbstractTabulationViweElementRepresendtation +- (void)interlocutionConsumerAbstractTarbsultowardsionViweElement:(InterlocutionConsumerAbstractTabulationRegardElement *)view showUserInfoVC:(ConsumerAbstractMatrix *)userInfo { + [self didBetowardsIntelligenceportrait:[NSString stringWithFormat:@"%ld", userInfo.uid]]; +} + +#pragma mark - IntrojectionDirectorateAtomicSource +- (UIView *)digitentiretyibraExecutiveSpreadDirectortowardseRegard:(MHTKeyboardExecutive *)keydirectorateExecutive { + UIView *boardView = [UIView new]; + boardView.backgroundColor = UIColor.clearColor; + return boardView; +} + +- (UIView *)digitentiretyibraExecutiveSenintrtowardsemporalntDirectortowardseRegard:(MHTKeyboardExecutive *)keydirectorateExecutive { + MHTSpiritDirectorateRegard *senintrtowardsemporalntRegard = [[MHTSpiritDirectorateRegard alloc] init]; + MHTSpiritFacilitater *faceManager = [MHTSpiritFacilitater partowardsiciptowardsiondSenintrtowardsemporalntFacilittowardseer]; + senintrtowardsemporalntRegard.senintratemporalnts = faceManager.senintratemporalntGarment; + senintrtowardsemporalntRegard.delegate = self; + if (@available(iOS 11.0, *)) { + NSBundle *bundle = [NSBundle bundleForClass:[self class]]; + senintrtowardsemporalntRegard.backgroundColor = [UIColor colorNamed:@"q_input_extend_bg" inBundle:bundle compatibleWithTraitCollection:nil]; + } else { + senintrtowardsemporalntRegard.backgroundColor = [UIColor colorWithRed:(246)/255.0f green:(246)/255.0f blue:(246)/255.0f alpha:1]; + } + return senintrtowardsemporalntRegard; +} + +- (UIView *)digitentiretyibraExecutiveAplictowardsionearanceDirectortowardseRegard:(MHTKeyboardExecutive *)keydirectorateExecutive{ + MHTinputAppearanceRegard *senintrtowardsemporalntRegard = [[MHTinputAppearanceRegard alloc] init]; + self.appearanceRegard = senintrtowardsemporalntRegard; + senintrtowardsemporalntRegard.appearanceStatement = self.appearancetGarment; + senintrtowardsemporalntRegard.delegate = self; + senintrtowardsemporalntRegard.backgroundColor = [UIColor colorWithRed:(246)/255.0f green:(246)/255.0f blue:(246)/255.0f alpha:1]; + return senintrtowardsemporalntRegard; +} + +- (CGFloat)digitentiretyibraExecutiveSenintrtowardsemporalntDirectortowardseAltitude:(MHTKeyboardExecutive *)keydirectorateExecutive { + return 294; +} + +- (CGFloat)digitentiretyibraExecutiveSpreadDirectortowardseAltitude:(MHTKeyboardExecutive *)keydirectorateExecutive { + return 174; +} + +- (CGFloat)digitentiretyibraExecutiveAplictowardsionearanceDirectortowardseAltitude:(MHTKeyboardExecutive *)keydirectorateExecutive { + return 184 + kSafeAreaBottomHeight; +} + +- (void)introjectionObstacleRegard:(MHTIntrojectionObstacleRegard *)introjectionObstacleRegard onEmotionButtonClick:(UIButton *)senintratemporalntSwopBtuton { + if (senintratemporalntSwopBtuton.isSelected) { + [_keydirectorateExecutive swopToSenintrtowardsemporalntDirectortowardseDigitentiretyibra]; + } else { + _introjectionObstacleRegard.introjectionEssayRegard.text = @""; + [_introjectionObstacleRegard essayRegardBecomeThresholdResponder]; + } +} + +- (void)introjectionObstacleRegard:(MHTIntrojectionObstacleRegard *)introjectionObstacleRegard onReputtowardsionSwopBtutonTicktack:(UIButton *)reputationSwopBtuton { + if (!reputationSwopBtuton.isSelected) { + _introjectionObstacleRegard.introjectionEssayRegard.text = @""; + [_introjectionObstacleRegard essayRegardBecomeThresholdResponder]; + } else { + [_keydirectorateExecutive brakeEntiretyDirectortowardseRegard]; + } +} + +- (void)introjectionObstacleRegard:(MHTIntrojectionObstacleRegard *)introjectionObstacleRegard onGiftButtonClick:(UIButton *)senintratemporalntSwopBtuton { + [_keydirectorateExecutive brakeEntiretyDirectortowardseRegard]; + YUMIDischargePresentRegard * presentRegard = [[YUMIDischargePresentRegard alloc] initWithType:DischargePresentGenre_User uid:nil]; + YUMIExternalizeConsumerAbstractMatrix * userModel = [[YUMIExternalizeConsumerAbstractMatrix alloc] init]; + userModel.avatar = self.userInfo.avatar; + userModel.nick = self.userInfo.nick; + userModel.uid = self.session.sessionId.integerValue; + userModel.isSelect = YES; + [presentRegard prohibitipositionPresentConsumers:@[userModel]]; + [self presentViewController:presentRegard animated:YES completion:nil]; +} + +- (void)introjectionObstacleRegard:(MHTIntrojectionObstacleRegard *)introjectionObstacleRegard onCameraButtonClick:(UIButton *)senintratemporalntSwopBtuton { + [_keydirectorateExecutive brakeEntiretyDirectortowardseRegard]; + @kWeakify(self); + [YYUtility examineCameraAvailable:^{ + @kStrongify(self); + UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init]; + imagePicker.delegate = self; + imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera; + imagePicker.allowsEditing = YES; + [self presentViewController:imagePicker animated:YES completion:NULL]; + } denied:^{ + @kStrongify(self); + [self EvidenceNgtowardsAplictowardsionearance:@"相机不可用" content:YMLocalizedString(@"Session_View_Controller_10")]; + } restriction:^{ + @kStrongify(self); + [self EvidenceNgtowardsAplictowardsionearance:@"相机不可用" content:YMLocalizedString(@"Session_View_Controller_12")]; + }]; + +} + +- (void)introjectionObstacleRegard:(MHTIntrojectionObstacleRegard *)introjectionObstacleRegard onPhototButtonClick:(UIButton *)senintratemporalntSwopBtuton { + if (senintratemporalntSwopBtuton.isSelected) { + @kWeakify(self); + [YYUtility examineAssetsLibrayAvailable:^{ + @kStrongify(self); + [TZImagePickerConfig sharedInstance].allowPickingImage = YES; + dispatch_async(dispatch_get_global_queue(0, 0), ^{ + [[TZImageManager manager] getCameraRollAlbumWithFetchAssets:NO completion:^(TZAlbumModel *model) { + [[TZImageManager manager] getAssetsFromFetchResult:model.result completion:^(NSArray *models) { + dispatch_async(dispatch_get_main_queue(), ^{ + NSMutableArray * array = [NSMutableArray array]; + if (models.count > 40) { + for (int i = 0; i < 40; i++) { + TZAssetModel * assets = [models objectAtIndex:i]; + MHTAppearanceIndicateMatrix * infor = [[MHTAppearanceIndicateMatrix alloc] init]; + infor.isOrigin = NO; + infor.assetInfo = assets; + [array addObject:infor]; + } + } else { + for (int i = 0; i < models.count; i++) { + TZAssetModel * assets = [models objectAtIndex:i]; + MHTAppearanceIndicateMatrix * infor = [[MHTAppearanceIndicateMatrix alloc] init]; + infor.isOrigin = NO; + infor.assetInfo = assets; + [array addObject:infor]; + } + } + self.appearancetGarment = array; + if (self.appearancetGarment.count > 0) { + self.appearanceRegard.appearanceStatement = self.appearancetGarment; + [self.keydirectorateExecutive swopToAplictowardsionearanceDirectortowardseDigitentiretyibra]; + } else { + TZImagePickerController *imagePickerVc = [[TZImagePickerController alloc] initWithMaxImagesCount:1 delegate:self]; + imagePickerVc.modalPresentationStyle = UIModalPresentationOverFullScreen; + imagePickerVc.allowPickingVideo = NO; + imagePickerVc.allowTakeVideo = NO; + imagePickerVc.naviBgColor = [DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify]; + imagePickerVc.naviTitleColor = [DJDKMIMOMColor mainEssayPrettify]; + imagePickerVc.barItemTextColor = [DJDKMIMOMColor mainEssayPrettify]; + [self presentViewController:imagePickerVc animated:YES completion:nil]; + } + }); + }]; + }]; + }); + } denied:^{ + @kStrongify(self); + [self EvidenceNgtowardsAplictowardsionearance:@"无法访问相册" content:YMLocalizedString(@"Session_View_Controller_14")]; + } restriction:^{ + @kStrongify(self); + [self EvidenceNgtowardsAplictowardsionearance:@"无法访问相册" content:YMLocalizedString(@"Session_View_Controller_16")]; + }]; + } else { + [_keydirectorateExecutive brakeEntiretyDirectortowardseRegard]; + _introjectionObstacleRegard.introjectionEssayRegard.text = @""; + [_introjectionObstacleRegard essayRegardResignThresholdResponder]; + } + +} + +- (void)EvidenceNgtowardsAplictowardsionearance:(NSString *)title content:(NSString *)content { + MKJPrecautiousDisposition *config = [[MKJPrecautiousDisposition alloc] init]; + config.title = title; + config.message = content; + + [MKJPopup precautiousAboutDisposition:config acknowledgementHandler:^{ + NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString]; + if ([[UIApplication sharedApplication] canOpenURL:url]) { + [[UIApplication sharedApplication] openURL:url]; + } + } cancelHandler:^{ + }]; +} + +#pragma mark - IntrojectionDirectorateRepresendtation +- (void)keydirectorateExecutive:(MHTKeyboardExecutive *)keydirectorateExecutive onWholeInputViewHeightDidChange:(CGFloat)wholeInputViewHeight reason:(WholeIntrojectionRegardHeightDidChangeReason)reason { + [UIView animateWithDuration:0.2 animations:^{ + [self.interlocutionTabulationViwe nim_scrollToExtreme:NO]; + [self.interlocutionTabulationViwe mas_remakeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.view); + make.top.mas_equalTo(self.interlocutionNevRegard.mas_bottom); + make.bottom.mas_equalTo(self.view).offset(-wholeInputViewHeight - kSafeAreaBottomHeight); + }]; + }]; +} + +#pragma mark - QEmotionDirectorateRegardRepresendtation + +- (void)senintrtowardsemporalntRegard:(MHTSpiritDirectorateRegard *)senintrtowardsemporalntRegard didSelectEmotion:(MHTSpirit *)emotion atIndex:(NSInteger)index { + + [_introjectionObstacleRegard insertSenintrtowardsemporalnt:emotion.displayName]; +} + +- (void)senintrtowardsemporalntRegardDidChosenRepresenttowardsionBtuton:(MHTSpiritDirectorateRegard *)senintrtowardsemporalntRegard { + if (![_introjectionObstacleRegard representtowardsionSenintrtowardsemporalnt]){ + + [_introjectionObstacleRegard.introjectionEssayRegard deleteBackward]; + } +} + +- (void)senintrtowardsemporalntRegardDidChosenDischargeBtuton:(MHTSpiritDirectorateRegard *)senintrtowardsemporalntRegard { + [self prohibitichargeEssayCommunictowardsion:[_introjectionObstacleRegard essayRegardIntrojectionOrdinaryEssay]]; + _introjectionObstacleRegard.introjectionEssayRegard.text = @""; + [_keydirectorateExecutive brakeEntiretyDirectortowardseRegard]; + +} + + +- (void)introjectionObstacleRegard:(MHTIntrojectionObstacleRegard *)introjectionObstacleRegard onKeyboardSendClick:(NSString *)inputNormalText { + [self prohibitichargeEssayCommunictowardsion:inputNormalText]; + _introjectionObstacleRegard.introjectionEssayRegard.text = @""; + [_keydirectorateExecutive brakeEntiretyDirectortowardseRegard]; +} + +#pragma mark - QinputPhotoRegardRepresendtation +- (void)qintrojectionAplictowardsionearanceRegard:(MHTinputAppearanceRegard *)view didClickSend:(NSArray *)appearanceStatement { + for (int i = 0; i < appearanceStatement.count; i++) { + MHTAppearanceIndicateMatrix * imageInfo = [appearanceStatement secureGroalTowardsIndictowardsrix1:i]; + UIImage * image; + if (view.isOrigin) { + image = imageInfo.originImage; + } else { + image = imageInfo.compressImage; + } + if (image == nil){ + continue; + } + + NIMMessage * message = [NEMCCommunicationMaker communAboutIndictowardse:image]; + + [[NIMSDK sharedSDK].chatManager sendMessage:message toSession:self.session error:nil]; + [view replacementConcludeAplictowardsionearances]; + } +} + +- (void)qintrojectionAplictowardsionearanceRegard:(MHTinputAppearanceRegard *)view didClickPhoto:(UIButton *)sender { + TZImagePickerController *imagePickerVc = [[TZImagePickerController alloc] initWithMaxImagesCount:1 delegate:self]; + imagePickerVc.modalPresentationStyle = UIModalPresentationOverFullScreen; + imagePickerVc.allowPickingVideo = NO; + imagePickerVc.allowTakeVideo = NO; + imagePickerVc.naviBgColor = [DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify]; + imagePickerVc.naviTitleColor = [DJDKMIMOMColor mainEssayPrettify]; + imagePickerVc.barItemTextColor = [DJDKMIMOMColor mainEssayPrettify]; + [self presentViewController:imagePickerVc animated:YES completion:nil]; +} + +#pragma mark - UIImagePickerControllerDelegate +- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info +{ + UIImage *selectedPhoto = [info objectForKey:UIImagePickerControllerEditedImage]; + if (selectedPhoto) { + if (picker.sourceType == UIImagePickerControllerSourceTypeCamera) { + UIImageWriteToSavedPhotosAlbum(selectedPhoto, nil, nil, nil); + } + + NIMMessage * message = [NEMCCommunicationMaker communAboutIndictowardse:selectedPhoto]; + + [[NIMSDK sharedSDK].chatManager sendMessage:message toSession:self.session error:nil]; + } + [picker dismissViewControllerAnimated:YES completion:^{}]; +} + +- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker{ + [picker dismissViewControllerAnimated:YES completion:^{ + }]; +} + + +#pragma mark - Getters And Setters +- (NSArray *)messages { + if (!_messages) { + _messages = [[NSMutableArray alloc] init]; + } + return _messages; +} + +#pragma mark - Event Response +- (void)concludeDigitalDirectortowardse { + [self.view endEditing:YES]; + [self.introjectionObstacleRegard essayRegardResignThresholdResponder]; +} + +- (UITableView *)interlocutionTabulationViwe { + if (!_interlocutionTabulationViwe) { + _interlocutionTabulationViwe = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; + _interlocutionTabulationViwe.delegate = self; + _interlocutionTabulationViwe.dataSource = self; + _interlocutionTabulationViwe.backgroundColor = UIColor.clearColor; + _interlocutionTabulationViwe.separatorStyle = UITableViewCellSeparatorStyleNone; + _interlocutionTabulationViwe.showsVerticalScrollIndicator = NO; + if (@available(iOS 11.0, *)) { + _interlocutionTabulationViwe.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + } + return _interlocutionTabulationViwe; +} + +- (InterlocutionNevRegard *)interlocutionNevRegard { + if (!_interlocutionNevRegard) { + _interlocutionNevRegard = [[InterlocutionNevRegard alloc] init]; + _interlocutionNevRegard.delegate = self; + } + return _interlocutionNevRegard; +} + +- (InterlocutionVentureRegard *)riskPrecautiousRegard { + if (!_riskPrecautiousRegard) { + _riskPrecautiousRegard = [[InterlocutionVentureRegard alloc] init]; + _riskPrecautiousRegard.delegate = self; + } + return _riskPrecautiousRegard; +} + +@end diff --git a/YuMi/Modules/YMMessage/View/Session/InterlocutionVentureCache.h b/YuMi/Modules/YMMessage/View/Session/InterlocutionVentureCache.h new file mode 100644 index 00000000..6129ab0c --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/InterlocutionVentureCache.h @@ -0,0 +1,21 @@ +// +// InterlocutionVentureCache.h +// YUMI +// +// Created by YUMI on 2022/8/11. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface InterlocutionVentureCache : NSObject + ++ (instancetype)partowardsiciptowardsionConceal; + +- (void)preserveConcludeVenture:(NSString *)userId; + +- (NSString *)acquireConcludeChinwagVenturePrecautious:(NSString *)userid; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/Session/InterlocutionVentureCache.m b/YuMi/Modules/YMMessage/View/Session/InterlocutionVentureCache.m new file mode 100644 index 00000000..ca10680d --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/InterlocutionVentureCache.m @@ -0,0 +1,49 @@ +// +// InterlocutionVentureCache.m +// YUMI +// +// Created by YUMI on 2022/8/11. +// + +#import "InterlocutionVentureCache.h" +#import "AccountAbstractStorage.h" +static InterlocutionVentureCache * cache = nil; + + +@interface InterlocutionVentureCache () +@property (nonatomic,strong) NSCache *cache; +@end + +@implementation InterlocutionVentureCache + ++ (instancetype)partowardsiciptowardsionConceal { + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + cache = [[InterlocutionVentureCache alloc] init]; + }); + return cache; +} + +- (void)preserveConcludeVenture:(NSString *)userId { + if (userId.length > 0) { + [self.cache setObject:userId forKey:userId]; + } +} + +- (NSString *)acquireConcludeChinwagVenturePrecautious:(NSString *)userid { + if (userid) { + return [self.cache objectForKey:userid]; + } + return nil; +} + + +- (NSCache *)cache { + if (!_cache) { + _cache = [[NSCache alloc]init]; + _cache.countLimit = 500; + } + return _cache; +} + +@end diff --git a/YuMi/Modules/YMMessage/View/Session/View/InterlocutionChatLimitRegard.h b/YuMi/Modules/YMMessage/View/Session/View/InterlocutionChatLimitRegard.h new file mode 100644 index 00000000..86f6f90e --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/View/InterlocutionChatLimitRegard.h @@ -0,0 +1,19 @@ +// +// SessionLimitChatView.h +// YUMI +// +// Created by zu on 2021/12/8. +// + +#import +#import "ChatLimitMatrix.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface InterlocutionChatLimitRegard : UIView + +- (instancetype)initAboutChinwagRestriction:(ChatLimitMatrix *)chatLimit; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/Session/View/InterlocutionChatLimitRegard.m b/YuMi/Modules/YMMessage/View/Session/View/InterlocutionChatLimitRegard.m new file mode 100644 index 00000000..6464e5ce --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/View/InterlocutionChatLimitRegard.m @@ -0,0 +1,75 @@ +// +// SessionLimitChatView.m +// YUMI +// +// Created by zu on 2021/12/8. +// + +#import "InterlocutionChatLimitRegard.h" +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" +#import "UIView+NIM.h" +#import "YUMITissueRegardGovernancer.h" +#import +#import +#import + +@interface InterlocutionChatLimitRegard() + +@property (nonatomic, strong) UIView *backgroundRegard; +@property (nonatomic, strong) YYLabel *textLabel; + +@end + +@implementation InterlocutionChatLimitRegard + +- (instancetype)initAboutChinwagRestriction:(ChatLimitMatrix *)chatLimit { + if (self = [super initWithFrame:CGRectMake(0, 0, KScreenWidth, 50)]) { + [self addSubview:self.backgroundRegard]; + [self.backgroundRegard addSubview:self.textLabel]; + + [self.backgroundRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.center.mas_equalTo(self); + }]; + + [self.textLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.left.right.bottom.mas_equalTo(self.backgroundRegard).insets(UIEdgeInsetsMake(10, 10, 10, 10)); + }]; + + [self initSequencigntowardsion:chatLimit.charmLevel.integerValue wealthLevel:chatLimit.wealthLevel.integerValue]; + } + return self; +} + +- (void)initSequencigntowardsion:(NSInteger)charmLevel wealthLevel:(NSInteger)wealthLevel { + NSInteger charm = charmLevel > 0 ? charmLevel : 3; + NSInteger wealth = wealthLevel > 0 ? wealthLevel : 3; + UIColor *highlightPrettify = DJDKMIMOMColor.aplictowardsionMainPrettify; + NSMutableAttributedString *attStr = [[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:YMLocalizedString(@"Session_Chat_Limit_View_0"), wealth, charm] attributes:@{NSFontAttributeName: [UIFont systemFontOfSize: 12],NSForegroundColorAttributeName: DJDKMIMOMColor.mainEssayPrettify}];; + NSRange wealthLevelRange = [attStr.mutableString rangeOfString:[NSString stringWithFormat:@"财富等级≥%zd", wealth]]; + NSRange charmLevelRange = [attStr.mutableString rangeOfString:[NSString stringWithFormat:@"魅力等级≥%zd", charm]]; + [attStr yy_setColor:highlightPrettify range:wealthLevelRange]; + [attStr yy_setColor:highlightPrettify range:charmLevelRange]; + self.textLabel.attributedText = attStr; +} + +- (UIView *)backgroundRegard { + if (!_backgroundRegard) { + _backgroundRegard = [UIView new]; + _backgroundRegard.backgroundColor = DJDKMIMOMColor.aplictowardsionElementEncouragegroundPrettify; + _backgroundRegard.layer.masksToBounds = YES; + _backgroundRegard.layer.cornerRadius = 8.0; + } + return _backgroundRegard; +} + +- (YYLabel *)textLabel { + if (!_textLabel) { + _textLabel = [[YYLabel alloc] init]; + _textLabel.textAlignment = NSTextAlignmentCenter; + _textLabel.numberOfLines = 0; + } + return _textLabel; +} + +@end diff --git a/YuMi/Modules/YMMessage/View/Session/View/InterlocutionInstanllingConsumerRegard.h b/YuMi/Modules/YMMessage/View/Session/View/InterlocutionInstanllingConsumerRegard.h new file mode 100644 index 00000000..00d897b1 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/View/InterlocutionInstanllingConsumerRegard.h @@ -0,0 +1,16 @@ +// +// InterlocutionInstanllingConsumerRegard.h +// YUMI +// +// Created by YUMI on 2023/1/18. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class ConsumerAbstractMatrix; +@interface InterlocutionInstanllingConsumerRegard : UIView +@property (nonatomic,strong) ConsumerAbstractMatrix *userInfo; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/Session/View/InterlocutionInstanllingConsumerRegard.m b/YuMi/Modules/YMMessage/View/Session/View/InterlocutionInstanllingConsumerRegard.m new file mode 100644 index 00000000..ae9cde37 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/View/InterlocutionInstanllingConsumerRegard.m @@ -0,0 +1,158 @@ +// +// InterlocutionInstanllingConsumerRegard.m +// YUMI +// +// Created by YUMI on 2023/1/18. +// + +#import "InterlocutionInstanllingConsumerRegard.h" +#import +#import +#import "NetIndicateRegard.h" +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" +#import "SpriteSheetIndicateExecutive.h" +#import "ConsumerAbstractMatrix.h" + +@interface InterlocutionInstanllingConsumerRegard () +@property (nonatomic,strong) NetIndicateRegard *intelligenceportraitIndicateRegard; +@property (nonatomic,strong) UILabel *monicerSequencignation; +@property (nonatomic,strong) UILabel *idSequencignation; +@property (nonatomic,strong) UIImageView *arrowIndicateRegard; +@property (nonatomic,strong) YYAnimatedImageView *intelligencePenetrateIndicateRegard; +@property (nonatomic, strong) SpriteSheetIndicateExecutive *manager; + +@end + +@implementation InterlocutionInstanllingConsumerRegard + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.intelligenceportraitIndicateRegard]; + [self addSubview:self.intelligencePenetrateIndicateRegard]; + [self addSubview:self.monicerSequencignation]; + [self addSubview:self.idSequencignation]; + [self addSubview:self.arrowIndicateRegard]; +} + +- (void)initChildLyRestrictions { + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(43, 43)); + make.left.mas_equalTo(self).offset(22); + make.top.mas_equalTo(self).offset(22); + }]; + + [self.intelligencePenetrateIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.centerY.mas_equalTo(self.intelligenceportraitIndicateRegard); + make.width.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_width).multipliedBy(1.31); + make.height.mas_equalTo(self.intelligencePenetrateIndicateRegard.mas_width); + }]; + + [self.monicerSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_right).offset(12); + make.bottom.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_centerY).offset(-2); + }]; + + [self.idSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.monicerSequencignation); + make.top.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_centerY).offset(2); + }]; + + [self.arrowIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(6.5, 11)); + make.centerY.mas_equalTo(self.intelligenceportraitIndicateRegard); + make.right.mas_equalTo(self).offset(-15); + }]; +} + +#pragma mark - Getters And Setters +- (void)setUserInfo:(ConsumerAbstractMatrix *)userInfo { + _userInfo = userInfo; + if (_userInfo) { + self.intelligenceportraitIndicateRegard.imageUrl = _userInfo.avatar; + NSString * nick = _userInfo.nick; + self.monicerSequencignation.text = nick; + self.idSequencignation.text = [NSString stringWithFormat:@"ID:%ld", _userInfo.erbanNo]; + NSString * headurl = userInfo.headwearEffect.length > 0 ? userInfo.headwearEffect : userInfo.headwearPic; + if (headurl.length >0) { + self.intelligencePenetrateIndicateRegard.hidden = NO; + NSURL *url = [NSURL URLWithString:headurl]; + @kWeakify(self); + [self.manager chamberSpriteSheetIndictowardseAboutWEEBSITE:url completionBlock:^(YYSpriteSheetImage * _Nullable sprit) { + @kStrongify(self); + self.intelligencePenetrateIndicateRegard.image = sprit; + } failureBlock:^(NSError * _Nullable error) { + }]; + } else { + self.intelligencePenetrateIndicateRegard.hidden = YES; + } + } +} + +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _intelligenceportraitIndicateRegard.layer.cornerRadius = 20; + } + return _intelligenceportraitIndicateRegard; +} + +- (UILabel *)monicerSequencignation { + if (!_monicerSequencignation) { + _monicerSequencignation = [[UILabel alloc] init]; + _monicerSequencignation.font = [UIFont systemFontOfSize:15]; + _monicerSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _monicerSequencignation; +} + +- (UILabel *)idSequencignation { + if (!_idSequencignation) { + _idSequencignation = [[UILabel alloc] init]; + _idSequencignation.font = [UIFont systemFontOfSize:12]; + _idSequencignation.textColor = [DJDKMIMOMColor essayTertiusPrettify]; + } + return _idSequencignation; +} + +- (UIImageView *)arrowIndicateRegard { + if (!_arrowIndicateRegard) { + _arrowIndicateRegard = [[UIImageView alloc] init]; + _arrowIndicateRegard.userInteractionEnabled = YES; + _arrowIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_setting_arrow"]; + } + return _arrowIndicateRegard; +} + +- (YYAnimatedImageView *)intelligencePenetrateIndicateRegard { + if (!_intelligencePenetrateIndicateRegard) { + _intelligencePenetrateIndicateRegard = [[YYAnimatedImageView alloc] init]; + _intelligencePenetrateIndicateRegard.backgroundColor = [UIColor clearColor]; + _intelligencePenetrateIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _intelligencePenetrateIndicateRegard; +} + +- (SpriteSheetIndicateExecutive *)manager { + if (!_manager) { + _manager = [[SpriteSheetIndicateExecutive alloc] init]; + } + return _manager; +} + + + +@end diff --git a/YuMi/Modules/YMMessage/View/Session/View/InterlocutionNevEnergeticRegard.h b/YuMi/Modules/YMMessage/View/Session/View/InterlocutionNevEnergeticRegard.h new file mode 100644 index 00000000..61846c22 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/View/InterlocutionNevEnergeticRegard.h @@ -0,0 +1,16 @@ +// +// InterlocutionNevEnergeticRegard.h +// YUMI +// +// Created by YUMI on 2023/1/17. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface InterlocutionNevEnergeticRegard : UIView + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/Session/View/InterlocutionNevEnergeticRegard.m b/YuMi/Modules/YMMessage/View/Session/View/InterlocutionNevEnergeticRegard.m new file mode 100644 index 00000000..89f937c0 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/View/InterlocutionNevEnergeticRegard.m @@ -0,0 +1,75 @@ +// +// InterlocutionNevEnergeticRegard.m +// YUMI +// +// Created by YUMI on 2023/1/17. +// + +#import "InterlocutionNevEnergeticRegard.h" +#import +#import "DJDKMIMOMColor.h" + +@interface InterlocutionNevEnergeticRegard () + +@property (nonatomic,strong) UIImageView *liveRegard; +@property (nonatomic,strong) UILabel *liveSequencignation; + +@end + +@implementation InterlocutionNevEnergeticRegard + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.liveRegard]; + [self addSubview:self.liveSequencignation]; +} + +- (void)initChildLyRestrictions { + + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(15); + make.right.mas_equalTo(self.liveSequencignation.mas_right); + }]; + + [self.liveRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(6, 6)); + make.centerY.mas_equalTo(self); + make.left.mas_equalTo(self); + }]; + + [self.liveSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.liveRegard.mas_right).offset(4); + make.centerY.mas_equalTo(self.liveRegard); + }]; +} +#pragma mark - Getters And Setters +- (UIImageView *)liveRegard { + if (!_liveRegard) { + _liveRegard = [[UIImageView alloc] init]; + _liveRegard.userInteractionEnabled = YES; + _liveRegard.image = [UIImage imageNamed:@"yumi_term_title_live"]; + } + return _liveRegard; +} + +- (UILabel *)liveSequencignation { + if (!_liveSequencignation) { + _liveSequencignation = [[UILabel alloc] init]; + _liveSequencignation.font = [UIFont systemFontOfSize:10]; + _liveSequencignation.textColor = [DJDKMIMOMColor essayTertiusPrettify]; + _liveSequencignation.text = @"直播中 >"; + } + return _liveSequencignation; +} + + +@end diff --git a/YuMi/Modules/YMMessage/View/Session/View/InterlocutionNevRegard.h b/YuMi/Modules/YMMessage/View/Session/View/InterlocutionNevRegard.h new file mode 100644 index 00000000..14660db8 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/View/InterlocutionNevRegard.h @@ -0,0 +1,28 @@ +// +// InterlocutionNevRegard.h +// YUMI +// +// Created by YUMI on 2022/4/25. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class InterlocutionNevRegard, ConsumerAbstractMatrix; +@protocol InterlocutionNevRegardRepresendtation +- (void)interlocutionNevRegard:(InterlocutionNevRegard *)view didClickReport:(UIButton *)sender; +- (void)interlocutionNevRegard:(InterlocutionNevRegard *)view didClickLike:(UIButton *)sender; +- (void)interlocutionNevRegard:(InterlocutionNevRegard *)view didClickBack:(UIButton *)sender; +- (void)interlocutionNevRegard:(InterlocutionNevRegard *)view didRoomLive:(NSString *)roomUid; +@end + +@interface InterlocutionNevRegard : UIView + +@property (nonatomic,copy) NSString *title; +@property (nonatomic,strong) ConsumerAbstractMatrix *userInfo; +@property (nonatomic,assign) BOOL isLike; +@property (nonatomic,weak) id delegate; +@property (nonatomic,assign) BOOL isInRoom; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/Session/View/InterlocutionNevRegard.m b/YuMi/Modules/YMMessage/View/Session/View/InterlocutionNevRegard.m new file mode 100644 index 00000000..131eb004 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/View/InterlocutionNevRegard.m @@ -0,0 +1,246 @@ +// +// InterlocutionNevRegard.m +// YUMI +// +// Created by YUMI on 2022/4/25. +// + +#import "InterlocutionNevRegard.h" +#import +#import +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" +#import "YUMIConstant.h" +#import "UIImage+Utils.h" +#import "InterlocutionNevEnergeticRegard.h" +#import "NEMCCommunicationUtils.h" +#import "ConsumerAbstractMatrix.h" + +@interface InterlocutionNevRegard () + +@property (nonatomic,strong) UIButton *backButton; +@property (nonatomic,strong) UIStackView *abstractHierarchyRegard; +@property (nonatomic,strong) UILabel *monicerSequencignation; +@property (nonatomic,strong) UIStackView *stackView; +@property (nonatomic,strong) UILabel *subChampionSequencignation; +@property (nonatomic,strong) InterlocutionNevEnergeticRegard *liveRegard; +@property (nonatomic,strong) UIButton *likeBtuton; +@property (nonatomic,strong) UIButton *reportBtuton; + +@property (nonatomic,copy) NSString *userId; + +@end + +@implementation InterlocutionNevRegard +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify]; + [self addSubview:self.backButton]; + [self addSubview:self.abstractHierarchyRegard]; + [self addSubview:self.reportBtuton]; + [self addSubview:self.likeBtuton]; + + [self.abstractHierarchyRegard addArrangedSubview:self.monicerSequencignation]; + [self.abstractHierarchyRegard addArrangedSubview:self.stackView]; + + [self.stackView addArrangedSubview:self.subChampionSequencignation]; + [self.stackView addArrangedSubview:self.liveRegard]; +} + +- (void)initChildLyRestrictions { + [self.backButton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(22, 22)); + make.left.mas_equalTo(self).offset(8); + make.top.mas_equalTo(statusbarHeight + 14); + }]; + + [self.abstractHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self); + make.centerY.mas_equalTo(self.backButton); + }]; + + [self.likeBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.reportBtuton); + make.right.mas_equalTo(self.reportBtuton.mas_left).offset(-12); + make.size.mas_equalTo(CGSizeMake(48, 20)); + }]; + + [self.reportBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(30, 30)); + make.right.mas_equalTo(self).offset(-15); + make.centerY.mas_equalTo(self.backButton); + }]; +} + +#pragma mark - Event Response +- (void)respondBtutonPerformance:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(interlocutionNevRegard:didClickReport:)]) { + [self.delegate interlocutionNevRegard:self didClickReport:sender]; + } +} + +- (void)encourageBtutonPerformance:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(interlocutionNevRegard:didClickBack:)]) { + [self.delegate interlocutionNevRegard:self didClickBack:sender]; + } +} + +- (void)similarBtutonPerformance:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(interlocutionNevRegard:didClickLike:)]) { + [self.delegate interlocutionNevRegard:self didClickLike:sender]; + } +} + +- (void)liveRegardRecognition { + if (self.delegate && [self.delegate respondsToSelector:@selector(interlocutionNevRegard:didRoomLive:)]) { + [self.delegate interlocutionNevRegard:self didRoomLive:self.userInfo.roomUid]; + } +} + +#pragma mark - Getters And Setters +- (void)setUserInfo:(ConsumerAbstractMatrix *)userInfo { + _userInfo = userInfo; + if (_userInfo) { + NSString * userId = [NSString stringWithFormat:@"%ld", userInfo.uid]; + self.userId = userId; + if (userInfo.nick.length > 0) { + self.title = userInfo.nick; + } else { + [[NIMSDK sharedSDK].userManager fetchUserInfos:@[userId] completion:^(NSArray * _Nullable users, NSError * _Nullable error) { + if (!error) { + self.title = users[0].userInfo.nickName; + } + }]; + } + self.subChampionSequencignation.hidden = ![[NIMSDK sharedSDK].userManager isUserInBlackList:userId]; + self.liveRegard.hidden = ([[NIMSDK sharedSDK].userManager isUserInBlackList:userId] || _userInfo.roomUid.length <= 0); + self.reportBtuton.hidden = [NEMCCommunicationUtils isHLOfficalSequenceription:self.userId] || self.isInRoom; + } +} + +- (void)setTitle:(NSString *)title { + _title = title; + if (_title) { + NSString * nick = title; + if (nick.length > 10 ) { + nick = [nick substringToIndex:10]; + } + self.monicerSequencignation.text = nick; + } +} + +- (void)setIsLike:(BOOL)isLike { + _isLike = isLike; + self.likeBtuton.hidden = _isLike; +} + +- (void)setIsInRoom:(BOOL)isInRoom { + _isInRoom = isInRoom; + self.reportBtuton.hidden = _isInRoom; + self.liveRegard.hidden = YES; + if (_isInRoom) { + [self.backButton mas_updateConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self).offset(11); + }]; + } +} + +- (UIButton *)backButton { + if (!_backButton) { + _backButton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_backButton setImage:[UIImage imageNamed:@"yumi_same_title_back"] forState:UIControlStateNormal]; + [_backButton setImage:[UIImage imageNamed:@"yumi_same_title_back"] forState:UIControlStateSelected]; + [_backButton addTarget:self action:@selector(encourageBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _backButton; +} + +- (UIStackView *)abstractHierarchyRegard { + if (!_abstractHierarchyRegard) { + _abstractHierarchyRegard = [[UIStackView alloc] init]; + _abstractHierarchyRegard.axis = UILayoutConstraintAxisVertical; + _abstractHierarchyRegard.distribution = UIStackViewDistributionFill; + _abstractHierarchyRegard.alignment = UIStackViewAlignmentCenter; + _abstractHierarchyRegard.spacing = 1; + } + return _abstractHierarchyRegard; +} + +- (UIStackView *)stackView { + if (!_stackView) { + _stackView = [[UIStackView alloc] init]; + _stackView.axis = UILayoutConstraintAxisHorizontal; + _stackView.distribution = UIStackViewDistributionFill; + _stackView.alignment = UIStackViewAlignmentFill; + _stackView.spacing = 0; + } + return _stackView; +} + +- (InterlocutionNevEnergeticRegard *)liveRegard { + if (!_liveRegard) { + _liveRegard = [[InterlocutionNevEnergeticRegard alloc] init]; + _liveRegard.hidden = YES; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(liveRegardRecognition)]; + [_liveRegard addGestureRecognizer:tap]; + } + return _liveRegard; +} + +- (UILabel *)monicerSequencignation { + if (!_monicerSequencignation) { + _monicerSequencignation = [[UILabel alloc] init]; + _monicerSequencignation.font = [UIFont systemFontOfSize:16 weight:UIFontWeightMedium]; + _monicerSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _monicerSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _monicerSequencignation; +} + +- (UIButton *)likeBtuton { + if (!_likeBtuton) { + _likeBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_likeBtuton setTitle:YMLocalizedString(@"Session_Nav_View_0") forState:UIControlStateNormal]; + [_likeBtuton setTitleColor:[DJDKMIMOMColor acknowledgementBtutonEssayPrettify] forState:UIControlStateNormal]; + _likeBtuton.titleLabel.font = [UIFont systemFontOfSize:10]; + [_likeBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + _likeBtuton.layer.masksToBounds = YES; + _likeBtuton.layer.cornerRadius = 10; + [_likeBtuton addTarget:self action:@selector(similarBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _likeBtuton; +} + +- (UILabel *)subChampionSequencignation { + if (!_subChampionSequencignation) { + _subChampionSequencignation = [[UILabel alloc] init]; + _subChampionSequencignation.font = [UIFont systemFontOfSize:11]; + _subChampionSequencignation.textColor = [DJDKMIMOMColor instantEssayPrettify]; + _subChampionSequencignation.text = YMLocalizedString(@"Session_Nav_View_1"); + _subChampionSequencignation.hidden = YES; + _subChampionSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _subChampionSequencignation; +} + +- (UIButton *)reportBtuton { + if (!_reportBtuton) { + _reportBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_reportBtuton setImage:[UIImage imageNamed:@"yumi_msg_term_title_report"] forState:UIControlStateNormal]; + [_reportBtuton setImage:[UIImage imageNamed:@"yumi_msg_term_title_report"] forState:UIControlStateSelected]; + [_reportBtuton addTarget:self action:@selector(respondBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _reportBtuton; +} + + +@end diff --git a/YuMi/Modules/YMMessage/View/Session/View/InterlocutionVentureRegard.h b/YuMi/Modules/YMMessage/View/Session/View/InterlocutionVentureRegard.h new file mode 100644 index 00000000..5cb44cef --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/View/InterlocutionVentureRegard.h @@ -0,0 +1,24 @@ +// +// InterlocutionVentureRegard.h +// YUMI +// +// Created by YUMI on 2022/8/11. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class InterlocutionVentureRegard; +@protocol InterlocutionRiskRegardRepresendtation + +- (void)interlocutionVentureRegardConcludeBtutonTicktack:(InterlocutionVentureRegard *)view; + +@end + +@interface InterlocutionVentureRegard : UIView +@property (nonatomic,copy) NSString *userId; +@property (nonatomic,weak) id delegate; +@property (nonatomic,copy) NSString *warning; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/Session/View/InterlocutionVentureRegard.m b/YuMi/Modules/YMMessage/View/Session/View/InterlocutionVentureRegard.m new file mode 100644 index 00000000..d7601fb0 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/View/InterlocutionVentureRegard.m @@ -0,0 +1,86 @@ +// +// InterlocutionVentureRegard.m +// YUMI +// +// Created by YUMI on 2022/8/11. +// + +#import "InterlocutionVentureRegard.h" +#import +#import "DJDKMIMOMColor.h" +#import "InterlocutionVentureCache.h" +#import "UIButton+EnlargeTouchArea.h" + +@interface InterlocutionVentureRegard () +@property (strong, nonatomic) UILabel *warnEssaySequencignation; + +@property (strong, nonatomic) UIButton *concludeBtuton; +@end + +@implementation InterlocutionVentureRegard + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = UIColorRGBAlpha(0xfee4e4, 1); + + [self addSubview:self.warnEssaySequencignation]; + [self addSubview:self.concludeBtuton]; +} + +- (void)initChildLyRestrictions { + [self.warnEssaySequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.mas_centerX); + make.centerY.mas_equalTo(self.mas_centerY); + }]; + [self.concludeBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.mas_equalTo(8); + make.trailing.mas_equalTo(self.mas_trailing).offset(-15); + make.centerY.mas_equalTo(self.mas_centerY); + }]; +} + +#pragma mark - Event Response +- (void)concludeBtutonPerformance:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(interlocutionVentureRegardConcludeBtutonTicktack:)]) { + [self.delegate interlocutionVentureRegardConcludeBtutonTicktack:self]; + } +} + +#pragma mark - Getters And Setters +- (void)setWarning:(NSString *)warning { + _warning = warning; + if (_warning) { + self.warnEssaySequencignation.text = _warning; + } +} + +- (UILabel *)warnEssaySequencignation { + if (!_warnEssaySequencignation) { + _warnEssaySequencignation = [[UILabel alloc]init]; + _warnEssaySequencignation.text = @"温馨提示:对方和您非好友关系,请注意隐私安全!"; + _warnEssaySequencignation.textColor = UIColorFromRGB(0xFF5858); + _warnEssaySequencignation.font = [UIFont systemFontOfSize:12.f]; + } + return _warnEssaySequencignation; +} + +- (UIButton *)concludeBtuton { + if (!_concludeBtuton) { + _concludeBtuton = [[UIButton alloc]init]; + [_concludeBtuton setImage:[UIImage imageNamed:@"yumi_term_warn_close"] forState:UIControlStateNormal]; + [_concludeBtuton setEnlargeEdgeAboutApex:10 right:10 bottom:10 left:10]; + [_concludeBtuton addTarget:self action:@selector(concludeBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _concludeBtuton; +} + +@end diff --git a/YuMi/Modules/YMMessage/View/Session/View/InterlocutionVocalmusicReflectionRegard.h b/YuMi/Modules/YMMessage/View/Session/View/InterlocutionVocalmusicReflectionRegard.h new file mode 100644 index 00000000..d1e971db --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/View/InterlocutionVocalmusicReflectionRegard.h @@ -0,0 +1,22 @@ +// +// InterlocutionVocalmusicReflectionRegard.h +// YUMI +// +// Created by YUMI on 2022/4/21. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface InterlocutionVocalmusicReflectionRegard : UIView + +- (void)prohibitipositionVocalmusicReflection:(NSString *)imageName title:(NSString *)title isAnimation:(BOOL)isAnimation; +- (void)instituteVocalmusicReflection; +- (void)revoctowardsionVocalmusicReflection; +- (void)accomplishVocalmusicReflection; +- (void)refurbishVocalmusicReflectionDirectoryvance:(NSTimeInterval)recordTime; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/Session/View/InterlocutionVocalmusicReflectionRegard.m b/YuMi/Modules/YMMessage/View/Session/View/InterlocutionVocalmusicReflectionRegard.m new file mode 100644 index 00000000..79f06a12 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/Session/View/InterlocutionVocalmusicReflectionRegard.m @@ -0,0 +1,140 @@ +// +// InterlocutionVocalmusicReflectionRegard.m +// YUMI +// +// Created by YUMI on 2022/4/21. +// + +#import "InterlocutionVocalmusicReflectionRegard.h" +#import +#import + +@interface InterlocutionVocalmusicReflectionRegard () +@property (nonatomic,strong) UIView * encourageRegard; +@property (nonatomic,strong) UIImageView *brandIndicateRegard; +@property (nonatomic,strong) UILabel *titleLabel; +@property (nonatomic,strong) UILabel *intratemporalSequencignation; +@end + +@implementation InterlocutionVocalmusicReflectionRegard + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} +#pragma mark - Public Method +- (void)prohibitipositionVocalmusicReflection:(NSString *)imageName title:(NSString *)title isAnimation:(BOOL)isAnimation { + self.brandIndicateRegard.image = [UIImage imageNamed:imageName]; + if (isAnimation) { + [self.brandIndicateRegard startAnimating]; + } else { + [self.brandIndicateRegard stopAnimating]; + } + self.titleLabel.text = title; +} + +- (void)instituteVocalmusicReflection { + self.intratemporalSequencignation.text = @"00:00"; + [[NIMSDK sharedSDK].mediaManager recordForDuration:60]; +} +- (void)revoctowardsionVocalmusicReflection { + self.intratemporalSequencignation.text = @"00:00"; + [[NIMSDK sharedSDK].mediaManager cancelRecord]; +} +- (void)accomplishVocalmusicReflection { + self.intratemporalSequencignation.text = @"00:00"; + [[NIMSDK sharedSDK].mediaManager stopRecord]; +} + +- (void)refurbishVocalmusicReflectionDirectoryvance:(NSTimeInterval)recordTime { + NSInteger minutes = (NSInteger)recordTime / 60; + NSInteger seconds = (NSInteger)recordTime % 60; + self.intratemporalSequencignation.text = [NSString stringWithFormat:@"%02zd:%02zd", minutes, seconds]; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.encourageRegard]; + [self.encourageRegard addSubview:self.brandIndicateRegard]; + [self.encourageRegard addSubview:self.titleLabel]; + [self.encourageRegard addSubview:self.intratemporalSequencignation]; +} + +- (void)initChildLyRestrictions { + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(250, 200)); + }]; + + [self.intratemporalSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.encourageRegard); + make.top.mas_equalTo(self.encourageRegard).offset(15); + }]; + + [self.encourageRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self); + }]; + + [self.brandIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.encourageRegard); + make.top.mas_equalTo(self.encourageRegard).offset(50); + make.size.mas_equalTo(CGSizeMake(90, 72)); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.encourageRegard); + make.top.mas_equalTo(self.brandIndicateRegard.mas_bottom).offset(25); + }]; +} + +#pragma mark - Getters And Setters +- (UIView *)encourageRegard { + if (!_encourageRegard) { + _encourageRegard = [[UIView alloc] init]; + _encourageRegard.backgroundColor = [UIColor blackColor]; + _encourageRegard.layer.masksToBounds = YES; + _encourageRegard.layer.cornerRadius = 10; + } + return _encourageRegard; +} + + +- (UIImageView *)brandIndicateRegard { + if (!_brandIndicateRegard) { + _brandIndicateRegard = [[UIImageView alloc] init]; + _brandIndicateRegard.userInteractionEnabled = YES; + UIImage *firstImage = [UIImage imageNamed:@"yumi_msg_kit_audio_record_first"]; + UIImage *secondImage = [UIImage imageNamed:@"yumi_msg_kit_audio_record_second"]; + UIImage *thirdImage = [UIImage imageNamed:@"yumi_msg_kit_audio_record_third"]; + _brandIndicateRegard.animationImages = @[firstImage, secondImage, thirdImage]; + _brandIndicateRegard.animationDuration = 1; + _brandIndicateRegard.animationRepeatCount = HUGE; + } + return _brandIndicateRegard; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.font = [UIFont systemFontOfSize:15]; + _titleLabel.textColor = [UIColor whiteColor]; + _titleLabel.textAlignment = NSTextAlignmentCenter; + } + return _titleLabel; +} + +- (UILabel *)intratemporalSequencignation { + if (!_intratemporalSequencignation) { + _intratemporalSequencignation = [[UILabel alloc] init]; + _intratemporalSequencignation.font = [UIFont systemFontOfSize:17 weight:UIFontWeightMedium]; + _intratemporalSequencignation.textColor = [UIColor whiteColor]; + _intratemporalSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _intratemporalSequencignation; +} + + +@end diff --git a/YuMi/Modules/YMMessage/View/SessionList/InterlocutionStatementElement.h b/YuMi/Modules/YMMessage/View/SessionList/InterlocutionStatementElement.h new file mode 100644 index 00000000..cf6697e1 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/SessionList/InterlocutionStatementElement.h @@ -0,0 +1,19 @@ +// +// InterlocutionStatementElement.h +// YUMI +// +// Created by zu on 2021/11/26. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface InterlocutionStatementElement : UITableViewCell + +- (void)rconcludeerAboutInterlocution:(NIMRecentSession*)recent; +@property (nonatomic,strong) NSMutableDictionary *stickApexCommunications; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/SessionList/InterlocutionStatementElement.m b/YuMi/Modules/YMMessage/View/SessionList/InterlocutionStatementElement.m new file mode 100644 index 00000000..15925403 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/SessionList/InterlocutionStatementElement.m @@ -0,0 +1,201 @@ +// +// InterlocutionStatementElement.m +// YUMI +// +// Created by zu on 2021/11/26. +// + +#import "InterlocutionStatementElement.h" +#import "NEMCBadgeRegard.h" +#import "NetIndicateRegard.h" +#import "NEMCCommunicationUtils.h" +#import "NEMCIntratemporalUtils.h" +#import "UIView+NIM.h" + +#import "DJDKMIMOMColor.h" + +#import + +@interface InterlocutionStatementElement() + +@property (nonatomic,strong) NetIndicateRegard *intelligenceportraitIndicateRegard; + +@property (nonatomic,strong) UILabel *constituteSequencignation; + +@property (nonatomic,strong) UILabel *communicationSequencignation; + +@property (nonatomic,strong) UILabel *intratemporalSequencignation; + +@property (nonatomic,strong) NEMCBadgeRegard *quantityRegard; + +@property (nonatomic,strong) UIView *divider; + +@end + +@implementation InterlocutionStatementElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(nullable NSString *)reuseIdentifier { + self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; + if (self) { + self.backgroundColor = UIColor.clearColor; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self initRegard]; + [self initLayout]; + } + return self; +} + +- (void)rconcludeerAboutInterlocution:(NIMRecentSession *)recent { + NIMUser *user = [[NIMSDK sharedSDK].userManager userInfo:recent.session.sessionId]; + if (user.userInfo == nil) { + NSString * uid = recent.session.sessionId; + if (uid > 0) { + NSArray * uids = @[uid]; + [[NIMSDK sharedSDK].userManager fetchUserInfos:uids completion:^(NSArray * _Nullable users, NSError * _Nullable error) { + if (error == nil) { + NIMUser * userInfo = users.firstObject; + self.constituteSequencignation.text = userInfo.userInfo.nickName; + NSString *avatarUrl = userInfo.userInfo.avatarUrl; + self.intelligenceportraitIndicateRegard.imageUrl = avatarUrl; + [self.constituteSequencignation sizeToFit]; + } + }]; + } + } else { + NSString *avatarUrl = user.userInfo.avatarUrl; + self.constituteSequencignation.text = user.userInfo.nickName; + self.intelligenceportraitIndicateRegard.imageUrl = avatarUrl; + [self.constituteSequencignation sizeToFit]; + } + self.communicationSequencignation.text = [NEMCCommunicationUtils communicationSatisfperformance:recent.lastMessage]; + [self.communicationSequencignation sizeToFit]; + if (recent.lastMessage) { + self.intratemporalSequencignation.text = [NEMCIntratemporalUtils showTime:recent.lastMessage.timestamp showDetail:NO]; + } else { + NSTimeInterval timeSecond = recent.updateTime / 1000.0; + self.intratemporalSequencignation.text = [NEMCIntratemporalUtils showTime:timeSecond showDetail:NO]; + } + [self.intratemporalSequencignation sizeToFit]; + if (recent.unreadCount) { + self.quantityRegard.hidden = NO; + self.quantityRegard.badgeValue = @(recent.unreadCount).stringValue; + } else { + self.quantityRegard.hidden = YES; + } + + NIMStickTopSessionInfo * topInfo = [self.stickApexCommunications objectForKey:recent.session]; + if (topInfo && topInfo.session.sessionId.integerValue == recent.session.sessionId.integerValue) { + self.backgroundColor = [DJDKMIMOMColor colorAboutHexBWSttr:@"#E5EFFC"]; + } else { + self.backgroundColor = [UIColor clearColor]; + } +} + +- (void)initRegard { + [self.contentView addSubview:self.intelligenceportraitIndicateRegard]; + [self.contentView addSubview:self.constituteSequencignation]; + [self.contentView addSubview:self.communicationSequencignation]; + [self.contentView addSubview:self.intratemporalSequencignation]; + [self.contentView addSubview:self.quantityRegard]; + [self.contentView addSubview:self.divider]; +} + +- (void)initLayout { + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.contentView); + make.left.mas_equalTo(15); + make.height.width.mas_equalTo(45); + }]; + + [self.constituteSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.bottom.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_centerY).offset(-2); + make.left.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_right).offset(15); + }]; + + [self.communicationSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.constituteSequencignation); + make.top.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_centerY).offset(2); + make.right.mas_equalTo(self.intratemporalSequencignation.mas_left).offset(-15); + }]; + + [self.intratemporalSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.bottom.mas_equalTo(self).offset(-15); + make.right.mas_equalTo(self).offset(-15); + }]; + + [self.divider mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo (-15); + make.left.mas_equalTo(self.constituteSequencignation); + make.bottom.mas_equalTo(self); + make.height.mas_equalTo(0.5f); + }]; +} + +- (void)layoutSubviews { + [super layoutSubviews]; + self.quantityRegard.nim_right = self.nim_width - 15; + self.quantityRegard.nim_top = 20; +} + +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + NetIndicateDisposition *config = [[NetIndicateDisposition alloc]init]; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + config.radius = CGFLOAT_MAX; + config.imageType = ImageGenreUserIcon; + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _intelligenceportraitIndicateRegard.layer.cornerRadius = 45.f / 2; + } + return _intelligenceportraitIndicateRegard; +} + +- (UILabel *)constituteSequencignation { + if (!_constituteSequencignation) { + _constituteSequencignation = [[UILabel alloc] initWithFrame:CGRectZero]; + _constituteSequencignation.backgroundColor = [UIColor clearColor]; + _constituteSequencignation.font = [UIFont systemFontOfSize:15.f weight:UIFontWeightMedium]; + _constituteSequencignation.textColor = DJDKMIMOMColor.mainEssayPrettify; + } + return _constituteSequencignation; +} + +- (UILabel *)communicationSequencignation { + if (!_communicationSequencignation) { + _communicationSequencignation = [[UILabel alloc] initWithFrame:CGRectZero]; + _communicationSequencignation.backgroundColor = [UIColor clearColor]; + _communicationSequencignation.font = [UIFont systemFontOfSize:13.f]; + _communicationSequencignation.textColor = DJDKMIMOMColor.instantEssayPrettify; + } + return _communicationSequencignation; +} + +- (UILabel *)intratemporalSequencignation { + if (!_intratemporalSequencignation) { + _intratemporalSequencignation = [[UILabel alloc] initWithFrame:CGRectZero]; + _intratemporalSequencignation.backgroundColor = [UIColor clearColor]; + _intratemporalSequencignation.font = [UIFont systemFontOfSize:12.f weight:UIFontWeightLight]; + _intratemporalSequencignation.textColor = DJDKMIMOMColor.essayTertiusPrettify; + [_intratemporalSequencignation setContentHuggingPriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal]; + [_intratemporalSequencignation setContentCompressionResistancePriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal]; + } + return _intratemporalSequencignation; +} + +- (NEMCBadgeRegard *)quantityRegard { + if (!_quantityRegard) { + _quantityRegard = [NEMCBadgeRegard viewAboutQuantityPrompt:@""]; + } + return _quantityRegard; +} + +- (UIView *)divider { + if (!_divider) { + _divider = [[UIView alloc]init]; + _divider.backgroundColor = [DJDKMIMOMColor dividerPrettify]; + _divider.hidden = YES; + } + return _divider; +} + +@end diff --git a/YuMi/Modules/YMMessage/View/SessionList/InterlocutionStatementRegardGovernancer.h b/YuMi/Modules/YMMessage/View/SessionList/InterlocutionStatementRegardGovernancer.h new file mode 100644 index 00000000..8b748528 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/SessionList/InterlocutionStatementRegardGovernancer.h @@ -0,0 +1,30 @@ +// +// InterlocutionStatementRegardGovernancer.h +// YUMI +// +// Created by zu on 2021/11/25. +// +// 请注意,这是一次冒险。😱 +// + +#import "BaseRegardGovernancer.h" +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSUInteger, InterlocutionStatementOpenGenre) { + InterlocutionStatementOpenGenreDefault = 1, + InterlocutionStatementOpenGenreRoom = 2, +}; + +@interface InterlocutionStatementRegardGovernancer : BaseRegardGovernancer + +- (instancetype)initWithType:(InterlocutionStatementOpenGenre)type; + +@property (nonatomic, weak) UIViewController * mainGovernancer; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/SessionList/InterlocutionStatementRegardGovernancer.m b/YuMi/Modules/YMMessage/View/SessionList/InterlocutionStatementRegardGovernancer.m new file mode 100644 index 00000000..f3241f5a --- /dev/null +++ b/YuMi/Modules/YMMessage/View/SessionList/InterlocutionStatementRegardGovernancer.m @@ -0,0 +1,514 @@ +// +// InterlocutionStatementRegardGovernancer.m +// YUMI +// +// Created by zu on 2021/11/25. +// + +#import "InterlocutionStatementRegardGovernancer.h" +#import "InterlocutionStatementElement.h" +#import "InterlocutionRegardGovernancer.h" +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" +#import "ClientDisposition.h" +#import "Api+Mine.h" +#import "AccountAbstractStorage.h" +#import "NSArray+Safe.h" +#import "NSMutableDictionary+Saft.h" +#import "ConsumerAbstractMatrix.h" +#import "YUMIInterlocutionDiscoveryStrangeRegardGovernancer.h" +#import "MKJPopup.h" + + +NSString * const kMessageShowReadDotKey = @"kMessageShowReadDotKey"; + +#import + +@interface InterlocutionStatementRegardGovernancer () +@property (nonatomic,strong) UIView *customNevigationObstacle; + +@property (nonatomic,strong) UILabel *titleLabel; + +@property (nonatomic, strong) UIButton *entiretyLireBtuton; + +@property (nonatomic, strong) UITableView *interlocutionStatementRegard; + + +@property (nonatomic, strong) NSMutableArray *recentInterlocutions; + +@property (nonatomic, assign) InterlocutionStatementOpenGenre unfoildGenre; +@property (nonatomic,strong) ConsumerAbstractMatrix *userInfo; +@property (nonatomic, copy) void(^scrollCallback)(UIScrollView *scrollView); +@property (nonatomic,strong) NSMutableDictionary *stickApexCommunications; +@end + +@implementation InterlocutionStatementRegardGovernancer + +- (void)dealloc { + [[NIMSDK sharedSDK].conversationManager removeDelegate:self]; + [[NIMSDK sharedSDK].loginManager removeDelegate:self]; + [[NSNotificationCenter defaultCenter]removeObserver:self]; +} + + +- (instancetype)initWithType:(InterlocutionStatementOpenGenre)type { + self = [self init]; + if (self) { + _unfoildGenre = type; + } + return self; +} + +- (instancetype)init { + self = [super init]; + if (self) { + _unfoildGenre = InterlocutionStatementOpenGenreDefault; + [self initTowardsoloudspeakers]; + [[NIMSDK sharedSDK].conversationManager addDelegate:self]; + [[NIMSDK sharedSDK].loginManager addDelegate:self]; + + [[NIMSDKConfig sharedConfig] setShouldSyncStickTopSessionInfos:YES]; + } + return self; +} + +- (BOOL)isVeiledNevObstacle { + return YES;; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self getUserInfo]; + [self initRegards]; + [self initLayout]; + [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(entiretyLireBtutonTicktack) name:@"kAllReadAction" object:nil]; +} + +- (void)getUserInfo { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [Api getUserInfo:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + ConsumerAbstractMatrix * userInfo = [ConsumerAbstractMatrix mtowardsrixAboutImpactbasket:data.data]; + self.userInfo = userInfo; + [self.interlocutionStatementRegard reloadData]; + } + } uid:uid]; +} +- (void)initRegards { + self.view.backgroundColor = [UIColor clearColor]; + if (self.unfoildGenre == InterlocutionStatementOpenGenreDefault) { + [self.customNevigationObstacle addSubview:self.titleLabel]; + [self.view addSubview:self.customNevigationObstacle]; + [self.customNevigationObstacle addSubview:self.entiretyLireBtuton]; + } + [self.view addSubview:self.interlocutionStatementRegard]; +} + +- (void)initLayout { + if (self.unfoildGenre == InterlocutionStatementOpenGenreDefault) { + [self.customNevigationObstacle mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self.view); + make.height.mas_equalTo(kNavigationHeight); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.customNevigationObstacle); + make.bottom.mas_equalTo(self.customNevigationObstacle.mas_bottom).offset(-10); + }]; + [self.entiretyLireBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(-16); + make.width.height.mas_equalTo(30); + make.centerY.mas_equalTo(self.titleLabel); + }]; + } + + [self.interlocutionStatementRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.mas_equalTo(self.view); + if (self.unfoildGenre == InterlocutionStatementOpenGenreDefault) { + make.top.mas_equalTo(self.view).offset(kNavigationHeight); + } else { + make.top.mas_equalTo(self.view); + } + }]; + +} + +- (void)initTowardsoloudspeakers { + [self.recentInterlocutions removeAllObjects]; + _recentInterlocutions = [[NIMSDK sharedSDK].conversationManager.allRecentSessions mutableCopy]; + __block int unreadCount = 0; + NSMutableArray * uids = [[NSMutableArray alloc] init]; + [self.recentInterlocutions enumerateObjectsUsingBlock:^(NIMRecentSession * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + [uids addObject:obj.session.sessionId]; + unreadCount += obj.unreadCount; + }]; + [[NIMSDK sharedSDK].userManager fetchUserInfos:uids completion:nil]; + + NIMLoadRecentSessionsOptions *options = [[NIMLoadRecentSessionsOptions alloc] init]; + options.sortByStickTopInfos = YES; + [NIMSDK.sharedSDK.chatExtendManager loadRecentSessionsWithOptions:options completion:^(NSError * _Nullable error, NSArray * _Nullable recentInterlocutions) { + if (error) { + + return; + } + + }]; + @kWeakify(self); + + [self.recentInterlocutions enumerateObjectsUsingBlock:^(NIMRecentSession * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + @kStrongify(self); + if (![[ClientDisposition partowardsiciptowardsionDisposition].dispositionAbstract.officialMsgUids containsObject:obj.session.sessionId]) { + if (obj.lastMessage.messageType == NIMMessageTypeTip) { + if ([obj.lastMessage.localExt[@"isServer"] boolValue] == YES) { + [self.recentInterlocutions removeObject:obj]; + [uids removeObject:obj.session.sessionId]; + unreadCount -= obj.unreadCount; + NIMDeleteRecentSessionOption *option = [[NIMDeleteRecentSessionOption alloc] init]; + option.isDeleteRoamMessage = YES; + option.shouldMarkAllMessagesReadInSessions = YES; + [[NIMSDK sharedSDK].conversationManager deleteRecentSession:obj option:option completion:^(NSError * _Nullable error) { + + }]; + } + } + } + }]; + [self setTarbsObstacleProvisionQuantity:unreadCount]; + [[NIMSDK sharedSDK].userManager fetchUserInfos:uids completion:nil]; + + [[NIMSDK sharedSDK].chatExtendManager loadStickTopSessionInfos:^(NSError * _Nullable error, NSDictionary * _Nullable infos) { + if (error == nil) { + self.stickApexCommunications = [infos mutableCopy]; + [self sortInterlocutionSttowardsement]; + } + }]; + + NIMLoadRecentSessionsOptions *options1 = [[NIMLoadRecentSessionsOptions alloc] init]; + options1.sortByStickTopInfos = YES; + [NIMSDK.sharedSDK.chatExtendManager loadRecentSessionsWithOptions:options1 completion:^(NSError * _Nullable error, NSArray * _Nullable recentInterlocutions) { + if (error) { + + return; + } + + }]; +} + +#pragma mark - UITableViewDelegate +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ + [tableView deselectRowAtIndexPath:indexPath animated:YES]; + if (self.unfoildGenre == InterlocutionStatementOpenGenreRoom) { + NIMRecentSession *recentSession = self.recentInterlocutions[indexPath.row]; + InterlocutionRegardGovernancer * sessionVC =[[InterlocutionRegardGovernancer alloc] initWithSession:recentSession.session]; + sessionVC.stickApexCommunications = self.stickApexCommunications; + sessionVC.unfoildGenre = self.unfoildGenre; + CATransition *transition = [CATransition animation]; + transition.duration = 0.3f; + transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; + transition.type = kCATransitionPush; + transition.subtype = kCATransitionFromRight; + [self.mainGovernancer.view.layer addAnimation:transition forKey:nil]; + [self.mainGovernancer.view addSubview:sessionVC.view]; + [self.mainGovernancer addChildViewController:sessionVC]; + } else { + NIMRecentSession *recentSession = self.recentInterlocutions[indexPath.row]; + InterlocutionRegardGovernancer *vc = [[InterlocutionRegardGovernancer alloc] initWithSession:recentSession.session]; + vc.stickApexCommunications = self.stickApexCommunications; + vc.unfoildGenre = self.unfoildGenre; + [self.navigationController pushViewController:vc animated:YES]; + } +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{ + return 70.f; +} + +- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath { + return YES; +} + +- (NSArray *)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath { + NIMRecentSession * session = [self.recentInterlocutions secureGroalTowardsIndictowardsrix1:indexPath.row]; + UITableViewRowAction * deleteAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDefault title:YMLocalizedString(@"Session_List_View_Controller_0") handler:^(UITableViewRowAction * _Nonnull action, NSIndexPath * _Nonnull indexPath) { + NIMRecentSession * session = [self.recentInterlocutions secureGroalTowardsIndictowardsrix1:indexPath.row]; + [[NIMSDK sharedSDK].conversationManager deleteRecentSession:session]; + }]; + deleteAction.title = YMLocalizedString(@"Session_List_View_Controller_1"); + deleteAction.backgroundColor = [UIColor redColor]; + NIMStickTopSessionInfo * topInfo = [self.stickApexCommunications objectForKey:session.session]; + if (topInfo.session.sessionId.length > 0) { + UITableViewRowAction * topAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDefault title:YMLocalizedString(@"Session_List_View_Controller_6") handler:^(UITableViewRowAction * _Nonnull action, NSIndexPath * _Nonnull indexPath) { + [[NIMSDK sharedSDK].chatExtendManager removeStickTopSession:topInfo completion:^(NSError * _Nullable error, NIMStickTopSessionInfo * _Nullable removedInfo) { + if (error == nil) { + [self.stickApexCommunications removeObjectForKey:session.session]; + [self sortInterlocutionSttowardsement]; + [self.interlocutionStatementRegard reloadData]; + } + }]; + }]; + topAction.title = YMLocalizedString(@"Session_List_View_Controller_7"); + topAction.backgroundColor = [DJDKMIMOMColor colorAboutHexBWSttr:@"#4C94FF"]; + return @[deleteAction, topAction]; + } else { + UITableViewRowAction * topAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDefault title:YMLocalizedString(@"Session_List_View_Controller_6") handler:^(UITableViewRowAction * _Nonnull action, NSIndexPath * _Nonnull indexPath) { + NIMAddStickTopSessionParams * params = [[NIMAddStickTopSessionParams alloc] initWithSession:session.session]; + [[NIMSDK sharedSDK].chatExtendManager addStickTopSession:params completion:^(NSError * _Nullable error, NIMStickTopSessionInfo * _Nullable newInfo) { + if (error == nil) { + [self.stickApexCommunications secureSetGroal:newInfo forKey:session.session]; + [self sortInterlocutionSttowardsement]; + [self.interlocutionStatementRegard reloadData]; + } + }]; + }]; + topAction.title = YMLocalizedString(@"Session_List_View_Controller_6"); + topAction.backgroundColor = [DJDKMIMOMColor colorAboutHexBWSttr:@"#4C94FF"]; + return @[deleteAction, topAction]; + } +} + +#pragma mark - UITableViewDataSource +- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { + return 1; +} + +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ + return self.recentInterlocutions.count; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ + static NSString * cellId = @"cellId"; + InterlocutionStatementElement * cell = [tableView dequeueReusableCellWithIdentifier:cellId]; + if (!cell) { + cell = [[InterlocutionStatementElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellId]; + } + NIMRecentSession *recent = self.recentInterlocutions[indexPath.row]; + cell.stickApexCommunications = self.stickApexCommunications; + [cell rconcludeerAboutInterlocution:recent]; + return cell; +} +#pragma mark - NIMConversationManagerDelegate +- (void)didLoadAllRecentSessionCompletion { + [self initTowardsoloudspeakers]; + [self.interlocutionStatementRegard reloadData]; +} + +- (void)didAddRecentSession:(NIMRecentSession *)recentSession + totalUnreadCount:(NSInteger)totalUnreadCount { + [self.recentInterlocutions addObject:recentSession]; + [self.recentInterlocutions sortUsingComparator:^NSComparisonResult(id obj1, id obj2) { + NIMRecentSession *item1 = obj1; + NIMRecentSession *item2 = obj2; + if (item1.lastMessage.timestamp < item2.lastMessage.timestamp) { + return NSOrderedDescending; + } + if (item1.lastMessage.timestamp > item2.lastMessage.timestamp) { + return NSOrderedAscending; + } + return NSOrderedSame; + }]; + [self.interlocutionStatementRegard reloadData]; + [self setTarbsObstacleProvisionQuantity:totalUnreadCount]; +} + +- (void)didUpdateRecentSession:(NIMRecentSession *)recentSession + totalUnreadCount:(NSInteger)totalUnreadCount { + for (NIMRecentSession *recent in self.recentInterlocutions) { + if ([recentSession.session.sessionId isEqualToString:recent.session.sessionId]) { + [self.recentInterlocutions removeObject:recent]; + break; + } + } + NSInteger insert = [self prohibiticoveryInsertPlace:recentSession]; + [self.recentInterlocutions insertObject:recentSession atIndex:insert]; + [self.interlocutionStatementRegard reloadData]; + [self setTarbsObstacleProvisionQuantity:totalUnreadCount]; +} + +- (void)didRemoveRecentSession:(NIMRecentSession *)recentSession + totalUnreadCount:(NSInteger)totalUnreadCount { + + NSUInteger index = [self.recentInterlocutions indexOfObject:recentSession]; + [self.recentInterlocutions removeObjectAtIndex:index]; + + + BOOL deleteRemote = NO; + if (deleteRemote) { + [[NIMSDK sharedSDK].conversationManager deleteRemoteSessions:@[recentSession.session] + completion:nil]; + } + [self.interlocutionStatementRegard reloadData]; + [self setTarbsObstacleProvisionQuantity:totalUnreadCount]; +} + +#pragma mark - NIMLoginManagerDelegate +- (void)onLogin:(NIMLoginStep)step { + if (step == NIMLoginStepSyncOK) { + [self initTowardsoloudspeakers]; + } +} + +#pragma mark - JXCategoryListContentViewDelegate +- (UIView *)listView { + return self.view; +} +- (UIScrollView *)listScrollView { + return self.interlocutionStatementRegard; +} +- (void)listViewDidScrollCallback:(void (^)(UIScrollView *))callback { + self.scrollCallback = callback; +} + +- (void)scrollViewDidScroll:(UIScrollView *)scrollView { + if (self.scrollCallback){ + self.scrollCallback(scrollView); + } + +} + +#pragma mark - Private +- (NSInteger)prohibiticoveryInsertPlace:(NIMRecentSession *)recentSession{ + __block NSUInteger matchIdx = 0; + __block BOOL find = NO; + [self.recentInterlocutions enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { + NIMRecentSession *item = obj; + if (item.lastMessage.timestamp <= recentSession.lastMessage.timestamp) { + *stop = YES; + find = YES; + matchIdx = idx; + } + }]; + if (find) { + return matchIdx; + } else { + return self.recentInterlocutions.count; + } +} + +- (void)sort{ + [self.recentInterlocutions sortUsingComparator:^NSComparisonResult(id obj1, id obj2) { + NIMRecentSession *item1 = obj1; + NIMRecentSession *item2 = obj2; + if (item1.lastMessage.timestamp < item2.lastMessage.timestamp) { + return NSOrderedDescending; + } + if (item1.lastMessage.timestamp > item2.lastMessage.timestamp) { + return NSOrderedAscending; + } + return NSOrderedSame; + }]; +} + +- (void)setTarbsObstacleProvisionQuantity:(NSInteger)value { + [[NSNotificationCenter defaultCenter]postNotificationName:@"kGetTabBarItemBadge" object:nil userInfo:@{@"BadgeValue":@(value)}]; + +} + +-(void)sortInterlocutionSttowardsement { + NSMutableArray * recentList = [self.recentInterlocutions mutableCopy]; + [self.recentInterlocutions removeAllObjects]; + NSMutableArray * topList = [NSMutableArray array]; + NSMutableArray * normalList = [NSMutableArray array]; + for (int i = 0 ; i < recentList.count; i++) { + NIMRecentSession * recentSession = [recentList secureGroalTowardsIndictowardsrix1:i]; + NIMStickTopSessionInfo * topInfo = [self.stickApexCommunications objectForKey:recentSession.session]; + if (topInfo && topInfo.session.sessionId > 0) { + [topList addObject:recentSession]; + } else { + [normalList addObject:recentSession]; + } + } + + if (topList.count > 0) { + [self sortGarment:topList]; + } + + if (normalList.count > 0) { + [self sortGarment:normalList]; + } + + [self.recentInterlocutions addObjectsFromArray:topList]; + [self.recentInterlocutions addObjectsFromArray:normalList]; + [self.interlocutionStatementRegard reloadData]; +} + +- (void)sortGarment:(NSMutableArray *)arry { + [arry sortUsingComparator:^NSComparisonResult(id obj1, id obj2) { + NIMRecentSession *item1 = obj1; + NIMRecentSession *item2 = obj2; + if (item1.lastMessage.timestamp < item2.lastMessage.timestamp) { + return NSOrderedDescending; + } + if (item1.lastMessage.timestamp > item2.lastMessage.timestamp) { + return NSOrderedAscending; + } + return NSOrderedSame; + }]; +} + + +#pragma mark - action +- (void)entiretyLireBtutonTicktack { + NSInteger count = [NIMSDK sharedSDK].conversationManager.allUnreadCount; + if (count<1) { + [self EvidenceMistakeToast:YMLocalizedString(@"Session_List_View_Controller_2")]; + return; + } + MKJPrecautiousDisposition * config = [[MKJPrecautiousDisposition alloc] init]; + config.acknowledgementBtutonDisposition.title = YMLocalizedString(@"Session_List_View_Controller_3"); + config.message = @"清除当前未读消息提醒?"; + [MKJPopup precautiousAboutDisposition:config acknowledgementHandler:^{ + [[NIMSDK sharedSDK].conversationManager markAllMessagesRead]; + [self setTarbsObstacleProvisionQuantity:0]; + [self.interlocutionStatementRegard reloadData]; + } cancelHandler:^{ + + }]; +} + + +- (UIView *)customNevigationObstacle { + if (!_customNevigationObstacle) { + CGRect frame = CGRectMake(0, kStatusBarHeight, KScreenWidth, 44); + _customNevigationObstacle = [[UIView alloc]initWithFrame:frame]; + } + return _customNevigationObstacle; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] initWithFrame:CGRectZero]; + _titleLabel.backgroundColor = [UIColor clearColor]; + _titleLabel.font = [UIFont systemFontOfSize:18.f weight:UIFontWeightMedium]; + _titleLabel.textColor = DJDKMIMOMColor.mainEssayPrettify; + _titleLabel.text = YMLocalizedString(@"Session_List_View_Controller_5"); + } + return _titleLabel; +} + +- (UITableView *)interlocutionStatementRegard { + if (!_interlocutionStatementRegard) { + _interlocutionStatementRegard = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; + _interlocutionStatementRegard.separatorStyle = UITableViewCellSeparatorStyleNone; + _interlocutionStatementRegard.backgroundColor = UIColor.clearColor; + _interlocutionStatementRegard.delegate = self; + _interlocutionStatementRegard.dataSource = self; + _interlocutionStatementRegard.showsVerticalScrollIndicator = NO; + } + return _interlocutionStatementRegard; +} + +- (NSMutableArray *)recentInterlocutions { + if (!_recentInterlocutions) { + _recentInterlocutions = [NSMutableArray array]; + } + return _recentInterlocutions; +} + +- (NSMutableDictionary *)stickApexCommunications { + if (!_stickApexCommunications) { + _stickApexCommunications = [NSMutableDictionary dictionary]; + } + return _stickApexCommunications; +} + +@end diff --git a/YuMi/Modules/YMMessage/View/SessionListHeadView/Model/YUMIInterlocutionStatementFanaticsParatiesMatrix.h b/YuMi/Modules/YMMessage/View/SessionListHeadView/Model/YUMIInterlocutionStatementFanaticsParatiesMatrix.h new file mode 100644 index 00000000..01602d1d --- /dev/null +++ b/YuMi/Modules/YMMessage/View/SessionListHeadView/Model/YUMIInterlocutionStatementFanaticsParatiesMatrix.h @@ -0,0 +1,23 @@ +// +// YMSessionListFansPartyModel.h +// YUMI +// +// Created by YUMI on 2022/11/24. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIInterlocutionStatementFanaticsParatiesMatrix : NSObject + +@property (nonatomic, copy) NSString *avatar; +@property (nonatomic, copy) NSString *uid; +@property (nonatomic, copy) NSString *erbanNo; +@property (nonatomic, copy) NSString *nick; +@property (nonatomic, copy) NSString *roomUid; +@property (nonatomic, assign) NSInteger gender; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/SessionListHeadView/Model/YUMIInterlocutionStatementFanaticsParatiesMatrix.m b/YuMi/Modules/YMMessage/View/SessionListHeadView/Model/YUMIInterlocutionStatementFanaticsParatiesMatrix.m new file mode 100644 index 00000000..d882e303 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/SessionListHeadView/Model/YUMIInterlocutionStatementFanaticsParatiesMatrix.m @@ -0,0 +1,12 @@ +// +// YMSessionListFansPartyModel.m +// YUMI +// +// Created by YUMI on 2022/11/24. +// + +#import "YUMIInterlocutionStatementFanaticsParatiesMatrix.h" + +@implementation YUMIInterlocutionStatementFanaticsParatiesMatrix + +@end diff --git a/YuMi/Modules/YMMessage/View/SessionListHeadView/YUMIInterlocutionHalloImportRegard.h b/YuMi/Modules/YMMessage/View/SessionListHeadView/YUMIInterlocutionHalloImportRegard.h new file mode 100644 index 00000000..63b30e8b --- /dev/null +++ b/YuMi/Modules/YMMessage/View/SessionListHeadView/YUMIInterlocutionHalloImportRegard.h @@ -0,0 +1,16 @@ +// +// YMSessionHelloEnterView.h +// YUMI +// +// Created by YUMI on 2023/1/31. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIInterlocutionHalloImportRegard : UIView +@property (nonatomic,assign) NSInteger number; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/SessionListHeadView/YUMIInterlocutionHalloImportRegard.m b/YuMi/Modules/YMMessage/View/SessionListHeadView/YUMIInterlocutionHalloImportRegard.m new file mode 100644 index 00000000..b2156276 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/SessionListHeadView/YUMIInterlocutionHalloImportRegard.m @@ -0,0 +1,112 @@ +// +// YMSessionHelloEnterView.m +// YUMI +// +// Created by YUMI on 2023/1/31. +// + +#import "YUMIInterlocutionHalloImportRegard.h" +#import +#import "DJDKMIMOMColor.h" + +@interface YUMIInterlocutionHalloImportRegard () +@property (nonatomic,strong) UIImageView *brandIndicateRegard; +@property (nonatomic,strong) UILabel *titleLabel; +@property (nonatomic,strong) UILabel *subChampionSequencignation; +@property (nonatomic,strong) UIView *burlywoodRegard; +@end + +@implementation YUMIInterlocutionHalloImportRegard + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.brandIndicateRegard]; + [self addSubview:self.titleLabel]; + [self addSubview:self.subChampionSequencignation]; + [self addSubview:self.burlywoodRegard]; +} + +- (void)initChildLyRestrictions { + [self.brandIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(35, 30)); + make.centerX.mas_equalTo(self); + make.top.mas_equalTo(self); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.brandIndicateRegard); + make.top.mas_equalTo(self.brandIndicateRegard.mas_bottom).offset(2); + }]; + + [self.subChampionSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.titleLabel.mas_bottom).offset(0); + make.left.right.mas_equalTo(self); + }]; + + [self.burlywoodRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(1); + make.height.mas_equalTo(28); + make.top.mas_equalTo(self.brandIndicateRegard).offset(20); + make.right.mas_equalTo(self); + }]; +} + +- (void)produceFetowardsureDigitalIdiosyncracy:(NSInteger)number { + NSString * numbnerStr = [NSString stringWithFormat:@"%ld", number]; + NSString * title = [NSString stringWithFormat:YMLocalizedString(@"YUMI_Session_Hello_Enter_View_0"), numbnerStr]; + NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] initWithString:title attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:8], NSForegroundColorAttributeName:[DJDKMIMOMColor colorAboutHexBWSttr:@"#8A8CAB"]}]; + [attribute addAttribute:NSForegroundColorAttributeName value:[DJDKMIMOMColor colorAboutHexBWSttr:@"#FFA027"] range:[title rangeOfString:numbnerStr]]; + self.subChampionSequencignation.attributedText = attribute; + self.subChampionSequencignation.textAlignment = NSTextAlignmentCenter; +} +#pragma mark - Getters And Setters +- (void)setNumber:(NSInteger)number { + _number = number; + [self produceFetowardsureDigitalIdiosyncracy:number]; +} + +- (UIImageView *)brandIndicateRegard { + if (!_brandIndicateRegard) { + _brandIndicateRegard = [[UIImageView alloc] init]; + _brandIndicateRegard.userInteractionEnabled = YES; + _brandIndicateRegard.image = [UIImage imageNamed:@"yumi_term_list_hello_enter"]; + } + return _brandIndicateRegard; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium]; + _titleLabel.textColor = [DJDKMIMOMColor colorAboutHexBWSttr:@"#171A58"]; + _titleLabel.text = YMLocalizedString(@"YUMI_Session_Hello_Enter_View_1"); + _titleLabel.textAlignment = NSTextAlignmentCenter; + } + return _titleLabel; +} + +- (UILabel *)subChampionSequencignation { + if (!_subChampionSequencignation) { + _subChampionSequencignation = [[UILabel alloc] init]; + } + return _subChampionSequencignation; +} + +- (UIView *)burlywoodRegard { + if (!_burlywoodRegard) { + _burlywoodRegard = [[UIView alloc] init]; + _burlywoodRegard.backgroundColor = [DJDKMIMOMColor colorAboutHexBWSttr:@"#D8D8D8"]; + } + return _burlywoodRegard; +} + +@end diff --git a/YuMi/Modules/YMMessage/View/SessionListHeadView/YUMIInterlocutionStatementIntelligenceAssistantElement.h b/YuMi/Modules/YMMessage/View/SessionListHeadView/YUMIInterlocutionStatementIntelligenceAssistantElement.h new file mode 100644 index 00000000..e1b51dd6 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/SessionListHeadView/YUMIInterlocutionStatementIntelligenceAssistantElement.h @@ -0,0 +1,19 @@ +// +// YMSessionListHeadFriendCell.h +// YUMI +// +// Created by YUMI on 2022/11/17. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class YUMIInterlocutionStatementFanaticsParatiesMatrix; +@interface YUMIInterlocutionStatementIntelligenceAssistantElement : UICollectionViewCell + +- (void)prohibitipositionTowardsoloudspeaker:(YUMIInterlocutionStatementFanaticsParatiesMatrix *)data; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/SessionListHeadView/YUMIInterlocutionStatementIntelligenceAssistantElement.m b/YuMi/Modules/YMMessage/View/SessionListHeadView/YUMIInterlocutionStatementIntelligenceAssistantElement.m new file mode 100644 index 00000000..a8791833 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/SessionListHeadView/YUMIInterlocutionStatementIntelligenceAssistantElement.m @@ -0,0 +1,151 @@ +// +// YMSessionListHeadFriendCell.m +// YUMI +// +// Created by YUMI on 2022/11/17. +// + +#import "YUMIInterlocutionStatementIntelligenceAssistantElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "NetIndicateRegard.h" +#import "UIImage+Utils.h" +#import "YUMIInterlocutionStatementFanaticsParatiesMatrix.h" +#import "YUMINoteRegard.h" + +@interface YUMIInterlocutionStatementIntelligenceAssistantElement() + +@property (nonatomic, strong) UILabel *constituteSequencignation; +@property (nonatomic, strong) NetIndicateRegard *imageView; +@property (nonatomic, strong) UIImageView *pointRegard; +@property (nonatomic, strong) UIImageView *bookBackgroundIndicateRegard; +@property (nonatomic, strong) UILabel *liveSequencignation; +@property (nonatomic,strong) YUMINoteRegard *bookIndicateRegard; +@property (nonatomic,strong) NSArray *brectifynessGarment; +@end + +@implementation YUMIInterlocutionStatementIntelligenceAssistantElement + +- (instancetype)initWithFrame:(CGRect)frame { + if (self = [super initWithFrame:frame]) { + [self initRegard]; + [self initContraints]; + } + return self; +} + +- (void)initRegard { + [self.contentView addSubview:self.pointRegard]; + [self.contentView addSubview:self.imageView]; + [self.contentView addSubview:self.constituteSequencignation]; + + + [self.imageView addSubview:self.bookBackgroundIndicateRegard]; + [self.imageView addSubview:self.bookIndicateRegard]; + [self.imageView addSubview:self.liveSequencignation]; +} + +- (void)initContraints { + [self.pointRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(0); + make.centerX.mas_equalTo(self); + make.width.height.mas_equalTo(60); + }]; + [self.imageView mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.centerY.mas_equalTo(self.pointRegard); + make.width.height.mas_equalTo(56); + }]; + [self.constituteSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self); + make.top.mas_equalTo(self.pointRegard.mas_bottom).mas_offset(2); + make.height.mas_equalTo(17); + make.left.mas_equalTo(0); + }]; + + [self.bookBackgroundIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.mas_equalTo(self.imageView); + make.height.mas_equalTo(14); + }]; + + [self.bookIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.bookBackgroundIndicateRegard).mas_offset(15); + make.centerY.mas_equalTo(self.bookBackgroundIndicateRegard).mas_offset(-1); + make.height.mas_equalTo(10); + make.width.mas_equalTo(10); + }]; + [self.liveSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.bookIndicateRegard.mas_right).mas_offset(2); + make.centerY.mas_equalTo(self.bookIndicateRegard); + }]; +} + +- (void)prohibitipositionTowardsoloudspeaker:(YUMIInterlocutionStatementFanaticsParatiesMatrix *)data { + self.imageView.imageUrl = data.avatar; + NSString *name = data.nick.length > 4 ? [data.nick substringToIndex:4] : data.nick; + self.constituteSequencignation.text = name; +} + +- (UILabel *)constituteSequencignation { + if (!_constituteSequencignation) { + _constituteSequencignation = [[UILabel alloc] initWithFrame:CGRectZero]; + _constituteSequencignation.backgroundColor = [UIColor clearColor]; + _constituteSequencignation.font = [UIFont systemFontOfSize:12]; + _constituteSequencignation.textColor = DJDKMIMOMColor.instantEssayPrettify; + _constituteSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _constituteSequencignation; +} + +- (NetIndicateRegard *)imageView { + if (!_imageView) { + NetIndicateDisposition *config = [[NetIndicateDisposition alloc] init]; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _imageView = [[NetIndicateRegard alloc] initWithConfig:config]; + _imageView.contentMode = UIViewContentModeScaleAspectFill; + _imageView.layer.cornerRadius = 54/2; + _imageView.layer.masksToBounds = YES; + _imageView.layer.borderWidth = 1; + _imageView.layer.borderColor = [UIColor whiteColor].CGColor; + } + return _imageView; +} + +- (UIImageView *)pointRegard { + if (!_pointRegard) { + _pointRegard = [[UIImageView alloc] init]; + _pointRegard.layer.cornerRadius = 60 / 2; + _pointRegard.layer.masksToBounds = YES; + _pointRegard.image = [UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[UIColorFromRGB(0x5BC8F8), UIColorFromRGB(0x66D9D9)] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(60, 60)]; + } + return _pointRegard; +} + +- (UIImageView *)bookBackgroundIndicateRegard { + if (!_bookBackgroundIndicateRegard) { + _bookBackgroundIndicateRegard = [[UIImageView alloc] init]; + _bookBackgroundIndicateRegard.image = [UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[UIColorFromRGB(0xFFA936), UIColorFromRGB(0xFFCB47)] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(52, 14)]; + } + return _bookBackgroundIndicateRegard; +} + +- (UILabel *)liveSequencignation { + if (!_liveSequencignation) { + _liveSequencignation = [[UILabel alloc] init]; + _liveSequencignation.font = [UIFont systemFontOfSize:8]; + _liveSequencignation.textColor = [UIColor whiteColor]; + _liveSequencignation.text = YMLocalizedString(@"YUMI_Session_List_Head_Friend_Cell_0"); + } + return _liveSequencignation; +} + +- (YUMINoteRegard *)bookIndicateRegard { + if (!_bookIndicateRegard) { + _bookIndicateRegard = [[YUMINoteRegard alloc] init]; + _bookIndicateRegard.pillarPrettify = [UIColor whiteColor]; + _bookIndicateRegard.pillarExtents = 1.5; + [_bookIndicateRegard startAnimation]; + } + return _bookIndicateRegard; +} + +@end diff --git a/YuMi/Modules/YMMessage/View/SessionListHeadView/YUMIInterlocutionStatementIntelligenceProvision.h b/YuMi/Modules/YMMessage/View/SessionListHeadView/YUMIInterlocutionStatementIntelligenceProvision.h new file mode 100644 index 00000000..e72bfbf2 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/SessionListHeadView/YUMIInterlocutionStatementIntelligenceProvision.h @@ -0,0 +1,28 @@ +// +// YMSessionListHeadItem.h +// YUMI +// +// Created by YUMI on 2022/11/17. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSUInteger, YUMIInterlocutionStatementHeadProvisionGenre) { + YUMIInterlocutionStatementHeadProvisionGenre_Office, + YUMIInterlocutionStatementHeadProvisionGenre_Activity, + YUMIInterlocutionStatementHeadProvisionGenre_Subscribe, + YUMIInterlocutionStatementHeadProvisionGenre_MemgXin, +}; + +@interface YUMIInterlocutionStatementIntelligenceProvision : NSObject + +@property (nonatomic, copy) NSString *title; +@property (nonatomic, copy) NSString *imageName; +@property (nonatomic, assign) BOOL showDeficitPoint; +@property (nonatomic, assign) YUMIInterlocutionStatementHeadProvisionGenre type; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/SessionListHeadView/YUMIInterlocutionStatementIntelligenceProvision.m b/YuMi/Modules/YMMessage/View/SessionListHeadView/YUMIInterlocutionStatementIntelligenceProvision.m new file mode 100644 index 00000000..dfc5583c --- /dev/null +++ b/YuMi/Modules/YMMessage/View/SessionListHeadView/YUMIInterlocutionStatementIntelligenceProvision.m @@ -0,0 +1,12 @@ +// +// YMSessionListHeadItem.m +// YUMI +// +// Created by YUMI on 2022/11/17. +// + +#import "YUMIInterlocutionStatementIntelligenceProvision.h" + +@implementation YUMIInterlocutionStatementIntelligenceProvision + +@end diff --git a/YuMi/Modules/YMMessage/View/SessionListHeadView/YUMIInterlocutionStatementIntelligenceProvisionRegard.h b/YuMi/Modules/YMMessage/View/SessionListHeadView/YUMIInterlocutionStatementIntelligenceProvisionRegard.h new file mode 100644 index 00000000..faf4380b --- /dev/null +++ b/YuMi/Modules/YMMessage/View/SessionListHeadView/YUMIInterlocutionStatementIntelligenceProvisionRegard.h @@ -0,0 +1,21 @@ +// +// YMSessionListHeadItemView.h +// YUMI +// +// Created by YUMI on 2022/11/17. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIInterlocutionStatementIntelligenceProvisionRegard : UIView + +@property (nonatomic, copy) NSString *imageName; +@property (nonatomic, copy) NSString *title; +@property (nonatomic, assign) BOOL showPoint; +@property (nonatomic, assign) NSInteger badgeValue; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/SessionListHeadView/YUMIInterlocutionStatementIntelligenceProvisionRegard.m b/YuMi/Modules/YMMessage/View/SessionListHeadView/YUMIInterlocutionStatementIntelligenceProvisionRegard.m new file mode 100644 index 00000000..21836911 --- /dev/null +++ b/YuMi/Modules/YMMessage/View/SessionListHeadView/YUMIInterlocutionStatementIntelligenceProvisionRegard.m @@ -0,0 +1,124 @@ +// +// YMSessionListHeadItemView.m +// YUMI +// +// Created by YUMI on 2022/11/17. +// + +#import "YUMIInterlocutionStatementIntelligenceProvisionRegard.h" +#import +#import "DJDKMIMOMColor.h" +#import "NEMCBadgeRegard.h" +#import "UIView+NIM.h" +#import "YUMIMacroUitls.h" + +@interface YUMIInterlocutionStatementIntelligenceProvisionRegard() + +@property (nonatomic, strong) UILabel *constituteSequencignation; +@property (nonatomic, strong) UIImageView *imageView; +@property (nonatomic, strong) UIView *pointRegard; +@property (nonatomic,strong) NEMCBadgeRegard *quantityRegard; + +@end + +@implementation YUMIInterlocutionStatementIntelligenceProvisionRegard + +- (instancetype)initWithFrame:(CGRect)frame { + if (self = [super initWithFrame:frame]) { + [self initRegard]; + [self initContraints]; + } + return self; +} + +- (void)layoutSubviews { + [super layoutSubviews]; + self.quantityRegard.nim_right = self.imageView.nim_right+2; + self.quantityRegard.nim_top = self.imageView.nim_top - 6; +} + +- (void)initRegard { + [self addSubview:self.imageView]; + [self addSubview:self.constituteSequencignation]; + [self addSubview:self.pointRegard]; + [self addSubview:self.quantityRegard]; +} + +- (void)initContraints { + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(KScreenWidth / 4); + }]; + + [self.imageView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.centerX.mas_equalTo(0); + make.width.height.mas_equalTo(50); + }]; + [self.constituteSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.bottom.mas_equalTo(0); + make.top.mas_equalTo(self.imageView.mas_bottom).mas_offset(8); + make.bottom.mas_equalTo(0); + make.height.mas_equalTo(17); + }]; + [self.pointRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.right.mas_equalTo(self.imageView); + make.width.height.mas_equalTo(12); + }]; +} + +- (void)setTitle:(NSString *)title { + self.constituteSequencignation.text = title; +} + +- (void)setImageName:(NSString *)imageName { + self.imageView.image = [UIImage imageNamed:imageName]; +} +- (void)setShowPoint:(BOOL)showPoint { + self.pointRegard.hidden = !showPoint; +} + +- (void)setBadgeValue:(NSInteger)badgeValue { + if (badgeValue) { + self.quantityRegard.hidden = NO; + self.quantityRegard.badgeValue = @(badgeValue).stringValue; + } else { + self.quantityRegard.hidden = YES; + } +} + +- (UILabel *)constituteSequencignation { + if (!_constituteSequencignation) { + _constituteSequencignation = [[UILabel alloc] initWithFrame:CGRectZero]; + _constituteSequencignation.backgroundColor = [UIColor clearColor]; + _constituteSequencignation.font = [UIFont systemFontOfSize:14]; + _constituteSequencignation.textColor = DJDKMIMOMColor.mainEssayPrettify; + } + return _constituteSequencignation; +} + +- (UIImageView *)imageView { + if (!_imageView) { + _imageView = [[UIImageView alloc] init]; + } + return _imageView; +} + +- (UIView *)pointRegard { + if (!_pointRegard) { + _pointRegard = [[UIView alloc] init]; + _pointRegard.layer.cornerRadius = 6; + _pointRegard.layer.masksToBounds = YES; + _pointRegard.backgroundColor = UIColorFromRGB(0xFB486A); + _pointRegard.hidden = YES; + } + return _pointRegard; +} + +- (NEMCBadgeRegard *)quantityRegard { + if (!_quantityRegard) { + _quantityRegard = [NEMCBadgeRegard viewAboutQuantityPrompt:@""]; + _quantityRegard.hidden = YES; + } + return _quantityRegard; +} + +@end diff --git a/YuMi/Modules/YMMessage/View/SessionListHeadView/YUMIInterlocutionStatementIntelligenceRegard.h b/YuMi/Modules/YMMessage/View/SessionListHeadView/YUMIInterlocutionStatementIntelligenceRegard.h new file mode 100644 index 00000000..d76cc7fd --- /dev/null +++ b/YuMi/Modules/YMMessage/View/SessionListHeadView/YUMIInterlocutionStatementIntelligenceRegard.h @@ -0,0 +1,35 @@ +// +// YMSessionListHeadView.h +// YUMI +// +// Created by YUMI on 2022/11/17. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class InterlocutionSpeakHalloComputationMatrix; +@protocol FBCInterlocutionStatementIntelligenceRegardRepresendtation + +- (void)YUMIInterlocutionSttowardsementIntelligenceRegardDidTicktackHLOffice; +- (void)YUMIInterlocutionSttowardsementIntelligenceRegardDidTicktackImportprise; +- (void)YUMIInterlocutionSttowardsementIntelligenceRegardDidTicktackMetroscribe; +- (void)YUMIInterlocutionSttowardsementIntelligenceRegardDidTicktackMengxin; +- (void)YUMIInterlocutionSttowardsementIntelligenceRegardDidTicktackSpeakCorridoro; +@end + +@interface YUMIInterlocutionStatementIntelligenceRegard : UIView + +- (void)refurbishUtensilRegardAboutConsumerPrototype:(NSInteger)level; + +@property (nonatomic, strong) NSArray *friendsGarment; +@property (nonatomic,assign) BOOL veiledtUtensil; +@property (nonatomic,strong) InterlocutionSpeakHalloComputationMatrix *sayCorridoroAbstract; + +@property (nonatomic, weak) id delegate; + +- (void)refurbishQuantityAboutInterlocutionId:(NSString *)sessionId unreadCount:(NSInteger)unreadCount; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMessage/View/SessionListHeadView/YUMIInterlocutionStatementIntelligenceRegard.m b/YuMi/Modules/YMMessage/View/SessionListHeadView/YUMIInterlocutionStatementIntelligenceRegard.m new file mode 100644 index 00000000..50becf3e --- /dev/null +++ b/YuMi/Modules/YMMessage/View/SessionListHeadView/YUMIInterlocutionStatementIntelligenceRegard.m @@ -0,0 +1,319 @@ +// +// YMSessionListHeadView.m +// YUMI +// +// Created by YUMI on 2022/11/17. +// + +#import "YUMIInterlocutionStatementIntelligenceRegard.h" +#import +#import "UIImage+Utils.h" +#import "DJDKMIMOMColor.h" +#import "ClientDisposition.h" +#import "ConsumerAbstractMatrix.h" +#import "YUMIInterlocutionStatementIntelligenceProvision.h" +#import "YUMIInterlocutionStatementIntelligenceProvisionRegard.h" +#import "YUMIInterlocutionStatementIntelligenceAssistantElement.h" +#import "NSArray+Safe.h" +#import "YUMIInterlocutionStatementFanaticsParatiesMatrix.h" +#import "XCCurrentVCStackExecutive.h" +#import "YUMIChamberRegardGovernancer.h" +#import "YUMIInterlocutionHalloImportRegard.h" +#import "InterlocutionSpeakHalloComputationMatrix.h" +#import "YUMIMacroUitls.h" + +NSString * const kMengXinShowReadDotKey = @"kMengXinShowReadDotKey"; + +@interface YUMIInterlocutionStatementIntelligenceRegard() + +@property (nonatomic, strong) UIStackView *mainHierarchyRegard; +@property (nonatomic, strong) UIStackView *utensilHierarchyRegard; +@property (nonatomic,strong) UIStackView *extremeHierarchyRegard; +@property (nonatomic, strong) UICollectionView *collectionView; +@property (nonatomic,strong) YUMIInterlocutionHalloImportRegard *corridoroRegard; +@property (nonatomic, strong) NSMutableArray *funtionGarment; + +@end + +@implementation YUMIInterlocutionStatementIntelligenceRegard + +- (instancetype)initWithFrame:(CGRect)frame { + if (self = [super initWithFrame:frame]) { + [self initProvisionTowardsoloudspeaker]; + [self initRegard]; + [self initContraints]; + } + return self; +} + +- (void)initProvisionTowardsoloudspeaker { + YUMIInterlocutionStatementIntelligenceProvision *officeItem = [[YUMIInterlocutionStatementIntelligenceProvision alloc] init]; + officeItem.title = YMLocalizedString(@"YUMI_Session_List_Head_View_0"); + officeItem.imageName = @"session_list_head_office"; + officeItem.type = YUMIInterlocutionStatementHeadProvisionGenre_Office; + + YUMIInterlocutionStatementIntelligenceProvision *activityItem = [[YUMIInterlocutionStatementIntelligenceProvision alloc] init]; + activityItem.title = YMLocalizedString(@"YUMI_Session_List_Head_View_1"); + activityItem.imageName = @"session_list_head_activity"; + activityItem.type = YUMIInterlocutionStatementHeadProvisionGenre_Activity; + + YUMIInterlocutionStatementIntelligenceProvision *subscribeItem = [[YUMIInterlocutionStatementIntelligenceProvision alloc] init]; + subscribeItem.title = YMLocalizedString(@"YUMI_Session_List_Head_View_2"); + subscribeItem.imageName = @"session_list_head_subscribe"; + subscribeItem.type = YUMIInterlocutionStatementHeadProvisionGenre_Subscribe; + + [self.funtionGarment addObject:officeItem]; + [self.funtionGarment addObject:activityItem]; + [self.funtionGarment addObject:subscribeItem]; +} + +- (void)initRegard { + [self addSubview:self.mainHierarchyRegard]; + [self.mainHierarchyRegard addArrangedSubview:self.utensilHierarchyRegard]; + [self.mainHierarchyRegard addArrangedSubview:self.extremeHierarchyRegard]; + + [self.extremeHierarchyRegard addArrangedSubview:self.corridoroRegard]; + [self.extremeHierarchyRegard addArrangedSubview:self.collectionView]; + for (YUMIInterlocutionStatementIntelligenceProvision *item in self.funtionGarment) { + YUMIInterlocutionStatementIntelligenceProvisionRegard *itemView = [[YUMIInterlocutionStatementIntelligenceProvisionRegard alloc] init]; + itemView.imageName = item.imageName; + itemView.title = item.title; + itemView.showPoint = item.showDeficitPoint; + itemView.tag = item.type; + [self.utensilHierarchyRegard addArrangedSubview:itemView]; + UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(betowardsProvision:)]; + [itemView addGestureRecognizer:tap]; + } + +} + +- (void)initContraints { + [self.mainHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.equalTo(self); + }]; + + [self.utensilHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(KScreenWidth); + make.height.mas_equalTo(85); + }]; + + [self.corridoroRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(93, 90)); + }]; + + [self.collectionView mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(90); + make.width.mas_equalTo(0); + }]; + + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.bottom.mas_equalTo(self.mainHierarchyRegard); + }]; +} + +#pragma mark - UICollectionViewDelegate +- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { + return self.friendsGarment.count; +} + +- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { + YUMIInterlocutionStatementIntelligenceAssistantElement *cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([YUMIInterlocutionStatementIntelligenceAssistantElement class]) forIndexPath:indexPath]; + YUMIInterlocutionStatementFanaticsParatiesMatrix *model = [self.friendsGarment secureGroalTowardsIndictowardsrix1:indexPath.row]; + [cell prohibitipositionTowardsoloudspeaker:model]; + return cell; +} + +- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath { + YUMIInterlocutionStatementFanaticsParatiesMatrix *model = [self.friendsGarment secureGroalTowardsIndictowardsrix1:indexPath.row]; + if (model.roomUid.length > 0) { + [YUMIChamberRegardGovernancer unfoildChamber:model.roomUid viewController:[XCCurrentVCStackExecutive shareManager].getCurrentVC]; + } +} + +- (void)refurbishUtensilRegardAboutConsumerPrototype:(NSInteger)level { + if( [ClientDisposition partowardsiciptowardsionDisposition].dispositionAbstract.findNewbieCharmLevel <= level) { + YUMIInterlocutionStatementIntelligenceProvision *mengxinItem = [[YUMIInterlocutionStatementIntelligenceProvision alloc] init]; + mengxinItem.title = YMLocalizedString(@"YUMI_Session_List_Head_View_3"); + mengxinItem.imageName = @"session_list_head_mengxin"; + mengxinItem.type = YUMIInterlocutionStatementHeadProvisionGenre_MemgXin; + [self.funtionGarment addObject:mengxinItem]; + + YUMIInterlocutionStatementIntelligenceProvisionRegard *itemView = [[YUMIInterlocutionStatementIntelligenceProvisionRegard alloc] init]; + itemView.imageName = mengxinItem.imageName; + itemView.title = mengxinItem.title; + BOOL hidden = [[NSUserDefaults standardUserDefaults] boolForKey:kMengXinShowReadDotKey]; + itemView.showPoint = !hidden; + itemView.tag = mengxinItem.type; + [self.utensilHierarchyRegard addArrangedSubview:itemView]; + UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(betowardsProvision:)]; + [itemView addGestureRecognizer:tap]; + } +} + +- (void)refurbishQuantityAboutInterlocutionId:(NSString *)sessionId unreadCount:(NSInteger)unreadCount { + for (int i = 0; i<[ClientDisposition partowardsiciptowardsionDisposition].dispositionAbstract.officialMsgUids.count; i++) { + NSString *str = [[ClientDisposition partowardsiciptowardsionDisposition].dispositionAbstract.officialMsgUids secureGroalTowardsIndictowardsrix1:i]; + if ([str isEqualToString:sessionId]) { + YUMIInterlocutionStatementIntelligenceProvisionRegard *itemView = [self.utensilHierarchyRegard.subviews secureGroalTowardsIndictowardsrix1:i]; + if (i == 2) { + itemView.showPoint = unreadCount; + } else { + itemView.badgeValue = unreadCount; + } + } + } +} + +- (void)betowardsProvision:(UITapGestureRecognizer *)ges { + YUMIInterlocutionStatementIntelligenceProvisionRegard *view = (YUMIInterlocutionStatementIntelligenceProvisionRegard *)ges.view; + switch (view.tag) { + case YUMIInterlocutionStatementHeadProvisionGenre_Office: + { + if (self.delegate && [self.delegate respondsToSelector:@selector(YUMIInterlocutionSttowardsementIntelligenceRegardDidTicktackHLOffice)]) { + [self.delegate YUMIInterlocutionSttowardsementIntelligenceRegardDidTicktackHLOffice]; + } + } + break; + case YUMIInterlocutionStatementHeadProvisionGenre_Activity: + { + if (self.delegate && [self.delegate respondsToSelector:@selector(YUMIInterlocutionSttowardsementIntelligenceRegardDidTicktackImportprise)]) { + [self.delegate YUMIInterlocutionSttowardsementIntelligenceRegardDidTicktackImportprise]; + } + } + break; + case YUMIInterlocutionStatementHeadProvisionGenre_Subscribe: + { + if (self.delegate && [self.delegate respondsToSelector:@selector(YUMIInterlocutionSttowardsementIntelligenceRegardDidTicktackMetroscribe)]) { + [self.delegate YUMIInterlocutionSttowardsementIntelligenceRegardDidTicktackMetroscribe]; + } + } + break; + case YUMIInterlocutionStatementHeadProvisionGenre_MemgXin: + { + [[NSUserDefaults standardUserDefaults] setBool:YES forKey:kMengXinShowReadDotKey]; + [[NSUserDefaults standardUserDefaults] synchronize]; + YUMIInterlocutionStatementIntelligenceProvisionRegard *itemView = [self.utensilHierarchyRegard.subviews lastObject]; + itemView.showPoint = NO; + if (self.delegate && [self.delegate respondsToSelector:@selector(YUMIInterlocutionSttowardsementIntelligenceRegardDidTicktackMengxin)]) { + [self.delegate YUMIInterlocutionSttowardsementIntelligenceRegardDidTicktackMengxin]; + } + } + break; + default: + break; + } +} + +- (void)sayCorridoroRecognition { + if (self.delegate && [self.delegate respondsToSelector:@selector(YUMIInterlocutionSttowardsementIntelligenceRegardDidTicktackSpeakCorridoro)]) { + [self.delegate YUMIInterlocutionSttowardsementIntelligenceRegardDidTicktackSpeakCorridoro]; + } +} + +- (void)setFriendsGarment:(NSArray *)friendsGarment { + _friendsGarment = friendsGarment; + [self.collectionView reloadData]; + if (_friendsGarment.count > 0) { + self.collectionView.hidden = NO; + } else { + self.collectionView.hidden = YES; + } +} + +- (void)setSayCorridoroAbstract:(InterlocutionSpeakHalloComputationMatrix *)sayCorridoroAbstract { + _sayCorridoroAbstract = sayCorridoroAbstract; + if (_sayCorridoroAbstract) { + self.corridoroRegard.hidden = !_sayCorridoroAbstract.visible; + self.corridoroRegard.number = _sayCorridoroAbstract.helloCount; + } else { + self.corridoroRegard.hidden = YES; + } + + CGFloat width = (KScreenWidth); + if (!self.corridoroRegard.hidden) { + width = KScreenWidth - 93; + } + + [self.collectionView mas_updateConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(width); + }]; +} + +- (void)setVeiledtUtensil:(BOOL)veiledtUtensil { + _veiledtUtensil = veiledtUtensil; + self.extremeHierarchyRegard.hidden = _veiledtUtensil; +} + +- (UIStackView *)mainHierarchyRegard { + if (!_mainHierarchyRegard) { + _mainHierarchyRegard = [[UIStackView alloc] init]; + _mainHierarchyRegard.axis = UILayoutConstraintAxisVertical; + _mainHierarchyRegard.distribution = UIStackViewDistributionFill; + _mainHierarchyRegard.alignment = UIStackViewAlignmentLeading; + _mainHierarchyRegard.spacing = 32; + } + return _mainHierarchyRegard; +} + +- (UIStackView *)utensilHierarchyRegard { + if (!_utensilHierarchyRegard) { + _utensilHierarchyRegard = [[UIStackView alloc] init]; + _utensilHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _utensilHierarchyRegard.distribution = UIStackViewDistributionFillEqually; + _utensilHierarchyRegard.alignment = UIStackViewAlignmentCenter; + _utensilHierarchyRegard.backgroundColor = [UIColor clearColor]; + } + return _utensilHierarchyRegard; +} + +- (NSMutableArray *)funtionGarment { + if (!_funtionGarment) { + _funtionGarment = [NSMutableArray array]; + } + return _funtionGarment; +} + +- (UIStackView *)extremeHierarchyRegard { + if (!_extremeHierarchyRegard) { + _extremeHierarchyRegard = [[UIStackView alloc] init]; + _extremeHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _extremeHierarchyRegard.distribution = UIStackViewDistributionFill; + _extremeHierarchyRegard.alignment = UIStackViewAlignmentCenter; + _extremeHierarchyRegard.spacing = 0; + _extremeHierarchyRegard.hidden = YES; + } + return _extremeHierarchyRegard; +} + +- (YUMIInterlocutionHalloImportRegard *)corridoroRegard { + if (!_corridoroRegard) { + _corridoroRegard = [[YUMIInterlocutionHalloImportRegard alloc] init]; + _corridoroRegard.number = 20; + _corridoroRegard.hidden = YES; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(sayCorridoroRecognition)]; + [_corridoroRegard addGestureRecognizer:tap]; + } + return _corridoroRegard; +} + +- (UICollectionView *)collectionView { + if (!_collectionView) { + UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init]; + layout.scrollDirection = UICollectionViewScrollDirectionHorizontal; + layout.minimumLineSpacing = 18; + layout.itemSize = CGSizeMake(60, 90); + layout.sectionInset = UIEdgeInsetsMake(0, 16, 0, 16); + _collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout]; + [_collectionView registerClass:[YUMIInterlocutionStatementIntelligenceAssistantElement class] forCellWithReuseIdentifier:NSStringFromClass([YUMIInterlocutionStatementIntelligenceAssistantElement class])]; + _collectionView.delegate = self; + _collectionView.dataSource = self; + _collectionView.backgroundColor = [UIColor clearColor]; + _collectionView.layer.cornerRadius = 8; + _collectionView.layer.masksToBounds = YES; + _collectionView.hidden = YES; + _collectionView.showsHorizontalScrollIndicator = NO; + } + return _collectionView; +} + +@end diff --git a/YuMi/Modules/YMMine/Api/Api+Mine.h b/YuMi/Modules/YMMine/Api/Api+Mine.h new file mode 100644 index 00000000..d70f3c80 --- /dev/null +++ b/YuMi/Modules/YMMine/Api/Api+Mine.h @@ -0,0 +1,148 @@ +// +// Api+Mine.h +// YUMI +// +// Created by YUMI on 2021/9/16. +// + +#import "Api.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface Api (Mine) + ++ (void)requisitionsubjectiveObligtowardsionProvision:(HttpRequestHelperCompletion)completion + uid:(NSString *)uid; + ++ (void)requisitionManeOriflammeSttowardsement:(HttpRequestHelperCompletion)completion uid:(NSString *)uid type:(NSString *)type; + ++ (void)preserveFeedEncourageAbout:(HttpRequestHelperCompletion)complection + feedbackDesc:(NSString *)feedbackDesc + contact:(NSString *)contact + uid:(NSString *)uid + ticket:(NSString *)ticket; + ++ (void)requisitionConsumerAbstractInfformPosition:(HttpRequestHelperCompletion)complection + uid:(NSString *)uid; + ++ (void)refurbishConsumerAbstractSystemInfformAbout:(HttpRequestHelperCompletion)complection + sysMsgNotify:(NSString *)sysMsgNotify + uid:(NSString *)uid; + ++ (void)refurbishKellegBroadCastInfformAbout:(HttpRequestHelperCompletion)completion + msgNotify:(NSString *)msgNotify + uid:(NSString *)uid; + ++ (void)setIntersectCiphercryptogram:(HttpRequestHelperCompletion)complection + newPasswd:(NSString *)newPasswd + phone:(NSString *)phone + code:(NSString *)code + uid:(NSString *)uid + ticket:(NSString *)ticket; + ++ (void)modifIntersectCiphercryptogram:(HttpRequestHelperCompletion)complection + newPasswd:(NSString *)newPasswd + oldPasswd:(NSString *)oldPasswd + uid:(NSString *)uid + ticket:(NSString *)ticket; + ++ (void)setLoingCiphercryptogram:(HttpRequestHelperCompletion)completion phone:(NSString *)phone newPwd:(NSString *)newPwd; + ++ (void)replacementLoingCiphercryptogram:(HttpRequestHelperCompletion)completion phone:(NSString *)phone newPwd:(NSString *)newPwd smsCode:(NSString *)smsCode; + ++ (void)decortowardseLoingCiphercryptogram:(HttpRequestHelperCompletion)completion phone:(NSString *)phone newPwd:(NSString *)newPwd pwd:(NSString *)pwd; + ++ (void)unfoildOrConcludefasciaboardMtowardsrix:(HttpRequestHelperCompletion)complection + password:(NSString *)password + status:(NSNumber *)status + uid:(NSString *)uid; ++ (void)qiniuUpwardsLoadIndictowardse:(HttpRequestHelperCompletion)complection; + ++ (void)upburdenConsumerBrochure:(HttpRequestHelperCompletion)complection + photoStr:(NSString *)photoStr + uid:(NSString *)uid + ticket:(NSString *)ticket; ++ (void)representtowardsionIndictowardseByvirtueofWeeblogic:(HttpRequestHelperCompletion)complection + pid:(NSString *)pid + uid:(NSString *)uid + ticket:(NSString *)ticket; + ++ (void)acquireReindictSttowardsement:(HttpRequestHelperCompletion)complection + channelType:(NSString *)channelType; + ++ (void)requisitionPCQReindict:(HttpRequestHelperCompletion)complection + chargeProdId:(NSString *)chargeProdId + uid:(NSString *)uid + ticket:(NSString *)ticket + deviceInfo:(NSString *)deviceInfo + clientIp:(NSString *)clientIp; + ++ (void)checkReceipt:(HttpRequestHelperCompletion)complection + receipt:(NSString *)receipt + chooseEnv:(NSString *)chooseEnv + chargeRecordId:(NSString *)chargeRecordId + transcationId:(NSString *)transcationId + uid:(NSString *)uid + ticket:(NSString *)ticket; + ++ (void)revoctowardsionledUniversalSequenceription:(HttpRequestHelperCompletion)complection + access_token:(NSString *)access_token; + ++ (void)considertowardsionPositionImplementtowardsion:(HttpRequestHelperCompletion)complection + uid:(NSString *)uid + isLikeUid:(NSString *)isLikeUid; + ++ (void)considertowardsionImplementtowardsion:(HttpRequestHelperCompletion)complection + uid:(NSString *)uid + likedUid:(NSString *)likedUid + ticket:(NSString *)ticket + type:(NSString *)type; + ++ (void)consumerSpecificAbstractImplementtowardsion:(HttpRequestHelperCompletion)complection uid:(NSString *)uid page:(NSString *)page pageSize:(NSString *)pageSize; + ++ (void)acquireFantowardsicsSttowardsementImplementtowardsion:(HttpRequestHelperCompletion)completion uid:(NSString *)uid pageNo:(NSString *)pageNo pageSize:(NSString *)pageSize; + ++ (void)acquireVactowardsionerSttowardsementImplementtowardsion:(HttpRequestHelperCompletion)completion pageNum:(NSString *)pageNum pageSize:(NSString *)pageSize; + ++ (void)acquireconsidertowardsionSttowardsementImplementtowardsion:(HttpRequestHelperCompletion)completion uid:(NSString *)uid pageNo:(NSString *)pageNo pageSize:(NSString *)pageSize; + ++ (void)upburdenInspectConsumerImplementtowardsion:(HttpRequestHelperCompletion)completion uid:(NSString *)uid; + ++ (void)acquireKellegFantowardsicsSquadSttowardsementImplementtowardsion:(HttpRequestHelperCompletion)completion pageNum:(NSString *)pageNum pageSize:(NSString *)pageSize; + ++ (void)acquireConsumerPresentRampartowards:(HttpRequestHelperCompletion)comletion uid:(NSString *)uid giftType:(NSString *)giftType; + ++ (void)acquireConsumersSttowardsementAbstract:(HttpRequestHelperCompletion)completion uids:(NSString *)uids; + ++ (void)requisitionTerminalImpression:(HttpRequestHelperCompletion)completion uid:(NSString *)uid page:(NSString *)page pageSize:(NSString *)pageSize; + ++ (void)requisitionCleanTerminalImpression:(HttpRequestHelperCompletion)completion uid:(NSString *)uid roomUid:(NSString *)roomUid; + ++ (void)requisitionManeFlexibleDirectoryapttowardsionTraitCompetition:(HttpRequestHelperCompletion)completion uid:(NSString *)uid mgId:(NSString *)mgId; + ++ (void)requisitionManeAssembleChamberSttowardsement:(HttpRequestHelperCompletion)completion uid:(NSString *)uid page:(NSString *)page pageSize:(NSString *)pageSize roomType:(NSString *)roomType; + ++ (void)requisitionEachoneHuntfor:(HttpRequestHelperCompletion)completion uid:(NSString *)uid; + ++ (void)requisitionFantowardsicsParty:(HttpRequestHelperCompletion)completion; + ++ (void)requisitionKellegDistinctionAbstract:(HttpRequestHelperCompletion)completion; + ++ (void)requisitionManeUnionSttowardsement:(HttpRequestHelperCompletion)completion; ++ (void)requisitionManeChamberSttowardsement:(HttpRequestHelperCompletion)completion; ++(void)demandCollectiveAbout:(HttpRequestHelperCompletion)completion uid:(NSString *)uid clanId:(NSString *)clanId; + ++(void)acquireGoldSpecificsTowardsoloudspeaker:(HttpRequestHelperCompletion)completion startTime:(NSString *)startTime endTime:(NSString *)endTime; + + ++ (void)setIntersectCiphercryptogram:(HttpRequestHelperCompletion)completion newPasswd:(NSString *)newPasswd uid:(NSString *)uid ticket:(NSString *)ticket; + ++(void)requisitionQueryAboutChamberGenre:(HttpRequestHelperCompletion)completion; ++(void)requisitionReflectionRevenue:(HttpRequestHelperCompletion)completion; ++(void)acquireExdiversifictowardsionDiamondAbstractrmtowardsion:(HttpRequestHelperCompletion)completion; + ++(void)acknowledgementExdiversifictowardsionDiamond:(HttpRequestHelperCompletion)completion goldNum:(NSString *)goldNum diamondNum:(NSString *)diamondNum currency:(NSString *)currency; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/Api/Api+Mine.m b/YuMi/Modules/YMMine/Api/Api+Mine.m new file mode 100644 index 00000000..bf0791b1 --- /dev/null +++ b/YuMi/Modules/YMMine/Api/Api+Mine.m @@ -0,0 +1,247 @@ +// +// Api+Mine.m +// YUMI +// +// Created by YUMI on 2021/9/16. +// + +#import "Api+Mine.h" +#import +@implementation Api (Mine) + ++ (void)requisitionsubjectiveObligtowardsionProvision:(HttpRequestHelperCompletion)completion + uid:(NSString *)uid { + NSString * fang = [NSString stringFromBase64String:@"cGVyc29uYWwvY2VudGVyL2xpc3Q="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, uid, nil]; +} + ++ (void)requisitionManeOriflammeSttowardsement:(HttpRequestHelperCompletion)completion uid:(NSString *)uid type:(NSString *)type { + NSString * fang = [NSString stringFromBase64String:@"aG9tZS9iYW5uZXI="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, uid, type, nil]; +} + ++ (void)preserveFeedEncourageAbout:(HttpRequestHelperCompletion)completion + feedbackDesc:(NSString *)feedbackDesc + contact:(NSString *)contact + uid:(NSString *)uid + ticket:(NSString *)ticket { + NSString * fang = [NSString stringFromBase64String:@"ZmVlZGJhY2s="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, feedbackDesc, contact, uid, ticket, nil]; +} + + ++ (void)requisitionConsumerAbstractInfformPosition:(HttpRequestHelperCompletion)completion uid:(NSString *)uid { + NSString * fang = [NSString stringFromBase64String:@"dXNlci9tc2dOb3RpZnk="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, uid, nil]; +} + + ++ (void)refurbishConsumerAbstractSystemInfformAbout:(HttpRequestHelperCompletion)completion sysMsgNotify:(NSString *)sysMsgNotify uid:(NSString *)uid { + NSString * fang = [NSString stringFromBase64String:@"dXNlci9zeXNNc2dOb3RpZnk="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, sysMsgNotify,uid, nil]; +} + ++ (void)refurbishKellegBroadCastInfformAbout:(HttpRequestHelperCompletion)completion msgNotify:(NSString *)msgNotify uid:(NSString *)uid { + NSString * fang = [NSString stringFromBase64String:@"dXNlci9zaW5nbGVCcm9hZGNhc3RNc2dOb3RpZnk="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, msgNotify,uid, nil]; +} + ++ (void)setIntersectCiphercryptogram:(HttpRequestHelperCompletion)completion newPasswd:(NSString *)newPasswd phone:(NSString *)phone code:(NSString *)code uid:(NSString *)uid ticket:(NSString *)ticket { + NSString * fang = [NSString stringFromBase64String:@"dXNlci9wYXltZW50UGFzc3dkL3Jlc2V0"]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, newPasswd, phone, code,uid,ticket, nil]; +} + + ++ (void)modifIntersectCiphercryptogram:(HttpRequestHelperCompletion)completion newPasswd:(NSString *)newPasswd oldPasswd:(NSString *)oldPasswd uid:(NSString *)uid ticket:(NSString *)ticket { + NSString * fang = [NSString stringFromBase64String:@"dXNlci9wYXltZW50UGFzc3dkL21vZGlmeQ=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, newPasswd,oldPasswd,uid,ticket, nil]; +} + ++ (void)setLoingCiphercryptogram:(HttpRequestHelperCompletion)completion phone:(NSString *)phone newPwd:(NSString *)newPwd { + NSString * fang = [NSString stringFromBase64String:@"YWNjL3B3ZC9zZXQ="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, phone, newPwd, nil]; +} + ++ (void)replacementLoingCiphercryptogram:(HttpRequestHelperCompletion)completion phone:(NSString *)phone newPwd:(NSString *)newPwd smsCode:(NSString *)smsCode { + NSString * fang = [NSString stringFromBase64String:@"YWNjL3B3ZC9yZXNldA=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, phone, newPwd,smsCode, nil]; +} + ++ (void)decortowardseLoingCiphercryptogram:(HttpRequestHelperCompletion)completion phone:(NSString *)phone newPwd:(NSString *)newPwd pwd:(NSString *)pwd { + NSString * fang = [NSString stringFromBase64String:@"YWNjL3B3ZC9tb2RpZnk="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion,__FUNCTION__, phone, newPwd, pwd, nil]; +} + ++ (void)unfoildOrConcludefasciaboardMtowardsrix:(HttpRequestHelperCompletion)completion password:(NSString *)password status:(NSNumber *)status uid:(NSString *)uid { + NSString * fang = [NSString stringFromBase64String:@"dXNlci9vcGVuT3JDbG9zZQ=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, password,status,uid, nil]; +} + ++ (void)qiniuUpwardsLoadIndictowardse:(HttpRequestHelperCompletion)completion { + NSString * fang = [NSString stringFromBase64String:@"cWluaXUvdXBsb2FkL2dldFVwbG9hZFRva2Vu"]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, nil]; +} + + ++ (void)upburdenConsumerBrochure:(HttpRequestHelperCompletion)completion photoStr:(NSString *)photoStr uid:(NSString *)uid ticket:(NSString *)ticket { + NSString * fang = [NSString stringFromBase64String:@"cGhvdG8vdjIvdXBsb2Fk"]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__,photoStr, uid, ticket, nil]; +} + ++ (void)representtowardsionIndictowardseByvirtueofWeeblogic:(HttpRequestHelperCompletion)completion pid:(NSString *)pid uid:(NSString *)uid ticket:(NSString *)ticket { + NSString * fang = [NSString stringFromBase64String:@"cGhvdG8vZGVsUGhvdG8="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__,pid, uid, ticket, nil]; +} + + ++ (void)acquireReindictSttowardsement:(HttpRequestHelperCompletion)completion channelType:(NSString *)channelType { + NSString * fang = [NSString stringFromBase64String:@"Y2hhcmdlcHJvZC9saXN0"]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__,channelType, nil]; +} + ++ (void)requisitionPCQReindict:(HttpRequestHelperCompletion)completion chargeProdId:(NSString *)chargeProdId uid:(NSString *)uid ticket:(NSString *)ticket deviceInfo:(NSString *)deviceInfo clientIp:(NSString *)clientIp { + NSString * fang = [NSString stringFromBase64String:@"b3JkZXIvcGxhY2VWMg=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__,chargeProdId, uid, ticket, deviceInfo, clientIp, nil]; +} + + ++ (void)checkReceipt:(HttpRequestHelperCompletion)completion receipt:(NSString *)receipt chooseEnv:(NSString *)chooseEnv chargeRecordId:(NSString *)chargeRecordId transcationId:(NSString *)transcationId uid:(NSString *)uid ticket:(NSString *)ticket { + NSString * fang = [NSString stringFromBase64String:@"dmVyaWZ5L3NldGlhcA=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__,receipt, chooseEnv, chargeRecordId, transcationId, uid, ticket, nil]; +} + + ++ (void)revoctowardsionledUniversalSequenceription:(HttpRequestHelperCompletion)completion access_token:(NSString *)access_token { + NSString * fang = [NSString stringFromBase64String:@"YWNjL2xvZ291dA=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, access_token, nil]; +} + ++ (void)considertowardsionPositionImplementtowardsion:(HttpRequestHelperCompletion)completion uid:(NSString *)uid isLikeUid:(NSString *)isLikeUid { + NSString * fang = [NSString stringFromBase64String:@"ZmFucy9pc2xpa2U="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion,__FUNCTION__, uid, isLikeUid, nil]; +} + ++ (void)considertowardsionImplementtowardsion:(HttpRequestHelperCompletion)completion uid:(NSString *)uid likedUid:(NSString *)likedUid ticket:(NSString *)ticket type:(NSString *)type { + NSString * fang = [NSString stringFromBase64String:@"ZmFucy9saWtl"]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, uid, likedUid, ticket, type, nil]; +} + ++ (void)consumerSpecificAbstractImplementtowardsion:(HttpRequestHelperCompletion)completion uid:(NSString *)uid page:(NSString *)page pageSize:(NSString *)pageSize { + NSString * fang = [NSString stringFromBase64String:@"dXNlci9kZXRhaWwvZ2V0"]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, uid, page, pageSize, nil]; +} + ++ (void)acquireFantowardsicsSttowardsementImplementtowardsion:(HttpRequestHelperCompletion)completion uid:(NSString *)uid pageNo:(NSString *)pageNo pageSize:(NSString *)pageSize { + NSString * fang = [NSString stringFromBase64String:@"ZmFucy9mYW5zbGlzdA=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, uid, pageNo, pageSize, nil]; +} + ++ (void)acquireconsidertowardsionSttowardsementImplementtowardsion:(HttpRequestHelperCompletion)completion uid:(NSString *)uid pageNo:(NSString *)pageNo pageSize:(NSString *)pageSize { + NSString * fang = [NSString stringFromBase64String:@"ZmFucy9mb2xsb3dpbmc="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, uid, pageNo, pageSize, nil]; +} + ++ (void)acquireVactowardsionerSttowardsementImplementtowardsion:(HttpRequestHelperCompletion)completion pageNum:(NSString *)pageNum pageSize:(NSString *)pageSize { + NSString * fang = [NSString stringFromBase64String:@"dXNlcnZpc2l0cmVjb3JkL3Zpc2l0VXNlckxpc3Q="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, pageNum, pageSize, nil]; +} + ++ (void)upburdenInspectConsumerImplementtowardsion:(HttpRequestHelperCompletion)completion uid:(NSString *)uid { + NSString * fang = [NSString stringFromBase64String:@"dXNlci9kZXRhaWwvdmlzaXRVc2VyRGV0YWls"]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, uid, nil]; +} + ++ (void)acquireKellegFantowardsicsSquadSttowardsementImplementtowardsion:(HttpRequestHelperCompletion)completion pageNum:(NSString *)pageNum pageSize:(NSString *)pageSize { + NSString * fang = [NSString stringFromBase64String:@"YW5jaG9yRmFuc1RlYW0vZ2V0Sm9pbkZhbnNUZWFtTGlzdA=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, pageNum, pageSize, nil]; +} + ++ (void)acquireConsumerPresentRampartowards:(HttpRequestHelperCompletion)comletion uid:(NSString *)uid giftType:(NSString *)giftType { + NSString * fang = [NSString stringFromBase64String:@"Z2lmdHdhbGwvZ2V0QnlHaWZ0VHlwZQ=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:comletion, __FUNCTION__, uid, giftType, nil]; +} + ++ (void)acquireConsumersSttowardsementAbstract:(HttpRequestHelperCompletion)completion uids:(NSString *)uids { + NSString * fang = [NSString stringFromBase64String:@"dXNlci9saXN0"]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, uids, nil]; +} + ++ (void)requisitionTerminalImpression:(HttpRequestHelperCompletion)completion uid:(NSString *)uid page:(NSString *)page pageSize:(NSString *)pageSize { + NSString * fang = [NSString stringFromBase64String:@"dXNlcnJvb20vZ2V0SW5Sb29tUmVjb3Jk"]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, uid, page, pageSize, nil]; +} + ++ (void)requisitionCleanTerminalImpression:(HttpRequestHelperCompletion)completion uid:(NSString *)uid roomUid:(NSString *)roomUid { + NSString * fang = [NSString stringFromBase64String:@"dXNlcnJvb20vZGVsZXRlSW5Sb29tUmVjb3Jk"]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, uid, roomUid, nil]; +} + ++ (void)requisitionManeFlexibleDirectoryapttowardsionTraitCompetition:(HttpRequestHelperCompletion)completion uid:(NSString *)uid mgId:(NSString *)mgId { + NSString * fang = [NSString stringFromBase64String:@"aG9tZS9mYXN0UGlja1Yy"]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, uid, mgId, nil]; +} + ++ (void)requisitionManeAssembleChamberSttowardsement:(HttpRequestHelperCompletion)completion uid:(NSString *)uid page:(NSString *)page pageSize:(NSString *)pageSize roomType:(NSString *)roomType { + NSString * fang = [NSString stringFromBase64String:@"ZmFucy9mYW5zUm9vbUxpc3Q="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__,uid , page, pageSize, roomType, nil]; +} + ++ (void)requisitionEachoneHuntfor:(HttpRequestHelperCompletion)completion uid:(NSString *)uid { + NSString * fang = [NSString stringFromBase64String:@"ZXZlcnkvb25lL3NlYXJjaC9nZXRMaXN0"]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, uid, nil]; +} + ++ (void)requisitionFantowardsicsParty:(HttpRequestHelperCompletion)completion { + NSString * fang = [NSString stringFromBase64String:@"ZmFucy9mYW5zUGFydExpc3Q="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, nil]; +} ++ (void)requisitionKellegDistinctionAbstract:(HttpRequestHelperCompletion)completion { + NSString * fang = [NSString stringFromBase64String:@"YW5jaG9yR3JhZGUvZ2V0"]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, nil]; +} + ++ (void)requisitionManeUnionSttowardsement:(HttpRequestHelperCompletion)completion { + NSString * fang = [NSString stringFromBase64String:@"Y2xhbi9saXN0"]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, nil]; +} ++ (void)requisitionManeChamberSttowardsement:(HttpRequestHelperCompletion)completion { + NSString * fang = [NSString stringFromBase64String:@"aGFsbC9saXN0"]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, nil]; +} ++(void)demandCollectiveAbout:(HttpRequestHelperCompletion)completion uid:(NSString *)uid clanId:(NSString *)clanId { + NSString * fang = [NSString stringFromBase64String:@"Y2xhbi9hcHBseQ=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion,__FUNCTION__,uid, clanId, nil]; +} + ++(void)acquireGoldSpecificsTowardsoloudspeaker:(HttpRequestHelperCompletion)completion startTime:(NSString *)startTime endTime:(NSString *)endTime{ + NSString * fang = [NSString stringFromBase64String:@"Y2xhbkdvbGRGbG93L2NsYW5Ub3RhbExpc3Q="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion,__FUNCTION__,startTime,endTime, nil]; +} + + ++ (void)setIntersectCiphercryptogram:(HttpRequestHelperCompletion)completion newPasswd:(NSString *)newPasswd uid:(NSString *)uid ticket:(NSString *)ticket { + NSString * fang = [NSString stringFromBase64String:@"dXNlci9wYXltZW50UGFzc3dkL3Jlc2V0"]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, newPasswd,uid,ticket, nil]; +} + ++(void)requisitionQueryAboutChamberGenre:(HttpRequestHelperCompletion)completion{ + NSString * fang = [NSString stringFromBase64String:@"cHVyc2UvcXVlcnlXaXRoUm9vbVR5cGU="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, nil]; +} + ++(void)requisitionReflectionRevenue:(HttpRequestHelperCompletion)completion{ + NSString * fang = [NSString stringFromBase64String:@"cHVyc2UvcXVlcnk="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, nil]; +} + ++(void)acquireExdiversifictowardsionDiamondAbstractrmtowardsion:(HttpRequestHelperCompletion)completion{ + NSString * fang = [NSString stringFromBase64String:@"Z29sZEV4Y2hhbmdlRGlhbW9uZC9nZXRDb25maWc="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, nil]; +} + ++(void)acknowledgementExdiversifictowardsionDiamond:(HttpRequestHelperCompletion)completion goldNum:(NSString *)goldNum diamondNum:(NSString *)diamondNum currency:(NSString *)currency{ + NSString * fang = [NSString stringFromBase64String:@"Z29sZEV4Y2hhbmdlRGlhbW9uZC9leGNoYW5nZQ=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion,__FUNCTION__,goldNum,diamondNum,currency, nil]; +} + +@end diff --git a/YuMi/Modules/YMMine/Model/AnchorFansTeam/YUMIManeKellegFanaticsSquadMatrix.h b/YuMi/Modules/YMMine/Model/AnchorFansTeam/YUMIManeKellegFanaticsSquadMatrix.h new file mode 100644 index 00000000..6ed3b901 --- /dev/null +++ b/YuMi/Modules/YMMine/Model/AnchorFansTeam/YUMIManeKellegFanaticsSquadMatrix.h @@ -0,0 +1,22 @@ +// +// YMMineAnchorFansTeamModel.h +// YUMI +// +// Created by YUMI on 2022/4/8. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeKellegFanaticsSquadMatrix : NSObject + +@property (nonatomic, copy) NSString *anchorAvatar; +@property (nonatomic, assign) NSInteger teamId; +@property (nonatomic, assign) NSInteger teamUid; +@property (nonatomic, copy) NSString *anchorNick; +@property (nonatomic, copy) NSString *icon; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/Model/AnchorFansTeam/YUMIManeKellegFanaticsSquadMatrix.m b/YuMi/Modules/YMMine/Model/AnchorFansTeam/YUMIManeKellegFanaticsSquadMatrix.m new file mode 100644 index 00000000..a1a6bd9b --- /dev/null +++ b/YuMi/Modules/YMMine/Model/AnchorFansTeam/YUMIManeKellegFanaticsSquadMatrix.m @@ -0,0 +1,12 @@ +// +// YMMineAnchorFansTeamModel.m +// YUMI +// +// Created by YUMI on 2022/4/8. +// + +#import "YUMIManeKellegFanaticsSquadMatrix.h" + +@implementation YUMIManeKellegFanaticsSquadMatrix + +@end diff --git a/YuMi/Modules/YMMine/Model/ExchangeAuthority/YUMIManeExchangeAuthorityMatrix.h b/YuMi/Modules/YMMine/Model/ExchangeAuthority/YUMIManeExchangeAuthorityMatrix.h new file mode 100644 index 00000000..cbad4208 --- /dev/null +++ b/YuMi/Modules/YMMine/Model/ExchangeAuthority/YUMIManeExchangeAuthorityMatrix.h @@ -0,0 +1,25 @@ +// +// YUMIManeExchangeAuthorityMatrix.h +// YuMi +// +// Created by YuMi on 2023/2/13. +// + +#import +#import "ConsumerPrototypeVo.h" +#import "YUMINNNN.h" +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeExchangeAuthorityMatrix : NSObject +@property (nonatomic,copy) NSString *uid; +@property (nonatomic,copy) NSString *avatar; +@property (nonatomic,assign) NSInteger erbanNo; +@property (nonatomic,assign) BOOL exchangeAuthStatus; +@property (nonatomic,assign) GenderGenre gender; +@property (nonatomic,assign) double golds; +@property (nonatomic,copy) NSString *hallName; +@property (nonatomic,copy) NSString *nick; +@property (nonatomic , strong) ConsumerPrototypeVo * userLevelVo; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/Model/ExchangeAuthority/YUMIManeExchangeAuthorityMatrix.m b/YuMi/Modules/YMMine/Model/ExchangeAuthority/YUMIManeExchangeAuthorityMatrix.m new file mode 100644 index 00000000..d6c3f325 --- /dev/null +++ b/YuMi/Modules/YMMine/Model/ExchangeAuthority/YUMIManeExchangeAuthorityMatrix.m @@ -0,0 +1,12 @@ +// +// YUMIManeExchangeAuthorityMatrix.m +// YuMi +// +// Created by YuMi on 2023/2/13. +// + +#import "YUMIManeExchangeAuthorityMatrix.h" + +@implementation YUMIManeExchangeAuthorityMatrix + +@end diff --git a/YuMi/Modules/YMMine/Model/FootPrint/YUMIManeTerminalImpressionMatrix.h b/YuMi/Modules/YMMine/Model/FootPrint/YUMIManeTerminalImpressionMatrix.h new file mode 100644 index 00000000..bdd8963a --- /dev/null +++ b/YuMi/Modules/YMMine/Model/FootPrint/YUMIManeTerminalImpressionMatrix.h @@ -0,0 +1,24 @@ +// +// YMMineFootPrintModel.h +// YUMI +// +// Created by YUMI on 2022/7/26. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeTerminalImpressionMatrix : NSObject + +@property (nonatomic, copy) NSString *roomUid; +@property (nonatomic, copy) NSString *roomId; +@property (nonatomic, copy) NSString *title; +@property (nonatomic, copy) NSString *avatar; +@property (nonatomic, assign) BOOL valid; +@property (nonatomic, assign) long long erbanNo; +@property (nonatomic, assign) long long updateTime; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/Model/FootPrint/YUMIManeTerminalImpressionMatrix.m b/YuMi/Modules/YMMine/Model/FootPrint/YUMIManeTerminalImpressionMatrix.m new file mode 100644 index 00000000..7c808541 --- /dev/null +++ b/YuMi/Modules/YMMine/Model/FootPrint/YUMIManeTerminalImpressionMatrix.m @@ -0,0 +1,12 @@ +// +// YMMineFootPrintModel.m +// YUMI +// +// Created by YUMI on 2022/7/26. +// + +#import "YUMIManeTerminalImpressionMatrix.h" + +@implementation YUMIManeTerminalImpressionMatrix + +@end diff --git a/YuMi/Modules/YMMine/Model/Friend/FanaticsAbstractMatrix.h b/YuMi/Modules/YMMine/Model/Friend/FanaticsAbstractMatrix.h new file mode 100644 index 00000000..fed9aa2f --- /dev/null +++ b/YuMi/Modules/YMMine/Model/Friend/FanaticsAbstractMatrix.h @@ -0,0 +1,30 @@ +// +// FanaticsAbstractMatrix.h +// YUMI +// +// Created by YUMI on 2021/12/21. +// + +#import +#import "YUMINNNN.h" +#import "ConsumerVipAbstractVo.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface FanaticsAbstractMatrix : NSObject +@property (nonatomic,copy) NSString *avatar; +@property (nonatomic,copy) NSString *nick; +@property (nonatomic,copy) NSString *uid; +@property (nonatomic,assign) GenderGenre gender; +@property (nonatomic,assign) NSInteger defUser; +@property (nonatomic,copy) NSString *charmUrl; +@property (nonatomic,copy) NSString *experUrl; +@property (nonatomic,copy) NSString *userDesc; +@property (nonatomic,assign) BOOL valid; +@property (nonatomic,copy) NSString *userInRoomUid; +@property (nonatomic, strong) ConsumerVipAbstractVo *userVipInfoVO; +@property (nonatomic,assign) ContactUseingGenre useingType; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/Model/Friend/FanaticsAbstractMatrix.m b/YuMi/Modules/YMMine/Model/Friend/FanaticsAbstractMatrix.m new file mode 100644 index 00000000..9bb7d90e --- /dev/null +++ b/YuMi/Modules/YMMine/Model/Friend/FanaticsAbstractMatrix.m @@ -0,0 +1,19 @@ +// +// FanaticsAbstractMatrix.m +// YUMI +// +// Created by YUMI on 2021/12/21. +// + +#import "FanaticsAbstractMatrix.h" + +@implementation FanaticsAbstractMatrix + ++ (NSDictionary *)replacedDigitalByvirtueofMaintainertyConstitute { + return @{@"experUrl":@"userLevelVo.experUrl", + @"charmUrl":@"userLevelVo.charmUrl", + @"userInRoomUid": @"userInRoom.uid" + }; +} + +@end diff --git a/YuMi/Modules/YMMine/Model/Recharge/RamparatetAbstractMatrix.h b/YuMi/Modules/YMMine/Model/Recharge/RamparatetAbstractMatrix.h new file mode 100644 index 00000000..e7687f2b --- /dev/null +++ b/YuMi/Modules/YMMine/Model/Recharge/RamparatetAbstractMatrix.h @@ -0,0 +1,26 @@ +// +// WalletBalanceInfoModel.h +// YUMI +// +// Created by YUMI on 2021/9/26. +// + +#import "NSObject+MJExtension.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface RamparatetAbstractMatrix : NSObject +@property(nonatomic, assign) NSInteger uid; +@property(nonatomic, copy)NSString *goldNum; +@property(nonatomic, copy)NSString *diamonds; + +@property(nonatomic, copy)NSString *chargeGoldNum; + +@property(nonatomic, assign)NSInteger amount; +@property(nonatomic, assign) double diamondNum; + +@property(nonatomic, copy)NSString *depositNum; +@property (nonatomic, assign) BOOL sendGold; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/Model/Recharge/RamparatetAbstractMatrix.m b/YuMi/Modules/YMMine/Model/Recharge/RamparatetAbstractMatrix.m new file mode 100644 index 00000000..95e6c3bf --- /dev/null +++ b/YuMi/Modules/YMMine/Model/Recharge/RamparatetAbstractMatrix.m @@ -0,0 +1,12 @@ +// +// WalletBalanceInfoModel.m +// YUMI +// +// Created by YUMI on 2021/9/26. +// + +#import "RamparatetAbstractMatrix.h" + +@implementation RamparatetAbstractMatrix + +@end diff --git a/YuMi/Modules/YMMine/Model/Recharge/ReindictStatementMatrix.h b/YuMi/Modules/YMMine/Model/Recharge/ReindictStatementMatrix.h new file mode 100644 index 00000000..4fdbe4b9 --- /dev/null +++ b/YuMi/Modules/YMMine/Model/Recharge/ReindictStatementMatrix.h @@ -0,0 +1,21 @@ +// +// ReindictStatementMatrix.h +// YUMI +// +// Created by YUMI on 2021/9/24. +// + +#import "NSObject+MJExtension.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface ReindictStatementMatrix : NSObject +@property(nonatomic, strong) NSString *chargeProdId; +@property(nonatomic, strong) NSString *prodName; +@property (copy, nonatomic) NSString *prodDesc; +@property(nonatomic, strong) NSNumber *money; +@property(nonatomic, strong) NSNumber *giftGoldNum; +@property(nonatomic, strong) NSString *channel; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/Model/Recharge/ReindictStatementMatrix.m b/YuMi/Modules/YMMine/Model/Recharge/ReindictStatementMatrix.m new file mode 100644 index 00000000..2e22a9ae --- /dev/null +++ b/YuMi/Modules/YMMine/Model/Recharge/ReindictStatementMatrix.m @@ -0,0 +1,12 @@ +// +// ReindictStatementMatrix.m +// YUMI +// +// Created by YUMI on 2021/9/24. +// + +#import "ReindictStatementMatrix.h" + +@implementation ReindictStatementMatrix + +@end diff --git a/YuMi/Modules/YMMine/Model/RecordIncome/YUMIDilemmaExtractAbstractMatrix.h b/YuMi/Modules/YMMine/Model/RecordIncome/YUMIDilemmaExtractAbstractMatrix.h new file mode 100644 index 00000000..ba77bb25 --- /dev/null +++ b/YuMi/Modules/YMMine/Model/RecordIncome/YUMIDilemmaExtractAbstractMatrix.h @@ -0,0 +1,32 @@ +// +// YUMIDilemmaExtractAbstractMatrix.h +// YuMi +// +// Created by YuMi on 2022/11/18. +// + +#import +#import "YUMIWithdrawAccountMatrix.h" +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIDilemmaExtractAbstractMatrix : NSObject +@property (nonatomic,strong) YUMIWithdrawAccountMatrix *account; +@property (nonatomic,assign) double golds; +@property (nonatomic,assign) NSInteger remainTimes; +@property (nonatomic,assign) double fee; +@property (nonatomic,assign) NSInteger minGolds; +@property (nonatomic,assign) NSInteger maxGolds; +@property (nonatomic,assign) BOOL hasPayPwd; +@end + + + + + + + + + + + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/Model/RecordIncome/YUMIDilemmaExtractAbstractMatrix.m b/YuMi/Modules/YMMine/Model/RecordIncome/YUMIDilemmaExtractAbstractMatrix.m new file mode 100644 index 00000000..9be7f2db --- /dev/null +++ b/YuMi/Modules/YMMine/Model/RecordIncome/YUMIDilemmaExtractAbstractMatrix.m @@ -0,0 +1,14 @@ +// +// YUMIDilemmaExtractAbstractMatrix.m +// YuMi +// +// Created by YuMi on 2022/11/18. +// + +#import "YUMIDilemmaExtractAbstractMatrix.h" + +@implementation YUMIDilemmaExtractAbstractMatrix + +@end + + diff --git a/YuMi/Modules/YMMine/Model/RecordIncome/YUMIExchangeDiamondsMatrix.h b/YuMi/Modules/YMMine/Model/RecordIncome/YUMIExchangeDiamondsMatrix.h new file mode 100644 index 00000000..66040ddf --- /dev/null +++ b/YuMi/Modules/YMMine/Model/RecordIncome/YUMIExchangeDiamondsMatrix.h @@ -0,0 +1,20 @@ +// +// YUMIExchangeDiamondsMatrix.h +// YuMi +// +// Created by YuMi on 2022/11/17. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIExchangeDiamondsMatrix : NSObject +@property (nonatomic,assign) double diamonds; +@property (nonatomic,assign) double golds; +@property (nonatomic,assign) double rate; +@property (nonatomic,assign) NSInteger maxDiamonds; +@property (nonatomic,assign) NSInteger minDiamonds; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/Model/RecordIncome/YUMIExchangeDiamondsMatrix.m b/YuMi/Modules/YMMine/Model/RecordIncome/YUMIExchangeDiamondsMatrix.m new file mode 100644 index 00000000..d204dc14 --- /dev/null +++ b/YuMi/Modules/YMMine/Model/RecordIncome/YUMIExchangeDiamondsMatrix.m @@ -0,0 +1,12 @@ +// +// YUMIExchangeDiamondsMatrix.m +// YuMi +// +// Created by YuMi on 2022/11/17. +// + +#import "YUMIExchangeDiamondsMatrix.h" + +@implementation YUMIExchangeDiamondsMatrix + +@end diff --git a/YuMi/Modules/YMMine/Model/RecordIncome/YUMIRevenueReflectionGoldSpecificsMatrix.h b/YuMi/Modules/YMMine/Model/RecordIncome/YUMIRevenueReflectionGoldSpecificsMatrix.h new file mode 100644 index 00000000..9cad8ffe --- /dev/null +++ b/YuMi/Modules/YMMine/Model/RecordIncome/YUMIRevenueReflectionGoldSpecificsMatrix.h @@ -0,0 +1,41 @@ +// +// YUMIRevenueReflectionGoldSpecificsMatrix.h +// YuMi +// +// Created by YuMi on 2022/11/24. +// + +#import +@class YUMIRevenueReflectionGoldSpecificProvisionMatrix; +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIRevenueReflectionGoldSpecificsMatrix : NSObject +@property (nonatomic,copy) NSString *total; +@property (nonatomic,copy) NSString *totalRemainGolds; +@property (nonatomic,copy) NSString *totalEarnGolds; +@property (nonatomic,copy) NSString *totalGiftGolds; +@property (nonatomic,copy) NSString *totalExchangeGolds; +@property (nonatomic,copy) NSDictionary *hallMemberMap; +@property (nonatomic,copy) NSArray *hallVoList; +@property (nonatomic,copy) NSArray *hallMember; +@end + +NS_ASSUME_NONNULL_END + + +@interface YUMIRevenueReflectionGoldSpecificProvisionMatrix : NSObject + +@property (nonatomic,copy) NSString *uid; +@property (nonatomic,copy) NSString *nick; +@property (nonatomic,copy) NSString *avatar; +@property (nonatomic,copy) NSString *giftDiamonds; +@property (nonatomic,copy) NSString *exchangeGolds; +@property (nonatomic,copy) NSString *giftGolds; +@property (nonatomic,copy) NSString *remainGolds; +@property (nonatomic,copy) NSString *hallId; +@property (nonatomic,copy) NSString *hallOwnerUid; +@property (nonatomic,copy) NSString *hallAvatar; +@property (nonatomic,copy) NSString *hallName; +@property (nonatomic,copy) NSString *ownerAvatar; + +@end diff --git a/YuMi/Modules/YMMine/Model/RecordIncome/YUMIRevenueReflectionGoldSpecificsMatrix.m b/YuMi/Modules/YMMine/Model/RecordIncome/YUMIRevenueReflectionGoldSpecificsMatrix.m new file mode 100644 index 00000000..8fcb1bfe --- /dev/null +++ b/YuMi/Modules/YMMine/Model/RecordIncome/YUMIRevenueReflectionGoldSpecificsMatrix.m @@ -0,0 +1,23 @@ +// +// YUMIRevenueReflectionGoldSpecificsMatrix.m +// YuMi +// +// Created by YuMi on 2022/11/24. +// + +#import "YUMIRevenueReflectionGoldSpecificsMatrix.h" + +@implementation YUMIRevenueReflectionGoldSpecificsMatrix ++ (NSDictionary *)objectCtowardsegorizeInGarment { + return @{ + @"hallVoList":YUMIRevenueReflectionGoldSpecificProvisionMatrix.class, + @"hallMember":YUMIRevenueReflectionGoldSpecificProvisionMatrix.class + }; +} +@end + + +@implementation YUMIRevenueReflectionGoldSpecificProvisionMatrix + + +@end diff --git a/YuMi/Modules/YMMine/Model/RecordIncome/YUMIRevenueReflectionMatrix.h b/YuMi/Modules/YMMine/Model/RecordIncome/YUMIRevenueReflectionMatrix.h new file mode 100644 index 00000000..28622034 --- /dev/null +++ b/YuMi/Modules/YMMine/Model/RecordIncome/YUMIRevenueReflectionMatrix.h @@ -0,0 +1,22 @@ +// +// YUMIRevenueReflectionMatrix.h +// YuMi +// +// Created by YuMi on 2022/11/17. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIRevenueReflectionMatrix : NSObject +@property (nonatomic,copy) NSString *uid; +@property (nonatomic,assign) double diamonds; +@property (nonatomic,assign) double crystals; +@property (nonatomic,assign) double golds; +@property (nonatomic,assign) BOOL isClan; +@property (nonatomic,assign) NSInteger roomType; +@property (nonatomic,assign) BOOL hasGoldExchangeAuth; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/Model/RecordIncome/YUMIRevenueReflectionMatrix.m b/YuMi/Modules/YMMine/Model/RecordIncome/YUMIRevenueReflectionMatrix.m new file mode 100644 index 00000000..5f9f9f01 --- /dev/null +++ b/YuMi/Modules/YMMine/Model/RecordIncome/YUMIRevenueReflectionMatrix.m @@ -0,0 +1,12 @@ +// +// YUMIRevenueReflectionMatrix.m +// YuMi +// +// Created by YuMi on 2022/11/17. +// + +#import "YUMIRevenueReflectionMatrix.h" + +@implementation YUMIRevenueReflectionMatrix + +@end diff --git a/YuMi/Modules/YMMine/Model/RecordIncome/YUMIWithdrawAccountMatrix.h b/YuMi/Modules/YMMine/Model/RecordIncome/YUMIWithdrawAccountMatrix.h new file mode 100644 index 00000000..54320005 --- /dev/null +++ b/YuMi/Modules/YMMine/Model/RecordIncome/YUMIWithdrawAccountMatrix.h @@ -0,0 +1,24 @@ +// +// YUMIWithdrawAccountMatrix.h +// YuMi +// +// Created by YuMi on 2022/11/18. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIWithdrawAccountMatrix : NSObject +@property (nonatomic,copy) NSString *uid; +@property (nonatomic,copy) NSString *swift; +@property (nonatomic,copy) NSString *bankName; +@property (nonatomic,copy) NSString *accountNumber; +@property (nonatomic,copy) NSString *accountName; +@property (nonatomic,copy) NSString *address; +@property (nonatomic,copy) NSString *city; +@property (nonatomic,copy) NSString *province; +@property (nonatomic,copy) NSString *postCode; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/Model/RecordIncome/YUMIWithdrawAccountMatrix.m b/YuMi/Modules/YMMine/Model/RecordIncome/YUMIWithdrawAccountMatrix.m new file mode 100644 index 00000000..e1f22bb9 --- /dev/null +++ b/YuMi/Modules/YMMine/Model/RecordIncome/YUMIWithdrawAccountMatrix.m @@ -0,0 +1,12 @@ +// +// YUMIWithdrawAccountMatrix.m +// YuMi +// +// Created by YuMi on 2022/11/18. +// + +#import "YUMIWithdrawAccountMatrix.h" + +@implementation YUMIWithdrawAccountMatrix + +@end diff --git a/YuMi/Modules/YMMine/Model/UserInfo/ConsumerPresentRamparatAbstractMatrix.h b/YuMi/Modules/YMMine/Model/UserInfo/ConsumerPresentRamparatAbstractMatrix.h new file mode 100644 index 00000000..09016e02 --- /dev/null +++ b/YuMi/Modules/YMMine/Model/UserInfo/ConsumerPresentRamparatAbstractMatrix.h @@ -0,0 +1,21 @@ +// +// ConsumerPresentRamparatAbstractMatrix.h +// YUMI +// +// Created by YUMI on 2022/4/14. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface ConsumerPresentRamparatAbstractMatrix : NSObject +@property (nonatomic,copy) NSString *uid; +@property (nonatomic,assign) NSInteger giftPrice; +@property (nonatomic,assign) NSInteger giftId; +@property (nonatomic,copy) NSString *giftName; +@property (nonatomic,copy) NSString *picUrl; +@property (nonatomic,assign) NSInteger reciveCount; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/Model/UserInfo/ConsumerPresentRamparatAbstractMatrix.m b/YuMi/Modules/YMMine/Model/UserInfo/ConsumerPresentRamparatAbstractMatrix.m new file mode 100644 index 00000000..e1acf12e --- /dev/null +++ b/YuMi/Modules/YMMine/Model/UserInfo/ConsumerPresentRamparatAbstractMatrix.m @@ -0,0 +1,12 @@ +// +// ConsumerPresentRamparatAbstractMatrix.m +// YUMI +// +// Created by YUMI on 2022/4/14. +// + +#import "ConsumerPresentRamparatAbstractMatrix.h" + +@implementation ConsumerPresentRamparatAbstractMatrix + +@end diff --git a/YuMi/Modules/YMMine/Model/Visitor/YUMIManeVacationerProvisionMatrix.h b/YuMi/Modules/YMMine/Model/Visitor/YUMIManeVacationerProvisionMatrix.h new file mode 100644 index 00000000..16755bb1 --- /dev/null +++ b/YuMi/Modules/YMMine/Model/Visitor/YUMIManeVacationerProvisionMatrix.h @@ -0,0 +1,23 @@ +// +// YMMineVisitorItemModel.h +// YUMI +// +// Created by YUMI on 2022/1/26. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeVacationerProvisionMatrix : NSObject + +@property (nonatomic, copy) NSString *avatar; +@property (nonatomic, assign) NSInteger erbanNo; +@property (nonatomic, assign) NSInteger gender; +@property (nonatomic, copy) NSString *nick; +@property (nonatomic, assign) long long uid; +@property (nonatomic, copy) NSString *visitTimeDesc; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/Model/Visitor/YUMIManeVacationerProvisionMatrix.m b/YuMi/Modules/YMMine/Model/Visitor/YUMIManeVacationerProvisionMatrix.m new file mode 100644 index 00000000..58e5a897 --- /dev/null +++ b/YuMi/Modules/YMMine/Model/Visitor/YUMIManeVacationerProvisionMatrix.m @@ -0,0 +1,12 @@ +// +// YMMineVisitorItemModel.m +// YUMI +// +// Created by YUMI on 2022/1/26. +// + +#import "YUMIManeVacationerProvisionMatrix.h" + +@implementation YUMIManeVacationerProvisionMatrix + +@end diff --git a/YuMi/Modules/YMMine/Model/Visitor/YUMIManeVacationerUnReadMatrix.h b/YuMi/Modules/YMMine/Model/Visitor/YUMIManeVacationerUnReadMatrix.h new file mode 100644 index 00000000..7ea5a551 --- /dev/null +++ b/YuMi/Modules/YMMine/Model/Visitor/YUMIManeVacationerUnReadMatrix.h @@ -0,0 +1,18 @@ +// +// YMMineVisitorUnReadModel.h +// YUMI +// +// Created by YUMI on 2022/1/26. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeVacationerUnReadMatrix : NSObject + +@property (nonatomic, assign) NSInteger visitNum; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/Model/Visitor/YUMIManeVacationerUnReadMatrix.m b/YuMi/Modules/YMMine/Model/Visitor/YUMIManeVacationerUnReadMatrix.m new file mode 100644 index 00000000..edf6b768 --- /dev/null +++ b/YuMi/Modules/YMMine/Model/Visitor/YUMIManeVacationerUnReadMatrix.m @@ -0,0 +1,12 @@ +// +// YMMineVisitorUnReadModel.m +// YUMI +// +// Created by YUMI on 2022/1/26. +// + +#import "YUMIManeVacationerUnReadMatrix.h" + +@implementation YUMIManeVacationerUnReadMatrix + +@end diff --git a/YuMi/Modules/YMMine/Model/YUMIManeConsumerAbstractCompileMatrix.h b/YuMi/Modules/YMMine/Model/YUMIManeConsumerAbstractCompileMatrix.h new file mode 100644 index 00000000..ef477c37 --- /dev/null +++ b/YuMi/Modules/YMMine/Model/YUMIManeConsumerAbstractCompileMatrix.h @@ -0,0 +1,29 @@ +// +// YMMineUserInfoEditModel.h +// YUMI +// +// Created by YUMI on 2021/9/23. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +typedef NS_ENUM(NSInteger, YUMIManeConsumerAbstractEditGenre) { + YUMIManeConsumerAbstractEditGenre_Avatar, + YUMIManeConsumerAbstractEditGenre_Nick, + YUMIManeConsumerAbstractEditGenre_Birth, + YUMIManeConsumerAbstractEditGenre_Photo, + YUMIManeConsumerAbstractEditGenre_UseDes, +}; + +@interface YUMIManeConsumerAbstractCompileMatrix : NSObject +@property (nonatomic,assign) YUMIManeConsumerAbstractEditGenre type; +@property (nonatomic,copy) NSString *title; +@property (nonatomic,copy) NSString *subTitle; +@property (nonatomic,assign) BOOL isReview; +@property (nonatomic,copy) NSString *avatarUrl; +@property (nonatomic,copy) NSArray *photoArray; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/Model/YUMIManeConsumerAbstractCompileMatrix.m b/YuMi/Modules/YMMine/Model/YUMIManeConsumerAbstractCompileMatrix.m new file mode 100644 index 00000000..653c8dd6 --- /dev/null +++ b/YuMi/Modules/YMMine/Model/YUMIManeConsumerAbstractCompileMatrix.m @@ -0,0 +1,12 @@ +// +// YMMineUserInfoEditModel.m +// YUMI +// +// Created by YUMI on 2021/9/23. +// + +#import "YUMIManeConsumerAbstractCompileMatrix.h" + +@implementation YUMIManeConsumerAbstractCompileMatrix + +@end diff --git a/YuMi/Modules/YMMine/Model/YUMIManeFuntionProvisionMatrix.h b/YuMi/Modules/YMMine/Model/YUMIManeFuntionProvisionMatrix.h new file mode 100644 index 00000000..50bc7f35 --- /dev/null +++ b/YuMi/Modules/YMMine/Model/YUMIManeFuntionProvisionMatrix.h @@ -0,0 +1,25 @@ +// +// YMMineFuntionItemModel.h +// YUMI +// +// Created by YUMI on 2022/7/22. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeFuntionProvisionMatrix : NSObject + +@property (nonatomic, assign) NSInteger centerStatus; +@property (nonatomic, copy) NSString *centerPic; +@property (nonatomic, assign) NSInteger centerId; +@property (nonatomic, copy) NSString *centerBadge; +@property (nonatomic, assign) NSInteger skipType; +@property (nonatomic, assign) NSInteger centerSeq; +@property (nonatomic, copy) NSString *centerName; +@property (nonatomic, copy) NSString *centerUrl; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/Model/YUMIManeFuntionProvisionMatrix.m b/YuMi/Modules/YMMine/Model/YUMIManeFuntionProvisionMatrix.m new file mode 100644 index 00000000..e10ff4de --- /dev/null +++ b/YuMi/Modules/YMMine/Model/YUMIManeFuntionProvisionMatrix.m @@ -0,0 +1,12 @@ +// +// YMMineFuntionItemModel.m +// YUMI +// +// Created by YUMI on 2022/7/22. +// + +#import "YUMIManeFuntionProvisionMatrix.h" + +@implementation YUMIManeFuntionProvisionMatrix + +@end diff --git a/YuMi/Modules/YMMine/Model/YUMIManeInstanllingProvisionMatrix.h b/YuMi/Modules/YMMine/Model/YUMIManeInstanllingProvisionMatrix.h new file mode 100644 index 00000000..b24ffc63 --- /dev/null +++ b/YuMi/Modules/YMMine/Model/YUMIManeInstanllingProvisionMatrix.h @@ -0,0 +1,35 @@ +// +// YMMineSettingItemModel.h +// YUMI +// +// Created by YUMI on 2021/9/17. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSInteger, YUMIManeInstanllingProvisionGenre){ + YUMIManeInstanllingProvisionGenre_Phone, + YUMIManeInstanllingProvisionGenre_Pay_Password, + + YUMIManeInstanllingProvisionGenre_Login_Password, + + YUMIManeInstanllingProvisionGenre_Black_Manager, + YUMIManeInstanllingProvisionGenre_Notification_Remind, + YUMIManeInstanllingProvisionGenre_Permission, + YUMIManeInstanllingProvisionGenre_Helper, + YUMIManeInstanllingProvisionGenre_Feedback, + YUMIManeInstanllingProvisionGenre_Clear_Memory, + YUMIManeInstanllingProvisionGenre_About_Us, + YUMIManeInstanllingProvisionGenre_CheckUpdate, + YUMIManeInstanllingProvisionGenre_Delete_Account, +}; + +@interface YUMIManeInstanllingProvisionMatrix : NSObject +@property (nonatomic,copy) NSString *title; +@property (nonatomic,copy,) NSString * __nullable subTitle; +@property (nonatomic,assign) YUMIManeInstanllingProvisionGenre type; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/Model/YUMIManeInstanllingProvisionMatrix.m b/YuMi/Modules/YMMine/Model/YUMIManeInstanllingProvisionMatrix.m new file mode 100644 index 00000000..9541ead3 --- /dev/null +++ b/YuMi/Modules/YMMine/Model/YUMIManeInstanllingProvisionMatrix.m @@ -0,0 +1,12 @@ +// +// YMMineSettingItemModel.m +// YUMI +// +// Created by YUMI on 2021/9/17. +// + +#import "YUMIManeInstanllingProvisionMatrix.h" + +@implementation YUMIManeInstanllingProvisionMatrix + +@end diff --git a/YuMi/Modules/YMMine/Model/YUMIManeNotificationProvisionMatrix.h b/YuMi/Modules/YMMine/Model/YUMIManeNotificationProvisionMatrix.h new file mode 100644 index 00000000..1edc5b43 --- /dev/null +++ b/YuMi/Modules/YMMine/Model/YUMIManeNotificationProvisionMatrix.h @@ -0,0 +1,18 @@ +// +// YMMineNotificationItemModel.h +// YUMI +// +// Created by YUMI on 2021/9/17. +// + +#import "NSObject+MJExtension.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeNotificationProvisionMatrix : NSObject +@property (nonatomic, copy) NSString *title; +@property (nonatomic, copy) NSString *desc; +@property (nonatomic, assign) BOOL notification; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/Model/YUMIManeNotificationProvisionMatrix.m b/YuMi/Modules/YMMine/Model/YUMIManeNotificationProvisionMatrix.m new file mode 100644 index 00000000..a22ccfee --- /dev/null +++ b/YuMi/Modules/YMMine/Model/YUMIManeNotificationProvisionMatrix.m @@ -0,0 +1,12 @@ +// +// YMMineNotificationItemModel.m +// YUMI +// +// Created by YUMI on 2021/9/17. +// + +#import "YUMIManeNotificationProvisionMatrix.h" + +@implementation YUMIManeNotificationProvisionMatrix + +@end diff --git a/YuMi/Modules/YMMine/Model/YUMIManeNotifyStatus.h b/YuMi/Modules/YMMine/Model/YUMIManeNotifyStatus.h new file mode 100644 index 00000000..2aa20b09 --- /dev/null +++ b/YuMi/Modules/YMMine/Model/YUMIManeNotifyStatus.h @@ -0,0 +1,18 @@ +// +// YMMineNotifyStatus.h +// YUMI +// +// Created by YUMI on 2021/9/17. +// + +#import "NSObject+MJExtension.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeNotifyStatus : NSObject +@property (nonatomic, assign) BOOL sysMsgNotify; +@property (nonatomic, assign) BOOL singleBroadcastMsgNotify; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/Model/YUMIManeNotifyStatus.m b/YuMi/Modules/YMMine/Model/YUMIManeNotifyStatus.m new file mode 100644 index 00000000..f097a24b --- /dev/null +++ b/YuMi/Modules/YMMine/Model/YUMIManeNotifyStatus.m @@ -0,0 +1,12 @@ +// +// YMMineNotifyStatus.m +// YUMI +// +// Created by YUMI on 2021/9/17. +// + +#import "YUMIManeNotifyStatus.h" + +@implementation YUMIManeNotifyStatus + +@end diff --git a/YuMi/Modules/YMMine/Model/YUMIManeProvisionMatrix.h b/YuMi/Modules/YMMine/Model/YUMIManeProvisionMatrix.h new file mode 100644 index 00000000..c0c27e5f --- /dev/null +++ b/YuMi/Modules/YMMine/Model/YUMIManeProvisionMatrix.h @@ -0,0 +1,49 @@ +// +// YMMineItemModel.h +// YUMI +// +// Created by YUMI on 2021/9/16. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +typedef NS_ENUM(NSInteger, YUMIManeProvisionGenre) { + YUMIManeProvisionGenre_Match_Relevance_Account = 2, + YUMIManeProvisionGenre_Match_Apply_Record, + YUMIManeProvisionGenre_Match_Bonus, + YUMIManeProvisionGenre_Match_Standings, + YUMIManeProvisionGenre_Match_Card_Bag, + YUMIManeProvisionGenre_Match_Shopping, + YUMIManeProvisionGenre_Account, + YUMIManeProvisionGenre_Personinfo, + YUMIManeProvisionGenre_Attention_List, + YUMIManeProvisionGenre_Foot_Print, + YUMIManeProvisionGenre_Fans_List, + YUMIManeProvisionGenre_Noble_Center, + YUMIManeProvisionGenre_Skill_Card, + YUMIManeProvisionGenre_My_Room = 64, + YUMIManeProvisionGenre_Collect_Room = 65, + YUMIManeProvisionGenre_My_Guild = 67, + YUMIManeProvisionGenre_Teenager_Mode = 68, + YUMIManeProvisionGenre_Match_Manage = 69, + YUMIManeProvisionGenre_Visitor = 70, + YUMIManeProvisionGenre_CP = 71, + YUMIManeProvisionGenre_FansTeam = 72, + YUMIManeProvisionGenre_DressUp_Market = 73, + YUMIManeProvisionGenre_My_Dressup = 74, + YUMIManeProvisionGenre_My_Set = 75 + +}; + + +@interface YUMIManeProvisionMatrix : NSObject +@property (nonatomic,copy) NSString *itemImageName; +@property (nonatomic,copy) NSString *itemName; +@property (nonatomic,assign) YUMIManeProvisionGenre type; +@property (nonatomic, assign) UIRectCorner cornerType; +@property (nonatomic, assign) NSInteger unReadCount; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/Model/YUMIManeProvisionMatrix.m b/YuMi/Modules/YMMine/Model/YUMIManeProvisionMatrix.m new file mode 100644 index 00000000..4fd95177 --- /dev/null +++ b/YuMi/Modules/YMMine/Model/YUMIManeProvisionMatrix.m @@ -0,0 +1,12 @@ +// +// YMMineItemModel.m +// YUMI +// +// Created by YUMI on 2021/9/16. +// + +#import "YUMIManeProvisionMatrix.h" + +@implementation YUMIManeProvisionMatrix + +@end diff --git a/YuMi/Modules/YMMine/Presenter/YUMIManeAssembleChamberStatementExternalizer.h b/YuMi/Modules/YMMine/Presenter/YUMIManeAssembleChamberStatementExternalizer.h new file mode 100644 index 00000000..73123878 --- /dev/null +++ b/YuMi/Modules/YMMine/Presenter/YUMIManeAssembleChamberStatementExternalizer.h @@ -0,0 +1,20 @@ +// +// YMMineCollectRoomListPresenter.h +// YUMI +// +// Created by YUMI on 2022/7/27. +// + +#import "BaseMvpExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeAssembleChamberStatementExternalizer : BaseMvpExternalizer + +- (void)acquireAssembleChamberSttowardsement:(int)page pageSize:(int)pageSize state:(int)state type:(NSString *)type; + +- (void)representtowardsionassembleChamberAboutChamberCids:(NSString *)roomUids; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/Presenter/YUMIManeAssembleChamberStatementExternalizer.m b/YuMi/Modules/YMMine/Presenter/YUMIManeAssembleChamberStatementExternalizer.m new file mode 100644 index 00000000..bf634c93 --- /dev/null +++ b/YuMi/Modules/YMMine/Presenter/YUMIManeAssembleChamberStatementExternalizer.m @@ -0,0 +1,35 @@ +// +// YMMineCollectRoomListPresenter.m +// YUMI +// +// Created by YUMI on 2022/7/27. +// + +#import "YUMIManeAssembleChamberStatementExternalizer.h" +#import "Api+Mine.h" +#import "Api+Room.h" +#import "FBCManeCollectChamberStatementCeremony.h" +#import "AccountAbstractStorage.h" +#import "ResidenceAssembleChamberMatrix.h" + +@implementation YUMIManeAssembleChamberStatementExternalizer + +- (void)acquireAssembleChamberSttowardsement:(int)page pageSize:(int)pageSize state:(int)state type:(NSString *)type { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [Api requisitionManeAssembleChamberSttowardsement:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + NSArray * array = [ResidenceAssembleChamberMatrix mtowardsrixsAboutGarment:data.data[@"fansRoomList"]]; + [[self acquireRegard] dwellEarnAssembleChamberSttowardsementAccomplishment:array state:state]; + } fail:^(NSInteger code, NSString * _Nullable msg) { + [[self acquireRegard] acquireAssembleChamberSttowardsementFlunk:state]; + }] uid:uid page:[NSString stringWithFormat:@"%d", page] pageSize:[NSString stringWithFormat:@"%d", pageSize] roomType:type.length ? type : NULL]; +} + +- (void)representtowardsionassembleChamberAboutChamberCids:(NSString *)roomUids { + NSString * type = @"3"; + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [Api assembleChamber:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] representtowardsionAssembleChamberAccomplishment]; + }] roomUid:@"" uid:uid type:type roomUids:roomUids]; +} + +@end diff --git a/YuMi/Modules/YMMine/Presenter/YUMIManeAssistantExternalizer.h b/YuMi/Modules/YMMine/Presenter/YUMIManeAssistantExternalizer.h new file mode 100644 index 00000000..af256b9a --- /dev/null +++ b/YuMi/Modules/YMMine/Presenter/YUMIManeAssistantExternalizer.h @@ -0,0 +1,16 @@ +// +// YMMineFriendPresenter.h +// YUMI +// +// Created by YUMI on 2022/5/29. +// + +#import "BaseMvpExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeAssistantExternalizer : BaseMvpExternalizer +- (void)acquireConsumerSttowardsementAbstract:(NSArray *)array; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/Presenter/YUMIManeAssistantExternalizer.m b/YuMi/Modules/YMMine/Presenter/YUMIManeAssistantExternalizer.m new file mode 100644 index 00000000..32e6ab63 --- /dev/null +++ b/YuMi/Modules/YMMine/Presenter/YUMIManeAssistantExternalizer.m @@ -0,0 +1,26 @@ +// +// YMMineFriendPresenter.m +// YUMI +// +// Created by YUMI on 2022/5/29. +// + +#import "YUMIManeAssistantExternalizer.h" +#import "Api+Mine.h" +#import "FBCManeFriendCeremony.h" +#import "ConsumerAbstractMatrix.h" + +@implementation YUMIManeAssistantExternalizer + +- (void)acquireConsumerSttowardsementAbstract:(NSArray *)array { + NSString * uids = @""; + if (array.count > 0) { + uids = [array componentsJoinedByString:@","]; + } + [Api acquireConsumersSttowardsementAbstract:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + NSArray *users= [ConsumerAbstractMatrix mtowardsrixsAboutGarment:data.data]; + [[self acquireRegard] acquireConsumerSttowardsementAbstractAccomplishment:users]; + }] uids:uids]; +} + +@end diff --git a/YuMi/Modules/YMMine/Presenter/YUMIManeBlackStatementExternalizer.h b/YuMi/Modules/YMMine/Presenter/YUMIManeBlackStatementExternalizer.h new file mode 100644 index 00000000..f51c3dd5 --- /dev/null +++ b/YuMi/Modules/YMMine/Presenter/YUMIManeBlackStatementExternalizer.h @@ -0,0 +1,16 @@ +// +// YMMineBlackListPresenter.h +// YUMI +// +// Created by YUMI on 2022/5/13. +// + +#import "BaseMvpExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeBlackStatementExternalizer : BaseMvpExternalizer +- (void)acquireConsumerSttowardsementAbstract:(NSArray *)array; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/Presenter/YUMIManeBlackStatementExternalizer.m b/YuMi/Modules/YMMine/Presenter/YUMIManeBlackStatementExternalizer.m new file mode 100644 index 00000000..894ea47a --- /dev/null +++ b/YuMi/Modules/YMMine/Presenter/YUMIManeBlackStatementExternalizer.m @@ -0,0 +1,25 @@ +// +// YMMineBlackListPresenter.m +// YUMI +// +// Created by YUMI on 2022/5/13. +// + +#import "YUMIManeBlackStatementExternalizer.h" +#import "Api+Mine.h" +#import "ConsumerAbstractMatrix.h" +#import "FBCManeBlackStatementCeremony.h" +@implementation YUMIManeBlackStatementExternalizer + +- (void)acquireConsumerSttowardsementAbstract:(NSArray *)array { + NSString * uids = @""; + if (array.count > 0) { + uids = [array componentsJoinedByString:@","]; + } + [Api acquireConsumersSttowardsementAbstract:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + NSArray *users= [ConsumerAbstractMatrix mtowardsrixsAboutGarment:data.data]; + [[self acquireRegard] acquireConsumerSttowardsementAbstractAccomplishment:users]; + }] uids:uids]; +} + +@end diff --git a/YuMi/Modules/YMMine/Presenter/YUMIManeConsiderationExternalizer.h b/YuMi/Modules/YMMine/Presenter/YUMIManeConsiderationExternalizer.h new file mode 100644 index 00000000..9c2830b1 --- /dev/null +++ b/YuMi/Modules/YMMine/Presenter/YUMIManeConsiderationExternalizer.h @@ -0,0 +1,16 @@ +// +// YMMineAttentionPresenter.h +// YUMI +// +// Created by YUMI on 2021/12/21. +// + +#import "BaseMvpExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeConsiderationExternalizer : BaseMvpExternalizer +- (void)acquireConsumerConsidertowardsionSttowardsement:(int)page pageSize:(int)pageSize state:(int)state;; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/Presenter/YUMIManeConsiderationExternalizer.m b/YuMi/Modules/YMMine/Presenter/YUMIManeConsiderationExternalizer.m new file mode 100644 index 00000000..5a33fe9d --- /dev/null +++ b/YuMi/Modules/YMMine/Presenter/YUMIManeConsiderationExternalizer.m @@ -0,0 +1,28 @@ +// +// YMMineAttentionPresenter.m +// YUMI +// +// Created by YUMI on 2021/12/21. +// + +#import "YUMIManeConsiderationExternalizer.h" +#import "Api+Mine.h" +#import "AccountAbstractStorage.h" +#import "FBCManeConsiderationCeremony.h" +#import "FanaticsAbstractMatrix.h" + +@implementation YUMIManeConsiderationExternalizer + +- (void)acquireConsumerConsidertowardsionSttowardsement:(int)page pageSize:(int)pageSize state:(int)state;{ + NSString * uid= [AccountAbstractStorage instance].acquireCid; + NSString * pageStr = [NSString stringWithFormat:@"%d", page]; + NSString * pageSizeStr = [NSString stringWithFormat:@"%d", pageSize]; + [Api acquireconsidertowardsionSttowardsementImplementtowardsion:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + NSArray * array = [FanaticsAbstractMatrix mtowardsrixsAboutGarment:data.data]; + [[self acquireRegard] acquireConsumerConsidertowardsionSttowardsementAccomplishment:array state:state]; + }fail:^(NSInteger code, NSString * _Nullable msg) { + [[self acquireRegard] acquireConsumerConsidertowardsionSttowardsementFlunk:state]; + }] uid:uid pageNo:pageStr pageSize:pageSizeStr]; +} + +@end diff --git a/YuMi/Modules/YMMine/Presenter/YUMIManeConsumerAbstractCompileExternalizer.h b/YuMi/Modules/YMMine/Presenter/YUMIManeConsumerAbstractCompileExternalizer.h new file mode 100644 index 00000000..967abdaf --- /dev/null +++ b/YuMi/Modules/YMMine/Presenter/YUMIManeConsumerAbstractCompileExternalizer.h @@ -0,0 +1,26 @@ +// +// YMMineUserInfoEditPresenter.h +// YUMI +// +// Created by YUMI on 2021/9/23. +// + +#import "BaseMvpExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN +@class ConsumerAbstractMatrix; +@interface YUMIManeConsumerAbstractCompileExternalizer : BaseMvpExternalizer + +- (void)getUserInfo; + +- (void)acquireConsumerAbstractCompileTowardsoloudspeakerProvenienceAboutConsumerAbstract:(ConsumerAbstractMatrix *)userInfo; + +- (void)complectionAbstractAboutIntelligenceportrait:(NSString * _Nullable)avatar + nick:(NSString * _Nullable)nick + birth:(NSString * _Nullable)birth + userDesc:(NSString * _Nullable)userDesc; + +- (void)upburdenIntelligenceportrait:(UIImage *)avatar; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/Presenter/YUMIManeConsumerAbstractCompileExternalizer.m b/YuMi/Modules/YMMine/Presenter/YUMIManeConsumerAbstractCompileExternalizer.m new file mode 100644 index 00000000..7d871cc8 --- /dev/null +++ b/YuMi/Modules/YMMine/Presenter/YUMIManeConsumerAbstractCompileExternalizer.m @@ -0,0 +1,170 @@ +// +// YMMineUserInfoEditPresenter.m +// YUMI +// +// Created by YUMI on 2021/9/23. +// + +#import "YUMIManeConsumerAbstractCompileExternalizer.h" +#import "Api+Mine.h" +#import "AccountAbstractStorage.h" +#import "UpwardsloadIndicate.h" +#import "NSMutableDictionary+Saft.h" +#import "YUMIManeConsumerAbstractCompileMatrix.h" +#import "ConsumerAbstractMatrix.h" +#import "FBCManeConsumerAbstractEditCeremony.h" +@interface YUMIManeConsumerAbstractCompileExternalizer () +@property (nonatomic,strong) YUMIManeConsumerAbstractCompileMatrix *monicerProvision; +@property (nonatomic,strong) YUMIManeConsumerAbstractCompileMatrix *intelligenceportraitProvision; +@property (nonatomic,strong) YUMIManeConsumerAbstractCompileMatrix *birthProvision; +@property (nonatomic,strong) YUMIManeConsumerAbstractCompileMatrix *appearanceProvision; +@property (nonatomic,strong) YUMIManeConsumerAbstractCompileMatrix *sequencProvision; +@property (nonatomic,strong) NSMutableArray *compileGarment; +@property (nonatomic,strong) NSDateFormatter *engagementInitialiser; +@end + +@implementation YUMIManeConsumerAbstractCompileExternalizer + +- (void)getUserInfo { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [Api getUserInfo:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + ConsumerAbstractMatrix * infoMatrix = [ConsumerAbstractMatrix mtowardsrixAboutImpactbasket:data.data]; + [[self acquireRegard] dwellEarnConsumerAbstractAccomplishment:infoMatrix]; + }] uid:uid]; +} + +- (void)acquireConsumerAbstractCompileTowardsoloudspeakerProvenienceAboutConsumerAbstract:(ConsumerAbstractMatrix *)userInfo { + + if (self.compileGarment.count <= 0) { + [self.compileGarment addObject:self.intelligenceportraitProvision]; + [self.compileGarment addObject:self.monicerProvision]; + [self.compileGarment addObject:self.birthProvision]; + [self.compileGarment addObject:self.appearanceProvision]; + [self.compileGarment addObject:self.sequencProvision]; + } + + + self.intelligenceportraitProvision.isReview = userInfo.isReview; + self.intelligenceportraitProvision.avatarUrl = userInfo.isReview ? userInfo.reviewingAvatar : userInfo.avatar; + + self.monicerProvision.subTitle = userInfo.nick; + NSString *dateStr = [self.engagementInitialiser stringFromDate:[NSDate dateWithTimeIntervalSince1970:userInfo.birth/1000]]; + self.birthProvision.subTitle = dateStr; + + self.appearanceProvision.photoArray = userInfo.privatePhoto; + + self.sequencProvision.subTitle = userInfo.userDesc.length > 0 ? userInfo.userDesc : @""; + + [[self acquireRegard] acquireConsumerAbstractCompileTowardsoloudspeakerProvenienceAccomplishment:self.compileGarment]; +} + +- (void)complectionAbstractAboutIntelligenceportrait:(NSString * _Nullable)avatar + nick:(NSString * _Nullable)nick + birth:(NSString * _Nullable)birth + userDesc:(NSString * _Nullable)userDesc { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NSString * ticket = [[AccountAbstractStorage instance] acquireTicket]; + NSMutableDictionary * dic = [NSMutableDictionary dictionary]; + if (avatar.length > 0) { + [dic secureSetGroal:avatar forKey:@"avatar"]; + } + + if (nick.length > 0) { + [dic secureSetGroal:nick forKey:@"nick"]; + } + + if (birth.length > 0) { + [dic secureSetGroal:birth forKey:@"birth"]; + } + + if (userDesc.length > 0) { + [dic secureSetGroal:userDesc forKey:@"userDesc"]; + } + + [dic secureSetGroal:uid forKey:@"uid"]; + [dic secureSetGroal:ticket forKey:@"ticket"]; + [Api accomplishConsumerAbstract:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + ConsumerAbstractMatrix * infoMatrix = [ConsumerAbstractMatrix mtowardsrixAboutImpactbasket:data.data]; + [[self acquireRegard] accomplishConsumerAbstractAccomplishment:infoMatrix]; + }] userInfo:dic]; +} + + +- (void)upburdenIntelligenceportrait:(UIImage *)avatar { + [Api qiniuUpwardsLoadIndictowardse:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + NSString *key = data.data[@"key"]; + NSString *token = data.data[@"token"]; + [UpwardsloadIndicate upburdenIndictowardse:avatar named:key token:token success:^(NSString * _Nonnull key, NSDictionary * _Nonnull resp) { + NSString *url = resp[@"path"]; + [[self acquireRegard] upburdenIndictowardseAccomplishment:url]; + } failure:^(NSNumber * _Nonnull resCode, NSString * _Nonnull message) { + [[self acquireRegard] EvidenceMistakeToast:YMLocalizedString(@"YUMI_Mine_User_Info_Edit_Presenter_0")]; + }]; + }]]; +} + + +#pragma mark - Getters And Setters +- (YUMIManeConsumerAbstractCompileMatrix *)monicerProvision { + if (!_monicerProvision) { + _monicerProvision = [[YUMIManeConsumerAbstractCompileMatrix alloc] init]; + _monicerProvision.type = YUMIManeConsumerAbstractEditGenre_Nick; + _monicerProvision.title = @"昵称:"; + } + return _monicerProvision; +} + +- (YUMIManeConsumerAbstractCompileMatrix *)intelligenceportraitProvision { + if (!_intelligenceportraitProvision) { + _intelligenceportraitProvision = [[YUMIManeConsumerAbstractCompileMatrix alloc] init]; + _intelligenceportraitProvision.type = YUMIManeConsumerAbstractEditGenre_Avatar; + _intelligenceportraitProvision.title = @"头像:"; + } + return _intelligenceportraitProvision; +} + + +- (YUMIManeConsumerAbstractCompileMatrix *)birthProvision { + if (!_birthProvision) { + _birthProvision = [[YUMIManeConsumerAbstractCompileMatrix alloc] init]; + _birthProvision.type = YUMIManeConsumerAbstractEditGenre_Birth; + _birthProvision.title = @"生日:"; + } + return _birthProvision; +} + +- (YUMIManeConsumerAbstractCompileMatrix *)appearanceProvision { + if (!_appearanceProvision) { + _appearanceProvision = [[YUMIManeConsumerAbstractCompileMatrix alloc] init]; + _appearanceProvision.type = YUMIManeConsumerAbstractEditGenre_Photo; + _appearanceProvision.title = @"相册:"; + } + return _appearanceProvision; +} + +- (YUMIManeConsumerAbstractCompileMatrix *)sequencProvision { + if (!_sequencProvision) { + _sequencProvision = [[YUMIManeConsumerAbstractCompileMatrix alloc] init]; + _sequencProvision.type = YUMIManeConsumerAbstractEditGenre_UseDes; + _sequencProvision.title = @"个人介绍:"; + } + return _sequencProvision; +} + +- (NSMutableArray *)compileGarment { + if (!_compileGarment) { + _compileGarment = [NSMutableArray array]; + } + return _compileGarment; +} + +- (NSDateFormatter *)engagementInitialiser { + if (!_engagementInitialiser) { + _engagementInitialiser = [[NSDateFormatter alloc] init]; + _engagementInitialiser.dateFormat = @"yyyy-MM-dd"; + } + return _engagementInitialiser; +} + + +@end diff --git a/YuMi/Modules/YMMine/Presenter/YUMIManeConsumerAbstractExternalizer.h b/YuMi/Modules/YMMine/Presenter/YUMIManeConsumerAbstractExternalizer.h new file mode 100644 index 00000000..e4cd679b --- /dev/null +++ b/YuMi/Modules/YMMine/Presenter/YUMIManeConsumerAbstractExternalizer.h @@ -0,0 +1,24 @@ +// +// YMMineUserInfoPresenter.h +// YUMI +// +// Created by YUMI on 2021/9/23. +// + +#import "BaseMvpExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeConsumerAbstractExternalizer : BaseMvpExternalizer +- (void)acquireConsumerAbstractAboutCid:(NSString *)uid; +- (void)acquireConsumerSpecificAbstractAboutCid:(NSString *)uid; +- (void)acquireConsumerConsidertowardsionDeclare:(NSString *)targetUid; + +- (void)considertowardsionConsumer:(NSString *)targetUid state:(BOOL)state; + +- (void)visitConsumer:(NSString *)targetUid; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/Presenter/YUMIManeConsumerAbstractExternalizer.m b/YuMi/Modules/YMMine/Presenter/YUMIManeConsumerAbstractExternalizer.m new file mode 100644 index 00000000..6d9765f8 --- /dev/null +++ b/YuMi/Modules/YMMine/Presenter/YUMIManeConsumerAbstractExternalizer.m @@ -0,0 +1,55 @@ +// +// YMMineUserInfoPresenter.m +// YUMI +// +// Created by YUMI on 2021/9/23. +// + +#import "YUMIManeConsumerAbstractExternalizer.h" +#import "Api+Mine.h" +#import "AccountAbstractStorage.h" +#import "ConsumerAbstractMatrix.h" +#import "FBCManeConsumerAbstractCeremony.h" + +@implementation YUMIManeConsumerAbstractExternalizer + +- (void)acquireConsumerAbstractAboutCid:(NSString *)uid { + [Api getUserInfo:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + ConsumerAbstractMatrix * infoMatrix = [ConsumerAbstractMatrix mtowardsrixAboutImpactbasket:data.data]; + [[self acquireRegard] dwellEarnConsumerAbstractAccomplishment:infoMatrix]; + } fail:^(NSInteger code, NSString * _Nullable msg) { + + }] uid:uid]; +} + +- (void)acquireConsumerSpecificAbstractAboutCid:(NSString *)uid { + [Api consumerSpecificAbstractImplementtowardsion:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + ConsumerAbstractMatrix * infoMatrix = [ConsumerAbstractMatrix mtowardsrixAboutImpactbasket:data.data]; + [[self acquireRegard] onacquireSpecificAbstractAccomplishment:infoMatrix]; + }] uid:uid page:@"1" pageSize:@"20"]; +} + +- (void)acquireConsumerConsidertowardsionDeclare:(NSString *)targetUid; { + NSString * uid = [[AccountAbstractStorage instance] acquireCid]; + [Api considertowardsionPositionImplementtowardsion:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + BOOL isLike = ((NSNumber *)data.data).boolValue; + [[self acquireRegard] acquireConsidertowardsionDeclareAccomplishment:isLike]; + }] uid:uid isLikeUid:targetUid]; +} + + +- (void)considertowardsionConsumer:(NSString *)targetUid state:(BOOL)state { + NSString * uid = [[AccountAbstractStorage instance] acquireCid]; + NSString * ticket = [[AccountAbstractStorage instance] acquireTicket]; + NSString * type = state ? @"1" : @"2"; + [Api considertowardsionImplementtowardsion:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] considertowardsionConsumerAccomplishment:state]; + }] uid:uid likedUid:targetUid ticket:ticket type:type]; +} + +- (void)visitConsumer:(NSString *)targetUid { + [Api upburdenInspectConsumerImplementtowardsion:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + }] uid:targetUid]; +} + +@end diff --git a/YuMi/Modules/YMMine/Presenter/YUMIManeConsumerAbstractPresentRamparatExternalizer.h b/YuMi/Modules/YMMine/Presenter/YUMIManeConsumerAbstractPresentRamparatExternalizer.h new file mode 100644 index 00000000..d21d64ff --- /dev/null +++ b/YuMi/Modules/YMMine/Presenter/YUMIManeConsumerAbstractPresentRamparatExternalizer.h @@ -0,0 +1,16 @@ +// +// YMMineUserInfoGiftWallPresenter.h +// YUMI +// +// Created by YUMI on 2022/4/15. +// + +#import "BaseMvpExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeConsumerAbstractPresentRamparatExternalizer : BaseMvpExternalizer +- (void)acquireConsumerPresentRampartowards:(NSString *)uid giftType:(NSInteger)giftType; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/Presenter/YUMIManeConsumerAbstractPresentRamparatExternalizer.m b/YuMi/Modules/YMMine/Presenter/YUMIManeConsumerAbstractPresentRamparatExternalizer.m new file mode 100644 index 00000000..fe96f94b --- /dev/null +++ b/YuMi/Modules/YMMine/Presenter/YUMIManeConsumerAbstractPresentRamparatExternalizer.m @@ -0,0 +1,23 @@ +// +// YMMineUserInfoGiftWallPresenter.m +// YUMI +// +// Created by YUMI on 2022/4/15. +// + +#import "YUMIManeConsumerAbstractPresentRamparatExternalizer.h" +#import "Api+Mine.h" +#import "FBCManeConsumerAbstractPresentWallCeremony.h" +#import "ConsumerPresentRamparatAbstractMatrix.h" + +@implementation YUMIManeConsumerAbstractPresentRamparatExternalizer + +- (void)acquireConsumerPresentRampartowards:(NSString *)uid giftType:(NSInteger)giftType { + NSString * giftTypeStr = [NSString stringWithFormat:@"%ld", giftType]; + [Api acquireConsumerPresentRampartowards:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + NSArray * array= [ConsumerPresentRamparatAbstractMatrix mtowardsrixsAboutGarment:data.data]; + [[self acquireRegard] acquireConsumerPresentRampartowardsAccomplishment:array]; + }] uid:uid giftType:giftTypeStr]; +} + +@end diff --git a/YuMi/Modules/YMMine/Presenter/YUMIManeConsumerAbstractlbumExternalizer.h b/YuMi/Modules/YMMine/Presenter/YUMIManeConsumerAbstractlbumExternalizer.h new file mode 100644 index 00000000..481461b9 --- /dev/null +++ b/YuMi/Modules/YMMine/Presenter/YUMIManeConsumerAbstractlbumExternalizer.h @@ -0,0 +1,22 @@ +// +// YMMineUserInfolbumPresenter.h +// YUMI +// +// Created by YUMI on 2021/9/24. +// + +#import "BaseMvpExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeConsumerAbstractlbumExternalizer : BaseMvpExternalizer +- (void)getUserInfo; + +- (void)upburdenConsumerBrochureAboutWeebsiteBWStt:(NSString *)url; + +- (void)upburdenBrochureIndictowardse:(UIImage *)albumImage; + +- (void)representtowardsionIndictowardseWeebsiteByvirtueofWeeblogicAboutPid:(NSString *)pid; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/Presenter/YUMIManeConsumerAbstractlbumExternalizer.m b/YuMi/Modules/YMMine/Presenter/YUMIManeConsumerAbstractlbumExternalizer.m new file mode 100644 index 00000000..db6d2a97 --- /dev/null +++ b/YuMi/Modules/YMMine/Presenter/YUMIManeConsumerAbstractlbumExternalizer.m @@ -0,0 +1,55 @@ +// +// YMMineUserInfolbumPresenter.m +// YUMI +// +// Created by YUMI on 2021/9/24. +// + +#import "YUMIManeConsumerAbstractlbumExternalizer.h" +#import "Api+Mine.h" +#import "ConsumerAbstractMatrix.h" +#import "AccountAbstractStorage.h" +#import "UpwardsloadIndicate.h" +#import "FBCManeConsumerAbstractAlbumCeremony.h" + +@implementation YUMIManeConsumerAbstractlbumExternalizer + +- (void)getUserInfo { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [Api getUserInfo:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + ConsumerAbstractMatrix * infoMatrix = [ConsumerAbstractMatrix mtowardsrixAboutImpactbasket:data.data]; + [[self acquireRegard] dwellEarnConsumerAbstractAccomplishment:infoMatrix]; + }] uid:uid]; +} + +- (void)upburdenConsumerBrochureAboutWeebsiteBWStt:(NSString *)url { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NSString * ticket = [AccountAbstractStorage instance].acquireTicket; + [Api upburdenConsumerBrochure:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] upburdenConsumerBrochureAccomplishment]; + } EvidenceChambering:YES] photoStr:url uid:uid ticket:ticket]; +} + +- (void)upburdenBrochureIndictowardse:(UIImage *)albumImage { + [Api qiniuUpwardsLoadIndictowardse:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + NSString *key = data.data[@"key"]; + NSString *token = data.data[@"token"]; + [UpwardsloadIndicate upburdenIndictowardse:albumImage named:key token:token success:^(NSString * _Nonnull key, NSDictionary * _Nonnull resp) { + NSString *url = resp[@"path"]; + [[self acquireRegard] upburdenBrochureIndictowardseToTertiusAccomplishment:url]; + } failure:^(NSNumber * _Nonnull resCode, NSString * _Nonnull message) { + [[self acquireRegard] EvidenceMistakeToast:YMLocalizedString(@"YUMI_Mine_User_Infolbum_Presenter_0")]; + }]; + } EvidenceChambering:YES]]; +} + + +- (void)representtowardsionIndictowardseWeebsiteByvirtueofWeeblogicAboutPid:(NSString *)pid { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NSString * ticket = [AccountAbstractStorage instance].acquireTicket; + [Api representtowardsionIndictowardseByvirtueofWeeblogic:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] representtowardsionConsumerBrochureAccomplishment]; + } EvidenceChambering:YES] pid:pid uid:uid ticket:ticket]; +} + +@end diff --git a/YuMi/Modules/YMMine/Presenter/YUMIManeConsumerAtomicExternalizer.h b/YuMi/Modules/YMMine/Presenter/YUMIManeConsumerAtomicExternalizer.h new file mode 100644 index 00000000..ded605cc --- /dev/null +++ b/YuMi/Modules/YMMine/Presenter/YUMIManeConsumerAtomicExternalizer.h @@ -0,0 +1,22 @@ +// +// YMMineUserDataPresenter.h +// YUMI +// +// Created by YUMI on 2022/4/14. +// + +#import "BaseMvpExternalizer.h" + +@class ConsumerAbstractMatrix; +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeConsumerAtomicExternalizer : BaseMvpExternalizer + +- (void)acquireCollectiveSpecificAbstract:(NSString *)uid currentUserUid:(NSString *)currentUserUid; + +- (void)componentAplictowardsionlyCorridor:(NSString *)hallId; + +- (void)getUserInfo:(NSString *)uid success:(void(^)(ConsumerAbstractMatrix * info))success; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/Presenter/YUMIManeConsumerAtomicExternalizer.m b/YuMi/Modules/YMMine/Presenter/YUMIManeConsumerAtomicExternalizer.m new file mode 100644 index 00000000..280ea135 --- /dev/null +++ b/YuMi/Modules/YMMine/Presenter/YUMIManeConsumerAtomicExternalizer.m @@ -0,0 +1,65 @@ +// +// YMMineUserDataPresenter.m +// YUMI +// +// Created by YUMI on 2022/4/14. +// + +#import "YUMIManeConsumerAtomicExternalizer.h" +#import +#import "Api+Guild.h" +#import "CollectiveSpecificAbstractMatrix.h" +#import "AccountAbstractStorage.h" +#import "ManeCommunicationSolitaireStatementAbstractMatrix.h" +#import "FBCManeConsumerAtomicCeremony.h" +#import "ConsumerAbstractMatrix.h" +@implementation YUMIManeConsumerAtomicExternalizer + +- (void)acquireCollectiveSpecificAbstract:(NSString *)uid currentUserUid:(NSString *)currentUserUid { + RACSubject* owner = [RACSubject subject]; + RACSubject* currentUser = [RACSubject subject]; + + [[RACSignal combineLatest:@[owner, currentUser] reduce:^id(CollectiveSpecificAbstractMatrix* ownerClanInfo, CollectiveSpecificAbstractMatrix* universalConsumerCollectiveAbstract){ + [[self acquireRegard] acquireCollectiveSpecificAbstractAccomplishment:ownerClanInfo universalConsumerCollectiveAbstract:universalConsumerCollectiveAbstract]; + return nil; + }] subscribeError:^(NSError * _Nullable error) { + + }]; + + [Api acquireCollectiveSpecificAbstract:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + CollectiveSpecificAbstractMatrix * collectiveSpecificAbstract = [CollectiveSpecificAbstractMatrix mtowardsrixAboutImpactbasket:data.data]; + [currentUser sendNext:collectiveSpecificAbstract]; + [currentUser sendCompleted]; + }fail:^(NSInteger code, NSString * _Nullable msg) { + [currentUser sendNext:nil]; + [currentUser sendCompleted]; + }] uid:currentUserUid]; + + [Api acquireCollectiveSpecificAbstract:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + CollectiveSpecificAbstractMatrix * collectiveSpecificAbstract = [CollectiveSpecificAbstractMatrix mtowardsrixAboutImpactbasket:data.data]; + [owner sendNext:collectiveSpecificAbstract]; + [owner sendCompleted]; + }fail:^(NSInteger code, NSString * _Nullable msg) { + [owner sendNext:nil]; + [owner sendCompleted]; + }] uid:uid]; +} + + +- (void)componentAplictowardsionlyCorridor:(NSString *)hallId { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [Api componentAplictowardsionlyCorridor:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] componentAplictowardsionlyCorridorAccomplishment]; + } EvidenceChambering:YES] hallId:hallId uid:uid]; +} + +- (void)getUserInfo:(NSString *)uid success:(void(^)(ConsumerAbstractMatrix * info))success { + [Api getUserInfo:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + ConsumerAbstractMatrix * info = [ConsumerAbstractMatrix mtowardsrixAboutImpactbasket:data.data]; + if (success) { + success(info); + } + }] uid:uid]; +} + +@end diff --git a/YuMi/Modules/YMMine/Presenter/YUMIManeExternalize.h b/YuMi/Modules/YMMine/Presenter/YUMIManeExternalize.h new file mode 100644 index 00000000..488ed820 --- /dev/null +++ b/YuMi/Modules/YMMine/Presenter/YUMIManeExternalize.h @@ -0,0 +1,26 @@ +// +// YMMinePresent.h +// YUMI +// +// Created by YUMI on 2021/9/16. +// + +#import "BaseMvpExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN +@interface YUMIManeExternalize : BaseMvpExternalizer + +- (void)getUserInfo; + +- (void)acquireConsumerPocketbookAbstractAboutGroup:(dispatch_group_t) group; + +- (void)acquireCollectiveSpecificAbstractAboutGroup:(dispatch_group_t) group; + +- (void)acquireFetowardsureProvisionSttowardsementAboutGroup:(dispatch_group_t) group ; + + +- (void)acquireManeOriflammeSttowardsementAboutGroup:(dispatch_group_t) group; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/Presenter/YUMIManeExternalize.m b/YuMi/Modules/YMMine/Presenter/YUMIManeExternalize.m new file mode 100644 index 00000000..3d5d3429 --- /dev/null +++ b/YuMi/Modules/YMMine/Presenter/YUMIManeExternalize.m @@ -0,0 +1,95 @@ +// +// YMMinePresent.m +// YUMI +// +// Created by YUMI on 2021/9/16. +// + +#import "YUMIManeExternalize.h" +#import "AccountAbstractStorage.h" +#import "StatsticsticsServingFacilitater.h" +#import "Api+Mine.h" +#import "Api+Guild.h" +#import "Api+Home.h" +#import "YUMIManeProvisionMatrix.h" +#import "ConsumerAbstractMatrix.h" +#import "CollectiveSpecificAbstractMatrix.h" +#import "YUMIManeFuntionProvisionMatrix.h" +#import "ResidenceOriflammeAbstractMatrix.h" +#import "RamparatetAbstractMatrix.h" +#import "CollectiveSpecificAbstractMatrix.h" +#import "FBCManeCeremony.h" +@implementation YUMIManeExternalize + +- (void)getUserInfo { + NSString * uid = [[AccountAbstractStorage instance] acquireCid]; + if (!uid.length) { + + return; + } + [Api getUserInfo:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + ConsumerAbstractMatrix * infoMatrix = [ConsumerAbstractMatrix mtowardsrixAboutImpactbasket:data.data]; + [[self acquireRegard] dwellEarnConsumerAbstractAccomplishment:infoMatrix]; + }errorToast:NO] uid:uid]; +} + +- (void)acquireConsumerPocketbookAbstractAboutGroup:(dispatch_group_t) group { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NSString * ticket = [AccountAbstractStorage instance].acquireTicket; + if (!uid.length) { + [[self acquireRegard]acquireConsumerPocketbookAbstractFlunkAboutGroup:group]; + return; + } + [Api acquireConsumerPocketbookAbstract:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + RamparatetAbstractMatrix * model = [RamparatetAbstractMatrix mtowardsrixAboutImpactbasket:data.data]; + [[self acquireRegard] acquireConsumerPocketbookAbstract:model WithGroup:group]; + } fail:^(NSInteger code, NSString * _Nullable msg) { + [[self acquireRegard]acquireConsumerPocketbookAbstractFlunkAboutGroup:group]; + }] uid:uid ticket:ticket]; +} + + +- (void)acquireCollectiveSpecificAbstractAboutGroup:(dispatch_group_t) group { + NSString * uid = [[AccountAbstractStorage instance] acquireCid]; + if (!uid.length) { + [[self acquireRegard]dwellEarnCollectiveSpecificAbstractflunkAboutGroup:group]; + return; + } + [Api acquireCollectiveSpecificAbstract:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + CollectiveSpecificAbstractMatrix * collectiveSpecificAbstract = [CollectiveSpecificAbstractMatrix mtowardsrixAboutImpactbasket:data.data]; + [[self acquireRegard] dwellEarnCollectiveSpecificAbstractAccomplishment:collectiveSpecificAbstract WithGroup:group]; + }fail:^(NSInteger code, NSString * _Nullable msg) { + [[self acquireRegard]dwellEarnCollectiveSpecificAbstractflunkAboutGroup:group]; + }] uid:uid]; +} + +- (void)acquireFetowardsureProvisionSttowardsementAboutGroup:(dispatch_group_t) group { + NSString * uid = [[AccountAbstractStorage instance] acquireCid]; + if (!uid.length){ + [[self acquireRegard] dwellEarnManeFuntionProvisionFlunkAboutGroup:group]; + return; + } + [Api requisitionsubjectiveObligtowardsionProvision:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + NSArray *array = [YUMIManeFuntionProvisionMatrix mtowardsrixsAboutGarment:data.data]; + [[self acquireRegard] dwellEarnManeFuntionProvisionAccomplishment:array WithGroup:group]; + }fail:^(NSInteger code, NSString * _Nullable msg) { + [[self acquireRegard] dwellEarnManeFuntionProvisionFlunkAboutGroup:group]; + }] uid:uid]; +} + +- (void)acquireManeOriflammeSttowardsementAboutGroup:(dispatch_group_t) group { + NSString * uid = [[AccountAbstractStorage instance] acquireCid]; + if (!uid.length) { + [[self acquireRegard] dwellEarnsubjectiveOriflammeSttowardsementFlunkAboutGroup:group]; + return; + } + [Api requisitionManeOriflammeSttowardsement:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + NSArray * array = [ResidenceOriflammeAbstractMatrix mtowardsrixsAboutGarment:data.data]; + [[self acquireRegard] dwellEarnsubjectiveOriflammeSttowardsementAccomplishment:array WithGroup:group]; + }fail:^(NSInteger code, NSString * _Nullable msg) { + [[self acquireRegard] dwellEarnsubjectiveOriflammeSttowardsementFlunkAboutGroup:group]; + } errorToast:NO] uid:uid type:@"10"]; +} + + +@end diff --git a/YuMi/Modules/YMMine/Presenter/YUMIManeFanaticsExternalizer.h b/YuMi/Modules/YMMine/Presenter/YUMIManeFanaticsExternalizer.h new file mode 100644 index 00000000..d84a29f7 --- /dev/null +++ b/YuMi/Modules/YMMine/Presenter/YUMIManeFanaticsExternalizer.h @@ -0,0 +1,18 @@ +// +// YMMineFansPresenter.h +// YUMI +// +// Created by YUMI on 2021/12/21. +// + +#import "BaseMvpExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeFanaticsExternalizer : BaseMvpExternalizer +- (void)acquireConsumerFantowardsicsSttowardsement:(int)page pageSize:(int)pageSize state:(int)state; + +- (void)considertowardsionFantowardsics:(NSString *)targetUid; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/Presenter/YUMIManeFanaticsExternalizer.m b/YuMi/Modules/YMMine/Presenter/YUMIManeFanaticsExternalizer.m new file mode 100644 index 00000000..d7793be2 --- /dev/null +++ b/YuMi/Modules/YMMine/Presenter/YUMIManeFanaticsExternalizer.m @@ -0,0 +1,38 @@ +// +// YMMineFansPresenter.m +// YUMI +// +// Created by YUMI on 2021/12/21. +// + +#import "YUMIManeFanaticsExternalizer.h" +#import "Api+Mine.h" +#import "FBCManeFanaticsCeremony.h" +#import "AccountAbstractStorage.h" +#import "FanaticsAbstractMatrix.h" + +@implementation YUMIManeFanaticsExternalizer + + +- (void)acquireConsumerFantowardsicsSttowardsement:(int)page pageSize:(int)pageSize state:(int)state { + NSString * uid= [AccountAbstractStorage instance].acquireCid; + NSString * pageStr = [NSString stringWithFormat:@"%d", page]; + NSString * pageSizeStr = [NSString stringWithFormat:@"%d", pageSize]; + [Api acquireFantowardsicsSttowardsementImplementtowardsion:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + NSArray * array = [FanaticsAbstractMatrix mtowardsrixsAboutGarment:data.data[@"fansList"]]; + [[self acquireRegard] acquireConsumerFantowardsicsSttowardsementAccomplishment:array state:state]; + }fail:^(NSInteger code, NSString * _Nullable msg) { + [[self acquireRegard] acquireConsumerFantowardsicsSttowardsementFlunk:state]; + }] uid:uid pageNo:pageStr pageSize:pageSizeStr]; +} + +- (void)considertowardsionFantowardsics:(NSString *)targetUid { + NSString * uid = [[AccountAbstractStorage instance] acquireCid]; + NSString * ticket = [[AccountAbstractStorage instance] acquireTicket]; + NSString * type = @"1"; + [Api considertowardsionImplementtowardsion:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] considertowardsionFantowardsicsAccomplishment]; + }] uid:uid likedUid:targetUid ticket:ticket type:type]; +} + +@end diff --git a/YuMi/Modules/YMMine/Presenter/YUMIManeFanaticsSquadExternalizer.h b/YuMi/Modules/YMMine/Presenter/YUMIManeFanaticsSquadExternalizer.h new file mode 100644 index 00000000..bcd060a1 --- /dev/null +++ b/YuMi/Modules/YMMine/Presenter/YUMIManeFanaticsSquadExternalizer.h @@ -0,0 +1,18 @@ +// +// YMMineFansTeamPresenter.h +// YUMI +// +// Created by YUMI on 2022/4/8. +// + +#import "BaseMvpExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeFanaticsSquadExternalizer : BaseMvpExternalizer + +- (void)acquireKellegFantowardsicsSquadSttowardsement:(int)page pageSize:(int)pageSize state:(int)state; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/Presenter/YUMIManeFanaticsSquadExternalizer.m b/YuMi/Modules/YMMine/Presenter/YUMIManeFanaticsSquadExternalizer.m new file mode 100644 index 00000000..ed64b7ce --- /dev/null +++ b/YuMi/Modules/YMMine/Presenter/YUMIManeFanaticsSquadExternalizer.m @@ -0,0 +1,24 @@ +// +// YMMineFansTeamPresenter.m +// YUMI +// +// Created by YUMI on 2022/4/8. +// + +#import "YUMIManeFanaticsSquadExternalizer.h" +#import "Api+Mine.h" +#import "FBCManeKellegFanaticsTeamCeremony.h" +#import "YUMIManeKellegFanaticsSquadMatrix.h" + +@implementation YUMIManeFanaticsSquadExternalizer + +- (void)acquireKellegFantowardsicsSquadSttowardsement:(int)page pageSize:(int)pageSize state:(int)state { + [Api acquireKellegFantowardsicsSquadSttowardsementImplementtowardsion:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + NSArray *array = [YUMIManeKellegFanaticsSquadMatrix mtowardsrixsAboutGarment:data.data]; + [[self acquireRegard] acquireKellegFantowardsicsSquadSttowardsementAccomplishment:array state:state]; + } fail:^(NSInteger code, NSString * _Nullable msg) { + [[self acquireRegard] acquireKellegFantowardsicsSquadSttowardsementFlunk:state]; + }] pageNum:[NSString stringWithFormat:@"%d", page] pageSize:[NSString stringWithFormat:@"%d", pageSize]]; +} + +@end diff --git a/YuMi/Modules/YMMine/Presenter/YUMIManeFeedbackExternalizer.h b/YuMi/Modules/YMMine/Presenter/YUMIManeFeedbackExternalizer.h new file mode 100644 index 00000000..e0f40b15 --- /dev/null +++ b/YuMi/Modules/YMMine/Presenter/YUMIManeFeedbackExternalizer.h @@ -0,0 +1,17 @@ +// +// YMFeedbackPresenter.h +// YUMI +// +// Created by YUMI on 2021/9/17. +// + +#import "BaseMvpExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeFeedbackExternalizer : BaseMvpExternalizer + +- (void)preserveFeedEncourageAbout:(NSString *)feedback contact:(NSString *)contact; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/Presenter/YUMIManeFeedbackExternalizer.m b/YuMi/Modules/YMMine/Presenter/YUMIManeFeedbackExternalizer.m new file mode 100644 index 00000000..e93551a7 --- /dev/null +++ b/YuMi/Modules/YMMine/Presenter/YUMIManeFeedbackExternalizer.m @@ -0,0 +1,23 @@ +// +// YMFeedbackPresenter.m +// YUMI +// +// Created by YUMI on 2021/9/17. +// + +#import "YUMIManeFeedbackExternalizer.h" +#import "AccountAbstractStorage.h" +#import "Api+Mine.h" +#import "FBCManeFeedbackCeremony.h" + +@implementation YUMIManeFeedbackExternalizer + +- (void)preserveFeedEncourageAbout:(NSString *)feedback contact:(NSString *)contact { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NSString * ticket = [AccountAbstractStorage instance].acquireTicket; + [Api preserveFeedEncourageAbout:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] preserveFeedencourageAccomplishment]; + } EvidenceChambering:YES] feedbackDesc:feedback contact:contact uid:uid ticket:ticket]; +} + +@end diff --git a/YuMi/Modules/YMMine/Presenter/YUMIManeInstanllingExternalize.h b/YuMi/Modules/YMMine/Presenter/YUMIManeInstanllingExternalize.h new file mode 100644 index 00000000..59a56ae6 --- /dev/null +++ b/YuMi/Modules/YMMine/Presenter/YUMIManeInstanllingExternalize.h @@ -0,0 +1,24 @@ +// +// YMMineSettingPresent.h +// YUMI +// +// Created by YUMI on 2021/9/17. +// + +#import "BaseMvpExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN +@class ConsumerAbstractMatrix; +@interface YUMIManeInstanllingExternalize : BaseMvpExternalizer + +- (void)getUserInfo; + +- (void)acquireManeInstanllingTowardsoloudspeakerProvenienceAbout:(ConsumerAbstractMatrix *)userinfo; + +- (void)revoctowardsionledUniversalSequenceription; + +- (void)acquireReleaseRefurbish; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/Presenter/YUMIManeInstanllingExternalize.m b/YuMi/Modules/YMMine/Presenter/YUMIManeInstanllingExternalize.m new file mode 100644 index 00000000..1d4715c4 --- /dev/null +++ b/YuMi/Modules/YMMine/Presenter/YUMIManeInstanllingExternalize.m @@ -0,0 +1,190 @@ +// +// YMMineSettingPresent.m +// YUMI +// +// Created by YUMI on 2021/9/17. +// + +#import "YUMIManeInstanllingExternalize.h" +#import "Api+Mine.h" +#import "Api+Room.h" +#import "FBCManeInstanllingCeremony.h" +#import "ConsumerAbstractMatrix.h" +#import "AccountMatrix.h" +#import "YUMIManeInstanllingProvisionMatrix.h" +#import "YYUtility.h" +#import "YUMIVersionRefurbishMatrix.h" +#import "Api+Main.h" +#import "AccountAbstractStorage.h" +#import "YUMIChamberMiniExecutive.h" +#import "RealtimackExecutive.h" +#import "ClientDisposition.h" +#import + +@interface YUMIManeInstanllingExternalize () +@property (nonatomic,strong) YUMIManeInstanllingProvisionMatrix *mobileProvision; +@property (nonatomic,strong) YUMIManeInstanllingProvisionMatrix *payProvision; +@property (nonatomic,strong) YUMIManeInstanllingProvisionMatrix *surmountProvision; +@property (nonatomic,strong) NSArray *atoloudspeakersouce; +@end + +@implementation YUMIManeInstanllingExternalize +- (id)acquireRegard { + return (id) [super acquireRegard]; +} + + +- (void)acquireManeInstanllingTowardsoloudspeakerProvenienceAbout:(ConsumerAbstractMatrix *)userinfo { + if (self.atoloudspeakersouce.count > 0) { + self.mobileProvision.subTitle = userinfo.isBindPhone ? userinfo.phone : YMLocalizedString(@"YUMI_Mine_Setting_Present_0"); + self.payProvision.subTitle = userinfo.isBindPaymentPwd ? @"修改" : YMLocalizedString(@"YUMI_Mine_Setting_Present_2"); + } else { + if ([ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + YUMIManeInstanllingProvisionMatrix * mobileProvision = [[YUMIManeInstanllingProvisionMatrix alloc] init]; + mobileProvision.title = YMLocalizedString(@"YUMI_Mine_Setting_Present_3"); + mobileProvision.subTitle = userinfo.isBindPhone ? userinfo.phone : YMLocalizedString(@"YUMI_Mine_Setting_Present_4"); + mobileProvision.type = YUMIManeInstanllingProvisionGenre_Phone; + self.mobileProvision = mobileProvision; + + YUMIManeInstanllingProvisionMatrix * surmountProvision = [[YUMIManeInstanllingProvisionMatrix alloc] init]; + surmountProvision.title = userinfo.isBindPasswd ? @"重置密码" : YMLocalizedString(@"YUMI_Mine_Setting_Present_6"); + surmountProvision.subTitle = YMLocalizedString(@"YUMI_Mine_Setting_Present_7"); + surmountProvision.type = YUMIManeInstanllingProvisionGenre_Login_Password; + self.surmountProvision = surmountProvision; + + YUMIManeInstanllingProvisionMatrix * blackListItem = [[YUMIManeInstanllingProvisionMatrix alloc] init]; + blackListItem.title = YMLocalizedString(@"YUMI_Mine_Setting_Present_8"); + blackListItem.subTitle = @""; + blackListItem.type = YUMIManeInstanllingProvisionGenre_Black_Manager; + + YUMIManeInstanllingProvisionMatrix * payProvision = [[YUMIManeInstanllingProvisionMatrix alloc] init]; + payProvision.title = YMLocalizedString(@"YUMI_Mine_Setting_Present_9"); + payProvision.subTitle = userinfo.isBindPaymentPwd ? @"修改" : YMLocalizedString(@"YUMI_Mine_Setting_Present_11"); + payProvision.type = YUMIManeInstanllingProvisionGenre_Pay_Password; + self.payProvision = payProvision; + + YUMIManeInstanllingProvisionMatrix * notificaItem = [[YUMIManeInstanllingProvisionMatrix alloc] init]; + notificaItem.title = YMLocalizedString(@"YUMI_Mine_Setting_Present_12"); + notificaItem.subTitle = YMLocalizedString(@"YUMI_Mine_Setting_Present_13"); + notificaItem.type = YUMIManeInstanllingProvisionGenre_Notification_Remind; + + YUMIManeInstanllingProvisionMatrix * privacyItem = [[YUMIManeInstanllingProvisionMatrix alloc] init]; + privacyItem.title = YMLocalizedString(@"YUMI_Mine_Setting_Present_14"); + privacyItem.subTitle = @""; + privacyItem.type = YUMIManeInstanllingProvisionGenre_Permission; + + YUMIManeInstanllingProvisionMatrix * helperItem = [[YUMIManeInstanllingProvisionMatrix alloc] init]; + helperItem.title = YMLocalizedString(@"YUMI_Mine_Setting_Present_15"); + helperItem.subTitle = @""; + helperItem.type = YUMIManeInstanllingProvisionGenre_Helper; + + YUMIManeInstanllingProvisionMatrix * feedbackItem = [[YUMIManeInstanllingProvisionMatrix alloc] init]; + feedbackItem.title = YMLocalizedString(@"YUMI_Mine_Setting_Present_16"); + feedbackItem.subTitle = @""; + feedbackItem.type = YUMIManeInstanllingProvisionGenre_Feedback; + + YUMIManeInstanllingProvisionMatrix * clearMemoryItem = [[YUMIManeInstanllingProvisionMatrix alloc] init]; + clearMemoryItem.title = YMLocalizedString(@"YUMI_Mine_Setting_Present_17"); + clearMemoryItem.subTitle = @""; + clearMemoryItem.type = YUMIManeInstanllingProvisionGenre_Clear_Memory; + + YUMIManeInstanllingProvisionMatrix *updateItem = [[YUMIManeInstanllingProvisionMatrix alloc] init]; + updateItem.title = YMLocalizedString(@"YUMI_Mine_Setting_Present_18"); + updateItem.subTitle = @""; + updateItem.type = YUMIManeInstanllingProvisionGenre_CheckUpdate; + + YUMIManeInstanllingProvisionMatrix * aboutusItem = [[YUMIManeInstanllingProvisionMatrix alloc] init]; + aboutusItem.title = [NSString stringWithFormat:@"关于%@", AppName]; + aboutusItem.subTitle = @""; + aboutusItem.type = YUMIManeInstanllingProvisionGenre_About_Us; + + NSArray * oneSection = @[mobileProvision]; + NSArray * twoSection = @[surmountProvision,payProvision, notificaItem, blackListItem]; + NSArray * threeSection = @[privacyItem]; + NSArray * fourthSection = @[helperItem, feedbackItem, clearMemoryItem, updateItem, aboutusItem]; + + self.atoloudspeakersouce = @[oneSection, twoSection, threeSection, fourthSection]; + }else{ + YUMIManeInstanllingProvisionMatrix * blackListItem = [[YUMIManeInstanllingProvisionMatrix alloc] init]; + blackListItem.title = YMLocalizedString(@"YUMI_Mine_Setting_Present_20"); + blackListItem.subTitle = @""; + blackListItem.type = YUMIManeInstanllingProvisionGenre_Black_Manager; + + YUMIManeInstanllingProvisionMatrix * mobileProvision = [[YUMIManeInstanllingProvisionMatrix alloc] init]; + mobileProvision.title = YMLocalizedString(@"YUMI_Mine_Setting_Present_21"); + mobileProvision.subTitle = userinfo.isBindPhone ? userinfo.phone : @""; + mobileProvision.type = YUMIManeInstanllingProvisionGenre_Phone; + self.mobileProvision = mobileProvision; + + YUMIManeInstanllingProvisionMatrix * surmountProvision = [[YUMIManeInstanllingProvisionMatrix alloc] init]; + surmountProvision.title = userinfo.isBindPasswd ? @"重置密码" : YMLocalizedString(@"YUMI_Mine_Setting_Present_23"); + surmountProvision.subTitle = @""; + surmountProvision.type = YUMIManeInstanllingProvisionGenre_Login_Password; + self.surmountProvision = surmountProvision; + + YUMIManeInstanllingProvisionMatrix * clearMemoryItem = [[YUMIManeInstanllingProvisionMatrix alloc] init]; + clearMemoryItem.title = YMLocalizedString(@"YUMI_Mine_Setting_Present_24"); + clearMemoryItem.subTitle = @""; + clearMemoryItem.type = YUMIManeInstanllingProvisionGenre_Clear_Memory; + + YUMIManeInstanllingProvisionMatrix * deleteItem = [[YUMIManeInstanllingProvisionMatrix alloc] init]; + deleteItem.title = YMLocalizedString(@"YUMI_Mine_Setting_Present_25"); + deleteItem.subTitle = @""; + deleteItem.type = YUMIManeInstanllingProvisionGenre_Delete_Account; + + NSArray * oneSection = @[blackListItem]; + NSArray * twoSection = @[mobileProvision, surmountProvision]; + NSArray * threeSection = @[clearMemoryItem, deleteItem]; + + self.atoloudspeakersouce = @[oneSection, twoSection, threeSection]; + } + } + + [[self acquireRegard] acquireManeInstanllingTowardsoloudspeakersourceAccomplishment:self.atoloudspeakersouce]; +} + +- (void)getUserInfo { + NSString * uid = [[AccountAbstractStorage instance] acquireCid]; + [Api getUserInfo:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + ConsumerAbstractMatrix * infoMatrix = [ConsumerAbstractMatrix mtowardsrixAboutImpactbasket:data.data]; + [[self acquireRegard] dwellEarnConsumerAbstractAccomplishment:infoMatrix]; + }] uid:uid]; +} + + +- (void)revoctowardsionledUniversalSequenceription { + if([YUMIChamberMiniExecutive shareManager].acquireChamberAbstract) { + NSString *roomUid = [NSString stringWithFormat:@"%ld", [YUMIChamberMiniExecutive shareManager].acquireChamberAbstract.uid]; + + [Api requisitionReportConsumerOptowardssideChamber:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + } uid:[[AccountAbstractStorage instance] acquireCid] roomUid:roomUid ticket:[[AccountAbstractStorage instance] acquireTicket]]; + + NSString * roomId = [NSString stringWithFormat:@"%ld", [YUMIChamberMiniExecutive shareManager].acquireChamberAbstract.roomId]; + [[NIMSDK sharedSDK].chatroomManager exitChatroom:roomId completion:nil]; + [[RealtimackExecutive instance] exitRoom]; + [[YUMIChamberMiniExecutive shareManager] prohibitipositionChamberAbstract:nil]; + [[YUMIChamberMiniExecutive shareManager] prohibitipositionConsumerAbstract:nil]; + [[YUMIChamberMiniExecutive shareManager] prohibitipositionUniversalManual:nil isPlaying:NO]; + [[YUMIChamberMiniExecutive shareManager] replacementProvincialCommunictowardsion]; + } + AccountMatrix * account = [[AccountAbstractStorage instance] accountModel]; + [Api revoctowardsionledUniversalSequenceription:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] revoctowardsionledUniversalSequenceriptionAccomplishment]; + }] access_token:account.access_token]; + [self logout]; +} + +#pragma mark - 版本更新 +-(void)acquireReleaseRefurbish{ + NSString *appVersion = [YYUtility appVersion]; + NSString *os = @"ios"; + NSString *channel = [YYUtility acquireAplictowardsionProvenience]; + [Api requisitionReleaseRefurbish:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + YUMIVersionRefurbishMatrix *model = [YUMIVersionRefurbishMatrix mtowardsrixAboutImpactbasket:data.data]; + [[self acquireRegard] acquireReleaseRefurbish:model]; + } fail:^(NSInteger code, NSString * _Nullable msg) { + [[self acquireRegard] acquireReleaseRefurbishFlunk]; + } errorToast:NO] appVersion:appVersion os:os channel:channel]; +} + +@end diff --git a/YuMi/Modules/YMMine/Presenter/YUMIManeIntersectPwordExternalizer.h b/YuMi/Modules/YMMine/Presenter/YUMIManeIntersectPwordExternalizer.h new file mode 100644 index 00000000..fbb079ad --- /dev/null +++ b/YuMi/Modules/YMMine/Presenter/YUMIManeIntersectPwordExternalizer.h @@ -0,0 +1,21 @@ +// +// YMMinePayPwdPresenter.h +// YUMI +// +// Created by YUMI on 2021/9/18. +// + +#import "MainExternalizer.h" +#import "YUMINNNN.h" +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeIntersectPwordExternalizer : MainExternalizer +- (void)mobileSmsCryptogram:(NSString *)phone type:(GetSmsGenre)type phoneAreaCode:(NSString *)phoneAreaCode; + +- (void)setIntersectCiphercryptogram:(NSString *)password phone:(NSString *)phone veriftCode:(NSString *)veriftCode; + + +- (void)setIntersectCiphercryptogram:(NSString *)password; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/Presenter/YUMIManeIntersectPwordExternalizer.m b/YuMi/Modules/YMMine/Presenter/YUMIManeIntersectPwordExternalizer.m new file mode 100644 index 00000000..d5d185d5 --- /dev/null +++ b/YuMi/Modules/YMMine/Presenter/YUMIManeIntersectPwordExternalizer.m @@ -0,0 +1,34 @@ +// +// YMMinePayPwdPresenter.m +// YUMI +// +// Created by YUMI on 2021/9/18. +// + +#import "YUMIManeIntersectPwordExternalizer.h" +#import "Api+Mine.h" +#import "FBCManePayPwordCeremony.h" +#import "DESEncrypt.h" +#import "YUMIConstant.h" +#import "AccountAbstractStorage.h" + +@implementation YUMIManeIntersectPwordExternalizer + +- (void)mobileSmsCryptogram:(NSString *)phone type:(GetSmsGenre)type phoneAreaCode:(NSString *)phoneAreaCode{ + NSString * typeStr = [NSString stringWithFormat:@"%lu", (unsigned long)type]; + NSString * desPhone = [DESEncrypt encryptUseDES:phone key:KeyWithType(KeyGenre_PasswordEncode)]; + [Api mobileSmsCryptogram:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] mobileSmsCryptogramAccomplishment]; + }] mobile:desPhone type:typeStr phoneAreaCode:phoneAreaCode]; +} + + +- (void)setIntersectCiphercryptogram:(NSString *)password { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NSString * ticket = [AccountAbstractStorage instance].acquireTicket; + NSString * newpasswordDes = [DESEncrypt encryptUseDES:password key:KeyWithType(KeyGenre_PasswordEncode)]; + [Api setIntersectCiphercryptogram:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] setIntersectCiphercryptogramAccomplishment]; + }] newPasswd:newpasswordDes uid:uid ticket:ticket]; +} +@end diff --git a/YuMi/Modules/YMMine/Presenter/YUMIManeModifIntersectPwordExternalizer.h b/YuMi/Modules/YMMine/Presenter/YUMIManeModifIntersectPwordExternalizer.h new file mode 100644 index 00000000..4d624c49 --- /dev/null +++ b/YuMi/Modules/YMMine/Presenter/YUMIManeModifIntersectPwordExternalizer.h @@ -0,0 +1,18 @@ +// +// YMMineModifPayPwdPresenter.h +// YUMI +// +// Created by YUMI on 2021/9/18. +// + +#import "MainExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeModifIntersectPwordExternalizer : MainExternalizer + +- (void)decortowardseIntersectmentCiphercryptogramAboutoldCiphercryptogram:(NSString *)oldPasswd + newPassword:(NSString *)newPasswd; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/Presenter/YUMIManeModifIntersectPwordExternalizer.m b/YuMi/Modules/YMMine/Presenter/YUMIManeModifIntersectPwordExternalizer.m new file mode 100644 index 00000000..967b956f --- /dev/null +++ b/YuMi/Modules/YMMine/Presenter/YUMIManeModifIntersectPwordExternalizer.m @@ -0,0 +1,29 @@ +// +// YMMineModifPayPwdPresenter.m +// YUMI +// +// Created by YUMI on 2021/9/18. +// + +#import "YUMIManeModifIntersectPwordExternalizer.h" +#import "Api+Mine.h" +#import "DESEncrypt.h" +#import "AccountAbstractStorage.h" +#import "YUMIConstant.h" +#import "FBCManeModifPayCeremony.h" + +@implementation YUMIManeModifIntersectPwordExternalizer + + +- (void)decortowardseIntersectmentCiphercryptogramAboutoldCiphercryptogram:(NSString *)oldPasswd + newPassword:(NSString *)newPasswd { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NSString * ticket = [AccountAbstractStorage instance].acquireTicket; + NSString * newpasswordDes = [DESEncrypt encryptUseDES:newPasswd key:KeyWithType(KeyGenre_PasswordEncode)]; + NSString * oldpasswordDes = [DESEncrypt encryptUseDES:oldPasswd key:KeyWithType(KeyGenre_PasswordEncode)]; + [Api modifIntersectCiphercryptogram:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] modifIntersectCiphercryptogramAccomplishment]; + }] newPasswd:newpasswordDes oldPasswd:oldpasswordDes uid:uid ticket:ticket]; +} + +@end diff --git a/YuMi/Modules/YMMine/Presenter/YUMIManeNotificaExternalizer.h b/YuMi/Modules/YMMine/Presenter/YUMIManeNotificaExternalizer.h new file mode 100644 index 00000000..dbb6f836 --- /dev/null +++ b/YuMi/Modules/YMMine/Presenter/YUMIManeNotificaExternalizer.h @@ -0,0 +1,19 @@ +// +// YMMineNotificaPresenter.h +// YUMI +// +// Created by YUMI on 2021/9/17. +// + +#import "BaseMvpExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN +@class YUMIManeNotificationProvisionMatrix; +@interface YUMIManeNotificaExternalizer : BaseMvpExternalizer +- (void)requisitionConsumerAbstractInfformPosition; + +- (void)refurbishConsumerAbstractSystemInfform:(BOOL)notify; +- (void)refurbishBroadCastInfform:(BOOL)notify; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/Presenter/YUMIManeNotificaExternalizer.m b/YuMi/Modules/YMMine/Presenter/YUMIManeNotificaExternalizer.m new file mode 100644 index 00000000..89f5dc66 --- /dev/null +++ b/YuMi/Modules/YMMine/Presenter/YUMIManeNotificaExternalizer.m @@ -0,0 +1,61 @@ +// +// YMMineNotificaPresenter.m +// YUMI +// +// Created by YUMI on 2021/9/17. +// + +#import "YUMIManeNotificaExternalizer.h" +#import "Api+Mine.h" +#import "FBCManeNotificaCeremony.h" +#import "AccountAbstractStorage.h" +#import "YUMIManeNotifyStatus.h" +#import "YUMIManeNotificationProvisionMatrix.h" + +@interface YUMIManeNotificaExternalizer () +@property (nonatomic,strong) YUMIManeNotificationProvisionMatrix *systemMatrix; +@end + +@implementation YUMIManeNotificaExternalizer + +- (id)acquireRegard { + return (id)[super acquireRegard]; +} + + +- (void)requisitionConsumerAbstractInfformPosition { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [Api requisitionConsumerAbstractInfformPosition:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + YUMIManeNotifyStatus * model = [YUMIManeNotifyStatus mtowardsrixAboutImpactbasket:data.data]; + if (self.systemMatrix == nil) { + YUMIManeNotificationProvisionMatrix * systemItem = [[YUMIManeNotificationProvisionMatrix alloc] init]; + systemItem.title = YMLocalizedString(@"YUMI_Mine_Notifica_Presenter_0"); + systemItem.desc = YMLocalizedString(@"YUMI_Mine_Notifica_Presenter_1"); + self.systemMatrix = systemItem; + } + self.systemMatrix.notification = model.sysMsgNotify; + YUMIManeNotificationProvisionMatrix * broadcastItem = [[YUMIManeNotificationProvisionMatrix alloc] init]; + broadcastItem.title = YMLocalizedString(@"YUMI_Mine_Notifica_Presenter_2"); + broadcastItem.desc = YMLocalizedString(@"YUMI_Mine_Notifica_Presenter_3"); + broadcastItem.notification = model.singleBroadcastMsgNotify; + NSArray * array = @[self.systemMatrix, broadcastItem]; + [[self acquireRegard] requisitionConsumerAbstractInfformPositionAccomplishment:array]; + }] uid:uid]; +} + +- (void)refurbishConsumerAbstractSystemInfform:(BOOL)notify { + NSString * notifyStr = [NSString stringWithFormat:@"%d", notify]; + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [Api refurbishConsumerAbstractSystemInfformAbout:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + + }] sysMsgNotify:notifyStr uid:uid]; +} + +- (void)refurbishBroadCastInfform:(BOOL)notify { + NSString * notifyStr = [NSString stringWithFormat:@"%d", notify]; + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [Api refurbishKellegBroadCastInfformAbout:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + + }] msgNotify:notifyStr uid:uid]; +} +@end diff --git a/YuMi/Modules/YMMine/Presenter/YUMIManeReassociationIntersectCiphercodeExternalizer.h b/YuMi/Modules/YMMine/Presenter/YUMIManeReassociationIntersectCiphercodeExternalizer.h new file mode 100644 index 00000000..4f6c7b8f --- /dev/null +++ b/YuMi/Modules/YMMine/Presenter/YUMIManeReassociationIntersectCiphercodeExternalizer.h @@ -0,0 +1,16 @@ +// +// YMMineResetPayPasswordPresenter.h +// YUMI +// +// Created by YUMI on 2021/9/18. +// + +#import "MainExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeReassociationIntersectCiphercodeExternalizer : MainExternalizer +- (void)replacementIntersectCiphercryptogram:(NSString *)password phone:(NSString *)phone veriftCode:(NSString *)veriftCode; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/Presenter/YUMIManeReassociationIntersectCiphercodeExternalizer.m b/YuMi/Modules/YMMine/Presenter/YUMIManeReassociationIntersectCiphercodeExternalizer.m new file mode 100644 index 00000000..831f70e2 --- /dev/null +++ b/YuMi/Modules/YMMine/Presenter/YUMIManeReassociationIntersectCiphercodeExternalizer.m @@ -0,0 +1,26 @@ +// +// YMMineResetPayPasswordPresenter.m +// YUMI +// +// Created by YUMI on 2021/9/18. +// + +#import "YUMIManeReassociationIntersectCiphercodeExternalizer.h" +#import "Api+Mine.h" +#import "AccountAbstractStorage.h" +#import "DESEncrypt.h" +#import "YUMIConstant.h" +#import "FBCManeResetPayCiphercodeCeremony.h" + +@implementation YUMIManeReassociationIntersectCiphercodeExternalizer + +- (void)replacementIntersectCiphercryptogram:(NSString *)password phone:(NSString *)phone veriftCode:(NSString *)veriftCode { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NSString * ticket = [AccountAbstractStorage instance].acquireTicket; + NSString * newpasswordDes = [DESEncrypt encryptUseDES:password key:KeyWithType(KeyGenre_PasswordEncode)]; + [Api setIntersectCiphercryptogram:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] replacementIntersectCiphercryptogramAccomplishment]; + }] newPasswd:newpasswordDes phone:phone code:veriftCode uid:uid ticket:ticket]; +} + +@end diff --git a/YuMi/Modules/YMMine/Presenter/YUMIManeReassociationSurmountPwordExternalizer.h b/YuMi/Modules/YMMine/Presenter/YUMIManeReassociationSurmountPwordExternalizer.h new file mode 100644 index 00000000..a47d75b8 --- /dev/null +++ b/YuMi/Modules/YMMine/Presenter/YUMIManeReassociationSurmountPwordExternalizer.h @@ -0,0 +1,21 @@ +// +// YMMineResetLoginPwdPresenter.h +// YUMI +// +// Created by YUMI on 2022/5/5. +// + +#import "BaseMvpExternalizer.h" +#import "YUMINNNN.h" +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeReassociationSurmountPwordExternalizer : BaseMvpExternalizer + +- (void)mobileSmsCryptogram:(NSString *)phone type:(GetSmsGenre)type phoneAreaCode:(NSString *)phoneAreaCode; + +- (void)replacementSurmountCiphercryptogram:(NSString *)phone smsCode:(NSString *)smsCode newPwd:(NSString *)newPwd; + +- (void)revoctowardsionledUniversalSequenceription; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/Presenter/YUMIManeReassociationSurmountPwordExternalizer.m b/YuMi/Modules/YMMine/Presenter/YUMIManeReassociationSurmountPwordExternalizer.m new file mode 100644 index 00000000..ce1a95f9 --- /dev/null +++ b/YuMi/Modules/YMMine/Presenter/YUMIManeReassociationSurmountPwordExternalizer.m @@ -0,0 +1,62 @@ +// +// YMMineResetLoginPwdPresenter.m +// YUMI +// +// Created by YUMI on 2022/5/5. +// + +#import "YUMIManeReassociationSurmountPwordExternalizer.h" +#import +#import "Api+Mine.h" +#import "Api+Room.h" +#import "DESEncrypt.h" +#import "YUMIConstant.h" +#import "FBCManeResetSurmountPwordCeremony.h" +#import "YUMIChamberMiniExecutive.h" +#import "AccountAbstractStorage.h" +#import "RealtimackExecutive.h" +#import "ChamberAbstractMatrix.h" +#import "AccountMatrix.h" +@implementation YUMIManeReassociationSurmountPwordExternalizer + +- (void)mobileSmsCryptogram:(NSString *)phone type:(GetSmsGenre)type phoneAreaCode:(NSString *)phoneAreaCode{ + NSString * typeStr = [NSString stringWithFormat:@"%lu", (unsigned long)type]; + NSString * desPhone = [DESEncrypt encryptUseDES:phone key:KeyWithType(KeyGenre_PasswordEncode)]; + [Api mobileSmsCryptogram:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] mobileSmsCryptogramAccomplishment]; + } fail:^(NSInteger code, NSString * _Nullable msg) { + + }] mobile:desPhone type:typeStr phoneAreaCode:phoneAreaCode]; +} + +- (void)replacementSurmountCiphercryptogram:(NSString *)phone smsCode:(NSString *)smsCode newPwd:(NSString *)newPwd { + NSString * desNewPwd = [DESEncrypt encryptUseDES:newPwd key:KeyWithType(KeyGenre_PasswordEncode)]; + NSString * desPhone = [DESEncrypt encryptUseDES:phone key:KeyWithType(KeyGenre_PasswordEncode)]; + [Api replacementLoingCiphercryptogram:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] replacementSurmountCiphercryptogramAccomplishment]; + }] phone:desPhone newPwd:desNewPwd smsCode:smsCode]; +} + +- (void)revoctowardsionledUniversalSequenceription { + if([YUMIChamberMiniExecutive shareManager].acquireChamberAbstract) { + NSString *roomUid = [NSString stringWithFormat:@"%ld", [YUMIChamberMiniExecutive shareManager].acquireChamberAbstract.uid]; + + [Api requisitionReportConsumerOptowardssideChamber:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + } uid:[[AccountAbstractStorage instance] acquireCid] roomUid:roomUid ticket:[[AccountAbstractStorage instance] acquireTicket]]; + + NSString * roomId = [NSString stringWithFormat:@"%ld", [YUMIChamberMiniExecutive shareManager].acquireChamberAbstract.roomId]; + [[NIMSDK sharedSDK].chatroomManager exitChatroom:roomId completion:nil]; + [[RealtimackExecutive instance] exitRoom]; + [[YUMIChamberMiniExecutive shareManager] prohibitipositionChamberAbstract:nil]; + [[YUMIChamberMiniExecutive shareManager] prohibitipositionConsumerAbstract:nil]; + [[YUMIChamberMiniExecutive shareManager] prohibitipositionUniversalManual:nil isPlaying:NO]; + [[YUMIChamberMiniExecutive shareManager] replacementProvincialCommunictowardsion]; + } + AccountMatrix * account = [[AccountAbstractStorage instance] accountModel]; + [Api revoctowardsionledUniversalSequenceription:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] revoctowardsionledUniversalSequenceriptionAccomplishment]; + }] access_token:account.access_token]; + [self logout]; +} + +@end diff --git a/YuMi/Modules/YMMine/Presenter/YUMIManeReindictExternalizer.h b/YuMi/Modules/YMMine/Presenter/YUMIManeReindictExternalizer.h new file mode 100644 index 00000000..da48639b --- /dev/null +++ b/YuMi/Modules/YMMine/Presenter/YUMIManeReindictExternalizer.h @@ -0,0 +1,24 @@ +// +// YMMineRechargePresenter.h +// YUMI +// +// Created by YUMI on 2021/9/24. +// + +#import "BaseMvpExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeReindictExternalizer : BaseMvpExternalizer + +- (void)acquireConsumerPocketbookAbstract; +- (void)requisitionReindictSttowardsementAboutNarrow:(NSString *)channel; + +- (void)requisitionPCQReindictTellingAboutInstructionProdId:(NSString *)chargeProdId; + +- (void)examineReceiptAboutTowardsoloudspeaker:(NSString *)receipt indentId:(NSString *)indentId transcationId:(NSString *)transcationId; + +- (void)examineSplconcludeidIdents:(NSArray *)transcations; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/Presenter/YUMIManeReindictExternalizer.m b/YuMi/Modules/YMMine/Presenter/YUMIManeReindictExternalizer.m new file mode 100644 index 00000000..369a0b3f --- /dev/null +++ b/YuMi/Modules/YMMine/Presenter/YUMIManeReindictExternalizer.m @@ -0,0 +1,67 @@ +// +// YMMineRechargePresenter.m +// YUMI +// +// Created by YUMI on 2021/9/24. +// + +#import "YUMIManeReindictExternalizer.h" +#import "Api+Mine.h" +#import "AccountAbstractStorage.h" +#import "YYUtility.h" +#import "NSObject+MJExtension.h" +#import "FBCManeReindictCeremony.h" +#import "ReindictStatementMatrix.h" +#import "RamparatetAbstractMatrix.h" + +@implementation YUMIManeReindictExternalizer + + +- (void)acquireConsumerPocketbookAbstract { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NSString * ticket = [AccountAbstractStorage instance].acquireTicket; + [Api acquireConsumerPocketbookAbstract:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + RamparatetAbstractMatrix * model = [RamparatetAbstractMatrix mtowardsrixAboutImpactbasket:data.data]; + [[self acquireRegard] acquireConsumerPocketbookAbstract:model]; + }] uid:uid ticket:ticket]; +} + + +- (void)requisitionReindictSttowardsementAboutNarrow:(NSString *)channel { + [Api acquireReindictSttowardsement:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + NSArray * array = [ReindictStatementMatrix mtowardsrixsAboutGarment:data.data]; + [[self acquireRegard] requisitionReindictSttowardsementSucccess:array]; + }] channelType:channel]; +} + +- (void)requisitionPCQReindictTellingAboutInstructionProdId:(NSString *)chargeProdId { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NSString * ticket = [AccountAbstractStorage instance].acquireTicket; + NSString * deviceInfo = [YYUtility deviceID]; + NSString * clientIp= [YYUtility ipAccelerateress]; + [Api requisitionPCQReindict:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + NSString *indentId = (NSString *)data.data[@"recordId"]; + [[self acquireRegard] requisitionPCQReindictTellingAccomplishment:indentId chargeProdId:chargeProdId]; + } fail:^(NSInteger code, NSString * _Nullable msg) { + [[self acquireRegard] requisitionPCQReindictTellingFlunk]; + }] chargeProdId:chargeProdId uid:uid ticket:ticket deviceInfo:deviceInfo clientIp:clientIp]; +} + + +- (void)examineReceiptAboutTowardsoloudspeaker:(NSString *)receipt indentId:(NSString *)indentId transcationId:(NSString *)transcationId { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NSString * ticket = [AccountAbstractStorage instance].acquireTicket; + [Api checkReceipt:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] examineReceiptAccomplishment:transcationId]; + } EvidenceChambering:YES] receipt:receipt chooseEnv:@"true" chargeRecordId:indentId transcationId:transcationId uid:uid ticket:ticket]; +} + + +- (void)examineSplconcludeidIdents:(NSArray *)transcations { + NSString * transcationIdStr = [transcations toJSONBWSttr]; + [Api requisitionCheckSplconcludeidIdents:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] examineSplconcludeidIdentsAccomplishment]; + }] transcationIdStr:transcationIdStr]; +} + +@end diff --git a/YuMi/Modules/YMMine/Presenter/YUMIManeSurmountCiphercodeExternalizer.h b/YuMi/Modules/YMMine/Presenter/YUMIManeSurmountCiphercodeExternalizer.h new file mode 100644 index 00000000..9c7f3e07 --- /dev/null +++ b/YuMi/Modules/YMMine/Presenter/YUMIManeSurmountCiphercodeExternalizer.h @@ -0,0 +1,18 @@ +// +// YMMineLoginPasswordPresenter.h +// YUMI +// +// Created by YUMI on 2022/4/25. +// + +#import "BaseMvpExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeSurmountCiphercodeExternalizer : BaseMvpExternalizer +- (void)setSurmountCiphercryptogram:(NSString *)phone newPwd:(NSString *)newPwd; + +- (void)decortowardseSurmountCiphercryptogram:(NSString *)phone newPwd:(NSString *)newPwd pwd:(NSString *)pwd; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/Presenter/YUMIManeSurmountCiphercodeExternalizer.m b/YuMi/Modules/YMMine/Presenter/YUMIManeSurmountCiphercodeExternalizer.m new file mode 100644 index 00000000..de052032 --- /dev/null +++ b/YuMi/Modules/YMMine/Presenter/YUMIManeSurmountCiphercodeExternalizer.m @@ -0,0 +1,36 @@ +// +// YMMineLoginPasswordPresenter.m +// YUMI +// +// Created by YUMI on 2022/4/25. +// + +#import "YUMIManeSurmountCiphercodeExternalizer.h" +#import "Api+Mine.h" +#import "DESEncrypt.h" +#import "YUMIConstant.h" +#import "FBCManeSurmountCiphercodeCeremony.h" + +@implementation YUMIManeSurmountCiphercodeExternalizer + + +- (void)setSurmountCiphercryptogram:(NSString *)phone newPwd:(NSString *)newPwd { + NSString * desNewPwd = [DESEncrypt encryptUseDES:newPwd key:KeyWithType(KeyGenre_PasswordEncode)]; + NSString * desPhone = [DESEncrypt encryptUseDES:phone key:KeyWithType(KeyGenre_PasswordEncode)]; + [Api setLoingCiphercryptogram:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] setSurmountCiphercryptogramAccomplishment]; + } EvidenceChambering:YES] phone:desPhone newPwd:desNewPwd]; +} + + +- (void)decortowardseSurmountCiphercryptogram:(NSString *)phone newPwd:(NSString *)newPwd pwd:(NSString *)pwd{ + NSString * desNewPwd = [DESEncrypt encryptUseDES:newPwd key:KeyWithType(KeyGenre_PasswordEncode)]; + NSString * desPhone = [DESEncrypt encryptUseDES:phone key:KeyWithType(KeyGenre_PasswordEncode)]; + NSString * desPwd = [DESEncrypt encryptUseDES:pwd key:KeyWithType(KeyGenre_PasswordEncode)]; + [Api decortowardseLoingCiphercryptogram:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] decortowardseSurmountCiphercryptogramAccomplishment]; + }] phone:desPhone newPwd:desNewPwd pwd:desPwd]; +} + + +@end diff --git a/YuMi/Modules/YMMine/Presenter/YUMIManeTerminalImpressionExternalizer.h b/YuMi/Modules/YMMine/Presenter/YUMIManeTerminalImpressionExternalizer.h new file mode 100644 index 00000000..ad52d824 --- /dev/null +++ b/YuMi/Modules/YMMine/Presenter/YUMIManeTerminalImpressionExternalizer.h @@ -0,0 +1,22 @@ +// +// YMMineFootPrintPresenter.h +// YUMI +// +// Created by YUMI on 2022/7/26. +// + +#import "BaseMvpExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeTerminalImpressionExternalizer : BaseMvpExternalizer + +- (void)acquireTerminalImpressionSttowardsementAboutPeriod:(int)page pageSize:(int)pageSize state:(int)state; + +- (void)sanitaryTerminalImpression:(NSString *)roomUid; + +- (void)assembleChamberAboutChamberCid:(NSString *)roomUid; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/Presenter/YUMIManeTerminalImpressionExternalizer.m b/YuMi/Modules/YMMine/Presenter/YUMIManeTerminalImpressionExternalizer.m new file mode 100644 index 00000000..62d1513a --- /dev/null +++ b/YuMi/Modules/YMMine/Presenter/YUMIManeTerminalImpressionExternalizer.m @@ -0,0 +1,42 @@ +// +// YMMineFootPrintPresenter.m +// YUMI +// +// Created by YUMI on 2022/7/26. +// + +#import "YUMIManeTerminalImpressionExternalizer.h" +#import "Api+Mine.h" +#import "Api+Room.h" +#import "FBCManeFootPrintCeremony.h" +#import "AccountAbstractStorage.h" +#import "YUMIManeTerminalImpressionMatrix.h" + +@implementation YUMIManeTerminalImpressionExternalizer + +- (void)acquireTerminalImpressionSttowardsementAboutPeriod:(int)page pageSize:(int)pageSize state:(int)state { + NSString *uid = [AccountAbstractStorage instance].acquireCid; + [Api requisitionTerminalImpression:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + NSArray *array = [YUMIManeTerminalImpressionMatrix mtowardsrixsAboutGarment:data.data]; + [[self acquireRegard] acquireTerminalImpressionSttowardsementAccomplishment:array state:state]; + } fail:^(NSInteger code, NSString * _Nullable msg) { + [[self acquireRegard] acquireTerminalImpressionSttowardsementFlunk:state]; + }] uid:uid page:[NSString stringWithFormat:@"%d", page] pageSize:[NSString stringWithFormat:@"%d", pageSize]]; +} + +- (void)sanitaryTerminalImpression:(NSString *)roomUid { + NSString *uid = [AccountAbstractStorage instance].acquireCid; + [Api requisitionCleanTerminalImpression:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] sanitaryTerminalImpressionAccomplishment]; + }] uid:uid roomUid:roomUid.length ? roomUid : NULL]; +} + +- (void)assembleChamberAboutChamberCid:(NSString *)roomUid { + NSString * type = @"1"; + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [Api assembleChamber:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] assembleChamberAccomplishment]; + }] roomUid:roomUid uid:uid type:type roomUids:NULL]; +} + +@end diff --git a/YuMi/Modules/YMMine/Presenter/YUMIManeVacationerExternalizer.h b/YuMi/Modules/YMMine/Presenter/YUMIManeVacationerExternalizer.h new file mode 100644 index 00000000..fbb187b4 --- /dev/null +++ b/YuMi/Modules/YMMine/Presenter/YUMIManeVacationerExternalizer.h @@ -0,0 +1,18 @@ +// +// YMMineVisitorPresenter.h +// YUMI +// +// Created by YUMI on 2022/1/26. +// + +#import "BaseMvpExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeVacationerExternalizer : BaseMvpExternalizer + +- (void)acquireVactowardsionerSttowardsement:(int)page pageSize:(int)pageSize state:(int)state; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/Presenter/YUMIManeVacationerExternalizer.m b/YuMi/Modules/YMMine/Presenter/YUMIManeVacationerExternalizer.m new file mode 100644 index 00000000..27b50b43 --- /dev/null +++ b/YuMi/Modules/YMMine/Presenter/YUMIManeVacationerExternalizer.m @@ -0,0 +1,26 @@ +// +// YMMineVisitorPresenter.m +// YUMI +// +// Created by YUMI on 2022/1/26. +// + +#import "YUMIManeVacationerExternalizer.h" +#import "Api+Mine.h" +#import "FBCManeVisitorCeremony.h" +#import "AccountAbstractStorage.h" +#import "YUMIManeVacationerProvisionMatrix.h" + +@implementation YUMIManeVacationerExternalizer + +- (void)acquireVactowardsionerSttowardsement:(int)page pageSize:(int)pageSize state:(int)state { + [Api acquireVactowardsionerSttowardsementImplementtowardsion:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + NSArray *array = [YUMIManeVacationerProvisionMatrix mtowardsrixsAboutGarment:data.data]; + [[self acquireRegard] dwellEarnVactowardsionerSttowardsementAccomplishment:array state:state]; + } fail:^(NSInteger code, NSString * _Nullable msg) { + [[self acquireRegard] acquireVactowardsionerSttowardsementFlunk:state]; + }] pageNum:[NSString stringWithFormat:@"%d", page] pageSize:[NSString stringWithFormat:@"%d", pageSize]]; + +} + +@end diff --git a/YuMi/Modules/YMMine/Presenter/YUMIManeValidationIdentityExternalizer.h b/YuMi/Modules/YMMine/Presenter/YUMIManeValidationIdentityExternalizer.h new file mode 100644 index 00000000..15559d38 --- /dev/null +++ b/YuMi/Modules/YMMine/Presenter/YUMIManeValidationIdentityExternalizer.h @@ -0,0 +1,20 @@ +// +// YMMineVerifIdentityPresenter.h +// YUMI +// +// Created by YUMI on 2021/9/18. +// + +#import "MainExternalizer.h" +#import "YUMINNNN.h" +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeValidationIdentityExternalizer : MainExternalizer + +- (void)mobileSmsCryptogram:(NSString *)phone type:(GetSmsGenre)type phoneAreaCode:(NSString *)phoneAreaCode; + + +- (void)examineAplictowardsionartowardsusCryptogramAboutAplictowardsionartowardsus:(NSString *)moblieNum code:(NSString *)code; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/Presenter/YUMIManeValidationIdentityExternalizer.m b/YuMi/Modules/YMMine/Presenter/YUMIManeValidationIdentityExternalizer.m new file mode 100644 index 00000000..3f8e857a --- /dev/null +++ b/YuMi/Modules/YMMine/Presenter/YUMIManeValidationIdentityExternalizer.m @@ -0,0 +1,38 @@ +// +// YMMineVerifIdentityPresenter.m +// YUMI +// +// Created by YUMI on 2021/9/18. +// + +#import "YUMIManeValidationIdentityExternalizer.h" +#import "Api.h" +#import "FBCManeVerifIdentityCeremony.h" +#import "AccountAbstractStorage.h" +#import "DESEncrypt.h" +#import "YUMIConstant.h" + + +@implementation YUMIManeValidationIdentityExternalizer + +- (void)mobileSmsCryptogram:(NSString *)phone type:(GetSmsGenre)type phoneAreaCode:(NSString *)phoneAreaCode{ + NSString * typeStr = [NSString stringWithFormat:@"%lu", (unsigned long)type]; + NSString * desPhone = [DESEncrypt encryptUseDES:phone key:KeyWithType(KeyGenre_PasswordEncode)]; + [Api mobileSmsCryptogram:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] mobileSmsCryptogramAccomplishment]; + } fail:^(NSInteger code, NSString * _Nullable msg) { + + }] mobile:desPhone type:typeStr phoneAreaCode:phoneAreaCode]; +} + + +- (void)examineAplictowardsionartowardsusCryptogramAboutAplictowardsionartowardsus:(NSString *)moblieNum code:(NSString *)code { + NSString * uid = [[AccountAbstractStorage instance] acquireCid]; + NSString * ticket = [[AccountAbstractStorage instance] acquireTicket]; + NSString * desPhone = [DESEncrypt encryptUseDES:moblieNum key:KeyWithType(KeyGenre_PasswordEncode)]; + [Api examineAplictowardsionartowardsusCryptogram:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] examineAplictowardsionartowardsusCryptogramAboutAplictowardsionartowardsusAccomplishment]; + }] mobile:desPhone code:code uid:uid ticket:ticket]; +} + +@end diff --git a/YuMi/Modules/YMMine/Protocol/FBCManeBlackStatementCeremony.h b/YuMi/Modules/YMMine/Protocol/FBCManeBlackStatementCeremony.h new file mode 100644 index 00000000..52992fe7 --- /dev/null +++ b/YuMi/Modules/YMMine/Protocol/FBCManeBlackStatementCeremony.h @@ -0,0 +1,18 @@ +// +// YMMineBlackListProtocol.h +// YUMI +// +// Created by YUMI on 2022/5/13. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol FBCManeBlackStatementCeremony + +- (void)acquireConsumerSttowardsementAbstractAccomplishment:(NSArray *)array; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/Protocol/FBCManeCeremony.h b/YuMi/Modules/YMMine/Protocol/FBCManeCeremony.h new file mode 100644 index 00000000..dbecc670 --- /dev/null +++ b/YuMi/Modules/YMMine/Protocol/FBCManeCeremony.h @@ -0,0 +1,28 @@ +// +// YMMineProtocol.h +// YUMI +// +// Created by YUMI on 2021/9/16. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class YUMIManeProvisionMatrix, ConsumerAbstractMatrix, NobleCenterModel, CollectiveSpecificAbstractMatrix, YUMIManeFuntionProvisionMatrix, ResidenceOriflammeAbstractMatrix, RamparatetAbstractMatrix; +@protocol FBCManeCeremony + +- (void)dwellEarnConsumerAbstractAccomplishment:(ConsumerAbstractMatrix *)userInfo; +- (void)acquireConsumerPocketbookAbstract:(RamparatetAbstractMatrix *)balanceInfo WithGroup:(dispatch_group_t) group; +- (void)acquireConsumerPocketbookAbstractFlunkAboutGroup:(dispatch_group_t) group; +- (void)acquireMagnificentConcentrtowardseAbstractAccomplishment:(NobleCenterModel *)model WithGroup:(dispatch_group_t) group; +- (void)acquireMagnificentConcentrtowardseAbstractFlunkAboutGroup:(dispatch_group_t) group; +- (void)dwellEarnCollectiveSpecificAbstractAccomplishment:(CollectiveSpecificAbstractMatrix *)collectiveAbstract WithGroup:(dispatch_group_t) group; +- (void)dwellEarnCollectiveSpecificAbstractflunkAboutGroup:(dispatch_group_t)group; +- (void)dwellEarnManeFuntionProvisionAccomplishment:(NSArray *)items WithGroup:(dispatch_group_t) group; +- (void)dwellEarnManeFuntionProvisionFlunkAboutGroup:(dispatch_group_t) group; +- (void)dwellEarnsubjectiveOriflammeSttowardsementAccomplishment:(NSArray *)items WithGroup:(dispatch_group_t) group; +- (void)dwellEarnsubjectiveOriflammeSttowardsementFlunkAboutGroup:(dispatch_group_t) group; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/Protocol/FBCManeCollectChamberStatementCeremony.h b/YuMi/Modules/YMMine/Protocol/FBCManeCollectChamberStatementCeremony.h new file mode 100644 index 00000000..44ab8eb6 --- /dev/null +++ b/YuMi/Modules/YMMine/Protocol/FBCManeCollectChamberStatementCeremony.h @@ -0,0 +1,18 @@ +// +// YMMineCollectRoomListProtocol.h +// YUMI +// +// Created by YUMI on 2022/7/27. +// + +#import + +@protocol FBCManeCollectChamberStatementCeremony + +- (void)dwellEarnAssembleChamberSttowardsementAccomplishment:(NSArray *)array state:(int)state; + +- (void)acquireAssembleChamberSttowardsementFlunk:(int)state; + +- (void)representtowardsionAssembleChamberAccomplishment; + +@end diff --git a/YuMi/Modules/YMMine/Protocol/FBCManeConsiderationCeremony.h b/YuMi/Modules/YMMine/Protocol/FBCManeConsiderationCeremony.h new file mode 100644 index 00000000..818cc61a --- /dev/null +++ b/YuMi/Modules/YMMine/Protocol/FBCManeConsiderationCeremony.h @@ -0,0 +1,17 @@ +// +// YMMineAttentionProtocol.h +// YUMI +// +// Created by YUMI on 2021/12/21. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol FBCManeConsiderationCeremony +- (void)acquireConsumerConsidertowardsionSttowardsementAccomplishment:(NSArray *)array state:(int)state; +- (void)acquireConsumerConsidertowardsionSttowardsementFlunk:(int)state; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/Protocol/FBCManeConsumerAbstractAlbumCeremony.h b/YuMi/Modules/YMMine/Protocol/FBCManeConsumerAbstractAlbumCeremony.h new file mode 100644 index 00000000..da6eea4e --- /dev/null +++ b/YuMi/Modules/YMMine/Protocol/FBCManeConsumerAbstractAlbumCeremony.h @@ -0,0 +1,19 @@ +// +// YMMineUserInfoAlbumProtocol.h +// YUMI +// +// Created by YUMI on 2021/9/24. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class ConsumerAbstractMatrix; +@protocol FBCManeConsumerAbstractAlbumCeremony +- (void)dwellEarnConsumerAbstractAccomplishment:(ConsumerAbstractMatrix *)userInfo; +- (void)upburdenConsumerBrochureAccomplishment; +- (void)upburdenBrochureIndictowardseToTertiusAccomplishment:(NSString *)url; +- (void)representtowardsionConsumerBrochureAccomplishment; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/Protocol/FBCManeConsumerAbstractCeremony.h b/YuMi/Modules/YMMine/Protocol/FBCManeConsumerAbstractCeremony.h new file mode 100644 index 00000000..c1b64612 --- /dev/null +++ b/YuMi/Modules/YMMine/Protocol/FBCManeConsumerAbstractCeremony.h @@ -0,0 +1,19 @@ +// +// YMMineUserInfoProtocol.h +// YUMI +// +// Created by YUMI on 2021/9/23. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class ConsumerAbstractMatrix; +@protocol FBCManeConsumerAbstractCeremony +- (void)dwellEarnConsumerAbstractAccomplishment:(ConsumerAbstractMatrix *)userInfo; +- (void)onacquireSpecificAbstractAccomplishment:(ConsumerAbstractMatrix *)userInfo; +- (void)considertowardsionConsumerAccomplishment:(BOOL)status; +- (void)acquireConsidertowardsionDeclareAccomplishment:(BOOL)status; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/Protocol/FBCManeConsumerAbstractEditCeremony.h b/YuMi/Modules/YMMine/Protocol/FBCManeConsumerAbstractEditCeremony.h new file mode 100644 index 00000000..a2ae5cb7 --- /dev/null +++ b/YuMi/Modules/YMMine/Protocol/FBCManeConsumerAbstractEditCeremony.h @@ -0,0 +1,19 @@ +// +// YMMineUserInfoEditProtocol.h +// YUMI +// +// Created by YUMI on 2021/9/23. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class ConsumerAbstractMatrix; +@protocol FBCManeConsumerAbstractEditCeremony +- (void)acquireConsumerAbstractCompileTowardsoloudspeakerProvenienceAccomplishment:(NSArray *)array; +- (void)accomplishConsumerAbstractAccomplishment:(ConsumerAbstractMatrix *)userInfo; +- (void)dwellEarnConsumerAbstractAccomplishment:(ConsumerAbstractMatrix *)userInfo; +- (void)upburdenIndictowardseAccomplishment:(NSString *)url; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/Protocol/FBCManeConsumerAbstractPresentWallCeremony.h b/YuMi/Modules/YMMine/Protocol/FBCManeConsumerAbstractPresentWallCeremony.h new file mode 100644 index 00000000..fed8e67b --- /dev/null +++ b/YuMi/Modules/YMMine/Protocol/FBCManeConsumerAbstractPresentWallCeremony.h @@ -0,0 +1,18 @@ +// +// YMMineUserInfoGiftWallProtocol.h +// YUMI +// +// Created by YUMI on 2022/4/15. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol FBCManeConsumerAbstractPresentWallCeremony + +- (void)acquireConsumerPresentRampartowardsAccomplishment:(NSArray *)giftList; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/Protocol/FBCManeConsumerAtomicCeremony.h b/YuMi/Modules/YMMine/Protocol/FBCManeConsumerAtomicCeremony.h new file mode 100644 index 00000000..806a16ed --- /dev/null +++ b/YuMi/Modules/YMMine/Protocol/FBCManeConsumerAtomicCeremony.h @@ -0,0 +1,17 @@ +// +// YMMineUserDataProtolcol.h +// YUMI +// +// Created by YUMI on 2022/4/14. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class CollectiveSpecificAbstractMatrix; +@protocol FBCManeConsumerAtomicCeremony +- (void)acquireCollectiveSpecificAbstractAccomplishment:(CollectiveSpecificAbstractMatrix *)collectiveSpecificAbstract universalConsumerCollectiveAbstract:(CollectiveSpecificAbstractMatrix *)universalConsumerCollectiveAbstract; +- (void)componentAplictowardsionlyCorridorAccomplishment; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/Protocol/FBCManeFanaticsCeremony.h b/YuMi/Modules/YMMine/Protocol/FBCManeFanaticsCeremony.h new file mode 100644 index 00000000..52a22877 --- /dev/null +++ b/YuMi/Modules/YMMine/Protocol/FBCManeFanaticsCeremony.h @@ -0,0 +1,19 @@ +// +// YMMineFansProtocol.h +// YUMI +// +// Created by YUMI on 2021/12/21. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol FBCManeFanaticsCeremony + +- (void)acquireConsumerFantowardsicsSttowardsementAccomplishment:(NSArray *)array state:(int)state; +- (void)acquireConsumerFantowardsicsSttowardsementFlunk:(int)state; +- (void)considertowardsionFantowardsicsAccomplishment; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/Protocol/FBCManeFeedbackCeremony.h b/YuMi/Modules/YMMine/Protocol/FBCManeFeedbackCeremony.h new file mode 100644 index 00000000..c856b0a6 --- /dev/null +++ b/YuMi/Modules/YMMine/Protocol/FBCManeFeedbackCeremony.h @@ -0,0 +1,18 @@ +// +// YMMineFeedbackProtocol.h +// YUMI +// +// Created by YUMI on 2021/9/17. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol FBCManeFeedbackCeremony + +- (void)preserveFeedencourageAccomplishment; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/Protocol/FBCManeFootPrintCeremony.h b/YuMi/Modules/YMMine/Protocol/FBCManeFootPrintCeremony.h new file mode 100644 index 00000000..485360b2 --- /dev/null +++ b/YuMi/Modules/YMMine/Protocol/FBCManeFootPrintCeremony.h @@ -0,0 +1,24 @@ +// +// YMMineFootPrintProtocol.h +// YUMI +// +// Created by YUMI on 2022/7/26. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol FBCManeFootPrintCeremony + +- (void)acquireTerminalImpressionSttowardsementAccomplishment:(NSArray *)array state:(int)state; + +- (void)acquireTerminalImpressionSttowardsementFlunk:(int)state; + +- (void)sanitaryTerminalImpressionAccomplishment; + +- (void)assembleChamberAccomplishment; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/Protocol/FBCManeFriendCeremony.h b/YuMi/Modules/YMMine/Protocol/FBCManeFriendCeremony.h new file mode 100644 index 00000000..eb9963bc --- /dev/null +++ b/YuMi/Modules/YMMine/Protocol/FBCManeFriendCeremony.h @@ -0,0 +1,16 @@ +// +// YMMineFriendProtocol.h +// YUMI +// +// Created by YUMI on 2022/5/29. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol FBCManeFriendCeremony +- (void)acquireConsumerSttowardsementAbstractAccomplishment:(NSArray *)list; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/Protocol/FBCManeInstanllingCeremony.h b/YuMi/Modules/YMMine/Protocol/FBCManeInstanllingCeremony.h new file mode 100644 index 00000000..1c97b2fb --- /dev/null +++ b/YuMi/Modules/YMMine/Protocol/FBCManeInstanllingCeremony.h @@ -0,0 +1,23 @@ +// +// YMMineSettingProtocol.h +// YUMI +// +// Created by YUMI on 2021/9/17. +// + +#import +NS_ASSUME_NONNULL_BEGIN + +@class YUMIVersionRefurbishMatrix; +@protocol FBCManeInstanllingCeremony + +- (void)acquireManeInstanllingTowardsoloudspeakersourceAccomplishment:(NSArray *)array; +- (void)dwellEarnConsumerAbstractAccomplishment:(ConsumerAbstractMatrix *)userInfo; +- (void)revoctowardsionledUniversalSequenceriptionAccomplishment; + +- (void)acquireReleaseRefurbishFlunk; +-(void)acquireReleaseRefurbish:(YUMIVersionRefurbishMatrix *)model; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/Protocol/FBCManeKellegFanaticsTeamCeremony.h b/YuMi/Modules/YMMine/Protocol/FBCManeKellegFanaticsTeamCeremony.h new file mode 100644 index 00000000..91a852b8 --- /dev/null +++ b/YuMi/Modules/YMMine/Protocol/FBCManeKellegFanaticsTeamCeremony.h @@ -0,0 +1,20 @@ +// +// YMMineAnchorFansTeamProtocol.h +// YUMI +// +// Created by YUMI on 2022/4/8. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol FBCManeKellegFanaticsTeamCeremony + +- (void)acquireKellegFantowardsicsSquadSttowardsementAccomplishment:(NSArray *)array state:(int)state; + +- (void)acquireKellegFantowardsicsSquadSttowardsementFlunk:(int)state; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/Protocol/FBCManeModifPayCeremony.h b/YuMi/Modules/YMMine/Protocol/FBCManeModifPayCeremony.h new file mode 100644 index 00000000..f0943934 --- /dev/null +++ b/YuMi/Modules/YMMine/Protocol/FBCManeModifPayCeremony.h @@ -0,0 +1,18 @@ +// +// YMMineModifPayProtocol.h +// YUMI +// +// Created by YUMI on 2021/9/18. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol FBCManeModifPayCeremony + +- (void)modifIntersectCiphercryptogramAccomplishment; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/Protocol/FBCManeNotificaCeremony.h b/YuMi/Modules/YMMine/Protocol/FBCManeNotificaCeremony.h new file mode 100644 index 00000000..aa070393 --- /dev/null +++ b/YuMi/Modules/YMMine/Protocol/FBCManeNotificaCeremony.h @@ -0,0 +1,16 @@ +// +// YMMineNotificaProtocol.h +// YUMI +// +// Created by YUMI on 2021/9/17. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class YUMIManeNotifyStatus, YUMIManeNotificationProvisionMatrix; +@protocol FBCManeNotificaCeremony +- (void)requisitionConsumerAbstractInfformPositionAccomplishment:(NSArray *)array; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/Protocol/FBCManePayPwordCeremony.h b/YuMi/Modules/YMMine/Protocol/FBCManePayPwordCeremony.h new file mode 100644 index 00000000..3ff1e605 --- /dev/null +++ b/YuMi/Modules/YMMine/Protocol/FBCManePayPwordCeremony.h @@ -0,0 +1,17 @@ +// +// YMMInePayPwdProtocol.h +// YUMI +// +// Created by YUMI on 2021/9/18. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol FBCManePayPwordCeremony +- (void)mobileSmsCryptogramAccomplishment; +- (void)setIntersectCiphercryptogramAccomplishment; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/Protocol/FBCManeReindictCeremony.h b/YuMi/Modules/YMMine/Protocol/FBCManeReindictCeremony.h new file mode 100644 index 00000000..5f7cef68 --- /dev/null +++ b/YuMi/Modules/YMMine/Protocol/FBCManeReindictCeremony.h @@ -0,0 +1,21 @@ +// +// YMMineRechargeProtocol.h +// YUMI +// +// Created by YUMI on 2021/9/24. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class RamparatetAbstractMatrix; +@protocol FBCManeReindictCeremony +- (void)acquireConsumerPocketbookAbstract:(RamparatetAbstractMatrix *)balanceInfo; +- (void)requisitionReindictSttowardsementSucccess:(NSArray *)list; +- (void)requisitionPCQReindictTellingAccomplishment:(NSString *)indentId chargeProdId:(NSString *)chargeProdId; +- (void)requisitionPCQReindictTellingFlunk; +- (void)examineReceiptAccomplishment:(NSString *)transcationId; +- (void)examineSplconcludeidIdentsAccomplishment; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/Protocol/FBCManeResetPayCiphercodeCeremony.h b/YuMi/Modules/YMMine/Protocol/FBCManeResetPayCiphercodeCeremony.h new file mode 100644 index 00000000..1ecaeeb5 --- /dev/null +++ b/YuMi/Modules/YMMine/Protocol/FBCManeResetPayCiphercodeCeremony.h @@ -0,0 +1,17 @@ +// +// YMMineResetPayPasswordProtocol.h +// YUMI +// +// Created by YUMI on 2021/9/18. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol FBCManeResetPayCiphercodeCeremony +- (void)replacementIntersectCiphercryptogramAccomplishment; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/Protocol/FBCManeResetSurmountPwordCeremony.h b/YuMi/Modules/YMMine/Protocol/FBCManeResetSurmountPwordCeremony.h new file mode 100644 index 00000000..d612c955 --- /dev/null +++ b/YuMi/Modules/YMMine/Protocol/FBCManeResetSurmountPwordCeremony.h @@ -0,0 +1,22 @@ +// +// YMMineResetLoginPwdProtocol.h +// YUMI +// +// Created by YUMI on 2022/5/5. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol FBCManeResetSurmountPwordCeremony + +- (void)replacementSurmountCiphercryptogramAccomplishment; + +- (void)mobileSmsCryptogramAccomplishment; + +- (void)revoctowardsionledUniversalSequenceriptionAccomplishment; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/Protocol/FBCManeSurmountCiphercodeCeremony.h b/YuMi/Modules/YMMine/Protocol/FBCManeSurmountCiphercodeCeremony.h new file mode 100644 index 00000000..a6952657 --- /dev/null +++ b/YuMi/Modules/YMMine/Protocol/FBCManeSurmountCiphercodeCeremony.h @@ -0,0 +1,19 @@ +// +// YMMineLoginPasswordProtocol.h +// YUMI +// +// Created by YUMI on 2022/4/25. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol FBCManeSurmountCiphercodeCeremony + +- (void)decortowardseSurmountCiphercryptogramAccomplishment; +- (void)setSurmountCiphercryptogramAccomplishment; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/Protocol/FBCManeVerifIdentityCeremony.h b/YuMi/Modules/YMMine/Protocol/FBCManeVerifIdentityCeremony.h new file mode 100644 index 00000000..05e17617 --- /dev/null +++ b/YuMi/Modules/YMMine/Protocol/FBCManeVerifIdentityCeremony.h @@ -0,0 +1,17 @@ +// +// YMMineVerifIdentityProtocol.h +// YUMI +// +// Created by YUMI on 2021/9/18. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol FBCManeVerifIdentityCeremony +- (void)mobileSmsCryptogramAccomplishment; +- (void)examineAplictowardsionartowardsusCryptogramAboutAplictowardsionartowardsusAccomplishment; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/Protocol/FBCManeVisitorCeremony.h b/YuMi/Modules/YMMine/Protocol/FBCManeVisitorCeremony.h new file mode 100644 index 00000000..6f2b588d --- /dev/null +++ b/YuMi/Modules/YMMine/Protocol/FBCManeVisitorCeremony.h @@ -0,0 +1,20 @@ +// +// YMMineVisitorProtocol.h +// YUMI +// +// Created by YUMI on 2022/1/26. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol FBCManeVisitorCeremony + +- (void)dwellEarnVactowardsionerSttowardsementAccomplishment:(NSArray *)array state:(int)state; + +- (void)acquireVactowardsionerSttowardsementFlunk:(int)state; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Cell/AnchorFansTeam/YUMIManeKellegFanaticsSquadTabulationRegardElement.h b/YuMi/Modules/YMMine/View/Cell/AnchorFansTeam/YUMIManeKellegFanaticsSquadTabulationRegardElement.h new file mode 100644 index 00000000..b81db640 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Cell/AnchorFansTeam/YUMIManeKellegFanaticsSquadTabulationRegardElement.h @@ -0,0 +1,19 @@ +// +// YMMineAnchorFansTeamTableViewCell.h +// YUMI +// +// Created by YUMI on 2022/4/8. +// + +#import +#import "YUMIManeKellegFanaticsSquadMatrix.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeKellegFanaticsSquadTabulationRegardElement : UITableViewCell + +@property (nonatomic, strong) YUMIManeKellegFanaticsSquadMatrix *item; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Cell/AnchorFansTeam/YUMIManeKellegFanaticsSquadTabulationRegardElement.m b/YuMi/Modules/YMMine/View/Cell/AnchorFansTeam/YUMIManeKellegFanaticsSquadTabulationRegardElement.m new file mode 100644 index 00000000..5d638574 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Cell/AnchorFansTeam/YUMIManeKellegFanaticsSquadTabulationRegardElement.m @@ -0,0 +1,98 @@ +// +// YMMineAnchorFansTeamTableViewCell.m +// YUMI +// +// Created by YUMI on 2022/4/8. +// + +#import "YUMIManeKellegFanaticsSquadTabulationRegardElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "NetIndicateRegard.h" + +@interface YUMIManeKellegFanaticsSquadTabulationRegardElement() + +@property (nonatomic ,strong) NetIndicateRegard *avaterIndiRegard; +@property (nonatomic, strong) UILabel *monicerSequencignation; +@property (nonatomic ,strong) NetIndicateRegard *figureIndicateRegard; + +@end + +@implementation YUMIManeKellegFanaticsSquadTabulationRegardElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self setUpwardsUI]; + [self setUpwardsRestrictions]; + } + return self; +} + +#pragma mark - lifeCycle +- (void)setUpwardsUI { + self.backgroundColor = [UIColor clearColor]; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.avaterIndiRegard]; + [self.contentView addSubview:self.monicerSequencignation]; + [self.contentView addSubview:self.figureIndicateRegard]; +} + +#pragma mark - Constraints +- (void)setUpwardsRestrictions { + [self.avaterIndiRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(15); + make.width.height.mas_equalTo(40); + make.centerY.mas_equalTo(self.contentView.mas_centerY); + }]; + + [self.monicerSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.avaterIndiRegard.mas_right).mas_offset(10); + make.centerY.mas_equalTo(self.contentView.mas_centerY); + make.right.mas_equalTo(self.figureIndicateRegard.mas_left); + }]; + [self.figureIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.monicerSequencignation.mas_centerY); + make.width.mas_equalTo(95); + make.height.mas_equalTo(27); + make.right.mas_equalTo(-15); + }]; +} + +- (void)setItem:(YUMIManeKellegFanaticsSquadMatrix *)item { + _item = item; + self.monicerSequencignation.text = item.anchorNick; + self.avaterIndiRegard.imageUrl = item.anchorAvatar; + self.figureIndicateRegard.imageUrl = item.icon; +} + +- (NetIndicateRegard *)avaterIndiRegard { + if (!_avaterIndiRegard) { + _avaterIndiRegard = [[NetIndicateRegard alloc] init]; + _avaterIndiRegard.contentMode = UIViewContentModeScaleAspectFit; + _avaterIndiRegard.layer.cornerRadius = 20; + _avaterIndiRegard.layer.masksToBounds = YES; + } + return _avaterIndiRegard; +} + +- (UILabel *)monicerSequencignation { + if (!_monicerSequencignation) { + _monicerSequencignation = [[UILabel alloc] init]; + _monicerSequencignation.textColor = UIColorFromRGB(0x333333); + _monicerSequencignation.font = [UIFont systemFontOfSize:13]; + _monicerSequencignation.text = YMLocalizedString(@"YUMI_Mine_Anchor_Fans_Team_Table_View_Cell_0"); + } + return _monicerSequencignation; +} + +- (NetIndicateRegard *)figureIndicateRegard { + if (!_figureIndicateRegard) { + _figureIndicateRegard = [[NetIndicateRegard alloc] init]; + _figureIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + _figureIndicateRegard.layer.cornerRadius = 20; + _figureIndicateRegard.layer.masksToBounds = YES; + } + return _figureIndicateRegard; +} + +@end diff --git a/YuMi/Modules/YMMine/View/Cell/FootPrint/YUMIManeTerminalImpressionTabulationRegardElement.h b/YuMi/Modules/YMMine/View/Cell/FootPrint/YUMIManeTerminalImpressionTabulationRegardElement.h new file mode 100644 index 00000000..d6592d7c --- /dev/null +++ b/YuMi/Modules/YMMine/View/Cell/FootPrint/YUMIManeTerminalImpressionTabulationRegardElement.h @@ -0,0 +1,19 @@ +// +// YMMineFootPrintTableViewCell.h +// YUMI +// +// Created by YUMI on 2022/7/26. +// + +#import +#import "YUMIManeTerminalImpressionMatrix.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeTerminalImpressionTabulationRegardElement : UITableViewCell + +@property (nonatomic, strong) YUMIManeTerminalImpressionMatrix *item; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Cell/FootPrint/YUMIManeTerminalImpressionTabulationRegardElement.m b/YuMi/Modules/YMMine/View/Cell/FootPrint/YUMIManeTerminalImpressionTabulationRegardElement.m new file mode 100644 index 00000000..1b298b92 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Cell/FootPrint/YUMIManeTerminalImpressionTabulationRegardElement.m @@ -0,0 +1,134 @@ +// +// YMMineFootPrintTableViewCell.m +// YUMI +// +// Created by YUMI on 2022/7/26. +// + +#import "YUMIManeTerminalImpressionTabulationRegardElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "NetIndicateRegard.h" + +@interface YUMIManeTerminalImpressionTabulationRegardElement() + +@property (nonatomic ,strong) NetIndicateRegard *avaterIndiRegard; +@property (nonatomic, strong) UILabel *monicerSequencignation; +@property (nonatomic ,strong) UILabel *componentIdSequencignation; +@property (nonatomic ,strong) UILabel *intratemporalSequencignation; +@property (nonatomic, strong) UIView *burlywoodRegard; + +@end + + +@implementation YUMIManeTerminalImpressionTabulationRegardElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self setUpwardsUI]; + [self setUpwardsRestrictions]; + } + return self; +} + +#pragma mark - lifeCycle +- (void)setUpwardsUI { + self.backgroundColor = [UIColor clearColor]; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.avaterIndiRegard]; + [self.contentView addSubview:self.monicerSequencignation]; + [self.contentView addSubview:self.componentIdSequencignation]; + [self.contentView addSubview:self.intratemporalSequencignation]; + [self.contentView addSubview:self.burlywoodRegard]; +} + +#pragma mark - Constraints +- (void)setUpwardsRestrictions { + [self.avaterIndiRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(15); + make.width.height.mas_equalTo(40); + make.centerY.mas_equalTo(self.contentView.mas_centerY); + }]; + + [self.monicerSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.avaterIndiRegard.mas_right).mas_offset(8); + make.bottom.mas_equalTo(self.avaterIndiRegard.mas_centerY).mas_offset(-4); + make.height.mas_equalTo(14); + }]; + + [self.componentIdSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.avaterIndiRegard.mas_centerY).mas_offset(4); + make.left.mas_equalTo(self.monicerSequencignation); + make.height.mas_equalTo(14); + }]; + + [self.intratemporalSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(-15); + make.centerY.mas_equalTo(self.monicerSequencignation.mas_centerY); + make.height.mas_equalTo(14); + }]; + [self.burlywoodRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.bottom.mas_equalTo(0); + make.left.mas_equalTo(self.avaterIndiRegard); + make.right.mas_equalTo(-15); + make.height.mas_equalTo(0.5); + }]; +} + +- (void)setItem:(YUMIManeTerminalImpressionMatrix *)item { + _item = item; + self.monicerSequencignation.text = item.title; + self.avaterIndiRegard.imageUrl = item.avatar; + self.componentIdSequencignation.text = [NSString stringWithFormat:@"ID:%lld", item.erbanNo]; + NSDateFormatter *engagementInitialiser = [[NSDateFormatter alloc] init]; + [engagementInitialiser setDateFormat:@"yyyy-MM-dd"]; + NSDate *date = [NSDate dateWithTimeIntervalSince1970:item.updateTime/ 1000]; + self.intratemporalSequencignation.text = [engagementInitialiser stringFromDate:date]; +} + +- (NetIndicateRegard *)avaterIndiRegard { + if (!_avaterIndiRegard) { + _avaterIndiRegard = [[NetIndicateRegard alloc] init]; + _avaterIndiRegard.contentMode = UIViewContentModeScaleAspectFit; + _avaterIndiRegard.layer.cornerRadius = 4; + _avaterIndiRegard.layer.masksToBounds = YES; + } + return _avaterIndiRegard; +} + +- (UILabel *)monicerSequencignation { + if (!_monicerSequencignation) { + _monicerSequencignation = [[UILabel alloc] init]; + _monicerSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _monicerSequencignation.font = [UIFont systemFontOfSize:14]; + } + return _monicerSequencignation; +} + +- (UILabel *)componentIdSequencignation { + if (!_componentIdSequencignation) { + _componentIdSequencignation = [[UILabel alloc] init]; + _componentIdSequencignation.textColor = [DJDKMIMOMColor instantEssayPrettify]; + _componentIdSequencignation.font = [UIFont systemFontOfSize:12]; + } + return _componentIdSequencignation; +} + +- (UILabel *)intratemporalSequencignation { + if (!_intratemporalSequencignation) { + _intratemporalSequencignation = [[UILabel alloc] init]; + _intratemporalSequencignation.textColor = [DJDKMIMOMColor essayTertiusPrettify]; + _intratemporalSequencignation.font = [UIFont boldSystemFontOfSize:10]; + } + return _intratemporalSequencignation; +} + +- (UIView *)burlywoodRegard { + if (!_burlywoodRegard) { + _burlywoodRegard = [[UIView alloc] init]; + _burlywoodRegard.backgroundColor = UIColorFromRGB(0xEAEAF1); + } + return _burlywoodRegard; +} + +@end diff --git a/YuMi/Modules/YMMine/View/Cell/Friend/YUMIManeAssistantDispossessTabulationRegardElement.h b/YuMi/Modules/YMMine/View/Cell/Friend/YUMIManeAssistantDispossessTabulationRegardElement.h new file mode 100644 index 00000000..b569a47e --- /dev/null +++ b/YuMi/Modules/YMMine/View/Cell/Friend/YUMIManeAssistantDispossessTabulationRegardElement.h @@ -0,0 +1,16 @@ +// +// YMMineFriendEmptyTableViewCell.h +// YUMI +// +// Created by YUMI on 2021/12/21. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeAssistantDispossessTabulationRegardElement : UITableViewCell +@property (nonatomic,copy) NSString *emptyTitle; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Cell/Friend/YUMIManeAssistantDispossessTabulationRegardElement.m b/YuMi/Modules/YMMine/View/Cell/Friend/YUMIManeAssistantDispossessTabulationRegardElement.m new file mode 100644 index 00000000..c4aacd6a --- /dev/null +++ b/YuMi/Modules/YMMine/View/Cell/Friend/YUMIManeAssistantDispossessTabulationRegardElement.m @@ -0,0 +1,81 @@ +// +// YMMineFriendEmptyTableViewCell.m +// YUMI +// +// Created by YUMI on 2021/12/21. +// + +#import "YUMIManeAssistantDispossessTabulationRegardElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "UIIndicateConstant.h" + +@interface YUMIManeAssistantDispossessTabulationRegardElement () +@property (nonatomic,strong) UIImageView *dispossessIndicateRegard; +@property (nonatomic,strong) UILabel *titleLabel; +@end + +@implementation YUMIManeAssistantDispossessTabulationRegardElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify]; + self.backgroundColor = [UIColor clearColor]; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.dispossessIndicateRegard]; + [self.contentView addSubview:self.titleLabel]; +} + +- (void)initChildLyRestrictions { + [self.dispossessIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.contentView); + make.bottom.mas_equalTo(self.contentView.mas_centerY).offset(-15); + make.size.mas_equalTo(CGSizeMake(100, 100)); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.dispossessIndicateRegard.mas_bottom).offset(20); + make.left.right.mas_equalTo(self.contentView); + }]; +} +#pragma mark - Getters And Setters + +- (void)setEmptyTitle:(NSString *)emptyTitle { + _emptyTitle = emptyTitle; + if (_emptyTitle.length > 0) { + self.titleLabel.text = _emptyTitle; + } +} + +- (UIImageView *)dispossessIndicateRegard { + if (!_dispossessIndicateRegard) { + _dispossessIndicateRegard = [[UIImageView alloc] init]; + _dispossessIndicateRegard.userInteractionEnabled = YES; + _dispossessIndicateRegard.image = [UIIndicateConstant defalutDispossessDepapossessor]; + _dispossessIndicateRegard.layer.masksToBounds = YES; + _dispossessIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _dispossessIndicateRegard; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.text = YMLocalizedString(@"YUMI_Mine_Friend_Empty_Table_View_Cell_0"); + _titleLabel.numberOfLines = 2; + _titleLabel.font = [UIFont systemFontOfSize:16]; + _titleLabel.textAlignment = NSTextAlignmentCenter; + _titleLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + } + return _titleLabel; +} + +@end diff --git a/YuMi/Modules/YMMine/View/Cell/Friend/YUMIManeAssistantTabulationRegardElement.h b/YuMi/Modules/YMMine/View/Cell/Friend/YUMIManeAssistantTabulationRegardElement.h new file mode 100644 index 00000000..8d087a6e --- /dev/null +++ b/YuMi/Modules/YMMine/View/Cell/Friend/YUMIManeAssistantTabulationRegardElement.h @@ -0,0 +1,17 @@ +// +// YMMineFriendTableViewCell.h +// YUMI +// +// Created by YUMI on 2021/12/21. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class ConsumerAbstractMatrix; +@interface YUMIManeAssistantTabulationRegardElement : UITableViewCell +@property (nonatomic,strong) ConsumerAbstractMatrix *userInfo; +@property (nonatomic,assign) BOOL isInRoom; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Cell/Friend/YUMIManeAssistantTabulationRegardElement.m b/YuMi/Modules/YMMine/View/Cell/Friend/YUMIManeAssistantTabulationRegardElement.m new file mode 100644 index 00000000..9cc04962 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Cell/Friend/YUMIManeAssistantTabulationRegardElement.m @@ -0,0 +1,206 @@ +// +// YMMineFriendTableViewCell.m +// YUMI +// +// Created by YUMI on 2021/12/21. +// + +#import "YUMIManeAssistantTabulationRegardElement.h" +#import +#import "NetIndicateDisposition.h" +#import "NetIndicateRegard.h" +#import "DJDKMIMOMColor.h" +#import "UIImage+Utils.h" +#import "ConsumerAbstractMatrix.h" + +@interface YUMIManeAssistantTabulationRegardElement () +@property (nonatomic,strong) NetIndicateRegard *intelligenceportraitIndicateRegard; +@property (nonatomic,strong) UIStackView *stackView; +@property (nonatomic,strong) UILabel *monicerSequencignation; +@property (nonatomic,strong) UIImageView *seaxualityIndicateRegard; +@property (nonatomic,strong) NetIndicateRegard *experIndicateRegard; +@property (nonatomic,strong) NetIndicateRegard *fascinationIndicateRegard; +@property (nonatomic,strong) UILabel *signSequencignation; +@property (nonatomic,strong) UIView *burlywoodRegard; +@end + + +@implementation YUMIManeAssistantTabulationRegardElement +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor]; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.intelligenceportraitIndicateRegard]; + [self.contentView addSubview:self.stackView]; + [self.contentView addSubview:self.signSequencignation]; + [self.contentView addSubview:self.burlywoodRegard]; + + [self.stackView addArrangedSubview:self.monicerSequencignation]; + [self.stackView addArrangedSubview:self.seaxualityIndicateRegard]; + [self.stackView addArrangedSubview:self.experIndicateRegard]; + [self.stackView addArrangedSubview:self.fascinationIndicateRegard]; +} + +- (void)initChildLyRestrictions { + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(55, 55)); + make.centerY.mas_equalTo(self.contentView); + make.left.mas_equalTo(self.contentView).offset(15); + }]; + + [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_right).offset(10); + make.bottom.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_centerY).offset(-2); + }]; + + [self.signSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.stackView); + make.top.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_centerY).offset(2); + }]; + + [self.burlywoodRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.stackView); + make.bottom.mas_equalTo(self.contentView); + make.height.mas_equalTo(1); + make.right.mas_equalTo(self.contentView).offset(-15); + }]; +} + +#pragma mark - Getters And Setters +- (void)setUserInfo:(ConsumerAbstractMatrix *)userInfo { + _userInfo = userInfo; + if (_userInfo) { + self.intelligenceportraitIndicateRegard.imageUrl = _userInfo.avatar; + self.monicerSequencignation.text = _userInfo.nick; + self.signSequencignation.text = _userInfo.userDesc && _userInfo.userDesc.length > 0? _userInfo.userDesc : YMLocalizedString(@"YUMI_Mine_Friend_Table_View_Cell_0"); + if (self.isInRoom) { + self.experIndicateRegard.hidden = NO; + self.fascinationIndicateRegard.hidden = NO; + self.experIndicateRegard.imageUrl = _userInfo.userLevelVo.experUrl; + self.fascinationIndicateRegard.imageUrl = _userInfo.userLevelVo.charmUrl; + NSString *sexStr; + if (_userInfo.gender == GenderGenre_Male) { + sexStr = @"common_male"; + } else { + sexStr = @"common_female"; + } + self.seaxualityIndicateRegard.image = [UIImage imageNamed:sexStr]; + UIImage* image = self.experIndicateRegard.image; + if (image) { + CGFloat scale = image.size.width / image.size.height; + [self.experIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(20* scale, 20)); + }]; + } else { + NSURL *imgUrl = [NSURL URLWithString:_userInfo.userLevelVo.experUrl]; + UIImage *myImage = [UIImage imageWithData:[NSData dataWithContentsOfURL:imgUrl]]; + CGFloat scale = myImage.size.width / myImage.size.height; + [self.experIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(20* scale, 20)); + }]; + } + + UIImage* charmImage = self.fascinationIndicateRegard.image; + if (charmImage) { + CGFloat scale = charmImage.size.width / charmImage.size.height; + [self.fascinationIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(20* scale, 20)); + }]; + } else { + NSURL *imgUrl = [NSURL URLWithString:_userInfo.userLevelVo.charmUrl]; + UIImage *myImage = [UIImage imageWithData:[NSData dataWithContentsOfURL:imgUrl]]; + CGFloat scale = myImage.size.width / myImage.size.height; + [self.fascinationIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(20* scale, 20)); + }]; + } + } else { + self.experIndicateRegard.hidden = YES; + self.fascinationIndicateRegard.hidden = YES; + } + } +} + +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _intelligenceportraitIndicateRegard.layer.cornerRadius = 55/2; + } + return _intelligenceportraitIndicateRegard; +} + +- (UIStackView *)stackView { + if (!_stackView) { + _stackView = [[UIStackView alloc] init]; + _stackView.axis = UILayoutConstraintAxisHorizontal; + _stackView.distribution = UIStackViewDistributionFill; + _stackView.alignment = UIStackViewAlignmentCenter; + _stackView.spacing = 10; + } + return _stackView; +} + +- (UILabel *)monicerSequencignation { + if (!_monicerSequencignation) { + _monicerSequencignation = [[UILabel alloc] init]; + _monicerSequencignation.font = [UIFont systemFontOfSize:15]; + _monicerSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _monicerSequencignation; +} + +- (UIImageView *)seaxualityIndicateRegard { + if (!_seaxualityIndicateRegard) { + _seaxualityIndicateRegard = [[UIImageView alloc] init]; + _seaxualityIndicateRegard.userInteractionEnabled = YES; + } + return _seaxualityIndicateRegard; +} + +- (NetIndicateRegard *)experIndicateRegard { + if (!_experIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _experIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + } + return _experIndicateRegard; +} + +- (NetIndicateRegard *)fascinationIndicateRegard { + if (!_fascinationIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _fascinationIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + } + return _fascinationIndicateRegard; +} + +- (UILabel *)signSequencignation{ + if (!_signSequencignation) { + _signSequencignation = [[UILabel alloc] init]; + _signSequencignation.textColor = [DJDKMIMOMColor instantEssayPrettify]; + _signSequencignation.font = [UIFont systemFontOfSize:12]; + } + return _signSequencignation; +} + +- (UIView *)burlywoodRegard { + if (!_burlywoodRegard) { + _burlywoodRegard = [[UIView alloc] init]; + _burlywoodRegard.backgroundColor = [DJDKMIMOMColor dividerPrettify]; + } + return _burlywoodRegard; +} +@end diff --git a/YuMi/Modules/YMMine/View/Cell/Friend/YUMIManeConsiderationTabulationRegardElement.h b/YuMi/Modules/YMMine/View/Cell/Friend/YUMIManeConsiderationTabulationRegardElement.h new file mode 100644 index 00000000..e8e11037 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Cell/Friend/YUMIManeConsiderationTabulationRegardElement.h @@ -0,0 +1,24 @@ +// +// YMMineAttentionTableViewCell.h +// YUMI +// +// Created by YUMI on 2021/12/21. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class FanaticsAbstractMatrix, YUMIManeConsiderationTabulationRegardElement; +@protocol FBCManeConsiderationTabulationViweElementRepresendtation + +- (void)fBCManeConsidertowardsionTarbsultowardsionViweElement:(YUMIManeConsiderationTabulationRegardElement *)view findUser:(NSString *)uid; + +@end + +@interface YUMIManeConsiderationTabulationRegardElement : UITableViewCell + +@property (nonatomic,strong) FanaticsAbstractMatrix *fanaticsAbstract; +@property (nonatomic,weak) id delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Cell/Friend/YUMIManeConsiderationTabulationRegardElement.m b/YuMi/Modules/YMMine/View/Cell/Friend/YUMIManeConsiderationTabulationRegardElement.m new file mode 100644 index 00000000..b5fe0e1b --- /dev/null +++ b/YuMi/Modules/YMMine/View/Cell/Friend/YUMIManeConsiderationTabulationRegardElement.m @@ -0,0 +1,297 @@ +// +// YMMineAttentionTableViewCell.m +// YUMI +// +// Created by YUMI on 2021/12/21. +// + +#import "YUMIManeConsiderationTabulationRegardElement.h" +#import +#import "NetIndicateRegard.h" +#import "DJDKMIMOMColor.h" +#import "UIImage+Utils.h" +#import "FanaticsAbstractMatrix.h" + +@interface YUMIManeConsiderationTabulationRegardElement () +@property (nonatomic,strong) NetIndicateRegard *intelligenceportraitIndicateRegard; +@property (nonatomic,strong) UIStackView *stackView; +@property (nonatomic,strong) UILabel *monicerSequencignation; +@property (nonatomic,strong) UIImageView *seaxualityIndicateRegard; +@property (nonatomic,strong) NetIndicateRegard *experIndicateRegard; +@property (nonatomic,strong) NetIndicateRegard *fascinationIndicateRegard; +@property (nonatomic,strong) NetIndicateRegard *magnificentIndicateRegard; +@property (nonatomic,strong) UILabel *signSequencignation; +@property (nonatomic,strong) UIButton *findBtuton; +@property (nonatomic,strong) UIView *burlywoodRegard; +@end + + +@implementation YUMIManeConsiderationTabulationRegardElement +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor]; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.intelligenceportraitIndicateRegard]; + [self.contentView addSubview:self.stackView]; + [self.contentView addSubview:self.signSequencignation]; + [self.contentView addSubview:self.findBtuton]; + [self.contentView addSubview:self.burlywoodRegard]; + + [self.stackView addArrangedSubview:self.magnificentIndicateRegard]; + [self.stackView addArrangedSubview:self.monicerSequencignation]; + [self.stackView addArrangedSubview:self.seaxualityIndicateRegard]; + [self.stackView addArrangedSubview:self.experIndicateRegard]; + [self.stackView addArrangedSubview:self.fascinationIndicateRegard]; +} + +- (void)initChildLyRestrictions { + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(55, 55)); + make.centerY.mas_equalTo(self.contentView); + make.left.mas_equalTo(self.contentView).offset(15); + }]; + + [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_right).offset(10); + make.right.mas_lessThanOrEqualTo(self.findBtuton.mas_left).mas_offset(-4); + make.bottom.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_centerY).offset(-2); + }]; + + [self.signSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.stackView); + make.top.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_centerY).offset(2); + make.right.mas_equalTo(self.findBtuton.mas_left).mas_offset(-4); + }]; + + [self.findBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(65); + make.height.mas_equalTo(30); + make.centerY.mas_equalTo(self.contentView); + make.right.mas_equalTo(self.contentView).offset(-15); + }]; + + [self.burlywoodRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.stackView); + make.bottom.mas_equalTo(self.contentView); + make.height.mas_equalTo(1); + make.right.mas_equalTo(self.contentView).offset(-15); + }]; +} + +#pragma mark - Event Response +- (void)prohibiticoveryBtutonPerformance:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(fBCManeConsidertowardsionTarbsultowardsionViweElement:findUser:)]) { + [self.delegate fBCManeConsidertowardsionTarbsultowardsionViweElement:self findUser:self.fanaticsAbstract.userInRoomUid]; + } +} + +#pragma mark - Getters And Setters +- (void)setFanaticsAbstract:(FanaticsAbstractMatrix *)fanaticsAbstract { + _fanaticsAbstract = fanaticsAbstract; + if (_fanaticsAbstract) { + self.intelligenceportraitIndicateRegard.imageUrl = _fanaticsAbstract.avatar; + self.monicerSequencignation.text = _fanaticsAbstract.nick; + self.signSequencignation.text = _fanaticsAbstract.userDesc && _fanaticsAbstract.userDesc.length > 0? _fanaticsAbstract.userDesc : YMLocalizedString(@"YUMI_Mine_Attention_Table_View_Cell_0"); + if (_fanaticsAbstract.useingType != ContactUseingGenre_In_Room && _fanaticsAbstract.useingType != ContactUseingGenre_Share) { + self.experIndicateRegard.hidden = NO; + self.fascinationIndicateRegard.hidden = NO; + self.magnificentIndicateRegard.hidden = NO; + self.seaxualityIndicateRegard.hidden = NO; + self.experIndicateRegard.imageUrl = _fanaticsAbstract.experUrl; + self.fascinationIndicateRegard.imageUrl = _fanaticsAbstract.charmUrl; + self.magnificentIndicateRegard.imageUrl = _fanaticsAbstract.userVipInfoVO.vipIcon; + NSString *sexStr; + if (_fanaticsAbstract.gender == GenderGenre_Male) { + sexStr = @"common_male"; + } else { + sexStr = @"common_female"; + } + self.seaxualityIndicateRegard.image = [UIImage imageNamed:sexStr]; + + self.findBtuton.hidden = _fanaticsAbstract.userInRoomUid.length <= 0; + UIImage* image = self.experIndicateRegard.image; + if (image) { + CGFloat scale = image.size.width / image.size.height; + [self.experIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(20* scale, 20)); + }]; + } else { + NSURL *imgUrl = [NSURL URLWithString:_fanaticsAbstract.experUrl]; + UIImage *myImage = [UIImage imageWithData:[NSData dataWithContentsOfURL:imgUrl]]; + CGFloat scale = myImage.size.width / myImage.size.height; + [self.experIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(20* scale, 20)); + }]; + } + + UIImage* charmImage = self.fascinationIndicateRegard.image; + if (charmImage) { + CGFloat scale = charmImage.size.width / charmImage.size.height; + [self.fascinationIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(20* scale, 20)); + }]; + } else { + NSURL *imgUrl = [NSURL URLWithString:_fanaticsAbstract.charmUrl]; + UIImage *myImage = [UIImage imageWithData:[NSData dataWithContentsOfURL:imgUrl]]; + CGFloat scale = myImage.size.width / myImage.size.height; + [self.fascinationIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(20* scale, 20)); + }]; + } + + UIImage *nobleImage = self.magnificentIndicateRegard.image; + if (nobleImage) { + CGFloat scale = nobleImage.size.width / nobleImage.size.height; + [self.magnificentIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(20* scale, 20)); + }]; + } else { + [self.magnificentIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(0, 20)); + }]; + } + if (fanaticsAbstract.userVipInfoVO && fanaticsAbstract.userVipInfoVO.friendNickColour) { + self.monicerSequencignation.textColor = [self colorAboutHexBWSttr:fanaticsAbstract.userVipInfoVO.friendNickColour]; + } else { + self.monicerSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + } else { + self.experIndicateRegard.hidden = YES; + self.fascinationIndicateRegard.hidden = YES; + self.magnificentIndicateRegard.hidden = YES; + self.seaxualityIndicateRegard.hidden = YES; + self.findBtuton.hidden = YES; + self.monicerSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + } +} + +- (UIColor *)colorAboutHexBWSttr: (NSString *) hexString { + NSString *colorString = [[hexString stringByReplacingOccurrencesOfString: @"#" withString: @""] uppercaseString]; + CGFloat alpha, red, blue, green; + alpha = 1.0f; + red = [self colorComponentByvirtueof: colorString start: 0 length: 2]; + green = [self colorComponentByvirtueof: colorString start: 2 length: 2]; + blue = [self colorComponentByvirtueof: colorString start: 4 length: 2]; + return [UIColor colorWithRed: red green: green blue: blue alpha: alpha]; +} + +- (CGFloat) colorComponentByvirtueof: (NSString *) string start: (NSUInteger) start length: (NSUInteger) length { + NSString *substring = [string substringWithRange: NSMakeRange(start, length)]; + NSString *fullHex = length == 2 ? substring : [NSString stringWithFormat: @"%@%@", substring, substring]; + unsigned hexComponent; + [[NSScanner scannerWithString: fullHex] scanHexInt: &hexComponent]; + return hexComponent / 255.0; +} + +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _intelligenceportraitIndicateRegard.layer.cornerRadius = 55/2; + } + return _intelligenceportraitIndicateRegard; +} + +- (UIStackView *)stackView { + if (!_stackView) { + _stackView = [[UIStackView alloc] init]; + _stackView.axis = UILayoutConstraintAxisHorizontal; + _stackView.distribution = UIStackViewDistributionFill; + _stackView.alignment = UIStackViewAlignmentCenter; + _stackView.spacing = 2; + } + return _stackView; +} + +- (UILabel *)monicerSequencignation { + if (!_monicerSequencignation) { + _monicerSequencignation = [[UILabel alloc] init]; + _monicerSequencignation.font = [UIFont systemFontOfSize:15]; + _monicerSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _monicerSequencignation; +} + +- (UIImageView *)seaxualityIndicateRegard { + if (!_seaxualityIndicateRegard) { + _seaxualityIndicateRegard = [[UIImageView alloc] init]; + _seaxualityIndicateRegard.userInteractionEnabled = YES; + } + return _seaxualityIndicateRegard; +} + +- (NetIndicateRegard *)experIndicateRegard { + if (!_experIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _experIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _experIndicateRegard.layer.maskedCorners = YES; + _experIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _experIndicateRegard; +} + +- (NetIndicateRegard *)fascinationIndicateRegard { + if (!_fascinationIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _fascinationIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _fascinationIndicateRegard.layer.maskedCorners = YES; + _fascinationIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _fascinationIndicateRegard; +} + +- (NetIndicateRegard *)magnificentIndicateRegard { + if (!_magnificentIndicateRegard) { + _magnificentIndicateRegard = [[NetIndicateRegard alloc] init]; + } + return _magnificentIndicateRegard; +} + +- (UILabel *)signSequencignation{ + if (!_signSequencignation) { + _signSequencignation = [[UILabel alloc] init]; + _signSequencignation.textColor = [DJDKMIMOMColor instantEssayPrettify]; + _signSequencignation.font = [UIFont systemFontOfSize:12]; + } + return _signSequencignation; +} + +- (UIButton *)findBtuton { + if (!_findBtuton) { + _findBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_findBtuton setTitle:@"找到Ta" forState:UIControlStateNormal]; + [_findBtuton setTitleColor:[DJDKMIMOMColor aplictowardsionUnderlinePrettify] forState:UIControlStateNormal]; + _findBtuton.titleLabel.font = [UIFont systemFontOfSize:12]; + _findBtuton.layer.masksToBounds = YES; + _findBtuton.layer.cornerRadius = 15; + _findBtuton.layer.borderColor = [DJDKMIMOMColor aplictowardsionUnderlinePrettify].CGColor; + _findBtuton.layer.borderWidth = 1; + _findBtuton.hidden = YES; + [_findBtuton addTarget:self action:@selector(prohibiticoveryBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _findBtuton; +} + +- (UIView *)burlywoodRegard { + if (!_burlywoodRegard) { + _burlywoodRegard = [[UIView alloc] init]; + _burlywoodRegard.backgroundColor = [DJDKMIMOMColor dividerPrettify]; + } + return _burlywoodRegard; +} + +@end diff --git a/YuMi/Modules/YMMine/View/Cell/Friend/YUMIManeFanaticsTabulationRegardElement.h b/YuMi/Modules/YMMine/View/Cell/Friend/YUMIManeFanaticsTabulationRegardElement.h new file mode 100644 index 00000000..3032a48e --- /dev/null +++ b/YuMi/Modules/YMMine/View/Cell/Friend/YUMIManeFanaticsTabulationRegardElement.h @@ -0,0 +1,22 @@ +// +// YMMineFansTableViewCell.h +// YUMI +// +// Created by YUMI on 2021/12/21. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class FanaticsAbstractMatrix, YUMIManeFanaticsTabulationRegardElement; +@protocol FBCManeFanaticsTabulationViweElementRepresendtation +- (void)fBCManeFantowardsicsTarbsultowardsionViweElement:(YUMIManeFanaticsTabulationRegardElement *)view didClickAttention:(NSString *)uid; + +@end +@interface YUMIManeFanaticsTabulationRegardElement : UITableViewCell +@property (nonatomic,strong) FanaticsAbstractMatrix *fanaticsAbstract; +@property (nonatomic,weak) id delegate; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Cell/Friend/YUMIManeFanaticsTabulationRegardElement.m b/YuMi/Modules/YMMine/View/Cell/Friend/YUMIManeFanaticsTabulationRegardElement.m new file mode 100644 index 00000000..5553e2c8 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Cell/Friend/YUMIManeFanaticsTabulationRegardElement.m @@ -0,0 +1,301 @@ +// +// YMMineFansTableViewCell.m +// YUMI +// +// Created by YUMI on 2021/12/21. +// + +#import "YUMIManeFanaticsTabulationRegardElement.h" +#import +#import +#import "NetIndicateRegard.h" +#import "DJDKMIMOMColor.h" +#import "UIImage+Utils.h" +#import "FanaticsAbstractMatrix.h" + +@interface YUMIManeFanaticsTabulationRegardElement () +@property (nonatomic,strong) NetIndicateRegard *intelligenceportraitIndicateRegard; +@property (nonatomic,strong) UIStackView *stackView; +@property (nonatomic,strong) UILabel *monicerSequencignation; +@property (nonatomic,strong) UIImageView *seaxualityIndicateRegard; +@property (nonatomic,strong) NetIndicateRegard *experIndicateRegard; +@property (nonatomic,strong) NetIndicateRegard *fascinationIndicateRegard; +@property (nonatomic,strong) NetIndicateRegard *magnificentIndicateRegard; +@property (nonatomic,strong) UILabel *signSequencignation; +@property (nonatomic,strong) UIButton *considerationBtuton; +@property (nonatomic,strong) UIView * burlywoodRegard; +@end + + +@implementation YUMIManeFanaticsTabulationRegardElement +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor]; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.intelligenceportraitIndicateRegard]; + [self.contentView addSubview:self.stackView]; + [self.contentView addSubview:self.signSequencignation]; + [self.contentView addSubview:self.considerationBtuton]; + [self.contentView addSubview:self.burlywoodRegard]; + + [self.stackView addArrangedSubview:self.magnificentIndicateRegard]; + [self.stackView addArrangedSubview:self.monicerSequencignation]; + [self.stackView addArrangedSubview:self.seaxualityIndicateRegard]; + [self.stackView addArrangedSubview:self.experIndicateRegard]; + [self.stackView addArrangedSubview:self.fascinationIndicateRegard]; +} + +- (void)initChildLyRestrictions { + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(55, 55)); + make.centerY.mas_equalTo(self.contentView); + make.left.mas_equalTo(self.contentView).offset(15); + }]; + + [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_right).offset(10); + make.bottom.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_centerY).offset(-2); + make.right.mas_lessThanOrEqualTo(self.considerationBtuton.mas_left).mas_offset(-4); + }]; + + [self.signSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.stackView); + make.top.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_centerY).offset(2); + make.right.mas_equalTo(self.considerationBtuton.mas_left).mas_offset(-4); + }]; + + [self.considerationBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(65); + make.height.mas_equalTo(30); + make.centerY.mas_equalTo(self.contentView); + make.right.mas_equalTo(self.contentView).offset(-15); + }]; + + [self.burlywoodRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.stackView); + make.bottom.mas_equalTo(self.contentView); + make.height.mas_equalTo(1); + make.right.mas_equalTo(self.contentView).offset(-15); + }]; +} + +#pragma mark - Event Response +- (void)considertowardsionBtutonPerformance:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(fBCManeFantowardsicsTarbsultowardsionViweElement:didClickAttention:)]) { + [self.delegate fBCManeFantowardsicsTarbsultowardsionViweElement:self didClickAttention:self.fanaticsAbstract.uid]; + } +} + +#pragma mark - Getters And Setters +- (void)setFanaticsAbstract:(FanaticsAbstractMatrix *)fanaticsAbstract { + _fanaticsAbstract = fanaticsAbstract; + if (_fanaticsAbstract) { + self.intelligenceportraitIndicateRegard.imageUrl = _fanaticsAbstract.avatar; + + self.monicerSequencignation.text = _fanaticsAbstract.nick; + self.signSequencignation.text = _fanaticsAbstract.userDesc && _fanaticsAbstract.userDesc.length > 0? _fanaticsAbstract.userDesc : YMLocalizedString(@"YUMI_Mine_Fans_Table_View_Cell_0"); + if (_fanaticsAbstract.useingType != ContactUseingGenre_In_Room && _fanaticsAbstract.useingType != ContactUseingGenre_Share) { + self.experIndicateRegard.hidden = NO; + self.fascinationIndicateRegard.hidden = NO; + self.magnificentIndicateRegard.hidden = NO; + self.seaxualityIndicateRegard.hidden = NO; + self.considerationBtuton.hidden = NO; + self.experIndicateRegard.imageUrl = _fanaticsAbstract.experUrl; + self.fascinationIndicateRegard.imageUrl = _fanaticsAbstract.charmUrl; + self.magnificentIndicateRegard.imageUrl = _fanaticsAbstract.userVipInfoVO.vipIcon; + NSString *sexStr; + if (_fanaticsAbstract.gender == GenderGenre_Male) { + sexStr = @"common_male"; + } else { + sexStr = @"common_female"; + } + self.seaxualityIndicateRegard.image = [UIImage imageNamed:sexStr]; + + + BOOL isMyFriend = [[NIMSDK sharedSDK].userManager isMyFriend:_fanaticsAbstract.uid]; + self.considerationBtuton.enabled = !isMyFriend; + self.considerationBtuton.hidden = NO; + UIImage* image = self.experIndicateRegard.image; + if (image) { + CGFloat scale = image.size.width / image.size.height; + [self.experIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(20* scale, 20)); + }]; + } else { + NSURL *imgUrl = [NSURL URLWithString:_fanaticsAbstract.experUrl]; + UIImage *myImage = [UIImage imageWithData:[NSData dataWithContentsOfURL:imgUrl]]; + CGFloat scale = myImage.size.width / myImage.size.height; + [self.experIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(20* scale, 20)); + }]; + } + + UIImage* charmImage = self.fascinationIndicateRegard.image; + if (charmImage) { + CGFloat scale = charmImage.size.width / charmImage.size.height; + [self.fascinationIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(20* scale, 20)); + }]; + } else { + NSURL *imgUrl = [NSURL URLWithString:_fanaticsAbstract.charmUrl]; + UIImage *myImage = [UIImage imageWithData:[NSData dataWithContentsOfURL:imgUrl]]; + CGFloat scale = myImage.size.width / myImage.size.height; + [self.fascinationIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(20* scale, 20)); + }]; + } + + UIImage *nobleImage = self.magnificentIndicateRegard.image; + if (nobleImage) { + CGFloat scale = nobleImage.size.width / nobleImage.size.height; + [self.magnificentIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(20* scale, 20)); + }]; + } else { + [self.magnificentIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(0, 20)); + }]; + } + + if (fanaticsAbstract.userVipInfoVO && fanaticsAbstract.userVipInfoVO.friendNickColour) { + self.monicerSequencignation.textColor = [self colorAboutHexBWSttr:fanaticsAbstract.userVipInfoVO.friendNickColour]; + } else { + self.monicerSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + } else { + self.experIndicateRegard.hidden = YES; + self.fascinationIndicateRegard.hidden = YES; + self.magnificentIndicateRegard.hidden = YES; + self.seaxualityIndicateRegard.hidden = YES; + self.considerationBtuton.hidden = YES; + self.monicerSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + } +} + +- (UIColor *)colorAboutHexBWSttr: (NSString *) hexString { + NSString *colorString = [[hexString stringByReplacingOccurrencesOfString: @"#" withString: @""] uppercaseString]; + CGFloat alpha, red, blue, green; + alpha = 1.0f; + red = [self colorComponentByvirtueof: colorString start: 0 length: 2]; + green = [self colorComponentByvirtueof: colorString start: 2 length: 2]; + blue = [self colorComponentByvirtueof: colorString start: 4 length: 2]; + return [UIColor colorWithRed: red green: green blue: blue alpha: alpha]; +} + +- (CGFloat) colorComponentByvirtueof: (NSString *) string start: (NSUInteger) start length: (NSUInteger) length { + NSString *substring = [string substringWithRange: NSMakeRange(start, length)]; + NSString *fullHex = length == 2 ? substring : [NSString stringWithFormat: @"%@%@", substring, substring]; + unsigned hexComponent; + [[NSScanner scannerWithString: fullHex] scanHexInt: &hexComponent]; + return hexComponent / 255.0; +} + +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _intelligenceportraitIndicateRegard.layer.cornerRadius = 55/2; + } + return _intelligenceportraitIndicateRegard; +} + +- (UIStackView *)stackView { + if (!_stackView) { + _stackView = [[UIStackView alloc] init]; + _stackView.axis = UILayoutConstraintAxisHorizontal; + _stackView.distribution = UIStackViewDistributionFill; + _stackView.alignment = UIStackViewAlignmentCenter; + _stackView.spacing = 2; + } + return _stackView; +} + +- (UILabel *)monicerSequencignation { + if (!_monicerSequencignation) { + _monicerSequencignation = [[UILabel alloc] init]; + _monicerSequencignation.font = [UIFont systemFontOfSize:15]; + _monicerSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _monicerSequencignation; +} + +- (UIImageView *)seaxualityIndicateRegard { + if (!_seaxualityIndicateRegard) { + _seaxualityIndicateRegard = [[UIImageView alloc] init]; + _seaxualityIndicateRegard.userInteractionEnabled = YES; + } + return _seaxualityIndicateRegard; +} + +- (NetIndicateRegard *)experIndicateRegard { + if (!_experIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _experIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + } + return _experIndicateRegard; +} + +- (NetIndicateRegard *)fascinationIndicateRegard { + if (!_fascinationIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _fascinationIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + } + return _fascinationIndicateRegard; +} + +- (NetIndicateRegard *)magnificentIndicateRegard { + if (!_magnificentIndicateRegard) { + _magnificentIndicateRegard = [[NetIndicateRegard alloc] init]; + } + return _magnificentIndicateRegard; +} + +- (UILabel *)signSequencignation{ + if (!_signSequencignation) { + _signSequencignation = [[UILabel alloc] init]; + _signSequencignation.textColor = [DJDKMIMOMColor instantEssayPrettify]; + _signSequencignation.font = [UIFont systemFontOfSize:12]; + } + return _signSequencignation; +} + +- (UIButton *)considerationBtuton { + if (!_considerationBtuton) { + _considerationBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_considerationBtuton setTitle:YMLocalizedString(@"YUMI_Mine_Fans_Table_View_Cell_1") forState:UIControlStateNormal]; + [_considerationBtuton setTitleColor:[DJDKMIMOMColor acknowledgementBtutonEssayPrettify] forState:UIControlStateNormal]; + _considerationBtuton.titleLabel.font = [UIFont systemFontOfSize:12]; + [_considerationBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + [_considerationBtuton setTitle:YMLocalizedString(@"YUMI_Mine_Fans_Table_View_Cell_2") forState:UIControlStateDisabled]; + [_considerationBtuton setTitleColor:[DJDKMIMOMColor prohibitionBtutonEssayPrettify] forState:UIControlStateDisabled]; + [_considerationBtuton setBackgroundImage:[UIImage imageWithColor:[DJDKMIMOMColor prohibitionBtutonPrettify]] forState:UIControlStateDisabled]; + _considerationBtuton.layer.masksToBounds = YES; + _considerationBtuton.layer.cornerRadius = 15; + [_considerationBtuton addTarget:self action:@selector(considertowardsionBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _considerationBtuton; +} + +- (UIView *)burlywoodRegard { + if (!_burlywoodRegard) { + _burlywoodRegard = [[UIView alloc] init]; + _burlywoodRegard.backgroundColor = [DJDKMIMOMColor dividerPrettify]; + } + return _burlywoodRegard; +} + +@end diff --git a/YuMi/Modules/YMMine/View/Cell/MineInfo/YUMIManeAtomicCollectiveTabulationRegardElement.h b/YuMi/Modules/YMMine/View/Cell/MineInfo/YUMIManeAtomicCollectiveTabulationRegardElement.h new file mode 100644 index 00000000..df7273df --- /dev/null +++ b/YuMi/Modules/YMMine/View/Cell/MineInfo/YUMIManeAtomicCollectiveTabulationRegardElement.h @@ -0,0 +1,25 @@ +// +// YMMineDataClanTableViewCell.h +// YUMI +// +// Created by YUMI on 2022/4/14. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class CollectiveSpecificAbstractMatrix, YUMIManeAtomicCollectiveTabulationRegardElement; +@protocol FBCManeAtomicCollectiveTabulationViweElementRepresendtation +- (void)fBCManeTowardsoloudspeakerCollectiveTarbsultowardsionViweElement:(YUMIManeAtomicCollectiveTabulationRegardElement *)view didClickFold:(UIButton *)sender; +- (void)fBCManeTowardsoloudspeakerCollectiveTarbsultowardsionViweElement:(YUMIManeAtomicCollectiveTabulationRegardElement *)view didClickEnter:(CollectiveSpecificAbstractMatrix *)collectiveAbstract; +- (void)fBCManeTowardsoloudspeakerCollectiveTarbsultowardsionViweElement:(YUMIManeAtomicCollectiveTabulationRegardElement *)view didClickClanView:(CollectiveSpecificAbstractMatrix *)collectiveAbstract; +- (void)fBCManeTowardsoloudspeakerCollectiveTarbsultowardsionViweElement:(YUMIManeAtomicCollectiveTabulationRegardElement *)view didClickHallView:(CollectiveSpecificAbstractMatrix *)collectiveAbstract; +@end +@interface YUMIManeAtomicCollectiveTabulationRegardElement : UITableViewCell +@property (nonatomic,assign) BOOL isExhibitImportCorridor; + +@property (nonatomic,strong) CollectiveSpecificAbstractMatrix *collectiveAbstract; +@property (nonatomic,weak) id delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Cell/MineInfo/YUMIManeAtomicCollectiveTabulationRegardElement.m b/YuMi/Modules/YMMine/View/Cell/MineInfo/YUMIManeAtomicCollectiveTabulationRegardElement.m new file mode 100644 index 00000000..b2144d07 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Cell/MineInfo/YUMIManeAtomicCollectiveTabulationRegardElement.m @@ -0,0 +1,341 @@ +// +// YMMineDataClanTableViewCell.m +// YUMI +// +// Created by YUMI on 2022/4/14. +// + +#import "YUMIManeAtomicCollectiveTabulationRegardElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "NetIndicateRegard.h" +#import "UIButton+EnlargeTouchArea.h" +#import "CollectiveSpecificAbstractMatrix.h" + +@interface YUMIManeAtomicCollectiveTabulationRegardElement () +@property (nonatomic,strong) UIView *encourageRegard; +@property (nonatomic,strong) UILabel *titleLabel; +@property (nonatomic,strong) UIStackView *stackView; +@property (nonatomic,strong) UIView * collectiveRegard; +@property (nonatomic,strong) NetIndicateRegard *collectiveIndicateRegard; +@property (nonatomic,strong) UILabel *collectiveMonicerSequencignation; +@property (nonatomic,strong) UIButton *foldBtuton; +@property (nonatomic,strong) UIView * burlywoodRegard; +@property (nonatomic,strong) UIView * corridorRegard; +@property (nonatomic,strong) NetIndicateRegard *corridorIndicateRegard; +@property (nonatomic,strong) UILabel *corridorMonicerSequencignation; +@property (nonatomic,strong) UIButton *importBtuton; +@property (nonatomic,assign) BOOL isenfold; +@end + +@implementation YUMIManeAtomicCollectiveTabulationRegardElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.isenfold = YES; + self.backgroundColor = [UIColor clearColor]; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.encourageRegard]; + [self.encourageRegard addSubview:self.titleLabel]; + [self.encourageRegard addSubview:self.stackView]; + [self.stackView addArrangedSubview:self.collectiveRegard]; + [self.stackView addArrangedSubview:self.corridorRegard]; + + [self.collectiveRegard addSubview:self.collectiveIndicateRegard]; + [self.collectiveRegard addSubview:self.collectiveMonicerSequencignation]; + [self.collectiveRegard addSubview:self.foldBtuton]; + [self.collectiveRegard addSubview:self.burlywoodRegard]; + + [self.corridorRegard addSubview:self.corridorIndicateRegard]; + [self.corridorRegard addSubview:self.corridorMonicerSequencignation]; + [self.corridorRegard addSubview:self.importBtuton]; + +} + +- (void)initChildLyRestrictions { + [self.encourageRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.contentView).inset(15); + make.top.mas_equalTo(self.contentView); + make.bottom.mas_equalTo(self.contentView).offset(-15); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.encourageRegard).offset(12); + make.top.mas_equalTo(self.encourageRegard).offset(10); + }]; + + [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.encourageRegard).offset(10); + make.top.mas_equalTo(self.titleLabel.mas_bottom).offset(5); + make.right.mas_equalTo(self.encourageRegard).offset(-10); + }]; + + [self.collectiveRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(68); + }]; + + + [self.collectiveIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(48, 48)); + make.left.centerY.mas_equalTo(self.collectiveRegard); + }]; + + [self.collectiveMonicerSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.collectiveIndicateRegard.mas_right).offset(10); + make.centerY.mas_equalTo(self.collectiveIndicateRegard.mas_centerY); + }]; + + [self.foldBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(13, 22)); + make.right.mas_equalTo(self.collectiveRegard); + make.centerY.mas_equalTo(self.collectiveRegard); + }]; + + [self.burlywoodRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.bottom.left.right.mas_equalTo(self.collectiveRegard); + make.height.mas_equalTo(1); + }]; + + [self.corridorRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(60); + }]; + + [self.corridorIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(40, 40)); + make.centerY.mas_equalTo(self.corridorRegard); + make.left.mas_equalTo(self.corridorRegard); + }]; + + [self.corridorMonicerSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.corridorRegard); + make.left.mas_equalTo(self.corridorIndicateRegard.mas_right).offset(10); + make.right.mas_lessThanOrEqualTo(self.importBtuton.mas_left).offset(-5); + }]; + + [self.importBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(56, 20)); + make.centerY.mas_equalTo(self.corridorRegard); + make.right.mas_equalTo(self.corridorRegard); + }]; + +} + +#pragma mark - Event Response +- (void)importBtutonPerformance:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(fBCManeTowardsoloudspeakerCollectiveTarbsultowardsionViweElement:didClickEnter:)]) { + [self.delegate fBCManeTowardsoloudspeakerCollectiveTarbsultowardsionViweElement:self didClickEnter:self.collectiveAbstract]; + } +} + +- (void)foldBtutonPerformance:(UIButton *)sender{ + sender.selected = !sender.selected; + self.corridorRegard.hidden = !self.corridorRegard.hidden; + [UIView animateWithDuration:0.2 animations:^{ + if (self.foldBtuton.selected) { + self.foldBtuton.transform = CGAffineTransformIdentity; + } else { + self.foldBtuton.transform = CGAffineTransformMakeRotation(M_PI / 2); + } + }]; + if (self.delegate && [self.delegate respondsToSelector:@selector(fBCManeTowardsoloudspeakerCollectiveTarbsultowardsionViweElement:didClickFold:)]) { + [self.delegate fBCManeTowardsoloudspeakerCollectiveTarbsultowardsionViweElement:self didClickFold:sender]; + } +} + +- (void)didBetowardsCollectiveRegard { + if (self.delegate && [self.delegate respondsToSelector:@selector(fBCManeTowardsoloudspeakerCollectiveTarbsultowardsionViweElement:didClickClanView:)]) { + [self.delegate fBCManeTowardsoloudspeakerCollectiveTarbsultowardsionViweElement:self didClickClanView:self.collectiveAbstract]; + } +} + +- (void)didBetowardsCorridorRegard { + if (self.delegate && [self.delegate respondsToSelector:@selector(fBCManeTowardsoloudspeakerCollectiveTarbsultowardsionViweElement:didClickHallView:)]) { + [self.delegate fBCManeTowardsoloudspeakerCollectiveTarbsultowardsionViweElement:self didClickHallView:self.collectiveAbstract]; + } +} + +#pragma mark - Getters And Setters +- (void)setCollectiveAbstract:(CollectiveSpecificAbstractMatrix *)collectiveAbstract { + _collectiveAbstract = collectiveAbstract; + if (_collectiveAbstract) { + self.collectiveRegard.hidden = _collectiveAbstract.clan.elderUid.length <= 0; + if (self.collectiveAbstract.clan.elderUid.length > 0) { + if (self.collectiveAbstract.hall.ownerUid.length > 0) { + self.titleLabel.text = YMLocalizedString(@"YUMI_Mine_Data_Clan_Table_View_Cell_0"); + self.foldBtuton.hidden = NO; + self.collectiveRegard.hidden = NO; + self.corridorRegard.hidden = self.isenfold ? YES : NO; + } else { + self.titleLabel.text = YMLocalizedString(@"YUMI_Mine_Data_Clan_Table_View_Cell_1"); + self.foldBtuton.hidden = YES; + self.collectiveRegard.hidden = NO; + self.corridorRegard.hidden = YES; + } + } else { + if (self.collectiveAbstract.hall.ownerUid.length > 0) { + self.titleLabel.text = YMLocalizedString(@"YUMI_Mine_Data_Clan_Table_View_Cell_2"); + self.collectiveRegard.hidden = YES; + self.corridorRegard.hidden = NO; + } else { + self.collectiveRegard.hidden = YES; + self.corridorRegard.hidden = YES; + } + } + self.foldBtuton.hidden = YES; + self.collectiveIndicateRegard.imageUrl = _collectiveAbstract.clan.avatar; + self.collectiveMonicerSequencignation.text = _collectiveAbstract.clan.name; + self.corridorIndicateRegard.imageUrl = _collectiveAbstract.hall.ownerAvatar; + self.corridorMonicerSequencignation.text = _collectiveAbstract.hall.hallName; + } +} + + +- (void)setIsExhibitImportCorridor:(BOOL)isExhibitImportCorridor { + _isExhibitImportCorridor = isExhibitImportCorridor; +} + +- (UIView *)encourageRegard { + if (!_encourageRegard) { + _encourageRegard = [[UIView alloc] init]; + _encourageRegard.userInteractionEnabled = YES; + _encourageRegard.layer.cornerRadius = 10; + _encourageRegard.backgroundColor =[DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify]; + _encourageRegard.layer.shadowColor = UIColorFromRGB(0xE4E4E4).CGColor; + _encourageRegard.layer.shadowOffset = CGSizeMake(0, 2); + _encourageRegard.layer.shadowRadius = 8; + } + return _encourageRegard; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.text = YMLocalizedString(@"YUMI_Mine_Data_Clan_Table_View_Cell_3"); + _titleLabel.font = [UIFont systemFontOfSize:14 weight:UIFontWeightMedium]; + _titleLabel.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _titleLabel; +} + +- (UIStackView *)stackView { + if (!_stackView) { + _stackView = [[UIStackView alloc] init]; + _stackView.axis = UILayoutConstraintAxisVertical; + _stackView.distribution = UIStackViewDistributionFill; + _stackView.alignment = UIStackViewAlignmentFill; + _stackView.spacing = 0; + } + return _stackView; +} + +- (UIView *)collectiveRegard { + if (!_collectiveRegard) { + _collectiveRegard = [[UIView alloc] init]; + _collectiveRegard.backgroundColor = [UIColor clearColor]; + } + return _collectiveRegard; +} + +- (NetIndicateRegard *)collectiveIndicateRegard { + if (!_collectiveIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _collectiveIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _collectiveIndicateRegard.layer.masksToBounds = YES; + _collectiveIndicateRegard.layer.cornerRadius = 8; + _collectiveIndicateRegard.userInteractionEnabled = YES; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didBetowardsCollectiveRegard)]; + [_collectiveIndicateRegard addGestureRecognizer:tap]; + } + return _collectiveIndicateRegard; +} + +- (UILabel *)collectiveMonicerSequencignation { + if (!_collectiveMonicerSequencignation) { + _collectiveMonicerSequencignation = [[UILabel alloc] init]; + _collectiveMonicerSequencignation.font = [UIFont systemFontOfSize:14 weight:UIFontWeightMedium]; + _collectiveMonicerSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _collectiveMonicerSequencignation; +} + + +- (UIButton *)foldBtuton { + if (!_foldBtuton) { + _foldBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_foldBtuton setImage:[UIImage imageNamed:@"yumi_scope_setting_arrow"] forState:UIControlStateNormal]; + [_foldBtuton setImage:[UIImage imageNamed:@"yumi_scope_setting_arrow"] forState:UIControlStateSelected]; + [_foldBtuton addTarget:self action:@selector(foldBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + _foldBtuton.transform = CGAffineTransformMakeRotation(M_PI / 2); + _foldBtuton.hidden = YES; + [_foldBtuton setEnlargeEdgeAboutApex:10 right:10 bottom:10 left:10]; + } + return _foldBtuton; +} + +- (UIView *)burlywoodRegard { + if (!_burlywoodRegard) { + _burlywoodRegard = [[UIView alloc] init]; + _burlywoodRegard.backgroundColor = [UIColor clearColor]; + } + return _burlywoodRegard; +} + +- (UIView *)corridorRegard { + if (!_corridorRegard) { + _corridorRegard = [[UIView alloc] init]; + _corridorRegard.backgroundColor = [UIColor clearColor]; + _corridorRegard.hidden = NO; + } + return _corridorRegard; +} + +- (NetIndicateRegard *)corridorIndicateRegard { + if (!_corridorIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _corridorIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _corridorIndicateRegard.layer.masksToBounds = YES; + _corridorIndicateRegard.layer.cornerRadius = 8; + _corridorIndicateRegard.userInteractionEnabled = YES; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didBetowardsCorridorRegard)]; + [_corridorIndicateRegard addGestureRecognizer:tap]; + } + return _corridorIndicateRegard; +} + +- (UILabel *)corridorMonicerSequencignation { + if (!_corridorMonicerSequencignation) { + _corridorMonicerSequencignation = [[UILabel alloc] init]; + _corridorMonicerSequencignation.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium]; + _corridorMonicerSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _corridorMonicerSequencignation; +} + +- (UIButton *)importBtuton { + if (!_importBtuton) { + _importBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_importBtuton setTitle:YMLocalizedString(@"YUMI_Mine_Data_Clan_Table_View_Cell_4") forState:UIControlStateNormal]; + [_importBtuton setTitleColor:UIColorFromRGB(0xFFC000) forState:UIControlStateNormal]; + _importBtuton.titleLabel.font = [UIFont systemFontOfSize:10]; + _importBtuton.backgroundColor = UIColorRGBAlpha(0xFFC000, 0.2); + _importBtuton.layer.masksToBounds = YES; + _importBtuton.layer.cornerRadius = 10; + [_importBtuton addTarget:self action:@selector(importBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _importBtuton; +} + + +@end diff --git a/YuMi/Modules/YMMine/View/Cell/MineInfo/YUMIManeAtomicPresentAssembletionRegardElement.h b/YuMi/Modules/YMMine/View/Cell/MineInfo/YUMIManeAtomicPresentAssembletionRegardElement.h new file mode 100644 index 00000000..3e8170cd --- /dev/null +++ b/YuMi/Modules/YMMine/View/Cell/MineInfo/YUMIManeAtomicPresentAssembletionRegardElement.h @@ -0,0 +1,16 @@ +// +// YMMineDataGiftCollectionViewCell.h +// YUMI +// +// Created by YUMI on 2022/4/14. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class ConsumerPresentRamparatAbstractMatrix; +@interface YUMIManeAtomicPresentAssembletionRegardElement : UICollectionViewCell +@property (nonatomic,strong) ConsumerPresentRamparatAbstractMatrix *giftInfo; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Cell/MineInfo/YUMIManeAtomicPresentAssembletionRegardElement.m b/YuMi/Modules/YMMine/View/Cell/MineInfo/YUMIManeAtomicPresentAssembletionRegardElement.m new file mode 100644 index 00000000..874d9509 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Cell/MineInfo/YUMIManeAtomicPresentAssembletionRegardElement.m @@ -0,0 +1,85 @@ +// +// YMMineDataGiftCollectionViewCell.m +// YUMI +// +// Created by YUMI on 2022/4/14. +// + +#import "YUMIManeAtomicPresentAssembletionRegardElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "NetIndicateRegard.h" +#import "UIView+Corner.h" +#import "ConsumerPresentRamparatAbstractMatrix.h" + +@interface YUMIManeAtomicPresentAssembletionRegardElement () +@property (nonatomic,strong) NetIndicateRegard *presentIndicateRegard; +@property (nonatomic,strong) UILabel *presentDigitalSequencignation; +@end + +@implementation YUMIManeAtomicPresentAssembletionRegardElement + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method + +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor]; + [self.contentView addSubview:self.presentIndicateRegard]; + [self.contentView addSubview:self.presentDigitalSequencignation]; +} + +- (void)initChildLyRestrictions { + [self.presentIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(47, 47)); + make.top.centerX.mas_equalTo(self.contentView); + }]; + + [self.presentDigitalSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.contentView); + make.top.mas_equalTo(self.presentIndicateRegard.mas_bottom).offset(3); + make.size.mas_equalTo(CGSizeMake(51, 15)); + }]; +} + +#pragma mark - Getters And Setters +- (void)setGiftInfo:(ConsumerPresentRamparatAbstractMatrix *)giftInfo { + _giftInfo = giftInfo; + if (_giftInfo) { + self.presentIndicateRegard.imageUrl = _giftInfo.picUrl; + self.presentDigitalSequencignation.text = [NSString stringWithFormat:@"X%ld", _giftInfo.reciveCount]; + } +} + +- (NetIndicateRegard *)presentIndicateRegard { + if (!_presentIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _presentIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + } + return _presentIndicateRegard; +} + + +- (UILabel *)presentDigitalSequencignation { + if (!_presentDigitalSequencignation) { + _presentDigitalSequencignation = [[UILabel alloc] init]; + _presentDigitalSequencignation.font = [UIFont systemFontOfSize:10]; + _presentDigitalSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _presentDigitalSequencignation.backgroundColor = UIColorFromRGB(0xF1F1FA); + _presentDigitalSequencignation.textAlignment = NSTextAlignmentCenter; + [_presentDigitalSequencignation setMonopolizeAboutContraryApexMonopolize:2 rightTopCorner:6 bottomLeftCorner:6 bottomRightCorner:2 size:CGSizeMake(51, 15)]; + } + return _presentDigitalSequencignation; +} + + +@end diff --git a/YuMi/Modules/YMMine/View/Cell/MineInfo/YUMIManeAtomicPresentTabulationRegardElement.h b/YuMi/Modules/YMMine/View/Cell/MineInfo/YUMIManeAtomicPresentTabulationRegardElement.h new file mode 100644 index 00000000..7f7d355c --- /dev/null +++ b/YuMi/Modules/YMMine/View/Cell/MineInfo/YUMIManeAtomicPresentTabulationRegardElement.h @@ -0,0 +1,23 @@ +// +// YMMineDataGiftTableViewCell.h +// YUMI +// +// Created by YUMI on 2022/4/14. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class YUMIManeAtomicPresentTabulationRegardElement, ConsumerPresentRamparatAbstractMatrix; +@protocol FBCManeAtomicPresentTabulationViweElementRepresendtation + +- (void)fBCManeTowardsoloudspeakerPresentTarbsultowardsionViweElement:(YUMIManeAtomicPresentTabulationRegardElement *)view didClickMore:(UIButton *)sender; + +@end +@interface YUMIManeAtomicPresentTabulationRegardElement : UITableViewCell +@property (nonatomic,strong) NSArray *userGiftWall; +@property (nonatomic,strong) NSArray *userLuckyBagGiftWall; +@property (nonatomic,weak) id delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Cell/MineInfo/YUMIManeAtomicPresentTabulationRegardElement.m b/YuMi/Modules/YMMine/View/Cell/MineInfo/YUMIManeAtomicPresentTabulationRegardElement.m new file mode 100644 index 00000000..76337229 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Cell/MineInfo/YUMIManeAtomicPresentTabulationRegardElement.m @@ -0,0 +1,216 @@ +// +// YMMineDataGiftTableViewCell.m +// YUMI +// +// Created by YUMI on 2022/4/14. +// + +#import "YUMIManeAtomicPresentTabulationRegardElement.h" +#import +#import +#import +#import +#import "YUMIMacroUitls.h" +#import "DJDKMIMOMColor.h" +#import "UIIndicateConstant.h" +#import "UIButton+EnlargeTouchArea.h" +#import "UIImage+Utils.h" +#import "YUMIManeConsumerAbstractPresentRegard.h" + +@interface YUMIManeAtomicPresentTabulationRegardElement () +@property (nonatomic,strong) UIImageView * encourageIndicateRegard; +@property (nonatomic,strong) UIButton *arrowBtuton; +@property (nonatomic,strong) UILabel *titleLabel; +@property (nonatomic, strong) NSArray *titles; +@property (nonatomic, strong) JXCategoryTitleView *titleView; +@property (nonatomic, strong) JXCategoryListContainerView *containerView; +@property (nonatomic,strong) YUMIManeConsumerAbstractPresentRegard *ordinaryPresentRegard; +@property (nonatomic,strong) YUMIManeConsumerAbstractPresentRegard *fortunatePresentRegard; +@end + +@implementation YUMIManeAtomicPresentTabulationRegardElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor]; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.encourageIndicateRegard]; + + [self.encourageIndicateRegard addSubview:self.titleLabel]; + [self.encourageIndicateRegard addSubview:self.arrowBtuton]; + [self.encourageIndicateRegard addSubview:self.titleView]; + [self.encourageIndicateRegard addSubview:self.containerView]; +} + +- (void)initChildLyRestrictions { + [self.encourageIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.contentView).inset(15); + make.top.mas_equalTo(self.contentView); + make.bottom.mas_equalTo(self.contentView).offset(-15); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.encourageIndicateRegard).offset(12); + make.top.mas_equalTo(self.encourageIndicateRegard).offset(12); + }]; + + [self.arrowBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(13, 22)); + make.centerY.mas_equalTo(self.titleLabel); + make.right.mas_equalTo(self.encourageIndicateRegard).offset(-15); + }]; + + [self.titleView mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.encourageIndicateRegard); + make.width.mas_equalTo(100 * 2 + 20); + make.height.mas_equalTo(30); + make.top.mas_equalTo(self.titleLabel.mas_bottom).offset(23); + }]; + + [self.containerView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.mas_equalTo(self.encourageIndicateRegard); + make.top.mas_equalTo(self.titleView.mas_bottom).offset(20); + }]; +} + +#pragma mark - JXCategoryViewDelegate +- (NSInteger)numberOfListsInlistContainerView:(JXCategoryListContainerView *)listContainerView { + return self.titles.count; +} + +- (id)listContainerView:(JXCategoryListContainerView *)listContainerView initListForIndex:(NSInteger)index { + if (index == 0) { + return self.ordinaryPresentRegard; + } else { + return self.fortunatePresentRegard; + } +} +#pragma mark - Event Response +- (void)arrowBtutonPerformance:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(fBCManeTowardsoloudspeakerPresentTarbsultowardsionViweElement:didClickMore:)]) { + [self.delegate fBCManeTowardsoloudspeakerPresentTarbsultowardsionViweElement:self didClickMore:sender]; + } +} + +#pragma mark - Getters And Setters +- (void)setUserGiftWall:(NSArray *)userGiftWall { + _userGiftWall = userGiftWall; + if (_userGiftWall.count > 12) { + NSMutableArray * array = [_userGiftWall mutableCopy]; + _userGiftWall = [array subarrayWithRange:NSMakeRange(0, 12)]; + } + self.ordinaryPresentRegard.datasource = _userGiftWall; +} + +- (void)setUserLuckyBagGiftWall:(NSArray *)userLuckyBagGiftWall { + _userLuckyBagGiftWall = userLuckyBagGiftWall; + if (_userLuckyBagGiftWall.count > 12) { + NSMutableArray * array = [_userLuckyBagGiftWall mutableCopy]; + _userLuckyBagGiftWall = [array subarrayWithRange:NSMakeRange(0, 12)]; + } + self.fortunatePresentRegard.datasource = _userLuckyBagGiftWall; +} + +- (UIImageView *)encourageIndicateRegard { + if (!_encourageIndicateRegard) { + _encourageIndicateRegard = [[UIImageView alloc] init]; + _encourageIndicateRegard.userInteractionEnabled = YES; + _encourageIndicateRegard.layer.cornerRadius = 10; + _encourageIndicateRegard.backgroundColor =[DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify]; + _encourageIndicateRegard.layer.shadowColor = UIColorFromRGB(0xE4E4E4).CGColor; + _encourageIndicateRegard.layer.shadowOpacity = 1; + _encourageIndicateRegard.layer.shadowOffset = CGSizeMake(0, 2); + _encourageIndicateRegard.layer.shadowRadius = 8; + } + return _encourageIndicateRegard; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.text = YMLocalizedString(@"YUMI_Mine_Data_Gift_Table_View_Cell_0"); + _titleLabel.font = [UIFont systemFontOfSize:14 weight:UIFontWeightMedium]; + _titleLabel.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _titleLabel; +} + +- (UIButton *)arrowBtuton { + if (!_arrowBtuton) { + _arrowBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_arrowBtuton setImage:[UIImage imageNamed:@"yumi_scope_setting_arrow"] forState:UIControlStateNormal]; + [_arrowBtuton setImage:[UIImage imageNamed:@"yumi_scope_setting_arrow"] forState:UIControlStateSelected]; + [_arrowBtuton addTarget:self action:@selector(arrowBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + [_arrowBtuton setEnlargeEdgeAboutApex:10 right:10 bottom:10 left:10]; + } + return _arrowBtuton; +} + +- (JXCategoryTitleView *)titleView { + if (!_titleView) { + _titleView = [[JXCategoryTitleView alloc] init]; + _titleView.delegate = self; + _titleView.titles = self.titles; + _titleView.backgroundColor = [UIColor clearColor]; + _titleView.titleColor = [DJDKMIMOMColor instantEssayPrettify]; + _titleView.titleSelectedColor = [DJDKMIMOMColor mainEssayPrettify]; + _titleView.titleFont = [UIFont systemFontOfSize:12]; + _titleView.titleSelectedFont = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium]; + _titleView.titleLabelAnchorPointStyle = JXCategoryTitleLabelAnchorPointStyleCenter; + _titleView.contentScrollViewClickTransitionAnimationEnabled = NO; + _titleView.defaultSelectedIndex = 0; + _titleView.cellSpacing = 20; + _titleView.cellWidthIncrement = 5; + _titleView.cellWidth = 60; + _titleView.listContainer = self.containerView; + + JXCategoryIndicatorImageView *burlywoodRegard = [[JXCategoryIndicatorImageView alloc] init]; + burlywoodRegard.indicatorImageViewSize = CGSizeMake(60, 8); + burlywoodRegard.verticalMargin = 6; + burlywoodRegard.indicatorImageView.image = [UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[UIColorFromRGB(0xFFC000), UIColorFromRGB(0xFFD15A)] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(60, 8)]; + burlywoodRegard.indicatorImageView.layer.masksToBounds = YES; + burlywoodRegard.indicatorImageView.layer.cornerRadius = 6; + _titleView.indicators = @[burlywoodRegard]; + } + return _titleView; +} + +- (JXCategoryListContainerView *)containerView { + if (!_containerView) { + _containerView = [[JXCategoryListContainerView alloc] initWithType:JXCategoryListContainerType_ScrollView delegate:self]; + _containerView.defaultSelectedIndex = 0; + _containerView.scrollView.tag = 1009; + } + return _containerView; +} + +- (NSArray *)titles { + if (!_titles) { + _titles = @[@"普通礼物", YMLocalizedString(@"YUMI_Mine_Data_Gift_Table_View_Cell_2")]; + } + return _titles; +} + +- (YUMIManeConsumerAbstractPresentRegard *)ordinaryPresentRegard { + if (!_ordinaryPresentRegard) { + _ordinaryPresentRegard = [[YUMIManeConsumerAbstractPresentRegard alloc] init]; + } + return _ordinaryPresentRegard; +} + +- (YUMIManeConsumerAbstractPresentRegard *)fortunatePresentRegard { + if (!_fortunatePresentRegard) { + _fortunatePresentRegard = [[YUMIManeConsumerAbstractPresentRegard alloc] init]; + } + return _fortunatePresentRegard; +} + +@end diff --git a/YuMi/Modules/YMMine/View/Cell/MineInfo/YUMIManeConsumerAbstractAlbumAssembletionRegardElement.h b/YuMi/Modules/YMMine/View/Cell/MineInfo/YUMIManeConsumerAbstractAlbumAssembletionRegardElement.h new file mode 100644 index 00000000..5477aaa2 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Cell/MineInfo/YUMIManeConsumerAbstractAlbumAssembletionRegardElement.h @@ -0,0 +1,24 @@ +// +// YMMineUserInfoAlbumCollectionViewCell.h +// YUMI +// +// Created by YUMI on 2021/9/24. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class ConsumerAppearance, YUMIManeConsumerAbstractAlbumAssembletionRegardElement; + +@protocol FBCManeConsumerAbstractAlbumAssembletionRegardElementRepresendtation +- (void)fBCManeConsumerAbstractBrochureAssembletionRegardElement:(YUMIManeConsumerAbstractAlbumAssembletionRegardElement * )cell didDeleteItem:(ConsumerAppearance *)appearance; +@end + +@interface YUMIManeConsumerAbstractAlbumAssembletionRegardElement : UICollectionViewCell +@property (nonatomic,weak) id delegate; +@property (nonatomic,strong) ConsumerAppearance *appearance; +@property (nonatomic,copy) NSString *accelerateIndicateConstitute; +@property (nonatomic,assign) BOOL isCompile; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Cell/MineInfo/YUMIManeConsumerAbstractAlbumAssembletionRegardElement.m b/YuMi/Modules/YMMine/View/Cell/MineInfo/YUMIManeConsumerAbstractAlbumAssembletionRegardElement.m new file mode 100644 index 00000000..7858bde4 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Cell/MineInfo/YUMIManeConsumerAbstractAlbumAssembletionRegardElement.m @@ -0,0 +1,96 @@ +// +// YMMineUserInfoAlbumCollectionViewCell.m +// YUMI +// +// Created by YUMI on 2021/9/24. +// + +#import "YUMIManeConsumerAbstractAlbumAssembletionRegardElement.h" +#import +#import "UIButton+EnlargeTouchArea.h" +#import "ConsumerAppearance.h" + +#import "NetIndicateRegard.h" + +@interface YUMIManeConsumerAbstractAlbumAssembletionRegardElement () +@property (nonatomic,strong) NetIndicateRegard *brandIndicateRegard; +@property (nonatomic,strong) UIButton *representationBtuton; +@end + +@implementation YUMIManeConsumerAbstractAlbumAssembletionRegardElement + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} +#pragma mark - Response +- (void)representtowardsionBtutonPerformance:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(fBCManeConsumerAbstractBrochureAssembletionRegardElement:didDeleteItem:)]) { + [self.delegate fBCManeConsumerAbstractBrochureAssembletionRegardElement:self didDeleteItem:self.appearance]; + } +} +#pragma mark - Private Method +- (void)initSubViews { + [self.contentView addSubview:self.brandIndicateRegard]; + [self.contentView addSubview:self.representationBtuton]; +} + +- (void)initChildLyRestrictions { + [self.brandIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.contentView); + }]; + + [self.representationBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(25, 25)); + make.top.right.mas_equalTo(self.contentView).inset(0); + }]; +} + +#pragma mark - Getters And Setters +- (void)setAppearance:(ConsumerAppearance *)appearance { + _appearance = appearance; + if (_appearance) { + self.brandIndicateRegard.imageUrl = appearance.photoUrl; + } +} + +- (void)setIsCompile:(BOOL)isCompile { + _isCompile = isCompile; + self.representationBtuton.hidden = !_isCompile; +} + +- (void)setAccelerateIndicateConstitute:(NSString *)accelerateIndicateConstitute { + _accelerateIndicateConstitute = accelerateIndicateConstitute; + if (_accelerateIndicateConstitute.length > 0) { + self.brandIndicateRegard.image = [UIImage imageNamed:_accelerateIndicateConstitute]; + } +} + +- (NetIndicateRegard *)brandIndicateRegard { + if (!_brandIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + _brandIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _brandIndicateRegard.userInteractionEnabled = YES; + _brandIndicateRegard.layer.cornerRadius = 5; + _brandIndicateRegard.layer.masksToBounds = YES; + _brandIndicateRegard.contentMode = UIViewContentModeScaleAspectFill; + } + return _brandIndicateRegard; +} + +- (UIButton *)representationBtuton { + if (!_representationBtuton) { + _representationBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_representationBtuton setImage:[UIImage imageNamed:@"yumi_center_user_gen_edit_photo_delete"] forState:UIControlStateNormal]; + [_representationBtuton setImage:[UIImage imageNamed:@"yumi_center_user_gen_edit_photo_delete"] forState:UIControlStateSelected]; + [_representationBtuton addTarget:self action:@selector(representtowardsionBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _representationBtuton; +} + +@end diff --git a/YuMi/Modules/YMMine/View/Cell/MineInfo/YUMIManeConsumerAbstractCompileTabulationRegardElement.h b/YuMi/Modules/YMMine/View/Cell/MineInfo/YUMIManeConsumerAbstractCompileTabulationRegardElement.h new file mode 100644 index 00000000..026f7d5d --- /dev/null +++ b/YuMi/Modules/YMMine/View/Cell/MineInfo/YUMIManeConsumerAbstractCompileTabulationRegardElement.h @@ -0,0 +1,16 @@ +// +// YMMineUserInfoEditTableViewCell.h +// YUMI +// +// Created by YUMI on 2021/9/23. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class YUMIManeConsumerAbstractCompileMatrix; +@interface YUMIManeConsumerAbstractCompileTabulationRegardElement : UITableViewCell +@property (nonatomic,strong) YUMIManeConsumerAbstractCompileMatrix *itmeMatrix; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Cell/MineInfo/YUMIManeConsumerAbstractCompileTabulationRegardElement.m b/YuMi/Modules/YMMine/View/Cell/MineInfo/YUMIManeConsumerAbstractCompileTabulationRegardElement.m new file mode 100644 index 00000000..274fd932 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Cell/MineInfo/YUMIManeConsumerAbstractCompileTabulationRegardElement.m @@ -0,0 +1,301 @@ +// +// YMMineUserInfoEditTableViewCell.m +// YUMI +// +// Created by YUMI on 2021/9/23. +// + +#import "YUMIManeConsumerAbstractCompileTabulationRegardElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "YUMIManeConsumerAbstractCompileMatrix.h" +#import "ConsumerAppearance.h" + +#import "NetIndicateRegard.h" +#import "UIImage+Utils.h" + +@interface YUMIManeConsumerAbstractCompileTabulationRegardElement () +@property (nonatomic,strong) UIStackView *stackView; +@property (nonatomic,strong) UILabel *titleLabel; +@property (nonatomic,strong) NetIndicateRegard *intelligenceportraitIndicateRegard; +@property (nonatomic,strong) UILabel *subChampionSequencignation; +@property (nonatomic,strong) UIImageView *arrowIndicateRegard; +@property (nonatomic,strong) UIStackView *appearancetHierarchyRegard; +@property (nonatomic,strong) NetIndicateRegard *thresholdAppearanceIndicateRegard; +@property (nonatomic,strong) NetIndicateRegard *instantAppearanceIndicateRegard; +@property (nonatomic,strong) NetIndicateRegard *tertiusAppearanceIndicateRegard; +@property (nonatomic,strong) UIView * partBurlywoodRegard; +@property (nonatomic,strong) NSMutableArray *appearanceRegardGarment; +@end + +@implementation YUMIManeConsumerAbstractCompileTabulationRegardElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor]; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.stackView]; + [self.contentView addSubview:self.partBurlywoodRegard]; + + [self.stackView addArrangedSubview:self.titleLabel]; + [self.stackView addArrangedSubview:self.intelligenceportraitIndicateRegard]; + [self.stackView addArrangedSubview:self.subChampionSequencignation]; + [self.stackView addArrangedSubview:self.appearancetHierarchyRegard]; + [self.stackView addArrangedSubview:self.arrowIndicateRegard]; + + [self.appearancetHierarchyRegard addArrangedSubview:self.tertiusAppearanceIndicateRegard]; + [self.appearancetHierarchyRegard addArrangedSubview:self.instantAppearanceIndicateRegard]; + [self.appearancetHierarchyRegard addArrangedSubview:self.thresholdAppearanceIndicateRegard]; + + [self.appearanceRegardGarment addObject:self.thresholdAppearanceIndicateRegard]; + [self.appearanceRegardGarment addObject:self.instantAppearanceIndicateRegard]; + [self.appearanceRegardGarment addObject:self.tertiusAppearanceIndicateRegard]; +} + +- (void)initChildLyRestrictions { + [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.contentView); + make.bottom.mas_equalTo(self.partBurlywoodRegard.mas_top); + make.left.right.mas_equalTo(self.contentView).inset(15); + }]; + + [self.partBurlywoodRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.contentView).inset(25); + make.bottom.mas_equalTo(self.contentView); + make.height.mas_equalTo(1); + }]; + + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(50, 50)); + }]; + + [self.arrowIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(6, 10)); + }]; + + [self.thresholdAppearanceIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.mas_equalTo(35); + }]; + + [self.instantAppearanceIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.mas_equalTo(self.thresholdAppearanceIndicateRegard); + }]; + + [self.tertiusAppearanceIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.mas_equalTo(self.thresholdAppearanceIndicateRegard); + }]; +} + +- (void)chamberAplictowardsionearanceRegardAboutAplictowardsionearanceGarment:(NSArray *)array { + if (array.count > 3) { + array = [array subarrayWithRange:NSMakeRange(0, 3)]; + } + self.thresholdAppearanceIndicateRegard.hidden = YES; + self.instantAppearanceIndicateRegard.hidden = YES; + self.tertiusAppearanceIndicateRegard.hidden = YES; + for (int i = 0; i < array.count; i++) { + NetIndicateRegard * imageView = [self.appearanceRegardGarment objectAtIndex:i]; + NSString * imageUrl = [array objectAtIndex:i].photoUrl; + if (imageUrl.length > 0) { + imageView.imageUrl = imageUrl; + imageView.hidden = NO; + } + } +} + +- (void)prohibitipositionElementAboutMtowardsrix:(YUMIManeConsumerAbstractCompileMatrix *)model{ + switch (model.type) { + case YUMIManeConsumerAbstractEditGenre_Avatar: + { + self.subChampionSequencignation.hidden = YES; + self.appearancetHierarchyRegard.hidden = YES; + self.intelligenceportraitIndicateRegard.hidden = NO; + if (model.isReview) { + [self.intelligenceportraitIndicateRegard chamberIndictowardseAboutWeebsite:model.avatarUrl completion:^(UIImage * _Nonnull image, NSURL * _Nonnull url) { + UIImage * waterImage = [UIImage imageNamed:@"yumi_center_avatar_reviewing"]; + float ratio = waterImage.size.height / waterImage.size.width; + float rectY = image.size.height * (1 - ratio); + self.intelligenceportraitIndicateRegard.image = [UIImage wtowardserIndictowardseAboutIndictowardse:image waterImage:waterImage waterImageRect:CGRectMake(0, rectY, image.size.width, image.size.height * ratio)]; + }]; + } else { + self.intelligenceportraitIndicateRegard.imageUrl = model.avatarUrl; + } + } + break; + case YUMIManeConsumerAbstractEditGenre_Birth: + { + self.subChampionSequencignation.hidden = NO; + self.appearancetHierarchyRegard.hidden = YES; + self.intelligenceportraitIndicateRegard.hidden = YES; + } + break; + case YUMIManeConsumerAbstractEditGenre_Nick: + { + self.subChampionSequencignation.hidden = NO; + self.appearancetHierarchyRegard.hidden = YES; + self.intelligenceportraitIndicateRegard.hidden = YES; + } + break; + case YUMIManeConsumerAbstractEditGenre_UseDes: + { + self.subChampionSequencignation.hidden = NO; + self.appearancetHierarchyRegard.hidden = YES; + self.intelligenceportraitIndicateRegard.hidden = YES; + } + break; + case YUMIManeConsumerAbstractEditGenre_Photo: + { + self.subChampionSequencignation.hidden = YES; + self.appearancetHierarchyRegard.hidden = NO; + self.intelligenceportraitIndicateRegard.hidden = YES; + [self chamberAplictowardsionearanceRegardAboutAplictowardsionearanceGarment:model.photoArray]; + } + break; + + default: + break; + } +} + +#pragma mark - Getters And Setters +- (void)setItmeMatrix:(YUMIManeConsumerAbstractCompileMatrix *)itmeMatrix { + _itmeMatrix = itmeMatrix; + if (_itmeMatrix) { + self.titleLabel.text = _itmeMatrix.title; + self.subChampionSequencignation.text = _itmeMatrix.subTitle; + [self prohibitipositionElementAboutMtowardsrix:itmeMatrix]; + } +} + +- (UIStackView *)stackView { + if (!_stackView) { + _stackView = [[UIStackView alloc] init]; + _stackView.axis = UILayoutConstraintAxisHorizontal; + _stackView.distribution = UIStackViewDistributionFill; + _stackView.alignment = UIStackViewAlignmentCenter; + _stackView.spacing = 10; + } + return _stackView; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.font = [UIFont systemFontOfSize:14]; + _titleLabel.textColor = [DJDKMIMOMColor mainEssayPrettify]; + [_titleLabel setContentHuggingPriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal]; + } + return _titleLabel; +} + +- (UILabel *)subChampionSequencignation { + if (!_subChampionSequencignation) { + _subChampionSequencignation = [[UILabel alloc] init]; + _subChampionSequencignation.textColor = [DJDKMIMOMColor instantEssayPrettify]; + _subChampionSequencignation.font = [UIFont systemFontOfSize:12.f]; + _subChampionSequencignation.textAlignment = NSTextAlignmentRight; + } + return _subChampionSequencignation; +} + +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceportraitIndicateRegard.userInteractionEnabled = YES; + _intelligenceportraitIndicateRegard.layer.cornerRadius = 25; + _intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + } + return _intelligenceportraitIndicateRegard; +} + +- (UIImageView *)arrowIndicateRegard { + if (!_arrowIndicateRegard) { + _arrowIndicateRegard = [[UIImageView alloc] init]; + _arrowIndicateRegard.userInteractionEnabled = YES; + _arrowIndicateRegard.image = [UIImage imageNamed:@"yumi_center_item_arrow"]; + [_arrowIndicateRegard setContentCompressionResistancePriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisVertical]; + } + return _arrowIndicateRegard; +} + +- (UIStackView *)appearancetHierarchyRegard { + if (!_appearancetHierarchyRegard) { + _appearancetHierarchyRegard = [[UIStackView alloc] init]; + _appearancetHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _appearancetHierarchyRegard.distribution = UIStackViewDistributionFill; + _appearancetHierarchyRegard.alignment = UIStackViewAlignmentFill; + _appearancetHierarchyRegard.spacing = 10; + } + return _appearancetHierarchyRegard; +} + +- (NetIndicateRegard *)thresholdAppearanceIndicateRegard { + if (!_thresholdAppearanceIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _thresholdAppearanceIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _thresholdAppearanceIndicateRegard.userInteractionEnabled = YES; + _thresholdAppearanceIndicateRegard.layer.masksToBounds = YES; + _thresholdAppearanceIndicateRegard.layer.cornerRadius = 5; + _thresholdAppearanceIndicateRegard.hidden = YES; + } + return _thresholdAppearanceIndicateRegard; +} + +- (NetIndicateRegard *)instantAppearanceIndicateRegard { + if (!_instantAppearanceIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _instantAppearanceIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _instantAppearanceIndicateRegard.userInteractionEnabled = YES; + _instantAppearanceIndicateRegard.layer.masksToBounds = YES; + _instantAppearanceIndicateRegard.layer.cornerRadius = 5; + _instantAppearanceIndicateRegard.hidden = YES; + } + return _instantAppearanceIndicateRegard; +} + +- (NetIndicateRegard *)tertiusAppearanceIndicateRegard { + if (!_tertiusAppearanceIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _tertiusAppearanceIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _tertiusAppearanceIndicateRegard.userInteractionEnabled = YES; + _tertiusAppearanceIndicateRegard.layer.masksToBounds = YES; + _tertiusAppearanceIndicateRegard.layer.cornerRadius = 5; + _tertiusAppearanceIndicateRegard.hidden = YES; + } + return _tertiusAppearanceIndicateRegard; +} + +- (UIView *)partBurlywoodRegard { + if (!_partBurlywoodRegard) { + _partBurlywoodRegard = [[UIView alloc] init]; + _partBurlywoodRegard.backgroundColor = [DJDKMIMOMColor dividerPrettify]; + } + return _partBurlywoodRegard; +} + + +- (NSMutableArray *)appearanceRegardGarment { + if (!_appearanceRegardGarment) { + _appearanceRegardGarment = [NSMutableArray array]; + } + return _appearanceRegardGarment; +} + +@end diff --git a/YuMi/Modules/YMMine/View/Cell/MineInfo/YUMIManeConsumerAbstractDispossessAssembletionRegardElement.h b/YuMi/Modules/YMMine/View/Cell/MineInfo/YUMIManeConsumerAbstractDispossessAssembletionRegardElement.h new file mode 100644 index 00000000..e972fa8b --- /dev/null +++ b/YuMi/Modules/YMMine/View/Cell/MineInfo/YUMIManeConsumerAbstractDispossessAssembletionRegardElement.h @@ -0,0 +1,17 @@ +// +// YMMineUserInfoEmptyCollectionViewCell.h +// YUMI +// +// Created by YUMI on 2022/4/15. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeConsumerAbstractDispossessAssembletionRegardElement : UICollectionViewCell +@property (nonatomic,assign) BOOL isPresentWentirety; +@end + +NS_ASSUME_NONNULL_END + diff --git a/YuMi/Modules/YMMine/View/Cell/MineInfo/YUMIManeConsumerAbstractDispossessAssembletionRegardElement.m b/YuMi/Modules/YMMine/View/Cell/MineInfo/YUMIManeConsumerAbstractDispossessAssembletionRegardElement.m new file mode 100644 index 00000000..88620f46 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Cell/MineInfo/YUMIManeConsumerAbstractDispossessAssembletionRegardElement.m @@ -0,0 +1,80 @@ +// +// YMMineUserInfoEmptyCollectionViewCell.m +// YUMI +// +// Created by YUMI on 2022/4/15. +// + +#import "YUMIManeConsumerAbstractDispossessAssembletionRegardElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "UIIndicateConstant.h" + +@interface YUMIManeConsumerAbstractDispossessAssembletionRegardElement () +@property (nonatomic,strong) UIImageView *dispossessIndicateRegard; +@property (nonatomic,strong) UILabel *titleLabel; +@end + +@implementation YUMIManeConsumerAbstractDispossessAssembletionRegardElement + +- (instancetype)initWithFrame:(CGRect)frame +{ + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self.contentView addSubview:self.dispossessIndicateRegard]; + [self.contentView addSubview:self.titleLabel]; +} + +- (void)initChildLyRestrictions { + [self.dispossessIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.contentView); + make.top.mas_equalTo(self.contentView).offset(150); + make.size.mas_equalTo(CGSizeMake(100, 100)); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.dispossessIndicateRegard.mas_bottom).offset(20); + make.left.right.mas_equalTo(self.contentView); + }]; +} +#pragma mark - Getters And Setters +- (void)setIsPresentWentirety:(BOOL)isPresentWentirety { + _isPresentWentirety = isPresentWentirety; + if (_isPresentWentirety) { + [self.dispossessIndicateRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.contentView).offset(10); + }]; + self.titleLabel.font = [UIFont systemFontOfSize:13]; + } +} + +- (UIImageView *)dispossessIndicateRegard { + if (!_dispossessIndicateRegard) { + _dispossessIndicateRegard = [[UIImageView alloc] init]; + _dispossessIndicateRegard.userInteractionEnabled = YES; + _dispossessIndicateRegard.image = [UIIndicateConstant defalutDispossessDepapossessor]; + _dispossessIndicateRegard.layer.masksToBounds = YES; + _dispossessIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _dispossessIndicateRegard; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.text = YMLocalizedString(@"YUMI_Mine_User_Info_Empty_Collection_View_Cell_0"); + _titleLabel.font = [UIFont systemFontOfSize:16]; + _titleLabel.textAlignment = NSTextAlignmentCenter; + _titleLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + } + return _titleLabel; +} +@end diff --git a/YuMi/Modules/YMMine/View/Cell/MineInfo/YUMIManeConsumerAbstractPresentRamparatAssembletionRegardElement.h b/YuMi/Modules/YMMine/View/Cell/MineInfo/YUMIManeConsumerAbstractPresentRamparatAssembletionRegardElement.h new file mode 100644 index 00000000..717f424d --- /dev/null +++ b/YuMi/Modules/YMMine/View/Cell/MineInfo/YUMIManeConsumerAbstractPresentRamparatAssembletionRegardElement.h @@ -0,0 +1,16 @@ +// +// YMMineUserInfoGiftWallCollectionViewCell.h +// YUMI +// +// Created by YUMI on 2022/4/14. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class ConsumerPresentRamparatAbstractMatrix; +@interface YUMIManeConsumerAbstractPresentRamparatAssembletionRegardElement : UICollectionViewCell +@property (nonatomic,strong) ConsumerPresentRamparatAbstractMatrix *giftInfo; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Cell/MineInfo/YUMIManeConsumerAbstractPresentRamparatAssembletionRegardElement.m b/YuMi/Modules/YMMine/View/Cell/MineInfo/YUMIManeConsumerAbstractPresentRamparatAssembletionRegardElement.m new file mode 100644 index 00000000..ebc14339 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Cell/MineInfo/YUMIManeConsumerAbstractPresentRamparatAssembletionRegardElement.m @@ -0,0 +1,149 @@ +// +// YMMineUserInfoGiftWallCollectionViewCell.m +// YUMI +// +// Created by YUMI on 2022/4/14. +// + +#import "YUMIManeConsumerAbstractPresentRamparatAssembletionRegardElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "NetIndicateRegard.h" +#import "UIView+Corner.h" +#import "ConsumerPresentRamparatAbstractMatrix.h" + +@interface YUMIManeConsumerAbstractPresentRamparatAssembletionRegardElement () +@property (nonatomic,strong) NetIndicateRegard *presentIndicateRegard; +@property (nonatomic,strong) UIButton *digitalBtuton; +@property (nonatomic,strong) UILabel *presentConstituteSequencignation; +@property (nonatomic,strong) UIStackView *stackView; +@property (nonatomic,strong) UIImageView *bWSttawberryIndicateRegard; +@property (nonatomic,strong) UILabel *presentValencySequencignation; +@end + +@implementation YUMIManeConsumerAbstractPresentRamparatAssembletionRegardElement + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor]; + [self.contentView addSubview:self.presentIndicateRegard]; + [self.contentView addSubview:self.digitalBtuton]; + [self.contentView addSubview:self.presentConstituteSequencignation]; + [self.contentView addSubview:self.stackView]; + + [self.stackView addArrangedSubview:self.bWSttawberryIndicateRegard]; + [self.stackView addArrangedSubview:self.presentValencySequencignation]; +} + +- (void)initChildLyRestrictions { + [self.presentIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.contentView).inset(5); + make.top.mas_equalTo(self.contentView); + make.height.mas_equalTo(self.presentIndicateRegard.mas_width); + }]; + + [self.digitalBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(55, 15)); + make.centerX.mas_equalTo(self.contentView); + make.top.mas_equalTo(self.presentIndicateRegard.mas_bottom).offset(2); + }]; + + [self.presentConstituteSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.contentView); + make.top.mas_equalTo(self.digitalBtuton.mas_bottom).offset(10); + }]; + + [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.contentView); + make.top.mas_equalTo(self.presentConstituteSequencignation.mas_bottom).offset(3); + }]; + + [self.bWSttawberryIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(13, 13)); + }]; +} + +#pragma mark - Getters And Setters +- (void)setGiftInfo:(ConsumerPresentRamparatAbstractMatrix *)giftInfo { + _giftInfo = giftInfo; + if (_giftInfo) { + self.presentIndicateRegard.imageUrl = _giftInfo.picUrl; + self.presentConstituteSequencignation.text = _giftInfo.giftName; + self.presentValencySequencignation.text = [NSString stringWithFormat:@"%ld", _giftInfo.giftPrice]; + [self.digitalBtuton setTitle:[NSString stringWithFormat:@"X%ld", _giftInfo.reciveCount] forState:UIControlStateNormal]; + } +} + +- (NetIndicateRegard *)presentIndicateRegard { + if (!_presentIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _presentIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _presentIndicateRegard.contentMode = UIViewContentModeScaleAspectFill; + _presentIndicateRegard.layer.masksToBounds = YES; + } + return _presentIndicateRegard; +} + +- (UIButton *)digitalBtuton { + if (!_digitalBtuton) { + _digitalBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_digitalBtuton setBackgroundColor:[DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify]]; + [_digitalBtuton setTitleColor:[DJDKMIMOMColor mainEssayPrettify] forState:UIControlStateNormal]; + _digitalBtuton.titleLabel.font = [UIFont systemFontOfSize:10]; + _digitalBtuton.layer.masksToBounds = YES; + [_digitalBtuton setMonopolizeAboutContraryApexMonopolize:2 rightTopCorner:6 bottomLeftCorner:6 bottomRightCorner:2 size:CGSizeMake(55, 15)]; + } + return _digitalBtuton; +} + +- (UILabel *)presentConstituteSequencignation { + if (!_presentConstituteSequencignation) { + _presentConstituteSequencignation = [[UILabel alloc] init]; + _presentConstituteSequencignation.font = [UIFont systemFontOfSize:13]; + _presentConstituteSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _presentConstituteSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _presentConstituteSequencignation; +} + +- (UIStackView *)stackView { + if (!_stackView) { + _stackView = [[UIStackView alloc] init]; + _stackView.axis = UILayoutConstraintAxisHorizontal; + _stackView.distribution = UIStackViewDistributionFill; + _stackView.alignment = UIStackViewAlignmentFill; + _stackView.spacing = 3; + } + return _stackView; +} + +- (UIImageView *)bWSttawberryIndicateRegard { + if (!_bWSttawberryIndicateRegard) { + _bWSttawberryIndicateRegard = [[UIImageView alloc] init]; + _bWSttawberryIndicateRegard.userInteractionEnabled = YES; + _bWSttawberryIndicateRegard.image = [UIImage imageNamed:@"yumi_same_diamond"]; + } + return _bWSttawberryIndicateRegard; +} + +- (UILabel *)presentValencySequencignation { + if (!_presentValencySequencignation) { + _presentValencySequencignation = [[UILabel alloc] init]; + _presentValencySequencignation.font = [UIFont systemFontOfSize:11]; + _presentValencySequencignation.textColor = [DJDKMIMOMColor instantEssayPrettify]; + } + return _presentValencySequencignation; +} + + +@end diff --git a/YuMi/Modules/YMMine/View/Cell/MineInfo/YUMIManeConsumerAbstractTabulationRegardElement.h b/YuMi/Modules/YMMine/View/Cell/MineInfo/YUMIManeConsumerAbstractTabulationRegardElement.h new file mode 100644 index 00000000..7a1192b9 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Cell/MineInfo/YUMIManeConsumerAbstractTabulationRegardElement.h @@ -0,0 +1,16 @@ +// +// YMMineInfoTableViewCell.h +// YUMI +// +// Created by YUMI on 2021/9/23. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class ConsumerAbstractMatrix; +@interface YUMIManeConsumerAbstractTabulationRegardElement : UITableViewCell +@property (nonatomic,strong) ConsumerAbstractMatrix *userInfo; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Cell/MineInfo/YUMIManeConsumerAbstractTabulationRegardElement.m b/YuMi/Modules/YMMine/View/Cell/MineInfo/YUMIManeConsumerAbstractTabulationRegardElement.m new file mode 100644 index 00000000..13565e93 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Cell/MineInfo/YUMIManeConsumerAbstractTabulationRegardElement.m @@ -0,0 +1,158 @@ +// +// YMMineInfoTableViewCell.m +// YUMI +// +// Created by YUMI on 2021/9/23. +// + +#import "YUMIManeConsumerAbstractTabulationRegardElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "ConsumerAbstractMatrix.h" + +@interface YUMIManeConsumerAbstractTabulationRegardElement () +@property (nonatomic,strong) UIView * encourageRegard; +@property (nonatomic,strong) UILabel *constituteSequencignation; +@property (nonatomic,strong) UIImageView *seaxualityIndicateRegard; +@property (nonatomic,strong) UILabel *idSequencignation; +@property (nonatomic,strong) UILabel *signSequencignation; +@property (nonatomic,strong) UIButton *onlineBtuton; +@end + +@implementation YUMIManeConsumerAbstractTabulationRegardElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor]; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.encourageRegard]; + + [self.encourageRegard addSubview:self.constituteSequencignation]; + [self.encourageRegard addSubview:self.seaxualityIndicateRegard]; + [self.encourageRegard addSubview:self.idSequencignation]; + [self.encourageRegard addSubview:self.signSequencignation]; + [self.encourageRegard addSubview:self.onlineBtuton]; +} + +- (void)initChildLyRestrictions { + [self.encourageRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.contentView).inset(15); + make.top.bottom.mas_equalTo(self.contentView); + }]; + + [self.constituteSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.encourageRegard).offset(15); + make.top.mas_equalTo(self.encourageRegard).offset(15); + }]; + + [self.seaxualityIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.constituteSequencignation.mas_right).offset(5); + make.centerY.mas_equalTo(self.constituteSequencignation); + }]; + + [self.idSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.constituteSequencignation); + make.top.mas_equalTo(self.constituteSequencignation.mas_bottom).offset(10); + }]; + + [self.signSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.constituteSequencignation); + make.top.mas_equalTo(self.idSequencignation.mas_bottom).offset(18); + }]; + + [self.onlineBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(55, 18)); + make.right.mas_equalTo(self.encourageRegard).offset(-15); + make.top.mas_equalTo(self.encourageRegard).offset(10); + }]; +} + +#pragma mark - Getters And Setters +- (void)setUserInfo:(ConsumerAbstractMatrix *)userInfo { + _userInfo = userInfo; + if (_userInfo) { + self.constituteSequencignation.text = _userInfo.nick; + self.idSequencignation.text = [NSString stringWithFormat:@"%@号:%ld",AppName, (long)_userInfo.erbanNo]; + self.signSequencignation.text = _userInfo.userDesc.length > 0 ? _userInfo.userDesc : YMLocalizedString(@"YUMI_Mine_User_Info_Table_View_Cell_1"); + NSString * sexStr; + if (_userInfo.gender == GenderGenre_Male) { + sexStr = @"common_male"; + } else { + sexStr = @"common_female"; + } + self.seaxualityIndicateRegard.image = [UIImage imageNamed:sexStr]; + } +} + +- (UIView *)encourageRegard { + if (!_encourageRegard) { + _encourageRegard = [[UIView alloc] init]; + _encourageRegard.backgroundColor = [DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify]; + _encourageRegard.layer.masksToBounds = YES; + _encourageRegard.layer.cornerRadius = 12; + } + return _encourageRegard; +} + +- (UILabel *)constituteSequencignation { + if (!_constituteSequencignation) { + _constituteSequencignation = [[UILabel alloc] init]; + _constituteSequencignation.font = [UIFont fontWithName:@"PingFang-SC-Medium" size:15]; + _constituteSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _constituteSequencignation; +} + +- (UIImageView *)seaxualityIndicateRegard { + if (!_seaxualityIndicateRegard) { + _seaxualityIndicateRegard = [[UIImageView alloc] init]; + _seaxualityIndicateRegard.userInteractionEnabled = YES; + } + return _seaxualityIndicateRegard; +} + +- (UILabel *)idSequencignation { + if (!_idSequencignation) { + _idSequencignation = [[UILabel alloc] init]; + _idSequencignation.font = [UIFont systemFontOfSize:11]; + _idSequencignation.textColor = [DJDKMIMOMColor essayTertiusPrettify]; + } + return _idSequencignation; +} + +- (UILabel *)signSequencignation { + if (!_signSequencignation) { + _signSequencignation = [[UILabel alloc] init]; + _signSequencignation.font = [UIFont systemFontOfSize:11];; + _signSequencignation.textColor = [DJDKMIMOMColor instantEssayPrettify]; + } + return _signSequencignation; +} + +- (UIButton *)onlineBtuton { + if (!_onlineBtuton) { + _onlineBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_onlineBtuton setTitle:YMLocalizedString(@"YUMI_Mine_User_Info_Table_View_Cell_2") forState:UIControlStateNormal]; + [_onlineBtuton setImage:[UIImage imageNamed:@"yumi_main_search_user_online"] forState:UIControlStateNormal]; + [_onlineBtuton setTitleColor:[DJDKMIMOMColor aplictowardsionUnderlinePrettify] forState:UIControlStateNormal]; + _onlineBtuton.backgroundColor = [UIColor clearColor]; + _onlineBtuton.titleLabel.font = [UIFont systemFontOfSize:10]; + _onlineBtuton.layer.masksToBounds = YES; + _onlineBtuton.layer.cornerRadius = 18/2; + _onlineBtuton.layer.borderColor = [DJDKMIMOMColor aplictowardsionUnderlinePrettify].CGColor; + _onlineBtuton.layer.borderWidth = 1; + [_onlineBtuton addTarget:self action:@selector(onlineBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _onlineBtuton; +} + + +@end diff --git a/YuMi/Modules/YMMine/View/Cell/Recharge/YUMIManeReindictTabulationRegardElement.h b/YuMi/Modules/YMMine/View/Cell/Recharge/YUMIManeReindictTabulationRegardElement.h new file mode 100644 index 00000000..b370420c --- /dev/null +++ b/YuMi/Modules/YMMine/View/Cell/Recharge/YUMIManeReindictTabulationRegardElement.h @@ -0,0 +1,24 @@ +// +// YMMineRechargeTableViewCell.h +// YUMI +// +// Created by YUMI on 2021/9/24. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class ReindictStatementMatrix,YUMIManeReindictTabulationRegardElement; + +@protocol FBCManeReindictTabulationViweElementRepresendtation + +- (void)fBCManeReindictTarbsultowardsionViweElement:(YUMIManeReindictTabulationRegardElement *)cell didSelectItem:(ReindictStatementMatrix *)listMatrix; + +@end + +@interface YUMIManeReindictTabulationRegardElement : UITableViewCell +@property (nonatomic,strong) ReindictStatementMatrix *listMatrix; +@property (nonatomic,weak) id delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Cell/Recharge/YUMIManeReindictTabulationRegardElement.m b/YuMi/Modules/YMMine/View/Cell/Recharge/YUMIManeReindictTabulationRegardElement.m new file mode 100644 index 00000000..07aa1725 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Cell/Recharge/YUMIManeReindictTabulationRegardElement.m @@ -0,0 +1,138 @@ +// +// YMMineRechargeTableViewCell.m +// YUMI +// +// Created by YUMI on 2021/9/24. +// + +#import "YUMIManeReindictTabulationRegardElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "ReindictStatementMatrix.h" +@interface YUMIManeReindictTabulationRegardElement () +@property (nonatomic,strong) UIView * encourageRegard; +@property (nonatomic,strong) UIImageView *tangerineIndicateRegard; +@property (nonatomic,strong) UILabel *numberLabel; +@property (nonatomic,strong) UILabel *componentsSequencignation; +@property (nonatomic,strong) UIButton *reindictBtuton; +@end + +@implementation YUMIManeReindictTabulationRegardElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} +#pragma mark - Response +- (void)reindictBtutonPerformance:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(fBCManeReindictTarbsultowardsionViweElement:didSelectItem:)]) { + [self.delegate fBCManeReindictTarbsultowardsionViweElement:self didSelectItem:self.listMatrix]; + } +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor]; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.encourageRegard]; + [self.encourageRegard addSubview:self.tangerineIndicateRegard]; + [self.encourageRegard addSubview:self.numberLabel]; + [self.encourageRegard addSubview:self.componentsSequencignation]; + [self.encourageRegard addSubview:self.reindictBtuton]; +} + +- (void)initChildLyRestrictions { + [self.encourageRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.contentView).inset(15); + make.top.mas_equalTo(self.contentView).offset(15); + make.bottom.mas_equalTo(self.contentView); + }]; + + [self.tangerineIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(21, 21)); + make.centerY.mas_equalTo(self.encourageRegard); + make.left.mas_equalTo(self.encourageRegard).offset(19); + }]; + + [self.numberLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.tangerineIndicateRegard); + make.left.mas_equalTo(self.tangerineIndicateRegard.mas_right).offset(6); + }]; + + [self.componentsSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.bottom.mas_equalTo(self.numberLabel); + make.left.mas_equalTo(self.numberLabel.mas_right).offset(6); + }]; + + [self.reindictBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(54, 24)); + make.centerY.mas_equalTo(self.encourageRegard); + make.right.mas_equalTo(self.encourageRegard).offset(-15); + }]; +} +#pragma mark - Getters And Setters +- (void)setListMatrix:(ReindictStatementMatrix *)listMatrix { + _listMatrix = listMatrix; + if (_listMatrix) { + NSCharacterSet* nonDigits =[[NSCharacterSet decimalDigitCharacterSet] invertedSet]; + int remainSecond = [[_listMatrix.prodName stringByTrimmingCharactersInSet:nonDigits] intValue]; + self.numberLabel.text = [NSString stringWithFormat:@"%d",remainSecond]; + [self.reindictBtuton setTitle:[NSString stringWithFormat:@"¥%@",[_listMatrix.money stringValue]] forState:UIControlStateNormal]; + } +} + +- (UIView *)encourageRegard { + if (!_encourageRegard) { + _encourageRegard = [[UIView alloc] init]; + _encourageRegard.backgroundColor = [DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify]; + _encourageRegard.layer.masksToBounds = YES; + _encourageRegard.layer.cornerRadius = 8; + } + return _encourageRegard; +} +- (UIImageView *)tangerineIndicateRegard { + if (!_tangerineIndicateRegard) { + _tangerineIndicateRegard = [[UIImageView alloc] init]; + _tangerineIndicateRegard.userInteractionEnabled = YES; + _tangerineIndicateRegard.image = [UIImage imageNamed:@"yumi_same_diamond"]; + } + return _tangerineIndicateRegard; +} + +- (UILabel *)numberLabel { + if (!_numberLabel) { + _numberLabel = [[UILabel alloc] init]; + _numberLabel.font = [UIFont fontWithName:@"PingFang-SC-Bold" size:18]; + _numberLabel.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _numberLabel; +} + +- (UILabel *)componentsSequencignation { + if (!_componentsSequencignation) { + _componentsSequencignation = [[UILabel alloc] init]; + _componentsSequencignation.text = YMLocalizedString(@"YUMI_Mine_Recharge_Table_View_Cell_0"); + _componentsSequencignation.font = [UIFont systemFontOfSize:11]; + _componentsSequencignation.textColor = [DJDKMIMOMColor instantEssayPrettify]; + } + return _componentsSequencignation; +} + +- (UIButton *)reindictBtuton { + if (!_reindictBtuton) { + _reindictBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_reindictBtuton setTitleColor:[DJDKMIMOMColor mainEssayPrettify] forState:UIControlStateNormal]; + _reindictBtuton.titleLabel.font = [UIFont systemFontOfSize:15]; + _reindictBtuton.layer.masksToBounds = YES; + _reindictBtuton.layer.cornerRadius = 12; + _reindictBtuton.layer.borderWidth = 1; + _reindictBtuton.layer.borderColor = [DJDKMIMOMColor mainEssayPrettify].CGColor; + [_reindictBtuton addTarget:self action:@selector(reindictBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _reindictBtuton; +} + +@end diff --git a/YuMi/Modules/YMMine/View/Cell/Visitor/YUMIManeVacationerDispossessTabulationRegardElement.h b/YuMi/Modules/YMMine/View/Cell/Visitor/YUMIManeVacationerDispossessTabulationRegardElement.h new file mode 100644 index 00000000..dfde3834 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Cell/Visitor/YUMIManeVacationerDispossessTabulationRegardElement.h @@ -0,0 +1,18 @@ +// +// YMMineVisitorEmptyTableViewCell.h +// YUMI +// +// Created by YUMI on 2022/2/22. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeVacationerDispossessTabulationRegardElement : UITableViewCell + +@property (nonatomic,copy) NSString *emptyTitle; +@property (nonatomic,strong, readonly) UIImageView *dispossessIndicateRegard; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Cell/Visitor/YUMIManeVacationerDispossessTabulationRegardElement.m b/YuMi/Modules/YMMine/View/Cell/Visitor/YUMIManeVacationerDispossessTabulationRegardElement.m new file mode 100644 index 00000000..7d573ac2 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Cell/Visitor/YUMIManeVacationerDispossessTabulationRegardElement.m @@ -0,0 +1,80 @@ +// +// YMMineVisitorEmptyTableViewCell.m +// YUMI +// +// Created by YUMI on 2022/2/22. +// + +#import "YUMIManeVacationerDispossessTabulationRegardElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "UIIndicateConstant.h" + +@interface YUMIManeVacationerDispossessTabulationRegardElement () +@property (nonatomic,strong) UIImageView *dispossessIndicateRegard; +@property (nonatomic,strong) UILabel *titleLabel; +@end + + +@implementation YUMIManeVacationerDispossessTabulationRegardElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor]; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.dispossessIndicateRegard]; + [self.contentView addSubview:self.titleLabel]; +} + +- (void)initChildLyRestrictions { + [self.dispossessIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.contentView); + make.top.mas_equalTo(self.contentView).offset(250); + make.size.mas_equalTo(CGSizeMake(100, 100)); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.dispossessIndicateRegard.mas_bottom).offset(20); + make.left.right.mas_equalTo(self.contentView); + }]; +} +#pragma mark - Getters And Setters +- (void)setEmptyTitle:(NSString *)emptyTitle { + _emptyTitle = emptyTitle; + if (_emptyTitle.length > 0) { + self.titleLabel.text = _emptyTitle; + } +} + +- (UIImageView *)dispossessIndicateRegard { + if (!_dispossessIndicateRegard) { + _dispossessIndicateRegard = [[UIImageView alloc] init]; + _dispossessIndicateRegard.userInteractionEnabled = YES; + _dispossessIndicateRegard.image = [UIIndicateConstant defalutDispossessDepapossessor]; + _dispossessIndicateRegard.layer.masksToBounds = YES; + _dispossessIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _dispossessIndicateRegard; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.text = YMLocalizedString(@"YUMI_Mine_Visitor_Empty_Table_View_Cell_0"); + _titleLabel.numberOfLines = 2; + _titleLabel.font = [UIFont systemFontOfSize:16]; + _titleLabel.textAlignment = NSTextAlignmentCenter; + _titleLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + } + return _titleLabel; +} + +@end diff --git a/YuMi/Modules/YMMine/View/Cell/Visitor/YUMIManeVacationerTabulationRegardElement.h b/YuMi/Modules/YMMine/View/Cell/Visitor/YUMIManeVacationerTabulationRegardElement.h new file mode 100644 index 00000000..4257bdba --- /dev/null +++ b/YuMi/Modules/YMMine/View/Cell/Visitor/YUMIManeVacationerTabulationRegardElement.h @@ -0,0 +1,32 @@ +// +// YMMineVisitorTableViewCell.h +// YUMI +// +// Created by YUMI on 2022/1/26. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class YUMIManeVacationerTabulationRegardElement, YUMIManeVacationerProvisionMatrix; + +@protocol FBCManeVisitorTabulationViweElementRepresendtation + +- (void)onChinwagTicktack:(YUMIManeVacationerTabulationRegardElement *)cell; + +- (void)onIntelligenceportraitTicktack:(YUMIManeVacationerTabulationRegardElement *)cell; + +@end + + +@interface YUMIManeVacationerTabulationRegardElement : UITableViewCell + +@property (nonatomic, assign) BOOL isThresholdProvision; +@property (nonatomic, assign) BOOL isRecentProvision; +@property (nonatomic, strong) YUMIManeVacationerProvisionMatrix *item; + +@property (nonatomic, weak) id delegate; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Cell/Visitor/YUMIManeVacationerTabulationRegardElement.m b/YuMi/Modules/YMMine/View/Cell/Visitor/YUMIManeVacationerTabulationRegardElement.m new file mode 100644 index 00000000..c859ad57 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Cell/Visitor/YUMIManeVacationerTabulationRegardElement.m @@ -0,0 +1,258 @@ +// +// YMMineVisitorTableViewCell.m +// YUMI +// +// Created by YUMI on 2022/1/26. +// + +#import "YUMIManeVacationerTabulationRegardElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "NetIndicateRegard.h" +#import "YUMIManeVacationerProvisionMatrix.h" + +@interface YUMIManeVacationerTabulationRegardElement() + +@property (nonatomic, strong) UIView *backgroundRegard; +@property (nonatomic ,strong) NetIndicateRegard *avaterIndiRegard; +@property (nonatomic, strong) UIImageView *genderIndicateRegard; +@property (nonatomic, strong) UILabel *monicerSequencignation; +@property (nonatomic ,strong) UILabel *componentIdSequencignation; +@property (nonatomic ,strong) UIButton *coupleGHPiic; +@property (nonatomic ,strong) UILabel *intratemporalSequencignation; +@property (nonatomic, strong) UIView *burlywoodRegard; + +@end + +@implementation YUMIManeVacationerTabulationRegardElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self setUpwardsUI]; + [self setUpwardsRestrictions]; + } + return self; +} + +- (void)drawRect:(CGRect)rect { + if (self.isRecentProvision && self.isThresholdProvision) { + UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:self.backgroundRegard.bounds byRoundingCorners:UIRectCornerTopLeft | UIRectCornerTopRight | UIRectCornerBottomLeft | UIRectCornerBottomRight cornerRadii:CGSizeMake(12, 12)]; + CAShapeLayer *maskLayer = [CAShapeLayer layer]; + maskLayer.path = path.CGPath; + self.backgroundRegard.layer.mask = maskLayer; + } else if (self.isThresholdProvision) { + UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:self.backgroundRegard.bounds byRoundingCorners:UIRectCornerTopLeft | UIRectCornerTopRight cornerRadii:CGSizeMake(12, 12)]; + CAShapeLayer *maskLayer = [CAShapeLayer layer]; + maskLayer.path = path.CGPath; + self.backgroundRegard.layer.mask = maskLayer; + } else if (self.isRecentProvision) { + UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:self.backgroundRegard.bounds byRoundingCorners:UIRectCornerBottomLeft | UIRectCornerBottomRight cornerRadii:CGSizeMake(12, 12)]; + CAShapeLayer *maskLayer = [CAShapeLayer layer]; + maskLayer.path = path.CGPath; + self.backgroundRegard.layer.mask = maskLayer; + } else { + UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:self.backgroundRegard.bounds byRoundingCorners:UIRectCornerBottomLeft | UIRectCornerBottomRight cornerRadii:CGSizeMake(0, 0)]; + CAShapeLayer *maskLayer = [CAShapeLayer layer]; + maskLayer.path = path.CGPath; + self.backgroundRegard.layer.mask = maskLayer; + } +} + +- (void)layoutSubviews { + [super layoutSubviews]; + [self refurbishBackgroundRegardRestrictions]; +} + +#pragma mark - lifeCycle +- (void)setUpwardsUI { + self.backgroundColor = [UIColor clearColor]; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.backgroundRegard]; + [self.backgroundRegard addSubview:self.avaterIndiRegard]; + [self.backgroundRegard addSubview:self.monicerSequencignation]; + [self.backgroundRegard addSubview:self.genderIndicateRegard]; + [self.backgroundRegard addSubview:self.componentIdSequencignation]; + [self.backgroundRegard addSubview:self.coupleGHPiic]; + [self.backgroundRegard addSubview:self.intratemporalSequencignation]; + [self.backgroundRegard addSubview:self.burlywoodRegard]; + + UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(onCliekIntelligenceportrait:)]; + [self.avaterIndiRegard addGestureRecognizer:tap]; +} + +#pragma mark - Constraints +- (void)setUpwardsRestrictions { + [self.backgroundRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(0); + make.right.mas_equalTo(-15); + make.left.mas_equalTo(15); + make.height.mas_equalTo(70); + make.bottom.mas_equalTo(0); + }]; + [self.avaterIndiRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(15); + make.width.height.mas_equalTo(40); + make.centerY.mas_equalTo(self.backgroundRegard.mas_centerY); + }]; + + [self.monicerSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.avaterIndiRegard.mas_right).mas_offset(10); + make.bottom.mas_equalTo(self.avaterIndiRegard.mas_centerY).mas_offset(-4); + }]; + [self.genderIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.monicerSequencignation.mas_centerY); + make.width.height.mas_equalTo(14); + make.left.mas_equalTo(self.monicerSequencignation.mas_right).mas_offset(5); + make.right.mas_lessThanOrEqualTo(self.coupleGHPiic.mas_left).mas_offset(-5); + }]; + + [self.coupleGHPiic mas_makeConstraints:^(MASConstraintMaker *make) { + make.bottom.mas_equalTo(self.intratemporalSequencignation.mas_top).mas_offset((-1)); + make.right.mas_equalTo(-15); + make.width.height.mas_equalTo(22); + }]; + + [self.componentIdSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.avaterIndiRegard.mas_centerY).mas_offset(4); + make.left.mas_equalTo(self.monicerSequencignation); + }]; + + [self.intratemporalSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(-15); + make.centerY.mas_equalTo(self.componentIdSequencignation.mas_centerY); + make.height.mas_equalTo(11); + }]; + [self.burlywoodRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.bottom.mas_equalTo(0); + make.left.mas_equalTo(self.avaterIndiRegard); + make.right.mas_equalTo(-15); + make.height.mas_equalTo(0.5); + }]; +} + +- (void)refurbishBackgroundRegardRestrictions { + if (self.isThresholdProvision) { + [self.backgroundRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(10); + make.right.mas_equalTo(-15); + make.left.mas_equalTo(15); + make.height.mas_equalTo(70); + make.bottom.mas_equalTo(0); + }]; + } else { + [self.backgroundRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(0); + make.right.mas_equalTo(-15); + make.left.mas_equalTo(15); + make.height.mas_equalTo(70); + make.bottom.mas_equalTo(0); + }]; + } +} + +#pragma mark - event +- (void)onChinwagBtutonTicktack:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(onChinwagTicktack:)]) { + [self.delegate onChinwagTicktack:self]; + } +} + +- (void)onCliekIntelligenceportrait:(UITapGestureRecognizer *)ges { + if (self.delegate && [self.delegate respondsToSelector:@selector(onIntelligenceportraitTicktack:)]) { + [self.delegate onIntelligenceportraitTicktack:self]; + } +} + + +- (void)setIsThresholdProvision:(BOOL)isThresholdProvision{ + _isThresholdProvision = isThresholdProvision; +} + +- (void)setIsRecentProvision:(BOOL)isRecentProvision { + _isRecentProvision = isRecentProvision; +} + +- (void)setItem:(YUMIManeVacationerProvisionMatrix *)item { + _item = item; + self.monicerSequencignation.text = item.nick; + self.avaterIndiRegard.imageUrl = item.avatar; + self.componentIdSequencignation.text = [NSString stringWithFormat:@"ID:%zd", item.erbanNo]; + self.intratemporalSequencignation.text = item.visitTimeDesc; + self.genderIndicateRegard.image = [UIImage imageNamed:item.gender == 1 ? @"yumi_same_male" : @"yumi_same_female"]; +} + +- (NetIndicateRegard *)avaterIndiRegard { + if (!_avaterIndiRegard) { + _avaterIndiRegard = [[NetIndicateRegard alloc] init]; + _avaterIndiRegard.contentMode = UIViewContentModeScaleAspectFit; + _avaterIndiRegard.layer.cornerRadius = 20; + _avaterIndiRegard.layer.masksToBounds = YES; + _avaterIndiRegard.userInteractionEnabled = YES; + } + return _avaterIndiRegard; +} + +- (UIView *)backgroundRegard { + if (!_backgroundRegard) { + _backgroundRegard = [[UIView alloc] init]; + _backgroundRegard.backgroundColor = UIColorFromRGB(0xFFFFFF); + } + return _backgroundRegard; +} + +- (UILabel *)monicerSequencignation { + if (!_monicerSequencignation) { + _monicerSequencignation = [[UILabel alloc] init]; + _monicerSequencignation.textColor = UIColorFromRGB(0x333333); + _monicerSequencignation.font = [UIFont systemFontOfSize:13]; + _monicerSequencignation.text = YMLocalizedString(@"YUMI_Mine_Visitor_Table_View_Cell_0"); + } + return _monicerSequencignation; +} + +- (UIImageView *)genderIndicateRegard { + if (!_genderIndicateRegard) { + _genderIndicateRegard = [[UIImageView alloc] init]; + _genderIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _genderIndicateRegard; +} + +- (UILabel *)componentIdSequencignation { + if (!_componentIdSequencignation) { + _componentIdSequencignation = [[UILabel alloc] init]; + _componentIdSequencignation.textColor = UIColorFromRGB(0x999999); + _componentIdSequencignation.font = [UIFont systemFontOfSize:13]; + _componentIdSequencignation.text = @""; + } + return _componentIdSequencignation; +} + +- (UIButton *)coupleGHPiic { + if (!_coupleGHPiic) { + _coupleGHPiic = [[UIButton alloc] init]; + [_coupleGHPiic setImage:[UIImage imageNamed:@"yumi_visitor_record_letter"] forState:UIControlStateNormal]; + [_coupleGHPiic addTarget:self action:@selector(onChinwagBtutonTicktack:) forControlEvents:UIControlEventTouchUpInside]; + } + return _coupleGHPiic; +} + +- (UILabel *)intratemporalSequencignation { + if (!_intratemporalSequencignation) { + _intratemporalSequencignation = [[UILabel alloc] init]; + _intratemporalSequencignation.text = @"0"; + _intratemporalSequencignation.textColor = UIColorFromRGB(0x999999); + _intratemporalSequencignation.font = [UIFont boldSystemFontOfSize:10]; + } + return _intratemporalSequencignation; +} + +- (UIView *)burlywoodRegard { + if (!_burlywoodRegard) { + _burlywoodRegard = [[UIView alloc] init]; + _burlywoodRegard.backgroundColor = UIColorFromRGB(0xf5f5f5); + } + return _burlywoodRegard; +} + +@end diff --git a/YuMi/Modules/YMMine/View/Cell/YUMIManeBlackStatementTabulationRegardElement.h b/YuMi/Modules/YMMine/View/Cell/YUMIManeBlackStatementTabulationRegardElement.h new file mode 100644 index 00000000..399e208d --- /dev/null +++ b/YuMi/Modules/YMMine/View/Cell/YUMIManeBlackStatementTabulationRegardElement.h @@ -0,0 +1,16 @@ +// +// YMMineBlackListTableViewCell.h +// YUMI +// +// Created by YUMI on 2022/4/25. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class ConsumerAbstractMatrix; +@interface YUMIManeBlackStatementTabulationRegardElement : UITableViewCell +@property (nonatomic,strong) ConsumerAbstractMatrix *userInfo; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Cell/YUMIManeBlackStatementTabulationRegardElement.m b/YuMi/Modules/YMMine/View/Cell/YUMIManeBlackStatementTabulationRegardElement.m new file mode 100644 index 00000000..b6df3592 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Cell/YUMIManeBlackStatementTabulationRegardElement.m @@ -0,0 +1,79 @@ +// +// YMMineBlackListTableViewCell.m +// YUMI +// +// Created by YUMI on 2022/4/25. +// + +#import "YUMIManeBlackStatementTabulationRegardElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "NetIndicateRegard.h" +#import "ConsumerAbstractMatrix.h" + +@interface YUMIManeBlackStatementTabulationRegardElement () +@property (nonatomic,strong) NetIndicateRegard *intelligenceportraitIndicateRegard; +@property (nonatomic,strong) UILabel *monicerSequencignation; + +@end + +@implementation YUMIManeBlackStatementTabulationRegardElement +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify]; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.intelligenceportraitIndicateRegard]; + [self.contentView addSubview:self.monicerSequencignation]; +} + +- (void)initChildLyRestrictions { + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(40, 40)); + make.centerY.mas_equalTo(self.contentView); + make.left.mas_equalTo(self.contentView).offset(15); + }]; + + [self.monicerSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_right).offset(10); + make.right.mas_lessThanOrEqualTo(self.contentView).offset(-5); + make.centerY.mas_equalTo(self.contentView); + }]; +} +#pragma mark - Getters And Setters +- (void)setUserInfo:(ConsumerAbstractMatrix *)userInfo { + _userInfo = userInfo; + if (_userInfo) { + self.intelligenceportraitIndicateRegard.imageUrl = _userInfo.avatar; + self.monicerSequencignation.text = _userInfo.nick; + } +} + +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _intelligenceportraitIndicateRegard.layer.cornerRadius = 20; + } + return _intelligenceportraitIndicateRegard; +} + +- (UILabel *)monicerSequencignation { + if (!_monicerSequencignation) { + _monicerSequencignation = [[UILabel alloc] init]; + _monicerSequencignation.font = [UIFont systemFontOfSize:15 weight:UIFontWeightMedium]; + _monicerSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _monicerSequencignation; +} + +@end diff --git a/YuMi/Modules/YMMine/View/Cell/YUMIManeFeaturealConcentrateElement.h b/YuMi/Modules/YMMine/View/Cell/YUMIManeFeaturealConcentrateElement.h new file mode 100644 index 00000000..16e79c60 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Cell/YUMIManeFeaturealConcentrateElement.h @@ -0,0 +1,26 @@ +// +// YUMIManeFeaturealConcentrateElement.h +// YuMi +// +// Created by YuMi on 2023/6/30. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +typedef void (^YUMI_MinePersonalCenterCellAction)(int type); + +@interface YUMIManeFeaturealConcentrateElement : UITableViewCell +@property(nonatomic,copy)YUMI_MinePersonalCenterCellAction ticktackPerformance; +@property (nonatomic,assign) BOOL isHaveGiveBWSttawberry; +@end + + + +@interface YUMIManeFeaturealConcentrateProvisionRegard : UIView +@property (nonatomic,assign) BOOL isHaveGiveBWSttawberry; +-(void)setTitle:(NSString *)title; +-(void)setImage:(NSString *)imageName; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Cell/YUMIManeFeaturealConcentrateElement.m b/YuMi/Modules/YMMine/View/Cell/YUMIManeFeaturealConcentrateElement.m new file mode 100644 index 00000000..49b67cb1 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Cell/YUMIManeFeaturealConcentrateElement.m @@ -0,0 +1,264 @@ +// +// YUMIManeFeaturealConcentrateElement.m +// YuMi +// +// Created by YuMi on 2023/6/30. +// + +#import "YUMIManeFeaturealConcentrateElement.h" +@interface YUMIManeFeaturealConcentrateElement() + +@property (nonatomic,strong) UIView *backgroundRegard; +@property (nonatomic,strong) UILabel *titleView; +@property (nonatomic,strong) YUMIManeFeaturealConcentrateProvisionRegard *mieyChamberRegard; +@property (nonatomic,strong) YUMIManeFeaturealConcentrateProvisionRegard *earningsReflectionRegard; +@property (nonatomic,strong) YUMIManeFeaturealConcentrateProvisionRegard *giveBWSttawberryRegard; + + + +@end + +@implementation YUMIManeFeaturealConcentrateElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.selectionStyle = UITableViewCellSelectionStyleNone; + self.backgroundColor = [UIColor clearColor]; + [self.contentView addSubview:self.backgroundRegard]; + [self.backgroundRegard addSubview:self.titleView]; + [self.backgroundRegard addSubview:self.mieyChamberRegard]; + [self.backgroundRegard addSubview:self.earningsReflectionRegard]; + [self.backgroundRegard addSubview:self.giveBWSttawberryRegard]; + self.giveBWSttawberryRegard.hidden = YES; +} +- (void)initChildLyRestrictions { + [self.backgroundRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(15); + make.right.mas_offset(-15); + make.top.bottom.equalTo(self.contentView); + }]; + [self.titleView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(12); + make.top.mas_equalTo(14); + }]; + + [self.mieyChamberRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(35); + make.width.mas_greaterThanOrEqualTo(104); + make.height.equalTo(@38); + make.top.mas_equalTo(44); + }]; + [self.earningsReflectionRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.height.width.equalTo(self.mieyChamberRegard); + make.right.mas_equalTo(-35); + }]; + [self.giveBWSttawberryRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.height.width.equalTo(self.mieyChamberRegard); + make.right.mas_equalTo(0); + }]; +} +-(void)setIsHaveGiveBWSttawberry:(BOOL)isHaveGiveBWSttawberry{ + _isHaveGiveBWSttawberry = isHaveGiveBWSttawberry; + self.mieyChamberRegard.isHaveGiveBWSttawberry = _isHaveGiveBWSttawberry; + self.earningsReflectionRegard.isHaveGiveBWSttawberry = _isHaveGiveBWSttawberry; + self.giveBWSttawberryRegard.isHaveGiveBWSttawberry = _isHaveGiveBWSttawberry; + CGFloat width = (KScreenWidth - 30) / 3; + if(_isHaveGiveBWSttawberry == YES){ + self.giveBWSttawberryRegard.hidden = NO; + [self.mieyChamberRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(0); + make.width.mas_greaterThanOrEqualTo(width); + make.height.equalTo(@68); + }]; + [self.earningsReflectionRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(-width); + }]; + return; + } + self.giveBWSttawberryRegard.hidden = YES; + [self.mieyChamberRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(35); + make.width.mas_greaterThanOrEqualTo(104); + make.height.equalTo(@38); + }]; + [self.earningsReflectionRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(-35); + }]; + +} +-(void)clickMieyChamberPerformance{ + if (self.ticktackPerformance){ + self.ticktackPerformance(0); + } +} +-(void)clickEarningsReflectionPerformance{ + if (self.ticktackPerformance){ + self.ticktackPerformance(1); + } +} +-(void)clickGiveDiamondPerformance{ + if (self.ticktackPerformance){ + self.ticktackPerformance(2); + } +} +- (UIView *)backgroundRegard{ + if(!_backgroundRegard){ + _backgroundRegard = [UIView new]; + _backgroundRegard.backgroundColor = [UIColor whiteColor]; + _backgroundRegard.layer.cornerRadius = 10; + _backgroundRegard.layer.masksToBounds = YES; + } + return _backgroundRegard; +} +-(UILabel *)titleView{ + if(!_titleView){ + _titleView = [UILabel new]; + _titleView.textColor = UIColorFromRGB(0x1F1A4E); + _titleView.font = [UIFont systemFontOfSize:15 weight:UIFontWeightMedium]; + _titleView.text = YMLocalizedString(@"YUMI_MinePersonalCenterCell0"); + } + + return _titleView; +} +- (YUMIManeFeaturealConcentrateProvisionRegard *)mieyChamberRegard{ + if(!_mieyChamberRegard){ + _mieyChamberRegard = [[YUMIManeFeaturealConcentrateProvisionRegard alloc]initWithFrame:CGRectZero]; + [_mieyChamberRegard setTitle:YMLocalizedString(@"YUMI_MinePersonalCenterCell1")]; + [_mieyChamberRegard setImage:@"mine_personal_centermy_room"]; + UITapGestureRecognizer *myRoomViewTap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(clickMieyChamberPerformance)]; + [_mieyChamberRegard addGestureRecognizer:myRoomViewTap]; + return _mieyChamberRegard; + } + return _mieyChamberRegard; +} +-(YUMIManeFeaturealConcentrateProvisionRegard *)earningsReflectionRegard{ + if(!_earningsReflectionRegard){ + _earningsReflectionRegard = [[YUMIManeFeaturealConcentrateProvisionRegard alloc]initWithFrame:CGRectZero]; + [_earningsReflectionRegard setTitle:YMLocalizedString(@"YUMI_MinePersonalCenterCell2")]; + [_earningsReflectionRegard setImage:@"mine_earnings_record"]; + UITapGestureRecognizer *earningsRecordTap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(clickEarningsReflectionPerformance)]; + [_earningsReflectionRegard addGestureRecognizer:earningsRecordTap]; + } + return _earningsReflectionRegard; +} +- (YUMIManeFeaturealConcentrateProvisionRegard *)giveBWSttawberryRegard{ + if (!_giveBWSttawberryRegard){ + _giveBWSttawberryRegard = [[YUMIManeFeaturealConcentrateProvisionRegard alloc]initWithFrame:CGRectZero]; + [_giveBWSttawberryRegard setTitle:YMLocalizedString(@"YUMI_MinePersonalCenterCell3")]; + [_giveBWSttawberryRegard setImage:@"mine_me_give"]; + UITapGestureRecognizer *earningsRecordTap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(clickGiveDiamondPerformance)]; + [_giveBWSttawberryRegard addGestureRecognizer:earningsRecordTap]; + } + return _giveBWSttawberryRegard; +} + +- (void)awakeFromNib { + [super awakeFromNib]; + +} + +- (void)setSelected:(BOOL)selected animated:(BOOL)animated { + [super setSelected:selected animated:animated]; + + +} + +@end + + + + + +@interface YUMIManeFeaturealConcentrateProvisionRegard() +@property (nonatomic,strong) UIImageView *figureRegard; +@property (nonatomic,strong) UILabel* championVeiw; + +@end + + +@implementation YUMIManeFeaturealConcentrateProvisionRegard + + +-(instancetype)initWithFrame:(CGRect)frame{ + self = [super initWithFrame:frame]; + if(self){ + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.figureRegard]; + [self addSubview:self.championVeiw]; +} +- (void)initChildLyRestrictions { + [self.figureRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.mas_equalTo(38); + make.left.mas_equalTo(0); + make.top.equalTo(self); + }]; + [self.championVeiw mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(48); + make.top.equalTo(self.figureRegard.mas_top).mas_offset(9); + make.right.equalTo(self); + }]; +} +-(void)setTitle:(NSString *)title{ + self.championVeiw.text = title; + +} +-(void)setIsHaveGiveBWSttawberry:(BOOL)isHaveGiveBWSttawberry{ + _isHaveGiveBWSttawberry = isHaveGiveBWSttawberry; + + if(_isHaveGiveBWSttawberry){ + [self.championVeiw mas_updateConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(0); + make.top.equalTo(self.figureRegard.mas_top).mas_offset(48); + }]; + CGFloat left = (((KScreenWidth - 30) / 3) - 38) / 2; + [self.figureRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(left); + }]; + _championVeiw.textAlignment = NSTextAlignmentCenter; + return; + } + [self.championVeiw mas_updateConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(48); + make.top.equalTo(self.figureRegard.mas_top).mas_offset(9); + }]; + [self.figureRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(0); + }]; + _championVeiw.textAlignment = NSTextAlignmentLeft; + +} +-(void)setImage:(NSString *)imageName{ + self.figureRegard.image = [UIImage imageNamed:imageName]; +} +-(UIImageView *)figureRegard{ + if(!_figureRegard){ + _figureRegard = [UIImageView new]; + _figureRegard.userInteractionEnabled = YES; + } + return _figureRegard; +} +-(UILabel *)championVeiw{ + if(!_championVeiw){ + _championVeiw = [UILabel new]; + _championVeiw.font = [UIFont systemFontOfSize:15 weight:UIFontWeightRegular]; + _championVeiw.textColor = UIColorFromRGB(0x1F1A4E); + + } + return _championVeiw; +} +@end diff --git a/YuMi/Modules/YMMine/View/Cell/YUMIManeInstanllingTabulationRegardElement.h b/YuMi/Modules/YMMine/View/Cell/YUMIManeInstanllingTabulationRegardElement.h new file mode 100644 index 00000000..d728a45a --- /dev/null +++ b/YuMi/Modules/YMMine/View/Cell/YUMIManeInstanllingTabulationRegardElement.h @@ -0,0 +1,17 @@ +// +// YMMineSettingTableViewCell.h +// YUMI +// +// Created by YUMI on 2021/9/17. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class YUMIManeInstanllingProvisionMatrix; +@interface YUMIManeInstanllingTabulationRegardElement : UITableViewCell +@property (nonatomic,strong) YUMIManeInstanllingProvisionMatrix *itemMatrix; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Cell/YUMIManeInstanllingTabulationRegardElement.m b/YuMi/Modules/YMMine/View/Cell/YUMIManeInstanllingTabulationRegardElement.m new file mode 100644 index 00000000..7328eac0 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Cell/YUMIManeInstanllingTabulationRegardElement.m @@ -0,0 +1,99 @@ +// +// YMMineSettingTableViewCell.m +// YUMI +// +// Created by YUMI on 2021/9/17. +// + +#import "YUMIManeInstanllingTabulationRegardElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "YUMIManeInstanllingProvisionMatrix.h" + +@interface YUMIManeInstanllingTabulationRegardElement () +@property (nonatomic,strong) UIStackView *stackView; +@property (nonatomic,strong) UILabel *titleLabel; +@property (nonatomic,strong) UILabel *subChampionSequencignation; +@property (nonatomic,strong) UIImageView *arrowIndicateRegard; +@end + +@implementation YUMIManeInstanllingTabulationRegardElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + + +#pragma mark - Private Method +- (void)initSubViews { + self.contentView.backgroundColor = [DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify]; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.stackView]; + + [self.stackView addArrangedSubview:self.titleLabel]; + [self.stackView addArrangedSubview:self.subChampionSequencignation]; + [self.stackView addArrangedSubview:self.arrowIndicateRegard]; +} + +- (void)initChildLyRestrictions { + [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.contentView).inset(15); + make.top.bottom.mas_equalTo(self.contentView); + }]; + +} + +#pragma mark - Getters And Setters +- (void)setItemMatrix:(YUMIManeInstanllingProvisionMatrix *)itemMatrix { + _itemMatrix = itemMatrix; + self.titleLabel.text = _itemMatrix.title; + self.subChampionSequencignation.text = _itemMatrix.subTitle; +} + +- (UIStackView *)stackView { + if (!_stackView) { + _stackView = [[UIStackView alloc] init]; + _stackView.axis = UILayoutConstraintAxisHorizontal; + _stackView.distribution = UIStackViewDistributionFill; + _stackView.alignment = UIStackViewAlignmentCenter; + _stackView.spacing = 10; + } + return _stackView; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.font = [UIFont systemFontOfSize:16]; + _titleLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + [_titleLabel setContentHuggingPriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal]; + } + return _titleLabel; +} +- (UILabel *)subChampionSequencignation { + if (!_subChampionSequencignation) { + _subChampionSequencignation = [[UILabel alloc] init]; + _subChampionSequencignation.font = [UIFont systemFontOfSize:12]; + _subChampionSequencignation.textColor = [DJDKMIMOMColor essayTertiusPrettify]; + _subChampionSequencignation.textAlignment = NSTextAlignmentRight; + } + return _subChampionSequencignation; +} + +- (UIImageView *)arrowIndicateRegard { + if (!_arrowIndicateRegard) { + _arrowIndicateRegard = [[UIImageView alloc] init]; + _arrowIndicateRegard.userInteractionEnabled = YES; + _arrowIndicateRegard.image = [UIImage imageNamed:@"yumi_center_item_arrow"]; + [_arrowIndicateRegard setContentHuggingPriority:UILayoutPriorityDefaultHigh forAxis:UILayoutConstraintAxisHorizontal]; + [_arrowIndicateRegard setContentCompressionResistancePriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal]; + } + return _arrowIndicateRegard; +} + + +@end diff --git a/YuMi/Modules/YMMine/View/Cell/YUMIManeIntelligenceFunctionProvisionProgramming.h b/YuMi/Modules/YMMine/View/Cell/YUMIManeIntelligenceFunctionProvisionProgramming.h new file mode 100644 index 00000000..607d3190 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Cell/YUMIManeIntelligenceFunctionProvisionProgramming.h @@ -0,0 +1,16 @@ +// +// YMMineHeadFunctionItemLayout.h +// YUMI +// +// Created by YUMI on 2022/8/4. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeIntelligenceFunctionProvisionProgramming : UICollectionViewFlowLayout + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Cell/YUMIManeIntelligenceFunctionProvisionProgramming.m b/YuMi/Modules/YMMine/View/Cell/YUMIManeIntelligenceFunctionProvisionProgramming.m new file mode 100644 index 00000000..7d07ee03 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Cell/YUMIManeIntelligenceFunctionProvisionProgramming.m @@ -0,0 +1,151 @@ +// +// YMMineHeadFunctionItemLayout.m +// YUMI +// +// Created by YUMI on 2022/8/4. +// + +#import "YUMIManeIntelligenceFunctionProvisionProgramming.h" + +@interface YUMIManeIntelligenceFunctionProvisionProgramming () +@property (nonatomic, copy) NSMutableDictionary *sectionPackbask; +@property (nonatomic, strong) NSMutableArray *entiretyIdiosyncracys; +@end + +@implementation YUMIManeIntelligenceFunctionProvisionProgramming + +#pragma mark - life cycle +- (instancetype)init { + self = [super init]; + if (self) { + self.scrollDirection = UICollectionViewScrollDirectionHorizontal; + } + return self; +} + +#pragma mark - overload + +- (void)prepareLayout { + + [super prepareLayout]; + + _sectionPackbask = [NSMutableDictionary dictionary]; + self.entiretyIdiosyncracys = [NSMutableArray array]; + + NSUInteger section = [self.collectionView numberOfSections]; + + for (int sec = 0; sec < section; sec++) { + + NSUInteger count = [self.collectionView numberOfItemsInSection:sec]; + + for (NSUInteger item = 0; item *)layoutAttributesForElementsInRect:(CGRect)rect { + + return self.entiretyIdiosyncracys; +} + +#pragma mark - private method + +- (void)applyLayoutAttributes:(UICollectionViewLayoutAttributes *)attributes { + + + if(attributes.representedElementKind != nil){ + return; + } + CGFloat minLine = self.minimumLineSpacing; + CGFloat minSpacing = self.minimumInteritemSpacing; + + + CGFloat itemW = attributes.frame.size.width; + + CGFloat itemH = attributes.frame.size.height; + UIEdgeInsets sectionInsets = self.sectionInset; + + CGFloat width = self.collectionView.frame.size.width; + + CGFloat height = self.collectionView.frame.size.height; + + NSInteger itemIndex = attributes.indexPath.item; + + CGFloat stride = (self.scrollDirection == UICollectionViewScrollDirectionHorizontal) ? width : height; + + + + NSInteger section = attributes.indexPath.section; + + NSInteger itemCount = [self.collectionView numberOfItemsInSection:section]; + + + CGFloat offset = section * stride; + + + NSInteger xCount = (width / itemW); + + NSInteger yCount = (height / itemH); + + NSInteger allCount = (xCount * yCount); + + NSInteger page = itemIndex / allCount; + + + NSInteger remain = (itemIndex % xCount); + + NSInteger merchant = (itemIndex-page*allCount)/xCount; + + + + CGFloat xCellOffset = remain * (itemW + minLine)+ sectionInsets.left; + + CGFloat yCellOffset = merchant * (itemH + minSpacing); + + + NSInteger pageRe = (itemCount % allCount == 0)? (itemCount / allCount) : (itemCount / allCount) + 1; + + [_sectionPackbask setValue:@(pageRe) forKey:[NSString stringWithFormat:@"%ld", section]]; + + if(self.scrollDirection == UICollectionViewScrollDirectionHorizontal) { + + NSInteger actualLo = 0; + + for (NSString *key in [_sectionPackbask allKeys]) { + actualLo += [_sectionPackbask[key] integerValue]; + } + + actualLo -= [_sectionPackbask[[NSString stringWithFormat:@"%ld", [_sectionPackbask allKeys].count-1]] integerValue]; + xCellOffset += page*width + actualLo*width; + + } else { + + yCellOffset += offset; + } + + attributes.frame = CGRectMake(xCellOffset, yCellOffset, itemW, itemH); +} + + +@end diff --git a/YuMi/Modules/YMMine/View/Cell/YUMIManeIntelligenceProvisionAssembletionRegardElement.h b/YuMi/Modules/YMMine/View/Cell/YUMIManeIntelligenceProvisionAssembletionRegardElement.h new file mode 100644 index 00000000..418134e1 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Cell/YUMIManeIntelligenceProvisionAssembletionRegardElement.h @@ -0,0 +1,18 @@ +// +// YMMineMatchCollectionViewCell.h +// YUMI +// +// Created by YUMI on 2021/9/16. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class YUMIManeFuntionProvisionMatrix, LittleGameInfoModel; +@interface YUMIManeIntelligenceProvisionAssembletionRegardElement : UICollectionViewCell + +@property (nonatomic,strong) YUMIManeFuntionProvisionMatrix *itemMatrix; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Cell/YUMIManeIntelligenceProvisionAssembletionRegardElement.m b/YuMi/Modules/YMMine/View/Cell/YUMIManeIntelligenceProvisionAssembletionRegardElement.m new file mode 100644 index 00000000..f9326f91 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Cell/YUMIManeIntelligenceProvisionAssembletionRegardElement.m @@ -0,0 +1,94 @@ +// +// YMMineMatchCollectionViewCell.m +// YUMI +// +// Created by YUMI on 2021/9/16. +// + +#import "YUMIManeIntelligenceProvisionAssembletionRegardElement.h" +#import +#import "NetIndicateRegard.h" +#import "DJDKMIMOMColor.h" +#import "YUMIManeFuntionProvisionMatrix.h" + +@interface YUMIManeIntelligenceProvisionAssembletionRegardElement () +@property (nonatomic,strong) NetIndicateRegard *brandIndicateRegard; +@property (nonatomic,strong) NetIndicateRegard *quantityIndicateRegard; +@property (nonatomic,strong) UILabel *titleLabel; +@end + + +@implementation YUMIManeIntelligenceProvisionAssembletionRegardElement + +- (instancetype)initWithFrame:(CGRect)frame +{ + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self.contentView addSubview:self.brandIndicateRegard]; + [self.contentView addSubview:self.titleLabel]; + [self.contentView addSubview:self.quantityIndicateRegard]; +} + +- (void)initChildLyRestrictions { + [self.brandIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(32, 32)); + make.centerX.mas_equalTo(self.contentView); + make.top.mas_equalTo(6); + }]; + [self.quantityIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.contentView); + make.size.mas_equalTo(CGSizeMake(24, 10)); + make.centerX.mas_equalTo(self.brandIndicateRegard.mas_right); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.brandIndicateRegard.mas_bottom).offset(4); + make.centerX.mas_equalTo(self.contentView); + make.height.mas_equalTo(17); + }]; +} + +#pragma mark - Getters And Setters +- (void)setItemMatrix:(YUMIManeFuntionProvisionMatrix *)itemMatrix { + _itemMatrix = itemMatrix; + if (_itemMatrix) { + self.brandIndicateRegard.imageUrl = itemMatrix.centerPic; + self.titleLabel.text = _itemMatrix.centerName; + self.quantityIndicateRegard.imageUrl = itemMatrix.centerBadge ? itemMatrix.centerBadge : nil; + } +} + +- (NetIndicateRegard *)brandIndicateRegard { + if (!_brandIndicateRegard) { + _brandIndicateRegard = [[NetIndicateRegard alloc] init]; + } + return _brandIndicateRegard; +} + +- (NetIndicateRegard *)quantityIndicateRegard { + if (!_quantityIndicateRegard) { + _quantityIndicateRegard = [[NetIndicateRegard alloc] init]; + _quantityIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _quantityIndicateRegard; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.font = [UIFont systemFontOfSize:13]; + _titleLabel.textAlignment = NSTextAlignmentCenter; + _titleLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + } + return _titleLabel; +} + +@end diff --git a/YuMi/Modules/YMMine/View/Cell/YUMIManeIntelligenceProvisionTabulationRegardElement.h b/YuMi/Modules/YMMine/View/Cell/YUMIManeIntelligenceProvisionTabulationRegardElement.h new file mode 100644 index 00000000..732ff20c --- /dev/null +++ b/YuMi/Modules/YMMine/View/Cell/YUMIManeIntelligenceProvisionTabulationRegardElement.h @@ -0,0 +1,25 @@ +// +// YMMineHeadItemTableViewCell.h +// YUMI +// +// Created by YUMI on 2022/1/19. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class YUMIManeFuntionProvisionMatrix, YUMIManeIntelligenceProvisionTabulationRegardElement; +@protocol FBCManeIntelligenceItemTabulationViweElementRepresendtation + +- (void)yUMIManeIntelligenceProvisionTarbsultowardsionViweElement:(YUMIManeIntelligenceProvisionTabulationRegardElement *)cell didSelectItem:(YUMIManeFuntionProvisionMatrix *)item; + +@end + +@interface YUMIManeIntelligenceProvisionTabulationRegardElement : UITableViewCell + +@property (nonatomic,strong) NSArray *datasource; +@property (nonatomic,weak) id delegate; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Cell/YUMIManeIntelligenceProvisionTabulationRegardElement.m b/YuMi/Modules/YMMine/View/Cell/YUMIManeIntelligenceProvisionTabulationRegardElement.m new file mode 100644 index 00000000..d0a3a8db --- /dev/null +++ b/YuMi/Modules/YMMine/View/Cell/YUMIManeIntelligenceProvisionTabulationRegardElement.m @@ -0,0 +1,166 @@ +// +// YMMineHeadItemTableViewCell.m +// YUMI +// +// Created by YUMI on 2022/1/19. +// + +#import "YUMIManeIntelligenceProvisionTabulationRegardElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" +#import "NSArray+Safe.h" +#import "YUMIManeIntelligenceProvisionAssembletionRegardElement.h" +#import "YUMIManeIntelligenceFunctionProvisionProgramming.h" + +@interface YUMIManeIntelligenceProvisionTabulationRegardElement () +@property (nonatomic,strong) UICollectionView *collectionView; + +@property (nonatomic, strong) UIView *mainView; +@property (nonatomic, strong) UIView *slideEncourageRegard; +@property (nonatomic, strong) UIView *sliderView; + +@end + + +@implementation YUMIManeIntelligenceProvisionTabulationRegardElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor]; + [self.contentView addSubview:self.mainView]; + [self.mainView addSubview:self.collectionView]; +} + +- (void)initChildLyRestrictions { + [self.mainView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.contentView).inset(15); + make.top.bottom.mas_equalTo(self.contentView); + }]; + [self.collectionView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(14); + make.left.right.mas_equalTo(self.mainView); + make.height.mas_equalTo(77+32+17+6); + }]; +} + +#pragma mark - UICollectionViewDatasource And UICollectionViewDelegate +- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { + return self.datasource.count; +} + +- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { + YUMIManeIntelligenceProvisionAssembletionRegardElement * cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([YUMIManeIntelligenceProvisionAssembletionRegardElement class]) forIndexPath:indexPath]; + YUMIManeFuntionProvisionMatrix * item = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + cell.itemMatrix = item; + return cell; +} + +- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath { + [collectionView deselectItemAtIndexPath:indexPath animated:YES]; + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIManeIntelligenceProvisionTarbsultowardsionViweElement:didSelectItem:)]) { + YUMIManeFuntionProvisionMatrix * model = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + [self.delegate yUMIManeIntelligenceProvisionTarbsultowardsionViweElement:self didSelectItem:model]; + } +} + +#pragma mark - UICollectionViewFlowlayout +- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section { + return 0; +} + +- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath { + CGFloat width = (KScreenWidth - 30) / 4; + return CGSizeMake(width, 32+4+17+6); +} + +- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section { + return 0; +} + +- (void)scrollViewDidScroll:(UIScrollView *)scrollView { + CGPoint offset = scrollView.contentOffset; + CGRect frame = self.sliderView.frame; + frame.origin.x = offset.x*12/(scrollView.contentSize.width-scrollView.frame.size.width); + self.sliderView.frame = frame; +} + +#pragma mark - Getters And Setters +- (void)setDatasource:(NSArray *)datasource { + _datasource = datasource; + if(datasource.count > 8) { + [self.mainView addSubview:self.slideEncourageRegard]; + [self.slideEncourageRegard addSubview:self.sliderView]; + [self.slideEncourageRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.mainView); + make.size.mas_equalTo(CGSizeMake(24, 4)); + make.top.mas_equalTo(self.collectionView.mas_bottom).mas_offset(10); + }]; + [self.sliderView mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(12, 4)); + make.top.left.bottom.mas_equalTo(self.slideEncourageRegard); + }]; + } else { + [self.sliderView removeFromSuperview]; + [self.slideEncourageRegard removeFromSuperview]; + } + [self.collectionView reloadData]; +} + +- (UICollectionView *)collectionView{ + if (!_collectionView) { + YUMIManeIntelligenceFunctionProvisionProgramming *layout = [[YUMIManeIntelligenceFunctionProvisionProgramming alloc] init]; + layout.scrollDirection = UICollectionViewScrollDirectionHorizontal; + _collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout]; + _collectionView.dataSource = self; + _collectionView.delegate = self; + layout.minimumLineSpacing = 0; + layout.minimumInteritemSpacing = 10; + layout.sectionInset = UIEdgeInsetsMake(0, 0, 0, 0); + _collectionView.backgroundColor = [DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify]; + [_collectionView registerClass:[YUMIManeIntelligenceProvisionAssembletionRegardElement class] forCellWithReuseIdentifier:NSStringFromClass([YUMIManeIntelligenceProvisionAssembletionRegardElement class])]; + _collectionView.showsHorizontalScrollIndicator = NO; + _collectionView.pagingEnabled = YES; + } + return _collectionView; +} + +- (UIView *)sliderView { + if (!_sliderView) { + _sliderView = [[UIView alloc] init]; + _sliderView.backgroundColor = [DJDKMIMOMColor aplictowardsionMainPrettify]; + _sliderView.layer.cornerRadius = 2; + _sliderView.layer.masksToBounds = YES; + } + return _sliderView; +} + +- (UIView *)slideEncourageRegard { + if (!_slideEncourageRegard) { + _slideEncourageRegard = [[UIView alloc] init]; + _slideEncourageRegard.backgroundColor = UIColorRGBAlpha(0x000000, 0.1); + _slideEncourageRegard.layer.cornerRadius = 2; + _slideEncourageRegard.layer.masksToBounds = YES; + _slideEncourageRegard.clipsToBounds = YES; + } + return _slideEncourageRegard; +} + +- (UIView *)mainView { + if (!_mainView) { + _mainView = [[UIView alloc] init]; + _mainView.backgroundColor = [UIColor whiteColor]; + _mainView.layer.cornerRadius = 8; + _mainView.layer.masksToBounds = YES; + } + return _mainView; +} + +@end diff --git a/YuMi/Modules/YMMine/View/Cell/YUMIManeNotificationTabulationRegardElement.h b/YuMi/Modules/YMMine/View/Cell/YUMIManeNotificationTabulationRegardElement.h new file mode 100644 index 00000000..f91a616d --- /dev/null +++ b/YuMi/Modules/YMMine/View/Cell/YUMIManeNotificationTabulationRegardElement.h @@ -0,0 +1,23 @@ +// +// YMMineNotificationTableViewCell.h +// YUMI +// +// Created by YUMI on 2021/9/17. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class YUMIManeNotificationTabulationRegardElement, YUMIManeNotificationProvisionMatrix; +@protocol FBCManeNotificationTabulationViweElementRepresendtation +- (void)fBCManeCircularTarbsultowardsionViweElement:(YUMIManeNotificationTabulationRegardElement *)cell switchStatus:(BOOL)status; + +@end +@interface YUMIManeNotificationTabulationRegardElement : UITableViewCell + +@property (nonatomic,weak) id delegate; +@property (nonatomic,strong) YUMIManeNotificationProvisionMatrix *itemMatrix; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Cell/YUMIManeNotificationTabulationRegardElement.m b/YuMi/Modules/YMMine/View/Cell/YUMIManeNotificationTabulationRegardElement.m new file mode 100644 index 00000000..c4dd0b5c --- /dev/null +++ b/YuMi/Modules/YMMine/View/Cell/YUMIManeNotificationTabulationRegardElement.m @@ -0,0 +1,101 @@ +// +// YMMineNotificationTableViewCell.m +// YUMI +// +// Created by YUMI on 2021/9/17. +// + +#import "YUMIManeNotificationTabulationRegardElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "YUMIManeNotificationProvisionMatrix.h" + +@interface YUMIManeNotificationTabulationRegardElement () +@property (nonatomic, strong) UILabel *titleLabel; +@property (nonatomic, strong) UILabel *subtitleLabel; +@property (nonatomic, strong) UISwitch *chosenSwop; +@end + +@implementation YUMIManeNotificationTabulationRegardElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; + if (self) { + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self initSubviews]; + [self manufactureConstriants]; + } + return self; +} + +#pragma mark - event +- (void)swopDidBetowardslictowardsioned:(UISwitch *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(fBCManeCircularTarbsultowardsionViweElement:switchStatus:)]) { + [self.delegate fBCManeCircularTarbsultowardsionViweElement:self switchStatus:sender.on]; + } +} + +#pragma mark - private +- (void)initSubviews { + [self.contentView addSubview:self.titleLabel]; + [self.contentView addSubview:self.subtitleLabel]; + [self.contentView addSubview:self.chosenSwop]; + self.backgroundColor = [DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify]; +} + +- (void)manufactureConstriants { + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.contentView).offset(15); + make.top.mas_equalTo(14); + }]; + [self.subtitleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.titleLabel); + make.top.mas_equalTo(self.titleLabel.mas_bottom).offset(8); + }]; + [self.chosenSwop mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self.contentView).offset(-15); + make.centerY.mas_equalTo(self.contentView); + }]; +} + +#pragma mark - Getter && Setter + +- (void)setItemMatrix:(YUMIManeNotificationProvisionMatrix *)itemMatrix { + _itemMatrix = itemMatrix; + self.titleLabel.text = _itemMatrix.title; + self.subtitleLabel.text = _itemMatrix.desc; + self.chosenSwop.on = _itemMatrix.notification; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.font = [UIFont systemFontOfSize:16]; + _titleLabel.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _titleLabel; +} + +- (UILabel *)subtitleLabel { + if (!_subtitleLabel) { + _subtitleLabel = [[UILabel alloc] init]; + _subtitleLabel.font = [UIFont systemFontOfSize:12]; + _subtitleLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + } + return _subtitleLabel; +} + +- (UISwitch *)chosenSwop { + if (_chosenSwop == nil) { + _chosenSwop = [[UISwitch alloc] init]; + _chosenSwop.onTintColor = [DJDKMIMOMColor aplictowardsionMainPrettify]; + _chosenSwop.tintColor = [DJDKMIMOMColor prohibitionBtutonPrettify]; + _chosenSwop.backgroundColor = [UIColor clearColor]; + _chosenSwop.layer.cornerRadius = CGRectGetHeight(_chosenSwop.frame)/2.0; + _chosenSwop.layer.masksToBounds = YES; + [_chosenSwop addTarget:self action:@selector(swopDidBetowardslictowardsioned:) forControlEvents:UIControlEventValueChanged]; + } + return _chosenSwop; +} + +@end diff --git a/YuMi/Modules/YMMine/View/Cell/YUMIManeStatementElement.h b/YuMi/Modules/YMMine/View/Cell/YUMIManeStatementElement.h new file mode 100644 index 00000000..7379682e --- /dev/null +++ b/YuMi/Modules/YMMine/View/Cell/YUMIManeStatementElement.h @@ -0,0 +1,17 @@ +// +// YUMIManeStatementElement.h +// YuMi +// +// Created by YuMi on 2023/6/30. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class YUMIManeFuntionProvisionMatrix; +@interface YUMIManeStatementElement : UITableViewCell +@property (nonatomic,strong) YUMIManeFuntionProvisionMatrix *itemMatrix; +-(void)setMonopolizeAboutIsApex:(BOOL)isApex isExtreme:(BOOL)isExtreme; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Cell/YUMIManeStatementElement.m b/YuMi/Modules/YMMine/View/Cell/YUMIManeStatementElement.m new file mode 100644 index 00000000..26c20342 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Cell/YUMIManeStatementElement.m @@ -0,0 +1,139 @@ +// +// YUMIManeStatementElement.m +// YuMi +// +// Created by YuMi on 2023/6/30. +// + +#import "YUMIManeStatementElement.h" +#import "NetIndicateRegard.h" +#import "UIView+Corner.h" +#import "YUMIManeFuntionProvisionMatrix.h" +@interface YUMIManeStatementElement() + +@property (nonatomic,strong) UIView * backgroundRegard; +@property (nonatomic,strong) NetIndicateRegard *figureRegard; +@property (nonatomic,strong) UILabel * championVeiw; +@property (nonatomic,strong) UIImageView * arrowView; +@property (nonatomic,strong) UIView *burlywoodRegard; + +@end +@implementation YUMIManeStatementElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.selectionStyle = UITableViewCellSelectionStyleNone; + self.backgroundColor = [UIColor clearColor]; + [self.contentView addSubview:self.backgroundRegard]; + [self.backgroundRegard addSubview:self.figureRegard]; + [self.backgroundRegard addSubview:self.championVeiw]; + [self.backgroundRegard addSubview:self.arrowView]; + [self.backgroundRegard addSubview:self.burlywoodRegard]; + +} +- (void)initChildLyRestrictions { + [self.backgroundRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(15); + make.right.mas_equalTo(-15); + make.top.bottom.equalTo(self.contentView); + }]; + [self.figureRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(11); + make.width.height.mas_equalTo(25); + make.centerY.equalTo(self.backgroundRegard); + }]; + + [self.championVeiw mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(42); + make.centerY.equalTo(self.backgroundRegard); + }]; + [self.arrowView mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_offset(20); + make.height.mas_offset(20); + make.centerY.equalTo(self.backgroundRegard); + make.right.mas_equalTo(-15); + }]; + + [self.burlywoodRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(0.5); + make.bottom.equalTo(self.backgroundRegard); + make.left.mas_equalTo(15); + make.right.mas_equalTo(-15); + }]; + + +} +#pragma mark - Getters And Setters + +- (void)setItemMatrix:(YUMIManeFuntionProvisionMatrix *)itemMatrix { + _itemMatrix = itemMatrix; + if (_itemMatrix) { + self.championVeiw.text = _itemMatrix.centerName; + if([_itemMatrix.centerPic isEqualToString:@"mineview_set"]){ + self.figureRegard.image = [UIImage imageNamed:@"mineview_set"]; + }else{ + self.figureRegard.imageUrl = _itemMatrix.centerPic; + } + } +} +-(void)setMonopolizeAboutIsApex:(BOOL)isApex isExtreme:(BOOL)isExtreme{ + _backgroundRegard.layer.mask = nil; + if(isApex == YES && isExtreme == YES){ + [_backgroundRegard setMonopolizeAboutContraryApexMonopolize:10 rightTopCorner:10 bottomLeftCorner:10 bottomRightCorner:10 size:CGSizeMake(KScreenWidth - 30, 60)]; + + return; + } + if (isApex){ + [_backgroundRegard setMonopolizeAboutContraryApexMonopolize:10 rightTopCorner:10 bottomLeftCorner:0 bottomRightCorner:0 size:CGSizeMake(KScreenWidth - 30, 60)]; + } + if(isExtreme){ + [_backgroundRegard setMonopolizeAboutContraryApexMonopolize:0 rightTopCorner:0 bottomLeftCorner:10 bottomRightCorner:10 size:CGSizeMake(KScreenWidth - 30, 60)]; + } +} +- (UIView *)backgroundRegard{ + if (!_backgroundRegard){ + _backgroundRegard = [UIView new]; + _backgroundRegard.backgroundColor = [UIColor whiteColor]; + } + return _backgroundRegard; +} +- (NetIndicateRegard *)figureRegard{ + if (!_figureRegard){ + _figureRegard = [NetIndicateRegard new]; + } + return _figureRegard; +} + +- (UILabel *)championVeiw{ + if (!_championVeiw){ + _championVeiw = [UILabel new]; + _championVeiw.font = [UIFont systemFontOfSize:14 weight:UIFontWeightRegular]; + _championVeiw.textColor = UIColorFromRGB(0x1F1A4E); + } + return _championVeiw; +} + +- (UIImageView *)arrowView{ + if (!_arrowView){ + _arrowView = [UIImageView new]; + _arrowView.image = [UIImage imageNamed:@"mine_item_new_arrow"]; + } + return _arrowView; +} + +-(UIView *)burlywoodRegard{ + if (!_burlywoodRegard){ + _burlywoodRegard = [UIView new]; + _burlywoodRegard.backgroundColor = UIColorFromRGB(0xF7F7F7); + } + return _burlywoodRegard; +} +@end diff --git a/YuMi/Modules/YMMine/View/Cell/YUMIManeTheUnionElement.h b/YuMi/Modules/YMMine/View/Cell/YUMIManeTheUnionElement.h new file mode 100644 index 00000000..9697bbe7 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Cell/YUMIManeTheUnionElement.h @@ -0,0 +1,16 @@ +// +// YUMIManeTheUnionElement.h +// YuMi +// +// Created by YuMi on 2023/6/30. +// + +#import +#import "CollectiveSpecificAbstractMatrix.h" +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeTheUnionElement : UITableViewCell +@property (nonatomic,strong) CollectiveSpecificAbstractMatrix *collectiveAbstract; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Cell/YUMIManeTheUnionElement.m b/YuMi/Modules/YMMine/View/Cell/YUMIManeTheUnionElement.m new file mode 100644 index 00000000..3a2cab60 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Cell/YUMIManeTheUnionElement.m @@ -0,0 +1,143 @@ +// +// YUMIManeTheUnionElement.m +// YuMi +// +// Created by YuMi on 2023/6/30. +// + +#import "YUMIManeTheUnionElement.h" +#import "NetIndicateRegard.h" +#import "UIView+Corner.h" +@interface YUMIManeTheUnionElement() +@property (nonatomic,strong) UIImageView *backgroundIndicateRegard; + +@property (nonatomic,strong) UIImageView *contraryFigureRegard; +@property (nonatomic,strong) NetIndicateRegard *intelligenceFigureRegard; +@property (nonatomic,strong) UILabel *titleView; + +@property (nonatomic,strong) UIButton *rectifyFigureBtuton; + +@end + + +@implementation YUMIManeTheUnionElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.selectionStyle = UITableViewCellSelectionStyleNone; + self.backgroundColor = [UIColor clearColor]; + [self.contentView addSubview:self.backgroundIndicateRegard]; + [self.backgroundIndicateRegard addSubview:self.intelligenceFigureRegard]; + [self.backgroundIndicateRegard addSubview:self.contraryFigureRegard]; + [self.backgroundIndicateRegard addSubview:self.titleView]; + [self.backgroundIndicateRegard addSubview:self.rectifyFigureBtuton]; +} +- (void)initChildLyRestrictions { + [self.backgroundIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.trailing.mas_equalTo(-15); + make.leading.mas_equalTo(15); + make.top.height.equalTo(self.contentView); + }]; + [self.intelligenceFigureRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.leading.mas_equalTo(18); + make.width.height.mas_equalTo(29); + make.centerY.equalTo(self.backgroundIndicateRegard); + }]; + [self.contraryFigureRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.leading.mas_equalTo(17); + make.width.mas_equalTo(30.76); + make.height.mas_equalTo(30); + make.centerY.equalTo(self.backgroundIndicateRegard); + }]; + [self.titleView mas_makeConstraints:^(MASConstraintMaker *make) { + make.leading.mas_equalTo(60); + make.centerY.equalTo(self.backgroundIndicateRegard); + }]; + [self.rectifyFigureBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.trailing.mas_equalTo(-18); + make.width.height.mas_equalTo(28); + make.centerY.equalTo(self.backgroundIndicateRegard); + }]; +} + +-(void)setCollectiveAbstract:(CollectiveSpecificAbstractMatrix *)collectiveAbstract{ + _collectiveAbstract = collectiveAbstract; + if(_collectiveAbstract.hall.ownerUid > 0 || _collectiveAbstract.clan.elderUid > 0){ + _titleView.text = YMLocalizedString(@"YUMI_MineTheGuildCell0"); + _contraryFigureRegard.hidden = YES; + _rectifyFigureBtuton.selected = YES; + _intelligenceFigureRegard.hidden = NO; + NSString *imageUrl = @""; + if (_collectiveAbstract.clan.elderUid > 0){ + imageUrl = _collectiveAbstract.clan.avatar; + }else{ + if(_collectiveAbstract.hall.ownerUid > 0){ + imageUrl = _collectiveAbstract.hall.ownerAvatar; + } + } + _intelligenceFigureRegard.imageUrl = imageUrl; + } +} + +#pragma mark -懒加载 + +- (UIImageView *)backgroundIndicateRegard{ + if (!_backgroundIndicateRegard){ + _backgroundIndicateRegard = [UIImageView new]; + _backgroundIndicateRegard.userInteractionEnabled = YES; + _backgroundIndicateRegard.image = [UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[UIColorFromRGB(0x2C2825),UIColorFromRGB(0x4E433D)] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(KScreenWidth - 30, 44)]; + [_backgroundIndicateRegard setMonopolizeAboutContraryApexMonopolize:8 rightTopCorner:8 bottomLeftCorner:8 bottomRightCorner:8 size:CGSizeMake(KScreenWidth - 30, 44)]; + } + return _backgroundIndicateRegard; +} +-(NetIndicateRegard *)intelligenceFigureRegard{ + if(!_intelligenceFigureRegard){ + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceFigureRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceFigureRegard.layer.cornerRadius = 14.5; + _intelligenceFigureRegard.layer.masksToBounds = YES; + _intelligenceFigureRegard.hidden = YES; + _intelligenceFigureRegard.layer.borderWidth = 1; + _intelligenceFigureRegard.layer.borderColor = UIColorFromRGB(0xF7C8A9).CGColor; + } + return _intelligenceFigureRegard; +} +-(UIImageView *)contraryFigureRegard{ + if (!_contraryFigureRegard){ + _contraryFigureRegard = [UIImageView new]; + _contraryFigureRegard.image = [UIImage imageNamed:@"yumi_center_guild_my_pic"]; + } + return _contraryFigureRegard; +} +- (UILabel *)titleView{ + if(!_titleView){ + _titleView = [UILabel new]; + _titleView.font = [UIFont fontWithName:@"PingFang-SC-Medium" size:15]; + _titleView.text = YMLocalizedString(@"YUMI_MineTheGuildCell1"); + UIImage *image = [UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[UIColorFromRGB(0xF9CFB3),(id)UIColorFromRGB(0xEEA473)] gradientType:GradientGenreTopToBottom imgSize:CGSizeMake(100, 30)]; + _titleView.textColor = [UIColor colorWithPatternImage:image]; + } + return _titleView; +} +-(UIButton *)rectifyFigureBtuton{ + if(!_rectifyFigureBtuton){ + _rectifyFigureBtuton = [UIButton new]; + [_rectifyFigureBtuton setBackgroundImage:[UIImage imageNamed:@"yumi_center_guild_add"] forState:UIControlStateNormal]; + [_rectifyFigureBtuton setBackgroundImage:[UIImage imageNamed:@"yumi_center_guild_right_arrow"] forState:UIControlStateSelected]; + _rectifyFigureBtuton.selected = NO; + _rectifyFigureBtuton.userInteractionEnabled = NO; + } + return _rectifyFigureBtuton; +} +@end diff --git a/YuMi/Modules/YMMine/View/CollectRoom/Cell/YUMIManeAssembleChamberCompileElement.h b/YuMi/Modules/YMMine/View/CollectRoom/Cell/YUMIManeAssembleChamberCompileElement.h new file mode 100644 index 00000000..2bfabf3c --- /dev/null +++ b/YuMi/Modules/YMMine/View/CollectRoom/Cell/YUMIManeAssembleChamberCompileElement.h @@ -0,0 +1,18 @@ +// +// YMMineCollectRoomEditCell.h +// YUMI +// +// Created by YUMI on 2022/10/11. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class ResidenceAssembleChamberMatrix; +@interface YUMIManeAssembleChamberCompileElement : UITableViewCell +@property (nonatomic,strong) ResidenceAssembleChamberMatrix *roomInfo; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/CollectRoom/Cell/YUMIManeAssembleChamberCompileElement.m b/YuMi/Modules/YMMine/View/CollectRoom/Cell/YUMIManeAssembleChamberCompileElement.m new file mode 100644 index 00000000..5b2afc72 --- /dev/null +++ b/YuMi/Modules/YMMine/View/CollectRoom/Cell/YUMIManeAssembleChamberCompileElement.m @@ -0,0 +1,137 @@ +// +// YMMineCollectRoomEditCell.m +// YUMI +// +// Created by YUMI on 2022/10/11. +// + +#import "YUMIManeAssembleChamberCompileElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "NetIndicateRegard.h" +#import "UIImage+Utils.h" +#import "ResidenceAssembleChamberMatrix.h" + +@interface YUMIManeAssembleChamberCompileElement () + +@property (nonatomic,strong) NetIndicateRegard *intelligenceportraitIndicateRegard; +@property (nonatomic,strong) UILabel *monicerSequencignation; +@property (nonatomic,strong) UILabel *idSequencignation; +@property (nonatomic, strong) UIButton *chosenBtuton; +@property (nonatomic, strong) UIView *devideRegard; + +@end + +@implementation YUMIManeAssembleChamberCompileElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor]; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.intelligenceportraitIndicateRegard]; + [self.contentView addSubview:self.monicerSequencignation]; + [self.contentView addSubview:self.idSequencignation]; + [self.contentView addSubview:self.devideRegard]; + [self.contentView addSubview:self.chosenBtuton]; +} + +- (void)initChildLyRestrictions { + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(44, 44)); + make.left.mas_equalTo(self.chosenBtuton.mas_right).offset(15); + make.centerY.mas_equalTo(self.contentView); + }]; + [self.monicerSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_right).offset(7); + make.top.mas_equalTo(self.intelligenceportraitIndicateRegard).offset(2); + make.right.mas_equalTo(-15); + make.height.mas_equalTo(14); + }]; + [self.idSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.monicerSequencignation.mas_bottom).mas_offset(8); + make.left.mas_equalTo(self.monicerSequencignation); + make.height.mas_equalTo(14); + }]; + + [self.devideRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.monicerSequencignation); + make.height.mas_equalTo(0.5); + make.right.bottom.mas_equalTo(0); + }]; + + [self.chosenBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(20, 20)); + make.left.mas_equalTo(15); + make.centerY.mas_equalTo(self.contentView); + }]; +} + +#pragma mark - Getters And Setters +- (void)setRoomInfo:(ResidenceAssembleChamberMatrix *)roomInfo { + _roomInfo = roomInfo; + if (_roomInfo) { + self.intelligenceportraitIndicateRegard.imageUrl = _roomInfo.roomAvatar; + self.monicerSequencignation.text = _roomInfo.roomName; + self.idSequencignation.text = [NSString stringWithFormat:@"ID:%@", _roomInfo.erbanNo]; + self.chosenBtuton.selected = roomInfo.isSelected; + } +} + +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _intelligenceportraitIndicateRegard.layer.cornerRadius = 22; + _intelligenceportraitIndicateRegard.layer.borderColor = [DJDKMIMOMColor aplictowardsionMainPrettify].CGColor; + } + return _intelligenceportraitIndicateRegard; +} + +- (UILabel *)monicerSequencignation { + if (!_monicerSequencignation) { + _monicerSequencignation = [[UILabel alloc] init]; + _monicerSequencignation.font = [UIFont systemFontOfSize:14]; + _monicerSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _monicerSequencignation; +} + +- (UILabel *)idSequencignation { + if (!_idSequencignation) { + _idSequencignation = [[UILabel alloc] init]; + _idSequencignation.font = [UIFont systemFontOfSize:12]; + _idSequencignation.textColor = [DJDKMIMOMColor instantEssayPrettify]; + } + return _idSequencignation; +} + +- (UIButton *)chosenBtuton { + if (!_chosenBtuton) { + _chosenBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_chosenBtuton setImage:[UIImage imageNamed:@"yumi_collect_scope_edit_normal"] forState:UIControlStateNormal]; + [_chosenBtuton setImage:[UIImage imageNamed:@"yumi_collect_scope_edit_selected"] forState:UIControlStateSelected]; + _chosenBtuton.userInteractionEnabled = NO; + } + return _chosenBtuton; +} + +- (UIView *)devideRegard { + if (!_devideRegard) { + _devideRegard = [[UIView alloc] init]; + _devideRegard.backgroundColor = UIColorFromRGB(0xEAEAF1); + } + return _devideRegard; +} + +@end diff --git a/YuMi/Modules/YMMine/View/CollectRoom/Cell/YUMIManeAssembleChamberElement.h b/YuMi/Modules/YMMine/View/CollectRoom/Cell/YUMIManeAssembleChamberElement.h new file mode 100644 index 00000000..e3eeebe5 --- /dev/null +++ b/YuMi/Modules/YMMine/View/CollectRoom/Cell/YUMIManeAssembleChamberElement.h @@ -0,0 +1,19 @@ +// +// YMMineCollectRoomCell.h +// YUMI +// +// Created by YUMI on 2022/10/12. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class ResidenceAssembleChamberMatrix; +@interface YUMIManeAssembleChamberElement : UITableViewCell + +@property (nonatomic,strong) ResidenceAssembleChamberMatrix *roomInfo; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/CollectRoom/Cell/YUMIManeAssembleChamberElement.m b/YuMi/Modules/YMMine/View/CollectRoom/Cell/YUMIManeAssembleChamberElement.m new file mode 100644 index 00000000..59ccbe20 --- /dev/null +++ b/YuMi/Modules/YMMine/View/CollectRoom/Cell/YUMIManeAssembleChamberElement.m @@ -0,0 +1,119 @@ +// +// YMMineCollectRoomCell.m +// YUMI +// +// Created by YUMI on 2022/10/12. +// + +#import "YUMIManeAssembleChamberElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "NetIndicateRegard.h" +#import "UIImage+Utils.h" +#import "ResidenceAssembleChamberMatrix.h" + +@interface YUMIManeAssembleChamberElement () + +@property (nonatomic,strong) NetIndicateRegard *intelligenceportraitIndicateRegard; +@property (nonatomic,strong) UILabel *monicerSequencignation; +@property (nonatomic,strong) UILabel *idSequencignation; +@property (nonatomic, strong) UIView *devideRegard; + +@end + +@implementation YUMIManeAssembleChamberElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor]; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.intelligenceportraitIndicateRegard]; + [self.contentView addSubview:self.monicerSequencignation]; + [self.contentView addSubview:self.idSequencignation]; + [self.contentView addSubview:self.devideRegard]; +} + +- (void)initChildLyRestrictions { + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(44, 44)); + make.left.mas_equalTo(self.contentView).offset(15); + make.centerY.mas_equalTo(self.contentView); + }]; + [self.monicerSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_right).offset(7); + make.top.mas_equalTo(self.intelligenceportraitIndicateRegard).offset(2); + make.right.mas_equalTo(-15); + make.height.mas_equalTo(14); + }]; + [self.idSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.monicerSequencignation.mas_bottom).mas_offset(8); + make.left.mas_equalTo(self.monicerSequencignation); + make.height.mas_equalTo(14); + }]; + + [self.devideRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.monicerSequencignation); + make.height.mas_equalTo(0.5); + make.right.bottom.mas_equalTo(0); + }]; + +} + +#pragma mark - Getters And Setters +- (void)setRoomInfo:(ResidenceAssembleChamberMatrix *)roomInfo { + _roomInfo = roomInfo; + if (_roomInfo) { + self.intelligenceportraitIndicateRegard.imageUrl = _roomInfo.roomAvatar; + self.monicerSequencignation.text = _roomInfo.roomName; + self.idSequencignation.text = [NSString stringWithFormat:@"ID:%@", _roomInfo.erbanNo]; + } +} + +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _intelligenceportraitIndicateRegard.layer.cornerRadius = 22; + _intelligenceportraitIndicateRegard.layer.borderColor = [DJDKMIMOMColor aplictowardsionMainPrettify].CGColor; + } + return _intelligenceportraitIndicateRegard; +} + +- (UILabel *)monicerSequencignation { + if (!_monicerSequencignation) { + _monicerSequencignation = [[UILabel alloc] init]; + _monicerSequencignation.font = [UIFont systemFontOfSize:14]; + _monicerSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _monicerSequencignation; +} + +- (UILabel *)idSequencignation { + if (!_idSequencignation) { + _idSequencignation = [[UILabel alloc] init]; + _idSequencignation.font = [UIFont systemFontOfSize:12]; + _idSequencignation.textColor = [DJDKMIMOMColor instantEssayPrettify]; + } + return _idSequencignation; +} + +- (UIView *)devideRegard { + if (!_devideRegard) { + _devideRegard = [[UIView alloc] init]; + _devideRegard.backgroundColor = UIColorFromRGB(0xEAEAF1); + } + return _devideRegard; +} + +@end diff --git a/YuMi/Modules/YMMine/View/CollectRoom/YUMIManeAssembleParatiesChamberRegardGovernancer.h b/YuMi/Modules/YMMine/View/CollectRoom/YUMIManeAssembleParatiesChamberRegardGovernancer.h new file mode 100644 index 00000000..52fe17f4 --- /dev/null +++ b/YuMi/Modules/YMMine/View/CollectRoom/YUMIManeAssembleParatiesChamberRegardGovernancer.h @@ -0,0 +1,36 @@ +// +// YMMineCollectPartyRoomViewController.h +// YUMI +// +// Created by YUMI on 2022/10/11. +// + +#import "MvpRegardGovernancer.h" +#import + +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSUInteger, ManeCollectChamberGenre) { + ManeCollectChamberGenreParty, + ManeCollectChamberGenreAnchor +}; + +@protocol FBCManeCollectPartyChamberRegardGovernancerRepresendtation + +- (void)fBCManeAssemblePartyChamberRegardGovernancerChosenEntirety:(BOOL)selectAll; + +@end + +@interface YUMIManeAssembleParatiesChamberRegardGovernancer : MvpRegardGovernancer + +@property (nonatomic, weak) id delegate; + +@property (nonatomic, assign) ManeCollectChamberGenre type; +@property (nonatomic,strong, readonly) NSMutableArray *datasource; +@property (nonatomic, assign) BOOL isCompile; +@property (nonatomic, assign) BOOL isChosenEntirety; +- (void)intelligenceerRenovtowardseh; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/CollectRoom/YUMIManeAssembleParatiesChamberRegardGovernancer.m b/YuMi/Modules/YMMine/View/CollectRoom/YUMIManeAssembleParatiesChamberRegardGovernancer.m new file mode 100644 index 00000000..1b7387b4 --- /dev/null +++ b/YuMi/Modules/YMMine/View/CollectRoom/YUMIManeAssembleParatiesChamberRegardGovernancer.m @@ -0,0 +1,225 @@ +// +// YMMineCollectPartyRoomViewController.m +// YUMI +// +// Created by YUMI on 2022/10/11. +// + +#import "YUMIManeAssembleParatiesChamberRegardGovernancer.h" +#import +#import +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" +#import "NSArray+Safe.h" +#import "ResidenceAssembleChamberMatrix.h" +#import "YUMIManeAssembleChamberStatementExternalizer.h" +#import "FBCManeCollectChamberStatementCeremony.h" +#import "YUMIManeAssembleChamberElement.h" +#import "YUMIManeVacationerDispossessTabulationRegardElement.h" +#import "YUMIManeAssembleChamberCompileElement.h" +#import "YUMIChamberRegardGovernancer.h" + +@interface YUMIManeAssembleParatiesChamberRegardGovernancer () + +@property (nonatomic,strong) UITableView *tableView; +@property (nonatomic,strong) NSMutableArray *datasource; +@property (nonatomic,assign) int page; +@property (nonatomic,assign) BOOL hasNoFurthaerAtoloudspeaker; + +@end + +@implementation YUMIManeAssembleParatiesChamberRegardGovernancer + +#pragma mark - JXCategoryListContentViewDelegate +- (UIView *)listView { + return self.view; +} + +- (YUMIManeAssembleChamberStatementExternalizer *)producePresimport { + return [[YUMIManeAssembleChamberStatementExternalizer alloc] init]; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initIntelligencerGrantedTerminalerRrfresh]; + [self initSubViews]; + [self initChildLyRestrictions]; +} + +#pragma mark - 下拉刷新 +- (void)initIntelligencerGrantedTerminalerRrfresh { + MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(intelligenceerRenovtowardseh)]; + header.stateLabel.font = [UIFont systemFontOfSize:10.0]; + header.lastUpdatedTimeLabel.font = [UIFont systemFontOfSize:10.0]; + header.stateLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + header.lastUpdatedTimeLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + self.tableView.mj_header = header; + + MJRefreshBackNormalFooter *footer = [MJRefreshBackNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(footerRenovtowardseh)]; + footer.stateLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + footer.stateLabel.font = [UIFont systemFontOfSize:10.0]; + self.tableView.mj_footer = footer; + + [self intelligenceerRenovtowardseh]; +} + +#pragma mark - 刷新的fangfa +- (void)intelligenceerRenovtowardseh { + self.page = 1; + [self.presimport acquireAssembleChamberSttowardsement:self.page pageSize:20 state:0 type:self.type == ManeCollectChamberGenreParty ? @"1" : @"4"]; +} + +- (void)footerRenovtowardseh { + if (self.hasNoFurthaerAtoloudspeaker) { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_Mine_Collect_Party_Room_View_Controller_0")]; + return; + } + self.page++; + [self.presimport acquireAssembleChamberSttowardsement:self.page pageSize:20 state:1 type:self.type == ManeCollectChamberGenreParty ? @"1" : @"4"]; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.title = YMLocalizedString(@"YUMI_Mine_Collect_Party_Room_View_Controller_1"); + [self.view addSubview:self.tableView]; +} + +- (void)initChildLyRestrictions { + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.view); + }]; +} + +#pragma mark - FBCManeCollectChamberStatementCeremony +- (void)dwellEarnAssembleChamberSttowardsementAccomplishment:(NSArray *)array state:(int)state { + if (state == 0) { + [self.datasource removeAllObjects]; + [self.tableView.mj_header endRefreshing]; + } + [self.tableView.mj_footer endRefreshing]; + if (array.count > 0) { + self.hasNoFurthaerAtoloudspeaker = NO; + [self.datasource addObjectsFromArray:array]; + } else { + self.hasNoFurthaerAtoloudspeaker = YES; + [self.tableView.mj_footer endRefreshingWithNoMoreData]; + } + [self.tableView reloadData]; +} + +- (void)acquireAssembleChamberSttowardsementFlunk:(int)state { + if (state == 0) { + [self.tableView.mj_header endRefreshing]; + } else { + [self.tableView.mj_footer endRefreshing]; + } +} + +#pragma mark - UITableViewDelegate And UITableViewDataSource +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.datasource.count > 0 ? self.datasource.count : 1; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + if (self.datasource.count > 0) { + if (self.isCompile) { + YUMIManeAssembleChamberCompileElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIManeAssembleChamberCompileElement class])]; + if (cell == nil) { + cell = [[YUMIManeAssembleChamberCompileElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIManeAssembleChamberCompileElement class])]; + } + cell.roomInfo = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + return cell; + } else { + YUMIManeAssembleChamberElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIManeAssembleChamberElement class])]; + if (cell == nil) { + cell = [[YUMIManeAssembleChamberElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIManeAssembleChamberElement class])]; + } + cell.roomInfo = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + return cell; + } + } + + YUMIManeVacationerDispossessTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIManeVacationerDispossessTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIManeVacationerDispossessTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIManeVacationerDispossessTabulationRegardElement class])]; + } + cell.emptyTitle = YMLocalizedString(@"YUMI_Mine_Collect_Party_Room_View_Controller_2"); + return cell; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + return 68; +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + ResidenceAssembleChamberMatrix * roomInfo = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + if (self.isCompile) { + roomInfo.isSelected = !roomInfo.isSelected; + [tableView reloadData]; + BOOL selectAll = YES; + for (ResidenceAssembleChamberMatrix *item in self.datasource) { + if (!item.isSelected) { + selectAll = NO; + break; + } + } + if (self.delegate && [self.delegate respondsToSelector:@selector(fBCManeAssemblePartyChamberRegardGovernancerChosenEntirety:)]) { + [self.delegate fBCManeAssemblePartyChamberRegardGovernancerChosenEntirety:selectAll]; + } + } else { + if (roomInfo.roomUid.integerValue > 0) { + [YUMIChamberRegardGovernancer unfoildChamber:roomInfo.roomUid viewController:self]; + } + } +} + +- (void)setIsCompile:(BOOL)isCompile { + _isCompile = isCompile; + for (ResidenceAssembleChamberMatrix *model in self.datasource) { + model.isSelected = NO; + } + [self.tableView reloadData]; +} + +- (void)setIsChosenEntirety:(BOOL)isChosenEntirety { + _isChosenEntirety = isChosenEntirety; + if (isChosenEntirety) { + for (ResidenceAssembleChamberMatrix *model in self.datasource) { + model.isSelected = YES; + } + } else { + for (ResidenceAssembleChamberMatrix *model in self.datasource) { + model.isSelected = NO; + } + } + [self.tableView reloadData]; +} + +#pragma mark - Getters And Setters +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.tableFooterView = [UIView new]; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.backgroundColor = [UIColor clearColor]; + if (@available(iOS 11.0, *)) { + _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + _tableView.contentInset = UIEdgeInsetsMake(8, 0, 0, 0); + [_tableView registerClass:[YUMIManeVacationerDispossessTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIManeVacationerDispossessTabulationRegardElement class])]; + [_tableView registerClass:[YUMIManeAssembleChamberElement class] forCellReuseIdentifier:NSStringFromClass([YUMIManeAssembleChamberElement class])]; + [_tableView registerClass:[YUMIManeAssembleChamberCompileElement class] forCellReuseIdentifier:NSStringFromClass([YUMIManeAssembleChamberCompileElement class])]; + } + return _tableView; +} + +- (NSMutableArray *)datasource { + if (!_datasource) { + _datasource = [NSMutableArray array]; + } + return _datasource; +} + +@end diff --git a/YuMi/Modules/YMMine/View/DressUp/Api/Api+DressUp.h b/YuMi/Modules/YMMine/View/DressUp/Api/Api+DressUp.h new file mode 100644 index 00000000..b121536e --- /dev/null +++ b/YuMi/Modules/YMMine/View/DressUp/Api/Api+DressUp.h @@ -0,0 +1,45 @@ +// +// Api+DressUp.h +// YUMI +// +// Created by YUMI on 2021/12/15. +// + +#import "Api.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface Api (DressUp) ++ (void)intelligencewearSttowardsement:(HttpRequestHelperCompletion)completion ticket:(NSString *)ticket uid:(NSString *)uid; + ++ (void)automobileSttowardsement:(HttpRequestHelperCompletion)completion ticket:(NSString *)ticket uid:(NSString *)uid; + ++ (void)mtowardserialSttowardsement:(HttpRequestHelperCompletion)completion ticket:(NSString *)ticket uid:(NSString *)uid page:(NSString *)page pageSize:(NSString *)pageSize; + ++ (void)magnificentSolitaireSttowardsement:(HttpRequestHelperCompletion)completion ticket:(NSString *)ticket uid:(NSString *)uid page:(NSString *)page pageSize:(NSString *)pageSize; + ++ (void)chinwagIntumesceSttowardsement:(HttpRequestHelperCompletion)completion page:(NSString *)page pageSize:(NSString *)pageSize; + ++ (void)utilizeIntelligencePenetrtowardse:(HttpRequestHelperCompletion)completion headwearId:(NSString *)headwearId ticket:(NSString *)ticket uid:(NSString *)uid; + ++ (void)utilizeAutomobile:(HttpRequestHelperCompletion)completion carId:(NSString *)carId ticket:(NSString *)ticket uid:(NSString *)uid; + ++ (void)utilizeMtowardserial:(HttpRequestHelperCompletion)completion userNameplateId:(NSString *)userNameplateId ticket:(NSString *)ticket uid:(NSString *)uid; + ++ (void)utilizeMagnificentSolitaire:(HttpRequestHelperCompletion)completion cardId:(NSString *)cardId ticket:(NSString *)ticket uid:(NSString *)uid; + ++ (void)utilizeIntumesce:(HttpRequestHelperCompletion)completion bubbleId:(NSString *)bubbleId; + ++ (void)dressupOriflammeSttowardsement:(HttpRequestHelperCompletion)completion type:(NSString *)type; + + +#pragma mark - 装扮商城 ++ (void)requisitionPretconcludeedProcurementSttowardsement:(HttpRequestHelperCompletion)completion dressType:(NSString *)dressType; + ++ (void)requisitionPretconcludeedProcurementAcquire:(HttpRequestHelperCompletion)completion id:(NSString *)dressId; + ++ (void)requisitionDischargePretconclude:(HttpRequestHelperCompletion)completion id:(NSString *)dressId targetUid:(NSString *)targetUid; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/DressUp/Api/Api+DressUp.m b/YuMi/Modules/YMMine/View/DressUp/Api/Api+DressUp.m new file mode 100644 index 00000000..e8a999c7 --- /dev/null +++ b/YuMi/Modules/YMMine/View/DressUp/Api/Api+DressUp.m @@ -0,0 +1,90 @@ +// +// Api+DressUp.m +// YUMI +// +// Created by YUMI on 2021/12/15. +// + +#import "Api+DressUp.h" +#import +@implementation Api (DressUp) + ++ (void)intelligencewearSttowardsement:(HttpRequestHelperCompletion)completion ticket:(NSString *)ticket uid:(NSString *)uid { + NSString * fang = [NSString stringFromBase64String:@"aGVhZHdlYXIvdjIvdXNlci9saXN0"]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, ticket, uid, nil]; +} + ++ (void)automobileSttowardsement:(HttpRequestHelperCompletion)completion ticket:(NSString *)ticket uid:(NSString *)uid { + NSString * fang = [NSString stringFromBase64String:@"Y2FyL2NhcnBvcnQvdjIvbGlzdA=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, ticket, uid, nil]; +} + ++ (void)mtowardserialSttowardsement:(HttpRequestHelperCompletion)completion ticket:(NSString *)ticket uid:(NSString *)uid page:(NSString *)page pageSize:(NSString *)pageSize { + NSString * fang = [NSString stringFromBase64String:@"bmFtZXBsYXRlL3VzZXJOYW1lcGxhdGVMaXN0"]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, ticket, uid, page, pageSize, nil]; +} + + ++ (void)magnificentSolitaireSttowardsement:(HttpRequestHelperCompletion)completion ticket:(NSString *)ticket uid:(NSString *)uid page:(NSString *)page pageSize:(NSString *)pageSize { + NSString * fang = [NSString stringFromBase64String:@"dXNlckluZm9DYXJkL2xpc3RCeVBhZ2U="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, ticket, uid, page, pageSize, nil]; +} + ++ (void)chinwagIntumesceSttowardsement:(HttpRequestHelperCompletion)completion page:(NSString *)page pageSize:(NSString *)pageSize { + NSString * fang = [NSString stringFromBase64String:@"dXNlckNoYXRCdWJibGUvbGlzdEJ5UGFnZQ=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, page, pageSize, nil]; +} + ++ (void)utilizeIntelligencePenetrtowardse:(HttpRequestHelperCompletion)completion headwearId:(NSString *)headwearId ticket:(NSString *)ticket uid:(NSString *)uid { + NSString * fang = [NSString stringFromBase64String:@"djEvdXNlci9oZWFkd2Vhci91c2U="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, headwearId, ticket, uid, nil]; +} + ++ (void)utilizeAutomobile:(HttpRequestHelperCompletion)completion carId:(NSString *)carId ticket:(NSString *)ticket uid:(NSString *)uid { + NSString * fang = [NSString stringFromBase64String:@"Y2FyL2NhcnBvcnQvdXNl"]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, carId, ticket, uid, nil]; +} + ++ (void)utilizeMtowardserial:(HttpRequestHelperCompletion)completion userNameplateId:(NSString *)userNameplateId ticket:(NSString *)ticket uid:(NSString *)uid { + NSString * fang = [NSString stringFromBase64String:@"bmFtZXBsYXRlL3VzZU5hbWVwbGF0ZQ=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, userNameplateId, ticket, uid, nil]; +} + ++ (void)utilizeMagnificentSolitaire:(HttpRequestHelperCompletion)completion cardId:(NSString *)cardId ticket:(NSString *)ticket uid:(NSString *)uid { + if ([cardId isEqualToString:@"0"]) { + cardId = NULL; + } + NSString * fang = [NSString stringFromBase64String:@"dXNlckluZm9DYXJkL29wdFVzZXJJbmZvQ2FyZA=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, cardId, ticket, uid, nil]; +} + ++ (void)utilizeIntumesce:(HttpRequestHelperCompletion)completion bubbleId:(NSString *)bubbleId { + if ([bubbleId isEqualToString:@"0"]) { + bubbleId = NULL; + } + NSString * fang = [NSString stringFromBase64String:@"dXNlckNoYXRCdWJibGUvb3B0VXNlckNoYXRCdWJibGU="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, bubbleId, nil]; +} + ++ (void)dressupOriflammeSttowardsement:(HttpRequestHelperCompletion)completion type:(NSString *)type { + NSString * fang = [NSString stringFromBase64String:@"aG9tZS9iYW5uZXI="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, type, nil]; +} + +#pragma mark - 装扮商城 ++ (void)requisitionPretconcludeedProcurementSttowardsement:(HttpRequestHelperCompletion)completion dressType:(NSString *)dressType { + NSString * fang = [NSString stringFromBase64String:@"ZHJlc3Mvc2hvcC9saXN0"]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, dressType, nil]; +} + ++ (void)requisitionPretconcludeedProcurementAcquire:(HttpRequestHelperCompletion)completion id:(NSString *)dressId { + NSString * fang = [NSString stringFromBase64String:@"ZHJlc3Mvc2hvcC9idXk="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, dressId, nil]; +} + ++ (void)requisitionDischargePretconclude:(HttpRequestHelperCompletion)completion id:(NSString *)dressId targetUid:(NSString *)targetUid { + NSString * fang = [NSString stringFromBase64String:@"ZHJlc3Mvc2hvcC9naXZl"]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, dressId, targetUid, nil]; +} + +@end diff --git a/YuMi/Modules/YMMine/View/DressUp/Model/CarMatrix.h b/YuMi/Modules/YMMine/View/DressUp/Model/CarMatrix.h new file mode 100644 index 00000000..54734924 --- /dev/null +++ b/YuMi/Modules/YMMine/View/DressUp/Model/CarMatrix.h @@ -0,0 +1,29 @@ +// +// CarMatrix.h +// YUMI +// +// Created by YUMI on 2021/12/16. +// + +#import +#import "YUMINNNN.h" +NS_ASSUME_NONNULL_BEGIN + +typedef enum { + Dressup_Car_Status_Down = 1, + Dressup_Car_Status_Expire = 2, + Dressup_Car_Status_Ok = 3 +}DressupCarStatus; + +@interface CarMatrix : NSObject +@property (nonatomic, assign) DressupCarStatus status; +@property (nonatomic, strong) NSString *pic; +@property (nonatomic, strong) NSString *carID; +@property (nonatomic, strong) NSString *name; +@property (nonatomic, assign) NSInteger expireDate; +@property (nonatomic, assign) BOOL isGive; +@property (nonatomic, assign) BOOL isUsed; +@property (nonatomic, assign) DressUpLabelGenre labelType; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/DressUp/Model/CarMatrix.m b/YuMi/Modules/YMMine/View/DressUp/Model/CarMatrix.m new file mode 100644 index 00000000..b688678f --- /dev/null +++ b/YuMi/Modules/YMMine/View/DressUp/Model/CarMatrix.m @@ -0,0 +1,16 @@ +// +// CarMatrix.m +// YUMI +// +// Created by YUMI on 2021/12/16. +// + +#import "CarMatrix.h" + +@implementation CarMatrix ++ (NSDictionary *)replacedDigitalByvirtueofMaintainertyConstitute { + return @{@"isUsed" : @"using", + @"carID" : @"id" + }; +} +@end diff --git a/YuMi/Modules/YMMine/View/DressUp/Model/ChatIntumesceMatrix.h b/YuMi/Modules/YMMine/View/DressUp/Model/ChatIntumesceMatrix.h new file mode 100644 index 00000000..7b731684 --- /dev/null +++ b/YuMi/Modules/YMMine/View/DressUp/Model/ChatIntumesceMatrix.h @@ -0,0 +1,24 @@ +// +// ChatIntumesceMatrix.h +// YUMI +// +// Created by YUMI on 2022/3/18. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface ChatIntumesceMatrix : NSObject + +@property (nonatomic, copy) NSString *bubbleId; +@property (nonatomic, strong) NSString *bubbleUrl; +@property (nonatomic, assign) NSInteger comeFrom; +@property (nonatomic, assign) NSInteger expireDays; +@property (nonatomic, copy) NSString *name; +@property (nonatomic, assign) BOOL hasUsed; +@property (nonatomic, assign) BOOL hasExpired; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/DressUp/Model/ChatIntumesceMatrix.m b/YuMi/Modules/YMMine/View/DressUp/Model/ChatIntumesceMatrix.m new file mode 100644 index 00000000..f1e11a3b --- /dev/null +++ b/YuMi/Modules/YMMine/View/DressUp/Model/ChatIntumesceMatrix.m @@ -0,0 +1,12 @@ +// +// ChatIntumesceMatrix.m +// YUMI +// +// Created by YUMI on 2022/3/18. +// + +#import "ChatIntumesceMatrix.h" + +@implementation ChatIntumesceMatrix + +@end diff --git a/YuMi/Modules/YMMine/View/DressUp/Model/IntelligencewearMatrix.h b/YuMi/Modules/YMMine/View/DressUp/Model/IntelligencewearMatrix.h new file mode 100644 index 00000000..895ff3c3 --- /dev/null +++ b/YuMi/Modules/YMMine/View/DressUp/Model/IntelligencewearMatrix.h @@ -0,0 +1,32 @@ +// +// IntelligencewearMatrix.h +// YUMI +// +// Created by YUMI on 2021/12/16. +// + +#import +#import "YUMINNNN.h" +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSInteger, DressupHeadWearPosition) { + Dressup_Headwear_Status_Ok = 1, + Dressup_Headwear_Status_Expire = 2, + Dressup_Headwear_Status_Down = 3 +}; + + +@interface IntelligencewearMatrix : NSObject +@property (nonatomic, strong) NSString *headwearId; +@property (nonatomic, assign) BOOL isGive; +@property (nonatomic, assign) BOOL isUsed; +@property (nonatomic, assign) DressUpLabelGenre labelType; +@property (nonatomic, strong) NSString *headwearName; +@property (nonatomic, strong) NSString *pic; +@property (nonatomic, strong) NSString *effect; +@property (nonatomic, strong) NSString *expireDays; +@property (nonatomic, assign) DressupHeadWearPosition status; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/DressUp/Model/IntelligencewearMatrix.m b/YuMi/Modules/YMMine/View/DressUp/Model/IntelligencewearMatrix.m new file mode 100644 index 00000000..8ad30b00 --- /dev/null +++ b/YuMi/Modules/YMMine/View/DressUp/Model/IntelligencewearMatrix.m @@ -0,0 +1,16 @@ +// +// IntelligencewearMatrix.m +// YUMI +// +// Created by YUMI on 2021/12/16. +// + +#import "IntelligencewearMatrix.h" + +@implementation IntelligencewearMatrix ++ (NSDictionary *)replacedDigitalByvirtueofMaintainertyConstitute { + return @{@"isUsed" : @"used", + @"isGive" : @"give" + }; +} +@end diff --git a/YuMi/Modules/YMMine/View/DressUp/Model/MagnificentSolitaireMatrix.h b/YuMi/Modules/YMMine/View/DressUp/Model/MagnificentSolitaireMatrix.h new file mode 100644 index 00000000..62117873 --- /dev/null +++ b/YuMi/Modules/YMMine/View/DressUp/Model/MagnificentSolitaireMatrix.h @@ -0,0 +1,25 @@ +// +// MagnificentSolitaireMatrix.h +// YUMI +// +// Created by YUMI on 2022/1/6. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface MagnificentSolitaireMatrix : NSObject + +@property (nonatomic, copy) NSString *cardId; +@property (nonatomic, assign) NSInteger comeFrom; +@property (nonatomic, assign) NSInteger expireDays; +@property (nonatomic, strong) NSString *expireTime; +@property (nonatomic, assign) BOOL hasExpired; +@property (nonatomic, strong) NSString *name; +@property (nonatomic, strong) NSString *pic; +@property (nonatomic, assign) BOOL used; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/DressUp/Model/MagnificentSolitaireMatrix.m b/YuMi/Modules/YMMine/View/DressUp/Model/MagnificentSolitaireMatrix.m new file mode 100644 index 00000000..33d91239 --- /dev/null +++ b/YuMi/Modules/YMMine/View/DressUp/Model/MagnificentSolitaireMatrix.m @@ -0,0 +1,12 @@ +// +// MagnificentSolitaireMatrix.m +// YUMI +// +// Created by YUMI on 2022/1/6. +// + +#import "MagnificentSolitaireMatrix.h" + +@implementation MagnificentSolitaireMatrix + +@end diff --git a/YuMi/Modules/YMMine/View/DressUp/Model/NameplateMatrix.h b/YuMi/Modules/YMMine/View/DressUp/Model/NameplateMatrix.h new file mode 100644 index 00000000..93e32db8 --- /dev/null +++ b/YuMi/Modules/YMMine/View/DressUp/Model/NameplateMatrix.h @@ -0,0 +1,21 @@ +// +// NameplateMatrix.h +// YUMI +// +// Created by YUMI on 2021/12/16. +// + +#import +#import "YUMINNNN.h" +NS_ASSUME_NONNULL_BEGIN + +@interface NameplateMatrix : NSObject +@property (nonatomic, assign) BOOL isUsing; +@property (nonatomic, copy) NSString * nId; +@property (nonatomic, strong) NSString *nameplateName; +@property (nonatomic, strong) NSString *nameplateImage; +@property (nonatomic, assign) BOOL isExpired; +@property (nonatomic,copy) NSString *expireDays; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/DressUp/Model/NameplateMatrix.m b/YuMi/Modules/YMMine/View/DressUp/Model/NameplateMatrix.m new file mode 100644 index 00000000..73ef351c --- /dev/null +++ b/YuMi/Modules/YMMine/View/DressUp/Model/NameplateMatrix.m @@ -0,0 +1,16 @@ +// +// NameplateMatrix.m +// YUMI +// +// Created by YUMI on 2021/12/16. +// + +#import "NameplateMatrix.h" + +@implementation NameplateMatrix + ++ (NSDictionary *)replacedDigitalByvirtueofMaintainertyConstitute { + return @{@"nId": @"id"}; +} + +@end diff --git a/YuMi/Modules/YMMine/View/DressUp/Model/PretendUpwardsProcurementMatrix.h b/YuMi/Modules/YMMine/View/DressUp/Model/PretendUpwardsProcurementMatrix.h new file mode 100644 index 00000000..3c7f90a4 --- /dev/null +++ b/YuMi/Modules/YMMine/View/DressUp/Model/PretendUpwardsProcurementMatrix.h @@ -0,0 +1,25 @@ +// +// PretendUpwardsProcurementMatrix.h +// YUMI +// +// Created by YUMI on 2022/7/28. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface PretendUpwardsProcurementMatrix : NSObject + +@property (nonatomic, strong) NSString *pic; +@property (nonatomic, strong) NSString *dressUpId; +@property (nonatomic, copy) NSString *dressId; +@property (nonatomic, strong) NSString *name; +@property (nonatomic, assign) NSInteger dressDay; +@property (nonatomic, assign) NSInteger dressPrice; +@property (nonatomic, assign) NSInteger dressType; +@property (nonatomic, assign) NSInteger dressLimitStatus; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/DressUp/Model/PretendUpwardsProcurementMatrix.m b/YuMi/Modules/YMMine/View/DressUp/Model/PretendUpwardsProcurementMatrix.m new file mode 100644 index 00000000..4ff2a102 --- /dev/null +++ b/YuMi/Modules/YMMine/View/DressUp/Model/PretendUpwardsProcurementMatrix.m @@ -0,0 +1,16 @@ +// +// PretendUpwardsProcurementMatrix.m +// YUMI +// +// Created by YUMI on 2022/7/28. +// + +#import "PretendUpwardsProcurementMatrix.h" + +@implementation PretendUpwardsProcurementMatrix + ++ (NSDictionary *)replacedDigitalByvirtueofMaintainertyConstitute { + return @{@"dressUpId": @"id"}; +} + +@end diff --git a/YuMi/Modules/YMMine/View/DressUp/Presenter/YUMIManePretendUpwardsExternalizer.h b/YuMi/Modules/YMMine/View/DressUp/Presenter/YUMIManePretendUpwardsExternalizer.h new file mode 100644 index 00000000..adc1eeb9 --- /dev/null +++ b/YuMi/Modules/YMMine/View/DressUp/Presenter/YUMIManePretendUpwardsExternalizer.h @@ -0,0 +1,26 @@ +// +// DressUpPresenter.h +// YUMI +// +// Created by YUMI on 2021/12/15. +// + +#import "BaseMvpExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManePretendUpwardsExternalizer : BaseMvpExternalizer +- (void)acquireConsumerApexknotSttowardsement; +- (void)acquireConsumerAutomobileSttowardsement; +- (void)acquireConsumerMtowardserialSttowardsement; +- (void)acquireConsumerMagnificentSolitaireSttowardsement; +- (void)acquireConsumerChinwagIntumesceSttowardsement; +- (void)utilizeIntelligencer:(NSString *)headwearId; +- (void)utilizeAutomobile:(NSString *)carId; +- (void)utilizeMtowardserial:(NSString *)userNameplateId; +- (void)consumerMagnificentSolitaire:(NSString *)nobleCardId; +- (void)utilizeIntumesce:(NSString *)bubbleId; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/DressUp/Presenter/YUMIManePretendUpwardsExternalizer.m b/YuMi/Modules/YMMine/View/DressUp/Presenter/YUMIManePretendUpwardsExternalizer.m new file mode 100644 index 00000000..aabc16fe --- /dev/null +++ b/YuMi/Modules/YMMine/View/DressUp/Presenter/YUMIManePretendUpwardsExternalizer.m @@ -0,0 +1,102 @@ +// +// DressUpPresenter.m +// YUMI +// +// Created by YUMI on 2021/12/15. +// + +#import "YUMIManePretendUpwardsExternalizer.h" +#import "Api+DressUp.h" +#import "FBCManePretendedCeremony.h" +#import "AccountAbstractStorage.h" +#import "IntelligencewearMatrix.h" +#import "CarMatrix.h" +#import "NameplateMatrix.h" +#import "MagnificentSolitaireMatrix.h" +#import "ChatIntumesceMatrix.h" + +@implementation YUMIManePretendUpwardsExternalizer + + +- (void)acquireConsumerApexknotSttowardsement { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NSString * ticket = [AccountAbstractStorage instance].acquireTicket; + [Api intelligencewearSttowardsement:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + NSArray * array = [IntelligencewearMatrix mtowardsrixsAboutGarment:data.data]; + [[self acquireRegard] acquireConsumerApexknotSttowardsementAccomplishment:array]; + }] ticket:ticket uid:uid]; +} + +- (void)acquireConsumerAutomobileSttowardsement { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NSString * ticket = [AccountAbstractStorage instance].acquireTicket; + [Api automobileSttowardsement:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + NSArray * array = [CarMatrix mtowardsrixsAboutGarment:data.data]; + [[self acquireRegard] acquireConsumerAutomobileSttowardsementAccomplishment:array]; + }] ticket:ticket uid:uid]; +} + +- (void)acquireConsumerMtowardserialSttowardsement { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NSString * ticket = [AccountAbstractStorage instance].acquireTicket; + [Api mtowardserialSttowardsement:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + NSArray * array = [NameplateMatrix mtowardsrixsAboutGarment:data.data[@"nameplateList"]]; + [[self acquireRegard] acquireConsumerMtowardserialSttowardsementAccomplishment:array]; + }] ticket:ticket uid:uid page:@"1" pageSize:@"500"]; +} + +- (void)acquireConsumerMagnificentSolitaireSttowardsement { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NSString * ticket = [AccountAbstractStorage instance].acquireTicket; + [Api magnificentSolitaireSttowardsement:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + NSArray * array = [MagnificentSolitaireMatrix mtowardsrixsAboutGarment:data.data]; + [[self acquireRegard] acquireConsumerMagnificentSolitaireSttowardsementAccomplishment:array]; + }] ticket:ticket uid:uid page:@"1" pageSize:@"500"]; +} + +- (void)acquireConsumerChinwagIntumesceSttowardsement { + [Api chinwagIntumesceSttowardsement:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + NSArray * array = [ChatIntumesceMatrix mtowardsrixsAboutGarment:data.data]; + [[self acquireRegard] acquireConsumerChinwagIntumesceSttowardsementAccomplishment:array]; + }] page:@"1" pageSize:@"500"]; +} + +- (void)utilizeIntelligencer:(NSString *)headwearId { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NSString * ticket = [AccountAbstractStorage instance].acquireTicket; + [Api utilizeIntelligencePenetrtowardse:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] utilizeApexknotAccomplishment:headwearId]; + } EvidenceChambering:YES] headwearId:headwearId ticket:ticket uid:uid]; +} + +- (void)utilizeAutomobile:(NSString *)carId { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NSString * ticket = [AccountAbstractStorage instance].acquireTicket; + [Api utilizeAutomobile:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] utilizeAutomobileAccomplishment:carId]; + } EvidenceChambering:YES] carId:carId ticket:ticket uid:uid]; +} + +- (void)utilizeMtowardserial:(NSString *)userNameplateId { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NSString * ticket = [AccountAbstractStorage instance].acquireTicket; + [Api utilizeMtowardserial:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] utilizeMtowardserialAccomplishment:userNameplateId]; + } EvidenceChambering:YES] userNameplateId:userNameplateId ticket:ticket uid:uid]; +} + +- (void)consumerMagnificentSolitaire:(NSString *)nobleCardId { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NSString * ticket = [AccountAbstractStorage instance].acquireTicket; + [Api utilizeMagnificentSolitaire:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] consumerMagnificentSolitaireAccomplishment:nobleCardId]; + } EvidenceChambering:YES] cardId:nobleCardId ticket:ticket uid:uid]; +} + +- (void)utilizeIntumesce:(NSString *)bubbleId { + [Api utilizeIntumesce:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] utilizeIntumesceAccomplishment:bubbleId]; + }] bubbleId:bubbleId]; +} + +@end diff --git a/YuMi/Modules/YMMine/View/DressUp/Presenter/YUMIPretendUpwardsProcurementExternalizer.h b/YuMi/Modules/YMMine/View/DressUp/Presenter/YUMIPretendUpwardsProcurementExternalizer.h new file mode 100644 index 00000000..8bedc1c8 --- /dev/null +++ b/YuMi/Modules/YMMine/View/DressUp/Presenter/YUMIPretendUpwardsProcurementExternalizer.h @@ -0,0 +1,21 @@ +// +// YMDressUpShopPresenter.h +// YUMI +// +// Created by YUMI on 2022/7/28. +// + +#import "BaseMvpExternalizer.h" +#import "FBCPretendedProcurementCeremony.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIPretendUpwardsProcurementExternalizer : BaseMvpExternalizer + +- (void)acquirePretconcludeedProcurementSttowardsement:(DressUpShopStatementGenre)type; + +- (void)acquirePretconcludeed:(DressUpShopStatementGenre)dressType dressId:(NSString *)dressId; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/DressUp/Presenter/YUMIPretendUpwardsProcurementExternalizer.m b/YuMi/Modules/YMMine/View/DressUp/Presenter/YUMIPretendUpwardsProcurementExternalizer.m new file mode 100644 index 00000000..8ba7117c --- /dev/null +++ b/YuMi/Modules/YMMine/View/DressUp/Presenter/YUMIPretendUpwardsProcurementExternalizer.m @@ -0,0 +1,28 @@ +// +// YMDressUpShopPresenter.m +// YUMI +// +// Created by YUMI on 2022/7/28. +// + +#import "YUMIPretendUpwardsProcurementExternalizer.h" +#import "Api+DressUp.h" +#import "PretendUpwardsProcurementMatrix.h" +#import "RamparatetAbstractMatrix.h" + +@implementation YUMIPretendUpwardsProcurementExternalizer + +- (void)acquirePretconcludeedProcurementSttowardsement:(DressUpShopStatementGenre)type { + [Api requisitionPretconcludeedProcurementSttowardsement:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + NSArray *array = [PretendUpwardsProcurementMatrix mtowardsrixsAboutGarment:data.data]; + [[self acquireRegard] acquireProcurementSttowardsementAccomplishment:array type:type]; + }] dressType:[NSString stringWithFormat:@"%ld", type]]; +} + +- (void)acquirePretconcludeed:(DressUpShopStatementGenre)dressType dressId:(NSString *)dressId { + [Api requisitionPretconcludeedProcurementAcquire:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] acquireProcurementPretconcludeAccomplishmentAboutGenre:dressType]; + } EvidenceChambering:YES] id:dressId]; +} + +@end diff --git a/YuMi/Modules/YMMine/View/DressUp/Protocol/FBCManePretendedCeremony.h b/YuMi/Modules/YMMine/View/DressUp/Protocol/FBCManePretendedCeremony.h new file mode 100644 index 00000000..028aded7 --- /dev/null +++ b/YuMi/Modules/YMMine/View/DressUp/Protocol/FBCManePretendedCeremony.h @@ -0,0 +1,26 @@ +// +// YMMineDressUpProtocol.h +// YUMI +// +// Created by YUMI on 2021/12/15. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol FBCManePretendedCeremony +- (void)acquireConsumerApexknotSttowardsementAccomplishment:(NSArray *)array; +- (void)acquireConsumerAutomobileSttowardsementAccomplishment:(NSArray *)array; +- (void)acquireConsumerMtowardserialSttowardsementAccomplishment:(NSArray *)array; +- (void)acquireConsumerMagnificentSolitaireSttowardsementAccomplishment:(NSArray *)array; +- (void)acquireConsumerChinwagIntumesceSttowardsementAccomplishment:(NSArray *)array; +- (void)utilizeApexknotAccomplishment:(NSString *)headWearId; +- (void)utilizeAutomobileAccomplishment:(NSString *)carId; +- (void)utilizeMtowardserialAccomplishment:(NSString *)nameplateId; +- (void)consumerMagnificentSolitaireAccomplishment:(NSString *)nobleCardId; +- (void)utilizeIntumesceAccomplishment:(NSString *)bubbleId; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/DressUp/Protocol/FBCPretendedProcurementCeremony.h b/YuMi/Modules/YMMine/View/DressUp/Protocol/FBCPretendedProcurementCeremony.h new file mode 100644 index 00000000..72be1104 --- /dev/null +++ b/YuMi/Modules/YMMine/View/DressUp/Protocol/FBCPretendedProcurementCeremony.h @@ -0,0 +1,42 @@ +// +// YMDressUpShopProtocol.h +// YUMI +// +// Created by YUMI on 2022/7/28. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSInteger, DressUpShopStatementGenre) { + DressUpShopStatementGenre_HeadWear = 0, + DressUpShopStatementGenre_Car, + DressUpShopStatementGenre_Nameplate, + DressUpShopStatementGenre_Noble, + DressUpShopStatementGenre_Bubble, +}; + +@class RamparatetAbstractMatrix; +@protocol FBCPretendedProcurementCeremony + +- (void)acquireConsumerPocketbookAbstract:(RamparatetAbstractMatrix *)balanceInfo; + +- (void)acquireProcurementSttowardsementAccomplishment:(NSArray *)array type:(DressUpShopStatementGenre)type; + +- (void)acquireProcurementPretconcludeAccomplishmentAboutGenre:(DressUpShopStatementGenre)type; + +- (void)acquireConsumerApexknotSttowardsementAccomplishment:(NSArray *)array; +- (void)acquireConsumerAutomobileSttowardsementAccomplishment:(NSArray *)array; +- (void)acquireConsumerMtowardserialSttowardsementAccomplishment:(NSArray *)array; +- (void)acquireConsumerMagnificentSolitaireSttowardsementAccomplishment:(NSArray *)array; +- (void)acquireConsumerChinwagIntumesceSttowardsementAccomplishment:(NSArray *)array; +- (void)utilizeApexknotAccomplishment:(NSString *)headWearId; +- (void)utilizeAutomobileAccomplishment:(NSString *)carId; +- (void)utilizeMtowardserialAccomplishment:(NSString *)nameplateId; +- (void)consumerMagnificentSolitaireAccomplishment:(NSString *)nobleCardId; +- (void)utilizeIntumesceAccomplishment:(NSString *)bubbleId; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/DressUp/View/Cell/YUMIManeCarTabulationRegardElement.h b/YuMi/Modules/YMMine/View/DressUp/View/Cell/YUMIManeCarTabulationRegardElement.h new file mode 100644 index 00000000..d44280bc --- /dev/null +++ b/YuMi/Modules/YMMine/View/DressUp/View/Cell/YUMIManeCarTabulationRegardElement.h @@ -0,0 +1,21 @@ +// +// YMMineCarTableViewCell.h +// YUMI +// +// Created by YUMI on 2021/12/15. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class CarMatrix,YUMIManeCarTabulationRegardElement; +@protocol FBCManeCarTabulationViweElementRepresendtation +- (void)fBCManeAutomobileTarbsultowardsionViweElement:(YUMIManeCarTabulationRegardElement *)cell carId:(NSString *)carId; + +@end +@interface YUMIManeCarTabulationRegardElement : UITableViewCell +@property (nonatomic,strong) CarMatrix *automobileAbstract; +@property (nonatomic,weak) id delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/DressUp/View/Cell/YUMIManeCarTabulationRegardElement.m b/YuMi/Modules/YMMine/View/DressUp/View/Cell/YUMIManeCarTabulationRegardElement.m new file mode 100644 index 00000000..f70c3db1 --- /dev/null +++ b/YuMi/Modules/YMMine/View/DressUp/View/Cell/YUMIManeCarTabulationRegardElement.m @@ -0,0 +1,235 @@ +// +// YMMineCarTableViewCell.m +// YUMI +// +// Created by YUMI on 2021/12/15. +// + +#import "YUMIManeCarTabulationRegardElement.h" +#import +#import "YUMIMacroUitls.h" +#import "DJDKMIMOMColor.h" +#import "NetIndicateRegard.h" +#import "UIImage+Utils.h" +#import "CarMatrix.h" + +@interface YUMIManeCarTabulationRegardElement () +@property (nonatomic,strong) NetIndicateRegard *automobileIndicateRegard; +@property (nonatomic,strong) UIStackView *constituteHierarchyRegard; +@property (nonatomic, strong) UIImageView *giveIndicateRegard; +@property (nonatomic, strong) UILabel *titleLabel; +@property (nonatomic,strong) UIStackView *intratemporalHierarchyRegard; +@property (nonatomic, strong) UILabel *intratemporalSequencignation; +@property (nonatomic,strong) UIButton *useBtuton; +@property (nonatomic,strong) UIView * burlywoodRegard; +@property (nonatomic,strong) UIImageView *restrictionIndicateRegard; +@end + +@implementation YUMIManeCarTabulationRegardElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor];; + [self.contentView addSubview:self.automobileIndicateRegard]; + [self.contentView addSubview:self.constituteHierarchyRegard]; + [self.contentView addSubview:self.intratemporalHierarchyRegard]; + [self.contentView addSubview:self.useBtuton]; + [self.contentView addSubview:self.burlywoodRegard]; + [self.contentView addSubview:self.restrictionIndicateRegard]; + + [self.constituteHierarchyRegard addArrangedSubview:self.giveIndicateRegard]; + [self.constituteHierarchyRegard addArrangedSubview:self.titleLabel]; + + [self.intratemporalHierarchyRegard addArrangedSubview:self.intratemporalSequencignation]; + +} + +- (void)initChildLyRestrictions { + [self.automobileIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(68); + make.width.mas_equalTo(102); + make.centerY.mas_equalTo(self.contentView); + make.left.mas_equalTo(self.contentView).offset(20); + }]; + + + [self.constituteHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.automobileIndicateRegard.mas_right).offset(10); + make.bottom.mas_equalTo(self.automobileIndicateRegard.mas_centerY).offset(-3); + }]; + + [self.giveIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(11, 11)); + }]; + + [self.intratemporalHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.constituteHierarchyRegard); + make.top.mas_equalTo(self.automobileIndicateRegard.mas_centerY).offset(3); + make.height.mas_equalTo(13); + }]; + + [self.useBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self); + make.right.mas_equalTo(self.contentView).offset(-15); + make.height.mas_equalTo(33); + make.width.mas_equalTo(85); + }]; + + [self.burlywoodRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.contentView).offset(105); + make.height.mas_equalTo(0.5); + make.bottom.mas_equalTo(self.contentView); + make.right.mas_equalTo(self.contentView).offset(-15); + }]; + + [self.restrictionIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.left.mas_equalTo(self.contentView).offset(20); + make.width.height.mas_equalTo(20); + }]; +} + +#pragma mark - private +- (void)setAutomobileAbstract:(CarMatrix *)automobileAbstract { + _automobileAbstract = automobileAbstract; + if (_automobileAbstract) { + self.titleLabel.text = _automobileAbstract.name; + self.useBtuton.hidden = _automobileAbstract.status != Dressup_Car_Status_Ok; + if (_automobileAbstract.status == Dressup_Car_Status_Ok) { + self.intratemporalSequencignation.text = [NSString stringWithFormat:YMLocalizedString(@"YUMI_Mine_Car_Table_View_Cell_0"), _automobileAbstract.expireDate]; + } else { + self.intratemporalSequencignation.text = YMLocalizedString(@"YUMI_Mine_Car_Table_View_Cell_1"); + } + self.giveIndicateRegard.hidden =!_automobileAbstract.isGive; + self.automobileIndicateRegard.imageUrl = _automobileAbstract.pic; + if (_automobileAbstract.isUsed) { + [_useBtuton setTitle:YMLocalizedString(@"YUMI_Mine_Car_Table_View_Cell_2") forState:UIControlStateNormal]; + [_useBtuton setTitleColor:[DJDKMIMOMColor revoctowardsionBtutonEssayPrettify] forState:UIControlStateNormal]; + [_useBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor revoctowardsionBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor revoctowardsionBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + } else { + [_useBtuton setTitle:YMLocalizedString(@"YUMI_Mine_Car_Table_View_Cell_3") forState:UIControlStateNormal]; + [_useBtuton setTitleColor:[DJDKMIMOMColor acknowledgementBtutonEssayPrettify] forState:UIControlStateNormal]; + [_useBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + } + + NSString * typeStr; + if (_automobileAbstract.labelType == DressUpLabelGenre_New) { + typeStr = @"mine_dressUp_new"; + } else if(_automobileAbstract.labelType == DressUpLabelGenre_Limit) { + typeStr = @"mine_dressUp_limit"; + } else if(_automobileAbstract.labelType == DressUpLabelGenre_Exclusive) { + typeStr = @"mine_dressUp_exclusive"; + } + if (typeStr.length > 0) { + self.restrictionIndicateRegard.image = [UIImage imageNamed:typeStr]; + } + } +} +#pragma mark - Event Response +- (void)utilizeBtutonPerformance:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(fBCManeAutomobileTarbsultowardsionViweElement:carId:)]) { + NSString * carId = self.automobileAbstract.carID;; + if (self.automobileAbstract.isUsed) { + carId = @"0"; + } + [self.delegate fBCManeAutomobileTarbsultowardsionViweElement:self carId:carId]; + } +} + +#pragma mark - Getter && Setter +- (UIStackView *)constituteHierarchyRegard { + if (!_constituteHierarchyRegard) { + _constituteHierarchyRegard = [[UIStackView alloc] init]; + _constituteHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _constituteHierarchyRegard.distribution = UIStackViewDistributionFill; + _constituteHierarchyRegard.alignment = UIStackViewAlignmentCenter; + _constituteHierarchyRegard.spacing = 2; + } + return _constituteHierarchyRegard; +} + +- (UIImageView *)giveIndicateRegard { + if (!_giveIndicateRegard) { + _giveIndicateRegard = [[UIImageView alloc] init]; + _giveIndicateRegard.userInteractionEnabled = YES; + _giveIndicateRegard.image = [UIImage imageNamed:@"yumi_center_dressup_give"]; + } + return _giveIndicateRegard; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.font = [UIFont systemFontOfSize:15]; + _titleLabel.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _titleLabel; +} + +- (UIButton *)useBtuton { + if (!_useBtuton) { + _useBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_useBtuton setTitle:YMLocalizedString(@"YUMI_Mine_Car_Table_View_Cell_4") forState:UIControlStateNormal]; + [_useBtuton setTitleColor:[DJDKMIMOMColor acknowledgementBtutonEssayPrettify] forState:UIControlStateNormal]; + [_useBtuton addTarget:self action:@selector(utilizeBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + _useBtuton.layer.masksToBounds = YES; + _useBtuton.layer.cornerRadius = 33/2; + _useBtuton.titleLabel.font = [UIFont systemFontOfSize:14]; + [_useBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + } + return _useBtuton; +} + +- (UIStackView *)intratemporalHierarchyRegard { + if (!_intratemporalHierarchyRegard) { + _intratemporalHierarchyRegard = [[UIStackView alloc] init]; + _intratemporalHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _intratemporalHierarchyRegard.distribution = UIStackViewDistributionFill; + _intratemporalHierarchyRegard.alignment = UIStackViewAlignmentCenter; + _intratemporalHierarchyRegard.spacing = 2; + } + return _intratemporalHierarchyRegard; +} + +- (UILabel *)intratemporalSequencignation { + if (!_intratemporalSequencignation) { + _intratemporalSequencignation = [[UILabel alloc] init]; + _intratemporalSequencignation.font = [UIFont systemFontOfSize:12]; + _intratemporalSequencignation.textColor = [DJDKMIMOMColor instantEssayPrettify]; + } + return _intratemporalSequencignation; +} + +- (UIView *)burlywoodRegard { + if (!_burlywoodRegard) { + _burlywoodRegard = [[UIView alloc] init]; + _burlywoodRegard.backgroundColor = [DJDKMIMOMColor dividerPrettify]; + } + return _burlywoodRegard; +} + +- (NetIndicateRegard *)automobileIndicateRegard { + if (!_automobileIndicateRegard) { + _automobileIndicateRegard = [[NetIndicateRegard alloc] init]; + _automobileIndicateRegard.backgroundColor = [DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify]; + _automobileIndicateRegard.layer.masksToBounds = YES; + _automobileIndicateRegard.layer.cornerRadius = 12; + } + return _automobileIndicateRegard; +} + +- (UIImageView *)restrictionIndicateRegard { + if (!_restrictionIndicateRegard) { + _restrictionIndicateRegard = [[UIImageView alloc] init]; + } + return _restrictionIndicateRegard; +} + +@end diff --git a/YuMi/Modules/YMMine/View/DressUp/View/Cell/YUMIManeIntelligencewearTabulationRegardElement.h b/YuMi/Modules/YMMine/View/DressUp/View/Cell/YUMIManeIntelligencewearTabulationRegardElement.h new file mode 100644 index 00000000..0725f729 --- /dev/null +++ b/YuMi/Modules/YMMine/View/DressUp/View/Cell/YUMIManeIntelligencewearTabulationRegardElement.h @@ -0,0 +1,22 @@ +// +// YMMineHeadwearTableViewCell.h +// YUMI +// +// Created by YUMI on 2021/12/15. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class IntelligencewearMatrix, YUMIManeIntelligencewearTabulationRegardElement; +@protocol FBCManeIntelligencewearTabulationViweElementRepresendtation + +- (void)fBCManeApexknotTarbsultowardsionViweElement:(YUMIManeIntelligencewearTabulationRegardElement *)view headwearId:(NSString *)headwearId; + +@end +@interface YUMIManeIntelligencewearTabulationRegardElement : UITableViewCell +@property (nonatomic,strong) IntelligencewearMatrix *intelligencewearMatrix; +@property (nonatomic,weak) id delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/DressUp/View/Cell/YUMIManeIntelligencewearTabulationRegardElement.m b/YuMi/Modules/YMMine/View/DressUp/View/Cell/YUMIManeIntelligencewearTabulationRegardElement.m new file mode 100644 index 00000000..a9ad0508 --- /dev/null +++ b/YuMi/Modules/YMMine/View/DressUp/View/Cell/YUMIManeIntelligencewearTabulationRegardElement.m @@ -0,0 +1,261 @@ +// +// YMMineHeadwearTableViewCell.m +// YUMI +// +// Created by YUMI on 2021/12/15. +// + +#import "YUMIManeIntelligencewearTabulationRegardElement.h" +#import +#import +#import "YUMIMacroUitls.h" +#import "DJDKMIMOMColor.h" +#import "NetIndicateRegard.h" +#import "UIImage+Utils.h" +#import "SpriteSheetIndicateExecutive.h" +#import "IntelligencewearMatrix.h" + +@interface YUMIManeIntelligencewearTabulationRegardElement () +@property (nonatomic,strong) UIStackView *constituteHierarchyRegard; +@property (nonatomic, strong) UIImageView *giveIndicateRegard; +@property (nonatomic, strong) UILabel *titleLabel; +@property (nonatomic,strong) UIStackView *intratemporalHierarchyRegard; +@property (nonatomic, strong) UILabel *intratemporalSequencignation; +@property (nonatomic,strong) UIButton *useBtuton; +@property (nonatomic,strong) UIView * burlywoodRegard; +@property (nonatomic,strong) YYAnimatedImageView *intelligencePenetrateIndicateRegard; +@property (nonatomic, strong) SpriteSheetIndicateExecutive *manager; +@property (nonatomic,strong) UIImageView *restrictionIndicateRegard; + +@end + +@implementation YUMIManeIntelligencewearTabulationRegardElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor];; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.intelligencePenetrateIndicateRegard]; + [self.contentView addSubview:self.constituteHierarchyRegard]; + [self.contentView addSubview:self.intratemporalHierarchyRegard]; + [self.contentView addSubview:self.useBtuton]; + [self.contentView addSubview:self.burlywoodRegard]; + [self.contentView addSubview:self.restrictionIndicateRegard]; + + [self.constituteHierarchyRegard addArrangedSubview:self.giveIndicateRegard]; + [self.constituteHierarchyRegard addArrangedSubview:self.titleLabel]; + + [self.intratemporalHierarchyRegard addArrangedSubview:self.intratemporalSequencignation]; + +} + +- (void)initChildLyRestrictions { + [self.intelligencePenetrateIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.width.mas_equalTo(80); + make.centerY.mas_equalTo(self.contentView); + make.left.mas_equalTo(self.contentView).offset(20); + }]; + + [self.constituteHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.intelligencePenetrateIndicateRegard.mas_right).offset(10); + make.bottom.mas_equalTo(self.intelligencePenetrateIndicateRegard.mas_centerY).offset(-3); + }]; + + [self.giveIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(11, 11)); + }]; + + [self.intratemporalHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.constituteHierarchyRegard); + make.top.mas_equalTo(self.intelligencePenetrateIndicateRegard.mas_centerY).offset(3); + make.height.mas_equalTo(13); + }]; + + [self.useBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self); + make.right.mas_equalTo(self.contentView).offset(-15); + make.height.mas_equalTo(33); + make.width.mas_equalTo(85); + }]; + + [self.burlywoodRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.contentView).offset(105); + make.height.mas_equalTo(0.5); + make.bottom.mas_equalTo(self.contentView); + make.right.mas_equalTo(self.contentView).offset(-15); + }]; + + [self.restrictionIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.left.mas_equalTo(self.contentView).offset(20); + make.width.height.mas_equalTo(20); + }]; +} + +#pragma mark - private +- (void)setIntelligencewearMatrix:(IntelligencewearMatrix *)intelligencewearMatrix { + _intelligencewearMatrix = intelligencewearMatrix; + if (_intelligencewearMatrix) { + self.titleLabel.text = _intelligencewearMatrix.headwearName; + self.useBtuton.hidden = _intelligencewearMatrix.status != Dressup_Headwear_Status_Ok; + if (_intelligencewearMatrix.status == Dressup_Headwear_Status_Ok) { + self.intratemporalSequencignation.text = [NSString stringWithFormat:YMLocalizedString(@"YUMI_Mine_Headwear_Table_View_Cell_0"), _intelligencewearMatrix.expireDays]; + } else { + self.intratemporalSequencignation.text = YMLocalizedString(@"YUMI_Mine_Headwear_Table_View_Cell_1"); + } + self.giveIndicateRegard.hidden =!_intelligencewearMatrix.isGive; + NSString * headurl = _intelligencewearMatrix.effect.length > 0 ? _intelligencewearMatrix.effect : _intelligencewearMatrix.pic; + if (headurl.length >0) { + self.intelligencePenetrateIndicateRegard.hidden = NO; + NSURL *url = [NSURL URLWithString:headurl]; + @kWeakify(self); + [self.manager chamberSpriteSheetIndictowardseAboutWEEBSITE:url completionBlock:^(YYSpriteSheetImage * _Nullable sprit) { + @kStrongify(self); + self.intelligencePenetrateIndicateRegard.image = sprit; + } failureBlock:^(NSError * _Nullable error) { + }]; + } else { + self.intelligencePenetrateIndicateRegard.hidden = YES; + } + + if (_intelligencewearMatrix.isUsed) { + [_useBtuton setTitle:YMLocalizedString(@"YUMI_Mine_Headwear_Table_View_Cell_2") forState:UIControlStateNormal]; + [_useBtuton setTitleColor:[DJDKMIMOMColor revoctowardsionBtutonEssayPrettify] forState:UIControlStateNormal]; + [_useBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor revoctowardsionBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor revoctowardsionBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + } else { + [_useBtuton setTitle:YMLocalizedString(@"YUMI_Mine_Headwear_Table_View_Cell_3") forState:UIControlStateNormal]; + [_useBtuton setTitleColor:[DJDKMIMOMColor acknowledgementBtutonEssayPrettify] forState:UIControlStateNormal]; + [_useBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + } + + NSString * typeStr; + if (_intelligencewearMatrix.labelType == DressUpLabelGenre_New) { + typeStr = @"mine_dressUp_new"; + } else if(_intelligencewearMatrix.labelType == DressUpLabelGenre_Limit) { + typeStr = @"mine_dressUp_limit"; + } else if(_intelligencewearMatrix.labelType == DressUpLabelGenre_Exclusive) { + typeStr = @"mine_dressUp_exclusive"; + } + if (typeStr.length > 0) { + self.restrictionIndicateRegard.image = [UIImage imageNamed:typeStr]; + } + } +} +#pragma mark - Event Response +- (void)utilizeBtutonPerformance:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(fBCManeApexknotTarbsultowardsionViweElement:headwearId:)]) { + NSString * headwearId = self.intelligencewearMatrix.headwearId; + if (self.intelligencewearMatrix.isUsed) { + headwearId = @"0"; + } + [self.delegate fBCManeApexknotTarbsultowardsionViweElement:self headwearId:headwearId]; + } +} + +#pragma mark - Getter && Setter +- (UIStackView *)constituteHierarchyRegard { + if (!_constituteHierarchyRegard) { + _constituteHierarchyRegard = [[UIStackView alloc] init]; + _constituteHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _constituteHierarchyRegard.distribution = UIStackViewDistributionFill; + _constituteHierarchyRegard.alignment = UIStackViewAlignmentCenter; + _constituteHierarchyRegard.spacing = 2; + } + return _constituteHierarchyRegard; +} + +- (UIImageView *)giveIndicateRegard { + if (!_giveIndicateRegard) { + _giveIndicateRegard = [[UIImageView alloc] init]; + _giveIndicateRegard.userInteractionEnabled = YES; + _giveIndicateRegard.image = [UIImage imageNamed:@"yumi_center_dressup_give"]; + } + return _giveIndicateRegard; +} + +- (YYAnimatedImageView *)intelligencePenetrateIndicateRegard { + if (!_intelligencePenetrateIndicateRegard) { + _intelligencePenetrateIndicateRegard = [[YYAnimatedImageView alloc] init]; + _intelligencePenetrateIndicateRegard.backgroundColor = [DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify]; + _intelligencePenetrateIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + _intelligencePenetrateIndicateRegard.layer.masksToBounds = YES; + _intelligencePenetrateIndicateRegard.layer.cornerRadius = 10; + } + return _intelligencePenetrateIndicateRegard; +} + + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.font = [UIFont systemFontOfSize:15]; + _titleLabel.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _titleLabel; +} + +- (UIButton *)useBtuton { + if (!_useBtuton) { + _useBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_useBtuton setTitle:YMLocalizedString(@"YUMI_Mine_Headwear_Table_View_Cell_4") forState:UIControlStateNormal]; + [_useBtuton setTitleColor:[DJDKMIMOMColor acknowledgementBtutonEssayPrettify] forState:UIControlStateNormal]; + [_useBtuton addTarget:self action:@selector(utilizeBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + _useBtuton.layer.masksToBounds = YES; + _useBtuton.layer.cornerRadius = 33/2; + _useBtuton.titleLabel.font = [UIFont systemFontOfSize:14]; + [_useBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + } + return _useBtuton; +} + +- (UIStackView *)intratemporalHierarchyRegard { + if (!_intratemporalHierarchyRegard) { + _intratemporalHierarchyRegard = [[UIStackView alloc] init]; + _intratemporalHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _intratemporalHierarchyRegard.distribution = UIStackViewDistributionFill; + _intratemporalHierarchyRegard.alignment = UIStackViewAlignmentCenter; + _intratemporalHierarchyRegard.spacing = 2; + } + return _intratemporalHierarchyRegard; +} + +- (UILabel *)intratemporalSequencignation { + if (!_intratemporalSequencignation) { + _intratemporalSequencignation = [[UILabel alloc] init]; + _intratemporalSequencignation.font = [UIFont systemFontOfSize:12]; + _intratemporalSequencignation.textColor = [DJDKMIMOMColor instantEssayPrettify]; + } + return _intratemporalSequencignation; +} + +- (UIView *)burlywoodRegard { + if (!_burlywoodRegard) { + _burlywoodRegard = [[UIView alloc] init]; + _burlywoodRegard.backgroundColor = [DJDKMIMOMColor dividerPrettify]; + } + return _burlywoodRegard; +} + +- (SpriteSheetIndicateExecutive *)manager { + if (!_manager) { + _manager = [[SpriteSheetIndicateExecutive alloc] init]; + } + return _manager; +} + +- (UIImageView *)restrictionIndicateRegard { + if (!_restrictionIndicateRegard) { + _restrictionIndicateRegard = [[UIImageView alloc] init]; + } + return _restrictionIndicateRegard; +} + + +@end diff --git a/YuMi/Modules/YMMine/View/DressUp/View/Cell/YUMIManeMagnificentSolitaireTabulationRegardElement.h b/YuMi/Modules/YMMine/View/DressUp/View/Cell/YUMIManeMagnificentSolitaireTabulationRegardElement.h new file mode 100644 index 00000000..7f9fcc85 --- /dev/null +++ b/YuMi/Modules/YMMine/View/DressUp/View/Cell/YUMIManeMagnificentSolitaireTabulationRegardElement.h @@ -0,0 +1,27 @@ +// +// YMMineNobleCardTableViewCell.h +// YUMI +// +// Created by YUMI on 2022/1/6. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class MagnificentSolitaireMatrix, YUMIManeMagnificentSolitaireTabulationRegardElement; +@protocol FBCManeMagnificentSolitaireTabulationViweElementRepresendtation + +- (void)fBCManeMagnificentSolitaireTarbsultowardsionViweElement:(YUMIManeMagnificentSolitaireTabulationRegardElement *)view nobleCardId:(NSString *)nobleCardId; + +@end + +@interface YUMIManeMagnificentSolitaireTabulationRegardElement : UITableViewCell + +@property (nonatomic,strong) MagnificentSolitaireMatrix *magnificentSolitaireMatrix; +@property (nonatomic,weak) id delegate; + +@end + + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/DressUp/View/Cell/YUMIManeMagnificentSolitaireTabulationRegardElement.m b/YuMi/Modules/YMMine/View/DressUp/View/Cell/YUMIManeMagnificentSolitaireTabulationRegardElement.m new file mode 100644 index 00000000..ffb61f10 --- /dev/null +++ b/YuMi/Modules/YMMine/View/DressUp/View/Cell/YUMIManeMagnificentSolitaireTabulationRegardElement.m @@ -0,0 +1,195 @@ +// +// YMMineNobleCardTableViewCell.m +// YUMI +// +// Created by YUMI on 2022/1/6. +// + +#import "YUMIManeMagnificentSolitaireTabulationRegardElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "NetIndicateRegard.h" +#import "UIImage+Utils.h" +#import "MagnificentSolitaireMatrix.h" + +@interface YUMIManeMagnificentSolitaireTabulationRegardElement() + +@property (nonatomic, strong) UIView *mainView; +@property (nonatomic,strong) UIImageView *burlywoodRegard; +@property (nonatomic, strong) UIImageView *consumerSolitaireEncourageIndicateRegard; +@property (nonatomic, strong) NetIndicateRegard *magnificentIndicateRegard; +@property (nonatomic, strong) UILabel *titleLabel; +@property (nonatomic, strong) UILabel *intratemporalSequencignation; +@property (nonatomic,strong) UIButton *useBtuton; + +@end + +@implementation YUMIManeMagnificentSolitaireTabulationRegardElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor];; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.mainView]; + [self.mainView addSubview:self.burlywoodRegard]; + [self.mainView addSubview:self.titleLabel]; + [self.mainView addSubview:self.intratemporalSequencignation]; + [self.mainView addSubview:self.useBtuton]; + [self.mainView addSubview:self.consumerSolitaireEncourageIndicateRegard]; + [self.mainView addSubview:self.magnificentIndicateRegard]; +} + +- (void)initChildLyRestrictions { + [self.mainView mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(224); + make.left.right.mas_equalTo(self).inset(15); + make.top.mas_equalTo(0); + }]; + [self.burlywoodRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.mainView).mas_offset(8); + make.top.mas_equalTo(self.mainView).mas_offset(16); + make.width.mas_equalTo(3); + make.height.mas_equalTo(16); + }]; + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.burlywoodRegard.mas_right).mas_offset(4); + make.centerY.mas_equalTo(self.burlywoodRegard); + }]; + [self.intratemporalSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.titleLabel.mas_right).mas_offset(4); + make.centerY.mas_equalTo(self.burlywoodRegard); + }]; + + [self.useBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.burlywoodRegard); + make.right.mas_equalTo(self.mainView).offset(-9); + make.height.mas_equalTo(24); + make.width.mas_equalTo(89); + }]; + + [self.consumerSolitaireEncourageIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(110); + make.width.mas_equalTo(285); + make.bottom.mas_equalTo(self.mainView).mas_offset(-4); + make.centerX.mas_equalTo(self.mainView); + }]; + + [self.magnificentIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(180); + make.width.mas_equalTo(330); + make.bottom.mas_equalTo(self.consumerSolitaireEncourageIndicateRegard); + make.centerX.mas_equalTo(self.mainView); + }]; +} + +#pragma mark - private + +- (void)setMagnificentSolitaireMatrix:(MagnificentSolitaireMatrix *)magnificentSolitaireMatrix { + _magnificentSolitaireMatrix = magnificentSolitaireMatrix; + if (_magnificentSolitaireMatrix) { + self.titleLabel.text = magnificentSolitaireMatrix.name; + self.useBtuton.hidden = magnificentSolitaireMatrix.hasExpired; + if (!magnificentSolitaireMatrix.hasExpired) { + self.intratemporalSequencignation.text = [NSString stringWithFormat:YMLocalizedString(@"YUMI_Mine_Noble_Card_Table_View_Cell_0"), magnificentSolitaireMatrix.expireDays]; + } else { + self.intratemporalSequencignation.text = YMLocalizedString(@"YUMI_Mine_Noble_Card_Table_View_Cell_1"); + } + self.magnificentIndicateRegard.imageUrl = magnificentSolitaireMatrix.pic; + if (magnificentSolitaireMatrix.used) { + [_useBtuton setTitle:YMLocalizedString(@"YUMI_Mine_Noble_Card_Table_View_Cell_2") forState:UIControlStateNormal]; + [_useBtuton setTitleColor:[DJDKMIMOMColor revoctowardsionBtutonEssayPrettify] forState:UIControlStateNormal]; + [_useBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor revoctowardsionBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor revoctowardsionBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + } else { + [_useBtuton setTitle:YMLocalizedString(@"YUMI_Mine_Noble_Card_Table_View_Cell_3") forState:UIControlStateNormal]; + [_useBtuton setTitleColor:[DJDKMIMOMColor acknowledgementBtutonEssayPrettify] forState:UIControlStateNormal]; + [_useBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + } + } +} + +#pragma mark - Event Response +- (void)utilizeBtutonPerformance:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(fBCManeMagnificentSolitaireTarbsultowardsionViweElement:nobleCardId:)]) { + NSString * nobleCardId = self.magnificentSolitaireMatrix.cardId;; + if (self.magnificentSolitaireMatrix.used) { + nobleCardId = @"0"; + } + [self.delegate fBCManeMagnificentSolitaireTarbsultowardsionViweElement:self nobleCardId:nobleCardId]; + } +} + +#pragma mark - Getter && Setter +- (UIView *)mainView { + if (!_mainView) { + _mainView = [[UIView alloc] init]; + _mainView.backgroundColor = [DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify]; + _mainView.layer.cornerRadius = 10; + _mainView.layer.masksToBounds = YES; + } + return _mainView; +} +- (UIImageView *)burlywoodRegard { + if (!_burlywoodRegard) { + _burlywoodRegard = [[UIImageView alloc] init]; + [_burlywoodRegard setImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[UIColorFromRGB(0xFFCB47), UIColorFromRGB(0xFFA936)] gradientType:GradientGenreTopToBottom imgSize:CGSizeMake(3, 16)]]; + _burlywoodRegard.layer.cornerRadius = 1.5; + _burlywoodRegard.layer.masksToBounds = YES; + } + return _burlywoodRegard; +} +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.font = [UIFont systemFontOfSize:14 weight:UIFontWeightMedium]; + _titleLabel.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _titleLabel; +} + +- (UILabel *)intratemporalSequencignation { + if (!_intratemporalSequencignation) { + _intratemporalSequencignation = [[UILabel alloc] init]; + _intratemporalSequencignation.font = [UIFont systemFontOfSize:10]; + _intratemporalSequencignation.textColor = [DJDKMIMOMColor essayTertiusPrettify]; + } + return _intratemporalSequencignation; +} + +- (UIButton *)useBtuton { + if (!_useBtuton) { + _useBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_useBtuton setTitle:YMLocalizedString(@"YUMI_Mine_Noble_Card_Table_View_Cell_4") forState:UIControlStateNormal]; + [_useBtuton setTitleColor:[DJDKMIMOMColor acknowledgementBtutonEssayPrettify] forState:UIControlStateNormal]; + [_useBtuton addTarget:self action:@selector(utilizeBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + _useBtuton.layer.masksToBounds = YES; + _useBtuton.layer.cornerRadius = 24/2; + _useBtuton.titleLabel.font = [UIFont systemFontOfSize:12]; + [_useBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + } + return _useBtuton; +} + +- (NetIndicateRegard *)magnificentIndicateRegard { + if (!_magnificentIndicateRegard) { + _magnificentIndicateRegard = [[NetIndicateRegard alloc] init]; + _magnificentIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _magnificentIndicateRegard;; +} + +- (UIImageView *)consumerSolitaireEncourageIndicateRegard { + if (!_consumerSolitaireEncourageIndicateRegard) { + _consumerSolitaireEncourageIndicateRegard = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"yumi_center_dressup_grand_background"]]; + _consumerSolitaireEncourageIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _consumerSolitaireEncourageIndicateRegard;; +} +@end diff --git a/YuMi/Modules/YMMine/View/DressUp/View/Cell/YUMIManeNameplateTabulationRegardElement.h b/YuMi/Modules/YMMine/View/DressUp/View/Cell/YUMIManeNameplateTabulationRegardElement.h new file mode 100644 index 00000000..c47e0aee --- /dev/null +++ b/YuMi/Modules/YMMine/View/DressUp/View/Cell/YUMIManeNameplateTabulationRegardElement.h @@ -0,0 +1,21 @@ +// +// YMMineNameplateTableViewCell.h +// YUMI +// +// Created by YUMI on 2021/12/15. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class NameplateMatrix, YUMIManeNameplateTabulationRegardElement; +@protocol FBCManeNameplateTabulationViweElementRepresendtation +- (void)fBCManeMtowardserialTarbsultowardsionViweElement:(YUMIManeNameplateTabulationRegardElement *)view nameplateId:(NSString *)nameplateId; + +@end +@interface YUMIManeNameplateTabulationRegardElement : UITableViewCell +@property (nonatomic,strong) NameplateMatrix *materialMatrix; +@property (nonatomic,weak) id delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/DressUp/View/Cell/YUMIManeNameplateTabulationRegardElement.m b/YuMi/Modules/YMMine/View/DressUp/View/Cell/YUMIManeNameplateTabulationRegardElement.m new file mode 100644 index 00000000..25cd01a7 --- /dev/null +++ b/YuMi/Modules/YMMine/View/DressUp/View/Cell/YUMIManeNameplateTabulationRegardElement.m @@ -0,0 +1,174 @@ +// +// YMMineNameplateTableViewCell.m +// YUMI +// +// Created by YUMI on 2021/12/15. +// + +#import "YUMIManeNameplateTabulationRegardElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "NetIndicateRegard.h" +#import "UIImage+Utils.h" +#import "NameplateMatrix.h" + +@interface YUMIManeNameplateTabulationRegardElement () +@property (nonatomic, strong) UIView *constituteWoodentrayBackgroundRegard; +@property (nonatomic, strong) NetIndicateRegard *constituteWoodentrayIndicateRegard; +@property (nonatomic, strong) UILabel *titleLabel; +@property (nonatomic,strong) UIStackView *intratemporalHierarchyRegard; +@property (nonatomic, strong) UILabel *intratemporalSequencignation; +@property (nonatomic,strong) UIButton *useBtuton; + +@end + +@implementation YUMIManeNameplateTabulationRegardElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor];; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.constituteWoodentrayBackgroundRegard]; + [self.constituteWoodentrayBackgroundRegard addSubview:self.constituteWoodentrayIndicateRegard]; + [self.contentView addSubview:self.titleLabel]; + [self.contentView addSubview:self.intratemporalHierarchyRegard]; + [self.contentView addSubview:self.useBtuton]; + [self.intratemporalHierarchyRegard addArrangedSubview:self.intratemporalSequencignation]; +} + +- (void)initChildLyRestrictions { + [self.constituteWoodentrayBackgroundRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(64); + make.width.mas_equalTo(136); + make.bottom.mas_equalTo(self); + make.left.mas_equalTo(self.contentView).offset(15); + }]; + [self.constituteWoodentrayIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(30); + make.width.mas_equalTo(90); + make.centerX.centerY.mas_equalTo(self.constituteWoodentrayBackgroundRegard); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.constituteWoodentrayBackgroundRegard.mas_right).offset(10); + make.bottom.mas_equalTo(self.constituteWoodentrayBackgroundRegard.mas_centerY).offset(-3); + }]; + [self.intratemporalHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.titleLabel); + make.top.mas_equalTo(self.constituteWoodentrayBackgroundRegard.mas_centerY).offset(3); + }]; + + [self.useBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.constituteWoodentrayBackgroundRegard); + make.right.mas_equalTo(self.contentView).offset(-15); + make.height.mas_equalTo(33); + make.width.mas_equalTo(85); + }]; +} + +#pragma mark - private +- (void)setMaterialMatrix:(NameplateMatrix *)materialMatrix { + _materialMatrix = materialMatrix; + if (_materialMatrix) { + self.titleLabel.text = _materialMatrix.nameplateName; + self.useBtuton.hidden = _materialMatrix.isExpired; + if (!_materialMatrix.isExpired) { + self.intratemporalSequencignation.text = [NSString stringWithFormat:YMLocalizedString(@"YUMI_Mine_Nameplate_Table_View_Cell_0"), _materialMatrix.expireDays]; + } else { + self.intratemporalSequencignation.text = YMLocalizedString(@"YUMI_Mine_Nameplate_Table_View_Cell_1"); + } + self.constituteWoodentrayIndicateRegard.imageUrl = _materialMatrix.nameplateImage; + if (_materialMatrix.isUsing) { + [_useBtuton setTitle:YMLocalizedString(@"YUMI_Mine_Nameplate_Table_View_Cell_2") forState:UIControlStateNormal]; + [_useBtuton setTitleColor:[DJDKMIMOMColor revoctowardsionBtutonEssayPrettify] forState:UIControlStateNormal]; + [_useBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor revoctowardsionBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor revoctowardsionBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + } else { + [_useBtuton setTitle:YMLocalizedString(@"YUMI_Mine_Nameplate_Table_View_Cell_3") forState:UIControlStateNormal]; + [_useBtuton setTitleColor:[DJDKMIMOMColor acknowledgementBtutonEssayPrettify] forState:UIControlStateNormal]; + [_useBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + } + } +} +#pragma mark - Event Response +- (void)utilizeBtutonPerformance:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(fBCManeMtowardserialTarbsultowardsionViweElement:nameplateId:)]) { + NSString * nameplateId = self.materialMatrix.nId;; + if (self.materialMatrix.isUsing) { + nameplateId = @"0"; + } + [self.delegate fBCManeMtowardserialTarbsultowardsionViweElement:self nameplateId:nameplateId]; + } +} + +#pragma mark - Getter && Setter +- (UIView *)constituteWoodentrayBackgroundRegard { + if (!_constituteWoodentrayBackgroundRegard) { + _constituteWoodentrayBackgroundRegard = [[UIView alloc] init]; + _constituteWoodentrayBackgroundRegard.backgroundColor = [DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify]; + _constituteWoodentrayBackgroundRegard.layer.masksToBounds = YES; + _constituteWoodentrayBackgroundRegard.layer.cornerRadius = 12; + } + return _constituteWoodentrayBackgroundRegard; +} + +- (NetIndicateRegard *)constituteWoodentrayIndicateRegard { + if (!_constituteWoodentrayIndicateRegard) { + _constituteWoodentrayIndicateRegard = [[NetIndicateRegard alloc] init]; + _constituteWoodentrayIndicateRegard.image = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _constituteWoodentrayIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _constituteWoodentrayIndicateRegard;; +} + +- (UIStackView *)intratemporalHierarchyRegard { + if (!_intratemporalHierarchyRegard) { + _intratemporalHierarchyRegard = [[UIStackView alloc] init]; + _intratemporalHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _intratemporalHierarchyRegard.distribution = UIStackViewDistributionFill; + _intratemporalHierarchyRegard.alignment = UIStackViewAlignmentCenter; + _intratemporalHierarchyRegard.spacing = 2; + } + return _intratemporalHierarchyRegard; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.font = [UIFont systemFontOfSize:15]; + _titleLabel.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _titleLabel; +} + +- (UIButton *)useBtuton { + if (!_useBtuton) { + _useBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_useBtuton setTitle:YMLocalizedString(@"YUMI_Mine_Nameplate_Table_View_Cell_4") forState:UIControlStateNormal]; + [_useBtuton setTitleColor:[DJDKMIMOMColor acknowledgementBtutonEssayPrettify] forState:UIControlStateNormal]; + [_useBtuton addTarget:self action:@selector(utilizeBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + _useBtuton.layer.masksToBounds = YES; + _useBtuton.layer.cornerRadius = 33/2; + _useBtuton.titleLabel.font = [UIFont systemFontOfSize:14]; + [_useBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + } + return _useBtuton; +} + +- (UILabel *)intratemporalSequencignation { + if (!_intratemporalSequencignation) { + _intratemporalSequencignation = [[UILabel alloc] init]; + _intratemporalSequencignation.font = [UIFont systemFontOfSize:12]; + _intratemporalSequencignation.textColor = [DJDKMIMOMColor instantEssayPrettify]; + } + return _intratemporalSequencignation; +} + +@end diff --git a/YuMi/Modules/YMMine/View/DressUp/View/Cell/YUMIManePretendDispossessAssembletionRegardElement.h b/YuMi/Modules/YMMine/View/DressUp/View/Cell/YUMIManePretendDispossessAssembletionRegardElement.h new file mode 100644 index 00000000..941f9e24 --- /dev/null +++ b/YuMi/Modules/YMMine/View/DressUp/View/Cell/YUMIManePretendDispossessAssembletionRegardElement.h @@ -0,0 +1,18 @@ +// +// YMMineDressEmptyCollectionViewCell.h +// YUMI +// +// Created by YUMI on 2022/3/21. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManePretendDispossessAssembletionRegardElement : UICollectionViewCell + +@property (nonatomic,copy) NSString *emptyTitle; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/DressUp/View/Cell/YUMIManePretendDispossessAssembletionRegardElement.m b/YuMi/Modules/YMMine/View/DressUp/View/Cell/YUMIManePretendDispossessAssembletionRegardElement.m new file mode 100644 index 00000000..5dc8378a --- /dev/null +++ b/YuMi/Modules/YMMine/View/DressUp/View/Cell/YUMIManePretendDispossessAssembletionRegardElement.m @@ -0,0 +1,75 @@ +// +// YMMineDressEmptyCollectionViewCell.m +// YUMI +// +// Created by YUMI on 2022/3/21. +// + +#import "YUMIManePretendDispossessAssembletionRegardElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "UIIndicateConstant.h" + +@interface YUMIManePretendDispossessAssembletionRegardElement () +@property (nonatomic,strong) UIImageView *dispossessIndicateRegard; +@property (nonatomic,strong) UILabel *titleLabel; +@end + +@implementation YUMIManePretendDispossessAssembletionRegardElement + +- (instancetype)initWithFrame:(CGRect)frame { + if (self = [super initWithFrame:frame]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor]; + [self.contentView addSubview:self.dispossessIndicateRegard]; + [self.contentView addSubview:self.titleLabel]; +} + +- (void)initChildLyRestrictions { + [self.dispossessIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.contentView); + make.top.mas_equalTo(self.contentView).offset(150); + make.size.mas_equalTo(CGSizeMake(100, 100)); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.dispossessIndicateRegard.mas_bottom).offset(20); + make.left.right.mas_equalTo(self.contentView); + }]; +} + +#pragma mark - Getters And Setters +- (void)setEmptyTitle:(NSString *)emptyTitle { + _emptyTitle = emptyTitle; + self.titleLabel.text = _emptyTitle; +} + +- (UIImageView *)dispossessIndicateRegard { + if (!_dispossessIndicateRegard) { + _dispossessIndicateRegard = [[UIImageView alloc] init]; + _dispossessIndicateRegard.userInteractionEnabled = YES; + _dispossessIndicateRegard.image = [UIIndicateConstant defalutDispossessDepapossessor]; + _dispossessIndicateRegard.layer.masksToBounds = YES; + _dispossessIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _dispossessIndicateRegard; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.text = YMLocalizedString(@"YUMI_Mine_Dress_Empty_Collection_View_Cell_0"); + _titleLabel.font = [UIFont systemFontOfSize:16]; + _titleLabel.textAlignment = NSTextAlignmentCenter; + _titleLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + } + return _titleLabel; +} +@end diff --git a/YuMi/Modules/YMMine/View/DressUp/View/Cell/YUMIManePretendDispossessTabulationRegardElement.h b/YuMi/Modules/YMMine/View/DressUp/View/Cell/YUMIManePretendDispossessTabulationRegardElement.h new file mode 100644 index 00000000..b5062ecb --- /dev/null +++ b/YuMi/Modules/YMMine/View/DressUp/View/Cell/YUMIManePretendDispossessTabulationRegardElement.h @@ -0,0 +1,16 @@ +// +// YMMineDressEmptyTableViewCell.h +// YUMI +// +// Created by YUMI on 2021/12/16. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManePretendDispossessTabulationRegardElement : UITableViewCell +@property (nonatomic,copy) NSString *emptyTitle; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/DressUp/View/Cell/YUMIManePretendDispossessTabulationRegardElement.m b/YuMi/Modules/YMMine/View/DressUp/View/Cell/YUMIManePretendDispossessTabulationRegardElement.m new file mode 100644 index 00000000..57143aef --- /dev/null +++ b/YuMi/Modules/YMMine/View/DressUp/View/Cell/YUMIManePretendDispossessTabulationRegardElement.m @@ -0,0 +1,76 @@ +// +// YMMineDressEmptyTableViewCell.m +// YUMI +// +// Created by YUMI on 2021/12/16. +// + +#import "YUMIManePretendDispossessTabulationRegardElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "UIIndicateConstant.h" + +@interface YUMIManePretendDispossessTabulationRegardElement () +@property (nonatomic,strong) UIImageView *dispossessIndicateRegard; +@property (nonatomic,strong) UILabel *titleLabel; +@end + +@implementation YUMIManePretendDispossessTabulationRegardElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor]; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.dispossessIndicateRegard]; + [self.contentView addSubview:self.titleLabel]; +} + +- (void)initChildLyRestrictions { + [self.dispossessIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.contentView); + make.top.mas_equalTo(self.contentView).offset(150); + make.size.mas_equalTo(CGSizeMake(100, 100)); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.dispossessIndicateRegard.mas_bottom).offset(20); + make.left.right.mas_equalTo(self.contentView); + }]; +} + +#pragma mark - Getters And Setters +- (void)setEmptyTitle:(NSString *)emptyTitle { + _emptyTitle = emptyTitle; + self.titleLabel.text = _emptyTitle; +} + +- (UIImageView *)dispossessIndicateRegard { + if (!_dispossessIndicateRegard) { + _dispossessIndicateRegard = [[UIImageView alloc] init]; + _dispossessIndicateRegard.userInteractionEnabled = YES; + _dispossessIndicateRegard.image = [UIIndicateConstant defalutDispossessDepapossessor]; + _dispossessIndicateRegard.layer.masksToBounds = YES; + _dispossessIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _dispossessIndicateRegard; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.text = YMLocalizedString(@"YUMI_Mine_Dress_Empty_Table_View_Cell_0"); + _titleLabel.font = [UIFont systemFontOfSize:16]; + _titleLabel.textAlignment = NSTextAlignmentCenter; + _titleLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + } + return _titleLabel; +} +@end diff --git a/YuMi/Modules/YMMine/View/DressUp/View/Cell/YUMIManePretendIntumesceAssembletionRegardElement.h b/YuMi/Modules/YMMine/View/DressUp/View/Cell/YUMIManePretendIntumesceAssembletionRegardElement.h new file mode 100644 index 00000000..7696b988 --- /dev/null +++ b/YuMi/Modules/YMMine/View/DressUp/View/Cell/YUMIManePretendIntumesceAssembletionRegardElement.h @@ -0,0 +1,28 @@ +// +// YMMineDressBubbleTableViewCell.h +// YUMI +// +// Created by YUMI on 2022/3/18. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class ChatIntumesceMatrix, YUMIManePretendIntumesceAssembletionRegardElement; + +@protocol FBCManePretendBubbleTabulationViweElementRepresendtation +- (void)fBCManePretconcludeIntumesceAssembletionRegardElement:(YUMIManePretendIntumesceAssembletionRegardElement *)view bubbleId:(NSString *)bubbleId; + +@end + +@interface YUMIManePretendIntumesceAssembletionRegardElement : UICollectionViewCell + +@property (nonatomic, strong) ChatIntumesceMatrix *intumesceMatrix; + +@property (nonatomic,weak) id delegate; + +@end + + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/DressUp/View/Cell/YUMIManePretendIntumesceAssembletionRegardElement.m b/YuMi/Modules/YMMine/View/DressUp/View/Cell/YUMIManePretendIntumesceAssembletionRegardElement.m new file mode 100644 index 00000000..f3da4af5 --- /dev/null +++ b/YuMi/Modules/YMMine/View/DressUp/View/Cell/YUMIManePretendIntumesceAssembletionRegardElement.m @@ -0,0 +1,197 @@ +// +// YMMineDressBubbleTableViewCell.m +// YUMI +// +// Created by YUMI on 2022/3/18. +// + +#import "YUMIManePretendIntumesceAssembletionRegardElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "NetIndicateRegard.h" +#import "UIImage+Utils.h" +#import "ChatIntumesceMatrix.h" + +@interface YUMIManePretendIntumesceAssembletionRegardElement() + +@property (nonatomic, strong) UIView *mainView; +@property (nonatomic,strong) UIImageView *burlywoodRegard; +@property (nonatomic, strong) UIView *consumerSolitaireEncourageRegard; +@property (nonatomic, strong) NetIndicateRegard *magnificentIndicateRegard; +@property (nonatomic, strong) UILabel *titleLabel; +@property (nonatomic, strong) UILabel *intratemporalSequencignation; +@property (nonatomic,strong) UIButton *useBtuton; +@end + + +@implementation YUMIManePretendIntumesceAssembletionRegardElement + +- (instancetype)initWithFrame:(CGRect)frame { + if (self = [super initWithFrame:frame]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self.contentView addSubview:self.mainView]; + [self.mainView addSubview:self.burlywoodRegard]; + [self.mainView addSubview:self.titleLabel]; + [self.mainView addSubview:self.intratemporalSequencignation]; + [self.mainView addSubview:self.useBtuton]; + [self.mainView addSubview:self.consumerSolitaireEncourageRegard]; + [self.consumerSolitaireEncourageRegard addSubview:self.magnificentIndicateRegard]; +} + +- (void)initChildLyRestrictions { + [self.mainView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(0); + }]; + [self.burlywoodRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.mainView).mas_offset(8); + make.top.mas_equalTo(self.mainView).mas_offset(12); + make.width.mas_equalTo(3); + make.height.mas_equalTo(16); + }]; + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.burlywoodRegard.mas_right).mas_offset(4); + make.centerY.mas_equalTo(self.burlywoodRegard); + make.height.mas_equalTo(14); + }]; + + [self.consumerSolitaireEncourageRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(44); + make.width.mas_equalTo(84); + make.centerX.mas_equalTo(self.mainView); + make.top.mas_equalTo(self.titleLabel.mas_bottom).mas_offset(16); + }]; + + [self.magnificentIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(30); + make.width.mas_equalTo(60); + make.bottom.mas_equalTo(self.consumerSolitaireEncourageRegard).mas_offset(-5); + make.centerX.mas_equalTo(self.consumerSolitaireEncourageRegard); + }]; + + [self.intratemporalSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.mainView); + make.top.mas_equalTo(self.useBtuton.mas_bottom).mas_offset(4); + make.height.mas_equalTo(14); + }]; + + [self.useBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.mainView); + make.height.mas_equalTo(24); + make.width.mas_equalTo(89); + make.top.mas_equalTo(self.consumerSolitaireEncourageRegard.mas_bottom).mas_offset(17); + }]; + +} + +#pragma mark - private +- (void)setIntumesceMatrix:(ChatIntumesceMatrix *)intumesceMatrix { + _intumesceMatrix = intumesceMatrix; + if (intumesceMatrix) { + self.titleLabel.text = intumesceMatrix.name; + self.useBtuton.hidden = intumesceMatrix.hasExpired; + if (!intumesceMatrix.hasExpired) { + self.intratemporalSequencignation.text = [NSString stringWithFormat:YMLocalizedString(@"YUMI_Mine_Dress_Bubble_Collection_View_Cell_0"), intumesceMatrix.expireDays]; + } else { + self.intratemporalSequencignation.text = YMLocalizedString(@"YUMI_Mine_Dress_Bubble_Collection_View_Cell_1"); + } + self.magnificentIndicateRegard.imageUrl = intumesceMatrix.bubbleUrl; + if (intumesceMatrix.hasUsed) { + [_useBtuton setTitle:YMLocalizedString(@"YUMI_Mine_Dress_Bubble_Collection_View_Cell_2") forState:UIControlStateNormal]; + [_useBtuton setTitleColor:[DJDKMIMOMColor revoctowardsionBtutonEssayPrettify] forState:UIControlStateNormal]; + [_useBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor revoctowardsionBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor revoctowardsionBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + } else { + [_useBtuton setTitle:YMLocalizedString(@"YUMI_Mine_Dress_Bubble_Collection_View_Cell_3") forState:UIControlStateNormal]; + [_useBtuton setTitleColor:[DJDKMIMOMColor acknowledgementBtutonEssayPrettify] forState:UIControlStateNormal]; + [_useBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + } + } +} + +#pragma mark - Event Response +- (void)utilizeBtutonPerformance:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(fBCManePretconcludeIntumesceAssembletionRegardElement:bubbleId:)]) { + NSString * bubbleId = self.intumesceMatrix.bubbleId;; + if (self.intumesceMatrix.hasUsed) { + bubbleId = @"0"; + } + [self.delegate fBCManePretconcludeIntumesceAssembletionRegardElement:self bubbleId:bubbleId]; + } +} + +#pragma mark - Getter && Setter +- (UIView *)mainView { + if (!_mainView) { + _mainView = [[UIView alloc] init]; + _mainView.backgroundColor = [DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify]; + _mainView.layer.cornerRadius = 10; + _mainView.layer.masksToBounds = YES; + } + return _mainView; +} +- (UIImageView *)burlywoodRegard { + if (!_burlywoodRegard) { + _burlywoodRegard = [[UIImageView alloc] init]; + [_burlywoodRegard setImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[UIColorFromRGB(0xFFCB47), UIColorFromRGB(0xFFA936)] gradientType:GradientGenreTopToBottom imgSize:CGSizeMake(3, 16)]]; + _burlywoodRegard.layer.cornerRadius = 1.5; + _burlywoodRegard.layer.masksToBounds = YES; + } + return _burlywoodRegard; +} +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.font = [UIFont systemFontOfSize:14 weight:UIFontWeightMedium]; + _titleLabel.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _titleLabel; +} + +- (UILabel *)intratemporalSequencignation { + if (!_intratemporalSequencignation) { + _intratemporalSequencignation = [[UILabel alloc] init]; + _intratemporalSequencignation.font = [UIFont systemFontOfSize:10]; + _intratemporalSequencignation.textColor = [DJDKMIMOMColor essayTertiusPrettify]; + } + return _intratemporalSequencignation; +} + +- (UIButton *)useBtuton { + if (!_useBtuton) { + _useBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_useBtuton setTitle:YMLocalizedString(@"YUMI_Mine_Dress_Bubble_Collection_View_Cell_4") forState:UIControlStateNormal]; + [_useBtuton setTitleColor:[DJDKMIMOMColor acknowledgementBtutonEssayPrettify] forState:UIControlStateNormal]; + [_useBtuton addTarget:self action:@selector(utilizeBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + _useBtuton.layer.masksToBounds = YES; + _useBtuton.layer.cornerRadius = 24/2; + _useBtuton.titleLabel.font = [UIFont systemFontOfSize:12]; + [_useBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + } + return _useBtuton; +} + +- (NetIndicateRegard *)magnificentIndicateRegard { + if (!_magnificentIndicateRegard) { + _magnificentIndicateRegard = [[NetIndicateRegard alloc] init]; + _magnificentIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _magnificentIndicateRegard;; +} + +- (UIView *)consumerSolitaireEncourageRegard { + if (!_consumerSolitaireEncourageRegard) { + _consumerSolitaireEncourageRegard = [[UIView alloc] init]; + _consumerSolitaireEncourageRegard.layer.cornerRadius = 12; + _consumerSolitaireEncourageRegard.layer.masksToBounds = YES; + + } + return _consumerSolitaireEncourageRegard;; +} + +@end diff --git a/YuMi/Modules/YMMine/View/DressUp/View/Cell/YUMIPretendProcurementHuntforTabulationRegardElement.h b/YuMi/Modules/YMMine/View/DressUp/View/Cell/YUMIPretendProcurementHuntforTabulationRegardElement.h new file mode 100644 index 00000000..a39c7942 --- /dev/null +++ b/YuMi/Modules/YMMine/View/DressUp/View/Cell/YUMIPretendProcurementHuntforTabulationRegardElement.h @@ -0,0 +1,26 @@ +// +// YMDressShopSearchTableViewCell.h +// YUMI +// +// Created by YUMI on 2022/7/29. +// + +#import +#import "ResidenceHuntforConsequentMatrix.h" + +NS_ASSUME_NONNULL_BEGIN + +@class YUMIPretendProcurementHuntforTabulationRegardElement; +@protocol FBCPretendProcurementHuntforTabulationViweElementRepresendtation + +- (void)yUMIPretconcludeProcurementHuntforTarbsultowardsionViweElementDischargeBtutonTicktack:(YUMIPretendProcurementHuntforTabulationRegardElement *)cell; + +@end +@interface YUMIPretendProcurementHuntforTabulationRegardElement : UITableViewCell + +@property (nonatomic, strong) ResidenceHuntforConsequentMatrix *data; +@property (nonatomic, weak) id delegate; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/DressUp/View/Cell/YUMIPretendProcurementHuntforTabulationRegardElement.m b/YuMi/Modules/YMMine/View/DressUp/View/Cell/YUMIPretendProcurementHuntforTabulationRegardElement.m new file mode 100644 index 00000000..7ec5b63f --- /dev/null +++ b/YuMi/Modules/YMMine/View/DressUp/View/Cell/YUMIPretendProcurementHuntforTabulationRegardElement.m @@ -0,0 +1,172 @@ +// +// YMDressShopSearchTableViewCell.m +// YUMI +// +// Created by YUMI on 2022/7/29. +// + +#import "YUMIPretendProcurementHuntforTabulationRegardElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "UIImage+Utils.h" +#import "ResidenceHuntforConsequentMatrix.h" +#import "NetIndicateRegard.h" + +@interface YUMIPretendProcurementHuntforTabulationRegardElement () + +@property (nonatomic,strong) NetIndicateRegard *intelligenceportraitIndicateRegard; +@property (nonatomic,strong) UIStackView *constituteHierarchyRegard; +@property (nonatomic,strong) UILabel *monicerSequencignation; +@property (nonatomic,strong) UIImageView *seaxualityIndicateRegard; +@property (nonatomic,strong) UILabel *idSequencignation; +@property (nonatomic,strong) UIView * burlywoodRegard; +@property (nonatomic, strong) UIButton *dischargeBtuton; + +@end + +@implementation YUMIPretendProcurementHuntforTabulationRegardElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Public Method +- (void)setData:(ResidenceHuntforConsequentMatrix *)data { + if (data) { + self.intelligenceportraitIndicateRegard.imageUrl = data.avatar; + self.monicerSequencignation.text = data.nick; + self.idSequencignation.text = [NSString stringWithFormat:@"%@号:%@",AppName, data.erbanNo]; + self.seaxualityIndicateRegard.image = data.gender == GenderGenre_Female ? [UIImage imageNamed:@"yumi_same_female"] : [UIImage imageNamed:@"yumi_same_male"]; + } +} + +#pragma mark - Private Method +- (void)initSubViews { + self.selectionStyle = UITableViewCellSelectionStyleNone; + self.backgroundColor = [UIColor clearColor]; + [self.contentView addSubview:self.intelligenceportraitIndicateRegard]; + [self.contentView addSubview:self.constituteHierarchyRegard]; + [self.contentView addSubview:self.idSequencignation]; + [self.contentView addSubview:self.dischargeBtuton]; + [self.contentView addSubview:self.burlywoodRegard]; + [self.constituteHierarchyRegard addArrangedSubview:self.monicerSequencignation]; + [self.constituteHierarchyRegard addArrangedSubview:self.seaxualityIndicateRegard]; +} + +- (void)initChildLyRestrictions { + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(45, 45)); + make.left.mas_equalTo(self.contentView).offset(15); + make.centerY.mas_equalTo(self.contentView); + }]; + + [self.constituteHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_right).offset(13); + make.height.mas_equalTo(20); + make.bottom.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_centerY).offset(-1.5); + }]; + + [self.idSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.constituteHierarchyRegard); + make.top.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_centerY).offset(1.5); + }]; + + [self.burlywoodRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.constituteHierarchyRegard); + make.right.mas_equalTo(self.contentView).offset(-15); + make.bottom.mas_equalTo(self.contentView); + make.height.mas_equalTo(1); + }]; + + [self.dischargeBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self.contentView).offset(-15); + make.centerY.mas_equalTo(self.contentView); + make.size.mas_equalTo(CGSizeMake(72, 24)); + }]; +} + +#pragma mark - Event Response +- (void)prohibitichargeBtutonPerformance:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIPretconcludeProcurementHuntforTarbsultowardsionViweElementDischargeBtutonTicktack:)]) { + [self.delegate yUMIPretconcludeProcurementHuntforTarbsultowardsionViweElementDischargeBtutonTicktack:self]; + } +} + +#pragma mark - Getters And Setters +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc] init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _intelligenceportraitIndicateRegard.layer.cornerRadius = 45/2; + _intelligenceportraitIndicateRegard.contentMode = UIViewContentModeScaleAspectFill; + } + return _intelligenceportraitIndicateRegard; +} + +- (UIStackView *)constituteHierarchyRegard { + if (!_constituteHierarchyRegard) { + _constituteHierarchyRegard = [[UIStackView alloc] init]; + _constituteHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _constituteHierarchyRegard.distribution = UIStackViewDistributionFill; + _constituteHierarchyRegard.alignment = UIStackViewAlignmentCenter; + _constituteHierarchyRegard.spacing = 2; + } + return _constituteHierarchyRegard; +} + +- (UILabel *)monicerSequencignation { + if (!_monicerSequencignation) { + _monicerSequencignation = [[UILabel alloc] init]; + _monicerSequencignation.text = @""; + _monicerSequencignation.font = [UIFont fontWithName:@"PingFang-SC-Medium" size:15]; + _monicerSequencignation.textColor = [DJDKMIMOMColor instantEssayPrettify]; + } + return _monicerSequencignation; +} + +- (UIImageView *)seaxualityIndicateRegard { + if (!_seaxualityIndicateRegard) { + _seaxualityIndicateRegard = [[UIImageView alloc] init]; + } + return _seaxualityIndicateRegard; +} + +- (UILabel *)idSequencignation { + if (!_idSequencignation) { + _idSequencignation = [[UILabel alloc] init]; + _idSequencignation.font = [UIFont systemFontOfSize:13]; + _idSequencignation.textColor = [DJDKMIMOMColor essayTertiusPrettify]; + } + return _idSequencignation; +} + +- (UIView *)burlywoodRegard { + if (!_burlywoodRegard) { + _burlywoodRegard = [[UIView alloc] init]; + _burlywoodRegard.backgroundColor = [DJDKMIMOMColor dividerPrettify]; + } + return _burlywoodRegard; +} + +- (UIButton *)dischargeBtuton { + if (!_dischargeBtuton) { + _dischargeBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_dischargeBtuton setTitle:YMLocalizedString(@"YUMI_Dress_Shop_Search_Table_View_Cell_1") forState:UIControlStateNormal]; + [_dischargeBtuton setTitleColor:[DJDKMIMOMColor acknowledgementBtutonEssayPrettify] forState:UIControlStateNormal]; + [_dischargeBtuton addTarget:self action:@selector(prohibitichargeBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + _dischargeBtuton.layer.masksToBounds = YES; + _dischargeBtuton.layer.cornerRadius = 24/2; + _dischargeBtuton.titleLabel.font = [UIFont systemFontOfSize:12]; + [_dischargeBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + } + return _dischargeBtuton; +} + +@end diff --git a/YuMi/Modules/YMMine/View/DressUp/View/Cell/YUMIPretendUpwardsProcurementAssembletionRegardElement.h b/YuMi/Modules/YMMine/View/DressUp/View/Cell/YUMIPretendUpwardsProcurementAssembletionRegardElement.h new file mode 100644 index 00000000..61bd3b6d --- /dev/null +++ b/YuMi/Modules/YMMine/View/DressUp/View/Cell/YUMIPretendUpwardsProcurementAssembletionRegardElement.h @@ -0,0 +1,29 @@ +// +// YMDressUpShopCollectionViewCell.h +// YUMI +// +// Created by YUMI on 2022/7/29. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class PretendUpwardsProcurementMatrix, YUMIPretendUpwardsProcurementAssembletionRegardElement; + +@protocol FBCPretendedProcurementAssembletionRegardElementRepresendtation + +- (void)yUMIPretconcludeedProcurementAssembletionRegardElementDischargePretconclude:(YUMIPretendUpwardsProcurementAssembletionRegardElement *)view dressId:(NSString *)dressId; +- (void)yUMIPretconcludeedProcurementAssembletionRegardElementAcquirePretconclude:(YUMIPretendUpwardsProcurementAssembletionRegardElement *)view dressId:(NSString *)dressId; + +@end + +@interface YUMIPretendUpwardsProcurementAssembletionRegardElement : UICollectionViewCell + +@property (nonatomic, strong) PretendUpwardsProcurementMatrix *dressUpwardsMatrix; + +@property (nonatomic,weak) id delegate; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/DressUp/View/Cell/YUMIPretendUpwardsProcurementAssembletionRegardElement.m b/YuMi/Modules/YMMine/View/DressUp/View/Cell/YUMIPretendUpwardsProcurementAssembletionRegardElement.m new file mode 100644 index 00000000..db47f05e --- /dev/null +++ b/YuMi/Modules/YMMine/View/DressUp/View/Cell/YUMIPretendUpwardsProcurementAssembletionRegardElement.m @@ -0,0 +1,236 @@ +// +// YMDressUpShopCollectionViewCell.m +// YUMI +// +// Created by YUMI on 2022/7/29. +// + +#import "YUMIPretendUpwardsProcurementAssembletionRegardElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "NetIndicateRegard.h" +#import "UIImage+Utils.h" +#import "YUMIMacroUitls.h" +#import "PretendUpwardsProcurementMatrix.h" + +@interface YUMIPretendUpwardsProcurementAssembletionRegardElement() + +@property (nonatomic, strong) UIView *mainView; +@property (nonatomic, strong) UIView *consumerSolitaireEncourageRegard; +@property (nonatomic, strong) NetIndicateRegard *dressUpwardsIndicateRegard; +@property (nonatomic, strong) UILabel *titleLabel; +@property (nonatomic, strong) UIImageView *bWSttawberryIndicateRegard; +@property (nonatomic, strong) UILabel *bWSttawberrySequencignation; +@property (nonatomic, strong) UIButton *dischargeBtuton; +@property (nonatomic,strong) UIButton *useBtuton; +@property (nonatomic, strong) UIView *restrictionIntratemporalBackgroundRegard; +@property (nonatomic, strong) UILabel *restrictionSequencignation; + +@end + + +@implementation YUMIPretendUpwardsProcurementAssembletionRegardElement + +- (instancetype)initWithFrame:(CGRect)frame { + if (self = [super initWithFrame:frame]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self.contentView addSubview:self.mainView]; + [self.mainView addSubview:self.consumerSolitaireEncourageRegard]; + [self.mainView addSubview:self.dressUpwardsIndicateRegard]; + [self.mainView addSubview:self.titleLabel]; + [self.mainView addSubview:self.bWSttawberryIndicateRegard]; + [self.mainView addSubview:self.bWSttawberrySequencignation]; + [self.mainView addSubview:self.dischargeBtuton]; + [self.mainView addSubview:self.useBtuton]; + [self.mainView addSubview:self.restrictionIntratemporalBackgroundRegard]; + [self.restrictionIntratemporalBackgroundRegard addSubview:self.restrictionSequencignation]; +} + +- (void)initChildLyRestrictions { + [self.mainView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(0); + }]; + [self.consumerSolitaireEncourageRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(92); + make.left.top.right.mas_equalTo(0); + }]; + CGFloat dressImageW = (KScreenWidth - 42) *0.5; + [self.dressUpwardsIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(dressImageW * 0.7, 70)); + make.top.mas_equalTo(11); + make.centerX.mas_equalTo(self.consumerSolitaireEncourageRegard); + }]; + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(8); + make.top.mas_equalTo(self.consumerSolitaireEncourageRegard.mas_bottom).mas_offset(8); + make.height.mas_equalTo(14); + }]; + + [self.bWSttawberryIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.titleLabel); + make.size.mas_equalTo(CGSizeMake(11, 11)); + make.top.mas_equalTo(self.titleLabel.mas_bottom).mas_offset(12); + }]; + [self.bWSttawberrySequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.bWSttawberryIndicateRegard); + make.left.mas_equalTo(self.bWSttawberryIndicateRegard.mas_right).mas_offset(4); + make.height.mas_equalTo(17); + }]; + CGFloat width = ((KScreenWidth - 42) *0.5 - 16-6) *0.5; + [self.dischargeBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(width, 24)); + make.top.mas_equalTo(self.bWSttawberryIndicateRegard.mas_bottom).mas_offset(17); + make.right.mas_equalTo(self.mas_centerX).mas_offset(-3); + }]; + [self.useBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.mas_centerX).mas_offset(3); + make.size.mas_equalTo(self.dischargeBtuton); + make.centerY.mas_equalTo(self.dischargeBtuton); + }]; + [self.restrictionIntratemporalBackgroundRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.right.mas_equalTo(self.consumerSolitaireEncourageRegard); + make.size.mas_equalTo(CGSizeMake(36, 20)); + }]; + [self.restrictionSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.restrictionIntratemporalBackgroundRegard); + }]; +} + +#pragma mark - private +- (void)setDressUpwardsMatrix:(PretendUpwardsProcurementMatrix *)dressUpwardsMatrix { + _dressUpwardsMatrix = dressUpwardsMatrix; + if (dressUpwardsMatrix) { + self.titleLabel.text = [NSString stringWithFormat:@"%@(%zd天)", dressUpwardsMatrix.name, dressUpwardsMatrix.dressDay]; + self.dressUpwardsIndicateRegard.imageUrl = dressUpwardsMatrix.pic; + self.bWSttawberrySequencignation.text = [NSString stringWithFormat:@"%zd", dressUpwardsMatrix.dressPrice]; + self.restrictionIntratemporalBackgroundRegard.hidden = (dressUpwardsMatrix.dressLimitStatus != 0); + } +} + +#pragma mark - Event Response +- (void)prohibitichargeBtutonPerformance:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIPretconcludeedProcurementAssembletionRegardElementDischargePretconclude:dressId:)]) { + [self.delegate yUMIPretconcludeedProcurementAssembletionRegardElementDischargePretconclude:self dressId:self.dressUpwardsMatrix.dressUpId]; + } +} + +- (void)utilizeBtutonPerformance:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIPretconcludeedProcurementAssembletionRegardElementAcquirePretconclude:dressId:)]) { + [self.delegate yUMIPretconcludeedProcurementAssembletionRegardElementAcquirePretconclude:self dressId:self.dressUpwardsMatrix.dressUpId]; + } +} + +#pragma mark - Getter && Setter +- (UIView *)mainView { + if (!_mainView) { + _mainView = [[UIView alloc] init]; + _mainView.backgroundColor = [DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify]; + _mainView.layer.cornerRadius = 10; + _mainView.layer.masksToBounds = YES; + } + return _mainView; +} + +- (UIView *)consumerSolitaireEncourageRegard { + if (!_consumerSolitaireEncourageRegard) { + _consumerSolitaireEncourageRegard = [[UIView alloc] init]; + _consumerSolitaireEncourageRegard.backgroundColor = UIColorFromRGB(0xEAE5FC); + } + return _consumerSolitaireEncourageRegard;; +} + +- (NetIndicateRegard *)dressUpwardsIndicateRegard { + if (!_dressUpwardsIndicateRegard) { + _dressUpwardsIndicateRegard = [[NetIndicateRegard alloc] init]; + _dressUpwardsIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _dressUpwardsIndicateRegard;; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium]; + _titleLabel.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _titleLabel; +} + +- (UIImageView *)bWSttawberryIndicateRegard { + if (!_bWSttawberryIndicateRegard) { + _bWSttawberryIndicateRegard = [[UIImageView alloc] init]; + _bWSttawberryIndicateRegard.image = [UIImage imageNamed:@"yumi_same_diamond"]; + } + return _bWSttawberryIndicateRegard; +} + +- (UILabel *)bWSttawberrySequencignation { + if (!_bWSttawberrySequencignation) { + _bWSttawberrySequencignation = [[UILabel alloc] init]; + _bWSttawberrySequencignation.font = [UIFont systemFontOfSize:12 weight:UIFontWeightBold]; + _bWSttawberrySequencignation.textColor = UIColorFromRGB(0xFFBC51); + } + return _bWSttawberrySequencignation; +} + +- (UIButton *)dischargeBtuton { + if (!_dischargeBtuton) { + _dischargeBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_dischargeBtuton setTitle:YMLocalizedString(@"YUMI_Dress_Up_Shop_Collection_View_Cell_1") forState:UIControlStateNormal]; + [_dischargeBtuton setTitleColor:UIColorFromRGB(0xFFA936) forState:UIControlStateNormal]; + [_dischargeBtuton addTarget:self action:@selector(prohibitichargeBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + _dischargeBtuton.layer.masksToBounds = YES; + _dischargeBtuton.layer.cornerRadius = 24/2; + _dischargeBtuton.titleLabel.font = [UIFont systemFontOfSize:12]; + _dischargeBtuton.backgroundColor = UIColorFromRGB(0xFFF0C9); + } + return _dischargeBtuton; +} + +- (UIButton *)useBtuton { + if (!_useBtuton) { + _useBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_useBtuton setTitle:YMLocalizedString(@"YUMI_Dress_Up_Shop_Collection_View_Cell_2") forState:UIControlStateNormal]; + [_useBtuton setTitleColor:[DJDKMIMOMColor acknowledgementBtutonEssayPrettify] forState:UIControlStateNormal]; + [_useBtuton addTarget:self action:@selector(utilizeBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + _useBtuton.layer.masksToBounds = YES; + _useBtuton.layer.cornerRadius = 24/2; + _useBtuton.titleLabel.font = [UIFont systemFontOfSize:12]; + [_useBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + } + return _useBtuton; +} + +- (UIView *)restrictionIntratemporalBackgroundRegard { + if (!_restrictionIntratemporalBackgroundRegard) { + _restrictionIntratemporalBackgroundRegard = [[UIView alloc] init]; + _restrictionIntratemporalBackgroundRegard.backgroundColor = UIColorFromRGB(0xFB486A); + CAShapeLayer * layer = [CAShapeLayer layer]; + UIBezierPath * path = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, 36, 20) byRoundingCorners:UIRectCornerBottomLeft cornerRadii:CGSizeMake(10, 10)]; + layer.path = path.CGPath; + _restrictionIntratemporalBackgroundRegard.layer.masksToBounds = YES; + _restrictionIntratemporalBackgroundRegard.layer.mask = layer; + + } + return _restrictionIntratemporalBackgroundRegard; +} + +- (UILabel *)restrictionSequencignation { + if (!_restrictionSequencignation) { + _restrictionSequencignation = [[UILabel alloc] init]; + _restrictionSequencignation.text = YMLocalizedString(@"YUMI_Dress_Up_Shop_Collection_View_Cell_3"); + _restrictionSequencignation.textColor = [UIColor whiteColor]; + _restrictionSequencignation.font = [UIFont systemFontOfSize:10]; + _restrictionSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _restrictionSequencignation; +} + +@end diff --git a/YuMi/Modules/YMMine/View/DressUp/View/Cell/YUMIPretendUpwardsProcurementSolitaireTabulationRegardElement.h b/YuMi/Modules/YMMine/View/DressUp/View/Cell/YUMIPretendUpwardsProcurementSolitaireTabulationRegardElement.h new file mode 100644 index 00000000..9ac48e60 --- /dev/null +++ b/YuMi/Modules/YMMine/View/DressUp/View/Cell/YUMIPretendUpwardsProcurementSolitaireTabulationRegardElement.h @@ -0,0 +1,27 @@ +// +// YMDressUpShopCardTableViewCell.h +// YUMI +// +// Created by YUMI on 2022/7/29. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class PretendUpwardsProcurementMatrix, YUMIPretendUpwardsProcurementSolitaireTabulationRegardElement; +@protocol FBCPretendedProcurementSolitaireTabulationViweElementRepresendtation + +- (void)yUMIPretconcludeedProcurementSolitaireTarbsultowardsionViweElementDischargePretconclude:(YUMIPretendUpwardsProcurementSolitaireTabulationRegardElement *)view dressId:(NSString *)dressId; +- (void)yUMIPretconcludeedProcurementSolitaireTarbsultowardsionViweElementAcquirePretconclude:(YUMIPretendUpwardsProcurementSolitaireTabulationRegardElement *)view dressId:(NSString *)dressId; + +@end + +@interface YUMIPretendUpwardsProcurementSolitaireTabulationRegardElement : UITableViewCell + +@property (nonatomic,strong) PretendUpwardsProcurementMatrix *magnificentSolitaireMatrix; +@property (nonatomic,weak) id delegate; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/DressUp/View/Cell/YUMIPretendUpwardsProcurementSolitaireTabulationRegardElement.m b/YuMi/Modules/YMMine/View/DressUp/View/Cell/YUMIPretendUpwardsProcurementSolitaireTabulationRegardElement.m new file mode 100644 index 00000000..5f99c75c --- /dev/null +++ b/YuMi/Modules/YMMine/View/DressUp/View/Cell/YUMIPretendUpwardsProcurementSolitaireTabulationRegardElement.m @@ -0,0 +1,254 @@ +// +// YMDressUpShopCardTableViewCell.m +// YUMI +// +// Created by YUMI on 2022/7/29. +// + +#import "YUMIPretendUpwardsProcurementSolitaireTabulationRegardElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "NetIndicateRegard.h" +#import "UIImage+Utils.h" +#import "YUMIMacroUitls.h" +#import "PretendUpwardsProcurementMatrix.h" + +@interface YUMIPretendUpwardsProcurementSolitaireTabulationRegardElement() + +@property (nonatomic, strong) UIView *mainView; +@property (nonatomic, strong) UIView *consumerSolitaireEncourageRegard; +@property (nonatomic, strong) UIImageView *consumerSolitaireEncourageIndicateRegard; +@property (nonatomic, strong) NetIndicateRegard *magnificentIndicateRegard; +@property (nonatomic, strong) UILabel *titleLabel; +@property (nonatomic, strong) UIImageView *bWSttawberryIndicateRegard; +@property (nonatomic, strong) UILabel *bWSttawberrySequencignation; +@property (nonatomic, strong) UIButton *dischargeBtuton; +@property (nonatomic,strong) UIButton *useBtuton; +@property (nonatomic, strong) UIView *restrictionIntratemporalBackgroundRegard; +@property (nonatomic, strong) UILabel *restrictionSequencignation; + +@end + +@implementation YUMIPretendUpwardsProcurementSolitaireTabulationRegardElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor];; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.mainView]; + [self.mainView addSubview:self.consumerSolitaireEncourageRegard]; + [self.mainView addSubview:self.consumerSolitaireEncourageIndicateRegard]; + [self.mainView addSubview:self.magnificentIndicateRegard]; + [self.mainView addSubview:self.titleLabel]; + [self.mainView addSubview:self.bWSttawberryIndicateRegard]; + [self.mainView addSubview:self.bWSttawberrySequencignation]; + [self.mainView addSubview:self.dischargeBtuton]; + [self.mainView addSubview:self.useBtuton]; + [self.mainView addSubview:self.restrictionIntratemporalBackgroundRegard]; + [self.restrictionIntratemporalBackgroundRegard addSubview:self.restrictionSequencignation]; +} + +- (void)initChildLyRestrictions { + [self.mainView mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(268); + make.left.right.mas_equalTo(self).inset(15); + make.top.mas_equalTo(12); + }]; + [self.consumerSolitaireEncourageRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(0); + make.height.mas_equalTo(180); + }]; + [self.consumerSolitaireEncourageIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(110); + make.width.mas_equalTo(285); + make.bottom.mas_equalTo(self.consumerSolitaireEncourageRegard).mas_offset(-4); + make.centerX.mas_equalTo(self.mainView); + }]; + [self.magnificentIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(180); + make.width.mas_equalTo(330); + make.bottom.mas_equalTo(self.consumerSolitaireEncourageIndicateRegard); + make.centerX.mas_equalTo(self.mainView); + }]; + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(12); + make.top.mas_equalTo(self.consumerSolitaireEncourageRegard.mas_bottom).mas_offset(14); + make.height.mas_equalTo(14); + }]; + [self.bWSttawberryIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self.bWSttawberrySequencignation.mas_left).mas_offset(-4); + make.size.mas_equalTo(CGSizeMake(11, 11)); + make.centerY.mas_equalTo(self.titleLabel); + }]; + [self.bWSttawberrySequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.titleLabel); + make.right.mas_equalTo(-12); + make.height.mas_equalTo(20); + }]; + CGFloat width = (KScreenWidth - 30-20-12) *0.5; + [self.dischargeBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(width, 32)); + make.top.mas_equalTo(self.titleLabel.mas_bottom).mas_offset(16); + make.right.mas_equalTo(self.mas_centerX).mas_offset(-6); + }]; + [self.useBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.mas_centerX).mas_offset(6); + make.size.mas_equalTo(self.dischargeBtuton); + make.centerY.mas_equalTo(self.dischargeBtuton); + }]; + [self.restrictionIntratemporalBackgroundRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.right.mas_equalTo(self.consumerSolitaireEncourageRegard); + make.size.mas_equalTo(CGSizeMake(36, 20)); + }]; + [self.restrictionSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.restrictionIntratemporalBackgroundRegard); + }]; +} + +#pragma mark - private + +- (void)setMagnificentSolitaireMatrix:(PretendUpwardsProcurementMatrix *)magnificentSolitaireMatrix { + _magnificentSolitaireMatrix = magnificentSolitaireMatrix; + if (_magnificentSolitaireMatrix) { + self.titleLabel.text = [NSString stringWithFormat:@"%@(%zd天)", magnificentSolitaireMatrix.name, magnificentSolitaireMatrix.dressDay]; + self.magnificentIndicateRegard.imageUrl = magnificentSolitaireMatrix.pic; + self.bWSttawberrySequencignation.text = [NSString stringWithFormat:@"%zd", magnificentSolitaireMatrix.dressPrice]; + self.restrictionIntratemporalBackgroundRegard.hidden = (magnificentSolitaireMatrix.dressLimitStatus != 0); + } +} + +#pragma mark - Event Response +- (void)prohibitichargeBtutonPerformance:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIPretconcludeedProcurementSolitaireTarbsultowardsionViweElementDischargePretconclude:dressId:)]) { + [self.delegate yUMIPretconcludeedProcurementSolitaireTarbsultowardsionViweElementDischargePretconclude:self dressId:self.magnificentSolitaireMatrix.dressUpId]; + } +} + +- (void)utilizeBtutonPerformance:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIPretconcludeedProcurementSolitaireTarbsultowardsionViweElementAcquirePretconclude:dressId:)]) { + [self.delegate yUMIPretconcludeedProcurementSolitaireTarbsultowardsionViweElementAcquirePretconclude:self dressId:self.magnificentSolitaireMatrix.dressUpId]; + } +} + +#pragma mark - Getter && Setter +- (UIView *)mainView { + if (!_mainView) { + _mainView = [[UIView alloc] init]; + _mainView.backgroundColor = [DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify]; + _mainView.layer.cornerRadius = 10; + _mainView.layer.masksToBounds = YES; + } + return _mainView; +} + +- (UIView *)consumerSolitaireEncourageRegard { + if (!_consumerSolitaireEncourageRegard) { + _consumerSolitaireEncourageRegard = [[UIView alloc] init]; + _consumerSolitaireEncourageRegard.backgroundColor = UIColorFromRGB(0xEAE5FC); + } + return _consumerSolitaireEncourageRegard;; +} + +- (NetIndicateRegard *)magnificentIndicateRegard { + if (!_magnificentIndicateRegard) { + _magnificentIndicateRegard = [[NetIndicateRegard alloc] init]; + _magnificentIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _magnificentIndicateRegard;; +} + +- (UIImageView *)consumerSolitaireEncourageIndicateRegard { + if (!_consumerSolitaireEncourageIndicateRegard) { + _consumerSolitaireEncourageIndicateRegard = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"yumi_center_dressup_grand_background"]]; + _consumerSolitaireEncourageIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _consumerSolitaireEncourageIndicateRegard;; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.font = [UIFont systemFontOfSize:14 weight:UIFontWeightMedium]; + _titleLabel.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _titleLabel; +} + +- (UIImageView *)bWSttawberryIndicateRegard { + if (!_bWSttawberryIndicateRegard) { + _bWSttawberryIndicateRegard = [[UIImageView alloc] init]; + _bWSttawberryIndicateRegard.image = [UIImage imageNamed:@"yumi_same_diamond"]; + } + return _bWSttawberryIndicateRegard; +} + +- (UILabel *)bWSttawberrySequencignation { + if (!_bWSttawberrySequencignation) { + _bWSttawberrySequencignation = [[UILabel alloc] init]; + _bWSttawberrySequencignation.font = [UIFont systemFontOfSize:14 weight:UIFontWeightBold]; + _bWSttawberrySequencignation.textColor = UIColorFromRGB(0xFFBC51); + } + return _bWSttawberrySequencignation; +} + +- (UIButton *)dischargeBtuton { + if (!_dischargeBtuton) { + _dischargeBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_dischargeBtuton setTitle:YMLocalizedString(@"YUMI_Dress_Up_Shop_Card_Table_View_Cell_1") forState:UIControlStateNormal]; + [_dischargeBtuton setTitleColor:UIColorFromRGB(0xFFA936) forState:UIControlStateNormal]; + [_dischargeBtuton addTarget:self action:@selector(prohibitichargeBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + _dischargeBtuton.layer.masksToBounds = YES; + _dischargeBtuton.layer.cornerRadius = 32/2; + _dischargeBtuton.titleLabel.font = [UIFont systemFontOfSize:12]; + _dischargeBtuton.backgroundColor = UIColorFromRGB(0xFFF0C9); + } + return _dischargeBtuton; +} + +- (UIButton *)useBtuton { + if (!_useBtuton) { + _useBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_useBtuton setTitle:YMLocalizedString(@"YUMI_Dress_Up_Shop_Card_Table_View_Cell_2") forState:UIControlStateNormal]; + [_useBtuton setTitleColor:[DJDKMIMOMColor acknowledgementBtutonEssayPrettify] forState:UIControlStateNormal]; + [_useBtuton addTarget:self action:@selector(utilizeBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + _useBtuton.layer.masksToBounds = YES; + _useBtuton.layer.cornerRadius = 32/2; + _useBtuton.titleLabel.font = [UIFont systemFontOfSize:12]; + [_useBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + } + return _useBtuton; +} + +- (UIView *)restrictionIntratemporalBackgroundRegard { + if (!_restrictionIntratemporalBackgroundRegard) { + _restrictionIntratemporalBackgroundRegard = [[UIView alloc] init]; + _restrictionIntratemporalBackgroundRegard.backgroundColor = UIColorFromRGB(0xFB486A); + CAShapeLayer * layer = [CAShapeLayer layer]; + UIBezierPath * path = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, 36, 20) byRoundingCorners:UIRectCornerBottomLeft cornerRadii:CGSizeMake(10, 10)]; + layer.path = path.CGPath; + _restrictionIntratemporalBackgroundRegard.layer.masksToBounds = YES; + _restrictionIntratemporalBackgroundRegard.layer.mask = layer; + + } + return _restrictionIntratemporalBackgroundRegard; +} + +- (UILabel *)restrictionSequencignation { + if (!_restrictionSequencignation) { + _restrictionSequencignation = [[UILabel alloc] init]; + _restrictionSequencignation.text = YMLocalizedString(@"YUMI_Dress_Up_Shop_Card_Table_View_Cell_3"); + _restrictionSequencignation.textColor = [UIColor whiteColor]; + _restrictionSequencignation.font = [UIFont systemFontOfSize:10]; + _restrictionSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _restrictionSequencignation; +} +@end diff --git a/YuMi/Modules/YMMine/View/DressUp/View/YUMIManePretendUpwardsIntumesceRegardGovernancer.h b/YuMi/Modules/YMMine/View/DressUp/View/YUMIManePretendUpwardsIntumesceRegardGovernancer.h new file mode 100644 index 00000000..57d477b2 --- /dev/null +++ b/YuMi/Modules/YMMine/View/DressUp/View/YUMIManePretendUpwardsIntumesceRegardGovernancer.h @@ -0,0 +1,17 @@ +// +// YMMineDressUpBubbleViewController.h +// YUMI +// +// Created by YUMI on 2022/3/21. +// + +#import "MvpRegardGovernancer.h" +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManePretendUpwardsIntumesceRegardGovernancer : MvpRegardGovernancer + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/DressUp/View/YUMIManePretendUpwardsIntumesceRegardGovernancer.m b/YuMi/Modules/YMMine/View/DressUp/View/YUMIManePretendUpwardsIntumesceRegardGovernancer.m new file mode 100644 index 00000000..76c09dbf --- /dev/null +++ b/YuMi/Modules/YMMine/View/DressUp/View/YUMIManePretendUpwardsIntumesceRegardGovernancer.m @@ -0,0 +1,140 @@ +// +// YMMineDressUpBubbleViewController.m +// YUMI +// +// Created by YUMI on 2022/3/21. +// + +#import "YUMIManePretendUpwardsIntumesceRegardGovernancer.h" +#import +#import "YUMIMacroUitls.h" +#import "NSArray+Safe.h" +#import "YUMIManePretendIntumesceAssembletionRegardElement.h" +#import "YUMIManePretendDispossessAssembletionRegardElement.h" +#import "YUMIManePretendUpwardsExternalizer.h" +#import "FBCManePretendedCeremony.h" +#import "ChatIntumesceMatrix.h" + +@interface YUMIManePretendUpwardsIntumesceRegardGovernancer () +@property (nonatomic,strong) UICollectionView *collectionView; +@property (nonatomic,strong) NSArray *datasource; + +@end + +@implementation YUMIManePretendUpwardsIntumesceRegardGovernancer + +- (YUMIManePretendUpwardsExternalizer *)producePresimport { + return [[YUMIManePretendUpwardsExternalizer alloc] init]; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initSubViews]; + [self initChildLyRestrictions]; + [self.presimport acquireConsumerChinwagIntumesceSttowardsement]; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self.view addSubview:self.collectionView]; +} + +- (void)initChildLyRestrictions { + [self.collectionView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.view); + }]; +} + +#pragma mark - FBCManePretendBubbleTabulationViweElementRepresendtation +- (void)fBCManePretconcludeIntumesceAssembletionRegardElement:(YUMIManePretendIntumesceAssembletionRegardElement *)view bubbleId:(NSString *)bubbleId { + [self.presimport utilizeIntumesce:bubbleId]; +} + +#pragma mark - FBCManePretendedCeremony +- (void)acquireConsumerChinwagIntumesceSttowardsementAccomplishment:(NSArray *)array { + self.datasource = array; + [self.collectionView reloadData]; +} + +- (void)utilizeIntumesceAccomplishment:(NSString *)bubbleId { + [self EvidenceAccomplishmentToast:bubbleId.integerValue == 0 ? @"取消使用气泡成功" : YMLocalizedString(@"YUMI_Mine_Dress_Up_Bubble_View_Controller_1")]; + if (bubbleId.integerValue == 0) { + for (ChatIntumesceMatrix *model in self.datasource) { + model.hasUsed = NO; + } + } else { + for (ChatIntumesceMatrix *model in self.datasource) { + if ([model.bubbleId isEqualToString:bubbleId]) { + model.hasUsed = YES; + } else { + model.hasUsed = NO; + } + } + } + [self.collectionView reloadData]; +} + +#pragma mark - JXCategoryListContentViewDelegate +- (UIView *)listView { + return self.view; +} + +#pragma mark - UICollectionViewDelegate +- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { + return self.datasource.count > 0 ? self.datasource.count : 1; +} + +- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { + if (self.datasource.count > 0) { + YUMIManePretendIntumesceAssembletionRegardElement *cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([YUMIManePretendIntumesceAssembletionRegardElement class]) forIndexPath:indexPath]; + cell.intumesceMatrix = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + cell.delegate = self; + return cell; + } + YUMIManePretendDispossessAssembletionRegardElement * cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([YUMIManePretendDispossessAssembletionRegardElement class]) forIndexPath:indexPath]; + cell.emptyTitle = @"亲爱的用户,你还没有聊天气泡噢!"; + return cell; +} + +- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath { + if (self.datasource.count > 0) { + CGFloat width = (KScreenWidth - 42) *0.5; + CGFloat height = width * 158 / 166.0; + return CGSizeMake(width, height); + } else { + return CGSizeMake(KScreenWidth - 32, KScreenHeight - kNavigationHeight - 100 -50); + } +} + +- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section { + if (self.datasource.count > 0) { + return 12; + } else { + return 0; + } +} + +- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section { + if (self.datasource.count > 0) { + return 12; + } else { + return 0; + } +} + +- (UICollectionView *)collectionView { + if (!_collectionView) { + UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init]; + layout.scrollDirection = UICollectionViewScrollDirectionVertical; + layout.sectionInset = UIEdgeInsetsMake(15, 15, 15, 15); + _collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout]; + _collectionView.dataSource = self; + _collectionView.delegate = self; + _collectionView.backgroundColor = [UIColor clearColor]; + [_collectionView registerClass:[YUMIManePretendIntumesceAssembletionRegardElement class] forCellWithReuseIdentifier:NSStringFromClass([YUMIManePretendIntumesceAssembletionRegardElement class])]; + [_collectionView registerClass:[YUMIManePretendDispossessAssembletionRegardElement class] forCellWithReuseIdentifier:NSStringFromClass([YUMIManePretendDispossessAssembletionRegardElement class])]; + } + return _collectionView; +} + +@end diff --git a/YuMi/Modules/YMMine/View/DressUp/View/YUMIManePretendUpwardsRegardGovernancer.h b/YuMi/Modules/YMMine/View/DressUp/View/YUMIManePretendUpwardsRegardGovernancer.h new file mode 100644 index 00000000..0dae3e11 --- /dev/null +++ b/YuMi/Modules/YMMine/View/DressUp/View/YUMIManePretendUpwardsRegardGovernancer.h @@ -0,0 +1,17 @@ +// +// YMMineDressUpViewController.h +// YUMI +// +// Created by YUMI on 2021/12/15. +// + +#import "BaseRegardGovernancer.h" +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManePretendUpwardsRegardGovernancer : BaseRegardGovernancer + +@property (nonatomic,assign) NSInteger currentIndex; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/DressUp/View/YUMIManePretendUpwardsRegardGovernancer.m b/YuMi/Modules/YMMine/View/DressUp/View/YUMIManePretendUpwardsRegardGovernancer.m new file mode 100644 index 00000000..e5337db3 --- /dev/null +++ b/YuMi/Modules/YMMine/View/DressUp/View/YUMIManePretendUpwardsRegardGovernancer.m @@ -0,0 +1,239 @@ +// +// YMMineDressUpViewController.m +// YUMI +// +// Created by YUMI on 2021/12/15. +// + +#import "YUMIManePretendUpwardsRegardGovernancer.h" +#import +#import +#import +#import +#import "DJDKMIMOMColor.h" +#import "Api+DressUp.h" +#import "NSArray+Safe.h" +#import "ImportpriseAbstractMatrix.h" +#import "YUMIManePretendUpwardsStatementRegardGovernancer.h" +#import "YUMIChamberRegardGovernancer.h" +#import "YUMITissueRegardGovernancer.h" +#import "YUMIManePretendUpwardsIntumesceRegardGovernancer.h" + +@interface YUMIManePretendUpwardsRegardGovernancer () +@property (nonatomic, strong) NSArray *titles; +@property (nonatomic, strong) JXCategoryTitleView *titleView; +@property (nonatomic, strong) JXCategoryListContainerView *contentView; +@property (nonatomic,strong) YUMIManePretendUpwardsStatementRegardGovernancer *intelligencewearRegard; +@property (nonatomic,strong) YUMIManePretendUpwardsStatementRegardGovernancer *automobileRegard; +@property (nonatomic,strong) YUMIManePretendUpwardsStatementRegardGovernancer *materialRegard; +@property (nonatomic, strong) YUMIManePretendUpwardsStatementRegardGovernancer *magnificentRegard; +@property (nonatomic, strong) YUMIManePretendUpwardsIntumesceRegardGovernancer *intumesceRegard; +@property (nonatomic,strong) SDCycleScrollView *cycleTrundleRegard; +@property (nonatomic,copy) NSArray *importpriseStatement; +@end + +@implementation YUMIManePretendUpwardsRegardGovernancer + +- (void)viewDidLoad { + [super viewDidLoad]; + [self requisitionImportpriseSttowardsement]; + [self initSubViews]; + [self initChildLyRestrictions]; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.title = YMLocalizedString(@"YUMI_Mine_Dress_Up_View_Controller_0"); + [self.view addSubview:self.cycleTrundleRegard]; + [self.view addSubview:self.titleView]; + [self.view addSubview:self.contentView]; +} + +- (void)initChildLyRestrictions { + [self.cycleTrundleRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.view); + make.left.mas_equalTo(15); + make.right.mas_equalTo(-15); + make.height.mas_equalTo(100); + }]; + + [self.titleView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.view); + make.height.mas_equalTo(50); + make.top.mas_equalTo(self.cycleTrundleRegard.mas_bottom); + }]; + + [self.contentView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.mas_equalTo(self.view); + make.top.mas_equalTo(self.titleView.mas_bottom); + }]; +} + +- (void)requisitionImportpriseSttowardsement { + [Api dressupOriflammeSttowardsement:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + NSArray * array = [ImportpriseAbstractMatrix mtowardsrixsAboutGarment:data.data]; + if (array.count <= 0) { + [self.cycleTrundleRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(0); + }]; + return; + } + self.importpriseStatement = array; + NSMutableArray * picList = [NSMutableArray array]; + [array enumerateObjectsUsingBlock:^(ImportpriseAbstractMatrix * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if (obj.bannerPic.length > 0) { + [picList addObject:obj.bannerPic]; + } + }]; + self.cycleTrundleRegard.imageURLStringsGroup = picList; + if (array.count > 1) { + [self.cycleTrundleRegard setAutoScroll:YES]; + self.cycleTrundleRegard.autoScrollTimeInterval = 3; + } else { + [self.cycleTrundleRegard setAutoScroll:NO]; + } + } else { + [self.cycleTrundleRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(0); + }]; + } + } type:@"3"]; +} + +#pragma mark - JXCategoryViewDelegate +- (NSInteger)numberOfListsInlistContainerView:(JXCategoryListContainerView *)listContainerView { + return self.titles.count; +} + +- (id)listContainerView:(JXCategoryListContainerView *)listContainerView initListForIndex:(NSInteger)index { + if (index == 0) { + return self.intelligencewearRegard; + } else if(index == 1) { + return self.automobileRegard; + } else if (index == 2) { + return self.materialRegard; + } else if (index == 3) { + return self.magnificentRegard; + } + return self.intumesceRegard; +} + +- (void)categoryView:(JXCategoryBaseView *)categoryView didSelectedItemAtIndex:(NSInteger)index { + + self.navigationController.interactivePopGestureRecognizer.enabled = (index == 0); +} + +#pragma mark - SDCycleScrollViewDelegate +- (void)cycleScrollView:(SDCycleScrollView *)cycleScrollView didSelectItemAtIndex:(NSInteger)index { + if (self.importpriseStatement.count > index) { + ImportpriseAbstractMatrix * info = [self.importpriseStatement secureGroalTowardsIndictowardsrix1:index]; + if (info.skipType == ActivitySkipGenre_Room) { + [YUMIChamberRegardGovernancer unfoildChamber:info.skipUri viewController:self.navigationController]; + } else if(info.skipType == ActivitySkipGenre_Web) { + YUMITissueRegardGovernancer * webVewC = [[YUMITissueRegardGovernancer alloc] init]; + webVewC.url = info.skipUri; + [self.navigationController pushViewController:webVewC animated:YES]; + } + } +} + +#pragma mark - Getters And Setters +- (void)setCurrentIndex:(NSInteger)currentIndex { + if (currentIndex < self.titles.count) { + [self.titleView setDefaultSelectedIndex:currentIndex]; + } +} + +- (JXCategoryTitleView *)titleView { + if (!_titleView) { + _titleView = [[JXCategoryTitleView alloc] init]; + _titleView.delegate = self; + _titleView.titles = self.titles; + _titleView.titleColor = [DJDKMIMOMColor instantEssayPrettify]; + _titleView.titleSelectedColor = [DJDKMIMOMColor mainEssayPrettify]; + _titleView.titleFont = [UIFont fontWithName:@"PingFang-SC-Medium" size:16]; + _titleView.titleSelectedFont = [UIFont fontWithName:@"PingFang-SC-Medium" size:16]; + _titleView.titleLabelAnchorPointStyle = JXCategoryTitleLabelAnchorPointStyleCenter; + _titleView.contentScrollViewClickTransitionAnimationEnabled = NO; + _titleView.defaultSelectedIndex = 0; + _titleView.listContainer = self.contentView; + + JXCategoryIndicatorLineView *burlywoodRegard = [[JXCategoryIndicatorLineView alloc] init]; + burlywoodRegard.indicatorColor = [DJDKMIMOMColor aplictowardsionMainPrettify]; + burlywoodRegard.indicatorWidth = 8.f; + burlywoodRegard.indicatorHeight = 4.f; + burlywoodRegard.indicatorCornerRadius = 2.f; + _titleView.indicators = @[burlywoodRegard]; + } + return _titleView; +} + +- (JXCategoryListContainerView *)contentView { + if (!_contentView) { + _contentView = [[JXCategoryListContainerView alloc] initWithType:JXCategoryListContainerType_ScrollView delegate:self]; + _contentView.scrollView.backgroundColor = [UIColor clearColor]; + _contentView.defaultSelectedIndex = 0; + } + return _contentView; +} + +- (NSArray *)titles { + return @[@"头饰", @"座驾", @"铭牌", @"资料卡", YMLocalizedString(@"YUMI_Mine_Dress_Up_View_Controller_5")]; +} + +- (YUMIManePretendUpwardsStatementRegardGovernancer *)intelligencewearRegard { + if (!_intelligencewearRegard) { + _intelligencewearRegard = [[YUMIManePretendUpwardsStatementRegardGovernancer alloc] init]; + _intelligencewearRegard.type = DressUpStatementGenre_HeadWear; + } + return _intelligencewearRegard; +} + +- (YUMIManePretendUpwardsStatementRegardGovernancer *)automobileRegard { + if (!_automobileRegard) { + _automobileRegard = [[YUMIManePretendUpwardsStatementRegardGovernancer alloc] init]; + _automobileRegard.type = DressUpStatementGenre_Car; + } + return _automobileRegard; +} + +- (YUMIManePretendUpwardsStatementRegardGovernancer *)materialRegard { + if (!_materialRegard) { + _materialRegard = [[YUMIManePretendUpwardsStatementRegardGovernancer alloc] init]; + _materialRegard.type = DressUpStatementGenre_Nameplate; + } + return _materialRegard; +} + +- (YUMIManePretendUpwardsStatementRegardGovernancer *)magnificentRegard { + if (!_magnificentRegard) { + _magnificentRegard = [[YUMIManePretendUpwardsStatementRegardGovernancer alloc] init]; + _magnificentRegard.type = DressUpStatementGenre_Noble; + } + return _magnificentRegard; +} + +- (YUMIManePretendUpwardsIntumesceRegardGovernancer *)intumesceRegard { + if (!_intumesceRegard) { + _intumesceRegard = [[YUMIManePretendUpwardsIntumesceRegardGovernancer alloc] init]; + } + return _intumesceRegard; +} + +- (SDCycleScrollView *)cycleTrundleRegard { + if (!_cycleTrundleRegard) { + _cycleTrundleRegard = [SDCycleScrollView cycleScrollViewWithFrame:CGRectZero delegate:self placeholderImage:nil]; + _cycleTrundleRegard.pageControlAliment = SDCycleScrollViewPageContolAlimentCenter; + _cycleTrundleRegard.currentPageDotColor = [UIColor whiteColor]; + _cycleTrundleRegard.pageDotColor = [UIColor colorWithWhite:1 alpha:0.15]; + _cycleTrundleRegard.backgroundColor = [UIColor colorWithWhite:1 alpha:0.00]; + _cycleTrundleRegard.bannerImageViewContentMode = UIViewContentModeScaleAspectFill; + _cycleTrundleRegard.layer.masksToBounds = YES; + _cycleTrundleRegard.layer.cornerRadius = 12; + } + return _cycleTrundleRegard; +} + + +@end diff --git a/YuMi/Modules/YMMine/View/DressUp/View/YUMIManePretendUpwardsStatementRegardGovernancer.h b/YuMi/Modules/YMMine/View/DressUp/View/YUMIManePretendUpwardsStatementRegardGovernancer.h new file mode 100644 index 00000000..576443a7 --- /dev/null +++ b/YuMi/Modules/YMMine/View/DressUp/View/YUMIManePretendUpwardsStatementRegardGovernancer.h @@ -0,0 +1,24 @@ +// +// YMMineDressUpListViewController.h +// YUMI +// +// Created by YUMI on 2021/12/15. +// + +#import "MvpRegardGovernancer.h" +#import +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSInteger, DressUpStatementGenre) { + DressUpStatementGenre_HeadWear = 1, + DressUpStatementGenre_Car, + DressUpStatementGenre_Nameplate, + DressUpStatementGenre_Noble, + DressUpStatementGenre_Bubble, +}; + +@interface YUMIManePretendUpwardsStatementRegardGovernancer : MvpRegardGovernancer +@property (nonatomic,assign) DressUpStatementGenre type; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/DressUp/View/YUMIManePretendUpwardsStatementRegardGovernancer.m b/YuMi/Modules/YMMine/View/DressUp/View/YUMIManePretendUpwardsStatementRegardGovernancer.m new file mode 100644 index 00000000..60e53d0b --- /dev/null +++ b/YuMi/Modules/YMMine/View/DressUp/View/YUMIManePretendUpwardsStatementRegardGovernancer.m @@ -0,0 +1,228 @@ +// +// YMMineDressUpListViewController.m +// YUMI +// +// Created by YUMI on 2021/12/15. +// + +#import "YUMIManePretendUpwardsStatementRegardGovernancer.h" +#import +#import "YUMIMacroUitls.h" +#import "NSArray+Safe.h" +#import "YUMIManeIntelligencewearTabulationRegardElement.h" +#import "YUMIManeCarTabulationRegardElement.h" +#import "YUMIManeNameplateTabulationRegardElement.h" +#import "YUMIManePretendDispossessTabulationRegardElement.h" +#import "YUMIManeMagnificentSolitaireTabulationRegardElement.h" +#import "YUMIManePretendUpwardsExternalizer.h" +#import "FBCManePretendedCeremony.h" +#import "MagnificentSolitaireMatrix.h" + +@interface YUMIManePretendUpwardsStatementRegardGovernancer () +@property (nonatomic,strong) UITableView *tableView; +@property (nonatomic,strong) NSArray *datasource; +@end + +@implementation YUMIManePretendUpwardsStatementRegardGovernancer + +- (YUMIManePretendUpwardsExternalizer *)producePresimport { + return [[YUMIManePretendUpwardsExternalizer alloc] init]; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initSubViews]; + [self initChildLyRestrictions]; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self.view addSubview:self.tableView]; +} + +- (void)initChildLyRestrictions { + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.view); + }]; +} +#pragma mark - FBCManeNameplateTabulationViweElementRepresendtation +- (void)fBCManeMtowardserialTarbsultowardsionViweElement:(YUMIManeNameplateTabulationRegardElement *)view nameplateId:(NSString *)nameplateId { + [self.presimport utilizeMtowardserial:nameplateId]; +} + +#pragma mark - FBCManeIntelligencewearTabulationViweElementRepresendtation +- (void)fBCManeApexknotTarbsultowardsionViweElement:(YUMIManeIntelligencewearTabulationRegardElement *)view headwearId:(NSString *)headwearId { + [self.presimport utilizeIntelligencer:headwearId]; +} +#pragma mark - FBCManeCarTabulationViweElementRepresendtation +- (void)fBCManeAutomobileTarbsultowardsionViweElement:(YUMIManeCarTabulationRegardElement *)cell carId:(NSString *)carId { + [self.presimport utilizeAutomobile:carId]; +} +#pragma mark - FBCManeMagnificentSolitaireTabulationViweElementRepresendtation +- (void)fBCManeMagnificentSolitaireTarbsultowardsionViweElement:(YUMIManeMagnificentSolitaireTabulationRegardElement *)view nobleCardId:(NSString *)nobleCardId { + [self.presimport consumerMagnificentSolitaire:nobleCardId]; +} + +#pragma mark - FBCManePretendedCeremony +- (void)acquireConsumerApexknotSttowardsementAccomplishment:(NSArray *)array { + self.datasource = array; + [self.tableView reloadData]; +} + +- (void)acquireConsumerAutomobileSttowardsementAccomplishment:(NSArray *)array { + self.datasource = array; + [self.tableView reloadData]; +} + +- (void)acquireConsumerMtowardserialSttowardsementAccomplishment:(NSArray *)array { + self.datasource = array; + [self.tableView reloadData]; +} + +- (void)acquireConsumerMagnificentSolitaireSttowardsementAccomplishment:(NSArray *)array { + self.datasource = array; + [self.tableView reloadData]; +} + +- (void)utilizeApexknotAccomplishment:(NSString *)headWearId { + [self.presimport acquireConsumerApexknotSttowardsement]; + [self EvidenceAccomplishmentToast:headWearId.integerValue == 0 ? @"取消使用头饰成功" : YMLocalizedString(@"YUMI_Mine_Dress_Up_List_View_Controller_1")]; + +} + +- (void)utilizeAutomobileAccomplishment:(NSString *)carId { + [self.presimport acquireConsumerAutomobileSttowardsement]; + [self EvidenceAccomplishmentToast:carId.integerValue == 0 ? @"取消使用座驾成功" : YMLocalizedString(@"YUMI_Mine_Dress_Up_List_View_Controller_3")]; +} + +- (void)utilizeMtowardserialAccomplishment:(NSString *)nameplateId { + [self.presimport acquireConsumerMtowardserialSttowardsement]; + [self EvidenceAccomplishmentToast:nameplateId.integerValue == 0 ? @"取消使用铭牌成功" : YMLocalizedString(@"YUMI_Mine_Dress_Up_List_View_Controller_5")]; +} + +- (void)consumerMagnificentSolitaireAccomplishment:(NSString *)nobleCardId { + [self EvidenceAccomplishmentToast:nobleCardId.integerValue == 0 ? @"取消使用资料卡成功" : YMLocalizedString(@"YUMI_Mine_Dress_Up_List_View_Controller_7")]; + if (nobleCardId.integerValue == 0) { + for (MagnificentSolitaireMatrix *model in self.datasource) { + model.used = NO; + } + } else { + for (MagnificentSolitaireMatrix *model in self.datasource) { + if ([model.cardId isEqualToString:nobleCardId]) { + model.used = YES; + } else { + model.used = NO; + } + } + } + [self.tableView reloadData]; +} + +#pragma mark - JXCategoryListContentViewDelegate +- (UIView *)listView { + return self.view; +} + +#pragma mark - UITableViewDelegate And UITableViewDataSource +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.datasource.count > 0 ? self.datasource.count : 1; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + if (self.type == DressUpStatementGenre_Noble) { + return self.datasource.count > 0 ? 236 : (KScreenHeight - kNavigationHeight - 100 -50); + } else if (self.type == DressUpStatementGenre_Nameplate) { + return self.datasource.count > 0 ? 76 : (KScreenHeight - kNavigationHeight - 100 -50); + } else { + return self.datasource.count > 0 ? 120 : (KScreenHeight - kNavigationHeight - 100 -50); + } +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + if (self.datasource.count > 0) { + if (self.type == DressUpStatementGenre_HeadWear) { + YUMIManeIntelligencewearTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIManeIntelligencewearTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIManeIntelligencewearTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIManeIntelligencewearTabulationRegardElement class])]; + } + cell.intelligencewearMatrix = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + cell.delegate = self; + return cell; + } else if(self.type == DressUpStatementGenre_Car) { + YUMIManeCarTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIManeCarTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIManeCarTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIManeCarTabulationRegardElement class])]; + } + cell.automobileAbstract = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + cell.delegate = self; + return cell; + } else if (self.type == DressUpStatementGenre_Noble) { + YUMIManeMagnificentSolitaireTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIManeMagnificentSolitaireTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIManeMagnificentSolitaireTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIManeMagnificentSolitaireTabulationRegardElement class])]; + } + cell.magnificentSolitaireMatrix = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + cell.delegate = self; + return cell; + } else { + YUMIManeNameplateTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIManeNameplateTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIManeNameplateTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIManeNameplateTabulationRegardElement class])]; + } + cell.materialMatrix = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + cell.delegate = self; + return cell; + } + } + + YUMIManePretendDispossessTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIManePretendDispossessTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIManePretendDispossessTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIManePretendDispossessTabulationRegardElement class])]; + } + cell.emptyTitle = self.type == DressUpStatementGenre_HeadWear ? @"亲爱的用户,你还没有头饰噢!" : self.type == DressUpStatementGenre_Car ? @"亲爱的用户,你还没有座驾噢!" : @"亲爱的用户,你还没有铭牌噢!"; + return cell; +} + +#pragma mark - Getters And Setters +- (void)setType:(DressUpStatementGenre)type { + _type = type; + switch (type) { + case DressUpStatementGenre_HeadWear: + [self.presimport acquireConsumerApexknotSttowardsement]; + break; + case DressUpStatementGenre_Car: + [self.presimport acquireConsumerAutomobileSttowardsement]; + break; + case DressUpStatementGenre_Nameplate: + [self.presimport acquireConsumerMtowardserialSttowardsement]; + break; + case DressUpStatementGenre_Noble: + [self.presimport acquireConsumerMagnificentSolitaireSttowardsement]; + break; + default: + break; + } +} +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.tableFooterView = [UIView new]; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.backgroundColor = [UIColor clearColor]; + if (@available(iOS 11.0, *)) { + _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + _tableView.contentInset = UIEdgeInsetsMake(0, 0, kSafeAreaBottomHeight, 0); + [_tableView registerClass:[YUMIManeNameplateTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIManeNameplateTabulationRegardElement class])]; + [_tableView registerClass:[YUMIManeCarTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIManeCarTabulationRegardElement class])]; + [_tableView registerClass:[YUMIManeIntelligencewearTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIManeIntelligencewearTabulationRegardElement class])]; + [_tableView registerClass:[YUMIManeMagnificentSolitaireTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIManeMagnificentSolitaireTabulationRegardElement class])]; + [_tableView registerClass:[YUMIManePretendDispossessTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIManePretendDispossessTabulationRegardElement class])]; + } + return _tableView; +} + + +@end diff --git a/YuMi/Modules/YMMine/View/DressUp/View/YUMIPretendHuntforRegardGovernancer.h b/YuMi/Modules/YMMine/View/DressUp/View/YUMIPretendHuntforRegardGovernancer.h new file mode 100644 index 00000000..2173cddd --- /dev/null +++ b/YuMi/Modules/YMMine/View/DressUp/View/YUMIPretendHuntforRegardGovernancer.h @@ -0,0 +1,19 @@ +// +// YMDressSearchViewController.h +// YUMI +// +// Created by YUMI on 2022/7/29. +// + +#import "MvpRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIPretendHuntforRegardGovernancer : MvpRegardGovernancer + +@property (nonatomic, assign) NSInteger dressType; +@property (nonatomic, copy) NSString *dressId; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/DressUp/View/YUMIPretendHuntforRegardGovernancer.m b/YuMi/Modules/YMMine/View/DressUp/View/YUMIPretendHuntforRegardGovernancer.m new file mode 100644 index 00000000..6e63cd9a --- /dev/null +++ b/YuMi/Modules/YMMine/View/DressUp/View/YUMIPretendHuntforRegardGovernancer.m @@ -0,0 +1,175 @@ +// +// YMDressSearchViewController.m +// YUMI +// +// Created by YUMI on 2022/7/29. +// + +#import "YUMIPretendHuntforRegardGovernancer.h" +#import +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" +#import "Api+DressUp.h" +#import "NSArray+Safe.h" +#import "ResidenceHuntforConsequentMatrix.h" +#import "YUMIPretendProcurementHuntforTabulationRegardElement.h" +#import "YUMIResidenceHuntforNevRegard.h" +#import "YUMIResidenceHuntforExternalizer.h" +#import "FBCResidenceHuntforCeremony.h" +#import "YUMIChamberRegardGovernancer.h" +#import "YUMIManeConsumerAbstractRegardGovernancer.h" +@interface YUMIPretendHuntforRegardGovernancer () + +@property (nonatomic,strong) YUMIResidenceHuntforNevRegard *huntforRegard; +@property (nonatomic,strong) UITableView *tableView; +@property (nonatomic,strong) NSArray *datasource; + +@end + +@implementation YUMIPretendHuntforRegardGovernancer + +- (YUMIResidenceHuntforExternalizer *)producePresimport { + return [[YUMIResidenceHuntforExternalizer alloc] init]; +} + +- (BOOL)isVeiledNevObstacle { + return YES; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initSubViews]; + [self initChildLyRestrictions]; +} + +- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { + [self.view endEditing:YES]; +} + +#pragma mark - Public Method +- (void)searchText:(NSString *)text { + NSString * type = @"2"; + [self.presimport huntforChamberSttowardsement:text type:type]; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self.view addSubview:self.huntforRegard]; + [self.view addSubview:self.tableView]; +} + +- (void)initChildLyRestrictions { + [self.huntforRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self.view); + make.height.mas_equalTo(kNavigationHeight); + }]; + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.bottom.right.mas_equalTo(self.view); + make.top.mas_equalTo(self.huntforRegard.mas_bottom); + }]; +} + +#pragma mark - UITableViewDelegate And UITableViewDataSource +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + return 74; +} + +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.datasource.count; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + YUMIPretendProcurementHuntforTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIPretendProcurementHuntforTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIPretendProcurementHuntforTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIPretendProcurementHuntforTabulationRegardElement class])]; + } + ResidenceHuntforConsequentMatrix * resultModel = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + cell.data = resultModel; + cell.delegate = self; + cell.selectionStyle = UITableViewCellSelectionStyleNone; + return cell; +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + [tableView deselectRowAtIndexPath:indexPath animated:YES]; +} + +#pragma mark - FBCPretendProcurementHuntforTabulationViweElementRepresendtation +- (void)yUMIPretconcludeProcurementHuntforTarbsultowardsionViweElementDischargeBtutonTicktack:(YUMIPretendProcurementHuntforTabulationRegardElement *)cell { + NSIndexPath *indexPath = [self.tableView indexPathForCell:cell]; + ResidenceHuntforConsequentMatrix * resultModel = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + [self EvidenceChambering]; + [Api requisitionDischargePretconclude:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + [self brakeHUD]; + if (code == 200) { + [self EvidenceAccomplishmentToast:YMLocalizedString(@"YUMI_Dress_Search_View_Controller_0")]; + } else { + [self EvidenceMistakeToast:msg]; + } + } id:self.dressId targetUid:resultModel.uid]; +} + +#pragma mark - FBCResidenceHuntforCeremony +- (void)huntforChamberAccomplishment:(NSArray *)data type:(nonnull NSString *)type { + self.datasource = data; + [self.tableView reloadData]; +} + +#pragma mark - +- (UIView *)listView { + return self.view; +} + +#pragma mark - UITextFieldDelegate +- (BOOL)textFieldShouldReturn:(UITextField *)essayUniverse { + if (essayUniverse.text.length > 0) { + [essayUniverse resignFirstResponder]; + [self searchText:essayUniverse.text]; + } else { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_Dress_Search_View_Controller_1")]; + } + return YES; +} + +#pragma mark -FBCResidenceHuntforNevRegardRepresendtation +- (void)fBCHoutilizeHuntforNevRegard:(YUMIResidenceHuntforNevRegard *)view didClickSearch:(UIButton *)sender { + if (view.searchTextField.text.length > 0) { + [view.searchTextField resignFirstResponder]; + [self searchText:view.searchTextField.text]; + } else { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_Dress_Search_View_Controller_2")]; + } +} + +- (void)fBCHoutilizeHuntforNevRegard:(YUMIResidenceHuntforNevRegard *)view didClickBack:(UIButton *)sender { + [view.searchTextField resignFirstResponder]; + [self.navigationController popViewControllerAnimated:YES]; +} + +#pragma mark - Getters And Setters +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.tableHeaderView = [UIView new]; + _tableView.tableFooterView = [UIView new]; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.backgroundColor = [UIColor clearColor]; + if (@available(iOS 11.0, *)) { + _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + [_tableView registerClass:[YUMIPretendProcurementHuntforTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIPretendProcurementHuntforTabulationRegardElement class])]; + } + return _tableView; +} + +- (YUMIResidenceHuntforNevRegard *)huntforRegard { + if (!_huntforRegard) { + _huntforRegard = [[YUMIResidenceHuntforNevRegard alloc] init]; + _huntforRegard.delegate = self; + _huntforRegard.searchTextField.delegate = self; + } + return _huntforRegard; +} +@end diff --git a/YuMi/Modules/YMMine/View/DressUp/View/YUMIPretendUpwardsProcurementRegardGovernancer.h b/YuMi/Modules/YMMine/View/DressUp/View/YUMIPretendUpwardsProcurementRegardGovernancer.h new file mode 100644 index 00000000..1de58653 --- /dev/null +++ b/YuMi/Modules/YMMine/View/DressUp/View/YUMIPretendUpwardsProcurementRegardGovernancer.h @@ -0,0 +1,18 @@ +// +// YMDressUpShopViewController.h +// YUMI +// +// Created by YUMI on 2022/7/28. +// + +#import "BaseRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIPretendUpwardsProcurementRegardGovernancer : BaseRegardGovernancer + +@property (nonatomic,assign) NSInteger currentIndex; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/DressUp/View/YUMIPretendUpwardsProcurementRegardGovernancer.m b/YuMi/Modules/YMMine/View/DressUp/View/YUMIPretendUpwardsProcurementRegardGovernancer.m new file mode 100644 index 00000000..1f0c0404 --- /dev/null +++ b/YuMi/Modules/YMMine/View/DressUp/View/YUMIPretendUpwardsProcurementRegardGovernancer.m @@ -0,0 +1,367 @@ +// +// YMDressUpShopViewController.m +// YUMI +// +// Created by YUMI on 2022/7/28. +// + +#import "YUMIPretendUpwardsProcurementRegardGovernancer.h" +#import +#import +#import +#import +#import "DJDKMIMOMColor.h" +#import "Api+DressUp.h" +#import "YUMIMacroUitls.h" +#import "UIImage+Utils.h" +#import "AccountAbstractStorage.h" +#import "NSArray+Safe.h" +#import "ImportpriseAbstractMatrix.h" +#import "RamparatetAbstractMatrix.h" +#import "YUMIPretendUpwardsProcurementStatementRegardGovernancer.h" +#import "YUMIChamberRegardGovernancer.h" +#import "YUMITissueRegardGovernancer.h" +#import "YUMIManePretendUpwardsRegardGovernancer.h" +#import "YUMIPretendUpwardsProcurementSolitaireRegardGovernancer.h" +#import "YUMIManeReindictRegardGovernancer.h" +#import "YUMIIAPReindictRegardGovernancer.h" + +@interface YUMIPretendUpwardsProcurementRegardGovernancer () + +@property (nonatomic, strong) NSArray *titles; +@property (nonatomic, strong) JXCategoryTitleView *titleView; +@property (nonatomic, strong) JXCategoryListContainerView *contentView; +@property (nonatomic,strong) YUMIPretendUpwardsProcurementStatementRegardGovernancer *intelligencewearRegard; +@property (nonatomic,strong) YUMIPretendUpwardsProcurementStatementRegardGovernancer *automobileRegard; +@property (nonatomic,strong) YUMIPretendUpwardsProcurementStatementRegardGovernancer *materialRegard; +@property (nonatomic, strong) YUMIPretendUpwardsProcurementSolitaireRegardGovernancer *magnificentRegard; +@property (nonatomic, strong) YUMIPretendUpwardsProcurementStatementRegardGovernancer *intumesceRegard; +@property (nonatomic,strong) SDCycleScrollView *cycleTrundleRegard; +@property (nonatomic,copy) NSArray *importpriseStatement; + +@property (nonatomic, strong) UIView *mainView; +@property (nonatomic, strong) UILabel *titleLabel; +@property (nonatomic, strong) UIImageView *bWSttawberryIndicateRegard; +@property (nonatomic, strong) UILabel *bWSttawberrySequencignation; +@property (nonatomic, strong) UIButton *dischargeBtuton; + +@end + +@implementation YUMIPretendUpwardsProcurementRegardGovernancer + +- (void)viewDidLoad { + [super viewDidLoad]; + [self requisitionImportpriseSttowardsement]; + [self initSubViews]; + [self initChildLyRestrictions]; + [self accelertowardseBreeadcrumbProvisionAboutChampions:@[YMLocalizedString(@"YUMI_Dress_Up_Shop_View_Controller_0")] titleColor:[DJDKMIMOMColor essayTertiusPrettify] isContrary:NO target:self action:@selector(rectifyBtutonPerformance:) tags:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(acquirePretconcludeAccomplishment) name:@"buyDressSuccessNoti" object:nil]; +} + +- (void)viewWillAppear:(BOOL)animated { + [super viewWillAppear:animated]; + [self requisitionPocketbook]; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.title = YMLocalizedString(@"YUMI_Dress_Up_Shop_View_Controller_1"); + [self.view addSubview:self.cycleTrundleRegard]; + [self.view addSubview:self.titleView]; + [self.view addSubview:self.contentView]; + [self.view addSubview:self.mainView]; + [self.mainView addSubview:self.titleLabel]; + [self.mainView addSubview:self.bWSttawberryIndicateRegard]; + [self.mainView addSubview:self.bWSttawberrySequencignation]; + [self.mainView addSubview:self.dischargeBtuton]; +} + +- (void)initChildLyRestrictions { + [self.cycleTrundleRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.view); + make.left.mas_equalTo(15); + make.right.mas_equalTo(-15); + make.height.mas_equalTo(100); + }]; + + [self.titleView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.view); + make.height.mas_equalTo(50); + make.top.mas_equalTo(self.cycleTrundleRegard.mas_bottom); + }]; + + [self.contentView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.view); + make.bottom.mas_equalTo(self.mainView.mas_top); + make.top.mas_equalTo(self.titleView.mas_bottom); + }]; + + [self.mainView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.mas_equalTo(self.view); + make.height.mas_equalTo(iPhoneXSeries ? 48+34 : 48); + }]; + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.bWSttawberryIndicateRegard.mas_right).mas_offset(4); + make.centerY.mas_equalTo(self.bWSttawberryIndicateRegard); + make.height.mas_equalTo(17); + }]; + [self.bWSttawberryIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(15); + make.size.mas_equalTo(CGSizeMake(15, 15)); + make.top.mas_equalTo(18); + }]; + [self.bWSttawberrySequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.titleLabel); + make.left.mas_equalTo(self.titleLabel.mas_right).mas_offset(4); + make.height.mas_equalTo(22); + }]; + [self.dischargeBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(72, 24)); + make.right.mas_equalTo(-15); + make.centerY.mas_equalTo(self.titleLabel); + }]; +} + +#pragma mark - notification +- (void)acquirePretconcludeAccomplishment { + [self requisitionPocketbook]; +} + +- (void)requisitionPocketbook { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NSString * ticket = [AccountAbstractStorage instance].acquireTicket; + [Api acquireConsumerPocketbookAbstract:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + RamparatetAbstractMatrix * model = [RamparatetAbstractMatrix mtowardsrixAboutImpactbasket:data.data]; + self.bWSttawberrySequencignation.text = model.diamonds; + } + } uid:uid ticket:ticket]; +} + +- (void)requisitionImportpriseSttowardsement { + [Api dressupOriflammeSttowardsement:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + NSArray * array = [ImportpriseAbstractMatrix mtowardsrixsAboutGarment:data.data]; + if (array.count <= 0) { + [self.cycleTrundleRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(0); + }]; + return; + } + self.importpriseStatement = array; + NSMutableArray * picList = [NSMutableArray array]; + [array enumerateObjectsUsingBlock:^(ImportpriseAbstractMatrix * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if (obj.bannerPic.length > 0) { + [picList addObject:obj.bannerPic]; + } + }]; + self.cycleTrundleRegard.imageURLStringsGroup = picList; + if (array.count > 1) { + [self.cycleTrundleRegard setAutoScroll:YES]; + self.cycleTrundleRegard.autoScrollTimeInterval = 3; + } else { + [self.cycleTrundleRegard setAutoScroll:NO]; + } + } else { + [self.cycleTrundleRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(0); + }]; + } + } type:@"3"]; +} + +- (void)rectifyBtutonPerformance:(UIButton *)sender { + YUMIManePretendUpwardsRegardGovernancer *vc = [[YUMIManePretendUpwardsRegardGovernancer alloc] init]; + [self.navigationController pushViewController:vc animated:YES]; +} + +#pragma mark - JXCategoryViewDelegate +- (NSInteger)numberOfListsInlistContainerView:(JXCategoryListContainerView *)listContainerView { + return self.titles.count; +} + +- (id)listContainerView:(JXCategoryListContainerView *)listContainerView initListForIndex:(NSInteger)index { + if (index == 0) { + return self.intelligencewearRegard; + } else if(index == 1) { + return self.automobileRegard; + } else if (index == 2) { + return self.materialRegard; + } else if (index == 3) { + return self.magnificentRegard; + } + return self.intumesceRegard; +} + +- (void)categoryView:(JXCategoryBaseView *)categoryView didSelectedItemAtIndex:(NSInteger)index { + + self.navigationController.interactivePopGestureRecognizer.enabled = (index == 0); +} + +#pragma mark - SDCycleScrollViewDelegate +- (void)cycleScrollView:(SDCycleScrollView *)cycleScrollView didSelectItemAtIndex:(NSInteger)index { + if (self.importpriseStatement.count > index) { + ImportpriseAbstractMatrix * info = [self.importpriseStatement secureGroalTowardsIndictowardsrix1:index]; + if (info.skipType == ActivitySkipGenre_Room) { + [YUMIChamberRegardGovernancer unfoildChamber:info.skipUri viewController:self.navigationController]; + } else if(info.skipType == ActivitySkipGenre_Web) { + YUMITissueRegardGovernancer * webVewC = [[YUMITissueRegardGovernancer alloc] init]; + webVewC.url = info.skipUri; + [self.navigationController pushViewController:webVewC animated:YES]; + } + } +} + +- (void)reindictBtutonPerformance:(UIButton *)sender { + YUMIIAPReindictRegardGovernancer * rechargeVC = [[YUMIIAPReindictRegardGovernancer alloc] init]; + [self.navigationController pushViewController:rechargeVC animated:YES]; +} + +#pragma mark - Getters And Setters +- (void)setCurrentIndex:(NSInteger)currentIndex { + if (currentIndex < self.titles.count) { + [self.titleView setDefaultSelectedIndex:currentIndex]; + } +} + +- (JXCategoryTitleView *)titleView { + if (!_titleView) { + _titleView = [[JXCategoryTitleView alloc] init]; + _titleView.delegate = self; + _titleView.titles = self.titles; + _titleView.titleColor = [DJDKMIMOMColor instantEssayPrettify]; + _titleView.titleSelectedColor = [DJDKMIMOMColor mainEssayPrettify]; + _titleView.titleFont = [UIFont fontWithName:@"PingFang-SC-Medium" size:16]; + _titleView.titleSelectedFont = [UIFont fontWithName:@"PingFang-SC-Medium" size:16]; + _titleView.titleLabelAnchorPointStyle = JXCategoryTitleLabelAnchorPointStyleCenter; + _titleView.contentScrollViewClickTransitionAnimationEnabled = NO; + _titleView.defaultSelectedIndex = 0; + _titleView.listContainer = self.contentView; + + JXCategoryIndicatorLineView *burlywoodRegard = [[JXCategoryIndicatorLineView alloc] init]; + burlywoodRegard.indicatorColor = [DJDKMIMOMColor aplictowardsionMainPrettify]; + burlywoodRegard.indicatorWidth = 8.f; + burlywoodRegard.indicatorHeight = 4.f; + burlywoodRegard.indicatorCornerRadius = 2.f; + _titleView.indicators = @[burlywoodRegard]; + } + return _titleView; +} + +- (JXCategoryListContainerView *)contentView { + if (!_contentView) { + _contentView = [[JXCategoryListContainerView alloc] initWithType:JXCategoryListContainerType_ScrollView delegate:self]; + _contentView.scrollView.backgroundColor = [UIColor clearColor]; + _contentView.defaultSelectedIndex = 0; + } + return _contentView; +} + +- (NSArray *)titles { + return @[@"头饰", @"座驾", @"铭牌", @"资料卡", YMLocalizedString(@"YUMI_Dress_Up_Shop_View_Controller_6")]; +} + +- (YUMIPretendUpwardsProcurementStatementRegardGovernancer *)intelligencewearRegard { + if (!_intelligencewearRegard) { + _intelligencewearRegard = [[YUMIPretendUpwardsProcurementStatementRegardGovernancer alloc] init]; + _intelligencewearRegard.type = DressUpShopStatementGenre_HeadWear; + } + return _intelligencewearRegard; +} + +- (YUMIPretendUpwardsProcurementStatementRegardGovernancer *)automobileRegard { + if (!_automobileRegard) { + _automobileRegard = [[YUMIPretendUpwardsProcurementStatementRegardGovernancer alloc] init]; + _automobileRegard.type = DressUpShopStatementGenre_Car; + } + return _automobileRegard; +} + +- (YUMIPretendUpwardsProcurementStatementRegardGovernancer *)materialRegard { + if (!_materialRegard) { + _materialRegard = [[YUMIPretendUpwardsProcurementStatementRegardGovernancer alloc] init]; + _materialRegard.type = DressUpShopStatementGenre_Nameplate; + } + return _materialRegard; +} + +- (YUMIPretendUpwardsProcurementSolitaireRegardGovernancer *)magnificentRegard { + if (!_magnificentRegard) { + _magnificentRegard = [[YUMIPretendUpwardsProcurementSolitaireRegardGovernancer alloc] init]; + _magnificentRegard.type = DressUpShopStatementGenre_Noble; + } + return _magnificentRegard; +} + +- (YUMIPretendUpwardsProcurementStatementRegardGovernancer *)intumesceRegard { + if (!_intumesceRegard) { + _intumesceRegard = [[YUMIPretendUpwardsProcurementStatementRegardGovernancer alloc] init]; + _intumesceRegard.type = DressUpShopStatementGenre_Bubble; + } + return _intumesceRegard; +} + +- (SDCycleScrollView *)cycleTrundleRegard { + if (!_cycleTrundleRegard) { + _cycleTrundleRegard = [SDCycleScrollView cycleScrollViewWithFrame:CGRectZero delegate:self placeholderImage:nil]; + _cycleTrundleRegard.pageControlAliment = SDCycleScrollViewPageContolAlimentCenter; + _cycleTrundleRegard.currentPageDotColor = [UIColor whiteColor]; + _cycleTrundleRegard.pageDotColor = [UIColor colorWithWhite:1 alpha:0.15]; + _cycleTrundleRegard.backgroundColor = [UIColor colorWithWhite:1 alpha:0.00]; + _cycleTrundleRegard.bannerImageViewContentMode = UIViewContentModeScaleAspectFill; + _cycleTrundleRegard.layer.masksToBounds = YES; + _cycleTrundleRegard.layer.cornerRadius = 12; + } + return _cycleTrundleRegard; +} + +- (UIView *)mainView { + if (!_mainView) { + _mainView = [[UIView alloc] init]; + _mainView.backgroundColor = [UIColor whiteColor]; + } + return _mainView; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.font = [UIFont systemFontOfSize:12 weight:UIFontWeightBold]; + _titleLabel.textColor = [DJDKMIMOMColor essayTertiusPrettify]; + _titleLabel.text = YMLocalizedString(@"YUMI_Dress_Up_Shop_View_Controller_7"); + } + return _titleLabel; +} + +- (UIImageView *)bWSttawberryIndicateRegard { + if (!_bWSttawberryIndicateRegard) { + _bWSttawberryIndicateRegard = [[UIImageView alloc] init]; + _bWSttawberryIndicateRegard.image = [UIImage imageNamed:@"yumi_same_diamond"]; + } + return _bWSttawberryIndicateRegard; +} + +- (UILabel *)bWSttawberrySequencignation { + if (!_bWSttawberrySequencignation) { + _bWSttawberrySequencignation = [[UILabel alloc] init]; + _bWSttawberrySequencignation.font = [UIFont systemFontOfSize:16 weight:UIFontWeightBold]; + _bWSttawberrySequencignation.textColor = UIColorFromRGB(0xFFBC51); + } + return _bWSttawberrySequencignation; +} + +- (UIButton *)dischargeBtuton { + if (!_dischargeBtuton) { + _dischargeBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_dischargeBtuton setTitle:YMLocalizedString(@"YUMI_Dress_Up_Shop_View_Controller_8") forState:UIControlStateNormal]; + [_dischargeBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + [_dischargeBtuton addTarget:self action:@selector(reindictBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + _dischargeBtuton.layer.masksToBounds = YES; + _dischargeBtuton.layer.cornerRadius = 24/2; + _dischargeBtuton.titleLabel.font = [UIFont systemFontOfSize:12]; + [_dischargeBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + } + return _dischargeBtuton; +} + +@end diff --git a/YuMi/Modules/YMMine/View/DressUp/View/YUMIPretendUpwardsProcurementSolitaireRegardGovernancer.h b/YuMi/Modules/YMMine/View/DressUp/View/YUMIPretendUpwardsProcurementSolitaireRegardGovernancer.h new file mode 100644 index 00000000..0f8d001e --- /dev/null +++ b/YuMi/Modules/YMMine/View/DressUp/View/YUMIPretendUpwardsProcurementSolitaireRegardGovernancer.h @@ -0,0 +1,20 @@ +// +// YMDressUpShopCardViewController.h +// YUMI +// +// Created by YUMI on 2022/7/29. +// + +#import "MvpRegardGovernancer.h" +#import +#import "FBCPretendedProcurementCeremony.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIPretendUpwardsProcurementSolitaireRegardGovernancer : MvpRegardGovernancer + +@property (nonatomic,assign) DressUpShopStatementGenre type; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/DressUp/View/YUMIPretendUpwardsProcurementSolitaireRegardGovernancer.m b/YuMi/Modules/YMMine/View/DressUp/View/YUMIPretendUpwardsProcurementSolitaireRegardGovernancer.m new file mode 100644 index 00000000..e76ecc9f --- /dev/null +++ b/YuMi/Modules/YMMine/View/DressUp/View/YUMIPretendUpwardsProcurementSolitaireRegardGovernancer.m @@ -0,0 +1,181 @@ +// +// YMDressUpShopCardViewController.m +// YUMI +// +// Created by YUMI on 2022/7/29. +// + +#import "YUMIPretendUpwardsProcurementSolitaireRegardGovernancer.h" +#import +#import "YUMIMacroUitls.h" +#import "NSArray+Safe.h" +#import "YUMIManePretendDispossessTabulationRegardElement.h" +#import "YUMIPretendUpwardsProcurementSolitaireTabulationRegardElement.h" +#import "YUMIPretendHuntforRegardGovernancer.h" +#import "YUMIPretendUpwardsProcurementExternalizer.h" +#import "MagnificentSolitaireMatrix.h" + +@interface YUMIPretendUpwardsProcurementSolitaireRegardGovernancer () + +@property (nonatomic,strong) UITableView *tableView; +@property (nonatomic,strong) NSArray *datasource; + +@end + +@implementation YUMIPretendUpwardsProcurementSolitaireRegardGovernancer + +- (YUMIPretendUpwardsProcurementExternalizer *)producePresimport { + return [[YUMIPretendUpwardsProcurementExternalizer alloc] init]; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initSubViews]; + [self initChildLyRestrictions]; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self.view addSubview:self.tableView]; +} + +- (void)initChildLyRestrictions { + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.view); + }]; +} +#pragma mark - FBCPretendedProcurementSolitaireTabulationViweElementRepresendtation +- (void)yUMIPretconcludeedProcurementSolitaireTarbsultowardsionViweElementDischargePretconclude:(YUMIPretendUpwardsProcurementSolitaireTabulationRegardElement *)view dressId:(NSString *)dressId { + YUMIPretendHuntforRegardGovernancer *vc = [[YUMIPretendHuntforRegardGovernancer alloc] init]; + vc.dressType = self.type; + vc.dressId = dressId; + [self.navigationController pushViewController:vc animated:YES]; +} + +- (void)yUMIPretconcludeedProcurementSolitaireTarbsultowardsionViweElementAcquirePretconclude:(YUMIPretendUpwardsProcurementSolitaireTabulationRegardElement *)view dressId:(NSString *)dressId { + [self.presimport acquirePretconcludeed:self.type dressId:dressId]; +} + +#pragma mark - FBCManePretendedCeremony +- (void)acquireProcurementSttowardsementAccomplishment:(NSArray *)array type:(DressUpShopStatementGenre)type { + if (type == self.type) { + self.datasource = array; + [self.tableView reloadData]; + } +} + +- (void)acquireProcurementPretconcludeAccomplishmentAboutGenre:(DressUpShopStatementGenre)type { + if (type == self.type) { + [self EvidenceAccomplishmentToast:YMLocalizedString(@"YUMI_Dress_Up_Shop_Card_View_Controller_0")]; + [[NSNotificationCenter defaultCenter] postNotificationName:@"buyDressSuccessNoti" object:nil]; + } +} + +- (void)acquireConsumerApexknotSttowardsementAccomplishment:(NSArray *)array { + self.datasource = array; + [self.tableView reloadData]; +} + +- (void)acquireConsumerAutomobileSttowardsementAccomplishment:(NSArray *)array { + self.datasource = array; + [self.tableView reloadData]; +} + +- (void)acquireConsumerMtowardserialSttowardsementAccomplishment:(NSArray *)array { + self.datasource = array; + [self.tableView reloadData]; +} + +- (void)acquireConsumerMagnificentSolitaireSttowardsementAccomplishment:(NSArray *)array { + self.datasource = array; + [self.tableView reloadData]; +} + +- (void)utilizeApexknotAccomplishment:(NSString *)headWearId { + [self EvidenceAccomplishmentToast:headWearId.integerValue == 0 ? @"取消使用头饰成功" : YMLocalizedString(@"YUMI_Dress_Up_Shop_Card_View_Controller_2")]; + +} + +- (void)utilizeAutomobileAccomplishment:(NSString *)carId { + [self EvidenceAccomplishmentToast:carId.integerValue == 0 ? @"取消使用座驾成功" : YMLocalizedString(@"YUMI_Dress_Up_Shop_Card_View_Controller_4")]; +} + +- (void)utilizeMtowardserialAccomplishment:(NSString *)nameplateId { + [self EvidenceAccomplishmentToast:nameplateId.integerValue == 0 ? @"取消使用铭牌成功" : YMLocalizedString(@"YUMI_Dress_Up_Shop_Card_View_Controller_6")]; +} + +- (void)consumerMagnificentSolitaireAccomplishment:(NSString *)nobleCardId { + [self EvidenceAccomplishmentToast:nobleCardId.integerValue == 0 ? @"取消使用资料卡成功" : YMLocalizedString(@"YUMI_Dress_Up_Shop_Card_View_Controller_8")]; + if (nobleCardId.integerValue == 0) { + for (MagnificentSolitaireMatrix *model in self.datasource) { + model.used = NO; + } + } else { + for (MagnificentSolitaireMatrix *model in self.datasource) { + if ([model.cardId isEqualToString:nobleCardId]) { + model.used = YES; + } else { + model.used = NO; + } + } + } + [self.tableView reloadData]; +} + +#pragma mark - JXCategoryListContentViewDelegate +- (UIView *)listView { + return self.view; +} + +#pragma mark - UITableViewDelegate And UITableViewDataSource +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.datasource.count > 0 ? self.datasource.count : 1; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + return self.datasource.count > 0 ? 280 : (KScreenHeight - kNavigationHeight - 100 -50); +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + if (self.datasource.count > 0) { + YUMIPretendUpwardsProcurementSolitaireTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIPretendUpwardsProcurementSolitaireTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIPretendUpwardsProcurementSolitaireTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIPretendUpwardsProcurementSolitaireTabulationRegardElement class])]; + } + cell.magnificentSolitaireMatrix = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + cell.delegate = self; + return cell; + } + YUMIManePretendDispossessTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIManePretendDispossessTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIManePretendDispossessTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIManePretendDispossessTabulationRegardElement class])]; + } + cell.emptyTitle = YMLocalizedString(@"YUMI_Dress_Up_Shop_Card_View_Controller_9"); + return cell; +} + +#pragma mark - Getters And Setters +- (void)setType:(DressUpShopStatementGenre)type { + _type = type; + [self.presimport acquirePretconcludeedProcurementSttowardsement:type]; +} + +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.tableFooterView = [UIView new]; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.backgroundColor = [UIColor clearColor]; + if (@available(iOS 11.0, *)) { + _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + _tableView.contentInset = UIEdgeInsetsMake(0, 0, kSafeAreaBottomHeight, 0); + [_tableView registerClass:[YUMIPretendUpwardsProcurementSolitaireTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIPretendUpwardsProcurementSolitaireTabulationRegardElement class])]; + [_tableView registerClass:[YUMIManePretendDispossessTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIManePretendDispossessTabulationRegardElement class])]; + } + return _tableView; +} + +@end diff --git a/YuMi/Modules/YMMine/View/DressUp/View/YUMIPretendUpwardsProcurementStatementRegardGovernancer.h b/YuMi/Modules/YMMine/View/DressUp/View/YUMIPretendUpwardsProcurementStatementRegardGovernancer.h new file mode 100644 index 00000000..ad15f336 --- /dev/null +++ b/YuMi/Modules/YMMine/View/DressUp/View/YUMIPretendUpwardsProcurementStatementRegardGovernancer.h @@ -0,0 +1,20 @@ +// +// YMDressUpShopListViewController.h +// YUMI +// +// Created by YUMI on 2022/7/28. +// + +#import "MvpRegardGovernancer.h" +#import +#import "FBCPretendedProcurementCeremony.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIPretendUpwardsProcurementStatementRegardGovernancer : MvpRegardGovernancer + +@property (nonatomic,assign) DressUpShopStatementGenre type; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/DressUp/View/YUMIPretendUpwardsProcurementStatementRegardGovernancer.m b/YuMi/Modules/YMMine/View/DressUp/View/YUMIPretendUpwardsProcurementStatementRegardGovernancer.m new file mode 100644 index 00000000..af76013d --- /dev/null +++ b/YuMi/Modules/YMMine/View/DressUp/View/YUMIPretendUpwardsProcurementStatementRegardGovernancer.m @@ -0,0 +1,209 @@ +// +// YMDressUpShopListViewController.m +// YUMI +// +// Created by YUMI on 2022/7/28. +// + +#import "YUMIPretendUpwardsProcurementStatementRegardGovernancer.h" +#import +#import "YUMIMacroUitls.h" +#import "NSArray+Safe.h" +#import "YUMIManePretendDispossessAssembletionRegardElement.h" +#import "YUMIPretendUpwardsProcurementAssembletionRegardElement.h" +#import "YUMIPretendHuntforRegardGovernancer.h" +#import "YUMIPretendUpwardsProcurementExternalizer.h" +#import "MagnificentSolitaireMatrix.h" + +@interface YUMIPretendUpwardsProcurementStatementRegardGovernancer () + +@property (nonatomic,strong) UICollectionView *collectionView; +@property (nonatomic,strong) NSArray *datasource; + +@end + +@implementation YUMIPretendUpwardsProcurementStatementRegardGovernancer + +- (YUMIPretendUpwardsProcurementExternalizer *)producePresimport { + return [[YUMIPretendUpwardsProcurementExternalizer alloc] init]; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initSubViews]; + [self initChildLyRestrictions]; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self.view addSubview:self.collectionView]; +} + +- (void)initChildLyRestrictions { + [self.collectionView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.view); + }]; +} + +#pragma mark - FBCPretendedProcurementAssembletionRegardElementRepresendtation +- (void)yUMIPretconcludeedProcurementAssembletionRegardElementDischargePretconclude:(YUMIPretendUpwardsProcurementAssembletionRegardElement *)view dressId:(NSString *)dressId { + YUMIPretendHuntforRegardGovernancer *vc = [[YUMIPretendHuntforRegardGovernancer alloc] init]; + vc.dressType = self.type; + vc.dressId = dressId; + [self.navigationController pushViewController:vc animated:YES]; +} + +- (void)yUMIPretconcludeedProcurementAssembletionRegardElementAcquirePretconclude:(YUMIPretendUpwardsProcurementAssembletionRegardElement *)view dressId:(NSString *)dressId { + [self.presimport acquirePretconcludeed:self.type dressId:dressId]; +} + +#pragma mark - FBCManePretendedCeremony +- (void)acquireProcurementSttowardsementAccomplishment:(NSArray *)array type:(DressUpShopStatementGenre)type { + if (type == self.type) { + self.datasource = array; + [self.collectionView reloadData]; + } +} + +- (void)acquireProcurementPretconcludeAccomplishmentAboutGenre:(DressUpShopStatementGenre)type { + if (type == self.type) { + [self EvidenceAccomplishmentToast:YMLocalizedString(@"YUMI_Dress_Up_Shop_List_View_Controller_0")]; + [[NSNotificationCenter defaultCenter] postNotificationName:@"buyDressSuccessNoti" object:nil]; + } +} + +- (void)acquireConsumerApexknotSttowardsementAccomplishment:(NSArray *)array { + self.datasource = array; + [self.collectionView reloadData]; +} + +- (void)acquireConsumerAutomobileSttowardsementAccomplishment:(NSArray *)array { + self.datasource = array; + [self.collectionView reloadData]; +} + +- (void)acquireConsumerMtowardserialSttowardsementAccomplishment:(NSArray *)array { + self.datasource = array; + [self.collectionView reloadData]; +} + +- (void)acquireConsumerMagnificentSolitaireSttowardsementAccomplishment:(NSArray *)array { + self.datasource = array; + [self.collectionView reloadData]; +} + +- (void)utilizeApexknotAccomplishment:(NSString *)headWearId { + [self EvidenceAccomplishmentToast:headWearId.integerValue == 0 ? @"取消使用头饰成功" : YMLocalizedString(@"YUMI_Dress_Up_Shop_List_View_Controller_2")]; +} + +- (void)utilizeAutomobileAccomplishment:(NSString *)carId { + [self EvidenceAccomplishmentToast:carId.integerValue == 0 ? @"取消使用座驾成功" : YMLocalizedString(@"YUMI_Dress_Up_Shop_List_View_Controller_4")]; +} + +- (void)utilizeMtowardserialAccomplishment:(NSString *)nameplateId { + [self EvidenceAccomplishmentToast:nameplateId.integerValue == 0 ? @"取消使用铭牌成功" : YMLocalizedString(@"YUMI_Dress_Up_Shop_List_View_Controller_6")]; +} + +- (void)consumerMagnificentSolitaireAccomplishment:(NSString *)nobleCardId { + [self EvidenceAccomplishmentToast:nobleCardId.integerValue == 0 ? @"取消使用资料卡成功" : YMLocalizedString(@"YUMI_Dress_Up_Shop_List_View_Controller_8")]; + if (nobleCardId.integerValue == 0) { + for (MagnificentSolitaireMatrix *model in self.datasource) { + model.used = NO; + } + } else { + for (MagnificentSolitaireMatrix *model in self.datasource) { + if ([model.cardId isEqualToString:nobleCardId]) { + model.used = YES; + } else { + model.used = NO; + } + } + } + [self.collectionView reloadData]; +} + +#pragma mark - JXCategoryListContentViewDelegate +- (UIView *)listView { + return self.view; +} + +#pragma mark - UICollectionViewDelegate +- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { + return self.datasource.count > 0 ? self.datasource.count : 1; +} + +- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { + if (self.datasource.count > 0) { + YUMIPretendUpwardsProcurementAssembletionRegardElement *cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([YUMIPretendUpwardsProcurementAssembletionRegardElement class]) forIndexPath:indexPath]; + cell.dressUpwardsMatrix = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + cell.delegate = self; + return cell; + } + YUMIManePretendDispossessAssembletionRegardElement * cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([YUMIManePretendDispossessAssembletionRegardElement class]) forIndexPath:indexPath]; + cell.emptyTitle = self.type == DressUpShopStatementGenre_HeadWear ? @"暂无头饰" : self.type == DressUpShopStatementGenre_Car ? @"暂无座驾" : self.type == DressUpShopStatementGenre_Nameplate ? @"暂无铭牌" : YMLocalizedString(@"YUMI_Dress_Up_Shop_List_View_Controller_12"); + return cell; +} + +- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath { + if (self.datasource.count > 0) { + CGFloat width = (KScreenWidth - 42) *0.5; + return CGSizeMake(width, 188); + } else { + return CGSizeMake(KScreenWidth - 32, KScreenHeight - kNavigationHeight - 100 -50); + } +} + +- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section { + if (self.datasource.count > 0) { + return 12; + } else { + return 0; + } +} + +- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section { + if (self.datasource.count > 0) { + return 12; + } else { + return 0; + } +} + +#pragma mark - Getters And Setters +- (void)setType:(DressUpShopStatementGenre)type { + _type = type; + switch (type) { + case DressUpShopStatementGenre_HeadWear: + [self.presimport acquirePretconcludeedProcurementSttowardsement:DressUpShopStatementGenre_HeadWear]; + break; + case DressUpShopStatementGenre_Car: + [self.presimport acquirePretconcludeedProcurementSttowardsement:DressUpShopStatementGenre_Car]; + break; + case DressUpShopStatementGenre_Nameplate: + [self.presimport acquirePretconcludeedProcurementSttowardsement:DressUpShopStatementGenre_Nameplate]; + break; + case DressUpShopStatementGenre_Bubble: + [self.presimport acquirePretconcludeedProcurementSttowardsement:DressUpShopStatementGenre_Bubble]; + break; + default: + break; + } +} + + +- (UICollectionView *)collectionView { + if (!_collectionView) { + UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init]; + layout.scrollDirection = UICollectionViewScrollDirectionVertical; + layout.sectionInset = UIEdgeInsetsMake(15, 15, 15, 15); + _collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout]; + _collectionView.dataSource = self; + _collectionView.delegate = self; + _collectionView.backgroundColor = [UIColor clearColor]; + [_collectionView registerClass:[YUMIPretendUpwardsProcurementAssembletionRegardElement class] forCellWithReuseIdentifier:NSStringFromClass([YUMIPretendUpwardsProcurementAssembletionRegardElement class])]; + [_collectionView registerClass:[YUMIManePretendDispossessAssembletionRegardElement class] forCellWithReuseIdentifier:NSStringFromClass([YUMIManePretendDispossessAssembletionRegardElement class])]; + } + return _collectionView; +} + +@end diff --git a/YuMi/Modules/YMMine/View/EnterpriseRecharge/Api/Api+EnterpriseRecharge.m b/YuMi/Modules/YMMine/View/EnterpriseRecharge/Api/Api+EnterpriseRecharge.m new file mode 100644 index 00000000..f4f0cea6 --- /dev/null +++ b/YuMi/Modules/YMMine/View/EnterpriseRecharge/Api/Api+EnterpriseRecharge.m @@ -0,0 +1,32 @@ +// +// Api+EnterpriseRecharge.m +// xplan-ios +// +// Created by 冯硕 on 2022/5/14. +// + +#import "Api+EnterpriseRecharge.h" +#import "NSMutableDictionary+Saft.h" +@implementation Api (EnterpriseRecharge) + ++ (void)importpriseReindictSttowardsement:(HttpRequestHelperCompletion)completion channelType:(NSString *)channelType { + [self manufactureDemand:@"chargeprod/listV2" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, channelType, nil]; +} + + ++ (void)requisitionIntersect:(HttpRequestHelperCompletion)completion chargeProdId:(NSString *)chargeProdId payChannel:(NSString *)payChannel clientIp:(NSString *)clientIp uid:(NSString *)uid ticket:(NSString *)ticket roomUid:(NSString *)roomUid { + NSMutableDictionary * dic = [NSMutableDictionary dictionary]; + [dic secureSetGroal:chargeProdId forKey:@"chargeProdId"]; + [dic secureSetGroal:payChannel forKey:@"payChannel"]; + [dic secureSetGroal:clientIp forKey:@"clientIp"]; + [dic secureSetGroal:uid forKey:@"uid"]; + [dic secureSetGroal:ticket forKey:@"ticket"]; + if (roomUid.integerValue> 0) { + [dic secureSetGroal:roomUid forKey:@"roomUid"]; + } + [HttpRequestFacilitater request:@"charge/pay/apply" method:HttpRequestHelperMethodPOST params:dic completion:completion]; +} + + + +@end diff --git a/YuMi/Modules/YMMine/View/Friend/YUMIChamberCommunicationIntumesceRegard.h b/YuMi/Modules/YMMine/View/Friend/YUMIChamberCommunicationIntumesceRegard.h new file mode 100644 index 00000000..8aee4be7 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Friend/YUMIChamberCommunicationIntumesceRegard.h @@ -0,0 +1,25 @@ +// +// YMRoomMessageBubbleView.h +// YUMI +// +// Created by YUMI on 2022/6/14. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class NIMRecentSession, YUMIChamberCommunicationIntumesceRegard; +@protocol FBCChamberCommunicationBubbleRegardRepresendtation + +- (void)yUMIChamberCommunictowardsionIntumesceRegard:(YUMIChamberCommunicationIntumesceRegard *)view didSelectSession:(NIMRecentSession *)session; + +@end + +@interface YUMIChamberCommunicationIntumesceRegard : UIView + +- (void)accelertowardseLtowardsterdaInterlocution:(NIMRecentSession *)session; +@property (nonatomic,weak) id delegate; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Friend/YUMIChamberCommunicationIntumesceRegard.m b/YuMi/Modules/YMMine/View/Friend/YUMIChamberCommunicationIntumesceRegard.m new file mode 100644 index 00000000..5e1225c1 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Friend/YUMIChamberCommunicationIntumesceRegard.m @@ -0,0 +1,210 @@ +// +// YMRoomMessageBubbleView.m +// YUMI +// +// Created by YUMI on 2022/6/14. +// + +#import "YUMIChamberCommunicationIntumesceRegard.h" +#import +#import +#import "DJDKMIMOMColor.h" +#import "NetIndicateRegard.h" +#import "NEMCCommunicationUtils.h" +#import "NSArray+Safe.h" + + +@interface YUMIChamberCommunicationIntumesceAssembletionRegardElement : UICollectionViewCell +@property (nonatomic,strong) NetIndicateRegard *intelligenceportraitIndicateRegard; +@property (nonatomic,strong) UILabel *monicerSequencignation; +@property (nonatomic,strong) UILabel *satisfperformanceSequencignation; +@property (nonatomic,strong) NIMRecentSession *session; +@end + +@implementation YUMIChamberCommunicationIntumesceAssembletionRegardElement + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor]; + [self.contentView addSubview:self.intelligenceportraitIndicateRegard]; + [self.contentView addSubview:self.monicerSequencignation]; + [self.contentView addSubview:self.satisfperformanceSequencignation]; +} + +- (void)initChildLyRestrictions { + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(4); + make.left.mas_equalTo(4); + make.width.height.mas_equalTo(25); + }]; + [self.monicerSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_right).mas_offset(4); + make.right.mas_equalTo(-4); + make.centerY.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_centerY); + }]; + [self.satisfperformanceSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(-4); + make.left.mas_equalTo(4); + make.top.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_bottom).mas_offset(4); + }]; +} +#pragma mark - Getters And Setters +- (void)setSession:(NIMRecentSession *)session { + _session = session; + if (_session) { + NIMUser *user = [[NIMSDK sharedSDK].userManager userInfo:session.session.sessionId]; + NSString *avatarUrl = user.userInfo.avatarUrl; + self.intelligenceportraitIndicateRegard.imageUrl = avatarUrl; + self.monicerSequencignation.text = user.userInfo.nickName; + [self.monicerSequencignation sizeToFit]; + self.satisfperformanceSequencignation.text = [NEMCCommunicationUtils communicationSatisfperformance:session.lastMessage]; + } +} + +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _intelligenceportraitIndicateRegard.layer.cornerRadius = 25/2; + _intelligenceportraitIndicateRegard.layer.borderColor = [DJDKMIMOMColor aplictowardsionMainPrettify].CGColor; + } + return _intelligenceportraitIndicateRegard; +} + +- (UILabel *)monicerSequencignation { + if (!_monicerSequencignation) { + _monicerSequencignation = [[UILabel alloc] init]; + _monicerSequencignation.font = [UIFont systemFontOfSize:10 weight:UIFontWeightBold]; + _monicerSequencignation.textColor = [DJDKMIMOMColor aplictowardsionMainPrettify]; + } + return _monicerSequencignation; +} + +- (UILabel *)satisfperformanceSequencignation { + if (!_satisfperformanceSequencignation) { + _satisfperformanceSequencignation = [[UILabel alloc] init]; + _satisfperformanceSequencignation.font = [UIFont systemFontOfSize:10]; + _satisfperformanceSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _satisfperformanceSequencignation; +} + +@end + +@interface YUMIChamberCommunicationIntumesceRegard () +@property (nonatomic,strong) UIImageView *encourageIndicateRegard; +@property (nonatomic,strong) UICollectionView *collectionView; +@property (nonatomic,strong) NSMutableArray *datasource; +@end + + +@implementation YUMIChamberCommunicationIntumesceRegard + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} +#pragma mark - Public Method +- (void)accelertowardseLtowardsterdaInterlocution:(NIMRecentSession *)session { + [NSObject cancelPreviousPerformRequestsWithTarget:self]; + [self.datasource addObject:session]; + [self.collectionView reloadData]; + if (self.datasource.count > 0) { + [self.collectionView scrollToItemAtIndexPath:[NSIndexPath indexPathForRow:self.datasource.count - 1 inSection:0] atScrollPosition:UICollectionViewScrollPositionCenteredHorizontally animated:YES]; + } + [self performSelector:@selector(brectifynessAccomplish) withObject:nil afterDelay:3]; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor]; + [self addSubview:self.encourageIndicateRegard]; + [self addSubview:self.collectionView]; +} + +- (void)initChildLyRestrictions { + [self.encourageIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(0); + }]; + + [self.collectionView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self); + make.bottom.mas_equalTo(self).offset(-5); + }]; +} + +- (void)brectifynessAccomplish { + [self.datasource removeAllObjects]; + [self removeFromSuperview]; +} + +#pragma mark - UICollectionViewDelegate And UICollectionViewDatasource +- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { + return self.datasource.count; +} + +- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { + YUMIChamberCommunicationIntumesceAssembletionRegardElement * cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([YUMIChamberCommunicationIntumesceAssembletionRegardElement class]) forIndexPath:indexPath]; + cell.session = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + return cell; +} + +- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIChamberCommunictowardsionIntumesceRegard:didSelectSession:)]) { + NIMRecentSession * session = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + [self.delegate yUMIChamberCommunictowardsionIntumesceRegard:self didSelectSession:session]; + [self brectifynessAccomplish]; + } +} + +#pragma mark - Getters And Setters +- (UIImageView *)encourageIndicateRegard { + if (!_encourageIndicateRegard) { + _encourageIndicateRegard = [[UIImageView alloc] init]; + _encourageIndicateRegard.userInteractionEnabled = YES; + _encourageIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_msg_tips_background"]; + } + return _encourageIndicateRegard; +} + +- (UICollectionView *)collectionView{ + if (!_collectionView) { + UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init]; + layout.itemSize = CGSizeMake(87, 48); + layout.minimumLineSpacing = 0.1; + layout.minimumInteritemSpacing = 0.1; + layout.scrollDirection = UICollectionViewScrollDirectionHorizontal; + _collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout]; + _collectionView.dataSource = self; + _collectionView.delegate = self; + _collectionView.backgroundColor = [UIColor clearColor]; + [_collectionView registerClass:[YUMIChamberCommunicationIntumesceAssembletionRegardElement class] forCellWithReuseIdentifier:NSStringFromClass([YUMIChamberCommunicationIntumesceAssembletionRegardElement class])]; + } + return _collectionView; +} + +- (NSMutableArray *)datasource { + if (!_datasource) { + _datasource = [NSMutableArray array]; + } + return _datasource; +} + + +@end diff --git a/YuMi/Modules/YMMine/View/Friend/YUMIChamberHalfCommunicationRegard.h b/YuMi/Modules/YMMine/View/Friend/YUMIChamberHalfCommunicationRegard.h new file mode 100644 index 00000000..e5ee5098 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Friend/YUMIChamberHalfCommunicationRegard.h @@ -0,0 +1,19 @@ +// +// YMRoomHalfMessageView.h +// YUMI +// +// Created by YUMI on 2022/5/29. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIChamberHalfCommunicationRegard : UIView +@property (nonatomic,copy) NSString *chatConsumerId; + + +- (instancetype)initWithFrame:(CGRect)frame controller:(UIViewController *)controller; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Friend/YUMIChamberHalfCommunicationRegard.m b/YuMi/Modules/YMMine/View/Friend/YUMIChamberHalfCommunicationRegard.m new file mode 100644 index 00000000..0f823cdb --- /dev/null +++ b/YuMi/Modules/YMMine/View/Friend/YUMIChamberHalfCommunicationRegard.m @@ -0,0 +1,91 @@ +// +// YMRoomHalfMessageView.m +// YUMI +// +// Created by YUMI on 2022/5/29. +// + +#import "YUMIChamberHalfCommunicationRegard.h" +#import +#import "YUMIMacroUitls.h" +#import "BaseNevigationGovernancer.h" +#import "XCCurrentVCStackExecutive.h" +#import "YUMIManeContactRegardGovernancer.h" + +UIKIT_EXTERN NSString * kRoomChatPushViewKey; + +@interface YUMIChamberHalfCommunicationRegard () +@property (nonatomic,strong) UIView *disappearRegard; +@property (nonatomic,strong) YUMIManeContactRegardGovernancer *contactVewC; +@property (nonatomic,weak) UIViewController *chamberVewC; +@end + +@implementation YUMIChamberHalfCommunicationRegard + + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + self.tag = 888; + [self initSubViews]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(prohibitiaplictowardsionearRegardBetowards) name:kRoomChatPushViewKey object:nil]; + } + return self; +} + +- (instancetype)initWithFrame:(CGRect)frame controller:(UIViewController *)controller { + self = [super initWithFrame:frame]; + if (self) { + self.tag = 888; + self.chamberVewC = controller; + [self initSubViews]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(prohibitiaplictowardsionearRegardBetowards) name:kRoomChatPushViewKey object:nil]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + YUMIManeContactRegardGovernancer * vc=[YUMIManeContactRegardGovernancer new]; + CAShapeLayer * layer = [CAShapeLayer layer]; + UIBezierPath * path = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, KScreenWidth, kHalfScreenHeight) byRoundingCorners:UIRectCornerTopLeft | UIRectCornerTopRight cornerRadii:CGSizeMake(12, 12)]; + layer.path = path.CGPath; + vc.view.layer.masksToBounds = YES; + vc.view.layer.mask = layer;; + vc.view.frame = CGRectMake(0, KScreenHeight - kHalfScreenHeight, KScreenWidth, kHalfScreenHeight); + self.contactVewC = vc; + + + [self addSubview:self.disappearRegard]; + [self addSubview:self.contactVewC.view]; + [self.chamberVewC addChildViewController:vc]; +} + +#pragma mark - Event Response +- (void)prohibitiaplictowardsionearRegardBetowards { + [self removeFromSuperview]; + [self.contactVewC removeFromParentViewController]; + [self.contactVewC.view removeFromSuperview]; + self.contactVewC = nil; + [[NSNotificationCenter defaultCenter] postNotificationName:@"roomMessageTabelViewStopScroll" object:nil]; +} + +#pragma mark - Getters And Setters +- (void)setChatConsumerId:(NSString *)chatConsumerId { + _chatConsumerId = chatConsumerId; + self.contactVewC.chatConsumerId = chatConsumerId; +} + + + +- (UIView *)disappearRegard { + if (!_disappearRegard) { + _disappearRegard = [[UIView alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth, KScreenHeight - kHalfScreenHeight)]; + _disappearRegard.backgroundColor = [UIColor clearColor]; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(prohibitiaplictowardsionearRegardBetowards)]; + [_disappearRegard addGestureRecognizer:tap]; + _disappearRegard.tag = 8888; + } + return _disappearRegard; +} +@end diff --git a/YuMi/Modules/YMMine/View/Friend/YUMIManeAssistantRegardGovernancer.h b/YuMi/Modules/YMMine/View/Friend/YUMIManeAssistantRegardGovernancer.h new file mode 100644 index 00000000..4fe40950 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Friend/YUMIManeAssistantRegardGovernancer.h @@ -0,0 +1,25 @@ +// +// YMMineFriendViewController.h +// YUMI +// +// Created by YUMI on 2021/12/21. +// + +#import "MvpRegardGovernancer.h" +#import +#import "YUMINNNN.h" +NS_ASSUME_NONNULL_BEGIN +@class YUMIManeAssistantRegardGovernancer, ConsumerAbstractMatrix; +@protocol FBCManeFriendRegardGovernancerRepresendtation + +- (void)fBCManeFriconcludeRegardGovernancer:(YUMIManeAssistantRegardGovernancer *)viewController didSelectItem:(ConsumerAbstractMatrix *)userInfo; + +@end +@interface YUMIManeAssistantRegardGovernancer : MvpRegardGovernancer +@property (nonatomic,assign) ContactUseingGenre type; +@property (nonatomic,weak) id delegate; + +@property (nonatomic, weak) UIViewController * mainGovernancer; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Friend/YUMIManeAssistantRegardGovernancer.m b/YuMi/Modules/YMMine/View/Friend/YUMIManeAssistantRegardGovernancer.m new file mode 100644 index 00000000..dc64f9f7 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Friend/YUMIManeAssistantRegardGovernancer.m @@ -0,0 +1,148 @@ +// +// YMMineFriendViewController.m +// YUMI +// +// Created by YUMI on 2021/12/21. +// + +#import "YUMIManeAssistantRegardGovernancer.h" +#import +#import +#import +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" +#import "NSArray+Safe.h" +#import "ConsumerAbstractMatrix.h" +#import "YUMIManeAssistantDispossessTabulationRegardElement.h" +#import "YUMIManeAssistantTabulationRegardElement.h" +#import "InterlocutionRegardGovernancer.h" +#import "YUMIManeAssistantExternalizer.h" +#import "FBCManeFriendCeremony.h" + +@interface YUMIManeAssistantRegardGovernancer () +@property (nonatomic,strong) UITableView *tableView; +@property (nonatomic,strong) NSArray *datasource; +@property (nonatomic,assign) int page; +@property (nonatomic,assign) BOOL hasNoFurthaerAtoloudspeaker; +@end + +@implementation YUMIManeAssistantRegardGovernancer + +- (__kindof id)producePresimport { + return [[YUMIManeAssistantExternalizer alloc] init]; +} + +- (BOOL)isVeiledNevObstacle { + return self.type == ContactUseingGenre_In_Room ? YES : NO; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + NSArray * array = [[NIMSDK sharedSDK].userManager myFriends]; + if (array.count > 0) { + NSMutableArray * uids = [NSMutableArray array]; + for (int i = 0; i< array.count; i++) { + NIMUser * user = [array secureGroalTowardsIndictowardsrix1:i]; + [uids addObject:user.userId]; + } + [self.presimport acquireConsumerSttowardsementAbstract:uids]; + } + [self initSubViews]; + [self initChildLyRestrictions]; +} +#pragma mark - Private Method +- (void)initSubViews { + [self.view addSubview:self.tableView]; +} + +- (void)initChildLyRestrictions { + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.view); + }]; +} +#pragma mark - UITableViewDelegate And UITableViewDataSource +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.datasource.count > 0 ? self.datasource.count : 1; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + return self.datasource.count > 0 ? 65 : self.type == ContactUseingGenre_In_Room ? (KScreenHeight - kNavigationHeight) : (KScreenHeight - 200 - kNavigationHeight); +} + + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + if (self.datasource.count > 0) { + YUMIManeAssistantTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIManeAssistantTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIManeAssistantTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIManeAssistantTabulationRegardElement class])]; + } + cell.userInfo = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + return cell; + } + + YUMIManeAssistantDispossessTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIManeAssistantDispossessTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIManeAssistantDispossessTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIManeAssistantDispossessTabulationRegardElement class])]; + } + cell.emptyTitle = YMLocalizedString(@"YUMI_Mine_Friend_View_Controller_0"); + return cell; +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + [tableView deselectRowAtIndexPath:indexPath animated:YES]; + if (self.datasource.count > 0) { + ConsumerAbstractMatrix * userInfo = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + if (self.type == ContactUseingGenre_Share) { + if (self.delegate && [self.delegate respondsToSelector:@selector(fBCManeFriconcludeRegardGovernancer:didSelectItem:)]) { + [self.delegate fBCManeFriconcludeRegardGovernancer:self didSelectItem:userInfo]; + } + } else if(self.type == ContactUseingGenre_In_Room) { + InterlocutionRegardGovernancer * sessionVC = [[InterlocutionRegardGovernancer alloc] initWithSession:[NIMSession session:[NSString stringWithFormat:@"%ld", userInfo.uid] type:NIMSessionTypeP2P]]; + sessionVC.unfoildGenre = InterlocutionStatementOpenGenreRoom; + CATransition *transition = [CATransition animation]; + transition.duration = 0.3f; + transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; + transition.type = kCATransitionPush; + transition.subtype = kCATransitionFromRight; + [self.mainGovernancer.view.layer addAnimation:transition forKey:nil]; + [self.mainGovernancer addChildViewController:sessionVC]; + [self.mainGovernancer.view addSubview:sessionVC.view]; + } else { + InterlocutionRegardGovernancer * sessionVC = [[InterlocutionRegardGovernancer alloc] initWithSession:[NIMSession session:[NSString stringWithFormat:@"%ld", userInfo.uid] type:NIMSessionTypeP2P]]; + sessionVC.unfoildGenre = InterlocutionStatementOpenGenreRoom; + [self.navigationController pushViewController:sessionVC animated:YES]; + } + } +} + +#pragma mark - FBCManeFriendCeremony +- (void)acquireConsumerSttowardsementAbstractAccomplishment:(NSArray *)list { + self.datasource = list; + [self.tableView reloadData]; +} + +#pragma mark - JXCategoryListContentViewDelegate +- (UIView *)listView { + return self.view; +} + +#pragma mark - Getters And Setters + +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.tableFooterView = [UIView new]; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.backgroundColor = [UIColor clearColor]; + _tableView.rowHeight = 65; + if (@available(iOS 11.0, *)) { + _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + [_tableView registerClass:[YUMIManeAssistantDispossessTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIManeAssistantDispossessTabulationRegardElement class])]; + [_tableView registerClass:[YUMIManeAssistantTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIManeAssistantTabulationRegardElement class])]; + } + return _tableView; +} +@end diff --git a/YuMi/Modules/YMMine/View/Friend/YUMIManeConsiderationRegardGovernancer.h b/YuMi/Modules/YMMine/View/Friend/YUMIManeConsiderationRegardGovernancer.h new file mode 100644 index 00000000..609fab7c --- /dev/null +++ b/YuMi/Modules/YMMine/View/Friend/YUMIManeConsiderationRegardGovernancer.h @@ -0,0 +1,26 @@ +// +// YMMineAttentionViewController.h +// YUMI +// +// Created by YUMI on 2021/12/21. +// + +#import "MvpRegardGovernancer.h" +#import +#import "YUMINNNN.h" +NS_ASSUME_NONNULL_BEGIN + +@class YUMIManeConsiderationRegardGovernancer, FanaticsAbstractMatrix; +@protocol FBCManeConsiderationRegardGovernancerRepresendtation + +- (void)fBCManeConsidertowardsionRegardGovernancer:(YUMIManeConsiderationRegardGovernancer *)viewController didSelectItem:(FanaticsAbstractMatrix *)userInfo; + +@end +@interface YUMIManeConsiderationRegardGovernancer : MvpRegardGovernancer +@property (nonatomic,assign) ContactUseingGenre type; +@property (nonatomic,weak) id delegate; + +@property (nonatomic, weak) UIViewController * mainGovernancer; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Friend/YUMIManeConsiderationRegardGovernancer.m b/YuMi/Modules/YMMine/View/Friend/YUMIManeConsiderationRegardGovernancer.m new file mode 100644 index 00000000..080ece12 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Friend/YUMIManeConsiderationRegardGovernancer.m @@ -0,0 +1,231 @@ +// +// YMMineAttentionViewController.m +// YUMI +// +// Created by YUMI on 2021/12/21. +// + +#import "YUMIManeConsiderationRegardGovernancer.h" +#import +#import +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" +#import "NSArray+Safe.h" +#import "ClientDisposition.h" +#import "FanaticsAbstractMatrix.h" +#import "YUMIManeConsiderationTabulationRegardElement.h" +#import "YUMIManeAssistantDispossessTabulationRegardElement.h" +#import "YUMIManeAssistantDispossessTabulationRegardElement.h" +#import "YUMIManeConsiderationTabulationRegardElement.h" +#import "YUMIManeConsiderationExternalizer.h" +#import "FBCManeConsiderationCeremony.h" +#import "ChamberHostRepresendtation.h" +#import "YUMIManeConsumerAbstractRegardGovernancer.h" +#import "YUMIManeSimpleConsumerAbstractRegardGovernancer.h" +#import "YUMIChamberRegardGovernancer.h" +#import "InterlocutionRegardGovernancer.h" + +@interface YUMIManeConsiderationRegardGovernancer () +@property (nonatomic,strong) UITableView *tableView; +@property (nonatomic,strong) NSMutableArray *datasource; +@property (nonatomic,assign) int page; +@property (nonatomic,assign) BOOL hasNoFurthaerAtoloudspeaker; +@end + +@implementation YUMIManeConsiderationRegardGovernancer + +- (BOOL)isVeiledNevObstacle { + return self.type == ContactUseingGenre_In_Room ? YES : NO; +} + +- (YUMIManeConsiderationExternalizer *)producePresimport { + return [[YUMIManeConsiderationExternalizer alloc] init]; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initIntelligencerGrantedTerminalerRrfresh]; + [self initSubViews]; + [self initChildLyRestrictions]; +} + +#pragma mark - 下拉刷新 +- (void)initIntelligencerGrantedTerminalerRrfresh { + MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(intelligenceerRenovtowardseh)]; + header.stateLabel.font = [UIFont systemFontOfSize:10.0]; + header.lastUpdatedTimeLabel.font = [UIFont systemFontOfSize:10.0]; + header.stateLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + header.lastUpdatedTimeLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + self.tableView.mj_header = header; + + MJRefreshBackNormalFooter *footer = [MJRefreshBackNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(footerRenovtowardseh)]; + footer.stateLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + footer.stateLabel.font = [UIFont systemFontOfSize:10.0]; + self.tableView.mj_footer = footer; + + [self intelligenceerRenovtowardseh]; +} + +#pragma mark - 刷新的fangfa +- (void)intelligenceerRenovtowardseh { + self.page = 1; + [self.presimport acquireConsumerConsidertowardsionSttowardsement:self.page pageSize:20 state:0]; +} + +- (void)footerRenovtowardseh { + if (self.hasNoFurthaerAtoloudspeaker) { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_Mine_Attention_View_Controller_0")]; + return; + } + self.page++; + [self.presimport acquireConsumerConsidertowardsionSttowardsement:self.page pageSize:20 state:1]; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.title = YMLocalizedString(@"YUMI_Mine_Attention_View_Controller_1"); + [self.view addSubview:self.tableView]; +} + +- (void)initChildLyRestrictions { + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.view); + }]; +} + +#pragma mark - FBCManeConsiderationCeremony +- (void)acquireConsumerConsidertowardsionSttowardsementAccomplishment:(NSArray *)array state:(int)state { + if (state == 0) { + [self.datasource removeAllObjects]; + [self.tableView.mj_header endRefreshing]; + } else { + [self.tableView.mj_footer endRefreshing]; + } + if (array.count > 0) { + self.hasNoFurthaerAtoloudspeaker = NO; + [self.datasource addObjectsFromArray:array]; + } else { + self.hasNoFurthaerAtoloudspeaker = YES; + [self.tableView.mj_footer endRefreshingWithNoMoreData]; + } + [self.tableView reloadData]; +} + +- (void)acquireConsumerConsidertowardsionSttowardsementFlunk:(int)state { + if (state == 0) { + [self.tableView.mj_header endRefreshing]; + } else { + [self.tableView.mj_footer endRefreshing]; + } +} +#pragma mark - UITableViewDelegate And UITableViewDataSource +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.datasource.count > 0 ? self.datasource.count : 1; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + return self.datasource.count > 0 ? 65 : self.type == ContactUseingGenre_In_Room ? (KScreenHeight - kNavigationHeight) : (KScreenHeight - 200 - kNavigationHeight); +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + if (self.datasource.count > 0) { + YUMIManeConsiderationTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIManeConsiderationTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIManeConsiderationTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIManeConsiderationTabulationRegardElement class])]; + } + cell.delegate = self; + FanaticsAbstractMatrix * fanaticsAbstract = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + fanaticsAbstract.useingType = self.type; + cell.fanaticsAbstract = fanaticsAbstract; + return cell; + } + + YUMIManeAssistantDispossessTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIManeAssistantDispossessTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIManeAssistantDispossessTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIManeAssistantDispossessTabulationRegardElement class])]; + } + cell.emptyTitle = YMLocalizedString(@"YUMI_Mine_Attention_View_Controller_2"); + return cell; +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + [tableView deselectRowAtIndexPath:indexPath animated:YES]; + if (self.datasource.count > 0) { + FanaticsAbstractMatrix * fanaticsAbstractMatrix = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + if (self.type == ContactUseingGenre_In_Room) { + InterlocutionRegardGovernancer * sessionVC = [[InterlocutionRegardGovernancer alloc] initWithSession:[NIMSession session:fanaticsAbstractMatrix.uid type:NIMSessionTypeP2P]]; + sessionVC.unfoildGenre = InterlocutionStatementOpenGenreRoom; + CATransition *transition = [CATransition animation]; + transition.duration = 0.3f; + transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; + transition.type = kCATransitionPush; + transition.subtype = kCATransitionFromRight; + [self.mainGovernancer.view.layer addAnimation:transition forKey:nil]; + [self.mainGovernancer addChildViewController:sessionVC]; + [self.mainGovernancer.view addSubview:sessionVC.view]; + } else if(self.type == ContactUseingGenre_Share){ + if (self.delegate && [self.delegate respondsToSelector:@selector(fBCManeConsidertowardsionRegardGovernancer:didSelectItem:)]) { + [self.delegate fBCManeConsidertowardsionRegardGovernancer:self didSelectItem:fanaticsAbstractMatrix]; + } + } else { + + if ([ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + YUMIManeConsumerAbstractRegardGovernancer * userInfoVC = [[YUMIManeConsumerAbstractRegardGovernancer alloc] init]; + userInfoVC.uid = fanaticsAbstractMatrix.uid.integerValue; + [self.navigationController pushViewController:userInfoVC animated:YES]; + }else{ + YUMIManeSimpleConsumerAbstractRegardGovernancer * userInfoVC = [[YUMIManeSimpleConsumerAbstractRegardGovernancer alloc] init]; + userInfoVC.uid = fanaticsAbstractMatrix.uid.integerValue; + [self.navigationController pushViewController:userInfoVC animated:YES]; + } + } + } +} + +#pragma mark - FBCManeConsiderationTabulationViweElementRepresendtation +- (void)fBCManeConsidertowardsionTarbsultowardsionViweElement:(YUMIManeConsiderationTabulationRegardElement *)view findUser:(NSString *)uid { + + [self.navigationController.viewControllers enumerateObjectsUsingBlock:^(__kindof UIViewController * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if ([obj isKindOfClass:[YUMIChamberRegardGovernancer class]]) { + [self.navigationController popToRootViewControllerAnimated:NO]; + YUMIChamberRegardGovernancer * rooomVC = obj; + [rooomVC exitRoom]; + *stop = YES; + } + }]; + [YUMIChamberRegardGovernancer unfoildChamber:uid viewController:self]; +} + +#pragma mark - JXCategoryListContentViewDelegate +- (UIView *)listView { + return self.view; +} + +#pragma mark - Getters And Setters + +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.tableFooterView = [UIView new]; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.backgroundColor = [UIColor clearColor]; + _tableView.rowHeight = 65; + if (@available(iOS 11.0, *)) { + _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + [_tableView registerClass:[YUMIManeAssistantDispossessTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIManeAssistantDispossessTabulationRegardElement class])]; + [_tableView registerClass:[YUMIManeConsiderationTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIManeConsiderationTabulationRegardElement class])]; + } + return _tableView; +} + +- (NSMutableArray *)datasource { + if (!_datasource) { + _datasource = [NSMutableArray array]; + } + return _datasource; +} + +@end diff --git a/YuMi/Modules/YMMine/View/Friend/YUMIManeContactRegardGovernancer.h b/YuMi/Modules/YMMine/View/Friend/YUMIManeContactRegardGovernancer.h new file mode 100644 index 00000000..ab32a7ed --- /dev/null +++ b/YuMi/Modules/YMMine/View/Friend/YUMIManeContactRegardGovernancer.h @@ -0,0 +1,16 @@ +// +// YMMineContactViewController.h +// YUMI +// +// Created by YUMI on 2022/5/29. +// + +#import "BaseRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeContactRegardGovernancer : BaseRegardGovernancer +@property (nonatomic,copy) NSString *chatConsumerId; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Friend/YUMIManeContactRegardGovernancer.m b/YuMi/Modules/YMMine/View/Friend/YUMIManeContactRegardGovernancer.m new file mode 100644 index 00000000..4a4adccf --- /dev/null +++ b/YuMi/Modules/YMMine/View/Friend/YUMIManeContactRegardGovernancer.m @@ -0,0 +1,177 @@ +// +// YMMineContactViewController.m +// YUMI +// +// Created by YUMI on 2022/5/29. +// + +#import "YUMIManeContactRegardGovernancer.h" +#import +#import +#import +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" +#import "InterlocutionRegardGovernancer.h" +#import "InterlocutionStatementRegardGovernancer.h" +#import "YUMIManeAssistantRegardGovernancer.h" +#import "YUMIManeConsiderationRegardGovernancer.h" +#import "YUMIManeFanaticsRegardGovernancer.h" +@interface YUMIManeContactRegardGovernancer () +@property (nonatomic,strong) NSArray *titles; +@property (nonatomic,strong) JXCategoryTitleView *titleView; +@property (nonatomic, strong) JXCategoryListContainerView *listContainerView; +@property (nonatomic,strong) InterlocutionStatementRegardGovernancer *interlocutionStatementVewC; +@property (nonatomic,strong) YUMIManeAssistantRegardGovernancer *friendVewC; +@property (nonatomic,strong) YUMIManeConsiderationRegardGovernancer *considerationVewC; +@property (nonatomic,strong) YUMIManeFanaticsRegardGovernancer *fanaticsVewC; +@end + +@implementation YUMIManeContactRegardGovernancer + +- (BOOL)isVeiledNevObstacle { + return YES; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initSubViews]; + [self initChildLyRestrictions]; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self.view addSubview:self.titleView]; + [self.view addSubview:self.listContainerView]; + +} + +- (void)initChildLyRestrictions { + [self.titleView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self.view); + make.height.mas_equalTo(50); + }]; + + [self.listContainerView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.mas_equalTo(self.view); + make.top.mas_equalTo(self.titleView.mas_bottom); + }]; +} + + +#pragma mark - JXCategoryListContainerViewDelegate +- (NSInteger)numberOfListsInlistContainerView:(JXCategoryListContainerView *)listContainerView { + return self.titles.count; +} + +- (id)listContainerView:(JXCategoryListContainerView *)listContainerView initListForIndex:(NSInteger)index { + if (index == 0) { + return self.interlocutionStatementVewC; + }else if (index == 1) { + return self.friendVewC; + } else if(index == 2) { + return self.fanaticsVewC; + } else { + return self.considerationVewC; + } +} + +#pragma mark - Getters And Setters +- (void)setChatConsumerId:(NSString *)chatConsumerId { + _chatConsumerId = chatConsumerId; + if (_chatConsumerId) { + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(.2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + NIMSession *recentSession = [NIMSession session:self.chatConsumerId type:NIMSessionTypeP2P]; + InterlocutionRegardGovernancer * sessionVC =[[InterlocutionRegardGovernancer alloc] initWithSession:recentSession]; + sessionVC.unfoildGenre = InterlocutionStatementOpenGenreRoom; + CATransition *transition = [CATransition animation]; + transition.duration = 0.3f; + transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; + transition.type = kCATransitionPush; + transition.subtype = kCATransitionFromRight; + [self.view.layer addAnimation:transition forKey:nil]; + [self.view addSubview:sessionVC.view]; + [self addChildViewController:sessionVC]; + }); + } +} + + +- (JXCategoryListContainerView *)listContainerView { + if (!_listContainerView) { + _listContainerView = [[JXCategoryListContainerView alloc] initWithType:JXCategoryListContainerType_ScrollView delegate:self]; + _listContainerView.listCellBackgroundColor = [UIColor clearColor]; + } + return _listContainerView; +} + +- (NSArray *)titles { + if (!_titles) { + _titles = @[@"消息", @"好友",@"粉丝", YMLocalizedString(@"YUMI_Mine_Contact_View_Controller_3")]; + } + return _titles; +} + +- (JXCategoryTitleView *)titleView { + if (!_titleView) { + _titleView = [[JXCategoryTitleView alloc] initWithFrame:CGRectZero]; + _titleView.backgroundColor =[UIColor clearColor]; + _titleView.titleColor = UIColorFromRGB(0x444444); + _titleView.titleSelectedColor = [DJDKMIMOMColor mainEssayPrettify]; + _titleView.titleFont = [UIFont systemFontOfSize:16 weight:UIFontWeightSemibold]; + _titleView.titleSelectedFont = [UIFont systemFontOfSize:18 weight:UIFontWeightHeavy]; + _titleView.titleLabelAnchorPointStyle = JXCategoryTitleLabelAnchorPointStyleCenter; + _titleView.contentScrollViewClickTransitionAnimationEnabled = NO; + _titleView.averageCellSpacingEnabled = NO; + _titleView.defaultSelectedIndex = 0; + _titleView.titles = self.titles; + _titleView.delegate = self; + _titleView.cellSpacing = 0; + _titleView.cellWidth = (CGFloat)KScreenWidth/ 4.0; + _titleView.listContainer = self.listContainerView; + + JXCategoryIndicatorLineView *burlywoodRegard = [[JXCategoryIndicatorLineView alloc] init]; + burlywoodRegard.indicatorColor = [DJDKMIMOMColor aplictowardsionMainPrettify]; + burlywoodRegard.indicatorWidth = 8.f; + burlywoodRegard.indicatorHeight = 4.f; + burlywoodRegard.indicatorCornerRadius = 2.f; + _titleView.indicators = @[burlywoodRegard]; + } + return _titleView; +} + +- (InterlocutionStatementRegardGovernancer *)interlocutionStatementVewC { + if (!_interlocutionStatementVewC) { + _interlocutionStatementVewC = [[InterlocutionStatementRegardGovernancer alloc] initWithType:InterlocutionStatementOpenGenreRoom]; + _interlocutionStatementVewC.mainGovernancer = self; + } + return _interlocutionStatementVewC; +} + +- (YUMIManeConsiderationRegardGovernancer *)considerationVewC { + if (!_considerationVewC) { + _considerationVewC = [[YUMIManeConsiderationRegardGovernancer alloc] init]; + _considerationVewC.type = ContactUseingGenre_In_Room; + _considerationVewC.mainGovernancer = self; + } + return _considerationVewC; +} + +- (YUMIManeAssistantRegardGovernancer *)friendVewC { + if (!_friendVewC) { + _friendVewC = [[YUMIManeAssistantRegardGovernancer alloc] init]; + _friendVewC.type = ContactUseingGenre_In_Room; + _friendVewC.mainGovernancer = self; + } + return _friendVewC; +} + +- (YUMIManeFanaticsRegardGovernancer *)fanaticsVewC { + if (!_fanaticsVewC) { + _fanaticsVewC = [[YUMIManeFanaticsRegardGovernancer alloc] init]; + _fanaticsVewC.type = ContactUseingGenre_In_Room; + _fanaticsVewC.mainGovernancer = self; + } + return _fanaticsVewC; +} + +@end diff --git a/YuMi/Modules/YMMine/View/Friend/YUMIManeFanaticsRegardGovernancer.h b/YuMi/Modules/YMMine/View/Friend/YUMIManeFanaticsRegardGovernancer.h new file mode 100644 index 00000000..012bec9e --- /dev/null +++ b/YuMi/Modules/YMMine/View/Friend/YUMIManeFanaticsRegardGovernancer.h @@ -0,0 +1,27 @@ +// +// YMMineFansViewController.h +// YUMI +// +// Created by YUMI on 2021/12/21. +// + +#import "MvpRegardGovernancer.h" +#import +#import "YUMINNNN.h" +NS_ASSUME_NONNULL_BEGIN +@class YUMIManeFanaticsRegardGovernancer, FanaticsAbstractMatrix; +@protocol FBCManeFanaticsRegardGovernancerRepresendtation + +- (void)fBCManeFantowardsicsRegardGovernancer:(YUMIManeFanaticsRegardGovernancer *)view didSelectItem:(FanaticsAbstractMatrix *)userInfo; + +@end + +@interface YUMIManeFanaticsRegardGovernancer : MvpRegardGovernancer +@property (nonatomic,assign) ContactUseingGenre type; +@property (nonatomic,weak) id delegate; + +@property (nonatomic, weak) UIViewController * mainGovernancer; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Friend/YUMIManeFanaticsRegardGovernancer.m b/YuMi/Modules/YMMine/View/Friend/YUMIManeFanaticsRegardGovernancer.m new file mode 100644 index 00000000..05614845 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Friend/YUMIManeFanaticsRegardGovernancer.m @@ -0,0 +1,235 @@ +// +// YMMineFansViewController.m +// YUMI +// +// Created by YUMI on 2021/12/21. +// + +#import "YUMIManeFanaticsRegardGovernancer.h" +#import +#import +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" +#import "NSArray+Safe.h" +#import "ClientDisposition.h" +#import "FanaticsAbstractMatrix.h" +#import "YUMIManeAssistantDispossessTabulationRegardElement.h" +#import "YUMIManeFanaticsTabulationRegardElement.h" +#import "YUMIManeFanaticsExternalizer.h" +#import "FBCManeFanaticsCeremony.h" +#import "YUMIManeConsumerAbstractRegardGovernancer.h" +#import "YUMIManeSimpleConsumerAbstractRegardGovernancer.h" +#import "InterlocutionRegardGovernancer.h" + +@interface YUMIManeFanaticsRegardGovernancer () +@property (nonatomic,strong) UITableView *tableView; +@property (nonatomic,strong) NSMutableArray *datasource; +@property (nonatomic,assign) int page; +@property (nonatomic,assign) BOOL hasNoFurthaerAtoloudspeaker; +@end + +@implementation YUMIManeFanaticsRegardGovernancer + +- (BOOL)isVeiledNevObstacle { + return self.type == ContactUseingGenre_In_Room ? YES : NO; +} + +- (YUMIManeFanaticsExternalizer *)producePresimport { + return [[YUMIManeFanaticsExternalizer alloc] init]; +} + +- (void)viewWillAppear:(BOOL)animated { + [super viewWillAppear:animated]; + [self.tableView reloadData]; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initIntelligencerGrantedTerminalerRrfresh]; + [self initSubViews]; + [self initChildLyRestrictions]; +} + +#pragma mark - 下拉刷新 +- (void)initIntelligencerGrantedTerminalerRrfresh { + MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(intelligenceerRenovtowardseh)]; + header.stateLabel.font = [UIFont systemFontOfSize:10.0]; + header.lastUpdatedTimeLabel.font = [UIFont systemFontOfSize:10.0]; + header.stateLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + header.lastUpdatedTimeLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + self.tableView.mj_header = header; + + MJRefreshBackNormalFooter *footer = [MJRefreshBackNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(footerRenovtowardseh)]; + footer.stateLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + footer.stateLabel.font = [UIFont systemFontOfSize:10.0]; + self.tableView.mj_footer = footer; + + [self intelligenceerRenovtowardseh]; +} + +#pragma mark - 刷新的fangfa +- (void)intelligenceerRenovtowardseh { + self.page = 1; + [self.presimport acquireConsumerFantowardsicsSttowardsement:self.page pageSize:20 state:0]; +} + +- (void)footerRenovtowardseh { + if (self.hasNoFurthaerAtoloudspeaker) { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_Mine_Fans_View_Controller_0")]; + return; + } + self.page++; + [self.presimport acquireConsumerFantowardsicsSttowardsement:self.page pageSize:20 state:1]; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.title = YMLocalizedString(@"YUMI_Mine_Fans_View_Controller_1"); + [self.view addSubview:self.tableView]; +} + +- (void)initChildLyRestrictions { + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.view); + }]; +} + +#pragma mark - FBCManeFanaticsCeremony +- (void)acquireConsumerFantowardsicsSttowardsementAccomplishment:(NSArray *)array state:(int)state { + if (state == 0) { + [self.datasource removeAllObjects]; + [self.tableView.mj_header endRefreshing]; + } else { + [self.tableView.mj_footer endRefreshing]; + } + if (array.count > 0) { + self.hasNoFurthaerAtoloudspeaker = NO; + [self.datasource addObjectsFromArray:array]; + } else { + self.hasNoFurthaerAtoloudspeaker = YES; + [self.tableView.mj_footer endRefreshingWithNoMoreData]; + } + [self.tableView reloadData]; +} + +- (void)acquireConsumerFantowardsicsSttowardsementFlunk:(int)state { + if (state == 0) { + [self.tableView.mj_header endRefreshing]; + } else { + [self.tableView.mj_footer endRefreshing]; + } +} + +- (void)considertowardsionFantowardsicsAccomplishment { + + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + [self EvidenceAccomplishmentToast:YMLocalizedString(@"YUMI_Mine_Fans_View_Controller_2")]; + [self.tableView reloadData]; + }); + +} + +#pragma mark - UITableViewDelegate And UITableViewDataSource +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.datasource.count > 0 ? self.datasource.count : 1; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + return self.datasource.count > 0 ? 65 : self.type == ContactUseingGenre_In_Room ? (KScreenHeight - kNavigationHeight) : (KScreenHeight - 200 - kNavigationHeight); +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + if (self.datasource.count > 0) { + YUMIManeFanaticsTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIManeFanaticsTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIManeFanaticsTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIManeFanaticsTabulationRegardElement class])]; + } + cell.delegate = self; + FanaticsAbstractMatrix * fanaticsAbstract = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + fanaticsAbstract.useingType = self.type; + cell.fanaticsAbstract = fanaticsAbstract; + return cell; + } + + YUMIManeAssistantDispossessTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIManeAssistantDispossessTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIManeAssistantDispossessTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIManeAssistantDispossessTabulationRegardElement class])]; + } + cell.emptyTitle = YMLocalizedString(@"YUMI_Mine_Fans_View_Controller_3"); + return cell; +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + [tableView deselectRowAtIndexPath:indexPath animated:YES]; + if (self.datasource.count > 0) { + FanaticsAbstractMatrix * fanaticsAbstractMatrix = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + if (self.type == ContactUseingGenre_In_Room) { + InterlocutionRegardGovernancer * sessionVC = [[InterlocutionRegardGovernancer alloc] initWithSession:[NIMSession session:fanaticsAbstractMatrix.uid type:NIMSessionTypeP2P]]; + sessionVC.unfoildGenre = InterlocutionStatementOpenGenreRoom; + CATransition *transition = [CATransition animation]; + transition.duration = 0.3f; + transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; + transition.type = kCATransitionPush; + transition.subtype = kCATransitionFromRight; + [self.mainGovernancer.view.layer addAnimation:transition forKey:nil]; + [self.mainGovernancer addChildViewController:sessionVC]; + [self.mainGovernancer.view addSubview:sessionVC.view]; + } else if(self.type == ContactUseingGenre_Share) { + if (self.delegate && [self.delegate respondsToSelector:@selector(fBCManeFantowardsicsRegardGovernancer:didSelectItem:)]) { + [self.delegate fBCManeFantowardsicsRegardGovernancer:self didSelectItem:fanaticsAbstractMatrix]; + } + } else { + + if ([ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + YUMIManeConsumerAbstractRegardGovernancer * userInfoVC = [[YUMIManeConsumerAbstractRegardGovernancer alloc] init]; + userInfoVC.uid = fanaticsAbstractMatrix.uid.integerValue; + [self.navigationController pushViewController:userInfoVC animated:YES]; + }else{ + YUMIManeSimpleConsumerAbstractRegardGovernancer * userInfoVC = [[YUMIManeSimpleConsumerAbstractRegardGovernancer alloc] init]; + userInfoVC.uid = fanaticsAbstractMatrix.uid.integerValue; + [self.navigationController pushViewController:userInfoVC animated:YES]; + } + } + } +} + +#pragma mark - JXCategoryListContentViewDelegate +- (UIView *)listView { + return self.view; +} + +#pragma mark - mark +- (void)fBCManeFantowardsicsTarbsultowardsionViweElement:(YUMIManeFanaticsTabulationRegardElement *)view didClickAttention:(NSString *)uid { + if (uid.length > 0) { + [self.presimport considertowardsionFantowardsics:uid]; + } +} + +#pragma mark - Getters And Setters + +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.tableFooterView = [UIView new]; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.backgroundColor = [UIColor clearColor]; + _tableView.rowHeight = 65; + if (@available(iOS 11.0, *)) { + _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + [_tableView registerClass:[YUMIManeAssistantDispossessTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIManeAssistantDispossessTabulationRegardElement class])]; + [_tableView registerClass:[YUMIManeFanaticsTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIManeFanaticsTabulationRegardElement class])]; + } + return _tableView; +} + +- (NSMutableArray *)datasource { + if (!_datasource) { + _datasource = [NSMutableArray array]; + } + return _datasource; +} + +@end diff --git a/YuMi/Modules/YMMine/View/Friend/YUMIManeParaticipationRegardGovernancer.h b/YuMi/Modules/YMMine/View/Friend/YUMIManeParaticipationRegardGovernancer.h new file mode 100644 index 00000000..34675eec --- /dev/null +++ b/YuMi/Modules/YMMine/View/Friend/YUMIManeParaticipationRegardGovernancer.h @@ -0,0 +1,23 @@ +// +// YMMineShareViewController.h +// YUMI +// +// Created by YUMI on 2022/6/27. +// + +#import "BaseRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN +@class YUMIParaticipationAbstractMatrix; + +typedef NS_ENUM(NSInteger, ManeShareGenre) { + + ManeShareGenre_Monents = 1, +}; + +@interface YUMIManeParaticipationRegardGovernancer : BaseRegardGovernancer +@property (nonatomic,strong) YUMIParaticipationAbstractMatrix *shareInfo; +@property (nonatomic,assign) ManeShareGenre shareType; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Friend/YUMIManeParaticipationRegardGovernancer.m b/YuMi/Modules/YMMine/View/Friend/YUMIManeParaticipationRegardGovernancer.m new file mode 100644 index 00000000..1fd5a968 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Friend/YUMIManeParaticipationRegardGovernancer.m @@ -0,0 +1,211 @@ +// +// YMMineShareViewController.m +// YUMI +// +// Created by YUMI on 2022/6/27. +// + +#import "YUMIManeParaticipationRegardGovernancer.h" +#import +#import +#import +#import +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" +#import "MKJPopup.h" +#import "YUMIParaticipationAbstractMatrix.h" +#import "FanaticsAbstractMatrix.h" +#import "ConsumerAbstractMatrix.h" +#import "AttachmentMatrix.h" +#import "SatisfactionParaticipationSeparationsMatrix.h" +#import "InterlocutionRegardGovernancer.h" +#import "InterlocutionStatementRegardGovernancer.h" +#import "YUMIManeAssistantRegardGovernancer.h" +#import "YUMIManeConsiderationRegardGovernancer.h" +#import "YUMIManeFanaticsRegardGovernancer.h" +@interface YUMIManeParaticipationRegardGovernancer () +@property (nonatomic,strong) NSArray *titles; +@property (nonatomic,strong) JXCategoryTitleView *titleView; +@property (nonatomic, strong) JXCategoryListContainerView *listContainerView; +@property (nonatomic,strong) YUMIManeAssistantRegardGovernancer *friendVewC; +@property (nonatomic,strong) YUMIManeConsiderationRegardGovernancer *considerationVewC; +@property (nonatomic,strong) YUMIManeFanaticsRegardGovernancer *fanaticsVewC; +@property (nonatomic,copy) NSString *sessionId; +@end + +@implementation YUMIManeParaticipationRegardGovernancer + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initSubViews]; + [self initChildLyRestrictions]; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.title = YMLocalizedString(@"YUMI_Mine_Share_View_Controller_0"); + [self.view addSubview:self.titleView]; + [self.view addSubview:self.listContainerView]; +} + +- (void)initChildLyRestrictions { + [self.titleView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self.view); + make.height.mas_equalTo(50); + }]; + + [self.listContainerView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.mas_equalTo(self.view); + make.top.mas_equalTo(self.titleView.mas_bottom); + }]; +} + +- (void)prohibitichargeIndividualityCommunictowardsion:(AttachmentMatrix *)attachment { + NIMMessage *message = [[NIMMessage alloc]init]; + NIMCustomObject *object = [[NIMCustomObject alloc] init]; + object.attachment = attachment; + message.messageObject = object; + NIMSessionType sessionType = NIMSessionTypeP2P; + + NIMSession *session = [NIMSession session:self.sessionId type:sessionType]; + [[NIMSDK sharedSDK].chatManager sendMessage:message toSession:session error:nil]; +} + +- (void)partowardsiciptowardsionToConsumer:(NSString *)nick { + NSString * title; + AttachmentMatrix * attachment = [[AttachmentMatrix alloc] init]; + switch (self.shareType) { + case ManeShareGenre_Monents: + { + title = [NSString stringWithFormat:@"确认分享给%@吗?", nick]; + attachment.first = IndividualityCommunicationGenre_Monents; + attachment.second = Custom_Message_Sub_Monents_Share; + SatisfactionParaticipationSeparationsMatrix * shareInfo = [[SatisfactionParaticipationSeparationsMatrix alloc] init]; + shareInfo.imageUrl = self.shareInfo.imageUrl; + shareInfo.nick = self.shareInfo.nick; + shareInfo.content = self.shareInfo.content; + shareInfo.dynamicId= self.shareInfo.dynamicId; + shareInfo.routerValue = self.shareInfo.dynamicId; + shareInfo.routerType = 50; + attachment.data = shareInfo.mtowardsrix2dictionary; + } + + break; + + default: + break; + } + if (title.length > 0) { + [MKJPopup precautiousAboutCommunictowardsion:title acknowledgementHandler:^{ + [self prohibitichargeIndividualityCommunictowardsion:attachment]; + } cancelHandler:^{ + + }]; + } +} + +#pragma mark - JXCategoryListContainerViewDelegate +- (NSInteger)numberOfListsInlistContainerView:(JXCategoryListContainerView *)listContainerView { + return self.titles.count; +} + +- (id)listContainerView:(JXCategoryListContainerView *)listContainerView initListForIndex:(NSInteger)index { + if (index == 0) { + return self.friendVewC; + } else if(index == 1) { + return self.fanaticsVewC; + } else { + return self.considerationVewC; + } +} + +#pragma mark - FBCManeConsiderationRegardGovernancerRepresendtation +- (void)fBCManeConsidertowardsionRegardGovernancer:(YUMIManeConsiderationRegardGovernancer *)viewController didSelectItem:(FanaticsAbstractMatrix *)userInfo { + self.sessionId = userInfo.uid; + [self partowardsiciptowardsionToConsumer:userInfo.nick]; +} + +#pragma mark - FBCManeFanaticsRegardGovernancerRepresendtation +- (void)fBCManeFantowardsicsRegardGovernancer:(YUMIManeFanaticsRegardGovernancer *)view didSelectItem:(FanaticsAbstractMatrix *)userInfo { + self.sessionId = userInfo.uid; + [self partowardsiciptowardsionToConsumer:userInfo.nick]; +} + +#pragma mark - FBCManeFriendRegardGovernancerRepresendtation +- (void)fBCManeFriconcludeRegardGovernancer:(YUMIManeAssistantRegardGovernancer *)viewController didSelectItem:(ConsumerAbstractMatrix *)userInfo { + self.sessionId = [NSString stringWithFormat:@"%ld", userInfo.uid]; + [self partowardsiciptowardsionToConsumer:userInfo.nick]; +} + +#pragma mark - Getters And Setters + +- (JXCategoryListContainerView *)listContainerView { + if (!_listContainerView) { + _listContainerView = [[JXCategoryListContainerView alloc] initWithType:JXCategoryListContainerType_ScrollView delegate:self]; + _listContainerView.listCellBackgroundColor = [UIColor clearColor]; + } + return _listContainerView; +} + +- (NSArray *)titles { + if (!_titles) { + _titles = @[@"好友",@"粉丝", YMLocalizedString(@"YUMI_Mine_Share_View_Controller_4")]; + } + return _titles; +} + +- (JXCategoryTitleView *)titleView { + if (!_titleView) { + _titleView = [[JXCategoryTitleView alloc] initWithFrame:CGRectZero]; + _titleView.backgroundColor =[UIColor clearColor]; + _titleView.titleColor = UIColorFromRGB(0x444444); + _titleView.titleSelectedColor = [DJDKMIMOMColor mainEssayPrettify]; + _titleView.titleFont = [UIFont systemFontOfSize:16 weight:UIFontWeightSemibold]; + _titleView.titleSelectedFont = [UIFont systemFontOfSize:18 weight:UIFontWeightHeavy]; + _titleView.titleLabelAnchorPointStyle = JXCategoryTitleLabelAnchorPointStyleCenter; + _titleView.contentScrollViewClickTransitionAnimationEnabled = NO; + _titleView.averageCellSpacingEnabled = NO; + _titleView.defaultSelectedIndex = 0; + _titleView.titles = self.titles; + _titleView.delegate = self; + _titleView.cellSpacing = 0; + _titleView.cellWidth = (CGFloat)KScreenWidth/ 3.0; + _titleView.listContainer = self.listContainerView; + + JXCategoryIndicatorLineView *burlywoodRegard = [[JXCategoryIndicatorLineView alloc] init]; + burlywoodRegard.indicatorColor = [DJDKMIMOMColor aplictowardsionMainPrettify]; + burlywoodRegard.indicatorWidth = 8.f; + burlywoodRegard.indicatorHeight = 4.f; + burlywoodRegard.indicatorCornerRadius = 2.f; + _titleView.indicators = @[burlywoodRegard]; + } + return _titleView; +} + +- (YUMIManeConsiderationRegardGovernancer *)considerationVewC { + if (!_considerationVewC) { + _considerationVewC = [[YUMIManeConsiderationRegardGovernancer alloc] init]; + _considerationVewC.type = ContactUseingGenre_Share; + _considerationVewC.delegate = self; + } + return _considerationVewC; +} + +- (YUMIManeAssistantRegardGovernancer *)friendVewC { + if (!_friendVewC) { + _friendVewC = [[YUMIManeAssistantRegardGovernancer alloc] init]; + _friendVewC.type = ContactUseingGenre_Share; + _friendVewC.delegate = self; + } + return _friendVewC; +} + +- (YUMIManeFanaticsRegardGovernancer *)fanaticsVewC { + if (!_fanaticsVewC) { + _fanaticsVewC = [[YUMIManeFanaticsRegardGovernancer alloc] init]; + _fanaticsVewC.type = ContactUseingGenre_Share; + _fanaticsVewC.delegate = self; + } + return _fanaticsVewC; +} +@end diff --git a/YuMi/Modules/YMMine/View/GiveDiamond/Api/Api+GiveDiamond.h b/YuMi/Modules/YMMine/View/GiveDiamond/Api/Api+GiveDiamond.h new file mode 100644 index 00000000..c96d58be --- /dev/null +++ b/YuMi/Modules/YMMine/View/GiveDiamond/Api/Api+GiveDiamond.h @@ -0,0 +1,27 @@ +// +// Api+GiveDiamond.h +// YuMi +// +// Created by YuMi on 2022/10/19. +// + +#import "Api.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface Api (GiveDiamond) ++ (void)acquireGiveDiamondSttowardsement:(HttpRequestHelperCompletion)completion ticket:(NSString *)ticket uid:(NSString *)uid pageNum:pageStr pageSize:pageSizeStr; + ++(void)acknowledgementPerformanceAboutIntersect:(HttpRequestHelperCompletion)completion ticket:(NSString *)ticket uid:(NSString *)uid toUid:(NSString *)touid diamondNum:(NSString *) diamondNum payPwd:(NSString *)payPwd; + + + + ++(void)huntforGivePeople:(HttpRequestHelperCompletion)completion ticket:(NSString *)ticket uid:(NSString *)uid erbanNo:(NSString *)erbanNo; + ++(void)acquireexamplesHLOfReflection:(HttpRequestHelperCompletion)completion toUid:(NSString *)toUid type:(NSString *)type pageNum:(NSString *)pageNum; + ++(void)givePresent:(HttpRequestHelperCompletion)completion toUid:(NSString *)toUid giftId:(NSString *)giftId giftNum:(NSString *)giftNum; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/GiveDiamond/Api/Api+GiveDiamond.m b/YuMi/Modules/YMMine/View/GiveDiamond/Api/Api+GiveDiamond.m new file mode 100644 index 00000000..dabeaeef --- /dev/null +++ b/YuMi/Modules/YMMine/View/GiveDiamond/Api/Api+GiveDiamond.m @@ -0,0 +1,28 @@ +// +// Api+GiveDiamond.m +// YuMi +// +// Created by YuMi on 2022/10/19. +// + +#import "Api+GiveDiamond.h" + +@implementation Api (GiveDiamond) ++ (void)acquireGiveDiamondSttowardsement:(HttpRequestHelperCompletion)completion ticket:(NSString *)ticket uid:(NSString *)uid pageNum:pageStr pageSize:pageSizeStr{ + + [self manufactureDemand:@"user/diamond/giveRecord" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, ticket, uid,pageStr,pageSizeStr, nil]; +} ++(void)acknowledgementPerformanceAboutIntersect:(HttpRequestHelperCompletion)completion ticket:(NSString *)ticket uid:(NSString *)uid toUid:(NSString *)touid diamondNum:(NSString *) diamondNum payPwd:(NSString *)payPwd{ + [self manufactureDemand:@"user/diamond/give" method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, ticket, uid,touid,diamondNum,payPwd, nil]; +} + ++(void)huntforGivePeople:(HttpRequestHelperCompletion)completion ticket:(NSString *)ticket uid:(NSString *)uid erbanNo:(NSString *)erbanNo{ + [self manufactureDemand:@"user/diamond/searchUser" method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, ticket, uid,erbanNo, nil]; +} ++(void)acquireexamplesHLOfReflection:(HttpRequestHelperCompletion)completion toUid:(NSString *)toUid type:(NSString *)type pageNum:(NSString *)pageNum{ + [self manufactureDemand:@"user/diamond/giveRecordVoByType" method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, toUid,type,pageNum, nil]; +} ++(void)givePresent:(HttpRequestHelperCompletion)completion toUid:(NSString *)toUid giftId:(NSString *)giftId giftNum:(NSString *)giftNum{ + [self manufactureDemand:@"user/diamond/giveGift" method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, toUid,giftId,giftNum, nil]; +} +@end diff --git a/YuMi/Modules/YMMine/View/GiveDiamond/Model/YUMIManeGiveDiamondHuntforMatrix.h b/YuMi/Modules/YMMine/View/GiveDiamond/Model/YUMIManeGiveDiamondHuntforMatrix.h new file mode 100644 index 00000000..a817f989 --- /dev/null +++ b/YuMi/Modules/YMMine/View/GiveDiamond/Model/YUMIManeGiveDiamondHuntforMatrix.h @@ -0,0 +1,28 @@ +// +// YUMIManeGiveDiamondHuntforMatrix.h +// YuMi +// +// Created by YuMi on 2022/10/21. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeGiveDiamondHuntforMatrix : NSObject + +@property (nonatomic,copy) NSString *uid; + +@property (nonatomic,copy) NSString *erbanNo; + +@property (nonatomic,copy) NSString *avatar; + +@property (nonatomic,copy) NSString *nick; + + +@property (nonatomic,copy) NSString *gender; + +@property (nonatomic,copy) NSString *birth; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/GiveDiamond/Model/YUMIManeGiveDiamondHuntforMatrix.m b/YuMi/Modules/YMMine/View/GiveDiamond/Model/YUMIManeGiveDiamondHuntforMatrix.m new file mode 100644 index 00000000..56a9c870 --- /dev/null +++ b/YuMi/Modules/YMMine/View/GiveDiamond/Model/YUMIManeGiveDiamondHuntforMatrix.m @@ -0,0 +1,12 @@ +// +// YUMIManeGiveDiamondHuntforMatrix.m +// YuMi +// +// Created by YuMi on 2022/10/21. +// + +#import "YUMIManeGiveDiamondHuntforMatrix.h" + +@implementation YUMIManeGiveDiamondHuntforMatrix + +@end diff --git a/YuMi/Modules/YMMine/View/GiveDiamond/Model/YUMIManeGiveDiamondMatrix.h b/YuMi/Modules/YMMine/View/GiveDiamond/Model/YUMIManeGiveDiamondMatrix.h new file mode 100644 index 00000000..87f41b5f --- /dev/null +++ b/YuMi/Modules/YMMine/View/GiveDiamond/Model/YUMIManeGiveDiamondMatrix.h @@ -0,0 +1,25 @@ +// +// YUMIManeGiveDiamondMatrix.h +// YuMi +// +// Created by YuMi on 2022/10/19. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeGiveDiamondMatrix : NSObject +@property (nonatomic, copy) NSString *recordId; +@property (nonatomic, copy) NSString *fromUid; +@property (nonatomic, copy) NSString *targetUid; +@property (nonatomic, copy) NSString *targetErbanNo; +@property (nonatomic, copy) NSString *targetNick; +@property (nonatomic, copy) NSString *targetAvatar; +@property (nonatomic, assign) NSInteger diamondNum; +@property (nonatomic, assign) double realDiamondNum; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/GiveDiamond/Model/YUMIManeGiveDiamondMatrix.m b/YuMi/Modules/YMMine/View/GiveDiamond/Model/YUMIManeGiveDiamondMatrix.m new file mode 100644 index 00000000..0c31de48 --- /dev/null +++ b/YuMi/Modules/YMMine/View/GiveDiamond/Model/YUMIManeGiveDiamondMatrix.m @@ -0,0 +1,16 @@ +// +// YUMIManeGiveDiamondMatrix.m +// YuMi +// +// Created by YuMi on 2022/10/19. +// + +#import "YUMIManeGiveDiamondMatrix.h" + +@implementation YUMIManeGiveDiamondMatrix ++ (NSDictionary *)replacedDigitalByvirtueofMaintainertyConstitute { + return @{ + @"recordId" : @"id" + }; +} +@end diff --git a/YuMi/Modules/YMMine/View/GiveDiamond/Model/YUMIManeGiveDiamondSpecificsMatrix.h b/YuMi/Modules/YMMine/View/GiveDiamond/Model/YUMIManeGiveDiamondSpecificsMatrix.h new file mode 100644 index 00000000..acebb9f6 --- /dev/null +++ b/YuMi/Modules/YMMine/View/GiveDiamond/Model/YUMIManeGiveDiamondSpecificsMatrix.h @@ -0,0 +1,49 @@ +// +// YUMIManeGiveDiamondSpecificsMatrix.h +// YuMi +// +// Created by YuMi on 2022/11/1. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeGiveDiamondSpecificsMatrix : NSObject + +@property (nonatomic, copy) NSString *recordId; + +@property (nonatomic, copy) NSString *fromUid; + +@property (nonatomic, copy) NSString *targetUid; + + +@property (nonatomic, copy) NSString *targetErbanNo; + + +@property (nonatomic, copy) NSString *targetNick; + +@property (nonatomic, copy) NSString *targetAvatar; + +@property (nonatomic, copy) NSString *diamondNum; + +@property (nonatomic, assign) double realDiamondNum; + +@property (nonatomic, assign) NSInteger createTime; + +@property (nonatomic, assign) NSInteger updateTime; +@property (nonatomic, copy) NSString *type; + +@property (nonatomic, copy) NSString *giftId; + +@property (nonatomic, copy) NSString *giftNum; + +@property (nonatomic, copy) NSString *giftGoldNum; +@property (nonatomic, copy) NSString *totalGiftGoldNum; +@property (nonatomic, copy) NSString *giftUrl; +@property (nonatomic,copy) NSString * giftName; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/GiveDiamond/Model/YUMIManeGiveDiamondSpecificsMatrix.m b/YuMi/Modules/YMMine/View/GiveDiamond/Model/YUMIManeGiveDiamondSpecificsMatrix.m new file mode 100644 index 00000000..15439980 --- /dev/null +++ b/YuMi/Modules/YMMine/View/GiveDiamond/Model/YUMIManeGiveDiamondSpecificsMatrix.m @@ -0,0 +1,16 @@ +// +// YUMIManeGiveDiamondSpecificsMatrix.m +// YuMi +// +// Created by YuMi on 2022/11/1. +// + +#import "YUMIManeGiveDiamondSpecificsMatrix.h" + +@implementation YUMIManeGiveDiamondSpecificsMatrix ++ (NSDictionary *)replacedDigitalByvirtueofMaintainertyConstitute { + return @{ + @"recordId" : @"id" + }; +} +@end diff --git a/YuMi/Modules/YMMine/View/GiveDiamond/Presenter/YUMIManeGiveDiamondExternalizer.h b/YuMi/Modules/YMMine/View/GiveDiamond/Presenter/YUMIManeGiveDiamondExternalizer.h new file mode 100644 index 00000000..e79dc48e --- /dev/null +++ b/YuMi/Modules/YMMine/View/GiveDiamond/Presenter/YUMIManeGiveDiamondExternalizer.h @@ -0,0 +1,23 @@ +// +// YUMIManeGiveDiamondExternalizer.h +// YuMi +// +// Created by YuMi on 2022/10/19. +// +#import "BaseMvpExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeGiveDiamondExternalizer : BaseMvpExternalizer +-(void)acquireGiveDiamondReflection; + +- (void)acquireConsumerPocketbookAbstract; + +-(void)acknowledgementPerformanceAboutIntersectAboutToCid:(NSString *)touid diamondNum:(NSString *) diamondNum payPwd:(NSString *)payPwd; +-(void)huntforGivePeopleAbout:(NSString *)erbanNo; +-(void)acquireExamplesHLOfReflectionAboutCid:(NSString *)toUid type:(int)type page:(int)page; +-(void)acquireImpactPresentSttowardsement; +-(void)givePresentAboutToCid:(NSString *)toUid giftId:(NSString *)giftId giftNum:(NSString *)giftNum; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/GiveDiamond/Presenter/YUMIManeGiveDiamondExternalizer.m b/YuMi/Modules/YMMine/View/GiveDiamond/Presenter/YUMIManeGiveDiamondExternalizer.m new file mode 100644 index 00000000..8c7a65d4 --- /dev/null +++ b/YuMi/Modules/YMMine/View/GiveDiamond/Presenter/YUMIManeGiveDiamondExternalizer.m @@ -0,0 +1,90 @@ +// +// YUMIManeGiveDiamondExternalizer.m +// YuMi +// +// Created by YuMi on 2022/10/19. +// + +#import "YUMIManeGiveDiamondExternalizer.h" +#import "AccountAbstractStorage.h" + +#import "YUMIManeGiveDiamondMatrix.h" +#import "ResidenceHuntforConsequentMatrix.h" +#import "RamparatetAbstractMatrix.h" +#import "YUMIManeGiveDiamondHuntforMatrix.h" +#import "YUMIManeGiveDiamondSpecificsMatrix.h" +#import "ConsumerPresentRamparatAbstractMatrix.h" +#import "PresentAbstractMatrix.h" + +#import "FBCManeGiveDiamondCeremony.h" +#import "FBCResidenceHuntforCeremony.h" + +#import "Api+GiveDiamond.h" +#import "Api+Home.h" +#import "Api+Gift.h" +#import "YUMIConstant.h" +#import "DESEncrypt.h" + + +@implementation YUMIManeGiveDiamondExternalizer +-(void)acquireGiveDiamondReflection{ + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NSString * ticket = [AccountAbstractStorage instance].acquireTicket; + [Api acquireGiveDiamondSttowardsement:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + NSArray * array = [YUMIManeGiveDiamondMatrix mtowardsrixsAboutGarment:data.data]; + [[self acquireRegard] acquireGiveDiamondSttowardsementAccomplishment:array]; + }] ticket:ticket uid:uid pageNum:@"1" pageSize:@"100"]; +} + + +-(void)acquireConsumerPocketbookAbstract{ + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NSString * ticket = [AccountAbstractStorage instance].acquireTicket; + [Api acquireConsumerPocketbookAbstract:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + RamparatetAbstractMatrix * model = [RamparatetAbstractMatrix mtowardsrixAboutImpactbasket:data.data]; + [[self acquireRegard] acquireConsumerPocketbookAbstract:model]; + }] uid:uid ticket:ticket]; +} +-(void)acknowledgementPerformanceAboutIntersectAboutToCid:(NSString *)touid diamondNum:(NSString *) diamondNum payPwd:(NSString *)payPwd{ + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NSString * ticket = [AccountAbstractStorage instance].acquireTicket; + NSString *payPwds = [DESEncrypt encryptUseDES:payPwd key:KeyWithType(KeyGenre_PasswordEncode)]; + [Api acknowledgementPerformanceAboutIntersect:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] acknowledgementPerformanceAboutIntersect]; + }] ticket:ticket uid:uid toUid:touid diamondNum:diamondNum payPwd:payPwds]; +} +-(void)huntforGivePeopleAbout:(NSString *)erbanNo{ + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NSString * ticket = [AccountAbstractStorage instance].acquireTicket; + [Api huntforGivePeople:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + YUMIManeGiveDiamondHuntforMatrix *model = [YUMIManeGiveDiamondHuntforMatrix mtowardsrixAboutImpactbasket:data.data]; + [[self acquireRegard] huntforGivePeopleWihtMtowardsrix:model]; + }] ticket:ticket uid:uid erbanNo:erbanNo]; +} +-(void)acquireExamplesHLOfReflectionAboutCid:(NSString *)toUid type:(int)type page:(int)page { + [Api acquireexamplesHLOfReflection:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + NSArray *listMatrix = [YUMIManeGiveDiamondSpecificsMatrix mtowardsrixsAboutGarment:data.data]; + [[self acquireRegard]acquireexamplesHLOfReflectionAboutSttowardsement:listMatrix state:type]; + }fail:^(NSInteger code, NSString * _Nullable msg) { + [[self acquireRegard]acquireexamplesHLOfReflectionAboutSttowardsementAboutFlunkDeclare:type]; + } EvidenceChambering:YES] toUid:toUid type:@(type).stringValue pageNum:@(page).stringValue]; +} +-(void)acquireImpactPresentSttowardsement{ + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NSString * ticket = [AccountAbstractStorage instance].acquireTicket; + [Api requisitionImpactPresentSttowardsement:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + NSArray * info = [PresentAbstractMatrix mtowardsrixsAboutGarment:data.data]; + [[self acquireRegard] acquireShetowardshePresentSttowardsementAccomplishment:info]; + }fail:^(NSInteger code, NSString * _Nullable msg) { + [[self acquireRegard] acquireShetowardshePresentSttowardsementFlunk:msg]; + }] uid:uid ticket:ticket]; +} +-(void)givePresentAboutToCid:(NSString *)toUid giftId:(NSString *)giftId giftNum:(NSString *)giftNum{ + [Api givePresent:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] givePresentAccomplishment]; + }] toUid:toUid giftId:giftId giftNum:giftNum]; +} +@end + + + diff --git a/YuMi/Modules/YMMine/View/GiveDiamond/Protocol/FBCManeGiveDiamondCeremony.h b/YuMi/Modules/YMMine/View/GiveDiamond/Protocol/FBCManeGiveDiamondCeremony.h new file mode 100644 index 00000000..61ad410d --- /dev/null +++ b/YuMi/Modules/YMMine/View/GiveDiamond/Protocol/FBCManeGiveDiamondCeremony.h @@ -0,0 +1,30 @@ +// +// FBCManeGiveDiamondCeremony.h +// YuMi +// +// Created by YuMi on 2022/10/19. +// + +#import +@class RamparatetAbstractMatrix,YUMIManeGiveDiamondHuntforMatrix,YUMIManeGiveDiamondSpecificsMatrix,PresentAbstractMatrix; +NS_ASSUME_NONNULL_BEGIN + +@protocol FBCManeGiveDiamondCeremony +@optional + +- (void)acquireGiveDiamondSttowardsementAccomplishment:(NSArray *)array; +- (void)huntforConcludeAboutEssay:(NSString *)text; +- (void)acquireConsumerPocketbookAbstract:(RamparatetAbstractMatrix *)balanceInfo; +-(void)acknowledgementPerformanceAboutEssay:(NSString *)text; +-(void)acknowledgementPerformanceAboutEssay:(NSString *)text concludePresentMatrix:(PresentAbstractMatrix *)concludePresentMatrix; +-(void)acknowledgementPerformanceAboutIntersect; +-(void)huntforGivePeopleWihtMtowardsrix:(YUMIManeGiveDiamondHuntforMatrix *)model; +-(void)acquireexamplesHLOfReflectionAboutSttowardsement:(NSArray *)list state:(int)state; +-(void)acquireexamplesHLOfReflectionAboutSttowardsementAboutFlunkDeclare:(int)state; + +- (void)acquireShetowardshePresentSttowardsementAccomplishment:(NSArray *)giftList; +- (void)acquireShetowardshePresentSttowardsementFlunk:(NSString *)message; +-(void)givePresentAccomplishment; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIManeChooseGiveDiamondRegard.h b/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIManeChooseGiveDiamondRegard.h new file mode 100644 index 00000000..ae29fc23 --- /dev/null +++ b/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIManeChooseGiveDiamondRegard.h @@ -0,0 +1,33 @@ +// +// YUMIManeChooseGiveDiamondRegard.h +// YuMi +// +// Created by YuMi on 2022/10/19. +// + +#import +#import "YUMIManeGiveDiamondMatrix.h" +#import "FBCManeGiveDiamondCeremony.h" +#import "ConsumerAbstractMatrix.h" +NS_ASSUME_NONNULL_BEGIN + + + +@interface YUMIManeChooseGiveDiamondRegard : UIView +@property (nonatomic,strong) YUMIManeGiveDiamondMatrix *giveBWSttawberryMatrix; +@property (nonatomic,copy) NSString *strawberry; +@property (nonatomic,weak) id delegate; +@property (nonatomic,strong) ConsumerAbstractMatrix *userInfo; +@property (nonatomic,assign) int type; +-(instancetype)initWithFrame:(CGRect)frame isHaveGiveBWSttawberry:(BOOL)isHaveGiveBWSttawberry isHaveGivePresent:(BOOL)isHaveGivePresent; +-(void)setListData:(NSMutableArray *)listData count:(NSInteger)count; +@end + + + + + + + + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIManeChooseGiveDiamondRegard.m b/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIManeChooseGiveDiamondRegard.m new file mode 100644 index 00000000..b6dd6145 --- /dev/null +++ b/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIManeChooseGiveDiamondRegard.m @@ -0,0 +1,471 @@ +// +// YUMIManeChooseGiveDiamondRegard.m +// YuMi +// +// Created by YuMi on 2022/10/19. +// + +#import "YUMIManeChooseGiveDiamondRegard.h" +#import "YUMIManeChooseGivePresentRegardElement.h" + +#import "YUMIUnionDispossessAssembletionRegardElement.h" +#import "PresentAbstractMatrix.h" +#import "YUMIManeChooseGivePresentRegard.h" +#import "NetIndicateRegard.h" +#import "ClientDisposition.h" + +@interface YUMIManeChooseGiveDiamondRegard() +@property (nonatomic,strong) NetIndicateRegard *intelligenceRegard; +@property (nonatomic,strong) UILabel *titleView; +@property (nonatomic,strong) UILabel *idChampionRegard; +@property (nonatomic,strong) UIStackView *genreHierarchyRegard; +@property (nonatomic,strong) UIButton *bWSttawberryBtuton; +@property (nonatomic,strong) UIButton *presentBtuton; +@property (nonatomic,strong) UIImageView *figureFigure; +@property (nonatomic,strong) UITextField *bWSttawberryFigureRegard; +@property (nonatomic,strong) UILabel * mieyBWSttawberryFigureRegard; +@property (nonatomic,strong) UIImageView *mieyBWSttawberryFigure; +@property (nonatomic,strong) UIButton *confirmBtn; +@property (nonatomic,strong) UIView *burlywoodRegard; +@property (nonatomic,strong) YUMIManeChooseGivePresentRegard *givePresentRegard; + +@property (nonatomic,assign) BOOL isHaveGiveBWSttawberry; +@property (nonatomic,assign) BOOL isHaveGivePresent; +@end +@implementation YUMIManeChooseGiveDiamondRegard + +-(instancetype)initWithFrame:(CGRect)frame isHaveGiveBWSttawberry:(BOOL)isHaveGiveBWSttawberry isHaveGivePresent:(BOOL)isHaveGivePresent{ + self = [super initWithFrame:frame]; + if(self){ + self.isHaveGiveBWSttawberry = isHaveGiveBWSttawberry; + self.isHaveGivePresent = isHaveGivePresent; + [self initSubViews]; + [self initChildLyRestrictions]; + if (self.isHaveGiveBWSttawberry == NO && self.isHaveGivePresent == YES){ + [self concludePresentPerformance]; + } + + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + + [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(keyboardWillShow:)name:UIKeyboardWillShowNotification object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil]; + [self addSubview:self.intelligenceRegard]; + [self addSubview:self.titleView]; + [self addSubview:self.idChampionRegard]; + [self addSubview:self.genreHierarchyRegard]; + [self.genreHierarchyRegard addArrangedSubview:self.bWSttawberryBtuton]; + [self.genreHierarchyRegard addArrangedSubview:self.presentBtuton]; + + + + [self addSubview:self.figureFigure]; + [self addSubview:self.bWSttawberryFigureRegard]; + [self addSubview:self.burlywoodRegard]; + [self addSubview:self.mieyBWSttawberryFigure]; + [self addSubview:self.mieyBWSttawberryFigureRegard]; + [self addSubview:self.confirmBtn]; + [self addSubview:self.givePresentRegard]; + + + +} +- (void)initChildLyRestrictions { + [self.intelligenceRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.mas_equalTo(kGetScaleWidth(50)); + make.top.mas_equalTo(kGetScaleWidth(16)); + make.left.mas_equalTo(kGetScaleWidth(15)); + }]; + [self.titleView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.equalTo(self.intelligenceRegard.mas_right).mas_offset(kGetScaleWidth(10)); + make.top.equalTo(self.intelligenceRegard.mas_top).mas_offset(kGetScaleWidth(8)); + make.right.mas_equalTo(-kGetScaleWidth(15)); + make.height.mas_equalTo(kGetScaleWidth(17)); + }]; + [self.idChampionRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.equalTo(self.titleView); + make.height.mas_equalTo(kGetScaleWidth(14)); + make.top.equalTo(self.titleView.mas_bottom).mas_offset(kGetScaleWidth(4)); + }]; + + + if(self.isHaveGivePresent == YES && self.isHaveGiveBWSttawberry == YES){ + [self.genreHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(kGetScaleWidth(15)); + make.width.mas_equalTo(kGetScaleWidth(178)); + make.height.mas_equalTo(kGetScaleWidth(31)); + make.top.equalTo(self.intelligenceRegard.mas_bottom).mas_offset(kGetScaleWidth(25)); + }]; + self.type = 0; + self.presentBtuton.hidden = NO; + self.bWSttawberryBtuton.hidden = NO; + self.genreHierarchyRegard.spacing = kGetScaleWidth(18); + }else if (self.isHaveGiveBWSttawberry == YES && self.isHaveGivePresent == NO){ + [self.genreHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(kGetScaleWidth(15)); + make.width.mas_equalTo(kGetScaleWidth(80)); + make.height.mas_equalTo(kGetScaleWidth(31)); + make.top.equalTo(self.intelligenceRegard.mas_bottom).mas_offset(kGetScaleWidth(25)); + }]; + self.type = 0; + self.presentBtuton.hidden = YES; + self.bWSttawberryBtuton.hidden = NO; + self.genreHierarchyRegard.spacing = kGetScaleWidth(0); + }else if (self.isHaveGiveBWSttawberry == NO && self.isHaveGivePresent == YES){ + [self.genreHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(kGetScaleWidth(15)); + make.width.mas_equalTo(kGetScaleWidth(80)); + make.height.mas_equalTo(kGetScaleWidth(31)); + make.top.equalTo(self.intelligenceRegard.mas_bottom).mas_offset(kGetScaleWidth(25)); + }]; + self.type = 1; + self.presentBtuton.hidden = NO; + self.bWSttawberryBtuton.hidden = YES; + self.genreHierarchyRegard.spacing = kGetScaleWidth(0); + + } + + [self.figureFigure mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.equalTo(self.intelligenceRegard); + make.width.height.mas_equalTo(kGetScaleWidth(24)); + make.top.equalTo(self.genreHierarchyRegard.mas_bottom).mas_offset(kGetScaleWidth(35)); + + }]; + [self.bWSttawberryBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(kGetScaleWidth(80)); + make.height.mas_equalTo(kGetScaleWidth(31)); + }]; + [self.presentBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.equalTo(self.bWSttawberryBtuton); + }]; + + [self.bWSttawberryFigureRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.equalTo(self.titleView); + make.height.mas_equalTo(kGetScaleWidth(24)); + make.left.equalTo(self.figureFigure.mas_right).mas_offset(kGetScaleWidth(10)); + make.centerY.equalTo(self.figureFigure); + }]; + [self.burlywoodRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(1); + make.left.equalTo(self.intelligenceRegard); + make.right.equalTo(self.titleView); + make.top.equalTo(self.figureFigure.mas_bottom).mas_offset(kGetScaleWidth(6)); + }]; + [self.mieyBWSttawberryFigure mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.equalTo(self.titleView); + make.width.height.equalTo(self.figureFigure); + make.top.equalTo(self.figureFigure.mas_bottom).mas_offset(kGetScaleWidth(9)); + }]; + [self.mieyBWSttawberryFigureRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.equalTo(self.mieyBWSttawberryFigure.mas_left).mas_offset(-kGetScaleWidth(8)); + make.height.equalTo(self.titleView); + make.left.equalTo(self.intelligenceRegard); + make.centerY.equalTo(self.mieyBWSttawberryFigure); + }]; + [self.confirmBtn mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.equalTo(self.intelligenceRegard); + make.right.equalTo(self.titleView); + make.top.equalTo(self.genreHierarchyRegard.mas_bottom).mas_offset(kGetScaleWidth(162)); + make.height.mas_equalTo(kGetScaleWidth(46)); + }]; + + [self.givePresentRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(0); + make.right.mas_equalTo(0); + make.top.equalTo(self.genreHierarchyRegard.mas_bottom).mas_offset(kGetScaleWidth(20)); + make.height.mas_equalTo(kGetScaleWidth(370)); + }]; + + +} +- (void)keyboardWillShow:(NSNotification *)notification + +{ if(!self.givePresentRegard.essayUniverse.isFirstResponder){return;} + NSDictionary *userInfo = [notification userInfo]; + CGFloat curkeyBoardHeight = [[[notification userInfo]objectForKey:@"UIKeyboardBoundsUserInfoKey"]CGRectValue].size.height; + CGRect begin = [[[notification userInfo]objectForKey:@"UIKeyboardFrameBeginUserInfoKey"]CGRectValue]; + CGRect end = [[[notification userInfo]objectForKey:@"UIKeyboardFrameEndUserInfoKey"]CGRectValue]; + + + if( begin.size.height > 0 && (begin.origin.y - end.origin.y > 0)){ + CGFloat keyBoardHeight = curkeyBoardHeight; + CGFloat animationDuration = [userInfo[UIKeyboardAnimationDurationUserInfoKey] doubleValue]; + [self.superview layoutIfNeeded]; + [UIView animateWithDuration:animationDuration animations:^{ + [self mas_updateConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(-keyBoardHeight); + }]; + [self.superview layoutIfNeeded]; + }]; + + } + +} +- (void)keyboardWillHide:(NSNotification *)notification{ + if(!self.givePresentRegard.essayUniverse.isFirstResponder){return;} + + NSDictionary *userInfo = [notification userInfo]; + NSValue *keyboardValue = [userInfo objectForKey:UIKeyboardFrameEndUserInfoKey]; + CGRect keyboardRect = [keyboardValue CGRectValue]; + CGFloat animationDuration = [userInfo[UIKeyboardAnimationDurationUserInfoKey] doubleValue]; + + [self.superview layoutIfNeeded]; + [UIView animateWithDuration:animationDuration animations:^{ + [self mas_updateConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(0); + }]; + + [self.superview layoutIfNeeded]; + }completion:^(BOOL finished) { + + }]; + +} +-(void)dealloc{ + [[NSNotificationCenter defaultCenter]removeObserver:self]; +} + +-(void)setListData:(NSMutableArray *)listData count:(NSInteger)count{ + [self.givePresentRegard setListData:listData count:count]; +} +#pragma mark- UITextFieldDelegate +-(void)essayUniverseDidDiversifictowardsion:(UITextField *)essayUniverse{ + self.confirmBtn.selected = essayUniverse.text.length > 0; +} +-(void)essayUniverseDidDiversifictowardsionAboutEssay:(NSString *)text{ + if(self.givePresentRegard.concludePresentMatrix != nil){ + self.confirmBtn.selected = text.length > 0; + } + +} +- (BOOL)essayUniverse:(UITextField *)essayUniverse shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{ + ClientDisposition *config = [ClientDisposition partowardsiciptowardsionDisposition]; + NSString *strawberry = [NSString stringWithFormat:@"%ld",config.dispositionAbstract.giveDiamondOnceLimitNum]; + if((essayUniverse.text.length + string.length) > strawberry.length){ + return NO; + } + return YES; +} +#pragma mark -btn方法 +-(void)acknowledgementPerformance{ + if(self.confirmBtn.selected == NO){ + return; + } + if(self.type == 0){ + [self.bWSttawberryFigureRegard resignFirstResponder]; + if(self.delegate && [self.delegate respondsToSelector:@selector(acknowledgementPerformanceAboutEssay:)]){ + [self.delegate acknowledgementPerformanceAboutEssay:self.bWSttawberryFigureRegard.text]; + } + return; + } + + if(self.givePresentRegard.concludePresentMatrix == nil){ + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:YMLocalizedString(@"YUMI_MineChooseGiveGiftView2")]; + return; + } + NSInteger count = [self.givePresentRegard.presentComputation integerValue]; + if(count == 0){ + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:YMLocalizedString(@"YUMI_MineChooseGiveGiftView4")]; + return; + } + if(count > self.givePresentRegard.concludePresentMatrix.count){ + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:YMLocalizedString(@"YUMI_MineChooseGiveGiftView3")]; + return; + } + + + [self.givePresentRegard resignFirstResponder]; + if(self.delegate && [self.delegate respondsToSelector:@selector(acknowledgementPerformanceAboutEssay: concludePresentMatrix:)]){ + [self.delegate acknowledgementPerformanceAboutEssay:self.givePresentRegard.presentComputation concludePresentMatrix:self.givePresentRegard.concludePresentMatrix]; + } +} + +-(void)concludeDiamondPerformance{ + self.bWSttawberryBtuton.selected = YES; + self.presentBtuton.selected = NO; + self.givePresentRegard.hidden = YES; + self.type = 0; + self.confirmBtn.selected = self.bWSttawberryFigureRegard.text.length > 0; + + [self.confirmBtn mas_updateConstraints:^(MASConstraintMaker *make) { + make.top.equalTo(self.genreHierarchyRegard.mas_bottom).mas_offset(kGetScaleWidth(162)); + }]; +} +-(void)concludePresentPerformance{ + self.type = 1; + self.bWSttawberryBtuton.selected = NO; + self.presentBtuton.selected = YES; + self.givePresentRegard.hidden = NO; + if(self.givePresentRegard.concludePresentMatrix != nil){ + self.confirmBtn.selected = self.givePresentRegard.presentComputation.length > 0; + }else{ + self.confirmBtn.selected = NO; + } + [self.confirmBtn mas_updateConstraints:^(MASConstraintMaker *make) { + make.top.equalTo(self.genreHierarchyRegard.mas_bottom).mas_offset(kGetScaleWidth(440)); + }]; +} +-(void)setGiveBWSttawberryMatrix:(YUMIManeGiveDiamondMatrix *)giveBWSttawberryMatrix{ + _giveBWSttawberryMatrix = giveBWSttawberryMatrix; + _intelligenceRegard.imageUrl = _giveBWSttawberryMatrix.targetAvatar; + _titleView.text = _giveBWSttawberryMatrix.targetNick; + _idChampionRegard.text = [NSString stringWithFormat:@"ID:%@",_giveBWSttawberryMatrix.targetErbanNo]; +} +-(void)setStrawberry:(NSString *)strawberry{ + _strawberry = strawberry; + _mieyBWSttawberryFigureRegard.text = [NSString stringWithFormat:@"%@%@",YMLocalizedString(@"YUMI_MineChooseGiveDiamondView0"),strawberry]; +} + +#pragma mark - 懒加载 +- (NetIndicateRegard *)intelligenceRegard{ + if (!_intelligenceRegard){ + NetIndicateDisposition *config = [[NetIndicateDisposition alloc]init]; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceRegard = [[NetIndicateRegard alloc]initWithConfig:config]; + _intelligenceRegard.layer.cornerRadius = kGetScaleWidth(25); + _intelligenceRegard.layer.masksToBounds = YES; + } + return _intelligenceRegard; +} + +-(UILabel *)titleView{ + if (!_titleView){ + _titleView = [UILabel new]; + _titleView.textColor = [DJDKMIMOMColor introjectionEssayPrettify]; + _titleView.font = [UIFont systemFontOfSize:kGetScaleWidth(14) weight:UIFontWeightMedium]; + } + return _titleView; +} +-(UILabel *)idChampionRegard{ + if (!_idChampionRegard){ + _idChampionRegard = [UILabel new]; + _idChampionRegard.font = [UIFont systemFontOfSize:kGetScaleWidth(12) weight:UIFontWeightMedium]; + _idChampionRegard.textColor = [DJDKMIMOMColor prohibitionBtutonEssayPrettify]; + } + return _idChampionRegard; +} + +-(UIImageView *)figureFigure{ + if (!_figureFigure){ + _figureFigure = [UIImageView new]; + _figureFigure.image = [UIImage imageNamed:@"yumi_center_give_diamone_pic"]; + } + return _figureFigure; +} + +- (UITextField *)bWSttawberryFigureRegard{ + if (!_bWSttawberryFigureRegard){ + _bWSttawberryFigureRegard = [UITextField new]; + _bWSttawberryFigureRegard.keyboardType = UIKeyboardTypeNumberPad; + _bWSttawberryFigureRegard.font = [UIFont systemFontOfSize:kGetScaleWidth(30) weight:UIFontWeightMedium]; + _bWSttawberryFigureRegard.textColor = [DJDKMIMOMColor introjectionEssayPrettify]; + _bWSttawberryFigureRegard.attributedPlaceholder = [[NSMutableAttributedString alloc]initWithString:@"0" attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:kGetScaleWidth(30) weight:UIFontWeightRegular],NSForegroundColorAttributeName:[DJDKMIMOMColor prohibitionBtutonEssayPrettify]}]; + _bWSttawberryFigureRegard.textAlignment = NSTextAlignmentRight; + [_bWSttawberryFigureRegard addTarget:self action:@selector(essayUniverseDidDiversifictowardsion:) forControlEvents:UIControlEventEditingChanged]; + _bWSttawberryFigureRegard.delegate = self; + } + return _bWSttawberryFigureRegard; +} +-(UIView *)burlywoodRegard{ + if (!_burlywoodRegard){ + _burlywoodRegard = [UIView new]; + _burlywoodRegard.backgroundColor = UIColorFromRGB(0xF7F7F7); + } + return _burlywoodRegard; +} +-(UILabel *)mieyBWSttawberryFigureRegard{ + if (!_mieyBWSttawberryFigureRegard){ + _mieyBWSttawberryFigureRegard = [UILabel new]; + _mieyBWSttawberryFigureRegard.textAlignment = NSTextAlignmentRight; + _mieyBWSttawberryFigureRegard.text = [NSString stringWithFormat:@"%@0",YMLocalizedString(@"YUMI_MineChooseGiveDiamondView0")]; + _mieyBWSttawberryFigureRegard.font = [UIFont systemFontOfSize:kGetScaleWidth(14) weight:UIFontWeightMedium]; + _mieyBWSttawberryFigureRegard.textColor = [DJDKMIMOMColor prohibitionBtutonEssayPrettify]; + } + return _mieyBWSttawberryFigureRegard; +} +-(UIImageView *)mieyBWSttawberryFigure{ + if (!_mieyBWSttawberryFigure){ + _mieyBWSttawberryFigure = [UIImageView new]; + _mieyBWSttawberryFigure.image = [UIImage imageNamed:@"yumi_center_give_diamone_pic"]; + } + return _mieyBWSttawberryFigure; +} +-(UIButton *)confirmBtn{ + if (!_confirmBtn){ + _confirmBtn = [UIButton new]; + [_confirmBtn setTitle:YMLocalizedString(@"YUMI_MineChooseGiveDiamondView1") forState:UIControlStateNormal]; + [_confirmBtn setTitleColor:[DJDKMIMOMColor prohibitionBtutonEssayPrettify] forState:UIControlStateNormal]; + [_confirmBtn setTitleColor:[UIColor whiteColor] forState:UIControlStateSelected]; + [_confirmBtn setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[UIColorFromRGB(0xE6E6F0),UIColorFromRGB(0xE6E6F0)] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(KScreenWidth - kGetScaleWidth(30), kGetScaleWidth(46))] forState:UIControlStateNormal]; + [_confirmBtn setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify],[DJDKMIMOMColor acknowledgementBtutonObliquityMiddlePrettify],[DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(KScreenWidth - kGetScaleWidth(30), kGetScaleWidth(46))] forState:UIControlStateSelected]; + _confirmBtn.layer.cornerRadius = kGetScaleWidth(46) / 2; + _confirmBtn.layer.masksToBounds = YES; + [_confirmBtn addTarget:self action:@selector(acknowledgementPerformance) forControlEvents:UIControlEventTouchUpInside]; + } + return _confirmBtn; +} +- (YUMIManeChooseGivePresentRegard *)givePresentRegard{ + if (!_givePresentRegard){ + _givePresentRegard = [[YUMIManeChooseGivePresentRegard alloc]initWithFrame:CGRectZero]; + _givePresentRegard.hidden = YES; + _givePresentRegard.delegate = self; + } + return _givePresentRegard; +} + +- (UIStackView *)genreHierarchyRegard{ + if (!_genreHierarchyRegard) { + _genreHierarchyRegard = [[UIStackView alloc] init]; + _genreHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _genreHierarchyRegard.distribution = UIStackViewDistributionFill; + _genreHierarchyRegard.alignment = UIStackViewAlignmentFill; + + } + return _genreHierarchyRegard; +} + +- (UIButton *)bWSttawberryBtuton{ + if (!_bWSttawberryBtuton){ + _bWSttawberryBtuton = [UIButton new]; + UIImage *noChooseImage = [UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[UIColorFromRGB(0xE6E6F0),UIColorFromRGB(0xE6E6F0),UIColorFromRGB(0xE6E6F0)] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(kGetScaleWidth(80), kGetScaleWidth(31))]; + UIImage *chooseImage = [UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify],[DJDKMIMOMColor acknowledgementBtutonObliquityMiddlePrettify],[DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(kGetScaleWidth(80), kGetScaleWidth(31))]; + [_bWSttawberryBtuton setBackgroundImage:noChooseImage forState:UIControlStateNormal]; + [_bWSttawberryBtuton setBackgroundImage:chooseImage forState:UIControlStateSelected]; + _bWSttawberryBtuton.titleLabel.font = [UIFont systemFontOfSize:14]; + [_bWSttawberryBtuton setTitle:YMLocalizedString(@"YUMI_MineChooseGiveDiamondView2") forState:UIControlStateNormal]; + [_bWSttawberryBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateSelected]; + [_bWSttawberryBtuton setTitleColor:UIColorFromRGB(0x6D6B89) forState:UIControlStateNormal]; + _bWSttawberryBtuton.selected = YES; + _bWSttawberryBtuton.layer.cornerRadius = kGetScaleWidth((31))/2; + _bWSttawberryBtuton.layer.masksToBounds = YES; + [_bWSttawberryBtuton addTarget:self action:@selector(concludeDiamondPerformance) forControlEvents:UIControlEventTouchUpInside]; + + } + return _bWSttawberryBtuton; +} +-(UIButton *)presentBtuton{ + if (!_presentBtuton){ + _presentBtuton = [UIButton new]; + UIImage *noChooseImage = [UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[UIColorFromRGB(0xE6E6F0),UIColorFromRGB(0xE6E6F0),UIColorFromRGB(0xE6E6F0)] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(kGetScaleWidth(80), kGetScaleWidth(31))]; + UIImage *chooseImage = [UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify],[DJDKMIMOMColor acknowledgementBtutonObliquityMiddlePrettify],[DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(kGetScaleWidth(80), kGetScaleWidth(31))]; + [_presentBtuton setBackgroundImage:noChooseImage forState:UIControlStateNormal]; + [_presentBtuton setBackgroundImage:chooseImage forState:UIControlStateSelected]; + _presentBtuton.titleLabel.font = [UIFont systemFontOfSize:14]; + [_presentBtuton setTitle:YMLocalizedString(@"YUMI_MineChooseGiveDiamondView3") forState:UIControlStateNormal]; + [_presentBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateSelected]; + [_presentBtuton setTitleColor:UIColorFromRGB(0x6D6B89) forState:UIControlStateNormal]; + _presentBtuton.selected = NO; + _presentBtuton.layer.cornerRadius = kGetScaleWidth((31))/2; + _presentBtuton.layer.masksToBounds = YES; + [_presentBtuton addTarget:self action:@selector(concludePresentPerformance) forControlEvents:UIControlEventTouchUpInside]; + + } + return _presentBtuton; +} +@end + + diff --git a/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIManeChooseGivePresentRegard.h b/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIManeChooseGivePresentRegard.h new file mode 100644 index 00000000..c2d8912d --- /dev/null +++ b/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIManeChooseGivePresentRegard.h @@ -0,0 +1,28 @@ +// +// YUMIManeChooseGivePresentRegard.h +// YuMi +// +// Created by YuMi on 2022/11/2. +// + +#import +#import "PresentAbstractMatrix.h" +NS_ASSUME_NONNULL_BEGIN +@protocol FBCManeChooseGivePresentRegardRepresendtation + +-(void)essayUniverseDidDiversifictowardsionAboutEssay:(NSString *)text; + +@end + +@interface YUMIManeChooseGivePresentRegard : UIView +@property (nonatomic,strong) UITextField *essayUniverse; +@property (nonatomic,copy) NSString *presentComputation; +@property (nonatomic,assign) NSInteger curPeriod; +@property (nonatomic,assign) NSInteger count; +@property (nonatomic,weak) id delegate; +@property (nonatomic,strong) PresentAbstractMatrix *concludePresentMatrix; +-(void)setListData:(NSMutableArray *)listData count:(NSInteger)count; +-(void)resignFirstResponder; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIManeChooseGivePresentRegard.m b/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIManeChooseGivePresentRegard.m new file mode 100644 index 00000000..cc23a6d2 --- /dev/null +++ b/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIManeChooseGivePresentRegard.m @@ -0,0 +1,270 @@ +// +// YUMIManeChooseGivePresentRegard.m +// YuMi +// +// Created by YuMi on 2022/11/2. +// +#import "YUMIPageControl.h" +#import "YUMIManeChooseGivePresentRegard.h" +#import "YUMIManeChooseGivePresentRegardElement.h" +#import "YUMIUnionDispossessAssembletionRegardElement.h" +#import "UIView+Corner.h" +@interface YUMIManeChooseGivePresentRegard() +@property (nonatomic,strong) UICollectionView *collectionView; +@property (nonatomic,strong) UIView *backgroundRegard; +@property (nonatomic,strong) YUMIPageControl *pageControl; +@property (nonatomic,strong) NSMutableArray *listData; +@property (nonatomic,strong) NSIndexPath *indexPath; + +@property (nonatomic,strong) UILabel *figureRegard; + +@property (nonatomic,strong) UIView *burlywoodRegard; +@property (nonatomic,strong) UIButton *entiretyBtuton; +@end +@implementation YUMIManeChooseGivePresentRegard + +-(instancetype)initWithFrame:(CGRect)frame{ + self = [super initWithFrame:frame]; + if(self){ + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.backgroundRegard]; + [self addSubview:self.collectionView]; + [self addSubview:self.pageControl]; + [self addSubview:self.figureRegard]; + [self addSubview:self.essayUniverse]; + [self addSubview:self.burlywoodRegard]; + [self addSubview:self.entiretyBtuton]; +} + +- (void)initChildLyRestrictions { + [self.backgroundRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(kGetScaleWidth(15)); + make.right.mas_equalTo(-kGetScaleWidth(15)); + make.top.equalTo(self); + make.height.mas_equalTo(kGetScaleWidth(290)); + }]; + [self.collectionView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(kGetScaleWidth(15)); + make.right.mas_equalTo(-kGetScaleWidth(15)); + make.top.equalTo(self); + make.height.mas_equalTo(kGetScaleWidth(248)); + }]; + [self.pageControl mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.equalTo(self); + make.top.mas_equalTo(kGetScaleWidth(269)); + make.height.mas_equalTo(kGetScaleWidth(3)); + make.width.mas_equalTo(0); + }]; + [self.essayUniverse mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(-kGetScaleWidth(15)); + make.height.mas_equalTo(kGetScaleWidth(17)); + make.width.mas_equalTo(kGetScaleWidth(156)); + make.top.equalTo(self.backgroundRegard.mas_bottom).mas_offset(kGetScaleWidth(23)); + }]; + [self.figureRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.equalTo(self.essayUniverse); + make.right.equalTo(self.essayUniverse.mas_left).mas_offset(-kGetScaleWidth(10)); + }]; + [self.burlywoodRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.equalTo(self.essayUniverse); + make.left.equalTo(self.figureRegard); + make.height.mas_equalTo(1); + make.top.equalTo(self.essayUniverse.mas_bottom).mas_offset(kGetScaleWidth(11)); + }]; + [self.entiretyBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(kGetScaleWidth(36)); + make.height.mas_equalTo(kGetScaleWidth(19)); + make.right.equalTo(self.essayUniverse); + make.top.equalTo(self.burlywoodRegard.mas_bottom).mas_offset(kGetScaleWidth(10)); + }]; +} +-(void)setListData:(NSMutableArray *)listData count:(NSInteger)count{ + self.listData = listData; + if(listData.count == 0)return; + [self.collectionView reloadData]; + + self.pageControl.count = count; + self.pageControl.curPeriod = 1; + self.pageControl.hidden = count == 1; +} +-(void)resignFirstResponder{ + [self.essayUniverse resignFirstResponder]; +} +- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{ + if(self.listData.count == 0){ + YUMIUnionDispossessAssembletionRegardElement * cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([YUMIUnionDispossessAssembletionRegardElement class]) forIndexPath:indexPath]; + [cell setConstraints]; + [cell setTitle:YMLocalizedString(@"YUMI_MineChooseGiveGiftView5")]; + return cell; + } + NSInteger count = indexPath.section / 4; + NSInteger index = indexPath.row == 0 ? indexPath.section + count * 4 : indexPath.section + count * 4 + 4; + PresentAbstractMatrix *presentMatrix = self.listData[index]; + if(presentMatrix.isEmpty == YES){ + UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([UICollectionViewCell class]) forIndexPath:indexPath]; + cell.backgroundColor = [UIColor clearColor]; + return cell; + } + YUMIManeChooseGivePresentRegardElement *cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([YUMIManeChooseGivePresentRegardElement class]) forIndexPath:indexPath]; + cell.presentMatrix = presentMatrix; + cell.isConclude = NO; + if(self.indexPath != nil){ + if(self.indexPath.section == indexPath.section){ + cell.isConclude = self.indexPath.row == indexPath.row; + } + } + + return cell; +} + +- (NSInteger)collectionView:(nonnull UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { + if(self.listData.count == 0)return 1; + return 2; + + +} +-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView{ + NSInteger page = scrollView.contentOffset.x / (KScreenWidth - kGetScaleWidth(30)); + self.pageControl.curPeriod = ceil(page+1); +} +-(NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView{ + + return self.listData.count > 0 ? self.listData.count / 2 : 1; +} +- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath{ + if(self.listData.count == 0)return self.collectionView.frame.size; + return CGSizeMake(kGetScaleWidth(72), kGetScaleWidth(107)); +} +- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout insetForSectionAtIndex:(NSInteger)section{ + if(self.listData.count == 0)return UIEdgeInsetsMake(0,0, 0, 0); + if(section == 0){ + return UIEdgeInsetsMake(kGetScaleWidth(17), kGetScaleWidth(14), 0, 0); + }else if (section == self.listData.count / 2 - 1){ + return UIEdgeInsetsMake(kGetScaleWidth(17), kGetScaleWidth(10), 0, kGetScaleWidth(14)); + }else if (section % 4 == 0){ + return UIEdgeInsetsMake(kGetScaleWidth(17), kGetScaleWidth(28), 0, 0); + } + return UIEdgeInsetsMake(kGetScaleWidth(17), kGetScaleWidth(10), 0, 0); +} +-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{ + + id cell = [collectionView cellForItemAtIndexPath:indexPath]; + if([cell isKindOfClass:[YUMIManeChooseGivePresentRegardElement class]]){ + YUMIManeChooseGivePresentRegardElement *getCell = (YUMIManeChooseGivePresentRegardElement *)cell; + self.indexPath = indexPath; + self.concludePresentMatrix = getCell.presentMatrix; + [self.collectionView reloadData]; + if(self.delegate && [self.delegate respondsToSelector:@selector(essayUniverseDidDiversifictowardsionAboutEssay:)]){ + [self.delegate essayUniverseDidDiversifictowardsionAboutEssay:self.essayUniverse.text]; + } + } + + +} +- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section{ + return kGetScaleWidth(10); +} +#pragma mark- UITextFieldDelegate +-(void)essayUniverseDidDiversifictowardsion:(UITextField *)essayUniverse{ + if(self.delegate && [self.delegate respondsToSelector:@selector(essayUniverseDidDiversifictowardsionAboutEssay:)]){ + [self.delegate essayUniverseDidDiversifictowardsionAboutEssay:essayUniverse.text]; + } +} +-(void)entiretyConcludePerformance{ + if(self.concludePresentMatrix == nil){ + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:YMLocalizedString(@"YUMI_MineChooseGiveGiftView2")]; + return; + } + self.essayUniverse.text = @(self.concludePresentMatrix.count).stringValue; +} +#pragma mark -懒加载 + + +- (UICollectionView *)collectionView{ + if (!_collectionView){ + UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc]init]; + layout.scrollDirection = UICollectionViewScrollDirectionHorizontal; + _collectionView = [[UICollectionView alloc]initWithFrame:CGRectZero collectionViewLayout:layout]; + _collectionView.delegate = self; + _collectionView.dataSource = self; + _collectionView.pagingEnabled = YES; + _collectionView.showsHorizontalScrollIndicator = NO; + _collectionView.backgroundColor = [UIColor clearColor]; + [_collectionView registerClass:[YUMIManeChooseGivePresentRegardElement class] forCellWithReuseIdentifier:NSStringFromClass([YUMIManeChooseGivePresentRegardElement class])]; + [_collectionView registerClass:[UICollectionViewCell class] forCellWithReuseIdentifier:NSStringFromClass([UICollectionViewCell class])]; + [_collectionView registerClass:[YUMIUnionDispossessAssembletionRegardElement class] forCellWithReuseIdentifier:NSStringFromClass([YUMIUnionDispossessAssembletionRegardElement class])]; + } + return _collectionView; +} + +-(UIView *)backgroundRegard{ + if (!_backgroundRegard){ + _backgroundRegard = [UIView new]; + _backgroundRegard.backgroundColor = UIColorFromRGB(0xF3F5FA); + [_backgroundRegard setMonopolizeAboutContraryApexMonopolize:8 rightTopCorner:8 bottomLeftCorner:8 bottomRightCorner:8 size:CGSizeMake(kGetScaleWidth(345), kGetScaleWidth(290))]; + } + return _backgroundRegard; +} +- (YUMIPageControl *)pageControl{ + if (!_pageControl){ + _pageControl = [[YUMIPageControl alloc]init]; + _pageControl.backgroundColor = [UIColor clearColor]; + + } + return _pageControl; +} + +- (UILabel *)figureRegard { + if (!_figureRegard) { + _figureRegard = [[UILabel alloc] init]; + _figureRegard.font = [UIFont systemFontOfSize:11]; + _figureRegard.textColor = [DJDKMIMOMColor prohibitionBtutonEssayPrettify]; + _figureRegard.text = YMLocalizedString(@"YUMI_MineChooseGiveGiftView0"); + } + return _figureRegard; +} + +-(UITextField *)essayUniverse{ + if (!_essayUniverse){ + _essayUniverse = [UITextField new]; + _essayUniverse.keyboardType = UIKeyboardTypeNumberPad; + _essayUniverse.font = [UIFont systemFontOfSize:kGetScaleWidth(20) weight:UIFontWeightMedium]; + _essayUniverse.textColor = [DJDKMIMOMColor introjectionEssayPrettify]; + _essayUniverse.attributedPlaceholder = [[NSMutableAttributedString alloc]initWithString:@"0" attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:kGetScaleWidth(20) weight:UIFontWeightRegular],NSForegroundColorAttributeName:[DJDKMIMOMColor prohibitionBtutonEssayPrettify]}]; + _essayUniverse.textAlignment = NSTextAlignmentRight; + _essayUniverse.text = @"1"; + [_essayUniverse addTarget:self action:@selector(essayUniverseDidDiversifictowardsion:) forControlEvents:UIControlEventEditingChanged]; + } + return _essayUniverse; +} +-(UIView *)burlywoodRegard{ + if (!_burlywoodRegard){ + _burlywoodRegard = [UIView new]; + _burlywoodRegard.backgroundColor = UIColorFromRGB(0xF7F7F7); + } + return _burlywoodRegard; +} +-(UIButton *)entiretyBtuton{ + if (!_entiretyBtuton){ + _entiretyBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_entiretyBtuton setTitle:YMLocalizedString(@"YUMI_MineChooseGiveGiftView1") forState:UIControlStateNormal]; + _entiretyBtuton.titleLabel.font = [UIFont systemFontOfSize:12]; + [_entiretyBtuton setTitleColor:[DJDKMIMOMColor prohibitionBtutonEssayPrettify] forState:UIControlStateNormal]; + _entiretyBtuton.backgroundColor = UIColorFromRGB(0xF3F5FA); + [_entiretyBtuton setMonopolizeAboutContraryApexMonopolize:4 rightTopCorner:4 bottomLeftCorner:4 bottomRightCorner:4 size:CGSizeMake(kGetScaleWidth(36), kGetScaleWidth(19))]; + [_entiretyBtuton addTarget:self action:@selector(entiretyConcludePerformance) forControlEvents:UIControlEventTouchUpInside]; + } + return _entiretyBtuton; +} +-(NSString *)presentComputation{ + return self.essayUniverse.text; +} + +@end diff --git a/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIManeChooseGivePresentRegardElement.h b/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIManeChooseGivePresentRegardElement.h new file mode 100644 index 00000000..3c516102 --- /dev/null +++ b/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIManeChooseGivePresentRegardElement.h @@ -0,0 +1,18 @@ +// +// YUMIManeChooseGivePresentRegardElement.h +// YuMi +// +// Created by YuMi on 2022/11/1. +// + +#import +#import "PresentAbstractMatrix.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeChooseGivePresentRegardElement : UICollectionViewCell +@property (nonatomic,strong) PresentAbstractMatrix * presentMatrix; +@property (nonatomic,assign) BOOL isConclude; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIManeChooseGivePresentRegardElement.m b/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIManeChooseGivePresentRegardElement.m new file mode 100644 index 00000000..3fee5508 --- /dev/null +++ b/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIManeChooseGivePresentRegardElement.m @@ -0,0 +1,102 @@ +// +// YUMIManeChooseGivePresentRegardElement.m +// YuMi +// +// Created by YuMi on 2022/11/1. +// + +#import "YUMIManeChooseGivePresentRegardElement.h" +#import "NetIndicateRegard.h" +#import "UIView+Corner.h" +@interface YUMIManeChooseGivePresentRegardElement() +@property (nonatomic,strong) NetIndicateRegard *presentIndicateRegard; +@property (nonatomic,strong) UILabel *presentConstituteRegard; +@property (nonatomic,strong) UILabel *presentFigureRegard; +@end +@implementation YUMIManeChooseGivePresentRegardElement +-(instancetype)initWithFrame:(CGRect)frame{ + self = [super initWithFrame:frame]; + if(self){ + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor]; + + [self.contentView addSubview:self.presentIndicateRegard]; + [self.contentView addSubview:self.presentConstituteRegard]; + [self.contentView addSubview:self.presentFigureRegard]; +} +- (void)initChildLyRestrictions { + [self.presentIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.mas_equalTo(kGetScaleWidth(72)); + make.top.centerX.equalTo(self.contentView); + + }]; + [self.presentConstituteRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.equalTo(self.contentView); + make.height.mas_equalTo(kGetScaleWidth(12)); + make.top.equalTo(self.presentIndicateRegard.mas_bottom).mas_offset(kGetScaleWidth(6)); + }]; + [self.presentFigureRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.left.equalTo(self.contentView); + make.height.equalTo(self.presentConstituteRegard); + make.top.equalTo(self.presentConstituteRegard.mas_bottom).mas_offset(kGetScaleWidth(5)); + }]; +} +-(void)setIsConclude:(BOOL)isConclude{ + _isConclude = isConclude; + UIImage *image = [UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify],[DJDKMIMOMColor acknowledgementBtutonObliquityMiddlePrettify],[DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(kGetScaleWidth(72), kGetScaleWidth(72))]; + UIColor *lineColor = [UIColor colorWithPatternImage:image]; + _presentIndicateRegard.layer.borderColor = _isConclude ? lineColor.CGColor : [UIColor clearColor].CGColor; +} +-(void)setPresentMatrix:(PresentAbstractMatrix *)presentMatrix{ + _presentMatrix = presentMatrix; + _presentIndicateRegard.imageUrl = _presentMatrix.giftUrl; + _presentConstituteRegard.text = _presentMatrix.giftName; + _presentFigureRegard.text = [NSString stringWithFormat:@"x%@",@(_presentMatrix.count)]; +} +#pragma mark -懒加载 + + +- (NetIndicateRegard *)presentIndicateRegard{ + if (!_presentIndicateRegard){ + NetIndicateDisposition *config = [[NetIndicateDisposition alloc]init]; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _presentIndicateRegard = [[NetIndicateRegard alloc]initWithConfig:config]; + [_presentIndicateRegard setMonopolizeAboutContraryApexMonopolize:8 rightTopCorner:8 bottomLeftCorner:8 bottomRightCorner:8 size:CGSizeMake(kGetScaleWidth(72), kGetScaleWidth(72))]; + _presentIndicateRegard.backgroundColor = [UIColor whiteColor]; + UIImage *image = [UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify],[DJDKMIMOMColor acknowledgementBtutonObliquityMiddlePrettify],[DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(kGetScaleWidth(72), kGetScaleWidth(72))]; + UIColor *lineColor = [UIColor colorWithPatternImage:image]; + _presentIndicateRegard.layer.cornerRadius = kGetScaleWidth(8); + _presentIndicateRegard.layer.masksToBounds = YES; + _presentIndicateRegard.layer.borderWidth = 1; + _presentIndicateRegard.layer.borderColor = lineColor.CGColor; + } + return _presentIndicateRegard; +} + +- (UILabel *)presentConstituteRegard { + if (!_presentConstituteRegard) { + _presentConstituteRegard = [[UILabel alloc] init]; + _presentConstituteRegard.font = [UIFont systemFontOfSize:12]; + _presentConstituteRegard.textColor = UIColorFromRGB(0x6D6B89); + _presentConstituteRegard.textAlignment = NSTextAlignmentCenter; + } + return _presentConstituteRegard; +} + +- (UILabel *)presentFigureRegard { + if (!_presentFigureRegard) { + _presentFigureRegard = [[UILabel alloc] init]; + _presentFigureRegard.font = [UIFont systemFontOfSize:12]; + _presentFigureRegard.textColor = UIColorFromRGB(0x6D6B89); + } + return _presentFigureRegard; +} + +@end diff --git a/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIManeConfirmGiveDiamondRegard.h b/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIManeConfirmGiveDiamondRegard.h new file mode 100644 index 00000000..cd1c2a02 --- /dev/null +++ b/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIManeConfirmGiveDiamondRegard.h @@ -0,0 +1,45 @@ +// +// YUMIManeConfirmGiveDiamondRegard.h +// YuMi +// +// Created by YuMi on 2022/10/20. +// + +#import +#import "ConsumerAbstractMatrix.h" +#import "YUMIManeGiveDiamondMatrix.h" +NS_ASSUME_NONNULL_BEGIN + + + + + + +@protocol FBCManeConfirmGiveDiamondRegardRepresendtation + +- (void)yumiManeConfirmGiveDiamondRegardAccomplish; + + + +@end + +@interface YUMIManeConfirmGiveDiamondRegard : UIView +@property (nonatomic,strong) YUMIManeGiveDiamondMatrix *giveBWSttawberryMatrix; +@property (nonatomic,assign) int type; +@property (nonatomic,assign) NSInteger introjectionBWSttawberrys; +@property (nonatomic,assign) NSInteger goldNum; +@property (nonatomic,assign) double poundage; +@property (nonatomic,weak) id delegate; +@end + +NS_ASSUME_NONNULL_END + + + + +@interface YUMIManeConfirmGiveDiamondProvisionRegard : UIView + +@property(nonatomic,copy)NSString *title; + +@property(nonatomic,copy)NSString *num; +@end diff --git a/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIManeConfirmGiveDiamondRegard.m b/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIManeConfirmGiveDiamondRegard.m new file mode 100644 index 00000000..3efcd4f3 --- /dev/null +++ b/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIManeConfirmGiveDiamondRegard.m @@ -0,0 +1,333 @@ +// +// YUMIManeConfirmGiveDiamondRegard.m +// YuMi +// +// Created by YuMi on 2022/10/20. +// + +#import "YUMIManeConfirmGiveDiamondRegard.h" +#import "ClientDisposition.h" +#import "MKJPopup.h" +#import "UIButton+EnlargeTouchArea.h" +@interface YUMIManeConfirmGiveDiamondRegard() +@property (nonatomic,strong) UILabel *titleView; +@property (nonatomic,strong) UILabel *figureRegard; +@property (nonatomic,strong) UIButton *encourageVeiw; +@property (nonatomic,strong) YUMIManeConfirmGiveDiamondProvisionRegard *poundageRegard; +@property (nonatomic,strong) YUMIManeConfirmGiveDiamondProvisionRegard *generalFigureRegard; +@property (nonatomic,strong) UIButton *confirmBtn; +@property (nonatomic,strong) UIView *burlywoodRegard; + +@end +@implementation YUMIManeConfirmGiveDiamondRegard + +-(instancetype)initWithFrame:(CGRect)frame{ + self = [super initWithFrame:frame]; + if(self){ + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor whiteColor]; + self.layer.cornerRadius = 12; + self.layer.masksToBounds = YES; + [self addSubview:self.encourageVeiw]; + [self addSubview:self.titleView]; + [self addSubview:self.figureRegard]; + [self addSubview:self.burlywoodRegard]; + [self addSubview:self.poundageRegard]; + [self addSubview:self.generalFigureRegard]; + [self addSubview:self.confirmBtn]; +} +- (void)initChildLyRestrictions { + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(kGetScaleWidth(310)); + make.height.mas_equalTo(kGetScaleWidth(250)); + }]; + [self.encourageVeiw mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.mas_equalTo(kGetScaleWidth(22)); + make.top.mas_equalTo(kGetScaleWidth(10)); + make.right.mas_equalTo(-kGetScaleWidth(15)); + }]; + + [self.titleView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(kGetScaleWidth(20)); + make.right.mas_equalTo(-kGetScaleWidth(20)); + make.top.mas_equalTo(kGetScaleWidth(36)); + make.height.mas_equalTo(kGetScaleWidth(21)); + }]; + + [self.figureRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.equalTo(self.titleView); + make.height.mas_equalTo(kGetScaleWidth(24)); + make.top.mas_equalTo(kGetScaleWidth(78)); + }]; + [self.burlywoodRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.equalTo(self.titleView); + make.height.mas_equalTo(1); + make.top.mas_equalTo(kGetScaleWidth(113)); + }]; + + [self.poundageRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.equalTo(self); + make.height.mas_equalTo(kGetScaleWidth(17)); + make.top.mas_equalTo(kGetScaleWidth(125)); + }]; + + [self.generalFigureRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.equalTo(self); + make.height.mas_equalTo(kGetScaleWidth(17)); + make.top.mas_equalTo(kGetScaleWidth(150)); + }]; + [self.confirmBtn mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(kGetScaleWidth(37)); + make.width.mas_equalTo(kGetScaleWidth(135)); + make.top.mas_equalTo(kGetScaleWidth(189)); + make.centerX.equalTo(self); + }]; + +} + +#pragma mark -set get 方法 +-(void)setType:(int)type{ + _type = type; + if(_type == 2){ + _generalFigureRegard.hidden = YES; + _poundageRegard.title = YMLocalizedString(@"YUMI_MineConfirmGiveDiamondView7"); + _titleView.text = YMLocalizedString(@"YUMI_MineConfirmGiveDiamondView5"); + [_confirmBtn setTitle:YMLocalizedString(@"YUMI_MineConfirmGiveDiamondView8") forState:UIControlStateNormal]; + + } +} +- (void)setGoldNum:(NSInteger)goldNum{ + _goldNum = goldNum; + if(_type == 2){ + [_poundageRegard setNum:[NSString stringWithFormat:YMLocalizedString(@"YUMI_MineConfirmGiveDiamondView6"),_goldNum]]; + } +} +- (void)setIntrojectionBWSttawberrys:(NSInteger)introjectionBWSttawberrys{ + _introjectionBWSttawberrys = introjectionBWSttawberrys; + if(_type == 2){ + NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc]initWithString:@(_introjectionBWSttawberrys).stringValue attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:kGetScaleWidth(30) weight:UIFontWeightMedium],NSForegroundColorAttributeName:[DJDKMIMOMColor introjectionEssayPrettify]}]; + NSTextAttachment * attachment = [[NSTextAttachment alloc] init]; + UIImage *iconImage = [UIImage imageNamed:@"yumi_center_give_diamone_pic"];; + attachment.bounds = CGRectMake(0, roundf(self.figureRegard.font.capHeight - 24)/2.f, 24, 24); + attachment.image =iconImage; + NSAttributedString * starAttribute = [NSMutableAttributedString attributedStringWithAttachment:(NSTextAttachment *)attachment]; + [attributedString insertAttributedString:starAttribute atIndex:attributedString.length]; + self.figureRegard.attributedText = attributedString; + } +} +-(void)setGiveBWSttawberryMatrix:(YUMIManeGiveDiamondMatrix *)giveBWSttawberryMatrix{ + _giveBWSttawberryMatrix = giveBWSttawberryMatrix; + _titleView.text = [NSString stringWithFormat:YMLocalizedString(@"YUMI_MineConfirmGiveDiamondView1"),_giveBWSttawberryMatrix.targetNick]; + NSTextAttachment * attachment = [[NSTextAttachment alloc] init]; + NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc]initWithString:@(self.introjectionBWSttawberrys).stringValue attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:kGetScaleWidth(30) weight:UIFontWeightMedium],NSForegroundColorAttributeName:[DJDKMIMOMColor introjectionEssayPrettify]}]; + UIImage *iconImage = [UIImage imageNamed:@"yumi_center_give_diamone_pic"];; + attachment.bounds = CGRectMake(0, roundf(self.figureRegard.font.capHeight - 24)/2.f, 24, 24); + + attachment.image =iconImage; + NSAttributedString * starAttribute = [NSMutableAttributedString attributedStringWithAttachment:(NSTextAttachment *)attachment]; + [attributedString insertAttributedString:starAttribute atIndex:attributedString.length]; + self.figureRegard.attributedText = attributedString; + self.poundageRegard.hidden = NO; + self.generalFigureRegard.hidden = NO; + self.burlywoodRegard.hidden = NO; + if(self.poundage > 0){ + ClientDisposition *config = [ClientDisposition partowardsiciptowardsionDisposition]; + [_poundageRegard setNum:[NSString stringWithFormat:@"%@%%",@(config.dispositionAbstract.giveDiamondRate * 100)]]; + double totalNum = self.introjectionBWSttawberrys + self.poundage; + + NSString *num = [NSString stringWithFormat:@"%.2f",totalNum]; + [_generalFigureRegard setNum:[NSString stringWithFormat:@"%@%@",[self transltowardseSuffix:num],YMLocalizedString(@"YUMI_MineConfirmGiveDiamondView4")] ]; + return; + } + [self diversifictowardsionRestrictionsPerformance]; + self.poundageRegard.hidden = YES; + self.generalFigureRegard.hidden = YES; + self.burlywoodRegard.hidden = YES; + +} + +- (NSString *)transltowardseSuffix:(NSString *)numberStr{ + if (numberStr.length > 1) { + + if ([numberStr componentsSeparatedByString:@"."].count == 2) { + NSString *last = [numberStr componentsSeparatedByString:@"."].lastObject; + if ([last isEqualToString:@"00"]) { + numberStr = [numberStr substringToIndex:numberStr.length - (last.length + 1)]; + return numberStr; + }else{ + if ([[last substringFromIndex:last.length -1] isEqualToString:@"0"]) { + numberStr = [numberStr substringToIndex:numberStr.length - 1]; + return numberStr; + } + } + } + return numberStr; + }else{ + return nil; + } +} + +-(void)diversifictowardsionRestrictionsPerformance{ + [self mas_updateConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(kGetScaleWidth(196)); + }]; + [self.confirmBtn mas_updateConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(kGetScaleWidth(136)); + }]; + +} + +#pragma mark- btn action +-(void)backAction{ + [MKJPopup dismiss]; +} +-(void)acknowledgementPerformance{ + [MKJPopup dismiss]; + if(self.delegate && [self.delegate respondsToSelector:@selector(yumiManeConfirmGiveDiamondRegardAccomplish)]){ + [self.delegate yumiManeConfirmGiveDiamondRegardAccomplish]; + } +} +#pragma mark - 懒加载 +- (UIButton *)encourageVeiw{ + if (!_encourageVeiw){ + _encourageVeiw = [UIButton new]; + [_encourageVeiw setBackgroundImage:[UIImage imageNamed:@"mine_give_diamond_back"] forState:UIControlStateNormal]; + [_encourageVeiw setEnlargeEdgeAboutApex:10 right:10 bottom:10 left:10]; + [_encourageVeiw addTarget:self action:@selector(backAction) forControlEvents:UIControlEventTouchUpInside]; + } + return _encourageVeiw; +} +- (UILabel *)titleView{ + if (!_titleView){ + _titleView = [UILabel new]; + _titleView.font = [UIFont systemFontOfSize:kGetScaleWidth(15) weight:UIFontWeightRegular]; + _titleView.textColor = [DJDKMIMOMColor introjectionEssayPrettify]; + _titleView.textAlignment = NSTextAlignmentCenter; + } + return _titleView; +} +-(UILabel *)figureRegard{ + if (!_figureRegard){ + _figureRegard = [UILabel new]; + _figureRegard.font = [UIFont systemFontOfSize:kGetScaleWidth(30) weight:UIFontWeightMedium]; + _figureRegard.textColor = [DJDKMIMOMColor introjectionEssayPrettify]; + _figureRegard.textAlignment = NSTextAlignmentCenter; + } + return _figureRegard; +} +- (UIView *)burlywoodRegard{ + + if (!_burlywoodRegard){ + _burlywoodRegard = [UIView new]; + _burlywoodRegard.backgroundColor = UIColorFromRGB(0xF7F7F7); + } + return _burlywoodRegard; + +} +- (YUMIManeConfirmGiveDiamondProvisionRegard *)poundageRegard{ + if (!_poundageRegard){ + _poundageRegard = [[YUMIManeConfirmGiveDiamondProvisionRegard alloc]initWithFrame:CGRectZero]; + [_poundageRegard setTitle:YMLocalizedString(@"YUMI_MineConfirmGiveDiamondView2")]; + + } + return _poundageRegard; +} +-(YUMIManeConfirmGiveDiamondProvisionRegard *)generalFigureRegard{ + if (!_generalFigureRegard){ + _generalFigureRegard = [[YUMIManeConfirmGiveDiamondProvisionRegard alloc]initWithFrame:CGRectZero]; + [_generalFigureRegard setTitle:YMLocalizedString(@"YUMI_MineConfirmGiveDiamondView3")]; + } + return _generalFigureRegard; +} +- (UIButton *)confirmBtn{ + if (!_confirmBtn){ + _confirmBtn = [UIButton new]; + UIImage *image = [UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify],[DJDKMIMOMColor acknowledgementBtutonObliquityMiddlePrettify],[DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(kGetScaleWidth(135), kGetScaleWidth(37))]; + [_confirmBtn setBackgroundImage:image forState:UIControlStateNormal]; + [_confirmBtn setTitle:YMLocalizedString(@"YUMI_MineConfirmGiveDiamondView0") forState:UIControlStateNormal]; + _confirmBtn.titleLabel.font = [UIFont systemFontOfSize:kGetScaleWidth(14) weight:UIFontWeightRegular]; + [_confirmBtn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + [_confirmBtn addTarget:self action:@selector(acknowledgementPerformance) forControlEvents:UIControlEventTouchUpInside]; + _confirmBtn.layer.cornerRadius = kGetScaleWidth(37)/2; + _confirmBtn.layer.masksToBounds = YES; + } + return _confirmBtn; +} +@end + + + + +@interface YUMIManeConfirmGiveDiamondProvisionRegard() + +@property (nonatomic,strong) UILabel *titleView; +@property (nonatomic,strong) UILabel *figureRegard; + + + + +@end + +@implementation YUMIManeConfirmGiveDiamondProvisionRegard +-(instancetype)initWithFrame:(CGRect)frame{ + self = [super initWithFrame:frame]; + if(self){ + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} +-(void)setTitle:(NSString *)title{ + _title = title; + _titleView.text = _title; + +} +-(void)setNum:(NSString *)num{ + _num = num; + _figureRegard.text = _num; +} +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.titleView]; + [self addSubview:self.figureRegard]; +} +- (void)initChildLyRestrictions { + [self.titleView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(kGetScaleWidth(20)); + make.top.bottom.equalTo(self); + }]; + [self.figureRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(-kGetScaleWidth(20)); + make.top.bottom.equalTo(self); + }]; + +} + +#pragma mark - 懒加载 + +- (UILabel *)titleView{ + if (!_titleView){ + _titleView = [UILabel new]; + _titleView.font = [UIFont systemFontOfSize:kGetScaleWidth(12) weight:UIFontWeightRegular]; + _titleView.textColor = UIColorFromRGB(0x6D6B89); + } + return _titleView; +} +-(UILabel *)figureRegard{ + if (!_figureRegard){ + _figureRegard = [UILabel new]; + _figureRegard.font = [UIFont systemFontOfSize:kGetScaleWidth(12) weight:UIFontWeightRegular]; + _figureRegard.textColor = UIColorFromRGB(0x6D6B89); + _figureRegard.textAlignment = NSTextAlignmentRight; + + } + return _figureRegard; +} +@end diff --git a/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIManeGiveDiamondCiphercodeRegard.h b/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIManeGiveDiamondCiphercodeRegard.h new file mode 100644 index 00000000..c0999128 --- /dev/null +++ b/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIManeGiveDiamondCiphercodeRegard.h @@ -0,0 +1,19 @@ +// +// YUMIManeGiveDiamondCiphercodeRegard.h +// YuMi +// +// Created by YuMi on 2022/10/21. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +typedef void(^MineGiveDiamondPasswordViewBlock)(void); + + +@interface YUMIManeGiveDiamondCiphercodeRegard : UIView +@property (nonatomic,copy) MineGiveDiamondPasswordViewBlock completeBlock; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIManeGiveDiamondCiphercodeRegard.m b/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIManeGiveDiamondCiphercodeRegard.m new file mode 100644 index 00000000..9a5342fe --- /dev/null +++ b/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIManeGiveDiamondCiphercodeRegard.m @@ -0,0 +1,112 @@ +// +// YUMIManeGiveDiamondCiphercodeRegard.m +// YuMi +// +// Created by YuMi on 2022/10/21. +// + +#import "YUMIManeGiveDiamondCiphercodeRegard.h" +#import "UIView+Corner.h" +#import "MKJPopup.h" +@interface YUMIManeGiveDiamondCiphercodeRegard() +@property (nonatomic,strong) UILabel *titleView; +@property (nonatomic,strong) UIButton *revocationBtuton; +@property (nonatomic,strong) UIButton *confirmBtn; + +@end + +@implementation YUMIManeGiveDiamondCiphercodeRegard + +-(instancetype)initWithFrame:(CGRect)frame{ + self = [super initWithFrame:frame]; + if(self){ + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor whiteColor]; + [self setMonopolizeAboutContraryApexMonopolize:kGetScaleWidth(12) rightTopCorner:kGetScaleWidth(12) bottomLeftCorner:kGetScaleWidth(12) bottomRightCorner:kGetScaleWidth(12) size:CGSizeMake(kGetScaleWidth(310), kGetScaleWidth(149))]; + [self addSubview:self.titleView]; + [self addSubview:self.revocationBtuton]; + [self addSubview:self.confirmBtn]; + +} +- (void)initChildLyRestrictions { + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(kGetScaleWidth(310)); + make.height.mas_equalTo(kGetScaleWidth(149)); + }]; + [self.titleView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(kGetScaleWidth(25)); + make.right.left.equalTo(self); + make.height.mas_equalTo(kGetScaleWidth(21)); + }]; + [self.revocationBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(kGetScaleWidth(31)); + make.width.mas_equalTo(kGetScaleWidth(110)); + make.height.mas_equalTo(kGetScaleWidth(37)); + make.top.mas_equalTo(kGetScaleWidth(81)); + }]; + [self.confirmBtn mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.width.height.equalTo(self.revocationBtuton); + make.right.mas_equalTo(-kGetScaleWidth(31)); + }]; +} + + +-(void)revocationPerformance{ + [MKJPopup dismiss]; +} +-(void)acknowledgementPerformance{ + [MKJPopup dismiss]; + if(self.completeBlock){ + self.completeBlock(); + } +} +#pragma mark - 懒加载 +- (UILabel *)titleView{ + if (!_titleView){ + _titleView = [UILabel new]; + _titleView.font = [UIFont systemFontOfSize:kGetScaleWidth(15) weight:UIFontWeightRegular]; + _titleView.textColor = [DJDKMIMOMColor introjectionEssayPrettify]; + _titleView.text = YMLocalizedString(@"YUMI_MineChooseGiveDiamondVC1"); + _titleView.textAlignment = NSTextAlignmentCenter; + } + return _titleView; +} + +-(UIButton *)revocationBtuton{ + if (!_revocationBtuton){ + _revocationBtuton = [UIButton new]; + [_revocationBtuton setTitle:YMLocalizedString(@"YUMI_Share_View_7") forState:UIControlStateNormal]; + _revocationBtuton.layer.cornerRadius = kGetScaleWidth(37) / 2; + _revocationBtuton.layer.masksToBounds = YES; + [_revocationBtuton setTitleColor:[DJDKMIMOMColor prohibitionBtutonEssayPrettify] forState:UIControlStateNormal]; + [_revocationBtuton addTarget:self action:@selector(revocationPerformance) forControlEvents:UIControlEventTouchUpInside]; + _revocationBtuton.titleLabel.font = [UIFont systemFontOfSize:kGetScaleWidth(14) weight:UIFontWeightRegular]; + _revocationBtuton.backgroundColor = [DJDKMIMOMColor prohibitionBtutonPrettify]; + } + return _revocationBtuton; +} + +- (UIButton *)confirmBtn{ + if (!_confirmBtn){ + _confirmBtn = [UIButton new]; + [_confirmBtn setTitle:YMLocalizedString(@"YUMI_MineChooseGiveDiamondVC2") forState:UIControlStateNormal]; + [_confirmBtn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + _confirmBtn.titleLabel.font = [UIFont systemFontOfSize:kGetScaleWidth(14) weight:UIFontWeightRegular]; + [_confirmBtn setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify],[DJDKMIMOMColor acknowledgementBtutonObliquityMiddlePrettify],[DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + _confirmBtn.layer.cornerRadius = kGetScaleWidth(37) / 2; + _confirmBtn.layer.masksToBounds = YES; + [_confirmBtn addTarget:self action:@selector(acknowledgementPerformance) forControlEvents:UIControlEventTouchUpInside]; + } + return _confirmBtn; +} + + + +@end diff --git a/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIManeGiveDiamondElement.h b/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIManeGiveDiamondElement.h new file mode 100644 index 00000000..377778d3 --- /dev/null +++ b/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIManeGiveDiamondElement.h @@ -0,0 +1,17 @@ +// +// YUMIManeGiveDiamondElement.h +// YuMi +// +// Created by YuMi on 2022/10/17. +// + +#import +#import "YUMIManeGiveDiamondMatrix.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeGiveDiamondElement : UITableViewCell +@property (nonatomic,strong) YUMIManeGiveDiamondMatrix *giveBWSttawberryMatrix; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIManeGiveDiamondElement.m b/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIManeGiveDiamondElement.m new file mode 100644 index 00000000..501c730c --- /dev/null +++ b/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIManeGiveDiamondElement.m @@ -0,0 +1,105 @@ +// +// YUMIManeGiveDiamondElement.m +// YuMi +// +// Created by YuMi on 2022/10/17. +// + +#import "YUMIManeGiveDiamondElement.h" +#import "NetIndicateRegard.h" +@interface YUMIManeGiveDiamondElement() + +@property (nonatomic,strong) NetIndicateRegard *intelligenceRegard; + +@property (nonatomic,strong) UILabel *titleView; + +@property (nonatomic,strong) UILabel * IdTitleView; + +@property (nonatomic,strong) UIImageView *arrowView; + +@end + +@implementation YUMIManeGiveDiamondElement +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} +-(void)setGiveBWSttawberryMatrix:(YUMIManeGiveDiamondMatrix *)giveBWSttawberryMatrix{ + _giveBWSttawberryMatrix = giveBWSttawberryMatrix; + _intelligenceRegard.imageUrl = _giveBWSttawberryMatrix.targetAvatar; + _titleView.text = _giveBWSttawberryMatrix.targetNick; + _IdTitleView.text = [NSString stringWithFormat:@"ID:%@",_giveBWSttawberryMatrix.targetErbanNo]; +} +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor]; + self.selectionStyle = 0; + [self addSubview:self.intelligenceRegard]; + [self addSubview:self.titleView]; + [self addSubview:self.IdTitleView]; + [self addSubview:self.arrowView]; + +} +- (void)initChildLyRestrictions { + [self.intelligenceRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.mas_equalTo(kGetScaleWidth(50)); + make.centerY.equalTo(self); + make.left.mas_equalTo(kGetScaleWidth(15)); + }]; + [self.titleView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.equalTo(self.intelligenceRegard.mas_right).mas_offset( kGetScaleWidth(10)); + make.height.mas_equalTo(kGetScaleWidth(17)); + make.top.equalTo(self.intelligenceRegard.mas_top).mas_offset(kGetScaleWidth(8)); + make.right.mas_equalTo(-kGetScaleWidth(15)); + }]; + + [self.IdTitleView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.equalTo(self.titleView); + make.height.mas_equalTo(kGetScaleWidth(14)); + make.top.equalTo(self.titleView.mas_bottom).mas_offset(kGetScaleWidth(4)); + }]; + [self.arrowView mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.mas_equalTo(kGetScaleWidth(20)); + make.centerY.equalTo(self); + make.right.mas_equalTo(-kGetScaleWidth(15)); + }]; +} +#pragma mark - 懒加载 +- (NetIndicateRegard *)intelligenceRegard{ + if (!_intelligenceRegard){ + NetIndicateDisposition *config = [[NetIndicateDisposition alloc]init]; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceRegard = [[NetIndicateRegard alloc]initWithConfig:config]; + _intelligenceRegard.layer.cornerRadius = kGetScaleWidth(50) / 2; + _intelligenceRegard.layer.masksToBounds = YES; + } + return _intelligenceRegard; +} +-(UILabel *)titleView{ + if (!_titleView){ + _titleView = [[UILabel alloc]init]; + _titleView.font = [UIFont systemFontOfSize:kGetScaleWidth(14) weight:UIFontWeightMedium]; + _titleView.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _titleView; +} +-(UILabel *)IdTitleView{ + if (!_IdTitleView){ + _IdTitleView = [UILabel new]; + _IdTitleView.font = [UIFont systemFontOfSize:kGetScaleWidth(12) weight:UIFontWeightMedium]; + _IdTitleView.textColor = [DJDKMIMOMColor instantEssayPrettify]; + } + return _IdTitleView; +} +- (UIImageView *)arrowView{ + if (!_arrowView){ + _arrowView = [UIImageView new]; + _arrowView.image = [UIImage imageNamed:@"mine_item_new_arrow"]; + } + return _arrowView; +} + +@end diff --git a/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIManeGiveDiamondHuntforRegard.h b/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIManeGiveDiamondHuntforRegard.h new file mode 100644 index 00000000..cacc7b24 --- /dev/null +++ b/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIManeGiveDiamondHuntforRegard.h @@ -0,0 +1,18 @@ +// +// YUMIManeGiveDiamondHuntforRegard.h +// YuMi +// +// Created by YuMi on 2022/10/17. +// + +#import +#import "FBCManeGiveDiamondCeremony.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeGiveDiamondHuntforRegard : UIView +@property (nonatomic,assign) BOOL isHuntforCorridor; +@property (nonatomic,weak) id delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIManeGiveDiamondHuntforRegard.m b/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIManeGiveDiamondHuntforRegard.m new file mode 100644 index 00000000..185c1a0c --- /dev/null +++ b/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIManeGiveDiamondHuntforRegard.m @@ -0,0 +1,103 @@ +// +// YUMIManeGiveDiamondHuntforRegard.m +// YuMi +// +// Created by YuMi on 2022/10/17. +// + +#import "YUMIManeGiveDiamondHuntforRegard.h" + +@interface YUMIManeGiveDiamondHuntforRegard() + +@property (nonatomic,strong)UIImageView *backgroundRegard; +@property (nonatomic,strong) UITextField *essayUniverse; +@property (nonatomic,strong) UIButton *huntforBtuton; + +@end +@implementation YUMIManeGiveDiamondHuntforRegard + +-(instancetype)initWithFrame:(CGRect)frame{ + self = [super initWithFrame:frame]; + if(self){ + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor]; + [self addSubview:self.backgroundRegard]; + [self.backgroundRegard addSubview:self.essayUniverse]; + [self.backgroundRegard addSubview:self.huntforBtuton]; +} +- (void)initChildLyRestrictions { + [self.backgroundRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(kGetScaleWidth(15)); + make.right.mas_equalTo(-kGetScaleWidth(15)); + make.top.equalTo(self); + make.height.mas_equalTo(kGetScaleWidth(32)); + }]; + [self.essayUniverse mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.bottom.equalTo(self.backgroundRegard); + make.left.mas_equalTo(kGetScaleWidth(10)); + make.right.mas_equalTo(-kGetScaleWidth(76)); + }]; + [self.huntforBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(-kGetScaleWidth(3)); + make.centerY.equalTo(self.backgroundRegard); + make.width.mas_equalTo(kGetScaleWidth(66)); + make.height.mas_equalTo(kGetScaleWidth(26)); + }]; +} + +-(void)huntforPerformance{ + [self.essayUniverse resignFirstResponder]; + if(self.delegate && [self.delegate respondsToSelector:@selector(huntforConcludeAboutEssay:)]){ + [self.delegate huntforConcludeAboutEssay:self.essayUniverse.text]; + } +} +-(void)setIsHuntforCorridor:(BOOL)isHuntforCorridor{ + _isHuntforCorridor = isHuntforCorridor; + if(_isHuntforCorridor == YES){ + _essayUniverse.keyboardType = UIKeyboardTypeDefault; + _essayUniverse.attributedPlaceholder = [[NSMutableAttributedString alloc]initWithString:YMLocalizedString(@"YUMI_MineGiveDiamondSearchView3") attributes:@{NSForegroundColorAttributeName:[DJDKMIMOMColor instantEssayPrettify],NSFontAttributeName:[UIFont systemFontOfSize:14 weight:UIFontWeightRegular]}]; + } +} +#pragma mark -懒加载 +- (UIImageView *)backgroundRegard{ + if (!_backgroundRegard){ + _backgroundRegard = [UIImageView new]; + _backgroundRegard.userInteractionEnabled = YES; + _backgroundRegard.image = [UIImage imageNamed:@"mine_give_diamond_search"]; + } + return _backgroundRegard; +} +-(UITextField *)essayUniverse{ + if (!_essayUniverse){ + _essayUniverse = [[UITextField alloc]initWithFrame:CGRectZero]; + _essayUniverse.keyboardType = UIKeyboardTypeNumberPad; + _essayUniverse.font = [UIFont systemFontOfSize:14 weight:UIFontWeightMedium]; + _essayUniverse.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _essayUniverse.attributedPlaceholder = [[NSMutableAttributedString alloc]initWithString:YMLocalizedString(@"YUMI_MineGiveDiamondSearchView1") attributes:@{NSForegroundColorAttributeName:[DJDKMIMOMColor instantEssayPrettify],NSFontAttributeName:[UIFont systemFontOfSize:14 weight:UIFontWeightRegular]}]; + + } + return _essayUniverse; +} +-(UIButton *)huntforBtuton{ + if (!_huntforBtuton){ + _huntforBtuton = [UIButton new]; + UIImage *image = [UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify],[DJDKMIMOMColor acknowledgementBtutonObliquityMiddlePrettify],[DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(kGetScaleWidth(66), kGetScaleWidth(26))]; + [_huntforBtuton setBackgroundImage:image forState:UIControlStateNormal]; + [_huntforBtuton setTitle:YMLocalizedString(@"YUMI_MineGiveDiamondSearchView0") forState:UIControlStateNormal]; + [_huntforBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + _huntforBtuton.titleLabel.font = [UIFont systemFontOfSize:14 weight:UIFontWeightRegular]; + _huntforBtuton.layer.cornerRadius = kGetScaleWidth(26) / 2; + _huntforBtuton.layer.masksToBounds = YES; + + [_huntforBtuton addTarget:self action:@selector(huntforPerformance) forControlEvents:UIControlEventTouchUpInside]; + } + return _huntforBtuton; +} +@end diff --git a/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIManeGiveDiamondPwordRegard.h b/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIManeGiveDiamondPwordRegard.h new file mode 100644 index 00000000..a5f28306 --- /dev/null +++ b/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIManeGiveDiamondPwordRegard.h @@ -0,0 +1,22 @@ +// +// YUMIManeGiveDiamondPwordRegard.h +// YuMi +// +// Created by YuMi on 2022/10/19. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@protocol FBCManeGiveDiamondPwordRegardRepresendtation + +- (void)yumiManeGiveDiamondPwordRegardPwordAccomplish:(NSString *)pwd; + + + +@end +@interface YUMIManeGiveDiamondPwordRegard : UIView +@property (nonatomic, weak) id delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIManeGiveDiamondPwordRegard.m b/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIManeGiveDiamondPwordRegard.m new file mode 100644 index 00000000..bdd6927e --- /dev/null +++ b/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIManeGiveDiamondPwordRegard.m @@ -0,0 +1,172 @@ +// +// YUMIManeGiveDiamondPwordRegard.m +// YuMi +// +// Created by YuMi on 2022/10/19. +// + +#import "YUMIManeGiveDiamondPwordRegard.h" +#import "SurmountValidationCodeRegard.h" +#import +#import + +@interface YUMIManeGiveDiamondPwordRegard() + +@property (nonatomic, strong) UIButton *concludeBtuton; +@property (nonatomic, strong) UILabel *titleLabel; +@property (nonatomic, strong) SurmountValidationCodeRegard *cryptogramRegard; +@property (nonatomic, strong) UIView *backgroundRegard; + +@end +@implementation YUMIManeGiveDiamondPwordRegard + +- (instancetype)initWithFrame:(CGRect)frame { + if (self = [super initWithFrame:frame]) { + [self initSubViews]; + [self initChildLyRestrictions]; + [self initOccurrences]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(keyboardWillShow:)name:UIKeyboardWillShowNotification object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil]; + + + self.backgroundColor = [UIColor colorWithWhite:0 alpha:0.35]; + [self addSubview:self.backgroundRegard]; + [self.backgroundRegard addSubview:self.concludeBtuton]; + [self.backgroundRegard addSubview:self.titleLabel]; + [self.backgroundRegard addSubview:self.cryptogramRegard]; + +} +- (void)keyboardWillShow:(NSNotification *)notification + +{ + NSDictionary *userInfo = [notification userInfo]; + CGFloat curkeyBoardHeight = [[[notification userInfo]objectForKey:@"UIKeyboardBoundsUserInfoKey"]CGRectValue].size.height; + CGRect begin = [[[notification userInfo]objectForKey:@"UIKeyboardFrameBeginUserInfoKey"]CGRectValue]; + CGRect end = [[[notification userInfo]objectForKey:@"UIKeyboardFrameEndUserInfoKey"]CGRectValue]; + + + if( begin.size.height > 0 && (begin.origin.y - end.origin.y > 0)){ + CGFloat keyBoardHeight = curkeyBoardHeight; + CGFloat animationDuration = [userInfo[UIKeyboardAnimationDurationUserInfoKey] doubleValue]; + + [UIView animateWithDuration:animationDuration animations:^{ + self.backgroundRegard.frame = CGRectMake(0, KScreenHeight - keyBoardHeight - kGetScaleWidth(162), KScreenWidth, kGetScaleWidth(162)); + }]; + + } + +} +- (void)keyboardWillHide:(NSNotification *)notification{ + + + NSDictionary *userInfo = [notification userInfo]; + NSValue *keyboardValue = [userInfo objectForKey:UIKeyboardFrameEndUserInfoKey]; + CGRect keyboardRect = [keyboardValue CGRectValue]; + CGFloat height = CGRectGetHeight(keyboardRect); + CGFloat animationDuration = [userInfo[UIKeyboardAnimationDurationUserInfoKey] doubleValue]; + + self.backgroundColor = [UIColor clearColor]; + [UIView animateWithDuration:animationDuration animations:^{ + self.backgroundRegard.frame = CGRectMake(0, KScreenHeight, KScreenWidth, kGetScaleWidth(162)); + }completion:^(BOOL finished) { + [self removeFromSuperview]; + }]; + +} +-(void)dealloc{ + [[NSNotificationCenter defaultCenter]removeObserver:self]; +} + +- (void)initChildLyRestrictions { + + self.backgroundRegard.frame = CGRectMake(0, KScreenHeight, KScreenWidth, kGetScaleWidth(162)); + [self.concludeBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(-kGetScaleWidth(15)); + make.top.mas_equalTo(kGetScaleWidth(15)); + make.height.width.mas_equalTo(kGetScaleWidth(22)); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self); + make.top.mas_equalTo(kGetScaleWidth(30)); + make.height.mas_equalTo(kGetScaleWidth(22)); + }]; + + + + [self.cryptogramRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(kGetScaleWidth(15)); + make.right.mas_equalTo(-kGetScaleWidth(15)); + make.height.mas_equalTo(kGetScaleWidth(50)); + make.top.mas_equalTo(self.titleLabel.mas_bottom).mas_offset(kGetScaleWidth(40)); + }]; + + +} + +- (void)initOccurrences { + @weakify(self); + self.cryptogramRegard.textFieldChangeBlock = ^(NSString * _Nonnull code) { + @strongify(self); + if (code.length == 6) { + [self removeFromSuperview]; + if (self.delegate && [self.delegate respondsToSelector:@selector(yumiManeGiveDiamondPwordRegardPwordAccomplish:)]) { + [self.delegate yumiManeGiveDiamondPwordRegardPwordAccomplish:code]; + } + } + }; +} + +- (void)onConcludeBtutonTicktack:(UIButton *)sender { + [self removeFromSuperview]; +} + + +- (UILabel *)titleLabel { + if (!_titleLabel) { + UILabel *label = [[UILabel alloc] init]; + label.text = YMLocalizedString(@"YUMI_Room_Red_Packet_Pwd_View_0"); + label.font = [UIFont systemFontOfSize:18 weight:UIFontWeightMedium]; + label.textColor = [DJDKMIMOMColor introjectionEssayPrettify]; + _titleLabel = label; + } + return _titleLabel; +} + +-(UIView *)backgroundRegard{ + if (!_backgroundRegard){ + _backgroundRegard = [UIView new]; + _backgroundRegard.backgroundColor = [UIColor whiteColor]; + } + return _backgroundRegard; +} + + +- (UIButton *)concludeBtuton { + if (!_concludeBtuton) { + _concludeBtuton = [[UIButton alloc] init]; + [_concludeBtuton setImage:[UIImage imageNamed:@"yumi_send_redPacket_cancel"] forState:UIControlStateNormal]; + [_concludeBtuton addTarget:self action:@selector(onConcludeBtutonTicktack:) forControlEvents:UIControlEventTouchUpInside]; + } + return _concludeBtuton; +} + +- (SurmountValidationCodeRegard *)cryptogramRegard { + if (!_cryptogramRegard) { + _cryptogramRegard= [[SurmountValidationCodeRegard alloc] init]; + _cryptogramRegard.type = 1; + _cryptogramRegard.number = 6; + _cryptogramRegard.shouldBeAssurance = YES; + } + return _cryptogramRegard; +} + + + +@end diff --git a/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIManeGiveDiamondSpecificsElement.h b/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIManeGiveDiamondSpecificsElement.h new file mode 100644 index 00000000..e08554cd --- /dev/null +++ b/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIManeGiveDiamondSpecificsElement.h @@ -0,0 +1,17 @@ +// +// YUMIManeGiveDiamondSpecificsElement.h +// YuMi +// +// Created by YuMi on 2022/11/1. +// + +#import +#import "YUMIManeGiveDiamondSpecificsMatrix.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeGiveDiamondSpecificsElement : UITableViewCell +@property (nonatomic,strong) YUMIManeGiveDiamondSpecificsMatrix *model; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIManeGiveDiamondSpecificsElement.m b/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIManeGiveDiamondSpecificsElement.m new file mode 100644 index 00000000..5113a4ef --- /dev/null +++ b/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIManeGiveDiamondSpecificsElement.m @@ -0,0 +1,152 @@ +// +// YUMIManeGiveDiamondSpecificsElement.m +// YuMi +// +// Created by YuMi on 2022/11/1. +// + +#import "YUMIManeGiveDiamondSpecificsElement.h" +#import "NetIndicateRegard.h" +#import "NSDate+DateUtils.h" +@interface YUMIManeGiveDiamondSpecificsElement() +@property (nonatomic,strong) NetIndicateRegard * figureRegard1; +@property (nonatomic,strong) UILabel *presentChampionRegard; +@property (nonatomic,strong) UILabel *intratemporalRegard; +@property (nonatomic,strong) UILabel *figureRegard; +@property (nonatomic,strong) UILabel *spendingRegard; + +@end +@implementation YUMIManeGiveDiamondSpecificsElement + + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor whiteColor]; + self.selectionStyle = 0; + [self.contentView addSubview:self.figureRegard]; + [self.contentView addSubview:self.presentChampionRegard]; + [self.contentView addSubview:self.intratemporalRegard]; + [self.contentView addSubview:self.figureRegard]; + [self.contentView addSubview:self.spendingRegard]; +} +- (void)initChildLyRestrictions { + [self.figureRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.mas_equalTo(kGetScaleWidth(40)); + make.centerY.equalTo(self.contentView); + make.left.mas_equalTo(kGetScaleWidth(15)); + }]; + [self.intratemporalRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(-kGetScaleWidth(15)); + make.centerY.equalTo(self.contentView); + }]; + [self.presentChampionRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(kGetScaleWidth(65)); + make.centerY.equalTo(self.contentView); + make.right.equalTo(self.intratemporalRegard.mas_left).mas_offset(-kGetScaleWidth(10)); + }]; + [self.figureRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.equalTo(self.figureRegard.mas_top).mas_offset(kGetScaleWidth(3)); + make.left.mas_equalTo(kGetScaleWidth(65)); + make.height.mas_equalTo(kGetScaleWidth(17)); + make.right.equalTo(self.intratemporalRegard.mas_left).mas_offset(-kGetScaleWidth(10)); + }]; + [self.spendingRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.equalTo(self.figureRegard); + make.top.equalTo(self.figureRegard.mas_bottom).mas_offset(kGetScaleWidth(4)); + make.height.mas_equalTo(kGetScaleWidth(14)); + }]; + +} +#pragma mark - 赋值 +- (void)setModel:(YUMIManeGiveDiamondSpecificsMatrix *)model{ + _model = model; + [self setValue]; +} + +-(void)setValue{ + self.presentChampionRegard.hidden = YES; + self.figureRegard.hidden = YES; + self.spendingRegard.hidden = YES; + self.figureRegard1.image = nil; + if(self.model.type.intValue == 0){ + self.presentChampionRegard.hidden = YES; + self.figureRegard.hidden = NO; + self.spendingRegard.hidden = NO; + self.figureRegard1.image = [UIImage imageNamed:@"mine_examples_record"]; + self.figureRegard.text = self.model.diamondNum; + self.intratemporalRegard.text = [NSDate intrtowardsemporalstampSwopIntrtowardsemporal:self.model.createTime/1000 andFormatter:@"yyyy-MM-dd HH:mm:ss"]; + NSString *realDiamondNum = [NSString stringWithFormat:@"%.2f",self.model.realDiamondNum]; + self.spendingRegard.text = [NSString stringWithFormat:YMLocalizedString(@"YUMI_MineGiveDiamondDetailsCell0"),realDiamondNum]; + return; + } + self.figureRegard1.image = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + self.figureRegard1.imageUrl = self.model.giftUrl; + self.presentChampionRegard.text = [NSString stringWithFormat:@"%@ x%@",self.model.giftName,self.model.giftNum]; + self.intratemporalRegard.text = [NSDate intrtowardsemporalstampSwopIntrtowardsemporal:self.model.createTime/1000 andFormatter:@"yyyy-MM-dd HH:mm:ss"]; + self.presentChampionRegard.hidden = NO; + self.figureRegard.hidden = YES; + self.spendingRegard.hidden = YES; +} + +#pragma mark - 懒加载 + +- (NetIndicateRegard *)figureRegard1{ + if (!_figureRegard1){ + _figureRegard1 = [[NetIndicateRegard alloc]init]; + _figureRegard1.backgroundColor = UIColorFromRGB(0xF3F5FA); + _figureRegard1.layer.cornerRadius = kGetScaleWidth(40)/2; + _figureRegard1.clipsToBounds = YES; + _figureRegard1.contentMode = UIViewContentModeScaleAspectFit; + } + return _figureRegard1; +} + +- (UILabel *)presentChampionRegard { + if (!_presentChampionRegard) { + _presentChampionRegard = [[UILabel alloc] init]; + _presentChampionRegard.font = [UIFont systemFontOfSize:15 weight:UIFontWeightMedium]; + _presentChampionRegard.textColor = [DJDKMIMOMColor introjectionEssayPrettify]; + _presentChampionRegard.hidden = YES; + } + return _presentChampionRegard; +} + +- (UILabel *)intratemporalRegard { + if (!_intratemporalRegard) { + _intratemporalRegard = [[UILabel alloc] init]; + _intratemporalRegard.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium]; + _intratemporalRegard.textColor = [DJDKMIMOMColor prohibitionBtutonEssayPrettify]; + _intratemporalRegard.textAlignment = NSTextAlignmentRight; + } + return _intratemporalRegard; +} + +- (UILabel *)figureRegard { + if (!_figureRegard) { + _figureRegard = [[UILabel alloc] init]; + _figureRegard.font = [UIFont systemFontOfSize:15 weight:UIFontWeightMedium]; + _figureRegard.textColor = [DJDKMIMOMColor introjectionEssayPrettify]; + _figureRegard.text = @"0"; + } + return _figureRegard; +} + +- (UILabel *)spendingRegard { + if (!_spendingRegard) { + _spendingRegard = [[UILabel alloc] init]; + _spendingRegard.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium]; + _spendingRegard.textColor = [DJDKMIMOMColor prohibitionBtutonEssayPrettify]; + _spendingRegard.text = [NSString stringWithFormat:YMLocalizedString(@"YUMI_MineGiveDiamondDetailsCell0"),@"0"]; + } + return _spendingRegard; +} + +@end diff --git a/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIManeGiveDiamondSpecificsRegard.h b/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIManeGiveDiamondSpecificsRegard.h new file mode 100644 index 00000000..446109db --- /dev/null +++ b/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIManeGiveDiamondSpecificsRegard.h @@ -0,0 +1,22 @@ +// +// YUMIManeGiveDiamondSpecificsRegard.h +// YuMi +// +// Created by YuMi on 2022/10/31. +// + +#import +#import +#import "YUMIManeGiveDiamondSpecificsMatrix.h" +NS_ASSUME_NONNULL_BEGIN + + + + +@interface YUMIManeGiveDiamondSpecificsRegard : UIView +@property (nonatomic,strong) UITableView *tableView; +@property(nonatomic,strong)NSMutableArray *listData; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIManeGiveDiamondSpecificsRegard.m b/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIManeGiveDiamondSpecificsRegard.m new file mode 100644 index 00000000..f75be3f6 --- /dev/null +++ b/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIManeGiveDiamondSpecificsRegard.m @@ -0,0 +1,85 @@ +// +// YUMIManeGiveDiamondSpecificsRegard.m +// YuMi +// +// Created by YuMi on 2022/10/31. +// + +#import "YUMIManeGiveDiamondSpecificsRegard.h" + +#import "YUMIManeGiveDiamondSpecificsElement.h" +#import "YUMIManeAssistantDispossessTabulationRegardElement.h" + + +@interface YUMIManeGiveDiamondSpecificsRegard() + +@end + + +@implementation YUMIManeGiveDiamondSpecificsRegard + +-(instancetype)initWithFrame:(CGRect)frame{ + self = [super initWithFrame:frame]; + if(self){ + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.tableView]; + +} +- (void)initChildLyRestrictions { + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.equalTo(self); + }]; +} +#pragma mark - JXCategoryListContentViewDelegate +- (UIView *)listView { + return self; +} +-(void)setListData:(NSMutableArray *)listData{ + _listData = listData; +} +#pragma mark - UITableViewDelegate + +-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ + return self.listData.count > 0 ? self.listData.count : 1; +} + +-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{ + return self.listData.count > 0 ? kGetScaleWidth(55) : self.tableView.frame.size.height;; +} +-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ + if(self.listData.count > 0){ + YUMIManeGiveDiamondSpecificsElement *cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIManeGiveDiamondSpecificsElement class]) forIndexPath:indexPath]; + cell.model = self.listData[indexPath.row]; + return cell; + } + YUMIManeAssistantDispossessTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIManeAssistantDispossessTabulationRegardElement class])forIndexPath:indexPath] ; + + cell.emptyTitle = YMLocalizedString(@"YUMI_MineGiveDiamondVC3"); + return cell; +} +#pragma mark - 懒加载 +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.showsVerticalScrollIndicator = NO; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.backgroundColor = [UIColor clearColor]; + [_tableView registerClass:[YUMIManeGiveDiamondSpecificsElement class] forCellReuseIdentifier:NSStringFromClass([YUMIManeGiveDiamondSpecificsElement class])]; + [_tableView registerClass:[YUMIManeAssistantDispossessTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIManeAssistantDispossessTabulationRegardElement class])]; + if (@available(iOS 11.0, *)) { + _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + + } + return _tableView; +} +@end diff --git a/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIPageControl.h b/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIPageControl.h new file mode 100644 index 00000000..2b4f6e94 --- /dev/null +++ b/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIPageControl.h @@ -0,0 +1,18 @@ +// +// YUMIPageControl.h +// YuMi +// +// Created by YuMi on 2023/6/30. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIPageControl : UIView + +@property (nonatomic,assign) NSInteger curPeriod; +@property (nonatomic,assign) NSInteger count; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIPageControl.m b/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIPageControl.m new file mode 100644 index 00000000..95ea0a40 --- /dev/null +++ b/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIPageControl.m @@ -0,0 +1,47 @@ +// +// YUMIPageControl.m +// YuMi +// +// Created by YuMi on 2023/6/30. +// + +#import "YUMIPageControl.h" +#import "UIImage+Utils.h" + +@implementation YUMIPageControl + +#pragma mark - Private Method +- (void)initSubViews { + for (int i = 0; i < self.count; i++) { + UIButton *sender = [[UIButton alloc]initWithFrame:CGRectMake(i * kGetScaleWidth(22), 0, kGetScaleWidth(16), kGetScaleWidth(3))]; + UIImage *chooseImage = [UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify],[DJDKMIMOMColor acknowledgementBtutonObliquityMiddlePrettify],[DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(kGetScaleWidth(16), kGetScaleWidth(3))]; + UIImage *noChooseImage = [UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[UIColor whiteColor],[UIColor whiteColor],[UIColor whiteColor]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(kGetScaleWidth(16), kGetScaleWidth(3))]; + [sender setBackgroundImage:chooseImage forState:UIControlStateSelected]; + [sender setBackgroundImage:noChooseImage forState:UIControlStateNormal]; + sender.layer.cornerRadius = kGetScaleWidth(3)/2; + sender.layer.masksToBounds = YES; + sender.tag = i + 1; + [self addSubview:sender]; + } + +} +- (void)initChildLyRestrictions { + CGFloat width = self.count * kGetScaleWidth(16) + (self.count - 1) * kGetScaleWidth(6); + [self mas_updateConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(width); + }]; +} +-(void)setCurPeriod:(NSInteger)curPeriod{ + _curPeriod = curPeriod; + for (UIButton *button in self.subviews) { + button.selected = _curPeriod == button.tag; + } +} +-(void)setCount:(NSInteger)count{ + _count = count; + [self initChildLyRestrictions]; + [self initSubViews]; + +} + +@end diff --git a/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIRevenueReflectionGoldSpecificsElement.h b/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIRevenueReflectionGoldSpecificsElement.h new file mode 100644 index 00000000..9ca60a7f --- /dev/null +++ b/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIRevenueReflectionGoldSpecificsElement.h @@ -0,0 +1,18 @@ +// +// YUMIRevenueReflectionGoldSpecificsElement.h +// YuMi +// +// Created by YuMi on 2023/6/30. +// + +#import +#import "YUMIRevenueReflectionGoldSpecificsMatrix.h" +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIRevenueReflectionGoldSpecificsElement : UITableViewCell +@property (nonatomic,strong) YUMIRevenueReflectionGoldSpecificProvisionMatrix *specificMatrix; +@property (nonatomic,assign) NSInteger path; +@property (nonatomic,strong,readonly) UILabel *chamberRegard; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIRevenueReflectionGoldSpecificsElement.m b/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIRevenueReflectionGoldSpecificsElement.m new file mode 100644 index 00000000..1d1f503a --- /dev/null +++ b/YuMi/Modules/YMMine/View/GiveDiamond/View/Cell/YUMIRevenueReflectionGoldSpecificsElement.m @@ -0,0 +1,235 @@ +// +// YUMIRevenueReflectionGoldSpecificsElement.m +// YuMi +// +// Created by YuMi on 2023/6/30. +// + +#import "YUMIRevenueReflectionGoldSpecificsElement.h" +#import "NetIndicateRegard.h" +#import "NSString+Utils.h" +@interface YUMIRevenueReflectionGoldSpecificsElement() +@property (nonatomic,strong) UILabel *rateRegard; +@property (nonatomic,strong) NetIndicateRegard *consumerIndicateRegard; +@property (nonatomic,strong) UILabel *consumerConstituteRegard; +@property (nonatomic,strong) UILabel *bWSttawberrysFigureRegard; +@property (nonatomic,strong) UILabel *exdiversificationFigureRegard; +@property (nonatomic,strong) UILabel *convertedRegard; +@property (nonatomic,strong) UILabel *settlementFigureRegard; + +@end +@implementation YUMIRevenueReflectionGoldSpecificsElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + if([reuseIdentifier isEqualToString:NSStringFromClass([YUMIRevenueReflectionGoldSpecificsElement class])]){ + [self initSubViews]; + [self initChildLyRestrictions]; + }else{ + [self initChildLysAboutCollective]; + [self initChildLyRestrictionsAboutCollective]; + } + + } + return self; +} + +#pragma mark - Private Method + +- (void)initSubViews { + self.backgroundColor = [UIColor whiteColor]; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.consumerIndicateRegard]; + [self.contentView addSubview:self.consumerConstituteRegard]; + [self.contentView addSubview:self.bWSttawberrysFigureRegard]; + [self.contentView addSubview:self.exdiversificationFigureRegard]; + [self.contentView addSubview:self.convertedRegard]; + [self.contentView addSubview:self.settlementFigureRegard]; + self.consumerIndicateRegard.layer.cornerRadius = kGetScaleWidth(34)/2; + + +} +- (void)initChildLyRestrictions { + [self.consumerIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(kGetScaleWidth(12)); + make.width.height.mas_equalTo(kGetScaleWidth(34)); + make.left.mas_equalTo(kGetScaleWidth(15)); + }]; + [self.consumerConstituteRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.equalTo(self.consumerIndicateRegard.mas_bottom).mas_offset(kGetScaleWidth(6)); + make.right.equalTo(self.bWSttawberrysFigureRegard.mas_left).mas_offset(-kGetScaleWidth(4)); + make.left.mas_equalTo(kGetScaleWidth(3)); + make.height.mas_equalTo(kGetScaleWidth(14)); + }]; + CGFloat width = kGetScaleWidth(247/3); + [self.settlementFigureRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(width); + make.centerY.equalTo(self.consumerIndicateRegard); + make.height.mas_equalTo(kGetScaleWidth(17)); + make.right.mas_equalTo(0); + + }]; + + [self.exdiversificationFigureRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.width.centerY.equalTo(self.settlementFigureRegard); + make.right.equalTo(self.settlementFigureRegard.mas_left); + }]; + [self.convertedRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(kGetScaleWidth(14)); + make.width.left.equalTo(self.exdiversificationFigureRegard); + make.top.equalTo(self.exdiversificationFigureRegard.mas_bottom).mas_offset(3); + }]; + [self.bWSttawberrysFigureRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.width.centerY.equalTo(self.exdiversificationFigureRegard); + make.right.equalTo(self.exdiversificationFigureRegard.mas_left); + + + }]; +} +- (void)initChildLysAboutCollective{ + self.backgroundColor = [UIColor whiteColor]; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.rateRegard]; + [self.contentView addSubview:self.consumerIndicateRegard]; + [self.contentView addSubview:self.consumerConstituteRegard]; + [self.contentView addSubview:self.bWSttawberrysFigureRegard]; + [self.contentView addSubview:self.exdiversificationFigureRegard]; + [self.contentView addSubview:self.convertedRegard]; + [self.contentView addSubview:self.settlementFigureRegard]; + self.consumerIndicateRegard.layer.cornerRadius = kGetScaleWidth(35)/2; +} +- (void)initChildLyRestrictionsAboutCollective{ + [self.rateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.top.bottom.equalTo(self.contentView); + make.width.mas_equalTo(kGetScaleWidth(50)); + }]; + [self.consumerIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(kGetScaleWidth(12)); + make.width.height.mas_equalTo(kGetScaleWidth(35)); + make.left.mas_equalTo(kGetScaleWidth(57)); + }]; + [self.consumerConstituteRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.equalTo(self.consumerIndicateRegard.mas_bottom).mas_offset(kGetScaleWidth(6)); + make.centerX.equalTo(self.consumerIndicateRegard); + make.width.mas_equalTo(kGetScaleWidth(48)); + make.height.mas_equalTo(kGetScaleWidth(14)); + }]; + CGFloat width = kGetScaleWidth(277/3); + [self.bWSttawberrysFigureRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.equalTo(self.consumerConstituteRegard.mas_right).mas_offset(1); + make.width.mas_equalTo(width); + make.centerY.equalTo(self.consumerIndicateRegard); + make.height.mas_equalTo(kGetScaleWidth(17)); + }]; + [self.exdiversificationFigureRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.width.centerY.equalTo(self.bWSttawberrysFigureRegard); + make.left.equalTo(self.bWSttawberrysFigureRegard.mas_right); + }]; + [self.convertedRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(kGetScaleWidth(14)); + make.width.left.equalTo(self.exdiversificationFigureRegard); + make.top.equalTo(self.exdiversificationFigureRegard.mas_bottom).mas_offset(3); + }]; + [self.settlementFigureRegard mas_makeConstraints:^(MASConstraintMaker *make) { + + make.height.width.centerY.equalTo(self.exdiversificationFigureRegard); + make.left.equalTo(self.exdiversificationFigureRegard.mas_right); + + }]; + +} +-(void)setPath:(NSInteger)path{ + _path = path; + _rateRegard.text = [NSString stringWithFormat:@"%ld",_path + 1]; +} + +-(void)setSpecificMatrix:(YUMIRevenueReflectionGoldSpecificProvisionMatrix *)specificMatrix{ + _specificMatrix = specificMatrix; + _consumerConstituteRegard.text = _specificMatrix.nick; + _consumerIndicateRegard.imageUrl = _specificMatrix.avatar; + _exdiversificationFigureRegard.text = [NSString acquireDealFigurewithsttri:_specificMatrix.giftGolds]; + _bWSttawberrysFigureRegard.text = [NSString acquireDealFigurewithsttri:_specificMatrix.giftDiamonds]; + _convertedRegard.text = [NSString stringWithFormat:YMLocalizedString(@"YUMI_Income_Record_Gold_Details_Cell_0"),[NSString acquireDealFigurewithsttri:_specificMatrix.exchangeGolds]]; + _settlementFigureRegard.text = [NSString acquireDealFigurewithsttri:_specificMatrix.remainGolds]; +} +#pragma mark -懒加载 +- (NetIndicateRegard *)consumerIndicateRegard{ + if (!_consumerIndicateRegard){ + NetIndicateDisposition *config = [[ NetIndicateDisposition alloc]init]; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _consumerIndicateRegard = [[NetIndicateRegard alloc]initWithConfig:config]; + + _consumerIndicateRegard.layer.masksToBounds = YES; + } + return _consumerIndicateRegard; +} + +- (UILabel *)consumerConstituteRegard { + if (!_consumerConstituteRegard) { + _consumerConstituteRegard = [[UILabel alloc] init]; + _consumerConstituteRegard.font = [UIFont systemFontOfSize:10 weight:UIFontWeightMedium]; + _consumerConstituteRegard.textColor = [DJDKMIMOMColor introjectionEssayPrettify]; + _consumerConstituteRegard.textAlignment = NSTextAlignmentCenter; + _consumerConstituteRegard.text = @"0"; + } + return _consumerConstituteRegard; +} + + +- (UILabel *)bWSttawberrysFigureRegard { + if (!_exdiversificationFigureRegard) { + _bWSttawberrysFigureRegard = [[UILabel alloc] init]; + _bWSttawberrysFigureRegard.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium]; + _bWSttawberrysFigureRegard.textColor = [DJDKMIMOMColor introjectionEssayPrettify]; + _bWSttawberrysFigureRegard.textAlignment = NSTextAlignmentCenter; + _bWSttawberrysFigureRegard.text = @"0"; + } + return _bWSttawberrysFigureRegard; +} + + +- (UILabel *)exdiversificationFigureRegard { + if (!_exdiversificationFigureRegard) { + _exdiversificationFigureRegard = [[UILabel alloc] init]; + _exdiversificationFigureRegard.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium]; + _exdiversificationFigureRegard.textColor = [DJDKMIMOMColor introjectionEssayPrettify]; + _exdiversificationFigureRegard.textAlignment = NSTextAlignmentCenter; + _exdiversificationFigureRegard.text = @"0"; + } + return _exdiversificationFigureRegard; +} + +- (UILabel *)settlementFigureRegard { + if (!_settlementFigureRegard) { + _settlementFigureRegard = [[UILabel alloc] init]; + _settlementFigureRegard.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium]; + _settlementFigureRegard.textColor = UIColorFromRGB(0xDD9E0B); + _settlementFigureRegard.textAlignment = NSTextAlignmentCenter; + _settlementFigureRegard.text = @"0"; + } + return _settlementFigureRegard; +} + +- (UILabel *)convertedRegard { + if (!_convertedRegard) { + _convertedRegard = [[UILabel alloc] init]; + _convertedRegard.font = [UIFont systemFontOfSize:10 weight:UIFontWeightMedium]; + _convertedRegard.textColor = [DJDKMIMOMColor prohibitionBtutonEssayPrettify]; + _convertedRegard.text = [NSString stringWithFormat:YMLocalizedString(@"YUMI_Income_Record_Gold_Details_Cell_0"),@"0"]; + _convertedRegard.textAlignment = NSTextAlignmentCenter; + } + return _convertedRegard; +} + +- (UILabel *)rateRegard { + if (!_convertedRegard) { + _rateRegard = [[UILabel alloc] init]; + _rateRegard.font = [UIFont systemFontOfSize:14 weight:UIFontWeightSemibold]; + _rateRegard.textColor = [DJDKMIMOMColor introjectionEssayPrettify]; + _rateRegard.textAlignment = NSTextAlignmentCenter; + } + return _rateRegard; +} + + +@end diff --git a/YuMi/Modules/YMMine/View/GiveDiamond/View/YUMIManeChooseGiveDiamondVC.h b/YuMi/Modules/YMMine/View/GiveDiamond/View/YUMIManeChooseGiveDiamondVC.h new file mode 100644 index 00000000..96d0aa94 --- /dev/null +++ b/YuMi/Modules/YMMine/View/GiveDiamond/View/YUMIManeChooseGiveDiamondVC.h @@ -0,0 +1,29 @@ +// +// YUMIManeChooseGiveDiamondVC.h +// YuMi +// +// Created by YuMi on 2022/10/19. +// + +#import +#import "MvpRegardGovernancer.h" +#import "YUMIManeGiveDiamondMatrix.h" +@class ConsumerAbstractMatrix; +NS_ASSUME_NONNULL_BEGIN + +@protocol FBCManeChooseGiveDiamondVCRepresendtation + +- (void)yumiManeConcludeGiveDiamondVewCAccomplishAboutMtowardsrix:(YUMIManeGiveDiamondMatrix *)model; + + + +@end + + +@interface YUMIManeChooseGiveDiamondVC : MvpRegardGovernancer +@property (nonatomic,strong) YUMIManeGiveDiamondMatrix *giveBWSttawberryMatrix; +@property (nonatomic,strong) ConsumerAbstractMatrix *userInfo; +@property (nonatomic,weak) id delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/GiveDiamond/View/YUMIManeChooseGiveDiamondVC.m b/YuMi/Modules/YMMine/View/GiveDiamond/View/YUMIManeChooseGiveDiamondVC.m new file mode 100644 index 00000000..ca8cc1b3 --- /dev/null +++ b/YuMi/Modules/YMMine/View/GiveDiamond/View/YUMIManeChooseGiveDiamondVC.m @@ -0,0 +1,255 @@ +// +// YUMIManeChooseGiveDiamondVC.m +// YuMi +// +// Created by YuMi on 2022/10/19. +// + +#import "YUMIManeChooseGiveDiamondVC.h" +#import "YUMIManeChooseGiveDiamondRegard.h" +#import "FBCManeGiveDiamondCeremony.h" +#import "YUMIManeGiveDiamondExternalizer.h" +#import "RamparatetAbstractMatrix.h" +#import "ConsumerAbstractMatrix.h" +#import "YUMIManeGiveDiamondPwordRegard.h" +#import "YUMIManeIntersectPwordRegardGovernancer.h" +#import "YUMIManeConfirmGiveDiamondRegard.h" +#import "NSDate+DateUtils.h" +#import "YUMIManeGiveDiamondCiphercodeRegard.h" +#import "PresentAbstractMatrix.h" +#import "ClientDisposition.h" +#import "MKJPopup.h" +UIKIT_EXTERN NSString * const kGiveDiamondDailyNum; + +@interface YUMIManeChooseGiveDiamondVC () +@property (nonatomic,strong) YUMIManeChooseGiveDiamondRegard *giveBWSttawberryRegard; +@property (nonatomic,copy) NSString *diamonds; +@property (nonatomic,assign) NSInteger introjectionBWSttawberrys; +@property (nonatomic,copy) NSString *password; +@property (nonatomic,strong) NSMutableArray *giftList; +@property (nonatomic,assign) BOOL isHaveGiveBWSttawberry; +@property (nonatomic,assign) BOOL isHaveGivePresent; +@end + +@implementation YUMIManeChooseGiveDiamondVC +- (YUMIManeGiveDiamondExternalizer *)producePresimport { + return [[YUMIManeGiveDiamondExternalizer alloc] init]; +} +- (void)viewDidLoad { + [super viewDidLoad]; + [self examineHaveGivePreconditionion]; + [self initSubViews]; + [self initChildLyRestrictions]; + self.giveBWSttawberryRegard.giveBWSttawberryMatrix = self.giveBWSttawberryMatrix; + self.giveBWSttawberryRegard.userInfo = self.userInfo; + [self.presimport acquireConsumerPocketbookAbstract]; + [self.presimport acquireImpactPresentSttowardsement]; + + + +} +-(void)dealloc{ + NSLog(@"内存释放了"); +} +#pragma mark -FBCManeConfirmGiveDiamondRegardRepresendtation + +- (void)acquireShetowardshePresentSttowardsementAccomplishment:(NSArray *)giftList{ + [self.giftList addObjectsFromArray:giftList]; + NSInteger count = self.giftList.count % 8 == 0 ? self.giftList.count / 8 : self.giftList.count / 8 + 1; + NSInteger getCount = count * 8 - self.giftList.count; + if(getCount > 0){ + for (int i = 0; i < getCount; i++) { + PresentAbstractMatrix *model = [PresentAbstractMatrix new]; + model.isEmpty = YES; + [self.giftList addObject:model]; + } + } + + [self.giveBWSttawberryRegard setListData:self.giftList count:count]; +} +- (void)acquireShetowardshePresentSttowardsementFlunk:(NSString *)message{ + +} + + +- (void)yumiManeConfirmGiveDiamondRegardAccomplish{ + + + if (self.userInfo.isBindPaymentPwd) { + YUMIManeGiveDiamondPwordRegard*pwdView = [[YUMIManeGiveDiamondPwordRegard alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth, KScreenHeight)]; + pwdView.delegate = self; + [[UIApplication sharedApplication].keyWindow addSubview:pwdView]; + } else { + + YUMIManeGiveDiamondCiphercodeRegard *ciphercryptogramRegard = [[YUMIManeGiveDiamondCiphercodeRegard alloc]initWithFrame:CGRectZero]; + @kWeakify(self); + ciphercryptogramRegard.completeBlock = ^(){ + @kStrongify(self); + YUMIManeIntersectPwordRegardGovernancer *vc = [[YUMIManeIntersectPwordRegardGovernancer alloc] init]; + vc.userInfo = self.userInfo; + vc.delegate = self; + [self.navigationController pushViewController:vc animated:YES]; + }; + [MKJPopup popupRegard:ciphercryptogramRegard style:MKJPopupStyleAlert]; + } + + +} +#pragma mark - FBCManeGiveDiamondPwordRegardRepresendtation +- (void)yumiManeGiveDiamondPwordRegardPwordAccomplish:(NSString *)pwd{ + self.password = pwd; + [self EvidenceChambering]; + [self.presimport acknowledgementPerformanceAboutIntersectAboutToCid:self.giveBWSttawberryMatrix.targetUid diamondNum:@(self.introjectionBWSttawberrys).stringValue payPwd:self.password]; + +} +#pragma mark - FBCManeGiveDiamondCeremony +- (void)acquireConsumerPocketbookAbstract:(RamparatetAbstractMatrix *)balanceInfo{ + [self.giveBWSttawberryRegard setStrawberry:balanceInfo.diamonds]; + self.diamonds = balanceInfo.diamonds; +} + +#pragma mark - FBCManePayPwordRegardGovernancerRepresendtation + + +-(void)givePresentAccomplishment{ + [self brakeHUD]; + [self EvidenceAccomplishmentToast:YMLocalizedString(@"YUMI_MineChooseGiveDiamondVC6")]; + if(self.delegate && [self.delegate respondsToSelector:@selector(yumiManeConcludeGiveDiamondVewCAccomplishAboutMtowardsrix:)]){ + [self.delegate yumiManeConcludeGiveDiamondVewCAccomplishAboutMtowardsrix:self.giveBWSttawberryMatrix]; + } + [self.navigationController popViewControllerAnimated:YES]; +} + +- (void)payCiphercryptogramAccomplishment{ + self.userInfo.isBindPaymentPwd = YES; +} + +-(void)acknowledgementPerformanceAboutIntersect{ + [self brakeHUD]; + + NSMutableDictionary *dailyNumDic ; + NSDictionary *getDic = [[NSUserDefaults standardUserDefaults]valueForKey:kGiveDiamondDailyNum]; + if(getDic == nil){ + dailyNumDic = [NSMutableDictionary dictionary]; + }else{ + dailyNumDic = [NSMutableDictionary dictionaryWithDictionary:getDic]; + } + NSString *key = [NSString stringWithFormat:@"%ld-%@",self.userInfo.uid,[NSDate acquireNowIntrtowardsemporalIntrtowardsemporalstamp]]; + NSInteger dailyNum = 0; + if(dailyNumDic[key] != nil){ + NSInteger getNum = [dailyNumDic[key] integerValue]; + dailyNum = getNum; + } + NSInteger totalCost = dailyNum + self.introjectionBWSttawberrys; + dailyNumDic[key] = @(totalCost); + [[NSUserDefaults standardUserDefaults]setValue:dailyNumDic forKey:kGiveDiamondDailyNum]; + [[NSUserDefaults standardUserDefaults] synchronize]; + [self EvidenceAccomplishmentToast:YMLocalizedString(@"YUMI_MineChooseGiveDiamondVC6")]; + if(self.delegate && [self.delegate respondsToSelector:@selector(yumiManeConcludeGiveDiamondVewCAccomplishAboutMtowardsrix:)]){ + [self.delegate yumiManeConcludeGiveDiamondVewCAccomplishAboutMtowardsrix:self.giveBWSttawberryMatrix]; + } + [self.navigationController popViewControllerAnimated:YES]; + + +} +-(void)acknowledgementPerformanceAboutEssay:(NSString *)text{ + [self concludeDiamondsAboutEssay:text]; +} +-(void)acknowledgementPerformanceAboutEssay:(NSString *)text concludePresentMatrix:(PresentAbstractMatrix *)concludePresentMatrix{ + [self EvidenceChambering]; + [self.presimport givePresentAboutToCid:self.giveBWSttawberryMatrix.targetUid giftId:@(concludePresentMatrix.giftId).stringValue giftNum:text]; +} + +-(void)concludeDiamondsAboutEssay:(NSString *)text{ + self.introjectionBWSttawberrys = [text integerValue]; + NSInteger totalNum = self.introjectionBWSttawberrys; + ClientDisposition *config = [ClientDisposition partowardsiciptowardsionDisposition]; + double poundage = config.dispositionAbstract.giveDiamondRate * totalNum; + NSInteger totalCost = totalNum + poundage; + if(totalCost > [self.diamonds integerValue]){ + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_MineChooseGiveDiamondVC5")]; + return; + } + if(self.introjectionBWSttawberrys > config.dispositionAbstract.giveDiamondOnceLimitNum){ + [self EvidenceMistakeToast:[NSString stringWithFormat:YMLocalizedString(@"YUMI_MineChooseGiveDiamondVC4"),@(config.dispositionAbstract.giveDiamondOnceLimitNum)]]; + return; + } + NSMutableDictionary *dailyNumDic = [[NSUserDefaults standardUserDefaults]valueForKey:kGiveDiamondDailyNum]; + if(dailyNumDic != nil){ + NSString *key = [NSString stringWithFormat:@"%ld-%@",self.userInfo.uid,[NSDate acquireNowIntrtowardsemporalIntrtowardsemporalstamp]]; + NSInteger dailyNum = 0; + if(dailyNumDic[key] != nil){ + dailyNum = [dailyNumDic[key] integerValue]; + } + NSInteger getTotalNum = dailyNum + totalNum; + if(getTotalNum > config.dispositionAbstract.giveDiamondDailyNum){ + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_MineChooseGiveDiamondVC3")]; + return; + } + } + + YUMIManeConfirmGiveDiamondRegard *confirmView = [[YUMIManeConfirmGiveDiamondRegard alloc]initWithFrame:CGRectZero]; + confirmView.poundage = poundage; + confirmView.introjectionBWSttawberrys = self.introjectionBWSttawberrys; + confirmView.delegate = self; + confirmView.giveBWSttawberryMatrix = self.giveBWSttawberryMatrix; + [MKJPopup popupRegard:confirmView style:MKJPopupStyleAlert]; +} +#pragma mark- 检查是否有转赠权限 +-(void)examineHaveGivePreconditionion{ + + ClientDisposition *config = [ClientDisposition partowardsiciptowardsionDisposition]; + NSArray *uidList = config.dispositionAbstract.giveDiamondErbanNoList; + for (id uid in uidList) { + NSString *acquireCid = [uid stringValue]; + if([acquireCid isEqualToString:@(self.userInfo.erbanNo).stringValue]){ + self.isHaveGiveBWSttawberry = YES; + break; + } + } + for (id uid in config.dispositionAbstract.giveGiftErbanNoList) { + NSString *acquireCid = [uid stringValue]; + if([acquireCid isEqualToString:@(self.userInfo.erbanNo).stringValue]){ + self.isHaveGivePresent = YES; + break; + } + } + if(self.userInfo.userLevelVo.experLevelSeq >= config.dispositionAbstract.giveDiamondExperLevel){ + self.isHaveGiveBWSttawberry = YES; + } + if(self.userInfo.userLevelVo.experLevelSeq >= config.dispositionAbstract.giveGiftExperLevel){ + + self.isHaveGivePresent = YES; + } +} +#pragma mark - Private Method +- (void)initSubViews { + self.view.backgroundColor = [UIColor whiteColor]; + self.title = YMLocalizedString(@"YUMI_MineChooseGiveDiamondVC0"); + [self.view addSubview:self.giveBWSttawberryRegard]; +} +- (void)initChildLyRestrictions { + + [self.giveBWSttawberryRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.equalTo(self.view); + make.top.mas_equalTo(0); + }]; +} + +#pragma mark -懒加载 +- (YUMIManeChooseGiveDiamondRegard *)giveBWSttawberryRegard{ + if (!_giveBWSttawberryRegard){ + _giveBWSttawberryRegard = [[YUMIManeChooseGiveDiamondRegard alloc]initWithFrame:CGRectZero isHaveGiveBWSttawberry:self.isHaveGiveBWSttawberry isHaveGivePresent:self.isHaveGivePresent]; + _giveBWSttawberryRegard.delegate = self; + } + return _giveBWSttawberryRegard; +} +-(NSMutableArray *)giftList{ + if (!_giftList){ + _giftList = [NSMutableArray array]; + } + return _giftList; +} + + +@end diff --git a/YuMi/Modules/YMMine/View/GiveDiamond/View/YUMIManeGiveDiamondSpecificsVC.h b/YuMi/Modules/YMMine/View/GiveDiamond/View/YUMIManeGiveDiamondSpecificsVC.h new file mode 100644 index 00000000..f5128c2f --- /dev/null +++ b/YuMi/Modules/YMMine/View/GiveDiamond/View/YUMIManeGiveDiamondSpecificsVC.h @@ -0,0 +1,20 @@ +// +// YUMIManeGiveDiamondSpecificsVC.h +// YuMi +// +// Created by YuMi on 2022/10/31. +// + +#import "MvpRegardGovernancer.h" +#import "ConsumerAbstractMatrix.h" + + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeGiveDiamondSpecificsVC : MvpRegardGovernancer + +@property (nonatomic,strong) ConsumerAbstractMatrix *userInfo; +@property (nonatomic,copy) NSString *toUid; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/GiveDiamond/View/YUMIManeGiveDiamondSpecificsVC.m b/YuMi/Modules/YMMine/View/GiveDiamond/View/YUMIManeGiveDiamondSpecificsVC.m new file mode 100644 index 00000000..d2e618e0 --- /dev/null +++ b/YuMi/Modules/YMMine/View/GiveDiamond/View/YUMIManeGiveDiamondSpecificsVC.m @@ -0,0 +1,315 @@ +// +// YUMIManeGiveDiamondSpecificsVC.m +// YuMi +// +// Created by YuMi on 2022/10/31. +// + +#import "YUMIManeGiveDiamondSpecificsVC.h" +#import +#import +#import +#import +#import "YUMIManeGiveDiamondSpecificsRegard.h" + +#import "YUMIManeGiveDiamondExternalizer.h" + +#import "FBCManeGiveDiamondCeremony.h" +#import "DJDKMIMOMColor.h" +#import "ClientDisposition.h" +#import "UIImage+Utils.h" + +@interface YUMIManeGiveDiamondSpecificsVC () +@property (nonatomic, strong) NSArray *titles; +@property (nonatomic, strong) JXCategoryTitleView *titleView; +@property (nonatomic, strong) JXCategoryListContainerView *containerView; +@property (nonatomic,strong) YUMIManeGiveDiamondSpecificsRegard *bWSttawberryRegard; +@property (nonatomic,strong) YUMIManeGiveDiamondSpecificsRegard *presentRegard; + +@property (nonatomic,assign) int type; +@property (nonatomic,assign) int strawberryPeriod; +@property (nonatomic,assign) int presentPeriod; +@property (nonatomic,assign) BOOL hasNoFurthaerBWSttawberryAtoloudspeaker; +@property (nonatomic,assign) BOOL hasNoFurthaerPresentAtoloudspeaker; + +@property (nonatomic,assign) BOOL isHaveGiveBWSttawberry; +@property (nonatomic,assign) BOOL isHaveGivePresent; +@end + +@implementation YUMIManeGiveDiamondSpecificsVC +- (YUMIManeGiveDiamondExternalizer *)producePresimport { + return [[YUMIManeGiveDiamondExternalizer alloc] init]; +} +- (void)viewDidLoad { + [super viewDidLoad]; + [self examineHaveGivePreconditionion]; + [self initSubViews]; + [self initIntelligencerGrantedTerminalerRrfresh]; + [self initChildLyRestrictions]; + self.strawberryPeriod = 1; + self.presentPeriod = 1; + + + if(self.isHaveGivePresent == YES && self.isHaveGiveBWSttawberry == NO){ + [self.presimport acquireExamplesHLOfReflectionAboutCid:self.toUid type:1 page:self.presentPeriod]; + }else{ + [self.presimport acquireExamplesHLOfReflectionAboutCid:self.toUid type:0 page:self.strawberryPeriod]; + } + + +} + + +#pragma mark - Private Method +- (void)initSubViews { + self.view.backgroundColor = [UIColor whiteColor]; + self.title = YMLocalizedString(@"YUMI_MineGiveDiamondDetailsVC0"); + if(self.isHaveGiveBWSttawberry == YES && self.isHaveGivePresent == NO){ + self.type = 0; + [self.view addSubview:self.bWSttawberryRegard]; + }else if (self.isHaveGiveBWSttawberry == NO && self.isHaveGivePresent == YES){ + self.type = 1; + [self.view addSubview:self.presentRegard]; + }else{ + self.type = 0; + [self.view addSubview:self.titleView]; + [self.view addSubview:self.containerView]; + } + + +} +- (void)initChildLyRestrictions { + if(self.isHaveGiveBWSttawberry == YES && self.isHaveGivePresent == NO){ + [self.bWSttawberryRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.equalTo(self.view); + }]; + }else if (self.isHaveGiveBWSttawberry == NO && self.isHaveGivePresent == YES){ + [self.presentRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.equalTo(self.view); + }]; + }else{ + [self.titleView mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.top.width.mas_equalTo(self.view); + make.height.mas_equalTo(30); + + }]; + [self.containerView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.mas_equalTo(self.view); + make.top.mas_equalTo(self.titleView.mas_bottom).offset(10); + }]; + } + +} +#pragma mark -FBCManeGiveDiamondCeremony + +- (void)acquireexamplesHLOfReflectionAboutSttowardsement:(NSArray *)list state:(int)state{ + if (state == 0) { + if(self.strawberryPeriod == 1){ + self.hasNoFurthaerBWSttawberryAtoloudspeaker = NO; + [self.bWSttawberryRegard.tableView.mj_header endRefreshing]; + self.bWSttawberryRegard.listData = [NSMutableArray arrayWithArray:list]; + [self.bWSttawberryRegard.tableView reloadData]; + return; + } + if (list.count > 0) { + [self.bWSttawberryRegard.listData addObjectsFromArray:list]; + [self.bWSttawberryRegard.tableView reloadData]; + self.hasNoFurthaerBWSttawberryAtoloudspeaker = NO; + }else{ + self.hasNoFurthaerBWSttawberryAtoloudspeaker = YES; + + } + [self.bWSttawberryRegard.tableView.mj_footer endRefreshing]; + return; + } + if(self.presentPeriod == 1){ + self.hasNoFurthaerPresentAtoloudspeaker = NO; + [self.presentRegard.tableView.mj_header endRefreshing]; + self.presentRegard.listData = [NSMutableArray arrayWithArray:list]; + [self.presentRegard.tableView reloadData]; + return; + } + if (list.count > 0) { + [self.presentRegard.listData addObjectsFromArray:list]; + [self.presentRegard.tableView reloadData]; + self.hasNoFurthaerPresentAtoloudspeaker = NO; + }else{ + self.hasNoFurthaerPresentAtoloudspeaker = YES; + + } + [self.self.presentRegard.tableView.mj_footer endRefreshing]; + +} +-(void)acquireexamplesHLOfReflectionAboutSttowardsementAboutFlunkDeclare:(int)state{ + if(state == 0){ + [self.bWSttawberryRegard.tableView.mj_header endRefreshing]; + [self.bWSttawberryRegard.tableView.mj_footer endRefreshing]; + return; + } + [self.presentRegard.tableView.mj_header endRefreshing]; + [self.presentRegard.tableView.mj_footer endRefreshing]; +} +#pragma mark - 下拉刷新 +- (void)initIntelligencerGrantedTerminalerRrfresh { + MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(intelligenceerRenovtowardseh)]; + header.stateLabel.font = [UIFont systemFontOfSize:10.0]; + header.lastUpdatedTimeLabel.font = [UIFont systemFontOfSize:10.0]; + header.stateLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + header.lastUpdatedTimeLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + self.bWSttawberryRegard.tableView.mj_header = header; + + MJRefreshNormalHeader *giftHeader = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(intelligenceerRenovtowardseh)]; + giftHeader.stateLabel.font = [UIFont systemFontOfSize:10.0]; + giftHeader.lastUpdatedTimeLabel.font = [UIFont systemFontOfSize:10.0]; + giftHeader.stateLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + giftHeader.lastUpdatedTimeLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + self.presentRegard.tableView.mj_header = giftHeader; + + MJRefreshBackNormalFooter *footer = [MJRefreshBackNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(footerRenovtowardseh)]; + footer.stateLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + footer.stateLabel.font = [UIFont systemFontOfSize:10.0]; + self.bWSttawberryRegard.tableView.mj_footer = footer; + + MJRefreshBackNormalFooter *giftFooter = [MJRefreshBackNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(footerRenovtowardseh)]; + giftFooter.stateLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + giftFooter.stateLabel.font = [UIFont systemFontOfSize:10.0]; + self.presentRegard.tableView.mj_footer = giftFooter; + +} +#pragma mark - 刷新的fangfa +- (void)intelligenceerRenovtowardseh { + if(self.type == 0){ + self.strawberryPeriod = 1; + [self.presimport acquireExamplesHLOfReflectionAboutCid:self.toUid type:self.type page:self.strawberryPeriod]; + return; + } + + self.presentPeriod = 1; + [self.presimport acquireExamplesHLOfReflectionAboutCid:self.toUid type:self.type page:self.presentPeriod]; +} + +- (void)footerRenovtowardseh { + if (self.hasNoFurthaerBWSttawberryAtoloudspeaker && self.type == 0) { + [self.bWSttawberryRegard.tableView.mj_footer endRefreshing]; + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:YMLocalizedString(@"YUMI_Monents_Recommend_View_Controller_0")]; + return; + } + if(self.hasNoFurthaerPresentAtoloudspeaker && self.type == 1){ + [self.presentRegard.tableView.mj_footer endRefreshing]; + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:YMLocalizedString(@"YUMI_Monents_Recommend_View_Controller_0")]; + return; + } + if(self.type == 0){ + self.strawberryPeriod++; + [self.presimport acquireExamplesHLOfReflectionAboutCid:self.toUid type:self.type page:self.strawberryPeriod]; + return; + } + self.presentPeriod++; + [self.presimport acquireExamplesHLOfReflectionAboutCid:self.toUid type:self.type page:self.presentPeriod]; +} +#pragma mark- 检查是否有转赠权限 + +-(void)examineHaveGivePreconditionion{ + + ClientDisposition *config = [ClientDisposition partowardsiciptowardsionDisposition]; + NSArray *uidList = config.dispositionAbstract.giveDiamondErbanNoList; + for (id uid in uidList) { + NSString *acquireCid = [uid stringValue]; + if([acquireCid isEqualToString:@(self.userInfo.erbanNo).stringValue]){ + self.isHaveGiveBWSttawberry = YES; + break; + } + } + for (id uid in config.dispositionAbstract.giveGiftErbanNoList) { + NSString *acquireCid = [uid stringValue]; + if([acquireCid isEqualToString:@(self.userInfo.erbanNo).stringValue]){ + self.isHaveGivePresent = YES; + break; + } + } + if(self.userInfo.userLevelVo.experLevelSeq >= config.dispositionAbstract.giveDiamondExperLevel){ + self.isHaveGiveBWSttawberry = YES; + } + if(self.userInfo.userLevelVo.experLevelSeq >= config.dispositionAbstract.giveGiftExperLevel){ + + self.isHaveGivePresent = YES; + } + +} +#pragma mark - JXCategoryViewDelegate +- (NSInteger)numberOfListsInlistContainerView:(JXCategoryListContainerView *)listContainerView { + return self.titles.count; +} + +- (id)listContainerView:(JXCategoryListContainerView *)listContainerView initListForIndex:(NSInteger)index { + if (index == 0) { + self.type = 0; + return self.bWSttawberryRegard; + } else { + self.type = 1; + if(self.presentRegard.listData.count == 0){ + [self.presimport acquireExamplesHLOfReflectionAboutCid:self.toUid type:1 page:self.presentPeriod]; + } + return self.presentRegard; + } +} + +#pragma mark - 懒加载 +- (JXCategoryTitleView *)titleView { + if (!_titleView) { + _titleView = [[JXCategoryTitleView alloc] init]; + _titleView.delegate = self; + _titleView.titles = self.titles; + _titleView.backgroundColor = [UIColor clearColor]; + _titleView.titleColor = UIColorFromRGB(0x6D6B89); + _titleView.titleSelectedColor = UIColorFromRGB(0x1F1A4E); + _titleView.titleFont = [UIFont systemFontOfSize:kGetScaleWidth(15) weight:UIFontWeightMedium]; + _titleView.titleSelectedFont = [UIFont systemFontOfSize:kGetScaleWidth(15) weight:UIFontWeightMedium]; + _titleView.titleLabelAnchorPointStyle = JXCategoryTitleLabelAnchorPointStyleCenter; + _titleView.contentScrollViewClickTransitionAnimationEnabled = NO; + _titleView.defaultSelectedIndex = 0; + _titleView.cellSpacing = 20; + _titleView.cellWidthIncrement = 5; + _titleView.cellWidth = 60; + _titleView.listContainer = self.containerView; + + JXCategoryIndicatorImageView *burlywoodRegard = [[JXCategoryIndicatorImageView alloc] init]; + burlywoodRegard.indicatorImageViewSize = CGSizeMake(16, 3); + burlywoodRegard.verticalMargin = -1; + burlywoodRegard.indicatorImageView.image = [UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor acknowledgementBtutonObliquityMiddlePrettify],[DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(15, 3)]; + burlywoodRegard.indicatorImageView.layer.masksToBounds = YES; + burlywoodRegard.indicatorImageView.layer.cornerRadius = 1.5; + _titleView.indicators = @[burlywoodRegard]; + } + return _titleView; +} + +- (JXCategoryListContainerView *)containerView { + if (!_containerView) { + _containerView = [[JXCategoryListContainerView alloc] initWithType:JXCategoryListContainerType_ScrollView delegate:self]; + _containerView.defaultSelectedIndex = 0; + [_containerView.scrollView.panGestureRecognizer requireGestureRecognizerToFail:self.navigationController.interactivePopGestureRecognizer]; + + } + return _containerView; +} + +- (NSArray *)titles { + if (!_titles) { + _titles = @[YMLocalizedString(@"YUMI_MineGiveDiamondDetailsVC1"), YMLocalizedString(@"YUMI_MineGiveDiamondDetailsVC2")]; + } + return _titles; +} +-(YUMIManeGiveDiamondSpecificsRegard *)bWSttawberryRegard{ + if (!_bWSttawberryRegard){ + _bWSttawberryRegard = [[YUMIManeGiveDiamondSpecificsRegard alloc]initWithFrame:CGRectZero]; + } + return _bWSttawberryRegard; +} +-(YUMIManeGiveDiamondSpecificsRegard *)presentRegard{ + if (!_presentRegard){ + _presentRegard = [[YUMIManeGiveDiamondSpecificsRegard alloc]initWithFrame:CGRectZero]; + } + return _presentRegard; +} +@end diff --git a/YuMi/Modules/YMMine/View/GiveDiamond/View/YUMIManeGiveDiamondVC.h b/YuMi/Modules/YMMine/View/GiveDiamond/View/YUMIManeGiveDiamondVC.h new file mode 100644 index 00000000..ed37c1d0 --- /dev/null +++ b/YuMi/Modules/YMMine/View/GiveDiamond/View/YUMIManeGiveDiamondVC.h @@ -0,0 +1,17 @@ +// +// YUMIManeGiveDiamondVC.h +// YuMi +// +// Created by YuMi on 2022/10/17. +// + +#import +#import "MvpRegardGovernancer.h" +#import "ConsumerAbstractMatrix.h" +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeGiveDiamondVC : MvpRegardGovernancer +@property (nonatomic,strong) ConsumerAbstractMatrix *userInfo; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/GiveDiamond/View/YUMIManeGiveDiamondVC.m b/YuMi/Modules/YMMine/View/GiveDiamond/View/YUMIManeGiveDiamondVC.m new file mode 100644 index 00000000..e43896b7 --- /dev/null +++ b/YuMi/Modules/YMMine/View/GiveDiamond/View/YUMIManeGiveDiamondVC.m @@ -0,0 +1,195 @@ +// +// YUMIManeGiveDiamondVC.m +// YuMi +// +// Created by YuMi on 2022/10/17. +// + +#import "YUMIManeGiveDiamondVC.h" + +#import "YUMIManeGiveDiamondHuntforRegard.h" +#import "YUMIManeGiveDiamondElement.h" +#import "YUMIManeAssistantDispossessTabulationRegardElement.h" +#import "YUMIManeChooseGiveDiamondVC.h" +#import "ResidenceHuntforConsequentMatrix.h" +#import "YUMIManeGiveDiamondMatrix.h" +#import "YUMIManeGiveDiamondHuntforMatrix.h" +#import "YUMIManeGiveDiamondSpecificsVC.h" + +#import "YUMIManeGiveDiamondExternalizer.h" + +#import "FBCManeGiveDiamondCeremony.h" +#import "FBCResidenceHuntforCeremony.h" +#import "DJDKMIMOMColor.h" + +@interface YUMIManeGiveDiamondVC () +@property (nonatomic,strong) UITableView *tableView; +@property (nonatomic,strong) YUMIManeGiveDiamondHuntforRegard *huntforRegard; +@property (nonatomic,strong) NSMutableArray *datasource; +@property (nonatomic,strong) UIView *intelligenceRegard; +@property (nonatomic,copy) NSString *text; +@property (nonatomic,strong) UILabel *coupleRegard; +@end + +@implementation YUMIManeGiveDiamondVC +- (YUMIManeGiveDiamondExternalizer *)producePresimport { + return [[YUMIManeGiveDiamondExternalizer alloc] init]; +} +- (void)viewDidLoad { + [super viewDidLoad]; + [self initSubViews]; + [self initChildLyRestrictions]; + [self.presimport acquireGiveDiamondReflection]; +} +- (void)initSubViews { + self.view.backgroundColor = [UIColor whiteColor]; + self.title = YMLocalizedString(@"YUMI_MineGiveDiamondVC0"); + [self.view addSubview:self.huntforRegard]; + [self.view addSubview:self.tableView]; + [self.view addSubview:self.coupleRegard]; + +} + +- (void)initChildLyRestrictions { + [self.huntforRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.left.right.equalTo(self.view); + make.height.mas_equalTo(kGetScaleWidth(32)); + }]; + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.view); + make.bottom.mas_equalTo(-kGetScaleWidth(148)); + make.top.mas_equalTo(kGetScaleWidth(32)); + }]; + [self.coupleRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(kGetScaleWidth(14)); + make.centerX.equalTo(self.view); + make.bottom.mas_equalTo(-kGetScaleWidth(73)); + }]; +} +#pragma mark -FBCManeChooseGiveDiamondVCRepresendtation +- (void)yumiManeConcludeGiveDiamondVewCAccomplishAboutMtowardsrix:(YUMIManeGiveDiamondMatrix *)model{ + if(model != nil){ + if(self.datasource.count != 0){ + NSMutableArray *objList = [NSMutableArray array]; + for (YUMIManeGiveDiamondMatrix *obj in self.datasource) { + if(![obj.targetErbanNo isEqualToString:model.targetErbanNo]){ + [objList addObject:obj]; + } + } + [self.datasource removeAllObjects]; + [self.datasource addObject:model]; + [self.datasource addObjectsFromArray:objList]; + }else{ + [self.datasource addObject:model]; + } + [self.tableView reloadData]; + } +} +#pragma mark - UITableViewDelegate + +-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{ + return self.datasource.count > 0 ? kGetScaleWidth(70) : self.tableView.frame.size.height; + +} + +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ + return self.datasource.count > 0 ? self.datasource.count : 1; +} +-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ + if(self.datasource.count > 0){ + YUMIManeGiveDiamondElement *cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIManeGiveDiamondElement class]) forIndexPath:indexPath]; + cell.giveBWSttawberryMatrix = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + return cell; + } + YUMIManeAssistantDispossessTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIManeAssistantDispossessTabulationRegardElement class])forIndexPath:indexPath] ; + + cell.emptyTitle = YMLocalizedString(@"YUMI_MineGiveDiamondVC3"); + return cell; + +} +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ + if(self.datasource.count < indexPath.row)return; + YUMIManeGiveDiamondSpecificsVC *vc = [[YUMIManeGiveDiamondSpecificsVC alloc]init]; + vc.userInfo = self.userInfo; + YUMIManeGiveDiamondMatrix *model = self.datasource[indexPath.row]; + vc.toUid = model.targetUid; + [self.navigationController pushViewController:vc animated:YES]; +} +#pragma mark - FBCManeGiveDiamondCeremony +-(void)acquireGiveDiamondSttowardsementAccomplishment:(NSArray *)array{ + self.datasource = [NSMutableArray arrayWithArray:array]; + [self.tableView reloadData]; +} +#pragma mark - FBCResidenceHuntforCeremony + +-(void)huntforGivePeopleWihtMtowardsrix:(YUMIManeGiveDiamondHuntforMatrix *)model{ + [self brakeHUD]; + if(model != nil){ + YUMIManeGiveDiamondMatrix *giveModle = [YUMIManeGiveDiamondMatrix new]; + giveModle.targetUid = model.uid; + giveModle.targetErbanNo = model.erbanNo; + giveModle.targetNick = model.nick; + giveModle.targetAvatar = model.avatar; + YUMIManeChooseGiveDiamondVC *vc = [YUMIManeChooseGiveDiamondVC new]; + vc.giveBWSttawberryMatrix = giveModle; + vc.delegate = self; + vc.userInfo = self.userInfo; + [self.navigationController pushViewController:vc animated:YES]; + } +} + + +-(void)huntforConcludeAboutEssay:(NSString *)text{ + if(text.length == 0){ + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_MineGiveDiamondSearchView1")]; + return; + } + self.text = text; + [self EvidenceChambering]; + [self.presimport huntforGivePeopleAbout:text]; +} +#pragma mark - Getters And Setters +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.showsVerticalScrollIndicator = NO; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.backgroundColor = [UIColor clearColor]; + _tableView.tableHeaderView = self.intelligenceRegard; + [_tableView registerClass:[YUMIManeGiveDiamondElement class] forCellReuseIdentifier:NSStringFromClass([YUMIManeGiveDiamondElement class])]; + [_tableView registerClass:[YUMIManeAssistantDispossessTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIManeAssistantDispossessTabulationRegardElement class])]; + } + return _tableView; +} +- (YUMIManeGiveDiamondHuntforRegard *)huntforRegard{ + if (!_huntforRegard){ + _huntforRegard = [[YUMIManeGiveDiamondHuntforRegard alloc]initWithFrame:CGRectZero]; + _huntforRegard.delegate = self; + } + return _huntforRegard; +} +-(UIView *)intelligenceRegard{ + if (!_intelligenceRegard){ + _intelligenceRegard = [[UIView alloc]initWithFrame:CGRectMake(0, 0, KScreenWidth, kGetScaleWidth(64))]; + UILabel *titleView = [[UILabel alloc]initWithFrame:CGRectMake(kGetScaleWidth(15), kGetScaleWidth(25), KScreenWidth - kGetScaleWidth(30), kGetScaleWidth(19))]; + titleView.text = YMLocalizedString(@"YUMI_MineGiveDiamondVC1"); + titleView.font = [UIFont systemFontOfSize:kGetScaleWidth(16) weight:UIFontWeightMedium]; + titleView.textColor = [DJDKMIMOMColor mainEssayPrettify]; + [_intelligenceRegard addSubview:titleView]; + } + return _intelligenceRegard; +} +-(UILabel *)coupleRegard{ + if (!_coupleRegard){ + _coupleRegard = [UILabel new]; + _coupleRegard.textColor = [DJDKMIMOMColor prohibitionBtutonEssayPrettify]; + _coupleRegard.font = [UIFont systemFontOfSize:kGetScaleWidth(12) weight:UIFontWeightRegular]; + _coupleRegard.text = YMLocalizedString(@"YUMI_MineGiveDiamondVC2"); + } + return _coupleRegard; +} + + +@end diff --git a/YuMi/Modules/YMMine/View/GiveDiamond/View/YUMIRevenueReflectionGoldSpecificsIntelligenceRegard.h b/YuMi/Modules/YMMine/View/GiveDiamond/View/YUMIRevenueReflectionGoldSpecificsIntelligenceRegard.h new file mode 100644 index 00000000..b6b3660c --- /dev/null +++ b/YuMi/Modules/YMMine/View/GiveDiamond/View/YUMIRevenueReflectionGoldSpecificsIntelligenceRegard.h @@ -0,0 +1,52 @@ +// +// YUMIRevenueReflectionGoldSpecificsIntelligenceRegard.h +// YuMi +// +// Created by YuMi on 2022/11/24. +// + +#import +#import "YUMIRevenueReflectionGoldSpecificsMatrix.h" + +typedef enum : NSUInteger { + IncomeRecordGold_Diamond, + IncomeRecordGold_Gold, +} IncomeRecordGoldSortingType; + +@protocol FBCIncomeRecordGoldDetailsIntelligenceRegardRepresendtation + +-(void)concludeGoldTangerineTelling:(IncomeRecordGoldSortingType)type isAscending:(BOOL)isAscending; + +@end +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIRevenueReflectionGoldSpecificsIntelligenceRegard : UIView +@property (nonatomic,strong) YUMIRevenueReflectionGoldSpecificsMatrix *specificMatrix; +@property (nonatomic,weak) id delegate; + +-(void)replacementArrow; + + + +@end + + + + + +@interface YUMIRevenueReflectionGoldSpecificsIntelligenceProvisionRegard : UIView +@property (nonatomic,copy) NSString *title; +@property (nonatomic,strong,readonly) UIButton *ticktackBtuton; +@property (nonatomic,strong,readonly) UIButton *upwardsBtuton; +@property (nonatomic,strong,readonly) UIButton *pubescenceBtuton; +@end + + + + +@interface YUMIRevenueReflectionGoldSpecificsNumRegard : UIView +@property (nonatomic,copy) NSString *title; +@property (nonatomic,copy) NSString *number; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/GiveDiamond/View/YUMIRevenueReflectionGoldSpecificsIntelligenceRegard.m b/YuMi/Modules/YMMine/View/GiveDiamond/View/YUMIRevenueReflectionGoldSpecificsIntelligenceRegard.m new file mode 100644 index 00000000..bbb41df6 --- /dev/null +++ b/YuMi/Modules/YMMine/View/GiveDiamond/View/YUMIRevenueReflectionGoldSpecificsIntelligenceRegard.m @@ -0,0 +1,507 @@ +// +// YUMIRevenueReflectionGoldSpecificsIntelligenceRegard.m +// YuMi +// +// Created by YuMi on 2022/11/24. +// + +#import "YUMIRevenueReflectionGoldSpecificsIntelligenceRegard.h" +#import "NSString+Utils.h" +@interface YUMIRevenueReflectionGoldSpecificsIntelligenceRegard() +@property (nonatomic,strong) UIImageView *backgroundIndicateRegard; +@property (nonatomic,strong) UILabel *titleView; +@property (nonatomic,strong) YUMIRevenueReflectionGoldSpecificsNumRegard *baseFigureRegard; +@property (nonatomic,strong) YUMIRevenueReflectionGoldSpecificsNumRegard *guildFigureRegard; +@property (nonatomic,strong) YUMIRevenueReflectionGoldSpecificsNumRegard *digitalGoldRegard; +@property (nonatomic,strong) YUMIRevenueReflectionGoldSpecificsNumRegard * digitalExdiversificationRegard; +@property (nonatomic,strong) UILabel *equalSignRegard; +@property (nonatomic,strong) UILabel *accelerateRegard; +@property (nonatomic,strong) UILabel *minusSignRegard; +@property (nonatomic,strong) UIView *backgroundProvisionRegard; +@property (nonatomic,strong) UILabel *chamberRegard; +@property (nonatomic,strong) UILabel *componentRegard; +@property (nonatomic,strong) YUMIRevenueReflectionGoldSpecificsIntelligenceProvisionRegard *bWSttawberryRegard; +@property (nonatomic,strong) UILabel *exdiversificationGoldRegard; +@property (nonatomic,strong) YUMIRevenueReflectionGoldSpecificsIntelligenceProvisionRegard *settlementRegard; + +@end +@implementation YUMIRevenueReflectionGoldSpecificsIntelligenceRegard + +-(instancetype)initWithFrame:(CGRect)frame{ + self = [super initWithFrame:frame]; + if(self){ + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.backgroundIndicateRegard]; + [self.backgroundIndicateRegard addSubview:self.titleView]; + [self.backgroundIndicateRegard addSubview:self.baseFigureRegard]; + [self.backgroundIndicateRegard addSubview:self.guildFigureRegard]; + [self.backgroundIndicateRegard addSubview:self.digitalGoldRegard]; + [self.backgroundIndicateRegard addSubview:self.digitalExdiversificationRegard]; + [self.backgroundIndicateRegard addSubview:self.equalSignRegard]; + [self.backgroundIndicateRegard addSubview:self.accelerateRegard]; + [self.backgroundIndicateRegard addSubview:self.minusSignRegard]; + + + [self addSubview:self.backgroundProvisionRegard]; + [self.backgroundProvisionRegard addSubview:self.chamberRegard]; + [self.backgroundProvisionRegard addSubview:self.componentRegard]; + [self.backgroundProvisionRegard addSubview:self.bWSttawberryRegard]; + [self.backgroundProvisionRegard addSubview:self.exdiversificationGoldRegard]; + [self.backgroundProvisionRegard addSubview:self.settlementRegard]; + +} +- (void)initChildLyRestrictions { + [self.backgroundIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.equalTo(self).inset(kGetScaleWidth(15)); + make.height.mas_equalTo(kGetScaleWidth(90)); + make.top.mas_equalTo(kGetScaleWidth(0)); + }]; + [self.titleView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(kGetScaleWidth(14)); + make.top.mas_equalTo(kGetScaleWidth(12)); + make.height.mas_equalTo(kGetScaleWidth(21)); + }]; + + [self.baseFigureRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(kGetScaleWidth(14)); + make.height.mas_equalTo(kGetScaleWidth(32)); + make.top.mas_equalTo(kGetScaleWidth(41)); + make.width.mas_greaterThanOrEqualTo(kGetScaleWidth(70)); + }]; + + [self.equalSignRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.equalTo(self.baseFigureRegard.mas_right).mas_offset(kGetScaleWidth(4)); + make.top.equalTo(self.baseFigureRegard); + make.height.width.mas_equalTo(kGetScaleWidth(14)); + }]; + + [self.guildFigureRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.equalTo(self.equalSignRegard.mas_right).mas_offset(kGetScaleWidth(4)); + make.height.top.equalTo(self.baseFigureRegard); + make.width.mas_greaterThanOrEqualTo(kGetScaleWidth(40)); + + }]; + [self.accelerateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.top.equalTo(self.equalSignRegard); + make.left.equalTo(self.guildFigureRegard.mas_right).mas_offset(kGetScaleWidth(10)); + }]; + [self.digitalGoldRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.top.equalTo(self.baseFigureRegard); + make.width.mas_greaterThanOrEqualTo(kGetScaleWidth(50)); + make.left.equalTo(self.accelerateRegard.mas_right).mas_offset(kGetScaleWidth(10)); + + }]; + + [self.minusSignRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.top.equalTo(self.equalSignRegard); + make.left.equalTo(self.digitalGoldRegard.mas_right).mas_offset(kGetScaleWidth(10)); + }]; + + [self.digitalExdiversificationRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.top.equalTo(self.baseFigureRegard); + make.width.mas_greaterThanOrEqualTo(kGetScaleWidth(50)); + make.left.equalTo(self.minusSignRegard.mas_right).mas_offset(kGetScaleWidth(10)); + make.right.mas_equalTo(-kGetScaleWidth(14)); + }]; + + + [self.backgroundProvisionRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.bottom.equalTo(self); + make.height.mas_equalTo(kGetScaleWidth(47)); + make.left.right.equalTo(self).inset(kGetScaleWidth(0)); + }]; + [self.chamberRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(kGetScaleWidth(64)); + make.left.mas_equalTo(kGetScaleWidth(0)); + make.height.mas_equalTo(kGetScaleWidth(17)); + make.centerY.equalTo(self.backgroundProvisionRegard); + }]; + [self.componentRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.equalTo(self.chamberRegard.mas_right); + make.centerY.width.height.equalTo(self.chamberRegard); + }]; + CGFloat width = kGetScaleWidth(247/3); + [self.settlementRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(width); + make.right.equalTo(self.backgroundProvisionRegard); + make.centerY.height.equalTo(self.chamberRegard); + }]; + [self.exdiversificationGoldRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.width.height.equalTo(self.settlementRegard); + make.right.equalTo(self.settlementRegard.mas_left); + }]; + [self.bWSttawberryRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.width.height.equalTo(self.exdiversificationGoldRegard); + make.right.equalTo(self.exdiversificationGoldRegard.mas_left); + }]; + + + +} +-(void)setSpecificMatrix:(YUMIRevenueReflectionGoldSpecificsMatrix *)specificMatrix{ + _specificMatrix = specificMatrix; + _baseFigureRegard.number = [NSString acquireDealFigurewithsttri:_specificMatrix.totalRemainGolds]; + _guildFigureRegard.number = [NSString acquireDealFigurewithsttri:_specificMatrix.totalEarnGolds]; + _digitalGoldRegard.number = [NSString acquireDealFigurewithsttri:_specificMatrix.totalGiftGolds]; + _digitalExdiversificationRegard.number = [NSString acquireDealFigurewithsttri:_specificMatrix.totalExchangeGolds]; +} +-(void)replacementArrow{ + self.bWSttawberryRegard.upwardsBtuton.selected = YES; + self.bWSttawberryRegard.pubescenceBtuton.selected = NO; + self.settlementRegard.upwardsBtuton.selected = YES; + self.settlementRegard.pubescenceBtuton.selected = NO; +} +-(void)clickDiamondPerformance{ + if(self.bWSttawberryRegard.upwardsBtuton.selected == YES){ + self.bWSttawberryRegard.upwardsBtuton.selected = NO; + self.bWSttawberryRegard.pubescenceBtuton.selected = YES; + if(self.delegate && [self.delegate respondsToSelector:@selector(concludeGoldTangerineTelling:isAscending:)]){ + [self.delegate concludeGoldTangerineTelling:IncomeRecordGold_Diamond isAscending:NO]; + } + return; + } + if(self.delegate && [self.delegate respondsToSelector:@selector(concludeGoldTangerineTelling:isAscending:)]){ + [self.delegate concludeGoldTangerineTelling:IncomeRecordGold_Diamond isAscending:YES]; + } + + self.bWSttawberryRegard.upwardsBtuton.selected = YES; + self.bWSttawberryRegard.pubescenceBtuton.selected = NO; +} + +-(void)clickGoldPerformance{ + if(self.settlementRegard.upwardsBtuton.selected == YES){ + self.settlementRegard.upwardsBtuton.selected = NO; + self.settlementRegard.pubescenceBtuton.selected = YES; + if(self.delegate && [self.delegate respondsToSelector:@selector(concludeGoldTangerineTelling:isAscending:)]){ + [self.delegate concludeGoldTangerineTelling:IncomeRecordGold_Gold isAscending:NO]; + } + return; + } + if(self.delegate && [self.delegate respondsToSelector:@selector(concludeGoldTangerineTelling:isAscending:)]){ + [self.delegate concludeGoldTangerineTelling:IncomeRecordGold_Gold isAscending:YES]; + } + + self.settlementRegard.upwardsBtuton.selected = YES; + self.settlementRegard.pubescenceBtuton.selected = NO; +} +#pragma mark -懒加载 +- (UIImageView *)backgroundIndicateRegard{ + if (!_backgroundIndicateRegard){ + _backgroundIndicateRegard = [UIImageView new]; + _backgroundIndicateRegard.image = [UIImage imageNamed:@"yumi_gold_details_head_background"]; + _backgroundIndicateRegard.userInteractionEnabled = YES; + } + return _backgroundIndicateRegard; +} + +- (UILabel *)titleView { + if (!_titleView) { + _titleView = [[UILabel alloc] init]; + _titleView.font = [UIFont systemFontOfSize:15 weight:UIFontWeightSemibold]; + _titleView.textColor = UIColorFromRGB(0x572714); + _titleView.text = YMLocalizedString(@"YUMI_Income_Record_Gold_Details_Head_View_0"); + _titleView.textAlignment = NSTextAlignmentCenter; + } + return _titleView; +} + + +-(UIView *)backgroundProvisionRegard{ + if (!_backgroundProvisionRegard){ + _backgroundProvisionRegard = [UIView new]; + _backgroundProvisionRegard.backgroundColor = UIColorFromRGB(0xF0F5F6); + } + return _backgroundProvisionRegard; +} + +- (UILabel *)chamberRegard { + if (!_chamberRegard) { + _chamberRegard = [[UILabel alloc] init]; + _chamberRegard.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium]; + _chamberRegard.textColor = [DJDKMIMOMColor introjectionEssayPrettify]; + _chamberRegard.text = YMLocalizedString(@"YUMI_Income_Record_Gold_Details_Head_View_2"); + _chamberRegard.textAlignment = NSTextAlignmentCenter; + } + return _chamberRegard; +} + +- (UILabel *)componentRegard { + if (!_componentRegard) { + _componentRegard = [[UILabel alloc] init]; + _componentRegard.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium]; + _componentRegard.textColor = [DJDKMIMOMColor introjectionEssayPrettify]; + _componentRegard.textAlignment = NSTextAlignmentCenter; + _componentRegard.text = YMLocalizedString(@"YUMI_Income_Record_Gold_Details_Head_View_1"); + } + return _componentRegard; +} + +-(YUMIRevenueReflectionGoldSpecificsIntelligenceProvisionRegard *)bWSttawberryRegard{ + if (!_bWSttawberryRegard){ + _bWSttawberryRegard = [[YUMIRevenueReflectionGoldSpecificsIntelligenceProvisionRegard alloc]initWithFrame:CGRectZero]; + _bWSttawberryRegard.title = YMLocalizedString(@"YUMI_Income_Record_Gold_Details_Head_View_5"); + [_bWSttawberryRegard.ticktackBtuton addTarget:self action:@selector(clickDiamondPerformance) forControlEvents:UIControlEventTouchUpInside]; + } + return _bWSttawberryRegard; +} + +- (UILabel *)exdiversificationGoldRegard { + if (!_exdiversificationGoldRegard) { + _exdiversificationGoldRegard = [[UILabel alloc] init]; + _exdiversificationGoldRegard.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium]; + _exdiversificationGoldRegard.textColor = [DJDKMIMOMColor introjectionEssayPrettify]; + _exdiversificationGoldRegard.textAlignment = NSTextAlignmentCenter; + _exdiversificationGoldRegard.text = YMLocalizedString(@"YUMI_Income_Record_Gold_Details_Head_View_3"); + } + return _exdiversificationGoldRegard; +} + +-(YUMIRevenueReflectionGoldSpecificsIntelligenceProvisionRegard *)settlementRegard{ + if (!_settlementRegard){ + _settlementRegard = [[YUMIRevenueReflectionGoldSpecificsIntelligenceProvisionRegard alloc]initWithFrame:CGRectZero]; + _settlementRegard.title = YMLocalizedString(@"YUMI_Income_Record_Gold_Details_Head_View_4"); + [_settlementRegard.ticktackBtuton addTarget:self action:@selector(clickGoldPerformance) forControlEvents:UIControlEventTouchUpInside]; + } + return _settlementRegard; +} + +- (YUMIRevenueReflectionGoldSpecificsNumRegard *)baseFigureRegard{ + if (!_baseFigureRegard){ + _baseFigureRegard = [[YUMIRevenueReflectionGoldSpecificsNumRegard alloc]initWithFrame:CGRectZero]; + _baseFigureRegard.title = YMLocalizedString(@"YUMI_Income_Record_Gold_Details_Head_View_6"); + _baseFigureRegard.number = @"0"; + } + return _baseFigureRegard; +} + +- (YUMIRevenueReflectionGoldSpecificsNumRegard *)guildFigureRegard{ + if (!_guildFigureRegard){ + _guildFigureRegard = [[YUMIRevenueReflectionGoldSpecificsNumRegard alloc]initWithFrame:CGRectZero]; + _guildFigureRegard.title = YMLocalizedString(@"YUMI_Income_Record_Gold_Details_Head_View_7"); + _guildFigureRegard.number = @"0"; + } + return _guildFigureRegard; +} +-(YUMIRevenueReflectionGoldSpecificsNumRegard *)digitalGoldRegard{ + if (!_digitalGoldRegard){ + _digitalGoldRegard = [[YUMIRevenueReflectionGoldSpecificsNumRegard alloc]initWithFrame:CGRectZero]; + _digitalGoldRegard.title = YMLocalizedString(@"YUMI_Income_Record_Gold_Details_Head_View_8"); + _digitalGoldRegard.number = @"0"; + } + return _digitalGoldRegard; +} +- (YUMIRevenueReflectionGoldSpecificsNumRegard *)digitalExdiversificationRegard{ + if (!_digitalExdiversificationRegard){ + _digitalExdiversificationRegard = [[YUMIRevenueReflectionGoldSpecificsNumRegard alloc]initWithFrame:CGRectZero]; + _digitalExdiversificationRegard.title = YMLocalizedString(@"YUMI_Income_Record_Gold_Details_Head_View_9"); + _digitalExdiversificationRegard.number = @"0"; + } + return _digitalExdiversificationRegard; +} + + +- (UILabel *)equalSignRegard { + if (!_equalSignRegard) { + _equalSignRegard = [[UILabel alloc] init]; + _equalSignRegard.font = [UIFont systemFontOfSize:10 weight:UIFontWeightMedium]; + _equalSignRegard.textColor = UIColorFromRGB(0x582815); + _equalSignRegard.text = @"="; + _equalSignRegard.textAlignment = NSTextAlignmentCenter; + } + return _equalSignRegard; +} + + +- (UILabel *)accelerateRegard { + if (!_accelerateRegard) { + _accelerateRegard = [[UILabel alloc] init]; + _accelerateRegard.font = [UIFont systemFontOfSize:10 weight:UIFontWeightMedium]; + _accelerateRegard.textColor = UIColorFromRGB(0x582815); + _accelerateRegard.text = @"+"; + _accelerateRegard.textAlignment = NSTextAlignmentCenter; + } + return _accelerateRegard; +} + + +- (UILabel *)minusSignRegard { + if (!_minusSignRegard) { + _minusSignRegard = [[UILabel alloc] init]; + _minusSignRegard.font = [UIFont systemFontOfSize:10 weight:UIFontWeightMedium]; + _minusSignRegard.textColor = UIColorFromRGB(0x582815); + _minusSignRegard.text = @"-"; + _minusSignRegard.textAlignment = NSTextAlignmentCenter; + } + return _minusSignRegard; +} + +@end + + + + +@interface YUMIRevenueReflectionGoldSpecificsIntelligenceProvisionRegard() +@property (nonatomic,strong) UILabel *titleView; +@property (nonatomic,strong) UIButton *upwardsBtuton; +@property (nonatomic,strong) UIButton *pubescenceBtuton; +@property (nonatomic,strong) UIButton *ticktackBtuton; +@end + +@implementation YUMIRevenueReflectionGoldSpecificsIntelligenceProvisionRegard +-(instancetype)initWithFrame:(CGRect)frame{ + self = [super initWithFrame:frame]; + if(self){ + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.titleView]; + [self addSubview:self.upwardsBtuton]; + [self addSubview:self.pubescenceBtuton]; + [self addSubview:self.ticktackBtuton]; +} +- (void)initChildLyRestrictions { + [self.titleView mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.equalTo(self.mas_centerX).mas_offset(-kGetScaleWidth(5.5)); + make.centerY.equalTo(self); + make.height.mas_equalTo(kGetScaleWidth(17)); + }]; + [self.pubescenceBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.equalTo(self.titleView.mas_right).mas_offset(kGetScaleWidth(3)); + make.top.equalTo(self.titleView.mas_top).mas_offset(kGetScaleWidth(4)); + make.width.mas_equalTo(kGetScaleWidth(8)); + make.height.mas_equalTo(kGetScaleWidth(4)); + }]; + [self.upwardsBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.width.height.equalTo(self.pubescenceBtuton); + make.top.equalTo(self.pubescenceBtuton.mas_bottom).mas_offset(kGetScaleWidth(2)); + }]; + [self.ticktackBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.equalTo(self); + }]; +} + + +-(void)setTitle:(NSString *)title{ + _title = title; + _titleView.text = _title; +} +#pragma mark -懒加载 + +- (UILabel *)titleView { + if (!_titleView) { + _titleView = [[UILabel alloc] init]; + _titleView.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium]; + _titleView.textColor = [DJDKMIMOMColor introjectionEssayPrettify]; + _titleView.text = YMLocalizedString(@"YUMI_Income_Record_Gold_Details_Head_View_5"); + } + return _titleView; +} + +- (UIButton *)upwardsBtuton{ + if (!_upwardsBtuton){ + _upwardsBtuton = [UIButton new]; + [_upwardsBtuton setBackgroundImage:[UIImage imageNamed:@"yumi_exchange_down_grey"] forState:UIControlStateNormal]; + [_upwardsBtuton setBackgroundImage:[UIImage imageNamed:@"yumi_exchange_down"] forState:UIControlStateSelected]; + + _upwardsBtuton.selected = YES; + } + return _upwardsBtuton; +} +- (UIButton *)pubescenceBtuton{ + if (!_pubescenceBtuton){ + _pubescenceBtuton = [UIButton new]; + [_pubescenceBtuton setBackgroundImage:[UIImage imageNamed:@"yumi_exchange_up_grey"] forState:UIControlStateNormal]; + [_pubescenceBtuton setBackgroundImage:[UIImage imageNamed:@"yumi_exchange_up"] forState:UIControlStateSelected]; + + + _pubescenceBtuton.selected = NO; + } + return _pubescenceBtuton; +} +- (UIButton *)ticktackBtuton{ + if (!_ticktackBtuton){ + _ticktackBtuton = [UIButton new]; + } + return _ticktackBtuton; +} +@end + + + + + + +@interface YUMIRevenueReflectionGoldSpecificsNumRegard() + +@property (nonatomic,strong) UILabel *titleView; +@property (nonatomic,strong) UILabel *digitalRegard; + +@end + +@implementation YUMIRevenueReflectionGoldSpecificsNumRegard + +-(instancetype)initWithFrame:(CGRect)frame{ + self = [super initWithFrame:frame]; + if(self){ + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} +- (void)setTitle:(NSString *)title{ + _title = title; + _titleView.text = _title; +} +- (void)setNumber:(NSString *)number{ + _number = number; + _digitalRegard.text = _number; +} +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.titleView]; + [self addSubview:self.digitalRegard]; +} +- (void)initChildLyRestrictions { + [self.titleView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.left.right.equalTo(self); + make.height.mas_equalTo(kGetScaleWidth(14)); + + }]; + [self.digitalRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.bottom.left.right.equalTo(self); + make.height.mas_equalTo(kGetScaleWidth(14)); + + }]; +} +#pragma mark -懒加载 +- (UILabel *)titleView { + if (!_titleView) { + _titleView = [[UILabel alloc] init]; + _titleView.font = [UIFont systemFontOfSize:10 weight:UIFontWeightMedium]; + _titleView.textColor = UIColorFromRGB(0x572714); + } + return _titleView; +} + +- (UILabel *)digitalRegard { + if (!_digitalRegard) { + _digitalRegard = [[UILabel alloc] init]; + _digitalRegard.font = [UIFont systemFontOfSize:10 weight:UIFontWeightMedium]; + _digitalRegard.textColor =UIColorFromRGB(0x572714); + } + return _digitalRegard; +} + +@end diff --git a/YuMi/Modules/YMMine/View/Guild/Api/Api+Guild.h b/YuMi/Modules/YMMine/View/Guild/Api/Api+Guild.h new file mode 100644 index 00000000..04cadd8a --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/Api/Api+Guild.h @@ -0,0 +1,79 @@ +// +// Api+Guild.h +// YuMi +// +// Created by YuMi on 2022/4/6. +// + +#import "Api.h" + +NS_ASSUME_NONNULL_BEGIN + + + + + +@interface Api (Guild) + ++ (void)acquireCollectiveSpecificAbstract:(HttpRequestHelperCompletion)completion uid:(NSString *)uid; + ++ (void)acquireChamberSttowardsementInCollective:(HttpRequestHelperCompletion)completion clanId:(NSString *)clanId; + ++ (void)acquireCollectiveComponentSttowardsement:(HttpRequestHelperCompletion)completion uid:(NSString *)uid page:(NSString *)page pageSize:(NSString *)pageSize; + ++ (void)acquireUnionComponentSttowardsement:(HttpRequestHelperCompletion)completion hallId:(NSString *)hallId page:(NSString *)page pageSize:(NSString *)pageSize; + ++ (void)huntforCollectiveComponentSttowardsement:(HttpRequestHelperCompletion)completion uid:(NSString *)uid page:(NSString *)page pageSize:(NSString *)pageSize queryStr:(NSString *)queryStr; + ++ (void)refurbishUnionChamberConstitute:(HttpRequestHelperCompletion)completion hallName:(NSString *)hallName hallId:(NSString *)hallId uid:(NSString *)uid; + ++ (void)acquireUnionChamberTowardstesttowardsion:(HttpRequestHelperCompletion)completion hallId:(NSString *)hallId uid:(NSString *)uid; + ++ (void)unionHuntforConsumerImplementtowardsion:(HttpRequestHelperCompletion)completion key:(NSString *)key type:(NSString *)type page:(NSString *)page pageSize:(NSString *)pageSize; + ++ (void)transltowardseUnionComponentImplementtowardsion:(HttpRequestHelperCompletion)completion uid:(NSString *)uid targetUid:(NSString *)targetUid hallId:(NSString *)hallId; + ++ (void)centiretyforComponentImplementtowardsion:(HttpRequestHelperCompletion)completion hallId:(NSString *)hallId uid:(NSString *)uid targetUid:(NSString *)targetUid; + ++ (void)acquireUnionChamberExecutiveImplementtowardsion:(HttpRequestHelperCompletion)completion hallId:(NSString *)hallId page:(NSString *)page pageSize:(NSString *)pageSize; + ++ (void)unionChamberSetExecutiveImplementtowardsion:(HttpRequestHelperCompletion)completion hallId:(NSString *)hallId uid:(NSString *)uid targetUid:(NSString *)targetUid; + ++ (void)unionChamberRevoctowardsionExecutiveImplementtowardsion:(HttpRequestHelperCompletion)completion hallId:(NSString *)hallId uid:(NSString *)uid targetUid:(NSString *)targetUid; + ++ (void)unionExecutiveTowardstesttowardsionImplementtowardsion:(HttpRequestHelperCompletion)completion uid:(NSString *)uid managerUid:(NSString *)managerUid; + ++ (void)setUnionExecutiveTowardstesttowardsionImplementtowardsion:(HttpRequestHelperCompletion)completion uid:(NSString *)uid managerUid:(NSString *)managerUid hallId:(NSString *)hallId authStr:(NSString *)authStr; + ++ (void)quitUnionChamber:(HttpRequestHelperCompletion)completion uid:(NSString *)uid; + ++ (void)componentAplictowardsionlyCorridor:(HttpRequestHelperCompletion)completion hallId:(NSString *)hallId uid:(NSString *)uid; + ++ (void)acquireCollectiveRevenueReflection:(HttpRequestHelperCompletion)completion uid:(NSString *)uid clanId:(NSString *)clanId startTime:(NSString *)startTime endTime:(NSString *)endTime; + ++ (void)acquireUnionRevenueReflection:(HttpRequestHelperCompletion)completion uid:(NSString *)uid hallId:(NSString *)hallId startIntratemporalBWStt:(NSString *)startIntratemporalBWStt endIntratemporalBWStt:(NSString *)endIntratemporalBWStt; + ++ (void)acquireCollectiveSingleChamberRevenueReflection:(HttpRequestHelperCompletion)completion uid:(NSString *)uid clanId:(NSString *)clanId startTime:(NSString *)startTime endTime:(NSString *)endTime; + ++ (void)acquireCorridorSingleChamberRevenueReflection:(HttpRequestHelperCompletion)completion uid:(NSString *)uid clanId:(NSString *)hallId startTime:(NSString *)startTime endTime:(NSString *)endTime; + ++ (void)acquireCorridorRevenueSpecific:(HttpRequestHelperCompletion)completion hallId:(NSString *)hallId memberId:(NSString *)memberId uid:(NSString *)uid startIntratemporalBWStt:(NSString *)startIntratemporalBWStt endIntratemporalBWStt:(NSString *)endIntratemporalBWStt; +#pragma mark - 超管 ++ (void)acquireCorridorSenstowardsionalManagementExecutiveChamberSttowardsement:(HttpRequestHelperCompletion)completion clanId:(NSString *)clanId uid:(NSString *)uid; + ++ (void)setSenstowardsionalManagementExecutiveChamber:(HttpRequestHelperCompletion)completion roomUids:(NSString *)roomUids uid:(NSString *)uid; + ++ (void)acquireCollectiveSenstowardsionalManagementSttowardsement:(HttpRequestHelperCompletion)completion clanId:(NSString *)clanId; + ++ (void)collectiveTransltowardseSenstowardsionalManagement:(HttpRequestHelperCompletion)completion targetUid:(NSString *)targetUid; + ++ (void)huntforUnionSenstowardsionalManagement:(HttpRequestHelperCompletion)completion uid:(NSString *)uid erbanNo:(NSString *)erbanNo; + ++(void)acquireCollectiveChamberGoldsSttowardsement:(HttpRequestHelperCompletion)completion startTime:(NSString *)startTime endTime:(NSString *)endTime; ++(void)acquireCollectiveChamberComponentTowardstesttowardsionoritySttowardsement:(HttpRequestHelperCompletion)completion; + ++(void)requisitionMasterDisableRrEnablecomponentExdiversifictowardsionRights:(HttpRequestHelperCompletion)completion status:(NSString *)status targetUid:(NSString *)targetUid; ++(void)demandCorridorBtutonDeclareAboutCorridorId:(HttpRequestHelperCompletion)completion hallId:(NSString *)hallId; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/Api/Api+Guild.m b/YuMi/Modules/YMMine/View/Guild/Api/Api+Guild.m new file mode 100644 index 00000000..8db83823 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/Api/Api+Guild.m @@ -0,0 +1,167 @@ +// +// Api+Guild.m +// YuMi +// +// Created by YuMi on 2022/4/6. +// + +#import "Api+Guild.h" +#import +@implementation Api (Guild) + ++ (void)acquireCollectiveSpecificAbstract:(HttpRequestHelperCompletion)completion uid:(NSString *)uid { + NSString * fang = [NSString stringFromBase64String:@"Y2xhbi9nZXRVc2VySGFsbEFuZENsYW4="];///clan/getUserHallAndClan + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, uid, nil]; +} + ++ (void)acquireChamberSttowardsementInCollective:(HttpRequestHelperCompletion)completion clanId:(NSString *)clanId { + NSString * fang = [NSString stringFromBase64String:@"Y2xhbi9saXN0SGFsbA=="];///clan/listHall + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__,clanId, nil]; +} + ++ (void)acquireCollectiveComponentSttowardsement:(HttpRequestHelperCompletion)completion uid:(NSString *)uid page:(NSString *)page pageSize:(NSString *)pageSize { + NSString * fang = [NSString stringFromBase64String:@"Y2xhbi9saXN0TWVtYmVy"];///clan/listMember + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, uid, page, pageSize,nil]; +} + ++ (void)acquireUnionComponentSttowardsement:(HttpRequestHelperCompletion)completion hallId:(NSString *)hallId page:(NSString *)page pageSize:(NSString *)pageSize { + NSString * fang = [NSString stringFromBase64String:@"aGFsbC9nZXRBbGxNZW1iZXJz"];///hall/getAllMembers + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, hallId, page, pageSize,nil]; +} + ++ (void)huntforCollectiveComponentSttowardsement:(HttpRequestHelperCompletion)completion uid:(NSString *)uid page:(NSString *)page pageSize:(NSString *)pageSize queryStr:(NSString *)queryStr { + NSString * fang = [NSString stringFromBase64String:@"Y2xhbi9saXN0TWVtYmVy"]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, uid, page, pageSize, queryStr,nil]; +} + ++ (void)refurbishUnionChamberConstitute:(HttpRequestHelperCompletion)completion hallName:(NSString *)hallName hallId:(NSString *)hallId uid:(NSString *)uid { + NSString * fang = [NSString stringFromBase64String:@"aGFsbC91cGRhdGVIYWxsTmFtZQ=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, hallName, hallId, uid, nil]; +} + ++ (void)acquireUnionChamberTowardstesttowardsion:(HttpRequestHelperCompletion)completion hallId:(NSString *)hallId uid:(NSString *)uid { + NSString * fang = [NSString stringFromBase64String:@"aGFsbEF1dGgvZ2V0SGFsbEF1dGhz"];/// + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, hallId, uid, nil]; +} + ++ (void)unionHuntforConsumerImplementtowardsion:(HttpRequestHelperCompletion)completion key:(NSString *)key type:(NSString *)type page:(NSString *)page pageSize:(NSString *)pageSize { + NSString * fang = [NSString stringFromBase64String:@"c2VhcmNoL3Jvb20="];/// + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, key, type, page, pageSize, nil]; +} + ++ (void)transltowardseUnionComponentImplementtowardsion:(HttpRequestHelperCompletion)completion uid:(NSString *)uid targetUid:(NSString *)targetUid hallId:(NSString *)hallId { + NSString * fang = [NSString stringFromBase64String:@"aGFsbC9yZW1vdmU="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, uid,targetUid, hallId, nil]; +} + ++ (void)centiretyforComponentImplementtowardsion:(HttpRequestHelperCompletion)completion hallId:(NSString *)hallId uid:(NSString *)uid targetUid:(NSString *)targetUid { + NSString * fang = [NSString stringFromBase64String:@"aGFsbC9pbnZpdGU="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, hallId, uid, targetUid, nil]; +} + ++ (void)acquireUnionChamberExecutiveImplementtowardsion:(HttpRequestHelperCompletion)completion hallId:(NSString *)hallId page:(NSString *)page pageSize:(NSString *)pageSize { + NSString * fang = [NSString stringFromBase64String:@"aGFsbC9nZXRIYWxsTWFuYWdlcg=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, hallId, page, pageSize, nil]; +} + ++ (void)unionChamberSetExecutiveImplementtowardsion:(HttpRequestHelperCompletion)completion hallId:(NSString *)hallId uid:(NSString *)uid targetUid:(NSString *)targetUid { + NSString * fang = [NSString stringFromBase64String:@"aGFsbC9zZXRNYW5hZ2Vy"]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, hallId, uid, targetUid, nil]; +} + ++ (void)unionChamberRevoctowardsionExecutiveImplementtowardsion:(HttpRequestHelperCompletion)completion hallId:(NSString *)hallId uid:(NSString *)uid targetUid:(NSString *)targetUid { + NSString * fang = [NSString stringFromBase64String:@"aGFsbC9yZW1vdmVNYW5hZ2Vy"]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, hallId, uid, targetUid, nil]; +} + ++ (void)unionExecutiveTowardstesttowardsionImplementtowardsion:(HttpRequestHelperCompletion)completion uid:(NSString *)uid managerUid:(NSString *)managerUid { + NSString * fang = [NSString stringFromBase64String:@"aGFsbEF1dGgvZ2V0SGFsbE1hbmFnZXJBdXRocw=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, uid, managerUid, nil]; +} + ++ (void)setUnionExecutiveTowardstesttowardsionImplementtowardsion:(HttpRequestHelperCompletion)completion uid:(NSString *)uid managerUid:(NSString *)managerUid hallId:(NSString *)hallId authStr:(NSString *)authStr { + NSString * fang = [NSString stringFromBase64String:@"aGFsbEF1dGgvc2V0SGFsbE1hbmFnZXJBdXRocw=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, uid, managerUid, hallId,authStr, nil]; +} + ++ (void)quitUnionChamber:(HttpRequestHelperCompletion)completion uid:(NSString *)uid { + NSString * fang = [NSString stringFromBase64String:@"aGFsbC9xdWl0"]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, uid, nil]; +} + + ++ (void)componentAplictowardsionlyCorridor:(HttpRequestHelperCompletion)completion hallId:(NSString *)hallId uid:(NSString *)uid { + NSString * fang = [NSString stringFromBase64String:@"aGFsbC9hcHBseQ=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion,__FUNCTION__, hallId, uid, nil]; +} + +#pragma mark - 收入统计 + ++ (void)acquireCollectiveRevenueReflection:(HttpRequestHelperCompletion)completion uid:(NSString *)uid clanId:(NSString *)clanId startTime:(NSString *)startTime endTime:(NSString *)endTime { + NSString * fang = [NSString stringFromBase64String:@"Y2xhbi9pbmNvbWUvdG90YWxMaXN0"]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, uid, clanId, startTime, endTime, nil]; +} + ++ (void)acquireUnionRevenueReflection:(HttpRequestHelperCompletion)completion uid:(NSString *)uid hallId:(NSString *)hallId startIntratemporalBWStt:(NSString *)startIntratemporalBWStt endIntratemporalBWStt:(NSString *)endIntratemporalBWStt { + NSString * fang = [NSString stringFromBase64String:@"aW5jb21lL2luY29tZVRvdGFs"]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, uid, hallId, startIntratemporalBWStt, endIntratemporalBWStt, nil]; +} + ++ (void)acquireCollectiveSingleChamberRevenueReflection:(HttpRequestHelperCompletion)completion uid:(NSString *)uid clanId:(NSString *)clanId startTime:(NSString *)startTime endTime:(NSString *)endTime { + NSString * fang = [NSString stringFromBase64String:@"aW5jb21lL3NpbmdsZXJvb20vaW5jb21lVG90YWxWMg=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, uid, clanId, startTime, endTime, nil]; +} + ++ (void)acquireCorridorSingleChamberRevenueReflection:(HttpRequestHelperCompletion)completion uid:(NSString *)uid clanId:(NSString *)clanId startTime:(NSString *)startTime endTime:(NSString *)endTime { + NSString * fang = [NSString stringFromBase64String:@"Y2xhbi9pbmNvbWUvaGFsbE1lbWJlclRvdGFsTGlzdA=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, uid,clanId, startTime, endTime, nil]; +} + ++ (void)acquireCorridorRevenueSpecific:(HttpRequestHelperCompletion)completion hallId:(NSString *)hallId memberId:(NSString *)memberId uid:(NSString *)uid startIntratemporalBWStt:(NSString *)startIntratemporalBWStt endIntratemporalBWStt:(NSString *)endIntratemporalBWStt { + NSString * fang = [NSString stringFromBase64String:@"aW5jb21lL2luY29tZURldGFpbA=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__,hallId,memberId, uid, startIntratemporalBWStt, endIntratemporalBWStt, nil]; +} + +#pragma mark - 超管 ++ (void)acquireCorridorSenstowardsionalManagementExecutiveChamberSttowardsement:(HttpRequestHelperCompletion)completion clanId:(NSString *)clanId uid:(NSString *)uid { + NSString * fang = [NSString stringFromBase64String:@"aGFsbC9zdXBlck1hbmFnZXIvbGlzdEhhbGxJbkNsYW4="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, clanId, uid, nil]; +} + ++ (void)setSenstowardsionalManagementExecutiveChamber:(HttpRequestHelperCompletion)completion roomUids:(NSString *)roomUids uid:(NSString *)uid { + NSString * fang = [NSString stringFromBase64String:@"aGFsbC9zdXBlck1hbmFnZXIvc2V0U3VwZXJNYW5hZ2U="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, roomUids, uid, nil]; +} + ++ (void)acquireCollectiveSenstowardsionalManagementSttowardsement:(HttpRequestHelperCompletion)completion clanId:(NSString *)clanId { + NSString * fang = [NSString stringFromBase64String:@"aGFsbC9zdXBlck1hbmFnZXIvbGlzdFN1cGVyTWFuYWdlSW5DbGFu"]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, clanId, nil]; +} + ++ (void)collectiveTransltowardseSenstowardsionalManagement:(HttpRequestHelperCompletion)completion targetUid:(NSString *)targetUid { + NSString * fang = [NSString stringFromBase64String:@"aGFsbC9zdXBlck1hbmFnZXIvcmVtb3Zl"]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion,__FUNCTION__, targetUid,nil]; +} + + ++ (void)huntforUnionSenstowardsionalManagement:(HttpRequestHelperCompletion)completion uid:(NSString *)uid erbanNo:(NSString *)erbanNo { + NSString * fang = [NSString stringFromBase64String:@"aGFsbC9zdXBlck1hbmFnZXIvc2VhcmNo"]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, uid, erbanNo, nil]; +} ++(void)acquireCollectiveChamberGoldsSttowardsement:(HttpRequestHelperCompletion)completion startTime:(NSString *)startTime endTime:(NSString *)endTime{ + NSString * fang = [NSString stringFromBase64String:@"Y2xhbkdvbGRGbG93L2hhbGxNZW1iZXJUb3RhbExpc3Q="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, startTime, endTime, nil]; +} ++(void)acquireCollectiveChamberComponentTowardstesttowardsionoritySttowardsement:(HttpRequestHelperCompletion)completion{ + NSString * fang = [NSString stringFromBase64String:@"Y2xhbi9tZW1iZXJFeGNoYW5nZUF1dGgvbGlzdA=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, nil]; +} ++(void)requisitionMasterDisableRrEnablecomponentExdiversifictowardsionRights:(HttpRequestHelperCompletion)completion status:(NSString *)status targetUid:(NSString *)targetUid{ + NSString * fang = [NSString stringFromBase64String:@"Y2xhbi9tZW1iZXJFeGNoYW5nZUF1dGgvb3BlcmF0ZQ=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__,status,targetUid,nil]; +} ++(void)demandCorridorBtutonDeclareAboutCorridorId:(HttpRequestHelperCompletion)completion hallId:(NSString *)hallId{ + NSString * fang = [NSString stringFromBase64String:@"aGFsbC9nZXRBcHBseUJ0blN0YXR1cw=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__,hallId,nil]; +} +@end diff --git a/YuMi/Modules/YMMine/View/Guild/Model/CollectiveAbstractMatrix.h b/YuMi/Modules/YMMine/View/Guild/Model/CollectiveAbstractMatrix.h new file mode 100644 index 00000000..9c168c6b --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/Model/CollectiveAbstractMatrix.h @@ -0,0 +1,25 @@ +// +// CollectiveAbstractMatrix.h +// YuMi +// +// Created by YuMi on 2022/4/6. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface CollectiveAbstractMatrix : NSObject +@property (nonatomic, copy) NSString *cid; +@property (nonatomic, copy) NSString *elderUid; +@property (nonatomic, copy) NSString *elderErbanNo; +@property (nonatomic, copy) NSString *elderName; +@property (nonatomic, copy) NSString *name; +@property (nonatomic, copy) NSString *avatar; +@property (nonatomic, assign) BOOL userIsElder; +@property (nonatomic, copy) NSString *levelIcon; +@property (nonatomic,assign) BOOL elderHasExchangeManagerAuth; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/Model/CollectiveAbstractMatrix.m b/YuMi/Modules/YMMine/View/Guild/Model/CollectiveAbstractMatrix.m new file mode 100644 index 00000000..01893f27 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/Model/CollectiveAbstractMatrix.m @@ -0,0 +1,15 @@ +// +// CollectiveAbstractMatrix.m +// YuMi +// +// Created by YuMi on 2022/4/6. +// + +#import "CollectiveAbstractMatrix.h" + +@implementation CollectiveAbstractMatrix + ++ (NSDictionary *)replacedDigitalByvirtueofMaintainertyConstitute { + return @{@"cid":@"id"}; +} +@end diff --git a/YuMi/Modules/YMMine/View/Guild/Model/CollectiveComponentSpecificAbstractMatrix.h b/YuMi/Modules/YMMine/View/Guild/Model/CollectiveComponentSpecificAbstractMatrix.h new file mode 100644 index 00000000..e76f413d --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/Model/CollectiveComponentSpecificAbstractMatrix.h @@ -0,0 +1,32 @@ +// +// CollectiveComponentAbstractMatrix.h +// YuMi +// +// Created by YuMi on 2022/4/6. +// + +#import +#import "YUMINNNN.h" +#import "UnionAbstractMatrix.h" +NS_ASSUME_NONNULL_BEGIN + +@class CollectiveComponentAbstractMatrix; +@interface CollectiveComponentSpecificAbstractMatrix : NSObject +@property (nonatomic,assign) NSInteger count; +@property (nonatomic,strong) NSArray *members; +@end + +@interface CollectiveComponentAbstractMatrix : NSObject +@property (nonatomic,copy) NSString *avatar; +@property (nonatomic,copy) NSString *erbanNo; +@property (nonatomic,assign) GenderGenre gender; +@property (nonatomic, copy) NSString *hallName; +@property (nonatomic,copy) NSString *nick; +@property (nonatomic,assign) UnionRoleGenre roleType; +@property (nonatomic,copy) NSString *uid; +@property (nonatomic, copy) NSString *experUrl; +@property (nonatomic, copy) NSString *charmUrl; +@end + + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/Model/CollectiveComponentSpecificAbstractMatrix.m b/YuMi/Modules/YMMine/View/Guild/Model/CollectiveComponentSpecificAbstractMatrix.m new file mode 100644 index 00000000..a980c55a --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/Model/CollectiveComponentSpecificAbstractMatrix.m @@ -0,0 +1,25 @@ +// +// CollectiveComponentAbstractMatrix.m +// YuMi +// +// Created by YuMi on 2022/4/6. +// + +#import "CollectiveComponentSpecificAbstractMatrix.h" + +@implementation CollectiveComponentSpecificAbstractMatrix ++ (NSDictionary *)objectCtowardsegorizeInGarment { + return @{@"members": CollectiveComponentAbstractMatrix.class}; +} +@end + + +@implementation CollectiveComponentAbstractMatrix + ++ (NSDictionary *)replacedDigitalByvirtueofMaintainertyConstitute { + return @{@"experUrl":@"userLevelVo.experUrl", + @"charmUrl":@"userLevelVo.charmUrl" + }; +} + +@end diff --git a/YuMi/Modules/YMMine/View/Guild/Model/CollectiveSpecificAbstractMatrix.h b/YuMi/Modules/YMMine/View/Guild/Model/CollectiveSpecificAbstractMatrix.h new file mode 100644 index 00000000..0fd16d64 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/Model/CollectiveSpecificAbstractMatrix.h @@ -0,0 +1,19 @@ +// +// CollectiveSpecificAbstractMatrix.h +// YuMi +// +// Created by YuMi on 2022/4/6. +// + +#import +#import "CollectiveAbstractMatrix.h" +#import "UnionAbstractMatrix.h" +NS_ASSUME_NONNULL_BEGIN + +@interface CollectiveSpecificAbstractMatrix : NSObject +@property (nonatomic,strong) CollectiveAbstractMatrix *clan; +@property (nonatomic,strong) UnionAbstractMatrix *hall; +@property (nonatomic, assign) BOOL manageHall; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/Model/CollectiveSpecificAbstractMatrix.m b/YuMi/Modules/YMMine/View/Guild/Model/CollectiveSpecificAbstractMatrix.m new file mode 100644 index 00000000..fb830d3d --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/Model/CollectiveSpecificAbstractMatrix.m @@ -0,0 +1,12 @@ +// +// CollectiveSpecificAbstractMatrix.m +// YuMi +// +// Created by YuMi on 2022/4/6. +// + +#import "CollectiveSpecificAbstractMatrix.h" + +@implementation CollectiveSpecificAbstractMatrix + +@end diff --git a/YuMi/Modules/YMMine/View/Guild/Model/Income/UnionFeatureRevenueReflectionMatrix.h b/YuMi/Modules/YMMine/View/Guild/Model/Income/UnionFeatureRevenueReflectionMatrix.h new file mode 100644 index 00000000..692b4518 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/Model/Income/UnionFeatureRevenueReflectionMatrix.h @@ -0,0 +1,44 @@ +// +// UnionFeatureRevenueReflectionMatrix.h +// YuMi +// +// Created by YuMi on 2022/4/11. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class UnionFeatureRevenueConsumerAbstractMatrix; +@interface UnionFeatureRevenueReflectionMatrix : NSObject +@property (nonatomic,copy) NSString *total; +@property (nonatomic,strong) NSArray *vos; +@property (nonatomic,copy) NSArray *memberIncome; +@property (nonatomic,strong) NSArray *incomes; +@property (nonatomic,copy) NSString *totalDiamond; +@end + + +@interface UnionFeatureRevenueConsumerAbstractMatrix : NSObject + + +@property (nonatomic,copy) NSString *uid; +@property (nonatomic,copy) NSString *income; +@property (nonatomic,copy) NSString *hallId; +@property (nonatomic,copy) NSString *hallOwnerUid; +@property (nonatomic,copy) NSString *hallAvatar; +@property (nonatomic,copy) NSString *hallName; +@property (nonatomic,copy) NSString *total; + + +@property (nonatomic,copy) NSString *rowNum; +@property (nonatomic,copy) NSString *reciveUid; +@property (nonatomic,copy) NSString *totalGoldNum; +@property (nonatomic,copy) NSString *avatar; +@property (nonatomic,copy) NSString *nick; +@property (nonatomic,copy) NSString *erbanNo; +#pragma mark - 个播收入查询 +@property (nonatomic,copy) NSString *anchorDiamondNum; +@property (nonatomic,copy) NSString *roomDiamondNum; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/Model/Income/UnionFeatureRevenueReflectionMatrix.m b/YuMi/Modules/YMMine/View/Guild/Model/Income/UnionFeatureRevenueReflectionMatrix.m new file mode 100644 index 00000000..a2be6378 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/Model/Income/UnionFeatureRevenueReflectionMatrix.m @@ -0,0 +1,26 @@ +// +// UnionFeatureRevenueReflectionMatrix.m +// YuMi +// +// Created by YuMi on 2022/4/11. +// + +#import "UnionFeatureRevenueReflectionMatrix.h" + +@implementation UnionFeatureRevenueReflectionMatrix + ++ (NSDictionary *)objectCtowardsegorizeInGarment { + return @{@"vos":UnionFeatureRevenueConsumerAbstractMatrix.class, + @"incomes":UnionFeatureRevenueConsumerAbstractMatrix.class, + @"memberIncome":UnionFeatureRevenueConsumerAbstractMatrix.class + }; +} + +@end + + +@implementation UnionFeatureRevenueConsumerAbstractMatrix + + + +@end diff --git a/YuMi/Modules/YMMine/View/Guild/Model/Income/UnionRevenueReflectionMatrix.h b/YuMi/Modules/YMMine/View/Guild/Model/Income/UnionRevenueReflectionMatrix.h new file mode 100644 index 00000000..214f3dd6 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/Model/Income/UnionRevenueReflectionMatrix.h @@ -0,0 +1,28 @@ +// +// UnionRevenueReflectionMatrix.h +// YuMi +// +// Created by YuMi on 2022/4/11. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class UnionRevenueReflectionConsumerAbstractMatrix; +@interface UnionRevenueReflectionMatrix : NSObject +@property (nonatomic,copy) NSString *total; +@property (nonatomic,strong) NSArray *income; + +@end + +@interface UnionRevenueReflectionConsumerAbstractMatrix : NSObject +@property (nonatomic,copy) NSString *hallAvatar; +@property (nonatomic,copy) NSString *hallName; +@property (nonatomic,copy) NSString * roomIncome; +@property (nonatomic,copy) NSString * normalGiftIncome; +@property (nonatomic,copy) NSString * bagIncome; +@property (nonatomic, copy) NSString *userSendGiftNum; +@property (nonatomic, copy) NSString *giftUv; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/Model/Income/UnionRevenueReflectionMatrix.m b/YuMi/Modules/YMMine/View/Guild/Model/Income/UnionRevenueReflectionMatrix.m new file mode 100644 index 00000000..655807c5 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/Model/Income/UnionRevenueReflectionMatrix.m @@ -0,0 +1,24 @@ +// +// UnionRevenueReflectionMatrix.m +// YuMi +// +// Created by YuMi on 2022/4/11. +// + +#import "UnionRevenueReflectionMatrix.h" + +@implementation UnionRevenueReflectionMatrix ++ (NSDictionary *)objectCtowardsegorizeInGarment { + return @{@"income":UnionRevenueReflectionConsumerAbstractMatrix.class}; +} +@end + + +@implementation UnionRevenueReflectionConsumerAbstractMatrix + ++ (NSDictionary *)replacedDigitalByvirtueofMaintainertyConstitute { + return @{@"userSendGiftNum": @"newUserSendGiftNum" + }; +} + +@end diff --git a/YuMi/Modules/YMMine/View/Guild/Model/Income/UnionRevenueSpecificMatrix.h b/YuMi/Modules/YMMine/View/Guild/Model/Income/UnionRevenueSpecificMatrix.h new file mode 100644 index 00000000..bb268818 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/Model/Income/UnionRevenueSpecificMatrix.h @@ -0,0 +1,20 @@ +// +// UnionRevenueSpecificMatrix.h +// YuMi +// +// Created by YuMi on 2022/4/12. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface UnionRevenueSpecificMatrix : NSObject +@property (nonatomic,copy) NSString *giftName; +@property (nonatomic,copy) NSString *goldPrice; +@property (nonatomic,copy) NSString *picUrl; +@property (nonatomic,copy) NSString *giftNum; +@property (nonatomic,copy) NSString *giftId; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/Model/Income/UnionRevenueSpecificMatrix.m b/YuMi/Modules/YMMine/View/Guild/Model/Income/UnionRevenueSpecificMatrix.m new file mode 100644 index 00000000..ab799d2a --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/Model/Income/UnionRevenueSpecificMatrix.m @@ -0,0 +1,12 @@ +// +// UnionRevenueSpecificMatrix.m +// YuMi +// +// Created by YuMi on 2022/4/12. +// + +#import "UnionRevenueSpecificMatrix.h" + +@implementation UnionRevenueSpecificMatrix + +@end diff --git a/YuMi/Modules/YMMine/View/Guild/Model/SuperAdmin/UnionChamberAbstractMatrix.h b/YuMi/Modules/YMMine/View/Guild/Model/SuperAdmin/UnionChamberAbstractMatrix.h new file mode 100644 index 00000000..fbdad43c --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/Model/SuperAdmin/UnionChamberAbstractMatrix.h @@ -0,0 +1,21 @@ +// +// UnionChamberAbstractMatrix.h +// YuMi +// +// Created by YuMi on 2022/4/13. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface UnionChamberAbstractMatrix : NSObject +@property (nonatomic,copy) NSString *hallRoomId; +@property (nonatomic,copy) NSString *hallRoomUid; +@property (nonatomic,copy) NSString *hallAvatar; +@property (nonatomic,copy) NSString *hallName; +@property (nonatomic,assign) BOOL hasManage; +@property (nonatomic,copy) NSString *roomUid; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/Model/SuperAdmin/UnionChamberAbstractMatrix.m b/YuMi/Modules/YMMine/View/Guild/Model/SuperAdmin/UnionChamberAbstractMatrix.m new file mode 100644 index 00000000..0f769123 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/Model/SuperAdmin/UnionChamberAbstractMatrix.m @@ -0,0 +1,12 @@ +// +// UnionChamberAbstractMatrix.m +// YuMi +// +// Created by YuMi on 2022/4/13. +// + +#import "UnionChamberAbstractMatrix.h" + +@implementation UnionChamberAbstractMatrix + +@end diff --git a/YuMi/Modules/YMMine/View/Guild/Model/SuperAdmin/UnionHuntforSensationalManagementMatrix.h b/YuMi/Modules/YMMine/View/Guild/Model/SuperAdmin/UnionHuntforSensationalManagementMatrix.h new file mode 100644 index 00000000..1563fc13 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/Model/SuperAdmin/UnionHuntforSensationalManagementMatrix.h @@ -0,0 +1,20 @@ +// +// UnionHuntforSensationalManagementMatrix.h +// YuMi +// +// Created by YuMi on 2022/4/13. +// +#import +#import "YUMINNNN.h" +NS_ASSUME_NONNULL_BEGIN + +@interface UnionHuntforSensationalManagementMatrix : NSObject +@property (nonatomic,copy) NSString *uid; +@property (nonatomic,copy) NSString *erbanNo; +@property (nonatomic,copy) NSString *nick; +@property (nonatomic,copy) NSString *avatar; +@property (nonatomic,assign) GenderGenre gender; +@property (nonatomic,assign) BOOL hasSet; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/Model/SuperAdmin/UnionHuntforSensationalManagementMatrix.m b/YuMi/Modules/YMMine/View/Guild/Model/SuperAdmin/UnionHuntforSensationalManagementMatrix.m new file mode 100644 index 00000000..61775032 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/Model/SuperAdmin/UnionHuntforSensationalManagementMatrix.m @@ -0,0 +1,12 @@ +// +// UnionHuntforSensationalManagementMatrix.m +// YuMi +// +// Created by YuMi on 2022/4/13. +// + +#import "UnionHuntforSensationalManagementMatrix.h" + +@implementation UnionHuntforSensationalManagementMatrix + +@end diff --git a/YuMi/Modules/YMMine/View/Guild/Model/SuperAdmin/UnionSensationalManagementAbstractMatrix.h b/YuMi/Modules/YMMine/View/Guild/Model/SuperAdmin/UnionSensationalManagementAbstractMatrix.h new file mode 100644 index 00000000..a9b98433 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/Model/SuperAdmin/UnionSensationalManagementAbstractMatrix.h @@ -0,0 +1,21 @@ +// +// UnionSensationalManagementAbstractMatrix.h +// YuMi +// +// Created by YuMi on 2022/4/13. +// + +#import +#import "UnionChamberAbstractMatrix.h" +NS_ASSUME_NONNULL_BEGIN + +@interface UnionSensationalManagementAbstractMatrix : NSObject +@property (nonatomic,copy) NSString *uid; +@property (nonatomic,copy) NSString *erbanNo; +@property (nonatomic,copy) NSString *avatar; +@property (nonatomic,copy) NSString *nick; +@property (nonatomic,strong) NSArray *roomList; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/Model/SuperAdmin/UnionSensationalManagementAbstractMatrix.m b/YuMi/Modules/YMMine/View/Guild/Model/SuperAdmin/UnionSensationalManagementAbstractMatrix.m new file mode 100644 index 00000000..89ebe675 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/Model/SuperAdmin/UnionSensationalManagementAbstractMatrix.m @@ -0,0 +1,14 @@ +// +// UnionSensationalManagementAbstractMatrix.m +// YuMi +// +// Created by YuMi on 2022/4/13. +// + +#import "UnionSensationalManagementAbstractMatrix.h" + +@implementation UnionSensationalManagementAbstractMatrix ++ (NSDictionary *)objectCtowardsegorizeInGarment { + return @{@"roomList": UnionChamberAbstractMatrix.class}; +} +@end diff --git a/YuMi/Modules/YMMine/View/Guild/Model/UnionAbstractMatrix.h b/YuMi/Modules/YMMine/View/Guild/Model/UnionAbstractMatrix.h new file mode 100644 index 00000000..b3f0e9f4 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/Model/UnionAbstractMatrix.h @@ -0,0 +1,38 @@ +// +// UnionAbstractMatrix.h +// YuMi +// +// Created by YuMi on 2022/4/6. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSInteger, UnionRoleGenre) { + + UnionRoleGenre_Owner = 1, + + UnionRoleGenre_Manager, + + UnionRoleGenre_Normal, + + UnionRoleGenre_Elder, + + UnionRoleGenre_Elder_Owner, + + UnionRoleGenre_Super_Admin +}; + +@interface UnionAbstractMatrix : NSObject +@property (nonatomic, copy) NSString *hallId; +@property (nonatomic, copy) NSString *hallName; +@property (nonatomic, assign) UnionRoleGenre roleType; +@property (nonatomic, copy) NSString *ownerUid; +@property (nonatomic, copy) NSString *ownerErbanNo; +@property (nonatomic, copy) NSString *ownerNick; +@property (nonatomic, copy) NSString *ownerAvatar; +@property (nonatomic, strong) NSNumber *memberCount; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/Model/UnionAbstractMatrix.m b/YuMi/Modules/YMMine/View/Guild/Model/UnionAbstractMatrix.m new file mode 100644 index 00000000..bac0688e --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/Model/UnionAbstractMatrix.m @@ -0,0 +1,12 @@ +// +// UnionAbstractMatrix.m +// YuMi +// +// Created by YuMi on 2022/4/6. +// + +#import "UnionAbstractMatrix.h" + +@implementation UnionAbstractMatrix + +@end diff --git a/YuMi/Modules/YMMine/View/Guild/Model/UnionAuthMatrix.h b/YuMi/Modules/YMMine/View/Guild/Model/UnionAuthMatrix.h new file mode 100644 index 00000000..f1519b92 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/Model/UnionAuthMatrix.h @@ -0,0 +1,20 @@ +// +// UnionAuthMatrix.h +// YuMi +// +// Created by YuMi on 2022/4/8. +// 公会房间权限 + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface UnionAuthMatrix : NSObject +@property (nonatomic, copy) NSString *name; +@property (nonatomic, copy) NSString *des; +@property (nonatomic, copy) NSString *code; +@property (nonatomic, assign) NSInteger status; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/Model/UnionAuthMatrix.m b/YuMi/Modules/YMMine/View/Guild/Model/UnionAuthMatrix.m new file mode 100644 index 00000000..78616aae --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/Model/UnionAuthMatrix.m @@ -0,0 +1,14 @@ +// +// UnionAuthMatrix.m +// YuMi +// +// Created by YuMi on 2022/4/8. +// + +#import "UnionAuthMatrix.h" + +@implementation UnionAuthMatrix ++ (NSDictionary *)replacedDigitalByvirtueofMaintainertyConstitute { + return @{@"des":@"description"}; +} +@end diff --git a/YuMi/Modules/YMMine/View/Guild/Model/UnionCommunicationMatrix.h b/YuMi/Modules/YMMine/View/Guild/Model/UnionCommunicationMatrix.h new file mode 100644 index 00000000..f1821e5b --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/Model/UnionCommunicationMatrix.h @@ -0,0 +1,59 @@ +// +// UnionCommunicationMatrix.h +// YuMi +// +// Created by YuMi on 2022/4/18. +// 公会消息的模型 + +#import + +NS_ASSUME_NONNULL_BEGIN +typedef NS_ENUM(NSInteger, CommunicationUnionDeclare) { + + CommunicationUnionDeclare_Untreated = 1, + + CommunicationUnionDeclare_Agree, + + CommunicationUnionDeclare_Reject, + + CommunicationUnionDeclare_OutData, + + CommunicationUnionDeclare_Processed, +}; + +@class UnionCommunicationProgrammingMatrix, UnionCommunicationRequestMatrix, UnionCommunicationProgrammingAbstractMatrix; +@interface UnionCommunicationMatrix : NSObject + +@property (nonatomic,assign) CommunicationUnionDeclare msgStatus; +@property (nonatomic,strong) UnionCommunicationRequestMatrix *params; +@property (nonatomic,strong) UnionCommunicationProgrammingMatrix *layout; +@property (strong, nonatomic) NSString *url; +@property (nonatomic,copy) NSString *approverNick; +@property (nonatomic,copy) NSString *approverUid; +@property (nonatomic,assign) NSInteger routerType; +@property (nonatomic,assign) NSInteger routerValue; +@end + + +@interface UnionCommunicationProgrammingMatrix : NSObject +@property (nonatomic,strong) UnionCommunicationProgrammingAbstractMatrix *title; +@property (nonatomic,strong) UnionCommunicationProgrammingAbstractMatrix *time; +@property (nonatomic,strong) NSArray *contents; +@end + + +@interface UnionCommunicationProgrammingAbstractMatrix : NSObject +@property (strong, nonatomic) NSString *content; +@property (nonatomic, assign) CGFloat fontSize; +@property (strong, nonatomic) NSString *fontColor; +@property (nonatomic,assign) BOOL fontBold; +@property (assign, nonatomic) NSInteger routertype; +@property (strong, nonatomic) NSString *routerValue; +@end + +@interface UnionCommunicationRequestMatrix : NSObject +@property (nonatomic,copy) NSString *familyId; +@property (nonatomic,copy) NSString *inviteId; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/Model/UnionCommunicationMatrix.m b/YuMi/Modules/YMMine/View/Guild/Model/UnionCommunicationMatrix.m new file mode 100644 index 00000000..88f0522c --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/Model/UnionCommunicationMatrix.m @@ -0,0 +1,32 @@ +// +// UnionCommunicationMatrix.m +// YuMi +// +// Created by YuMi on 2022/4/18. +// + +#import "UnionCommunicationMatrix.h" + +@implementation UnionCommunicationMatrix + +@end + + +@implementation UnionCommunicationProgrammingMatrix + ++ (NSDictionary *)objectCtowardsegorizeInGarment { + return @{@"contents":UnionCommunicationProgrammingAbstractMatrix.class}; +} + +@end + +@implementation UnionCommunicationProgrammingAbstractMatrix + +@end + + +@implementation UnionCommunicationRequestMatrix + + + +@end diff --git a/YuMi/Modules/YMMine/View/Guild/Model/UnionHuntforConsumerAbstractMatrix.h b/YuMi/Modules/YMMine/View/Guild/Model/UnionHuntforConsumerAbstractMatrix.h new file mode 100644 index 00000000..6ba91a52 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/Model/UnionHuntforConsumerAbstractMatrix.h @@ -0,0 +1,23 @@ +// +// UnionHuntforConsumerAbstractMatrix.h +// YuMi +// +// Created by YuMi on 2022/4/8. +// 搜索平台成员 + +#import +#import "YUMINNNN.h" +NS_ASSUME_NONNULL_BEGIN + +@interface UnionHuntforConsumerAbstractMatrix : NSObject +@property (nonatomic,copy) NSString *uid; +@property (nonatomic,copy) NSString *avatar; +@property (nonatomic,copy) NSString *nick; +@property (nonatomic,assign) GenderGenre gender; +@property (nonatomic,copy) NSString *erbanNo; +@property (nonatomic,assign) int hallBtnStatus; +@property (nonatomic,assign) NSInteger hallRecordId; +@property (nonatomic,copy) NSString *hallMessageUid; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/Model/UnionHuntforConsumerAbstractMatrix.m b/YuMi/Modules/YMMine/View/Guild/Model/UnionHuntforConsumerAbstractMatrix.m new file mode 100644 index 00000000..3aea1a6f --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/Model/UnionHuntforConsumerAbstractMatrix.m @@ -0,0 +1,12 @@ +// +// UnionHuntforConsumerAbstractMatrix.m +// YuMi +// +// Created by YuMi on 2022/4/8. +// + +#import "UnionHuntforConsumerAbstractMatrix.h" + +@implementation UnionHuntforConsumerAbstractMatrix + +@end diff --git a/YuMi/Modules/YMMine/View/Guild/Model/YUMIManeUnionStatementMatrix.h b/YuMi/Modules/YMMine/View/Guild/Model/YUMIManeUnionStatementMatrix.h new file mode 100644 index 00000000..3a902628 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/Model/YUMIManeUnionStatementMatrix.h @@ -0,0 +1,36 @@ +// +// YUMIManeUnionStatementMatrix.h +// YuMi +// +// Created by YuMi on 2023/6/30. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeUnionStatementMatrix : NSObject +@property (nonatomic,assign) NSInteger clanId; +@property (nonatomic,assign) NSInteger clanElderUid; +@property (nonatomic,copy) NSString *avatar; +@property (nonatomic,assign) NSInteger income; +@property (nonatomic,assign) NSInteger level; +@property (nonatomic,copy) NSString *name; +@property (nonatomic,copy) NSString *levelIcon; +@property (nonatomic,assign) int applyBtnStatus; +@property (nonatomic,assign) int hallBtnStatus; +@property (nonatomic,assign) NSInteger hallRecordId; +@property (nonatomic,copy) NSString *hallMessageUid; +@property (nonatomic,assign) NSInteger recordId; + + + +@property (nonatomic,assign) NSInteger hallId; + +@property (nonatomic,copy) NSString *ownerAvatar; +@property (nonatomic,assign) NSInteger ownerUid; +@property (nonatomic,assign) NSInteger ownerErbanNo; +@property (nonatomic,copy) NSString *hallName; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/Model/YUMIManeUnionStatementMatrix.m b/YuMi/Modules/YMMine/View/Guild/Model/YUMIManeUnionStatementMatrix.m new file mode 100644 index 00000000..c9d9644c --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/Model/YUMIManeUnionStatementMatrix.m @@ -0,0 +1,12 @@ +// +// YUMIManeUnionStatementMatrix.m +// YuMi +// +// Created by YuMi on 2023/6/30. +// + +#import "YUMIManeUnionStatementMatrix.h" + +@implementation YUMIManeUnionStatementMatrix + +@end diff --git a/YuMi/Modules/YMMine/View/Guild/Presenter/Income/YUMIUnionRevenueExternalizer.h b/YuMi/Modules/YMMine/View/Guild/Presenter/Income/YUMIUnionRevenueExternalizer.h new file mode 100644 index 00000000..f4820b1f --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/Presenter/Income/YUMIUnionRevenueExternalizer.h @@ -0,0 +1,19 @@ +// +// YUMIUnionRevenueExternalizer.h +// YuMi +// +// Created by YuMi on 2022/4/11. +// + +#import "BaseMvpExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIUnionRevenueExternalizer : BaseMvpExternalizer +- (void)acquireCollectiveGeneralRevenue:(NSString *)clanId startTime:(NSString *)startTime endTime:(NSString *)endTime; +- (void)acquireCorridorGeneralRevenue:(NSString *)hallId startTime:(NSString *)startTime endTime:(NSString *)endTime; +- (void)acquireCollectiveKellegGeneralRevenue:(NSString *)clanId startTime:(NSString *)startTime endTime:(NSString *)endTime; +- (void)acquireCorridorKellegGeneralRevenue:(NSString *)clanId startTime:(NSString *)startTime endTime:(NSString *)endTime; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/Presenter/Income/YUMIUnionRevenueExternalizer.m b/YuMi/Modules/YMMine/View/Guild/Presenter/Income/YUMIUnionRevenueExternalizer.m new file mode 100644 index 00000000..bc8b07f7 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/Presenter/Income/YUMIUnionRevenueExternalizer.m @@ -0,0 +1,58 @@ +// +// YUMIUnionRevenueExternalizer.m +// YuMi +// +// Created by YuMi on 2022/4/11. +// + +#import "YUMIUnionRevenueExternalizer.h" +#import "Api+Guild.h" +#import "AccountAbstractStorage.h" +#import "UnionRevenueReflectionMatrix.h" +#import "UnionFeatureRevenueReflectionMatrix.h" +#import "FBCUnionIncomeCeremony.h" + +@implementation YUMIUnionRevenueExternalizer + + +- (void)acquireCollectiveGeneralRevenue:(NSString *)clanId startTime:(NSString *)startTime endTime:(NSString *)endTime { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [Api acquireCollectiveRevenueReflection:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + UnionRevenueReflectionMatrix * incomeModel = [UnionRevenueReflectionMatrix mtowardsrixAboutImpactbasket:data.data]; + [[self acquireRegard] acquireCollectiveGeneralRevenueScuess:incomeModel]; + }fail:^(NSInteger code, NSString * _Nullable msg) { + [[self acquireRegard] acquireCollectiveGeneralRevenueFlunk:msg]; + }] uid:uid clanId:clanId startTime:startTime endTime:endTime]; +} + +- (void)acquireCorridorGeneralRevenue:(NSString *)hallId startTime:(NSString *)startTime endTime:(NSString *)endTime { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [Api acquireUnionRevenueReflection:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + UnionFeatureRevenueReflectionMatrix * incomeModel = [UnionFeatureRevenueReflectionMatrix mtowardsrixAboutImpactbasket:data.data]; + [[self acquireRegard] acquireCorridorGeneralRevenueScuess:incomeModel]; + }fail:^(NSInteger code, NSString * _Nullable msg) { + [[self acquireRegard] acquireCorridorGeneralRevenueFlunk:msg]; + }] uid:uid hallId:hallId startIntratemporalBWStt:startTime endIntratemporalBWStt:endTime]; +} + +- (void)acquireCollectiveKellegGeneralRevenue:(NSString *)clanId startTime:(NSString *)startTime endTime:(NSString *)endTime { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [Api acquireCollectiveSingleChamberRevenueReflection:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + UnionFeatureRevenueReflectionMatrix * incomeModel = [UnionFeatureRevenueReflectionMatrix mtowardsrixAboutImpactbasket:data.data]; + [[self acquireRegard] acquireCollectiveKellegGeneralRevenueAccomplishment:incomeModel]; + } fail:^(NSInteger code, NSString * _Nullable msg) { + [[self acquireRegard] acquireCollectiveKellegGeneralRevenueFlunk:msg]; + }] uid:uid clanId:clanId startTime:startTime endTime:endTime]; +} + +- (void)acquireCorridorKellegGeneralRevenue:(NSString *)clanId startTime:(NSString *)startTime endTime:(NSString *)endTime { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [Api acquireCorridorSingleChamberRevenueReflection:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + UnionFeatureRevenueReflectionMatrix * incomeModel = [UnionFeatureRevenueReflectionMatrix mtowardsrixAboutImpactbasket:data.data]; + [[self acquireRegard] acquireCorridorKellegGeneralRevenueAccomplishment:incomeModel]; + }fail:^(NSInteger code, NSString * _Nullable msg) { + [[self acquireRegard] acquireCorridorKellegGeneralRevenueFlunk:msg]; + }] uid:uid clanId:clanId startTime:startTime endTime:endTime]; +} + +@end diff --git a/YuMi/Modules/YMMine/View/Guild/Presenter/Income/YUMIUnionRevenueSpecificExternalizer.h b/YuMi/Modules/YMMine/View/Guild/Presenter/Income/YUMIUnionRevenueSpecificExternalizer.h new file mode 100644 index 00000000..06e90da3 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/Presenter/Income/YUMIUnionRevenueSpecificExternalizer.h @@ -0,0 +1,16 @@ +// +// YUMIUnionRevenueSpecificExternalizer.h +// YuMi +// +// Created by YuMi on 2022/4/12. +// + +#import "BaseMvpExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIUnionRevenueSpecificExternalizer : BaseMvpExternalizer +- (void)acquireConsumerRevenueSpecificSttowardsement:(NSString *)hallId memberId:(NSString *)memberId startIntratemporalBWStt:(NSString *)startIntratemporalBWStt endIntratemporalBWStt:(NSString *)endIntratemporalBWStt; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/Presenter/Income/YUMIUnionRevenueSpecificExternalizer.m b/YuMi/Modules/YMMine/View/Guild/Presenter/Income/YUMIUnionRevenueSpecificExternalizer.m new file mode 100644 index 00000000..6789cd4f --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/Presenter/Income/YUMIUnionRevenueSpecificExternalizer.m @@ -0,0 +1,26 @@ +// +// YUMIUnionRevenueSpecificExternalizer.m +// YuMi +// +// Created by YuMi on 2022/4/12. +// + +#import "YUMIUnionRevenueSpecificExternalizer.h" +#import "Api+Guild.h" +#import "UnionRevenueSpecificMatrix.h" +#import "FBCUnionIncomeDetailCeremony.h" +#import "AccountAbstractStorage.h" +@implementation YUMIUnionRevenueSpecificExternalizer + + +- (void)acquireConsumerRevenueSpecificSttowardsement:(NSString *)hallId memberId:(NSString *)memberId startIntratemporalBWStt:(NSString *)startIntratemporalBWStt endIntratemporalBWStt:(NSString *)endIntratemporalBWStt { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [Api acquireCorridorRevenueSpecific:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + NSArray * array = [UnionRevenueSpecificMatrix mtowardsrixsAboutGarment:data.data]; + [[self acquireRegard] acquireConsumerRevenueSpecificSttowardsementAccomplishment:array]; + } fail:^(NSInteger code, NSString * _Nullable msg) { + [[self acquireRegard] acquireConsumerRevenueSpecificSttowardsementFlunk:msg]; + }] hallId:hallId memberId:memberId uid:uid startIntratemporalBWStt:startIntratemporalBWStt endIntratemporalBWStt:endIntratemporalBWStt]; +} + +@end diff --git a/YuMi/Modules/YMMine/View/Guild/Presenter/Setting/YUMIManeExecutiveSetExternalizer.h b/YuMi/Modules/YMMine/View/Guild/Presenter/Setting/YUMIManeExecutiveSetExternalizer.h new file mode 100644 index 00000000..28798c25 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/Presenter/Setting/YUMIManeExecutiveSetExternalizer.h @@ -0,0 +1,19 @@ +// +// YUMIManeExecutiveSetExternalizer.h +// YuMi +// +// Created by YuMi on 2022/4/8. +// + +#import "BaseMvpExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeExecutiveSetExternalizer : BaseMvpExternalizer +- (void)acquireUnionComponentSttowardsement:(NSString *)hallId page:(int)page pageSize:(NSInteger)pageSize state:(int)state; +- (void)unionChamberAccelertowardseExecutive:(NSString *)targetUid hallId:(NSString *)hallId; + +- (void)unionChamberTransltowardseExecutive:(NSString *)targetUid hallId:(NSString *)hallId; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/Presenter/Setting/YUMIManeExecutiveSetExternalizer.m b/YuMi/Modules/YMMine/View/Guild/Presenter/Setting/YUMIManeExecutiveSetExternalizer.m new file mode 100644 index 00000000..2b5eb40c --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/Presenter/Setting/YUMIManeExecutiveSetExternalizer.m @@ -0,0 +1,41 @@ +// +// YUMIManeExecutiveSetExternalizer.m +// YuMi +// +// Created by YuMi on 2022/4/8. +// + +#import "YUMIManeExecutiveSetExternalizer.h" +#import "Api+Guild.h" +#import "CollectiveComponentSpecificAbstractMatrix.h" +#import "FBCUnionSetExecutiveCeremony.h" +#import "AccountAbstractStorage.h" + +@implementation YUMIManeExecutiveSetExternalizer + +- (void)acquireUnionComponentSttowardsement:(NSString *)hallId page:(int)page pageSize:(NSInteger)pageSize state:(int)state { + NSString * pageStr = [NSString stringWithFormat:@"%d", page]; + NSString * pageSizeStr = [NSString stringWithFormat:@"%ld", pageSize]; + [Api acquireUnionComponentSttowardsement:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + CollectiveComponentSpecificAbstractMatrix * componentAbstract = [CollectiveComponentSpecificAbstractMatrix mtowardsrixAboutImpactbasket:data.data]; + [[self acquireRegard] acquireUnionComponentSttowardsementAccomplishment:componentAbstract state:state]; + }fail:^(NSInteger code, NSString * _Nullable msg) { + [[self acquireRegard] acquireUnionComponentSttowardsementFlunk:msg state:state]; + }] hallId:hallId page:pageStr pageSize:pageSizeStr]; +} + +- (void)unionChamberAccelertowardseExecutive:(NSString *)targetUid hallId:(NSString *)hallId { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [Api unionChamberSetExecutiveImplementtowardsion:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] unionChamberAccelertowardseExecutiveAccomplishment:targetUid]; + } EvidenceChambering:YES] hallId:hallId uid:uid targetUid:targetUid]; +} + +- (void)unionChamberTransltowardseExecutive:(NSString *)targetUid hallId:(NSString *)hallId { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [Api unionChamberRevoctowardsionExecutiveImplementtowardsion:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] unionChamberTransltowardseExecutiveAccomplishment:targetUid]; + } EvidenceChambering:YES] hallId:hallId uid:uid targetUid:targetUid]; +} + +@end diff --git a/YuMi/Modules/YMMine/View/Guild/Presenter/Setting/YUMIUnionExecutivePerExternalizer.h b/YuMi/Modules/YMMine/View/Guild/Presenter/Setting/YUMIUnionExecutivePerExternalizer.h new file mode 100644 index 00000000..93b4fbf9 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/Presenter/Setting/YUMIUnionExecutivePerExternalizer.h @@ -0,0 +1,19 @@ +// +// XPGuildManagerPerPesenter.h +// YuMi +// +// Created by YuMi on 2022/4/8. +// + +#import "BaseMvpExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIUnionExecutivePerExternalizer : BaseMvpExternalizer + +- (void)acquireUnionChamberExecutivePrecondition:(NSString *)managerUid; + +- (void)refurbishUnionChamberExecutivePrecondition:(NSString *)hallId managerUid:(NSString *)managerUid authStr:(NSString *)authStr; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/Presenter/Setting/YUMIUnionExecutivePerExternalizer.m b/YuMi/Modules/YMMine/View/Guild/Presenter/Setting/YUMIUnionExecutivePerExternalizer.m new file mode 100644 index 00000000..b51c8e1a --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/Presenter/Setting/YUMIUnionExecutivePerExternalizer.m @@ -0,0 +1,34 @@ +// +// XPGuildManagerPerPesenter.m +// YuMi +// +// Created by YuMi on 2022/4/8. +// + +#import "YUMIUnionExecutivePerExternalizer.h" +#import "Api+Guild.h" +#import "AccountAbstractStorage.h" +#import "UnionAuthMatrix.h" +#import "FBCUnionExecutivePerCeremony.h" + + +@implementation YUMIUnionExecutivePerExternalizer + + +- (void)acquireUnionChamberExecutivePrecondition:(NSString *)managerUid { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [Api unionExecutiveTowardstesttowardsionImplementtowardsion:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + NSArray * array = [UnionAuthMatrix mtowardsrixsAboutGarment:data.data]; + [[self acquireRegard] acquireUnionChamberExecutivePreconditionAccomplishment:array]; + }] uid:uid managerUid:managerUid]; +} + + +- (void)refurbishUnionChamberExecutivePrecondition:(NSString *)hallId managerUid:(NSString *)managerUid authStr:(NSString *)authStr{ + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [Api setUnionExecutiveTowardstesttowardsionImplementtowardsion:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] refurbishUnionChamberExecutivePreconditionAccomplishment]; + }] uid:uid managerUid:managerUid hallId:hallId authStr:authStr]; +} + +@end diff --git a/YuMi/Modules/YMMine/View/Guild/Presenter/Setting/YUMIUnionMangerStatementExternalizer.h b/YuMi/Modules/YMMine/View/Guild/Presenter/Setting/YUMIUnionMangerStatementExternalizer.h new file mode 100644 index 00000000..76b7294d --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/Presenter/Setting/YUMIUnionMangerStatementExternalizer.h @@ -0,0 +1,16 @@ +// +// YUMIUnionMangerStatementExternalizer.h +// YuMi +// +// Created by YuMi on 2022/4/8. +// + +#import "BaseMvpExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIUnionMangerStatementExternalizer : BaseMvpExternalizer +- (void)acquireUnionChamberExecutiveSttowardsement:(NSString *)hallId page:(int)page pageSize:(int)pageSize state:(int)state; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/Presenter/Setting/YUMIUnionMangerStatementExternalizer.m b/YuMi/Modules/YMMine/View/Guild/Presenter/Setting/YUMIUnionMangerStatementExternalizer.m new file mode 100644 index 00000000..0935ddd7 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/Presenter/Setting/YUMIUnionMangerStatementExternalizer.m @@ -0,0 +1,26 @@ +// +// YUMIUnionMangerStatementExternalizer.m +// YuMi +// +// Created by YuMi on 2022/4/8. +// + +#import "YUMIUnionMangerStatementExternalizer.h" +#import "FBCUnionExecutiveStatementCeremony.h" +#import "Api+Guild.h" +#import "CollectiveComponentSpecificAbstractMatrix.h" + +@implementation YUMIUnionMangerStatementExternalizer + +- (void)acquireUnionChamberExecutiveSttowardsement:(NSString *)hallId page:(int)page pageSize:(int)pageSize state:(int)state{ + NSString * pageStr = [NSString stringWithFormat:@"%d", page]; + NSString * pageSizeStr = [NSString stringWithFormat:@"%d", pageSize]; + [Api acquireUnionChamberExecutiveImplementtowardsion:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + CollectiveComponentSpecificAbstractMatrix * info = [CollectiveComponentSpecificAbstractMatrix mtowardsrixAboutImpactbasket:data.data]; + [[self acquireRegard] acquireUnionChamberExecutiveSttowardsementAccomplishment:info state:state]; + }fail:^(NSInteger code, NSString * _Nullable msg) { + [[self acquireRegard] acquireUnionChamberExecutiveSttowardsementFlunk:msg state:state]; + }] hallId:hallId page:pageStr pageSize:pageSizeStr]; +} + +@end diff --git a/YuMi/Modules/YMMine/View/Guild/Presenter/Setting/YUMIUnionRemoveComponentExternalizer.h b/YuMi/Modules/YMMine/View/Guild/Presenter/Setting/YUMIUnionRemoveComponentExternalizer.h new file mode 100644 index 00000000..8c211306 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/Presenter/Setting/YUMIUnionRemoveComponentExternalizer.h @@ -0,0 +1,17 @@ +// +// YUMIUnionRemoveComponentExternalizer.h +// YuMi +// +// Created by YuMi on 2022/4/8. +// + +#import "BaseMvpExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIUnionRemoveComponentExternalizer : BaseMvpExternalizer +- (void)acquireUnionComponentSttowardsement:(NSString *)hallId page:(int)page pageSize:(NSInteger)pageSize state:(int)state; +- (void)transltowardseUnionComponent:(NSString *)targetUid hallId:(NSString *)hallId; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/Presenter/Setting/YUMIUnionRemoveComponentExternalizer.m b/YuMi/Modules/YMMine/View/Guild/Presenter/Setting/YUMIUnionRemoveComponentExternalizer.m new file mode 100644 index 00000000..6dd6b2b7 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/Presenter/Setting/YUMIUnionRemoveComponentExternalizer.m @@ -0,0 +1,34 @@ +// +// YUMIUnionRemoveComponentExternalizer.m +// YuMi +// +// Created by YuMi on 2022/4/8. +// + +#import "YUMIUnionRemoveComponentExternalizer.h" +#import "AccountAbstractStorage.h" +#import "CollectiveComponentSpecificAbstractMatrix.h" +#import "Api+Guild.h" +#import "FBCUnionRemoveMemberCeremony.h" + +@implementation YUMIUnionRemoveComponentExternalizer +- (void)acquireUnionComponentSttowardsement:(NSString *)hallId page:(int)page pageSize:(NSInteger)pageSize state:(int)state { + NSString * pageStr = [NSString stringWithFormat:@"%d", page]; + NSString * pageSizeStr = [NSString stringWithFormat:@"%ld", pageSize]; + [Api acquireUnionComponentSttowardsement:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + CollectiveComponentSpecificAbstractMatrix * componentAbstract = [CollectiveComponentSpecificAbstractMatrix mtowardsrixAboutImpactbasket:data.data]; + [[self acquireRegard] acquireUnionComponentSttowardsementAccomplishment:componentAbstract state:state]; + }fail:^(NSInteger code, NSString * _Nullable msg) { + [[self acquireRegard] acquireUnionComponentSttowardsementFlunk:msg state:state]; + }] hallId:hallId page:pageStr pageSize:pageSizeStr]; +} + + +- (void)transltowardseUnionComponent:(NSString *)targetUid hallId:(NSString *)hallId { + NSString *uid = [AccountAbstractStorage instance].acquireCid; + [Api transltowardseUnionComponentImplementtowardsion:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] transltowardseUnionComponentAccomplishment]; + } EvidenceChambering:YES] uid:uid targetUid:targetUid hallId:hallId]; +} + +@end diff --git a/YuMi/Modules/YMMine/View/Guild/Presenter/Setting/YUMIUnionSetNameExternalizer.h b/YuMi/Modules/YMMine/View/Guild/Presenter/Setting/YUMIUnionSetNameExternalizer.h new file mode 100644 index 00000000..8c7ccdbc --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/Presenter/Setting/YUMIUnionSetNameExternalizer.h @@ -0,0 +1,17 @@ +// +// YUMIUnionSetNameExternalizer.h +// YuMi +// +// Created by YuMi on 2022/4/7. +// + +#import "BaseMvpExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIUnionSetNameExternalizer : BaseMvpExternalizer + +- (void)refurbishUnionChamberConstitute:(NSString *)roomName hallId:(NSString *)hallId; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/Presenter/Setting/YUMIUnionSetNameExternalizer.m b/YuMi/Modules/YMMine/View/Guild/Presenter/Setting/YUMIUnionSetNameExternalizer.m new file mode 100644 index 00000000..b3135034 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/Presenter/Setting/YUMIUnionSetNameExternalizer.m @@ -0,0 +1,22 @@ +// +// YUMIUnionSetNameExternalizer.m +// YuMi +// +// Created by YuMi on 2022/4/7. +// + +#import "YUMIUnionSetNameExternalizer.h" +#import "AccountAbstractStorage.h" +#import "Api+Guild.h" +#import "FBCUnionSetNameCeremony.h" + +@implementation YUMIUnionSetNameExternalizer + +- (void)refurbishUnionChamberConstitute:(NSString *)roomName hallId:(NSString *)hallId { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [Api refurbishUnionChamberConstitute:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] refurbishUnionChamberConstituteAccomplishment]; + } EvidenceChambering:YES] hallName:roomName hallId:hallId uid:uid]; +} + +@end diff --git a/YuMi/Modules/YMMine/View/Guild/Presenter/SuperAdmin/YUMISensationalManagementExecutiveChamberExternalizer.h b/YuMi/Modules/YMMine/View/Guild/Presenter/SuperAdmin/YUMISensationalManagementExecutiveChamberExternalizer.h new file mode 100644 index 00000000..11b0235c --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/Presenter/SuperAdmin/YUMISensationalManagementExecutiveChamberExternalizer.h @@ -0,0 +1,19 @@ +// +// YUMISensationalManagementExecutiveChamberExternalizer.h +// YuMi +// +// Created by YuMi on 2022/4/13. +// + +#import "BaseMvpExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMISensationalManagementExecutiveChamberExternalizer : BaseMvpExternalizer + +- (void)acquireUnionChamberSttowardsement:(NSString *)clanId targetUid:(NSString *)targetUid; + +- (void)unionSenstowardsionalManagementExecutiveChamberSttowardsement:(NSArray *)array targetUid:(NSString *)targetUid; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/Presenter/SuperAdmin/YUMISensationalManagementExecutiveChamberExternalizer.m b/YuMi/Modules/YMMine/View/Guild/Presenter/SuperAdmin/YUMISensationalManagementExecutiveChamberExternalizer.m new file mode 100644 index 00000000..7234f1bb --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/Presenter/SuperAdmin/YUMISensationalManagementExecutiveChamberExternalizer.m @@ -0,0 +1,30 @@ +// +// YUMISensationalManagementExecutiveChamberExternalizer.m +// YuMi +// +// Created by YuMi on 2022/4/13. +// + +#import "YUMISensationalManagementExecutiveChamberExternalizer.h" +#import "Api+Guild.h" +#import "UnionChamberAbstractMatrix.h" +#import "FBCSensationalManagementExecutiveChamberCeremony.h" + +@implementation YUMISensationalManagementExecutiveChamberExternalizer + +- (void)acquireUnionChamberSttowardsement:(NSString *)clanId targetUid:(NSString *)targetUid { + [Api acquireCorridorSenstowardsionalManagementExecutiveChamberSttowardsement:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + NSArray * array = [UnionChamberAbstractMatrix mtowardsrixsAboutGarment:data.data]; + [[self acquireRegard] acquireUnionChamberSttowardsementAccomplishment:array]; + }] clanId:clanId uid:targetUid]; +} + +- (void)unionSenstowardsionalManagementExecutiveChamberSttowardsement:(NSArray *)array targetUid:(NSString *)targetUid { + NSString * roomUids = @""; + roomUids = [array componentsJoinedByString:@","]; + [Api setSenstowardsionalManagementExecutiveChamber:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] unionSenstowardsionalManagementExecutiveChamberSttowardsementAccomplishment]; + } EvidenceChambering:YES] roomUids:roomUids uid:targetUid]; +} + +@end diff --git a/YuMi/Modules/YMMine/View/Guild/Presenter/SuperAdmin/YUMISensationalManagementSetExternalizer.h b/YuMi/Modules/YMMine/View/Guild/Presenter/SuperAdmin/YUMISensationalManagementSetExternalizer.h new file mode 100644 index 00000000..8d79313a --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/Presenter/SuperAdmin/YUMISensationalManagementSetExternalizer.h @@ -0,0 +1,20 @@ +// +// YUMISensationalManagementSetExternalizer.h +// YuMi +// +// Created by YuMi on 2022/4/13. +// + +#import "BaseMvpExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMISensationalManagementSetExternalizer : BaseMvpExternalizer + +- (void)acquireCollectiveSenstowardsionalManagementSttowardsement:(NSString *)clanId; + + +- (void)transltowardseSenstowardsionalManagement:(NSString *)targetUid; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/Presenter/SuperAdmin/YUMISensationalManagementSetExternalizer.m b/YuMi/Modules/YMMine/View/Guild/Presenter/SuperAdmin/YUMISensationalManagementSetExternalizer.m new file mode 100644 index 00000000..3620330e --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/Presenter/SuperAdmin/YUMISensationalManagementSetExternalizer.m @@ -0,0 +1,29 @@ +// +// YUMISensationalManagementSetExternalizer.m +// YuMi +// +// Created by YuMi on 2022/4/13. +// + +#import "YUMISensationalManagementSetExternalizer.h" +#import "Api+Guild.h" +#import "UnionSensationalManagementAbstractMatrix.h" +#import "FBCSensationalManagementSetCeremony.h" + +@implementation YUMISensationalManagementSetExternalizer + +- (void)acquireCollectiveSenstowardsionalManagementSttowardsement:(NSString *)clanId { + [Api acquireCollectiveSenstowardsionalManagementSttowardsement:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + NSArray * array = [UnionSensationalManagementAbstractMatrix mtowardsrixsAboutGarment:data.data]; + [[self acquireRegard] acquireCollectiveSenstowardsionalManagementSttowardsementAccomplishment:array]; + }] clanId:clanId]; +} + + +- (void)transltowardseSenstowardsionalManagement:(NSString *)targetUid { + [Api collectiveTransltowardseSenstowardsionalManagement:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] transltowardseSenstowardsionalManagementAccomplishment:targetUid]; + }EvidenceChambering:YES] targetUid:targetUid]; +} + +@end diff --git a/YuMi/Modules/YMMine/View/Guild/Presenter/YUMICollectiveExternalizer.h b/YuMi/Modules/YMMine/View/Guild/Presenter/YUMICollectiveExternalizer.h new file mode 100644 index 00000000..25a229c7 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/Presenter/YUMICollectiveExternalizer.h @@ -0,0 +1,23 @@ +// +// YUMICollectiveExternalizer.h +// YuMi +// +// Created by YuMi on 2022/4/6. +// + +#import "BaseMvpExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN +@class YUMIManeExchangeAuthorityMatrix; + +@interface YUMICollectiveExternalizer : BaseMvpExternalizer +- (void)acquireCollectiveSpecificAbstract:(NSString *)uid currentUserUid:(NSString *)currentUserUid; +- (void)acquireCollectiveComponentSttowardsement:(NSString *)uid page:(int)page pageSize:(NSInteger)pageSize state:(int)state; + +- (void)acquireCollectiveChamberSttowardsement:(NSString *)clanId; +-(void)acquireCollectiveChamberGoldSttowardsement:(NSString *)startTime endTime:(NSString *)endTime; +-(void)acquireCollectiveChamberComponentTowardstesttowardsionoritySttowardsement; +-(void)masterDisableRrEnablecomponentExdiversifictowardsionRights:(NSString *)status targetUid:(NSString *)targetUid model:(YUMIManeExchangeAuthorityMatrix *)model; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/Presenter/YUMICollectiveExternalizer.m b/YuMi/Modules/YMMine/View/Guild/Presenter/YUMICollectiveExternalizer.m new file mode 100644 index 00000000..cd3dcfc6 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/Presenter/YUMICollectiveExternalizer.m @@ -0,0 +1,81 @@ +// +// YUMICollectiveExternalizer.m +// YuMi +// +// Created by YuMi on 2022/4/6. +// + +#import "YUMICollectiveExternalizer.h" +#import +#import "FBCCollectiveCeremony.h" +#import "Api+Guild.h" +#import "CollectiveSpecificAbstractMatrix.h" +#import "CollectiveComponentSpecificAbstractMatrix.h" +#import "YUMIRevenueReflectionGoldSpecificsMatrix.h" +#import "YUMIManeExchangeAuthorityMatrix.h" + +@implementation YUMICollectiveExternalizer + +- (void)acquireCollectiveSpecificAbstract:(NSString *)uid currentUserUid:(NSString *)currentUserUid { + RACSubject* owner = [RACSubject subject]; + RACSubject* currentUser = [RACSubject subject]; + + [[RACSignal combineLatest:@[owner, currentUser] reduce:^id(CollectiveSpecificAbstractMatrix* ownerClanInfo, CollectiveSpecificAbstractMatrix* universalConsumerCollectiveAbstract){ + [[self acquireRegard] acquireCollectiveSpecificAbstractAccomplishment:ownerClanInfo universalConsumerCollectiveAbstract:universalConsumerCollectiveAbstract]; + return nil; + }] subscribeError:^(NSError * _Nullable error) { + + }]; + + [Api acquireCollectiveSpecificAbstract:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + CollectiveSpecificAbstractMatrix * collectiveSpecificAbstract = [CollectiveSpecificAbstractMatrix mtowardsrixAboutImpactbasket:data.data]; + [currentUser sendNext:collectiveSpecificAbstract]; + [currentUser sendCompleted]; + }fail:^(NSInteger code, NSString * _Nullable msg) { + [currentUser sendNext:nil]; + [currentUser sendCompleted]; + }] uid:currentUserUid]; + + [Api acquireCollectiveSpecificAbstract:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + CollectiveSpecificAbstractMatrix * collectiveSpecificAbstract = [CollectiveSpecificAbstractMatrix mtowardsrixAboutImpactbasket:data.data]; + [owner sendNext:collectiveSpecificAbstract]; + [owner sendCompleted]; + }fail:^(NSInteger code, NSString * _Nullable msg) { + [owner sendNext:nil]; + [owner sendCompleted]; + }] uid:uid]; +} + +- (void)acquireCollectiveComponentSttowardsement:(NSString *)uid page:(int)page pageSize:(NSInteger)pageSize state:(int)state { + NSString * pageStr = [NSString stringWithFormat:@"%d", page]; + NSString * pageSizeStr = [NSString stringWithFormat:@"%ld", pageSize]; + [Api acquireCollectiveComponentSttowardsement:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + CollectiveComponentSpecificAbstractMatrix * model= [CollectiveComponentSpecificAbstractMatrix mtowardsrixAboutImpactbasket:data.data]; + [[self acquireRegard] acquireCollectiveComponentSttowardsementAccomplishment:model state:state]; + }] uid:uid page:pageStr pageSize:pageSizeStr]; +} + +- (void)acquireCollectiveChamberSttowardsement:(NSString *)clanId { + [Api acquireChamberSttowardsementInCollective:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + NSArray * array = [UnionAbstractMatrix mtowardsrixsAboutGarment:data.data]; + [[self acquireRegard] acquireCollectiveChamberSttowardsementAccomplishment:array]; + }] clanId:clanId]; +} +-(void)acquireCollectiveChamberGoldSttowardsement:(NSString *)startTime endTime:(NSString *)endTime{ + [Api acquireCollectiveChamberGoldsSttowardsement:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + YUMIRevenueReflectionGoldSpecificsMatrix *model = [YUMIRevenueReflectionGoldSpecificsMatrix mtowardsrixAboutImpactbasket:data.data]; + [[self acquireRegard]acquireCollectiveChamberGoldsSttowardsementAccomplishment:model]; + }] startTime:startTime endTime:endTime]; +} +-(void)acquireCollectiveChamberComponentTowardstesttowardsionoritySttowardsement{ + [Api acquireCollectiveChamberComponentTowardstesttowardsionoritySttowardsement:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + NSArray *list = [YUMIManeExchangeAuthorityMatrix mtowardsrixsAboutGarment:data.data]; + [[self acquireRegard]acquireCollectiveChamberComponentTowardstesttowardsionoritySttowardsementAccomplishment:list]; + }EvidenceChambering:YES errorToast:YES]]; +} +-(void)masterDisableRrEnablecomponentExdiversifictowardsionRights:(NSString *)status targetUid:(NSString *)targetUid model:(YUMIManeExchangeAuthorityMatrix *)model{ + [Api requisitionMasterDisableRrEnablecomponentExdiversifictowardsionRights:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard]acquireExdiversifictowardsionTowardstesttowardsionorityConsequentAccomplishment:model status:status]; + }EvidenceChambering:YES errorToast:YES] status:status targetUid:targetUid]; +} +@end diff --git a/YuMi/Modules/YMMine/View/Guild/Presenter/YUMIManeUnionExternalizer.h b/YuMi/Modules/YMMine/View/Guild/Presenter/YUMIManeUnionExternalizer.h new file mode 100644 index 00000000..2f579ccc --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/Presenter/YUMIManeUnionExternalizer.h @@ -0,0 +1,19 @@ +// +// YUMIManeUnionExternalizer.h +// YuMi +// +// Created by YuMi on 2022/10/12. +// + +#import +#import "BaseMvpExternalizer.h" +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeUnionExternalizer : BaseMvpExternalizer +-(void)acquireUnionSttowardsementTowardsoloudspeaker; +-(void)acquireChamberSttowardsementTowardsoloudspeaker; +-(void)demandCollectiveAboutCollectiveId:(NSString *)clanId; +-(void)demandCorridorAboutCorridorId:(NSString *)hallId; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/Presenter/YUMIManeUnionExternalizer.m b/YuMi/Modules/YMMine/View/Guild/Presenter/YUMIManeUnionExternalizer.m new file mode 100644 index 00000000..46922b75 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/Presenter/YUMIManeUnionExternalizer.m @@ -0,0 +1,47 @@ +// +// YUMIManeUnionExternalizer.m +// YuMi +// +// Created by YuMi on 2022/10/12. +// + +#import "YUMIManeUnionExternalizer.h" +#import "Api+Mine.h" +#import "Api+Guild.h" +#import "AccountAbstractStorage.h" +#import "YUMIManeUnionStatementMatrix.h" +#import "FBCManeUnionCeremony.h" +@implementation YUMIManeUnionExternalizer +- (id)acquireRegard { + return ((id) [super acquireRegard]); +} +-(void)acquireUnionSttowardsementTowardsoloudspeaker{ + [Api requisitionManeUnionSttowardsement:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + NSArray *array = [YUMIManeUnionStatementMatrix mtowardsrixsAboutGarment:data.data]; + [[self acquireRegard]dwellEarnManeUnionSttowardsementAccomplishment:array]; + }]; +} +-(void)acquireChamberSttowardsementTowardsoloudspeaker{ + [Api requisitionManeChamberSttowardsement:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + NSArray *array = [YUMIManeUnionStatementMatrix mtowardsrixsAboutGarment:data.data]; + [[self acquireRegard]dwellEarnManeChamberSttowardsementAccomplishment:array]; + }]; +} +-(void)demandCollectiveAboutCollectiveId:(NSString *)clanId{ + NSString *uid = [AccountAbstractStorage instance].acquireCid; + + [Api demandCollectiveAbout:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard]demandCollectiveAccomplishment]; + }fail:^(NSInteger code, NSString * _Nullable msg) { + [[self acquireRegard]demandCollectiveFlunk]; + }] uid:uid clanId:clanId]; +} +-(void)demandCorridorAboutCorridorId:(NSString *)hallId{ + NSString *uid = [AccountAbstractStorage instance].acquireCid; + [Api componentAplictowardsionlyCorridor:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard]demandCorridorAccomplishment]; + }fail:^(NSInteger code, NSString * _Nullable msg) { + [[self acquireRegard]demandCorridorFlunk]; + }] hallId:hallId uid:uid]; +} +@end diff --git a/YuMi/Modules/YMMine/View/Guild/Presenter/YUMIUnionExternalizer.h b/YuMi/Modules/YMMine/View/Guild/Presenter/YUMIUnionExternalizer.h new file mode 100644 index 00000000..a354119e --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/Presenter/YUMIUnionExternalizer.h @@ -0,0 +1,26 @@ +// +// YUMIUnionExternalizer.h +// YuMi +// +// Created by YuMi on 2022/4/6. +// + +#import "BaseMvpExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIUnionExternalizer : BaseMvpExternalizer +- (void)acquireUnionComponentSttowardsement:(NSString *)hallId page:(int)page pageSize:(NSInteger)pageSize state:(int)state; + +- (void)acquireCollectiveSpecificAbstract:(NSString *)uid currentUserUid:(NSString *)currentUserUid; + +- (void)acquireConsumerInUnionChamberTowardstesttowardsion:(NSString *)hallId; + +- (void)centiretyforComponent:(NSString *)targetUid hallId:(NSString *)hallId; + +- (void)quitUnionChamber; +-(void)demandCorridorAboutCorridorId:(NSString *)hallId; +-(void)demandCorridorBtutonDeclareAboutCorridorId:(NSString *)hallId; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/Presenter/YUMIUnionExternalizer.m b/YuMi/Modules/YMMine/View/Guild/Presenter/YUMIUnionExternalizer.m new file mode 100644 index 00000000..bbdeabc0 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/Presenter/YUMIUnionExternalizer.m @@ -0,0 +1,99 @@ +// +// YUMIUnionExternalizer.m +// YuMi +// +// Created by YuMi on 2022/4/6. +// + +#import "YUMIUnionExternalizer.h" +#import +#import "Api+Guild.h" +#import "AccountAbstractStorage.h" +#import "CollectiveComponentSpecificAbstractMatrix.h" +#import "CollectiveSpecificAbstractMatrix.h" +#import "FBCUnionCeremony.h" +#import "UnionAuthMatrix.h" +#import "YUMIManeUnionStatementMatrix.h" + +@implementation YUMIUnionExternalizer + + +- (void)acquireUnionComponentSttowardsement:(NSString *)hallId page:(int)page pageSize:(NSInteger)pageSize state:(int)state { + NSString * pageStr = [NSString stringWithFormat:@"%d", page]; + NSString * pageSizeStr = [NSString stringWithFormat:@"%ld", pageSize]; + [Api acquireUnionComponentSttowardsement:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + CollectiveComponentSpecificAbstractMatrix * componentAbstract = [CollectiveComponentSpecificAbstractMatrix mtowardsrixAboutImpactbasket:data.data]; + [[self acquireRegard] acquireUnionComponentSttowardsementAccomplishment:componentAbstract state:state]; + }fail:^(NSInteger code, NSString * _Nullable msg) { + [[self acquireRegard] acquireUnionComponentSttowardsementFlunk:msg state:state]; + }] hallId:hallId page:pageStr pageSize:pageSizeStr]; +} + +- (void)acquireCollectiveSpecificAbstract:(NSString *)uid currentUserUid:(NSString *)currentUserUid { + RACSubject* owner = [RACSubject subject]; + RACSubject* currentUser = [RACSubject subject]; + + [[RACSignal combineLatest:@[owner, currentUser] reduce:^id(CollectiveSpecificAbstractMatrix* ownerClanInfo, CollectiveSpecificAbstractMatrix* universalConsumerCollectiveAbstract){ + [[self acquireRegard] acquireCollectiveSpecificAbstractAccomplishment:ownerClanInfo universalConsumerCollectiveAbstract:universalConsumerCollectiveAbstract]; + return nil; + }] subscribeError:^(NSError * _Nullable error) { + + }]; + + [Api acquireCollectiveSpecificAbstract:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + CollectiveSpecificAbstractMatrix * collectiveSpecificAbstract = [CollectiveSpecificAbstractMatrix mtowardsrixAboutImpactbasket:data.data]; + [currentUser sendNext:collectiveSpecificAbstract]; + [currentUser sendCompleted]; + }fail:^(NSInteger code, NSString * _Nullable msg) { + [currentUser sendNext:nil]; + [currentUser sendCompleted]; + }] uid:currentUserUid]; + + [Api acquireCollectiveSpecificAbstract:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + CollectiveSpecificAbstractMatrix * collectiveSpecificAbstract = [CollectiveSpecificAbstractMatrix mtowardsrixAboutImpactbasket:data.data]; + [owner sendNext:collectiveSpecificAbstract]; + [owner sendCompleted]; + }fail:^(NSInteger code, NSString * _Nullable msg) { + [owner sendNext:nil]; + [owner sendCompleted]; + }] uid:uid]; +} + +- (void)acquireConsumerInUnionChamberTowardstesttowardsion:(NSString *)hallId { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [Api acquireUnionChamberTowardstesttowardsion:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + NSArray * array = [UnionAuthMatrix mtowardsrixsAboutGarment:data.data]; + [[self acquireRegard] acquireConsumerInUnionChamberTowardstesttowardsionAccomplishment:array]; + }] hallId:hallId uid:uid]; +} + +- (void)centiretyforComponent:(NSString *)targetUid hallId:(NSString *)hallId { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [Api centiretyforComponentImplementtowardsion:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] centiretyforMemeberAccomplishmentAboutTaracquireCid:targetUid]; + } EvidenceChambering:YES] hallId:hallId uid:uid targetUid:targetUid]; +} + +- (void)quitUnionChamber { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [Api quitUnionChamber:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] quitUnionChamberAccomplishment]; + } EvidenceChambering:YES] uid:uid]; +} +-(void)demandCorridorAboutCorridorId:(NSString *)hallId{ + NSString *uid = [AccountAbstractStorage instance].acquireCid; + [Api componentAplictowardsionlyCorridor:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard]demandCorridorAccomplishment]; + }fail:^(NSInteger code, NSString * _Nullable msg) { + [[self acquireRegard]demandCorridorFlunk]; + }EvidenceChambering:YES] hallId:hallId uid:uid]; +} +-(void)demandCorridorBtutonDeclareAboutCorridorId:(NSString *)hallId{ + [Api demandCorridorBtutonDeclareAboutCorridorId:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + YUMIManeUnionStatementMatrix *model = [YUMIManeUnionStatementMatrix mtowardsrixAboutImpactbasket:data.data]; + [[self acquireRegard]demandCorridorBtutonDeclareAccomplishment:model]; + }fail:^(NSInteger code, NSString * _Nullable msg) { + + } EvidenceChambering:NO errorToast:NO] hallId:hallId]; +} +@end diff --git a/YuMi/Modules/YMMine/View/Guild/Presenter/YUMIUnionHuntforExternalizer.h b/YuMi/Modules/YMMine/View/Guild/Presenter/YUMIUnionHuntforExternalizer.h new file mode 100644 index 00000000..3486f178 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/Presenter/YUMIUnionHuntforExternalizer.h @@ -0,0 +1,20 @@ +// +// YUMIUnionHuntforExternalizer.h +// YuMi +// +// Created by YuMi on 2022/4/7. +// + +#import "BaseMvpExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIUnionHuntforExternalizer : BaseMvpExternalizer +- (void)huntforCollectiveComponentSttowardsement:(NSString *)uid key:(NSString *)key; + +- (void)unionAccelertowardseComponentHuntfor:(NSString *)key; + +- (void)huntforUnionSenstowardsionalManagement:(NSString *)key; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/Presenter/YUMIUnionHuntforExternalizer.m b/YuMi/Modules/YMMine/View/Guild/Presenter/YUMIUnionHuntforExternalizer.m new file mode 100644 index 00000000..49c2a94d --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/Presenter/YUMIUnionHuntforExternalizer.m @@ -0,0 +1,47 @@ +// +// YUMIUnionHuntforExternalizer.m +// YuMi +// +// Created by YuMi on 2022/4/7. +// + +#import "YUMIUnionHuntforExternalizer.h" +#import "Api+Guild.h" +#import "FBCUnionHuntforCeremony.h" +#import "CollectiveComponentSpecificAbstractMatrix.h" +#import "UnionHuntforConsumerAbstractMatrix.h" +#import "UnionHuntforSensationalManagementMatrix.h" +#import "AccountAbstractStorage.h" +@implementation YUMIUnionHuntforExternalizer + +- (void)huntforCollectiveComponentSttowardsement:(NSString *)uid key:(NSString *)key { + NSString * pageStr = @"1"; + NSString * pageSizeStr = @"50"; + [Api huntforCollectiveComponentSttowardsement:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + CollectiveComponentSpecificAbstractMatrix * componentAbstract = [CollectiveComponentSpecificAbstractMatrix mtowardsrixAboutImpactbasket:data.data]; + [[self acquireRegard] huntforCollectiveComponentSttowardsementAccomplishment:componentAbstract.members]; + } EvidenceChambering:YES] uid:uid page:pageStr pageSize:pageSizeStr queryStr:key]; +} + + +- (void)unionAccelertowardseComponentHuntfor:(NSString *)key { + [Api unionHuntforConsumerImplementtowardsion:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + NSArray * array = [UnionHuntforConsumerAbstractMatrix mtowardsrixsAboutGarment:data.data]; + [[self acquireRegard] unionAccelertowardseComponentHuntforAccomplishment:array]; + } EvidenceChambering:YES] key:key type:@"2" page:@"1" pageSize:@"50"]; +} + +- (void)huntforUnionSenstowardsionalManagement:(NSString *)key { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [Api huntforUnionSenstowardsionalManagement:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + UnionHuntforSensationalManagementMatrix * info = [UnionHuntforSensationalManagementMatrix mtowardsrixAboutImpactbasket:data.data]; + if (info) { + [[self acquireRegard] huntforUnionSenstowardsionalManagementAccomplishment:@[info]]; + } else { + [[self acquireRegard] huntforUnionSenstowardsionalManagementAccomplishment:@[]]; + } + } EvidenceChambering:YES] uid:uid erbanNo:key]; +} + + +@end diff --git a/YuMi/Modules/YMMine/View/Guild/Protocol/FBCCollectiveCeremony.h b/YuMi/Modules/YMMine/View/Guild/Protocol/FBCCollectiveCeremony.h new file mode 100644 index 00000000..58908026 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/Protocol/FBCCollectiveCeremony.h @@ -0,0 +1,22 @@ +// +// FBCCollectiveCeremony.h +// YuMi +// +// Created by YuMi on 2022/4/6. +// + +#import +#import "CollectiveSpecificAbstractMatrix.h" +NS_ASSUME_NONNULL_BEGIN +@class CollectiveSpecificAbstractMatrix, CollectiveComponentSpecificAbstractMatrix,YUMIRevenueReflectionGoldSpecificsMatrix,YUMIManeExchangeAuthorityMatrix,YUMIManeExchangeAuthorityMatrix; +@protocol FBCCollectiveCeremony +@optional +- (void)acquireCollectiveSpecificAbstractAccomplishment:(CollectiveSpecificAbstractMatrix *)collectiveSpecificAbstract universalConsumerCollectiveAbstract:(CollectiveSpecificAbstractMatrix *)universalConsumerCollectiveAbstract; +- (void)acquireCollectiveComponentSttowardsementAccomplishment:(CollectiveComponentSpecificAbstractMatrix *)componentAbstract state:(int)state; +- (void)acquireCollectiveChamberSttowardsementAccomplishment:(NSArray *)array; +-(void)acquireCollectiveChamberGoldsSttowardsementAccomplishment:(YUMIRevenueReflectionGoldSpecificsMatrix *)model; +-(void)acquireCollectiveChamberComponentTowardstesttowardsionoritySttowardsementAccomplishment:(NSArray *)list; +-(void)acquireExdiversifictowardsionTowardstesttowardsionorityConsequentAccomplishment:(YUMIManeExchangeAuthorityMatrix *)model status:(NSString *)status; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/Protocol/FBCManeUnionCeremony.h b/YuMi/Modules/YMMine/View/Guild/Protocol/FBCManeUnionCeremony.h new file mode 100644 index 00000000..2455e052 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/Protocol/FBCManeUnionCeremony.h @@ -0,0 +1,26 @@ +// +// FBCManeUnionCeremony.h +// YuMi +// +// Created by YuMi on 2022/10/12. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class YUMIManeUnionStatementMatrix; + +@protocol FBCManeUnionCeremony +-(void)dwellEarnManeUnionSttowardsementAccomplishment:(NSArray *)list; +-(void)dwellEarnManeChamberSttowardsementAccomplishment:(NSArray *)list; +-(void)demandCollectiveAccomplishment; +-(void)demandCollectiveFlunk; + +-(void)demandCorridorAccomplishment; +-(void)demandCorridorFlunk; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/Protocol/FBCUnionCeremony.h b/YuMi/Modules/YMMine/View/Guild/Protocol/FBCUnionCeremony.h new file mode 100644 index 00000000..de45ec6c --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/Protocol/FBCUnionCeremony.h @@ -0,0 +1,26 @@ +// +// FBCUnionCeremony.h +// YuMi +// +// Created by YuMi on 2022/4/6. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class CollectiveComponentSpecificAbstractMatrix,CollectiveSpecificAbstractMatrix,YUMIManeUnionStatementMatrix; +@protocol FBCUnionCeremony + +- (void)acquireUnionComponentSttowardsementAccomplishment:(CollectiveComponentSpecificAbstractMatrix *)componentAbstract state:(int)state; +- (void)acquireUnionComponentSttowardsementFlunk:(NSString *)msg state:(int)state; + +- (void)acquireCollectiveSpecificAbstractAccomplishment:(CollectiveSpecificAbstractMatrix *)collectiveSpecificAbstract universalConsumerCollectiveAbstract:(CollectiveSpecificAbstractMatrix *)universalConsumerCollectiveAbstract; +- (void)acquireConsumerInUnionChamberTowardstesttowardsionAccomplishment:(NSArray *)attestationStatement; +- (void)centiretyforMemeberAccomplishmentAboutTaracquireCid:(NSString *)targetUid; +- (void)quitUnionChamberAccomplishment; +-(void)demandCorridorAccomplishment; +-(void)demandCorridorFlunk; +-(void)demandCorridorBtutonDeclareAccomplishment:(YUMIManeUnionStatementMatrix *)model; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/Protocol/FBCUnionHuntforCeremony.h b/YuMi/Modules/YMMine/View/Guild/Protocol/FBCUnionHuntforCeremony.h new file mode 100644 index 00000000..e488939e --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/Protocol/FBCUnionHuntforCeremony.h @@ -0,0 +1,19 @@ +// +// FBCUnionHuntforCeremony.h +// YuMi +// +// Created by YuMi on 2022/4/7. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol FBCUnionHuntforCeremony + +- (void)huntforCollectiveComponentSttowardsementAccomplishment:(NSArray *)memberList; +- (void)unionAccelertowardseComponentHuntforAccomplishment:(NSArray *)memberList; +- (void)huntforUnionSenstowardsionalManagementAccomplishment:(NSArray *)memberList; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/Protocol/Income/FBCUnionIncomeCeremony.h b/YuMi/Modules/YMMine/View/Guild/Protocol/Income/FBCUnionIncomeCeremony.h new file mode 100644 index 00000000..4c03737c --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/Protocol/Income/FBCUnionIncomeCeremony.h @@ -0,0 +1,24 @@ +// +// FBCUnionIncomeCeremony.h +// YuMi +// +// Created by YuMi on 2022/4/11. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class UnionRevenueReflectionMatrix, UnionFeatureRevenueReflectionMatrix; +@protocol FBCUnionIncomeCeremony + +- (void)acquireCollectiveGeneralRevenueScuess:(UnionRevenueReflectionMatrix *)incomeInfo; +- (void)acquireCollectiveGeneralRevenueFlunk:(NSString *)msg; +- (void)acquireCorridorGeneralRevenueScuess:(UnionFeatureRevenueReflectionMatrix *)incomeInfo; +- (void)acquireCorridorGeneralRevenueFlunk:(NSString *)msg; +- (void)acquireCollectiveKellegGeneralRevenueAccomplishment:(UnionFeatureRevenueReflectionMatrix *)incomeInfo; +- (void)acquireCollectiveKellegGeneralRevenueFlunk:(NSString *)msg; +- (void)acquireCorridorKellegGeneralRevenueAccomplishment:(UnionFeatureRevenueReflectionMatrix *)incomeInfo; +- (void)acquireCorridorKellegGeneralRevenueFlunk:(NSString *)msg; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/Protocol/Income/FBCUnionIncomeDetailCeremony.h b/YuMi/Modules/YMMine/View/Guild/Protocol/Income/FBCUnionIncomeDetailCeremony.h new file mode 100644 index 00000000..44e49a10 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/Protocol/Income/FBCUnionIncomeDetailCeremony.h @@ -0,0 +1,19 @@ +// +// FBCUnionIncomeDetailCeremony.h +// YuMi +// +// Created by YuMi on 2022/4/12. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol FBCUnionIncomeDetailCeremony + +- (void)acquireConsumerRevenueSpecificSttowardsementAccomplishment:(NSArray *)array; +- (void)acquireConsumerRevenueSpecificSttowardsementFlunk:(NSString *)msg; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/Protocol/Setting/FBCUnionExecutivePerCeremony.h b/YuMi/Modules/YMMine/View/Guild/Protocol/Setting/FBCUnionExecutivePerCeremony.h new file mode 100644 index 00000000..6ee3d934 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/Protocol/Setting/FBCUnionExecutivePerCeremony.h @@ -0,0 +1,20 @@ +// +// FBCUnionExecutivePerCeremony.h +// YuMi +// +// Created by YuMi on 2022/4/8. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol FBCUnionExecutivePerCeremony + +- (void)acquireUnionChamberExecutivePreconditionAccomplishment:(NSArray *)array; + +- (void)refurbishUnionChamberExecutivePreconditionAccomplishment; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/Protocol/Setting/FBCUnionExecutiveStatementCeremony.h b/YuMi/Modules/YMMine/View/Guild/Protocol/Setting/FBCUnionExecutiveStatementCeremony.h new file mode 100644 index 00000000..3c04954c --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/Protocol/Setting/FBCUnionExecutiveStatementCeremony.h @@ -0,0 +1,18 @@ +// +// FBCUnionExecutiveStatementCeremony.h +// YuMi +// +// Created by YuMi on 2022/4/8. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class CollectiveComponentSpecificAbstractMatrix; +@protocol FBCUnionExecutiveStatementCeremony + +- (void)acquireUnionChamberExecutiveSttowardsementAccomplishment:(CollectiveComponentSpecificAbstractMatrix *)componentAbstract state:(int)state; +- (void)acquireUnionChamberExecutiveSttowardsementFlunk:(NSString *)msg state:(int)state; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/Protocol/Setting/FBCUnionRemoveMemberCeremony.h b/YuMi/Modules/YMMine/View/Guild/Protocol/Setting/FBCUnionRemoveMemberCeremony.h new file mode 100644 index 00000000..1dfd0c8e --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/Protocol/Setting/FBCUnionRemoveMemberCeremony.h @@ -0,0 +1,19 @@ +// +// FBCUnionRemoveMemberCeremony.h +// YuMi +// +// Created by YuMi on 2022/4/8. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol FBCUnionRemoveMemberCeremony +- (void)acquireUnionComponentSttowardsementAccomplishment:(CollectiveComponentSpecificAbstractMatrix *)componentAbstract state:(int)state; +- (void)acquireUnionComponentSttowardsementFlunk:(NSString *)msg state:(int)state; + +- (void)transltowardseUnionComponentAccomplishment; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/Protocol/Setting/FBCUnionSetExecutiveCeremony.h b/YuMi/Modules/YMMine/View/Guild/Protocol/Setting/FBCUnionSetExecutiveCeremony.h new file mode 100644 index 00000000..48ba76f0 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/Protocol/Setting/FBCUnionSetExecutiveCeremony.h @@ -0,0 +1,20 @@ +// +// FBCUnionSetExecutiveCeremony.h +// YuMi +// +// Created by YuMi on 2022/4/8. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol FBCUnionSetExecutiveCeremony +- (void)acquireUnionComponentSttowardsementAccomplishment:(CollectiveComponentSpecificAbstractMatrix *)componentAbstract state:(int)state; +- (void)acquireUnionComponentSttowardsementFlunk:(NSString *)msg state:(int)state; + +- (void)unionChamberAccelertowardseExecutiveAccomplishment:(NSString *)targetUid; +- (void)unionChamberTransltowardseExecutiveAccomplishment:(NSString *)targetUid; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/Protocol/Setting/FBCUnionSetNameCeremony.h b/YuMi/Modules/YMMine/View/Guild/Protocol/Setting/FBCUnionSetNameCeremony.h new file mode 100644 index 00000000..0b978861 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/Protocol/Setting/FBCUnionSetNameCeremony.h @@ -0,0 +1,18 @@ +// +// FBCUnionSetNameCeremony.h +// YuMi +// +// Created by YuMi on 2022/4/7. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol FBCUnionSetNameCeremony + +- (void)refurbishUnionChamberConstituteAccomplishment; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/Protocol/SuperAdmin/FBCSensationalManagementExecutiveChamberCeremony.h b/YuMi/Modules/YMMine/View/Guild/Protocol/SuperAdmin/FBCSensationalManagementExecutiveChamberCeremony.h new file mode 100644 index 00000000..130d6698 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/Protocol/SuperAdmin/FBCSensationalManagementExecutiveChamberCeremony.h @@ -0,0 +1,19 @@ +// +// FBCSensationalManagementExecutiveChamberCeremony.h +// YuMi +// +// Created by YuMi on 2022/4/13. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol FBCSensationalManagementExecutiveChamberCeremony + +- (void)acquireUnionChamberSttowardsementAccomplishment:(NSArray *)array; +- (void)unionSenstowardsionalManagementExecutiveChamberSttowardsementAccomplishment; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/Protocol/SuperAdmin/FBCSensationalManagementSetCeremony.h b/YuMi/Modules/YMMine/View/Guild/Protocol/SuperAdmin/FBCSensationalManagementSetCeremony.h new file mode 100644 index 00000000..163a362a --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/Protocol/SuperAdmin/FBCSensationalManagementSetCeremony.h @@ -0,0 +1,19 @@ +// +// FBCSensationalManagementSetCeremony.h +// YuMi +// +// Created by YuMi on 2022/4/13. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol FBCSensationalManagementSetCeremony + +- (void)acquireCollectiveSenstowardsionalManagementSttowardsementAccomplishment:(NSArray *)list; +- (void)transltowardseSenstowardsionalManagementAccomplishment:(NSString *)uid; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/View/Cell/ExchangeAuthority/YUMIManeExchangeAuthorityElement.h b/YuMi/Modules/YMMine/View/Guild/View/Cell/ExchangeAuthority/YUMIManeExchangeAuthorityElement.h new file mode 100644 index 00000000..bca3ccef --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/Cell/ExchangeAuthority/YUMIManeExchangeAuthorityElement.h @@ -0,0 +1,25 @@ +// +// YUMIManeExchangeAuthorityElement.h +// YuMi +// +// Created by YuMi on 2023/2/13. +// + +#import +#import "YUMIManeExchangeAuthorityMatrix.h" +NS_ASSUME_NONNULL_BEGIN + +@protocol FBCManeExchangeAuthorityElementRepresendtation + +-(void)unfoildExdiversifictowardsionTowardstesttowardsionoritySwiftPosition:(NSString *)status model:(YUMIManeExchangeAuthorityMatrix *)model; + +@end + + + +@interface YUMIManeExchangeAuthorityElement : UITableViewCell +@property (nonatomic,strong) YUMIManeExchangeAuthorityMatrix *attestationorityMatrix; +@property (nonatomic,weak) id delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/View/Cell/ExchangeAuthority/YUMIManeExchangeAuthorityElement.m b/YuMi/Modules/YMMine/View/Guild/View/Cell/ExchangeAuthority/YUMIManeExchangeAuthorityElement.m new file mode 100644 index 00000000..35433abb --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/Cell/ExchangeAuthority/YUMIManeExchangeAuthorityElement.m @@ -0,0 +1,338 @@ +// +// YUMIManeExchangeAuthorityElement.m +// YuMi +// +// Created by YuMi on 2023/2/13. +// + +#import "YUMIManeExchangeAuthorityElement.h" +#import "NetIndicateRegard.h" +#import "DJDKMIMOMColor.h" +#import "UIImage+Utils.h" +@interface YUMIManeExchangeAuthorityElement() +@property (nonatomic,strong) NetIndicateRegard *intelligenceRegard; +@property (nonatomic,strong) UILabel *constituteRegard; +@property (nonatomic,strong) UIStackView *monicerHierarchyRegard; +@property (nonatomic,strong) UIImageView *seaxualityIndicateRegard; +@property (nonatomic,strong) NetIndicateRegard *fascinationIndicateRegard; +@property (nonatomic,strong) NetIndicateRegard *experIndicateRegard; +@property (nonatomic,strong) UIStackView *stackView; +@property (nonatomic,strong) UILabel *idRegard; +@property (nonatomic,strong) UIView *thresholdBurlywoodRegard; +@property (nonatomic,strong) UILabel *chamberRegard; +@property (nonatomic,strong) UIView *instantBurlywoodRegard; +@property (nonatomic,strong) UILabel *goldRegard; +@property (nonatomic,strong) UIButton *exdiversificationBtuton; +@property (nonatomic,strong) UIView *burlywoodRegard; +@end +@implementation YUMIManeExchangeAuthorityElement +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.contentView.backgroundColor = [UIColor whiteColor]; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.intelligenceRegard]; + [self.contentView addSubview:self.monicerHierarchyRegard]; + [self.contentView addSubview:self.stackView]; + [self.contentView addSubview:self.exdiversificationBtuton]; + [self.contentView addSubview:self.burlywoodRegard]; + [self.contentView addSubview:self.thresholdBurlywoodRegard]; + [self.contentView addSubview:self.instantBurlywoodRegard]; + + [self.monicerHierarchyRegard addArrangedSubview:self.constituteRegard]; + [self.monicerHierarchyRegard addArrangedSubview:self.seaxualityIndicateRegard]; + [self.monicerHierarchyRegard addArrangedSubview:self.experIndicateRegard]; + [self.monicerHierarchyRegard addArrangedSubview:self.fascinationIndicateRegard]; + + [self.stackView addArrangedSubview:self.idRegard]; + [self.stackView addArrangedSubview:self.chamberRegard]; + [self.stackView addArrangedSubview:self.goldRegard]; +} +- (void)initChildLyRestrictions { + [self.intelligenceRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(kGetScaleWidth(12)); + make.width.height.mas_equalTo(kGetScaleWidth(50)); + make.centerY.equalTo(self.contentView); + }]; + [self.exdiversificationBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(-kGetScaleWidth(12)); + make.width.mas_equalTo(kGetScaleWidth(68)); + make.height.mas_equalTo(kGetScaleWidth(24)); + make.centerY.equalTo(self.contentView); + }]; + + [self.monicerHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(kGetScaleWidth(70)); + make.top.mas_equalTo(kGetScaleWidth(21)); + make.height.mas_equalTo(kGetScaleWidth(17)); + make.width.mas_lessThanOrEqualTo(kGetScaleWidth(215)); + }]; + [self.seaxualityIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(kGetScaleWidth(2)); + make.height.width.mas_equalTo(kGetScaleWidth(14)); + make.bottom.mas_equalTo(0); + }]; + [self.experIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(kGetScaleWidth(22)); + }]; + [self.fascinationIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(kGetScaleWidth(22)); + }]; + [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.equalTo(self.constituteRegard); + make.right.mas_equalTo(-kGetScaleWidth(90)); + make.top.mas_equalTo(kGetScaleWidth(45)); + make.height.mas_equalTo(kGetScaleWidth(14)); + }]; + [self.goldRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_greaterThanOrEqualTo(10); + }]; + [self.thresholdBurlywoodRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.equalTo(self.idRegard.mas_right).mas_offset(kGetScaleWidth(3)); + make.centerY.equalTo(self.idRegard); + make.width.mas_equalTo(kGetScaleWidth(1)); + make.height.mas_equalTo(kGetScaleWidth(8)); + }]; + + [self.instantBurlywoodRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.equalTo(self.chamberRegard.mas_right).mas_offset(kGetScaleWidth(3)); + make.centerY.equalTo(self.chamberRegard); + make.width.mas_equalTo(kGetScaleWidth(1)); + make.height.mas_equalTo(kGetScaleWidth(8)); + }]; + [self.burlywoodRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.equalTo(self.contentView); + make.height.mas_equalTo(kGetScaleWidth(1)); + }]; +} +-(void)setAttestationorityMatrix:(YUMIManeExchangeAuthorityMatrix *)attestationorityMatrix{ + _attestationorityMatrix = attestationorityMatrix; + _intelligenceRegard.imageUrl = _attestationorityMatrix.avatar; + _idRegard.text = [NSString stringWithFormat:@"ID:%ld",_attestationorityMatrix.erbanNo]; + NSString * hallName = _attestationorityMatrix.hallName; + if (hallName.length > 5) { + hallName = [NSString stringWithFormat:@"%@...", [hallName substringToIndex:5]]; + } + _chamberRegard.text = hallName; + _exdiversificationBtuton.selected = _attestationorityMatrix.exchangeAuthStatus == 0; + _goldRegard.text = [NSString stringWithFormat:YMLocalizedString(@"YUMI_MineExchangeAuthorityCell2"),_attestationorityMatrix.golds]; + NSString * nick = _attestationorityMatrix.nick; + if (nick.length > 8) { + nick = [NSString stringWithFormat:@"%@...", [nick substringToIndex:8]]; + } + _constituteRegard.text = nick; + self.seaxualityIndicateRegard.image = _attestationorityMatrix.gender == GenderGenre_Female ? [UIImage imageNamed:@"yumi_same_female"] : [UIImage imageNamed:@"yumi_same_male"]; + if (_attestationorityMatrix.userLevelVo.experUrl) { + if (self.experIndicateRegard.state == NetImageDeclareLoaded) { + self.experIndicateRegard.imageUrl = _attestationorityMatrix.userLevelVo.experUrl; + CGFloat kImageScale = self.experIndicateRegard.image.size.width / self.experIndicateRegard.image.size.height; + CGFloat imageWidth = 17 * kImageScale; + [self.experIndicateRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(imageWidth); + }]; + } else { + @kWeakify(self); + [self.experIndicateRegard chamberIndictowardseAboutWeebsite:_attestationorityMatrix.userLevelVo.experUrl completion:^(UIImage * _Nonnull image, NSURL * _Nonnull url) { + @kStrongify(self); + self.experIndicateRegard.image = image; + CGFloat kImageScale = image.size.width / image.size.height; + CGFloat imageWidth = 17 * kImageScale; + [self.experIndicateRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(imageWidth); + }]; + }]; + } + } + self.experIndicateRegard.hidden = _attestationorityMatrix.userLevelVo.experUrl.length <= 0; + + if (_attestationorityMatrix.userLevelVo.charmUrl) { + if (self.fascinationIndicateRegard.state == NetImageDeclareLoaded) { + self.fascinationIndicateRegard.imageUrl = _attestationorityMatrix.userLevelVo.charmUrl; + CGFloat kImageScale = self.fascinationIndicateRegard.image.size.width / self.fascinationIndicateRegard.image.size.height; + CGFloat imageWidth = 17 * kImageScale; + [self.fascinationIndicateRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(imageWidth); + }]; + } else { + @kWeakify(self); + [self.fascinationIndicateRegard chamberIndictowardseAboutWeebsite:_attestationorityMatrix.userLevelVo.charmUrl completion:^(UIImage * _Nonnull image, NSURL * _Nonnull url) { + @kStrongify(self); + self.fascinationIndicateRegard.image = image; + CGFloat kImageScale = image.size.width / image.size.height; + CGFloat imageWidth = 17 * kImageScale; + [self.fascinationIndicateRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(imageWidth); + }]; + }]; + } + } + self.fascinationIndicateRegard.hidden = _attestationorityMatrix.userLevelVo.charmUrl.length <= 0; +} +-(void)exdiversifictowardsionPerformance{ + if(self.delegate && [self.delegate respondsToSelector:@selector(unfoildExdiversifictowardsionTowardstesttowardsionoritySwiftPosition:model:)]){ + [self.delegate unfoildExdiversifictowardsionTowardstesttowardsionoritySwiftPosition:self.exdiversificationBtuton.selected ? @"1":@"0" model:self.attestationorityMatrix]; + } +} +#pragma mark -懒加载 +- (NetIndicateRegard *)intelligenceRegard{ + if (!_intelligenceRegard){ + NetIndicateDisposition *config = [NetIndicateDisposition new]; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceRegard = [[NetIndicateRegard alloc]initWithConfig:config]; + _intelligenceRegard.layer.cornerRadius = kGetScaleWidth(25); + _intelligenceRegard.layer.masksToBounds = YES; + } + return _intelligenceRegard; +} + +- (UILabel *)constituteRegard { + if (!_constituteRegard) { + _constituteRegard = [[UILabel alloc] init]; + _constituteRegard.font = [UIFont systemFontOfSize:15 weight:UIFontWeightMedium]; + _constituteRegard.textColor = UIColorFromRGB(0x1F1B4F); + } + return _constituteRegard; +} + +-(UIStackView *)stackView{ + if (!_stackView){ + _stackView = [[UIStackView alloc] init]; + _stackView.axis = UILayoutConstraintAxisHorizontal; + _stackView.distribution = UIStackViewDistributionFill; + _stackView.alignment = UIStackViewAlignmentFill; + _stackView.spacing = kGetScaleWidth(7); + } + return _stackView; +} + +- (UILabel *)idRegard { + if (!_idRegard) { + _idRegard = [[UILabel alloc] init]; + _idRegard.font = [UIFont systemFontOfSize:10]; + _idRegard.textColor = [UIFont systemFontOfSize:10]; + } + return _idRegard; +} + +-(UIView *)thresholdBurlywoodRegard{ + if (!_thresholdBurlywoodRegard){ + _thresholdBurlywoodRegard = [UIView new]; + _thresholdBurlywoodRegard.backgroundColor = UIColorFromRGB(0xD8D8D8); + } + return _thresholdBurlywoodRegard; +} + +- (UILabel *)chamberRegard { + if (!_chamberRegard) { + _chamberRegard = [[UILabel alloc] init]; + _chamberRegard.font = [UIFont systemFontOfSize:10]; + _chamberRegard.textColor = UIColorFromRGB(0x6D6B89); + } + return _chamberRegard; +} + +-(UIView *)instantBurlywoodRegard{ + if (!_instantBurlywoodRegard){ + _instantBurlywoodRegard = [UIView new]; + _instantBurlywoodRegard.backgroundColor = UIColorFromRGB(0xD8D8D8); + } + return _instantBurlywoodRegard; +} + +- (UILabel *)goldRegard { + if (!_goldRegard) { + _goldRegard = [[UILabel alloc] init]; + _goldRegard.font = [UIFont systemFontOfSize:10]; + _goldRegard.textColor = UIColorFromRGB(0x6D6B89); + } + return _goldRegard; +} + +-(UIButton *)exdiversificationBtuton{ + if (!_exdiversificationBtuton){ + _exdiversificationBtuton = [UIButton new]; + _exdiversificationBtuton.titleLabel.font = [UIFont systemFontOfSize:13 weight:UIFontWeightMedium]; + UIImage *normalImage = [UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[UIColorFromRGB(0xE6E6F0),UIColorFromRGB(0xE6E6F0),UIColorFromRGB(0xE6E6F0)] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(kGetScaleWidth(68), kGetScaleWidth(24))]; + [_exdiversificationBtuton setBackgroundImage:normalImage forState:UIControlStateNormal]; + [_exdiversificationBtuton setTitle:YMLocalizedString(@"YUMI_MineExchangeAuthorityCell1") forState:UIControlStateNormal]; + [_exdiversificationBtuton setTitleColor:UIColorFromRGB(0xB3B3C3) forState:UIControlStateNormal]; + + UIImage *selectedImage = [UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify],[DJDKMIMOMColor acknowledgementBtutonObliquityMiddlePrettify],[DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(kGetScaleWidth(68), kGetScaleWidth(24))]; + [_exdiversificationBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateSelected]; + [_exdiversificationBtuton setBackgroundImage:selectedImage forState:UIControlStateSelected]; + [_exdiversificationBtuton setTitle:YMLocalizedString(@"YUMI_MineExchangeAuthorityCell0") forState:UIControlStateSelected]; + _exdiversificationBtuton.layer.cornerRadius = kGetScaleWidth(12); + _exdiversificationBtuton.layer.masksToBounds = YES; + [_exdiversificationBtuton addTarget:self action:@selector(exdiversifictowardsionPerformance) forControlEvents:UIControlEventTouchUpInside]; + } + return _exdiversificationBtuton; +} +-(UIView *)burlywoodRegard{ + if (!_burlywoodRegard){ + _burlywoodRegard = [UIView new]; + _burlywoodRegard.backgroundColor = UIColorFromRGB(0xF3F5FA); + } + return _burlywoodRegard; +} +- (UIImageView *)seaxualityIndicateRegard { + if (!_seaxualityIndicateRegard) { + _seaxualityIndicateRegard = [[UIImageView alloc] init]; + _seaxualityIndicateRegard.userInteractionEnabled = YES; + } + return _seaxualityIndicateRegard; +} + +- (NetIndicateRegard *)experIndicateRegard { + if (!_experIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc] init]; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + config.imageType = ImageGenreUserCardLevel; + _experIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _experIndicateRegard.userInteractionEnabled = YES; + _experIndicateRegard.hidden = YES; + _experIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _experIndicateRegard; +} + +- (NetIndicateRegard *)fascinationIndicateRegard { + if (!_fascinationIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc] init]; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + config.imageType = ImageGenreUserCardLevel; + _fascinationIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _fascinationIndicateRegard.userInteractionEnabled = YES; + _fascinationIndicateRegard.hidden = YES; + _fascinationIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _fascinationIndicateRegard; +} +- (UIStackView *)monicerHierarchyRegard { + if (!_monicerHierarchyRegard) { + _monicerHierarchyRegard = [[UIStackView alloc] init]; + _monicerHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _monicerHierarchyRegard.distribution = UIStackViewDistributionFill; + _monicerHierarchyRegard.alignment = UIStackViewAlignmentFill; + _monicerHierarchyRegard.spacing = kGetScaleWidth(5); + } + return _monicerHierarchyRegard; +} +- (void)awakeFromNib { + [super awakeFromNib]; + +} + +- (void)setSelected:(BOOL)selected animated:(BOOL)animated { + [super setSelected:selected animated:animated]; + + +} + +@end diff --git a/YuMi/Modules/YMMine/View/Guild/View/Cell/ExchangeAuthority/YUMIManeExchangeAuthorityFooderRegard.h b/YuMi/Modules/YMMine/View/Guild/View/Cell/ExchangeAuthority/YUMIManeExchangeAuthorityFooderRegard.h new file mode 100644 index 00000000..ea06079f --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/Cell/ExchangeAuthority/YUMIManeExchangeAuthorityFooderRegard.h @@ -0,0 +1,16 @@ +// +// YUMIManeExchangeAuthorityFooderRegard.h +// YuMi +// +// Created by YuMi on 2023/2/13. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeExchangeAuthorityFooderRegard : UITableViewHeaderFooterView +@property (nonatomic,copy) NSString *title; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/View/Cell/ExchangeAuthority/YUMIManeExchangeAuthorityFooderRegard.m b/YuMi/Modules/YMMine/View/Guild/View/Cell/ExchangeAuthority/YUMIManeExchangeAuthorityFooderRegard.m new file mode 100644 index 00000000..a9554248 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/Cell/ExchangeAuthority/YUMIManeExchangeAuthorityFooderRegard.m @@ -0,0 +1,52 @@ +// +// YUMIManeExchangeAuthorityFooderRegard.m +// YuMi +// +// Created by YuMi on 2023/2/13. +// + +#import "YUMIManeExchangeAuthorityFooderRegard.h" +#import +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" +@interface YUMIManeExchangeAuthorityFooderRegard() +@property (nonatomic,strong) UILabel *titleView; +@end +@implementation YUMIManeExchangeAuthorityFooderRegard + +-(instancetype)initWithReuseIdentifier:(NSString *)reuseIdentifier{ + self = [super initWithReuseIdentifier:reuseIdentifier]; + if(self){ + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.contentView.backgroundColor = UIColorFromRGB(0xF3F5FA); + [self.contentView addSubview:self.titleView]; +} +- (void)initChildLyRestrictions { + [self.titleView mas_makeConstraints:^(MASConstraintMaker *make) { + make.center.equalTo(self.contentView); + }]; +} +-(void)setTitle:(NSString *)title{ + _title = title; + _titleView.text = _title; + +} +#pragma mark -懒加载 +- (UILabel *)titleView { + if (!_titleView) { + _titleView = [[UILabel alloc] init]; + _titleView.font = [UIFont systemFontOfSize:12]; + _titleView.textColor = [DJDKMIMOMColor prohibitionBtutonEssayPrettify]; + _titleView.text = YMLocalizedString(@"YUMI_MineExchangeAuthorityFooderView0"); + } + return _titleView; +} + +@end diff --git a/YuMi/Modules/YMMine/View/Guild/View/Cell/ExchangeAuthority/YUMIManeExchangeAuthorityIntelligenceRegard.h b/YuMi/Modules/YMMine/View/Guild/View/Cell/ExchangeAuthority/YUMIManeExchangeAuthorityIntelligenceRegard.h new file mode 100644 index 00000000..057fdac1 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/Cell/ExchangeAuthority/YUMIManeExchangeAuthorityIntelligenceRegard.h @@ -0,0 +1,16 @@ +// +// YUMIManeExchangeAuthorityIntelligenceRegard.h +// YuMi +// +// Created by YuMi on 2023/2/13. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeExchangeAuthorityIntelligenceRegard : UITableViewHeaderFooterView +@property (nonatomic,copy) NSString *title; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/View/Cell/ExchangeAuthority/YUMIManeExchangeAuthorityIntelligenceRegard.m b/YuMi/Modules/YMMine/View/Guild/View/Cell/ExchangeAuthority/YUMIManeExchangeAuthorityIntelligenceRegard.m new file mode 100644 index 00000000..593d9d7e --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/Cell/ExchangeAuthority/YUMIManeExchangeAuthorityIntelligenceRegard.m @@ -0,0 +1,49 @@ +// +// YUMIManeExchangeAuthorityIntelligenceRegard.m +// YuMi +// +// Created by YuMi on 2023/2/13. +// + +#import "YUMIManeExchangeAuthorityIntelligenceRegard.h" +#import +#import "DJDKMIMOMColor.h" +@interface YUMIManeExchangeAuthorityIntelligenceRegard() +@property (nonatomic,strong) UILabel *titleView; +@end +@implementation YUMIManeExchangeAuthorityIntelligenceRegard + +-(instancetype)initWithReuseIdentifier:(NSString *)reuseIdentifier{ + self = [super initWithReuseIdentifier:reuseIdentifier]; + if(self){ + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.contentView.backgroundColor = UIColorFromRGB(0xECE4FF); + [self.contentView addSubview:self.titleView]; +} +- (void)initChildLyRestrictions { + [self.titleView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(kGetScaleWidth(15)); + make.centerY.equalTo(self.contentView); + }]; +} +-(void)setTitle:(NSString *)title{ + _title = title; + _titleView.text = _title; +} +#pragma mark -懒加载 +- (UILabel *)titleView { + if (!_titleView) { + _titleView = [[UILabel alloc] init]; + _titleView.font = [UIFont systemFontOfSize:15]; + _titleView.textColor = UIColorFromRGB(0x6D6B89); + } + return _titleView; +} +@end diff --git a/YuMi/Modules/YMMine/View/Guild/View/Cell/ExchangeAuthority/YUMIManePromptWindow.h b/YuMi/Modules/YMMine/View/Guild/View/Cell/ExchangeAuthority/YUMIManePromptWindow.h new file mode 100644 index 00000000..2608246e --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/Cell/ExchangeAuthority/YUMIManePromptWindow.h @@ -0,0 +1,19 @@ +// +// YUMIManePromptWindow.h +// YuMi +// +// Created by YuMi on 2023/2/13. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +typedef void(^ConfirmHandler)(void); + +@interface YUMIManePromptWindow : UIView +@property (nonatomic,copy) ConfirmHandler acknowledgementHandler; +@property (nonatomic,copy) NSString * name; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/View/Cell/ExchangeAuthority/YUMIManePromptWindow.m b/YuMi/Modules/YMMine/View/Guild/View/Cell/ExchangeAuthority/YUMIManePromptWindow.m new file mode 100644 index 00000000..1b32be14 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/Cell/ExchangeAuthority/YUMIManePromptWindow.m @@ -0,0 +1,162 @@ +// +// YUMIManePromptWindow.m +// YuMi +// +// Created by YuMi on 2023/2/13. +// + +#import "YUMIManePromptWindow.h" +#import +#import "DJDKMIMOMColor.h" +#import "MKJPopup.h" +#import "UIImage+Utils.h" +#import "UIView+Corner.h" +#import "YUMIMacroUitls.h" +@interface YUMIManePromptWindow() +@property (nonatomic,strong) UIView *backgroundRegard; +@property (nonatomic,strong) UILabel *titleView; +@property (nonatomic,strong) UILabel *communicationRegard; + +@property (nonatomic,strong) UIButton *revocationBtuton; +@property (nonatomic,strong) UIButton *confirmBtn; +@property (nonatomic,strong) UIButton *encourageBtuton; +@end +@implementation YUMIManePromptWindow + +-(instancetype)initWithFrame:(CGRect)frame{ + self = [super initWithFrame:frame]; + if(self){ + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} +-(void)setName:(NSString *)name{ + _name = name; + NSTextAttachment * attachment = [[NSTextAttachment alloc] init]; + UIImage *iconImage = [UIImage imageNamed:@"yumi_center_guild_warning"]; + attachment.bounds = CGRectMake(0, roundf(_communicationRegard.font.capHeight - kGetScaleWidth(16))/2.f, kGetScaleWidth(16), kGetScaleWidth(16)); + attachment.image = iconImage; + NSString *getName = [NSString stringWithFormat:YMLocalizedString(@"YUMI_MinePromptWindow1"),_name]; + NSMutableAttributedString *textAtt = [[NSMutableAttributedString alloc]initWithString:[NSString stringWithFormat:@" %@",getName] attributes:@{NSForegroundColorAttributeName:UIColorFromRGB(0x1F1B4F),NSFontAttributeName:[UIFont systemFontOfSize:14]}]; + [textAtt setAttributes:@{NSFontAttributeName:[UIFont systemFontOfSize:14],NSForegroundColorAttributeName:UIColorFromRGB(0x9168FA)} range:[textAtt.string rangeOfString:_name]]; + [textAtt insertAttributedString:[NSMutableAttributedString attributedStringWithAttachment:attachment] atIndex:0]; + _communicationRegard.attributedText = textAtt; +} +-(void)backAction{ + [MKJPopup dismiss]; +} +-(void)acknowledgementPerformance{ + if(self.acknowledgementHandler){ + self.acknowledgementHandler(); + } + [self backAction]; +} +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.backgroundRegard]; + [self.backgroundRegard addSubview:self.encourageBtuton]; + [self.backgroundRegard addSubview:self.titleView]; + [self.backgroundRegard addSubview:self.communicationRegard]; + [self.backgroundRegard addSubview:self.revocationBtuton]; + [self.backgroundRegard addSubview:self.confirmBtn]; +} +- (void)initChildLyRestrictions { + [self.backgroundRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(kGetScaleWidth(310)); + make.height.mas_equalTo(kGetScaleWidth(196)); + make.center.equalTo(self); + }]; + [self.encourageBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.mas_equalTo(kGetScaleWidth(22)); + make.top.mas_equalTo(kGetScaleWidth(10)); + make.right.mas_equalTo(-kGetScaleWidth(15)); + }]; + [self.titleView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(kGetScaleWidth(25)); + make.centerX.equalTo(self.backgroundRegard); + }]; + + [self.communicationRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(kGetScaleWidth(67)); + make.right.mas_equalTo(-kGetScaleWidth(20)); + make.left.mas_equalTo(kGetScaleWidth(20)); + }]; + + + [self.revocationBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(kGetScaleWidth(110)); + make.height.mas_equalTo(kGetScaleWidth(37)); + make.left.mas_equalTo(kGetScaleWidth(31)); + make.top.mas_equalTo(kGetScaleWidth(129)); + }]; + [self.confirmBtn mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.top.equalTo(self.revocationBtuton); + make.right.mas_equalTo(-kGetScaleWidth(31)); + }]; +} +#pragma mark -懒加载 +- (UIView *)backgroundRegard{ + if (!_backgroundRegard){ + _backgroundRegard = [UIView new]; + [_backgroundRegard setMonopolizeAboutContraryApexMonopolize:kGetScaleWidth(12) rightTopCorner:kGetScaleWidth(12) bottomLeftCorner:kGetScaleWidth(12) bottomRightCorner:kGetScaleWidth(12) size:CGSizeMake(kGetScaleWidth(310), kGetScaleWidth(196))]; + _backgroundRegard.backgroundColor = [UIColor whiteColor]; + } + return _backgroundRegard; +} +-(UIButton *)encourageBtuton{ + if (!_encourageBtuton){ + _encourageBtuton = [UIButton new]; + [_encourageBtuton setBackgroundImage:[UIImage imageNamed:@"mine_guild_close"] forState:UIControlStateNormal]; + [_encourageBtuton addTarget:self action:@selector(backAction) forControlEvents:UIControlEventTouchUpInside]; + } + return _encourageBtuton; +} + + +- (UILabel *)titleView { + if (!_titleView) { + _titleView = [[UILabel alloc] init]; + _titleView.font = [UIFont systemFontOfSize:17 weight:UIFontWeightMedium]; + _titleView.textColor = UIColorFromRGB(0x1F1B4F); + _titleView.text = YMLocalizedString(@"YUMI_MinePromptWindow0"); + } + return _titleView; +} + +-(UILabel *)communicationRegard{ + if (!_communicationRegard){ + _communicationRegard = [UILabel new]; + _communicationRegard.textAlignment = NSTextAlignmentCenter; + _communicationRegard.numberOfLines = 0; + _communicationRegard.font = [UIFont systemFontOfSize:14]; + + } + return _communicationRegard; +} +-(UIButton *)revocationBtuton{ + if (!_revocationBtuton){ + _revocationBtuton = [UIButton new]; + [_revocationBtuton setTitleColor:[DJDKMIMOMColor prohibitionBtutonEssayPrettify] forState:UIControlStateNormal]; + [_revocationBtuton setTitle:YMLocalizedString(@"YUMI_MinePromptWindow2") forState:UIControlStateNormal]; + _revocationBtuton.backgroundColor = UIColorFromRGB(0xE6E6F0); + _revocationBtuton.layer.cornerRadius = kGetScaleWidth(37)/2; + _revocationBtuton.layer.masksToBounds = YES; + [_revocationBtuton addTarget:self action:@selector(backAction) forControlEvents:UIControlEventTouchUpInside]; + } + return _revocationBtuton; +} +-(UIButton *)confirmBtn{ + if (!_confirmBtn){ + _confirmBtn = [UIButton new]; + [_confirmBtn setTitle:YMLocalizedString(@"YUMI_MinePromptWindow3") forState:UIControlStateNormal]; + _confirmBtn.layer.cornerRadius = kGetScaleWidth(37)/2; + _confirmBtn.layer.masksToBounds = YES; + UIImage *image = [UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify],[DJDKMIMOMColor acknowledgementBtutonObliquityMiddlePrettify],[DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(kGetScaleWidth(110), kGetScaleWidth(37))]; + [_confirmBtn setBackgroundImage:image forState:UIControlStateNormal]; + [_confirmBtn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + [_confirmBtn addTarget:self action:@selector(acknowledgementPerformance) forControlEvents:UIControlEventTouchUpInside]; + } + return _confirmBtn; +} +@end diff --git a/YuMi/Modules/YMMine/View/Guild/View/Cell/GuildList/YUMIManeUnionStatementElement.h b/YuMi/Modules/YMMine/View/Guild/View/Cell/GuildList/YUMIManeUnionStatementElement.h new file mode 100644 index 00000000..dcb1d3b1 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/Cell/GuildList/YUMIManeUnionStatementElement.h @@ -0,0 +1,28 @@ +// +// YUMIManeUnionStatementElement.h +// YuMi +// +// Created by YuMi on 2022/10/11. +// + +#import +#import "YUMIManeUnionStatementMatrix.h" + +NS_ASSUME_NONNULL_BEGIN +@protocol FBCManeUnionStatementElementRepresendtation + +-(void)demandPerformanceAboutMtowardsrix:(id)guildMatrix; + +@end + +@interface YUMIManeUnionStatementElement : UITableViewCell +@property(nonatomic,strong)YUMIManeUnionStatementMatrix *guildMatrix; +@property(nonatomic,strong)YUMIManeUnionStatementMatrix *hentiretyMatrix; +@property (nonatomic,assign) NSInteger rateFigure; +@property (nonatomic,weak) id delegate; +@property (nonatomic,assign) BOOL isFromCorridor; +-(void)setAplictowardsionlyBtutonGenre:(BOOL)is; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/View/Cell/GuildList/YUMIManeUnionStatementElement.m b/YuMi/Modules/YMMine/View/Guild/View/Cell/GuildList/YUMIManeUnionStatementElement.m new file mode 100644 index 00000000..ca9667a4 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/Cell/GuildList/YUMIManeUnionStatementElement.m @@ -0,0 +1,319 @@ +// +// YUMIManeUnionStatementElement.m +// YuMi +// +// Created by YuMi on 2022/10/11. +// + +#import "YUMIManeUnionStatementElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "UIImage+Utils.h" +#import "NetIndicateRegard.h" +#import "XNDJTBWGLoadingTool.h" +@interface YUMIManeUnionStatementElement() +@property (nonatomic,strong) UIImageView *rateingFigure; +@property (nonatomic,strong) UILabel *rateingTilte; +@property (nonatomic,strong) UILabel *constituteSequencignation; +@property (nonatomic,strong) UILabel *chamberIdSequencignation; +@property (nonatomic,strong) NetIndicateRegard *guildFigure; +@property (nonatomic,strong) NetIndicateRegard *intelligenceFigure; +@property (nonatomic,strong) UIButton *applyBtuton; +@end + +@implementation YUMIManeUnionStatementElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.selectionStyle = UITableViewCellSelectionStyleNone; + self.backgroundColor = [UIColor clearColor]; + [self.contentView addSubview:self.rateingFigure]; + [self.contentView addSubview:self.rateingTilte]; + [self.contentView addSubview:self.intelligenceFigure]; + [self.contentView addSubview:self.constituteSequencignation]; + [self.contentView addSubview:self.chamberIdSequencignation]; + [self.contentView addSubview:self.guildFigure]; + [self.contentView addSubview:self.applyBtuton]; +} +- (void)initChildLyRestrictions { + [self.rateingFigure mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.mas_equalTo(kGetScaleWidth(22)); + make.left.mas_equalTo(kGetScaleWidth(12)); + make.centerY.equalTo(self.contentView); + }]; + [self.intelligenceFigure mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.mas_equalTo(kGetScaleWidth(40)); + make.left.equalTo(self.rateingFigure.mas_right).mas_offset(kGetScaleWidth(10)); + make.centerY.equalTo(self.contentView); + }]; + [self.rateingTilte mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.equalTo(self.intelligenceFigure); + make.centerX.equalTo(self.rateingFigure); + }]; + + [self.guildFigure mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.mas_equalTo(kGetScaleWidth(29)); + make.right.mas_equalTo(-kGetScaleWidth(91)); + make.centerY.equalTo(self.contentView); + }]; + [self.applyBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(kGetScaleWidth(70)); + make.height.mas_equalTo(kGetScaleWidth(25)); + make.centerY.equalTo(self.contentView); + make.right.mas_equalTo(-kGetScaleWidth(15)); + }]; +} +-(void)setAplictowardsionlyBtutonGenre:(BOOL)is{ + if(self.guildMatrix == nil){ + switch (_hentiretyMatrix.hallBtnStatus) { + case 0: + { + _applyBtuton.hidden = YES; + break; + } + case 1: + { + [_applyBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + _applyBtuton.backgroundColor = [UIColor clearColor]; + [_applyBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + [_applyBtuton setTitle:YMLocalizedString(@"YUMI_MineGuildListCell0") forState:UIControlStateNormal]; + _applyBtuton.hidden = NO; + break; + } + case 2: + { + [_applyBtuton setTitle:YMLocalizedString(@"YUMI_MineGuildListCell5") forState:UIControlStateNormal]; + _applyBtuton.backgroundColor = UIColorFromRGB(0xE6E6F0); + [_applyBtuton setTitleColor:UIColorFromRGB(0xB3B3C3) forState:UIControlStateNormal]; + [_applyBtuton setBackgroundImage:nil forState:UIControlStateNormal]; + _applyBtuton.hidden = NO; + break; + } + case 3: + { + [_applyBtuton setTitle:YMLocalizedString(@"YUMI_MineGuildListCell6") forState:UIControlStateNormal]; + _applyBtuton.backgroundColor = UIColorFromRGB(0xFFBC51); + [_applyBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + [_applyBtuton setBackgroundImage:nil forState:UIControlStateNormal]; + _applyBtuton.hidden = NO; + break; + } + default: + break; + } + + + + return; + } + self.applyBtuton.selected = is; +} + +-(void)demandPerformance{ + + if(self.guildMatrix == nil){ + if(self.delegate && [self.delegate respondsToSelector:@selector(demandPerformanceAboutMtowardsrix:)]){ + [self.delegate demandPerformanceAboutMtowardsrix:self.hentiretyMatrix]; + } + + return; + + } + if(self.guildMatrix.applyBtnStatus == 0)return; + if(self.guildMatrix.applyBtnStatus == 2){ + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:YMLocalizedString(@"YUMI_MineGuildListCell2")]; + return; + } + if(self.delegate && [self.delegate respondsToSelector:@selector(demandPerformanceAboutMtowardsrix:)]){ + [self.delegate demandPerformanceAboutMtowardsrix:self.guildMatrix]; + + } + +} +-(void)setHentiretyMatrix:(YUMIManeUnionStatementMatrix *)hentiretyMatrix{ + _hentiretyMatrix = hentiretyMatrix; + _intelligenceFigure.imageUrl = _hentiretyMatrix.ownerAvatar; + _constituteSequencignation.text = _hentiretyMatrix.hallName; + _guildFigure.hidden = YES; + _chamberIdSequencignation.hidden = NO; + _chamberIdSequencignation.text = [NSString stringWithFormat:YMLocalizedString(@"YUMI_MineGuildListCell3"),_hentiretyMatrix.ownerErbanNo]; + [self.constituteSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.bottom.equalTo(self.intelligenceFigure.mas_centerY).mas_offset(-kGetScaleWidth(3.5)); + make.left.equalTo(self.intelligenceFigure.mas_right).mas_offset(kGetScaleWidth(8)); + make.right.mas_equalTo(-kGetScaleWidth(130)); + + }]; + [self.chamberIdSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.equalTo(self.constituteSequencignation); + make.top.equalTo(self.constituteSequencignation.mas_bottom).mas_offset(kGetScaleWidth(7)); + make.height.mas_equalTo(kGetScaleWidth(14)); + }]; + + + switch (_hentiretyMatrix.hallBtnStatus) { + case 0: + { + _applyBtuton.hidden = YES; + break; + } + case 1: + { + [_applyBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + _applyBtuton.backgroundColor = [UIColor clearColor]; + [_applyBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + [_applyBtuton setTitle:YMLocalizedString(@"YUMI_MineGuildListCell0") forState:UIControlStateNormal]; + _applyBtuton.hidden = NO; + break; + } + case 2: + { + [_applyBtuton setTitle:YMLocalizedString(@"YUMI_MineGuildListCell5") forState:UIControlStateNormal]; + _applyBtuton.backgroundColor = UIColorFromRGB(0xE6E6F0); + [_applyBtuton setTitleColor:UIColorFromRGB(0xB3B3C3) forState:UIControlStateNormal]; + [_applyBtuton setBackgroundImage:nil forState:UIControlStateNormal]; + _applyBtuton.hidden = NO; + break; + } + case 3: + { + [_applyBtuton setTitle:YMLocalizedString(@"YUMI_MineGuildListCell6") forState:UIControlStateNormal]; + _applyBtuton.backgroundColor = UIColorFromRGB(0xFFBC51); + [_applyBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + [_applyBtuton setBackgroundImage:nil forState:UIControlStateNormal]; + _applyBtuton.hidden = NO; + break; + } + default: + break; + } + + + +} +-(void)setGuildMatrix:(YUMIManeUnionStatementMatrix *)guildMatrix{ + _guildMatrix = guildMatrix; + _intelligenceFigure.imageUrl = _guildMatrix.avatar; + _constituteSequencignation.text = _guildMatrix.name; + _guildFigure.imageUrl = _guildMatrix.levelIcon; + self.applyBtuton.hidden = NO; + _chamberIdSequencignation.hidden = YES; + [self.constituteSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.equalTo(self.intelligenceFigure); + make.left.equalTo(self.intelligenceFigure.mas_right).mas_offset(kGetScaleWidth(8)); + make.right.mas_equalTo(-kGetScaleWidth(130)); + + }]; + + if(_guildMatrix.applyBtnStatus == 0){ + self.applyBtuton.hidden = YES; + [_guildFigure mas_updateConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(-kGetScaleWidth(15)); + }]; + return; + } + self.applyBtuton.selected = _guildMatrix.applyBtnStatus == 1; +} +-(void)setIsFromCorridor:(BOOL)isFromCorridor{ + _isFromCorridor = isFromCorridor; + if(_isFromCorridor == YES){ + self.applyBtuton.hidden = YES; + [self.guildFigure mas_updateConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(-kGetScaleWidth(15)); + }]; + } + +} +-(void)setRateFigure:(NSInteger)rateFigure{ + _rateFigure = rateFigure; + if (_rateFigure < 3){ + _rateingFigure.hidden = NO; + _rateingTilte.hidden = YES; + _rateingFigure.image = [UIImage imageNamed:@[@"yumi_center_guild_list_one",@"yumi_center_guild_list_two",@"yumi_center_guild_list_three"][_rateFigure]]; + }else{ + _rateingFigure.hidden = YES; + _rateingTilte.hidden = NO; + _rateingTilte.text = [NSString stringWithFormat:@"%ld",_rateFigure+1]; + } +} +-(UIImageView *)rateingFigure{ + if (!_rateingFigure){ + _rateingFigure = [UIImageView new]; + } + return _rateingFigure; +} +- (UILabel *)rateingTilte{ + if (!_rateingTilte){ + _rateingTilte = [UILabel new]; + _rateingTilte.font = [UIFont systemFontOfSize:16 weight:UIFontWeightBold]; + _rateingTilte.textColor = UIColorFromRGB(0x1F1A4E); + } + return _rateingTilte; +} +- (UILabel *)constituteSequencignation{ + if (!_constituteSequencignation){ + _constituteSequencignation = [UILabel new]; + _constituteSequencignation.font = [UIFont systemFontOfSize:15 weight:UIFontWeightMedium]; + _constituteSequencignation.textColor = UIColorFromRGB(0x1F1A4E); + } + return _constituteSequencignation; +} +-(NetIndicateRegard *)guildFigure{ + if (!_guildFigure){ + _guildFigure = [[NetIndicateRegard alloc]init]; + } + return _guildFigure; +} +- (NetIndicateRegard *)intelligenceFigure{ + if (!_intelligenceFigure){ + NetIndicateDisposition *config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceFigure = [[NetIndicateRegard alloc]initWithConfig:config]; + _intelligenceFigure.layer.cornerRadius = kGetScaleWidth(20); + _intelligenceFigure.layer.masksToBounds = YES; + } + return _intelligenceFigure; +} +-(UIButton *)applyBtuton{ + if (!_applyBtuton){ + + UIImage *chooseImage = [UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify],[DJDKMIMOMColor acknowledgementBtutonObliquityMiddlePrettify],[DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(kGetScaleWidth(70), kGetScaleWidth(25))]; + UIImage *noChooseImage = [UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[UIColorFromRGB(0xE6E6F0),UIColorFromRGB(0xE6E6F0),UIColorFromRGB(0xE6E6F0)] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(kGetScaleWidth(70), kGetScaleWidth(25))]; + _applyBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_applyBtuton setTitle:YMLocalizedString(@"YUMI_MineGuildListCell1") forState:UIControlStateNormal]; + _applyBtuton.titleLabel.font = [UIFont systemFontOfSize:12]; + [_applyBtuton setTitleColor:UIColorFromRGB(0x6D6B89) forState:UIControlStateNormal]; + [_applyBtuton setBackgroundImage:chooseImage forState:UIControlStateSelected]; + [_applyBtuton setBackgroundImage:noChooseImage forState:UIControlStateNormal]; + [_applyBtuton setTitle:YMLocalizedString(@"YUMI_MineGuildListCell0") forState:UIControlStateSelected]; + [_applyBtuton setTitle:YMLocalizedString(@"YUMI_MineGuildListCell1") forState:UIControlStateNormal]; + + [_applyBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateSelected]; + [_applyBtuton setTitleColor:UIColorFromRGB(0x6D6B89) forState:UIControlStateNormal]; + [_applyBtuton addTarget:self action:@selector(demandPerformance) forControlEvents:UIControlEventTouchUpInside]; + _applyBtuton.layer.cornerRadius = kGetScaleWidth(25)/2; + _applyBtuton.layer.masksToBounds = YES; + + } + return _applyBtuton; +} + + +- (UILabel *)chamberIdSequencignation { + if (!_chamberIdSequencignation) { + _chamberIdSequencignation = [[UILabel alloc] init]; + _chamberIdSequencignation.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium]; + _chamberIdSequencignation.textColor = [DJDKMIMOMColor prohibitionBtutonEssayPrettify]; + } + return _chamberIdSequencignation; +} + +@end diff --git a/YuMi/Modules/YMMine/View/Guild/View/Cell/Income/YUMIUnionFeatureRevenueTabulationRegardElement.h b/YuMi/Modules/YMMine/View/Guild/View/Cell/Income/YUMIUnionFeatureRevenueTabulationRegardElement.h new file mode 100644 index 00000000..fb890027 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/Cell/Income/YUMIUnionFeatureRevenueTabulationRegardElement.h @@ -0,0 +1,16 @@ +// +// YUMIUnionFeatureRevenueTabulationRegardElement.h +// YuMi +// +// Created by YuMi on 2022/4/11. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class UnionFeatureRevenueConsumerAbstractMatrix; +@interface YUMIUnionFeatureRevenueTabulationRegardElement : UITableViewCell +@property (nonatomic,strong) UnionFeatureRevenueConsumerAbstractMatrix *userInfo; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/View/Cell/Income/YUMIUnionFeatureRevenueTabulationRegardElement.m b/YuMi/Modules/YMMine/View/Guild/View/Cell/Income/YUMIUnionFeatureRevenueTabulationRegardElement.m new file mode 100644 index 00000000..753e7bb0 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/Cell/Income/YUMIUnionFeatureRevenueTabulationRegardElement.m @@ -0,0 +1,175 @@ +// +// YUMIUnionFeatureRevenueTabulationRegardElement.m +// YuMi +// +// Created by YuMi on 2022/4/11. +// + +#import "YUMIUnionFeatureRevenueTabulationRegardElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "NetIndicateRegard.h" + +#import "NSString+Utils.h" +#import "UnionFeatureRevenueReflectionMatrix.h" + +@interface YUMIUnionFeatureRevenueTabulationRegardElement () + +@property (nonatomic,strong) UILabel *rateSequencignation; +@property (nonatomic,strong) NetIndicateRegard *intelligenceportraitIndicateRegard; + + +@property (nonatomic,strong) UILabel *monicerSequencignation; +@property (nonatomic,strong) UILabel *idSequencignation; + +@property (nonatomic,strong) UILabel *revenueSequencignation; +@property (nonatomic,strong) UIButton *arrowIndicateRegard; +@end + +@implementation YUMIUnionFeatureRevenueTabulationRegardElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify]; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.rateSequencignation]; + [self.contentView addSubview:self.intelligenceportraitIndicateRegard]; + + [self.contentView addSubview:self.monicerSequencignation]; + [self.contentView addSubview:self.idSequencignation]; + + [self.contentView addSubview:self.revenueSequencignation]; + [self.contentView addSubview:self.arrowIndicateRegard]; + + +} + +- (void)initChildLyRestrictions { + + [self.rateSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(kGetScaleWidth(54), kGetScaleWidth(17))); + make.left.mas_equalTo(kGetScaleWidth(0)); + make.centerY.equalTo(self.contentView); + }]; + + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.mas_equalTo(kGetScaleWidth(35)); + make.centerY.equalTo(self.contentView); + make.left.equalTo(self.rateSequencignation.mas_right).mas_offset(kGetScaleWidth(6)); + }]; + + [self.monicerSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(kGetScaleWidth(101)); + make.top.equalTo(self.intelligenceportraitIndicateRegard); + make.width.mas_equalTo(kGetScaleWidth(120)); + make.height.mas_equalTo(kGetScaleWidth(14)); + }]; + + [self.idSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.equalTo(self.monicerSequencignation); + make.centerX.equalTo(self.monicerSequencignation); + make.height.mas_equalTo(kGetScaleWidth(14)); + make.top.equalTo(self.monicerSequencignation.mas_bottom).mas_offset(kGetScaleWidth(7)); + }]; + [self.arrowIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.mas_equalTo(kGetScaleWidth(20)); + make.right.mas_equalTo(-kGetScaleWidth(12)); + make.centerY.equalTo(self.contentView); + }]; + [self.revenueSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(-kGetScaleWidth(38)); + make.centerY.equalTo(self.contentView); + make.width.height.mas_equalTo(kGetScaleWidth(116)); + }]; + + +} + +#pragma mark - Getters And Setters +- (void)setUserInfo:(UnionFeatureRevenueConsumerAbstractMatrix *)userInfo { + _userInfo = userInfo; + if (_userInfo) { + self.rateSequencignation.text = _userInfo.rowNum; + self.intelligenceportraitIndicateRegard.imageUrl = _userInfo.avatar; + self.monicerSequencignation.text = _userInfo.nick; + self.idSequencignation.text = [NSString stringWithFormat:@"ID:%@", _userInfo.erbanNo]; + self.revenueSequencignation.text = [NSString acquireDealFigurewithsttri:_userInfo.totalGoldNum]; + } +} + + + +- (UILabel *)rateSequencignation { + if (!_rateSequencignation) { + _rateSequencignation = [[UILabel alloc] init]; + _rateSequencignation.text = @"1"; + _rateSequencignation.font = [UIFont systemFontOfSize:15 weight:UIFontWeightSemibold]; + _rateSequencignation.textAlignment = NSTextAlignmentCenter; + _rateSequencignation.textColor = [DJDKMIMOMColor introjectionEssayPrettify]; + } + return _rateSequencignation; +} + +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _intelligenceportraitIndicateRegard.layer.cornerRadius = kGetScaleWidth(35)/2; + } + return _intelligenceportraitIndicateRegard; +} + + + +- (UILabel *)monicerSequencignation { + if (!_monicerSequencignation) { + _monicerSequencignation = [[UILabel alloc] init]; + _monicerSequencignation.font = [UIFont systemFontOfSize:14 weight:UIFontWeightMedium]; + _monicerSequencignation.textColor = [DJDKMIMOMColor introjectionEssayPrettify]; + _monicerSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _monicerSequencignation; +} + +- (UILabel *)idSequencignation { + if (!_idSequencignation) { + _idSequencignation = [[UILabel alloc] init]; + _idSequencignation.font = [UIFont systemFontOfSize:12]; + _idSequencignation.textAlignment = NSTextAlignmentCenter; + _idSequencignation.textColor = [DJDKMIMOMColor prohibitionBtutonEssayPrettify]; + } + return _idSequencignation; +} + +- (UILabel *)revenueSequencignation { + if (!_revenueSequencignation) { + _revenueSequencignation = [[UILabel alloc] init]; + _revenueSequencignation.font = [UIFont systemFontOfSize:15 weight:UIFontWeightMedium]; + _revenueSequencignation.textColor = [DJDKMIMOMColor introjectionEssayPrettify]; + _revenueSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _revenueSequencignation; +} + +- (UIButton *)arrowIndicateRegard { + if (!_arrowIndicateRegard) { + _arrowIndicateRegard = [[UIButton alloc] init]; + [_arrowIndicateRegard setImage:[UIImage imageNamed:@"yumi_scope_setting_arrow"] forState:UIControlStateNormal]; + } + return _arrowIndicateRegard; +} + + + +@end diff --git a/YuMi/Modules/YMMine/View/Guild/View/Cell/Income/YUMIUnionRevenueReflectionTabulationRegardElement.h b/YuMi/Modules/YMMine/View/Guild/View/Cell/Income/YUMIUnionRevenueReflectionTabulationRegardElement.h new file mode 100644 index 00000000..da1d1c72 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/Cell/Income/YUMIUnionRevenueReflectionTabulationRegardElement.h @@ -0,0 +1,17 @@ +// +// YUMIUnionRevenueReflectionTabulationRegardElement.h +// YuMi +// +// Created by YuMi on 2022/4/11. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class UnionRevenueReflectionConsumerAbstractMatrix; +@interface YUMIUnionRevenueReflectionTabulationRegardElement : UITableViewCell +@property (nonatomic,strong) UnionRevenueReflectionConsumerAbstractMatrix *userInfo; +@property (nonatomic,assign) NSInteger rateDigital; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/View/Cell/Income/YUMIUnionRevenueReflectionTabulationRegardElement.m b/YuMi/Modules/YMMine/View/Guild/View/Cell/Income/YUMIUnionRevenueReflectionTabulationRegardElement.m new file mode 100644 index 00000000..e2640f16 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/Cell/Income/YUMIUnionRevenueReflectionTabulationRegardElement.m @@ -0,0 +1,397 @@ +// +// YUMIUnionRevenueReflectionTabulationRegardElement.m +// YuMi +// +// Created by YuMi on 2022/4/11. +// + +#import "YUMIUnionRevenueReflectionTabulationRegardElement.h" +#import +#import "NetIndicateRegard.h" +#import "DJDKMIMOMColor.h" + +#import "NSString+Utils.h" +#import "UnionRevenueReflectionMatrix.h" + +@interface YUMIUnionRevenueReflectionTabulationRegardElement () +@property (nonatomic,strong) UIStackView *stackView; +@property (nonatomic, strong) UIStackView *revenueSatisfperformanceHierarchyRegard; +@property (nonatomic,strong) UIStackView *incomHierarchyRegard; +@property (nonatomic, strong) UIStackView *presentHierarchyRegard; +@property (nonatomic,strong) UILabel *rateSequencignation; +@property (nonatomic,strong) UIStackView *intelligenceportraitRegard; +@property (nonatomic,strong) NetIndicateRegard *intelligenceportraitIndicateRegard; +@property (nonatomic,strong) UILabel *idSequencignation; +@property (nonatomic,strong) UIStackView *chamberRevenueHierarchyRegard; +@property (nonatomic,strong) UILabel *chamberRevenueSequencignation; +@property (nonatomic,strong) UILabel *chamberRevenueTangerineSequencignation; +@property (nonatomic,strong) UIStackView *ordinaryPresentHierarchyRegard; +@property (nonatomic,strong) UILabel *ordinaryPresentSequencignation; +@property (nonatomic,strong) UILabel *ordinaryPresenttangerineSequencignation; +@property (nonatomic,strong) UIStackView *impactPresentHierarchyRegard; +@property (nonatomic,strong) UILabel *impactPresentSequencignation; +@property (nonatomic,strong) UILabel *impactPresentTangerineSequencignation; +@property (nonatomic, strong) UIStackView *dischargePresentComputationHierarchyRegard; +@property (nonatomic, strong) UILabel *dischargePresentComputationTangerineSequencignation; +@property (nonatomic, strong) UILabel *dischargePresentComputationSequencignation; +@property (nonatomic, strong) UIStackView *NewUserGiftCountStackView; +@property (nonatomic, strong) UILabel *NewUserGiftCountCoinLabel; +@property (nonatomic, strong) UILabel *NewUserGiftCountLabel; + +@end + +@implementation YUMIUnionRevenueReflectionTabulationRegardElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify]; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.stackView]; + + [self.stackView addArrangedSubview:self.rateSequencignation]; + [self.stackView addArrangedSubview:self.intelligenceportraitRegard]; + [self.stackView addArrangedSubview:self.revenueSatisfperformanceHierarchyRegard]; + + [self.intelligenceportraitRegard addArrangedSubview:self.intelligenceportraitIndicateRegard]; + [self.intelligenceportraitRegard addArrangedSubview:self.idSequencignation]; + + [self.revenueSatisfperformanceHierarchyRegard addArrangedSubview:self.incomHierarchyRegard]; + [self.revenueSatisfperformanceHierarchyRegard addArrangedSubview:self.presentHierarchyRegard]; + + [self.incomHierarchyRegard addArrangedSubview:self.chamberRevenueHierarchyRegard]; + [self.incomHierarchyRegard addArrangedSubview:self.ordinaryPresentHierarchyRegard]; + [self.incomHierarchyRegard addArrangedSubview:self.impactPresentHierarchyRegard]; + + [self.chamberRevenueHierarchyRegard addArrangedSubview:self.chamberRevenueTangerineSequencignation]; + [self.chamberRevenueHierarchyRegard addArrangedSubview:self.chamberRevenueSequencignation]; + + [self.ordinaryPresentHierarchyRegard addArrangedSubview:self.ordinaryPresenttangerineSequencignation]; + [self.ordinaryPresentHierarchyRegard addArrangedSubview:self.ordinaryPresentSequencignation]; + + [self.impactPresentHierarchyRegard addArrangedSubview:self.impactPresentTangerineSequencignation]; + [self.impactPresentHierarchyRegard addArrangedSubview:self.impactPresentSequencignation]; + + [self.presentHierarchyRegard addArrangedSubview:self.dischargePresentComputationHierarchyRegard]; + [self.presentHierarchyRegard addArrangedSubview:self.NewUserGiftCountStackView]; + UILabel *emptyView = [UILabel new]; + [self.presentHierarchyRegard addArrangedSubview:emptyView]; + [emptyView mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_greaterThanOrEqualTo(10); + }]; + + [self.dischargePresentComputationHierarchyRegard addArrangedSubview:self.dischargePresentComputationTangerineSequencignation]; + [self.dischargePresentComputationHierarchyRegard addArrangedSubview:self.dischargePresentComputationSequencignation]; + [self.NewUserGiftCountStackView addArrangedSubview:self.NewUserGiftCountCoinLabel]; + [self.NewUserGiftCountStackView addArrangedSubview:self.NewUserGiftCountLabel]; +} + +- (void)initChildLyRestrictions { + [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.bottom.mas_equalTo(self.contentView); + }]; + + [self.rateSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(52); + make.height.mas_equalTo(50); + }]; + + [self.intelligenceportraitRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(50); + make.height.mas_equalTo(65); + }]; + + [self.revenueSatisfperformanceHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(self.stackView); + }]; + + [self.incomHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(self.revenueSatisfperformanceHierarchyRegard); + }]; + [self.presentHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(self.revenueSatisfperformanceHierarchyRegard); + }]; + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(50); + }]; +} + +#pragma mark - Getters And Setters +- (void)setRateDigital:(NSInteger)rateDigital { + _rateDigital = rateDigital; + self.rateSequencignation.text = [NSString stringWithFormat:@"%ld", _rateDigital+1]; +} + +- (void)setUserInfo:(UnionRevenueReflectionConsumerAbstractMatrix *)userInfo { + _userInfo = userInfo; + if (_userInfo) { + self.intelligenceportraitIndicateRegard.imageUrl = _userInfo.hallAvatar; + self.idSequencignation.text = _userInfo.hallName; + self.chamberRevenueTangerineSequencignation.text = [NSString stringWithFormat:@"+%@", [NSString acquireDealFigurewithsttri:_userInfo.roomIncome]]; + self.ordinaryPresenttangerineSequencignation.text = [NSString stringWithFormat:@"+%@", [NSString acquireDealFigurewithsttri:_userInfo.normalGiftIncome]]; + self.impactPresentTangerineSequencignation.text = [NSString stringWithFormat:@"+%@", [NSString acquireDealFigurewithsttri:_userInfo.bagIncome]]; + self.dischargePresentComputationTangerineSequencignation.text = [NSString stringWithFormat:@"+%@", [NSString acquireDealFigurewithsttri:_userInfo.giftUv]]; + self.NewUserGiftCountCoinLabel.text = [NSString stringWithFormat:@"+%@", [NSString acquireDealFigurewithsttri:_userInfo.userSendGiftNum]]; + } +} + +- (UIStackView *)stackView { + if (!_stackView) { + _stackView = [[UIStackView alloc] init]; + _stackView.axis = UILayoutConstraintAxisHorizontal; + _stackView.distribution = UIStackViewDistributionFill; + _stackView.alignment = UIStackViewAlignmentCenter; + _stackView.spacing = 10; + } + return _stackView; +} + +- (UILabel *)rateSequencignation { + if (!_rateSequencignation) { + _rateSequencignation = [[UILabel alloc] init]; + _rateSequencignation.font = [UIFont systemFontOfSize:15]; + _rateSequencignation.text = @"1"; + _rateSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _rateSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _rateSequencignation; +} + +- (UIStackView *)intelligenceportraitRegard { + if (!_intelligenceportraitRegard) { + _intelligenceportraitRegard = [[UIStackView alloc] init]; + _intelligenceportraitRegard.axis = UILayoutConstraintAxisVertical; + _intelligenceportraitRegard.distribution = UIStackViewDistributionFillProportionally; + _intelligenceportraitRegard.alignment = UIStackViewAlignmentFill; + _intelligenceportraitRegard.spacing = 3; + } + return _intelligenceportraitRegard; +} + + +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _intelligenceportraitIndicateRegard.layer.cornerRadius = 8; + } + return _intelligenceportraitIndicateRegard; +} +- (UILabel *)idSequencignation { + if (!_idSequencignation) { + _idSequencignation = [[UILabel alloc] init]; + _idSequencignation.font = [UIFont systemFontOfSize:11]; + _idSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _idSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _idSequencignation; +} + +- (UIStackView *)revenueSatisfperformanceHierarchyRegard { + if (!_revenueSatisfperformanceHierarchyRegard) { + _revenueSatisfperformanceHierarchyRegard = [[UIStackView alloc] init]; + _revenueSatisfperformanceHierarchyRegard.axis = UILayoutConstraintAxisVertical; + _revenueSatisfperformanceHierarchyRegard.distribution = UIStackViewDistributionFillEqually; + _revenueSatisfperformanceHierarchyRegard.alignment = UIStackViewAlignmentCenter; + _revenueSatisfperformanceHierarchyRegard.spacing = 0; + } + return _revenueSatisfperformanceHierarchyRegard; +} + + +- (UIStackView *)presentHierarchyRegard { + if (!_presentHierarchyRegard) { + _presentHierarchyRegard = [[UIStackView alloc] init]; + _presentHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _presentHierarchyRegard.distribution = UIStackViewDistributionFillEqually; + _presentHierarchyRegard.alignment = UIStackViewAlignmentCenter; + _presentHierarchyRegard.spacing = 10; + } + return _presentHierarchyRegard; +} + + +- (UIStackView *)incomHierarchyRegard { + if (!_incomHierarchyRegard) { + _incomHierarchyRegard = [[UIStackView alloc] init]; + _incomHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _incomHierarchyRegard.distribution = UIStackViewDistributionFillEqually; + _incomHierarchyRegard.alignment = UIStackViewAlignmentCenter; + _incomHierarchyRegard.spacing = 10; + } + return _incomHierarchyRegard; +} + +- (UIStackView *)chamberRevenueHierarchyRegard { + if (!_chamberRevenueHierarchyRegard) { + _chamberRevenueHierarchyRegard = [[UIStackView alloc] init]; + _chamberRevenueHierarchyRegard.axis = UILayoutConstraintAxisVertical; + _chamberRevenueHierarchyRegard.distribution = UIStackViewDistributionFill; + _chamberRevenueHierarchyRegard.alignment = UIStackViewAlignmentFill; + _chamberRevenueHierarchyRegard.spacing = 3; + } + return _chamberRevenueHierarchyRegard; +} + +- (UILabel *)chamberRevenueSequencignation { + if (!_chamberRevenueSequencignation) { + _chamberRevenueSequencignation = [[UILabel alloc] init]; + _chamberRevenueSequencignation.text = YMLocalizedString(@"YUMI_Guild_Income_Record_Table_View_Cell_0"); + _chamberRevenueSequencignation.font = [UIFont systemFontOfSize:12]; + _chamberRevenueSequencignation.textColor = [DJDKMIMOMColor instantEssayPrettify]; + _chamberRevenueSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _chamberRevenueSequencignation; +} + +- (UILabel *)chamberRevenueTangerineSequencignation { + if (!_chamberRevenueTangerineSequencignation) { + _chamberRevenueTangerineSequencignation = [[UILabel alloc] init]; + _chamberRevenueTangerineSequencignation.font = [UIFont boldSystemFontOfSize:12]; + _chamberRevenueTangerineSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _chamberRevenueTangerineSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _chamberRevenueTangerineSequencignation; +} + + +- (UIStackView *)ordinaryPresentHierarchyRegard { + if (!_ordinaryPresentHierarchyRegard) { + _ordinaryPresentHierarchyRegard = [[UIStackView alloc] init]; + _ordinaryPresentHierarchyRegard.axis = UILayoutConstraintAxisVertical; + _ordinaryPresentHierarchyRegard.distribution = UIStackViewDistributionFill; + _ordinaryPresentHierarchyRegard.alignment = UIStackViewAlignmentFill; + _ordinaryPresentHierarchyRegard.spacing = 3; + } + return _ordinaryPresentHierarchyRegard; +} + +- (UILabel *)ordinaryPresentSequencignation { + if (!_ordinaryPresentSequencignation) { + _ordinaryPresentSequencignation = [[UILabel alloc] init]; + _ordinaryPresentSequencignation.text = YMLocalizedString(@"YUMI_Guild_Income_Record_Table_View_Cell_1"); + _ordinaryPresentSequencignation.font = [UIFont systemFontOfSize:12]; + _ordinaryPresentSequencignation.textColor = [DJDKMIMOMColor instantEssayPrettify]; + _ordinaryPresentSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _ordinaryPresentSequencignation; +} + +- (UILabel *)ordinaryPresenttangerineSequencignation { + if (!_ordinaryPresenttangerineSequencignation) { + _ordinaryPresenttangerineSequencignation = [[UILabel alloc] init]; + _ordinaryPresenttangerineSequencignation.font = [UIFont boldSystemFontOfSize:12]; + _ordinaryPresenttangerineSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _ordinaryPresenttangerineSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _ordinaryPresenttangerineSequencignation; +} + + +- (UIStackView *)impactPresentHierarchyRegard { + if (!_impactPresentHierarchyRegard) { + _impactPresentHierarchyRegard = [[UIStackView alloc] init]; + _impactPresentHierarchyRegard.axis = UILayoutConstraintAxisVertical; + _impactPresentHierarchyRegard.distribution = UIStackViewDistributionFill; + _impactPresentHierarchyRegard.alignment = UIStackViewAlignmentFill; + _impactPresentHierarchyRegard.spacing = 3; + } + return _impactPresentHierarchyRegard; +} + +- (UILabel *)impactPresentSequencignation { + if (!_impactPresentSequencignation) { + _impactPresentSequencignation = [[UILabel alloc] init]; + _impactPresentSequencignation.text = YMLocalizedString(@"YUMI_Guild_Income_Record_Table_View_Cell_2"); + _impactPresentSequencignation.font = [UIFont systemFontOfSize:12]; + _impactPresentSequencignation.textColor = [DJDKMIMOMColor instantEssayPrettify]; + _impactPresentSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _impactPresentSequencignation; +} + +- (UILabel *)impactPresentTangerineSequencignation { + if (!_impactPresentTangerineSequencignation) { + _impactPresentTangerineSequencignation = [[UILabel alloc] init]; + _impactPresentTangerineSequencignation.font = [UIFont boldSystemFontOfSize:12]; + _impactPresentTangerineSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _impactPresentTangerineSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _impactPresentTangerineSequencignation; +} + +- (UIStackView *)dischargePresentComputationHierarchyRegard { + if (!_dischargePresentComputationHierarchyRegard) { + _dischargePresentComputationHierarchyRegard = [[UIStackView alloc] init]; + _dischargePresentComputationHierarchyRegard.axis = UILayoutConstraintAxisVertical; + _dischargePresentComputationHierarchyRegard.distribution = UIStackViewDistributionFill; + _dischargePresentComputationHierarchyRegard.alignment = UIStackViewAlignmentFill; + _dischargePresentComputationHierarchyRegard.spacing = 3; + } + return _dischargePresentComputationHierarchyRegard; +} + +- (UILabel *)dischargePresentComputationSequencignation { + if (!_dischargePresentComputationSequencignation) { + _dischargePresentComputationSequencignation = [[UILabel alloc] init]; + _dischargePresentComputationSequencignation.text = YMLocalizedString(@"YUMI_Guild_Income_Record_Table_View_Cell_3"); + _dischargePresentComputationSequencignation.font = [UIFont systemFontOfSize:12]; + _dischargePresentComputationSequencignation.textColor = [DJDKMIMOMColor instantEssayPrettify]; + _dischargePresentComputationSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _dischargePresentComputationSequencignation; +} + +- (UILabel *)dischargePresentComputationTangerineSequencignation { + if (!_dischargePresentComputationTangerineSequencignation) { + _dischargePresentComputationTangerineSequencignation = [[UILabel alloc] init]; + _dischargePresentComputationTangerineSequencignation.font = [UIFont boldSystemFontOfSize:12]; + _dischargePresentComputationTangerineSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _dischargePresentComputationTangerineSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _dischargePresentComputationTangerineSequencignation; +} + +- (UIStackView *)NewUserGiftCountStackView { + if (!_NewUserGiftCountStackView) { + _NewUserGiftCountStackView = [[UIStackView alloc] init]; + _NewUserGiftCountStackView.axis = UILayoutConstraintAxisVertical; + _NewUserGiftCountStackView.distribution = UIStackViewDistributionFill; + _NewUserGiftCountStackView.alignment = UIStackViewAlignmentFill; + _NewUserGiftCountStackView.spacing = 3; + } + return _NewUserGiftCountStackView; +} + +- (UILabel *)NewUserGiftCountLabel { + if (!_NewUserGiftCountLabel) { + _NewUserGiftCountLabel = [[UILabel alloc] init]; + _NewUserGiftCountLabel.text = YMLocalizedString(@"YUMI_Guild_Income_Record_Table_View_Cell_4"); + _NewUserGiftCountLabel.font = [UIFont systemFontOfSize:12]; + _NewUserGiftCountLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + _NewUserGiftCountLabel.textAlignment = NSTextAlignmentCenter; + } + return _NewUserGiftCountLabel; +} + +- (UILabel *)NewUserGiftCountCoinLabel { + if (!_NewUserGiftCountCoinLabel) { + _NewUserGiftCountCoinLabel = [[UILabel alloc] init]; + _NewUserGiftCountCoinLabel.font = [UIFont boldSystemFontOfSize:12]; + _NewUserGiftCountCoinLabel.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _NewUserGiftCountCoinLabel.textAlignment = NSTextAlignmentCenter; + } + return _NewUserGiftCountCoinLabel; +} + +@end diff --git a/YuMi/Modules/YMMine/View/Guild/View/Cell/Income/YUMIUnionRevenueSpecificAssembletionRegardElement.h b/YuMi/Modules/YMMine/View/Guild/View/Cell/Income/YUMIUnionRevenueSpecificAssembletionRegardElement.h new file mode 100644 index 00000000..1581fa85 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/Cell/Income/YUMIUnionRevenueSpecificAssembletionRegardElement.h @@ -0,0 +1,17 @@ +// +// YUMIUnionRevenueSpecificAssembletionRegardElement.h +// YuMi +// +// Created by YuMi on 2022/4/12. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class UnionRevenueSpecificMatrix; +@interface YUMIUnionRevenueSpecificAssembletionRegardElement : UICollectionViewCell + +@property (nonatomic,strong) UnionRevenueSpecificMatrix *revenueSpecificAbstract; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/View/Cell/Income/YUMIUnionRevenueSpecificAssembletionRegardElement.m b/YuMi/Modules/YMMine/View/Guild/View/Cell/Income/YUMIUnionRevenueSpecificAssembletionRegardElement.m new file mode 100644 index 00000000..2845b1bb --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/Cell/Income/YUMIUnionRevenueSpecificAssembletionRegardElement.m @@ -0,0 +1,144 @@ +// +// YUMIUnionRevenueSpecificAssembletionRegardElement.m +// YuMi +// +// Created by YuMi on 2022/4/12. +// + +#import "YUMIUnionRevenueSpecificAssembletionRegardElement.h" +#import +#import "NetIndicateRegard.h" +#import "DJDKMIMOMColor.h" +#import "UnionRevenueSpecificMatrix.h" + +@interface YUMIUnionRevenueSpecificAssembletionRegardElement () +@property (nonatomic,strong) NetIndicateRegard *intelligenceportraitIndicateRegard; +@property (nonatomic,strong) UILabel *presentConstituteSequencignation; +@property (nonatomic,strong) UILabel *numberLabel; +@property (nonatomic,strong) UIStackView *valencyHierarchyRegard; +@property (nonatomic,strong) UILabel *bWSttawberrySequencignation; +@property (nonatomic,strong) UILabel *presentValencySequencignation; + +@end + +@implementation YUMIUnionRevenueSpecificAssembletionRegardElement + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method + +- (void)initSubViews { + [self.contentView addSubview:self.intelligenceportraitIndicateRegard]; + [self.contentView addSubview:self.presentConstituteSequencignation]; + [self.contentView addSubview:self.valencyHierarchyRegard]; + [self.contentView addSubview:self.numberLabel]; + + [self.valencyHierarchyRegard addArrangedSubview:self.presentValencySequencignation]; + [self.valencyHierarchyRegard addArrangedSubview:self.bWSttawberrySequencignation]; +} + +- (void)initChildLyRestrictions { + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(7); + make.left.right.mas_equalTo(self).inset(18); + make.height.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_width); + }]; + + [self.presentConstituteSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_bottom).offset(5); + make.centerX.mas_equalTo(self.contentView); + }]; + + [self.valencyHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.presentConstituteSequencignation.mas_bottom).offset(2); + make.centerX.mas_equalTo(self.contentView); + }]; + + [self.numberLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.presentValencySequencignation.mas_bottom).offset(2); + make.centerX.mas_equalTo(self.contentView); + }]; +} + +#pragma mark - Getters And Setters +- (void)setRevenueSpecificAbstract:(UnionRevenueSpecificMatrix *)revenueSpecificAbstract { + _revenueSpecificAbstract = revenueSpecificAbstract; + if (_revenueSpecificAbstract) { + self.intelligenceportraitIndicateRegard.imageUrl = _revenueSpecificAbstract.picUrl; + self.presentConstituteSequencignation.text = _revenueSpecificAbstract.giftName; + self.presentValencySequencignation.text = _revenueSpecificAbstract.goldPrice; + self.numberLabel.text = [NSString stringWithFormat:@"X%@", _revenueSpecificAbstract.giftNum]; + } +} + +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _intelligenceportraitIndicateRegard.layer.cornerRadius = 38/2; + _intelligenceportraitIndicateRegard.layer.borderColor = [DJDKMIMOMColor aplictowardsionMainPrettify].CGColor; + } + return _intelligenceportraitIndicateRegard; +} + +- (UILabel *)presentConstituteSequencignation { + if (!_presentConstituteSequencignation) { + _presentConstituteSequencignation = [[UILabel alloc] init]; + _presentConstituteSequencignation.font = [UIFont systemFontOfSize:14]; + _presentConstituteSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _presentConstituteSequencignation; +} + +- (UILabel *)presentValencySequencignation { + if (!_presentValencySequencignation) { + _presentValencySequencignation = [[UILabel alloc] init]; + _presentValencySequencignation.font = [UIFont systemFontOfSize:13]; + _presentValencySequencignation.textColor = [DJDKMIMOMColor aplictowardsionMainPrettify]; + } + return _presentValencySequencignation; +} + +- (UIStackView *)valencyHierarchyRegard { + if (!_valencyHierarchyRegard) { + _valencyHierarchyRegard = [[UIStackView alloc] init]; + _valencyHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _valencyHierarchyRegard.distribution = UIStackViewDistributionFill; + _valencyHierarchyRegard.alignment = UIStackViewAlignmentFill; + _valencyHierarchyRegard.spacing = 2; + } + return _valencyHierarchyRegard; +} + + +- (UILabel *)bWSttawberrySequencignation { + if (!_bWSttawberrySequencignation) { + _bWSttawberrySequencignation = [[UILabel alloc] init]; + _bWSttawberrySequencignation.text = YMLocalizedString(@"YUMI_Guild_Income_Detail_Collection_View_Cell_0"); + _bWSttawberrySequencignation.font = [UIFont systemFontOfSize:13]; + _bWSttawberrySequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _bWSttawberrySequencignation; +} + +- (UILabel *)numberLabel { + if (!_numberLabel) { + _numberLabel = [[UILabel alloc] init]; + _numberLabel.font = [UIFont systemFontOfSize:13]; + _numberLabel.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _numberLabel; +} + + +@end diff --git a/YuMi/Modules/YMMine/View/Guild/View/Cell/Income/YUMIUnionSingleChamberRevenueTabulationRegardElement.h b/YuMi/Modules/YMMine/View/Guild/View/Cell/Income/YUMIUnionSingleChamberRevenueTabulationRegardElement.h new file mode 100644 index 00000000..38bdc808 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/Cell/Income/YUMIUnionSingleChamberRevenueTabulationRegardElement.h @@ -0,0 +1,17 @@ +// +// YUMIUnionSingleChamberRevenueTabulationRegardElement.h +// YuMi +// +// Created by YuMi on 2022/4/11. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class UnionFeatureRevenueConsumerAbstractMatrix; +@interface YUMIUnionSingleChamberRevenueTabulationRegardElement : UITableViewCell +@property (nonatomic,strong) UnionFeatureRevenueConsumerAbstractMatrix *userInfo; +@property (nonatomic,assign) NSInteger rateDigital; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/View/Cell/Income/YUMIUnionSingleChamberRevenueTabulationRegardElement.m b/YuMi/Modules/YMMine/View/Guild/View/Cell/Income/YUMIUnionSingleChamberRevenueTabulationRegardElement.m new file mode 100644 index 00000000..6bb311a4 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/Cell/Income/YUMIUnionSingleChamberRevenueTabulationRegardElement.m @@ -0,0 +1,189 @@ +// +// YUMIUnionSingleChamberRevenueTabulationRegardElement.m +// YuMi +// +// Created by YuMi on 2022/4/11. +// 个播收入 + +#import "YUMIUnionSingleChamberRevenueTabulationRegardElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "NetIndicateRegard.h" + +#import "NSString+Utils.h" +#import "UnionFeatureRevenueReflectionMatrix.h" + +@interface YUMIUnionSingleChamberRevenueTabulationRegardElement () + +@property (nonatomic,strong) UILabel *rateSequencignation; +@property (nonatomic,strong) NetIndicateRegard *intelligenceportraitIndicateRegard; +@property (nonatomic,strong) NetIndicateRegard *corridorIntelligenceportraitIndicateRegard; +@property (nonatomic,strong) UILabel *monicerSequencignation; +@property (nonatomic,strong) UILabel *corridorMonicerRegard; + +@property (nonatomic,strong) UILabel *chamberRevenueSequencignation; +@property (nonatomic,strong) UIView *burlywoodRegard; +@end + +@implementation YUMIUnionSingleChamberRevenueTabulationRegardElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify]; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.rateSequencignation]; + [self.contentView addSubview:self.intelligenceportraitIndicateRegard]; + [self.contentView addSubview:self.monicerSequencignation]; + [self.contentView addSubview:self.chamberRevenueSequencignation]; + [self.contentView addSubview:self.corridorIntelligenceportraitIndicateRegard]; + [self.contentView addSubview:self.corridorMonicerRegard]; + [self.contentView addSubview:self.burlywoodRegard]; +} + +- (void)initChildLyRestrictions { + + [self.rateSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(kGetScaleWidth(0)); + make.width.mas_equalTo(kGetScaleWidth(48)); + make.centerY.equalTo(self.contentView); + }]; + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.mas_equalTo(kGetScaleWidth(35)); + make.centerY.equalTo(self.contentView); + make.left.mas_equalTo(kGetScaleWidth(50)); + }]; + [self.monicerSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.equalTo(self.intelligenceportraitIndicateRegard); + make.top.equalTo(self.intelligenceportraitIndicateRegard.mas_bottom).mas_offset(kGetScaleWidth(6)); + make.width.mas_equalTo(kGetScaleWidth(56)); + }]; + [self.corridorMonicerRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(-kGetScaleWidth(5)); + make.centerY.equalTo(self.contentView); + make.left.equalTo(self.corridorIntelligenceportraitIndicateRegard.mas_right).mas_offset(kGetScaleWidth(6)); + + }]; + [self.corridorIntelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.width.mas_equalTo(kGetScaleWidth(35)); + make.centerY.equalTo(self.contentView); + make.left.equalTo(self.contentView).mas_offset(kGetScaleWidth(260)); + }]; + [self.chamberRevenueSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(kGetScaleWidth(97)); + make.centerY.equalTo(self.contentView); + make.right.equalTo(self.corridorIntelligenceportraitIndicateRegard.mas_left).mas_offset(-kGetScaleWidth(5)); + make.width.mas_greaterThanOrEqualTo(10); + }]; + [self.burlywoodRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.bottom.equalTo(self.contentView); + make.left.equalTo(self.rateSequencignation); + make.right.equalTo(self.corridorMonicerRegard); + make.height.mas_equalTo(kGetScaleWidth(1)); + }]; + +} + +#pragma mark - Getters And Setters +- (void)setUserInfo:(UnionFeatureRevenueConsumerAbstractMatrix *)userInfo { + _userInfo = userInfo; + if (_userInfo) { + self.intelligenceportraitIndicateRegard.imageUrl = _userInfo.avatar; + self.monicerSequencignation.text = _userInfo.nick; + self.corridorIntelligenceportraitIndicateRegard.imageUrl = _userInfo.hallAvatar; + self.corridorMonicerRegard.text = _userInfo.hallName; + self.chamberRevenueSequencignation.text = _userInfo.income; + } +} + +- (void)setRateDigital:(NSInteger)rateDigital { + _rateDigital = rateDigital; + self.rateSequencignation.text = [NSString stringWithFormat:@"%ld", _rateDigital+1]; +} + + + +- (UILabel *)rateSequencignation { + if (!_rateSequencignation) { + _rateSequencignation = [[UILabel alloc] init]; + _rateSequencignation.text = @"1"; + _rateSequencignation.font = [UIFont systemFontOfSize:14 weight:UIFontWeightSemibold]; + _rateSequencignation.textAlignment = NSTextAlignmentCenter; + _rateSequencignation.textColor = [DJDKMIMOMColor introjectionEssayPrettify]; + } + return _rateSequencignation; +} + +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _intelligenceportraitIndicateRegard.layer.cornerRadius = kGetScaleWidth(35)/2; + } + return _intelligenceportraitIndicateRegard; +} + + + +- (UILabel *)monicerSequencignation { + if (!_monicerSequencignation) { + _monicerSequencignation = [[UILabel alloc] init]; + _monicerSequencignation.font = [UIFont systemFontOfSize:12]; + _monicerSequencignation.textColor = [DJDKMIMOMColor introjectionEssayPrettify]; + _monicerSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _monicerSequencignation; +} + + + + +- (UILabel *)chamberRevenueSequencignation { + if (!_chamberRevenueSequencignation) { + _chamberRevenueSequencignation = [[UILabel alloc] init]; + _chamberRevenueSequencignation.font = [UIFont systemFontOfSize:14 weight:UIFontWeightMedium]; + _chamberRevenueSequencignation.textColor = [DJDKMIMOMColor introjectionEssayPrettify]; + _chamberRevenueSequencignation.textAlignment = NSTextAlignmentLeft; + } + return _chamberRevenueSequencignation; +} + +- (NetIndicateRegard *)corridorIntelligenceportraitIndicateRegard{ + if (!_corridorIntelligenceportraitIndicateRegard){ + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _corridorIntelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _corridorIntelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _corridorIntelligenceportraitIndicateRegard.layer.cornerRadius = kGetScaleWidth(5); + } + return _corridorIntelligenceportraitIndicateRegard; +} + +- (UILabel *)corridorMonicerRegard { + if (!_corridorMonicerRegard) { + _corridorMonicerRegard = [[UILabel alloc] init]; + _corridorMonicerRegard.font = [UIFont systemFontOfSize:13]; + _corridorMonicerRegard.textColor = [DJDKMIMOMColor introjectionEssayPrettify]; + } + return _corridorMonicerRegard; +} + +- (UIView *)burlywoodRegard{ + if (!_burlywoodRegard){ + _burlywoodRegard = [UIView new]; + _burlywoodRegard.backgroundColor = UIColorFromRGB(0xF7F7F7); + } + return _burlywoodRegard; +} +@end diff --git a/YuMi/Modules/YMMine/View/Guild/View/Cell/Setting/YUMIManeUnionExecutivePerTabulationRegardElement.h b/YuMi/Modules/YMMine/View/Guild/View/Cell/Setting/YUMIManeUnionExecutivePerTabulationRegardElement.h new file mode 100644 index 00000000..27d7c2e1 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/Cell/Setting/YUMIManeUnionExecutivePerTabulationRegardElement.h @@ -0,0 +1,23 @@ +// +// YUMIManeUnionExecutivePerTabulationRegardElement.h +// YuMi +// +// Created by YuMi on 2022/4/8. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class UnionAuthMatrix; +@protocol FBCManeUnionExecutivePerTabulationViweElementRepresendtation + +- (void)fBCManeUnionExecutivePerTarbsultowardsionViweElement:(UISwitch *)onswitch attestationAbstract:(UnionAuthMatrix *)attestationAbstract; + +@end + +@interface YUMIManeUnionExecutivePerTabulationRegardElement : UITableViewCell +@property (nonatomic,weak) id delegate; +@property (nonatomic,strong) UnionAuthMatrix * attestationAbstract; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/View/Cell/Setting/YUMIManeUnionExecutivePerTabulationRegardElement.m b/YuMi/Modules/YMMine/View/Guild/View/Cell/Setting/YUMIManeUnionExecutivePerTabulationRegardElement.m new file mode 100644 index 00000000..5c67577d --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/Cell/Setting/YUMIManeUnionExecutivePerTabulationRegardElement.m @@ -0,0 +1,112 @@ +// +// YUMIManeUnionExecutivePerTabulationRegardElement.m +// YuMi +// +// Created by YuMi on 2022/4/8. +// + +#import "YUMIManeUnionExecutivePerTabulationRegardElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "UnionAuthMatrix.h" + +@interface YUMIManeUnionExecutivePerTabulationRegardElement () +@property (nonatomic,strong) UIStackView *stackView; +@property (nonatomic,strong) UILabel *titleLabel; +@property (nonatomic,strong) UILabel *subChampionSequencignation; +@property (nonatomic,strong) UISwitch *onswitch; +@end + +@implementation YUMIManeUnionExecutivePerTabulationRegardElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify]; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.stackView]; + [self.contentView addSubview:self.onswitch]; + + [self.stackView addArrangedSubview:self.titleLabel]; + [self.stackView addArrangedSubview:self.subChampionSequencignation]; +} + +- (void)initChildLyRestrictions { + [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.contentView).offset(15); + make.centerY.mas_equalTo(self.contentView); + }]; + + [self.onswitch mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self.contentView).offset(-15); + make.centerY.mas_equalTo(self.contentView); + make.width.mas_equalTo(44); + make.height.mas_equalTo(24); + }]; +} + +#pragma mark - Event Response +- (void)onswopDiversifictowardsion:(UISwitch *)on { + if (self.delegate && [self.delegate respondsToSelector:@selector(fBCManeUnionExecutivePerTarbsultowardsionViweElement:attestationAbstract:)]) { + [self.delegate fBCManeUnionExecutivePerTarbsultowardsionViweElement:on attestationAbstract:self.attestationAbstract]; + } +} + +#pragma mark - Getters And Setters +- (void)setAttestationAbstract:(UnionAuthMatrix *)attestationAbstract { + _attestationAbstract = attestationAbstract; + if (_attestationAbstract) { + self.titleLabel.text = _attestationAbstract.name; + self.subChampionSequencignation.text = _attestationAbstract.des; + self.titleLabel.hidden = _attestationAbstract.name.length <= 0; + self.subChampionSequencignation.hidden = _attestationAbstract.des.length <= 0; + self.onswitch.on = _attestationAbstract.status; + } +} + +- (UIStackView *)stackView { + if (!_stackView) { + _stackView = [[UIStackView alloc] init]; + _stackView.axis = UILayoutConstraintAxisVertical; + _stackView.distribution = UIStackViewDistributionFill; + _stackView.alignment = UIStackViewAlignmentFill; + _stackView.spacing = 5; + } + return _stackView; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.font = [UIFont systemFontOfSize:15]; + _titleLabel.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _titleLabel; +} + +- (UILabel *)subChampionSequencignation { + if (!_subChampionSequencignation) { + _subChampionSequencignation = [[UILabel alloc] init]; + _subChampionSequencignation.font = [UIFont systemFontOfSize:13]; + _subChampionSequencignation.textColor = [DJDKMIMOMColor instantEssayPrettify]; + } + return _subChampionSequencignation; +} + +- (UISwitch *)onswitch { + if (!_onswitch) { + _onswitch = [[UISwitch alloc] init]; + _onswitch.onTintColor = [DJDKMIMOMColor aplictowardsionMainPrettify]; + [_onswitch addTarget:self action:@selector(onswopDiversifictowardsion:) forControlEvents:UIControlEventValueChanged]; + } + return _onswitch; +} + +@end diff --git a/YuMi/Modules/YMMine/View/Guild/View/Cell/SuperAdmin/YUMIUnionChooseExecutiveChamberTabulationRegardElement.h b/YuMi/Modules/YMMine/View/Guild/View/Cell/SuperAdmin/YUMIUnionChooseExecutiveChamberTabulationRegardElement.h new file mode 100644 index 00000000..08f77810 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/Cell/SuperAdmin/YUMIUnionChooseExecutiveChamberTabulationRegardElement.h @@ -0,0 +1,26 @@ +// +// YUMIUnionChooseExecutiveChamberTabulationRegardElement.h +// YuMi +// +// Created by YuMi on 2022/4/13. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class UnionChamberAbstractMatrix, YUMIUnionChooseExecutiveChamberTabulationRegardElement; + +@protocol FBCUnionChooseExecutiveChamberTabulationViweElementRepresendtation + +- (void)yUMIUnionConcludeExecutiveChamberTarbsultowardsionViweElement:(YUMIUnionChooseExecutiveChamberTabulationRegardElement *)view didChooseInfo:(UnionChamberAbstractMatrix *)roomInfo; + +@end + +@interface YUMIUnionChooseExecutiveChamberTabulationRegardElement : UITableViewCell + +@property (nonatomic,weak) id delegate; + +@property (nonatomic,strong) UnionChamberAbstractMatrix *roomInfo; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/View/Cell/SuperAdmin/YUMIUnionChooseExecutiveChamberTabulationRegardElement.m b/YuMi/Modules/YMMine/View/Guild/View/Cell/SuperAdmin/YUMIUnionChooseExecutiveChamberTabulationRegardElement.m new file mode 100644 index 00000000..0d86a75b --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/Cell/SuperAdmin/YUMIUnionChooseExecutiveChamberTabulationRegardElement.m @@ -0,0 +1,147 @@ +// +// YUMIUnionChooseExecutiveChamberTabulationRegardElement.m +// YuMi +// +// Created by YuMi on 2022/4/13. +// + +#import "YUMIUnionChooseExecutiveChamberTabulationRegardElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "NetIndicateRegard.h" +#import "UnionChamberAbstractMatrix.h" + +@interface YUMIUnionChooseExecutiveChamberTabulationRegardElement () +@property (nonatomic,strong) UIView * encourageRegard; +@property (nonatomic,strong) NetIndicateRegard *intelligenceportraitIndicateRegard; +@property (nonatomic,strong) UILabel *monicerSequencignation; +@property (nonatomic,strong) UILabel *idSequencignation; +@property (nonatomic,strong) UIButton *concludeBtuton; +@end + +@implementation YUMIUnionChooseExecutiveChamberTabulationRegardElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor]; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.encourageRegard]; + + [self.encourageRegard addSubview:self.intelligenceportraitIndicateRegard]; + [self.encourageRegard addSubview:self.monicerSequencignation]; + [self.encourageRegard addSubview:self.idSequencignation]; + [self.encourageRegard addSubview:self.concludeBtuton]; +} + +- (void)initChildLyRestrictions { + [self.encourageRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.contentView).inset(15); + make.top.mas_equalTo(self.contentView); + make.bottom.mas_equalTo(self.contentView).offset(-15); + }]; + + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.encourageRegard).offset(10); + make.centerY.mas_equalTo(self.encourageRegard); + make.size.mas_equalTo(CGSizeMake(53, 53)); + }]; + + [self.monicerSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.bottom.mas_equalTo(self.encourageRegard.mas_centerY).offset(-2); + make.left.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_right).offset(8); + make.right.mas_lessThanOrEqualTo(self.concludeBtuton.mas_left).offset(-5); + }]; + + [self.idSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_centerY).offset(2); + make.left.mas_equalTo(self.monicerSequencignation); + }]; + + [self.concludeBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(30, 30)); + make.centerY.mas_equalTo(self.encourageRegard); + make.right.mas_equalTo(self.encourageRegard).offset(-10); + }]; +} + +#pragma mark - Event Response +- (void)concludeBtutonPerformance:(UIButton *)sender { + sender.selected = !sender.selected; + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIUnionConcludeExecutiveChamberTarbsultowardsionViweElement:didChooseInfo:)]) { + [self.delegate yUMIUnionConcludeExecutiveChamberTarbsultowardsionViweElement:self didChooseInfo:self.roomInfo]; + } +} + +#pragma mark - Getters And Setters +- (void)setRoomInfo:(UnionChamberAbstractMatrix *)roomInfo { + _roomInfo = roomInfo; + if (_roomInfo) { + self.intelligenceportraitIndicateRegard.imageUrl = _roomInfo.hallAvatar; + self.monicerSequencignation.text = _roomInfo.hallName; + self.idSequencignation.text = [NSString stringWithFormat:@"ID:%@", _roomInfo.hallRoomId]; + self.concludeBtuton.selected = _roomInfo.hasManage; + } +} + +- (UIView *)encourageRegard { + if (!_encourageRegard) { + _encourageRegard = [[UIView alloc] init]; + _encourageRegard.backgroundColor = [DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify]; + _encourageRegard.layer.masksToBounds = YES; + _encourageRegard.layer.cornerRadius = 10; + } + return _encourageRegard; +} + +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _intelligenceportraitIndicateRegard.layer.cornerRadius = 53.0/2.0; + _intelligenceportraitIndicateRegard.layer.borderColor = [DJDKMIMOMColor aplictowardsionMainPrettify].CGColor; + } + return _intelligenceportraitIndicateRegard; +} + +- (UILabel *)monicerSequencignation { + if (!_monicerSequencignation) { + _monicerSequencignation = [[UILabel alloc] init]; + _monicerSequencignation.font = [UIFont systemFontOfSize:18]; + _monicerSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _monicerSequencignation; +} + +- (UILabel *)idSequencignation { + if (!_idSequencignation) { + _idSequencignation = [[UILabel alloc] init]; + _idSequencignation.font = [UIFont systemFontOfSize:12]; + _idSequencignation.textColor = [DJDKMIMOMColor instantEssayPrettify]; + } + return _idSequencignation; +} + +- (UIButton *)concludeBtuton { + if (!_concludeBtuton) { + _concludeBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_concludeBtuton setImage:[UIImage imageNamed:@"yumi_center_guild_guild_manager_normal"] forState:UIControlStateNormal]; + [_concludeBtuton setImage:[UIImage imageNamed:@"yumi_center_guild_guild_manager_select"] forState:UIControlStateSelected]; + [_concludeBtuton addTarget:self action:@selector(concludeBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _concludeBtuton; +} + + + +@end diff --git a/YuMi/Modules/YMMine/View/Guild/View/Cell/SuperAdmin/YUMIUnionHuntforSensationalManagementTabulationRegardElement.h b/YuMi/Modules/YMMine/View/Guild/View/Cell/SuperAdmin/YUMIUnionHuntforSensationalManagementTabulationRegardElement.h new file mode 100644 index 00000000..cfe96ad1 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/Cell/SuperAdmin/YUMIUnionHuntforSensationalManagementTabulationRegardElement.h @@ -0,0 +1,22 @@ +// +// YUMIUnionHuntforSensationalManagementTabulationRegardElement.h +// YuMi +// +// Created by YuMi on 2022/4/13. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class UnionHuntforSensationalManagementMatrix, YUMIUnionHuntforSensationalManagementTabulationRegardElement; +@protocol FBCUnionHuntforSensationalManagementTabulationViweElementRepresendtation + +- (void)yUMIUnionHuntforSenstowardsionalManagementTarbsultowardsionViweElement:(YUMIUnionHuntforSensationalManagementTabulationRegardElement *)cell didSelectInfo:(UnionHuntforSensationalManagementMatrix *)userInfo; + +@end +@interface YUMIUnionHuntforSensationalManagementTabulationRegardElement : UITableViewCell +@property (nonatomic,weak) id delegate; +@property (nonatomic,strong) UnionHuntforSensationalManagementMatrix *userInfo; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/View/Cell/SuperAdmin/YUMIUnionHuntforSensationalManagementTabulationRegardElement.m b/YuMi/Modules/YMMine/View/Guild/View/Cell/SuperAdmin/YUMIUnionHuntforSensationalManagementTabulationRegardElement.m new file mode 100644 index 00000000..6466a776 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/Cell/SuperAdmin/YUMIUnionHuntforSensationalManagementTabulationRegardElement.m @@ -0,0 +1,164 @@ +// +// YUMIUnionHuntforSensationalManagementTabulationRegardElement.m +// YuMi +// +// Created by YuMi on 2022/4/13. +// + +#import "YUMIUnionHuntforSensationalManagementTabulationRegardElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "NetIndicateRegard.h" +#import "UIImage+Utils.h" +#import "UnionHuntforSensationalManagementMatrix.h" + +@interface YUMIUnionHuntforSensationalManagementTabulationRegardElement () +@property (nonatomic,strong) NetIndicateRegard *intelligenceportraitIndicateRegard; +@property (nonatomic,strong) UILabel *monicerSequencignation; +@property (nonatomic,strong) UIImageView *seaxualityIndicateRegard; +@property (nonatomic,strong) UILabel *idSequencignation; +@property (nonatomic,strong) UIButton *sensationalManagementBtuton; +@end + +@implementation YUMIUnionHuntforSensationalManagementTabulationRegardElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify]; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.intelligenceportraitIndicateRegard]; + [self.contentView addSubview:self.monicerSequencignation]; + [self.contentView addSubview:self.seaxualityIndicateRegard]; + [self.contentView addSubview:self.idSequencignation]; + [self.contentView addSubview:self.sensationalManagementBtuton]; +} + +- (void)initChildLyRestrictions { + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.contentView); + make.left.mas_equalTo(self.contentView).offset(15); + make.width.height.mas_equalTo(50); + }]; + + [self.monicerSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.bottom.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_centerY).offset(-3); + make.left.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_right).offset(6); + }]; + + [self.seaxualityIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.monicerSequencignation.mas_centerY); + make.left.mas_equalTo(self.monicerSequencignation.mas_right).mas_offset(3); + make.height.width.mas_equalTo(18); + }]; + + [self.idSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_centerY).offset(2); + make.left.mas_equalTo(self.monicerSequencignation.mas_left); + }]; + + [self.sensationalManagementBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self.contentView).offset(-15); + make.width.mas_equalTo(90); + make.height.mas_equalTo(30); + make.centerY.mas_equalTo(self.contentView); + }]; +} + +#pragma mark - Event Response +- (void)senstowardsionalManagementBtutonPerformance:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIUnionHuntforSenstowardsionalManagementTarbsultowardsionViweElement:didSelectInfo:)]) { + [self.delegate yUMIUnionHuntforSenstowardsionalManagementTarbsultowardsionViweElement:self didSelectInfo:self.userInfo]; + } +} + +#pragma mark - Getters And Setters +- (void)setUserInfo:(UnionHuntforSensationalManagementMatrix *)userInfo { + _userInfo = userInfo; + if (_userInfo) { + self.intelligenceportraitIndicateRegard.imageUrl = _userInfo.avatar; + NSString * nick = _userInfo.nick; + if (nick.length > 8) { + nick = [nick substringToIndex:8]; + } + self.monicerSequencignation.text = nick; + self.seaxualityIndicateRegard.image = _userInfo.gender == GenderGenre_Female ? [UIImage imageNamed:@"yumi_same_female"] : [UIImage imageNamed:@"yumi_same_male"]; + self.idSequencignation.text = [NSString stringWithFormat:@"%@", _userInfo.erbanNo]; + self.sensationalManagementBtuton.enabled = !_userInfo.hasSet; + if(self.sensationalManagementBtuton.enabled == NO){ + [self.sensationalManagementBtuton mas_updateConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(110); + }]; + }else{ + [self.sensationalManagementBtuton mas_updateConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(90); + }]; + } + } +} + +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _intelligenceportraitIndicateRegard.layer.cornerRadius = 25; + _intelligenceportraitIndicateRegard.layer.borderColor = [DJDKMIMOMColor aplictowardsionMainPrettify].CGColor; + _intelligenceportraitIndicateRegard.layer.borderWidth = 1; + } + return _intelligenceportraitIndicateRegard; +} + +- (UILabel *)monicerSequencignation { + if (!_monicerSequencignation) { + _monicerSequencignation = [[UILabel alloc] init]; + _monicerSequencignation.font = [UIFont systemFontOfSize:18]; + _monicerSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _monicerSequencignation; +} + +- (UIImageView *)seaxualityIndicateRegard { + if (!_seaxualityIndicateRegard) { + _seaxualityIndicateRegard = [[UIImageView alloc] init]; + _seaxualityIndicateRegard.userInteractionEnabled = YES; + } + return _seaxualityIndicateRegard; +} + +- (UILabel *)idSequencignation { + if (!_idSequencignation) { + _idSequencignation = [[UILabel alloc] init]; + _idSequencignation.font = [UIFont systemFontOfSize:12]; + _idSequencignation.textColor = [DJDKMIMOMColor instantEssayPrettify]; + } + return _idSequencignation; +} + +- (UIButton *)sensationalManagementBtuton { + if (!_sensationalManagementBtuton) { + _sensationalManagementBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_sensationalManagementBtuton setTitle:YMLocalizedString(@"YUMI_Guild_Search_Super_Admin_Table_View_Cell_0") forState:UIControlStateNormal]; + [_sensationalManagementBtuton setTitle:YMLocalizedString(@"YUMI_Guild_Search_Super_Admin_Table_View_Cell_1") forState:UIControlStateDisabled]; + [_sensationalManagementBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + [_sensationalManagementBtuton setTitleColor:[DJDKMIMOMColor prohibitionBtutonEssayPrettify] forState:UIControlStateSelected]; + _sensationalManagementBtuton.titleLabel.font = [UIFont systemFontOfSize:14]; + [_sensationalManagementBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + _sensationalManagementBtuton.layer.masksToBounds = YES; + _sensationalManagementBtuton.layer.cornerRadius = 15; + [_sensationalManagementBtuton addTarget:self action:@selector(senstowardsionalManagementBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _sensationalManagementBtuton; +} + + +@end diff --git a/YuMi/Modules/YMMine/View/Guild/View/Cell/SuperAdmin/YUMIUnionSensationalManagementChamberAssembletionRegardElement.h b/YuMi/Modules/YMMine/View/Guild/View/Cell/SuperAdmin/YUMIUnionSensationalManagementChamberAssembletionRegardElement.h new file mode 100644 index 00000000..37cfc5c7 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/Cell/SuperAdmin/YUMIUnionSensationalManagementChamberAssembletionRegardElement.h @@ -0,0 +1,16 @@ +// +// YUMIUnionSensationalManagementChamberAssembletionRegardElement.h +// YuMi +// +// Created by YuMi on 2022/4/13. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class UnionChamberAbstractMatrix; +@interface YUMIUnionSensationalManagementChamberAssembletionRegardElement : UICollectionViewCell +@property (nonatomic,strong) UnionChamberAbstractMatrix *roomInfo; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/View/Cell/SuperAdmin/YUMIUnionSensationalManagementChamberAssembletionRegardElement.m b/YuMi/Modules/YMMine/View/Guild/View/Cell/SuperAdmin/YUMIUnionSensationalManagementChamberAssembletionRegardElement.m new file mode 100644 index 00000000..ced135e3 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/Cell/SuperAdmin/YUMIUnionSensationalManagementChamberAssembletionRegardElement.m @@ -0,0 +1,81 @@ +// +// YUMIUnionSensationalManagementChamberAssembletionRegardElement.m +// YuMi +// +// Created by YuMi on 2022/4/13. +// + +#import "YUMIUnionSensationalManagementChamberAssembletionRegardElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "NetIndicateRegard.h" +#import "UnionChamberAbstractMatrix.h" + +@interface YUMIUnionSensationalManagementChamberAssembletionRegardElement () +@property (nonatomic,strong) NetIndicateRegard *intelligenceportraitIndicateRegard; +@property (nonatomic,strong) UILabel *idSequencignation; +@end + +@implementation YUMIUnionSensationalManagementChamberAssembletionRegardElement + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor]; + [self.contentView addSubview:self.intelligenceportraitIndicateRegard]; + [self.contentView addSubview:self.idSequencignation]; +} + +- (void)initChildLyRestrictions { + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.contentView); + make.centerX.mas_equalTo(self.contentView); + make.width.height.mas_equalTo(60); + }]; + + [self.idSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_bottom).offset(6); + make.right.left.mas_equalTo(self.contentView); + }]; +} +#pragma mark - Getters And Setters +- (void)setRoomInfo:(UnionChamberAbstractMatrix *)roomInfo { + _roomInfo = roomInfo; + if (_roomInfo) { + self.intelligenceportraitIndicateRegard.imageUrl = _roomInfo.hallAvatar; + self.idSequencignation.text = _roomInfo.hallName; + } +} + +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _intelligenceportraitIndicateRegard.layer.cornerRadius = 10; + } + return _intelligenceportraitIndicateRegard; +} + +- (UILabel *)idSequencignation { + if (!_idSequencignation) { + _idSequencignation = [[UILabel alloc] init]; + _idSequencignation.font = [UIFont systemFontOfSize:13]; + _idSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _idSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _idSequencignation; +} + + +@end diff --git a/YuMi/Modules/YMMine/View/Guild/View/Cell/SuperAdmin/YUMIUnionSensationalManagementSetTabulationRegardElement.h b/YuMi/Modules/YMMine/View/Guild/View/Cell/SuperAdmin/YUMIUnionSensationalManagementSetTabulationRegardElement.h new file mode 100644 index 00000000..ceff2393 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/Cell/SuperAdmin/YUMIUnionSensationalManagementSetTabulationRegardElement.h @@ -0,0 +1,22 @@ +// +// YUMIUnionSensationalManagementSetTabulationRegardElement.h +// YuMi +// +// Created by YuMi on 2022/4/13. +// + +#import +#import "YUMIUnionSensationalManagementParrotRegard.h" +NS_ASSUME_NONNULL_BEGIN +@class UnionSensationalManagementAbstractMatrix, YUMIUnionSensationalManagementSetTabulationRegardElement; +@protocol FBCUnionSensationalManagementSetTabulationViweElementRepresendtation + +- (void)yUMIUnionSenstowardsionalManagementSetTarbsultowardsionViweElement:(UnionSensationalManagementAbstractMatrix *)executiveAbstract didChooseType:(UnionSuperAdminParrotGenre)menuType; + +@end +@interface YUMIUnionSensationalManagementSetTabulationRegardElement : UITableViewCell +@property (nonatomic,strong) UnionSensationalManagementAbstractMatrix *executiveAbstract; +@property (nonatomic,weak) id delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/View/Cell/SuperAdmin/YUMIUnionSensationalManagementSetTabulationRegardElement.m b/YuMi/Modules/YMMine/View/Guild/View/Cell/SuperAdmin/YUMIUnionSensationalManagementSetTabulationRegardElement.m new file mode 100644 index 00000000..ecf15087 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/Cell/SuperAdmin/YUMIUnionSensationalManagementSetTabulationRegardElement.m @@ -0,0 +1,236 @@ +// +// YUMIUnionSensationalManagementSetTabulationRegardElement.m +// YuMi +// +// Created by YuMi on 2022/4/13. +// + +#import "YUMIUnionSensationalManagementSetTabulationRegardElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "NetIndicateRegard.h" +#import "UnionSensationalManagementAbstractMatrix.h" +#import "YUMIUnionSensationalManagementChamberAssembletionRegardElement.h" + + +@interface YUMIUnionSensationalManagementSetTabulationRegardElement () +@property (nonatomic,strong) UIView * encourageRegard; +@property (nonatomic,strong) UIView * executiveAbstractRegard; +@property (nonatomic,strong) NetIndicateRegard *intelligenceportraitIndicateRegard; +@property (nonatomic,strong) UILabel *monicerSequencignation; +@property (nonatomic,strong) UILabel *idSequencignation; +@property (nonatomic,strong) UIButton *furthaerBtuton; +@property (nonatomic,strong) UILabel *titleLabel; +@property (nonatomic,strong) YUMIUnionSensationalManagementParrotRegard *parrotRegard; +@property (nonatomic,strong) UICollectionView *collectionView; +@end + +@implementation YUMIUnionSensationalManagementSetTabulationRegardElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor]; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.encourageRegard]; + + [self.encourageRegard addSubview:self.executiveAbstractRegard]; + [self.encourageRegard addSubview:self.titleLabel]; + [self.encourageRegard addSubview:self.collectionView]; + [self.encourageRegard addSubview:self.parrotRegard]; + + [self.executiveAbstractRegard addSubview:self.intelligenceportraitIndicateRegard]; + [self.executiveAbstractRegard addSubview:self.monicerSequencignation]; + [self.executiveAbstractRegard addSubview:self.idSequencignation]; + [self.executiveAbstractRegard addSubview:self.furthaerBtuton]; +} + +- (void)initChildLyRestrictions { + [self.encourageRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.contentView).inset(15); + make.top.mas_equalTo(self.contentView); + make.bottom.mas_equalTo(self.contentView).offset(-15); + }]; + + [self.executiveAbstractRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self.encourageRegard); + make.height.mas_equalTo(74); + }]; + + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(64, 64)); + make.left.top.mas_equalTo(self.executiveAbstractRegard).offset(10); + }]; + + [self.monicerSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.intelligenceportraitIndicateRegard); + make.left.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_right).offset(6); + make.right.mas_lessThanOrEqualTo(self.furthaerBtuton.mas_left).offset(-5); + }]; + + [self.idSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.monicerSequencignation); + make.top.mas_equalTo(self.monicerSequencignation.mas_bottom).offset(6); + }]; + + [self.furthaerBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self.encourageRegard).offset(-5); + make.top.mas_equalTo(self.encourageRegard).offset(10); + make.width.height.mas_equalTo(30); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.encourageRegard).offset(10); + make.top.mas_equalTo(self.executiveAbstractRegard.mas_bottom).offset(15); + }]; + + [self.collectionView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.mas_equalTo(self.encourageRegard); + make.top.mas_equalTo(self.titleLabel.mas_bottom).offset(6); + }]; + + [self.parrotRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self.encourageRegard).offset(-5); + make.top.mas_equalTo(self.furthaerBtuton.mas_bottom).offset(0); + }]; +} + +#pragma mark - UICollectionViewCellDelegate And UICollectionViewDatasource +- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { + return self.executiveAbstract.roomList.count; +} + +-(__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { + YUMIUnionSensationalManagementChamberAssembletionRegardElement * cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([YUMIUnionSensationalManagementChamberAssembletionRegardElement class]) forIndexPath:indexPath]; + UnionChamberAbstractMatrix * roomInfo = [self.executiveAbstract.roomList secureGroalTowardsIndictowardsrix1:indexPath.row]; + cell.roomInfo = roomInfo; + return cell; +} + +#pragma mark - FBCUnionSensationalManagementMenuRegardRepresendtation +- (void)yUMIUnionSenstowardsionalManagementParrotRegard:(YUMIUnionSensationalManagementParrotRegard *)view didClickType:(UnionSuperAdminParrotGenre)memuType { + self.parrotRegard.hidden = YES; + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIUnionSenstowardsionalManagementSetTarbsultowardsionViweElement:didChooseType:)]) { + [self.delegate yUMIUnionSenstowardsionalManagementSetTarbsultowardsionViweElement:self.executiveAbstract didChooseType:memuType]; + } +} + +#pragma mark - Event Response +- (void)furthaerBtutonBtutonPerformance:(UIButton *)sender { + self.parrotRegard.hidden = !self.parrotRegard.hidden; +} + +#pragma mark - Getters And Setters +- (void)setExecutiveAbstract:(UnionSensationalManagementAbstractMatrix *)executiveAbstract { + _executiveAbstract = executiveAbstract; + if (_executiveAbstract) { + self.intelligenceportraitIndicateRegard.imageUrl = _executiveAbstract.avatar; + self.monicerSequencignation.text= _executiveAbstract.nick; + self.idSequencignation.text = [NSString stringWithFormat:YMLocalizedString(@"YUMI_Guild_Super_Admin_Set_Table_View_Cell_0"), _executiveAbstract.erbanNo]; + [self.collectionView reloadData]; + } +} + +- (UIView *)encourageRegard { + if (!_encourageRegard) { + _encourageRegard = [[UIView alloc] init]; + _encourageRegard.backgroundColor = [DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify]; + _encourageRegard.layer.masksToBounds = YES; + _encourageRegard.layer.cornerRadius = 10; + } + return _encourageRegard; +} + +- (UIView *)executiveAbstractRegard { + if (!_executiveAbstractRegard) { + _executiveAbstractRegard = [[UIView alloc] init]; + _executiveAbstractRegard.backgroundColor = [UIColor clearColor]; + } + return _executiveAbstractRegard; +} + +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _intelligenceportraitIndicateRegard.layer.cornerRadius = 64/2; + _intelligenceportraitIndicateRegard.layer.borderColor = [DJDKMIMOMColor aplictowardsionMainPrettify].CGColor; + _intelligenceportraitIndicateRegard.layer.borderWidth = 1; + } + return _intelligenceportraitIndicateRegard; +} +- (UILabel *)monicerSequencignation { + if (!_monicerSequencignation) { + _monicerSequencignation = [[UILabel alloc] init]; + _monicerSequencignation.font = [UIFont systemFontOfSize:18]; + _monicerSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _monicerSequencignation; +} + +- (UILabel *)idSequencignation { + if (!_idSequencignation) { + _idSequencignation = [[UILabel alloc] init]; + _idSequencignation.font = [UIFont systemFontOfSize:12]; + _idSequencignation.textColor = [DJDKMIMOMColor instantEssayPrettify]; + } + return _idSequencignation; +} + +- (UIButton *)furthaerBtuton { + if (!_furthaerBtuton) { + _furthaerBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_furthaerBtuton setImage:[UIImage imageNamed:@"yumi_center_guild_super_admin_more"] forState:UIControlStateNormal]; + [_furthaerBtuton setImage:[UIImage imageNamed:@"yumi_center_guild_super_admin_more"] forState:UIControlStateSelected]; + [_furthaerBtuton addTarget:self action:@selector(furthaerBtutonBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _furthaerBtuton; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.text = YMLocalizedString(@"YUMI_Guild_Super_Admin_Set_Table_View_Cell_1"); + _titleLabel.font = [UIFont systemFontOfSize:14]; + _titleLabel.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _titleLabel; +} + +- (UICollectionView *)collectionView{ + if (!_collectionView) { + UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init]; + layout.scrollDirection = UICollectionViewScrollDirectionHorizontal; + layout.minimumLineSpacing = 10; + layout.itemSize = CGSizeMake(60, 80); + layout.sectionInset = UIEdgeInsetsMake(0, 10, 0, 10); + _collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout]; + _collectionView.dataSource = self; + _collectionView.delegate = self; + _collectionView.backgroundColor = [UIColor whiteColor]; + [_collectionView registerClass:[YUMIUnionSensationalManagementChamberAssembletionRegardElement class] forCellWithReuseIdentifier:NSStringFromClass([YUMIUnionSensationalManagementChamberAssembletionRegardElement class])]; + } + return _collectionView; +} + +- (YUMIUnionSensationalManagementParrotRegard *)parrotRegard { + if (!_parrotRegard) { + _parrotRegard = [[YUMIUnionSensationalManagementParrotRegard alloc] init]; + _parrotRegard.delegate = self; + _parrotRegard.hidden = YES; + } + return _parrotRegard; +} + + +@end diff --git a/YuMi/Modules/YMMine/View/Guild/View/Cell/YUMICollectiveChamberAssembletionRegardElement.h b/YuMi/Modules/YMMine/View/Guild/View/Cell/YUMICollectiveChamberAssembletionRegardElement.h new file mode 100644 index 00000000..da998849 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/Cell/YUMICollectiveChamberAssembletionRegardElement.h @@ -0,0 +1,16 @@ +// +// YUMICollectiveChamberAssembletionRegardElement.h +// YuMi +// +// Created by YuMi on 2022/4/6. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class UnionAbstractMatrix; +@interface YUMICollectiveChamberAssembletionRegardElement : UICollectionViewCell +@property (nonatomic,strong) UnionAbstractMatrix *guildInfo; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/View/Cell/YUMICollectiveChamberAssembletionRegardElement.m b/YuMi/Modules/YMMine/View/Guild/View/Cell/YUMICollectiveChamberAssembletionRegardElement.m new file mode 100644 index 00000000..0dda9beb --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/Cell/YUMICollectiveChamberAssembletionRegardElement.m @@ -0,0 +1,81 @@ +// +// YUMICollectiveChamberAssembletionRegardElement.m +// YuMi +// +// Created by YuMi on 2022/4/6. +// + +#import "YUMICollectiveChamberAssembletionRegardElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "NetIndicateRegard.h" +#import "UIImage+Utils.h" +#import "UnionAbstractMatrix.h" + +@interface YUMICollectiveChamberAssembletionRegardElement () +@property (nonatomic,strong) NetIndicateRegard *intelligenceportraitIndicateRegard; +@property (nonatomic,strong) UILabel *titleLabel; +@end + +@implementation YUMICollectiveChamberAssembletionRegardElement + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self.contentView addSubview:self.intelligenceportraitIndicateRegard]; + [self.contentView addSubview:self.titleLabel]; +} + +- (void)initChildLyRestrictions { + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.top.mas_equalTo(self.contentView); + make.height.mas_equalTo(60); + make.width.mas_equalTo(60); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.contentView); + make.top.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_bottom).offset(6); + }]; +} + +#pragma mark - Getters And Setters +- (void)setGuildInfo:(UnionAbstractMatrix *)guildInfo { + _guildInfo = guildInfo; + if (_guildInfo) { + self.intelligenceportraitIndicateRegard.imageUrl = _guildInfo.ownerAvatar; + self.titleLabel.text = _guildInfo.hallName; + } +} + +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceportraitIndicateRegard.contentMode = UIViewContentModeScaleAspectFill; + _intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _intelligenceportraitIndicateRegard.layer.cornerRadius = 8; + } + return _intelligenceportraitIndicateRegard; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.textAlignment = NSTextAlignmentCenter; + _titleLabel.font = [UIFont systemFontOfSize:13]; + _titleLabel.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _titleLabel; +} +@end diff --git a/YuMi/Modules/YMMine/View/Guild/View/Cell/YUMICollectiveComponentTabulationRegardElement.h b/YuMi/Modules/YMMine/View/Guild/View/Cell/YUMICollectiveComponentTabulationRegardElement.h new file mode 100644 index 00000000..ef3ceb24 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/Cell/YUMICollectiveComponentTabulationRegardElement.h @@ -0,0 +1,35 @@ +// +// YUMICollectiveComponentTabulationRegardElement.h +// YuMi +// +// Created by YuMi on 2022/4/6. +// + +#import +#import "CollectiveComponentSpecificAbstractMatrix.h" +NS_ASSUME_NONNULL_BEGIN +@class YUMICollectiveComponentTabulationRegardElement; + +typedef NS_ENUM(NSInteger, ClanMemberTableRegardCellGenre) { + ClanMemberTableRegardCellGenre_Normal = 0, + + ClanMemberTableRegardCellGenre_Remove_Member, + + ClanMemberTableRegardCellGenre_Manager_Set, + + ClanMemberTableRegardCellGenre_Manager_Add_Remove, +}; + +@protocol FBCCollectiveMemberTabulationViweElementRepresendtation +- (void)yUMICollectiveComponentTarbsultowardsionViweElement:(YUMICollectiveComponentTabulationRegardElement *)view didClickUser:(CollectiveComponentAbstractMatrix *)userinfo; + +@end + +@interface YUMICollectiveComponentTabulationRegardElement : UITableViewCell +@property (nonatomic,weak) id delegate; +@property (nonatomic,assign) ClanMemberTableRegardCellGenre cellType; +@property (nonatomic,assign) BOOL isRecent; +@property (nonatomic,strong) CollectiveComponentAbstractMatrix *componentAbstract; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/View/Cell/YUMICollectiveComponentTabulationRegardElement.m b/YuMi/Modules/YMMine/View/Guild/View/Cell/YUMICollectiveComponentTabulationRegardElement.m new file mode 100644 index 00000000..9465abd9 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/Cell/YUMICollectiveComponentTabulationRegardElement.m @@ -0,0 +1,454 @@ +// +// YUMICollectiveComponentTabulationRegardElement.m +// YuMi +// +// Created by YuMi on 2022/4/6. +// + +#import "YUMICollectiveComponentTabulationRegardElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "NetIndicateRegard.h" +#import "UIImage+Utils.h" +#import "UIButton+EnlargeTouchArea.h" +#import "CollectiveComponentSpecificAbstractMatrix.h" + +@interface YUMICollectiveComponentTabulationRegardElement () +@property (nonatomic,strong) UIView * encourageRegard; +@property (nonatomic,strong) NetIndicateRegard *intelligenceportraitIndicateRegard; +@property (nonatomic,strong) UIImageView *intelligenceportraitBorderRegard; +@property (nonatomic,strong) UIButton *roleBtuton; +@property (nonatomic,strong) UIStackView *monicerHierarchyRegard; +@property (nonatomic,strong) UILabel *monicerSequencignation; +@property (nonatomic,strong) UILabel *idSequencignation; +@property (nonatomic,strong) UIImageView *seaxualityIndicateRegard; +@property (nonatomic,strong) NetIndicateRegard *fascinationIndicateRegard; +@property (nonatomic,strong) NetIndicateRegard *experIndicateRegard; +@property (nonatomic,strong) UILabel *guildMonicerSequencignation; +@property (nonatomic,strong) CAShapeLayer *shapeLayer; +@property (nonatomic,strong) UIButton *rightButton; +@end + +@implementation YUMICollectiveComponentTabulationRegardElement +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor]; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.encourageRegard]; + [self.encourageRegard addSubview:self.intelligenceportraitBorderRegard]; + [self.encourageRegard addSubview:self.intelligenceportraitIndicateRegard]; + [self.encourageRegard addSubview:self.roleBtuton]; + [self.encourageRegard addSubview:self.monicerHierarchyRegard]; + [self.encourageRegard addSubview:self.idSequencignation]; + [self.encourageRegard addSubview:self.guildMonicerSequencignation]; + [self.encourageRegard addSubview:self.rightButton]; + + [self.monicerHierarchyRegard addArrangedSubview:self.monicerSequencignation]; + [self.monicerHierarchyRegard addArrangedSubview:self.seaxualityIndicateRegard]; + [self.monicerHierarchyRegard addArrangedSubview:self.experIndicateRegard]; + [self.monicerHierarchyRegard addArrangedSubview:self.fascinationIndicateRegard]; +} + +- (void)initChildLyRestrictions { + [self.encourageRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.contentView).inset(15); + make.top.bottom.mas_equalTo(self.contentView); + }]; + + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(54, 54)); + make.centerY.mas_equalTo(self.contentView); + make.left.mas_equalTo(self.encourageRegard).offset(9); + }]; + + [self.intelligenceportraitBorderRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(57, 57)); + make.center.mas_equalTo(self.intelligenceportraitIndicateRegard); + }]; + + [self.roleBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(17); + make.width.mas_equalTo(28); + make.bottom.mas_equalTo(self.intelligenceportraitBorderRegard); + make.centerX.mas_equalTo(self.intelligenceportraitIndicateRegard); + }]; + [self.seaxualityIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(2); + make.height.width.mas_equalTo(18); + make.bottom.mas_equalTo(0); + }]; + [self.experIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(24); + }]; + + [self.fascinationIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(24); + }]; + + [self.monicerHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_right).offset(6); + make.height.mas_equalTo(20); + make.bottom.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_centerY).offset(-3); + }]; + + [self.idSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.monicerSequencignation); + make.top.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_centerY).offset(3); + }]; + + [self.guildMonicerSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self.encourageRegard).offset(-15); + make.centerY.mas_equalTo(self.idSequencignation); + }]; + + [self.rightButton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(20, 20)); + make.centerY.mas_equalTo(self.encourageRegard); + make.right.mas_equalTo(self.encourageRegard).offset(-15); + }]; +} + +#pragma mark - Event Response +- (void)rectifyBtutonPerformance:(UIButton *)sender { + sender.selected = !sender.selected; + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMICollectiveComponentTarbsultowardsionViweElement:didClickUser:)]) { + [self.delegate yUMICollectiveComponentTarbsultowardsionViweElement:self didClickUser:self.componentAbstract]; + } +} + +#pragma mark - Getters And Setters +- (void)setComponentAbstract:(CollectiveComponentAbstractMatrix *)componentAbstract { + _componentAbstract = componentAbstract; + if (_componentAbstract) { + self.intelligenceportraitIndicateRegard.imageUrl = _componentAbstract.avatar; + NSString * nick = _componentAbstract.nick; + if (nick.length > 8) { + nick = [NSString stringWithFormat:@"%@...", [nick substringToIndex:8]]; + } + self.monicerSequencignation.text = nick; + self.seaxualityIndicateRegard.image = _componentAbstract.gender == GenderGenre_Female ? [UIImage imageNamed:@"yumi_same_female"] : [UIImage imageNamed:@"yumi_same_male"]; + if (_componentAbstract.experUrl) { + if (self.experIndicateRegard.state == NetImageDeclareLoaded) { + self.experIndicateRegard.imageUrl = _componentAbstract.experUrl; + CGFloat kImageScale = self.experIndicateRegard.image.size.width / self.experIndicateRegard.image.size.height; + CGFloat imageWidth = 20 * kImageScale; + [self.experIndicateRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(imageWidth); + }]; + } else { + @kWeakify(self); + [self.experIndicateRegard chamberIndictowardseAboutWeebsite:_componentAbstract.experUrl completion:^(UIImage * _Nonnull image, NSURL * _Nonnull url) { + @kStrongify(self); + self.experIndicateRegard.image = image; + CGFloat kImageScale = image.size.width / image.size.height; + CGFloat imageWidth = 20 * kImageScale; + [self.experIndicateRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(imageWidth); + }]; + }]; + } + } + self.experIndicateRegard.hidden = _componentAbstract.experUrl.length <= 0; + + if (_componentAbstract.charmUrl) { + if (self.fascinationIndicateRegard.state == NetImageDeclareLoaded) { + self.fascinationIndicateRegard.imageUrl = _componentAbstract.charmUrl; + CGFloat kImageScale = self.fascinationIndicateRegard.image.size.width / self.fascinationIndicateRegard.image.size.height; + CGFloat imageWidth = 20 * kImageScale; + [self.fascinationIndicateRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(imageWidth); + }]; + } else { + @kWeakify(self); + [self.fascinationIndicateRegard chamberIndictowardseAboutWeebsite:_componentAbstract.charmUrl completion:^(UIImage * _Nonnull image, NSURL * _Nonnull url) { + @kStrongify(self); + self.fascinationIndicateRegard.image = image; + CGFloat kImageScale = image.size.width / image.size.height; + CGFloat imageWidth = 20 * kImageScale; + [self.fascinationIndicateRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(imageWidth); + }]; + }]; + } + } + self.fascinationIndicateRegard.hidden = _componentAbstract.charmUrl.length <= 0; + self.idSequencignation.text = [NSString stringWithFormat:@"ID:%@", _componentAbstract.erbanNo]; + NSString * hallName = _componentAbstract.hallName; + if (hallName.length > 5) { + hallName = [NSString stringWithFormat:@"%@...", [hallName substringToIndex:5]]; + } + self.guildMonicerSequencignation.text = hallName; + UIColor * avatarBoderColor; + UIColor * roleGradStartColor; + UIColor * roleGradEndColor; + NSString * roleTitle; + CGFloat roleWidth = 45; + switch (_componentAbstract.roleType) { + case UnionRoleGenre_Elder: + roleTitle = YMLocalizedString(@"YUMI_Clan_Member_Table_View_Cell_0"); + avatarBoderColor = UIColorFromRGB(0xFFD755); + roleGradStartColor = UIColorFromRGB(0xFF5357); + roleGradEndColor = UIColorFromRGB(0xFFC919); + roleWidth= 45; + break; + case UnionRoleGenre_Elder_Owner: + roleTitle = YMLocalizedString(@"YUMI_Clan_Member_Table_View_Cell_1"); + avatarBoderColor = UIColorFromRGB(0xFFD755); + roleGradStartColor = UIColorFromRGB(0xFF5357); + roleGradEndColor = UIColorFromRGB(0xFFC919); + roleWidth = 66; + break; + case UnionRoleGenre_Owner: + roleTitle = YMLocalizedString(@"YUMI_Clan_Member_Table_View_Cell_2"); + avatarBoderColor = UIColorFromRGB(0xF86868); + roleGradEndColor = UIColorFromRGB(0xF86868); + roleGradStartColor = UIColorFromRGB(0xF6A945); + roleWidth = 45; + break; + case UnionRoleGenre_Normal: + roleTitle = @""; + break; + case UnionRoleGenre_Manager: + roleTitle = YMLocalizedString(@"YUMI_Clan_Member_Table_View_Cell_3"); + avatarBoderColor = UIColorFromRGB(0x248CFE); + roleGradStartColor = UIColorFromRGB(0x5092FE); + roleGradEndColor = UIColorFromRGB(0x6A10B5); + roleWidth = 58; + break; + case UnionRoleGenre_Super_Admin: + roleTitle = YMLocalizedString(@"YUMI_Clan_Member_Table_View_Cell_4"); + avatarBoderColor = UIColorFromRGB(0x7727E4); + roleGradStartColor = UIColorFromRGB(0x5092FE); + roleGradEndColor = UIColorFromRGB(0x6A10B5); + roleWidth = 58; + break; + + default: + break; + } + if (roleTitle.length > 0) { + self.roleBtuton.hidden = NO; + self.intelligenceportraitBorderRegard.hidden = NO; + [self.roleBtuton setTitle:roleTitle forState:UIControlStateNormal]; + self.intelligenceportraitBorderRegard.layer.borderColor = avatarBoderColor.CGColor; + [self.roleBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[roleGradStartColor, roleGradEndColor] gradientType:GradientGenreUpleftToLowright imgSize:CGSizeMake(roleWidth, 17)] forState:UIControlStateNormal]; + [self.roleBtuton mas_updateConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(roleWidth); + }]; + } else { + self.intelligenceportraitBorderRegard.hidden = YES; + self.roleBtuton.hidden = YES; + } + + if (_componentAbstract.roleType == UnionRoleGenre_Owner || _componentAbstract.roleType == UnionRoleGenre_Elder_Owner || _componentAbstract.roleType == UnionRoleGenre_Super_Admin) { + self.rightButton.hidden = YES; + } + + if (_cellType == ClanMemberTableRegardCellGenre_Manager_Add_Remove) { + self.rightButton.selected = _componentAbstract.roleType == UnionRoleGenre_Manager; + } + } +} + +- (void)setCellType:(ClanMemberTableRegardCellGenre)cellType { + _cellType = cellType; + switch (_cellType) { + case ClanMemberTableRegardCellGenre_Normal: + { + [self.encourageRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.contentView).inset(15); + }]; + self.rightButton.hidden = YES; + } + break; + case ClanMemberTableRegardCellGenre_Remove_Member: + { + [self.encourageRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.contentView).inset(0); + }]; + self.rightButton.hidden = NO; + [self.rightButton setImage:[UIImage imageNamed:@"yumi_center_guild_guild_remove_member"] forState:UIControlStateNormal]; + [self.rightButton setImage:[UIImage imageNamed:@"yumi_center_guild_guild_remove_member"] forState:UIControlStateSelected]; + } + break; + case ClanMemberTableRegardCellGenre_Manager_Set: + { + [self.encourageRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.contentView).inset(0); + }]; + self.rightButton.hidden = NO; + [self.rightButton setImage:[UIImage imageNamed:@"yumi_scope_setting_arrow"] forState:UIControlStateNormal]; + [self.rightButton setImage:[UIImage imageNamed:@"yumi_scope_setting_arrow"] forState:UIControlStateSelected]; + } + break; + case ClanMemberTableRegardCellGenre_Manager_Add_Remove: + { + [self.encourageRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.contentView).inset(0); + }]; + self.rightButton.hidden = NO; + self.encourageRegard.backgroundColor = [DJDKMIMOMColor aplictowardsionEncouragegroundPrettify]; + [self.rightButton setImage:[UIImage imageNamed:@"yumi_center_guild_guild_manager_normal"] forState:UIControlStateNormal]; + [self.rightButton setImage:[UIImage imageNamed:@"yumi_center_guild_guild_manager_select"] forState:UIControlStateSelected]; + } + break; + default: + break; + } +} + +- (void)setIsRecent:(BOOL)isRecent { + _isRecent = isRecent; + if (_isRecent) { + self.encourageRegard.layer.mask = self.shapeLayer; + } else { + self.encourageRegard.layer.mask = nil; + } +} + +- (UIView *)encourageRegard { + if (!_encourageRegard) { + _encourageRegard = [[UIView alloc] init]; + _encourageRegard.backgroundColor = [DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify]; + _encourageRegard.layer.masksToBounds = YES; + } + return _encourageRegard; +} + +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _intelligenceportraitIndicateRegard.layer.cornerRadius = 54/2; + _intelligenceportraitIndicateRegard.layer.borderColor = [DJDKMIMOMColor aplictowardsionMainPrettify].CGColor; + } + return _intelligenceportraitIndicateRegard; +} + +- (UIButton *)roleBtuton { + if (!_roleBtuton) { + _roleBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_roleBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + _roleBtuton.titleLabel.font = [UIFont systemFontOfSize:12]; + _roleBtuton.layer.masksToBounds = YES; + _roleBtuton.layer.cornerRadius = 17.0 / 2.0; + } + return _roleBtuton; +} + +- (UILabel *)idSequencignation { + if (!_idSequencignation) { + _idSequencignation = [[UILabel alloc] init]; + _idSequencignation.font = [UIFont systemFontOfSize:12]; + _idSequencignation.textColor = [DJDKMIMOMColor instantEssayPrettify]; + } + return _idSequencignation; +} + +- (UIStackView *)monicerHierarchyRegard { + if (!_monicerHierarchyRegard) { + _monicerHierarchyRegard = [[UIStackView alloc] init]; + _monicerHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _monicerHierarchyRegard.distribution = UIStackViewDistributionFill; + _monicerHierarchyRegard.alignment = UIStackViewAlignmentFill; + _monicerHierarchyRegard.spacing = 7; + } + return _monicerHierarchyRegard; +} + + +- (UILabel *)monicerSequencignation { + if (!_monicerSequencignation) { + _monicerSequencignation = [[UILabel alloc] init]; + _monicerSequencignation.font = [UIFont systemFontOfSize:18]; + _monicerSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _monicerSequencignation; +} + +- (UIImageView *)seaxualityIndicateRegard { + if (!_seaxualityIndicateRegard) { + _seaxualityIndicateRegard = [[UIImageView alloc] init]; + _seaxualityIndicateRegard.userInteractionEnabled = YES; + } + return _seaxualityIndicateRegard; +} + +- (NetIndicateRegard *)experIndicateRegard { + if (!_experIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc] init]; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + config.imageType = ImageGenreUserCardLevel; + _experIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _experIndicateRegard.userInteractionEnabled = YES; + _experIndicateRegard.hidden = YES; + _experIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _experIndicateRegard; +} + +- (NetIndicateRegard *)fascinationIndicateRegard { + if (!_fascinationIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc] init]; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + config.imageType = ImageGenreUserCardLevel; + _fascinationIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _fascinationIndicateRegard.userInteractionEnabled = YES; + _fascinationIndicateRegard.hidden = YES; + _fascinationIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _fascinationIndicateRegard; +} + +- (UILabel *)guildMonicerSequencignation { + if (!_guildMonicerSequencignation) { + _guildMonicerSequencignation = [[UILabel alloc] init]; + _guildMonicerSequencignation.font = [UIFont systemFontOfSize:13]; + _guildMonicerSequencignation.textColor = [DJDKMIMOMColor instantEssayPrettify]; + } + return _guildMonicerSequencignation; +} + +- (UIImageView *)intelligenceportraitBorderRegard { + if (!_intelligenceportraitBorderRegard) { + _intelligenceportraitBorderRegard = [[UIImageView alloc] init]; + _intelligenceportraitBorderRegard.userInteractionEnabled = YES; + _intelligenceportraitBorderRegard.layer.masksToBounds = YES; + _intelligenceportraitBorderRegard.layer.cornerRadius = 57 / 2; + _intelligenceportraitBorderRegard.backgroundColor = [DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify]; + _intelligenceportraitBorderRegard.layer.borderWidth = 1; + } + return _intelligenceportraitBorderRegard; +} + +- (CAShapeLayer *)shapeLayer { + if (!_shapeLayer) { + _shapeLayer = [CAShapeLayer layer]; + _shapeLayer.path = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, KScreenWidth - 15 * 2, 66) byRoundingCorners:UIRectCornerBottomLeft | UIRectCornerBottomRight cornerRadii:CGSizeMake(12, 12)].CGPath; + } + return _shapeLayer; +} + + +- (UIButton *)rightButton { + if (!_rightButton) { + _rightButton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_rightButton addTarget:self action:@selector(rectifyBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + [_rightButton setEnlargeEdgeAboutApex:10 right:10 bottom:10 left:10]; + } + return _rightButton; +} + + +@end diff --git a/YuMi/Modules/YMMine/View/Guild/View/Cell/YUMIManeUnionDispossessTabulationRegardElement.h b/YuMi/Modules/YMMine/View/Guild/View/Cell/YUMIManeUnionDispossessTabulationRegardElement.h new file mode 100644 index 00000000..7486b2ee --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/Cell/YUMIManeUnionDispossessTabulationRegardElement.h @@ -0,0 +1,16 @@ +// +// YUMIManeUnionDispossessTabulationRegardElement.h +// YuMi +// +// Created by YuMi on 2022/4/7. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeUnionDispossessTabulationRegardElement : UITableViewCell +@property (nonatomic,copy) NSString *emptyTitle; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/View/Cell/YUMIManeUnionDispossessTabulationRegardElement.m b/YuMi/Modules/YMMine/View/Guild/View/Cell/YUMIManeUnionDispossessTabulationRegardElement.m new file mode 100644 index 00000000..6c9f57ae --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/Cell/YUMIManeUnionDispossessTabulationRegardElement.m @@ -0,0 +1,76 @@ +// +// YUMIManeUnionDispossessTabulationRegardElement.m +// YuMi +// +// Created by YuMi on 2022/4/7. +// + +#import "YUMIManeUnionDispossessTabulationRegardElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "UIIndicateConstant.h" + +@interface YUMIManeUnionDispossessTabulationRegardElement () +@property (nonatomic,strong) UIImageView *dispossessIndicateRegard; +@property (nonatomic,strong) UILabel *titleLabel; +@end + +@implementation YUMIManeUnionDispossessTabulationRegardElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor]; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.dispossessIndicateRegard]; + [self.contentView addSubview:self.titleLabel]; +} + +- (void)initChildLyRestrictions { + [self.dispossessIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.contentView).offset(150); + make.centerX.mas_equalTo(self.contentView); + make.size.mas_equalTo(CGSizeMake(200, 200)); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.dispossessIndicateRegard.mas_bottom).offset(20); + make.left.right.mas_equalTo(self.contentView); + }]; +} +#pragma mark - Getters And Setters +- (void)setEmptyTitle:(NSString *)emptyTitle { + _emptyTitle = emptyTitle; + if (_emptyTitle) { + self.titleLabel.text = _emptyTitle; + } +} + +- (UIImageView *)dispossessIndicateRegard { + if (!_dispossessIndicateRegard) { + _dispossessIndicateRegard = [[UIImageView alloc] init]; + _dispossessIndicateRegard.userInteractionEnabled = YES; + _dispossessIndicateRegard.image = [UIIndicateConstant defalutDispossessDepapossessor]; + _dispossessIndicateRegard.layer.masksToBounds = YES; + _dispossessIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _dispossessIndicateRegard; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.text = YMLocalizedString(@"YUMI_MineGuildEmptyTableViewCell0"); + _titleLabel.font = [UIFont systemFontOfSize:16]; + _titleLabel.textAlignment = NSTextAlignmentCenter; + _titleLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + } + return _titleLabel; +} +@end diff --git a/YuMi/Modules/YMMine/View/Guild/View/Cell/YUMIManeUnionHuntforComponentTabulationRegardElement.h b/YuMi/Modules/YMMine/View/Guild/View/Cell/YUMIManeUnionHuntforComponentTabulationRegardElement.h new file mode 100644 index 00000000..3c400119 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/Cell/YUMIManeUnionHuntforComponentTabulationRegardElement.h @@ -0,0 +1,22 @@ +// +// YUMIManeUnionHuntforComponentTabulationRegardElement.h +// YuMi +// +// Created by YuMi on 2022/4/8. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class UnionHuntforConsumerAbstractMatrix, YUMIManeUnionHuntforComponentTabulationRegardElement; +@protocol FBCManeUnionHuntforMemberTabulationViweElementRepresendtation + +- (void)fBCManeUnionHuntforComponentTarbsultowardsionViweElement:(YUMIManeUnionHuntforComponentTabulationRegardElement *)view didSelectInfo:(UnionHuntforConsumerAbstractMatrix *)userInfo; + +@end +@interface YUMIManeUnionHuntforComponentTabulationRegardElement : UITableViewCell +@property (nonatomic,strong) UnionHuntforConsumerAbstractMatrix *userInfo; +@property (nonatomic,weak) id delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/View/Cell/YUMIManeUnionHuntforComponentTabulationRegardElement.m b/YuMi/Modules/YMMine/View/Guild/View/Cell/YUMIManeUnionHuntforComponentTabulationRegardElement.m new file mode 100644 index 00000000..01134ad6 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/Cell/YUMIManeUnionHuntforComponentTabulationRegardElement.m @@ -0,0 +1,201 @@ +// +// YUMIManeUnionHuntforComponentTabulationRegardElement.m +// YuMi +// +// Created by YuMi on 2022/4/8. +// + +#import "YUMIManeUnionHuntforComponentTabulationRegardElement.h" +#import +#import "NetIndicateRegard.h" +#import "DJDKMIMOMColor.h" +#import "UIImage+Utils.h" +#import "UnionHuntforConsumerAbstractMatrix.h" +UIKIT_EXTERN NSString *kInviteMemeberSuccess; +@interface YUMIManeUnionHuntforComponentTabulationRegardElement () +@property (nonatomic,strong) NetIndicateRegard *intelligenceportraitIndicateRegard; +@property (nonatomic,strong) UILabel *monicerSequencignation; +@property (nonatomic,strong) UIImageView *seaxualityIndicateRegard; +@property (nonatomic,strong) UILabel *idSequencignation; +@property (nonatomic,strong) UIButton *centiretyforBtuton; + +@end + +@implementation YUMIManeUnionHuntforComponentTabulationRegardElement +-(void)dealloc{ + [[NSNotificationCenter defaultCenter]removeObserver:self]; +} +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify]; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.intelligenceportraitIndicateRegard]; + [self.contentView addSubview:self.monicerSequencignation]; + [self.contentView addSubview:self.seaxualityIndicateRegard]; + [self.contentView addSubview:self.idSequencignation]; + [self.contentView addSubview:self.centiretyforBtuton]; + [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(centiretyforMemeberAccomplishment:) name:kInviteMemeberSuccess object:nil]; +} +-(void)centiretyforMemeberAccomplishment:(NSNotification *)not{ + NSString *targetUid = not.object; + if([targetUid isEqualToString:self.userInfo.uid]){ + self.userInfo.hallBtnStatus = 5; + [self.centiretyforBtuton setTitle:YMLocalizedString(@"YUMI_MineGuildSearchMemberTableViewCell2") forState:UIControlStateNormal]; + self.centiretyforBtuton.backgroundColor = UIColorFromRGB(0xE6E6F0); + [self.centiretyforBtuton setTitleColor:UIColorFromRGB(0xB3B3C3) forState:UIControlStateNormal]; + [self.centiretyforBtuton setBackgroundImage:nil forState:UIControlStateNormal]; + self.centiretyforBtuton.hidden = NO; + } +} +- (void)initChildLyRestrictions { + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(50, 50)); + make.centerY.mas_equalTo(self.contentView); + make.left.mas_equalTo(self.contentView).offset(12); + }]; + + [self.monicerSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_right).offset(8); + make.height.mas_equalTo(17); + make.top.mas_equalTo(21); + }]; + + [self.idSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.monicerSequencignation); + make.top.mas_equalTo(45); + make.height.mas_equalTo(14); + }]; + + [self.seaxualityIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.monicerSequencignation.mas_right).offset(6); + make.centerY.mas_equalTo(self.monicerSequencignation); + make.size.mas_equalTo(CGSizeMake(14, 14)); + }]; + + [self.centiretyforBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(83, 30)); + make.centerY.mas_equalTo(self.contentView); + make.right.mas_equalTo(self.contentView).offset(-15); + }]; + + +} + +#pragma mark - Event Response +- (void)centiretyforBtutonPerformance:(UIButton *)sender { + if(self.userInfo.hallBtnStatus == 5)return; + if (self.delegate && [self.delegate respondsToSelector:@selector(fBCManeUnionHuntforComponentTarbsultowardsionViweElement:didSelectInfo:)]) { + [self.delegate fBCManeUnionHuntforComponentTarbsultowardsionViweElement:self didSelectInfo:self.userInfo]; + } +} + +#pragma mark - Getters And Setters +- (void)setUserInfo:(UnionHuntforConsumerAbstractMatrix *)userInfo { + _userInfo = userInfo; + if (_userInfo) { + self.intelligenceportraitIndicateRegard.imageUrl = _userInfo.avatar; + self.seaxualityIndicateRegard.image = _userInfo.gender == GenderGenre_Female ? [UIImage imageNamed:@"yumi_same_female"] : [UIImage imageNamed:@"yumi_same_male"]; + self.monicerSequencignation.text = _userInfo.nick; + self.idSequencignation.text = [NSString stringWithFormat:YMLocalizedString(@"YUMI_MineGuildSearchMemberTableViewCell0"), _userInfo.erbanNo]; + switch (_userInfo.hallBtnStatus) { + case 0: + { + _centiretyforBtuton.hidden = YES; + break; + } + case 4: + { + [_centiretyforBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + _centiretyforBtuton.backgroundColor = [UIColor clearColor]; + [_centiretyforBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + [_centiretyforBtuton setTitle:YMLocalizedString(@"YUMI_MineGuildSearchMemberTableViewCell1") forState:UIControlStateNormal]; + _centiretyforBtuton.hidden = NO; + break; + } + case 5: + { + [_centiretyforBtuton setTitle:YMLocalizedString(@"YUMI_MineGuildSearchMemberTableViewCell3") forState:UIControlStateNormal]; + _centiretyforBtuton.backgroundColor = UIColorFromRGB(0xE6E6F0); + [_centiretyforBtuton setTitleColor:UIColorFromRGB(0xB3B3C3) forState:UIControlStateNormal]; + [_centiretyforBtuton setBackgroundImage:nil forState:UIControlStateNormal]; + _centiretyforBtuton.hidden = NO; + break; + } + case 6: + { + [_centiretyforBtuton setTitle:YMLocalizedString(@"YUMI_MineGuildSearchMemberTableViewCell2") forState:UIControlStateNormal]; + _centiretyforBtuton.backgroundColor = UIColorFromRGB(0xFFBC51); + [_centiretyforBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + [_centiretyforBtuton setBackgroundImage:nil forState:UIControlStateNormal]; + _centiretyforBtuton.hidden = NO; + break; + } + default: + break; + } + } +} + +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _intelligenceportraitIndicateRegard.layer.cornerRadius = 25; + _intelligenceportraitIndicateRegard.layer.borderColor = [DJDKMIMOMColor aplictowardsionMainPrettify].CGColor; + } + return _intelligenceportraitIndicateRegard; +} + +- (UILabel *)monicerSequencignation { + if (!_monicerSequencignation) { + _monicerSequencignation = [[UILabel alloc] init]; + _monicerSequencignation.font = [UIFont systemFontOfSize:15]; + _monicerSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _monicerSequencignation; +} + +- (UIImageView *)seaxualityIndicateRegard { + if (!_seaxualityIndicateRegard) { + _seaxualityIndicateRegard = [[UIImageView alloc] init]; + _seaxualityIndicateRegard.userInteractionEnabled = YES; + } + return _seaxualityIndicateRegard; +} + +- (UILabel *)idSequencignation { + if (!_idSequencignation) { + _idSequencignation = [[UILabel alloc] init]; + _idSequencignation.font = [UIFont systemFontOfSize:10]; + _idSequencignation.textColor = [DJDKMIMOMColor instantEssayPrettify]; + } + return _idSequencignation; +} + +- (UIButton *)centiretyforBtuton { + if (!_centiretyforBtuton) { + _centiretyforBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_centiretyforBtuton setTitle:YMLocalizedString(@"YUMI_MineGuildSearchMemberTableViewCell1") forState:UIControlStateNormal]; + [_centiretyforBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + _centiretyforBtuton.titleLabel.font = [UIFont systemFontOfSize:14 weight:UIFontWeightMedium]; + [_centiretyforBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + _centiretyforBtuton.layer.masksToBounds = YES; + _centiretyforBtuton.layer.cornerRadius = 15; + [_centiretyforBtuton addTarget:self action:@selector(centiretyforBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _centiretyforBtuton; +} + + + +@end diff --git a/YuMi/Modules/YMMine/View/Guild/View/Cell/YUMIUnionDispossessAssembletionRegardElement.h b/YuMi/Modules/YMMine/View/Guild/View/Cell/YUMIUnionDispossessAssembletionRegardElement.h new file mode 100644 index 00000000..3cb09037 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/Cell/YUMIUnionDispossessAssembletionRegardElement.h @@ -0,0 +1,17 @@ +// +// YUMIUnionDispossessAssembletionRegardElement.h +// YuMi +// +// Created by YuMi on 2022/4/12. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIUnionDispossessAssembletionRegardElement : UICollectionViewCell +-(void)setConstraints; +-(void)setTitle:(NSString *)title; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/View/Cell/YUMIUnionDispossessAssembletionRegardElement.m b/YuMi/Modules/YMMine/View/Guild/View/Cell/YUMIUnionDispossessAssembletionRegardElement.m new file mode 100644 index 00000000..bebd6c85 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/Cell/YUMIUnionDispossessAssembletionRegardElement.m @@ -0,0 +1,77 @@ +// +// YUMIUnionDispossessAssembletionRegardElement.m +// YuMi +// +// Created by YuMi on 2022/4/12. +// + +#import "YUMIUnionDispossessAssembletionRegardElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "UIIndicateConstant.h" + +@interface YUMIUnionDispossessAssembletionRegardElement () +@property (nonatomic,strong) UIImageView *dispossessIndicateRegard; +@property (nonatomic,strong) UILabel *titleLabel; +@end + +@implementation YUMIUnionDispossessAssembletionRegardElement + +- (instancetype)initWithFrame:(CGRect)frame +{ + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} +-(void)setTitle:(NSString *)title{ + _titleLabel.text = title; +} +#pragma mark - Private Method +- (void)initSubViews { + [self.contentView addSubview:self.dispossessIndicateRegard]; + [self.contentView addSubview:self.titleLabel]; +} +-(void)setConstraints{ + [self.dispossessIndicateRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.contentView).offset(kGetScaleWidth(90)); + }]; +} +- (void)initChildLyRestrictions { + [self.dispossessIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.contentView); + make.top.mas_equalTo(self.contentView).offset(150); + make.size.mas_equalTo(CGSizeMake(100, 100)); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.dispossessIndicateRegard.mas_bottom).offset(20); + make.left.right.mas_equalTo(self.contentView); + }]; +} +#pragma mark - Getters And Setters +- (UIImageView *)dispossessIndicateRegard { + if (!_dispossessIndicateRegard) { + _dispossessIndicateRegard = [[UIImageView alloc] init]; + _dispossessIndicateRegard.userInteractionEnabled = YES; + _dispossessIndicateRegard.image = [UIIndicateConstant defalutDispossessDepapossessor]; + _dispossessIndicateRegard.layer.masksToBounds = YES; + _dispossessIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _dispossessIndicateRegard; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.text = YMLocalizedString(@"YUMI_Guild_Empty_Collection_View_Cell_0"); + _titleLabel.font = [UIFont systemFontOfSize:16]; + _titleLabel.textAlignment = NSTextAlignmentCenter; + _titleLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + } + return _titleLabel; +} + +@end diff --git a/YuMi/Modules/YMMine/View/Guild/View/IncomeStatis/YUMIManeCollectiveRevenueStatsticsRegardGovernancer.h b/YuMi/Modules/YMMine/View/Guild/View/IncomeStatis/YUMIManeCollectiveRevenueStatsticsRegardGovernancer.h new file mode 100644 index 00000000..f6a5684f --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/IncomeStatis/YUMIManeCollectiveRevenueStatsticsRegardGovernancer.h @@ -0,0 +1,16 @@ +// +// YUMI_MineClanStatisViewController.h +// YuMi +// +// Created by YuMi on 2022/4/11. +// 家族收入统计 + +#import "BaseRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeCollectiveRevenueStatsticsRegardGovernancer : BaseRegardGovernancer +@property (nonatomic,copy) NSString *clanId; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/View/IncomeStatis/YUMIManeCollectiveRevenueStatsticsRegardGovernancer.m b/YuMi/Modules/YMMine/View/Guild/View/IncomeStatis/YUMIManeCollectiveRevenueStatsticsRegardGovernancer.m new file mode 100644 index 00000000..756c1d97 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/IncomeStatis/YUMIManeCollectiveRevenueStatsticsRegardGovernancer.m @@ -0,0 +1,154 @@ +// +// YUMI_MineClanStatisViewController.m +// YuMi +// +// Created by YuMi on 2022/4/11. +// + +#import "YUMIManeCollectiveRevenueStatsticsRegardGovernancer.h" +#import +#import +#import +#import + +#import "DJDKMIMOMColor.h" +#import "YUMIManeUnionRevenueReflectionRegardGovernancer.h" + +@interface YUMIManeCollectiveRevenueStatsticsRegardGovernancer () +@property (nonatomic, strong) NSArray *titles; +@property (nonatomic, strong) JXCategoryTitleView *titleView; +@property (nonatomic, strong) JXCategoryListContainerView *contentView; +@property (nonatomic,strong) YUMIManeUnionRevenueReflectionRegardGovernancer *dayReflectionVewC; +@property (nonatomic,strong) YUMIManeUnionRevenueReflectionRegardGovernancer *zhouReflectionVewC; +@property (nonatomic,strong) YUMIManeUnionRevenueReflectionRegardGovernancer *mouthReflectionVewC; +@end + +@implementation YUMIManeCollectiveRevenueStatsticsRegardGovernancer + +- (void)viewDidLoad { + [super viewDidLoad]; + self.title = YMLocalizedString(@"YUMI_MineClanIncomeStatisViewController0"); + [self initSubViews]; + [self initChildLyRestrictions]; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self.view addSubview:self.titleView]; + [self.view addSubview:self.contentView]; +} + +- (void)initChildLyRestrictions { + [self.titleView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.view).offset(10); + make.left.right.mas_equalTo(self.view); + make.height.mas_equalTo(30); + }]; + + [self.contentView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.titleView.mas_bottom); + make.left.right.bottom.mas_equalTo(self.view); + }]; +} + +#pragma mark - JXCategoryViewDelegate +- (NSInteger)numberOfListsInlistContainerView:(JXCategoryListContainerView *)listContainerView { + return self.titles.count; +} + +- (id)listContainerView:(JXCategoryListContainerView *)listContainerView initListForIndex:(NSInteger)index { + if (index == 0) { + return self.dayReflectionVewC; + } else if(index == 1) { + return self.zhouReflectionVewC; + } else { + return self.mouthReflectionVewC; + } +} + +- (void)categoryView:(JXCategoryBaseView *)categoryView didSelectedItemAtIndex:(NSInteger)index { + if (index == 0) { + self.dayReflectionVewC.intratemporalGenre = UnionIncomeRecrdTimeGenre_Day; + } else if(index == 1) { + self.zhouReflectionVewC.intratemporalGenre = UnionIncomeRecrdTimeGenre_Week; + } else { + self.mouthReflectionVewC.intratemporalGenre = UnionIncomeRecrdTimeGenre_Mouth; + } +} + +#pragma mark - Getters And Setters +- (void)setClanId:(NSString *)clanId { + _clanId = clanId; + self.dayReflectionVewC.characteristicId = _clanId; + self.zhouReflectionVewC.characteristicId = _clanId; + self.mouthReflectionVewC.characteristicId = _clanId; + self.dayReflectionVewC.intratemporalGenre = UnionIncomeRecrdTimeGenre_Day; +} + +- (JXCategoryTitleView *)titleView { + if (!_titleView) { + _titleView = [[JXCategoryTitleView alloc] init]; + _titleView.delegate = self; + _titleView.titles = self.titles; + _titleView.backgroundColor = [DJDKMIMOMColor aplictowardsionEncouragegroundPrettify]; + _titleView.titleColor = [DJDKMIMOMColor instantEssayPrettify]; + _titleView.titleSelectedColor = [DJDKMIMOMColor mainEssayPrettify]; + _titleView.titleFont = [UIFont fontWithName:@"PingFang-SC-Medium" size:16]; + _titleView.titleSelectedFont = [UIFont fontWithName:@"PingFang-SC-Medium" size:16]; + _titleView.titleLabelAnchorPointStyle = JXCategoryTitleLabelAnchorPointStyleCenter; + _titleView.contentScrollViewClickTransitionAnimationEnabled = NO; + _titleView.defaultSelectedIndex = 0; + _titleView.cellSpacing = 5; + _titleView.cellWidthIncrement = 5; + _titleView.listContainer = self.contentView; + + JXCategoryIndicatorLineView *burlywoodRegard = [[JXCategoryIndicatorLineView alloc] init]; + burlywoodRegard.indicatorColor = [DJDKMIMOMColor aplictowardsionMainPrettify]; + burlywoodRegard.indicatorWidth = 8.f; + burlywoodRegard.indicatorHeight = 4.f; + burlywoodRegard.indicatorCornerRadius = 2.f; + _titleView.indicators = @[burlywoodRegard]; + } + return _titleView; +} + +- (JXCategoryListContainerView *)contentView { + if (!_contentView) { + _contentView = [[JXCategoryListContainerView alloc] initWithType:JXCategoryListContainerType_ScrollView delegate:self]; + _contentView.defaultSelectedIndex = 0; + } + return _contentView; +} + +- (NSArray *)titles { + if (!_titles) { + _titles = @[YMLocalizedString(@"YUMI_MineClanIncomeStatisViewController1"), YMLocalizedString(@"YUMI_MineClanIncomeStatisViewController2"), YMLocalizedString(@"YUMI_MineClanIncomeStatisViewController3")]; + } + return _titles; +} + +- (YUMIManeUnionRevenueReflectionRegardGovernancer *)dayReflectionVewC { + if (!_dayReflectionVewC) { + _dayReflectionVewC = [[YUMIManeUnionRevenueReflectionRegardGovernancer alloc] init]; + _dayReflectionVewC.revenueGenre = UnionIncomeGenre_Clan; + } + return _dayReflectionVewC; +} + +- (YUMIManeUnionRevenueReflectionRegardGovernancer *)zhouReflectionVewC { + if (!_zhouReflectionVewC) { + _zhouReflectionVewC = [[YUMIManeUnionRevenueReflectionRegardGovernancer alloc] init]; + _zhouReflectionVewC.revenueGenre = UnionIncomeGenre_Clan; + } + return _zhouReflectionVewC; +} + +- (YUMIManeUnionRevenueReflectionRegardGovernancer *)mouthReflectionVewC { + if (!_mouthReflectionVewC) { + _mouthReflectionVewC = [[YUMIManeUnionRevenueReflectionRegardGovernancer alloc] init]; + _mouthReflectionVewC.revenueGenre = UnionIncomeGenre_Clan; + } + return _mouthReflectionVewC; +} + +@end diff --git a/YuMi/Modules/YMMine/View/Guild/View/IncomeStatis/YUMIManeGoldRevenueReflectionVC.h b/YuMi/Modules/YMMine/View/Guild/View/IncomeStatis/YUMIManeGoldRevenueReflectionVC.h new file mode 100644 index 00000000..c6b1e23a --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/IncomeStatis/YUMIManeGoldRevenueReflectionVC.h @@ -0,0 +1,16 @@ +// +// YUMIManeGoldRevenueReflectionVC.h +// YuMi +// +// Created by YuMi on 2022/12/16. +// + +#import "MvpRegardGovernancer.h" +#import +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeGoldRevenueReflectionVC : MvpRegardGovernancer + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/View/IncomeStatis/YUMIManeGoldRevenueReflectionVC.m b/YuMi/Modules/YMMine/View/Guild/View/IncomeStatis/YUMIManeGoldRevenueReflectionVC.m new file mode 100644 index 00000000..2100b0b2 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/IncomeStatis/YUMIManeGoldRevenueReflectionVC.m @@ -0,0 +1,266 @@ +// +// YUMIManeGoldRevenueReflectionVC.m +// YuMi +// +// Created by YuMi on 2022/12/16. +// + +#import "YUMIManeGoldRevenueReflectionVC.h" +#import +#import +#import "DJDKMIMOMColor.h" +#import "PLIntratemporalUtil.h" +#import "MKJPopup.h" +#import "NSDate+DateUtils.h" + +#import "UnionRevenueReflectionMatrix.h" +#import "UnionFeatureRevenueReflectionMatrix.h" +#import "YUMIUnionRevenueReflectionTabulationRegardElement.h" +#import "YUMIUnionFeatureRevenueTabulationRegardElement.h" +#import "YUMIManeUnionDispossessTabulationRegardElement.h" +#import "YUMIRevenueReflectionGoldSpecificsElement.h" +#import "YUMIUnionRevenueDivisionRegard.h" +#import "YUMIUnionKellegRevenueDivisionRegard.h" +#import "YUMIUnionRevenueIntelligencerRegard.h" +#import "YUMIUnionIntratemporalPickRegard.h" +#import "YUMIUnionIntratemporalMonthPickerRegard.h" +#import "YUMIGoldRevenueDivisionRegard.h" +#import "YUMIManeUnionRevenueSpecificRegardGovernancer.h" + +#import "YUMICollectiveExternalizer.h" +#import "FBCCollectiveCeremony.h" + +@interface YUMIManeGoldRevenueReflectionVC () +@property (nonatomic,strong) UITableView *tableView; +@property (nonatomic,strong) YUMIUnionRevenueIntelligencerRegard *intelligenceerRegard; +@property (nonatomic,strong) NSArray *datasource; +@property (nonatomic,strong) NSDate *endDate; +@property (nonatomic,strong) NSDate *startDate; +@property (nonatomic,strong) NSDate *currentDate; +@property (nonatomic,strong) YUMIUnionIntratemporalMonthPickerRegard *monthExtracterRegard; +@property (nonatomic,copy) NSString *startIntratemporalBWStt; +@property (nonatomic,copy) NSString *endIntratemporalBWStt; +@property (nonatomic,strong) YUMIGoldRevenueDivisionRegard *sectionRegard; +@property (nonatomic,assign) int type; +@property (nonatomic,strong) UIView *foodRegard; +@end + +@implementation YUMIManeGoldRevenueReflectionVC +- (__kindof id)producePresimport { + return [[YUMICollectiveExternalizer alloc] init]; +} +- (void)viewDidLoad { + [super viewDidLoad]; + [self initSubViews]; + [self initChildLyRestrictions]; + self.type = 1; + [self weekSeasonAboutUniversalEngagement:[NSDate date]]; + self.startIntratemporalBWStt = [PLIntratemporalUtil acquireYYMMDDAboutEngagement:self.startDate]; + self.endIntratemporalBWStt = [PLIntratemporalUtil acquireYYMMDDAboutEngagement:self.endDate]; + self.intelligenceerRegard.intratemporalGenre = UnionIncomeRecrdTimeGenre_Week; + [self.intelligenceerRegard prohibitipositionIntelligencerRegard:self.startDate endTime:self.endDate]; + [self.presimport acquireCollectiveChamberGoldSttowardsement:self.startIntratemporalBWStt endTime:self.endIntratemporalBWStt]; +} + + + + +#pragma mark- FBCCollectiveCeremony +- (void)acquireCollectiveChamberGoldsSttowardsementAccomplishment:(YUMIRevenueReflectionGoldSpecificsMatrix *)model{ + self.intelligenceerRegard.generalRevenue = model.total; + if(self.type == 1){ + NSArray *list = [model.hallMember sortedArrayUsingComparator:^NSComparisonResult(YUMIRevenueReflectionGoldSpecificProvisionMatrix * _Nonnull obj1, YUMIRevenueReflectionGoldSpecificProvisionMatrix * _Nonnull obj2) { + return obj1.giftDiamonds.integerValue < obj2.giftDiamonds.integerValue; + }]; + self.datasource = list; + }else{ + NSArray *list = [model.hallMember sortedArrayUsingComparator:^NSComparisonResult(YUMIRevenueReflectionGoldSpecificProvisionMatrix * _Nonnull obj1, YUMIRevenueReflectionGoldSpecificProvisionMatrix * _Nonnull obj2) { + return obj1.remainGolds.integerValue < obj2.remainGolds.integerValue; + }]; + self.datasource = list; + } + + [self.tableView reloadData]; +} +- (void)weekSeasonAboutUniversalEngagement:(NSDate *)date { + NSCalendar * calendar = [NSCalendar currentCalendar]; + NSDateComponents *comps = [calendar components:NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitWeekday | NSCalendarUnitDay fromDate:date]; + + + NSInteger weekDay = [comps weekday]; + + NSInteger day = [comps day]; + long firstDiff,lastDiff; + if (weekDay == 1){ + firstDiff = -6; + lastDiff = 0; + } else { + firstDiff = -(weekDay - 2); + lastDiff = 8 - weekDay; + } + + NSDateComponents *baseDayComp = [calendar components:NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay fromDate:date]; + + [baseDayComp setDay:day + firstDiff]; + NSDate *firstDayOfWeek = [calendar dateFromComponents:baseDayComp]; + self.startDate = firstDayOfWeek; + + [baseDayComp setDay:day + lastDiff]; + NSDate *lastDayOfWeek = [calendar dateFromComponents:baseDayComp]; + self.endDate = lastDayOfWeek; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.view.backgroundColor = [UIColor whiteColor]; + [self.view addSubview:self.intelligenceerRegard]; + [self.view addSubview:self.sectionRegard]; + [self.view addSubview:self.tableView]; +} +- (void)initChildLyRestrictions { + [self.intelligenceerRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.view); + make.right.mas_equalTo(self.view); + make.top.mas_equalTo(self.view); + make.height.mas_equalTo(kGetScaleWidth(124)); + }]; + + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.mas_equalTo(self.view); + make.top.mas_equalTo(self.sectionRegard.mas_bottom); + }]; +} +#pragma mark - UITableViewDelegate And UITableViewDataSource +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.datasource.count > 0 ? self.datasource.count : 1; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + return self.datasource.count > 0 ? kGetScaleWidth(71) : 400; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + if(self.datasource.count > 0){ + YUMIRevenueReflectionGoldSpecificsElement * cell = [tableView dequeueReusableCellWithIdentifier:@"XPIncomeRecordGoldDetailsCellWithClan" forIndexPath:indexPath]; + cell.specificMatrix = self.datasource[indexPath.row]; + cell.path = indexPath.row; + return cell; + } + YUMIManeUnionDispossessTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIManeUnionDispossessTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIManeUnionDispossessTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIManeUnionDispossessTabulationRegardElement class])]; + } + return cell; +} +- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section{ + if(self.datasource.count > 0){ + return kGetScaleWidth(108); + } + return 0; +} +-(UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section{ + if(self.datasource.count > 0){ + return self.foodRegard; + } + + return nil; + +} +#pragma mark- FBCGoldIncomeSectionRegardRepresendtation + +- (void)concludeGoldTangerineTelling:(int)type isAscending:(BOOL)isAscending{ + if(type == 1){ + self.type = 1; + NSArray *list = [self.datasource sortedArrayUsingComparator:^NSComparisonResult(YUMIRevenueReflectionGoldSpecificProvisionMatrix * _Nonnull obj1, YUMIRevenueReflectionGoldSpecificProvisionMatrix * _Nonnull obj2) { + if(isAscending == YES){ + return obj2.giftDiamonds.integerValue > obj1.giftDiamonds.integerValue; + } + return obj1.giftDiamonds.integerValue > obj2.giftDiamonds.integerValue; + }]; + self.datasource = [NSMutableArray arrayWithArray:list]; + [self.tableView reloadData]; + return; + } + self.type = 2; + NSArray *list = [self.datasource sortedArrayUsingComparator:^NSComparisonResult(YUMIRevenueReflectionGoldSpecificProvisionMatrix * _Nonnull obj1, YUMIRevenueReflectionGoldSpecificProvisionMatrix * _Nonnull obj2) { + if(isAscending == YES){ + return obj2.remainGolds.integerValue > obj1.remainGolds.integerValue; + } + return obj1.remainGolds.integerValue > obj2.remainGolds.integerValue; + }]; + self.datasource = [NSMutableArray arrayWithArray:list]; + [self.tableView reloadData]; +} + +#pragma mark - FBCUnionIncomeIntelligencerRegardRepresendtation +- (void)yUMIUnionRevenueIntelligencerRegard:(YUMIUnionRevenueIntelligencerRegard *)view didChooseTime:(UIButton *)sender { +} +- (void)didTicktackSurePerformanceWtihInititowardseEngagement:(NSDate *)startDate endDate:(NSDate *)endDate{ + self.startIntratemporalBWStt = [PLIntratemporalUtil acquireYYMMDDAboutEngagement:startDate]; + self.endIntratemporalBWStt = [PLIntratemporalUtil acquireYYMMDDAboutEngagement:endDate]; + [self.intelligenceerRegard prohibitipositionIntelligencerRegard:startDate endTime:endDate]; + [self.presimport acquireCollectiveChamberGoldSttowardsement:self.startIntratemporalBWStt endTime:self.endIntratemporalBWStt]; +} + +#pragma mark - JXCategoryListContentViewDelegate +- (UIView *)listView { + return self.view; +} + +#pragma mark - Getters And Setters + +- (void)scrollViewDidScroll:(UIScrollView *)scrollView { + CGFloat sectionHeaderHeight = 37; + if (scrollView.contentOffset.y<=sectionHeaderHeight&&scrollView.contentOffset.y>=0) { + scrollView.contentInset = UIEdgeInsetsMake(-scrollView.contentOffset.y, 0, 0, 0); + } else if (scrollView.contentOffset.y>=sectionHeaderHeight) { + scrollView.contentInset = UIEdgeInsetsMake(-sectionHeaderHeight, 0, 0, 0); + } +} + +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.backgroundColor = [UIColor clearColor]; + if (@available(iOS 11.0, *)) { + _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + [_tableView registerClass:[YUMIManeUnionDispossessTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIManeUnionDispossessTabulationRegardElement class])]; + [_tableView registerClass:[YUMIRevenueReflectionGoldSpecificsElement class] forCellReuseIdentifier:@"XPIncomeRecordGoldDetailsCellWithClan"]; + } + return _tableView; +} + +- (YUMIUnionRevenueIntelligencerRegard *)intelligenceerRegard { + if (!_intelligenceerRegard) { + _intelligenceerRegard = [[YUMIUnionRevenueIntelligencerRegard alloc] init]; + _intelligenceerRegard.backgroundColor = [UIColor whiteColor]; + _intelligenceerRegard.delegate = self; + } + return _intelligenceerRegard; +} + +- (YUMIGoldRevenueDivisionRegard *)sectionRegard{ + if (!_sectionRegard){ + _sectionRegard = [[YUMIGoldRevenueDivisionRegard alloc]initWithFrame:CGRectMake(0, kGetScaleWidth(124), KScreenWidth, kGetScaleWidth(47))]; + _sectionRegard.delegate = self; + } + return _sectionRegard; +} +- (UIView *)foodRegard{ + if (!_foodRegard){ + _foodRegard = [[UIView alloc]initWithFrame:CGRectMake(0, 0, KScreenWidth, kGetScaleWidth(108))]; + UILabel *titleView = [[UILabel alloc] init]; + titleView.text = YMLocalizedString(@"YUMI_MineGoldIncomeRecordVC0"); + titleView.font = [UIFont systemFontOfSize:14 weight:UIFontWeightMedium]; + titleView.textColor = [DJDKMIMOMColor prohibitionBtutonEssayPrettify]; + titleView.textAlignment = NSTextAlignmentCenter; + titleView.frame = _foodRegard.bounds; + [_foodRegard addSubview:titleView]; + } + return _foodRegard; +} +@end diff --git a/YuMi/Modules/YMMine/View/Guild/View/IncomeStatis/YUMIManeHallKellegRevenueStatsticsRegardGovernancer.h b/YuMi/Modules/YMMine/View/Guild/View/IncomeStatis/YUMIManeHallKellegRevenueStatsticsRegardGovernancer.h new file mode 100644 index 00000000..97fdd3da --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/IncomeStatis/YUMIManeHallKellegRevenueStatsticsRegardGovernancer.h @@ -0,0 +1,16 @@ +// +// YUMIManeHallKellegRevenueStatsticsRegardGovernancer.h +// YuMi +// +// Created by YuMi on 2022/4/12. +// + +#import "BaseRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeHallKellegRevenueStatsticsRegardGovernancer : BaseRegardGovernancer +@property (nonatomic,copy) NSString *hallId; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/View/IncomeStatis/YUMIManeHallKellegRevenueStatsticsRegardGovernancer.m b/YuMi/Modules/YMMine/View/Guild/View/IncomeStatis/YUMIManeHallKellegRevenueStatsticsRegardGovernancer.m new file mode 100644 index 00000000..ba09e5ec --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/IncomeStatis/YUMIManeHallKellegRevenueStatsticsRegardGovernancer.m @@ -0,0 +1,140 @@ +// +// YUMIManeHallKellegRevenueStatsticsRegardGovernancer.m +// YuMi +// +// Created by YuMi on 2022/4/12. +// + +#import "YUMIManeHallKellegRevenueStatsticsRegardGovernancer.h" +#import +#import +#import +#import + +#import "DJDKMIMOMColor.h" +#import "YUMIManeUnionRevenueReflectionRegardGovernancer.h" + +@interface YUMIManeHallKellegRevenueStatsticsRegardGovernancer () +@property (nonatomic, strong) NSArray *titles; +@property (nonatomic, strong) JXCategoryTitleView *titleView; +@property (nonatomic, strong) JXCategoryListContainerView *contentView; +@property (nonatomic,strong) YUMIManeUnionRevenueReflectionRegardGovernancer *dayReflectionVewC; +@property (nonatomic,strong) YUMIManeUnionRevenueReflectionRegardGovernancer *zhouReflectionVewC; +@end + +@implementation YUMIManeHallKellegRevenueStatsticsRegardGovernancer + +- (void)viewDidLoad { + [super viewDidLoad]; + self.title = YMLocalizedString(@"YUMI_MineHallAnchorIncomeStatisViewController0"); + [self initSubViews]; + [self initChildLyRestrictions]; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self.view addSubview:self.titleView]; + [self.view addSubview:self.contentView]; +} + +- (void)initChildLyRestrictions { + [self.titleView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.view).offset(10); + make.left.right.mas_equalTo(self.view); + make.height.mas_equalTo(30); + }]; + + [self.contentView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.titleView.mas_bottom); + make.left.right.bottom.mas_equalTo(self.view); + }]; +} + +#pragma mark - JXCategoryViewDelegate +- (NSInteger)numberOfListsInlistContainerView:(JXCategoryListContainerView *)listContainerView { + return self.titles.count; +} + +- (id)listContainerView:(JXCategoryListContainerView *)listContainerView initListForIndex:(NSInteger)index { + if (index == 0) { + return self.dayReflectionVewC; + } else { + return self.zhouReflectionVewC; + } +} + +- (void)categoryView:(JXCategoryBaseView *)categoryView didSelectedItemAtIndex:(NSInteger)index { + if (index == 0) { + self.dayReflectionVewC.intratemporalGenre = UnionIncomeRecrdTimeGenre_Day; + } else { + self.zhouReflectionVewC.intratemporalGenre = UnionIncomeRecrdTimeGenre_Week; + } +} + +#pragma mark - Getters And Setters +- (void)setHallId:(NSString *)hallId { + _hallId = hallId; + self.dayReflectionVewC.characteristicId = _hallId; + self.zhouReflectionVewC.characteristicId = _hallId; + self.dayReflectionVewC.intratemporalGenre = UnionIncomeRecrdTimeGenre_Day; +} + +- (JXCategoryTitleView *)titleView { + if (!_titleView) { + _titleView = [[JXCategoryTitleView alloc] init]; + _titleView.delegate = self; + _titleView.titles = self.titles; + _titleView.backgroundColor = [DJDKMIMOMColor aplictowardsionEncouragegroundPrettify]; + _titleView.titleColor = [DJDKMIMOMColor instantEssayPrettify]; + _titleView.titleSelectedColor = [DJDKMIMOMColor mainEssayPrettify]; + _titleView.titleFont = [UIFont fontWithName:@"PingFang-SC-Medium" size:16]; + _titleView.titleSelectedFont = [UIFont fontWithName:@"PingFang-SC-Medium" size:16]; + _titleView.titleLabelAnchorPointStyle = JXCategoryTitleLabelAnchorPointStyleCenter; + _titleView.contentScrollViewClickTransitionAnimationEnabled = NO; + _titleView.defaultSelectedIndex = 0; + _titleView.cellSpacing = 5; + _titleView.cellWidthIncrement = 5; + _titleView.listContainer = self.contentView; + + JXCategoryIndicatorLineView *burlywoodRegard = [[JXCategoryIndicatorLineView alloc] init]; + burlywoodRegard.indicatorColor = [DJDKMIMOMColor aplictowardsionMainPrettify]; + burlywoodRegard.indicatorWidth = 8.f; + burlywoodRegard.indicatorHeight = 4.f; + burlywoodRegard.indicatorCornerRadius = 2.f; + _titleView.indicators = @[burlywoodRegard]; + } + return _titleView; +} + +- (JXCategoryListContainerView *)contentView { + if (!_contentView) { + _contentView = [[JXCategoryListContainerView alloc] initWithType:JXCategoryListContainerType_ScrollView delegate:self]; + _contentView.defaultSelectedIndex = 0; + } + return _contentView; +} + +- (NSArray *)titles { + if (!_titles) { + _titles = @[YMLocalizedString(@"YUMI_MineHallAnchorIncomeStatisViewController1"), YMLocalizedString(@"YUMI_MineHallAnchorIncomeStatisViewController2")]; + } + return _titles; +} + +- (YUMIManeUnionRevenueReflectionRegardGovernancer *)dayReflectionVewC { + if (!_dayReflectionVewC) { + _dayReflectionVewC = [[YUMIManeUnionRevenueReflectionRegardGovernancer alloc] init]; + _dayReflectionVewC.revenueGenre = UnionIncomeGenre_Anchor; + } + return _dayReflectionVewC; +} + +- (YUMIManeUnionRevenueReflectionRegardGovernancer *)zhouReflectionVewC { + if (!_zhouReflectionVewC) { + _zhouReflectionVewC = [[YUMIManeUnionRevenueReflectionRegardGovernancer alloc] init]; + _zhouReflectionVewC.revenueGenre = UnionIncomeGenre_Anchor; + } + return _zhouReflectionVewC; +} + +@end diff --git a/YuMi/Modules/YMMine/View/Guild/View/IncomeStatis/YUMIManeKellegRevenueStatsticsRegardGovernancer.h b/YuMi/Modules/YMMine/View/Guild/View/IncomeStatis/YUMIManeKellegRevenueStatsticsRegardGovernancer.h new file mode 100644 index 00000000..38d3ecb6 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/IncomeStatis/YUMIManeKellegRevenueStatsticsRegardGovernancer.h @@ -0,0 +1,16 @@ +// +// YUMIManeKellegRevenueStatsticsRegardGovernancer.h +// YuMi +// +// Created by YuMi on 2022/4/11. +// + +#import "BaseRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeKellegRevenueStatsticsRegardGovernancer : BaseRegardGovernancer +@property (nonatomic,copy) NSString *clanId; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/View/IncomeStatis/YUMIManeKellegRevenueStatsticsRegardGovernancer.m b/YuMi/Modules/YMMine/View/Guild/View/IncomeStatis/YUMIManeKellegRevenueStatsticsRegardGovernancer.m new file mode 100644 index 00000000..fb09af0b --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/IncomeStatis/YUMIManeKellegRevenueStatsticsRegardGovernancer.m @@ -0,0 +1,140 @@ +// +// YUMIManeKellegRevenueStatsticsRegardGovernancer.m +// YuMi +// +// Created by YuMi on 2022/4/11. +// 家族个播收入统计 + +#import "YUMIManeKellegRevenueStatsticsRegardGovernancer.h" +#import +#import +#import +#import + +#import "DJDKMIMOMColor.h" +#import "YUMIManeUnionRevenueReflectionRegardGovernancer.h" + +@interface YUMIManeKellegRevenueStatsticsRegardGovernancer () +@property (nonatomic, strong) NSArray *titles; +@property (nonatomic, strong) JXCategoryTitleView *titleView; +@property (nonatomic, strong) JXCategoryListContainerView *contentView; +@property (nonatomic,strong) YUMIManeUnionRevenueReflectionRegardGovernancer *dayReflectionVewC; +@property (nonatomic,strong) YUMIManeUnionRevenueReflectionRegardGovernancer *zhouReflectionVewC; +@end + +@implementation YUMIManeKellegRevenueStatsticsRegardGovernancer + +- (void)viewDidLoad { + [super viewDidLoad]; + self.title = YMLocalizedString(@"YUMI_MineAnchorIncomeStatisViewController0"); + [self initSubViews]; + [self initChildLyRestrictions]; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self.view addSubview:self.titleView]; + [self.view addSubview:self.contentView]; +} + +- (void)initChildLyRestrictions { + [self.titleView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.view).offset(10); + make.left.right.mas_equalTo(self.view); + make.height.mas_equalTo(30); + }]; + + [self.contentView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.titleView.mas_bottom); + make.left.right.bottom.mas_equalTo(self.view); + }]; +} + +#pragma mark - JXCategoryViewDelegate +- (NSInteger)numberOfListsInlistContainerView:(JXCategoryListContainerView *)listContainerView { + return self.titles.count; +} + +- (id)listContainerView:(JXCategoryListContainerView *)listContainerView initListForIndex:(NSInteger)index { + if (index == 0) { + return self.dayReflectionVewC; + } else { + return self.zhouReflectionVewC; + } +} + +- (void)categoryView:(JXCategoryBaseView *)categoryView didSelectedItemAtIndex:(NSInteger)index { + if (index == 0) { + self.dayReflectionVewC.intratemporalGenre = UnionIncomeRecrdTimeGenre_Day; + } else { + self.zhouReflectionVewC.intratemporalGenre = UnionIncomeRecrdTimeGenre_Week; + } +} + +#pragma mark - Getters And Setters +- (void)setClanId:(NSString *)clanId { + _clanId = clanId; + self.dayReflectionVewC.clanId = _clanId; + self.zhouReflectionVewC.clanId = _clanId; + self.dayReflectionVewC.intratemporalGenre = UnionIncomeRecrdTimeGenre_Day; +} + +- (JXCategoryTitleView *)titleView { + if (!_titleView) { + _titleView = [[JXCategoryTitleView alloc] init]; + _titleView.delegate = self; + _titleView.titles = self.titles; + _titleView.backgroundColor = [DJDKMIMOMColor aplictowardsionEncouragegroundPrettify]; + _titleView.titleColor = [DJDKMIMOMColor instantEssayPrettify]; + _titleView.titleSelectedColor = [DJDKMIMOMColor mainEssayPrettify]; + _titleView.titleFont = [UIFont fontWithName:@"PingFang-SC-Medium" size:16]; + _titleView.titleSelectedFont = [UIFont fontWithName:@"PingFang-SC-Medium" size:16]; + _titleView.titleLabelAnchorPointStyle = JXCategoryTitleLabelAnchorPointStyleCenter; + _titleView.contentScrollViewClickTransitionAnimationEnabled = NO; + _titleView.defaultSelectedIndex = 0; + _titleView.cellSpacing = 5; + _titleView.cellWidthIncrement = 5; + _titleView.listContainer = self.contentView; + + JXCategoryIndicatorLineView *burlywoodRegard = [[JXCategoryIndicatorLineView alloc] init]; + burlywoodRegard.indicatorColor = [DJDKMIMOMColor aplictowardsionMainPrettify]; + burlywoodRegard.indicatorWidth = 8.f; + burlywoodRegard.indicatorHeight = 4.f; + burlywoodRegard.indicatorCornerRadius = 2.f; + _titleView.indicators = @[burlywoodRegard]; + } + return _titleView; +} + +- (JXCategoryListContainerView *)contentView { + if (!_contentView) { + _contentView = [[JXCategoryListContainerView alloc] initWithType:JXCategoryListContainerType_ScrollView delegate:self]; + _contentView.defaultSelectedIndex = 0; + } + return _contentView; +} + +- (NSArray *)titles { + if (!_titles) { + _titles = @[YMLocalizedString(@"YUMI_MineAnchorIncomeStatisViewController1"), YMLocalizedString(@"YUMI_MineAnchorIncomeStatisViewController2")]; + } + return _titles; +} + +- (YUMIManeUnionRevenueReflectionRegardGovernancer *)dayReflectionVewC { + if (!_dayReflectionVewC) { + _dayReflectionVewC = [[YUMIManeUnionRevenueReflectionRegardGovernancer alloc] init]; + _dayReflectionVewC.revenueGenre = UnionIncomeGenre_Anchor; + } + return _dayReflectionVewC; +} + +- (YUMIManeUnionRevenueReflectionRegardGovernancer *)zhouReflectionVewC { + if (!_zhouReflectionVewC) { + _zhouReflectionVewC = [[YUMIManeUnionRevenueReflectionRegardGovernancer alloc] init]; + _zhouReflectionVewC.revenueGenre = UnionIncomeGenre_Anchor; + } + return _zhouReflectionVewC; +} + +@end diff --git a/YuMi/Modules/YMMine/View/Guild/View/IncomeStatis/YUMIManeMainRevenueStatsticsRegardGovernancer.h b/YuMi/Modules/YMMine/View/Guild/View/IncomeStatis/YUMIManeMainRevenueStatsticsRegardGovernancer.h new file mode 100644 index 00000000..e1ae4d22 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/IncomeStatis/YUMIManeMainRevenueStatsticsRegardGovernancer.h @@ -0,0 +1,16 @@ +// +// YUMIManeMainRevenueStatsticsRegardGovernancer.h +// YuMi +// +// Created by YuMi on 2022/11/4. +// + +#import "MvpRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeMainRevenueStatsticsRegardGovernancer : MvpRegardGovernancer +@property (nonatomic,copy) NSString *clanId; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/View/IncomeStatis/YUMIManeMainRevenueStatsticsRegardGovernancer.m b/YuMi/Modules/YMMine/View/Guild/View/IncomeStatis/YUMIManeMainRevenueStatsticsRegardGovernancer.m new file mode 100644 index 00000000..80484f61 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/IncomeStatis/YUMIManeMainRevenueStatsticsRegardGovernancer.m @@ -0,0 +1,147 @@ +// +// YUMIManeMainRevenueStatsticsRegardGovernancer.m +// YuMi +// +// Created by YuMi on 2022/11/4. +// + +#import "YUMIManeMainRevenueStatsticsRegardGovernancer.h" + +#import +#import +#import +#import "DJDKMIMOMColor.h" +#import "UIImage+Utils.h" + +#import "YUMIStrangeManeUnionRevenueReflectionRegardGovernancer.h" + +@interface YUMIManeMainRevenueStatsticsRegardGovernancer () + +@property (nonatomic, strong) NSArray *titles; +@property (nonatomic, strong) JXCategoryTitleView *titleView; +@property (nonatomic, strong) JXCategoryListContainerView *contentView; +@property (nonatomic,strong) YUMIStrangeManeUnionRevenueReflectionRegardGovernancer *collectiveRevenueVewC; +@property (nonatomic,strong) YUMIStrangeManeUnionRevenueReflectionRegardGovernancer *kellegncomeVewC; + +@end + +@implementation YUMIManeMainRevenueStatsticsRegardGovernancer + +- (void)viewDidLoad { + [super viewDidLoad]; + self.title = YMLocalizedString(@"YUMI_MineClanIncomeStatisViewController0"); + [self initSubViews]; + [self initChildLyRestrictions]; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.view.backgroundColor = [UIColor whiteColor]; + [self.view addSubview:self.titleView]; + [self.view addSubview:self.contentView]; +} + +- (void)initChildLyRestrictions { + [self.titleView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.view).offset(10); + make.left.right.mas_equalTo(self.view); + make.height.mas_equalTo(30); + }]; + + [self.contentView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.titleView.mas_bottom); + make.left.right.bottom.mas_equalTo(self.view); + }]; +} + +#pragma mark - JXCategoryViewDelegate +- (NSInteger)numberOfListsInlistContainerView:(JXCategoryListContainerView *)listContainerView { + return self.titles.count; +} + +- (id)listContainerView:(JXCategoryListContainerView *)listContainerView initListForIndex:(NSInteger)index { + if (index == 0) { + return self.collectiveRevenueVewC; + } else { + return self.kellegncomeVewC; + } +} + +- (void)categoryView:(JXCategoryBaseView *)categoryView didSelectedItemAtIndex:(NSInteger)index { + +} + +#pragma mark - Getters And Setters +- (void)setClanId:(NSString *)clanId { + _clanId = clanId; + self.collectiveRevenueVewC.characteristicId = _clanId; + self.kellegncomeVewC.characteristicId = _clanId; + + self.collectiveRevenueVewC.intratemporalGenre = NewUnionIncomeRecrdTimeGenre_Day; + self.kellegncomeVewC.intratemporalGenre = NewUnionIncomeRecrdTimeGenre_Day; +} + +- (JXCategoryTitleView *)titleView { + if (!_titleView) { + _titleView = [[JXCategoryTitleView alloc] init]; + _titleView.delegate = self; + _titleView.titles = self.titles; + _titleView.backgroundColor = [UIColor whiteColor]; + _titleView.titleColor = [DJDKMIMOMColor instantEssayPrettify]; + _titleView.titleSelectedColor = [DJDKMIMOMColor mainEssayPrettify]; + _titleView.titleFont = [UIFont systemFontOfSize:15 weight:UIFontWeightMedium]; + _titleView.titleSelectedFont = [UIFont systemFontOfSize:15 weight:UIFontWeightMedium]; + _titleView.titleLabelAnchorPointStyle = JXCategoryTitleLabelAnchorPointStyleCenter; + _titleView.contentScrollViewClickTransitionAnimationEnabled = NO; + _titleView.defaultSelectedIndex = 0; + _titleView.cellSpacing = 5; + _titleView.cellWidthIncrement = 5; + _titleView.listContainer = self.contentView; + + JXCategoryIndicatorImageView *burlywoodRegard = [[JXCategoryIndicatorImageView alloc] init]; + burlywoodRegard.indicatorImageViewSize = CGSizeMake(16, 3); + burlywoodRegard.verticalMargin = 0; + burlywoodRegard.indicatorImageView.image = [UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor acknowledgementBtutonObliquityMiddlePrettify],[DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(16, 3)]; + burlywoodRegard.indicatorImageView.layer.masksToBounds = YES; + burlywoodRegard.indicatorImageView.layer.cornerRadius = 1.5; + _titleView.indicators = @[burlywoodRegard]; + } + return _titleView; +} + +- (JXCategoryListContainerView *)contentView { + if (!_contentView) { + _contentView = [[JXCategoryListContainerView alloc] initWithType:JXCategoryListContainerType_ScrollView delegate:self]; + _contentView.defaultSelectedIndex = 0; + } + return _contentView; +} + +- (NSArray *)titles { + if (!_titles) { + _titles = @[YMLocalizedString(@"YUMI_MineMainIncomeStatisViewController0"), YMLocalizedString(@"YUMI_MineMainIncomeStatisViewController1")]; + } + return _titles; +} + +- (YUMIStrangeManeUnionRevenueReflectionRegardGovernancer *)collectiveRevenueVewC { + if (!_collectiveRevenueVewC) { + _collectiveRevenueVewC = [[YUMIStrangeManeUnionRevenueReflectionRegardGovernancer alloc] init]; + _collectiveRevenueVewC.revenueGenre = NewUnionIncomeGenre_Clan; + } + return _collectiveRevenueVewC; +} + +- (YUMIStrangeManeUnionRevenueReflectionRegardGovernancer *)kellegncomeVewC { + if (!_kellegncomeVewC) { + _kellegncomeVewC = [[YUMIStrangeManeUnionRevenueReflectionRegardGovernancer alloc] init]; + _kellegncomeVewC.revenueGenre = NewUnionIncomeGenre_Anchor; + } + return _kellegncomeVewC; +} + + + + + +@end diff --git a/YuMi/Modules/YMMine/View/Guild/View/IncomeStatis/YUMIManeUnionRevenueReflectionRegardGovernancer.h b/YuMi/Modules/YMMine/View/Guild/View/IncomeStatis/YUMIManeUnionRevenueReflectionRegardGovernancer.h new file mode 100644 index 00000000..5350b2c0 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/IncomeStatis/YUMIManeUnionRevenueReflectionRegardGovernancer.h @@ -0,0 +1,37 @@ +// +// YUMIManeUnionRevenueReflectionRegardGovernancer.h +// YuMi +// +// Created by YuMi on 2022/4/11. +// + +#import "MvpRegardGovernancer.h" +#import +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSInteger, UnionIncomeRecrdTimeGenre) { + + UnionIncomeRecrdTimeGenre_Day = 1, + + UnionIncomeRecrdTimeGenre_Week, + + UnionIncomeRecrdTimeGenre_Mouth, +}; + +typedef NS_ENUM(NSInteger, UnionIncomeGenre) { + + UnionIncomeGenre_Clan = 1, + + UnionIncomeGenre_Hall, + + UnionIncomeGenre_Anchor, +}; + +@interface YUMIManeUnionRevenueReflectionRegardGovernancer : MvpRegardGovernancer +@property (nonatomic,assign) UnionIncomeRecrdTimeGenre intratemporalGenre; +@property (nonatomic,assign) UnionIncomeGenre revenueGenre; +@property (nonatomic,copy) NSString *characteristicId; +@property (nonatomic,copy) NSString *clanId; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/View/IncomeStatis/YUMIManeUnionRevenueReflectionRegardGovernancer.m b/YuMi/Modules/YMMine/View/Guild/View/IncomeStatis/YUMIManeUnionRevenueReflectionRegardGovernancer.m new file mode 100644 index 00000000..800bc7cf --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/IncomeStatis/YUMIManeUnionRevenueReflectionRegardGovernancer.m @@ -0,0 +1,444 @@ +// +// YUMIManeUnionRevenueReflectionRegardGovernancer.m +// YuMi +// +// Created by YuMi on 2022/4/11. +// + +#import "YUMIManeUnionRevenueReflectionRegardGovernancer.h" +#import +#import +#import "DJDKMIMOMColor.h" +#import "PLIntratemporalUtil.h" +#import "MKJPopup.h" +#import "NSDate+DateUtils.h" + +#import "UnionRevenueReflectionMatrix.h" +#import "UnionFeatureRevenueReflectionMatrix.h" +#import "YUMIUnionRevenueReflectionTabulationRegardElement.h" +#import "YUMIUnionFeatureRevenueTabulationRegardElement.h" +#import "YUMIManeUnionDispossessTabulationRegardElement.h" +#import "YUMIUnionSingleChamberRevenueTabulationRegardElement.h" +#import "YUMIUnionRevenueDivisionRegard.h" +#import "YUMIUnionKellegRevenueDivisionRegard.h" +#import "YUMIUnionRevenueIntelligencerRegard.h" +#import "YUMIUnionIntratemporalPickRegard.h" +#import "YUMIUnionIntratemporalMonthPickerRegard.h" +#import "YUMIManeUnionRevenueSpecificRegardGovernancer.h" +#import "YUMIUnionRevenueExternalizer.h" +#import "FBCUnionIncomeCeremony.h" +@interface YUMIManeUnionRevenueReflectionRegardGovernancer () +@property (nonatomic,strong) UITableView *tableView; +@property (nonatomic,strong) YUMIUnionRevenueIntelligencerRegard *intelligenceerRegard; +@property (nonatomic,strong) NSArray *datasource; +@property (nonatomic,strong) NSDate *endDate; +@property (nonatomic,strong) NSDate *startDate; +@property (nonatomic,strong) NSDate *currentDate; +@property (nonatomic,strong) YUMIUnionIntratemporalMonthPickerRegard *monthExtracterRegard; +@property (nonatomic,copy) NSString *startIntratemporalBWStt; +@property (nonatomic,copy) NSString *endIntratemporalBWStt; +@property (nonatomic,strong) UIView *foodRegard; +@end + +@implementation YUMIManeUnionRevenueReflectionRegardGovernancer + +- (__kindof id)producePresimport { + return [[YUMIUnionRevenueExternalizer alloc] init]; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initSubViews]; + [self initIntelligencerGrantedTerminalerRrfresh]; +} + +- (void)viewDidLayoutSubviews { + [super viewDidLayoutSubviews]; + [self initChildLyRestrictions]; +} + +- (void)initIntelligencerGrantedTerminalerRrfresh { + MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(intelligenceerRenovtowardseh)]; + header.stateLabel.font = [UIFont systemFontOfSize:10.0]; + header.lastUpdatedTimeLabel.font = [UIFont systemFontOfSize:10.0]; + header.stateLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + header.lastUpdatedTimeLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + self.tableView.mj_header = header; +} + +- (void)intelligenceerRenovtowardseh { + if (self.revenueGenre == UnionIncomeGenre_Clan) { + [self.presimport acquireCollectiveGeneralRevenue:self.characteristicId startTime:self.startIntratemporalBWStt endTime:self.endIntratemporalBWStt]; + } else if(self.revenueGenre == UnionIncomeGenre_Hall) { + [self.presimport acquireCorridorGeneralRevenue:self.characteristicId startTime:self.startIntratemporalBWStt endTime:self.endIntratemporalBWStt]; + } else { + if (self.clanId.length > 0) { + [self.presimport acquireCollectiveKellegGeneralRevenue:self.clanId startTime:self.startIntratemporalBWStt endTime:self.endIntratemporalBWStt]; + } else { + [self.presimport acquireCorridorKellegGeneralRevenue:self.characteristicId startTime:self.startIntratemporalBWStt endTime:self.endIntratemporalBWStt]; + } + } +} +#pragma mark - Private Method +- (void)initSubViews { + self.view.backgroundColor = [UIColor whiteColor]; + [self.view addSubview:self.intelligenceerRegard]; + [self.view addSubview:self.tableView]; +} + +- (void)initChildLyRestrictions { + [self.intelligenceerRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.view); + make.right.mas_equalTo(self.view); + make.top.mas_equalTo(self.view); + make.height.mas_equalTo(kGetScaleWidth(124)); + }]; + + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.mas_equalTo(self.view); + make.top.mas_equalTo(self.intelligenceerRegard.mas_bottom); + }]; +} + +- (void)monthAboutUniversalEngagement:(NSDate *)newDate { + if (newDate == nil) { + newDate = [NSDate date]; + } + double interval = 0; + NSDate *beginDate = nil; + NSDate *endDate = nil; + NSCalendar *calendar = [NSCalendar currentCalendar]; + [calendar setFirstWeekday:2]; + BOOL ok = [calendar rangeOfUnit:NSCalendarUnitMonth startDate:&beginDate interval:&interval forDate:newDate]; + if (ok) { + endDate = [beginDate dateByAddingTimeInterval:interval-1]; + } else { + return; + } + self.startDate = beginDate; + self.endDate = endDate; +} + +- (void)weekSeasonAboutUniversalEngagement:(NSDate *)date { + NSCalendar * calendar = [NSCalendar currentCalendar]; + NSDateComponents *comps = [calendar components:NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitWeekday | NSCalendarUnitDay fromDate:date]; + + + NSInteger weekDay = [comps weekday]; + + NSInteger day = [comps day]; + long firstDiff,lastDiff; + if (weekDay == 1){ + firstDiff = -6; + lastDiff = 0; + } else { + firstDiff = -(weekDay - 2); + lastDiff = 8 - weekDay; + } + + NSDateComponents *baseDayComp = [calendar components:NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay fromDate:date]; + + [baseDayComp setDay:day + firstDiff]; + NSDate *firstDayOfWeek = [calendar dateFromComponents:baseDayComp]; + self.startDate = firstDayOfWeek; + + [baseDayComp setDay:day + lastDiff]; + NSDate *lastDayOfWeek = [calendar dateFromComponents:baseDayComp]; + self.endDate = lastDayOfWeek; +} + +#pragma mark - UITableViewDelegate And UITableViewDataSource +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.datasource.count > 0 ? self.datasource.count : 1; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + return self.datasource.count > 0 ? kGetScaleWidth(71) : 400; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + if (self.datasource.count > 0) { + if (self.revenueGenre == UnionIncomeGenre_Clan) { + YUMIUnionRevenueReflectionTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIUnionRevenueReflectionTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIUnionRevenueReflectionTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIUnionRevenueReflectionTabulationRegardElement class])]; + } + cell.rateDigital = indexPath.row; + cell.userInfo = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + return cell; + } else if(self.revenueGenre == UnionIncomeGenre_Hall) { + YUMIUnionFeatureRevenueTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIUnionFeatureRevenueTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIUnionFeatureRevenueTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIUnionFeatureRevenueTabulationRegardElement class])]; + } + cell.userInfo = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + return cell; + } else if(self.revenueGenre == UnionIncomeGenre_Anchor) { + YUMIUnionSingleChamberRevenueTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIUnionSingleChamberRevenueTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIUnionSingleChamberRevenueTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIUnionSingleChamberRevenueTabulationRegardElement class])]; + } + + cell.userInfo = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + cell.rateDigital = indexPath.row; + return cell; + } + } + YUMIManeUnionDispossessTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIManeUnionDispossessTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIManeUnionDispossessTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIManeUnionDispossessTabulationRegardElement class])]; + } + return cell; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { + return kGetScaleWidth(47); +} + +- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { + if (section == 0) { + if (self.revenueGenre == UnionIncomeGenre_Clan || self.revenueGenre == UnionIncomeGenre_Hall) { + YUMIUnionRevenueDivisionRegard * sectionRegard = [[YUMIUnionRevenueDivisionRegard alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth, 37)]; + sectionRegard.revenueGenre = self.revenueGenre; + return sectionRegard; + } else { + YUMIUnionKellegRevenueDivisionRegard * sectionRegard = [[YUMIUnionKellegRevenueDivisionRegard alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth, 37)]; + return sectionRegard; + } + } + return [UIView new]; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section{ + if(self.datasource.count > 0){ + return kGetScaleWidth(108); + } + return 0.01f; +} +-(UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section{ + if(self.datasource.count > 0){ + return self.foodRegard; + } + + return nil; + +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + [tableView deselectRowAtIndexPath:indexPath animated:YES]; + if (self.revenueGenre == UnionIncomeGenre_Hall) { + if (self.datasource.count > 0) { + UnionFeatureRevenueConsumerAbstractMatrix * componentAbstract = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + YUMIManeUnionRevenueSpecificRegardGovernancer * incomeDetailVC = [[YUMIManeUnionRevenueSpecificRegardGovernancer alloc] init]; + incomeDetailVC.hallId = self.characteristicId; + incomeDetailVC.startTime = self.startIntratemporalBWStt; + incomeDetailVC.endTime = self.endIntratemporalBWStt; + incomeDetailVC.componentAbstract = componentAbstract; + [self.navigationController pushViewController:incomeDetailVC animated:YES]; + } + + } +} + +#pragma mark - FBCUnionIncomeIntelligencerRegardRepresendtation +- (void)yUMIUnionRevenueIntelligencerRegard:(YUMIUnionRevenueIntelligencerRegard *)view didChooseTime:(UIButton *)sender { + if (self.intratemporalGenre == UnionIncomeRecrdTimeGenre_Mouth) { + [self.monthExtracterRegard setDate:[NSDate date] animated:YES]; + [self.monthExtracterRegard show]; + } else { + YUMIUnionIntratemporalPickRegard * intratemporalRegard = [[YUMIUnionIntratemporalPickRegard alloc] init]; + intratemporalRegard.currentDate = [NSDate date]; + intratemporalRegard.extractEngagementGenre = self.intratemporalGenre == UnionIncomeRecrdTimeGenre_Week ? YUMIUnionTimePickGenreWeek : YUMIUnionTimePickGenreDay; + intratemporalRegard.delegate = self; + [MKJPopup popupRegard:intratemporalRegard style:MKJPopupStyleActionSheet]; + } +} + +#pragma mark - FBCUnionTimeMonthPickerRegardRepresendtation +- (void)datePicker:(YUMIUnionIntratemporalMonthPickerRegard *)datePicker didCancel:(UIButton *)sender { + [MKJPopup dismiss]; +} + +- (void)datePicker:(YUMIUnionIntratemporalMonthPickerRegard *)dataPicker didSelectedDate:(NSDate *)date { + [MKJPopup dismiss]; + [self monthAboutUniversalEngagement:date]; + self.startIntratemporalBWStt = [PLIntratemporalUtil acquireYYMMDDAboutEngagement:date]; + self.endIntratemporalBWStt = [PLIntratemporalUtil acquireYYMMDDAboutEngagement:self.endDate]; + [self.intelligenceerRegard prohibitipositionIntelligencerRegard:date endTime:nil]; + [self intelligenceerRenovtowardseh]; +} + +#pragma mark -FBCUnionTimePickRegardRepresendtation +- (void)yUMIUnionIntrtowardsemporalExtractRegard:(YUMIUnionIntratemporalPickRegard *)view didTicktackRevoctowardsion:(UIButton *)sender { + [MKJPopup dismiss]; +} + +- (void)yUMIUnionIntrtowardsemporalExtractRegard:(YUMIUnionIntratemporalPickRegard *)view didClickSure:(UIButton *)sender { + [MKJPopup dismiss]; + if (self.intratemporalGenre == UnionIncomeRecrdTimeGenre_Week) { + self.startIntratemporalBWStt = [PLIntratemporalUtil acquireYYMMDDAboutEngagement:view.startDate]; + self.endIntratemporalBWStt = [PLIntratemporalUtil acquireYYMMDDAboutEngagement:view.endDate]; + [self.intelligenceerRegard prohibitipositionIntelligencerRegard:view.startDate endTime:view.endDate]; + } else { + self.startIntratemporalBWStt = [PLIntratemporalUtil acquireYYMMDDAboutEngagement:view.startDate]; + self.endIntratemporalBWStt = [PLIntratemporalUtil acquireYYMMDDAboutEngagement:view.endDate];; + [self.intelligenceerRegard prohibitipositionIntelligencerRegard:view.startDate endTime:view.endDate]; + } + [self intelligenceerRenovtowardseh]; +} + +#pragma mark - FBCUnionIncomeCeremony +- (void)acquireCollectiveGeneralRevenueScuess:(UnionRevenueReflectionMatrix *)incomeInfo { + [self.tableView.mj_header endRefreshing]; + self.intelligenceerRegard.generalRevenue = incomeInfo.total; + self.datasource = incomeInfo.income; + [self.tableView reloadData]; +} + +- (void)acquireCollectiveGeneralRevenueFlunk:(NSString *)msg { + [self.tableView.mj_header endRefreshing]; +} + +- (void)acquireCorridorGeneralRevenueScuess:(UnionFeatureRevenueReflectionMatrix *)incomeInfo { + [self.tableView.mj_header endRefreshing]; + self.intelligenceerRegard.generalRevenue = incomeInfo.total; + self.datasource = incomeInfo.vos; + [self.tableView reloadData]; +} + +- (void)acquireCorridorGeneralRevenueFlunk:(NSString *)msg { + [self.tableView.mj_header endRefreshing]; +} + +- (void)acquireCollectiveKellegGeneralRevenueAccomplishment:(UnionFeatureRevenueReflectionMatrix *)incomeInfo { + [self.tableView.mj_header endRefreshing]; + self.intelligenceerRegard.generalRevenue = incomeInfo.totalDiamond; + self.datasource = incomeInfo.incomes; + [self.tableView reloadData]; +} + +- (void)acquireCollectiveKellegGeneralRevenueFlunk:(NSString *)msg { + [self.tableView.mj_header endRefreshing]; +} + +- (void)acquireCorridorKellegGeneralRevenueAccomplishment:(UnionFeatureRevenueReflectionMatrix *)incomeInfo { + [self.tableView.mj_header endRefreshing]; + self.intelligenceerRegard.generalRevenue = incomeInfo.totalDiamond; + self.datasource = incomeInfo.incomes; + [self.tableView reloadData]; +} + +- (void)acquireCorridorKellegGeneralRevenueFlunk:(NSString *)msg { + [self.tableView.mj_header endRefreshing]; +} + +#pragma mark - JXCategoryListContentViewDelegate +- (UIView *)listView { + return self.view; +} + +#pragma mark - Getters And Setters +- (void)setIntratemporalGenre:(UnionIncomeRecrdTimeGenre)intratemporalGenre { + _intratemporalGenre = intratemporalGenre; + switch (_intratemporalGenre) { + case UnionIncomeRecrdTimeGenre_Day: + self.startDate = [NSDate date]; + self.endDate = [NSDate date]; + self.startIntratemporalBWStt = [PLIntratemporalUtil acquireYYMMDDAboutEngagement:self.startDate]; + self.endIntratemporalBWStt = [PLIntratemporalUtil acquireYYMMDDAboutEngagement:self.startDate]; + break; + case UnionIncomeRecrdTimeGenre_Week: + [self weekSeasonAboutUniversalEngagement:[NSDate date]]; + self.startIntratemporalBWStt = [PLIntratemporalUtil acquireYYMMDDAboutEngagement:self.startDate]; + self.endIntratemporalBWStt = [PLIntratemporalUtil acquireYYMMDDAboutEngagement:self.endDate]; + break; + case UnionIncomeRecrdTimeGenre_Mouth: + [self monthAboutUniversalEngagement:[NSDate date]]; + self.startIntratemporalBWStt = [PLIntratemporalUtil acquireYYMMDDAboutEngagement:self.startDate]; + self.endIntratemporalBWStt = [PLIntratemporalUtil acquireYYMMDDAboutEngagement:self.endDate]; + break; + default: + break; + } + self.intelligenceerRegard.intratemporalGenre = intratemporalGenre; + [self.intelligenceerRegard prohibitipositionIntelligencerRegard:self.startDate endTime:self.endDate]; + [self intelligenceerRenovtowardseh]; +} + +- (void)scrollViewDidScroll:(UIScrollView *)scrollView { + CGFloat sectionHeaderHeight = 37; + if (scrollView.contentOffset.y<=sectionHeaderHeight&&scrollView.contentOffset.y>=0) { + scrollView.contentInset = UIEdgeInsetsMake(-scrollView.contentOffset.y, 0, 0, 0); + } else if (scrollView.contentOffset.y>=sectionHeaderHeight) { + scrollView.contentInset = UIEdgeInsetsMake(-sectionHeaderHeight, 0, 0, 0); + } +} + +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.tableFooterView = [UIView new]; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.backgroundColor = [UIColor clearColor]; + if (@available(iOS 11.0, *)) { + _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + [_tableView registerClass:[YUMIUnionRevenueReflectionTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIUnionRevenueReflectionTabulationRegardElement class])]; + [_tableView registerClass:[YUMIUnionFeatureRevenueTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIUnionFeatureRevenueTabulationRegardElement class])]; + [_tableView registerClass:[YUMIManeUnionDispossessTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIManeUnionDispossessTabulationRegardElement class])]; + [_tableView registerClass:[YUMIUnionSingleChamberRevenueTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIUnionSingleChamberRevenueTabulationRegardElement class])]; + } + return _tableView; +} + +- (YUMIUnionRevenueIntelligencerRegard *)intelligenceerRegard { + if (!_intelligenceerRegard) { + _intelligenceerRegard = [[YUMIUnionRevenueIntelligencerRegard alloc] init]; + _intelligenceerRegard.backgroundColor = [UIColor whiteColor]; + _intelligenceerRegard.delegate = self; + } + return _intelligenceerRegard; +} + +- (YUMIUnionIntratemporalMonthPickerRegard *)monthExtracterRegard { + if (!_monthExtracterRegard) { + _monthExtracterRegard = [[YUMIUnionIntratemporalMonthPickerRegard alloc] initAboutSenstowardsionalRegard:self.view]; + _monthExtracterRegard.delegate = self; + _monthExtracterRegard.datePickerMode = HooDatePickerModeYearAndMonth; + [_monthExtracterRegard setTintColor:UIColorFromRGB(0x999999)]; + [_monthExtracterRegard setHighlightPrettify:UIColorFromRGB(0x333333)]; + NSDate * date = [NSDate date]; + NSDateComponents *comps = nil; comps = [[NSCalendar partowardsiciptowardsiondCalconcludear] components:NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitMonth fromDate:date]; + NSDateComponents *adcomps = [[NSDateComponents alloc] init]; + [adcomps setYear:-15]; + [adcomps setMonth:0]; + [adcomps setDay:0]; + NSDate *minDate = [[NSCalendar partowardsiciptowardsiondCalconcludear] dateByAddingComponents:adcomps toDate:date options:0]; + + NSDateComponents *maxcomps = [[NSDateComponents alloc] init]; + [maxcomps setYear:15]; + [maxcomps setMonth:0]; + [maxcomps setDay:0]; + NSDate *maxDate = [[NSCalendar partowardsiciptowardsiondCalconcludear] dateByAddingComponents:maxcomps toDate:date options:0]; + _monthExtracterRegard.minimumDate = minDate; + _monthExtracterRegard.maximumDate = maxDate; + + } + return _monthExtracterRegard; +} +- (UIView *)foodRegard{ + if (!_foodRegard){ + _foodRegard = [[UIView alloc]initWithFrame:CGRectMake(0, 0, KScreenWidth, kGetScaleWidth(108))]; + UILabel *titleView = [[UILabel alloc] init]; + titleView.text = YMLocalizedString(@"YUMI_MineGoldIncomeRecordVC0"); + titleView.font = [UIFont systemFontOfSize:14 weight:UIFontWeightMedium]; + titleView.textColor = [DJDKMIMOMColor prohibitionBtutonEssayPrettify]; + titleView.textAlignment = NSTextAlignmentCenter; + titleView.frame = _foodRegard.bounds; + [_foodRegard addSubview:titleView]; + } + return _foodRegard; +} +@end diff --git a/YuMi/Modules/YMMine/View/Guild/View/IncomeStatis/YUMIManeUnionRevenueSpecificRegardGovernancer.h b/YuMi/Modules/YMMine/View/Guild/View/IncomeStatis/YUMIManeUnionRevenueSpecificRegardGovernancer.h new file mode 100644 index 00000000..21efc2f8 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/IncomeStatis/YUMIManeUnionRevenueSpecificRegardGovernancer.h @@ -0,0 +1,19 @@ +// +// YUMIManeUnionRevenueSpecificRegardGovernancer.h +// YuMi +// +// Created by YuMi on 2022/4/12. +// + +#import "MvpRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN +@class UnionFeatureRevenueConsumerAbstractMatrix; +@interface YUMIManeUnionRevenueSpecificRegardGovernancer : MvpRegardGovernancer +@property (nonatomic,copy) NSString *hallId; +@property (nonatomic,copy) NSString *startTime; +@property (nonatomic,copy) NSString *endTime; +@property (nonatomic,strong) UnionFeatureRevenueConsumerAbstractMatrix *componentAbstract; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/View/IncomeStatis/YUMIManeUnionRevenueSpecificRegardGovernancer.m b/YuMi/Modules/YMMine/View/Guild/View/IncomeStatis/YUMIManeUnionRevenueSpecificRegardGovernancer.m new file mode 100644 index 00000000..e51b51da --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/IncomeStatis/YUMIManeUnionRevenueSpecificRegardGovernancer.m @@ -0,0 +1,165 @@ +// +// YUMIManeUnionRevenueSpecificRegardGovernancer.m +// YuMi +// +// Created by YuMi on 2022/4/12. +// + +#import "YUMIManeUnionRevenueSpecificRegardGovernancer.h" +#import +#import +#import "NetIndicateRegard.h" +#import "DJDKMIMOMColor.h" + +#import "UnionFeatureRevenueReflectionMatrix.h" +#import "YUMIUnionRevenueSpecificAssembletionRegardElement.h" +#import "YUMIUnionDispossessAssembletionRegardElement.h" +#import "YUMIUnionRevenueSpecificExternalizer.h" +#import "FBCUnionIncomeDetailCeremony.h" + +@interface YUMIManeUnionRevenueSpecificRegardGovernancer () +@property (nonatomic,strong) NetIndicateRegard *intelligenceportraitIndicateRegard; +@property (nonatomic,strong) UILabel *monicerSequencignation; +@property (nonatomic,strong) UICollectionView *collectionView; +@property (nonatomic,strong) NSArray *atoloudspeakersouce; +@end + +@implementation YUMIManeUnionRevenueSpecificRegardGovernancer + +- (__kindof id)producePresimport { + return [[YUMIUnionRevenueSpecificExternalizer alloc] init];; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initSubViews]; + [self initChildLyRestrictions]; + [self initIntelligencerGrantedTerminalerRrfresh]; +} + +#pragma mark - 刷新 +- (void)initIntelligencerGrantedTerminalerRrfresh { + MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(intelligenceerRenovtowardseh)]; + header.stateLabel.font = [UIFont systemFontOfSize:10.0]; + header.lastUpdatedTimeLabel.font = [UIFont systemFontOfSize:10.0]; + header.stateLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + header.lastUpdatedTimeLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + self.collectionView.mj_header = header; + + [self intelligenceerRenovtowardseh]; +} + +- (void)intelligenceerRenovtowardseh { + if (self.endTime.length <=0) { + self.endTime = @""; + } + [self.presimport acquireConsumerRevenueSpecificSttowardsement:self.hallId memberId:self.componentAbstract.reciveUid startIntratemporalBWStt:self.startTime endIntratemporalBWStt:self.endTime]; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.title = YMLocalizedString(@"YUMI_MineGuildIncomeDetailViewController0"); + [self.view addSubview:self.intelligenceportraitIndicateRegard]; + [self.view addSubview:self.monicerSequencignation]; + [self.view addSubview:self.collectionView]; +} + +- (void)initChildLyRestrictions { + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(40, 40)); + make.left.mas_equalTo(self.view).offset(15); + make.top.mas_equalTo(self.view).offset(18); + }]; + + [self.monicerSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.intelligenceportraitIndicateRegard); + make.left.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_right).offset(10); + }]; + + [self.collectionView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.mas_equalTo(self.view); + make.top.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_bottom).offset(2); + }]; +} + +#pragma mark - UICOllectionViewDelegate And UICollectionViewDatasource +- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { + return self.atoloudspeakersouce.count > 0? self.atoloudspeakersouce.count : 1; +} + +-(CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath { + CGFloat itemWidth = (KScreenWidth - 10 * 2) / 3.0; + return self.atoloudspeakersouce.count > 0 ? CGSizeMake(itemWidth, itemWidth + 50) : CGSizeMake(KScreenWidth, 500); +} + +- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { + if (self.atoloudspeakersouce.count > 0) { + YUMIUnionRevenueSpecificAssembletionRegardElement * cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([YUMIUnionRevenueSpecificAssembletionRegardElement class]) forIndexPath:indexPath]; + cell.revenueSpecificAbstract= [self.atoloudspeakersouce secureGroalTowardsIndictowardsrix1:indexPath.row]; + return cell; + } + + YUMIUnionDispossessAssembletionRegardElement * cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([YUMIUnionDispossessAssembletionRegardElement class]) forIndexPath:indexPath]; + return cell; +} + +#pragma mark - FBCUnionIncomeDetailCeremony +- (void)acquireConsumerRevenueSpecificSttowardsementAccomplishment:(NSArray *)array { + [self.collectionView.mj_header endRefreshing]; + self.atoloudspeakersouce = array; + [self.collectionView reloadData]; +} + +- (void)acquireConsumerRevenueSpecificSttowardsementFlunk:(nonnull NSString *)msg { + [self.collectionView.mj_header endRefreshing]; +} + + +#pragma mark - Getters And Setters +- (void)setComponentAbstract:(UnionFeatureRevenueConsumerAbstractMatrix *)componentAbstract { + _componentAbstract = componentAbstract; + if (_componentAbstract) { + self.intelligenceportraitIndicateRegard.imageUrl = _componentAbstract.avatar; + self.monicerSequencignation.text = _componentAbstract.nick; + } +} + +- (UICollectionView *)collectionView{ + if (!_collectionView) { + UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init]; + layout.minimumLineSpacing = 10; + layout.minimumInteritemSpacing = 10; + _collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout]; + _collectionView.dataSource = self; + _collectionView.delegate = self; + _collectionView.backgroundColor = [UIColor clearColor]; + [_collectionView registerClass:[YUMIUnionRevenueSpecificAssembletionRegardElement class] forCellWithReuseIdentifier:NSStringFromClass([YUMIUnionRevenueSpecificAssembletionRegardElement class])]; + [_collectionView registerClass:[YUMIUnionDispossessAssembletionRegardElement class] forCellWithReuseIdentifier:NSStringFromClass([YUMIUnionDispossessAssembletionRegardElement class])]; + } + return _collectionView; +} + +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _intelligenceportraitIndicateRegard.layer.cornerRadius = 40/2; + } + return _intelligenceportraitIndicateRegard; +} + +- (UILabel *)monicerSequencignation { + if (!_monicerSequencignation) { + _monicerSequencignation = [[UILabel alloc] init]; + _monicerSequencignation.text = YMLocalizedString(@"YUMI_MineGuildIncomeDetailViewController1"); + _monicerSequencignation.font = [UIFont systemFontOfSize:15]; + _monicerSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _monicerSequencignation; +} + + +@end diff --git a/YuMi/Modules/YMMine/View/Guild/View/IncomeStatis/YUMIManeUnionRevenueStatsticsRegardGovernancer.h b/YuMi/Modules/YMMine/View/Guild/View/IncomeStatis/YUMIManeUnionRevenueStatsticsRegardGovernancer.h new file mode 100644 index 00000000..5c83dd3f --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/IncomeStatis/YUMIManeUnionRevenueStatsticsRegardGovernancer.h @@ -0,0 +1,17 @@ +// +// YUMIManeUnionRevenueStatsticsRegardGovernancer.h +// YuMi +// +// Created by YuMi on 2022/4/11. +// 家族收入统计 + +#import "BaseRegardGovernancer.h" +#import +#import +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeUnionRevenueStatsticsRegardGovernancer : BaseRegardGovernancer +@property (nonatomic,copy) NSString *hallId; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/View/IncomeStatis/YUMIManeUnionRevenueStatsticsRegardGovernancer.m b/YuMi/Modules/YMMine/View/Guild/View/IncomeStatis/YUMIManeUnionRevenueStatsticsRegardGovernancer.m new file mode 100644 index 00000000..c0ca0f6a --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/IncomeStatis/YUMIManeUnionRevenueStatsticsRegardGovernancer.m @@ -0,0 +1,157 @@ +// +// YUMIManeUnionRevenueStatsticsRegardGovernancer.m +// YuMi +// +// Created by YuMi on 2022/4/11. +// 公会收入统计 + +#import "YUMIManeUnionRevenueStatsticsRegardGovernancer.h" +#import +#import +#import +#import +#import "UIImage+Utils.h" +#import "DJDKMIMOMColor.h" +#import "YUMIManeUnionRevenueReflectionRegardGovernancer.h" +#import "YUMIManeGoldRevenueReflectionVC.h" + +@interface YUMIManeUnionRevenueStatsticsRegardGovernancer () +@property (nonatomic, strong) NSArray *titles; +@property (nonatomic, strong) JXCategoryTitleView *titleView; +@property (nonatomic, strong) JXCategoryListContainerView *contentView; +@property (nonatomic,strong) YUMIManeUnionRevenueReflectionRegardGovernancer *dayReflectionVewC; +@property (nonatomic,strong) YUMIManeUnionRevenueReflectionRegardGovernancer *zhouReflectionVewC; +@property (nonatomic,strong) YUMIManeGoldRevenueReflectionVC *goldRevenueVewC; + +@end + +@implementation YUMIManeUnionRevenueStatsticsRegardGovernancer + +- (void)viewDidLoad { + [super viewDidLoad]; + self.view.backgroundColor = [UIColor whiteColor]; + self.title = YMLocalizedString(@"YUMI_MineGuildIncomeStatisViewController0"); + [self initSubViews]; + [self initChildLyRestrictions]; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self.view addSubview:self.titleView]; + [self.view addSubview:self.contentView]; +} + +- (void)initChildLyRestrictions { + [self.titleView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.view).offset(10); + make.left.right.mas_equalTo(self.view); + make.height.mas_equalTo(30); + }]; + + [self.contentView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.titleView.mas_bottom); + make.left.right.bottom.mas_equalTo(self.view); + }]; +} + +#pragma mark - JXCategoryViewDelegate +- (NSInteger)numberOfListsInlistContainerView:(JXCategoryListContainerView *)listContainerView { + return self.titles.count; +} + +- (id)listContainerView:(JXCategoryListContainerView *)listContainerView initListForIndex:(NSInteger)index { + if (index == 0) { + return self.dayReflectionVewC; + } else if(index == 1){ + return self.zhouReflectionVewC; + }else{ + return self.goldRevenueVewC; + } +} + +- (void)categoryView:(JXCategoryBaseView *)categoryView didSelectedItemAtIndex:(NSInteger)index { + if (index == 0) { + self.dayReflectionVewC.intratemporalGenre = UnionIncomeRecrdTimeGenre_Day; + } else if(index == 1){ + self.zhouReflectionVewC.intratemporalGenre = UnionIncomeRecrdTimeGenre_Week; + }else{ + + } +} + +#pragma mark - Getters And Setters +- (void)setHallId:(NSString *)hallId { + _hallId = hallId; + self.dayReflectionVewC.characteristicId = _hallId; + self.zhouReflectionVewC.characteristicId = _hallId; + self.dayReflectionVewC.intratemporalGenre = UnionIncomeRecrdTimeGenre_Day; +} + +- (JXCategoryTitleView *)titleView { + if (!_titleView) { + _titleView = [[JXCategoryTitleView alloc] init]; + _titleView.delegate = self; + _titleView.titles = self.titles; + _titleView.backgroundColor = [UIColor whiteColor]; + _titleView.titleColor = [DJDKMIMOMColor instantEssayPrettify]; + _titleView.titleSelectedColor = [DJDKMIMOMColor mainEssayPrettify]; + _titleView.titleFont = [UIFont fontWithName:@"PingFang-SC-Medium" size:16]; + _titleView.titleSelectedFont = [UIFont fontWithName:@"PingFang-SC-Medium" size:16]; + _titleView.titleLabelAnchorPointStyle = JXCategoryTitleLabelAnchorPointStyleCenter; + _titleView.contentScrollViewClickTransitionAnimationEnabled = NO; + _titleView.defaultSelectedIndex = 0; + _titleView.cellSpacing = 5; + _titleView.cellWidthIncrement = 5; + _titleView.listContainer = self.contentView; + + JXCategoryIndicatorLineView *burlywoodRegard = [[JXCategoryIndicatorLineView alloc] init]; + UIImage *image = [UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify],[DJDKMIMOMColor acknowledgementBtutonObliquityMiddlePrettify],[DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(16, 3)]; + burlywoodRegard.indicatorColor = [UIColor colorWithPatternImage:image]; + burlywoodRegard.indicatorWidth = 16.f; + burlywoodRegard.indicatorHeight = 3.f; + burlywoodRegard.indicatorCornerRadius = 1.5f; + _titleView.indicators = @[burlywoodRegard]; + + } + return _titleView; +} + +- (JXCategoryListContainerView *)contentView { + if (!_contentView) { + _contentView = [[JXCategoryListContainerView alloc] initWithType:JXCategoryListContainerType_ScrollView delegate:self]; + _contentView.defaultSelectedIndex = 0; + _contentView.backgroundColor = [UIColor whiteColor]; + } + return _contentView; +} + +- (NSArray *)titles { + if (!_titles) { + _titles = @[YMLocalizedString(@"YUMI_MineGuildIncomeStatisViewController1"), YMLocalizedString(@"YUMI_MineGuildIncomeStatisViewController2"), YMLocalizedString(@"YUMI_MineGuildIncomeStatisViewController3")]; + } + return _titles; +} + +- (YUMIManeUnionRevenueReflectionRegardGovernancer *)dayReflectionVewC { + if (!_dayReflectionVewC) { + _dayReflectionVewC = [[YUMIManeUnionRevenueReflectionRegardGovernancer alloc] init]; + _dayReflectionVewC.revenueGenre = UnionIncomeGenre_Hall; + } + return _dayReflectionVewC; +} +- (YUMIManeGoldRevenueReflectionVC *)goldRevenueVewC{ + if (!_goldRevenueVewC){ + _goldRevenueVewC = [YUMIManeGoldRevenueReflectionVC new]; + } + return _goldRevenueVewC; +} +- (YUMIManeUnionRevenueReflectionRegardGovernancer *)zhouReflectionVewC { + if (!_zhouReflectionVewC) { + _zhouReflectionVewC = [[YUMIManeUnionRevenueReflectionRegardGovernancer alloc] init]; + _zhouReflectionVewC.revenueGenre = UnionIncomeGenre_Hall; + } + return _zhouReflectionVewC; +} + + +@end diff --git a/YuMi/Modules/YMMine/View/Guild/View/IncomeStatis/YUMIStrangeManeUnionRevenueReflectionRegardGovernancer.h b/YuMi/Modules/YMMine/View/Guild/View/IncomeStatis/YUMIStrangeManeUnionRevenueReflectionRegardGovernancer.h new file mode 100644 index 00000000..cbbe4970 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/IncomeStatis/YUMIStrangeManeUnionRevenueReflectionRegardGovernancer.h @@ -0,0 +1,35 @@ +// +// YUMIStrangeManeUnionRevenueReflectionRegardGovernancer.h +// YuMi +// +// Created by YuMi on 2022/11/9. +// + +#import "MvpRegardGovernancer.h" +#import +NS_ASSUME_NONNULL_BEGIN +typedef NS_ENUM(NSInteger, NewUnionIncomeRecrdTimeGenre) { + + NewUnionIncomeRecrdTimeGenre_Day = 1, + + NewUnionIncomeRecrdTimeGenre_Week, + + NewUnionIncomeRecrdTimeGenre_Mouth, +}; + +typedef NS_ENUM(NSInteger, NewUnionIncomeGenre) { + + NewUnionIncomeGenre_Clan = 1, + + NewUnionIncomeGenre_Hall, + + NewUnionIncomeGenre_Anchor, +}; +@interface YUMIStrangeManeUnionRevenueReflectionRegardGovernancer : MvpRegardGovernancer +@property (nonatomic,assign) NewUnionIncomeRecrdTimeGenre intratemporalGenre; +@property (nonatomic,assign) NewUnionIncomeGenre revenueGenre; +@property (nonatomic,copy) NSString *characteristicId; +@property (nonatomic,copy) NSString *clanId; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/View/IncomeStatis/YUMIStrangeManeUnionRevenueReflectionRegardGovernancer.m b/YuMi/Modules/YMMine/View/Guild/View/IncomeStatis/YUMIStrangeManeUnionRevenueReflectionRegardGovernancer.m new file mode 100644 index 00000000..3bd1af9a --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/IncomeStatis/YUMIStrangeManeUnionRevenueReflectionRegardGovernancer.m @@ -0,0 +1,448 @@ +// +// YUMIStrangeManeUnionRevenueReflectionRegardGovernancer.m +// YuMi +// +// Created by YuMi on 2022/11/9. +// +///Third +#import +#import +#import "DJDKMIMOMColor.h" +#import "PLIntratemporalUtil.h" +#import "MKJPopup.h" +#import "NSDate+DateUtils.h" + +#import "UnionRevenueReflectionMatrix.h" +#import "UnionFeatureRevenueReflectionMatrix.h" +#import "YUMIUnionRevenueReflectionTabulationRegardElement.h" +#import "YUMIUnionFeatureRevenueTabulationRegardElement.h" +#import "YUMIManeUnionDispossessTabulationRegardElement.h" +#import "YUMIUnionSingleChamberRevenueTabulationRegardElement.h" +#import "YUMIUnionRevenueDivisionRegard.h" +#import "YUMIUnionKellegRevenueDivisionRegard.h" +#import "YUMIStrangeUnionRevenueIntelligencerRegard.h" +#import "YUMIStrangeUnionIntratemporalPickRegard.h" +#import "YUMIUnionIntratemporalMonthPickerRegard.h" +#import "YUMIManeUnionRevenueSpecificRegardGovernancer.h" +#import "YUMIUnionRevenueExternalizer.h" +#import "FBCUnionIncomeCeremony.h" +#import "YUMIStrangeManeUnionRevenueReflectionRegardGovernancer.h" + +@interface YUMIStrangeManeUnionRevenueReflectionRegardGovernancer () +@property (nonatomic,strong) UITableView *tableView; +@property (nonatomic,strong) YUMIStrangeUnionRevenueIntelligencerRegard *intelligenceerRegard; +@property (nonatomic,strong) NSArray *datasource; +@property (nonatomic,strong) NSDate *endDate; +@property (nonatomic,strong) NSDate *startDate; +@property (nonatomic,strong) NSDate *currentDate; +@property (nonatomic,strong) YUMIUnionIntratemporalMonthPickerRegard *monthExtracterRegard; +@property (nonatomic,copy) NSString *startIntratemporalBWStt; +@property (nonatomic,copy) NSString *endIntratemporalBWStt; +@end + +@implementation YUMIStrangeManeUnionRevenueReflectionRegardGovernancer + +- (__kindof id)producePresimport { + return [[YUMIUnionRevenueExternalizer alloc] init]; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initSubViews]; + [self initIntelligencerGrantedTerminalerRrfresh]; + if(self.revenueGenre == NewUnionIncomeGenre_Anchor){ + [self intelligenceerRenovtowardseh]; + } +} + +- (void)viewDidLayoutSubviews { + [super viewDidLayoutSubviews]; + [self initChildLyRestrictions]; +} + +- (void)initIntelligencerGrantedTerminalerRrfresh { + MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(intelligenceerRenovtowardseh)]; + header.stateLabel.font = [UIFont systemFontOfSize:10.0]; + header.lastUpdatedTimeLabel.font = [UIFont systemFontOfSize:10.0]; + header.stateLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + header.lastUpdatedTimeLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + self.tableView.mj_header = header; +} + +- (void)intelligenceerRenovtowardseh { + if (self.revenueGenre == NewUnionIncomeGenre_Clan) { + [self.presimport acquireCollectiveGeneralRevenue:self.characteristicId startTime:self.startIntratemporalBWStt endTime:self.endIntratemporalBWStt]; + } else if(self.revenueGenre == NewUnionIncomeGenre_Hall) { + [self.presimport acquireCorridorGeneralRevenue:self.characteristicId startTime:self.startIntratemporalBWStt endTime:self.endIntratemporalBWStt]; + } else { + [self.presimport acquireCorridorKellegGeneralRevenue:self.characteristicId startTime:self.startIntratemporalBWStt endTime:self.endIntratemporalBWStt]; + + + } +} + +#pragma mark - Private Method +- (void)initSubViews { + self.view.backgroundColor = [UIColor whiteColor]; + [self.view addSubview:self.intelligenceerRegard]; + [self.view addSubview:self.tableView]; +} + +- (void)initChildLyRestrictions { + [self.intelligenceerRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.view); + make.right.mas_equalTo(self.view); + make.top.mas_equalTo(self.view).offset(10); + make.height.mas_equalTo(100); + }]; + + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.mas_equalTo(self.view); + make.top.mas_equalTo(self.intelligenceerRegard.mas_bottom); + }]; +} + +- (void)monthAboutUniversalEngagement:(NSDate *)newDate { + if (newDate == nil) { + newDate = [NSDate date]; + } + double interval = 0; + NSDate *beginDate = nil; + NSDate *endDate = nil; + NSCalendar *calendar = [NSCalendar currentCalendar]; + [calendar setFirstWeekday:2]; + BOOL ok = [calendar rangeOfUnit:NSCalendarUnitMonth startDate:&beginDate interval:&interval forDate:newDate]; + if (ok) { + endDate = [beginDate dateByAddingTimeInterval:interval-1]; + } else { + return; + } + self.startDate = beginDate; + self.endDate = endDate; +} + +- (void)weekSeasonAboutUniversalEngagement:(NSDate *)date { + NSCalendar * calendar = [NSCalendar currentCalendar]; + NSDateComponents *comps = [calendar components:NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitWeekday | NSCalendarUnitDay fromDate:date]; + + + NSInteger weekDay = [comps weekday]; + + NSInteger day = [comps day]; + long firstDiff,lastDiff; + if (weekDay == 1){ + firstDiff = -6; + lastDiff = 0; + } else { + firstDiff = -(weekDay - 2); + lastDiff = 8 - weekDay; + } + + NSDateComponents *baseDayComp = [calendar components:NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay fromDate:date]; + + [baseDayComp setDay:day + firstDiff]; + NSDate *firstDayOfWeek = [calendar dateFromComponents:baseDayComp]; + self.startDate = firstDayOfWeek; + + [baseDayComp setDay:day + lastDiff]; + NSDate *lastDayOfWeek = [calendar dateFromComponents:baseDayComp]; + self.endDate = lastDayOfWeek; +} + +#pragma mark - UITableViewDelegate And UITableViewDataSource +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.datasource.count > 0 ? self.datasource.count : 1; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + if(self.revenueGenre == NewUnionIncomeGenre_Anchor){ + return self.datasource.count > 0 ? kGetScaleWidth(93) : 400; + } + return self.datasource.count > 0 ? 90 : 400; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + if (self.datasource.count > 0) { + if (self.revenueGenre == NewUnionIncomeGenre_Clan) { + YUMIUnionRevenueReflectionTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIUnionRevenueReflectionTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIUnionRevenueReflectionTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIUnionRevenueReflectionTabulationRegardElement class])]; + } + cell.rateDigital = indexPath.row; + cell.userInfo = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + return cell; + } else if(self.revenueGenre == NewUnionIncomeGenre_Hall) { + YUMIUnionFeatureRevenueTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIUnionFeatureRevenueTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIUnionFeatureRevenueTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIUnionFeatureRevenueTabulationRegardElement class])]; + } + cell.userInfo = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + return cell; + } else if(self.revenueGenre == NewUnionIncomeGenre_Anchor) { + YUMIUnionSingleChamberRevenueTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIUnionSingleChamberRevenueTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIUnionSingleChamberRevenueTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIUnionSingleChamberRevenueTabulationRegardElement class])]; + } + + cell.userInfo = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + cell.rateDigital = indexPath.row; + return cell; + } + } + YUMIManeUnionDispossessTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIManeUnionDispossessTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIManeUnionDispossessTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIManeUnionDispossessTabulationRegardElement class])]; + } + return cell; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { + + return 47; +} + +- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { + if (section == 0) { + if (self.revenueGenre == NewUnionIncomeGenre_Clan || self.revenueGenre == NewUnionIncomeGenre_Hall) { + + if(self.revenueGenre == NewUnionIncomeGenre_Clan){ + YUMIUnionRevenueDivisionRegard * newSectionView = [[YUMIUnionRevenueDivisionRegard alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth, 47) right:124]; + newSectionView.revenueGenre = UnionIncomeGenre_Clan; + + return newSectionView; + } + YUMIUnionRevenueDivisionRegard * sectionRegard = [[YUMIUnionRevenueDivisionRegard alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth, 47)]; + + UnionIncomeGenre type; + if (self.revenueGenre == NewUnionIncomeGenre_Hall){ + type = UnionIncomeGenre_Hall; + }else{ + type = UnionIncomeGenre_Anchor; + } + sectionRegard.revenueGenre = type ; + return sectionRegard; + } else { + YUMIUnionKellegRevenueDivisionRegard * sectionRegard = [[YUMIUnionKellegRevenueDivisionRegard alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth, 47)]; + sectionRegard.isHost = YES; + return sectionRegard; + } + } + return [UIView new]; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section{ + return 0.01f; +} + +- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section{ + return [[UIView alloc]init]; +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + [tableView deselectRowAtIndexPath:indexPath animated:YES]; + if (self.revenueGenre == NewUnionIncomeGenre_Hall) { + if (self.datasource.count > 0) { + UnionFeatureRevenueConsumerAbstractMatrix * componentAbstract = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + YUMIManeUnionRevenueSpecificRegardGovernancer * incomeDetailVC = [[YUMIManeUnionRevenueSpecificRegardGovernancer alloc] init]; + incomeDetailVC.hallId = self.characteristicId; + incomeDetailVC.startTime = self.startIntratemporalBWStt; + incomeDetailVC.endTime = self.endIntratemporalBWStt; + incomeDetailVC.componentAbstract = componentAbstract; + [self.navigationController pushViewController:incomeDetailVC animated:YES]; + } + + } +} + +#pragma mark - FBCUnionIncomeIntelligencerRegardRepresendtation +- (void)yUMIStrangeUnionRevenueIntelligencerRegard:(YUMIStrangeUnionRevenueIntelligencerRegard *)view didChooseTime:(UIButton *)sender { + if (self.intratemporalGenre == NewUnionIncomeRecrdTimeGenre_Mouth) { + [self.monthExtracterRegard setDate:[NSDate date] animated:YES]; + [self.monthExtracterRegard show]; + } else { + YUMIStrangeUnionIntratemporalPickRegard * intratemporalRegard = [[YUMIStrangeUnionIntratemporalPickRegard alloc] init]; + intratemporalRegard.currentDate = [NSDate date]; + intratemporalRegard.extractEngagementGenre = self.intratemporalGenre == NewUnionIncomeRecrdTimeGenre_Week ? YUMINewUnionTimePickGenreWeek : YUMINewUnionTimePickGenreDay; + intratemporalRegard.delegate = self; + [MKJPopup popupRegard:intratemporalRegard style:MKJPopupStyleActionSheet]; + } +} + +#pragma mark - FBCUnionTimeMonthPickerRegardRepresendtation +- (void)datePicker:(YUMIUnionIntratemporalMonthPickerRegard *)datePicker didCancel:(UIButton *)sender { + [MKJPopup dismiss]; +} + +- (void)datePicker:(YUMIUnionIntratemporalMonthPickerRegard *)dataPicker didSelectedDate:(NSDate *)date { + [MKJPopup dismiss]; + [self monthAboutUniversalEngagement:date]; + self.startIntratemporalBWStt = [PLIntratemporalUtil acquireYYMMDDAboutEngagement:date]; + self.endIntratemporalBWStt = [PLIntratemporalUtil acquireYYMMDDAboutEngagement:self.endDate]; + [self.intelligenceerRegard prohibitipositionIntelligencerRegard:date endTime:nil]; + [self intelligenceerRenovtowardseh]; +} + +#pragma mark -FBCUnionTimePickRegardRepresendtation +- (void)yUMIStrangeUnionIntrtowardsemporalExtractRegard:(YUMIStrangeUnionIntratemporalPickRegard *)view didTicktackRevoctowardsion:(UIButton *)sender { + [MKJPopup dismiss]; +} + +- (void)yUMIStrangeUnionIntrtowardsemporalExtractRegard:(YUMIStrangeUnionIntratemporalPickRegard *)view didClickSure:(UIButton *)sender { + [MKJPopup dismiss]; + if (self.intratemporalGenre == NewUnionIncomeRecrdTimeGenre_Week) { + self.startIntratemporalBWStt = [PLIntratemporalUtil acquireYYMMDDAboutEngagement:view.startDate]; + self.endIntratemporalBWStt = [PLIntratemporalUtil acquireYYMMDDAboutEngagement:view.endDate]; + [self.intelligenceerRegard prohibitipositionIntelligencerRegard:view.startDate endTime:view.endDate]; + } else { + self.startIntratemporalBWStt = [PLIntratemporalUtil acquireYYMMDDAboutEngagement:view.startDate]; + self.endIntratemporalBWStt = [PLIntratemporalUtil acquireYYMMDDAboutEngagement:view.endDate];; + [self.intelligenceerRegard prohibitipositionIntelligencerRegard:view.startDate endTime:view.endDate]; + } + [self intelligenceerRenovtowardseh]; +} + +#pragma mark - FBCUnionIncomeCeremony +- (void)acquireCollectiveGeneralRevenueScuess:(UnionRevenueReflectionMatrix *)incomeInfo { + [self.tableView.mj_header endRefreshing]; + self.intelligenceerRegard.generalRevenue = incomeInfo.total; + self.datasource = incomeInfo.income; + [self.tableView reloadData]; +} + +- (void)acquireCollectiveGeneralRevenueFlunk:(NSString *)msg { + [self.tableView.mj_header endRefreshing]; +} + +- (void)acquireCorridorGeneralRevenueScuess:(UnionFeatureRevenueReflectionMatrix *)incomeInfo { + [self.tableView.mj_header endRefreshing]; + self.intelligenceerRegard.generalRevenue = incomeInfo.total; + self.datasource = incomeInfo.vos; + [self.tableView reloadData]; +} + +- (void)acquireCorridorGeneralRevenueFlunk:(NSString *)msg { + [self.tableView.mj_header endRefreshing]; +} + +- (void)acquireCollectiveKellegGeneralRevenueAccomplishment:(UnionFeatureRevenueReflectionMatrix *)incomeInfo { + [self.tableView.mj_header endRefreshing]; + self.intelligenceerRegard.generalRevenue = incomeInfo.totalDiamond; + self.datasource = incomeInfo.incomes; + [self.tableView reloadData]; + +} + +- (void)acquireCollectiveKellegGeneralRevenueFlunk:(NSString *)msg { + [self.tableView.mj_header endRefreshing]; +} + +- (void)acquireCorridorKellegGeneralRevenueAccomplishment:(UnionFeatureRevenueReflectionMatrix *)incomeInfo { + [self.tableView.mj_header endRefreshing]; + self.intelligenceerRegard.generalRevenue = incomeInfo.total; + self.datasource = incomeInfo.memberIncome; + [self.tableView reloadData]; +} + +- (void)acquireCorridorKellegGeneralRevenueFlunk:(NSString *)msg { + [self.tableView.mj_header endRefreshing]; +} + +#pragma mark - JXCategoryListContentViewDelegate +- (UIView *)listView { + return self.view; +} + +#pragma mark - Getters And Setters +- (void)setIntratemporalGenre:(NewUnionIncomeRecrdTimeGenre)intratemporalGenre { + _intratemporalGenre = intratemporalGenre; + switch (_intratemporalGenre) { + case NewUnionIncomeRecrdTimeGenre_Day: + self.startDate = [NSDate date]; + self.endDate = [NSDate date]; + self.startIntratemporalBWStt = [PLIntratemporalUtil acquireYYMMDDAboutEngagement:self.startDate]; + self.endIntratemporalBWStt = [PLIntratemporalUtil acquireYYMMDDAboutEngagement:self.startDate]; + break; + case NewUnionIncomeRecrdTimeGenre_Week: + [self weekSeasonAboutUniversalEngagement:[NSDate date]]; + self.startIntratemporalBWStt = [PLIntratemporalUtil acquireYYMMDDAboutEngagement:self.startDate]; + self.endIntratemporalBWStt = [PLIntratemporalUtil acquireYYMMDDAboutEngagement:self.endDate]; + break; + case NewUnionIncomeRecrdTimeGenre_Mouth: + [self monthAboutUniversalEngagement:[NSDate date]]; + self.startIntratemporalBWStt = [PLIntratemporalUtil acquireYYMMDDAboutEngagement:self.startDate]; + self.endIntratemporalBWStt = [PLIntratemporalUtil acquireYYMMDDAboutEngagement:self.endDate]; + break; + default: + break; + } + self.intelligenceerRegard.intratemporalGenre = intratemporalGenre; + [self.intelligenceerRegard prohibitipositionIntelligencerRegard:self.startDate endTime:self.endDate]; + if(self.revenueGenre == NewUnionIncomeGenre_Anchor){ + return; + } + [self intelligenceerRenovtowardseh]; +} + +- (void)scrollViewDidScroll:(UIScrollView *)scrollView { + CGFloat sectionHeaderHeight = 37; + if (scrollView.contentOffset.y<=sectionHeaderHeight&&scrollView.contentOffset.y>=0) { + scrollView.contentInset = UIEdgeInsetsMake(-scrollView.contentOffset.y, 0, 0, 0); + } else if (scrollView.contentOffset.y>=sectionHeaderHeight) { + scrollView.contentInset = UIEdgeInsetsMake(-sectionHeaderHeight, 0, 0, 0); + } +} + +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.tableFooterView = [UIView new]; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.backgroundColor = [UIColor whiteColor]; + if (@available(iOS 11.0, *)) { + _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + [_tableView registerClass:[YUMIUnionRevenueReflectionTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIUnionRevenueReflectionTabulationRegardElement class])]; + [_tableView registerClass:[YUMIUnionFeatureRevenueTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIUnionFeatureRevenueTabulationRegardElement class])]; + [_tableView registerClass:[YUMIManeUnionDispossessTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIManeUnionDispossessTabulationRegardElement class])]; + [_tableView registerClass:[YUMIUnionSingleChamberRevenueTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIUnionSingleChamberRevenueTabulationRegardElement class])]; + } + return _tableView; +} + +- (YUMIStrangeUnionRevenueIntelligencerRegard *)intelligenceerRegard { + if (!_intelligenceerRegard) { + _intelligenceerRegard = [[YUMIStrangeUnionRevenueIntelligencerRegard alloc] init]; + _intelligenceerRegard.delegate = self; + } + return _intelligenceerRegard; +} + +- (YUMIUnionIntratemporalMonthPickerRegard *)monthExtracterRegard { + if (!_monthExtracterRegard) { + _monthExtracterRegard = [[YUMIUnionIntratemporalMonthPickerRegard alloc] initAboutSenstowardsionalRegard:self.view]; + _monthExtracterRegard.delegate = self; + _monthExtracterRegard.datePickerMode = HooDatePickerModeYearAndMonth; + [_monthExtracterRegard setTintColor:UIColorFromRGB(0x999999)]; + [_monthExtracterRegard setHighlightPrettify:UIColorFromRGB(0x333333)]; + NSDate * date = [NSDate date]; + NSDateComponents *comps = nil; comps = [[NSCalendar partowardsiciptowardsiondCalconcludear] components:NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitMonth fromDate:date]; + NSDateComponents *adcomps = [[NSDateComponents alloc] init]; + [adcomps setYear:-15]; + [adcomps setMonth:0]; + [adcomps setDay:0]; + NSDate *minDate = [[NSCalendar partowardsiciptowardsiondCalconcludear] dateByAddingComponents:adcomps toDate:date options:0]; + + NSDateComponents *maxcomps = [[NSDateComponents alloc] init]; + [maxcomps setYear:15]; + [maxcomps setMonth:0]; + [maxcomps setDay:0]; + NSDate *maxDate = [[NSCalendar partowardsiciptowardsiondCalconcludear] dateByAddingComponents:maxcomps toDate:date options:0]; + _monthExtracterRegard.minimumDate = minDate; + _monthExtracterRegard.maximumDate = maxDate; + + } + return _monthExtracterRegard; +} +@end diff --git a/YuMi/Modules/YMMine/View/Guild/View/Setting/YUMIManeMangerStatementRegardGovernancer.h b/YuMi/Modules/YMMine/View/Guild/View/Setting/YUMIManeMangerStatementRegardGovernancer.h new file mode 100644 index 00000000..8577e3e0 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/Setting/YUMIManeMangerStatementRegardGovernancer.h @@ -0,0 +1,16 @@ +// +// YUMIManeMangerStatementRegardGovernancer.h +// YuMi +// +// Created by YuMi on 2022/4/8. +// + +#import "MvpRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeMangerStatementRegardGovernancer : MvpRegardGovernancer +@property (nonatomic,copy) NSString *instituteId; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/View/Setting/YUMIManeMangerStatementRegardGovernancer.m b/YuMi/Modules/YMMine/View/Guild/View/Setting/YUMIManeMangerStatementRegardGovernancer.m new file mode 100644 index 00000000..07302419 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/Setting/YUMIManeMangerStatementRegardGovernancer.m @@ -0,0 +1,202 @@ +// +// YUMIManeMangerStatementRegardGovernancer.m +// YuMi +// +// Created by YuMi on 2022/4/8. +// 高管列表 + +#import "YUMIManeMangerStatementRegardGovernancer.h" +#import +#import +#import "DJDKMIMOMColor.h" + +#import "YUMICollectiveComponentTabulationRegardElement.h" +#import "YUMIManeUnionDispossessTabulationRegardElement.h" +#import "YUMIManeUnionExecutiveSetRegardGovernancer.h" +#import "YUMIManeUnionExecutivePerRegardGovernancer.h" +#import "YUMIUnionMangerStatementExternalizer.h" +#import "FBCUnionExecutiveStatementCeremony.h" + +@interface YUMIManeMangerStatementRegardGovernancer () +@property (nonatomic,strong) UITableView *tableView; +@property (nonatomic,assign) int page; +@property (nonatomic,assign) BOOL hasNoFurthaerAtoloudspeaker; +@property (nonatomic,strong) NSMutableArray *datasource; +@end + +@implementation YUMIManeMangerStatementRegardGovernancer + +- (__kindof id)producePresimport { + return [[YUMIUnionMangerStatementExternalizer alloc] init]; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initSubViews]; + [self initChildLyRestrictions]; + [self initIntelligencerGrantedTerminalerRrfresh]; +} + +- (void)viewWillAppear:(BOOL)animated { + [super viewWillAppear:animated]; + if (self.instituteId.length > 0) { + [self intelligenceerRenovtowardseh]; + } +} + +#pragma mark - 下拉刷新 +- (void)initIntelligencerGrantedTerminalerRrfresh { + MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(intelligenceerRenovtowardseh)]; + header.stateLabel.font = [UIFont systemFontOfSize:10.0]; + header.lastUpdatedTimeLabel.font = [UIFont systemFontOfSize:10.0]; + header.stateLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + header.lastUpdatedTimeLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + self.tableView.mj_header = header; + + MJRefreshBackNormalFooter *footer = [MJRefreshBackNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(footerRenovtowardseh)]; + footer.stateLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + footer.stateLabel.font = [UIFont systemFontOfSize:10.0]; + self.tableView.mj_footer = footer; +} + +#pragma mark - 刷新的fangfa +- (void)intelligenceerRenovtowardseh { + if (self.instituteId.length <= 0) { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_MineMangerListViewController0")]; + [self.navigationController popViewControllerAnimated:YES]; + return; + } + self.page = 1; + [self.presimport acquireUnionChamberExecutiveSttowardsement:self.instituteId page:self.page pageSize:20 state:0]; +} + +- (void)footerRenovtowardseh { + if (self.instituteId.length <= 0) { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_MineMangerListViewController1")]; + [self.navigationController popViewControllerAnimated:YES]; + return; + } + + if (self.hasNoFurthaerAtoloudspeaker) { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_MineMangerListViewController2")]; + [self.tableView.mj_footer endRefreshing]; + return; + } + self.page++; + [self.presimport acquireUnionChamberExecutiveSttowardsement:self.instituteId page:self.page pageSize:20 state:1]; +} + + +#pragma mark - Private Method +- (void)initSubViews { + self.title = YMLocalizedString(@"YUMI_MineMangerListViewController3"); + [self.view addSubview:self.tableView]; + [self accelertowardseBreeadcrumbProvisionAboutIndictowardseSaluttowardsion:@[@"mine_guild_guild_manager_set"] isContrary:NO target:self action:@selector(rectifyBtutonPerformance:) tags:nil]; +} + +- (void)initChildLyRestrictions { + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.view); + }]; +} + +#pragma mark - UITableViewDelegate And UITableViewDataSource +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.datasource.count > 0 ? self.datasource.count : 1; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + if (self.datasource.count > 0) { + YUMICollectiveComponentTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMICollectiveComponentTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMICollectiveComponentTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMICollectiveComponentTabulationRegardElement class])]; + } + cell.cellType = ClanMemberTableRegardCellGenre_Manager_Set; + CollectiveComponentAbstractMatrix * componentAbstract = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + cell.componentAbstract = componentAbstract; + return cell; + } + + YUMIManeUnionDispossessTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIManeUnionDispossessTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIManeUnionDispossessTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIManeUnionDispossessTabulationRegardElement class])]; + } + cell.emptyTitle = YMLocalizedString(@"YUMI_MineMangerListViewController4"); + return cell; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + return self.datasource.count > 0 ? 66 : (KScreenHeight - kNavigationHeight); +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + [tableView deselectRowAtIndexPath:indexPath animated:YES]; + if (self.datasource.count > 0) { + CollectiveComponentAbstractMatrix * componentAbstract = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + YUMIManeUnionExecutivePerRegardGovernancer * managerAuthVC = [[YUMIManeUnionExecutivePerRegardGovernancer alloc] init]; + managerAuthVC.instituteId = self.instituteId; + managerAuthVC.executiveAbstract = componentAbstract; + [self.navigationController pushViewController:managerAuthVC animated:YES]; + } +} + +#pragma mark -XPGuildRemoveMemberProtolcol +- (void)acquireUnionChamberExecutiveSttowardsementAccomplishment:(CollectiveComponentSpecificAbstractMatrix *)componentAbstract state:(int)state { + if (state == 0) { + self.hasNoFurthaerAtoloudspeaker = NO; + [self.datasource removeAllObjects]; + [self.tableView.mj_header endRefreshing]; + } else { + [self.tableView.mj_footer endRefreshing]; + } + + if (componentAbstract.members.count > 0) { + [self.datasource addObjectsFromArray:componentAbstract.members]; + } else { + self.hasNoFurthaerAtoloudspeaker = YES; + } + [self.tableView reloadData]; +} + +- (void)acquireUnionChamberExecutiveSttowardsementFlunk:(NSString *)msg state:(int)state{ + if (state == 0) { + [self.tableView.mj_header endRefreshing]; + } else { + [self.tableView.mj_footer endRefreshing]; + } +} + +#pragma mark - Event Response +- (void)rectifyBtutonPerformance:(UIButton *)sender { + YUMIManeUnionExecutiveSetRegardGovernancer * managerSetVC = [[YUMIManeUnionExecutiveSetRegardGovernancer alloc] init]; + managerSetVC.instituteId = self.instituteId; + [self.navigationController pushViewController:managerSetVC animated:YES]; +} + +#pragma mark - Getters And Setters +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.tableFooterView = [UIView new]; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.backgroundColor = [UIColor clearColor]; + _tableView.showsVerticalScrollIndicator = NO; + if (@available(iOS 11.0, *)) { + _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + [_tableView registerClass:[YUMICollectiveComponentTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMICollectiveComponentTabulationRegardElement class])]; + [_tableView registerClass:[YUMIManeUnionDispossessTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIManeUnionDispossessTabulationRegardElement class])]; + } + return _tableView; +} + +- (NSMutableArray *)datasource { + if (!_datasource) { + _datasource = [NSMutableArray array]; + } + return _datasource; +} + +@end diff --git a/YuMi/Modules/YMMine/View/Guild/View/Setting/YUMIManeUnionExecutivePerRegardGovernancer.h b/YuMi/Modules/YMMine/View/Guild/View/Setting/YUMIManeUnionExecutivePerRegardGovernancer.h new file mode 100644 index 00000000..ff974df8 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/Setting/YUMIManeUnionExecutivePerRegardGovernancer.h @@ -0,0 +1,17 @@ +// +// YUMIManeUnionExecutivePerRegardGovernancer.h +// YuMi +// +// Created by YuMi on 2022/4/8. +// + +#import "MvpRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN +@class CollectiveComponentAbstractMatrix; +@interface YUMIManeUnionExecutivePerRegardGovernancer : MvpRegardGovernancer +@property (nonatomic,copy) NSString *instituteId; +@property (nonatomic,strong) CollectiveComponentAbstractMatrix *executiveAbstract; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/View/Setting/YUMIManeUnionExecutivePerRegardGovernancer.m b/YuMi/Modules/YMMine/View/Guild/View/Setting/YUMIManeUnionExecutivePerRegardGovernancer.m new file mode 100644 index 00000000..bae29b14 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/Setting/YUMIManeUnionExecutivePerRegardGovernancer.m @@ -0,0 +1,305 @@ +// +// YUMIManeUnionExecutivePerRegardGovernancer.m +// YuMi +// +// Created by YuMi on 2022/4/8. +// 管理权限 + +#import "YUMIManeUnionExecutivePerRegardGovernancer.h" +#import +#import "DJDKMIMOMColor.h" + +#import "NetIndicateRegard.h" +#import "MKJPopup.h" +#import "CollectiveComponentSpecificAbstractMatrix.h" +#import "UnionAuthMatrix.h" +#import "YUMIManeUnionExecutivePerTabulationRegardElement.h" +#import "YUMIUnionExecutivePerExternalizer.h" +#import "FBCUnionExecutivePerCeremony.h" +@interface YUMIManeUnionExecutivePerRegardGovernancer () +@property (nonatomic,strong) UIView * nevRegard; +@property (nonatomic,strong) UIButton *backButton; +@property (nonatomic,strong) UILabel *titleLabel; +@property (nonatomic,strong) UIButton *completionBtuton; +@property (nonatomic,strong) UITableView *tableView; +@property (nonatomic,strong) UIView * contentView; +@property (nonatomic,strong) NetIndicateRegard *intelligenceportraitIndicateRegard; +@property (nonatomic,strong) UILabel *monicerSequencignation; +@property (nonatomic,strong) NSArray *datasource; +@property (nonatomic,strong) NSMutableArray *attestationGarment; +@property (nonatomic,strong) NSMutableArray *diversificationGarment; +@end + +@implementation YUMIManeUnionExecutivePerRegardGovernancer + +- (BOOL)isVeiledNevObstacle { + return YES; +} + +- (__kindof id)producePresimport { + return [[YUMIUnionExecutivePerExternalizer alloc] init];; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initSubViews]; + [self initChildLyRestrictions]; + [self.presimport acquireUnionChamberExecutivePrecondition:self.executiveAbstract.uid]; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.titleLabel.text = YMLocalizedString(@"YUMI_MineGuildManagerPerViewController0"); + [self.view addSubview:self.nevRegard]; + [self.view addSubview:self.contentView]; + [self.view addSubview:self.tableView]; + + [self.nevRegard addSubview:self.backButton]; + [self.nevRegard addSubview:self.titleLabel]; + [self.nevRegard addSubview:self.completionBtuton]; + + [self.contentView addSubview:self.intelligenceportraitIndicateRegard]; + [self.contentView addSubview:self.monicerSequencignation]; +} + +- (void)initChildLyRestrictions { + [self.nevRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self.view); + make.height.mas_equalTo(kNavigationHeight); + }]; + + [self.backButton mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.view).mas_offset(10); + make.top.mas_equalTo(statusbarHeight); + make.height.width.mas_equalTo(44); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.nevRegard); + make.centerY.mas_equalTo(self.backButton); + }]; + + [self.completionBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self.nevRegard).offset(-15); + make.centerY.mas_equalTo(self.backButton); + }]; + + [self.contentView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.nevRegard.mas_bottom); + make.left.right.mas_equalTo(self.view); + make.height.mas_equalTo(50); + }]; + + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(40, 40)); + make.left.mas_equalTo(self.contentView).offset(15); + make.top.mas_equalTo(self.contentView).offset(10); + }]; + [self.monicerSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.intelligenceportraitIndicateRegard); + make.left.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_right).offset(10); + }]; + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.mas_equalTo(self.view); + make.top.mas_equalTo(self.contentView.mas_bottom); + }]; + + +} + + +#pragma mark - UITableViewDelegate And UITableViewDataSource +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + return 70; +} + +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.datasource.count; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + YUMIManeUnionExecutivePerTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIManeUnionExecutivePerTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIManeUnionExecutivePerTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIManeUnionExecutivePerTabulationRegardElement class])]; + } + UnionAuthMatrix * attestationAbstract = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + cell.attestationAbstract = attestationAbstract; + cell.delegate = self; + if (attestationAbstract.status) { + if (![self.attestationGarment containsObject:attestationAbstract.code]) { + [self.attestationGarment addObject:attestationAbstract.code]; + } + } else { + if ([self.attestationGarment containsObject:attestationAbstract.code]) { + [self.attestationGarment removeObject:attestationAbstract.code]; + } + } + return cell; +} + +#pragma mark - FBCManeUnionExecutivePerTabulationViweElementRepresendtation +- (void)fBCManeUnionExecutivePerTarbsultowardsionViweElement:(UISwitch *)onswitch attestationAbstract:(UnionAuthMatrix *)attestationAbstract { + if (onswitch.on) { + if (![self.attestationGarment containsObject:attestationAbstract.code]) { + [self.attestationGarment addObject:attestationAbstract.code]; + } + + if (![self.diversificationGarment containsObject:attestationAbstract.code]) { + [self.diversificationGarment addObject:attestationAbstract.code]; + } + + } else { + if ([self.attestationGarment containsObject:attestationAbstract.code]) { + [self.attestationGarment removeObject:attestationAbstract.code]; + } + + if ([self.diversificationGarment containsObject:attestationAbstract.code]) { + [self.diversificationGarment removeObject:attestationAbstract.code]; + } + } +} + +#pragma mark - CollectiveComponentSpecificAbstractMatrix +- (void)acquireUnionChamberExecutivePreconditionAccomplishment:(NSArray *)array { + self.datasource = array; + [self.tableView reloadData]; +} + +- (void)refurbishUnionChamberExecutivePreconditionAccomplishment { + [self EvidenceAccomplishmentToast:YMLocalizedString(@"YUMI_MineGuildManagerPerViewController1")]; + [self.navigationController popViewControllerAnimated:YES]; +} + +#pragma mark - Event Response +- (void)implementtowardsionBtutonPerformance:(UIButton *)sender { + if (self.attestationGarment.count > 0) { + NSString *authStr = [[self.attestationGarment componentsJoinedByString:@","] stringByAppendingString:@","]; + [self.presimport refurbishUnionChamberExecutivePrecondition:self.instituteId managerUid:self.executiveAbstract.uid authStr:authStr]; + } else { + [self.presimport refurbishUnionChamberExecutivePrecondition:self.instituteId managerUid:self.executiveAbstract.uid authStr:@""]; + } +} + +- (void)encourageBtutonPerformance:(UIButton *)sender { + if (self.diversificationGarment.count == 0) { + [self.navigationController popViewControllerAnimated:YES]; + return; + } + + [MKJPopup precautiousAboutCommunictowardsion:YMLocalizedString(@"YUMI_MineGuildManagerPerViewController2") acknowledgementHandler:^{ + [self.navigationController popViewControllerAnimated:YES]; + } cancelHandler:^{ + }]; +} + +#pragma mark - Getters And Setters +- (void)setExecutiveAbstract:(CollectiveComponentAbstractMatrix *)executiveAbstract { + _executiveAbstract = executiveAbstract; + if (_executiveAbstract) { + self.intelligenceportraitIndicateRegard.imageUrl = _executiveAbstract.avatar; + self.monicerSequencignation.text = _executiveAbstract.nick; + } +} + +- (UIView *)contentView { + if (!_contentView) { + _contentView = [[UIView alloc] init]; + _contentView.backgroundColor = [DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify]; + } + return _contentView; +} + +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.tableFooterView = [UIView new]; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.backgroundColor = [UIColor clearColor]; + _tableView.scrollEnabled = NO; + if (@available(iOS 11.0, *)) { + _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + [_tableView registerClass:[YUMIManeUnionExecutivePerTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIManeUnionExecutivePerTabulationRegardElement class])]; + } + return _tableView; +} + +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _intelligenceportraitIndicateRegard.layer.cornerRadius = 20; + } + return _intelligenceportraitIndicateRegard; +} + +- (UILabel *)monicerSequencignation{ + if (!_monicerSequencignation) { + _monicerSequencignation = [[UILabel alloc] init]; + _monicerSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _monicerSequencignation.font = [UIFont systemFontOfSize:15.f]; + } + return _monicerSequencignation; +} + +- (UIView *)nevRegard { + if (!_nevRegard) { + _nevRegard = [[UIView alloc] init]; + _nevRegard.backgroundColor = [UIColor whiteColor]; + } + return _nevRegard; +} + +- (UIButton *)backButton { + if (!_backButton) { + _backButton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_backButton setImage:[UIImage imageNamed:@"yumi_same_title_back"] forState:UIControlStateNormal]; + _backButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft; + [_backButton addTarget:self action:@selector(encourageBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _backButton; +} + + +- (UIButton *)completionBtuton { + if (!_completionBtuton) { + _completionBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_completionBtuton setTitle:YMLocalizedString(@"YUMI_MineGuildManagerPerViewController3") forState:UIControlStateNormal]; + [_completionBtuton setTitleColor:[DJDKMIMOMColor aplictowardsionMainPrettify] forState:UIControlStateNormal]; + _completionBtuton.titleLabel.font = [UIFont systemFontOfSize:15]; + [_completionBtuton addTarget:self action:@selector(implementtowardsionBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _completionBtuton; +} + + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.textAlignment = NSTextAlignmentCenter; + _titleLabel.font = [UIFont boldSystemFontOfSize:18]; + _titleLabel.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _titleLabel; +} + +- (NSMutableArray *)attestationGarment { + if (!_attestationGarment) { + _attestationGarment = [NSMutableArray array]; + } + return _attestationGarment; +} + +- (NSMutableArray *)diversificationGarment { + if (!_diversificationGarment) { + _diversificationGarment = [NSMutableArray array]; + } + return _diversificationGarment; +} + +@end diff --git a/YuMi/Modules/YMMine/View/Guild/View/Setting/YUMIManeUnionExecutiveSetRegardGovernancer.h b/YuMi/Modules/YMMine/View/Guild/View/Setting/YUMIManeUnionExecutiveSetRegardGovernancer.h new file mode 100644 index 00000000..4dcc9b31 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/Setting/YUMIManeUnionExecutiveSetRegardGovernancer.h @@ -0,0 +1,16 @@ +// +// YUMIManeUnionExecutiveSetRegardGovernancer.h +// YuMi +// +// Created by YuMi on 2022/4/8. +// + +#import "MvpRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeUnionExecutiveSetRegardGovernancer : MvpRegardGovernancer +@property (nonatomic,copy) NSString *instituteId; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/View/Setting/YUMIManeUnionExecutiveSetRegardGovernancer.m b/YuMi/Modules/YMMine/View/Guild/View/Setting/YUMIManeUnionExecutiveSetRegardGovernancer.m new file mode 100644 index 00000000..1e684885 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/Setting/YUMIManeUnionExecutiveSetRegardGovernancer.m @@ -0,0 +1,260 @@ +// +// YUMIManeUnionExecutiveSetRegardGovernancer.m +// YuMi +// +// Created by YuMi on 2022/4/8. +// + +#import "YUMIManeUnionExecutiveSetRegardGovernancer.h" +#import +#import +#import "DJDKMIMOMColor.h" +#import "MKJPopup.h" +#import "YUMICollectiveComponentTabulationRegardElement.h" +#import "YUMIManeExecutiveSetExternalizer.h" +#import "FBCUnionSetExecutiveCeremony.h" + + +@interface YUMIManeUnionExecutiveSetRegardGovernancer () +@property (nonatomic,strong) UIView * apexRegard; +@property (nonatomic,strong) UILabel *concludeSequencignation; +@property (nonatomic,strong) UITableView *tableView; +@property (nonatomic,assign) int page; +@property (nonatomic,assign) BOOL hasNoFurthaerAtoloudspeaker; +@property (nonatomic,strong) NSMutableArray *datasource; +@property (nonatomic,assign) int executiveDigital; +@end + +@implementation YUMIManeUnionExecutiveSetRegardGovernancer + +- (__kindof id)producePresimport { + return [[YUMIManeExecutiveSetExternalizer alloc] init]; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initSubViews]; + [self initChildLyRestrictions]; + [self initIntelligencerGrantedTerminalerRrfresh]; +} + +#pragma mark - 下拉刷新 +- (void)initIntelligencerGrantedTerminalerRrfresh { + MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(intelligenceerRenovtowardseh)]; + header.stateLabel.font = [UIFont systemFontOfSize:10.0]; + header.lastUpdatedTimeLabel.font = [UIFont systemFontOfSize:10.0]; + header.stateLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + header.lastUpdatedTimeLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + self.tableView.mj_header = header; + + MJRefreshBackNormalFooter *footer = [MJRefreshBackNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(footerRenovtowardseh)]; + footer.stateLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + footer.stateLabel.font = [UIFont systemFontOfSize:10.0]; + self.tableView.mj_footer = footer; + [self intelligenceerRenovtowardseh]; +} + +#pragma mark - 刷新的fangfa +- (void)intelligenceerRenovtowardseh { + if (self.instituteId.length <= 0) { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_MineGuildManagerSetViewController0")]; + [self.navigationController popViewControllerAnimated:YES]; + return; + } + self.page = 1; + [self.presimport acquireUnionComponentSttowardsement:self.instituteId page:self.page pageSize:20 state:0]; +} + +- (void)footerRenovtowardseh { + if (self.instituteId.length <= 0) { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_MineGuildManagerSetViewController1")]; + [self.navigationController popViewControllerAnimated:YES]; + return; + } + + if (self.hasNoFurthaerAtoloudspeaker) { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_MineGuildManagerSetViewController2")]; + [self.tableView.mj_footer endRefreshing]; + return; + } + self.page++; + [self.presimport acquireUnionComponentSttowardsement:self.instituteId page:self.page pageSize:20 state:1]; +} + + +#pragma mark - Private Method +- (void)initSubViews { + self.title = YMLocalizedString(@"YUMI_MineGuildManagerSetViewController3"); + [self.view addSubview:self.apexRegard]; + [self.view addSubview:self.tableView]; + [self.apexRegard addSubview:self.concludeSequencignation]; +} + +- (void)initChildLyRestrictions { + [self.apexRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(20); + make.left.right.top.mas_equalTo(self.view); + }]; + + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.apexRegard.mas_bottom); + make.left.right.bottom.mas_equalTo(self.view); + }]; + + [self.concludeSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.apexRegard).offset(15); + make.centerY.mas_equalTo(self.apexRegard); + }]; +} + +- (void)unionChamberExecutiveAccelertowardseOrTransltowardse:(CollectiveComponentAbstractMatrix *)componentAbstract { + if (componentAbstract) { + NSMutableArray *array = [NSMutableArray array]; + MKJPrecautiousCommunicationAttributedDisposition * alertConfig = [[MKJPrecautiousCommunicationAttributedDisposition alloc] init]; + alertConfig.text = componentAbstract.nick; + alertConfig.color = [DJDKMIMOMColor aplictowardsionMainPrettify]; + alertConfig.font = [UIFont systemFontOfSize:15]; + [array addObject:alertConfig]; + NSString * title; + if (componentAbstract.roleType == UnionRoleGenre_Manager) { + title = [NSString stringWithFormat:YMLocalizedString(@"YUMI_MineGuildManagerSetViewController4"), componentAbstract.nick]; + } else { + title = [NSString stringWithFormat:YMLocalizedString(@"YUMI_MineGuildManagerSetViewController5"), componentAbstract.nick]; + } + MKJPrecautiousDisposition * config = [[MKJPrecautiousDisposition alloc] init]; + config.title = YMLocalizedString(@"YUMI_MineGuildManagerSetViewController6"); + config.message = title; + config.communicationAttributedDisposition = array; + [MKJPopup precautiousAboutDisposition:config acknowledgementHandler:^{ + if (componentAbstract.roleType == UnionRoleGenre_Manager) { + [self.presimport unionChamberTransltowardseExecutive:componentAbstract.uid hallId:self.instituteId]; + } else { + [self.presimport unionChamberAccelertowardseExecutive:componentAbstract.uid hallId:self.instituteId]; + } + } cancelHandler:^{ + + }]; + } +} + +#pragma mark - UITableViewDelegate And UITableViewDataSource +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.datasource.count; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + YUMICollectiveComponentTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMICollectiveComponentTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMICollectiveComponentTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMICollectiveComponentTabulationRegardElement class])]; + } + cell.delegate = self; + cell.cellType = ClanMemberTableRegardCellGenre_Manager_Add_Remove; + CollectiveComponentAbstractMatrix * componentAbstract = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + if (componentAbstract.roleType == UnionRoleGenre_Manager) { + self.executiveDigital += 1; + } + cell.componentAbstract = componentAbstract; + self.concludeSequencignation.text = [NSString stringWithFormat:YMLocalizedString(@"YUMI_MineGuildManagerSetViewController7"), self.executiveDigital]; + return cell; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + return 66; +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + [tableView deselectRowAtIndexPath:indexPath animated:YES]; +} + +#pragma mark - FBCCollectiveMemberTabulationViweElementRepresendtation +- (void)yUMICollectiveComponentTarbsultowardsionViweElement:(YUMICollectiveComponentTabulationRegardElement *)view didClickUser:(CollectiveComponentAbstractMatrix *)userinfo { + [self unionChamberExecutiveAccelertowardseOrTransltowardse:userinfo]; +} + +#pragma mark -XPGuildRemoveMemberProtolcol +- (void)acquireUnionComponentSttowardsementAccomplishment:(CollectiveComponentSpecificAbstractMatrix *)componentAbstract state:(int)state { + if (state == 0) { + self.hasNoFurthaerAtoloudspeaker = NO; + [self.datasource removeAllObjects]; + [self.tableView.mj_header endRefreshing]; + } else { + [self.tableView.mj_footer endRefreshing]; + } + + if (componentAbstract.members.count > 0) { + [self.datasource addObjectsFromArray:componentAbstract.members]; + } else { + self.hasNoFurthaerAtoloudspeaker = YES; + } + [self.tableView reloadData]; +} + +- (void)acquireUnionComponentSttowardsementFlunk:(NSString *)msg state:(int)state { + if (state == 0) { + [self.tableView.mj_header endRefreshing]; + } else { + [self.tableView.mj_footer endRefreshing]; + } +} + +- (void)unionChamberAccelertowardseExecutiveAccomplishment:(NSString *)targetUid { + [self.datasource enumerateObjectsUsingBlock:^(CollectiveComponentAbstractMatrix * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if (obj.uid == targetUid) { + obj.roleType = UnionRoleGenre_Manager; + *stop = YES; + } + }]; + [self.tableView reloadData]; +} +- (void)unionChamberTransltowardseExecutiveAccomplishment:(NSString *)targetUid { + self.executiveDigital -= 1; + [self.datasource enumerateObjectsUsingBlock:^(CollectiveComponentAbstractMatrix * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if (obj.uid == targetUid) { + obj.roleType = UnionRoleGenre_Normal; + *stop = YES; + } + }]; + [self.tableView reloadData]; +} +#pragma mark - Getters And Setters +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.tableFooterView = [UIView new]; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.backgroundColor = [UIColor clearColor]; + _tableView.showsVerticalScrollIndicator = NO; + if (@available(iOS 11.0, *)) { + _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + [_tableView registerClass:[YUMICollectiveComponentTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMICollectiveComponentTabulationRegardElement class])]; + } + return _tableView; +} + +- (UIView *)apexRegard { + if (!_apexRegard) { + _apexRegard = [[UIView alloc] init]; + _apexRegard.backgroundColor = [DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify]; + } + return _apexRegard; +} + +- (UILabel *)concludeSequencignation { + if (!_concludeSequencignation) { + _concludeSequencignation = [[UILabel alloc] init]; + _concludeSequencignation.font = [UIFont systemFontOfSize:12]; + _concludeSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _concludeSequencignation; +} + +- (NSMutableArray *)datasource { + if (!_datasource) { + _datasource = [NSMutableArray array]; + } + return _datasource; +} +@end diff --git a/YuMi/Modules/YMMine/View/Guild/View/Setting/YUMIManeUnionRemoveComponentRegardGovernancer.h b/YuMi/Modules/YMMine/View/Guild/View/Setting/YUMIManeUnionRemoveComponentRegardGovernancer.h new file mode 100644 index 00000000..8ab78a6a --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/Setting/YUMIManeUnionRemoveComponentRegardGovernancer.h @@ -0,0 +1,16 @@ +// +// YUMIManeUnionRemoveComponentRegardGovernancer.h +// YuMi +// +// Created by YuMi on 2022/4/8. +// + +#import "MvpRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeUnionRemoveComponentRegardGovernancer : MvpRegardGovernancer +@property (nonatomic,copy) NSString *instituteId; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/View/Setting/YUMIManeUnionRemoveComponentRegardGovernancer.m b/YuMi/Modules/YMMine/View/Guild/View/Setting/YUMIManeUnionRemoveComponentRegardGovernancer.m new file mode 100644 index 00000000..134421a1 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/Setting/YUMIManeUnionRemoveComponentRegardGovernancer.m @@ -0,0 +1,207 @@ +// +// YUMIManeUnionRemoveComponentRegardGovernancer.m +// YuMi +// +// Created by YuMi on 2022/4/8. +// + +#import "YUMIManeUnionRemoveComponentRegardGovernancer.h" +#import +#import +#import "DJDKMIMOMColor.h" +#import "MKJPopup.h" +#import "YUMICollectiveComponentTabulationRegardElement.h" +#import "YUMIManeUnionDispossessTabulationRegardElement.h" +#import "YUMIManeConsumerAbstractRegardGovernancer.h" +#import "YUMIUnionRemoveComponentExternalizer.h" +#import "FBCUnionRemoveMemberCeremony.h" + + +@interface YUMIManeUnionRemoveComponentRegardGovernancer () +@property (nonatomic,strong) UITableView *tableView; +@property (nonatomic,assign) int page; +@property (nonatomic,assign) BOOL hasNoFurthaerAtoloudspeaker; +@property (nonatomic,strong) NSMutableArray *datasource; +@end + +@implementation YUMIManeUnionRemoveComponentRegardGovernancer + +- (__kindof id)producePresimport { + return [[YUMIUnionRemoveComponentExternalizer alloc] init]; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initSubViews]; + [self initChildLyRestrictions]; + [self initIntelligencerGrantedTerminalerRrfresh]; +} + +#pragma mark - 下拉刷新 +- (void)initIntelligencerGrantedTerminalerRrfresh { + MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(intelligenceerRenovtowardseh)]; + header.stateLabel.font = [UIFont systemFontOfSize:10.0]; + header.lastUpdatedTimeLabel.font = [UIFont systemFontOfSize:10.0]; + header.stateLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + header.lastUpdatedTimeLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + self.tableView.mj_header = header; + + MJRefreshBackNormalFooter *footer = [MJRefreshBackNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(footerRenovtowardseh)]; + footer.stateLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + footer.stateLabel.font = [UIFont systemFontOfSize:10.0]; + self.tableView.mj_footer = footer; + [self intelligenceerRenovtowardseh]; +} + +#pragma mark - 刷新的fangfa +- (void)intelligenceerRenovtowardseh { + if (self.instituteId.length <= 0) { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_MineGuildRemoveMemberViewController0")]; + [self.navigationController popViewControllerAnimated:YES]; + return; + } + self.page = 1; + [self.presimport acquireUnionComponentSttowardsement:self.instituteId page:self.page pageSize:20 state:0]; +} + +- (void)footerRenovtowardseh { + if (self.instituteId.length <= 0) { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_MineGuildRemoveMemberViewController1")]; + [self.navigationController popViewControllerAnimated:YES]; + return; + } + + if (self.hasNoFurthaerAtoloudspeaker) { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_MineGuildRemoveMemberViewController2")]; + [self.tableView.mj_footer endRefreshing]; + return; + } + self.page++; + [self.presimport acquireUnionComponentSttowardsement:self.instituteId page:self.page pageSize:20 state:1]; +} + + +#pragma mark - Private Method +- (void)initSubViews { + self.title = YMLocalizedString(@"YUMI_MineGuildRemoveMemberViewController3"); + [self.view addSubview:self.tableView]; +} + +- (void)initChildLyRestrictions { + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.view); + }]; +} + +- (void)transltowardseUnionComponentPrecautious:(CollectiveComponentAbstractMatrix *)componentAbstract { + NSMutableArray *array = [NSMutableArray array]; + MKJPrecautiousCommunicationAttributedDisposition * alertConfig = [[MKJPrecautiousCommunicationAttributedDisposition alloc] init]; + alertConfig.text = componentAbstract.nick; + alertConfig.color = [DJDKMIMOMColor aplictowardsionMainPrettify]; + alertConfig.font = [UIFont systemFontOfSize:15]; + [array addObject:alertConfig]; + NSString * title; + if (componentAbstract.roleType == UnionRoleGenre_Manager) { + title = [NSString stringWithFormat:YMLocalizedString(@"YUMI_MineGuildRemoveMemberViewController4"), componentAbstract.nick]; + } else { + title = [NSString stringWithFormat:YMLocalizedString(@"YUMI_MineGuildRemoveMemberViewController5"), componentAbstract.nick]; + } + MKJPrecautiousDisposition * config = [[MKJPrecautiousDisposition alloc] init]; + config.message = title; + config.communicationAttributedDisposition = array; + [MKJPopup precautiousAboutDisposition:config acknowledgementHandler:^{ + [self.presimport transltowardseUnionComponent:componentAbstract.uid hallId:self.instituteId]; + } cancelHandler:^{ + + }]; +} + +#pragma mark - UITableViewDelegate And UITableViewDataSource +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.datasource.count; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + YUMICollectiveComponentTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMICollectiveComponentTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMICollectiveComponentTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMICollectiveComponentTabulationRegardElement class])]; + } + cell.delegate = self; + cell.cellType = ClanMemberTableRegardCellGenre_Remove_Member; + CollectiveComponentAbstractMatrix * componentAbstract = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + cell.componentAbstract = componentAbstract; + return cell; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + return 66; +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + [tableView deselectRowAtIndexPath:indexPath animated:YES]; + if (self.datasource.count > 0) { + CollectiveComponentAbstractMatrix * componentAbstract = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + YUMIManeConsumerAbstractRegardGovernancer * mineUserVC = [[YUMIManeConsumerAbstractRegardGovernancer alloc] init]; + mineUserVC.uid = componentAbstract.uid.integerValue; + [self.navigationController pushViewController:mineUserVC animated:YES]; + } +} +#pragma mark - FBCCollectiveMemberTabulationViweElementRepresendtation +- (void)yUMICollectiveComponentTarbsultowardsionViweElement:(YUMICollectiveComponentTabulationRegardElement *)view didClickUser:(CollectiveComponentAbstractMatrix *)userinfo { + [self transltowardseUnionComponentPrecautious:userinfo]; +} + +#pragma mark -XPGuildRemoveMemberProtolcol +- (void)acquireUnionComponentSttowardsementAccomplishment:(CollectiveComponentSpecificAbstractMatrix *)componentAbstract state:(int)state { + if (state == 0) { + self.hasNoFurthaerAtoloudspeaker = NO; + [self.datasource removeAllObjects]; + [self.tableView.mj_header endRefreshing]; + } else { + [self.tableView.mj_footer endRefreshing]; + } + + if (componentAbstract.members.count > 0) { + [self.datasource addObjectsFromArray:componentAbstract.members]; + } else { + self.hasNoFurthaerAtoloudspeaker = YES; + } + [self.tableView reloadData]; +} + +- (void)acquireUnionComponentSttowardsementFlunk:(NSString *)msg state:(int)state { + if (state == 0) { + [self.tableView.mj_header endRefreshing]; + } else { + [self.tableView.mj_footer endRefreshing]; + } +} + +- (void)transltowardseUnionComponentAccomplishment { + [self intelligenceerRenovtowardseh]; +} +#pragma mark - Getters And Setters +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.tableFooterView = [UIView new]; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.backgroundColor = [UIColor clearColor]; + _tableView.showsVerticalScrollIndicator = NO; + if (@available(iOS 11.0, *)) { + _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + [_tableView registerClass:[YUMICollectiveComponentTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMICollectiveComponentTabulationRegardElement class])]; + } + return _tableView; +} + +- (NSMutableArray *)datasource { + if (!_datasource) { + _datasource = [NSMutableArray array]; + } + return _datasource; +} +@end diff --git a/YuMi/Modules/YMMine/View/Guild/View/Setting/YUMIManeUnionSetNameRegardGovernancer.h b/YuMi/Modules/YMMine/View/Guild/View/Setting/YUMIManeUnionSetNameRegardGovernancer.h new file mode 100644 index 00000000..c75f8317 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/Setting/YUMIManeUnionSetNameRegardGovernancer.h @@ -0,0 +1,17 @@ +// +// YUMIManeUnionSetNameRegardGovernancer.h +// YuMi +// +// Created by YuMi on 2022/4/7. +// + +#import "MvpRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeUnionSetNameRegardGovernancer : MvpRegardGovernancer +@property (nonatomic,copy) NSString *hallId; +@property (nonatomic,copy) NSString *roomName; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/View/Setting/YUMIManeUnionSetNameRegardGovernancer.m b/YuMi/Modules/YMMine/View/Guild/View/Setting/YUMIManeUnionSetNameRegardGovernancer.m new file mode 100644 index 00000000..0e3a3ff6 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/Setting/YUMIManeUnionSetNameRegardGovernancer.m @@ -0,0 +1,157 @@ +// +// YUMIManeUnionSetNameRegardGovernancer.m +// YuMi +// +// Created by YuMi on 2022/4/7. +// + +#import "YUMIManeUnionSetNameRegardGovernancer.h" +#import +#import +#import "DJDKMIMOMColor.h" +#import "YUMIUnionSetNameExternalizer.h" +#import "FBCUnionSetNameCeremony.h" + +@interface YUMIManeUnionSetNameRegardGovernancer () +@property (nonatomic, strong) UIView *accommoengagementRegard; +@property (nonatomic, strong) UITextField *constituteEssayUniverse; +@property (nonatomic,strong) YYLabel *sequenceriptionSequencignation; +@end + +@implementation YUMIManeUnionSetNameRegardGovernancer + +- (__kindof id)producePresimport { + return [[YUMIUnionSetNameExternalizer alloc] init];; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initSubViews]; + [self initChildLyRestrictions]; +} + +- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { + [self.constituteEssayUniverse resignFirstResponder]; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.title = YMLocalizedString(@"YUMI_MineGuildSetNameViewController0"); + [self.view addSubview:self.accommoengagementRegard]; + [self.view addSubview:self.sequenceriptionSequencignation]; + [self.accommoengagementRegard addSubview:self.constituteEssayUniverse]; + [self accelertowardseBreeadcrumbProvisionAboutChampions:@[YMLocalizedString(@"YUMI_MineGuildSetNameViewController1")] titleColor:[DJDKMIMOMColor aplictowardsionMainPrettify] isContrary:NO target:self action:@selector(implementtowardsionBtutonPerformance:) tags:nil]; +} + +- (void)initChildLyRestrictions { + [self.accommoengagementRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(20); + make.left.mas_equalTo(self.view).offset(15); + make.right.mas_equalTo(self.view).offset(-15); + make.height.mas_equalTo(40); + }]; + [self.constituteEssayUniverse mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.accommoengagementRegard); + make.left.mas_equalTo(self.accommoengagementRegard).offset(5); + make.right.mas_equalTo(self.accommoengagementRegard); + make.height.mas_equalTo(40); + }]; + + [self.sequenceriptionSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.accommoengagementRegard); + make.top.mas_equalTo(self.accommoengagementRegard.mas_bottom).offset(5); + }]; +} + +- (void)monicerEssayPreadominantFilter:(UITextField *)essayUniverse{ + NSString *toBeString = essayUniverse.text; + NSString *lang = [self.constituteEssayUniverse.textInputMode primaryLanguage]; + if ([lang isEqualToString:@"zh-Hans"]){ + + UITextRange *selectedRange = [self.constituteEssayUniverse markedTextRange]; + UITextPosition *position = [self.constituteEssayUniverse positionFromPosition:selectedRange.start offset:0]; + + if (!position){ + if (toBeString.length > 15){ + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_MineGuildSetNameViewController2")]; + NSRange rangeIndex = [toBeString rangeOfComposedCharacterSequenceAtIndex:15]; + if (rangeIndex.length == 1){ + self.constituteEssayUniverse.text = [toBeString substringToIndex:15]; + }else{ + NSRange rangeRange = [toBeString rangeOfComposedCharacterSequencesForRange:NSMakeRange(0, 15)]; + self.constituteEssayUniverse.text = [toBeString substringWithRange:rangeRange]; + } + } + } + }else{ + if (toBeString.length > 15){ + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_MineGuildSetNameViewController3")]; + NSRange rangeIndex = [toBeString rangeOfComposedCharacterSequenceAtIndex:15]; + if (rangeIndex.length == 1){ + self.constituteEssayUniverse.text = [toBeString substringToIndex:15]; + }else{ + NSRange rangeRange = [toBeString rangeOfComposedCharacterSequencesForRange:NSMakeRange(0, 15)]; + self.constituteEssayUniverse.text = [toBeString substringWithRange:rangeRange]; + } + } + } +} + +#pragma mark - FBCUnionSetNameCeremony +- (void)refurbishUnionChamberConstituteAccomplishment { + [self.navigationController popViewControllerAnimated:YES]; +} + +#pragma mark - Event Response +- (void)implementtowardsionBtutonPerformance:(UIButton *)sender { + if (self.constituteEssayUniverse.text.length <= 0) { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_MineGuildSetNameViewController4")]; + return; + } + [self.presimport refurbishUnionChamberConstitute:self.constituteEssayUniverse.text hallId:self.hallId]; +} +#pragma mark - getter && setter +- (void)setRoomName:(NSString *)roomName { + _roomName = roomName; + self.constituteEssayUniverse.text = _roomName; +} + +- (UIView *)accommoengagementRegard { + if (!_accommoengagementRegard) { + _accommoengagementRegard = [[UIView alloc] init]; + _accommoengagementRegard.layer.cornerRadius = 5; + _accommoengagementRegard.backgroundColor = [DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify]; + } + return _accommoengagementRegard; +} + +- (UITextField *)constituteEssayUniverse { + if (!_constituteEssayUniverse) { + _constituteEssayUniverse = [[UITextField alloc] init]; + _constituteEssayUniverse.clearButtonMode = UITextFieldViewModeAlways; + _constituteEssayUniverse.font = [UIFont systemFontOfSize:14]; + _constituteEssayUniverse.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _constituteEssayUniverse.tintColor = [DJDKMIMOMColor mainEssayPrettify]; + [_constituteEssayUniverse addTarget:self action:@selector(monicerEssayPreadominantFilter:) forControlEvents:UIControlEventEditingChanged]; + } + return _constituteEssayUniverse; +} + +- (YYLabel *)sequenceriptionSequencignation { + if (!_sequenceriptionSequencignation) { + _sequenceriptionSequencignation = [[YYLabel alloc] init]; + NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] init]; + UIImageView *imaveView = [[UIImageView alloc]init]; + imaveView.image = [UIImage imageNamed:@"yumi_center_guild_manager_edit_name_logo"]; + imaveView.bounds = CGRectMake(0, 0, 16, 16); + NSMutableAttributedString * attrString = [NSMutableAttributedString yy_attachmentStringWithContent:imaveView contentMode:UIViewContentModeScaleAspectFit attachmentSize:CGSizeMake(imaveView.frame.size.width, imaveView.frame.size.height) alignToFont:[UIFont systemFontOfSize:15.0] alignment:YYTextVerticalAlignmentCenter]; + + NSMutableAttributedString * titleAttribute = [[NSMutableAttributedString alloc] initWithString:YMLocalizedString(@"YUMI_MineGuildSetNameViewController5") attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:14],NSForegroundColorAttributeName:[DJDKMIMOMColor mainEssayPrettify]}]; + [attribute appendAttributedString:attrString]; + [attribute appendAttributedString:titleAttribute]; + _sequenceriptionSequencignation.attributedText = attribute; + } + return _sequenceriptionSequencignation; +} + +@end diff --git a/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMICollectiveDivisionRegard.h b/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMICollectiveDivisionRegard.h new file mode 100644 index 00000000..09ab40b1 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMICollectiveDivisionRegard.h @@ -0,0 +1,25 @@ +// +// YUMICollectiveDivisionRegard.h +// YuMi +// +// Created by YuMi on 2022/4/6. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class YUMICollectiveDivisionRegard; +@protocol FBCCollectiveSectionRegardRepresendtation +@optional +- (void)yUMICollectiveSectionRegard:(YUMICollectiveDivisionRegard *)view didClickSearch:(UIButton *)sender; +- (void)yUMICollectiveSectionRegard:(YUMICollectiveDivisionRegard *)view didClickManager:(UIButton *)sender; +@end +@interface YUMICollectiveDivisionRegard : UIView +@property (nonatomic,weak) id delegate; +@property (nonatomic,assign) BOOL isApexCor; +@property (nonatomic,copy) NSString *title; +@property (nonatomic,assign) BOOL isVeiledHuntfor; +@property (nonatomic,assign) BOOL isVeiledExecutive; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMICollectiveDivisionRegard.m b/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMICollectiveDivisionRegard.m new file mode 100644 index 00000000..b876c2bb --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMICollectiveDivisionRegard.m @@ -0,0 +1,159 @@ +// +// YUMICollectiveDivisionRegard.m +// YuMi +// +// Created by YuMi on 2022/4/6. +// + +#import "YUMICollectiveDivisionRegard.h" +#import +#import "DJDKMIMOMColor.h" + + +@interface YUMICollectiveDivisionRegard () +@property (nonatomic,strong) UIView * encourageRegard; +@property (nonatomic,strong) UILabel *titleLabel; +@property (nonatomic,strong) UIStackView *furthaerHierarchyRegard; +@property (nonatomic,strong) UIButton *huntforBtuton; +@property (nonatomic,strong) UIButton *executiveBtuton; +@end + +@implementation YUMICollectiveDivisionRegard + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor]; + [self addSubview:self.encourageRegard]; + [self.encourageRegard addSubview:self.titleLabel]; + [self.encourageRegard addSubview:self.furthaerHierarchyRegard]; + + [self.furthaerHierarchyRegard addArrangedSubview:self.huntforBtuton]; + [self.furthaerHierarchyRegard addArrangedSubview:self.executiveBtuton]; +} + +- (void)initChildLyRestrictions { + [self.encourageRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self).inset(15); + make.top.bottom.mas_equalTo(self); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.encourageRegard).offset(15); + make.top.mas_equalTo(self.encourageRegard).offset(10); + }]; + + [self.furthaerHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self.encourageRegard).offset(-15); + make.centerY.mas_equalTo(self.titleLabel); + }]; + + [self.huntforBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(22); + }]; + + [self.executiveBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(22); + }]; +} +#pragma mark - Event Response +- (void)huntforBtutonPerformance:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMICollectiveSectionRegard:didClickSearch:)]) { + [self.delegate yUMICollectiveSectionRegard:self didClickSearch:sender]; + } +} + +- (void)executiveBtutonPerformance:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMICollectiveSectionRegard:didClickManager:)]) { + [self.delegate yUMICollectiveSectionRegard:self didClickManager:sender]; + } +} + +#pragma mark - Getters And Setters +- (void)setTitle:(NSString *)title { + _title = title; + if (_title.length > 0) { + self.titleLabel.text = _title; + } +} + +- (void)setIsApexCor:(BOOL)isApexCor { + _isApexCor = isApexCor; + if (_isApexCor) { + CAShapeLayer * layer = [CAShapeLayer layer]; + layer.path = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, KScreenWidth - 30, 37) byRoundingCorners:UIRectCornerTopLeft | UIRectCornerTopRight cornerRadii:CGSizeMake(12, 12)].CGPath; + self.encourageRegard.layer.mask = layer; + } +} + +- (void)setIsVeiledHuntfor:(BOOL)isVeiledHuntfor { + _isVeiledHuntfor = isVeiledHuntfor; + self.huntforBtuton.hidden= _isVeiledHuntfor; +} + +- (void)setIsVeiledExecutive:(BOOL)isVeiledExecutive { + _isVeiledExecutive = isVeiledExecutive; + self.executiveBtuton.hidden = _isVeiledExecutive; +} + +- (UIView *)encourageRegard { + if (!_encourageRegard) { + _encourageRegard = [[UIView alloc] init]; + _encourageRegard.backgroundColor = [DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify]; + _encourageRegard.layer.masksToBounds = YES; + } + return _encourageRegard; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.font = [UIFont systemFontOfSize:15]; + _titleLabel.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _titleLabel; +} + +- (UIStackView *)furthaerHierarchyRegard { + if (!_furthaerHierarchyRegard) { + _furthaerHierarchyRegard = [[UIStackView alloc] init]; + _furthaerHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _furthaerHierarchyRegard.distribution = UIStackViewDistributionFill; + _furthaerHierarchyRegard.alignment = UIStackViewAlignmentFill; + _furthaerHierarchyRegard.spacing = 10; + } + return _furthaerHierarchyRegard; +} + +- (UIButton *)huntforBtuton { + if (!_huntforBtuton) { + _huntforBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_huntforBtuton setImage:[UIImage imageNamed:@"yumi_main_search_input_search"] forState:UIControlStateNormal]; + [_huntforBtuton setImage:[UIImage imageNamed:@"yumi_main_search_input_search"] forState:UIControlStateSelected]; + [_huntforBtuton addTarget:self action:@selector(huntforBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + _huntforBtuton.hidden = YES; + } + return _huntforBtuton; +} + +- (UIButton *)executiveBtuton { + if (!_executiveBtuton) { + _executiveBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_executiveBtuton setImage:[UIImage imageNamed:@"yumi_center_guild_guild_section_manager"] forState:UIControlStateNormal]; + [_executiveBtuton setImage:[UIImage imageNamed:@"yumi_center_guild_guild_section_manager"] forState:UIControlStateSelected]; + [_executiveBtuton addTarget:self action:@selector(executiveBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + _executiveBtuton.hidden = YES; + } + return _executiveBtuton; +} + + +@end diff --git a/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMICollectiveParrotRegard.h b/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMICollectiveParrotRegard.h new file mode 100644 index 00000000..83f009f3 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMICollectiveParrotRegard.h @@ -0,0 +1,17 @@ +// +// YUMICollectiveParrotRegard.h +// YuMi +// +// Created by YuMi on 2022/4/6. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMICollectiveParrotRegard : UIView +@property (nonatomic,copy) NSString * imageName; +@property (nonatomic,copy) NSString *title; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMICollectiveParrotRegard.m b/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMICollectiveParrotRegard.m new file mode 100644 index 00000000..c845d445 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMICollectiveParrotRegard.m @@ -0,0 +1,78 @@ +// +// YUMICollectiveParrotRegard.m +// YuMi +// +// Created by YuMi on 2022/4/6. +// + +#import "YUMICollectiveParrotRegard.h" +#import +#import "DJDKMIMOMColor.h" + +@interface YUMICollectiveParrotRegard () +@property (nonatomic,strong) UIImageView *brandIndicateRegard; +@property (nonatomic,strong) UILabel *titleLabel; +@end + +@implementation YUMICollectiveParrotRegard + +- (instancetype)initWithFrame:(CGRect)frame +{ + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.brandIndicateRegard]; + [self addSubview:self.titleLabel]; +} + +- (void)initChildLyRestrictions { + [self.brandIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.equalTo(self); + + }]; +} +#pragma mark - Getters And Setters +- (void)setImageName:(NSString *)imageName { + _imageName = imageName; + if (_imageName) { + self.brandIndicateRegard.image = [UIImage imageNamed:_imageName]; + } +} + +- (void)setTitle:(NSString *)title { + _title = title; + if (_title.length > 0) { + self.titleLabel.text = _title; + } +} + +- (UIImageView *)brandIndicateRegard { + if (!_brandIndicateRegard) { + _brandIndicateRegard = [[UIImageView alloc] init]; + _brandIndicateRegard.userInteractionEnabled = YES; + } + return _brandIndicateRegard; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.font = [UIFont systemFontOfSize:15 weight:UIFontWeightMedium]; + _titleLabel.textColor = [UIColor whiteColor]; + _titleLabel.textAlignment = NSTextAlignmentCenter; + } + return _titleLabel; +} + +@end diff --git a/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIGoldRevenueDivisionRegard.h b/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIGoldRevenueDivisionRegard.h new file mode 100644 index 00000000..d8169ac0 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIGoldRevenueDivisionRegard.h @@ -0,0 +1,20 @@ +// +// YUMIGoldRevenueDivisionRegard.h +// YuMi +// +// Created by YuMi on 2022/12/16. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@protocol FBCGoldIncomeSectionRegardRepresendtation + +-(void)concludeGoldTangerineTelling:(int)type isAscending:(BOOL)isAscending; + +@end +@interface YUMIGoldRevenueDivisionRegard : UIView +@property (nonatomic,weak) id delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIGoldRevenueDivisionRegard.m b/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIGoldRevenueDivisionRegard.m new file mode 100644 index 00000000..6366ae60 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIGoldRevenueDivisionRegard.m @@ -0,0 +1,172 @@ +// +// YUMIGoldRevenueDivisionRegard.m +// YuMi +// +// Created by YuMi on 2022/12/16. +// + +#import "YUMIGoldRevenueDivisionRegard.h" +#import "YUMIRevenueReflectionGoldSpecificsIntelligenceRegard.h" +@interface YUMIGoldRevenueDivisionRegard() +@property (nonatomic,strong) UIView *backgroundProvisionRegard; +@property (nonatomic,strong) UILabel *chamberRegard; +@property (nonatomic,strong) UILabel *componentRegard; +@property (nonatomic,strong) YUMIRevenueReflectionGoldSpecificsIntelligenceProvisionRegard *bWSttawberryRegard; +@property (nonatomic,strong) UILabel *exdiversificationGoldRegard; +@property (nonatomic,strong) YUMIRevenueReflectionGoldSpecificsIntelligenceProvisionRegard *settlementRegard; +@end +@implementation YUMIGoldRevenueDivisionRegard + +-(instancetype)initWithFrame:(CGRect)frame{ + self = [super initWithFrame:frame]; + if(self){ + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + + + [self addSubview:self.backgroundProvisionRegard]; + [self.backgroundProvisionRegard addSubview:self.chamberRegard]; + [self.backgroundProvisionRegard addSubview:self.componentRegard]; + [self.backgroundProvisionRegard addSubview:self.bWSttawberryRegard]; + [self.backgroundProvisionRegard addSubview:self.exdiversificationGoldRegard]; + [self.backgroundProvisionRegard addSubview:self.settlementRegard]; +} +- (void)initChildLyRestrictions { + + + [self.backgroundProvisionRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.bottom.equalTo(self); + make.height.mas_equalTo(kGetScaleWidth(47)); + make.left.right.equalTo(self).inset(kGetScaleWidth(0)); + }]; + [self.chamberRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(kGetScaleWidth(50)); + make.left.mas_equalTo(kGetScaleWidth(0)); + make.height.mas_equalTo(kGetScaleWidth(17)); + make.centerY.equalTo(self.backgroundProvisionRegard); + }]; + [self.componentRegard mas_makeConstraints:^(MASConstraintMaker *make) { + + make.left.mas_equalTo(kGetScaleWidth(50)); + make.width.mas_equalTo(kGetScaleWidth(48)); + make.centerY.height.equalTo(self.chamberRegard); + }]; + CGFloat width = kGetScaleWidth(277/3); + [self.settlementRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(width); + make.right.equalTo(self.backgroundProvisionRegard); + make.centerY.height.equalTo(self.chamberRegard); + }]; + [self.exdiversificationGoldRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.width.height.equalTo(self.settlementRegard); + make.right.equalTo(self.settlementRegard.mas_left); + }]; + [self.bWSttawberryRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.width.height.equalTo(self.exdiversificationGoldRegard); + make.right.equalTo(self.exdiversificationGoldRegard.mas_left); + }]; + + +} + + +-(void)clickDiamondPerformance{ + + if(self.bWSttawberryRegard.upwardsBtuton.selected == YES){ + self.bWSttawberryRegard.upwardsBtuton.selected = NO; + self.bWSttawberryRegard.pubescenceBtuton.selected = YES; + if(self.delegate && [self.delegate respondsToSelector:@selector(concludeGoldTangerineTelling:isAscending:)]){ + [self.delegate concludeGoldTangerineTelling:1 isAscending:NO]; + } + return; + } + + if(self.delegate && [self.delegate respondsToSelector:@selector(concludeGoldTangerineTelling:isAscending:)]){ + [self.delegate concludeGoldTangerineTelling:1 isAscending:YES]; + } + self.bWSttawberryRegard.upwardsBtuton.selected = YES; + self.bWSttawberryRegard.pubescenceBtuton.selected = NO; +} +-(void)clickGoldPerformance{ + + if(self.settlementRegard.upwardsBtuton.selected == YES){ + self.settlementRegard.upwardsBtuton.selected = NO; + self.settlementRegard.pubescenceBtuton.selected = YES; + if(self.delegate && [self.delegate respondsToSelector:@selector(concludeGoldTangerineTelling:isAscending:)]){ + [self.delegate concludeGoldTangerineTelling:1 isAscending:NO]; + } + return; + } + + if(self.delegate && [self.delegate respondsToSelector:@selector(concludeGoldTangerineTelling:isAscending:)]){ + [self.delegate concludeGoldTangerineTelling:1 isAscending:YES]; + } + self.settlementRegard.upwardsBtuton.selected = YES; + self.settlementRegard.pubescenceBtuton.selected = NO; +} +#pragma mark -懒加载 + +-(UIView *)backgroundProvisionRegard{ + if (!_backgroundProvisionRegard){ + _backgroundProvisionRegard = [UIView new]; + _backgroundProvisionRegard.backgroundColor = UIColorFromRGB(0xF0F5F6); + } + return _backgroundProvisionRegard; +} + +- (UILabel *)chamberRegard { + if (!_chamberRegard) { + _chamberRegard = [[UILabel alloc] init]; + _chamberRegard.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium]; + _chamberRegard.textColor = [DJDKMIMOMColor introjectionEssayPrettify]; + _chamberRegard.text = YMLocalizedString(@"XPGoldIncomeSectionView0"); + } + return _chamberRegard; +} + +- (UILabel *)componentRegard { + if (!_componentRegard) { + _componentRegard = [[UILabel alloc] init]; + _componentRegard.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium]; + _componentRegard.textColor = [DJDKMIMOMColor introjectionEssayPrettify]; + _componentRegard.text = YMLocalizedString(@"YUMI_Income_Record_Gold_Details_Head_View_1"); + } + return _componentRegard; +} + +-(YUMIRevenueReflectionGoldSpecificsIntelligenceProvisionRegard *)bWSttawberryRegard{ + if (!_bWSttawberryRegard){ + _bWSttawberryRegard = [[YUMIRevenueReflectionGoldSpecificsIntelligenceProvisionRegard alloc]initWithFrame:CGRectZero]; + _bWSttawberryRegard.title = YMLocalizedString(@"YUMI_Income_Record_Gold_Details_Head_View_5"); + [_bWSttawberryRegard.ticktackBtuton addTarget:self action:@selector(clickDiamondPerformance) forControlEvents:UIControlEventTouchUpInside]; + } + return _bWSttawberryRegard; +} + +- (UILabel *)exdiversificationGoldRegard { + if (!_exdiversificationGoldRegard) { + _exdiversificationGoldRegard = [[UILabel alloc] init]; + _exdiversificationGoldRegard.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium]; + _exdiversificationGoldRegard.textColor = [DJDKMIMOMColor introjectionEssayPrettify]; + _exdiversificationGoldRegard.text = YMLocalizedString(@"YUMI_Income_Record_Gold_Details_Head_View_3"); + } + return _exdiversificationGoldRegard; +} + + +-(YUMIRevenueReflectionGoldSpecificsIntelligenceProvisionRegard *)settlementRegard{ + if (!_settlementRegard){ + _settlementRegard = [[YUMIRevenueReflectionGoldSpecificsIntelligenceProvisionRegard alloc]initWithFrame:CGRectZero]; + _settlementRegard.title = YMLocalizedString(@"YUMI_Income_Record_Gold_Details_Head_View_4"); + [_settlementRegard.ticktackBtuton addTarget:self action:@selector(clickGoldPerformance) forControlEvents:UIControlEventTouchUpInside]; + } + return _settlementRegard; +} + +@end diff --git a/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIManeGiveDiamondHuntforRegard.h b/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIManeGiveDiamondHuntforRegard.h new file mode 100644 index 00000000..89318887 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIManeGiveDiamondHuntforRegard.h @@ -0,0 +1,17 @@ +// +// YUMIManeGiveDiamondHuntforRegard.h +// YuMi +// +// Created by YuMi on 2023/6/30. +// + +#import +#import "FBCManeGiveDiamondCeremony.h" +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeGiveDiamondHuntforRegard : UIView +@property (nonatomic,assign) BOOL isHuntforCorridor; +@property (nonatomic,weak) id delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIManeGiveDiamondHuntforRegard.m b/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIManeGiveDiamondHuntforRegard.m new file mode 100644 index 00000000..65369148 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIManeGiveDiamondHuntforRegard.m @@ -0,0 +1,102 @@ +// +// YUMIManeGiveDiamondHuntforRegard.m +// YuMi +// +// Created by YuMi on 2023/6/30. +// + +#import "YUMIManeGiveDiamondHuntforRegard.h" +@interface YUMIManeGiveDiamondHuntforRegard() +@property (nonatomic,strong)UIImageView *backgroundRegard; +@property (nonatomic,strong) UITextField *essayUniverse; +@property (nonatomic,strong) UIButton *huntforBtuton; + +@end +@implementation YUMIManeGiveDiamondHuntforRegard + +-(instancetype)initWithFrame:(CGRect)frame{ + self = [super initWithFrame:frame]; + if(self){ + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor]; + [self addSubview:self.backgroundRegard]; + [self.backgroundRegard addSubview:self.essayUniverse]; + [self.backgroundRegard addSubview:self.huntforBtuton]; +} +- (void)initChildLyRestrictions { + [self.backgroundRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(kGetScaleWidth(15)); + make.right.mas_equalTo(-kGetScaleWidth(15)); + make.top.equalTo(self); + make.height.mas_equalTo(kGetScaleWidth(32)); + }]; + [self.essayUniverse mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.bottom.equalTo(self.backgroundRegard); + make.left.mas_equalTo(kGetScaleWidth(10)); + make.right.mas_equalTo(-kGetScaleWidth(76)); + }]; + [self.huntforBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(-kGetScaleWidth(3)); + make.centerY.equalTo(self.backgroundRegard); + make.width.mas_equalTo(kGetScaleWidth(66)); + make.height.mas_equalTo(kGetScaleWidth(26)); + }]; +} + +-(void)huntforPerformance{ + [self.essayUniverse resignFirstResponder]; + if(self.delegate && [self.delegate respondsToSelector:@selector(huntforConcludeAboutEssay:)]){ + [self.delegate huntforConcludeAboutEssay:self.essayUniverse.text]; + } +} +-(void)setIsHuntforCorridor:(BOOL)isHuntforCorridor{ + _isHuntforCorridor = isHuntforCorridor; + if(_isHuntforCorridor == YES){ + _essayUniverse.keyboardType = UIKeyboardTypeDefault; + _essayUniverse.attributedPlaceholder = [[NSMutableAttributedString alloc]initWithString:YMLocalizedString(@"YUMI_MineGiveDiamondSearchView3") attributes:@{NSForegroundColorAttributeName:[DJDKMIMOMColor instantEssayPrettify],NSFontAttributeName:[UIFont systemFontOfSize:14 weight:UIFontWeightRegular]}]; + } +} +#pragma mark -懒加载 +- (UIImageView *)backgroundRegard{ + if (!_backgroundRegard){ + _backgroundRegard = [UIImageView new]; + _backgroundRegard.userInteractionEnabled = YES; + _backgroundRegard.image = [UIImage imageNamed:@"mine_give_diamond_search"]; + } + return _backgroundRegard; +} +-(UITextField *)essayUniverse{ + if (!_essayUniverse){ + _essayUniverse = [[UITextField alloc]initWithFrame:CGRectZero]; + _essayUniverse.keyboardType = UIKeyboardTypeNumberPad; + _essayUniverse.font = [UIFont systemFontOfSize:14 weight:UIFontWeightMedium]; + _essayUniverse.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _essayUniverse.attributedPlaceholder = [[NSMutableAttributedString alloc]initWithString:YMLocalizedString(@"YUMI_MineGiveDiamondSearchView1") attributes:@{NSForegroundColorAttributeName:[DJDKMIMOMColor instantEssayPrettify],NSFontAttributeName:[UIFont systemFontOfSize:14 weight:UIFontWeightRegular]}]; + + } + return _essayUniverse; +} +-(UIButton *)huntforBtuton{ + if (!_huntforBtuton){ + _huntforBtuton = [UIButton new]; + UIImage *image = [UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify],[DJDKMIMOMColor acknowledgementBtutonObliquityMiddlePrettify],[DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(kGetScaleWidth(66), kGetScaleWidth(26))]; + [_huntforBtuton setBackgroundImage:image forState:UIControlStateNormal]; + [_huntforBtuton setTitle:YMLocalizedString(@"YUMI_MineGiveDiamondSearchView0") forState:UIControlStateNormal]; + [_huntforBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + _huntforBtuton.titleLabel.font = [UIFont systemFontOfSize:14 weight:UIFontWeightRegular]; + _huntforBtuton.layer.cornerRadius = kGetScaleWidth(26) / 2; + _huntforBtuton.layer.masksToBounds = YES; + + [_huntforBtuton addTarget:self action:@selector(huntforPerformance) forControlEvents:UIControlEventTouchUpInside]; + } + return _huntforBtuton; +} + +@end diff --git a/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIStrangeUnionIntratemporalPickRegard.h b/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIStrangeUnionIntratemporalPickRegard.h new file mode 100644 index 00000000..a77b9ae5 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIStrangeUnionIntratemporalPickRegard.h @@ -0,0 +1,34 @@ +// +// YUMIStrangeUnionIntratemporalPickRegard.h +// YuMi +// +// Created by YuMi on 2022/11/9. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +typedef NS_ENUM(NSUInteger, YUMINewUnionTimePickGenre) { + YUMINewUnionTimePickGenreDay, + YUMINewUnionTimePickGenreWeek, + YUMINewUnionTimePickGenreMonth, +}; + +@class YUMIStrangeUnionIntratemporalPickRegard; +@protocol FBCStrangeUnionTimePickRegardRepresendtation + +- (void)yUMIStrangeUnionIntrtowardsemporalExtractRegard:(YUMIStrangeUnionIntratemporalPickRegard *)view didClickSure:(UIButton *)sender; +- (void)yUMIStrangeUnionIntrtowardsemporalExtractRegard:(YUMIStrangeUnionIntratemporalPickRegard *)view didTicktackRevoctowardsion:(UIButton *)sender; +@end +@interface YUMIStrangeUnionIntratemporalPickRegard : UIView + +@property (nonatomic,assign) BOOL veiledBtuton; + +@property (nonatomic, assign) YUMINewUnionTimePickGenre extractEngagementGenre; +@property (nonatomic,weak) id delegate; +@property (nonatomic,strong) NSDate *currentDate; +@property (nonatomic,strong, readonly) NSDate *startDate; +@property (nonatomic,strong, readonly) NSDate *endDate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIStrangeUnionIntratemporalPickRegard.m b/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIStrangeUnionIntratemporalPickRegard.m new file mode 100644 index 00000000..ff6387da --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIStrangeUnionIntratemporalPickRegard.m @@ -0,0 +1,665 @@ +// +// YUMIStrangeUnionIntratemporalPickRegard.m +// YuMi +// +// Created by YuMi on 2022/11/9. +// + +#import "YUMIStrangeUnionIntratemporalPickRegard.h" +#import +#import "PLIntratemporalUtil.h" +#import "DJDKMIMOMColor.h" +#import "UIView+Corner.h" +#import "UIImage+Utils.h" + +#import "XNDJTBWGLoadingTool.h" +#import "YUMIUnionIntratemporalMonthPickerRegard.h" +@interface YUMIStrangeUnionIntratemporalPickRegard() +@property (nonatomic, strong) UIImageView *backgroundIndicateRegard; +@property (nonatomic,strong) UIStackView *stackView; +@property (nonatomic,strong) UIView * utensilRegard; +@property (nonatomic,strong) UIButton *cancleBtuton; +@property (nonatomic,strong) UIButton *sureBtuton; + + +@property (nonatomic,strong) UIButton *dayBtuton; +@property (nonatomic,strong) UIButton *zhouBtuton; +@property (nonatomic,strong) UIButton *monthBtuton; + + +@property (nonatomic,strong) UIView * separationRegard; +@property (nonatomic,strong) UIButton *satellitetBtuton; +@property (nonatomic,strong) UILabel *titleLabel; +@property (nonatomic,strong) UIButton *endBtuton; +@property (nonatomic, strong) UIDatePicker *datePicker; +@property (nonatomic, strong) NSDateFormatter *engagementInitialiser; +@property (nonatomic, strong) NSCalendar *calendar; +@property (nonatomic,strong) NSDate *startDate; +@property (nonatomic,strong) NSDate *endDate; + +@property (nonatomic,strong) NSDate *threeMinSatellitetEngagement; +@property (nonatomic,strong) NSDate *threeMinEndEngagement; +@property (nonatomic,strong) NSDate *threeLargestSatellitetEngagement; +@property (nonatomic,strong) NSDate *threeLargestEndEngagement; +@property (nonatomic,strong) YUMIUnionIntratemporalMonthPickerRegard *monthExtracterRegard; +@end +@implementation YUMIStrangeUnionIntratemporalPickRegard + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} +-(void)setVeiledBtuton:(BOOL)veiledBtuton{ + _veiledBtuton = veiledBtuton; + self.dayBtuton.hidden = YES; + self.zhouBtuton.hidden = YES; + self.monthBtuton.hidden = YES; + [self.utensilRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(59); + }]; + +} +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.backgroundIndicateRegard]; + [self addSubview:self.stackView]; + [self.stackView addArrangedSubview:self.utensilRegard]; + [self.stackView addArrangedSubview:self.separationRegard]; + [self.stackView addArrangedSubview:self.datePicker]; + [self.utensilRegard addSubview:self.cancleBtuton]; + [self.utensilRegard addSubview:self.sureBtuton]; + [self.utensilRegard addSubview:self.dayBtuton]; + [self.utensilRegard addSubview:self.zhouBtuton]; + [self.utensilRegard addSubview:self.monthBtuton]; + + + + [self.separationRegard addSubview:self.satellitetBtuton]; + [self.separationRegard addSubview:self.titleLabel]; + [self.separationRegard addSubview:self.endBtuton]; +} + +- (void)initChildLyRestrictions { + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(KScreenWidth); + make.bottom.mas_equalTo(self.stackView); + }]; + + [self.backgroundIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(0); + }]; + + [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self); + make.top.mas_equalTo(8); + }]; + + [self.utensilRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(83); + }]; + + + + [self.separationRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(56); + }]; + + [self.datePicker mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(220); + }]; + [self.cancleBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(20); + make.left.mas_equalTo(self.utensilRegard).mas_offset(15); + make.height.mas_equalTo(19); + make.width.mas_equalTo(35); + }]; + [self.sureBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self.utensilRegard).mas_offset(-15); + make.width.height.centerY.mas_equalTo(self.cancleBtuton); + }]; + + [self.dayBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(68); + make.height.mas_equalTo(24); + make.left.mas_equalTo(32); + make.top.mas_equalTo(59); + }]; + [self.zhouBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.equalTo(self.utensilRegard); + make.width.height.top.equalTo(self.dayBtuton); + }]; + [self.monthBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.top.equalTo(self.dayBtuton); + make.right.mas_equalTo(-32); + }]; + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(40); + make.centerX.top.bottom.mas_equalTo(self.separationRegard); + }]; + + [self.satellitetBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + + make.right.mas_equalTo(self.titleLabel.mas_left); + make.top.bottom.mas_equalTo(self.separationRegard); + }]; + + [self.endBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + + make.left.mas_equalTo(self.titleLabel.mas_right); + make.top.bottom.mas_equalTo(self.separationRegard); + }]; +} +- (void)layoutSubviews{ + [super layoutSubviews]; + [self.backgroundIndicateRegard setMonopolizeAboutContraryApexMonopolize:18 rightTopCorner:18 bottomLeftCorner:0 bottomRightCorner:0 size:self.backgroundIndicateRegard.frame.size]; + +} +- (void)weekSeasonAboutUniversalEngagement:(NSDate *)date { + NSCalendar * calendar = [NSCalendar currentCalendar]; + + NSDateComponents *comps = [calendar components:NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitWeekday | NSCalendarUnitDay fromDate:date]; + + + NSInteger weekDay = [comps weekday]; + + NSInteger day = [comps day]; + long firstDiff,lastDiff; + if (weekDay == 1){ + firstDiff = -6; + lastDiff = 0; + } else { + firstDiff = -(weekDay - 2); + lastDiff = 8 - weekDay; + } + + NSDateComponents *baseDayComp = [calendar components:NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay fromDate:date]; + + [baseDayComp setDay:day + firstDiff]; + NSDate *firstDayOfWeek = [calendar dateFromComponents:baseDayComp]; + self.startDate = firstDayOfWeek; + + [baseDayComp setDay:day + lastDiff]; + NSDate *lastDayOfWeek = [calendar dateFromComponents:baseDayComp]; + self.endDate = lastDayOfWeek; + + + if(self.threeMinSatellitetEngagement == nil){ + [baseDayComp setDay:day + firstDiff - 3 * 4 * 7]; + self.threeMinSatellitetEngagement = [calendar dateFromComponents:baseDayComp]; + [baseDayComp setDay:day + lastDiff - 3 * 4 * 7]; + self.threeMinEndEngagement = [calendar dateFromComponents:baseDayComp]; + [baseDayComp setDay:day + firstDiff ]; + self.threeLargestSatellitetEngagement = [calendar dateFromComponents:baseDayComp]; + [baseDayComp setDay:day + lastDiff ]; + self.threeLargestEndEngagement = [calendar dateFromComponents:baseDayComp]; + } + + + +} +- (void)datePicker:(YUMIUnionIntratemporalMonthPickerRegard *)datePicker dateDidChange:(NSDate *)date{ + if(self.extractEngagementGenre != YUMINewUnionTimePickGenreMonth)return; + [self.satellitetBtuton setTitleColor:UIColorFromRGB(0x6D6B89) forState:UIControlStateNormal]; + [self.satellitetBtuton setTitleColor:UIColorFromRGB(0x6D6B89) forState:UIControlStateSelected]; + [self.endBtuton setTitleColor:UIColorFromRGB(0x6D6B89) forState:UIControlStateNormal]; + [self.endBtuton setTitleColor:UIColorFromRGB(0x6D6B89) forState:UIControlStateSelected]; + [self monthAboutUniversalEngagement:date]; + NSString *startDateStr = [PLIntratemporalUtil acquireYYMMDDAboutEngagement:date]; + NSString *endDateStr = [PLIntratemporalUtil acquireYYMMDDAboutEngagement:self.endDate]; + [self.satellitetBtuton setTitle:startDateStr forState:UIControlStateSelected]; + [self.endBtuton setTitle:endDateStr forState:UIControlStateSelected]; +} +- (void)monthAboutUniversalEngagement:(NSDate *)newDate { + if (newDate == nil) { + newDate = [NSDate date]; + } + double interval = 0; + NSDate *beginDate = nil; + NSDate *endDate = nil; + NSCalendar *calendar = [NSCalendar currentCalendar]; + [calendar setFirstWeekday:2]; + BOOL ok = [calendar rangeOfUnit:NSCalendarUnitMonth startDate:&beginDate interval:&interval forDate:newDate]; + if (ok) { + endDate = [beginDate dateByAddingTimeInterval:interval-1]; + } else { + return; + } + self.startDate = beginDate; + self.endDate = endDate; +} +#pragma mark - Event +- (void)onTicktackRevoctowardsionBtuton:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIStrangeUnionIntrtowardsemporalExtractRegard:didTicktackRevoctowardsion:)]) { + [self.delegate yUMIStrangeUnionIntrtowardsemporalExtractRegard:self didTicktackRevoctowardsion:sender]; + } +} + +- (void)onTicktackSureBtuton:(UIButton *)sender { + if (self.extractEngagementGenre == YUMINewUnionTimePickGenreWeek) { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIStrangeUnionIntrtowardsemporalExtractRegard:didClickSure:)]) { + [self.delegate yUMIStrangeUnionIntrtowardsemporalExtractRegard:self didClickSure:sender]; + } + } else { + NSDateComponents *delta = [[NSCalendar currentCalendar] components:NSCalendarUnitDay fromDate:self.startDate toDate:self.endDate options:0]; + if ([self.startDate compare:[NSDate date]] == NSOrderedDescending) { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:YMLocalizedString(@"YUMI_Guild_Time_Pick_View_0")]; + return; + } else if ([self.endDate compare:[NSDate date]] == NSOrderedDescending) { + self.endDate = [NSDate date]; + } else if ([self.startDate compare:self.endDate] == NSOrderedDescending) { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:YMLocalizedString(@"YUMI_Guild_Time_Pick_View_1")]; + return; + } else if (delta.day > 180) { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:YMLocalizedString(@"YUMI_Guild_Time_Pick_View_2")]; + return; + } + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIStrangeUnionIntrtowardsemporalExtractRegard:didClickSure:)]) { + [self.delegate yUMIStrangeUnionIntrtowardsemporalExtractRegard:self didClickSure:sender]; + } + } +} + +- (void)engagementExtracterBWSttessDiversifictowardsion:(UIDatePicker *)datepick { + [self.satellitetBtuton setTitleColor:UIColorFromRGB(0x6D6B89) forState:UIControlStateNormal]; + [self.satellitetBtuton setTitleColor:UIColorFromRGB(0x6D6B89) forState:UIControlStateSelected]; + [self.endBtuton setTitleColor:UIColorFromRGB(0x6D6B89) forState:UIControlStateNormal]; + [self.endBtuton setTitleColor:UIColorFromRGB(0x6D6B89) forState:UIControlStateSelected]; + if(self.extractEngagementGenre == YUMINewUnionTimePickGenreDay){ + + + + + + [self.satellitetBtuton setTitleColor:UIColorFromRGB(0x6D6B89) forState:UIControlStateNormal]; + [self.satellitetBtuton setTitleColor:[DJDKMIMOMColor introjectionEssayPrettify] forState:UIControlStateSelected]; + [self.endBtuton setTitleColor:UIColorFromRGB(0x6D6B89) forState:UIControlStateNormal]; + [self.endBtuton setTitleColor:[DJDKMIMOMColor introjectionEssayPrettify] forState:UIControlStateSelected]; + NSString *dateStr = [self.engagementInitialiser stringFromDate:datepick.date]; + + if (self.satellitetBtuton.isSelected) { + self.startDate = datepick.date; + [self.satellitetBtuton setTitle:dateStr forState:UIControlStateNormal]; + [self.satellitetBtuton setTitle:dateStr forState:UIControlStateSelected]; + if ([self.startDate compare:self.endDate] == NSOrderedDescending) { + self.endDate = datepick.date; + [self.endBtuton setTitle:dateStr forState:UIControlStateNormal]; + [self.endBtuton setTitle:dateStr forState:UIControlStateSelected]; + } + } else { + if ([self.startDate compare:datepick.date] == NSOrderedDescending) { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:YMLocalizedString(@"YUMI_Guild_Time_Pick_View_3")]; + dateStr = [self.engagementInitialiser stringFromDate:self.startDate]; + self.endDate = self.startDate; + [self.endBtuton setTitle:dateStr forState:UIControlStateNormal]; + [self.endBtuton setTitle:dateStr forState:UIControlStateSelected]; + self.datePicker.date = self.startDate; + } else { + self.endDate = datepick.date; + [self.endBtuton setTitle:dateStr forState:UIControlStateNormal]; + [self.endBtuton setTitle:dateStr forState:UIControlStateSelected]; + } + } + + + }else if (self.extractEngagementGenre == YUMINewUnionTimePickGenreWeek) { + [self weekSeasonAboutUniversalEngagement:datepick.date]; + if(self.veiledBtuton == YES){ + + NSDateFormatter *initialiser = [[NSDateFormatter alloc]init]; + [initialiser setDateFormat:@"yyyy-MM-dd"]; + NSDate *resDate; + +#ifdef DEBUG + resDate = [initialiser dateFromString:@"2022-09-05"]; +#else + resDate = [initialiser dateFromString:@"2022-12-05"]; +#endif + if([self.startDate compare:resDate] == NSOrderedAscending){ + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:YMLocalizedString(@"YUMI_Guild_Time_Pick_View_6")]; + NSString *startDateStr = [self.engagementInitialiser stringFromDate:resDate]; + NSString *endDateStr = [self.engagementInitialiser stringFromDate:self.threeMinEndEngagement]; + [self.satellitetBtuton setTitle:startDateStr forState:UIControlStateSelected]; + [self.endBtuton setTitle:endDateStr forState:UIControlStateSelected]; + self.datePicker.date = resDate; + return; + }else if([self.startDate compare:self.threeMinSatellitetEngagement] == NSOrderedAscending){ + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:YMLocalizedString(@"YUMI_Guild_Time_Pick_View_6")]; + NSString *startDateStr = [self.engagementInitialiser stringFromDate:self.threeMinSatellitetEngagement]; + NSString *endDateStr = [self.engagementInitialiser stringFromDate:self.threeMinEndEngagement]; + [self.satellitetBtuton setTitle:startDateStr forState:UIControlStateSelected]; + [self.endBtuton setTitle:endDateStr forState:UIControlStateSelected]; + self.datePicker.date = self.threeMinSatellitetEngagement; + return; + }else if ([self.startDate compare:self.threeLargestSatellitetEngagement] == NSOrderedDescending){ + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:YMLocalizedString(@"YUMI_Guild_Time_Pick_View_6")]; + NSString *startDateStr = [self.engagementInitialiser stringFromDate:self.threeLargestSatellitetEngagement]; + NSString *endDateStr = [self.engagementInitialiser stringFromDate:self.threeLargestEndEngagement]; + [self.satellitetBtuton setTitle:startDateStr forState:UIControlStateSelected]; + [self.endBtuton setTitle:endDateStr forState:UIControlStateSelected]; + self.datePicker.date = self.threeLargestSatellitetEngagement; + return; + } + } + NSString *startDateStr = [self.engagementInitialiser stringFromDate:self.startDate]; + NSString *endDateStr = [self.engagementInitialiser stringFromDate:self.endDate]; + [self.satellitetBtuton setTitle:startDateStr forState:UIControlStateSelected]; + [self.endBtuton setTitle:endDateStr forState:UIControlStateSelected]; + + + } +} + +- (void)onTicktackInititowardseBtuton:(UIButton *)sender { + if(self.extractEngagementGenre != YUMINewUnionTimePickGenreDay)return; + self.satellitetBtuton.selected = YES; + self.endBtuton.selected = NO; + self.datePicker.date = self.startDate; +} + +- (void)onTicktackConcludeBtuton:(UIButton *)sender { + if(self.extractEngagementGenre != YUMINewUnionTimePickGenreDay)return; + self.satellitetBtuton.selected = NO; + self.endBtuton.selected = YES; + self.datePicker.date = self.endDate; + +} +-(void)clickSeasonPerformance{ + self.dayBtuton.selected = YES; + self.zhouBtuton.selected = NO; + self.monthBtuton.selected = NO; + + + self.datePicker.date = self.startDate; + self.monthExtracterRegard.hidden = YES; + self.extractEngagementGenre = YUMINewUnionTimePickGenreDay; +} +-(void)clickZhouPerformance{ + self.dayBtuton.selected = NO; + self.zhouBtuton.selected = YES; + self.monthBtuton.selected = NO; + + self.extractEngagementGenre = YUMINewUnionTimePickGenreWeek; + self.datePicker.date = self.startDate; + self.monthExtracterRegard.hidden = YES; + +} +-(void)clickDianaPerformance{ + self.dayBtuton.selected = NO; + self.zhouBtuton.selected = NO; + self.monthBtuton.selected = YES; + self.extractEngagementGenre = YUMINewUnionTimePickGenreMonth; + + + [self.monthExtracterRegard showView]; + [self.monthExtracterRegard setDate:[NSDate date] animated:YES]; + +} +#pragma mark - Getters And Setters +- (void)setCurrentDate:(NSDate *)currentDate { + _currentDate = currentDate; + if (_currentDate) { + NSDateComponents *comps = nil; comps = [self.calendar components:NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitMonth fromDate:_currentDate]; + NSDateComponents *adcomps = [[NSDateComponents alloc] init]; + [adcomps setYear:-25]; + [adcomps setMonth:0]; + [adcomps setDay:0]; + NSDate *minDate = [self.calendar dateByAddingComponents:adcomps toDate:_currentDate options:0]; + + NSDateComponents *maxcomps = [[NSDateComponents alloc] init]; + [maxcomps setYear:25]; + [maxcomps setMonth:0]; + [maxcomps setDay:0]; + NSDate *maxDate = [self.calendar dateByAddingComponents:maxcomps toDate:_currentDate options:0]; + self.datePicker.minimumDate = minDate; + self.datePicker.maximumDate = maxDate; + self.datePicker.date = _currentDate; + } +} + +- (void)setExtractEngagementGenre:(YUMINewUnionTimePickGenre)extractEngagementGenre { + _extractEngagementGenre = extractEngagementGenre; + [self.satellitetBtuton setTitleColor:UIColorFromRGB(0x6D6B89) forState:UIControlStateNormal]; + [self.satellitetBtuton setTitleColor:UIColorFromRGB(0x6D6B89) forState:UIControlStateSelected]; + [self.endBtuton setTitleColor:UIColorFromRGB(0x6D6B89) forState:UIControlStateNormal]; + [self.endBtuton setTitleColor:UIColorFromRGB(0x6D6B89) forState:UIControlStateSelected]; + if(extractEngagementGenre == YUMINewUnionTimePickGenreDay){ + [self.satellitetBtuton setTitleColor:UIColorFromRGB(0x6D6B89) forState:UIControlStateNormal]; + [self.satellitetBtuton setTitleColor:[DJDKMIMOMColor introjectionEssayPrettify] forState:UIControlStateSelected]; + [self.endBtuton setTitleColor:UIColorFromRGB(0x6D6B89) forState:UIControlStateNormal]; + [self.endBtuton setTitleColor:[DJDKMIMOMColor introjectionEssayPrettify] forState:UIControlStateSelected]; + self.satellitetBtuton.selected = YES; + self.endBtuton.selected = NO; + NSString *dateStr = [self.engagementInitialiser stringFromDate:self.currentDate]; + [self.satellitetBtuton setTitle:dateStr forState:UIControlStateNormal]; + [self.satellitetBtuton setTitle:dateStr forState:UIControlStateSelected]; + [self.endBtuton setTitle:dateStr forState:UIControlStateNormal]; + [self.endBtuton setTitle:dateStr forState:UIControlStateSelected]; + self.startDate = _currentDate; + self.endDate = _currentDate; + }else if (extractEngagementGenre == YUMINewUnionTimePickGenreWeek) { + [self weekSeasonAboutUniversalEngagement:self.currentDate]; + NSString *startDateStr = [self.engagementInitialiser stringFromDate:self.startDate]; + NSString *endDateStr = [self.engagementInitialiser stringFromDate:self.endDate]; + [self.satellitetBtuton setTitle:startDateStr forState:UIControlStateSelected]; + [self.endBtuton setTitle:endDateStr forState:UIControlStateSelected]; + self.satellitetBtuton.selected = YES; + self.endBtuton.selected = YES; + }else{ + [self monthAboutUniversalEngagement:self.startDate]; + NSString *startDateStr = [PLIntratemporalUtil acquireYYMMDDAboutEngagement:self.startDate]; + NSString *endDateStr = [PLIntratemporalUtil acquireYYMMDDAboutEngagement:self.endDate]; + [self.satellitetBtuton setTitle:startDateStr forState:UIControlStateSelected]; + [self.endBtuton setTitle:endDateStr forState:UIControlStateSelected]; + self.satellitetBtuton.selected = YES; + self.endBtuton.selected = YES; + } +} + + +- (UIStackView *)stackView { + if (!_stackView) { + _stackView = [[UIStackView alloc] init]; + _stackView.axis = UILayoutConstraintAxisVertical; + _stackView.distribution = UIStackViewDistributionFill; + _stackView.alignment = UIStackViewAlignmentFill; + _stackView.spacing = 0; + } + return _stackView; +} + +- (UIView *)utensilRegard { + if (!_utensilRegard) { + _utensilRegard = [[UIView alloc] init]; + _utensilRegard.backgroundColor = [UIColor clearColor]; + } + return _utensilRegard; +} + +- (UIView *)separationRegard { + if (!_separationRegard) { + _separationRegard = [[UIView alloc] init]; + _separationRegard.backgroundColor = [UIColor clearColor]; + } + return _separationRegard; +} + + +- (UIButton *)cancleBtuton { + if (!_cancleBtuton) { + _cancleBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_cancleBtuton setTitle:YMLocalizedString(@"YUMI_Guild_Time_Pick_View_4") forState:UIControlStateNormal]; + [_cancleBtuton addTarget:self action:@selector(onTicktackRevoctowardsionBtuton:) forControlEvents:UIControlEventTouchUpInside]; + _cancleBtuton.titleLabel.font = [UIFont systemFontOfSize:16 weight:UIFontWeightMedium]; + [_cancleBtuton setTitleColor:[DJDKMIMOMColor essayTertiusPrettify] forState:UIControlStateNormal]; + } + return _cancleBtuton; +} + +- (UIButton *)sureBtuton { + if (!_sureBtuton) { + _sureBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_sureBtuton setTitle:YMLocalizedString(@"YUMI_Guild_Time_Pick_View_5") forState:UIControlStateNormal]; + [_sureBtuton addTarget:self action:@selector(onTicktackSureBtuton:) forControlEvents:UIControlEventTouchUpInside]; + _sureBtuton.titleLabel.font = [UIFont systemFontOfSize:16 weight:UIFontWeightMedium]; + [_sureBtuton setTitleColor:[DJDKMIMOMColor mainEssayPrettify] forState:UIControlStateNormal]; + } + return _sureBtuton; +} + +- (NSDateFormatter *)engagementInitialiser { + if (!_engagementInitialiser) { + _engagementInitialiser = [[NSDateFormatter alloc] init]; + _engagementInitialiser.dateFormat = @"YYYY-MM-dd"; + } + return _engagementInitialiser; +} + +- (UIDatePicker *)datePicker { + if (!_datePicker){ + _datePicker = [[UIDatePicker alloc] init]; + _datePicker.datePickerMode = UIDatePickerModeDate; + + if (@available(iOS 13.4, *)) { + _datePicker.preferredDatePickerStyle = UIDatePickerStyleWheels; + } + if (@available(iOS 13.0, *)) { + _datePicker.overrideUserInterfaceStyle = UIUserInterfaceStyleLight; + } + [_datePicker addTarget:self action:@selector(engagementExtracterBWSttessDiversifictowardsion:) forControlEvents:UIControlEventValueChanged]; + } + return _datePicker; +} + +- (UIButton *)satellitetBtuton { + if (!_satellitetBtuton) { + _satellitetBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_satellitetBtuton addTarget:self action:@selector(onTicktackInititowardseBtuton:) forControlEvents:UIControlEventTouchUpInside]; + _satellitetBtuton.titleLabel.font = [UIFont systemFontOfSize:14 weight:UIFontWeightRegular]; + [_satellitetBtuton setTitleColor:UIColorFromRGB(0x6D6B89) forState:UIControlStateNormal]; + [_satellitetBtuton setTitleColor:UIColorFromRGB(0x6D6B89) forState:UIControlStateSelected]; + [_satellitetBtuton.titleLabel sizeToFit]; + _satellitetBtuton.selected = YES; + } + return _satellitetBtuton; +} + +- (UIButton *)endBtuton { + if (!_endBtuton) { + _endBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_endBtuton addTarget:self action:@selector(onTicktackConcludeBtuton:) forControlEvents:UIControlEventTouchUpInside]; + _endBtuton.titleLabel.font = [UIFont systemFontOfSize:14 weight:UIFontWeightRegular]; + [_endBtuton setTitleColor:UIColorFromRGB(0x6D6B89) forState:UIControlStateNormal]; + [_endBtuton setTitleColor:UIColorFromRGB(0x6D6B89) forState:UIControlStateSelected]; + _endBtuton.titleLabel.textAlignment = NSTextAlignmentRight; + _endBtuton.selected = YES; + } + return _endBtuton; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.text = YMLocalizedString(@"App_Common_To"); + _titleLabel.font = [UIFont systemFontOfSize:14 weight:UIFontWeightRegular]; + _titleLabel.textAlignment = NSTextAlignmentCenter; + _titleLabel.textColor = UIColorFromRGB(0x6D6B89); + } + return _titleLabel; +} + +- (NSCalendar *)calendar { + if (!_calendar) { + _calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian]; + } + return _calendar; +} + +- (UIImageView *)backgroundIndicateRegard { + if (!_backgroundIndicateRegard) { + _backgroundIndicateRegard = [[UIImageView alloc] init]; + _backgroundIndicateRegard.backgroundColor = [UIColor whiteColor]; + + + } + return _backgroundIndicateRegard; +} +- (UIButton *)dayBtuton{ + if (!_dayBtuton){ + _dayBtuton = [UIButton new]; + _dayBtuton.titleLabel.font = [UIFont systemFontOfSize:14 weight:UIFontWeightRegular]; + [_dayBtuton setTitle:YMLocalizedString(@"App_Commont_Days") forState:UIControlStateNormal]; + [_dayBtuton setTitleColor:UIColorFromRGB(0xB3B3C3) forState:UIControlStateNormal]; + [_dayBtuton setTitleColor:DJDKMIMOMColor.aplictowardsionMainPrettify forState:UIControlStateSelected]; + UIImage *chooseImage = [UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[UIColorFromRGB(0xCCF8F9),UIColorFromRGB(0xDEE4FF),UIColorFromRGB(0xEEDCFF)] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(68,24)]; + UIImage *noChooseImage = [UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[UIColorFromRGB(0xE6E6F0),UIColorFromRGB(0xE6E6F0),UIColorFromRGB(0xE6E6F0)] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(68,24)]; + [_dayBtuton setBackgroundImage:chooseImage forState:UIControlStateSelected]; + [_dayBtuton setBackgroundImage:noChooseImage forState:UIControlStateNormal]; + _dayBtuton.selected = YES; + [_dayBtuton setMonopolizeAboutContraryApexMonopolize:3 rightTopCorner:3 bottomLeftCorner:3 bottomRightCorner:3 size:CGSizeMake(68,24)]; + [_dayBtuton addTarget:self action:@selector(clickSeasonPerformance) forControlEvents:UIControlEventTouchUpInside]; + } + return _dayBtuton; +} +- (UIButton *)zhouBtuton{ + if (!_zhouBtuton){ + _zhouBtuton = [UIButton new]; + _zhouBtuton.titleLabel.font = [UIFont systemFontOfSize:14 weight:UIFontWeightRegular]; + [_zhouBtuton setTitle:YMLocalizedString(@"App_Commont_Week") forState:UIControlStateNormal]; + [_zhouBtuton setTitleColor:UIColorFromRGB(0xB3B3C3) forState:UIControlStateNormal]; + [_zhouBtuton setTitleColor:DJDKMIMOMColor.aplictowardsionMainPrettify forState:UIControlStateSelected]; + UIImage *chooseImage = [UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[UIColorFromRGB(0xCCF8F9),UIColorFromRGB(0xDEE4FF),UIColorFromRGB(0xEEDCFF)] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(68,24)]; + UIImage *noChooseImage = [UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[UIColorFromRGB(0xE6E6F0),UIColorFromRGB(0xE6E6F0),UIColorFromRGB(0xE6E6F0)] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(68,24)]; + [_zhouBtuton setBackgroundImage:chooseImage forState:UIControlStateSelected]; + [_zhouBtuton setBackgroundImage:noChooseImage forState:UIControlStateNormal]; + [_zhouBtuton setMonopolizeAboutContraryApexMonopolize:3 rightTopCorner:3 bottomLeftCorner:3 bottomRightCorner:3 size:CGSizeMake(68,24)]; + [_zhouBtuton addTarget:self action:@selector(clickZhouPerformance) forControlEvents:UIControlEventTouchUpInside]; + } + return _zhouBtuton; +} +- (UIButton *)monthBtuton{ + if (!_monthBtuton){ + _monthBtuton = [UIButton new]; + _monthBtuton.titleLabel.font = [UIFont systemFontOfSize:14 weight:UIFontWeightRegular]; + [_monthBtuton setTitle:YMLocalizedString(@"App_Commont_Month") forState:UIControlStateNormal]; + [_monthBtuton setTitleColor:UIColorFromRGB(0xB3B3C3) forState:UIControlStateNormal]; + [_monthBtuton setTitleColor:DJDKMIMOMColor.aplictowardsionMainPrettify forState:UIControlStateSelected]; + UIImage *chooseImage = [UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[UIColorFromRGB(0xCCF8F9),UIColorFromRGB(0xDEE4FF),UIColorFromRGB(0xEEDCFF)] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(68,24)]; + UIImage *noChooseImage = [UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[UIColorFromRGB(0xE6E6F0),UIColorFromRGB(0xE6E6F0),UIColorFromRGB(0xE6E6F0)] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(68,24)]; + [_monthBtuton setBackgroundImage:chooseImage forState:UIControlStateSelected]; + [_monthBtuton setBackgroundImage:noChooseImage forState:UIControlStateNormal]; + [_monthBtuton setMonopolizeAboutContraryApexMonopolize:3 rightTopCorner:3 bottomLeftCorner:3 bottomRightCorner:3 size:CGSizeMake(68,24)]; + [_monthBtuton addTarget:self action:@selector(clickDianaPerformance) forControlEvents:UIControlEventTouchUpInside]; + } + return _monthBtuton; +} +- (YUMIUnionIntratemporalMonthPickerRegard *)monthExtracterRegard { + if (!_monthExtracterRegard) { + _monthExtracterRegard = [[YUMIUnionIntratemporalMonthPickerRegard alloc] initNoEncourageBtutonAboutSenstowardsionalRegard:self]; + _monthExtracterRegard.delegate = self; + _monthExtracterRegard.datePickerMode = HooDatePickerModeYearAndMonth; + [_monthExtracterRegard setTintColor:UIColorFromRGB(0x999999)]; + [_monthExtracterRegard setHighlightPrettify:UIColorFromRGB(0x333333)]; + NSDate * date = [NSDate date]; + NSDateComponents *comps = nil; comps = [[NSCalendar partowardsiciptowardsiondCalconcludear] components:NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitMonth fromDate:date]; + NSDateComponents *adcomps = [[NSDateComponents alloc] init]; + [adcomps setYear:-15]; + [adcomps setMonth:0]; + [adcomps setDay:0]; + NSDate *minDate = [[NSCalendar partowardsiciptowardsiondCalconcludear] dateByAddingComponents:adcomps toDate:date options:0]; + + NSDateComponents *maxcomps = [[NSDateComponents alloc] init]; + [maxcomps setYear:15]; + [maxcomps setMonth:0]; + [maxcomps setDay:0]; + NSDate *maxDate = [[NSCalendar partowardsiciptowardsiondCalconcludear] dateByAddingComponents:maxcomps toDate:date options:0]; + _monthExtracterRegard.minimumDate = minDate; + _monthExtracterRegard.maximumDate = maxDate; + + } + return _monthExtracterRegard; +} +@end diff --git a/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIStrangeUnionRevenueIntelligencerRegard.h b/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIStrangeUnionRevenueIntelligencerRegard.h new file mode 100644 index 00000000..f176dd0d --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIStrangeUnionRevenueIntelligencerRegard.h @@ -0,0 +1,26 @@ +// +// YUMIStrangeUnionRevenueIntelligencerRegard.h +// YuMi +// +// Created by YuMi on 2022/11/9. +// + +#import +#import "YUMIStrangeManeUnionRevenueReflectionRegardGovernancer.h" +NS_ASSUME_NONNULL_BEGIN +@class YUMIStrangeUnionRevenueIntelligencerRegard; +@protocol FBCStrangeUnionIncomeIntelligencerRegardRepresendtation + +- (void)yUMIStrangeUnionRevenueIntelligencerRegard:(YUMIStrangeUnionRevenueIntelligencerRegard *)view didChooseTime:(UIButton *)sender; + +@end +@interface YUMIStrangeUnionRevenueIntelligencerRegard : UIView +@property (nonatomic,weak) id delegate; +@property (nonatomic,assign) NewUnionIncomeRecrdTimeGenre intratemporalGenre; + +@property (nonatomic,copy) NSString *generalRevenue; + +- (void)prohibitipositionIntelligencerRegard:(NSDate *)startDate endTime:(NSDate * _Nullable)endDate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIStrangeUnionRevenueIntelligencerRegard.m b/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIStrangeUnionRevenueIntelligencerRegard.m new file mode 100644 index 00000000..b4c9735a --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIStrangeUnionRevenueIntelligencerRegard.m @@ -0,0 +1,253 @@ +// +// YUMIStrangeUnionRevenueIntelligencerRegard.m +// YuMi +// +// Created by YuMi on 2022/11/9. +// +///Third +#import +#import "DJDKMIMOMColor.h" + +#import "NSString+Utils.h" +#import "UIView+Corner.h" +#import "UIImage+Utils.h" +#import "UIButton+EnlargeTouchArea.h" +#import "YUMIStrangeUnionRevenueIntelligencerRegard.h" +@interface YUMIStrangeUnionRevenueIntelligencerRegard() +@property (nonatomic,strong) UIImageView *encourageIndicateRegard; +@property (nonatomic,strong) UILabel *yearSequencignation; +@property (nonatomic,strong) UILabel *satellitetSequencignation; +@property (nonatomic,strong) UILabel *endSequencignation; +@property (nonatomic,strong) UIButton *arrowBtuton; +@property (nonatomic,strong) UIView * burlywoodRegard; +@property (nonatomic,strong) UILabel *generalSequencignation; +@property (nonatomic,strong) UILabel *tangerineSequencignation; +@property (nonatomic,strong) NSDateFormatter *initialiser; +@end +@implementation YUMIStrangeUnionRevenueIntelligencerRegard +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Public Method +- (void)prohibitipositionIntelligencerRegard:(NSDate *)startDate endTime:(NSDate * _Nullable)endDate { + [self.initialiser setDateFormat:YMLocalizedString(@"App_Common_Year")]; + NSString *currentYear = [self.initialiser stringFromDate:startDate]; + self.yearSequencignation.text = currentYear; + if (self.intratemporalGenre == NewUnionIncomeRecrdTimeGenre_Day) { + [self.initialiser setDateFormat:YMLocalizedString(@"YUMI_Guild_Income_Header_View_0")]; + NSString * currentDay = [self.initialiser stringFromDate:startDate]; + self.satellitetSequencignation.text = currentDay; + NSString * endDayStr = [self.initialiser stringFromDate:endDate]; + self.endSequencignation.text = endDayStr; + } else if(self.intratemporalGenre == NewUnionIncomeRecrdTimeGenre_Week) { + [self.initialiser setDateFormat:YMLocalizedString(@"YUMI_Guild_Income_Header_View_1")]; + NSString * currentDay = [self.initialiser stringFromDate:startDate]; + self.satellitetSequencignation.text = currentDay; + + NSString * endDayStr = [self.initialiser stringFromDate:endDate]; + self.endSequencignation.text = endDayStr; + } else { + [self.initialiser setDateFormat:YMLocalizedString(@"YUMI_Guild_Income_Header_View_5")]; + NSString * currentDay = [self.initialiser stringFromDate:startDate]; + self.satellitetSequencignation.text = currentDay; + } +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor whiteColor]; + [self.encourageIndicateRegard setMonopolizeAboutContraryApexMonopolize:kGetScaleWidth(10) rightTopCorner:kGetScaleWidth(10) bottomLeftCorner:kGetScaleWidth(10) bottomRightCorner:kGetScaleWidth(10) size:CGSizeMake(kGetScaleWidth(345), kGetScaleWidth(75))]; + [self addSubview:self.encourageIndicateRegard]; + [self.encourageIndicateRegard addSubview:self.yearSequencignation]; + [self.encourageIndicateRegard addSubview:self.satellitetSequencignation]; + [self.encourageIndicateRegard addSubview:self.endSequencignation]; + [self.encourageIndicateRegard addSubview:self.arrowBtuton]; + [self.encourageIndicateRegard addSubview:self.burlywoodRegard]; + [self.encourageIndicateRegard addSubview:self.generalSequencignation]; + [self.encourageIndicateRegard addSubview:self.tangerineSequencignation]; + + +} + +- (void)initChildLyRestrictions { + + [self.encourageIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + + make.left.mas_equalTo(kGetScaleWidth(15)); + make.right.mas_equalTo(-kGetScaleWidth(15)); + make.height.mas_equalTo(kGetScaleWidth(75)); + make.top.mas_equalTo(self); + }]; + + [self.yearSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(kGetScaleWidth(14)); + make.top.mas_equalTo(kGetScaleWidth(10)); + make.height.mas_equalTo(kGetScaleWidth(12)); + }]; + + [self.satellitetSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.yearSequencignation); + make.top.mas_equalTo(kGetScaleWidth(28)); + make.height.mas_equalTo(kGetScaleWidth(17)); + + + }]; + [self.endSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.width.height.equalTo(self.satellitetSequencignation); + make.top.equalTo(self.satellitetSequencignation.mas_bottom).mas_offset(kGetScaleWidth(2)); + }]; + [self.arrowBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.satellitetSequencignation.mas_right).offset(1); + make.centerY.mas_equalTo(self.burlywoodRegard); + make.size.mas_equalTo(CGSizeMake(kGetScaleWidth(20), kGetScaleWidth(20))); + }]; + + [self.burlywoodRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(kGetScaleWidth(1), kGetScaleWidth(49))); + make.bottom.mas_equalTo(self.encourageIndicateRegard).offset(-kGetScaleWidth(13)); + make.left.equalTo(self.arrowBtuton.mas_right).mas_offset(kGetScaleWidth(9)); + }]; + + [self.generalSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.encourageIndicateRegard.mas_left).offset(kGetScaleWidth(127)); + make.top.mas_equalTo(kGetScaleWidth(28)); + make.height.mas_equalTo(kGetScaleWidth(12)); + }]; + + [self.tangerineSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.generalSequencignation); + make.top.mas_equalTo(kGetScaleWidth(46)); + make.height.mas_equalTo(kGetScaleWidth(17)); + make.right.mas_equalTo(-kGetScaleWidth(14)); + }]; +} + +#pragma mark - Event Response +- (void)arrowBtutonPerformance:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIStrangeUnionRevenueIntelligencerRegard:didChooseTime:)]) { + [self.delegate yUMIStrangeUnionRevenueIntelligencerRegard:self didChooseTime:sender]; + } +} + +#pragma mark - Getters And Setters +- (void)setGeneralRevenue:(NSString *)generalRevenue { + _generalRevenue = generalRevenue; + if (_generalRevenue == nil) { + _generalRevenue = @"0"; + } + NSString * title = [NSString stringWithFormat:YMLocalizedString(@"YUMI_Guild_Income_Header_View_2"), [NSString acquireDealFigurewithsttri:_generalRevenue]]; + NSRange range = [title rangeOfString:YMLocalizedString(@"YUMI_Guild_Income_Header_View_3")]; + NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] initWithString:title attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:23],NSForegroundColorAttributeName:[UIColor whiteColor]}]; + [attribute addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:18] range:range]; + self.tangerineSequencignation.attributedText = attribute; +} + +- (void)setIntratemporalGenre:(NewUnionIncomeRecrdTimeGenre)intratemporalGenre { + _intratemporalGenre = intratemporalGenre; + switch (_intratemporalGenre) { + case NewUnionIncomeRecrdTimeGenre_Day: + self.endSequencignation.hidden = NO; + break; + case NewUnionIncomeRecrdTimeGenre_Week: + self.endSequencignation.hidden = NO; + break; + case NewUnionIncomeRecrdTimeGenre_Mouth: + self.endSequencignation.hidden = YES; + break; + default: + break; + } +} + +- (UIImageView *)encourageIndicateRegard { + if (!_encourageIndicateRegard) { + _encourageIndicateRegard = [[UIImageView alloc] init]; + _encourageIndicateRegard.userInteractionEnabled = YES; + UIImage *image = [UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[UIColorFromRGB(0x2B4658),UIColorFromRGB(0x363E45)] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(kGetScaleWidth(345), kGetScaleWidth(75))]; + _encourageIndicateRegard.image = image; + } + return _encourageIndicateRegard; +} + +- (UILabel *)yearSequencignation { + if (!_yearSequencignation) { + _yearSequencignation = [[UILabel alloc] init]; + _yearSequencignation.font = [UIFont systemFontOfSize:10]; + _yearSequencignation.textColor = [UIColor colorWithWhite:1 alpha:0.8]; + } + return _yearSequencignation; +} + + + +- (UILabel *)satellitetSequencignation { + if (!_satellitetSequencignation) { + _satellitetSequencignation = [[UILabel alloc] init]; + _satellitetSequencignation.font = [UIFont systemFontOfSize:14]; + _satellitetSequencignation.textColor = [UIColor whiteColor]; + } + return _satellitetSequencignation; +} + +- (UILabel *)endSequencignation { + if (!_endSequencignation) { + _endSequencignation = [[UILabel alloc] init]; + _endSequencignation.font = [UIFont systemFontOfSize:14]; + _endSequencignation.textColor = [UIColor whiteColor]; + } + return _endSequencignation; +} + +- (UIButton *)arrowBtuton { + if (!_arrowBtuton) { + _arrowBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_arrowBtuton setImage:[UIImage imageNamed:@"yumi_center_guild_income_record_arrow"] forState:UIControlStateNormal]; + [_arrowBtuton setImage:[UIImage imageNamed:@"yumi_center_guild_income_record_arrow"] forState:UIControlStateSelected]; + [_arrowBtuton addTarget:self action:@selector(arrowBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + [_arrowBtuton setEnlargeEdgeAboutApex:10 right:10 bottom:10 left:10]; + } + return _arrowBtuton; +} + +- (UIView *)burlywoodRegard { + if (!_burlywoodRegard) { + _burlywoodRegard = [[UIView alloc] init]; + _burlywoodRegard.backgroundColor = [UIColor colorWithWhite:1 alpha:0.1]; + } + return _burlywoodRegard; +} + +- (UILabel *)generalSequencignation { + if (!_generalSequencignation) { + _generalSequencignation = [[UILabel alloc] init]; + _generalSequencignation.text = YMLocalizedString(@"YUMI_Guild_Income_Header_View_4"); + _generalSequencignation.font = [UIFont systemFontOfSize:11]; + _generalSequencignation.textColor = [UIColor whiteColor]; + } + return _generalSequencignation; +} + +- (UILabel *)tangerineSequencignation { + if (!_tangerineSequencignation) { + _tangerineSequencignation = [[UILabel alloc] init]; + _tangerineSequencignation.font = [UIFont systemFontOfSize:16 weight:UIFontWeightMedium]; + _tangerineSequencignation.text = @"0"; + _tangerineSequencignation.textColor = [UIColor whiteColor]; + } + return _tangerineSequencignation; +} + +- (NSDateFormatter *)initialiser { + if (!_initialiser) { + _initialiser = [[NSDateFormatter alloc] init]; + } + return _initialiser; +} + +@end diff --git a/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIUnionHuntforNevRegard.h b/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIUnionHuntforNevRegard.h new file mode 100644 index 00000000..d91a2fbe --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIUnionHuntforNevRegard.h @@ -0,0 +1,24 @@ +// +// YUMIUnionHuntforNevRegard.h +// YuMi +// +// Created by YuMi on 2022/4/7. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class YUMIUnionHuntforNevRegard; +@protocol FBCUnionHuntforNevRegardRepresendtation +- (void)yUMIUnionHuntforNevRegard:(YUMIUnionHuntforNevRegard *)view didClickBack:(UIButton *)sender; +- (void)yUMIUnionHuntforNevRegard:(YUMIUnionHuntforNevRegard *)view didClickSearch:(UIButton *)sender; +@end + +@interface YUMIUnionHuntforNevRegard : UIView +@property (nonatomic,strong,readonly) UITextField *searchTextField; +@property (nonatomic,weak) id delegate; +@property (nonatomic,copy) NSString *deparatmentMaintainrietary; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIUnionHuntforNevRegard.m b/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIUnionHuntforNevRegard.m new file mode 100644 index 00000000..ae9e63d4 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIUnionHuntforNevRegard.m @@ -0,0 +1,171 @@ +// +// YUMIUnionHuntforNevRegard.m +// YuMi +// +// Created by YuMi on 2022/4/7. +// + +#import "YUMIUnionHuntforNevRegard.h" +#import +#import "DJDKMIMOMColor.h" + +#import "UIButton+EnlargeTouchArea.h" +@interface YUMIUnionHuntforNevRegard () +@property (nonatomic,strong) UIButton *backButton; +@property (nonatomic,strong) UIView * introjectionEncourageRegard; +@property (nonatomic,strong) UIImageView *huntforIndicateRegard; +@property (nonatomic,strong) UITextField *searchTextField; +@property (nonatomic,strong) UIButton *cancleBtuton; + +@end + + +@implementation YUMIUnionHuntforNevRegard + +- (instancetype)initWithFrame:(CGRect)frame +{ + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + + + + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor whiteColor]; + [self addSubview:self.backButton]; + [self addSubview:self.introjectionEncourageRegard]; + [self addSubview:self.cancleBtuton]; + + [self.introjectionEncourageRegard addSubview:self.huntforIndicateRegard]; + [self.introjectionEncourageRegard addSubview:self.searchTextField]; +} + +- (void)initChildLyRestrictions { + [self.backButton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(22, 22)); + make.left.mas_equalTo(self).offset(8); + make.centerY.mas_equalTo(self.introjectionEncourageRegard); + }]; + + [self.introjectionEncourageRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.bottom.mas_equalTo(-8); + make.left.mas_equalTo(self.backButton.mas_right).offset(5); + make.right.mas_equalTo(self.cancleBtuton.mas_left).offset(-13); + make.height.mas_equalTo(30); + }]; + + [self.cancleBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self).offset(-15); + make.centerY.mas_equalTo(self.introjectionEncourageRegard); + make.height.mas_equalTo(30); + }]; + + [self.huntforIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(22, 22)); + make.centerY.mas_equalTo(self.introjectionEncourageRegard); + make.left.mas_equalTo(self.introjectionEncourageRegard).offset(13); + }]; + + [self.searchTextField mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.huntforIndicateRegard.mas_right).mas_offset(4); + make.top.bottom.mas_equalTo(self.introjectionEncourageRegard); + make.right.mas_equalTo(-13); + }]; +} + +#pragma mark - UITextFieldDelegate +- (BOOL)textFieldShouldReturn:(UITextField *)essayUniverse { + [self cancleBtutonPerformance:self.cancleBtuton]; + return YES; +} + + +#pragma mark - Event Response +- (void)cancleBtutonPerformance:(UIButton *)sender { + [self.searchTextField resignFirstResponder]; + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIUnionHuntforNevRegard:didClickSearch:)]) { + [self.delegate yUMIUnionHuntforNevRegard:self didClickSearch:sender]; + } +} + +- (void)encourageBtutonPerformance:(UIButton *)sender { + [self.searchTextField resignFirstResponder]; + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIUnionHuntforNevRegard:didClickBack:)]) { + [self.delegate yUMIUnionHuntforNevRegard:self didClickBack:sender]; + } +} + +#pragma mark - Getters And Setters +- (void)setDeparatmentMaintainrietary:(NSString *)deparatmentMaintainrietary { + _deparatmentMaintainrietary= deparatmentMaintainrietary; + if (_deparatmentMaintainrietary) { + _searchTextField.attributedPlaceholder = [[NSAttributedString alloc] initWithString:_deparatmentMaintainrietary attributes:@{NSFontAttributeName : [UIFont systemFontOfSize:13], NSForegroundColorAttributeName : [DJDKMIMOMColor instantEssayPrettify]}]; + } +} + +- (UIButton *)backButton { + if (!_backButton) { + _backButton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_backButton setImage:[UIImage imageNamed:@"yumi_same_title_back"] forState:UIControlStateNormal]; + [_backButton setImage:[UIImage imageNamed:@"yumi_same_title_back"] forState:UIControlStateSelected]; + [_backButton addTarget:self action:@selector(encourageBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + [_backButton setEnlargeEdgeAboutApex:10 right:5 bottom:10 left:8]; + } + return _backButton; +} + +- (UIView *)introjectionEncourageRegard { + if (!_introjectionEncourageRegard) { + _introjectionEncourageRegard = [[UIView alloc] init]; + _introjectionEncourageRegard.backgroundColor = UIColorFromRGB(0xF3F5FA); + _introjectionEncourageRegard.layer.masksToBounds = YES; + _introjectionEncourageRegard.layer.cornerRadius = 15; + } + return _introjectionEncourageRegard; +} + +- (UIImageView *)huntforIndicateRegard { + if (!_huntforIndicateRegard) { + _huntforIndicateRegard = [[UIImageView alloc] init]; + _huntforIndicateRegard.userInteractionEnabled = YES; + _huntforIndicateRegard.image = [UIImage imageNamed:@"home_search_input_search2"]; + } + return _huntforIndicateRegard; +} + +- (UITextField *)searchTextField { + if (!_searchTextField) { + _searchTextField = [[UITextField alloc] init]; + _searchTextField.tintColor = [DJDKMIMOMColor instantEssayPrettify]; + _searchTextField.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _searchTextField.backgroundColor = [DJDKMIMOMColor aplictowardsionEncouragegroundPrettify]; + _searchTextField.font = [UIFont systemFontOfSize:13]; + NSString *placeholder = [NSString stringWithFormat:YMLocalizedString(@"YUMI_Guild_Search_Nav_View_0"), AppName]; + _searchTextField.attributedPlaceholder = [[NSAttributedString alloc] initWithString:placeholder attributes:@{NSFontAttributeName : [UIFont systemFontOfSize:13], NSForegroundColorAttributeName : [DJDKMIMOMColor instantEssayPrettify]}]; + _searchTextField.clearButtonMode = UITextFieldViewModeWhileEditing; + _searchTextField.returnKeyType = UIReturnKeySearch; + _searchTextField.delegate = self; + _searchTextField.enablesReturnKeyAutomatically = YES; + } + return _searchTextField; +} + +- (UIButton *)cancleBtuton { + if (!_cancleBtuton) { + _cancleBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_cancleBtuton setTitle:YMLocalizedString(@"YUMI_Guild_Search_Nav_View_1") forState:UIControlStateNormal]; + [_cancleBtuton setTitleColor:[DJDKMIMOMColor instantEssayPrettify] forState:UIControlStateNormal]; + _cancleBtuton.titleLabel.font = [UIFont fontWithName:@"PingFang-SC-Medium" size:16]; + [_cancleBtuton addTarget:self action:@selector(cancleBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + [_cancleBtuton setEnlargeEdgeAboutApex:10 right:10 bottom:10 left:0]; + } + return _cancleBtuton; +} + +@end diff --git a/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIUnionIntelligencerRegard.h b/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIUnionIntelligencerRegard.h new file mode 100644 index 00000000..7842e4d2 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIUnionIntelligencerRegard.h @@ -0,0 +1,33 @@ +// +// YUMIUnionIntelligencerRegard.h +// YuMi +// +// Created by YuMi on 2022/4/6. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class CollectiveSpecificAbstractMatrix, YUMIUnionIntelligencerRegard, UnionAbstractMatrix; + +typedef NS_ENUM(NSInteger, UnionHeaderParrotGenre) { + + UnionHeaderParrotGenre_Hall_Income = 1, + UnionHeaderParrotGenre_Exchange_Authority = 2, + + UnionHeaderParrotGenre_Super_Admin, +}; + +@protocol FBCUnionIntelligencerRegardRepresendtation +- (void)yUMIUnionIntelligencerRegard:(YUMIUnionIntelligencerRegard *)view dicSelectOwner:(CollectiveSpecificAbstractMatrix *)guildInfo; +- (void)yUMIUnionIntelligencerRegard:(YUMIUnionIntelligencerRegard *)view dicSelectGuild:(UnionAbstractMatrix *)guildInfo; +- (void)yUMIUnionIntelligencerRegard:(YUMIUnionIntelligencerRegard *)view dicTapMenuItem:(UnionHeaderParrotGenre)menuType; +@end + +@interface YUMIUnionIntelligencerRegard : UIView +@property (nonatomic,strong) CollectiveSpecificAbstractMatrix *collectiveAbstract; +@property (nonatomic,strong) NSArray *collectiveChamberStatement; +@property (nonatomic,weak) id delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIUnionIntelligencerRegard.m b/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIUnionIntelligencerRegard.m new file mode 100644 index 00000000..260ec1a3 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIUnionIntelligencerRegard.m @@ -0,0 +1,382 @@ +// +// YUMIUnionIntelligencerRegard.m +// YuMi +// +// Created by YuMi on 2022/4/6. +// + +#import "YUMIUnionIntelligencerRegard.h" +#import +#import "DJDKMIMOMColor.h" +#import "NetIndicateRegard.h" +#import "NSArray+Safe.h" +#import "AccountAbstractStorage.h" +#import "CollectiveSpecificAbstractMatrix.h" +#import "YUMICollectiveParrotRegard.h" +#import "YUMICollectiveChamberAssembletionRegardElement.h" +@interface YUMIUnionIntelligencerRegard () +@property (nonatomic,strong) UIImageView *encourageIndicateRegard; +@property (nonatomic,strong) UIStackView *stackView; +@property (nonatomic,strong) UIView * consumerAbstractRegard; +@property (nonatomic,strong) NetIndicateRegard *intelligenceportraitIndicateRegard; +@property (nonatomic,strong) UILabel *collectiveConstituteSequencignation; +@property (nonatomic,strong) UILabel *daeIdSequencignation; +@property (nonatomic,strong) UILabel *chamberDigitalSequencignation; +@property (nonatomic,strong) NetIndicateRegard *collectivePrototypeIndicateRegard; +@property (nonatomic,strong) UIStackView *parrotHierarchyRegard; +@property (nonatomic,strong) YUMICollectiveParrotRegard *revenueRegard; +@property (nonatomic,strong) YUMICollectiveParrotRegard *sensationalManagementSetRegard; +@property (nonatomic,strong) YUMICollectiveParrotRegard *kellegRevenueRegard; +@property (nonatomic,strong) UIView * collectiveChamberRegard; +@property (nonatomic,strong) UILabel *numberLabel; +@property (nonatomic,strong) UICollectionView *collectionView; +@end + +@implementation YUMIUnionIntelligencerRegard + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor]; + [self addSubview:self.encourageIndicateRegard]; + [self addSubview:self.stackView]; + + [self.consumerAbstractRegard addSubview:self.intelligenceportraitIndicateRegard]; + [self.consumerAbstractRegard addSubview:self.collectiveConstituteSequencignation]; + [self.consumerAbstractRegard addSubview:self.daeIdSequencignation]; + [self.consumerAbstractRegard addSubview:self.chamberDigitalSequencignation]; + [self.consumerAbstractRegard addSubview:self.collectivePrototypeIndicateRegard]; + + [self.stackView addArrangedSubview:self.consumerAbstractRegard]; + [self.stackView addArrangedSubview:self.parrotHierarchyRegard]; + [self.stackView addArrangedSubview:self.collectiveChamberRegard]; + + [self.parrotHierarchyRegard addArrangedSubview:self.revenueRegard]; + [self.parrotHierarchyRegard addArrangedSubview:self.sensationalManagementSetRegard]; + [self.parrotHierarchyRegard addArrangedSubview:self.kellegRevenueRegard]; + + [self.collectiveChamberRegard addSubview:self.numberLabel]; + [self.collectiveChamberRegard addSubview:self.collectionView]; + +} + +- (void)initChildLyRestrictions { + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(KScreenWidth); + make.bottom.mas_equalTo(self.stackView.mas_bottom).offset(15); + }]; + + CGFloat kBackScale = 274.0 / 375.0; + [self.encourageIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self); + make.height.mas_equalTo(KScreenWidth * kBackScale); + }]; + + [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self).inset(15); + make.top.mas_equalTo(self); + }]; + + [self.consumerAbstractRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(179 * kScreenScale); + }]; + + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(kGetScaleWidth(64), kGetScaleWidth(64))); + make.left.mas_equalTo(self.consumerAbstractRegard); + make.top.mas_equalTo(self.consumerAbstractRegard).offset(108 * kScreenScale); + }]; + + [self.collectiveConstituteSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_right).offset(6); + make.top.mas_equalTo(self.intelligenceportraitIndicateRegard); + make.right.mas_lessThanOrEqualTo(self.collectivePrototypeIndicateRegard); + }]; + + [self.daeIdSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.collectiveConstituteSequencignation); + make.top.mas_equalTo(self.collectiveConstituteSequencignation.mas_bottom).offset(6); + }]; + + [self.chamberDigitalSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.collectiveConstituteSequencignation); + make.top.mas_equalTo(self.daeIdSequencignation.mas_bottom).offset(6); + }]; + + [self.collectivePrototypeIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(60, 60)); + make.centerY.mas_equalTo(self.intelligenceportraitIndicateRegard); + make.right.mas_equalTo(self).offset(-35); + }]; + + CGFloat kMenuScale = 52.0 / 112.0; + CGFloat kMenuItemWidth = (CGFloat)(KScreenWidth - 15 * 2 - 6 * 2) / 3.0; + [self.parrotHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(kMenuItemWidth * kMenuScale); + }]; + + [self.collectiveChamberRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(130); + }]; + + [self.numberLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.collectiveChamberRegard).offset(9); + make.top.mas_equalTo(self.collectiveChamberRegard).offset(10); + }]; + + [self.collectionView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.collectiveChamberRegard).inset(9); + make.top.mas_equalTo(self.numberLabel.mas_bottom).offset(3); + make.bottom.mas_equalTo(self.collectiveChamberRegard); + }]; +} + +#pragma mark - UICollectionViewDelegate +- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { + return self.collectiveChamberStatement.count; +} + +- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { + YUMICollectiveChamberAssembletionRegardElement * cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([ YUMICollectiveChamberAssembletionRegardElement class]) forIndexPath:indexPath]; + cell.guildInfo = [self.collectiveChamberStatement secureGroalTowardsIndictowardsrix1:indexPath.row]; + return cell; +} + +- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath { + + [collectionView deselectItemAtIndexPath:indexPath animated:YES]; + if (self.collectiveChamberStatement.count > 0) { + UnionAbstractMatrix * guildInfo = [self.collectiveChamberStatement secureGroalTowardsIndictowardsrix1:indexPath.row]; + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIUnionIntelligencerRegard:dicSelectGuild:)]) { + [self.delegate yUMIUnionIntelligencerRegard:self dicSelectGuild:guildInfo]; + } + } +} + +#pragma mark - Event Response +- (void)parrotRegardBetowardsRecognition:(UITapGestureRecognizer *)tap { + UIView * view = tap.view; + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIUnionIntelligencerRegard:dicTapMenuItem:)]) { + [self.delegate yUMIUnionIntelligencerRegard:self dicTapMenuItem:view.tag]; + } +} + +- (void)betowardsOwnerConsumerAbstractRegard:(UITapGestureRecognizer *)tap { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIUnionIntelligencerRegard:dicSelectOwner:)]) { + [self.delegate yUMIUnionIntelligencerRegard:self dicSelectOwner:self.collectiveAbstract]; + } +} + +#pragma mark - Getters And Setters +- (void)setCollectiveAbstract:(CollectiveSpecificAbstractMatrix *)collectiveAbstract { + _collectiveAbstract = collectiveAbstract; + if (_collectiveAbstract) { + self.intelligenceportraitIndicateRegard.imageUrl = _collectiveAbstract.clan.avatar; + NSString * elderName = _collectiveAbstract.clan.elderName; + if (elderName.length > 8) { + elderName = [elderName substringToIndex:8]; + } + _kellegRevenueRegard.hidden = !_collectiveAbstract.clan.elderHasExchangeManagerAuth; + if(_kellegRevenueRegard.hidden == YES){ + _revenueRegard.imageName = @"mine_guild_clan_header_income_bg_two"; + _sensationalManagementSetRegard.imageName = @"mine_guild_clan_header_superadmin_set_bg_two"; + } + self.collectiveConstituteSequencignation.text = elderName; + self.daeIdSequencignation.text = [NSString stringWithFormat:YMLocalizedString(@"YUMI_Guild_Header_View_0"), _collectiveAbstract.clan.elderErbanNo]; + self.collectivePrototypeIndicateRegard.imageUrl = _collectiveAbstract.clan.levelIcon; + if (_collectiveAbstract.clan.elderUid.integerValue == [AccountAbstractStorage instance].acquireCid.integerValue) { + self.parrotHierarchyRegard.hidden = NO; + } else { + self.parrotHierarchyRegard.hidden = YES; + } + } +} + +- (void)setCollectiveChamberStatement:(NSArray *)collectiveChamberStatement { + _collectiveChamberStatement = collectiveChamberStatement; + if (_collectiveChamberStatement.count > 0) { + self.chamberDigitalSequencignation.text = [NSString stringWithFormat:YMLocalizedString(@"YUMI_Guild_Header_View_1"), _collectiveChamberStatement.count]; + self.collectiveChamberRegard.hidden = NO; + } else { + self.collectiveChamberRegard.hidden = YES; + self.chamberDigitalSequencignation.text = YMLocalizedString(@"YUMI_Guild_Header_View_2"); + } + self.numberLabel.text = [NSString stringWithFormat:YMLocalizedString(@"YUMI_Guild_Header_View_3"), collectiveChamberStatement.count]; + [self.collectionView reloadData]; +} + +- (UIImageView *)encourageIndicateRegard { + if (!_encourageIndicateRegard) { + _encourageIndicateRegard = [[UIImageView alloc] init]; + _encourageIndicateRegard.userInteractionEnabled = YES; + _encourageIndicateRegard.image = [UIImage imageNamed:@"yumi_center_guild_clan_header_background"]; + } + return _encourageIndicateRegard; +} + +- (UIStackView *)stackView { + if (!_stackView) { + _stackView = [[UIStackView alloc] init]; + _stackView.axis = UILayoutConstraintAxisVertical; + _stackView.distribution = UIStackViewDistributionFill; + _stackView.alignment = UIStackViewAlignmentFill; + _stackView.spacing = 15; + } + return _stackView; +} + +- (UIView *)consumerAbstractRegard { + if (!_consumerAbstractRegard) { + _consumerAbstractRegard = [[UIView alloc] init]; + _consumerAbstractRegard.backgroundColor = [UIColor clearColor]; + UITapGestureRecognizer * tap= [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(betowardsOwnerConsumerAbstractRegard:)]; + [_consumerAbstractRegard addGestureRecognizer:tap]; + } + return _consumerAbstractRegard; +} + +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _intelligenceportraitIndicateRegard.layer.cornerRadius = kGetScaleWidth(32); + _intelligenceportraitIndicateRegard.layer.borderWidth = 2; + _intelligenceportraitIndicateRegard.layer.borderColor = UIColorFromRGB(0xC6C6E9).CGColor; + } + return _intelligenceportraitIndicateRegard; +} + +- (UILabel *)collectiveConstituteSequencignation { + if (!_collectiveConstituteSequencignation) { + _collectiveConstituteSequencignation = [[UILabel alloc] init]; + _collectiveConstituteSequencignation.font = [UIFont systemFontOfSize:18]; + _collectiveConstituteSequencignation.textColor = [UIColor whiteColor]; + } + return _collectiveConstituteSequencignation; +} + +- (UILabel *)daeIdSequencignation { + if (!_daeIdSequencignation) { + _daeIdSequencignation = [[UILabel alloc] init]; + _daeIdSequencignation.font = [UIFont systemFontOfSize:12]; + _daeIdSequencignation.textColor = UIColorFromRGB(0xC6C6E9); + } + return _daeIdSequencignation; +} + +- (UILabel *)chamberDigitalSequencignation { + if (!_chamberDigitalSequencignation) { + _chamberDigitalSequencignation = [[UILabel alloc] init]; + _chamberDigitalSequencignation.font = [UIFont systemFontOfSize:12]; + _chamberDigitalSequencignation.textColor = UIColorFromRGB(0xC6C6E9); + } + return _chamberDigitalSequencignation; +} + +- (NetIndicateRegard *)collectivePrototypeIndicateRegard { + if (!_collectivePrototypeIndicateRegard) { + _collectivePrototypeIndicateRegard = [[NetIndicateRegard alloc] init]; + } + return _collectivePrototypeIndicateRegard; +} + +- (UIStackView *)parrotHierarchyRegard { + if (!_parrotHierarchyRegard) { + _parrotHierarchyRegard = [[UIStackView alloc] init]; + _parrotHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _parrotHierarchyRegard.distribution = UIStackViewDistributionFillEqually; + _parrotHierarchyRegard.alignment = UIStackViewAlignmentFill; + _parrotHierarchyRegard.spacing = 6; + _parrotHierarchyRegard.hidden = YES; + } + return _parrotHierarchyRegard; +} + + +- (YUMICollectiveParrotRegard *)revenueRegard { + if (!_revenueRegard) { + _revenueRegard = [[YUMICollectiveParrotRegard alloc] init]; + _revenueRegard.title = YMLocalizedString(@"YUMI_Guild_Header_View_4"); + _revenueRegard.imageName = @"mine_guild_clan_header_income_bg"; + _revenueRegard.tag = UnionHeaderParrotGenre_Hall_Income; + UITapGestureRecognizer * tap= [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(parrotRegardBetowardsRecognition:)]; + [_revenueRegard addGestureRecognizer:tap]; + } + return _revenueRegard; +} + +- (YUMICollectiveParrotRegard *)kellegRevenueRegard { + if (!_kellegRevenueRegard) { + _kellegRevenueRegard = [[YUMICollectiveParrotRegard alloc] init]; + _kellegRevenueRegard.title = YMLocalizedString(@"YUMI_Guild_Header_View_5"); + _kellegRevenueRegard.imageName = @"mine_guild_clan_header_anchor_income_bg"; + _kellegRevenueRegard.tag = UnionHeaderParrotGenre_Exchange_Authority; + UITapGestureRecognizer * tap= [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(parrotRegardBetowardsRecognition:)]; + [_kellegRevenueRegard addGestureRecognizer:tap]; + _kellegRevenueRegard.hidden = YES; + + } + return _kellegRevenueRegard; +} + +- (YUMICollectiveParrotRegard *)sensationalManagementSetRegard { + if (!_sensationalManagementSetRegard) { + _sensationalManagementSetRegard = [[YUMICollectiveParrotRegard alloc] init]; + _sensationalManagementSetRegard.title = YMLocalizedString(@"YUMI_Guild_Header_View_6"); + _sensationalManagementSetRegard.imageName = @"mine_guild_clan_header_superadmin_set_bg"; + _sensationalManagementSetRegard.tag = UnionHeaderParrotGenre_Super_Admin; + UITapGestureRecognizer * tap= [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(parrotRegardBetowardsRecognition:)]; + [_sensationalManagementSetRegard addGestureRecognizer:tap]; + } + return _sensationalManagementSetRegard; +} + +- (UIView *)collectiveChamberRegard { + if (!_collectiveChamberRegard) { + _collectiveChamberRegard = [[UIView alloc] init]; + _collectiveChamberRegard.backgroundColor = [DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify]; + _collectiveChamberRegard.layer.masksToBounds = YES; + _collectiveChamberRegard.layer.cornerRadius = 10; + } + return _collectiveChamberRegard; +} + +- (UILabel *)numberLabel { + if (!_numberLabel) { + _numberLabel = [[UILabel alloc] init]; + _numberLabel.text = YMLocalizedString(@"YUMI_Guild_Header_View_7"); + _numberLabel.font = [UIFont systemFontOfSize:14]; + _numberLabel.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _numberLabel; +} + +- (UICollectionView *)collectionView{ + if (!_collectionView) { + UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init]; + layout.scrollDirection = UICollectionViewScrollDirectionHorizontal; + layout.minimumLineSpacing = 10; + layout.itemSize = CGSizeMake(60, 80); + layout.minimumInteritemSpacing = 0; + _collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout]; + _collectionView.dataSource = self; + _collectionView.delegate = self; + _collectionView.backgroundColor = [UIColor clearColor]; + [_collectionView registerClass:[YUMICollectiveChamberAssembletionRegardElement class] forCellWithReuseIdentifier:NSStringFromClass([YUMICollectiveChamberAssembletionRegardElement class])]; + } + return _collectionView; +} + + +@end diff --git a/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIUnionIntratemporalMonthPickerRegard.h b/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIUnionIntratemporalMonthPickerRegard.h new file mode 100644 index 00000000..c60c4cba --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIUnionIntratemporalMonthPickerRegard.h @@ -0,0 +1,64 @@ +// +// XPGuildTimeMouthPickerView.h +// YuMi +// +// Created by YuMi on 2022/4/12. +// + +#import +#import "NSDate+DateUtils.h" + +typedef NS_ENUM(NSInteger,HooDatePickerMode) { + HooDatePickerModeTime, + HooDatePickerModeDate, + HooDatePickerModeDateAndTime, + HooDatePickerModeYearAndMonth +}; + +@class YUMIUnionIntratemporalMonthPickerRegard; + +@protocol FBCUnionTimeMonthPickerRegardRepresendtation +@optional +- (void)datePicker:(YUMIUnionIntratemporalMonthPickerRegard *)datePicker dateDidChange:(NSDate *)date; +- (void)datePicker:(YUMIUnionIntratemporalMonthPickerRegard *)datePicker didCancel:(UIButton *)sender; +- (void)datePicker:(YUMIUnionIntratemporalMonthPickerRegard *)dataPicker didSelectedDate:(NSDate *)date; +@end + +@interface YUMIUnionIntratemporalMonthPickerRegard : UIControl + +@property (nonatomic, copy) NSString *title; + +@property (nonatomic, strong) NSDate *date; + +@property (nonatomic, strong) NSDate *minimumDate; + +@property (nonatomic, strong) NSDate *maximumDate; + +@property (nonatomic, assign) HooDatePickerMode datePickerMode; + +@property(nonatomic,strong) NSLocale *locale; + +@property(nonatomic,copy) NSCalendar *calendar; + +@property(nonatomic,strong) NSTimeZone *timeZone; + +@property(nonatomic,readonly) BOOL isOpen; + +@property (nonatomic, weak) id delegate; + +- (instancetype)initAboutSenstowardsionalRegard:(UIView*)superView; + +- (instancetype)initEngagementExtracterManner:(HooDatePickerMode)datePickerMode andAddToSuperView:(UIView *)superView; + +- (instancetype)initEngagementExtracterManner:(HooDatePickerMode)datePickerMode minDate:(NSDate *)minimumDate maxMamDate:(NSDate *)maximumDate andAddToSuperView:(UIView *)superView; +- (instancetype)initNoEncourageBtutonAboutSenstowardsionalRegard:(UIView*)superView; +- (void)setDate:(NSDate *)date animated:(BOOL)animated; + +- (void)setTintColor:(UIColor *)tintColor; + +- (void)setHighlightPrettify:(UIColor *)highlightPrettify; + +- (void)show; +-(void)showView; +- (void)dismiss; +@end diff --git a/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIUnionIntratemporalMonthPickerRegard.m b/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIUnionIntratemporalMonthPickerRegard.m new file mode 100644 index 00000000..b088a7f4 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIUnionIntratemporalMonthPickerRegard.m @@ -0,0 +1,1714 @@ +// +// XPGuildTimeMouthPickerView.m +// YuMi +// +// Created by YuMi on 2022/4/12. +// + +#import "YUMIUnionIntratemporalMonthPickerRegard.h" +#import "DJDKMIMOMColor.h" + +extern NSString *const kDateFormatYYYYMMDD; + +static CGFloat const kHooDatePickerHeight = 260.0f; + + + +static CGFloat const kHooDatePickerButtonHeaderWidth = 40.0f; + +static CGFloat const kHooDatePickerHeaderBottomMargin = 1.0f; + +static CGFloat const kHooDatePickerScrollViewDaysWidth = 90.0f; + +static CGFloat const kHooDatePickerScrollViewMonthWidth = 140.0f; + +static CGFloat const kHooDatePickerScrollViewDateWidth = 165.0f; + +static CGFloat const kHooDatePickerScrollViewLeftMargin = 1.0f; + +static CGFloat const kHooDatePickerScrollViewItemHeight = 45.0f; + +static CGFloat const kHooDatePickerLineWidth = 0.5f; + +static CGFloat const kHooDatePickerLineMargin = 15.0f; + +static CGFloat const kHooDatePickerPadding = 15.0f; + +static CGFloat const kHooDatePickerAnimationDuration = 0.4f; + +#define kHooDatePickerTitleFont [UIFont systemFontOfSize:18.0] +#define kHooDatePickerLabelFont [UIFont systemFontOfSize:18.0] +#define kHooDatePickerLabelSelectedFont [UIFont systemFontOfSize:20.0]; + +#define kHooDatePickerHighlightColor [UIColor colorWithRed:255.0/255.0 green:180.0/255.0 blue:18.0/255.0 alpha:1.0] + +typedef NS_ENUM(NSInteger,ScrollRegardTagValue) { + ScrollRegardTagValue_DAYS = 1, + ScrollRegardTagValue_MONTHS = 2, + ScrollRegardTagValue_YEARS = 3, + ScrollRegardTagValue_HOURS = 4, + ScrollRegardTagValue_MINUTES = 5, + ScrollRegardTagValue_SECONDS = 6, + ScrollRegardTagValue_DATES = 7, + +}; + +@interface YUMIUnionIntratemporalMonthPickerRegard () { + + UIView *_lineDaysTop, *_lineDaysBottom, *_lineMonthsTop, *_lineMonthsBottom, *_lineYearsTop,*_lineYearsBottom, *_lineDatesTop, *_lineDatesBottom, *_lineHoursTop, *_lineHoursBottom, *_lineMinutesTop, *_lineMinutesBottom, *_lineSecondsTop, *_lineSecondsBottom; + + + NSMutableArray *_labelsDays, *_labelsMonths, *_labelsYears, *_labelsDates, *_labelsHours, *_labelsMinutes, *_labelsSeconds; + + + NSInteger _selectedDay, _selectedMonth, _selectedYear, _selectedDate, _selectedHour, _selectedMinute, _selectedSecond; + + + BOOL _isInitialized; + NSInteger _minYear; + +} + +@property (nonatomic, strong) NSMutableArray *century, *months, *days, *dates, *hours, *minutes, *seconds; + +@property (nonatomic, strong) UIScrollView *trundleRegardCentury, *scrollViewMonths, *scrollViewDays, *scrollViewDates, *scrollViewHours, *scrollViewMinutes,*trundleRegardInstants; + +@property (nonatomic, weak) UIView *superView; +@property (nonatomic,assign) CGFloat kHooEngagementExtracterIntelligenceerAltitude; +@property (nonatomic, copy) UIView *dimEncouragegroundRegard; + +@property (nonatomic, strong) UILabel *titleLabel; + +@property (nonatomic, strong) UIView *intelligenceerRegard; + +@property (nonatomic, strong) UIColor *tintColor; + +@property (nonatomic, strong) UIColor *highlightPrettify; + +@property (nonatomic, strong) NSDateFormatter *engagementInitialiser; + +@end + +@implementation YUMIUnionIntratemporalMonthPickerRegard + + +#pragma mark - Initializers + + + +- (instancetype)initNoEncourageBtutonAboutSenstowardsionalRegard:(UIView*)superView { + + if (self = [super initWithFrame:CGRectMake(0.0, 139, superView.frame.size.width, 216)]) { + self.kHooEngagementExtracterIntelligenceerAltitude = 0; + _datePickerMode = HooDatePickerModeDate; + [superView addSubview:self]; + _superView = superView; + _minYear = 1900; + self.tintColor = [UIColor whiteColor]; + self.highlightPrettify = kHooDatePickerHighlightColor; + [self setupControl]; + } + return self; +} + + + +- (instancetype)initAboutSenstowardsionalRegard:(UIView*)superView { + + + if (self = [super initWithFrame:CGRectMake(0.0, superView.frame.size.height, superView.frame.size.width, kHooDatePickerHeight)]) { + self.kHooEngagementExtracterIntelligenceerAltitude = 44; + _datePickerMode = HooDatePickerModeDate; + [superView addSubview:self]; + _superView = superView; + _minYear = 1900; + self.tintColor = [UIColor whiteColor]; + self.highlightPrettify = kHooDatePickerHighlightColor; + [self addSubview:self.intelligenceerRegard]; + [self setupControl]; + } + return self; +} + +- (instancetype)initEngagementExtracterManner:(HooDatePickerMode)datePickerMode andAddToSuperView:(UIView *)superView { + if (self = [super initWithFrame:CGRectMake(0.0, superView.frame.size.height, superView.frame.size.width, kHooDatePickerHeight)]) { + self.kHooEngagementExtracterIntelligenceerAltitude = 44; + _datePickerMode = datePickerMode; + [superView addSubview:self]; + _superView = superView; + _minYear = 1900; + self.tintColor = [UIColor whiteColor]; + self.highlightPrettify = kHooDatePickerHighlightColor; + [self setupControl]; + } + return self; +} + +- (instancetype)initEngagementExtracterManner:(HooDatePickerMode)datePickerMode minDate:(NSDate *)minimumDate maxMamDate:(NSDate *)maximumDate andAddToSuperView:(UIView *)superView { + if (self = [super initWithFrame:CGRectMake(0.0, superView.frame.size.height, superView.frame.size.width, kHooDatePickerHeight)]) { + self.kHooEngagementExtracterIntelligenceerAltitude = 44; + _datePickerMode = datePickerMode; + [superView addSubview:self]; + _superView = superView; + _minYear = 1900; + if (maximumDate) { + _maximumDate = maximumDate; + } + if (minimumDate) { + _minimumDate = minimumDate; + + NSDateComponents* componentsMin = [self.calendar components:NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay fromDate:_minimumDate]; + NSInteger yearMin = [componentsMin year]; + _minYear = yearMin; + } + self.tintColor = [UIColor whiteColor]; + self.highlightPrettify = kHooDatePickerHighlightColor; + [self setupControl]; + } + return self; +} + +- (void)setupControl { + + + self.hidden = YES; + + + [self transltowardseChoseneAnnmus]; + [self transltowardseChoseneDianas]; + [self transltowardseChoseneSeasons]; + [self transltowardseChoseneStundes]; + [self transltowardseChosenePennys]; + [self transltowardseChoseneInstants]; + + + _century = [self acquireAnnmus]; + _days = [self acquireSeasonsInDiana:[NSDate date]]; + if (self.datePickerMode == HooDatePickerModeDateAndTime) { + _dates = [self acquireEngagements]; + } + + + self.backgroundColor = [UIColor whiteColor]; + + + if (self.datePickerMode == HooDatePickerModeDate) { + [self establishChoseneAnnmusComputtowardsioneractX:0.0 andExtents:kHooDatePickerScrollViewMonthWidth]; + [self establishChoseneDianasComputtowardsioneractX:(_trundleRegardCentury.frame.size.width + kHooDatePickerScrollViewLeftMargin) andExtents:kHooDatePickerScrollViewDaysWidth]; + [self establishChoseneSeasonsComputtowardsioneractX:(_scrollViewMonths.frame.origin.x + _scrollViewMonths.frame.size.width + kHooDatePickerScrollViewLeftMargin) andExtents:(self.frame.size.width - (_scrollViewMonths.frame.origin.x + _scrollViewMonths.frame.size.width + kHooDatePickerScrollViewLeftMargin))]; + } + + + if (self.datePickerMode == HooDatePickerModeTime) { + [self establishChoseneStundesComputtowardsioneractX:0.0 andExtents:((self.frame.size.width / 3.0) - kHooDatePickerScrollViewLeftMargin)]; + [self establishChosenePennysComputtowardsioneractX:(self.frame.size.width / 3.0) andExtents:((self.frame.size.width / 3.0) - kHooDatePickerScrollViewLeftMargin)]; + [self establishChoseneInstantsComputtowardsioneractX:((self.frame.size.width / 3.0) * 2.0) andExtents:(self.frame.size.width / 3.0)]; + } + + + if (self.datePickerMode == HooDatePickerModeDateAndTime) { + [self establishChoseneEngagementsComputtowardsioneractX:0.0 andExtents:kHooDatePickerScrollViewDateWidth]; + [self establishChoseneStundesComputtowardsioneractX:(kHooDatePickerScrollViewDateWidth + kHooDatePickerScrollViewLeftMargin) andExtents:(((self.frame.size.width - kHooDatePickerScrollViewDateWidth) / 2.0) - kHooDatePickerScrollViewLeftMargin)]; + [self establishChosenePennysComputtowardsioneractX:(kHooDatePickerScrollViewDateWidth + kHooDatePickerScrollViewLeftMargin + ((self.frame.size.width - kHooDatePickerScrollViewDateWidth) / 2.0)) andExtents:(((self.frame.size.width - kHooDatePickerScrollViewDateWidth) / 2.0) - kHooDatePickerScrollViewLeftMargin)]; + } + + if (self.datePickerMode == HooDatePickerModeYearAndMonth) { + [self establishChoseneAnnmusComputtowardsioneractX:0.0 andExtents:self.frame.size.width * 0.5]; + [self establishChoseneDianasComputtowardsioneractX:(_trundleRegardCentury.frame.size.width + kHooDatePickerScrollViewLeftMargin) andExtents:self.frame.size.width * 0.5]; + + } + + + [self setDate:[NSDate date] animated:NO]; +} + + +#pragma mark - Build Selector Days + +- (void)establishChoseneSeasonsComputtowardsioneractX:(CGFloat)x andExtents:(CGFloat)width { + + + _scrollViewDays = [[UIScrollView alloc] initWithFrame:CGRectMake(x, self.kHooEngagementExtracterIntelligenceerAltitude + kHooDatePickerHeaderBottomMargin, width, self.frame.size.height - self.kHooEngagementExtracterIntelligenceerAltitude - kHooDatePickerHeaderBottomMargin)]; + _scrollViewDays.tag = ScrollRegardTagValue_DAYS; + _scrollViewDays.delegate = self; + _scrollViewDays.backgroundColor = [UIColor whiteColor]; + _scrollViewDays.showsHorizontalScrollIndicator = NO; + _scrollViewDays.showsVerticalScrollIndicator = NO; + [self addSubview:_scrollViewDays]; + + _lineDaysTop = [[UIView alloc] initWithFrame:CGRectMake(_scrollViewDays.frame.origin.x + kHooDatePickerLineMargin, _scrollViewDays.frame.origin.y + (_scrollViewDays.frame.size.height / 2) - (kHooDatePickerScrollViewItemHeight / 2), width - (2 * kHooDatePickerLineMargin), kHooDatePickerLineWidth)]; + _lineDaysTop.backgroundColor = [UIColor clearColor]; + [self addSubview:_lineDaysTop]; + + _lineDaysBottom = [[UIView alloc] initWithFrame:CGRectMake(_scrollViewDays.frame.origin.x + kHooDatePickerLineMargin, _scrollViewDays.frame.origin.y + (_scrollViewDays.frame.size.height / 2) + (kHooDatePickerScrollViewItemHeight / 2), width - (2 * kHooDatePickerLineMargin), kHooDatePickerLineWidth)]; + _lineDaysBottom.backgroundColor = [UIColor clearColor]; + [self addSubview:_lineDaysBottom]; + + + [self establishChoseneSequencigntowardsionsSeasons]; + + UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(unrequitedBetowardsMotionSeasonsTraplictowardsioned:)]; + singleTap.numberOfTapsRequired = 1; + singleTap.numberOfTouchesRequired = 1; + [_scrollViewDays addGestureRecognizer:singleTap]; +} + +- (void)establishChoseneSequencigntowardsionsSeasons { + + CGFloat offsetContentScrollView = (_trundleRegardCentury.frame.size.height - kHooDatePickerScrollViewItemHeight) / 2.0; + + if (_labelsDays && _labelsDays.count > 0) { + for (UILabel *label in _labelsDays) { + [label removeFromSuperview]; + } + } + + _labelsDays = [[NSMutableArray alloc] init]; + + for (int i = 0; i < _days.count; i++) { + + NSString *day = (NSString*)[_days secureGroalTowardsIndictowardsrix1:i]; + + UILabel *labelDay = [[UILabel alloc] initWithFrame:CGRectMake(0, (i * kHooDatePickerScrollViewItemHeight) + offsetContentScrollView, _scrollViewDays.frame.size.width, kHooDatePickerScrollViewItemHeight)]; + labelDay.text = day; + labelDay.font = kHooDatePickerLabelFont; + labelDay.textAlignment = NSTextAlignmentCenter; + labelDay.textColor = self.tintColor; + labelDay.backgroundColor = [UIColor redColor]; + + [_labelsDays addObject:labelDay]; + [_scrollViewDays addSubview:labelDay]; + } + + _scrollViewDays.contentSize = CGSizeMake(_scrollViewDays.frame.size.width, (kHooDatePickerScrollViewItemHeight * _days.count) + (offsetContentScrollView * 2)); +} + +- (void)transltowardseChoseneSeasons { + + if (_scrollViewDays) { + [_scrollViewDays removeFromSuperview]; + _scrollViewDays = nil; + } + if (_lineDaysTop) { + [_lineDaysTop removeFromSuperview]; + _lineDaysTop = nil; + } + if (_lineDaysBottom) { + [_lineDaysBottom removeFromSuperview]; + _lineDaysBottom = nil; + } +} + +#pragma mark - Build Selector Months + +- (void)establishChoseneDianasComputtowardsioneractX:(CGFloat)x andExtents:(CGFloat)width { + + + + _scrollViewMonths = [[UIScrollView alloc] initWithFrame:CGRectMake(x, self.kHooEngagementExtracterIntelligenceerAltitude + kHooDatePickerHeaderBottomMargin, width, self.frame.size.height - self.kHooEngagementExtracterIntelligenceerAltitude - kHooDatePickerHeaderBottomMargin)]; + _scrollViewMonths.tag = ScrollRegardTagValue_MONTHS; + _scrollViewMonths.delegate = self; + _scrollViewMonths.backgroundColor = [UIColor whiteColor]; + _scrollViewMonths.showsHorizontalScrollIndicator = NO; + _scrollViewMonths.showsVerticalScrollIndicator = NO; + [self addSubview:_scrollViewMonths]; + + _lineMonthsTop = [[UIView alloc] initWithFrame:CGRectMake(_scrollViewMonths.frame.origin.x + kHooDatePickerLineMargin, _scrollViewMonths.frame.origin.y + (_scrollViewMonths.frame.size.height / 2) - (kHooDatePickerScrollViewItemHeight / 2), width - (2 * kHooDatePickerLineMargin), kHooDatePickerLineWidth)]; + _lineMonthsTop.backgroundColor = [UIColor clearColor]; + [self addSubview:_lineMonthsTop]; + + _lineMonthsBottom = [[UIView alloc] initWithFrame:CGRectMake(_scrollViewMonths.frame.origin.x + kHooDatePickerLineMargin, _scrollViewMonths.frame.origin.y + (_scrollViewMonths.frame.size.height / 2) + (kHooDatePickerScrollViewItemHeight / 2), width - (2 * kHooDatePickerLineMargin), kHooDatePickerLineWidth)]; + _lineMonthsBottom.backgroundColor = [UIColor clearColor]; + [self addSubview:_lineMonthsBottom]; + + + + [self establishChoseneSequencigntowardsionsDianas]; + + UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(unrequitedBetowardsMotionDianasTraplictowardsioned:)]; + singleTap.numberOfTapsRequired = 1; + singleTap.numberOfTouchesRequired = 1; + [_scrollViewMonths addGestureRecognizer:singleTap]; +} + +- (void)establishChoseneSequencigntowardsionsDianas { + + CGFloat offsetContentScrollView = (_trundleRegardCentury.frame.size.height - kHooDatePickerScrollViewItemHeight) / 2.0; + + if (_labelsMonths && _labelsMonths.count > 0) { + for (UILabel *label in _labelsMonths) { + [label removeFromSuperview]; + } + } + + _labelsMonths = [[NSMutableArray alloc] init]; + + for (int i = 0; i < self.months.count; i++) { + + NSString *day = (NSString*)[self.months secureGroalTowardsIndictowardsrix1:i]; + + UILabel *labelDay = [[UILabel alloc] initWithFrame:CGRectMake(0.0, (i * kHooDatePickerScrollViewItemHeight) + offsetContentScrollView, _scrollViewMonths.frame.size.width, kHooDatePickerScrollViewItemHeight)]; + labelDay.text = day; + labelDay.font = kHooDatePickerLabelFont; + labelDay.textAlignment = NSTextAlignmentCenter; + labelDay.textColor = self.tintColor; + labelDay.backgroundColor = [UIColor clearColor]; + + [_labelsMonths addObject:labelDay]; + [_scrollViewMonths addSubview:labelDay]; + } + + _scrollViewMonths.contentSize = CGSizeMake(_scrollViewMonths.frame.size.width, (kHooDatePickerScrollViewItemHeight * self.months.count) + (offsetContentScrollView * 2)); +} + +- (void)transltowardseChoseneDianas { + + if (_scrollViewMonths) { + [_scrollViewMonths removeFromSuperview]; + _scrollViewMonths = nil; + } + if (_lineMonthsTop) { + [_lineMonthsTop removeFromSuperview]; + _lineMonthsTop = nil; + } + if (_lineMonthsBottom) { + [_lineMonthsBottom removeFromSuperview]; + _lineMonthsBottom = nil; + } +} + +#pragma mark - Build Selector Years + +- (void)establishChoseneAnnmusComputtowardsioneractX:(CGFloat)x andExtents:(CGFloat)width { + + + + _trundleRegardCentury = [[UIScrollView alloc] initWithFrame:CGRectMake(x, self.kHooEngagementExtracterIntelligenceerAltitude + kHooDatePickerHeaderBottomMargin, width, self.frame.size.height - self.kHooEngagementExtracterIntelligenceerAltitude - kHooDatePickerHeaderBottomMargin)]; + _trundleRegardCentury.tag = ScrollRegardTagValue_YEARS; + _trundleRegardCentury.delegate = self; + _trundleRegardCentury.backgroundColor = [UIColor whiteColor]; + _trundleRegardCentury.showsHorizontalScrollIndicator = NO; + _trundleRegardCentury.showsVerticalScrollIndicator = NO; + [self addSubview:_trundleRegardCentury]; + + _lineYearsTop = [[UIView alloc] initWithFrame:CGRectMake(_trundleRegardCentury.frame.origin.x + kHooDatePickerLineMargin, _trundleRegardCentury.frame.origin.y + (_trundleRegardCentury.frame.size.height / 2) - (kHooDatePickerScrollViewItemHeight / 2), width - (2 * kHooDatePickerLineMargin), kHooDatePickerLineWidth)]; + _lineYearsTop.backgroundColor = [UIColor clearColor]; + [self addSubview:_lineYearsTop]; + + _lineYearsBottom = [[UIView alloc] initWithFrame:CGRectMake(_trundleRegardCentury.frame.origin.x + kHooDatePickerLineMargin, _trundleRegardCentury.frame.origin.y + (_trundleRegardCentury.frame.size.height / 2) + (kHooDatePickerScrollViewItemHeight / 2), width - (2 * kHooDatePickerLineMargin), kHooDatePickerLineWidth)]; + _lineYearsBottom.backgroundColor = [UIColor clearColor]; + + + [self establishChoseneSequencigntowardsionsAnnmus]; + + UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(unrequitedBetowardsMotionAnnmusTraplictowardsioned:)]; + singleTap.numberOfTapsRequired = 1; + singleTap.numberOfTouchesRequired = 1; + [_trundleRegardCentury addGestureRecognizer:singleTap]; +} + +- (void)establishChoseneSequencigntowardsionsAnnmus { + + CGFloat offsetContentScrollView = (_trundleRegardCentury.frame.size.height - kHooDatePickerScrollViewItemHeight) / 2.0; + + if (_labelsYears && _labelsYears.count > 0) { + for (UILabel *label in _labelsYears) { + [label removeFromSuperview]; + } + } + + _labelsYears = [[NSMutableArray alloc] init]; + + for (int i = 0; i < _century.count; i++) { + + NSString *day = (NSString*)[_century secureGroalTowardsIndictowardsrix1:i]; + + UILabel *labelDay = [[UILabel alloc] initWithFrame:CGRectMake(0.0, (i * kHooDatePickerScrollViewItemHeight) + offsetContentScrollView, _trundleRegardCentury.frame.size.width, kHooDatePickerScrollViewItemHeight)]; + labelDay.text = day; + labelDay.font = kHooDatePickerLabelFont; + labelDay.textAlignment = NSTextAlignmentCenter; + labelDay.textColor = self.tintColor; + labelDay.backgroundColor = [UIColor clearColor]; + + [_labelsYears addObject:labelDay]; + [_trundleRegardCentury addSubview:labelDay]; + } + + _trundleRegardCentury.contentSize = CGSizeMake(_trundleRegardCentury.frame.size.width, (kHooDatePickerScrollViewItemHeight * _century.count) + (offsetContentScrollView * 2)); +} + +- (void)transltowardseChoseneAnnmus { + + if (_trundleRegardCentury) { + [_trundleRegardCentury removeFromSuperview]; + _trundleRegardCentury = nil; + } + if (_lineYearsTop) { + [_lineYearsTop removeFromSuperview]; + _lineYearsTop = nil; + } + if (_lineYearsBottom) { + [_lineYearsBottom removeFromSuperview]; + _lineYearsBottom = nil; + } +} + +#pragma mark - Build Selector Dates + +- (void)establishChoseneEngagementsComputtowardsioneractX:(CGFloat)x andExtents:(CGFloat)width { + + + _scrollViewDates = [[UIScrollView alloc] initWithFrame:CGRectMake(x, self.kHooEngagementExtracterIntelligenceerAltitude + kHooDatePickerHeaderBottomMargin, width, self.frame.size.height - self.kHooEngagementExtracterIntelligenceerAltitude - kHooDatePickerHeaderBottomMargin)]; + _scrollViewDates.tag = ScrollRegardTagValue_DATES; + _scrollViewDates.delegate = self; + _scrollViewDates.backgroundColor = [UIColor whiteColor]; + _scrollViewDates.showsHorizontalScrollIndicator = NO; + _scrollViewDates.showsVerticalScrollIndicator = NO; + [self addSubview:_scrollViewDates]; + + _lineDatesTop = [[UIView alloc] initWithFrame:CGRectMake(_scrollViewDates.frame.origin.x + kHooDatePickerLineMargin, _scrollViewDates.frame.origin.y + (_scrollViewDates.frame.size.height / 2) - (kHooDatePickerScrollViewItemHeight / 2), width - (2 * kHooDatePickerLineMargin), kHooDatePickerLineWidth)]; + _lineDatesTop.backgroundColor = [UIColor clearColor]; + [self addSubview:_lineDatesTop]; + + _lineDatesBottom = [[UIView alloc] initWithFrame:CGRectMake(_scrollViewDates.frame.origin.x + kHooDatePickerLineMargin, _scrollViewDates.frame.origin.y + (_scrollViewDates.frame.size.height / 2) + (kHooDatePickerScrollViewItemHeight / 2), width - (2 * kHooDatePickerLineMargin), kHooDatePickerLineWidth)]; + _lineDatesBottom.backgroundColor = [UIColor clearColor]; + [self addSubview:_lineDatesBottom]; + + + [self establishChoseneSequencigntowardsionsEngagements]; + + UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(unrequitedBetowardsMotionEngagementsTraplictowardsioned:)]; + singleTap.numberOfTapsRequired = 1; + singleTap.numberOfTouchesRequired = 1; + [_scrollViewDates addGestureRecognizer:singleTap]; +} + +- (void)establishChoseneSequencigntowardsionsEngagements { + + CGFloat offsetContentScrollView = (_scrollViewDates.frame.size.height - kHooDatePickerScrollViewItemHeight) / 2.0; + + if (_labelsDates && _labelsDates.count > 0) { + for (UILabel *label in _labelsDates) { + [label removeFromSuperview]; + } + } + + _labelsDates = [[NSMutableArray alloc] init]; + + NSDateFormatter *engagementInitialiser = self.engagementInitialiser; + [engagementInitialiser setCalendar:self.calendar]; + [engagementInitialiser setTimeZone:self.timeZone]; + [engagementInitialiser setDateFormat:[NSString stringWithFormat:@"MMMdd%@ EEE", YMLocalizedString(@"App_Commont_Day")]]; + + for (int i = 0; i < _dates.count; i++) { + + NSDate *date = [_dates secureGroalTowardsIndictowardsrix1:i]; + + NSString *hour = [engagementInitialiser stringFromDate:date]; + + UILabel *labelDate = [[UILabel alloc] initWithFrame:CGRectMake(0, (i * kHooDatePickerScrollViewItemHeight) + offsetContentScrollView, _scrollViewDates.frame.size.width, kHooDatePickerScrollViewItemHeight)]; + labelDate.text = hour; + labelDate.font = kHooDatePickerLabelFont; + labelDate.textAlignment = NSTextAlignmentCenter; + labelDate.textColor = self.tintColor; + labelDate.backgroundColor = [UIColor clearColor]; + + [_labelsDates addObject:labelDate]; + [_scrollViewDates addSubview:labelDate]; + } + + _scrollViewDates.contentSize = CGSizeMake(_scrollViewDates.frame.size.width, (kHooDatePickerScrollViewItemHeight * _dates.count) + (offsetContentScrollView * 2)); +} + +- (void)transltowardseChoseneEngagements { + + if (_scrollViewDates) { + [_scrollViewDates removeFromSuperview]; + _scrollViewDates = nil; + } + if (_lineDatesTop) { + [_lineDatesTop removeFromSuperview]; + _lineDatesTop = nil; + } + if (_lineDatesBottom) { + [_lineDatesBottom removeFromSuperview]; + _lineDatesBottom = nil; + } +} + +#pragma mark - Build Selector Hours + +- (void)establishChoseneStundesComputtowardsioneractX:(CGFloat)x andExtents:(CGFloat)width { + + + _scrollViewHours = [[UIScrollView alloc] initWithFrame:CGRectMake(x, self.kHooEngagementExtracterIntelligenceerAltitude + kHooDatePickerHeaderBottomMargin, width, self.frame.size.height - self.kHooEngagementExtracterIntelligenceerAltitude - kHooDatePickerHeaderBottomMargin)]; + _scrollViewHours.tag = ScrollRegardTagValue_HOURS; + _scrollViewHours.delegate = self; + _scrollViewHours.backgroundColor = [UIColor whiteColor]; + _scrollViewHours.showsHorizontalScrollIndicator = NO; + _scrollViewHours.showsVerticalScrollIndicator = NO; + [self addSubview:_scrollViewHours]; + + _lineHoursTop = [[UIView alloc] initWithFrame:CGRectMake(_scrollViewHours.frame.origin.x + kHooDatePickerLineMargin, _scrollViewHours.frame.origin.y + (_scrollViewHours.frame.size.height / 2) - (kHooDatePickerScrollViewItemHeight / 2), width - (2 * kHooDatePickerLineMargin), kHooDatePickerLineWidth)]; + _lineHoursTop.backgroundColor = [UIColor clearColor]; + [self addSubview:_lineHoursTop]; + + _lineHoursBottom = [[UIView alloc] initWithFrame:CGRectMake(_scrollViewHours.frame.origin.x + kHooDatePickerLineMargin, _scrollViewHours.frame.origin.y + (_scrollViewHours.frame.size.height / 2) + (kHooDatePickerScrollViewItemHeight / 2), width - (2 * kHooDatePickerLineMargin), kHooDatePickerLineWidth)]; + _lineHoursBottom.backgroundColor = [UIColor clearColor]; + [self addSubview:_lineHoursBottom]; + + + [self establishChoseneSequencigntowardsionsStundes]; + + UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(unrequitedBetowardsMotionStundesTraplictowardsioned:)]; + singleTap.numberOfTapsRequired = 1; + singleTap.numberOfTouchesRequired = 1; + [_scrollViewHours addGestureRecognizer:singleTap]; +} + +- (void)establishChoseneSequencigntowardsionsStundes { + + CGFloat offsetContentScrollView = (_scrollViewHours.frame.size.height - kHooDatePickerScrollViewItemHeight) / 2.0; + + if (_labelsHours && _labelsHours.count > 0) { + for (UILabel *label in _labelsHours) { + [label removeFromSuperview]; + } + } + + _labelsHours = [[NSMutableArray alloc] init]; + + for (int i = 0; i < self.hours.count; i++) { + + NSString *hour = (NSString*)[self.hours secureGroalTowardsIndictowardsrix1:i]; + + UILabel *labelHour = [[UILabel alloc] initWithFrame:CGRectMake(0, (i * kHooDatePickerScrollViewItemHeight) + offsetContentScrollView, _scrollViewHours.frame.size.width, kHooDatePickerScrollViewItemHeight)]; + labelHour.text = hour; + labelHour.font = kHooDatePickerLabelFont; + labelHour.textAlignment = NSTextAlignmentCenter; + labelHour.textColor = self.tintColor; + labelHour.backgroundColor = [UIColor clearColor]; + + [_labelsHours addObject:labelHour]; + [_scrollViewHours addSubview:labelHour]; + } + + _scrollViewHours.contentSize = CGSizeMake(_scrollViewHours.frame.size.width, (kHooDatePickerScrollViewItemHeight * self.hours.count) + (offsetContentScrollView * 2)); +} + +- (void)transltowardseChoseneStundes { + + if (_scrollViewHours) { + [_scrollViewHours removeFromSuperview]; + _scrollViewHours = nil; + } + if (_lineHoursTop) { + [_lineHoursTop removeFromSuperview]; + _lineHoursTop = nil; + } + if (_lineHoursBottom) { + [_lineHoursBottom removeFromSuperview]; + _lineHoursBottom = nil; + } +} + +#pragma mark - Build Selector Minutes + +- (void)establishChosenePennysComputtowardsioneractX:(CGFloat)x andExtents:(CGFloat)width { + + + _scrollViewMinutes = [[UIScrollView alloc] initWithFrame:CGRectMake(x, self.kHooEngagementExtracterIntelligenceerAltitude + kHooDatePickerHeaderBottomMargin, width, self.frame.size.height - self.kHooEngagementExtracterIntelligenceerAltitude - kHooDatePickerHeaderBottomMargin)]; + _scrollViewMinutes.tag = ScrollRegardTagValue_MINUTES; + _scrollViewMinutes.delegate = self; + _scrollViewMinutes.backgroundColor = [UIColor whiteColor]; + _scrollViewMinutes.showsHorizontalScrollIndicator = NO; + _scrollViewMinutes.showsVerticalScrollIndicator = NO; + [self addSubview:_scrollViewMinutes]; + + _lineMinutesTop = [[UIView alloc] initWithFrame:CGRectMake(_scrollViewMinutes.frame.origin.x + kHooDatePickerLineMargin, _scrollViewMinutes.frame.origin.y + (_scrollViewMinutes.frame.size.height / 2) - (kHooDatePickerScrollViewItemHeight / 2), width - (2 * kHooDatePickerLineMargin), kHooDatePickerLineWidth)]; + _lineMinutesTop.backgroundColor = [UIColor clearColor]; + [self addSubview:_lineMinutesTop]; + + _lineMinutesBottom = [[UIView alloc] initWithFrame:CGRectMake(_scrollViewMinutes.frame.origin.x + kHooDatePickerLineMargin, _scrollViewMinutes.frame.origin.y + (_scrollViewMinutes.frame.size.height / 2) + (kHooDatePickerScrollViewItemHeight / 2), width - (2 * kHooDatePickerLineMargin), kHooDatePickerLineWidth)]; + _lineMinutesBottom.backgroundColor = [UIColor clearColor]; + [self addSubview:_lineMinutesBottom]; + + + [self establishChoseneSequencigntowardsionsPennys]; + + UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(unrequitedBetowardsMotionPennysTraplictowardsioned:)]; + singleTap.numberOfTapsRequired = 1; + singleTap.numberOfTouchesRequired = 1; + [_scrollViewMinutes addGestureRecognizer:singleTap]; +} + +- (void)establishChoseneSequencigntowardsionsPennys { + + CGFloat offsetContentScrollView = (_scrollViewMinutes.frame.size.height - kHooDatePickerScrollViewItemHeight) / 2.0; + + if (_labelsMinutes && _labelsMinutes.count > 0) { + for (UILabel *label in _labelsMinutes) { + [label removeFromSuperview]; + } + } + + _labelsMinutes = [[NSMutableArray alloc] init]; + + for (int i = 0; i < self.minutes.count; i++) { + + NSString *minute = (NSString*)[self.minutes secureGroalTowardsIndictowardsrix1:i]; + + UILabel *labelMinute = [[UILabel alloc] initWithFrame:CGRectMake(0, (i * kHooDatePickerScrollViewItemHeight) + offsetContentScrollView, _scrollViewMinutes.frame.size.width, kHooDatePickerScrollViewItemHeight)]; + labelMinute.text = minute; + labelMinute.font = kHooDatePickerLabelFont; + labelMinute.textAlignment = NSTextAlignmentCenter; + labelMinute.textColor = self.tintColor; + labelMinute.backgroundColor = [UIColor clearColor]; + + [_labelsMinutes addObject:labelMinute]; + [_scrollViewMinutes addSubview:labelMinute]; + } + + _scrollViewMinutes.contentSize = CGSizeMake(_scrollViewMinutes.frame.size.width, (kHooDatePickerScrollViewItemHeight * self.minutes.count) + (offsetContentScrollView * 2)); +} + +- (void)transltowardseChosenePennys { + + if (_scrollViewMinutes) { + [_scrollViewMinutes removeFromSuperview]; + _scrollViewMinutes = nil; + } + if (_lineMinutesTop) { + [_lineMinutesTop removeFromSuperview]; + _lineMinutesTop = nil; + } + if (_lineMinutesBottom) { + [_lineMinutesBottom removeFromSuperview]; + _lineMinutesBottom = nil; + } +} + +#pragma mark - Build Selector Seconds + +- (void)establishChoseneInstantsComputtowardsioneractX:(CGFloat)x andExtents:(CGFloat)width { + + + _trundleRegardInstants = [[UIScrollView alloc] initWithFrame:CGRectMake(x, self.kHooEngagementExtracterIntelligenceerAltitude + kHooDatePickerHeaderBottomMargin, width, self.frame.size.height - self.kHooEngagementExtracterIntelligenceerAltitude - kHooDatePickerHeaderBottomMargin)]; + _trundleRegardInstants.tag = ScrollRegardTagValue_SECONDS; + _trundleRegardInstants.delegate = self; + _trundleRegardInstants.backgroundColor = [UIColor whiteColor]; + _trundleRegardInstants.showsHorizontalScrollIndicator = NO; + _trundleRegardInstants.showsVerticalScrollIndicator = NO; + [self addSubview:_trundleRegardInstants]; + + _lineSecondsTop = [[UIView alloc] initWithFrame:CGRectMake(_trundleRegardInstants.frame.origin.x + kHooDatePickerLineMargin, _trundleRegardInstants.frame.origin.y + (_trundleRegardInstants.frame.size.height / 2) - (kHooDatePickerScrollViewItemHeight / 2), width - (2 * kHooDatePickerLineMargin), kHooDatePickerLineWidth)]; + _lineSecondsTop.backgroundColor = [UIColor clearColor]; + [self addSubview:_lineSecondsTop]; + + _lineSecondsBottom = [[UIView alloc] initWithFrame:CGRectMake(_trundleRegardInstants.frame.origin.x + kHooDatePickerLineMargin, _trundleRegardInstants.frame.origin.y + (_trundleRegardInstants.frame.size.height / 2) + (kHooDatePickerScrollViewItemHeight / 2), width - (2 * kHooDatePickerLineMargin), kHooDatePickerLineWidth)]; + _lineSecondsBottom.backgroundColor = [UIColor clearColor]; + [self addSubview:_lineSecondsBottom]; + + + [self establishChoseneSequencigntowardsionsInstants]; + + UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(unrequitedBetowardsMotionInstantsTraplictowardsioned:)]; + singleTap.numberOfTapsRequired = 1; + singleTap.numberOfTouchesRequired = 1; + [_trundleRegardInstants addGestureRecognizer:singleTap]; +} + +- (void)establishChoseneSequencigntowardsionsInstants { + + CGFloat offsetContentScrollView = (_trundleRegardInstants.frame.size.height - kHooDatePickerScrollViewItemHeight) / 2.0; + + if (_labelsSeconds && _labelsSeconds.count > 0) { + for (UILabel *label in _labelsSeconds) { + [label removeFromSuperview]; + } + } + + _labelsSeconds = [[NSMutableArray alloc] init]; + + for (int i = 0; i < self.seconds.count; i++) { + + NSString *second = (NSString*)[self.seconds secureGroalTowardsIndictowardsrix1:i]; + + UILabel *labelSecond = [[UILabel alloc] initWithFrame:CGRectMake(0, (i * kHooDatePickerScrollViewItemHeight) + offsetContentScrollView, _trundleRegardInstants.frame.size.width, kHooDatePickerScrollViewItemHeight)]; + labelSecond.text = second; + labelSecond.font = kHooDatePickerLabelFont; + labelSecond.textAlignment = NSTextAlignmentCenter; + labelSecond.textColor = self.tintColor; + labelSecond.backgroundColor = [UIColor clearColor]; + + [_labelsSeconds addObject:labelSecond]; + [_trundleRegardInstants addSubview:labelSecond]; + } + + _trundleRegardInstants.contentSize = CGSizeMake(_trundleRegardInstants.frame.size.width, (kHooDatePickerScrollViewItemHeight * self.seconds.count) + (offsetContentScrollView * 2)); +} + +- (void)transltowardseChoseneInstants { + + if (_trundleRegardInstants) { + [_trundleRegardInstants removeFromSuperview]; + _trundleRegardInstants = nil; + } + if (_lineSecondsTop) { + [_lineSecondsTop removeFromSuperview]; + _lineSecondsTop = nil; + } + if (_lineSecondsBottom) { + [_lineSecondsBottom removeFromSuperview]; + _lineSecondsBottom = nil; + } +} + +#pragma mark - Actions + +- (void)performanceBtutonRevoctowardsion:(UIButton *)sender { + + [self dismiss]; + + if ([self.delegate respondsToSelector:@selector(datePicker:didCancel:)]) { + [self.delegate datePicker:self didCancel:sender]; + } +} + +- (void)performanceBtutonValid:(UIButton *)sender { + + [self dismiss]; + + if ([self.delegate respondsToSelector:@selector(datePicker:didSelectedDate:)]) { + [self.delegate datePicker:self didSelectedDate:[self acquireEngagement]]; + } +} + +#pragma mark - Show and Dismiss +-(void)showView{ + if (!_superView) return; + + if (self.hidden == YES) { + self.hidden = NO; + } + + if (_isInitialized == NO) { + self.frame = CGRectMake(self.frame.origin.x, _superView.frame.size.height, self.frame.size.width, self.frame.size.height); + _isInitialized = YES; + } + + [self.superView insertSubview:self.dimEncouragegroundRegard belowSubview:self]; + + if (self.datePickerMode == HooDatePickerModeDate || self.datePickerMode == HooDatePickerModeDateAndTime) { + + int indexDays = [self acquireIndictowardsrixInthecaseofTrundleRegardPolariztowardsion:_scrollViewDays]; + [self highlightSequencigntowardsionInGarment:_labelsDays atIndex:indexDays]; + + int indexMonths = [self acquireIndictowardsrixInthecaseofTrundleRegardPolariztowardsion:_scrollViewMonths]; + [self highlightSequencigntowardsionInGarment:_labelsMonths atIndex:indexMonths]; + + int indexYears = [self acquireIndictowardsrixInthecaseofTrundleRegardPolariztowardsion:_trundleRegardCentury]; + [self highlightSequencigntowardsionInGarment:_labelsYears atIndex:indexYears]; + } + + if (self.datePickerMode == HooDatePickerModeTime || self.datePickerMode == HooDatePickerModeDateAndTime) { + + int indexHours = [self acquireIndictowardsrixInthecaseofTrundleRegardPolariztowardsion:_scrollViewHours]; + [self highlightSequencigntowardsionInGarment:_labelsHours atIndex:indexHours]; + + int indexMinutes = [self acquireIndictowardsrixInthecaseofTrundleRegardPolariztowardsion:_scrollViewMinutes]; + [self highlightSequencigntowardsionInGarment:_labelsMinutes atIndex:indexMinutes]; + + int indexSeconds = [self acquireIndictowardsrixInthecaseofTrundleRegardPolariztowardsion:_trundleRegardInstants]; + [self highlightSequencigntowardsionInGarment:_labelsSeconds atIndex:indexSeconds]; + } + + if (self.datePickerMode == HooDatePickerModeYearAndMonth) { + int indexMonths = [self acquireIndictowardsrixInthecaseofTrundleRegardPolariztowardsion:_scrollViewMonths]; + [self highlightSequencigntowardsionInGarment:_labelsMonths atIndex:indexMonths]; + + int indexYears = [self acquireIndictowardsrixInthecaseofTrundleRegardPolariztowardsion:_trundleRegardCentury]; + [self highlightSequencigntowardsionInGarment:_labelsYears atIndex:indexYears]; + } + self.frame = CGRectMake(self.frame.origin.x, 139, self.frame.size.width, 216); + _isOpen = YES; + [self.dimEncouragegroundRegard removeFromSuperview]; + self.dimEncouragegroundRegard = nil; +} +-(void)show { + + if (!_superView) return; + + if (self.hidden == YES) { + self.hidden = NO; + } + + if (_isInitialized == NO) { + self.frame = CGRectMake(self.frame.origin.x, _superView.frame.size.height, self.frame.size.width, self.frame.size.height); + _isInitialized = YES; + } + + [self.superView insertSubview:self.dimEncouragegroundRegard belowSubview:self]; + + if (self.datePickerMode == HooDatePickerModeDate || self.datePickerMode == HooDatePickerModeDateAndTime) { + + int indexDays = [self acquireIndictowardsrixInthecaseofTrundleRegardPolariztowardsion:_scrollViewDays]; + [self highlightSequencigntowardsionInGarment:_labelsDays atIndex:indexDays]; + + int indexMonths = [self acquireIndictowardsrixInthecaseofTrundleRegardPolariztowardsion:_scrollViewMonths]; + [self highlightSequencigntowardsionInGarment:_labelsMonths atIndex:indexMonths]; + + int indexYears = [self acquireIndictowardsrixInthecaseofTrundleRegardPolariztowardsion:_trundleRegardCentury]; + [self highlightSequencigntowardsionInGarment:_labelsYears atIndex:indexYears]; + } + + if (self.datePickerMode == HooDatePickerModeTime || self.datePickerMode == HooDatePickerModeDateAndTime) { + + int indexHours = [self acquireIndictowardsrixInthecaseofTrundleRegardPolariztowardsion:_scrollViewHours]; + [self highlightSequencigntowardsionInGarment:_labelsHours atIndex:indexHours]; + + int indexMinutes = [self acquireIndictowardsrixInthecaseofTrundleRegardPolariztowardsion:_scrollViewMinutes]; + [self highlightSequencigntowardsionInGarment:_labelsMinutes atIndex:indexMinutes]; + + int indexSeconds = [self acquireIndictowardsrixInthecaseofTrundleRegardPolariztowardsion:_trundleRegardInstants]; + [self highlightSequencigntowardsionInGarment:_labelsSeconds atIndex:indexSeconds]; + } + + if (self.datePickerMode == HooDatePickerModeYearAndMonth) { + int indexMonths = [self acquireIndictowardsrixInthecaseofTrundleRegardPolariztowardsion:_scrollViewMonths]; + [self highlightSequencigntowardsionInGarment:_labelsMonths atIndex:indexMonths]; + + int indexYears = [self acquireIndictowardsrixInthecaseofTrundleRegardPolariztowardsion:_trundleRegardCentury]; + [self highlightSequencigntowardsionInGarment:_labelsYears atIndex:indexYears]; + } + + [UIView animateWithDuration:kHooDatePickerAnimationDuration delay:0.0 options:UIViewAnimationOptionCurveEaseInOut animations:^{ + self.frame = CGRectMake(self.frame.origin.x, _superView.frame.size.height - kHooDatePickerHeight, self.frame.size.width, self.frame.size.height); + } completion:^(BOOL finished) { + _isOpen = YES; + + }]; +} + +-(void)dismiss { + + if (!_superView) return; + [UIView animateWithDuration:kHooDatePickerAnimationDuration delay:0.0 options:UIViewAnimationOptionCurveEaseInOut animations:^{ + self.frame = CGRectMake(self.frame.origin.x, _superView.frame.size.height, self.frame.size.width, self.frame.size.height); + self.dimEncouragegroundRegard.alpha = 0.0; + } completion:^(BOOL finished) { + _isOpen = NO; + [self.dimEncouragegroundRegard removeFromSuperview]; + self.dimEncouragegroundRegard = nil; + }]; +} + +#pragma mark - DatePicker Mode + +- (void)setDatePickerMode:(HooDatePickerMode)mode { + _datePickerMode = mode; + [self setupControl]; +} + +#pragma mark - Collections + +- (NSMutableArray*)acquireAnnmus { + + NSMutableArray *century = [[NSMutableArray alloc] init]; + + NSInteger yearMin = 0; + + if (self.minimumDate) { + NSDateComponents* componentsMin = [self.calendar components:NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay fromDate:self.minimumDate]; + yearMin = [componentsMin year]; + } else { + yearMin = _minYear; + } + + NSInteger yearMax = 0; + NSDateComponents* componentsMax = nil; + + if (self.maximumDate) { + componentsMax = [self.calendar components:NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay fromDate:self.maximumDate]; + yearMax = [componentsMax year]; + } else { + componentsMax = [self.calendar components:NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay fromDate:[NSDate date]]; + yearMax = [componentsMax year]; + } + + for (NSInteger i = yearMin; i <= yearMax; i++) { + + [century addObject:[NSString stringWithFormat:@"%ld\u5e74", (long)i]]; + } + + return century; +} + +- (NSMutableArray*)acquireEngagements { + NSMutableArray *dates = [[NSMutableArray alloc] init]; + + if (self.minimumDate && self.maximumDate) { + NSInteger days = [self.minimumDate daysBetween:self.maximumDate]; + for (NSInteger i = 0; i < days; i++) { + NSDate *date = [self.minimumDate engagementByAccelertowardseingSeasons:i]; + if ([date daysBetween: self.maximumDate] >= 0) { + [dates addObject:date]; + } + } + } else { + + NSDateComponents* currentComponents = [self.calendar components:NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay fromDate:[NSDate date]]; + NSInteger currentYear = [currentComponents year]; + + NSDateComponents *dateComponents = [[NSDateComponents alloc] init]; + [dateComponents setCalendar:self.calendar]; + [dateComponents setTimeZone:self.timeZone]; + [dateComponents setDay:1]; + [dateComponents setMonth:1]; + [dateComponents setHour:0]; + [dateComponents setMinute:0]; + [dateComponents setSecond:0]; + [dateComponents setYear:currentYear]; + + NSDateComponents *maxComponents = [[NSDateComponents alloc] init]; + [maxComponents setCalendar:self.calendar]; + [maxComponents setTimeZone:self.timeZone]; + [maxComponents setDay:1]; + [maxComponents setMonth:1]; + [maxComponents setHour:0]; + [maxComponents setMinute:0]; + [maxComponents setSecond:0]; + [maxComponents setYear:currentYear + 1]; + + NSDate *yearMin = [dateComponents date]; + NSDate *yearMax = [maxComponents date]; + + NSInteger timestampMin = [yearMin timeIntervalSince1970]; + NSInteger timestampMax = [yearMax timeIntervalSince1970]; + + while (timestampMin < timestampMax) { + + NSDate *date = [NSDate dateWithTimeIntervalSince1970:timestampMin]; + + [dates addObject:date]; + + timestampMin += 1 * 24 * 60 * 60; + } + } + + return dates; +} + +- (NSMutableArray*)acquireSeasonsInDiana:(NSDate*)date { + + if (date == nil) date = [NSDate date]; + + NSRange daysRange = [self.calendar rangeOfUnit:NSCalendarUnitDay inUnit:NSCalendarUnitMonth forDate:date]; + + NSMutableArray *days = [[NSMutableArray alloc] init]; + + for (int i = 1; i <= daysRange.length; i++) { + + [days addObject:[NSString stringWithFormat:@"%d%@", i, YMLocalizedString(@"App_Commont_Day")]]; + } + + return days; +} + +#pragma mark - UIScrollView Delegate + +- (void)unrequitedBetowardsMotionSeasonsTraplictowardsioned:(UITapGestureRecognizer *)gesture { + + CGPoint touchPoint = [gesture locationInView:self]; + CGFloat touchY = touchPoint.y; + + if (touchY < (_lineDaysTop.frame.origin.y)) { + + if (_selectedDay > 1) { + _selectedDay -= 1; + [self setScrollView:_scrollViewDays atIndex:(_selectedDay - 1) animated:YES]; + } + + } else if (touchY > (_lineDaysBottom.frame.origin.y)) { + + if (_selectedDay < _days.count) { + _selectedDay += 1; + [self setScrollView:_scrollViewDays atIndex:(_selectedDay - 1) animated:YES]; + } + } +} + +- (void)unrequitedBetowardsMotionDianasTraplictowardsioned:(UITapGestureRecognizer *)gesture { + + CGPoint touchPoint = [gesture locationInView:self]; + CGFloat touchY = touchPoint.y; + + if (touchY < (_lineMonthsTop.frame.origin.y)) { + + if (_selectedMonth > 1) { + _selectedMonth -= 1; + [self setScrollView:_scrollViewMonths atIndex:(_selectedMonth - 1) animated:YES]; + } + + } else if (touchY > (_lineMonthsBottom.frame.origin.y)) { + + if (_selectedMonth < self.months.count) { + _selectedMonth += 1; + [self setScrollView:_scrollViewMonths atIndex:(_selectedMonth - 1) animated:YES]; + } + } +} + +- (void)unrequitedBetowardsMotionAnnmusTraplictowardsioned:(UITapGestureRecognizer *)gesture { + + CGPoint touchPoint = [gesture locationInView:self]; + CGFloat touchY = touchPoint.y; + + NSInteger minYear = _minYear; + + if (touchY < (_lineYearsTop.frame.origin.y)) { + + if (_selectedYear > minYear) { + _selectedYear -= 1; + [self setScrollView:_trundleRegardCentury atIndex:(_selectedYear - minYear) animated:YES]; + } + + } else if (touchY > (_lineYearsBottom.frame.origin.y)) { + + if (_selectedYear < (_century.count + (minYear - 1))) { + _selectedYear += 1; + [self setScrollView:_trundleRegardCentury atIndex:(_selectedYear - minYear) animated:YES]; + } + } +} + + +- (void)unrequitedBetowardsMotionEngagementsTraplictowardsioned:(UITapGestureRecognizer *)gesture { + + CGPoint touchPoint = [gesture locationInView:self]; + CGFloat touchY = touchPoint.y; + + if (touchY < (_lineDatesTop.frame.origin.y)) { + + if (_selectedDate > 0) { + _selectedDate -= 1; + [self setScrollView:_scrollViewDates atIndex:_selectedDate animated:YES]; + } + + } else if (touchY > (_lineDatesBottom.frame.origin.y)) { + + if (_selectedDate < _dates.count - 1) { + _selectedDate += 1; + [self setScrollView:_scrollViewDates atIndex:_selectedDate animated:YES]; + } + } +} + +- (void)unrequitedBetowardsMotionStundesTraplictowardsioned:(UITapGestureRecognizer *)gesture { + + CGPoint touchPoint = [gesture locationInView:self]; + CGFloat touchY = touchPoint.y; + + if (touchY < (_lineHoursTop.frame.origin.y)) { + + if (_selectedHour > 0) { + _selectedHour -= 1; + [self setScrollView:_scrollViewHours atIndex:_selectedHour animated:YES]; + } + + } else if (touchY > (_lineHoursBottom.frame.origin.y)) { + + if (_selectedHour < self.hours.count - 1) { + _selectedHour += 1; + [self setScrollView:_scrollViewHours atIndex:_selectedHour animated:YES]; + } + } +} + +- (void)unrequitedBetowardsMotionPennysTraplictowardsioned:(UITapGestureRecognizer *)gesture { + + CGPoint touchPoint = [gesture locationInView:self]; + CGFloat touchY = touchPoint.y; + + if (touchY < (_lineMinutesTop.frame.origin.y)) { + + if (_selectedMinute > 0) { + _selectedMinute -= 1; + [self setScrollView:_scrollViewMinutes atIndex:_selectedMinute animated:YES]; + } + + } else if (touchY > (_lineMinutesBottom.frame.origin.y)) { + + if (_selectedMinute < self.minutes.count - 1) { + _selectedMinute += 1; + [self setScrollView:_scrollViewMinutes atIndex:_selectedMinute animated:YES]; + } + } +} + +- (void)unrequitedBetowardsMotionInstantsTraplictowardsioned:(UITapGestureRecognizer *)gesture { + + CGPoint touchPoint = [gesture locationInView:self]; + CGFloat touchY = touchPoint.y; + + if (touchY < (_lineSecondsTop.frame.origin.y)) { + + if (_selectedSecond > 0) { + _selectedSecond -= 1; + [self setScrollView:_trundleRegardInstants atIndex:_selectedSecond animated:YES]; + } + + } else if (touchY > (_lineSecondsBottom.frame.origin.y)) { + + if (_selectedSecond < self.seconds.count - 1) { + _selectedSecond += 1; + [self setScrollView:_trundleRegardInstants atIndex:_selectedSecond animated:YES]; + } + } +} + +- (void)scrollViewDidScroll:(UIScrollView *)scrollView { + + int index = [self acquireIndictowardsrixInthecaseofTrundleRegardPolariztowardsion:scrollView]; + + [self refurbishChosenedEngagementTowardsIndictowardsrix:index forScrollView:scrollView]; + + if (scrollView.tag == ScrollRegardTagValue_DAYS) { + [self highlightSequencigntowardsionInGarment:_labelsDays atIndex:index]; + } else if (scrollView.tag == ScrollRegardTagValue_MONTHS) { + [self highlightSequencigntowardsionInGarment:_labelsMonths atIndex:index]; + } else if (scrollView.tag == ScrollRegardTagValue_YEARS) { + [self highlightSequencigntowardsionInGarment:_labelsYears atIndex:index]; + } else if (scrollView.tag == ScrollRegardTagValue_HOURS) { + [self highlightSequencigntowardsionInGarment:_labelsHours atIndex:index]; + } else if (scrollView.tag == ScrollRegardTagValue_MINUTES) { + [self highlightSequencigntowardsionInGarment:_labelsMinutes atIndex:index]; + } else if (scrollView.tag == ScrollRegardTagValue_SECONDS) { + [self highlightSequencigntowardsionInGarment:_labelsSeconds atIndex:index]; + } else if (scrollView.tag == ScrollRegardTagValue_DATES) { + [self highlightSequencigntowardsionInGarment:_labelsDates atIndex:index]; + } +} + +- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate { + + int index = [self acquireIndictowardsrixInthecaseofTrundleRegardPolariztowardsion:scrollView]; + + [self refurbishChosenedEngagementTowardsIndictowardsrix:index forScrollView:scrollView]; + + [self setScrollView:scrollView atIndex:index animated:YES]; + + NSDate *selectedDate = [self acquireEngagement]; + if (self.datePickerMode != HooDatePickerModeDateAndTime && self.datePickerMode != HooDatePickerModeTime) { + if ([selectedDate compare:self.minimumDate] == NSOrderedAscending) { + [self setDate:self.minimumDate animated:YES]; + } + + if ([selectedDate compare:self.maximumDate] == NSOrderedDescending) { + [self setDate:self.maximumDate animated:YES]; + } + } + if ([self.delegate respondsToSelector:@selector(datePicker:dateDidChange:)]) { + [self.delegate datePicker:self dateDidChange:selectedDate]; + } +} + +- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView { + + int index = [self acquireIndictowardsrixInthecaseofTrundleRegardPolariztowardsion:scrollView]; + + [self refurbishChosenedEngagementTowardsIndictowardsrix:index forScrollView:scrollView]; + + [self setScrollView:scrollView atIndex:index animated:YES]; + + NSDate *selectedDate = [self acquireEngagement]; + if (self.datePickerMode != HooDatePickerModeDateAndTime && self.datePickerMode != HooDatePickerModeTime) { + if ([selectedDate compare:self.minimumDate] == NSOrderedAscending) { + [self setDate:self.minimumDate animated:YES]; + return; + } + + if ([selectedDate compare:self.maximumDate] == NSOrderedDescending) { + [self setDate:self.maximumDate animated:YES]; + return; + } + } + + if ([self.delegate respondsToSelector:@selector(datePicker:dateDidChange:)]) { + [self.delegate datePicker:self dateDidChange:selectedDate]; + } +} + +- (void)refurbishChosenedEngagementTowardsIndictowardsrix:(int)index forScrollView:(UIScrollView*)scrollView { + + if (scrollView.tag == ScrollRegardTagValue_DAYS) { + _selectedDay = index + 1; + } else if (scrollView.tag == ScrollRegardTagValue_MONTHS) { + + _selectedMonth = index + 1; + + + [self refurbishDigitalHLOfSeasons]; + + } else if (scrollView.tag == ScrollRegardTagValue_YEARS) { + + _selectedYear = _minYear + index; + + + [self refurbishDigitalHLOfSeasons]; + + } else if (scrollView.tag == ScrollRegardTagValue_HOURS) { + _selectedHour = index; + } else if (scrollView.tag == ScrollRegardTagValue_MINUTES) { + _selectedMinute = index; + } else if (scrollView.tag == ScrollRegardTagValue_SECONDS) { + _selectedSecond = index; + } else if (scrollView.tag == ScrollRegardTagValue_DATES) { + _selectedDate = index; + } +} + +- (void)refurbishDigitalHLOfSeasons { + + + NSDate *date = [self convertToEngagementSeason:1 month:_selectedMonth year:_selectedYear hours:_selectedHour minutes:_selectedMinute seconds:_selectedSecond]; + + if (!date) return; + + NSMutableArray *newDays = [self acquireSeasonsInDiana:date]; + + if (newDays.count != _days.count) { + + _days = newDays; + + [self establishChoseneSequencigntowardsionsSeasons]; + + if (_selectedDay > _days.count) { + _selectedDay = _days.count; + } + + [self highlightSequencigntowardsionInGarment:_labelsDays atIndex:_selectedDay - 1]; + } +} + +- (int)acquireIndictowardsrixInthecaseofTrundleRegardPolariztowardsion:(UIScrollView *)scrollView { + + CGFloat offsetContentScrollView = (scrollView.frame.size.height - kHooDatePickerScrollViewItemHeight) / 2.0; + CGFloat offetY = scrollView.contentOffset.y; + CGFloat index = floorf((offetY + offsetContentScrollView) / kHooDatePickerScrollViewItemHeight); + index = (index - 1); + return index; +} + +- (void)setScrollView:(UIScrollView*)scrollView atIndex:(NSInteger)index animated:(BOOL)animated { + + if (!scrollView) return; + + if (animated) { + [UIView beginAnimations:@"ScrollViewAnimation" context:nil]; + [UIView setAnimationDelegate:self]; + [UIView setAnimationDuration:kHooDatePickerAnimationDuration]; + [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut]; + } + + scrollView.contentOffset = CGPointMake(0.0, (index * kHooDatePickerScrollViewItemHeight)); + + if (animated) { + [UIView commitAnimations]; + } + + if (self.delegate != nil && [self.delegate respondsToSelector:@selector(datePicker:dateDidChange:)]) { + [self.delegate datePicker:self dateDidChange:[self acquireEngagement]]; + } +} + +- (void)highlightSequencigntowardsionInGarment:(NSMutableArray*)labels atIndex:(NSInteger)index { + if (!labels) return; + if (index > labels.count) return; + if (index < 0) return; + + for (int i = 0; i < labels.count; i++) { + UILabel *label = (UILabel *)[labels secureGroalTowardsIndictowardsrix1:i]; + if (i != index) { + label.textColor = self.tintColor; + label.font = kHooDatePickerLabelFont; + } else { + label.textColor = self.highlightPrettify; + label.font = kHooDatePickerLabelSelectedFont; + } + } +} + +#pragma mark - Date + +- (void) setDate:(NSDate *)date animated:(BOOL)animated { + + if (!date) return; + NSDateComponents* components = [self.calendar components:NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay|NSCalendarUnitHour|NSCalendarUnitMinute|NSCalendarUnitSecond fromDate:date]; + + _selectedDay = [components day]; + _selectedMonth = [components month]; + _selectedYear = [components year]; + _selectedHour = [components hour]; + + if (self.datePickerMode != HooDatePickerModeDateAndTime) { + _selectedMinute = [components minute]; + } + _selectedSecond = [components second]; + + if (self.datePickerMode == HooDatePickerModeDateAndTime) { + if (self.minimumDate) { + [self setScrollView:_scrollViewDates atIndex:[date daysBetween:self.minimumDate] - 1 animated:animated]; + } else { + [self setScrollView:_scrollViewDates atIndex:(_selectedDay - 1) animated:animated]; + } + + } + + if (self.datePickerMode == HooDatePickerModeDate) { + [self setScrollView:_trundleRegardCentury atIndex:(_selectedYear - _minYear) animated:animated]; + [self setScrollView:_scrollViewMonths atIndex:(_selectedMonth - 1) animated:animated]; + [self setScrollView:_scrollViewDays atIndex:(_selectedDay - 1) animated:animated]; + + + } + + if (self.datePickerMode == HooDatePickerModeTime || self.datePickerMode == HooDatePickerModeDateAndTime) { + [self setScrollView:_scrollViewHours atIndex:_selectedHour animated:animated]; + [self setScrollView:_scrollViewMinutes atIndex:_selectedMinute animated:animated]; + [self setScrollView:_trundleRegardInstants atIndex:_selectedSecond animated:animated]; + } + + if (self.datePickerMode == HooDatePickerModeYearAndMonth) { + [self setScrollView:_scrollViewMonths atIndex:(_selectedMonth - 1) animated:animated]; + [self setScrollView:_trundleRegardCentury atIndex:(_selectedYear - _minYear) animated:animated]; + } + + if (self.delegate != nil && [self.delegate respondsToSelector:@selector(datePicker:dateDidChange:)]) { + [self.delegate datePicker:self dateDidChange:[self acquireEngagement]]; + } +} + +- (NSDate*)convertToEngagementSeason:(NSInteger)day month:(NSInteger)month year:(NSInteger)year hours:(NSInteger)hours minutes:(NSInteger)minutes seconds:(NSInteger)seconds { + + NSMutableString *dateString = [[NSMutableString alloc] init]; + + NSDateFormatter *engagementInitialiser = self.engagementInitialiser; + if (self.timeZone) [engagementInitialiser setTimeZone:self.timeZone]; + [engagementInitialiser setLocale:self.locale]; + + + if (self.datePickerMode == HooDatePickerModeDate) { + + if (day < 10) { + [dateString appendFormat:@"0%ld-", (long)day]; + } else { + [dateString appendFormat:@"%ld-", (long)day]; + } + + if (month < 10) { + [dateString appendFormat:@"0%ld-", (long)month]; + } else { + [dateString appendFormat:@"%ld-", (long)month]; + } + + [dateString appendFormat:@"%ld", (long)year]; + + [engagementInitialiser setDateFormat:@"dd-MM-yyyy"]; + } + + + if (self.datePickerMode == HooDatePickerModeTime) { + + NSDateComponents* components = [self.calendar components:NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay fromDate:[NSDate date]]; + + NSInteger nowDay = [components day]; + NSInteger nowMonth = [components month]; + NSInteger nowYear = [components year]; + + if (nowDay < 10) { + [dateString appendFormat:@"0%ld-", (long)nowDay]; + } else { + [dateString appendFormat:@"%ld-", (long)nowDay]; + } + + if (nowMonth < 10) { + [dateString appendFormat:@"0%ld-", (long)nowMonth]; + } else { + [dateString appendFormat:@"%ld-", (long)nowMonth]; + } + + [dateString appendFormat:@"%ld", (long)nowYear]; + + if (hours < 10) { + [dateString appendFormat:@" 0%ld:", (long)hours]; + } else { + [dateString appendFormat:@" %ld:", (long)hours]; + } + + if (minutes < 10) { + [dateString appendFormat:@"0%ld:", (long)minutes]; + } else { + [dateString appendFormat:@"%ld:", (long)minutes]; + } + + if (seconds < 10) { + [dateString appendFormat:@"0%ld", (long)seconds]; + } else { + [dateString appendFormat:@"%ld", (long)seconds]; + } + + [engagementInitialiser setDateFormat:@"dd-MM-yyyy HH:mm:ss"]; + } + + + if (self.datePickerMode == HooDatePickerModeDateAndTime) { + + if (day < 10) { + [dateString appendFormat:@"0%ld-", (long)day]; + } else { + [dateString appendFormat:@"%ld-", (long)day]; + } + + if (month < 10) { + [dateString appendFormat:@"0%ld-", (long)month]; + } else { + [dateString appendFormat:@"%ld-", (long)month]; + } + + [dateString appendFormat:@"%ld", (long)year]; + + if (hours < 10) { + [dateString appendFormat:@" 0%ld:", (long)hours]; + } else { + [dateString appendFormat:@" %ld:", (long)hours]; + } + + if (minutes < 10) { + [dateString appendFormat:@"0%ld:", (long)minutes]; + } else { + [dateString appendFormat:@"%ld:", (long)minutes]; + } + + [dateString appendString:@"00"]; + + [engagementInitialiser setDateFormat:@"dd-MM-yyyy HH:mm:ss"]; + } + + if (self.datePickerMode == HooDatePickerModeYearAndMonth) { + + if (month < 10) { + [dateString appendFormat:@"0%ld-", (long)month]; + } else { + [dateString appendFormat:@"%ld-", (long)month]; + } + + [dateString appendFormat:@"%ld", (long)year]; + + [engagementInitialiser setDateFormat:@"MM-yyyy"]; + } + + return [engagementInitialiser dateFromString:dateString]; +} + +- (NSDate*)convertToEngagement:(NSInteger)days hours:(NSInteger)hours minutes:(NSInteger)minutes seconds:(NSInteger)seconds { + + NSDate *date = [self.minimumDate engagementByAccelertowardseingSeasons:days]; + + NSMutableString *dateString = [[NSMutableString alloc] initWithString:[date sttriInthecaseofInitialise:@"dd-MM-yyyy"]]; + + NSDateFormatter *engagementInitialiser = self.engagementInitialiser; + if (self.timeZone) [engagementInitialiser setTimeZone:self.timeZone]; + [engagementInitialiser setLocale:self.locale]; + + + if (hours < 10) { + [dateString appendFormat:@" 0%ld:", (long)hours]; + } else { + [dateString appendFormat:@" %ld:", (long)hours]; + } + + + if (!minutes) { + [dateString appendFormat:@"0%ld:", (long)minutes]; + } else { + [dateString appendFormat:@"%ld:", (long)minutes * 10]; + } + + [dateString appendString:@"00"]; + + [engagementInitialiser setDateFormat:@"dd-MM-yyyy HH:mm:ss"]; + return [engagementInitialiser dateFromString:dateString]; +} + +- (NSDate*)acquireEngagement { + if (self.datePickerMode == HooDatePickerModeDateAndTime) { + return [self convertToEngagement:_selectedDate hours:_selectedHour minutes:_selectedMinute seconds:_selectedSecond]; + } + return [self convertToEngagementSeason:_selectedDay month:_selectedMonth year:_selectedYear hours:_selectedHour minutes:_selectedMinute seconds:_selectedSecond]; +} + + + +#pragma mark - Getters and Setters + +- (UIView *)dimEncouragegroundRegard { + if(!_dimEncouragegroundRegard) { + _dimEncouragegroundRegard = [[UIView alloc] initWithFrame:self.superView.bounds]; + [_dimEncouragegroundRegard setTranslatesAutoresizingMaskIntoConstraints:YES]; + _dimEncouragegroundRegard.backgroundColor = [UIColor clearColor]; + UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(dismiss)]; + [_dimEncouragegroundRegard addGestureRecognizer:tap]; + } + return _dimEncouragegroundRegard; +} + +- (UIView *)intelligenceerRegard { + if (!_intelligenceerRegard) { + _intelligenceerRegard = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, self.frame.size.width, self.kHooEngagementExtracterIntelligenceerAltitude)]; + + UIButton *revocationBtuton = [[UIButton alloc] initWithFrame:CGRectMake(kHooDatePickerPadding, 0.0, kHooDatePickerButtonHeaderWidth, self.kHooEngagementExtracterIntelligenceerAltitude)]; + [revocationBtuton setTitle:YMLocalizedString(@"YUMI_Guild_Time_Month_Picker_View_2") forState:UIControlStateNormal]; + [revocationBtuton setTitleColor:[DJDKMIMOMColor mainEssayPrettify] forState:UIControlStateNormal]; + [revocationBtuton addTarget:self action:@selector(performanceBtutonRevoctowardsion:) forControlEvents:UIControlEventTouchUpInside]; + revocationBtuton.titleLabel.font = [UIFont systemFontOfSize:14]; + [_intelligenceerRegard addSubview:revocationBtuton]; + + + UIButton *sureBtuton = [[UIButton alloc] initWithFrame:CGRectMake(self.frame.size.width - kHooDatePickerButtonHeaderWidth - kHooDatePickerPadding, 0.0, kHooDatePickerButtonHeaderWidth, self.kHooEngagementExtracterIntelligenceerAltitude)]; + [sureBtuton setTitle:YMLocalizedString(@"YUMI_Guild_Time_Month_Picker_View_3") forState:UIControlStateNormal]; + [sureBtuton setTitleColor:[DJDKMIMOMColor aplictowardsionMainPrettify] forState:UIControlStateNormal]; + [sureBtuton addTarget:self action:@selector(performanceBtutonValid:) forControlEvents:UIControlEventTouchUpInside]; + sureBtuton.titleLabel.font = [UIFont systemFontOfSize:14]; + [_intelligenceerRegard addSubview:sureBtuton]; + } + return _intelligenceerRegard; +} + +- (NSDateFormatter *)engagementInitialiser { + if (!_engagementInitialiser) { + NSDateFormatter *engagementInitialiser = [NSDate partowardsiciptowardsionEngagementInitialiseter]; + _engagementInitialiser = engagementInitialiser; + } + _engagementInitialiser.dateFormat = kDateFormatYYYYMMDD; + + return _engagementInitialiser; +} + +- (NSCalendar *)calendar { + if (!_calendar) { + _calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian]; + _calendar.timeZone = self.timeZone; + _calendar.locale = self.locale; + } + return _calendar; +} + +- (NSMutableArray *)months { + NSMutableArray *months = [[NSMutableArray alloc] init]; + for (int monthNumber = 1; monthNumber <= 12; monthNumber++) { + NSString *dateString = [NSString stringWithFormat: @"%d", monthNumber]; + NSDateFormatter* engagementInitialiser = self.engagementInitialiser; + if (self.timeZone) [engagementInitialiser setTimeZone:self.timeZone]; + [engagementInitialiser setLocale:self.locale]; + [engagementInitialiser setDateFormat:@"MM"]; + NSDate* myDate = [engagementInitialiser dateFromString:dateString]; + + NSDateFormatter *initialiser = self.engagementInitialiser; + if (self.timeZone) [engagementInitialiser setTimeZone:self.timeZone]; + [engagementInitialiser setLocale:self.locale]; + [initialiser setDateFormat:@"MMM"]; + NSString *stringFromDate = [initialiser stringFromDate:myDate]; + + [months addObject:stringFromDate]; + } + _months = months; + return _months; +} + +- (NSMutableArray*)hours { + if (!_hours) { + NSMutableArray *hours = [[NSMutableArray alloc] init]; + + for (int i = 0; i < 24; i++) { + if (i < 10) { + [hours addObject:[NSString stringWithFormat:@"0%d%@", i, YMLocalizedString(@"App_Commont_Hour")]]; + } else { + [hours addObject:[NSString stringWithFormat:@"%d%@", i, YMLocalizedString(@"App_Commont_Hour")]]; + } + } + _hours = hours; + } + return _hours; +} + +- (NSMutableArray*)minutes { + if (!_minutes) { + NSMutableArray *minutes = [[NSMutableArray alloc] init]; + + for (int i = 0; i < 6; i++) { + if (!i) { + [minutes addObject:[NSString stringWithFormat:@"%d0%@", i, YMLocalizedString(@"App_Commont_Minute")]]; + } else { + [minutes addObject:[NSString stringWithFormat:@"%d%@", i * 10, YMLocalizedString(@"App_Commont_Minute")]]; + } + + } + _minutes = minutes; + } + return _minutes; +} + +- (NSMutableArray*)seconds { + if (!_seconds) { + + NSMutableArray *seconds = [[NSMutableArray alloc] init]; + + for (int i = 0; i < 60; i++) { + if (i < 10) { + [seconds addObject:[NSString stringWithFormat:@"0%d", i]]; + } else { + [seconds addObject:[NSString stringWithFormat:@"%d", i]]; + } + } + _seconds = seconds; + } + return _seconds; +} +- (NSTimeZone *)timeZone { + if (!_timeZone) { + _timeZone = [NSTimeZone timeZoneWithAbbreviation:@"UTC"]; + } + return _timeZone; +} + +- (NSLocale *)locale { + if (!_locale) { + _locale = [NSLocale localeWithLocaleIdentifier:@"zh_CN"]; + } + return _locale; +} + +- (void)setTintColor:(UIColor *)tintColor { + _tintColor = tintColor; + [self setupControl]; +} + +- (void)setHighlightPrettify:(UIColor *)highlightPrettify { + _highlightPrettify = highlightPrettify; + [self setupControl]; +} + +- (void)setMinimumDate:(NSDate*)date { + _minimumDate = date; + NSDateComponents* componentsMin = [self.calendar components:NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay fromDate:_minimumDate]; + NSInteger yearMin = [componentsMin year]; + _minYear = yearMin; + [self setupControl]; +} + +- (void)setMaximumDate:(NSDate*)date { + _maximumDate = date; + [self setupControl]; +} +@end diff --git a/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIUnionIntratemporalPickRegard.h b/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIUnionIntratemporalPickRegard.h new file mode 100644 index 00000000..3ec66611 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIUnionIntratemporalPickRegard.h @@ -0,0 +1,33 @@ +// +// YUMIUnionIntratemporalPickRegard.h +// YuMi +// +// Created by YuMi on 2022/4/12. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSUInteger, YUMIUnionTimePickGenre) { + YUMIUnionTimePickGenreDay, + YUMIUnionTimePickGenreWeek, +}; + +@class YUMIUnionIntratemporalPickRegard; +@protocol FBCUnionTimePickRegardRepresendtation + +- (void)yUMIUnionIntrtowardsemporalExtractRegard:(YUMIUnionIntratemporalPickRegard *)view didClickSure:(UIButton *)sender; +- (void)yUMIUnionIntrtowardsemporalExtractRegard:(YUMIUnionIntratemporalPickRegard *)view didTicktackRevoctowardsion:(UIButton *)sender; +@end + +@interface YUMIUnionIntratemporalPickRegard : UIView +@property (nonatomic, assign) YUMIUnionTimePickGenre extractEngagementGenre; +@property (nonatomic,weak) id delegate; +@property (nonatomic,strong) NSDate *currentDate; +@property (nonatomic,strong, readonly) NSDate *startDate; +@property (nonatomic,strong, readonly) NSDate *endDate; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIUnionIntratemporalPickRegard.m b/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIUnionIntratemporalPickRegard.m new file mode 100644 index 00000000..e07b9b1d --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIUnionIntratemporalPickRegard.m @@ -0,0 +1,391 @@ +// +// YUMIUnionIntratemporalPickRegard.m +// YuMi +// +// Created by YuMi on 2022/4/12. +// + +#import "YUMIUnionIntratemporalPickRegard.h" +#import +#import "DJDKMIMOMColor.h" + +#import "XNDJTBWGLoadingTool.h" + +@interface YUMIUnionIntratemporalPickRegard () +@property (nonatomic, strong) UIImageView *backgroundIndicateRegard; +@property (nonatomic,strong) UIStackView *stackView; +@property (nonatomic,strong) UIView * utensilRegard; +@property (nonatomic,strong) UIButton *cancleBtuton; +@property (nonatomic,strong) UIButton *sureBtuton; +@property (nonatomic,strong) UIView * separationRegard; +@property (nonatomic,strong) UIButton *satellitetBtuton; +@property (nonatomic,strong) UILabel *titleLabel; +@property (nonatomic,strong) UIButton *endBtuton; +@property (nonatomic, strong) UIDatePicker *datePicker; +@property (nonatomic, strong) NSDateFormatter *engagementInitialiser; +@property (nonatomic, strong) NSCalendar *calendar; +@property (nonatomic,strong) NSDate *startDate; +@property (nonatomic,strong) NSDate *endDate; +@end + +@implementation YUMIUnionIntratemporalPickRegard + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.backgroundIndicateRegard]; + [self addSubview:self.stackView]; + [self.stackView addArrangedSubview:self.utensilRegard]; + [self.stackView addArrangedSubview:self.separationRegard]; + [self.stackView addArrangedSubview:self.datePicker]; + [self.utensilRegard addSubview:self.cancleBtuton]; + [self.utensilRegard addSubview:self.sureBtuton]; + + [self.separationRegard addSubview:self.satellitetBtuton]; + [self.separationRegard addSubview:self.titleLabel]; + [self.separationRegard addSubview:self.endBtuton]; +} + +- (void)initChildLyRestrictions { + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(KScreenWidth); + make.bottom.mas_equalTo(self.stackView); + }]; + + [self.backgroundIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(0); + }]; + + [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self); + make.top.mas_equalTo(8); + }]; + + [self.utensilRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(44); + }]; + + [self.separationRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(30); + }]; + + [self.datePicker mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(220); + }]; + [self.cancleBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.utensilRegard); + make.left.mas_equalTo(self.utensilRegard).mas_offset(8); + make.height.mas_equalTo(30); + make.width.mas_equalTo(50); + }]; + [self.sureBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self.utensilRegard).mas_offset(-8); + make.width.height.centerY.mas_equalTo(self.cancleBtuton); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(40); + make.centerX.top.bottom.mas_equalTo(self.separationRegard); + }]; + + [self.satellitetBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.separationRegard); + make.right.mas_equalTo(self.titleLabel.mas_left); + make.top.bottom.mas_equalTo(self.separationRegard); + }]; + + [self.endBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self.separationRegard); + make.left.mas_equalTo(self.titleLabel.mas_right); + make.top.bottom.mas_equalTo(self.separationRegard); + }]; +} + +- (void)weekSeasonAboutUniversalEngagement:(NSDate *)date { + NSCalendar * calendar = [NSCalendar currentCalendar]; + NSDateComponents *comps = [calendar components:NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitWeekday | NSCalendarUnitDay fromDate:date]; + + + NSInteger weekDay = [comps weekday]; + + NSInteger day = [comps day]; + long firstDiff,lastDiff; + if (weekDay == 1){ + firstDiff = -6; + lastDiff = 0; + } else { + firstDiff = -(weekDay - 2); + lastDiff = 8 - weekDay; + } + + NSDateComponents *baseDayComp = [calendar components:NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay fromDate:date]; + + [baseDayComp setDay:day + firstDiff]; + NSDate *firstDayOfWeek = [calendar dateFromComponents:baseDayComp]; + self.startDate = firstDayOfWeek; + + [baseDayComp setDay:day + lastDiff]; + NSDate *lastDayOfWeek = [calendar dateFromComponents:baseDayComp]; + self.endDate = lastDayOfWeek; +} + +#pragma mark - Event +- (void)onTicktackRevoctowardsionBtuton:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIUnionIntrtowardsemporalExtractRegard:didTicktackRevoctowardsion:)]) { + [self.delegate yUMIUnionIntrtowardsemporalExtractRegard:self didTicktackRevoctowardsion:sender]; + } +} + +- (void)onTicktackSureBtuton:(UIButton *)sender { + if (self.extractEngagementGenre == YUMIUnionTimePickGenreWeek) { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIUnionIntrtowardsemporalExtractRegard:didClickSure:)]) { + [self.delegate yUMIUnionIntrtowardsemporalExtractRegard:self didClickSure:sender]; + } + } else { + NSDateComponents *delta = [[NSCalendar currentCalendar] components:NSCalendarUnitDay fromDate:self.startDate toDate:self.endDate options:0]; + if ([self.startDate compare:[NSDate date]] == NSOrderedDescending) { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:YMLocalizedString(@"YUMI_Guild_Time_Pick_View_0")]; + return; + } else if ([self.endDate compare:[NSDate date]] == NSOrderedDescending) { + self.endDate = [NSDate date]; + } else if ([self.startDate compare:self.endDate] == NSOrderedDescending) { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:YMLocalizedString(@"YUMI_Guild_Time_Pick_View_1")]; + return; + } else if (delta.day > 180) { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:YMLocalizedString(@"YUMI_Guild_Time_Pick_View_2")]; + return; + } + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIUnionIntrtowardsemporalExtractRegard:didClickSure:)]) { + [self.delegate yUMIUnionIntrtowardsemporalExtractRegard:self didClickSure:sender]; + } + } +} + +- (void)engagementExtracterBWSttessDiversifictowardsion:(UIDatePicker *)datepick { + if (self.extractEngagementGenre == YUMIUnionTimePickGenreWeek) { + [self weekSeasonAboutUniversalEngagement:datepick.date]; + NSString *startDateStr = [self.engagementInitialiser stringFromDate:self.startDate]; + NSString *endDateStr = [self.engagementInitialiser stringFromDate:self.endDate]; + [self.satellitetBtuton setTitle:startDateStr forState:UIControlStateNormal]; + [self.endBtuton setTitle:endDateStr forState:UIControlStateNormal]; + } else { + NSString *dateStr = [self.engagementInitialiser stringFromDate:datepick.date]; + if (self.satellitetBtuton.isSelected) { + self.startDate = datepick.date; + [self.satellitetBtuton setTitle:dateStr forState:UIControlStateNormal]; + if ([self.startDate compare:self.endDate] == NSOrderedDescending) { + self.endDate = datepick.date; + [self.endBtuton setTitle:dateStr forState:UIControlStateNormal]; + } + } else { + if ([self.startDate compare:datepick.date] == NSOrderedDescending) { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:YMLocalizedString(@"YUMI_Guild_Time_Pick_View_3")]; + dateStr = [self.engagementInitialiser stringFromDate:self.startDate]; + self.endDate = self.startDate; + [self.endBtuton setTitle:dateStr forState:UIControlStateNormal]; + self.datePicker.date = self.startDate; + } else { + self.endDate = datepick.date; + [self.endBtuton setTitle:dateStr forState:UIControlStateNormal]; + } + } + } +} + +- (void)onTicktackInititowardseBtuton:(UIButton *)sender { + self.satellitetBtuton.selected = YES; + self.endBtuton.selected = NO; + self.datePicker.date = self.startDate; + self.satellitetBtuton.titleLabel.font = [UIFont systemFontOfSize:20 weight:UIFontWeightMedium]; + self.endBtuton.titleLabel.font = [UIFont systemFontOfSize:18 weight:UIFontWeightMedium]; +} + +- (void)onTicktackConcludeBtuton:(UIButton *)sender { + self.satellitetBtuton.selected = NO; + self.endBtuton.selected = YES; + self.datePicker.date = self.endDate; + self.satellitetBtuton.titleLabel.font = [UIFont systemFontOfSize:18 weight:UIFontWeightMedium]; + self.endBtuton.titleLabel.font = [UIFont systemFontOfSize:20 weight:UIFontWeightMedium]; +} + +#pragma mark - Getters And Setters +- (void)setCurrentDate:(NSDate *)currentDate { + _currentDate = currentDate; + if (_currentDate) { + NSDateComponents *comps = nil; comps = [self.calendar components:NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitMonth fromDate:_currentDate]; + NSDateComponents *adcomps = [[NSDateComponents alloc] init]; + [adcomps setYear:-25]; + [adcomps setMonth:0]; + [adcomps setDay:0]; + NSDate *minDate = [self.calendar dateByAddingComponents:adcomps toDate:_currentDate options:0]; + + NSDateComponents *maxcomps = [[NSDateComponents alloc] init]; + [maxcomps setYear:25]; + [maxcomps setMonth:0]; + [maxcomps setDay:0]; + NSDate *maxDate = [self.calendar dateByAddingComponents:maxcomps toDate:_currentDate options:0]; + self.datePicker.minimumDate = minDate; + self.datePicker.maximumDate = maxDate; + self.datePicker.date = _currentDate; + } +} + +- (void)setExtractEngagementGenre:(YUMIUnionTimePickGenre)extractEngagementGenre { + _extractEngagementGenre = extractEngagementGenre; + if (extractEngagementGenre == YUMIUnionTimePickGenreWeek) { + [self weekSeasonAboutUniversalEngagement:_currentDate]; + NSString *startDateStr = [self.engagementInitialiser stringFromDate:self.startDate]; + NSString *endDateStr = [self.engagementInitialiser stringFromDate:self.endDate]; + [self.satellitetBtuton setTitle:startDateStr forState:UIControlStateNormal]; + [self.endBtuton setTitle:endDateStr forState:UIControlStateNormal]; + self.satellitetBtuton.userInteractionEnabled = NO; + self.endBtuton.userInteractionEnabled = NO; + } else{ + self.satellitetBtuton.selected = YES; + NSString *dateStr = [self.engagementInitialiser stringFromDate:self.currentDate]; + [self.satellitetBtuton setTitle:dateStr forState:UIControlStateNormal]; + [self.endBtuton setTitle:dateStr forState:UIControlStateNormal]; + [self.satellitetBtuton setTitleColor:[DJDKMIMOMColor mainEssayPrettify] forState:UIControlStateSelected]; + [self.satellitetBtuton setTitleColor:[DJDKMIMOMColor essayTertiusPrettify] forState:UIControlStateNormal]; + self.satellitetBtuton.titleLabel.font = [UIFont systemFontOfSize:20 weight:UIFontWeightMedium]; + [self.endBtuton setTitleColor:[DJDKMIMOMColor mainEssayPrettify] forState:UIControlStateSelected]; + [self.endBtuton setTitleColor:[DJDKMIMOMColor essayTertiusPrettify] forState:UIControlStateNormal]; + self.endBtuton.titleLabel.font = [UIFont systemFontOfSize:18 weight:UIFontWeightMedium]; + self.startDate = _currentDate; + self.endDate = _currentDate; + } +} + + +- (UIStackView *)stackView { + if (!_stackView) { + _stackView = [[UIStackView alloc] init]; + _stackView.axis = UILayoutConstraintAxisVertical; + _stackView.distribution = UIStackViewDistributionFill; + _stackView.alignment = UIStackViewAlignmentFill; + _stackView.spacing = 0; + } + return _stackView; +} + +- (UIView *)utensilRegard { + if (!_utensilRegard) { + _utensilRegard = [[UIView alloc] init]; + _utensilRegard.backgroundColor = [UIColor clearColor]; + } + return _utensilRegard; +} + +- (UIView *)separationRegard { + if (!_separationRegard) { + _separationRegard = [[UIView alloc] init]; + _separationRegard.backgroundColor = [UIColor clearColor]; + } + return _separationRegard; +} + + +- (UIButton *)cancleBtuton { + if (!_cancleBtuton) { + _cancleBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_cancleBtuton setTitle:YMLocalizedString(@"YUMI_Guild_Time_Pick_View_4") forState:UIControlStateNormal]; + [_cancleBtuton addTarget:self action:@selector(onTicktackRevoctowardsionBtuton:) forControlEvents:UIControlEventTouchUpInside]; + _cancleBtuton.titleLabel.font = [UIFont systemFontOfSize:16 weight:UIFontWeightMedium]; + [_cancleBtuton setTitleColor:[DJDKMIMOMColor essayTertiusPrettify] forState:UIControlStateNormal]; + } + return _cancleBtuton; +} + +- (UIButton *)sureBtuton { + if (!_sureBtuton) { + _sureBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_sureBtuton setTitle:YMLocalizedString(@"YUMI_Guild_Time_Pick_View_5") forState:UIControlStateNormal]; + [_sureBtuton addTarget:self action:@selector(onTicktackSureBtuton:) forControlEvents:UIControlEventTouchUpInside]; + _sureBtuton.titleLabel.font = [UIFont systemFontOfSize:16 weight:UIFontWeightMedium]; + [_sureBtuton setTitleColor:[DJDKMIMOMColor mainEssayPrettify] forState:UIControlStateNormal]; + } + return _sureBtuton; +} + +- (NSDateFormatter *)engagementInitialiser { + if (!_engagementInitialiser) { + _engagementInitialiser = [[NSDateFormatter alloc] init]; + _engagementInitialiser.dateFormat = @"YYYY-MM-dd"; + } + return _engagementInitialiser; +} + +- (UIDatePicker *)datePicker { + if (!_datePicker){ + _datePicker = [[UIDatePicker alloc] init]; + _datePicker.datePickerMode = UIDatePickerModeDate; + if (@available(iOS 13.4, *)) { + _datePicker.preferredDatePickerStyle = UIDatePickerStyleWheels; + } + if (@available(iOS 13.0, *)) { + _datePicker.overrideUserInterfaceStyle = UIUserInterfaceStyleLight; + } + [_datePicker addTarget:self action:@selector(engagementExtracterBWSttessDiversifictowardsion:) forControlEvents:UIControlEventValueChanged]; + } + return _datePicker; +} + +- (UIButton *)satellitetBtuton { + if (!_satellitetBtuton) { + _satellitetBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_satellitetBtuton addTarget:self action:@selector(onTicktackInititowardseBtuton:) forControlEvents:UIControlEventTouchUpInside]; + _satellitetBtuton.titleLabel.font = [UIFont systemFontOfSize:14]; + [_satellitetBtuton setTitleColor:[DJDKMIMOMColor essayTertiusPrettify] forState:UIControlStateNormal]; + [_satellitetBtuton setTitleColor:[DJDKMIMOMColor aplictowardsionMainPrettify] forState:UIControlStateSelected]; + [_satellitetBtuton.titleLabel sizeToFit]; + } + return _satellitetBtuton; +} + +- (UIButton *)endBtuton { + if (!_endBtuton) { + _endBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_endBtuton addTarget:self action:@selector(onTicktackConcludeBtuton:) forControlEvents:UIControlEventTouchUpInside]; + _endBtuton.titleLabel.font = [UIFont systemFontOfSize:14]; + [_endBtuton setTitleColor:[DJDKMIMOMColor essayTertiusPrettify] forState:UIControlStateNormal]; + [_endBtuton setTitleColor:[DJDKMIMOMColor aplictowardsionMainPrettify] forState:UIControlStateSelected]; + _endBtuton.titleLabel.textAlignment = NSTextAlignmentRight; + } + return _endBtuton; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.text = YMLocalizedString(@"App_Common_To"); + _titleLabel.font = [UIFont systemFontOfSize:15]; + _titleLabel.textAlignment = NSTextAlignmentCenter; + _titleLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + } + return _titleLabel; +} + +- (NSCalendar *)calendar { + if (!_calendar) { + _calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian]; + } + return _calendar; +} + +- (UIImageView *)backgroundIndicateRegard { + if (!_backgroundIndicateRegard) { + _backgroundIndicateRegard = [[UIImageView alloc] init]; + _backgroundIndicateRegard.image = [UIImage imageNamed:@"yumi_center_guild_income_datePicker_background"]; + } + return _backgroundIndicateRegard; +} + +@end diff --git a/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIUnionKellegRevenueDivisionRegard.h b/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIUnionKellegRevenueDivisionRegard.h new file mode 100644 index 00000000..d28d24ca --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIUnionKellegRevenueDivisionRegard.h @@ -0,0 +1,16 @@ +// +// YUMIUnionKellegRevenueDivisionRegard.h +// YuMi +// +// Created by YuMi on 2022/4/24. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIUnionKellegRevenueDivisionRegard : UIView +@property (nonatomic,assign) BOOL isHost; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIUnionKellegRevenueDivisionRegard.m b/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIUnionKellegRevenueDivisionRegard.m new file mode 100644 index 00000000..d159a531 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIUnionKellegRevenueDivisionRegard.m @@ -0,0 +1,182 @@ +// +// YUMIUnionKellegRevenueDivisionRegard.m +// YuMi +// +// Created by YuMi on 2022/4/24. +// + +#import "YUMIUnionKellegRevenueDivisionRegard.h" +#import +#import "DJDKMIMOMColor.h" + + +@interface YUMIUnionKellegRevenueDivisionRegard () +@property (nonatomic,strong) UIStackView *stackView; +@property (nonatomic,strong) UILabel *rateSequencignation; +@property (nonatomic,strong) UILabel *intelligenceportraitSequencignation; +@property (nonatomic,strong) UILabel *monicerSequencignation; +@property (nonatomic,strong) UILabel *chamberSequencignation; +@property (nonatomic,strong) UILabel *revenueSequencignation; +@property (nonatomic,strong) UILabel *hostRevenueSequencignation; +@property (nonatomic,strong) UILabel *corridorSequencignation; + + + + +@end + +@implementation YUMIUnionKellegRevenueDivisionRegard + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = UIColorFromRGB(0xF0F5F6); + [self addSubview:self.stackView]; + [self.stackView addArrangedSubview:self.rateSequencignation]; + [self.stackView addArrangedSubview:self.intelligenceportraitSequencignation]; + [self.stackView addArrangedSubview:self.monicerSequencignation]; + [self.stackView addArrangedSubview:self.chamberSequencignation]; + [self.stackView addArrangedSubview:self.revenueSequencignation]; + + [self addSubview:self.corridorSequencignation]; + [self addSubview:self.hostRevenueSequencignation]; + +} + +- (void)initChildLyRestrictions { + [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.center.mas_equalTo(self); + make.size.mas_equalTo(CGSizeMake(KScreenWidth, 30)); + }]; + + [self.rateSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(52); + }]; + + [self.intelligenceportraitSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(45); + }]; + + [self.monicerSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(90); + }]; + + [self.chamberSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo((KScreenWidth - 52 - 45 - 90 - 10 * 4)/ 2); + }]; + + [self.hostRevenueSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + + make.height.mas_equalTo(kGetScaleWidth(14)); + make.centerY.equalTo(self); + make.left.mas_equalTo(kGetScaleWidth(97)); + }]; + [self.corridorSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + + make.height.mas_equalTo(kGetScaleWidth(14)); + make.centerY.equalTo(self); + make.left.mas_equalTo(kGetScaleWidth(260)); + }]; +} +-(void)setIsHost:(BOOL)isHost{ + _isHost = isHost; + + self.stackView.hidden = _isHost; + self.hostRevenueSequencignation.hidden = !isHost; + self.corridorSequencignation.hidden = !isHost; +} +#pragma mark - Getters And Setters +- (UIStackView *)stackView { + if (!_stackView) { + _stackView = [[UIStackView alloc] init]; + _stackView.axis = UILayoutConstraintAxisHorizontal; + _stackView.distribution = UIStackViewDistributionFill; + _stackView.alignment = UIStackViewAlignmentFill; + _stackView.spacing = 10; + } + return _stackView; +} + +- (UILabel *)rateSequencignation { + if (!_rateSequencignation) { + _rateSequencignation = [[UILabel alloc] init]; + _rateSequencignation.text = YMLocalizedString(@"YUMI_Guild_Anchor_Income_Section_View_0"); + _rateSequencignation.font = [UIFont systemFontOfSize:12]; + _rateSequencignation.textColor = [DJDKMIMOMColor essayTertiusPrettify]; + _rateSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _rateSequencignation; +} + +- (UILabel *)intelligenceportraitSequencignation { + if (!_intelligenceportraitSequencignation) { + _intelligenceportraitSequencignation = [[UILabel alloc] init]; + _intelligenceportraitSequencignation.text = YMLocalizedString(@"YUMI_Guild_Anchor_Income_Section_View_1"); + _intelligenceportraitSequencignation.font = [UIFont systemFontOfSize:12]; + _intelligenceportraitSequencignation.textColor = [DJDKMIMOMColor essayTertiusPrettify]; + _intelligenceportraitSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _intelligenceportraitSequencignation; +} + +- (UILabel *)chamberSequencignation { + if (!_chamberSequencignation) { + _chamberSequencignation = [[UILabel alloc] init]; + _chamberSequencignation.text = YMLocalizedString(@"YUMI_Guild_Anchor_Income_Section_View_2"); + _chamberSequencignation.font = [UIFont systemFontOfSize:12]; + _chamberSequencignation.textColor = [DJDKMIMOMColor essayTertiusPrettify]; + _chamberSequencignation.textAlignment = NSTextAlignmentLeft; + } + return _chamberSequencignation; +} + +- (UILabel *)monicerSequencignation { + if (!_monicerSequencignation) { + _monicerSequencignation = [[UILabel alloc] init]; + _monicerSequencignation.text = YMLocalizedString(@"YUMI_Guild_Anchor_Income_Section_View_3"); + _monicerSequencignation.font = [UIFont systemFontOfSize:12]; + _monicerSequencignation.textColor = [DJDKMIMOMColor essayTertiusPrettify]; + _monicerSequencignation.textAlignment = NSTextAlignmentLeft; + } + return _monicerSequencignation; +} + +- (UILabel *)revenueSequencignation { + if (!_revenueSequencignation) { + _revenueSequencignation = [[UILabel alloc] init]; + _revenueSequencignation.text = YMLocalizedString(@"YUMI_Guild_Anchor_Income_Section_View_4"); + _revenueSequencignation.font = [UIFont systemFontOfSize:12]; + _revenueSequencignation.textColor = [DJDKMIMOMColor essayTertiusPrettify]; + _revenueSequencignation.textAlignment = NSTextAlignmentLeft; + } + return _revenueSequencignation; +} + +- (UILabel *)hostRevenueSequencignation { + if (!_hostRevenueSequencignation) { + _hostRevenueSequencignation = [[UILabel alloc] init]; + _hostRevenueSequencignation.font = [UIFont systemFontOfSize:12]; + _hostRevenueSequencignation.textColor =UIColorFromRGB(0x1F1A4E); + _hostRevenueSequencignation.text = YMLocalizedString(@"YUMI_Guild_Anchor_Income_Section_View_2"); + } + return _hostRevenueSequencignation; +} + +- (UILabel *)corridorSequencignation { + if (!_corridorSequencignation) { + _corridorSequencignation = [[UILabel alloc] init]; + _corridorSequencignation.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium]; + _corridorSequencignation.textColor = UIColorFromRGB(0x1F1A4E); + _corridorSequencignation.text = YMLocalizedString(@"YUMI_Guild_Anchor_Income_Section_View_6"); + } + return _corridorSequencignation; +} +@end diff --git a/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIUnionRevenueDivisionRegard.h b/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIUnionRevenueDivisionRegard.h new file mode 100644 index 00000000..757dccba --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIUnionRevenueDivisionRegard.h @@ -0,0 +1,18 @@ +// +// YUMIUnionRevenueDivisionRegard.h +// YuMi +// +// Created by YuMi on 2022/4/11. +// + +#import +#import "YUMIManeUnionRevenueReflectionRegardGovernancer.h" +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIUnionRevenueDivisionRegard : UIView +@property (nonatomic,assign) UnionIncomeGenre revenueGenre; + +- (instancetype)initWithFrame:(CGRect)frame right:(CGFloat)right; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIUnionRevenueDivisionRegard.m b/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIUnionRevenueDivisionRegard.m new file mode 100644 index 00000000..99f10954 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIUnionRevenueDivisionRegard.m @@ -0,0 +1,154 @@ +// +// YUMIUnionRevenueDivisionRegard.m +// YuMi +// +// Created by YuMi on 2022/4/11. +// + +#import "YUMIUnionRevenueDivisionRegard.h" +#import +#import "DJDKMIMOMColor.h" + + +@interface YUMIUnionRevenueDivisionRegard () + +@property (nonatomic,strong) UILabel *rateSequencignation; +@property (nonatomic,strong) UILabel *chamberSequencignation; +@property (nonatomic,strong) UILabel *monicerSequencignation; +@property (nonatomic,strong) UILabel *revenueSequencignation; +@property (nonatomic,assign) CGFloat right; +@end + +@implementation YUMIUnionRevenueDivisionRegard +- (instancetype)initWithFrame:(CGRect)frame right:(CGFloat)right{ + self = [super initWithFrame:frame]; + if (self) { + self.right = right; + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = UIColorFromRGB(0xF0F5F6); + + [self addSubview:self.rateSequencignation]; + [self addSubview:self.chamberSequencignation]; + [self addSubview:self.monicerSequencignation]; + [self addSubview:self.revenueSequencignation]; +} + +- (void)initChildLyRestrictions { + + + [self.rateSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(kGetScaleWidth(54)); + make.left.mas_equalTo(kGetScaleWidth(0)); + make.top.bottom.equalTo(self); + }]; + + [self.chamberSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(kGetScaleWidth(47)); + make.left.mas_equalTo(kGetScaleWidth(54)); + make.top.bottom.equalTo(self); + }]; + + [self.monicerSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.equalTo(self.chamberSequencignation.mas_right); + make.width.mas_equalTo(kGetScaleWidth(120)); + make.top.bottom.equalTo(self); + }]; + CGFloat width = self.right > 0 ? self.right : 38; + [self.revenueSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.bottom.equalTo(self); + if(self.right <= 0){ + make.left.equalTo(self.monicerSequencignation.mas_right); + } + make.right.mas_equalTo(-kGetScaleWidth(width)); + }]; +} + +#pragma mark - Getters And Setters +- (void)setRevenueGenre:(UnionIncomeGenre)revenueGenre { + _revenueGenre = revenueGenre; + switch (_revenueGenre) { + case UnionIncomeGenre_Clan: + case UnionIncomeGenre_Anchor: + { + self.monicerSequencignation.hidden = YES; + self.chamberSequencignation.text = YMLocalizedString(@"YUMI_Guild_Income_Section_View_0"); + self.revenueSequencignation.textAlignment = NSTextAlignmentCenter; + } + break; + case UnionIncomeGenre_Hall: + { + self.monicerSequencignation.hidden = NO; + self.chamberSequencignation.text = YMLocalizedString(@"YUMI_Guild_Income_Section_View_1"); + self.revenueSequencignation.textAlignment = NSTextAlignmentCenter; + } + break; + default: + break; + } +} + + + +- (UILabel *)rateSequencignation { + if (!_rateSequencignation) { + _rateSequencignation = [[UILabel alloc] init]; + _rateSequencignation.text = YMLocalizedString(@"YUMI_Guild_Income_Section_View_2"); + _rateSequencignation.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium]; + _rateSequencignation.textColor = [DJDKMIMOMColor introjectionEssayPrettify]; + _rateSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _rateSequencignation; +} + +- (UILabel *)chamberSequencignation { + if (!_chamberSequencignation) { + _chamberSequencignation = [[UILabel alloc] init]; + _chamberSequencignation.text = YMLocalizedString(@"YUMI_Guild_Income_Section_View_3"); + _chamberSequencignation.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium]; + _chamberSequencignation.textColor = [DJDKMIMOMColor introjectionEssayPrettify]; + _chamberSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _chamberSequencignation; +} + +- (UILabel *)monicerSequencignation { + if (!_monicerSequencignation) { + _monicerSequencignation = [[UILabel alloc] init]; + _monicerSequencignation.text = YMLocalizedString(@"YUMI_Guild_Income_Section_View_4"); + _monicerSequencignation.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium]; + _monicerSequencignation.textColor = [DJDKMIMOMColor introjectionEssayPrettify]; + _monicerSequencignation.textAlignment = NSTextAlignmentCenter; + _monicerSequencignation.hidden = YES; + } + return _monicerSequencignation; +} + +- (UILabel *)revenueSequencignation { + if (!_revenueSequencignation) { + _revenueSequencignation = [[UILabel alloc] init]; + _revenueSequencignation.text = YMLocalizedString(@"YUMI_Guild_Income_Section_View_5"); + _revenueSequencignation.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium]; + _revenueSequencignation.textColor = [DJDKMIMOMColor introjectionEssayPrettify]; + _revenueSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _revenueSequencignation; +} + + + +@end diff --git a/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIUnionRevenueIntelligencerRegard.h b/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIUnionRevenueIntelligencerRegard.h new file mode 100644 index 00000000..5a110bda --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIUnionRevenueIntelligencerRegard.h @@ -0,0 +1,28 @@ +// +// YUMIUnionRevenueIntelligencerRegard.h +// YuMi +// +// Created by YuMi on 2022/4/11. +// + +#import +#import "YUMIManeUnionRevenueReflectionRegardGovernancer.h" +NS_ASSUME_NONNULL_BEGIN +@class YUMIUnionRevenueIntelligencerRegard; +@protocol FBCUnionIncomeIntelligencerRegardRepresendtation + +- (void)yUMIUnionRevenueIntelligencerRegard:(YUMIUnionRevenueIntelligencerRegard *)view didChooseTime:(UIButton *)sender; + +@end + +@interface YUMIUnionRevenueIntelligencerRegard : UIView +@property (nonatomic,weak) id delegate; +@property (nonatomic,assign) UnionIncomeRecrdTimeGenre intratemporalGenre; + +@property (nonatomic,copy) NSString *generalRevenue; + +- (void)prohibitipositionIntelligencerRegard:(NSDate *)startDate endTime:(NSDate * _Nullable)endDate; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIUnionRevenueIntelligencerRegard.m b/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIUnionRevenueIntelligencerRegard.m new file mode 100644 index 00000000..5d409ad9 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIUnionRevenueIntelligencerRegard.m @@ -0,0 +1,266 @@ +// +// YUMIUnionRevenueIntelligencerRegard.m +// YuMi +// +// Created by YuMi on 2022/4/11. +// + +#import "YUMIUnionRevenueIntelligencerRegard.h" +#import +#import "DJDKMIMOMColor.h" + +#import "NSString+Utils.h" +#import "UIButton+EnlargeTouchArea.h" +@interface YUMIUnionRevenueIntelligencerRegard () +@property (nonatomic,strong) UIImageView *encourageIndicateRegard; +@property (nonatomic,strong) UILabel *yearSequencignation; + +@property (nonatomic,strong) UILabel *satellitetSequencignation; +@property (nonatomic,strong) UILabel *endSequencignation; +@property (nonatomic,strong) UILabel *daySequencignation; + +@property (nonatomic,strong) UIButton *arrowBtuton; +@property (nonatomic,strong) UIView * burlywoodRegard; +@property (nonatomic,strong) UILabel *generalSequencignation; +@property (nonatomic,strong) UILabel *tangerineSequencignation; +@property (nonatomic,strong) NSDateFormatter *initialiser; +@end + +@implementation YUMIUnionRevenueIntelligencerRegard + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Public Method +- (void)prohibitipositionIntelligencerRegard:(NSDate *)startDate endTime:(NSDate * _Nullable)endDate { + [self.initialiser setDateFormat:YMLocalizedString(@"App_Common_Year")]; + NSString *currentYear = [self.initialiser stringFromDate:startDate]; + self.yearSequencignation.text = currentYear; + if (self.intratemporalGenre == UnionIncomeRecrdTimeGenre_Day) { + [self.initialiser setDateFormat:YMLocalizedString(@"YUMI_Guild_Income_Header_View_0")]; + NSString * currentDay = [self.initialiser stringFromDate:startDate]; + self.daySequencignation.text = currentDay; + } else if(self.intratemporalGenre == UnionIncomeRecrdTimeGenre_Week) { + [self.initialiser setDateFormat:YMLocalizedString(@"YUMI_Guild_Income_Header_View_1")]; + NSString * currentDay = [self.initialiser stringFromDate:startDate]; + self.satellitetSequencignation.text = currentDay; + + NSString * endDayStr = [self.initialiser stringFromDate:endDate]; + self.endSequencignation.text = endDayStr; + } else { + [self.initialiser setDateFormat:YMLocalizedString(@"YUMI_Guild_Income_Header_View_5")]; + NSString * currentDay = [self.initialiser stringFromDate:startDate]; + self.satellitetSequencignation.text = currentDay; + } +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [DJDKMIMOMColor aplictowardsionEncouragegroundPrettify]; + [self addSubview:self.encourageIndicateRegard]; + + [self.encourageIndicateRegard addSubview:self.yearSequencignation]; + [self.encourageIndicateRegard addSubview:self.daySequencignation]; + [self.encourageIndicateRegard addSubview:self.satellitetSequencignation]; + [self.encourageIndicateRegard addSubview:self.endSequencignation]; + [self.encourageIndicateRegard addSubview:self.arrowBtuton]; + [self.encourageIndicateRegard addSubview:self.burlywoodRegard]; + [self.encourageIndicateRegard addSubview:self.generalSequencignation]; + [self.encourageIndicateRegard addSubview:self.tangerineSequencignation]; + + +} + +- (void)initChildLyRestrictions { + + [self.encourageIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(kGetScaleWidth(15)); + make.left.right.equalTo(self).inset(kGetScaleWidth(15)); + make.height.mas_equalTo(kGetScaleWidth(90)); + }]; + + [self.yearSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(kGetScaleWidth(18)); + make.left.mas_equalTo(kGetScaleWidth(20)); + make.height.mas_equalTo(kGetScaleWidth(12)); + }]; + [self.burlywoodRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(kGetScaleWidth(0.5)); + make.height.mas_equalTo(kGetScaleWidth(49)); + make.centerY.equalTo(self.encourageIndicateRegard); + make.left.mas_equalTo(kGetScaleWidth(119)); + }]; + [self.arrowBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + + make.top.mas_equalTo(kGetScaleWidth(54)); + make.width.height.mas_equalTo(kGetScaleWidth(20)); + make.right.equalTo(self.burlywoodRegard.mas_left).mas_offset(-kGetScaleWidth(19)); + }]; + [self.daySequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.equalTo(self.arrowBtuton.mas_left).mas_offset(-kGetScaleWidth(1)); + make.height.mas_equalTo(kGetScaleWidth(17)); + make.top.mas_equalTo(kGetScaleWidth(56)); + }]; + + + [self.satellitetSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.equalTo(self.arrowBtuton.mas_left).mas_offset(-kGetScaleWidth(1)); + make.top.mas_equalTo(kGetScaleWidth(44)); + make.height.mas_equalTo(kGetScaleWidth(17)); + }]; + [self.endSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.equalTo(self.arrowBtuton.mas_left).mas_offset(-kGetScaleWidth(1)); + make.top.mas_equalTo(kGetScaleWidth(65)); + make.height.mas_equalTo(kGetScaleWidth(17)); + }]; + + + [self.generalSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(kGetScaleWidth(18)); + make.left.mas_equalTo(kGetScaleWidth(140)); + make.height.mas_equalTo(kGetScaleWidth(12)); + }]; + + [self.tangerineSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.generalSequencignation); + make.centerY.mas_equalTo(self.arrowBtuton); + }]; +} + +#pragma mark - Event Response +- (void)arrowBtutonPerformance:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIUnionRevenueIntelligencerRegard:didChooseTime:)]) { + [self.delegate yUMIUnionRevenueIntelligencerRegard:self didChooseTime:sender]; + } +} + +#pragma mark - Getters And Setters +- (void)setGeneralRevenue:(NSString *)generalRevenue { + _generalRevenue = generalRevenue; + if (_generalRevenue == nil) { + _generalRevenue = @"0"; + } + NSString * title = [NSString stringWithFormat:YMLocalizedString(@"YUMI_Guild_Income_Header_View_2"), [NSString acquireDealFigurewithsttri:_generalRevenue]]; + self.tangerineSequencignation.text = title; +} + +- (void)setIntratemporalGenre:(UnionIncomeRecrdTimeGenre)intratemporalGenre { + _intratemporalGenre = intratemporalGenre; + switch (_intratemporalGenre) { + case UnionIncomeRecrdTimeGenre_Day: + self.daySequencignation.hidden = NO; + self.endSequencignation.hidden = YES; + self.satellitetSequencignation.hidden = YES; + break; + case UnionIncomeRecrdTimeGenre_Week: + self.daySequencignation.hidden = YES; + self.endSequencignation.hidden = NO; + self.satellitetSequencignation.hidden = NO; + break; + case UnionIncomeRecrdTimeGenre_Mouth: + self.daySequencignation.hidden = NO; + self.endSequencignation.hidden = YES; + self.satellitetSequencignation.hidden = YES; + break; + default: + break; + } +} + +- (UIImageView *)encourageIndicateRegard { + if (!_encourageIndicateRegard) { + _encourageIndicateRegard = [[UIImageView alloc] init]; + _encourageIndicateRegard.userInteractionEnabled = YES; + _encourageIndicateRegard.image = [UIImage imageNamed:@"yumi_center_guild_income_header_background"]; + } + return _encourageIndicateRegard; +} + +- (UILabel *)yearSequencignation { + if (!_yearSequencignation) { + _yearSequencignation = [[UILabel alloc] init]; + _yearSequencignation.font = [UIFont systemFontOfSize:13 weight:UIFontWeightMedium]; + _yearSequencignation.textColor = [UIColor colorWithWhite:1 alpha:0.8]; + } + return _yearSequencignation; +} + +- (UILabel *)daySequencignation { + if (!_daySequencignation) { + _daySequencignation = [[UILabel alloc] init]; + _daySequencignation.font = [UIFont systemFontOfSize:14 weight:UIFontWeightMedium]; + _daySequencignation.textColor = [UIColor whiteColor]; + } + return _daySequencignation; +} + +- (UILabel *)satellitetSequencignation { + if (!_satellitetSequencignation) { + _satellitetSequencignation = [[UILabel alloc] init]; + _satellitetSequencignation.font = [UIFont systemFontOfSize:14 weight:UIFontWeightMedium]; + _satellitetSequencignation.textColor = [UIColor whiteColor]; + } + return _satellitetSequencignation; +} + +- (UILabel *)endSequencignation { + if (!_endSequencignation) { + _endSequencignation = [[UILabel alloc] init]; + _endSequencignation.font = [UIFont systemFontOfSize:14 weight:UIFontWeightMedium]; + _endSequencignation.textColor = [UIColor whiteColor]; + } + return _endSequencignation; +} + +- (UIButton *)arrowBtuton { + if (!_arrowBtuton) { + _arrowBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_arrowBtuton setBackgroundImage:[UIImage imageNamed:@"yumi_center_guild_income_record_arrow"] forState:UIControlStateNormal]; + [_arrowBtuton setBackgroundImage:[UIImage imageNamed:@"yumi_center_guild_income_record_arrow"] forState:UIControlStateSelected]; + [_arrowBtuton addTarget:self action:@selector(arrowBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + [_arrowBtuton setEnlargeEdgeAboutApex:10 right:10 bottom:10 left:10]; + } + return _arrowBtuton; +} + +- (UIView *)burlywoodRegard { + if (!_burlywoodRegard) { + _burlywoodRegard = [[UIView alloc] init]; + _burlywoodRegard.backgroundColor = [UIColor whiteColor]; + } + return _burlywoodRegard; +} + +- (UILabel *)generalSequencignation { + if (!_generalSequencignation) { + _generalSequencignation = [[UILabel alloc] init]; + _generalSequencignation.text = YMLocalizedString(@"YUMI_Guild_Income_Header_View_4"); + _generalSequencignation.font = [UIFont systemFontOfSize:13 weight:UIFontWeightMedium]; + _generalSequencignation.textColor = [UIColor whiteColor]; + } + return _generalSequencignation; +} + +- (UILabel *)tangerineSequencignation { + if (!_tangerineSequencignation) { + _tangerineSequencignation = [[UILabel alloc] init]; + _tangerineSequencignation.font = [UIFont systemFontOfSize:18 weight:UIFontWeightMedium]; + _tangerineSequencignation.textColor = [UIColor whiteColor]; + } + return _tangerineSequencignation; +} + +- (NSDateFormatter *)initialiser { + if (!_initialiser) { + _initialiser = [[NSDateFormatter alloc] init]; + } + return _initialiser; +} + +@end diff --git a/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIUnionSensationalManagementParrotRegard.h b/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIUnionSensationalManagementParrotRegard.h new file mode 100644 index 00000000..1e1834d0 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIUnionSensationalManagementParrotRegard.h @@ -0,0 +1,28 @@ +// +// YUMIUnionSensationalManagementParrotRegard.h +// YuMi +// +// Created by YuMi on 2022/4/13. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +typedef NS_ENUM(NSInteger, UnionSuperAdminParrotGenre) { + + UnionSuperAdminParrotGenre_Set_Manager_Room =1, + + UnionSuperAdminParrotGenre_Remove_Super_Admnin +}; + +@class YUMIUnionSensationalManagementParrotRegard; +@protocol FBCUnionSensationalManagementMenuRegardRepresendtation + +- (void)yUMIUnionSenstowardsionalManagementParrotRegard:(YUMIUnionSensationalManagementParrotRegard *)view didClickType:(UnionSuperAdminParrotGenre)memuType; + +@end +@interface YUMIUnionSensationalManagementParrotRegard : UIView +@property (nonatomic,weak) id delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIUnionSensationalManagementParrotRegard.m b/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIUnionSensationalManagementParrotRegard.m new file mode 100644 index 00000000..21f9fdb4 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/SubViews/YUMIUnionSensationalManagementParrotRegard.m @@ -0,0 +1,133 @@ +// +// YUMIUnionSensationalManagementParrotRegard.m +// YuMi +// +// Created by YuMi on 2022/4/13. +// + +#import "YUMIUnionSensationalManagementParrotRegard.h" +#import +#import "DJDKMIMOMColor.h" + +@interface YUMIUnionSensationalManagementParrotRegard () +@property (nonatomic,strong) UIStackView *stackView; +@property (nonatomic,strong) UIButton *executiveChamberBtuton; +@property (nonatomic,strong) UIView *burlywoodRegard; +@property (nonatomic,strong) UIButton *removeBtuton; + +@end + +@implementation YUMIUnionSensationalManagementParrotRegard + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +- (void)drawRect:(CGRect)rect { + CGFloat startX = self.frame.size.width - 20; + + CGContextRef context = UIGraphicsGetCurrentContext(); + CGContextBeginPath(context); + CGContextMoveToPoint(context, startX, 5); + CGContextAddLineToPoint(context, startX + 5, 0); + CGContextAddLineToPoint(context, startX + 10, 5); + CGContextClosePath(context); + [UIColorFromRGB(0x3C3C3C) setFill]; + [UIColorFromRGB(0x3C3C3C) setStroke]; + CGContextDrawPath(context, kCGPathFillStroke); +} + +#pragma mark - Private Method + +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor]; + [self addSubview:self.stackView]; + + [self.stackView addArrangedSubview:self.executiveChamberBtuton]; + [self.stackView addArrangedSubview:self.burlywoodRegard]; + [self.stackView addArrangedSubview:self.removeBtuton]; +} + +- (void)initChildLyRestrictions { + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(110); + make.height.mas_equalTo(66); + }]; + + [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.mas_equalTo(self); + make.top.mas_equalTo(self).offset(5); + }]; + + [self.executiveChamberBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(30); + }]; + + [self.burlywoodRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(1); + }]; +} + +#pragma mark - Event Response + +- (void)executiveChamberBtutonPerformance:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIUnionSenstowardsionalManagementParrotRegard:didClickType:)]) { + [self.delegate yUMIUnionSenstowardsionalManagementParrotRegard:self didClickType:sender.tag]; + } +} + +#pragma mark - Getters And Setters +- (UIStackView *)stackView { + if (!_stackView) { + _stackView = [[UIStackView alloc] init]; + _stackView.axis = UILayoutConstraintAxisVertical; + _stackView.distribution = UIStackViewDistributionFill; + _stackView.alignment = UIStackViewAlignmentFill; + _stackView.spacing = 0; + _stackView.layer.masksToBounds = YES; + _stackView.layer.cornerRadius = 8; + } + return _stackView; +} + +- (UIButton *)executiveChamberBtuton { + if (!_executiveChamberBtuton) { + _executiveChamberBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_executiveChamberBtuton setTitle:YMLocalizedString(@"YUMI_Guild_Super_Admin_Menu_View_0") forState:UIControlStateNormal]; + [_executiveChamberBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + _executiveChamberBtuton.titleLabel.font = [UIFont systemFontOfSize:12]; + _executiveChamberBtuton.backgroundColor = UIColorFromRGB(0x3C3C3C); + _executiveChamberBtuton.tag = UnionSuperAdminParrotGenre_Set_Manager_Room; + [_executiveChamberBtuton addTarget:self action:@selector(executiveChamberBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _executiveChamberBtuton; +} + +- (UIView *)burlywoodRegard { + if (!_burlywoodRegard) { + _burlywoodRegard = [[UIView alloc] init]; + _burlywoodRegard.backgroundColor = [UIColor whiteColor]; + } + return _burlywoodRegard; +} + +- (UIButton *)removeBtuton { + if (!_removeBtuton) { + _removeBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_removeBtuton setTitle:YMLocalizedString(@"YUMI_Guild_Super_Admin_Menu_View_1") forState:UIControlStateNormal]; + [_removeBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + _removeBtuton.titleLabel.font = [UIFont systemFontOfSize:12]; + _removeBtuton.backgroundColor = UIColorFromRGB(0x3C3C3C); + _removeBtuton.tag = UnionSuperAdminParrotGenre_Remove_Super_Admnin; + [_removeBtuton addTarget:self action:@selector(executiveChamberBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _removeBtuton; +} + + +@end diff --git a/YuMi/Modules/YMMine/View/Guild/View/SuperAdmin/YUMIManeUnionChooseExecutiveRegardGovernancer.h b/YuMi/Modules/YMMine/View/Guild/View/SuperAdmin/YUMIManeUnionChooseExecutiveRegardGovernancer.h new file mode 100644 index 00000000..79cdd37f --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/SuperAdmin/YUMIManeUnionChooseExecutiveRegardGovernancer.h @@ -0,0 +1,17 @@ +// +// YUMIManeUnionChooseExecutiveRegardGovernancer.h +// YuMi +// +// Created by YuMi on 2022/4/13. +// + +#import "MvpRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeUnionChooseExecutiveRegardGovernancer : MvpRegardGovernancer +@property (nonatomic,copy) NSString *clanId; +@property (nonatomic,copy) NSString *targetUid; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/View/SuperAdmin/YUMIManeUnionChooseExecutiveRegardGovernancer.m b/YuMi/Modules/YMMine/View/Guild/View/SuperAdmin/YUMIManeUnionChooseExecutiveRegardGovernancer.m new file mode 100644 index 00000000..01076c4a --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/SuperAdmin/YUMIManeUnionChooseExecutiveRegardGovernancer.m @@ -0,0 +1,240 @@ +// +// YUMIManeUnionChooseExecutiveRegardGovernancer.m +// YuMi +// +// Created by YuMi on 2022/4/13. +// + +#import "YUMIManeUnionChooseExecutiveRegardGovernancer.h" +#import +#import "DJDKMIMOMColor.h" + +#import "MKJPopup.h" +#import "UIImage+Utils.h" +#import "UnionChamberAbstractMatrix.h" +#import "YUMIUnionChooseExecutiveChamberTabulationRegardElement.h" +#import "YUMISensationalManagementExecutiveChamberExternalizer.h" +#import "FBCSensationalManagementExecutiveChamberCeremony.h" + +@interface YUMIManeUnionChooseExecutiveRegardGovernancer () +@property (nonatomic,strong) UIView * nevRegard; +@property (nonatomic,strong) UIButton *backButton; +@property (nonatomic,strong) UILabel *titleLabel; +@property (nonatomic,strong) UITableView *tableView; +@property (nonatomic,strong) UIButton * sureBtuton; +@property (nonatomic,strong) NSArray *datasource; +@property (nonatomic,strong) NSMutableArray *concludeGarment; +@property (nonatomic,strong) NSMutableArray *diversificationGarment; +@end + +@implementation YUMIManeUnionChooseExecutiveRegardGovernancer + +- (BOOL)isVeiledNevObstacle { + return YES; +} + +- (__kindof id)producePresimport { + return [[YUMISensationalManagementExecutiveChamberExternalizer alloc] init]; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self.presimport acquireUnionChamberSttowardsement:self.clanId targetUid:self.targetUid]; + [self initSubViews]; + [self initChildLyRestrictions]; +} +#pragma mark - Private Method +- (void)initSubViews { + self.titleLabel.text = YMLocalizedString(@"YUMI_MineGuildChooseManagerViewController0"); + [self.view addSubview:self.nevRegard]; + [self.view addSubview:self.tableView]; + [self.view addSubview:self.sureBtuton]; + + [self.nevRegard addSubview:self.backButton]; + [self.nevRegard addSubview:self.titleLabel]; +} + +- (void)initChildLyRestrictions { + [self.nevRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self.view); + make.height.mas_equalTo(kNavigationHeight); + }]; + + [self.backButton mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.view).mas_offset(10); + make.top.mas_equalTo(statusbarHeight); + make.height.width.mas_equalTo(44); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.nevRegard); + make.centerY.mas_equalTo(self.backButton); + }]; + + + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.mas_equalTo(self.view); + make.top.mas_equalTo(self.nevRegard.mas_bottom); + }]; + + [self.sureBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.view).inset(47); + make.height.mas_equalTo(44); + make.bottom.mas_equalTo(self.view).offset(-kSafeAreaBottomHeight - 20); + }]; +} + +#pragma mark - UITableViewDelegate And UITableViewDataSource +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.datasource.count; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + YUMIUnionChooseExecutiveChamberTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIUnionChooseExecutiveChamberTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIUnionChooseExecutiveChamberTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIUnionChooseExecutiveChamberTabulationRegardElement class])]; + } + cell.delegate = self; + UnionChamberAbstractMatrix* roomInfo = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + cell.roomInfo = roomInfo; + if (roomInfo.hasManage) { + if (![self.concludeGarment containsObject:roomInfo.hallRoomUid]) { + [self.concludeGarment addObject:roomInfo.hallRoomUid]; + } + } else { + if ([self.concludeGarment containsObject:roomInfo.hallRoomUid]) { + [self.concludeGarment removeObject:roomInfo.hallRoomUid]; + } + } + return cell; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + return 88; +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + [tableView deselectRowAtIndexPath:indexPath animated:YES]; +} + +#pragma mark - FBCUnionChooseExecutiveChamberTabulationViweElementRepresendtation +- (void)yUMIUnionConcludeExecutiveChamberTarbsultowardsionViweElement:(YUMIUnionChooseExecutiveChamberTabulationRegardElement *)view didChooseInfo:(UnionChamberAbstractMatrix *)roomInfo { + roomInfo.hasManage = !roomInfo.hasManage; + [self.tableView reloadData]; + + if (roomInfo.hasManage) { + if (![self.diversificationGarment containsObject:roomInfo.hallRoomUid]) { + [self.diversificationGarment addObject:roomInfo.hallRoomUid]; + } + } else { + if ([self.diversificationGarment containsObject:roomInfo.hallRoomUid]) { + [self.diversificationGarment removeObject:roomInfo.hallRoomUid]; + } + } +} + +#pragma mark - FBCSensationalManagementExecutiveChamberCeremony +- (void)acquireUnionChamberSttowardsementAccomplishment:(NSArray *)array { + self.datasource = array; + [self.tableView reloadData]; +} + +- (void)unionSenstowardsionalManagementExecutiveChamberSttowardsementAccomplishment { + [self EvidenceAccomplishmentToast:YMLocalizedString(@"YUMI_MineGuildChooseManagerViewController1")]; + [self.navigationController popViewControllerAnimated:YES]; +} + +#pragma mark - Event Response +- (void)encourageBtutonPerformance:(UIButton *)sender { + if (self.diversificationGarment.count <=0) { + [self.navigationController popViewControllerAnimated:YES]; + return; + } + [MKJPopup precautiousAboutCommunictowardsion:YMLocalizedString(@"YUMI_MineGuildChooseManagerViewController2") acknowledgementHandler:^{ + [self.navigationController popViewControllerAnimated:YES]; + } cancelHandler:^{ + + }]; +} + +- (void)sureBtutonPerformance:(UIButton *)sender { + [self.presimport unionSenstowardsionalManagementExecutiveChamberSttowardsement:self.concludeGarment.copy targetUid:self.targetUid]; +} + +#pragma mark - Getters And Setters +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.textAlignment = NSTextAlignmentCenter; + _titleLabel.font = [UIFont boldSystemFontOfSize:18]; + _titleLabel.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _titleLabel; +} + +- (UIView *)nevRegard { + if (!_nevRegard) { + _nevRegard = [[UIView alloc] init]; + _nevRegard.backgroundColor = [UIColor whiteColor]; + } + return _nevRegard; +} + +- (UIButton *)backButton { + if (!_backButton) { + _backButton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_backButton setImage:[UIImage imageNamed:@"yumi_same_title_back"] forState:UIControlStateNormal]; + _backButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft; + [_backButton addTarget:self action:@selector(encourageBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _backButton; +} + +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; + _tableView.delegate = self; + _tableView.dataSource = self; + UIView * intelligenceerRegard = [[UIView alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth, 15)]; + intelligenceerRegard.backgroundColor = [UIColor clearColor]; + _tableView.tableHeaderView = intelligenceerRegard; + _tableView.tableFooterView = [UIView new]; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.backgroundColor = [UIColor clearColor]; + if (@available(iOS 11.0, *)) { + _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + [_tableView registerClass:[YUMIUnionChooseExecutiveChamberTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIUnionChooseExecutiveChamberTabulationRegardElement class])]; + } + return _tableView; +} + +- (UIButton *)sureBtuton { + if (!_sureBtuton) { + _sureBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_sureBtuton setTitle:YMLocalizedString(@"YUMI_MineGuildChooseManagerViewController3") forState:UIControlStateNormal]; + [_sureBtuton setTitleColor:[DJDKMIMOMColor acknowledgementBtutonEssayPrettify] forState:UIControlStateNormal]; + _sureBtuton.titleLabel.font = [UIFont systemFontOfSize:15]; + [_sureBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + _sureBtuton.layer.masksToBounds = YES; + _sureBtuton.layer.cornerRadius = 20; + [_sureBtuton addTarget:self action:@selector(sureBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _sureBtuton; +} + +- (NSMutableArray *)concludeGarment { + if (!_concludeGarment) { + _concludeGarment = [NSMutableArray array]; + } + return _concludeGarment; +} + +- (NSMutableArray *)diversificationGarment { + if (!_diversificationGarment) { + _diversificationGarment = [NSMutableArray array]; + } + return _diversificationGarment; +} + +@end diff --git a/YuMi/Modules/YMMine/View/Guild/View/SuperAdmin/YUMIManeUnionSensationalManagementSetRegardGovernancer.h b/YuMi/Modules/YMMine/View/Guild/View/SuperAdmin/YUMIManeUnionSensationalManagementSetRegardGovernancer.h new file mode 100644 index 00000000..aef77d96 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/SuperAdmin/YUMIManeUnionSensationalManagementSetRegardGovernancer.h @@ -0,0 +1,16 @@ +// +// XPGuildSuperAdminSetViewController.h +// YuMi +// +// Created by YuMi on 2022/4/13. +// + +#import "MvpRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeUnionSensationalManagementSetRegardGovernancer : MvpRegardGovernancer +@property (nonatomic,copy) NSString *clanId; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/View/SuperAdmin/YUMIManeUnionSensationalManagementSetRegardGovernancer.m b/YuMi/Modules/YMMine/View/Guild/View/SuperAdmin/YUMIManeUnionSensationalManagementSetRegardGovernancer.m new file mode 100644 index 00000000..9e7922d2 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/SuperAdmin/YUMIManeUnionSensationalManagementSetRegardGovernancer.m @@ -0,0 +1,200 @@ +// +// XPGuildSuperAdminSetViewController.m +// YuMi +// +// Created by YuMi on 2022/4/13. +// + +#import "YUMIManeUnionSensationalManagementSetRegardGovernancer.h" +#import +#import "UIImage+Utils.h" +#import "DJDKMIMOMColor.h" + +#import "MKJPopup.h" +#import "UnionSensationalManagementAbstractMatrix.h" +#import "YUMIUnionSensationalManagementSetTabulationRegardElement.h" +#import "YUMIManeUnionDispossessTabulationRegardElement.h" +#import "YUMIManeUnionChooseExecutiveRegardGovernancer.h" +#import "YUMIManeUnionHuntforRegardGovernancer.h" +#import "YUMISensationalManagementSetExternalizer.h" +#import "FBCSensationalManagementSetCeremony.h" + +@interface YUMIManeUnionSensationalManagementSetRegardGovernancer () +@property (nonatomic,strong) UITableView *tableView; +@property (nonatomic,strong) UIButton *accelerateExecutiveBtuton; +@property (nonatomic,strong) NSMutableArray *datasource; +@end + +@implementation YUMIManeUnionSensationalManagementSetRegardGovernancer + +- (__kindof id)producePresimport { + return [[YUMISensationalManagementSetExternalizer alloc] init]; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initSubViews]; + [self initChildLyRestrictions]; +} + +- (void)viewWillAppear:(BOOL)animated { + [super viewWillAppear:animated]; + [self.presimport acquireCollectiveSenstowardsionalManagementSttowardsement:self.clanId]; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.title = YMLocalizedString(@"YUMI_MineGuildSuperAdminSetViewController0"); + [self.view addSubview:self.tableView]; + [self.view addSubview:self.accelerateExecutiveBtuton]; +} + +- (void)initChildLyRestrictions { + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self.view); + make.bottom.mas_equalTo(self.accelerateExecutiveBtuton.mas_top); + }]; + + [self.accelerateExecutiveBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.view).inset(47); + make.height.mas_equalTo(40); + make.bottom.mas_equalTo(self.view.mas_safeAreaLayoutGuideBottom).offset(-20); + }]; +} + +#pragma mark - UITableViewDelegate And UITableViewDataSource +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.datasource.count > 0 ? self.datasource.count : 1; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + if (self.datasource.count > 0) { + YUMIUnionSensationalManagementSetTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIUnionSensationalManagementSetTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIUnionSensationalManagementSetTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIUnionSensationalManagementSetTabulationRegardElement class])]; + } + cell.delegate = self; + UnionSensationalManagementAbstractMatrix * info= [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + cell.executiveAbstract = info; + return cell; + } + + YUMIManeUnionDispossessTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIManeUnionDispossessTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIManeUnionDispossessTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIManeUnionDispossessTabulationRegardElement class])]; + } + return cell; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + return self.datasource.count > 0 ? 220 : 500; +} + +#pragma mark - FBCUnionSensationalManagementSetTabulationViweElementRepresendtation +- (void)yUMIUnionSenstowardsionalManagementSetTarbsultowardsionViweElement:(UnionSensationalManagementAbstractMatrix *)executiveAbstract didChooseType:(UnionSuperAdminParrotGenre)menuType { + switch (menuType) { + case UnionSuperAdminParrotGenre_Set_Manager_Room: + { + YUMIManeUnionChooseExecutiveRegardGovernancer * managerRoomVC = [[YUMIManeUnionChooseExecutiveRegardGovernancer alloc] init]; + managerRoomVC.clanId = self.clanId; + managerRoomVC.targetUid = executiveAbstract.uid; + [self.navigationController pushViewController:managerRoomVC animated:YES]; + } + break; + case UnionSuperAdminParrotGenre_Remove_Super_Admnin: + { + NSString * title = [NSString stringWithFormat:YMLocalizedString(@"YUMI_MineGuildSuperAdminSetViewController1"), executiveAbstract.nick]; + MKJPrecautiousDisposition * config = [[MKJPrecautiousDisposition alloc] init]; + config.message = title; + MKJPrecautiousCommunicationAttributedDisposition * attributeConfig = [[MKJPrecautiousCommunicationAttributedDisposition alloc] init]; + attributeConfig.text = executiveAbstract.nick; + attributeConfig.color = [DJDKMIMOMColor aplictowardsionMainPrettify]; + config.communicationAttributedDisposition = @[attributeConfig]; + [MKJPopup precautiousAboutDisposition:config acknowledgementHandler:^{ + [self.presimport transltowardseSenstowardsionalManagement:executiveAbstract.uid]; + } cancelHandler:^{ + + }]; + } + break; + default: + break; + } +} + +#pragma mark - FBCSensationalManagementSetCeremony +- (void)acquireCollectiveSenstowardsionalManagementSttowardsementAccomplishment:(NSArray *)list { + [self.datasource removeAllObjects]; + [self.datasource addObjectsFromArray:list]; + [self.tableView reloadData]; +} + +- (void)transltowardseSenstowardsionalManagementAccomplishment:(NSString *)uid { + __block UnionSensationalManagementAbstractMatrix * removeItem; + [self.datasource enumerateObjectsUsingBlock:^(UnionSensationalManagementAbstractMatrix * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if (obj.uid.integerValue == uid.integerValue) { + removeItem = obj; + *stop = YES; + } + }]; + + if (removeItem) { + [self.datasource removeObject:removeItem]; + [self.tableView reloadData]; + } +} + + +#pragma mark - Event Response +- (void)accelertowardseExecutiveBtutonPerformance:(UIButton *)sender { + YUMIManeUnionHuntforRegardGovernancer * searchVC = [[YUMIManeUnionHuntforRegardGovernancer alloc] init]; + searchVC.searchType = UnionSearchGenre_Clan_Add_Super_Admin; + searchVC.modalPresentationStyle = UIModalPresentationOverFullScreen; + searchVC.collectiveMaintainrietaryCid = self.clanId; + [self.navigationController presentViewController:searchVC animated:YES completion:nil]; +} + +#pragma mark - Getters And Setters +- (UIButton *)accelerateExecutiveBtuton { + if (!_accelerateExecutiveBtuton) { + _accelerateExecutiveBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_accelerateExecutiveBtuton setTitle:YMLocalizedString(@"YUMI_MineGuildSuperAdminSetViewController2") forState:UIControlStateNormal]; + [_accelerateExecutiveBtuton setTitleColor:[DJDKMIMOMColor acknowledgementBtutonEssayPrettify] forState:UIControlStateNormal]; + _accelerateExecutiveBtuton.titleLabel.font = [UIFont systemFontOfSize:15]; + [_accelerateExecutiveBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + _accelerateExecutiveBtuton.layer.masksToBounds = YES; + _accelerateExecutiveBtuton.layer.cornerRadius = 20; + [_accelerateExecutiveBtuton addTarget:self action:@selector(accelertowardseExecutiveBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _accelerateExecutiveBtuton; +} + +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; + _tableView.delegate = self; + _tableView.dataSource = self; + UIView * intelligenceerRegard = [[UIView alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth, 15)]; + intelligenceerRegard.backgroundColor = [UIColor clearColor]; + _tableView.tableHeaderView = intelligenceerRegard; + _tableView.tableFooterView = [UIView new]; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.backgroundColor = [UIColor clearColor]; + if (@available(iOS 11.0, *)) { + _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + [_tableView registerClass:[YUMIUnionSensationalManagementSetTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIUnionSensationalManagementSetTabulationRegardElement class])]; + [_tableView registerClass:[YUMIManeUnionDispossessTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIManeUnionDispossessTabulationRegardElement class])]; + } + return _tableView; +} + +- (NSMutableArray *)datasource { + if (!_datasource) { + _datasource = [NSMutableArray array]; + } + return _datasource; +} + + +@end diff --git a/YuMi/Modules/YMMine/View/Guild/View/YUMIManeCollectiveRegardGovernancer.h b/YuMi/Modules/YMMine/View/Guild/View/YUMIManeCollectiveRegardGovernancer.h new file mode 100644 index 00000000..c074ad05 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/YUMIManeCollectiveRegardGovernancer.h @@ -0,0 +1,16 @@ +// +// YUMIManeCollectiveRegardGovernancer.h +// YuMi +// +// Created by YuMi on 2022/4/6. +// + +#import "MvpRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN +@class CollectiveSpecificAbstractMatrix; +@interface YUMIManeCollectiveRegardGovernancer : MvpRegardGovernancer +@property (nonatomic,copy) NSString *uid; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/View/YUMIManeCollectiveRegardGovernancer.m b/YuMi/Modules/YMMine/View/Guild/View/YUMIManeCollectiveRegardGovernancer.m new file mode 100644 index 00000000..d17d4b28 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/YUMIManeCollectiveRegardGovernancer.m @@ -0,0 +1,335 @@ +// +// YUMIManeCollectiveRegardGovernancer.m +// YuMi +// +// Created by YuMi on 2022/4/6. +// + +#import "YUMIManeCollectiveRegardGovernancer.h" +#import +#import + +#import "DJDKMIMOMColor.h" +#import "AccountAbstractStorage.h" +#import "CollectiveSpecificAbstractMatrix.h" +#import "CollectiveComponentSpecificAbstractMatrix.h" +#import "YUMICollectiveComponentTabulationRegardElement.h" +#import "YUMIUnionIntelligencerRegard.h" +#import "YUMICollectiveDivisionRegard.h" +#import "YUMIManeUnionRegardGovernancer.h" +#import "YUMIManeUnionHuntforRegardGovernancer.h" +#import "YUMIManeCollectiveRevenueStatsticsRegardGovernancer.h" +#import "YUMIManeKellegRevenueStatsticsRegardGovernancer.h" +#import "YUMIManeUnionSensationalManagementSetRegardGovernancer.h" +#import "YUMIManeConsumerAbstractRegardGovernancer.h" +#import "YUMIManeMainRevenueStatsticsRegardGovernancer.h" +#import "YUMIManeExchangeAuthorityVC.h" +#import "YUMICollectiveExternalizer.h" +#import "FBCCollectiveCeremony.h" + +@interface YUMIManeCollectiveRegardGovernancer () +@property (nonatomic,strong) YUMIUnionIntelligencerRegard *intelligenceerRegard; +@property (nonatomic,strong) UIView * nevRegard; +@property (nonatomic,strong) UIButton *backButton; +@property (nonatomic,strong) UILabel *titleLabel; +@property (nonatomic,strong) UITableView *tableView; +@property (nonatomic,assign) int page; +@property (nonatomic,assign) BOOL hasNoFurthaerAtoloudspeaker; +@property (nonatomic,strong) CollectiveSpecificAbstractMatrix *collectiveSpecificAbstract; +@property (nonatomic,strong) CollectiveComponentSpecificAbstractMatrix *componentSpecificAbstract; +@property (nonatomic,strong) NSMutableArray *datasource; +@property (nonatomic,strong) YUMICollectiveDivisionRegard *sectionRegard; +@property (nonatomic,assign) BOOL isDemand; +@end + +@implementation YUMIManeCollectiveRegardGovernancer + +- (BOOL)isVeiledNevObstacle { + return YES; +} + +- (YUMICollectiveExternalizer *)producePresimport { + return [[YUMICollectiveExternalizer alloc] init]; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initSubViews]; + [self initChildLyRestrictions]; + [self initIntelligencerGrantedTerminalerRrfresh]; +} +#pragma mark - 下拉刷新 +- (void)initIntelligencerGrantedTerminalerRrfresh { + MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(intelligenceerRenovtowardseh)]; + header.stateLabel.font = [UIFont systemFontOfSize:10.0]; + header.lastUpdatedTimeLabel.font = [UIFont systemFontOfSize:10.0]; + header.stateLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + header.lastUpdatedTimeLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + self.tableView.mj_header = header; + + MJRefreshBackNormalFooter *footer = [MJRefreshBackNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(footerRenovtowardseh)]; + footer.stateLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + footer.stateLabel.font = [UIFont systemFontOfSize:10.0]; + self.tableView.mj_footer = footer; + + [self intelligenceerRenovtowardseh]; +} + +#pragma mark - 刷新的fangfa +- (void)intelligenceerRenovtowardseh { + self.page = 1; + [self.presimport acquireCollectiveSpecificAbstract:self.uid currentUserUid:[AccountAbstractStorage instance].acquireCid]; + [self.presimport acquireCollectiveComponentSttowardsement:self.uid page:self.page pageSize:20 state:0]; +} + +- (void)footerRenovtowardseh { + if (self.hasNoFurthaerAtoloudspeaker) { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_MineClanViewController0")]; + [self.tableView.mj_footer endRefreshing]; + return; + } + self.page++; + [self.presimport acquireCollectiveComponentSttowardsement:self.uid page:self.page pageSize:20 state:1]; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self.view addSubview:self.tableView]; + [self.view addSubview:self.nevRegard]; + [self.nevRegard addSubview:self.backButton]; + [self.nevRegard addSubview:self.titleLabel]; + self.tableView.tableHeaderView = self.intelligenceerRegard; +} + +- (void)initChildLyRestrictions { + [self.nevRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self.view); + make.height.mas_equalTo(kNavigationHeight); + }]; + + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self.view); + make.bottom.mas_equalTo(self.view); + }]; + + [self.backButton mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.view).mas_offset(10); + make.top.mas_equalTo(statusbarHeight); + make.height.width.mas_equalTo(44); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.nevRegard); + make.centerY.mas_equalTo(self.backButton); + }]; +} + +#pragma mark - UITableViewDelegate And UITableViewDataSource +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.datasource.count; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + YUMICollectiveComponentTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMICollectiveComponentTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMICollectiveComponentTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMICollectiveComponentTabulationRegardElement class])]; + } + cell.cellType = ClanMemberTableRegardCellGenre_Normal; + CollectiveComponentAbstractMatrix * componentAbstract = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + cell.isRecent = (self.datasource.count -1) == indexPath.row; + cell.componentAbstract = componentAbstract; + return cell; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + return 66; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { + return 37; +} + +- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { + if (section == 0 && self.isDemand) { + if (self.sectionRegard == nil) { + YUMICollectiveDivisionRegard * sectionRegard = [[YUMICollectiveDivisionRegard alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth, 37)]; + sectionRegard.isApexCor = YES; + sectionRegard.delegate = self; + self.sectionRegard = sectionRegard; + } + self.sectionRegard.title = [NSString stringWithFormat:YMLocalizedString(@"YUMI_MineClanViewController1"), self.datasource.count]; + return self.sectionRegard; + } + return [UIView new]; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section{ + return 0.01f; +} + +- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section{ + return [[UIView alloc]init]; +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + [tableView deselectRowAtIndexPath:indexPath animated:YES]; + if (self.datasource.count > 0) { + CollectiveComponentAbstractMatrix * componentAbstract = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + YUMIManeConsumerAbstractRegardGovernancer * userInfoVC = [[YUMIManeConsumerAbstractRegardGovernancer alloc] init]; + userInfoVC.uid = componentAbstract.uid.integerValue; + [self.navigationController pushViewController:userInfoVC animated:YES]; + } +} + +#pragma mark - FBCCollectiveSectionRegardRepresendtation +- (void)yUMICollectiveSectionRegard:(YUMICollectiveDivisionRegard *)view didClickSearch:(UIButton *)sender { + YUMIManeUnionHuntforRegardGovernancer * searchVC = [[YUMIManeUnionHuntforRegardGovernancer alloc] init]; + searchVC.modalPresentationStyle = UIModalPresentationOverFullScreen; + searchVC.searchType = UnionSearchGenre_Clan_All_Member; + searchVC.collectiveMaintainrietaryCid = self.collectiveSpecificAbstract.clan.elderUid; + [self.navigationController presentViewController:searchVC animated:YES completion:nil]; +} + +#pragma mark -FBCCollectiveCeremony +- (void)acquireCollectiveSpecificAbstractAccomplishment:(CollectiveSpecificAbstractMatrix *)collectiveSpecificAbstract universalConsumerCollectiveAbstract:(nonnull CollectiveSpecificAbstractMatrix *)universalConsumerCollectiveAbstract{ + if ([universalConsumerCollectiveAbstract.clan.elderUid isEqualToString:collectiveSpecificAbstract.clan.elderUid]) { + self.sectionRegard.isVeiledHuntfor = NO; + } + self.collectiveSpecificAbstract = collectiveSpecificAbstract; + self.intelligenceerRegard.collectiveAbstract = collectiveSpecificAbstract; + self.titleLabel.text = collectiveSpecificAbstract.clan.name; + [self.presimport acquireCollectiveChamberSttowardsement:collectiveSpecificAbstract.clan.cid]; +} + +- (void)acquireCollectiveComponentSttowardsementAccomplishment:(CollectiveComponentSpecificAbstractMatrix *)componentAbstract state:(int)state { + self.isDemand = YES; + if (state == 0) { + self.hasNoFurthaerAtoloudspeaker = NO; + [self.datasource removeAllObjects]; + [self.tableView.mj_header endRefreshing]; + } else { + [self.tableView.mj_footer endRefreshing]; + } + + if (componentAbstract.members.count > 0) { + [self.datasource addObjectsFromArray:componentAbstract.members]; + } else { + self.hasNoFurthaerAtoloudspeaker = YES; + } + [self.tableView reloadData]; +} + +- (void)acquireCollectiveChamberSttowardsementAccomplishment:(NSArray *)array { + self.intelligenceerRegard.collectiveChamberStatement = array; +} + +#pragma mark - FBCUnionIntelligencerRegardRepresendtation +- (void)yUMIUnionIntelligencerRegard:(YUMIUnionIntelligencerRegard *)view dicSelectGuild:(UnionAbstractMatrix *)guildInfo { + YUMIManeUnionRegardGovernancer * guildVC = [[YUMIManeUnionRegardGovernancer alloc] init]; + guildVC.ownerUid = guildInfo.ownerUid; + guildVC.instituteId = guildInfo.hallId; + [self.navigationController pushViewController:guildVC animated:YES]; +} + +- (void)yUMIUnionIntelligencerRegard:(YUMIUnionIntelligencerRegard *)view dicSelectOwner:(CollectiveSpecificAbstractMatrix *)guildInfo { + YUMIManeConsumerAbstractRegardGovernancer * userInfoVC = [[YUMIManeConsumerAbstractRegardGovernancer alloc] init]; + userInfoVC.uid = guildInfo.clan.elderUid.integerValue; + [self.navigationController pushViewController:userInfoVC animated:YES]; +} + +- (void)yUMIUnionIntelligencerRegard:(YUMIUnionIntelligencerRegard *)view dicTapMenuItem:(UnionHeaderParrotGenre)menuType { + switch (menuType) { + case UnionHeaderParrotGenre_Hall_Income: + { + YUMIManeMainRevenueStatsticsRegardGovernancer * collectiveRevenueVewC = [[YUMIManeMainRevenueStatsticsRegardGovernancer alloc] init]; + collectiveRevenueVewC.clanId = self.collectiveSpecificAbstract.clan.cid; + [self.navigationController pushViewController:collectiveRevenueVewC animated:YES]; + } + break; + case UnionHeaderParrotGenre_Exchange_Authority: + { + YUMIManeExchangeAuthorityVC* collectiveRevenueVewC = [[YUMIManeExchangeAuthorityVC alloc] init]; + [self.navigationController pushViewController:collectiveRevenueVewC animated:YES]; + } + break; + case UnionHeaderParrotGenre_Super_Admin: + { + YUMIManeUnionSensationalManagementSetRegardGovernancer * superAdminVC = [[YUMIManeUnionSensationalManagementSetRegardGovernancer alloc] init]; + superAdminVC.clanId = self.collectiveSpecificAbstract.clan.cid; + [self.navigationController pushViewController:superAdminVC animated:YES]; + } + break; + default: + break; + } +} + +#pragma mark - Event Response +- (void)encourageBtutonPerformance:(UIButton *)sender { + [self.navigationController popViewControllerAnimated:YES]; +} + +#pragma mark - Getters And Setters +- (UIView *)nevRegard { + if (!_nevRegard) { + _nevRegard = [[UIView alloc] init]; + _nevRegard.backgroundColor = [UIColor clearColor]; + } + return _nevRegard; +} + +- (UIButton *)backButton { + if (!_backButton) { + _backButton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_backButton setImage:[UIImage imageNamed:@"yumi_main_search_white_back"] forState:UIControlStateNormal]; + [_backButton setImage:[UIImage imageNamed:@"yumi_main_search_white_back"] forState:UIControlStateSelected]; + [_backButton addTarget:self action:@selector(encourageBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _backButton; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.textAlignment = NSTextAlignmentCenter; + _titleLabel.font = [UIFont systemFontOfSize:17]; + _titleLabel.textColor = [UIColor whiteColor]; + } + return _titleLabel; +} + +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; + _tableView.delegate = self; + _tableView.dataSource = self; + UIView *footView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth, 20)]; + footView.backgroundColor = [UIColor clearColor]; + _tableView.tableFooterView = footView; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.backgroundColor = [UIColor clearColor]; + _tableView.showsVerticalScrollIndicator = NO; + if (@available(iOS 11.0, *)) { + _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + [_tableView registerClass:[YUMICollectiveComponentTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMICollectiveComponentTabulationRegardElement class])]; + } + return _tableView; +} + +- (NSMutableArray *)datasource { + if (!_datasource) { + _datasource = [NSMutableArray array]; + } + return _datasource; +} + +- (YUMIUnionIntelligencerRegard *)intelligenceerRegard { + if (!_intelligenceerRegard) { + _intelligenceerRegard = [[YUMIUnionIntelligencerRegard alloc] init]; + _intelligenceerRegard.delegate = self; + } + return _intelligenceerRegard; +} + +@end diff --git a/YuMi/Modules/YMMine/View/Guild/View/YUMIManeExchangeAuthorityVC.h b/YuMi/Modules/YMMine/View/Guild/View/YUMIManeExchangeAuthorityVC.h new file mode 100644 index 00000000..dbf84f4f --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/YUMIManeExchangeAuthorityVC.h @@ -0,0 +1,16 @@ +// +// YUMIManeExchangeAuthorityVC.h +// YuMi +// +// Created by YuMi on 2023/2/13. +// + +#import "MvpRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeExchangeAuthorityVC : MvpRegardGovernancer + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/View/YUMIManeExchangeAuthorityVC.m b/YuMi/Modules/YMMine/View/Guild/View/YUMIManeExchangeAuthorityVC.m new file mode 100644 index 00000000..3c966c2c --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/YUMIManeExchangeAuthorityVC.m @@ -0,0 +1,163 @@ +// +// YUMIManeExchangeAuthorityVC.m +// YuMi +// +// Created by YuMi on 2023/2/13. +// + +#import "YUMIManeExchangeAuthorityVC.h" +#import "YUMIManeExchangeAuthorityElement.h" +#import "YUMIManeExchangeAuthorityFooderRegard.h" +#import "YUMIManeExchangeAuthorityIntelligenceRegard.h" +#import "YUMIManePromptWindow.h" +#import "MKJPopup.h" +#import "DJDKMIMOMColor.h" +#import "YUMIManeExchangeAuthorityMatrix.h" +#import "YUMICollectiveExternalizer.h" +#import "FBCCollectiveCeremony.h" +@interface YUMIManeExchangeAuthorityVC () +@property (nonatomic,strong) UITableView *tableView; +@property (nonatomic,strong) NSMutableArray *dataList; +@end + +@implementation YUMIManeExchangeAuthorityVC +- (YUMICollectiveExternalizer *)producePresimport { + return [[YUMICollectiveExternalizer alloc] init]; +} +- (void)viewDidLoad { + [super viewDidLoad]; + [self initSubViews]; + [self initChildLyRestrictions]; + [self.presimport acquireCollectiveChamberComponentTowardstesttowardsionoritySttowardsement]; + +} +#pragma mark - Private Method +- (void)initSubViews { + self.dataList = [NSMutableArray array]; + self.title = YMLocalizedString(@"YUMI_MineExchangeAuthorityVC0"); + [self.view addSubview:self.tableView]; +} +- (void)initChildLyRestrictions { + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.equalTo(self.view); + }]; +} +#pragma mark -获取房主兑换权限列表 +-(void)acquireCollectiveChamberComponentTowardstesttowardsionoritySttowardsementAccomplishment:(NSArray *)list{ + NSMutableArray *openList = [NSMutableArray array]; + NSMutableArray *closeList = [NSMutableArray array]; + for (YUMIManeExchangeAuthorityMatrix *model in list) { + if(model.exchangeAuthStatus == 0){ + [openList addObject:model]; + }else{ + [closeList addObject:model]; + } + } + NSArray * getOpenList = [openList sortedArrayUsingComparator:^NSComparisonResult(YUMIManeExchangeAuthorityMatrix * obj1, YUMIManeExchangeAuthorityMatrix * obj2) { + NSComparisonResult result = obj1.golds < obj2.golds; + return result; + }]; + NSArray *getcloseList = [closeList sortedArrayUsingComparator:^NSComparisonResult(YUMIManeExchangeAuthorityMatrix * obj1, YUMIManeExchangeAuthorityMatrix * obj2) { + NSComparisonResult result = obj1.golds < obj2.golds; + return result; + }]; + [self.dataList addObject:[getOpenList mutableCopy]]; + [self.dataList addObject:[getcloseList mutableCopy]]; + [self.tableView reloadData]; +} +- (void)acquireExdiversifictowardsionTowardstesttowardsionorityConsequentAccomplishment:(YUMIManeExchangeAuthorityMatrix *)model status:(NSString *)status{ + [self EvidenceAccomplishmentToast:status.intValue == 0 ? YMLocalizedString(@"YUMI_MineExchangeAuthorityVC3"):YMLocalizedString(@"YUMI_MineExchangeAuthorityVC4") ]; + NSMutableArray *openList = self.dataList.firstObject; + NSMutableArray *closeList = self.dataList.lastObject; + model.exchangeAuthStatus = status.intValue; + if([status isEqualToString:@"1"]){ + [closeList addObject:model]; + [openList removeObject:model]; + }else{ + [closeList removeObject:model]; + [openList addObject:model]; + } + NSArray *getOpenList = [openList sortedArrayUsingComparator:^NSComparisonResult(YUMIManeExchangeAuthorityMatrix * obj1, YUMIManeExchangeAuthorityMatrix * obj2) { + NSComparisonResult result = obj1.golds < obj2.golds; + return result; + }]; + + NSArray *getcloseList = [closeList sortedArrayUsingComparator:^NSComparisonResult(YUMIManeExchangeAuthorityMatrix * obj1, YUMIManeExchangeAuthorityMatrix * obj2) { + NSComparisonResult result = obj1.golds < obj2.golds; + return result; + }]; + self.dataList[0] = [getOpenList mutableCopy]; + self.dataList[1] = [getcloseList mutableCopy]; + [self.tableView reloadData]; +} + +#pragma mark -FBCManeExchangeAuthorityElementRepresendtation +-(void)unfoildExdiversifictowardsionTowardstesttowardsionoritySwiftPosition:(NSString *)status model:(YUMIManeExchangeAuthorityMatrix *)model{ + if([status isEqualToString:@"0"]){ + YUMIManePromptWindow *window = [[YUMIManePromptWindow alloc]initWithFrame:CGRectMake(0, 0, KScreenWidth, KScreenHeight)]; + window.name = model.nick; + @kWeakify(self); + window.acknowledgementHandler = ^(){ + @kStrongify(self); + [self.presimport masterDisableRrEnablecomponentExdiversifictowardsionRights:status targetUid:model.uid model:model]; + }; + [MKJPopup popupRegard:window style:MKJPopupStyleAlert]; + return; + } + [self.presimport masterDisableRrEnablecomponentExdiversifictowardsionRights:status targetUid:model.uid model:model]; +} +#pragma mark -UITableViewDelegate,UITableViewDataSource +-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{ + return self.dataList.count; +} +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ + return [self.dataList[section]count]; +} +-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ + YUMIManeExchangeAuthorityElement *cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIManeExchangeAuthorityElement class]) forIndexPath:indexPath]; + if(indexPath.section < self.dataList.count){ + if(indexPath.row < [self.dataList[indexPath.section]count]){ + YUMIManeExchangeAuthorityMatrix *model = self.dataList[indexPath.section][indexPath.row]; + cell.attestationorityMatrix = model; + } + } + cell.delegate = self; + return cell; +} +-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{ + return kGetScaleWidth(32); +} +-(CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section{ + return kGetScaleWidth(45); +} +-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{ + + YUMIManeExchangeAuthorityIntelligenceRegard *intelligenceerRegard = [tableView dequeueReusableHeaderFooterViewWithIdentifier:NSStringFromClass([YUMIManeExchangeAuthorityIntelligenceRegard class])]; + intelligenceerRegard.title = section == 0 ? YMLocalizedString(@"YUMI_MineExchangeAuthorityVC1"):YMLocalizedString(@"YUMI_MineExchangeAuthorityVC2"); + return intelligenceerRegard; +} +- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section{ + YUMIManeExchangeAuthorityFooderRegard *fooderView = [tableView dequeueReusableHeaderFooterViewWithIdentifier:NSStringFromClass([YUMIManeExchangeAuthorityFooderRegard class])]; + fooderView.title = section == 0 ? YMLocalizedString(@"YUMI_MineExchangeAuthorityFooderView0"):YMLocalizedString(@"YUMI_MineExchangeAuthorityFooderView1"); + return fooderView; +} +#pragma mark -懒加载 +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.backgroundColor = UIColorFromRGB(0xF3F5FA); + _tableView.rowHeight = kGetScaleWidth(80); + if (@available(iOS 11.0, *)) { + _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + [_tableView registerClass:[YUMIManeExchangeAuthorityIntelligenceRegard class] forHeaderFooterViewReuseIdentifier:NSStringFromClass([YUMIManeExchangeAuthorityIntelligenceRegard class])]; + [_tableView registerClass:[YUMIManeExchangeAuthorityFooderRegard class] forHeaderFooterViewReuseIdentifier:NSStringFromClass([YUMIManeExchangeAuthorityFooderRegard class])]; + [_tableView registerClass:[YUMIManeExchangeAuthorityElement class] forCellReuseIdentifier:NSStringFromClass([YUMIManeExchangeAuthorityElement class])]; + } + return _tableView; +} + +@end diff --git a/YuMi/Modules/YMMine/View/Guild/View/YUMIManeMainUnionStatementVC.h b/YuMi/Modules/YMMine/View/Guild/View/YUMIManeMainUnionStatementVC.h new file mode 100644 index 00000000..6e3dfc66 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/YUMIManeMainUnionStatementVC.h @@ -0,0 +1,18 @@ +// +// YUMIManeMainUnionStatementVC.h +// YuMi +// +// Created by YuMi on 2022/11/3. +// + +#import +#import +#import +#import "MvpRegardGovernancer.h" +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeMainUnionStatementVC : MvpRegardGovernancer +@property (nonatomic,assign) BOOL isFromCorridor; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/View/YUMIManeMainUnionStatementVC.m b/YuMi/Modules/YMMine/View/Guild/View/YUMIManeMainUnionStatementVC.m new file mode 100644 index 00000000..38e92172 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/YUMIManeMainUnionStatementVC.m @@ -0,0 +1,150 @@ +// +// YUMIManeMainUnionStatementVC.m +// YuMi +// +// Created by YuMi on 2022/11/3. +// +#import +#import +#import +#import "YUMIManeMainUnionStatementVC.h" +#import "YUMIManeUnionStatementVC.h" +#import "DJDKMIMOMColor.h" +#import "UIImage+Utils.h" +#import "YUMIMacroUitls.h" +#import +@interface YUMIManeMainUnionStatementVC() +@property (nonatomic, strong) JXCategoryTitleView *titleView; +@property (nonatomic, strong) JXCategoryIndicatorImageView *burlywoodRegard; +@property (nonatomic, strong) JXPagerView *pagingRegard; +@property (nonatomic,strong) UIView *intelligenceRegard; +@property (nonatomic, strong) NSArray *titles; +@property (nonatomic,strong) YUMIManeUnionStatementVC *gulidVewC; +@property (nonatomic,strong) YUMIManeUnionStatementVC *chamberVewC; +@end + +@implementation YUMIManeMainUnionStatementVC + + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initSubViews]; + [self initChildLyRestrictions]; + +} +#pragma mark - Private Method +- (void)initSubViews { + self.view.backgroundColor = [UIColor whiteColor]; + self.title = YMLocalizedString(@"YUMI_MineGuildListVC0"); + self.intelligenceRegard = [UIView new]; + [self.view addSubview:self.pagingRegard]; + +} +- (void)initChildLyRestrictions { + [self.pagingRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.equalTo(self.view); + }]; +} + +#pragma mark - JXCategoryViewDelegate +- (NSUInteger)tableHeaderViewHeightInPagerView:(JXPagerView *)periodrRegard { + return 0; +} +- (UIView *)tableHeaderViewInPagerView:(JXPagerView *)periodrRegard { + return self.intelligenceRegard; +} +- (NSUInteger)heightForPinSectionHeaderInPagerView:(JXPagerView *)periodrRegard { + return kGetScaleWidth(44); +} + +- (UIView *)viewForPinSectionHeaderInPagerView:(JXPagerView *)periodrRegard { + return self.titleView; +} + +- (NSInteger)numberOfListsInPagerView:(JXPagerView *)periodrRegard { + return self.titles.count; +} + + +- (id)periodrRegard:(JXPagerView *)periodrRegard initListAtIndex:(NSInteger)index { + UIViewController *viewController; + if (index == 0) { + return self.gulidVewC; + } else{ + return self.chamberVewC; + } + + + return (id )viewController; +} +#pragma mark - 懒加载 +- (NSArray *)titles { + if (!_titles) { + _titles = @[YMLocalizedString(@"YUMI_MineMainGuildListVC0"), YMLocalizedString(@"YUMI_MineMainGuildListVC1")]; + } + return _titles; +} + +- (JXCategoryTitleView *)titleView { + if (!_titleView) { + _titleView = [[JXCategoryTitleView alloc] init]; + _titleView.delegate = self; + _titleView.backgroundColor = [UIColor clearColor]; + _titleView.titleColor = UIColorFromRGB(0x6D6B89); + _titleView.titleSelectedColor = UIColorFromRGB(0x1F1A4E); + _titleView.titleFont = [UIFont systemFontOfSize:15 weight:UIFontWeightMedium]; + _titleView.titleSelectedFont = [UIFont systemFontOfSize:15 weight:UIFontWeightMedium]; + _titleView.titleLabelAnchorPointStyle = JXCategoryTitleLabelAnchorPointStyleCenter; + _titleView.contentScrollViewClickTransitionAnimationEnabled = NO; + _titleView.defaultSelectedIndex = 0; + _titleView.averageCellSpacingEnabled = NO; + + _titleView.cellWidth = KScreenWidth / 2 - 20 ; + _titleView.contentEdgeInsetLeft = 0; + _titleView.contentEdgeInsetRight = 0; + _titleView.titles = self.titles; + _titleView.listContainer = (id)self.pagingRegard.listContainerView; + + JXCategoryIndicatorImageView *burlywoodRegard = [[JXCategoryIndicatorImageView alloc] init]; + burlywoodRegard.indicatorImageViewSize = CGSizeMake(16, 3); + burlywoodRegard.verticalMargin = 10; + burlywoodRegard.indicatorImageView.image = [UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor acknowledgementBtutonObliquityMiddlePrettify],[DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(16, 3)]; + burlywoodRegard.indicatorImageView.layer.masksToBounds = YES; + burlywoodRegard.indicatorImageView.layer.cornerRadius = 1.5; + _titleView.indicators = @[burlywoodRegard]; + } + return _titleView; +} + +- (JXPagerView *)pagingRegard { + if (!_pagingRegard) { + _pagingRegard = [[JXPagerView alloc] initWithDelegate:self listContainerType:0]; + _pagingRegard.backgroundColor = [UIColor clearColor]; + _pagingRegard.listContainerView.backgroundColor = [UIColor clearColor]; + _pagingRegard.mainTableView.backgroundColor = [UIColor clearColor]; + _pagingRegard.listContainerView.listCellBackgroundColor = UIColor.clearColor; + _pagingRegard.mainTableView.gestureDelegate = self; + _pagingRegard.pinSectionHeaderVerticalOffset = 0; + + [_pagingRegard.mainTableView.panGestureRecognizer requireGestureRecognizerToFail:self.navigationController.interactivePopGestureRecognizer]; + } + return _pagingRegard; +} +-(YUMIManeUnionStatementVC *)gulidVewC{ + if (!_gulidVewC){ + _gulidVewC = [[YUMIManeUnionStatementVC alloc]init]; + _gulidVewC.type = 0; + _gulidVewC.isFromCorridor = self.isFromCorridor; + } + return _gulidVewC; +} +-(YUMIManeUnionStatementVC *)chamberVewC{ + if (!_chamberVewC){ + _chamberVewC = [[YUMIManeUnionStatementVC alloc]init]; + _chamberVewC.type = 1; + _chamberVewC.isFromCorridor = self.isFromCorridor; + + } + return _chamberVewC; +} +@end diff --git a/YuMi/Modules/YMMine/View/Guild/View/YUMIManeUnionHuntforRegardGovernancer.h b/YuMi/Modules/YMMine/View/Guild/View/YUMIManeUnionHuntforRegardGovernancer.h new file mode 100644 index 00000000..43af5baf --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/YUMIManeUnionHuntforRegardGovernancer.h @@ -0,0 +1,34 @@ +// +// YUMIManeUnionHuntforRegardGovernancer.h +// YuMi +// +// Created by YuMi on 2022/4/7. +// + +#import "MvpRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN +@class YUMIManeUnionHuntforRegardGovernancer, CollectiveComponentAbstractMatrix, UnionHuntforConsumerAbstractMatrix, UnionHuntforSensationalManagementMatrix; +typedef NS_ENUM(NSInteger, UnionSearchGenre) { + UnionSearchGenre_Clan_All_Member = 1, + + UnionSearchGenre_Guild_Add_Member, + + UnionSearchGenre_Clan_Add_Super_Admin, +}; + +@protocol FBCManeUnionHuntforRegardGovernancerRepresendtation +@optional +- (void)fBCManeUnionHuntforRegardGovernancer:(YUMIManeUnionHuntforRegardGovernancer *)viewController chooseUserInfo:(CollectiveComponentAbstractMatrix *)componentAbstract; +- (void)fBCManeUnionHuntforRegardGovernancer:(YUMIManeUnionHuntforRegardGovernancer *)viewController inviteUserInfo:(UnionHuntforConsumerAbstractMatrix *)userInfo; +- (void)fBCManeUnionHuntforRegardGovernancer:(YUMIManeUnionHuntforRegardGovernancer *)viewController superAdminInfo:(UnionHuntforSensationalManagementMatrix *)superAdminInfo; +@end + +@interface YUMIManeUnionHuntforRegardGovernancer : MvpRegardGovernancer +@property (nonatomic,weak) id delegate; +@property (nonatomic,copy) NSString *collectiveMaintainrietaryCid; +@property (nonatomic,assign) UnionSearchGenre searchType; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/View/YUMIManeUnionHuntforRegardGovernancer.m b/YuMi/Modules/YMMine/View/Guild/View/YUMIManeUnionHuntforRegardGovernancer.m new file mode 100644 index 00000000..6c63a592 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/YUMIManeUnionHuntforRegardGovernancer.m @@ -0,0 +1,293 @@ +// +// YUMIManeUnionHuntforRegardGovernancer.m +// YuMi +// +// Created by YuMi on 2022/4/7. +// + +#import "YUMIManeUnionHuntforRegardGovernancer.h" +#import + +#import "DJDKMIMOMColor.h" +#import "MKJPopup.h" +#import "CollectiveComponentSpecificAbstractMatrix.h" +#import "UnionHuntforConsumerAbstractMatrix.h" +#import "UnionHuntforSensationalManagementMatrix.h" +#import "YUMIUnionHuntforNevRegard.h" +#import "YUMICollectiveComponentTabulationRegardElement.h" +#import "YUMIManeUnionDispossessTabulationRegardElement.h" +#import "YUMIManeUnionHuntforComponentTabulationRegardElement.h" +#import "YUMIUnionHuntforSensationalManagementTabulationRegardElement.h" +#import "YUMIManeConsumerAbstractRegardGovernancer.h" +#import "YUMIManeUnionChooseExecutiveRegardGovernancer.h" +#import "InterlocutionRegardGovernancer.h" +#import "YUMIUnionHuntforExternalizer.h" +#import "FBCUnionHuntforCeremony.h" + + +@interface YUMIManeUnionHuntforRegardGovernancer () +@property (nonatomic,strong) YUMIUnionHuntforNevRegard *nevRegard; +@property (nonatomic,strong) UITableView *tableView; +@property (nonatomic,strong) NSArray *datasource; +@end + +@implementation YUMIManeUnionHuntforRegardGovernancer +- (BOOL)isVeiledNevObstacle { + return YES; +} +- (__kindof id)producePresimport { + return [[YUMIUnionHuntforExternalizer alloc] init]; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initSubViews]; + [self initChildLyRestrictions]; +} +- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { + [self.view endEditing:YES]; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self.view addSubview:self.nevRegard]; + [self.view addSubview:self.tableView]; +} + +- (void)initChildLyRestrictions { + [self.nevRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self.view); + make.height.mas_equalTo(kNavigationHeight); + }]; + + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.mas_equalTo(self.view); + make.top.mas_equalTo(self.nevRegard.mas_bottom); + }]; +} +#pragma mark - UITableViewDelegate And UITableViewDataSource +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.datasource.count > 0 ? self.datasource.count : 1; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + if (self.datasource.count > 0) { + if (self.searchType == UnionSearchGenre_Clan_All_Member) { + return 66; + } else if(self.searchType == UnionSearchGenre_Guild_Add_Member) { + return 80; + } else if(self.searchType == UnionSearchGenre_Clan_Add_Super_Admin) { + return 70; + } + return 0; + } + + return (KScreenHeight - kNavigationHeight); +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + if (self.datasource.count > 0 ) { + if (self.searchType == UnionSearchGenre_Clan_All_Member) { + YUMICollectiveComponentTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMICollectiveComponentTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMICollectiveComponentTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMICollectiveComponentTabulationRegardElement class])]; + } + cell.cellType = ClanMemberTableRegardCellGenre_Normal; + CollectiveComponentAbstractMatrix * componentAbstract = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + cell.componentAbstract = componentAbstract; + return cell; + }else if(self.searchType == UnionSearchGenre_Guild_Add_Member) { + YUMIManeUnionHuntforComponentTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIManeUnionHuntforComponentTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIManeUnionHuntforComponentTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIManeUnionHuntforComponentTabulationRegardElement class])]; + } + cell.delegate = self; + UnionHuntforConsumerAbstractMatrix * userInfo = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + cell.userInfo = userInfo; + return cell; + } else if(self.searchType == UnionSearchGenre_Clan_Add_Super_Admin) { + YUMIUnionHuntforSensationalManagementTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIUnionHuntforSensationalManagementTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIUnionHuntforSensationalManagementTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIUnionHuntforSensationalManagementTabulationRegardElement class])]; + } + cell.delegate = self; + UnionHuntforSensationalManagementMatrix * userInfo = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + cell.userInfo = userInfo; + return cell; + } + } + YUMIManeUnionDispossessTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIManeUnionDispossessTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIManeUnionDispossessTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIManeUnionDispossessTabulationRegardElement class])]; + } + switch (self.searchType) { + case UnionSearchGenre_Clan_All_Member: + cell.emptyTitle = YMLocalizedString(@"YUMI_MineGuildSearchViewController0"); + break; + + default: + break; + } + return cell; +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + [tableView deselectRowAtIndexPath:indexPath animated:YES]; + if (self.datasource.count > 0) { + switch (self.searchType) { + case UnionSearchGenre_Clan_All_Member: + { + CollectiveComponentAbstractMatrix * componentAbstract = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + YUMIManeConsumerAbstractRegardGovernancer * userInfoVC = [[YUMIManeConsumerAbstractRegardGovernancer alloc] init]; + userInfoVC.uid = componentAbstract.uid.integerValue; + [((UINavigationController *)self.presentingViewController) pushViewController:userInfoVC animated:YES]; + [self dismissViewControllerAnimated:NO completion:nil]; + } + break; + case UnionSearchGenre_Guild_Add_Member: + { + UnionHuntforConsumerAbstractMatrix * userInfo = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + YUMIManeConsumerAbstractRegardGovernancer * userInfoVC = [[YUMIManeConsumerAbstractRegardGovernancer alloc] init]; + userInfoVC.uid = userInfo.uid.integerValue; + [((UINavigationController *)self.presentingViewController) pushViewController:userInfoVC animated:YES]; + [self dismissViewControllerAnimated:NO completion:nil]; + } + break; + default: + break; + } + } +} + +#pragma mark - FBCCollectiveMemberTabulationViweElementRepresendtation +- (void)yUMICollectiveComponentTarbsultowardsionViweElement:(YUMICollectiveComponentTabulationRegardElement *)view didClickUser:(CollectiveComponentAbstractMatrix *)userinfo { + if (self.delegate && [self.delegate respondsToSelector:@selector(fBCManeUnionHuntforRegardGovernancer:chooseUserInfo:)]) { + [self.delegate fBCManeUnionHuntforRegardGovernancer:self chooseUserInfo:userinfo]; + } +} + +#pragma mark - FBCManeUnionHuntforMemberTabulationViweElementRepresendtation +- (void)fBCManeUnionHuntforComponentTarbsultowardsionViweElement:(YUMIManeUnionHuntforComponentTabulationRegardElement *)view didSelectInfo:(UnionHuntforConsumerAbstractMatrix *)userInfo { + if(userInfo.hallBtnStatus == 6){ + InterlocutionRegardGovernancer * sessionVC = [[InterlocutionRegardGovernancer alloc] initWithSession:[NIMSession session:userInfo.hallMessageUid type:NIMSessionTypeP2P]]; + sessionVC.recordId = userInfo.hallRecordId; + [self.navigationController pushViewController:sessionVC animated:YES]; + return; + } + if (self.delegate && [self.delegate respondsToSelector:@selector(fBCManeUnionHuntforRegardGovernancer:inviteUserInfo:)]) { + [self.delegate fBCManeUnionHuntforRegardGovernancer:self inviteUserInfo:userInfo]; + } +} + +#pragma mark - YUMIUnionHuntforNevRegard +- (void)yUMIUnionHuntforNevRegard:(YUMIUnionHuntforNevRegard *)view didClickBack:(UIButton *)sender { + [self.navigationController popViewControllerAnimated:YES]; +} + +- (void)yUMIUnionHuntforNevRegard:(YUMIUnionHuntforNevRegard *)view didClickSearch:(UIButton *)sender { + NSString * key = view.searchTextField.text; + if (key.length <= 0) { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_MineGuildSearchViewController1")]; + return; + } + switch (self.searchType) { + case UnionSearchGenre_Clan_All_Member: + [self.presimport huntforCollectiveComponentSttowardsement:self.collectiveMaintainrietaryCid key:key]; + break; + case UnionSearchGenre_Guild_Add_Member: + [self.presimport unionAccelertowardseComponentHuntfor:key]; + break; + case UnionSearchGenre_Clan_Add_Super_Admin: + [self.presimport huntforUnionSenstowardsionalManagement:key]; + break; + default: + break; + } +} + +#pragma mark - FBCUnionHuntforSensationalManagementTabulationViweElementRepresendtation +- (void)yUMIUnionHuntforSenstowardsionalManagementTarbsultowardsionViweElement:(YUMIUnionHuntforSensationalManagementTabulationRegardElement *)cell didSelectInfo:(UnionHuntforSensationalManagementMatrix *)userInfo { + if (userInfo && !userInfo.hasSet) { + + NSString * message = [NSString stringWithFormat:YMLocalizedString(@"YUMI_MineGuildSearchViewController2"), userInfo.nick, userInfo.erbanNo]; + MKJPrecautiousDisposition * config =[[MKJPrecautiousDisposition alloc] init]; + config.message = message; + + MKJPrecautiousCommunicationAttributedDisposition * nickAttribute = [[MKJPrecautiousCommunicationAttributedDisposition alloc] init]; + nickAttribute.text = userInfo.nick; + nickAttribute.color = [DJDKMIMOMColor aplictowardsionMainPrettify]; + + MKJPrecautiousCommunicationAttributedDisposition * idAttribute = [[MKJPrecautiousCommunicationAttributedDisposition alloc] init]; + idAttribute.text = userInfo.erbanNo; + idAttribute.color = [DJDKMIMOMColor aplictowardsionMainPrettify]; + config.communicationAttributedDisposition = @[nickAttribute, idAttribute]; + [MKJPopup precautiousAboutDisposition:config acknowledgementHandler:^{ + YUMIManeUnionChooseExecutiveRegardGovernancer * managerRoomVC = [[YUMIManeUnionChooseExecutiveRegardGovernancer alloc] init]; + managerRoomVC.clanId = self.collectiveMaintainrietaryCid; + managerRoomVC.targetUid = userInfo.uid; + [(UINavigationController *)self.presentingViewController pushViewController:managerRoomVC animated:YES]; + [self dismissViewControllerAnimated:YES completion:nil]; + } cancelHandler:^{ + + }]; + } +} + +#pragma mark - FBCUnionHuntforCeremony +- (void)huntforCollectiveComponentSttowardsementAccomplishment:(NSArray *)memberList { + self.datasource = memberList; + [self.tableView reloadData]; +} + +- (void)unionAccelertowardseComponentHuntforAccomplishment:(NSArray *)memberList { + self.datasource = memberList; + [self.tableView reloadData]; +} + +- (void)huntforUnionSenstowardsionalManagementAccomplishment:(NSArray *)memberList { + self.datasource = memberList; + [self.tableView reloadData]; +} + +#pragma mark - Getters And Setters +- (void)setSearchType:(UnionSearchGenre)searchType { + _searchType = searchType; + switch (_searchType) { + case UnionSearchGenre_Clan_Add_Super_Admin: + self.nevRegard.searchTextField.keyboardType = UIKeyboardTypeNumberPad; + self.nevRegard.deparatmentMaintainrietary = YMLocalizedString(@"YUMI_MineGuildSearchViewController3"); + break; + + default: + break; + } +} + +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.tableFooterView = [UIView new]; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.backgroundColor = [UIColor clearColor]; + if (@available(iOS 11.0, *)) { + _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + [_tableView registerClass:[YUMICollectiveComponentTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMICollectiveComponentTabulationRegardElement class])]; + [_tableView registerClass:[YUMIManeUnionHuntforComponentTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIManeUnionHuntforComponentTabulationRegardElement class])]; + [_tableView registerClass:[YUMIUnionHuntforSensationalManagementTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIUnionHuntforSensationalManagementTabulationRegardElement class])]; + } + return _tableView; +} + +- (YUMIUnionHuntforNevRegard *)nevRegard { + if (!_nevRegard) { + _nevRegard = [[YUMIUnionHuntforNevRegard alloc] init]; + _nevRegard.delegate = self; + } + return _nevRegard; +} + + +@end diff --git a/YuMi/Modules/YMMine/View/Guild/View/YUMIManeUnionRegardGovernancer.h b/YuMi/Modules/YMMine/View/Guild/View/YUMIManeUnionRegardGovernancer.h new file mode 100644 index 00000000..0b55cd6c --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/YUMIManeUnionRegardGovernancer.h @@ -0,0 +1,17 @@ +// +// YUMIManeUnionRegardGovernancer.h +// YuMi +// +// Created by YuMi on 2022/4/6. +// + +#import "MvpRegardGovernancer.h" +NS_ASSUME_NONNULL_BEGIN +@interface YUMIManeUnionRegardGovernancer : MvpRegardGovernancer +@property (nonatomic,strong) NSString *ownerUid; +@property (nonatomic,strong) NSString *instituteId; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/View/YUMIManeUnionRegardGovernancer.m b/YuMi/Modules/YMMine/View/Guild/View/YUMIManeUnionRegardGovernancer.m new file mode 100644 index 00000000..0951b9c2 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/YUMIManeUnionRegardGovernancer.m @@ -0,0 +1,818 @@ +// +// YUMIManeUnionRegardGovernancer.m +// YuMi +// +// Created by YuMi on 2022/4/6. +// 公会主页 + +#import "YUMIManeUnionRegardGovernancer.h" +#import +#import +#import "DJDKMIMOMColor.h" +#import "NetIndicateRegard.h" +#import "AccountAbstractStorage.h" +#import "MKJPopup.h" +#import "UIImage+Utils.h" +#import "XNDJTBWGLoadingTool.h" +#import "CollectiveSpecificAbstractMatrix.h" +#import "CollectiveComponentSpecificAbstractMatrix.h" +#import "UnionAuthMatrix.h" +#import "UnionHuntforConsumerAbstractMatrix.h" +#import "YUMIManeUnionStatementMatrix.h" +#import "YUMICollectiveComponentTabulationRegardElement.h" +#import "YUMICollectiveDivisionRegard.h" +#import "YUMIManeUnionSetNameRegardGovernancer.h" +#import "YUMIManeUnionHuntforRegardGovernancer.h" +#import "YUMIManeUnionRemoveComponentRegardGovernancer.h" +#import "YUMIManeMangerStatementRegardGovernancer.h" +#import "YUMIManeUnionRevenueStatsticsRegardGovernancer.h" +#import "YUMIManeHallKellegRevenueStatsticsRegardGovernancer.h" +#import "YUMIManeConsumerAbstractRegardGovernancer.h" +#import "YUMIManeMainUnionStatementVC.h" +#import "InterlocutionRegardGovernancer.h" +#import "YUMIUnionExternalizer.h" +#import "FBCUnionCeremony.h" + +UIKIT_EXTERN NSString *kInviteMemeberSuccess; + +@interface YUMIManeUnionRegardGovernancer () +@property (nonatomic,strong) UIView * nevRegard; +@property (nonatomic,strong) UIButton *backButton; +@property (nonatomic,strong) UILabel *titleLabel; +@property (nonatomic,strong) UIStackView *rectifyHierarchyRegard; +@property (nonatomic,strong) UIButton *compileBtuton; +@property (nonatomic,strong) UIButton *exitBtuton; +@property (nonatomic,strong) UITableView *tableView; +@property (nonatomic,strong) UIView * intelligenceerRegard; +@property (nonatomic,strong) NetIndicateRegard *intelligenceportraitIndicateRegard; +@property (nonatomic,strong) UILabel *idSequencignation; +@property (nonatomic,strong) NetIndicateRegard *encourageIndicateRegard; +@property (nonatomic,strong) UIImageView *spossessowIndicateRegard; +@property (nonatomic,assign) int page; +@property (nonatomic,assign) BOOL hasNoFurthaerAtoloudspeaker; +@property (nonatomic,strong) NSMutableArray *datasource; +@property (nonatomic,strong) YUMICollectiveDivisionRegard *sectionRegard; +@property (nonatomic,strong) CollectiveSpecificAbstractMatrix *collectiveSpecificAbstract; +@property (nonatomic,strong) CollectiveSpecificAbstractMatrix *universalConsumerCollectiveAbstract; +@property (nonatomic,strong) NSArray *attestationStatement; +@property (nonatomic,strong) NSArray *executiveAttestationStatement; + +@property (nonatomic,strong) MKJActionSheetDisposition *accelerateGuildProvision; + +@property (nonatomic,strong) MKJActionSheetDisposition *accelerateComponentProvision; +@property (nonatomic,strong) MKJActionSheetDisposition *removeComponentProvision; +@property (nonatomic,strong) MKJActionSheetDisposition *componentRevenueProvision; +@property (nonatomic,strong) MKJActionSheetDisposition *singleRevenueProvision; +@property (nonatomic,strong) MKJActionSheetDisposition *executiveSetProvision; +@property (nonatomic,strong) UIView *accelerateChamberRegard; +@property (nonatomic,strong) YUMIManeUnionStatementMatrix *declareMatrix; +@end + +@implementation YUMIManeUnionRegardGovernancer + +- (BOOL)isVeiledNevObstacle { + return YES; +} + +- (YUMIUnionExternalizer *)producePresimport { + return [[YUMIUnionExternalizer alloc] init]; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initSubViews]; + [self initChildLyRestrictions]; + [self initIntelligencerGrantedTerminalerRrfresh]; +} + +- (void)viewWillAppear:(BOOL)animated { + [super viewWillAppear:animated]; + [self intelligenceerRenovtowardseh]; +} +#pragma mark - 下拉刷新 +- (void)initIntelligencerGrantedTerminalerRrfresh { + MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(intelligenceerRenovtowardseh)]; + header.stateLabel.font = [UIFont systemFontOfSize:10.0]; + header.lastUpdatedTimeLabel.font = [UIFont systemFontOfSize:10.0]; + header.stateLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + header.lastUpdatedTimeLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + self.tableView.mj_header = header; + + MJRefreshBackNormalFooter *footer = [MJRefreshBackNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(footerRenovtowardseh)]; + footer.stateLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + footer.stateLabel.font = [UIFont systemFontOfSize:10.0]; + self.tableView.mj_footer = footer; +} + +#pragma mark - 刷新的fangfa +- (void)intelligenceerRenovtowardseh { + if (self.instituteId.length <= 0 || self.ownerUid.length <= 0) { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_MineGuildViewController0")]; + [self.navigationController popViewControllerAnimated:YES]; + return; + } + self.page = 1; + [self.presimport demandCorridorBtutonDeclareAboutCorridorId:self.instituteId]; + [self.presimport acquireCollectiveSpecificAbstract:self.ownerUid currentUserUid:[AccountAbstractStorage instance].acquireCid]; + [self.presimport acquireUnionComponentSttowardsement:self.instituteId page:self.page pageSize:20 state:0]; +} + +- (void)footerRenovtowardseh { + if (self.instituteId.length <= 0 || self.ownerUid.length <= 0) { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_MineGuildViewController1")]; + [self.navigationController popViewControllerAnimated:YES]; + return; + } + + if (self.hasNoFurthaerAtoloudspeaker) { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_MineGuildViewController2")]; + [self.tableView.mj_footer endRefreshing]; + return; + } + self.page++; + [self.presimport acquireUnionComponentSttowardsement:self.instituteId page:self.page pageSize:20 state:1]; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self.view addSubview:self.encourageIndicateRegard]; + [self.view addSubview:self.spossessowIndicateRegard]; + [self.view addSubview:self.tableView]; + + + + [self.view addSubview:self.nevRegard]; + [self.nevRegard addSubview:self.backButton]; + [self.nevRegard addSubview:self.titleLabel]; + [self.nevRegard addSubview:self.rectifyHierarchyRegard]; + + [self.encourageIndicateRegard addSubview:self.spossessowIndicateRegard]; + + [self.rectifyHierarchyRegard addArrangedSubview:self.exitBtuton]; + [self.rectifyHierarchyRegard addArrangedSubview:self.compileBtuton]; + + [self.intelligenceerRegard addSubview:self.intelligenceportraitIndicateRegard]; + [self.intelligenceerRegard addSubview:self.idSequencignation]; + self.intelligenceerRegard.frame = CGRectMake(0, 0, KScreenWidth, 174 + kSafeAreaTopHeight); + self.tableView.tableHeaderView = self.intelligenceerRegard; + + + [self.view addSubview:self.accelerateChamberRegard]; + @kWeakify(self); + self.accelerateComponentProvision.ticktackPerformance = ^{ + @kStrongify(self); + YUMIManeUnionHuntforRegardGovernancer * searchVC = [[YUMIManeUnionHuntforRegardGovernancer alloc] init]; + searchVC.modalPresentationStyle = UIModalPresentationOverFullScreen; + searchVC.searchType = UnionSearchGenre_Guild_Add_Member; + searchVC.delegate = self; + [self.navigationController pushViewController:searchVC animated:YES]; + }; + + self.removeComponentProvision.ticktackPerformance = ^{ + @kStrongify(self); + YUMIManeUnionRemoveComponentRegardGovernancer * removeVC = [[YUMIManeUnionRemoveComponentRegardGovernancer alloc] init]; + removeVC.instituteId = self.collectiveSpecificAbstract.hall.hallId; + [self.navigationController pushViewController:removeVC animated:YES]; + }; + + self.componentRevenueProvision.ticktackPerformance = ^{ + @kStrongify(self); + YUMIManeUnionRevenueStatsticsRegardGovernancer * personIncomeVC = [[YUMIManeUnionRevenueStatsticsRegardGovernancer alloc] init]; + personIncomeVC.hallId = self.collectiveSpecificAbstract.hall.hallId; + [self.navigationController pushViewController:personIncomeVC animated:YES]; + }; + + self.singleRevenueProvision.ticktackPerformance = ^{ + @kStrongify(self); + YUMIManeHallKellegRevenueStatsticsRegardGovernancer * managerList = [[YUMIManeHallKellegRevenueStatsticsRegardGovernancer alloc] init]; + managerList.hallId = self.collectiveSpecificAbstract.hall.hallId; + [self.navigationController pushViewController:managerList animated:YES]; + }; + self.accelerateGuildProvision.ticktackPerformance = ^{ + @kStrongify(self); + YUMIManeMainUnionStatementVC *vc = [YUMIManeMainUnionStatementVC new]; + vc.isFromCorridor = YES; + [self.navigationController pushViewController:vc animated:YES]; + }; + self.executiveSetProvision.ticktackPerformance = ^{ + @kStrongify(self); + YUMIManeMangerStatementRegardGovernancer * managerList = [[YUMIManeMangerStatementRegardGovernancer alloc] init]; + managerList.instituteId = self.collectiveSpecificAbstract.hall.hallId; + [self.navigationController pushViewController:managerList animated:YES]; + }; + +} + +- (void)initChildLyRestrictions { + [self.nevRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self.view); + make.height.mas_equalTo(kNavigationHeight); + }]; + + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self.view); + make.bottom.mas_equalTo(self.view); + }]; + [self.accelerateChamberRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(kGetScaleWidth(98)); + make.left.right.bottom.equalTo(self.view); + + }]; + + [self.backButton mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.view).mas_offset(10); + make.top.mas_equalTo(statusbarHeight); + make.height.width.mas_equalTo(44); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.backButton.mas_right); + make.right.mas_equalTo(self.rectifyHierarchyRegard.mas_left); + make.centerY.mas_equalTo(self.backButton); + }]; + + [self.rectifyHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self.nevRegard).offset(-15); + make.centerY.mas_equalTo(self.backButton); + }]; + + [self.exitBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(70); + make.height.mas_equalTo(22); + }]; + + [self.compileBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(22); + make.height.mas_equalTo(22); + }]; + + [self.encourageIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self.view); + make.height.mas_equalTo(250); + }]; + + [self.spossessowIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.encourageIndicateRegard); + }]; + + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(70, 70)); + make.centerX.mas_equalTo(self.intelligenceerRegard); + make.top.mas_equalTo(self.intelligenceerRegard).offset(66 + kSafeAreaTopHeight); + }]; + + [self.idSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.intelligenceerRegard); + make.top.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_bottom).offset(10); + }]; +} + +#pragma mark - UITableViewDelegate And UITableViewDataSource +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.datasource.count; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + YUMICollectiveComponentTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMICollectiveComponentTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMICollectiveComponentTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMICollectiveComponentTabulationRegardElement class])]; + } + cell.cellType = ClanMemberTableRegardCellGenre_Normal; + CollectiveComponentAbstractMatrix * componentAbstract = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + cell.isRecent = (self.datasource.count -1) == indexPath.row; + cell.componentAbstract = componentAbstract; + return cell; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + return 66; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { + return self.datasource.count > 0 ? 37 : 0.1; +} + +- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { + if (section == 0) { + if (self.sectionRegard == nil) { + YUMICollectiveDivisionRegard * sectionRegard = [[YUMICollectiveDivisionRegard alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth, 37)]; + sectionRegard.delegate = self; + sectionRegard.isApexCor = YES; + self.sectionRegard = sectionRegard; + } + return self.sectionRegard; + } + return [UIView new]; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section{ + return 0.01f; +} + +- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section{ + return [[UIView alloc]init]; +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + [tableView deselectRowAtIndexPath:indexPath animated:YES]; + if (self.datasource.count > 0) { + CollectiveComponentAbstractMatrix * componentAbstract = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + YUMIManeConsumerAbstractRegardGovernancer * userInfoVC = [[YUMIManeConsumerAbstractRegardGovernancer alloc] init]; + userInfoVC.uid = componentAbstract.uid.integerValue; + [self.navigationController pushViewController:userInfoVC animated:YES]; + } +} + +#pragma mark - FBCManeUnionHuntforRegardGovernancerRepresendtation +- (void)fBCManeUnionHuntforRegardGovernancer:(YUMIManeUnionHuntforRegardGovernancer *)viewController inviteUserInfo:(UnionHuntforConsumerAbstractMatrix *)userInfo { + if (userInfo && userInfo.uid.length > 0) { + NSString * title = [NSString stringWithFormat:YMLocalizedString(@"YUMI_MineGuildViewController3"), userInfo.nick,self.collectiveSpecificAbstract.hall.hallName]; + MKJPrecautiousCommunicationAttributedDisposition * inviteAlertConfig = [[MKJPrecautiousCommunicationAttributedDisposition alloc] init]; + inviteAlertConfig.text = userInfo.nick; + inviteAlertConfig.color = [DJDKMIMOMColor aplictowardsionMainPrettify]; + inviteAlertConfig.font = [UIFont systemFontOfSize:15]; + + MKJPrecautiousCommunicationAttributedDisposition * hallNameAlertConfig = [[MKJPrecautiousCommunicationAttributedDisposition alloc] init]; + hallNameAlertConfig.text = self.collectiveSpecificAbstract.hall.hallName; + hallNameAlertConfig.color = [DJDKMIMOMColor aplictowardsionMainPrettify]; + hallNameAlertConfig.font = [UIFont systemFontOfSize:15]; + + NSArray * array = @[inviteAlertConfig, hallNameAlertConfig]; + MKJPrecautiousDisposition * alerconfig= [[MKJPrecautiousDisposition alloc] init]; + alerconfig.message = title; + alerconfig.communicationAttributedDisposition = array; + alerconfig.title = YMLocalizedString(@"YUMI_MineGuildViewController4"); + [MKJPopup precautiousAboutDisposition:alerconfig acknowledgementHandler:^{ + [self.presimport centiretyforComponent:userInfo.uid hallId:self.collectiveSpecificAbstract.hall.hallId]; + } cancelHandler:^{ + + }]; + } +} + +#pragma mark - YUMICollectiveDivisionRegard +- (void)yUMICollectiveSectionRegard:(YUMICollectiveDivisionRegard *)view didClickSearch:(UIButton *)sender { + YUMIManeUnionHuntforRegardGovernancer * searchVC = [[YUMIManeUnionHuntforRegardGovernancer alloc] init]; + searchVC.modalPresentationStyle = UIModalPresentationOverFullScreen; + searchVC.searchType = UnionSearchGenre_Clan_All_Member; + searchVC.collectiveMaintainrietaryCid = self.collectiveSpecificAbstract.hall.ownerUid; + [self.navigationController presentViewController:searchVC animated:YES completion:nil]; +} + +- (void)yUMICollectiveSectionRegard:(YUMICollectiveDivisionRegard *)view didClickManager:(UIButton *)sender { + if (self.executiveAttestationStatement.count > 0) { + [MKJPopup performanceSheetAboutProvisions:self.executiveAttestationStatement]; + } +} + +#pragma mark -FBCCollectiveCeremony +- (void)demandCorridorBtutonDeclareAccomplishment:(YUMIManeUnionStatementMatrix *)model{ + self.declareMatrix = model; + [self setAplictowardsionlyBut:self.declareMatrix.hallBtnStatus]; +} +-(void)demandCorridorAccomplishment{ + self.declareMatrix.hallBtnStatus = 2; + [self setAplictowardsionlyBut:self.declareMatrix.hallBtnStatus]; + [self EvidenceAccomplishmentToast:YMLocalizedString(@"YUMI_MineGuildListVC4")]; +} +-(void)demandCorridorFlunk{ + +} +- (void)acquireUnionComponentSttowardsementAccomplishment:(CollectiveComponentSpecificAbstractMatrix *)componentAbstract state:(int)state { + self.sectionRegard.title = [NSString stringWithFormat:YMLocalizedString(@"YUMI_MineGuildViewController5"), componentAbstract.count]; + if (state == 0) { + self.hasNoFurthaerAtoloudspeaker = NO; + [self.datasource removeAllObjects]; + [self.tableView.mj_header endRefreshing]; + } else { + [self.tableView.mj_footer endRefreshing]; + } + + if (componentAbstract.members.count > 0) { + [self.datasource addObjectsFromArray:componentAbstract.members]; + } else { + self.hasNoFurthaerAtoloudspeaker = YES; + } + [self.tableView reloadData]; +} + +- (void)acquireUnionComponentSttowardsementFlunk:(NSString *)msg state:(int)state { + if (state == 0) { + [self.tableView.mj_header endRefreshing]; + } else { + [self.tableView.mj_footer endRefreshing]; + } +} + +- (void)acquireCollectiveSpecificAbstractAccomplishment:(CollectiveSpecificAbstractMatrix *)collectiveSpecificAbstract universalConsumerCollectiveAbstract:(CollectiveSpecificAbstractMatrix *)universalConsumerCollectiveAbstract { + self.collectiveSpecificAbstract = collectiveSpecificAbstract; + self.universalConsumerCollectiveAbstract = universalConsumerCollectiveAbstract; + self.intelligenceportraitIndicateRegard.imageUrl = collectiveSpecificAbstract.hall.ownerAvatar; + self.idSequencignation.text = [NSString stringWithFormat:YMLocalizedString(@"YUMI_MineGuildViewController6"),collectiveSpecificAbstract.hall.ownerErbanNo]; + self.encourageIndicateRegard.imageUrl = collectiveSpecificAbstract.hall.ownerAvatar; + self.titleLabel.text = collectiveSpecificAbstract.hall.hallName; + if (collectiveSpecificAbstract.manageHall) { + self.sectionRegard.isVeiledHuntfor = NO; + self.compileBtuton.hidden = NO; + self.exitBtuton.hidden = YES; + self.sectionRegard.isVeiledExecutive = NO; + + [self.presimport acquireConsumerInUnionChamberTowardstesttowardsion:self.instituteId]; + } else { + if ([collectiveSpecificAbstract.hall.hallId isEqualToString:universalConsumerCollectiveAbstract.hall.hallId]) { + self.sectionRegard.isVeiledHuntfor = NO; + UnionAbstractMatrix * hallInfo = universalConsumerCollectiveAbstract.hall; + if (hallInfo.roleType == UnionRoleGenre_Super_Admin || hallInfo.roleType == UnionRoleGenre_Owner) { + self.compileBtuton.hidden = NO; + self.exitBtuton.hidden = YES; + self.sectionRegard.isVeiledExecutive = NO; + + [self.presimport acquireConsumerInUnionChamberTowardstesttowardsion:self.instituteId]; + } else if(hallInfo.roleType == UnionRoleGenre_Manager){ + self.compileBtuton.hidden = YES; + self.exitBtuton.hidden = NO; + [self.presimport acquireConsumerInUnionChamberTowardstesttowardsion:self.instituteId]; + } else { + self.sectionRegard.isVeiledExecutive = YES; + self.compileBtuton.hidden = YES; + self.exitBtuton.hidden = NO; + } + } else { + self.sectionRegard.isVeiledHuntfor = YES; + self.compileBtuton.hidden = YES; + self.exitBtuton.hidden = YES; + } + } +} + +- (void)acquireConsumerInUnionChamberTowardstesttowardsionAccomplishment:(NSArray *)attestationStatement { + self.attestationStatement = attestationStatement; + NSMutableArray * array = [NSMutableArray array]; + if ([self.collectiveSpecificAbstract.hall.hallId isEqualToString:self.universalConsumerCollectiveAbstract.hall.hallId] ) { + UnionAbstractMatrix * hallInfo = self.universalConsumerCollectiveAbstract.hall; + if(hallInfo.roleType == UnionRoleGenre_Owner && self.universalConsumerCollectiveAbstract.clan.cid == nil) { + self.accelerateGuildProvision.title = YMLocalizedString(@"YUMI_MineGuildViewController12"); + [array addObject:self.accelerateGuildProvision]; + } + + } + [self.attestationStatement enumerateObjectsUsingBlock:^(UnionAuthMatrix * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if (![obj.code isEqualToString:@"hall_build"]&& ![obj.code isEqualToString:@"hall_exit"] && ![obj.code isEqualToString:@"guild_income"] && obj.status == 1) { + if ([obj.code isEqualToString:@"member_join_manager"]) { + self.accelerateComponentProvision.title = obj.name; + [array addObject:self.accelerateComponentProvision]; + } else if ([obj.code isEqualToString:@"member_exit_manager"]) { + self.removeComponentProvision.title = obj.name; + [array addObject:self.removeComponentProvision]; + }else if ([obj.code isEqualToString:@"look_hall_income"]) { + self.componentRevenueProvision.title = obj.name; + [array addObject:self.componentRevenueProvision]; + }else if ([obj.code isEqualToString:@"single_room_income"]) { + self.singleRevenueProvision.title = obj.name; + [array addObject:self.singleRevenueProvision]; + }else if ([obj.code isEqualToString:@"hall_manager_set"]) { + self.executiveSetProvision.title = obj.name; + [array addObject:self.executiveSetProvision]; + } + } + }]; + self.executiveAttestationStatement = array.copy; + self.sectionRegard.isVeiledExecutive = self.executiveAttestationStatement.count <= 0; +} + +- (void)centiretyforMemeberAccomplishmentAboutTaracquireCid:(NSString *)targetUid { + [[NSNotificationCenter defaultCenter]postNotificationName:kInviteMemeberSuccess object:targetUid]; + [self EvidenceAccomplishmentToast:YMLocalizedString(@"YUMI_MineGuildViewController7")]; +} + +- (void)quitUnionChamberAccomplishment { + [self EvidenceAccomplishmentToast:YMLocalizedString(@"YUMI_MineGuildViewController8")]; +} + +#pragma mark - Event Response +- (void)encourageBtutonPerformance:(UIButton *)sender { + [self.navigationController popViewControllerAnimated:YES]; +} +-(void)accelertowardseChamberPerformance{ + if(self.declareMatrix.hallBtnStatus == 2)return; + if(self.declareMatrix.hallBtnStatus == 3){ + InterlocutionRegardGovernancer * sessionVC = [[InterlocutionRegardGovernancer alloc] initWithSession:[NIMSession session:self.declareMatrix.hallMessageUid type:NIMSessionTypeP2P]]; + sessionVC.isConsumer = YES; + sessionVC.recordId = self.declareMatrix.recordId; + [self.navigationController pushViewController:sessionVC animated:YES]; + return; + } + [self.presimport demandCorridorAboutCorridorId:self.instituteId]; +} +- (void)routeBtutonPerformance:(UIButton *)sender { + MKJPrecautiousDisposition * config = [[MKJPrecautiousDisposition alloc] init]; + NSString * highlight = YMLocalizedString(@"YUMI_MineGuildViewController9"); + NSString * message = [NSString stringWithFormat:YMLocalizedString(@"YUMI_MineGuildViewController10"), highlight]; + config.message = message; + MKJPrecautiousCommunicationAttributedDisposition * attribute = [[MKJPrecautiousCommunicationAttributedDisposition alloc] init]; + attribute.text = highlight; + attribute.color = [DJDKMIMOMColor aplictowardsionMainPrettify]; + config.communicationAttributedDisposition = @[attribute]; + [MKJPopup precautiousAboutDisposition:config acknowledgementHandler:^{ + [self.presimport quitUnionChamber]; + } cancelHandler:^{ + + }]; +} + +- (void)compileBtutonPerformance:(UIButton *)sender { + if (self.collectiveSpecificAbstract.hall && self.collectiveSpecificAbstract.hall.hallId.length > 0) { + YUMIManeUnionSetNameRegardGovernancer * setNameVC = [[YUMIManeUnionSetNameRegardGovernancer alloc] init]; + setNameVC.roomName = self.collectiveSpecificAbstract.hall.hallName; + setNameVC.hallId = self.collectiveSpecificAbstract.hall.hallId; + [self.navigationController pushViewController:setNameVC animated:YES]; + } +} + +- (void)didBetowardsRecognition { + YUMIManeConsumerAbstractRegardGovernancer * userInfoVC = [[YUMIManeConsumerAbstractRegardGovernancer alloc] init]; + userInfoVC.uid = self.collectiveSpecificAbstract.hall.ownerUid.integerValue; + [self.navigationController pushViewController:userInfoVC animated:YES]; +} +-(void)copyConstitutePerformance{ + [XNDJTBWGLoadingTool EvidenceAccomplishmentAboutCommunictowardsion:YMLocalizedString(@"YUMI_Mine_User_Info_Header_View_3")]; + UIPasteboard *pasteboard = [UIPasteboard generalPasteboard]; + pasteboard.string = self.collectiveSpecificAbstract.hall.ownerErbanNo; +} + +-(void)setAplictowardsionlyBut:(int)status{ + UIButton *addRoomBtn = (UIButton *)[self.accelerateChamberRegard viewWithTag:200001]; + switch (status) { + case 0: + { + self.accelerateChamberRegard.hidden = YES; + break; + } + case 1: + { + [addRoomBtn setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + addRoomBtn.backgroundColor = [UIColor clearColor]; + NSTextAttachment * attachment = [[NSTextAttachment alloc] init]; + UIImage *iconImage = [UIImage imageNamed:@"yumi_center_guild_add_room"]; + attachment.bounds = CGRectMake(0, roundf(addRoomBtn.titleLabel.font.capHeight - kGetScaleWidth(12))/2.f, kGetScaleWidth(12), kGetScaleWidth(12)); + attachment.image = iconImage; + NSMutableAttributedString *textAtt = [[NSMutableAttributedString alloc]initWithString:[NSString stringWithFormat:@" %@",YMLocalizedString(@"YUMI_MineClanViewController2")] attributes:@{NSForegroundColorAttributeName:[UIColor whiteColor],NSFontAttributeName:[UIFont systemFontOfSize:16]}]; + [textAtt insertAttributedString:[NSMutableAttributedString attributedStringWithAttachment:attachment] atIndex:0]; + [addRoomBtn setAttributedTitle:textAtt forState:UIControlStateNormal]; + + + self.accelerateChamberRegard.hidden = NO; + break; + } + case 2: + { + addRoomBtn.backgroundColor = UIColorFromRGB(0xE6E6F0); + [addRoomBtn setBackgroundImage:nil forState:UIControlStateNormal]; + NSMutableAttributedString *textAtt = [[NSMutableAttributedString alloc]initWithString:[NSString stringWithFormat:@" %@",YMLocalizedString(@"YUMI_MineGuildListCell5")] attributes:@{NSForegroundColorAttributeName:UIColorFromRGB(0xB3B3C3),NSFontAttributeName:[UIFont systemFontOfSize:16]}]; + [addRoomBtn setAttributedTitle:textAtt forState:UIControlStateNormal]; + + + self.accelerateChamberRegard.hidden = NO; + break; + } + case 3: + { + addRoomBtn.backgroundColor = UIColorFromRGB(0xFFBC51); + [addRoomBtn setBackgroundImage:nil forState:UIControlStateNormal]; + NSMutableAttributedString *textAtt = [[NSMutableAttributedString alloc]initWithString:[NSString stringWithFormat:@" %@",YMLocalizedString(@"YUMI_MineGuildListCell6")] attributes:@{NSForegroundColorAttributeName:[UIColor whiteColor],NSFontAttributeName:[UIFont systemFontOfSize:16]}]; + [addRoomBtn setAttributedTitle:textAtt forState:UIControlStateNormal]; + self.accelerateChamberRegard.hidden = NO; + break; + } + default: + break; + } +} +#pragma mark - Getters And Setters + +- (UIView *)nevRegard { + if (!_nevRegard) { + _nevRegard = [[UIView alloc] init]; + _nevRegard.backgroundColor = [UIColor clearColor]; + } + return _nevRegard; +} + +- (UIButton *)backButton { + if (!_backButton) { + _backButton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_backButton setImage:[UIImage imageNamed:@"yumi_main_search_white_back"] forState:UIControlStateNormal]; + [_backButton setImage:[UIImage imageNamed:@"yumi_main_search_white_back"] forState:UIControlStateSelected]; + [_backButton addTarget:self action:@selector(encourageBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _backButton; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.textAlignment = NSTextAlignmentCenter; + _titleLabel.font = [UIFont systemFontOfSize:17]; + _titleLabel.textColor = [UIColor whiteColor]; + } + return _titleLabel; +} + +- (UIStackView *)rectifyHierarchyRegard { + if (!_rectifyHierarchyRegard) { + _rectifyHierarchyRegard = [[UIStackView alloc] init]; + _rectifyHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _rectifyHierarchyRegard.distribution = UIStackViewDistributionFill; + _rectifyHierarchyRegard.alignment = UIStackViewAlignmentCenter; + _rectifyHierarchyRegard.spacing = 0; + } + return _rectifyHierarchyRegard; +} + +- (UIButton *)exitBtuton { + if (!_exitBtuton) { + _exitBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_exitBtuton setTitle:YMLocalizedString(@"YUMI_MineGuildViewController11") forState:UIControlStateNormal]; + [_exitBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + _exitBtuton.titleLabel.font = [UIFont systemFontOfSize:16]; + _exitBtuton.hidden = YES; + [_exitBtuton addTarget:self action:@selector(routeBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _exitBtuton; +} + +- (UIButton *)compileBtuton { + if (!_compileBtuton) { + _compileBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_compileBtuton setImage:[UIImage imageNamed:@"yumi_center_guild_guild_edit"] forState:UIControlStateNormal]; + [_compileBtuton setImage:[UIImage imageNamed:@"yumi_center_guild_guild_edit"] forState:UIControlStateSelected]; + [_compileBtuton addTarget:self action:@selector(compileBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + _compileBtuton.hidden = YES; + } + return _compileBtuton; +} + +- (UIView *)intelligenceerRegard { + if (!_intelligenceerRegard) { + _intelligenceerRegard = [[UIView alloc] init]; + _intelligenceerRegard.backgroundColor = [UIColor clearColor]; + } + return _intelligenceerRegard; +} + +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _intelligenceportraitIndicateRegard.layer.cornerRadius = 70/2; + _intelligenceportraitIndicateRegard.userInteractionEnabled = YES; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didBetowardsRecognition)]; + [_intelligenceportraitIndicateRegard addGestureRecognizer:tap]; + } + return _intelligenceportraitIndicateRegard; +} + +- (UILabel *)idSequencignation { + if (!_idSequencignation) { + _idSequencignation = [[UILabel alloc] init]; + _idSequencignation.font = [UIFont systemFontOfSize:13]; + _idSequencignation.textColor = [UIColor whiteColor]; + _idSequencignation.textAlignment = NSTextAlignmentCenter; + _idSequencignation.userInteractionEnabled = YES; + UILongPressGestureRecognizer *longPress = [[ UILongPressGestureRecognizer alloc]initWithTarget:self action:@selector(copyConstitutePerformance)]; + longPress.minimumPressDuration = 1; + [_idSequencignation addGestureRecognizer:longPress]; + } + return _idSequencignation; +} + +- (NetIndicateRegard *)encourageIndicateRegard { + if (!_encourageIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + _encourageIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _encourageIndicateRegard.contentMode = UIViewContentModeScaleAspectFill; + _encourageIndicateRegard.layer.masksToBounds = YES; + _encourageIndicateRegard.userInteractionEnabled = YES; + } + return _encourageIndicateRegard; +} + +- (UIImageView *)spossessowIndicateRegard { + if (!_spossessowIndicateRegard) { + _spossessowIndicateRegard = [[UIImageView alloc] init]; + _spossessowIndicateRegard.userInteractionEnabled = YES; + _spossessowIndicateRegard.image = [UIImage imageNamed:@"yumi_center_guild_guild_header_background"]; + } + return _spossessowIndicateRegard; +} + + +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped]; + _tableView.delegate = self; + _tableView.dataSource = self; + UIView * footView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, KScreenWidth, kGetScaleWidth(98))]; + footView.backgroundColor = [UIColor clearColor]; + _tableView.tableFooterView = footView; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.backgroundColor = [UIColor clearColor]; + _tableView.showsVerticalScrollIndicator = NO; + if (@available(iOS 11.0, *)) { + _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + [_tableView registerClass:[YUMICollectiveComponentTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMICollectiveComponentTabulationRegardElement class])]; + } + return _tableView; +} + +- (NSMutableArray *)datasource { + if (!_datasource) { + _datasource = [NSMutableArray array]; + } + return _datasource; +} + +- (MKJActionSheetDisposition *)accelerateComponentProvision { + if (!_accelerateComponentProvision) { + _accelerateComponentProvision = [[MKJActionSheetDisposition alloc] init]; + _accelerateComponentProvision.titleColor = [DJDKMIMOMColor precautiousChampionPrettify]; + } + return _accelerateComponentProvision; +} + +- (MKJActionSheetDisposition *)removeComponentProvision { + if (!_removeComponentProvision) { + _removeComponentProvision = [[MKJActionSheetDisposition alloc] init]; + _removeComponentProvision.titleColor = [DJDKMIMOMColor precautiousChampionPrettify]; + } + return _removeComponentProvision; +} + +- (MKJActionSheetDisposition *)componentRevenueProvision { + if (!_componentRevenueProvision) { + _componentRevenueProvision = [[MKJActionSheetDisposition alloc] init]; + _componentRevenueProvision.titleColor = [DJDKMIMOMColor precautiousChampionPrettify]; + } + return _componentRevenueProvision; +} + +- (MKJActionSheetDisposition *)singleRevenueProvision { + if (!_singleRevenueProvision) { + _singleRevenueProvision = [[MKJActionSheetDisposition alloc] init]; + _singleRevenueProvision.titleColor = [DJDKMIMOMColor precautiousChampionPrettify]; + } + return _singleRevenueProvision; +} +-(MKJActionSheetDisposition *)accelerateGuildProvision{ + if (!_accelerateGuildProvision){ + _accelerateGuildProvision = [[MKJActionSheetDisposition alloc] init]; + _accelerateGuildProvision.titleColor = [DJDKMIMOMColor precautiousChampionPrettify]; + } + return _accelerateGuildProvision; +} +- (MKJActionSheetDisposition *)executiveSetProvision { + if (!_executiveSetProvision) { + _executiveSetProvision = [[MKJActionSheetDisposition alloc] init]; + _executiveSetProvision.titleColor = [DJDKMIMOMColor precautiousChampionPrettify]; + } + return _executiveSetProvision; +} +- (UIView *)accelerateChamberRegard{ + if (!_accelerateChamberRegard){ + _accelerateChamberRegard = [UIView new]; + _accelerateChamberRegard.backgroundColor = [UIColor clearColor]; + _accelerateChamberRegard.hidden = YES; + UIButton *addRoomBtn = [UIButton new]; + addRoomBtn.tag = 200001; + addRoomBtn.titleLabel.font = [UIFont systemFontOfSize:16]; + UIImage *image = [UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify],[DJDKMIMOMColor acknowledgementBtutonObliquityMiddlePrettify],[DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(345, 46)]; + [addRoomBtn addTarget:self action:@selector(accelertowardseChamberPerformance) forControlEvents:UIControlEventTouchUpInside]; + [addRoomBtn setBackgroundImage:image forState:UIControlStateNormal]; + addRoomBtn.layer.cornerRadius = kGetScaleWidth(23); + addRoomBtn.layer.masksToBounds = YES; + NSTextAttachment * attachment = [[NSTextAttachment alloc] init]; + UIImage *iconImage = [UIImage imageNamed:@"yumi_center_guild_add_room"]; + attachment.bounds = CGRectMake(0, roundf(addRoomBtn.titleLabel.font.capHeight - kGetScaleWidth(12))/2.f, kGetScaleWidth(12), kGetScaleWidth(12)); + attachment.image = iconImage; + NSMutableAttributedString *textAtt = [[NSMutableAttributedString alloc]initWithString:[NSString stringWithFormat:@" %@",YMLocalizedString(@"YUMI_MineClanViewController2")] attributes:@{NSForegroundColorAttributeName:[UIColor whiteColor],NSFontAttributeName:[UIFont systemFontOfSize:16]}]; + [textAtt insertAttributedString:[NSMutableAttributedString attributedStringWithAttachment:attachment] atIndex:0]; + [addRoomBtn setAttributedTitle:textAtt forState:UIControlStateNormal]; + [_accelerateChamberRegard addSubview:addRoomBtn]; + [addRoomBtn mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(-kGetScaleWidth(58)); + make.left.mas_equalTo(kGetScaleWidth(58)); + make.top.mas_equalTo(kGetScaleWidth(9)); + make.height.mas_equalTo(kGetScaleWidth(46)); + }]; + + } + return _accelerateChamberRegard; +} + + +@end diff --git a/YuMi/Modules/YMMine/View/Guild/View/YUMIManeUnionStatementVC.h b/YuMi/Modules/YMMine/View/Guild/View/YUMIManeUnionStatementVC.h new file mode 100644 index 00000000..a92ed071 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/YUMIManeUnionStatementVC.h @@ -0,0 +1,19 @@ +// +// YUMIManeUnionStatementVC.h +// YuMi +// +// Created by YuMi on 2022/10/11. +// + +#import +#import "MvpRegardGovernancer.h" +#import +#import +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeUnionStatementVC : MvpRegardGovernancer +@property (nonatomic,assign) int type; +@property (nonatomic,assign) BOOL isFromCorridor; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Guild/View/YUMIManeUnionStatementVC.m b/YuMi/Modules/YMMine/View/Guild/View/YUMIManeUnionStatementVC.m new file mode 100644 index 00000000..e4e02d77 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Guild/View/YUMIManeUnionStatementVC.m @@ -0,0 +1,262 @@ +// +// YUMIManeUnionStatementVC.m +// YuMi +// +// Created by YuMi on 2022/10/11. +// + +#import "YUMIManeUnionStatementVC.h" +#import "YUMIManeUnionExternalizer.h" +#import "FBCManeUnionCeremony.h" +#import "YUMIManeUnionStatementElement.h" +#import "YUMIManeAssistantDispossessTabulationRegardElement.h" +#import "YUMIManeCollectiveRegardGovernancer.h" +#import "YUMIManeUnionRegardGovernancer.h" +#import "YUMIManeGiveDiamondHuntforRegard.h" +#import "InterlocutionRegardGovernancer.h" +@interface YUMIManeUnionStatementVC () +@property (nonatomic,strong) UITableView *tableView; +@property (nonatomic,strong) NSMutableArray *dataList; +@property (nonatomic,strong) YUMIManeGiveDiamondHuntforRegard *huntforRegard; +@property (nonatomic,strong) NSMutableArray * huntforStatement; + +@property (nonatomic,strong) YUMIManeUnionStatementMatrix *applyMatrix; +@property (nonatomic, copy) void(^scrollCallback)(UIScrollView *scrollView); +@end + +@implementation YUMIManeUnionStatementVC +- (YUMIManeUnionExternalizer *)producePresimport { + return [[YUMIManeUnionExternalizer alloc] init];; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self EvidenceChambering]; + if(self.type == 0){ + + [self.presimport acquireUnionSttowardsementTowardsoloudspeaker]; + }else{ + [self.presimport acquireChamberSttowardsementTowardsoloudspeaker]; + } + + [self initSubViews]; + [self initChildLyRestrictions]; + +} +#pragma mark - JXCategoryListContentViewDelegate +- (UIView *)listView { + return self.view; +} +- (UIScrollView *)listScrollView { + return self.tableView; +} +- (void)listViewDidScrollCallback:(void (^)(UIScrollView *))callback { + self.scrollCallback = callback; +} + +- (void)scrollViewDidScroll:(UIScrollView *)scrollView { + if (self.scrollCallback){ + self.scrollCallback(scrollView); + } + +} + +#pragma mark - Private Method +- (void)initSubViews { + self.view.backgroundColor = [UIColor whiteColor]; + self.title = YMLocalizedString(@"YUMI_MineGuildListVC0"); + if(self.type == 1){ + [self.view addSubview:self.huntforRegard]; + + } + [self.view addSubview:self.tableView]; + self.tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + if (@available(iOS 15.0, *)) { + self.tableView.sectionHeaderTopPadding = 0; + } + +} +- (void)initChildLyRestrictions { + if(self.type == 1){ + + [self.huntforRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(0); + make.right.mas_equalTo(0); + make.height.mas_equalTo(kGetScaleWidth(32)); + make.top.mas_equalTo(kGetScaleWidth(10)); + }]; + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.equalTo(self.view); + make.top.equalTo(self.huntforRegard.mas_bottom).mas_offset(kGetScaleWidth(16)); + }]; + + return; + } + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.equalTo(self.view); + }]; +} + +#pragma mark -FBCManeGiveDiamondCeremony +- (void)huntforConcludeAboutEssay:(NSString *)text{ + if(text.length == 0){ + self.dataList = [NSMutableArray arrayWithArray:self.huntforStatement]; + [self.tableView reloadData]; + return; + } + [self.dataList removeAllObjects]; + for (YUMIManeUnionStatementMatrix *model in self.huntforStatement) { + NSString *ownerUid = [NSString stringWithFormat:@"%ld",model.ownerErbanNo]; + if([model.hallName containsString:text] || [ownerUid containsString:text] ){ + [self.dataList addObject:model]; + } + } + if(self.dataList.count == 0){ + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_MineGuildListVC3")]; + } + [self.tableView reloadData]; +} +#pragma mark -FBCManeUnionCeremony +-(void)dwellEarnManeChamberSttowardsementAccomplishment:(NSArray *)list{ + self.huntforStatement = [NSMutableArray arrayWithArray:list]; + self.dataList = [NSMutableArray arrayWithArray:list]; + [self.tableView reloadData]; + [self brakeHUD]; +} +-(void)dwellEarnManeUnionSttowardsementAccomplishment:(NSArray *)list{ + self.dataList = [NSMutableArray arrayWithArray:list]; + [self.tableView reloadData]; + [self brakeHUD]; +} +-(void)demandCollectiveAccomplishment{ + + [self brakeHUD]; + [self EvidenceAccomplishmentToast:YMLocalizedString(@"YUMI_MineGuildListVC2")]; + if(self.applyMatrix == nil)return; + NSInteger index = [self.dataList indexOfObject:self.applyMatrix]; + self.applyMatrix.applyBtnStatus = 2; + YUMIManeUnionStatementElement *cell = [self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:index inSection:0]]; + [cell setAplictowardsionlyBtutonGenre:NO]; +} +- (void)demandCollectiveFlunk{ + [self brakeHUD]; +} +-(void)demandCorridorAccomplishment{ + [self brakeHUD]; + [self EvidenceAccomplishmentToast:YMLocalizedString(@"YUMI_MineGuildListVC4")]; + if(self.applyMatrix == nil)return; + NSInteger index = [self.dataList indexOfObject:self.applyMatrix]; + self.applyMatrix.hallBtnStatus = 2; + YUMIManeUnionStatementElement *cell = [self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:index inSection:0]]; + [cell setAplictowardsionlyBtutonGenre:NO]; +} +-(void)demandCorridorFlunk{ + [self brakeHUD]; +} +#pragma mark -FBCManeUnionStatementElementRepresendtation +- (void)demandPerformanceAboutMtowardsrix:(YUMIManeUnionStatementMatrix *)guildMatrix{ + if(self.type == 0){ + self.applyMatrix = guildMatrix; + [self.presimport demandCollectiveAboutCollectiveId:@(guildMatrix.clanId).stringValue]; + [self EvidenceChambering]; + return; + } + + if(guildMatrix.hallBtnStatus == 3){ + InterlocutionRegardGovernancer * sessionVC = [[InterlocutionRegardGovernancer alloc] initWithSession:[NIMSession session:guildMatrix.hallMessageUid type:NIMSessionTypeP2P]]; + sessionVC.isConsumer = YES; + sessionVC.recordId = guildMatrix.hallRecordId; + [self.navigationController pushViewController:sessionVC animated:YES]; + + return; + } + if(guildMatrix.hallBtnStatus == 1){ + self.applyMatrix = guildMatrix; + [self.presimport demandCorridorAboutCorridorId:@(guildMatrix.hallId).stringValue]; + [self EvidenceChambering]; + } + +} +#pragma mark -UITableViewDelegate + +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.dataList.count > 0 ? self.dataList.count : 1; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + return self.dataList.count > 0 ? kGetScaleWidth(58) : (KScreenHeight - kNavigationHeight) ; +} + +-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ + if (self.dataList.count > 0){ + YUMIManeUnionStatementElement *cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIManeUnionStatementElement class]) forIndexPath:indexPath]; + cell.rateFigure = indexPath.row; + if(cell.delegate == nil){ + cell.delegate = self; + } + if(self.type == 0){ + cell.guildMatrix = self.dataList[indexPath.row]; + }else{ + YUMIManeUnionStatementMatrix*hentiretyMatrix = self.dataList[indexPath.row]; + cell.hentiretyMatrix = hentiretyMatrix; + cell.isFromCorridor = self.isFromCorridor; + } + return cell; + } + YUMIManeAssistantDispossessTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIManeAssistantDispossessTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIManeAssistantDispossessTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIManeAssistantDispossessTabulationRegardElement class])]; + } + cell.emptyTitle = self.type == 0 ? YMLocalizedString(@"YUMI_MineGuildListVC1") : YMLocalizedString(@"YUMI_MineGuildListVC3"); + return cell; +} +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ + if(self.dataList.count == 0)return; + YUMIManeUnionStatementMatrix *guildMatrix = self.dataList[indexPath.row]; + + if(self.type == 0){ + YUMIManeCollectiveRegardGovernancer * clanVC = [[YUMIManeCollectiveRegardGovernancer alloc] init]; + clanVC.uid = @(guildMatrix.clanElderUid).stringValue; + [self.navigationController pushViewController:clanVC animated:YES]; + return; + } + YUMIManeUnionRegardGovernancer * hallVC = [[YUMIManeUnionRegardGovernancer alloc] init]; + hallVC.ownerUid = @(guildMatrix.ownerUid).stringValue; + hallVC.instituteId = @(guildMatrix.hallId).stringValue; + [self.navigationController pushViewController:hallVC animated:YES]; +} +#pragma mark - Getters And Setters +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.showsVerticalScrollIndicator = NO; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone;; + [_tableView registerClass:[YUMIManeUnionStatementElement class] forCellReuseIdentifier:NSStringFromClass([YUMIManeUnionStatementElement class])]; + [_tableView registerClass:[YUMIManeAssistantDispossessTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIManeAssistantDispossessTabulationRegardElement class])]; + + _tableView.backgroundColor = [UIColor whiteColor]; + + } + return _tableView; +} +- (YUMIManeGiveDiamondHuntforRegard *)huntforRegard{ + if (!_huntforRegard){ + _huntforRegard = [[YUMIManeGiveDiamondHuntforRegard alloc]initWithFrame:CGRectZero]; + _huntforRegard.delegate = self; + _huntforRegard.isHuntforCorridor = YES; + } + return _huntforRegard; +} +- (NSMutableArray *)dataList{ + if (!_dataList){ + _dataList = [NSMutableArray array]; + } + return _dataList; +} + + + + +@end diff --git a/YuMi/Modules/YMMine/View/IncomeRecord/Presenter/YUMIRevenueReflectionExternalize.h b/YuMi/Modules/YMMine/View/IncomeRecord/Presenter/YUMIRevenueReflectionExternalize.h new file mode 100644 index 00000000..f06d2b15 --- /dev/null +++ b/YuMi/Modules/YMMine/View/IncomeRecord/Presenter/YUMIRevenueReflectionExternalize.h @@ -0,0 +1,20 @@ +// +// YUMIRevenueReflectionExternalize.h +// YuMi +// +// Created by YuMi on 2022/11/17. +// + +#import +#import "BaseMvpExternalizer.h" +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIRevenueReflectionExternalize : BaseMvpExternalizer +-(void)requisitionReflectionRevenue; +-(void)acquireExdiversifictowardsionDiamondAbstractrmtowardsion; +-(void)acknowledgementExdiversifictowardsionDiamondAboutGoldFigure:(NSString *)goldNum diamondNum:(NSString *)diamondNum currency:(NSString *)currency; +-(void)acquireGoldSpecificsTowardsoloudspeakerAboutInititowardseIntrtowardsemporal:(NSString *)startTime endTime:(NSString *)endTime; +-(void)requisitionQueryAboutChamberGenre; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/IncomeRecord/Presenter/YUMIRevenueReflectionExternalize.m b/YuMi/Modules/YMMine/View/IncomeRecord/Presenter/YUMIRevenueReflectionExternalize.m new file mode 100644 index 00000000..820013a2 --- /dev/null +++ b/YuMi/Modules/YMMine/View/IncomeRecord/Presenter/YUMIRevenueReflectionExternalize.m @@ -0,0 +1,59 @@ +// +// YUMIRevenueReflectionExternalize.m +// YuMi +// +// Created by YuMi on 2022/11/17. +// + +#import "YUMIRevenueReflectionExternalize.h" +#import "Api+Mine.h" +#import "DESEncrypt.h" +#import "FBCIncomeRecordCeremony.h" +#import "YUMIRevenueReflectionMatrix.h" +#import "YUMIExchangeDiamondsMatrix.h" +#import "YUMIDilemmaExtractAbstractMatrix.h" +#import "YUMIWithdrawAccountMatrix.h" +#import "YUMIRevenueReflectionGoldSpecificsMatrix.h" +@implementation YUMIRevenueReflectionExternalize +- (id)acquireRegard { + return ((id) [super acquireRegard]); +} +-(void)requisitionQueryAboutChamberGenre{ + [Api requisitionQueryAboutChamberGenre:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + YUMIRevenueReflectionMatrix *model = [YUMIRevenueReflectionMatrix mtowardsrixAboutImpactbasket:data.data]; + [[self acquireRegard]acquireReflectionRevenueAccomplishment:model]; + }fail:^(NSInteger code, NSString * _Nullable msg) { + [[self acquireRegard]requisitionQueryAboutChamberGenreFlunk]; + } EvidenceChambering:NO errorToast:NO]]; +} +-(void)requisitionReflectionRevenue{ + + [Api requisitionReflectionRevenue:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + YUMIRevenueReflectionMatrix *model = [YUMIRevenueReflectionMatrix mtowardsrixAboutImpactbasket:data.data]; + [[self acquireRegard]acquireReflectionRevenueAccomplishment:model]; + } EvidenceChambering:YES]]; + + +} +-(void)acquireExdiversifictowardsionDiamondAbstractrmtowardsion{ + [Api acquireExdiversifictowardsionDiamondAbstractrmtowardsion:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + YUMIExchangeDiamondsMatrix *model = [YUMIExchangeDiamondsMatrix mtowardsrixAboutImpactbasket:data.data]; + [[self acquireRegard]acquireExdiversifictowardsionDiamondAbstractrmtowardsion:model]; + } EvidenceChambering:YES]]; +} +-(void)acknowledgementExdiversifictowardsionDiamondAboutGoldFigure:(NSString *)goldNum diamondNum:(NSString *)diamondNum currency:(NSString *)currency{ + [Api acknowledgementExdiversifictowardsionDiamond:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard]acknowledgementExdiversifictowardsionDiamondAccomplishmentAboutDiamondFigure:diamondNum goldNum:goldNum]; + } fail:^(NSInteger code, NSString * _Nullable msg) { + [[self acquireRegard]acknowledgementExdiversifictowardsionDiamondFlunk]; + } EvidenceChambering:YES errorToast:YES] goldNum:goldNum diamondNum:diamondNum currency:currency]; + +} + +-(void)acquireGoldSpecificsTowardsoloudspeakerAboutInititowardseIntrtowardsemporal:(NSString *)startTime endTime:(NSString *)endTime{ + [Api acquireGoldSpecificsTowardsoloudspeaker:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + YUMIRevenueReflectionGoldSpecificsMatrix *model = [YUMIRevenueReflectionGoldSpecificsMatrix mtowardsrixAboutImpactbasket:data.data]; + [[self acquireRegard]acquireGoldSpecificsTowardsoloudspeakerAccomplishment:model]; + } EvidenceChambering:YES errorToast:YES] startTime:startTime endTime:endTime]; +} +@end diff --git a/YuMi/Modules/YMMine/View/IncomeRecord/Protocol/FBCIncomeRecordCeremony.h b/YuMi/Modules/YMMine/View/IncomeRecord/Protocol/FBCIncomeRecordCeremony.h new file mode 100644 index 00000000..ff1261e1 --- /dev/null +++ b/YuMi/Modules/YMMine/View/IncomeRecord/Protocol/FBCIncomeRecordCeremony.h @@ -0,0 +1,23 @@ +// +// FBCIncomeRecordCeremony.h +// YuMi +// +// Created by YuMi on 2022/11/17. +// + +#import +@class YUMIRevenueReflectionMatrix,YUMIExchangeDiamondsMatrix,YUMIDilemmaExtractAbstractMatrix,YUMIWithdrawAccountMatrix,YUMIRevenueReflectionGoldSpecificsMatrix; +NS_ASSUME_NONNULL_BEGIN + +@protocol FBCIncomeRecordCeremony +@optional +-(void)acquireReflectionRevenueAccomplishment:(YUMIRevenueReflectionMatrix *)model; +-(void)acquireExdiversifictowardsionDiamondAbstractrmtowardsion:(YUMIExchangeDiamondsMatrix *)model; +-(void)acknowledgementExdiversifictowardsionDiamondAccomplishmentAboutDiamondFigure:(NSString *)diamondNum goldNum:(NSString *)goldNum ; +-(void)acknowledgementExdiversifictowardsionDiamondFlunk; +-(void)acquireGoldSpecificsTowardsoloudspeakerAccomplishment:(YUMIRevenueReflectionGoldSpecificsMatrix *)specificMatrix; +-(void)requisitionQueryAboutChamberGenreAccomplishment:(NSInteger)type; +-(void)requisitionQueryAboutChamberGenreFlunk; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/IncomeRecord/YUMIEssayField.h b/YuMi/Modules/YMMine/View/IncomeRecord/YUMIEssayField.h new file mode 100644 index 00000000..f0badde5 --- /dev/null +++ b/YuMi/Modules/YMMine/View/IncomeRecord/YUMIEssayField.h @@ -0,0 +1,17 @@ +// +// YUMIEssayField.h +// YuMi +// +// Created by YuMi on 2023/7/3. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIEssayField : UITextField +@property (nonatomic,assign) BOOL isValidation; +@property (nonatomic,copy) NSString *regular; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/IncomeRecord/YUMIEssayField.m b/YuMi/Modules/YMMine/View/IncomeRecord/YUMIEssayField.m new file mode 100644 index 00000000..e09d68e0 --- /dev/null +++ b/YuMi/Modules/YMMine/View/IncomeRecord/YUMIEssayField.m @@ -0,0 +1,59 @@ +// +// YUMIEssayField.m +// YuMi +// +// Created by YuMi on 2023/7/3. +// + +#import "YUMIEssayField.h" +@interface YUMIEssayField() + +@end +@implementation YUMIEssayField + + +-(instancetype)initWithFrame:(CGRect)frame{ + self = [super initWithFrame:frame]; + if(self){ + self.delegate = self; + } + return self; +} + +- (BOOL)essayUniverse:(UITextField *)essayUniverse shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { + if(self.isValidation == NO){ + return YES; + } + return [self valiengagementDigital:string]; +} + +- (BOOL)valiengagementDigital:(NSString*)number { + BOOL res = YES; + NSCharacterSet* tmpSet = [NSCharacterSet characterSetWithCharactersInString:self.regular]; + int i = 0; + while (i < number.length) { + NSString * string = [number substringWithRange:NSMakeRange(i, 1)]; + NSRange range = [string rangeOfCharacterFromSet:tmpSet]; + if (range.length == 0) { + res = NO; + break; + } + i++; + } + return res; +} + +- (NSString *)regular{ + if (!_regular){ + _regular = @"0123456789"; + } + return _regular; +} +- (BOOL)isValidation{ + if (!_isValidation){ + _isValidation = NO; + } + return _isValidation; +} + +@end diff --git a/YuMi/Modules/YMMine/View/IncomeRecord/YUMIExchangeDiamondsRegard.h b/YuMi/Modules/YMMine/View/IncomeRecord/YUMIExchangeDiamondsRegard.h new file mode 100644 index 00000000..de28ac78 --- /dev/null +++ b/YuMi/Modules/YMMine/View/IncomeRecord/YUMIExchangeDiamondsRegard.h @@ -0,0 +1,49 @@ +// +// YUMIExchangeDiamondsRegard.h +// YuMi +// +// Created by YuMi on 2022/11/17. +// + +#import +#import "YUMIRevenueReflectionRegard.h" +#import "YUMIExchangeDiamondsMatrix.h" +NS_ASSUME_NONNULL_BEGIN + + +@protocol FBCExchangeDiamondsRegardRepresendtation + +-(void)acknowledgementExdiversifictowardsionDiamondsAboutDiamond:(NSString *)strawberry gold:(NSString *)gold currency:(NSString *)currency; + +@end + + +typedef void(^ExchangeDiamondsItemViewHandle)(NSString *goldNum,NSString *diamondNum); + +@interface YUMIExchangeDiamondsRegard : UIView +@property (nonatomic,weak) id delegate; +@property (nonatomic,strong) YUMIExchangeDiamondsMatrix *model; + +@end + + + + + + + + + +@interface YUMIExchangeDiamondsProvisionRegard : UIView + +@property (nonatomic,copy) ExchangeDiamondsItemViewHandle introjectionComputationhandle; + +@property (nonatomic,copy) NSString *text; +@property (nonatomic,strong) YUMIExchangeDiamondsMatrix *model; +@property (nonatomic,copy) NSString *count; +-(instancetype)initWithFrame:(CGRect)frame type:(IncomeRecordViewType)type; +-(void)resignResponder; +@end + + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/IncomeRecord/YUMIExchangeDiamondsRegard.m b/YuMi/Modules/YMMine/View/IncomeRecord/YUMIExchangeDiamondsRegard.m new file mode 100644 index 00000000..6cc59111 --- /dev/null +++ b/YuMi/Modules/YMMine/View/IncomeRecord/YUMIExchangeDiamondsRegard.m @@ -0,0 +1,329 @@ +// +// YUMIExchangeDiamondsRegard.m +// YuMi +// +// Created by YuMi on 2022/11/17. +// + +#import "YUMIExchangeDiamondsRegard.h" +#import +#import "YUMIEssayField.h" +#import "XNDJTBWGLoadingTool.h" +#import "UIView+Corner.h" +@interface YUMIExchangeDiamondsRegard() +@property (nonatomic,strong) YUMIExchangeDiamondsProvisionRegard *mieyGoldRegard; +@property (nonatomic,strong) YUMIExchangeDiamondsProvisionRegard *mieyBWSttawberrysRegard; +@property (nonatomic,strong) UIButton *confirmBtn; +@property (nonatomic,copy) NSString *goldNum; +@property (nonatomic,copy) NSString *diamondNum; +@property (nonatomic,assign) IncomeRecordViewType concludeGenre; +@end +@implementation YUMIExchangeDiamondsRegard + +-(instancetype)initWithFrame:(CGRect)frame{ + self = [super initWithFrame:frame]; + if(self){ + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor]; + [self addSubview:self.mieyGoldRegard]; + [self addSubview:self.mieyBWSttawberrysRegard]; + [self addSubview:self.confirmBtn]; + + + @kWeakify(self) + self.mieyGoldRegard.introjectionComputationhandle = ^(NSString *_Nonnull goldNum,NSString *_Nonnull diamondNum) { + @kStrongify(self) + if(goldNum.integerValue == 0 && diamondNum.integerValue == 0){ + self.confirmBtn.enabled = NO; + self.mieyGoldRegard.text = @""; + self.mieyBWSttawberrysRegard.text = @""; + return; + } + self.concludeGenre = IncomeRecord_Gold; + self.confirmBtn.enabled = YES; + self.goldNum = goldNum; + self.diamondNum = diamondNum; + self.mieyBWSttawberrysRegard.count = diamondNum; + + }; + self.mieyBWSttawberrysRegard.introjectionComputationhandle = ^(NSString *_Nonnull goldNum,NSString *_Nonnull diamondNum) { + @kStrongify(self) + if(goldNum.integerValue == 0 && diamondNum.integerValue == 0){ + self.confirmBtn.enabled = NO; + self.mieyGoldRegard.text = @""; + self.mieyBWSttawberrysRegard.text = @""; + + return; + } + self.confirmBtn.enabled = YES; + self.goldNum = goldNum; + self.diamondNum = diamondNum; + self.mieyGoldRegard.count = goldNum; + self.concludeGenre = IncomeRecord_Diamond; + + }; + +} +- (void)initChildLyRestrictions { + + [self.mieyGoldRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(kGetScaleWidth(15)); + make.left.mas_equalTo(kGetScaleWidth(15)); + make.right.mas_equalTo(-kGetScaleWidth(15)); + make.height.mas_equalTo(kGetScaleWidth(116)); + }]; + [self.mieyBWSttawberrysRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.height.equalTo(self.mieyGoldRegard); + make.top.equalTo(self.mieyGoldRegard.mas_bottom); + }]; + [self.confirmBtn mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(kGetScaleWidth(296)); + make.width.mas_equalTo(kGetScaleWidth(345)); + make.height.mas_equalTo(kGetScaleWidth(46)); + make.centerX.equalTo(self); + }]; +} +-(void)setModel:(YUMIExchangeDiamondsMatrix *)model{ + _model = model; + _mieyGoldRegard.model = _model; + _mieyBWSttawberrysRegard.model = _model; +} +-(void)acknowledgementPerformance{ + if( self.model.golds < self.goldNum.doubleValue){ + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:YMLocalizedString(@"YUMI_Exchange_Diamonds_View_2")]; + return; + } + if(self.diamondNum.doubleValue < self.model.minDiamonds){ + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:[NSString stringWithFormat:YMLocalizedString(@"YUMI_Exchange_Diamonds_View_3"),self.model.minDiamonds]]; + return; + } + if(self.diamondNum.doubleValue > self.model.maxDiamonds){ + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:[NSString stringWithFormat:YMLocalizedString(@"YUMI_Exchange_Diamonds_View_4"),self.model.maxDiamonds]]; + return; + } + [self.mieyGoldRegard resignResponder]; + [self.mieyBWSttawberrysRegard resignResponder]; + if(self.delegate && [self.delegate respondsToSelector:@selector(acknowledgementExdiversifictowardsionDiamondsAboutDiamond:gold:currency:)]){ + [self.delegate acknowledgementExdiversifictowardsionDiamondsAboutDiamond:self.diamondNum gold:self.goldNum currency:self.concludeGenre == IncomeRecord_Diamond ? @"1" : @"3"]; + } +} +#pragma mark -懒加载 +- (YUMIExchangeDiamondsProvisionRegard *)mieyGoldRegard{ + if (!_mieyGoldRegard){ + _mieyGoldRegard = [[YUMIExchangeDiamondsProvisionRegard alloc]initWithFrame:CGRectZero type:IncomeRecord_Gold]; + [_mieyGoldRegard setMonopolizeAboutContraryApexMonopolize:kGetScaleWidth(14) rightTopCorner:kGetScaleWidth(14) bottomLeftCorner:0 bottomRightCorner:0 size:CGSizeMake(kGetScaleWidth(345), kGetScaleWidth(116))]; + } + return _mieyGoldRegard; +} + +-(YUMIExchangeDiamondsProvisionRegard *)mieyBWSttawberrysRegard{ + if (!_mieyBWSttawberrysRegard){ + _mieyBWSttawberrysRegard = [[YUMIExchangeDiamondsProvisionRegard alloc]initWithFrame:CGRectZero type:IncomeRecord_Diamond]; + [_mieyBWSttawberrysRegard setMonopolizeAboutContraryApexMonopolize:0 rightTopCorner:0 bottomLeftCorner:kGetScaleWidth(14) bottomRightCorner:kGetScaleWidth(14) size:CGSizeMake(kGetScaleWidth(345), kGetScaleWidth(116))]; + } + return _mieyBWSttawberrysRegard; +} +-(UIButton *)confirmBtn{ + if (!_confirmBtn){ + UIImage *image = [UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify],[DJDKMIMOMColor acknowledgementBtutonObliquityMiddlePrettify],[DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(kGetScaleWidth(345), kGetScaleWidth(46))]; + _confirmBtn = [UIButton buttonWithType:UIButtonTypeCustom]; + [_confirmBtn setTitle:YMLocalizedString(@"YUMI_Exchange_Diamonds_View_1") forState:UIControlStateNormal]; + _confirmBtn.titleLabel.font = [UIFont systemFontOfSize:16]; + [_confirmBtn setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + _confirmBtn.layer.cornerRadius = kGetScaleWidth(23); + _confirmBtn.layer.masksToBounds = YES; + _confirmBtn.enabled = NO; + [_confirmBtn setBackgroundImage:image forState:UIControlStateNormal]; + [_confirmBtn addTarget:self action:@selector(acknowledgementPerformance) forControlEvents:UIControlEventTouchUpInside]; + } + return _confirmBtn; +} +@end + + + + +@interface YUMIExchangeDiamondsProvisionRegard() +@property (nonatomic,strong) UILabel *championFigureRegard; +@property (nonatomic,strong) UIImageView *backgroundIndicateRegard; +@property (nonatomic,strong) UIButton *figureRegard; +@property (nonatomic,strong) YUMIEssayField *digitalRegard; +@property (nonatomic,strong) UIButton *arrowView; +@property (nonatomic,assign) IncomeRecordViewType type; + +@end + +@implementation YUMIExchangeDiamondsProvisionRegard + +-(instancetype)initWithFrame:(CGRect)frame type:(IncomeRecordViewType)type{ + self = [super initWithFrame:frame]; + if(self){ + self.type = type; + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor whiteColor]; + [self addSubview:self.championFigureRegard]; + [self addSubview:self.backgroundIndicateRegard]; + [self addSubview:self.arrowView]; + [self.backgroundIndicateRegard addSubview:self.figureRegard]; + [self.backgroundIndicateRegard addSubview:self.digitalRegard]; +} +- (void)initChildLyRestrictions { + [self.championFigureRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(kGetScaleWidth(15)); + make.top.mas_equalTo(kGetScaleWidth(16)); + make.height.mas_equalTo(kGetScaleWidth(20)); + make.right.mas_equalTo(-kGetScaleWidth(73)); + }]; + [self.arrowView mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(kGetScaleWidth(30)); + make.height.mas_equalTo(kGetScaleWidth(30)); + make.right.mas_equalTo(-kGetScaleWidth(38)); + make.centerY.equalTo(self.championFigureRegard); + }]; + [self.backgroundIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(kGetScaleWidth(14)); + make.right.mas_equalTo(-kGetScaleWidth(14)); + make.top.mas_equalTo(kGetScaleWidth(48)); + make.height.mas_equalTo(kGetScaleWidth(52)); + }]; + [self.figureRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(kGetScaleWidth(40)); + make.height.mas_equalTo(kGetScaleWidth(40)); + make.left.mas_equalTo(kGetScaleWidth(10)); + make.centerY.equalTo(self.backgroundIndicateRegard); + }]; + [self.digitalRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.bottom.equalTo(self.backgroundIndicateRegard); + make.right.mas_equalTo(-kGetScaleWidth(12)); + make.left.equalTo(self.figureRegard.mas_right).mas_offset(5); + }]; +} +#pragma mark - 赋值 +-(void)setModel:(YUMIExchangeDiamondsMatrix *)model{ + _model = model; + if(self.type == IncomeRecord_Diamond){ + _championFigureRegard.text = [NSString stringWithFormat:YMLocalizedString(@"YUMI_Exchange_Diamonds_Item_View_0"),@(_model.diamonds)]; + NSString *diamondNum = [NSString stringWithFormat:@"%ld",_model.minDiamonds];; + NSMutableAttributedString *attStr = [[NSMutableAttributedString alloc]initWithString:diamondNum attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:16 weight:UIFontWeightMedium],NSForegroundColorAttributeName:UIColorFromRGB(0xACB8D9)}]; + _digitalRegard.attributedPlaceholder = attStr; + + }else{ + NSString *goldNum = [NSString stringWithFormat:@"%.0f",ceilf(_model.minDiamonds / _model.rate)]; + NSMutableAttributedString *attStr = [[NSMutableAttributedString alloc]initWithString:goldNum attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:16 weight:UIFontWeightMedium],NSForegroundColorAttributeName:UIColorFromRGB(0xACB8D9)}]; + _digitalRegard.attributedPlaceholder = attStr; + _championFigureRegard.text = [NSString stringWithFormat:YMLocalizedString(@"YUMI_Exchange_Diamonds_Item_View_1"),_model.golds]; + } + +} + +-(void)resignResponder{ + [_digitalRegard resignFirstResponder]; +} +-(void)setText:(NSString *)text{ + _text = text; + _digitalRegard.text = _text; + +} +-(void)setCount:(NSString *)count{ + _count = count; + _digitalRegard.text = _count; +} +-(void)essayUniverseDidDiversifictowardsion:(UITextField *)essayUniverse{ + if (essayUniverse.text.length == 0){ + if(self.introjectionComputationhandle){ + self.introjectionComputationhandle(@"0", @"0"); + } + return; + + } + NSInteger count = essayUniverse.text.integerValue; + if(self.type == IncomeRecord_Diamond){ + NSString *goldNum = [NSString stringWithFormat:@"%.0f",ceilf(count / _model.rate)]; + if(self.introjectionComputationhandle){ + self.introjectionComputationhandle(goldNum, essayUniverse.text); + } + return; + } + NSString *diamondNum = [NSString stringWithFormat:@"%.0f",floorf(count * _model.rate)]; + if(self.introjectionComputationhandle){ + self.introjectionComputationhandle(essayUniverse.text,diamondNum); + } + +} +#pragma mark -懒加载 + +- (UILabel *)championFigureRegard { + if (!_championFigureRegard) { + _championFigureRegard = [[UILabel alloc] init]; + _championFigureRegard.font = [UIFont systemFontOfSize:16 weight:UIFontWeightMedium]; + _championFigureRegard.textColor =[DJDKMIMOMColor introjectionEssayPrettify]; + NSString *title = self.type == IncomeRecord_Diamond ? YMLocalizedString(@"YUMI_Exchange_Diamonds_Item_View_0"): YMLocalizedString(@"YUMI_Exchange_Diamonds_Item_View_1"); + _championFigureRegard.text = [NSString stringWithFormat:title,@"0"]; + } + return _championFigureRegard; +} + +- (UIImageView *)backgroundIndicateRegard{ + if (!_backgroundIndicateRegard){ + _backgroundIndicateRegard = [UIImageView new]; + if(self.type == IncomeRecord_Gold){ + _backgroundIndicateRegard.image = [UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[ UIColorFromRGB(0xDCE6FD),UIColorFromRGB(0xD8E3FE)] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(kGetScaleWidth(317), kGetScaleWidth(52))]; + }else{ + _backgroundIndicateRegard.image = [UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[ UIColorFromRGB(0xFEECD2),UIColorFromRGB(0xFFDE90)] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(kGetScaleWidth(317), kGetScaleWidth(52))]; + } + [_backgroundIndicateRegard setMonopolizeAboutContraryApexMonopolize:kGetScaleWidth(8) rightTopCorner:kGetScaleWidth(8) bottomLeftCorner:kGetScaleWidth(8) bottomRightCorner:kGetScaleWidth(8) size:CGSizeMake(kGetScaleWidth(317), kGetScaleWidth(52))]; + _backgroundIndicateRegard.userInteractionEnabled = YES; + + } + return _backgroundIndicateRegard; +} +-(UIButton *)figureRegard{ + if (!_figureRegard){ + UIImage *image = self.type == IncomeRecord_Diamond ? [UIImage imageNamed:@"yumi_exchange_diamonds_pic"] : [UIImage imageNamed:@"yumi_exchange_diamonds_pic"]; + _figureRegard = [UIButton buttonWithType:UIButtonTypeCustom]; + _figureRegard.backgroundColor = [UIColor whiteColor]; + _figureRegard.layer.cornerRadius = kGetScaleWidth(20); + _figureRegard.layer.masksToBounds = YES; + [_figureRegard setImage:image forState:UIControlStateNormal]; + } + return _figureRegard; +} + +- (YUMIEssayField *)digitalRegard{ + if (!_digitalRegard){ + _digitalRegard = [[YUMIEssayField alloc]initWithFrame:CGRectZero]; + _digitalRegard.keyboardType = UIKeyboardTypeNumberPad; + _digitalRegard.isValidation = YES; + NSMutableAttributedString *attStr = [[NSMutableAttributedString alloc]initWithString:@"0" attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:16 weight:UIFontWeightMedium],NSForegroundColorAttributeName:UIColorFromRGB(0xACB8D9)}]; + _digitalRegard.attributedPlaceholder = attStr; + _digitalRegard.font = [UIFont systemFontOfSize:16 weight:UIFontWeightMedium]; + _digitalRegard.textColor = [DJDKMIMOMColor introjectionEssayPrettify]; + _digitalRegard.textAlignment = NSTextAlignmentRight; + [_digitalRegard addTarget:self action:@selector(essayUniverseDidDiversifictowardsion:) forControlEvents:UIControlEventEditingChanged]; + } + return _digitalRegard; +} +-(UIButton *)arrowView{ + if (!_arrowView){ + _arrowView = [UIButton new]; + [_arrowView setImage:[UIImage imageNamed:@"yumi_exchange_diamonds_arrow"] forState:UIControlStateNormal]; + _arrowView.hidden = self.type == IncomeRecord_Gold; + } + return _arrowView; +} + +@end diff --git a/YuMi/Modules/YMMine/View/IncomeRecord/YUMIExchangeDiamondsVC.h b/YuMi/Modules/YMMine/View/IncomeRecord/YUMIExchangeDiamondsVC.h new file mode 100644 index 00000000..b382c217 --- /dev/null +++ b/YuMi/Modules/YMMine/View/IncomeRecord/YUMIExchangeDiamondsVC.h @@ -0,0 +1,24 @@ +// +// YUMIExchangeDiamondsVC.h +// YuMi +// +// Created by YuMi on 2022/11/17. +// + +#import "MvpRegardGovernancer.h" +#import "YUMIExchangeDiamondsMatrix.h" + +@protocol FBCExchangeDiamondsVCRepresendtation + +-(void)acknowledgementExdiversifictowardsionDiamondsAboutDiamondAccomplishment:(NSString *)strawberry gold:(NSString *)gold; + +@end + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIExchangeDiamondsVC : MvpRegardGovernancer +@property (nonatomic,strong) YUMIExchangeDiamondsMatrix *model; +@property (nonatomic,weak) id delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/IncomeRecord/YUMIExchangeDiamondsVC.m b/YuMi/Modules/YMMine/View/IncomeRecord/YUMIExchangeDiamondsVC.m new file mode 100644 index 00000000..d9c791be --- /dev/null +++ b/YuMi/Modules/YMMine/View/IncomeRecord/YUMIExchangeDiamondsVC.m @@ -0,0 +1,93 @@ +// +// YUMIExchangeDiamondsVC.m +// YuMi +// +// Created by YuMi on 2022/11/17. +// + +#import "YUMIExchangeDiamondsVC.h" +#import +#import "YUMIExchangeDiamondsRegard.h" +#import "YUMIManeConfirmGiveDiamondRegard.h" +#import "MKJPopup.h" +#import "YUMIRevenueReflectionExternalize.h" +#import "FBCIncomeRecordCeremony.h" +#import "YUMIExchangeDiamondsMatrix.h" + +@interface YUMIExchangeDiamondsVC () +@property (nonatomic,strong) YUMIExchangeDiamondsRegard *exdiversificationRegard; +@property (nonatomic,copy) NSString *strawberry; +@property (nonatomic,copy) NSString *gold; +@end + +@implementation YUMIExchangeDiamondsVC +- (YUMIRevenueReflectionExternalize *)producePresimport { + return [[YUMIRevenueReflectionExternalize alloc] init]; +} +- (void)viewDidLoad { + [super viewDidLoad]; + [self initSubViews]; + [self initChildLyRestrictions]; + if(self.model != nil){ + self.exdiversificationRegard.model = self.model; + return; + } + [self EvidenceChambering]; + [self.presimport acquireExdiversifictowardsionDiamondAbstractrmtowardsion]; +} +#pragma mark - FBCIncomeRecordCeremony +-(void)acquireExdiversifictowardsionDiamondAbstractrmtowardsion:(YUMIExchangeDiamondsMatrix *)model{ + [self brakeHUD]; + self.model = model; + self.exdiversificationRegard.model = self.model; +} +- (void)acknowledgementExdiversifictowardsionDiamondAccomplishmentAboutDiamondFigure:(NSString *)diamondNum goldNum:(NSString *)goldNum{ + [self brakeHUD]; + if(self.delegate && [self.delegate respondsToSelector:@selector(acknowledgementExdiversifictowardsionDiamondsAboutDiamondAccomplishment:gold:)]){ + [self.delegate acknowledgementExdiversifictowardsionDiamondsAboutDiamondAccomplishment:diamondNum gold:goldNum]; + } + [self EvidenceAccomplishmentToast:YMLocalizedString(@"YUMI_Exchange_Diamonds_View_5")]; + [self.navigationController popViewControllerAnimated:YES]; +} +- (void)acknowledgementExdiversifictowardsionDiamondFlunk{ + [self.presimport acquireExdiversifictowardsionDiamondAbstractrmtowardsion]; +} +#pragma mark - FBCManeConfirmGiveDiamondRegardRepresendtation +- (void)yumiManeConfirmGiveDiamondRegardAccomplish{ + [self EvidenceChambering]; + [self.presimport acknowledgementExdiversifictowardsionDiamondAboutGoldFigure:self.gold diamondNum:self.strawberry currency:@"1"]; +} +#pragma mark - FBCExchangeDiamondsRegardRepresendtation +-(void)acknowledgementExdiversifictowardsionDiamondsAboutDiamond:(NSString *)strawberry gold:(NSString *)gold currency:(NSString *)currency{ + self.strawberry = strawberry; + self.gold = [NSString stringWithFormat:@"%.0f",ceilf(strawberry.doubleValue / self.model.rate)]; + YUMIManeConfirmGiveDiamondRegard *confirmView = [[YUMIManeConfirmGiveDiamondRegard alloc]initWithFrame:CGRectZero]; + confirmView.type = 2; + confirmView.goldNum = self.gold.integerValue; + confirmView.introjectionBWSttawberrys = self.strawberry.integerValue; + confirmView.delegate = self; + [MKJPopup popupRegard:confirmView style:MKJPopupStyleAlert]; +} +#pragma mark - Private Method +- (void)initSubViews { + self.title = YMLocalizedString(@"YUMI_Exchange_Diamonds_View_0"); + [self.view addSubview:self.exdiversificationRegard]; + + +} +- (void)initChildLyRestrictions { + [self.exdiversificationRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.equalTo(self.view); + }]; +} +#pragma mark -懒加载 +- (YUMIExchangeDiamondsRegard *)exdiversificationRegard{ + if (!_exdiversificationRegard){ + _exdiversificationRegard = [[YUMIExchangeDiamondsRegard alloc]initWithFrame:CGRectZero]; + _exdiversificationRegard.delegate = self; + } + return _exdiversificationRegard; +} + + +@end diff --git a/YuMi/Modules/YMMine/View/IncomeRecord/YUMIGoldSpecificsChooseChamberElement.h b/YuMi/Modules/YMMine/View/IncomeRecord/YUMIGoldSpecificsChooseChamberElement.h new file mode 100644 index 00000000..466617ad --- /dev/null +++ b/YuMi/Modules/YMMine/View/IncomeRecord/YUMIGoldSpecificsChooseChamberElement.h @@ -0,0 +1,17 @@ +// +// YUMIGoldSpecificsChooseChamberElement.h +// YuMi +// +// Created by YuMi on 2022/12/15. +// + +#import +#import "YUMIRevenueReflectionGoldSpecificsMatrix.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIGoldSpecificsChooseChamberElement : UITableViewCell +@property (nonatomic,strong) YUMIRevenueReflectionGoldSpecificProvisionMatrix *model; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/IncomeRecord/YUMIGoldSpecificsChooseChamberElement.m b/YuMi/Modules/YMMine/View/IncomeRecord/YUMIGoldSpecificsChooseChamberElement.m new file mode 100644 index 00000000..13936bd4 --- /dev/null +++ b/YuMi/Modules/YMMine/View/IncomeRecord/YUMIGoldSpecificsChooseChamberElement.m @@ -0,0 +1,70 @@ +// +// YUMIGoldSpecificsChooseChamberElement.m +// YuMi +// +// Created by YuMi on 2022/12/15. +// + +#import "YUMIGoldSpecificsChooseChamberElement.h" +#import "NetIndicateRegard.h" +#import "UIView+Corner.h" +@interface YUMIGoldSpecificsChooseChamberElement() +@property (nonatomic,strong) NetIndicateRegard *intelligenceIndicate; +@property (nonatomic,strong) UILabel *constituteRegard; +@end +@implementation YUMIGoldSpecificsChooseChamberElement +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} +- (void)setModel:(YUMIRevenueReflectionGoldSpecificProvisionMatrix *)model{ + _model = model; + _intelligenceIndicate.imageUrl = _model.ownerAvatar; + _constituteRegard.text = _model.hallName; +} +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor whiteColor]; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.intelligenceIndicate]; + [self.contentView addSubview:self.constituteRegard]; + +} +- (void)initChildLyRestrictions { + [self.intelligenceIndicate mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.mas_equalTo(kGetScaleWidth(34)); + make.top.mas_equalTo(kGetScaleWidth(12)); + make.centerX.equalTo(self.contentView); + }]; + [self.constituteRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(kGetScaleWidth(14)); + make.left.right.equalTo(self.contentView).inset(kGetScaleWidth(5)); + + make.top.mas_equalTo(kGetScaleWidth(52)); + }]; +} +#pragma mark -懒加载 +- (NetIndicateRegard *)intelligenceIndicate{ + if (!_intelligenceIndicate){ + NetIndicateDisposition *config = [[NetIndicateDisposition alloc]init]; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceIndicate = [[NetIndicateRegard alloc]initWithConfig:config]; + [_intelligenceIndicate setMonopolizeAboutContraryApexMonopolize:kGetScaleWidth(6) rightTopCorner:kGetScaleWidth(6) bottomLeftCorner:kGetScaleWidth(6) bottomRightCorner:kGetScaleWidth(6) size:CGSizeMake(kGetScaleWidth(34), kGetScaleWidth(34))]; + } + return _intelligenceIndicate; +} + +- (UILabel *)constituteRegard { + if (!_constituteRegard) { + _constituteRegard = [[UILabel alloc] init]; + _constituteRegard.font = [UIFont systemFontOfSize:10]; + _constituteRegard.textColor = [DJDKMIMOMColor introjectionEssayPrettify]; + _constituteRegard.textAlignment = NSTextAlignmentCenter; + } + return _constituteRegard; +} + +@end diff --git a/YuMi/Modules/YMMine/View/IncomeRecord/YUMIGoldSpecificsChooseChamberRegard.h b/YuMi/Modules/YMMine/View/IncomeRecord/YUMIGoldSpecificsChooseChamberRegard.h new file mode 100644 index 00000000..777e2b4b --- /dev/null +++ b/YuMi/Modules/YMMine/View/IncomeRecord/YUMIGoldSpecificsChooseChamberRegard.h @@ -0,0 +1,25 @@ +// +// YUMIGoldSpecificsChooseChamberRegard.h +// YuMi +// +// Created by YuMi on 2022/11/24. +// + +#import +#import "YUMIRevenueReflectionGoldSpecificsMatrix.h" +NS_ASSUME_NONNULL_BEGIN + +@protocol FBCGoldDetailsChooseChamberRegardRepresendtation + +-(void)concludeBelongChamberAboutMtowardsrix:(YUMIRevenueReflectionGoldSpecificProvisionMatrix *)model; + +@end + + +@interface YUMIGoldSpecificsChooseChamberRegard : UIView +@property (nonatomic,strong) YUMIRevenueReflectionGoldSpecificsMatrix *specificMatrix; +@property (nonatomic,weak) id delegate; +@property (nonatomic,assign) BOOL isReset; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/IncomeRecord/YUMIGoldSpecificsChooseChamberRegard.m b/YuMi/Modules/YMMine/View/IncomeRecord/YUMIGoldSpecificsChooseChamberRegard.m new file mode 100644 index 00000000..c22a420f --- /dev/null +++ b/YuMi/Modules/YMMine/View/IncomeRecord/YUMIGoldSpecificsChooseChamberRegard.m @@ -0,0 +1,82 @@ +// +// YUMIGoldSpecificsChooseChamberRegard.m +// YuMi +// +// Created by YuMi on 2022/11/24. +// + +#import "YUMIGoldSpecificsChooseChamberRegard.h" +#import "YUMIGoldSpecificsChooseChamberElement.h" +@interface YUMIGoldSpecificsChooseChamberRegard() +@property (nonatomic,strong) UITableView *tableView; +@property (nonatomic,strong) NSMutableArray *matrixStatement; +@property (nonatomic,strong) NSIndexPath *path; +@end +@implementation YUMIGoldSpecificsChooseChamberRegard + +-(instancetype)initWithFrame:(CGRect)frame{ + self = [super initWithFrame:frame]; + if(self){ + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} +-(void)setSpecificMatrix:(YUMIRevenueReflectionGoldSpecificsMatrix *)specificMatrix{ + _specificMatrix = specificMatrix; + _matrixStatement = [NSMutableArray arrayWithArray:_specificMatrix.hallVoList]; + [_tableView reloadData]; +} +#pragma mark - Private Method +- (void)initSubViews { + self.path = [NSIndexPath indexPathForRow:0 inSection:0]; + self.backgroundColor = [UIColor whiteColor]; + [self addSubview:self.tableView]; + + +} +- (void)setIsReset:(BOOL)isReset{ + _isReset = isReset; + self.path = [NSIndexPath indexPathForRow:0 inSection:0]; + [self.tableView reloadData]; +} +- (void)initChildLyRestrictions { + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.equalTo(self); + }]; +} +-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ + return _matrixStatement.count; +} +-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ + YUMIGoldSpecificsChooseChamberElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIGoldSpecificsChooseChamberElement class]) forIndexPath:indexPath]; + cell.model = self.matrixStatement[indexPath.row]; + cell.contentView.backgroundColor = self.path.row == indexPath.row ? [UIColor whiteColor] :UIColorFromRGB(0xF0F5F6); + return cell; +} +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ + if(self.delegate && [self.delegate respondsToSelector:@selector(concludeBelongChamberAboutMtowardsrix:)]){ + [self.delegate concludeBelongChamberAboutMtowardsrix:self.matrixStatement[indexPath.row]]; + } + self.path = indexPath; + [self.tableView reloadData]; +} +#pragma mark -懒加载 +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.rowHeight = kGetScaleWidth(78); + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.backgroundColor = [UIColor clearColor]; + if (@available(iOS 11.0, *)) { + _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + [_tableView registerClass:[YUMIGoldSpecificsChooseChamberElement class] forCellReuseIdentifier:NSStringFromClass([YUMIGoldSpecificsChooseChamberElement class])]; + + } + return _tableView; +} + +@end diff --git a/YuMi/Modules/YMMine/View/IncomeRecord/YUMIRevenueReflectionGoldSpecificsIntratemporalRegard.h b/YuMi/Modules/YMMine/View/IncomeRecord/YUMIRevenueReflectionGoldSpecificsIntratemporalRegard.h new file mode 100644 index 00000000..2839ce86 --- /dev/null +++ b/YuMi/Modules/YMMine/View/IncomeRecord/YUMIRevenueReflectionGoldSpecificsIntratemporalRegard.h @@ -0,0 +1,26 @@ +// +// YUMIRevenueReflectionGoldSpecificsIntratemporalRegard.h +// YuMi +// +// Created by YuMi on 2022/11/24. +// + +#import + +@protocol FBCIncomeRecordGoldDetailsTimeRegardRepresendtation + +-(void)concludeIntrtowardsemporal; + +@end + + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIRevenueReflectionGoldSpecificsIntratemporalRegard : UIView +@property (nonatomic,weak) id delegate; +@property (nonatomic,copy) NSString *time; +@property (nonatomic,strong,readonly) UIButton *minusBtuton; +@property (nonatomic,strong,readonly) UIButton *accelerateBtuton; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/IncomeRecord/YUMIRevenueReflectionGoldSpecificsIntratemporalRegard.m b/YuMi/Modules/YMMine/View/IncomeRecord/YUMIRevenueReflectionGoldSpecificsIntratemporalRegard.m new file mode 100644 index 00000000..5e90e675 --- /dev/null +++ b/YuMi/Modules/YMMine/View/IncomeRecord/YUMIRevenueReflectionGoldSpecificsIntratemporalRegard.m @@ -0,0 +1,85 @@ +// +// YUMIRevenueReflectionGoldSpecificsIntratemporalRegard.m +// YuMi +// +// Created by YuMi on 2022/11/24. +// + +#import "YUMIRevenueReflectionGoldSpecificsIntratemporalRegard.h" +@interface YUMIRevenueReflectionGoldSpecificsIntratemporalRegard() +@property (nonatomic,strong) UIButton *minusBtuton; +@property (nonatomic,strong) UIButton *accelerateBtuton; +@property (nonatomic,strong) UILabel *intratemporalRegard; + +@end + +@implementation YUMIRevenueReflectionGoldSpecificsIntratemporalRegard + +-(instancetype)initWithFrame:(CGRect)frame{ + self = [super initWithFrame:frame]; + if(self){ + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} +-(void)setTime:(NSString *)time{ + _time = time; + _intratemporalRegard.text = _time; +} +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = UIColorFromRGB(0xF4F0FE); + [self addSubview:self.minusBtuton]; + [self addSubview:self.intratemporalRegard]; + [self addSubview:self.accelerateBtuton]; +} +- (void)initChildLyRestrictions { + + [self.intratemporalRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.center.equalTo(self); + }]; + [self.minusBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.mas_equalTo(kGetScaleWidth(24)); + make.centerY.equalTo(self); + make.right.equalTo(self.intratemporalRegard.mas_left).mas_offset(-kGetScaleWidth(20)); + }]; + [self.accelerateBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.centerY.equalTo(self.minusBtuton); + make.left.equalTo(self.intratemporalRegard.mas_right).mas_offset(kGetScaleWidth(20)); + }]; +} +-(void)concludeIntrtowardsemporalPerformance{ + if(self.delegate && [self.delegate respondsToSelector:@selector(concludeIntrtowardsemporal)]){ + [self.delegate concludeIntrtowardsemporal]; + } +} +#pragma mark -懒加载 +- (UIButton *)minusBtuton{ + if (!_minusBtuton){ + _minusBtuton = [UIButton new]; + [_minusBtuton setImage:[UIImage imageNamed:@"yumi_gold_details_minus"] forState:UIControlStateNormal]; + } + return _minusBtuton; +} +-(UIButton *)accelerateBtuton{ + if (!_accelerateBtuton){ + _accelerateBtuton = [UIButton new]; + [_accelerateBtuton setImage:[UIImage imageNamed:@"yumi_gold_details_add"] forState:UIControlStateNormal]; + } + return _accelerateBtuton; +} + +- (UILabel *)intratemporalRegard { + if (!_intratemporalRegard) { + _intratemporalRegard = [[UILabel alloc] init]; + _intratemporalRegard.font = [UIFont systemFontOfSize:15]; + _intratemporalRegard.textColor = UIColorFromRGB(0x6D6B89); + _intratemporalRegard.textAlignment = NSTextAlignmentCenter; + _intratemporalRegard.userInteractionEnabled = YES; + UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(concludeIntrtowardsemporalPerformance)]; + [_intratemporalRegard addGestureRecognizer:tap]; + } + return _intratemporalRegard; +} +@end diff --git a/YuMi/Modules/YMMine/View/IncomeRecord/YUMIRevenueReflectionGoldSpecificsPickRegardRegard.h b/YuMi/Modules/YMMine/View/IncomeRecord/YUMIRevenueReflectionGoldSpecificsPickRegardRegard.h new file mode 100644 index 00000000..d4fda1a7 --- /dev/null +++ b/YuMi/Modules/YMMine/View/IncomeRecord/YUMIRevenueReflectionGoldSpecificsPickRegardRegard.h @@ -0,0 +1,34 @@ +// +// YUMIRevenueReflectionGoldSpecificsPickRegardRegard.h +// YuMi +// +// Created by YuMi on 2022/11/28. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol FBCIncomeRecordGoldDetailsPickRegardRegardRepresendtation + +- (void)didTicktackSurePerformanceWtihInititowardseEngagement:(NSDate *)startDate endDate:(NSDate *)endDate; + +@end + +@interface YUMIRevenueReflectionGoldSpecificsPickRegardRegard : UIView +@property (nonatomic,strong) NSDate *currentDate; +@property (nonatomic,weak) id delegate; +-(instancetype)initWithFrame:(CGRect)frame curEngagement:(NSDate *)date; +@end + + + + +@interface DatePickerRegard : UIView + +@property(nonatomic,assign)CGFloat leftExtents; +@property(nonatomic,strong)UIView *burlywoodRegard; +@property(nonatomic,strong) UILabel *championLab; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/IncomeRecord/YUMIRevenueReflectionGoldSpecificsPickRegardRegard.m b/YuMi/Modules/YMMine/View/IncomeRecord/YUMIRevenueReflectionGoldSpecificsPickRegardRegard.m new file mode 100644 index 00000000..9b21cfca --- /dev/null +++ b/YuMi/Modules/YMMine/View/IncomeRecord/YUMIRevenueReflectionGoldSpecificsPickRegardRegard.m @@ -0,0 +1,439 @@ +// +// YUMIRevenueReflectionGoldSpecificsPickRegardRegard.m +// YuMi +// +// Created by YuMi on 2022/11/28. +// + +#import "YUMIRevenueReflectionGoldSpecificsPickRegardRegard.h" +#import "NSDate+DateUtils.h" +#import "UIView+Corner.h" +@interface YUMIRevenueReflectionGoldSpecificsPickRegardRegard() +@property (nonatomic,strong) UIView *backgroundRegard; +@property (nonatomic,strong) UIButton *revocationBtuton; +@property (nonatomic,strong) UIButton *confirmBtn; +@property (nonatomic,strong) UILabel *titleView; +@property (strong, nonatomic) UIPickerView *pickerView; +@property (nonatomic,strong)NSMutableArray * selEngagementGarment; +@property (nonatomic,strong)NSMutableArray * atoloudspeakerGarment; +@property (nonatomic,strong)NSDateComponents * components; +@property (nonatomic,strong) NSDate *startDate; +@property (nonatomic,strong) NSDate *endDate; +@property (nonatomic,copy) NSArray *yearArr; + +@property (nonatomic,strong) NSDate *threeMinSatellitetEngagement; +@property (nonatomic,strong) NSDate *threeMinEndEngagement; +@property (nonatomic,strong) NSDate *threeLargestSatellitetEngagement; +@property (nonatomic,strong) NSDate *threeLargestEndEngagement; +@property (nonatomic,assign) BOOL isHaveImpressioniveEngagement; + + +@end +@implementation YUMIRevenueReflectionGoldSpecificsPickRegardRegard + +-(instancetype)initWithFrame:(CGRect)frame curEngagement:(NSDate *)date{ + self = [super initWithFrame:frame]; + if(self){ + [self initSubViews]; + [self initChildLyRestrictions]; + [self weekSeasonAboutUniversalEngagement:date]; + [self initEngagement:date]; + self.currentDate = date; + + } + return self; +} + +#pragma mark - Private Method + +- (void)initSubViews { + self.backgroundColor = [UIColor colorWithWhite:0 alpha:0.5]; + [self addSubview:self.backgroundRegard]; + [self.backgroundRegard addSubview:self.revocationBtuton]; + [self.backgroundRegard addSubview:self.confirmBtn]; + [self.backgroundRegard addSubview:self.titleView]; + [self.backgroundRegard addSubview:self.pickerView]; +} +- (void)initChildLyRestrictions { + [self.backgroundRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.equalTo(self).inset(kGetScaleWidth(0)); + make.height.mas_equalTo(kGetScaleWidth(302)); + }]; + [self.revocationBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(kGetScaleWidth(15)); + make.top.mas_equalTo(kGetScaleWidth(20)); + make.width.mas_equalTo(kGetScaleWidth(35)); + make.height.mas_equalTo(kGetScaleWidth(20)); + + }]; + [self.confirmBtn mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(kGetScaleWidth(20)); + make.right.mas_equalTo(-kGetScaleWidth(15)); + }]; + [self.titleView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(kGetScaleWidth(59)); + make.centerX.equalTo(self.backgroundRegard); + + }]; + [self.pickerView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(kGetScaleWidth(80)); + make.left.right.bottom.equalTo(self.backgroundRegard).inset(kGetScaleWidth(0)); + + }]; + +} +-(void)initEngagement:(NSDate *)date{ + + self.yearArr = @[YMLocalizedString(@"YUMI_Income_Record_Gold_Details_Pick_View_View_3") ,YMLocalizedString(@"YUMI_Income_Record_Gold_Details_Pick_View_View_4"),YMLocalizedString(@"YUMI_Income_Record_Gold_Details_Pick_View_View_5")]; + _selEngagementGarment = [[NSMutableArray alloc]init]; + NSCalendar * calender = [NSCalendar currentCalendar]; + _components = [calender components:NSCalendarUnitYear|NSCalendarUnitMonth|NSCalendarUnitDay|NSCalendarUnitHour|NSCalendarUnitMinute fromDate:[NSDate date]]; + NSArray * timeArr = [[NSArray alloc]init]; + NSTimeInterval startTimeNum = [self.startDate timeIntervalSince1970] ; + NSString *timeStr = [NSDate intrtowardsemporalstampSwopIntrtowardsemporal:startTimeNum andFormatter:@"yyyy-MM-dd"]; + NSTimeInterval endTimeNum = [self.endDate timeIntervalSince1970] ; + NSString *endTime = [NSDate intrtowardsemporalstampSwopIntrtowardsemporal:endTimeNum andFormatter:@"yyyy-MM-dd"]; + self.titleView.text = [NSString stringWithFormat:@"%@ %@ %@",timeStr,YMLocalizedString(@"YUMI_Income_Record_Gold_Details_Pick_View_View_2"),endTime]; + [self judgeEngagementIsHaveImpressionive]; + if (timeStr) { + timeArr = [self achieveIntrtowardsemporal:timeStr]; + } + if (timeArr.count == 3) { + + _atoloudspeakerGarment = [self dtowardsaProvenienceGarmentAboutDiana:self.components.month year:self.components.year]; + _selEngagementGarment = [timeArr mutableCopy]; + + for (int i = 0; i < 3; i++) { + + [_pickerView selectRow: [_atoloudspeakerGarment[i] indexOfObject:_selEngagementGarment[i]] inComponent:i animated:YES]; + } + } +} +-(void)judgeEngagementIsHaveImpressionive{ + NSDateFormatter *initialiser = [[NSDateFormatter alloc]init]; + [initialiser setDateFormat:@"yyyy-MM-dd"]; + NSDate *resDate; +#ifdef DEBUG + resDate = [initialiser dateFromString:@"2022-09-05"]; +#else + resDate = [initialiser dateFromString:@"2022-12-05"]; +#endif + if([self.startDate compare:resDate] == NSOrderedAscending){ + self.isHaveImpressioniveEngagement = NO; + }else if([self.startDate compare:self.threeMinSatellitetEngagement] == NSOrderedAscending){ + self.isHaveImpressioniveEngagement = NO; + }else if ([self.startDate compare:self.threeLargestSatellitetEngagement] == NSOrderedDescending){ + self.isHaveImpressioniveEngagement = NO; + }else{ + self.isHaveImpressioniveEngagement = YES; + } + +} +- (void)weekSeasonAboutUniversalEngagement:(NSDate *)date { + NSCalendar * calendar = [NSCalendar currentCalendar]; + NSDateComponents *comps = [calendar components:NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitWeekday | NSCalendarUnitDay fromDate:date]; + + + NSInteger weekDay = [comps weekday]; + + NSInteger day = [comps day]; + long firstDiff,lastDiff; + if (weekDay == 1){ + firstDiff = -6; + lastDiff = 0; + } else { + firstDiff = -(weekDay - 2); + lastDiff = 8 - weekDay; + } + + NSDateComponents *baseDayComp = [calendar components:NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay fromDate:date]; + + [baseDayComp setDay:day + firstDiff]; + NSDate *firstDayOfWeek = [calendar dateFromComponents:baseDayComp]; + self.startDate = firstDayOfWeek; + + [baseDayComp setDay:day + lastDiff]; + NSDate *lastDayOfWeek = [calendar dateFromComponents:baseDayComp]; + self.endDate = lastDayOfWeek; + + + if(self.threeMinSatellitetEngagement == nil){ + [baseDayComp setDay:day + firstDiff - 3 * 4 * 7 ]; + self.threeMinSatellitetEngagement = [calendar dateFromComponents:baseDayComp]; + [baseDayComp setDay:day + lastDiff - 3 * 4 * 7 ]; + self.threeMinEndEngagement = [calendar dateFromComponents:baseDayComp]; + [baseDayComp setDay:day + firstDiff]; + self.threeLargestSatellitetEngagement = [calendar dateFromComponents:baseDayComp]; + [baseDayComp setDay:day + lastDiff]; + self.threeLargestEndEngagement = [calendar dateFromComponents:baseDayComp]; + } + + + +} +-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{ + + return 3; +} + +-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{ + + return [_atoloudspeakerGarment[component] count]; +} + +-(CGFloat)pickerView:(UIPickerView *)pickerView widthForComponent:(NSInteger)component{ + + return KScreenWidth / 3; +} +-(CGFloat)pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component{ + return 48; +} + +-(UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view{ + [self diversifictowardsionSpeartowardsorBurlywoodPrettify]; + DatePickerRegard *lab = (DatePickerRegard *)view; + if (!lab) { + lab = [[DatePickerRegard alloc]initWithFrame:CGRectMake(0, 0, KScreenWidth/3, 48)]; + } + + + lab.burlywoodRegard.hidden = YES; + if ([_selEngagementGarment[component] isEqualToString: self.atoloudspeakerGarment[component][row]] ) { + + lab.burlywoodRegard.hidden = component == 2; + lab.championLab.font = [UIFont systemFontOfSize:20 weight:UIFontWeightSemibold]; + lab.championLab.textColor = self.isHaveImpressioniveEngagement ? [DJDKMIMOMColor introjectionEssayPrettify] : [DJDKMIMOMColor prohibitionBtutonEssayPrettify]; + lab.championLab.text= [NSString stringWithFormat:@"%@%@",self.selEngagementGarment[component],self.yearArr[component]]; + + }else{ + lab.championLab.font = [UIFont systemFontOfSize:14 weight:UIFontWeightSemibold]; + lab.championLab.textColor = [DJDKMIMOMColor prohibitionBtutonEssayPrettify]; + lab.championLab.text = [NSString stringWithFormat:@"%@%@",self.atoloudspeakerGarment[component][row],self.yearArr[component]]; + } + + + + return lab; +} + +-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{ + + if(component == 0){ + self.atoloudspeakerGarment = [self dtowardsaProvenienceGarmentAboutDiana:[_selEngagementGarment[1]integerValue] year:[self.atoloudspeakerGarment[component][row]integerValue]]; + + }else if (component == 1){ + self.atoloudspeakerGarment = [self dtowardsaProvenienceGarmentAboutDiana:[self.atoloudspeakerGarment[component][row]integerValue] year:[_selEngagementGarment[0]integerValue]]; + } + + if([[self.atoloudspeakerGarment[2] lastObject]integerValue] < [_selEngagementGarment[2]integerValue]){ + _selEngagementGarment[2] = [self.atoloudspeakerGarment[2] lastObject]; + } + + + [_selEngagementGarment replaceObjectAtIndex:component withObject:self.atoloudspeakerGarment[component][row]]; + NSDateFormatter *initialiser = [[NSDateFormatter alloc]init]; + [initialiser setDateFormat:@"yyyy-MM-dd"]; + NSString *date = [NSString stringWithFormat:@"%@-%@-%@",_selEngagementGarment[0],_selEngagementGarment[1],_selEngagementGarment[2]]; + NSDate *resDate = [initialiser dateFromString:date]; + [self weekSeasonAboutUniversalEngagement:resDate]; + [self judgeEngagementIsHaveImpressionive]; + NSTimeInterval startTimeNum = [self.startDate timeIntervalSince1970] ; + NSString *timeStr = [NSDate intrtowardsemporalstampSwopIntrtowardsemporal:startTimeNum andFormatter:@"yyyy-MM-dd"]; + NSTimeInterval endTimeNum = [self.endDate timeIntervalSince1970] ; + NSString *endTime = [NSDate intrtowardsemporalstampSwopIntrtowardsemporal:endTimeNum andFormatter:@"yyyy-MM-dd"]; + self.titleView.text = [NSString stringWithFormat:@"%@ %@ %@",timeStr,YMLocalizedString(@"YUMI_Income_Record_Gold_Details_Pick_View_View_2"),endTime]; + [pickerView reloadAllComponents]; + +} + +#pragma mark - 改变分割线的颜色 +- (void)diversifictowardsionSpeartowardsorBurlywoodPrettify { + + for(UIView *speartorView in _pickerView.subviews) { + + if (speartorView.frame.size.height < 80) { + + speartorView.backgroundColor = [UIColor whiteColor]; + + + + speartorView.backgroundColor = [UIColor clearColor]; + }else{ + speartorView.backgroundColor = [UIColor clearColor]; + } + } +} + +-(NSArray *)achieveIntrtowardsemporal:(NSString *)timeStr{ + + NSArray * timeArray = [timeStr componentsSeparatedByString:@"-"]; + NSMutableArray * timeArr = [[NSMutableArray alloc]init]; + for (int i = 0; i +#import "YUMIRevenueReflectionGoldSpecificsMatrix.h" +NS_ASSUME_NONNULL_BEGIN + +@protocol FBCIncomeRecordGoldDetailsRegardRepresendtation + +-(void)didTicktackSureAboutInititowardseEngagement:(NSDate *)startDate endDate:(NSDate *)endDate type:(int)type; + +@end + + +@interface YUMIRevenueReflectionGoldSpecificsRegard : UIView +@property (nonatomic,strong) YUMIRevenueReflectionGoldSpecificsMatrix *specificMatrix; + +@property (nonatomic,strong) NSDate *curEngagement; + +@property (nonatomic,copy) NSString *startTime; +@property (nonatomic,copy) NSString *endEngagementIntratemporal; +@property (nonatomic,strong) NSDate *startDate; +@property (nonatomic,strong) NSDate *endDate; +@property (nonatomic,copy) NSString *time; +@property (nonatomic,weak) id delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/IncomeRecord/YUMIRevenueReflectionGoldSpecificsRegard.m b/YuMi/Modules/YMMine/View/IncomeRecord/YUMIRevenueReflectionGoldSpecificsRegard.m new file mode 100644 index 00000000..ece13767 --- /dev/null +++ b/YuMi/Modules/YMMine/View/IncomeRecord/YUMIRevenueReflectionGoldSpecificsRegard.m @@ -0,0 +1,310 @@ +// +// YUMIRevenueReflectionGoldSpecificsRegard.m +// YuMi +// +// Created by YuMi on 2022/11/24. +// + +#import "YUMIRevenueReflectionGoldSpecificsRegard.h" +#import "YUMIRevenueReflectionGoldSpecificsIntelligenceRegard.h" +#import "YUMIRevenueReflectionGoldSpecificsElement.h" +#import "YUMIRevenueReflectionGoldSpecificsIntratemporalRegard.h" +#import "YUMIGoldSpecificsChooseChamberRegard.h" +#import "YUMIManeVacationerDispossessTabulationRegardElement.h" +#import "YUMIStrangeUnionIntratemporalPickRegard.h" +#import "YUMIRevenueReflectionGoldSpecificsPickRegardRegard.h" +#import "NSString+Utils.h" +#import "MKJPopup.h" +#import "NSObject+MJExtension.h" +@interface YUMIRevenueReflectionGoldSpecificsRegard() +@property (nonatomic,strong)YUMIRevenueReflectionGoldSpecificsIntratemporalRegard *intratemporalRegard; +@property (nonatomic,strong) YUMIRevenueReflectionGoldSpecificsIntelligenceRegard *intelligenceRegard; +@property (nonatomic,strong) UITableView *tableView; +@property (nonatomic,strong) UILabel *generalRegard; +@property (nonatomic,copy) NSArray *matrixStatement; +@property (nonatomic,strong) YUMIGoldSpecificsChooseChamberRegard *concludeRegard; +@property (nonatomic,assign) IncomeRecordGoldSortingType sortingGenre; +@property (nonatomic,strong) NSMutableArray *derivationalGarment; +@end +@implementation YUMIRevenueReflectionGoldSpecificsRegard + + +-(instancetype)initWithFrame:(CGRect)frame{ + self = [super initWithFrame:frame]; + if(self){ + + [self initSubViews]; + [self initChildLyRestrictions]; + self.sortingGenre = IncomeRecordGold_Diamond; + + } + return self; +} +-(void)setTime:(NSString *)time{ + _time = time; + _intratemporalRegard.time = time; + NSDateFormatter *initialiser = [[NSDateFormatter alloc]init]; + [initialiser setDateFormat:@"yyyy-MM-dd"]; + NSDate *resDate; +#ifdef DEBUG + resDate = [initialiser dateFromString:@"2022-09-05"]; +#else + resDate = [initialiser dateFromString:@"2022-12-05"]; +#endif + if ([self.startDate compare:resDate] == NSOrderedAscending) { + _intratemporalRegard.minusBtuton.enabled = NO; + }else{ + _intratemporalRegard.minusBtuton.enabled = YES; + } + if ([self.endDate compare:resDate] == NSOrderedAscending) { + _intratemporalRegard.accelerateBtuton.enabled = NO; + }else{ + if ([self.startDate compare:self.curEngagement] == NSOrderedDescending || [self.endDate compare:self.curEngagement] == NSOrderedSame) { + _intratemporalRegard.accelerateBtuton.enabled = NO; + }else{ + _intratemporalRegard.accelerateBtuton.enabled = YES; + } + } + +} +#pragma mark - Private Method +- (void)initSubViews { + + [self addSubview:self.intratemporalRegard]; + [self addSubview:self.intelligenceRegard]; + [self addSubview:self.generalRegard]; + [self addSubview:self.tableView]; + [self addSubview:self.concludeRegard]; + +} + +- (void)initChildLyRestrictions { + + + [self.intratemporalRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.equalTo(self); + make.height.mas_equalTo(kGetScaleWidth(47)); + }]; + [self.intelligenceRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(kGetScaleWidth(65)); + make.right.left.equalTo(self); + make.height.mas_equalTo(kGetScaleWidth(153)); + + }]; + [self.concludeRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(kGetScaleWidth(64)); + make.left.mas_equalTo(kGetScaleWidth(0)); + make.top.equalTo(self.intelligenceRegard.mas_bottom); + make.bottom.equalTo(self); + }]; + [self.generalRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.equalTo(self.concludeRegard.mas_right); + make.right.equalTo(self); + make.bottom.equalTo(self).mas_equalTo(- kGetScaleWidth(66)); + }]; + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.equalTo(self); + make.bottom.equalTo(self.generalRegard.mas_top).mas_offset(-kGetScaleWidth(10)); + make.top.equalTo(self.intelligenceRegard.mas_bottom); + make.left.mas_equalTo(kGetScaleWidth(64)); + }]; + + + +} +-(void)setSpecificMatrix:(YUMIRevenueReflectionGoldSpecificsMatrix *)specificMatrix{ + _specificMatrix = specificMatrix; + _intelligenceRegard.specificMatrix = _specificMatrix; + _concludeRegard.specificMatrix = _specificMatrix; + NSMutableArray *matrixStatement = [NSMutableArray array]; + if(_specificMatrix.hallVoList.count == 0){ + _matrixStatement = matrixStatement; + [_tableView reloadData]; + return; + } + YUMIRevenueReflectionGoldSpecificProvisionMatrix *chooseModel = _specificMatrix.hallVoList.firstObject; + NSDictionary *memberObj = _specificMatrix.hallMemberMap[chooseModel.hallId]; + _generalRegard.attributedText = [self acquireGeneralTowardstWtihFigure:[NSString stringWithFormat:@"%@",memberObj[@"total"] ?: @"0"]]; + NSArray *itemList = memberObj[@"hallMember"]; + if(itemList != nil){ + NSArray *itemModelList = [YUMIRevenueReflectionGoldSpecificProvisionMatrix mtowardsrixsAboutGarment:itemList]; + NSArray *list = [itemModelList sortedArrayUsingComparator:^NSComparisonResult(YUMIRevenueReflectionGoldSpecificProvisionMatrix * _Nonnull obj1, YUMIRevenueReflectionGoldSpecificProvisionMatrix * _Nonnull obj2) { + return obj1.giftDiamonds.integerValue < obj2.giftDiamonds.integerValue; + }]; + matrixStatement = [NSMutableArray arrayWithArray:list]; + } + _matrixStatement = matrixStatement; + [_tableView reloadData]; +} + +#pragma mark - FBCIncomeRecordGoldDetailsTimeRegardRepresendtation +-(void)concludeIntrtowardsemporal{ + YUMIRevenueReflectionGoldSpecificsPickRegardRegard *view = [[YUMIRevenueReflectionGoldSpecificsPickRegardRegard alloc]initWithFrame:CGRectMake(0, 0, KScreenWidth, KScreenHeight) curEngagement:self.startDate]; + view.delegate = self; + [[UIApplication sharedApplication].keyWindow addSubview:view]; + +} +#pragma mark - FBCStrangeUnionTimePickRegardRepresendtation +- (void)yUMIStrangeUnionIntrtowardsemporalExtractRegard:(YUMIStrangeUnionIntratemporalPickRegard *)view didClickSure:(UIButton *)sender{ + [MKJPopup dismiss]; + self.concludeRegard.isReset = YES; + if(self.delegate && [self.delegate respondsToSelector:@selector(didTicktackSureAboutInititowardseEngagement:endDate:type:)]){ + [self.delegate didTicktackSureAboutInititowardseEngagement:view.startDate endDate:view.endDate type:1]; + } +} +- (void)didTicktackSurePerformanceWtihInititowardseEngagement:(NSDate *)startDate endDate:(NSDate *)endDate{ + + self.concludeRegard.isReset = YES; + if(self.delegate && [self.delegate respondsToSelector:@selector(didTicktackSureAboutInititowardseEngagement:endDate:type:)]){ + [self.delegate didTicktackSureAboutInititowardseEngagement:startDate endDate:endDate type:1]; + } +} +- (void)yUMIStrangeUnionIntrtowardsemporalExtractRegard:(YUMIStrangeUnionIntratemporalPickRegard *)view didTicktackRevoctowardsion:(UIButton *)sender{ + [MKJPopup dismiss]; +} +#pragma mark - FBCGoldDetailsChooseChamberRegardRepresendtation +-(void)concludeBelongChamberAboutMtowardsrix:(YUMIRevenueReflectionGoldSpecificProvisionMatrix *)model{ + [self.intelligenceRegard replacementArrow]; + NSMutableArray *matrixStatement = [NSMutableArray array]; + NSDictionary *memberObj = self.specificMatrix.hallMemberMap[model.hallId]; + self.generalRegard.attributedText = [self acquireGeneralTowardstWtihFigure:[NSString stringWithFormat:@"%@",memberObj[@"total"]?:@"0"]]; + NSArray *itemList = memberObj[@"hallMember"]; + if(itemList != nil){ + NSArray *itemModelList = [YUMIRevenueReflectionGoldSpecificProvisionMatrix mtowardsrixsAboutGarment:itemList]; + NSArray *list = [itemModelList sortedArrayUsingComparator:^NSComparisonResult(YUMIRevenueReflectionGoldSpecificProvisionMatrix * _Nonnull obj1, YUMIRevenueReflectionGoldSpecificProvisionMatrix * _Nonnull obj2) { + return obj1.giftDiamonds.integerValue < obj2.giftDiamonds.integerValue; + }]; + matrixStatement = [NSMutableArray arrayWithArray:list]; + + } + + self.matrixStatement = matrixStatement; + [self.tableView reloadData]; + +} +-(NSMutableAttributedString *)acquireGeneralTowardstWtihFigure:(NSString *)total{ + NSString *getTotal = [NSString stringWithFormat:YMLocalizedString(@"YUMI_Income_Record_Gold_Details_View_1"),[NSString acquireDealFigurewithsttri:total]]; + NSMutableAttributedString *totalAtt = [[NSMutableAttributedString alloc]initWithString:getTotal attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:14 weight:UIFontWeightMedium],NSForegroundColorAttributeName:[DJDKMIMOMColor introjectionEssayPrettify]}]; + [totalAtt addAttributes:@{NSForegroundColorAttributeName:UIColorFromRGB(0xDE9F0C)} range:[getTotal rangeOfString:[NSString acquireDealFigurewithsttri:total]]]; + return totalAtt; +} +#pragma mark - XPIncomeRecordGoldDetailsCellDelegate + +- (void)concludeGoldTangerineTelling:(IncomeRecordGoldSortingType)type isAscending:(BOOL)isAscending{ + self.sortingGenre = type; + if(type == IncomeRecordGold_Diamond){ + NSArray *list = [self.matrixStatement sortedArrayUsingComparator:^NSComparisonResult(YUMIRevenueReflectionGoldSpecificProvisionMatrix * _Nonnull obj1, YUMIRevenueReflectionGoldSpecificProvisionMatrix * _Nonnull obj2) { + if(isAscending == YES){ + return obj2.giftDiamonds.integerValue > obj1.giftDiamonds.integerValue; + } + return obj1.giftDiamonds.integerValue > obj2.giftDiamonds.integerValue; + }]; + self.matrixStatement = [NSMutableArray arrayWithArray:list]; + [self.tableView reloadData]; + return; + } + NSArray *list = [self.matrixStatement sortedArrayUsingComparator:^NSComparisonResult(YUMIRevenueReflectionGoldSpecificProvisionMatrix * _Nonnull obj1, YUMIRevenueReflectionGoldSpecificProvisionMatrix * _Nonnull obj2) { + if(isAscending == YES){ + return obj2.remainGolds.integerValue > obj1.remainGolds.integerValue; + } + return obj1.remainGolds.integerValue > obj2.remainGolds.integerValue; + }]; + self.matrixStatement = [NSMutableArray arrayWithArray:list]; + [self.tableView reloadData]; + + +} +#pragma mark - UITableViewDelegate,UITableViewDataSource +-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ + return self.matrixStatement.count > 0 ? self.matrixStatement.count : 1; +} +-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{ + if(self.matrixStatement.count > 0){ + return kGetScaleWidth(78); + } + return kGetScaleWidth(400); +} +-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ + if(self.matrixStatement.count > 0){ + YUMIRevenueReflectionGoldSpecificsElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIRevenueReflectionGoldSpecificsElement class]) forIndexPath:indexPath]; + cell.specificMatrix = self.matrixStatement[indexPath.row]; + + return cell; + } + + YUMIManeVacationerDispossessTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIManeVacationerDispossessTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIManeVacationerDispossessTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIManeVacationerDispossessTabulationRegardElement class])]; + } + cell.emptyTitle = YMLocalizedString(@"YUMI_Income_Record_Gold_Details_View_0"); + [cell.dispossessIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(kGetScaleWidth(150)); + }]; + return cell; +} +-(void)minusIntrtowardsemporalPerformance{ + self.concludeRegard.isReset = YES; + if(self.delegate && [self.delegate respondsToSelector:@selector(didTicktackSureAboutInititowardseEngagement:endDate:type:)]){ + [self.delegate didTicktackSureAboutInititowardseEngagement:self.startDate endDate:self.endDate type:2]; + } + +} +-(void)accelertowardseIntrtowardsemporalPerformance{ + self.concludeRegard.isReset = YES; + if(self.delegate && [self.delegate respondsToSelector:@selector(didTicktackSureAboutInititowardseEngagement:endDate:type:)]){ + [self.delegate didTicktackSureAboutInititowardseEngagement:self.startDate endDate:self.endDate type:3]; + } +} +#pragma mark -懒加载 +- (YUMIRevenueReflectionGoldSpecificsIntratemporalRegard *)intratemporalRegard{ + if (!_intratemporalRegard){ + _intratemporalRegard = [[YUMIRevenueReflectionGoldSpecificsIntratemporalRegard alloc]initWithFrame:CGRectZero]; + _intratemporalRegard.delegate = self; + [_intratemporalRegard.minusBtuton addTarget:self action:@selector(minusIntrtowardsemporalPerformance) forControlEvents:UIControlEventTouchUpInside]; + [_intratemporalRegard.accelerateBtuton addTarget:self action:@selector(accelertowardseIntrtowardsemporalPerformance) forControlEvents:UIControlEventTouchUpInside]; + } + return _intratemporalRegard; +} +- (YUMIRevenueReflectionGoldSpecificsIntelligenceRegard *)intelligenceRegard{ + if (!_intelligenceRegard){ + _intelligenceRegard = [[YUMIRevenueReflectionGoldSpecificsIntelligenceRegard alloc]initWithFrame:CGRectZero]; + _intelligenceRegard.delegate = self; + } + return _intelligenceRegard; +} +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.backgroundColor = [UIColor clearColor]; + if (@available(iOS 11.0, *)) { + _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + [_tableView registerClass:[YUMIRevenueReflectionGoldSpecificsElement class] forCellReuseIdentifier:NSStringFromClass([YUMIRevenueReflectionGoldSpecificsElement class])]; + [_tableView registerClass:[YUMIManeVacationerDispossessTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIManeVacationerDispossessTabulationRegardElement class])]; + + } + return _tableView; +} +- (YUMIGoldSpecificsChooseChamberRegard *)concludeRegard{ + if (!_concludeRegard){ + _concludeRegard = [[YUMIGoldSpecificsChooseChamberRegard alloc]initWithFrame:CGRectZero]; + _concludeRegard.delegate = self; + _concludeRegard.backgroundColor = UIColorFromRGB(0xF0F5F6); + } + return _concludeRegard; +} + +- (UILabel *)generalRegard { + if (!_generalRegard) { + _generalRegard = [[UILabel alloc] init]; + _generalRegard.font = [UIFont systemFontOfSize:14 weight:UIFontWeightMedium]; + _generalRegard.textColor = [DJDKMIMOMColor introjectionEssayPrettify]; + } + return _generalRegard; +} + + +@end diff --git a/YuMi/Modules/YMMine/View/IncomeRecord/YUMIRevenueReflectionGoldSpecificsVC.h b/YuMi/Modules/YMMine/View/IncomeRecord/YUMIRevenueReflectionGoldSpecificsVC.h new file mode 100644 index 00000000..b25ad522 --- /dev/null +++ b/YuMi/Modules/YMMine/View/IncomeRecord/YUMIRevenueReflectionGoldSpecificsVC.h @@ -0,0 +1,15 @@ +// +// YUMIRevenueReflectionGoldSpecificsVC.h +// YuMi +// +// Created by YuMi on 2022/11/24. +// +#import "MvpRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIRevenueReflectionGoldSpecificsVC : MvpRegardGovernancer + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/IncomeRecord/YUMIRevenueReflectionGoldSpecificsVC.m b/YuMi/Modules/YMMine/View/IncomeRecord/YUMIRevenueReflectionGoldSpecificsVC.m new file mode 100644 index 00000000..2878d053 --- /dev/null +++ b/YuMi/Modules/YMMine/View/IncomeRecord/YUMIRevenueReflectionGoldSpecificsVC.m @@ -0,0 +1,140 @@ +// +// YUMIRevenueReflectionGoldSpecificsVC.m +// YuMi +// +// Created by YuMi on 2022/11/24. +// + +#import "YUMIRevenueReflectionGoldSpecificsVC.h" +#import "YUMIRevenueReflectionGoldSpecificsRegard.h" +#import "YUMIRevenueReflectionExternalize.h" +#import "YUMIRevenueReflectionGoldSpecificsMatrix.h" +#import "NSDate+DateUtils.h" +@interface YUMIRevenueReflectionGoldSpecificsVC () +@property (nonatomic,strong) YUMIRevenueReflectionGoldSpecificsRegard *goldSpecificsRegard; +@property (nonatomic,strong) YUMIRevenueReflectionGoldSpecificsMatrix *specificMatrix; +@property (nonatomic,strong) NSDate *startDate; +@property (nonatomic,strong) NSDate *endDate; +@property (nonatomic,copy) NSString *startTime; +@property (nonatomic,copy) NSString *endEngagementIntratemporal; +@end + +@implementation YUMIRevenueReflectionGoldSpecificsVC +- (YUMIRevenueReflectionExternalize *)producePresimport { + return [[YUMIRevenueReflectionExternalize alloc] init]; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initSubViews]; + [self initChildLyRestrictions]; + [self weekSeasonAboutUniversalEngagement:[NSDate date] type:0]; + [self acquireCurIntrtowardsemporal]; +} +-(void)acquireGoldSpecificsTowardsoloudspeakerAccomplishment:(YUMIRevenueReflectionGoldSpecificsMatrix *)specificMatrix{ + [self brakeHUD]; + self.specificMatrix = specificMatrix; + _goldSpecificsRegard.specificMatrix = _specificMatrix; +} +-(void)acquireCurIntrtowardsemporal{ + NSTimeInterval startTimeNum = [self.startDate timeIntervalSince1970] ; + NSTimeInterval endTimeNum = [self.endDate timeIntervalSince1970] ; + NSString *startTime = [NSDate intrtowardsemporalstampSwopIntrtowardsemporal:startTimeNum andFormatter:@"yyyy-MM-dd"]; + NSString *endTime = [NSDate intrtowardsemporalstampSwopIntrtowardsemporal:endTimeNum andFormatter:@"yyyy-MM-dd"]; + self.startTime = startTime; + self.endEngagementIntratemporal = endTime; + self.goldSpecificsRegard.startDate = self.startDate; + self.goldSpecificsRegard.endDate = self.endDate; + self.goldSpecificsRegard.time = [NSString stringWithFormat:@"%@ %@ %@",startTime,YMLocalizedString(@"YUMI_Income_Record_Gold_Details_VC_1"),endTime]; + [self.presimport acquireGoldSpecificsTowardsoloudspeakerAboutInititowardseIntrtowardsemporal:startTime endTime:endTime]; + +} +- (void)weekSeasonAboutUniversalEngagement:(NSDate *)date type:(int)type{ + + NSCalendar * calendar = [NSCalendar currentCalendar]; + NSDateComponents *comps = [calendar components:NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitWeekday | NSCalendarUnitDay fromDate:date]; + + + NSInteger weekDay = [comps weekday]; + + NSInteger day = [comps day]; + + NSInteger acquireSeason = 0; + if(type == 1){ + acquireSeason = 0; + }else if (type == 3){ + acquireSeason = -7; + }else if (type == 2){ + acquireSeason = 7; + } + long firstDiff,lastDiff; + if (weekDay == 1){ + firstDiff = -6; + lastDiff = 0; + } else { + firstDiff = -(weekDay - 2) ; + lastDiff = 8 - weekDay ; + } + + NSDateComponents *baseDayComp = [calendar components:NSCalendarUnitYear | NSCalendarUnitMonth | NSCalendarUnitDay fromDate:date]; + + [baseDayComp setDay:day + firstDiff - acquireSeason]; + NSDate *firstDayOfWeek = [calendar dateFromComponents:baseDayComp]; + self.startDate = firstDayOfWeek; + + [baseDayComp setDay:day + lastDiff - acquireSeason]; + NSDate *lastDayOfWeek = [calendar dateFromComponents:baseDayComp]; + self.endDate = lastDayOfWeek; + if(self.goldSpecificsRegard.curEngagement == nil){ + [baseDayComp setDay:day + lastDiff]; + self.goldSpecificsRegard.curEngagement = [calendar dateFromComponents:baseDayComp]; + + } + +} +#pragma mark - FBCIncomeRecordGoldDetailsRegardRepresendtation +-(void)didTicktackSureAboutInititowardseEngagement:(NSDate *)startDate endDate:(NSDate *)endDate type:(int)type{ + switch (type) { + case 1: + { + [self weekSeasonAboutUniversalEngagement:startDate type:1]; + [self acquireCurIntrtowardsemporal]; + break; + } + case 2: + { + [self weekSeasonAboutUniversalEngagement:startDate type:2]; + [self acquireCurIntrtowardsemporal]; + break; + } + + default: + { + [self weekSeasonAboutUniversalEngagement:startDate type:3]; + [self acquireCurIntrtowardsemporal]; + break; + } + } +} +#pragma mark - Private Method +- (void)initSubViews { + self.view.backgroundColor = [UIColor whiteColor]; + self.title = YMLocalizedString(@"YUMI_Income_Record_Gold_Details_VC_0"); + [self.view addSubview:self.goldSpecificsRegard]; +} +- (void)initChildLyRestrictions { + [self.goldSpecificsRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.left.right.bottom.equalTo(self.view); + + }]; +} +#pragma mark -懒加载 +- (YUMIRevenueReflectionGoldSpecificsRegard *)goldSpecificsRegard{ + if (!_goldSpecificsRegard){ + _goldSpecificsRegard = [[YUMIRevenueReflectionGoldSpecificsRegard alloc]initWithFrame:CGRectZero]; + _goldSpecificsRegard.delegate = self; + } + return _goldSpecificsRegard; +} + +@end diff --git a/YuMi/Modules/YMMine/View/IncomeRecord/YUMIRevenueReflectionRegard.h b/YuMi/Modules/YMMine/View/IncomeRecord/YUMIRevenueReflectionRegard.h new file mode 100644 index 00000000..06ae94b7 --- /dev/null +++ b/YuMi/Modules/YMMine/View/IncomeRecord/YUMIRevenueReflectionRegard.h @@ -0,0 +1,39 @@ +// +// YUMIRevenueReflectionRegard.h +// YuMi +// +// Created by YuMi on 2022/11/17. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +typedef enum : NSUInteger { + IncomeRecord_Diamond, + IncomeRecord_Gold +} IncomeRecordViewType; + +typedef enum : NSUInteger { + ClickType_Diamond_Detail, + ClickType_Diamond_Pay, + ClickType_Gold_Detail, + ClickType_Gold_Exchangel, +} IncomeRecordViewClickType; + + +@protocol FBCIncomeRecordRegardRepresendtation + +-(void)clickShankAboutGenre:(IncomeRecordViewClickType)type; + +@end + +@interface YUMIRevenueReflectionRegard : UIView +@property (nonatomic,copy) NSString *number; +@property (nonatomic,assign) BOOL isCollectivePresident; +@property (nonatomic,weak) id delegate; + +-(instancetype)initWithFrame:(CGRect)frame type:(IncomeRecordViewType)type; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/IncomeRecord/YUMIRevenueReflectionRegard.m b/YuMi/Modules/YMMine/View/IncomeRecord/YUMIRevenueReflectionRegard.m new file mode 100644 index 00000000..bff8fc35 --- /dev/null +++ b/YuMi/Modules/YMMine/View/IncomeRecord/YUMIRevenueReflectionRegard.m @@ -0,0 +1,206 @@ +// +// YUMIRevenueReflectionRegard.m +// YuMi +// +// Created by YuMi on 2022/11/17. +// + +#import "YUMIRevenueReflectionRegard.h" +#import "UIView+Corner.h" +@interface YUMIRevenueReflectionRegard() + +@property (nonatomic,strong) UIImageView *backgroundIndicateRegard; +@property (nonatomic,strong) UILabel *titleView; +@property (nonatomic,strong) UIButton *specificRegard; + +@property (nonatomic,strong) UILabel *digitalRegard; +@property (nonatomic,strong) UIStackView *btutonHierarchyRegard; +@property (nonatomic,strong) UIButton *payBtuton; +@property (nonatomic,strong) UIButton *exdiversificationBtuton; + +@property (nonatomic,assign) IncomeRecordViewType type; +@end +@implementation YUMIRevenueReflectionRegard +-(instancetype)initWithFrame:(CGRect)frame type:(IncomeRecordViewType)type{ + self = [super initWithFrame:frame]; + if(self){ + self.type = type; + [self initSubViews]; + [self initChildLyRestrictions]; + + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.backgroundIndicateRegard]; + [self.backgroundIndicateRegard addSubview:self.titleView]; + [self.backgroundIndicateRegard addSubview:self.specificRegard]; + [self.backgroundIndicateRegard addSubview:self.digitalRegard]; + [self.backgroundIndicateRegard addSubview:self.btutonHierarchyRegard]; + [self.btutonHierarchyRegard addArrangedSubview:self.payBtuton]; + [self.btutonHierarchyRegard addArrangedSubview:self.exdiversificationBtuton]; + +} +- (void)initChildLyRestrictions { + [self.backgroundIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.equalTo(self); + }]; + [self.titleView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(kGetScaleWidth(17)); + make.left.mas_equalTo(kGetScaleWidth(20)); + make.height.mas_equalTo(kGetScaleWidth(20)); + }]; + [self.specificRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(-kGetScaleWidth(20)); + make.height.mas_equalTo(kGetScaleWidth(18)); + make.width.mas_equalTo(kGetScaleWidth(45)); + make.centerY.equalTo(self.titleView); + }]; + + [self.digitalRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.equalTo(self.titleView); + make.top.mas_equalTo(kGetScaleWidth(49)); + make.height.mas_equalTo(kGetScaleWidth(20)); + make.right.mas_equalTo(-kGetScaleWidth(20)); + }]; + [self.btutonHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.equalTo(self.backgroundIndicateRegard).inset(kGetScaleWidth(20)); + make.height.mas_equalTo(kGetScaleWidth(40)); + make.top.mas_equalTo(kGetScaleWidth(86)); + }]; + [self.payBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(kGetScaleWidth(40)); + }]; + [self.exdiversificationBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(kGetScaleWidth(40)); + }]; +} +-(void)setNumber:(NSString *)number{ + _number = number; + _digitalRegard.text = _number; +} +-(void)setIsCollectivePresident:(BOOL)isCollectivePresident{ + _isCollectivePresident = isCollectivePresident; + _exdiversificationBtuton.hidden = _isCollectivePresident; + _specificRegard.hidden = !_isCollectivePresident; +} +#pragma mark - btnClick +-(void)clickSpecificRegardPerformance{ + if(self.type == IncomeRecord_Diamond){ + [self clickDiamondSpecificPerformance]; + return; + } + [self clickGoldSpecificPerformance]; +} +-(void)clickDiamondSpecificPerformance{ + if(self.delegate && [self.delegate respondsToSelector:@selector(clickShankAboutGenre:)]){ + [self.delegate clickShankAboutGenre:ClickType_Diamond_Detail]; + } +} +-(void)clickDiamondIntersectPerformance{ + if(self.delegate && [self.delegate respondsToSelector:@selector(clickShankAboutGenre:)]){ + [self.delegate clickShankAboutGenre:ClickType_Diamond_Pay]; + } +} +-(void)clickGoldSpecificPerformance{ + if(self.delegate && [self.delegate respondsToSelector:@selector(clickShankAboutGenre:)]){ + [self.delegate clickShankAboutGenre:ClickType_Gold_Detail]; + } +} +-(void)clickGoldExdiversifictowardsionlPerformance{ + if(self.delegate && [self.delegate respondsToSelector:@selector(clickShankAboutGenre:)]){ + [self.delegate clickShankAboutGenre:ClickType_Gold_Exchangel]; + } +} + +#pragma mark - 懒加载 +- (UIImageView *)backgroundIndicateRegard{ + if (!_backgroundIndicateRegard){ + _backgroundIndicateRegard = [UIImageView new]; + _backgroundIndicateRegard.userInteractionEnabled = YES; + _backgroundIndicateRegard.contentMode = UIViewContentModeScaleAspectFill; + _backgroundIndicateRegard.layer.cornerRadius = 10.f; + _backgroundIndicateRegard.clipsToBounds = YES; + _backgroundIndicateRegard.image = self.type == IncomeRecord_Diamond ? [UIImage imageNamed:@"yumi_income_record_diamond_background"]: [UIImage imageNamed:@"yumi_income_record_gold_background"]; + } + return _backgroundIndicateRegard; +} + +- (UILabel *)titleView { + if (!_titleView) { + _titleView = [[UILabel alloc] init]; + _titleView.font = [UIFont systemFontOfSize:20 weight:UIFontWeightMedium]; + _titleView.textColor = self.type == IncomeRecord_Diamond ? UIColorFromRGB(0x1B1558) : UIColorFromRGB(0x572714); + _titleView.text = self.type == IncomeRecord_Diamond ? YMLocalizedString(@"YUMI_Income_Record_View_4"):YMLocalizedString(@"YUMI_Income_Record_View_5"); + } + return _titleView; +} + +-(UIButton *)specificRegard{ + if (!_specificRegard){ + _specificRegard = [UIButton new]; + [_specificRegard setTitle:YMLocalizedString(@"YUMI_Income_Record_View_0") forState:UIControlStateNormal]; + [_specificRegard setTitleColor:self.type == IncomeRecord_Diamond ? UIColorFromRGB(0x1B1558):UIColorFromRGB(0x582815) forState:UIControlStateNormal]; + _specificRegard.titleLabel.font = [UIFont systemFontOfSize:13]; + _specificRegard.imageEdgeInsets = UIEdgeInsetsMake(0, kGetScaleWidth(40), 0, 0); + _specificRegard.titleEdgeInsets = UIEdgeInsetsMake(0, 0, 0, 0); + [_specificRegard setImage:self.type == IncomeRecord_Diamond ? [UIImage imageNamed:@"yumi_income_record_arrow_1"]: [UIImage imageNamed:@"yumi_income_record_arrow_2"] forState:UIControlStateNormal]; + [_specificRegard addTarget:self action:@selector(clickSpecificRegardPerformance) forControlEvents:UIControlEventTouchUpInside]; + } + return _specificRegard; +} + + +- (UILabel *)digitalRegard { + if (!_digitalRegard) { + _digitalRegard = [[UILabel alloc] init]; + _digitalRegard.font = [UIFont systemFontOfSize:18 weight:UIFontWeightMedium]; + _digitalRegard.textColor = self.type == IncomeRecord_Diamond ? UIColorFromRGB(0x1B1558) : UIColorFromRGB(0x572714); + _digitalRegard.text = @"0"; + } + return _digitalRegard; +} + +- (UIStackView *)btutonHierarchyRegard{ + if (!_btutonHierarchyRegard){ + _btutonHierarchyRegard = [[UIStackView alloc] init]; + _btutonHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _btutonHierarchyRegard.distribution = UIStackViewDistributionFillEqually; + _btutonHierarchyRegard.alignment = UIStackViewAlignmentFill; + _btutonHierarchyRegard.spacing = kGetScaleWidth(13); + } + return _btutonHierarchyRegard; +} +- (UIButton *)payBtuton{ + if (!_payBtuton){ + _payBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_payBtuton setTitle:YMLocalizedString(@"YUMI_Income_Record_View_1") forState:UIControlStateNormal]; + _payBtuton.backgroundColor = UIColorFromRGB(0xB1BFFA); + [_payBtuton setTitleColor:UIColorFromRGB(0x130C4F) forState:UIControlStateNormal]; + _payBtuton.titleLabel.font = [UIFont systemFontOfSize:16 weight:UIFontWeightMedium]; + _payBtuton.layer.cornerRadius = kGetScaleWidth(20); + _payBtuton.layer.masksToBounds = YES; + _payBtuton.hidden = self.type == IncomeRecord_Gold; + [_payBtuton addTarget:self action:@selector(clickDiamondIntersectPerformance) forControlEvents:UIControlEventTouchUpInside]; + } + return _payBtuton; +} + +-(UIButton *)exdiversificationBtuton{ + if (!_exdiversificationBtuton){ + _exdiversificationBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_exdiversificationBtuton setTitle:YMLocalizedString(@"YUMI_Income_Record_View_2") forState:UIControlStateNormal]; + [_exdiversificationBtuton setTitleColor:UIColorFromRGB(0x93570B) forState:UIControlStateNormal]; + _exdiversificationBtuton.titleLabel.font = [UIFont systemFontOfSize:16 weight:UIFontWeightMedium]; + _exdiversificationBtuton.hidden = self.type == IncomeRecord_Diamond; + _exdiversificationBtuton.layer.cornerRadius = kGetScaleWidth(20); + _exdiversificationBtuton.layer.masksToBounds = YES; + _exdiversificationBtuton.layer.borderWidth = 1; + _exdiversificationBtuton.layer.borderColor = UIColorFromRGB(0x93570B).CGColor; + [_exdiversificationBtuton addTarget:self action:@selector(clickGoldExdiversifictowardsionlPerformance) forControlEvents:UIControlEventTouchUpInside]; + } + return _exdiversificationBtuton; +} +@end diff --git a/YuMi/Modules/YMMine/View/IncomeRecord/YUMIRevenueReflectionVC.h b/YuMi/Modules/YMMine/View/IncomeRecord/YUMIRevenueReflectionVC.h new file mode 100644 index 00000000..e015e575 --- /dev/null +++ b/YuMi/Modules/YMMine/View/IncomeRecord/YUMIRevenueReflectionVC.h @@ -0,0 +1,18 @@ +// +// YUMIRevenueReflectionVC.h +// YuMi +// +// Created by YuMi on 2022/11/17. +// + +#import "MvpRegardGovernancer.h" +#import "CollectiveSpecificAbstractMatrix.h" +#import "ConsumerAbstractMatrix.h" +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIRevenueReflectionVC : MvpRegardGovernancer +@property (nonatomic,strong) CollectiveSpecificAbstractMatrix *collectiveAbstract; +@property (nonatomic,strong) ConsumerAbstractMatrix *userInfo; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/IncomeRecord/YUMIRevenueReflectionVC.m b/YuMi/Modules/YMMine/View/IncomeRecord/YUMIRevenueReflectionVC.m new file mode 100644 index 00000000..d3ebc441 --- /dev/null +++ b/YuMi/Modules/YMMine/View/IncomeRecord/YUMIRevenueReflectionVC.m @@ -0,0 +1,155 @@ +// +// YUMIRevenueReflectionVC.m +// YuMi +// +// Created by YuMi on 2022/11/17. +// + +#import "YUMIRevenueReflectionVC.h" +#import "YUMIRevenueReflectionRegard.h" +#import "YUMITissueRegardGovernancer.h" +#import "YUMIExchangeDiamondsVC.h" +#import "YUMIRevenueReflectionGoldSpecificsVC.h" +#import "YUMIIAPReindictRegardGovernancer.h" +#import "YUMIRevenueReflectionExternalize.h" +#import "FBCIncomeRecordCeremony.h" +#import "YUMIRevenueReflectionMatrix.h" +#import "AccountAbstractStorage.h" +#import "YUMIHtmlUrl.h" + +@interface YUMIRevenueReflectionVC () +@property (nonatomic,strong) YUMIRevenueReflectionRegard *bWSttawberryRegard; +@property (nonatomic,strong) YUMIRevenueReflectionRegard *goldRegard; +@property (nonatomic,strong) YUMIRevenueReflectionMatrix *reflectionMatrix; +@end + +@implementation YUMIRevenueReflectionVC + +- (YUMIRevenueReflectionExternalize *)producePresimport { + return [[YUMIRevenueReflectionExternalize alloc] init]; +} +- (void)viewDidLoad { + [super viewDidLoad]; + [self initSubViews]; + [self initChildLyRestrictions]; + [self EvidenceChambering]; + [self.presimport requisitionQueryAboutChamberGenre]; + +} +#pragma mark - Private Method +- (void)initSubViews { + self.view.backgroundColor = [UIColor whiteColor]; + self.title = YMLocalizedString(@"YUMI_Income_Record_VC_0"); + [self.view addSubview:self.bWSttawberryRegard]; + [self.view addSubview:self.goldRegard]; + self.goldRegard.isCollectivePresident = YES; + +} +- (void)initChildLyRestrictions { + [self.bWSttawberryRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(kGetScaleWidth(18)); + make.left.right.equalTo(self.view).inset(kGetScaleWidth(15)); + make.height.mas_equalTo(kGetScaleWidth(144)); + }]; + [self.goldRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.equalTo(self.bWSttawberryRegard); + make.top.equalTo(self.bWSttawberryRegard.mas_bottom).mas_offset(kGetScaleWidth(20)); + make.height.mas_equalTo(!self.goldRegard.isCollectivePresident ? kGetScaleWidth( 144) : kGetScaleWidth(90)); + }]; +} +#pragma mark - FBCExchangeDiamondsVCRepresendtation +-(void)acknowledgementExdiversifictowardsionDiamondsAboutDiamondAccomplishment:(NSString *)strawberry gold:(NSString *)gold{ + self.reflectionMatrix.diamonds = self.reflectionMatrix.diamonds + strawberry.doubleValue; + self.reflectionMatrix.golds = self.reflectionMatrix.golds - gold.doubleValue; + NSString *diamondNum = [NSString stringWithFormat:@"%.0f",self.reflectionMatrix.diamonds]; + NSString *goldNum = [NSString stringWithFormat:@"%.2f",self.reflectionMatrix.golds]; + self.bWSttawberryRegard.number = diamondNum; + self.goldRegard.number = goldNum; +} +#pragma mark - FBCIncomeRecordCeremony +- (void)requisitionQueryAboutChamberGenreFlunk{ + self.goldRegard.hidden = NO; +} +-(void)acquireExdiversifictowardsionDiamondAbstractrmtowardsion:(YUMIExchangeDiamondsMatrix *)model{ + [self brakeHUD]; + YUMIExchangeDiamondsVC *exchangeVC = [YUMIExchangeDiamondsVC new]; + exchangeVC.model = model; + exchangeVC.delegate = self; + [self.navigationController pushViewController:exchangeVC animated:YES]; +} +-(void)acquireReflectionRevenueAccomplishment:(YUMIRevenueReflectionMatrix *)model{ + [self brakeHUD]; + self.reflectionMatrix = model; + self.goldRegard.hidden = self.reflectionMatrix.roomType == 4; + self.bWSttawberryRegard.number = @(model.diamonds).stringValue; + self.goldRegard.number = [NSString stringWithFormat:@"%.2f",model.golds]; + NSString * myUid = [AccountAbstractStorage instance].acquireCid; + if(![self.collectiveAbstract.clan.elderUid isEqualToString:myUid]){ + self.goldRegard.isCollectivePresident = !self.reflectionMatrix.hasGoldExchangeAuth; + if(self.reflectionMatrix.hasGoldExchangeAuth == YES){ + [self.goldRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(kGetScaleWidth( 144)); + }]; + } + } + + +} + +#pragma mark - FBCIncomeRecordRegardRepresendtation +-(void)clickShankAboutGenre:(IncomeRecordViewClickType)type{ + switch (type) { + case ClickType_Diamond_Detail: + { + YUMITissueRegardGovernancer * webVewC =[[YUMITissueRegardGovernancer alloc] init]; + webVewC.url = URLWithType(kMineEarningsRecord); + [self.navigationController pushViewController:webVewC animated:YES]; + break; + } + case ClickType_Diamond_Pay: + { + YUMIIAPReindictRegardGovernancer * webVewC =[[YUMIIAPReindictRegardGovernancer alloc] init]; + [self.navigationController pushViewController:webVewC animated:YES]; + break; + } + case ClickType_Gold_Exchangel: + { + if(self.reflectionMatrix.isClan == NO){ + YUMIExchangeDiamondsVC *exchangeVC = [YUMIExchangeDiamondsVC new]; + exchangeVC.delegate = self; + [self.navigationController pushViewController:exchangeVC animated:YES]; + return; + } + [self EvidenceChambering]; + [self.presimport acquireExdiversifictowardsionDiamondAbstractrmtowardsion]; + + + break; + } + default: + { + YUMIRevenueReflectionGoldSpecificsVC *goldDetailVC = [YUMIRevenueReflectionGoldSpecificsVC new]; + [self.navigationController pushViewController:goldDetailVC animated:YES]; + break; + } + } +} +#pragma mark -懒加载 +- (YUMIRevenueReflectionRegard *)bWSttawberryRegard{ + if (!_bWSttawberryRegard){ + _bWSttawberryRegard = [[YUMIRevenueReflectionRegard alloc]initWithFrame:CGRectZero type:IncomeRecord_Diamond]; + _bWSttawberryRegard.delegate = self; + } + return _bWSttawberryRegard; +} +- (YUMIRevenueReflectionRegard *)goldRegard{ + if (!_goldRegard){ + _goldRegard = [[YUMIRevenueReflectionRegard alloc]initWithFrame:CGRectZero type:IncomeRecord_Gold]; + _goldRegard.delegate = self; + _goldRegard.hidden = YES; + } + return _goldRegard; +} + + +@end diff --git a/YuMi/Modules/YMMine/View/MineInfo/YUMIManeConsumerAbstractAlbumRegardGovernancer.h b/YuMi/Modules/YMMine/View/MineInfo/YUMIManeConsumerAbstractAlbumRegardGovernancer.h new file mode 100644 index 00000000..0ae03355 --- /dev/null +++ b/YuMi/Modules/YMMine/View/MineInfo/YUMIManeConsumerAbstractAlbumRegardGovernancer.h @@ -0,0 +1,16 @@ +// +// YMMineUserInfoAlbumViewController.h +// YUMI +// +// Created by YUMI on 2021/9/24. +// + +#import "MvpRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeConsumerAbstractAlbumRegardGovernancer : MvpRegardGovernancer + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/MineInfo/YUMIManeConsumerAbstractAlbumRegardGovernancer.m b/YuMi/Modules/YMMine/View/MineInfo/YUMIManeConsumerAbstractAlbumRegardGovernancer.m new file mode 100644 index 00000000..ddf551aa --- /dev/null +++ b/YuMi/Modules/YMMine/View/MineInfo/YUMIManeConsumerAbstractAlbumRegardGovernancer.m @@ -0,0 +1,256 @@ +// +// YMMineUserInfoAlbumViewController.m +// YUMI +// +// Created by YUMI on 2021/9/24. +// + +#import "YUMIManeConsumerAbstractAlbumRegardGovernancer.h" +#import +#import +#import "SDAppearanceBrowser.h" +#import "UIIndicateConstant.h" +#import "MKJPopup.h" +#import "YYUtility.h" +#import "DJDKMIMOMColor.h" +#import "NSArray+Safe.h" +#import "ConsumerAbstractMatrix.h" +#import "YUMIManeConsumerAbstractAlbumAssembletionRegardElement.h" +#import "YUMIManeConsumerAbstractlbumExternalizer.h" +#import "FBCManeConsumerAbstractAlbumCeremony.h" + +@interface YUMIManeConsumerAbstractAlbumRegardGovernancer () +@property (nonatomic,strong) UICollectionView *collectionView; +@property (nonatomic,strong) NSArray *datasource; +@property (nonatomic,strong) UIButton *complectBtuton; +@property (nonatomic,assign) BOOL isCompile; +@end + +@implementation YUMIManeConsumerAbstractAlbumRegardGovernancer + +- (YUMIManeConsumerAbstractlbumExternalizer*)producePresimport { + return [[YUMIManeConsumerAbstractlbumExternalizer alloc] init]; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self chamberConsumerAbstract]; + [self initSubViews]; + [self initChildLyRestrictions]; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.title = YMLocalizedString(@"YUMI_Mine_User_Info_Album_View_Controller_0"); + + [self accelertowardseBreeadcrumbProvisionAboutProvisions:@[self.complectBtuton] isContrary:NO]; + [self.view addSubview:self.collectionView]; +} + +- (void)initChildLyRestrictions { + [self.collectionView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.view); + }]; +} + +- (void)chamberConsumerAbstract { + [self.presimport getUserInfo]; +} + +- (void)cancelEditing { + self.complectBtuton.selected = NO; + self.isCompile = NO; + [self.collectionView reloadData]; +} + +#pragma mark - 选择图片 +- (void)EvidenceAplictowardsionearanceRegard { + @weakify(self); + MKJActionSheetDisposition *cameraConfig = [MKJActionSheetDisposition normalTitle:YMLocalizedString(@"YUMI_Mine_User_Info_Album_View_Controller_1") ticktackPerformance:^{ + [YYUtility examineCameraAvailable:^{ + @strongify(self); + UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init]; + imagePicker.delegate = self; + imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera; + imagePicker.allowsEditing = YES; + [self presentViewController:imagePicker animated:YES completion:NULL]; + } denied:^{ + @strongify(self); + [self EvidenceNgtowardsAplictowardsionearance:@"相机不可用" content:YMLocalizedString(@"YUMI_Mine_User_Info_Album_View_Controller_3")]; + } restriction:^{ + @strongify(self); + [self EvidenceNgtowardsAplictowardsionearance:@"相机不可用" content:YMLocalizedString(@"YUMI_Mine_User_Info_Album_View_Controller_5")]; + }]; + }]; + + MKJActionSheetDisposition *photoLibrayConfig = [MKJActionSheetDisposition normalTitle:YMLocalizedString(@"YUMI_Mine_User_Info_Album_View_Controller_6") ticktackPerformance:^{ + [YYUtility examineAssetsLibrayAvailable:^{ + @strongify(self); + UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init]; + imagePicker.modalPresentationCapturesStatusBarAppearance = YES; + imagePicker.delegate = self; + imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; + imagePicker.allowsEditing = YES; + [self presentViewController:imagePicker animated:YES completion:NULL]; + } denied:^{ + @strongify(self); + [self EvidenceNgtowardsAplictowardsionearance:@"相册不可用" content:YMLocalizedString(@"YUMI_Mine_User_Info_Album_View_Controller_8")]; + } restriction:^{ + @strongify(self); + [self EvidenceNgtowardsAplictowardsionearance:@"相册不可用" content:YMLocalizedString(@"YUMI_Mine_User_Info_Album_View_Controller_10")]; + }]; + }]; + + [MKJPopup performanceSheetAboutProvisions:@[cameraConfig, photoLibrayConfig]]; +} + +- (void)EvidenceNgtowardsAplictowardsionearance:(NSString *)title content:(NSString *)content{ + MKJPrecautiousDisposition *config = [[MKJPrecautiousDisposition alloc] init]; + config.title = title; + config.message = content; + [MKJPopup precautiousAboutDisposition:config acknowledgementHandler:^{ + NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString]; + if ([[UIApplication sharedApplication] canOpenURL:url]) { + [[UIApplication sharedApplication] openURL:url]; + } + } cancelHandler:^{ + }]; +} + +#pragma mark - UICollectionViewDelegate And UICollectionViewDatasource +- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { + return self.datasource.count + 1; +} + +- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { + YUMIManeConsumerAbstractAlbumAssembletionRegardElement * cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([YUMIManeConsumerAbstractAlbumAssembletionRegardElement class]) forIndexPath:indexPath]; + cell.delegate = self; + if (indexPath.row == 0) { + cell.accelerateIndicateConstitute = @"mine_user_info_album_add"; + cell.isCompile = NO; + } else { + if (self.datasource.count > 0) { + cell.appearance = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row - 1]; + cell.isCompile = self.isCompile; + } + } + return cell; +} + +- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath { + [collectionView deselectItemAtIndexPath:indexPath animated:YES]; + if (indexPath.row == 0) { + if (self.datasource.count < 8) { + [self EvidenceAplictowardsionearanceRegard]; + [self cancelEditing]; + }else{ + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_Mine_User_Info_Album_View_Controller_11")]; + } + }else { + if (!self.isEditing) { + SDAppearanceBrowser *browser = [[SDAppearanceBrowser alloc]init]; + browser.sourceIndicatesAccommoengagementdRegard = self.collectionView; + browser.delegate = self; + browser.indicateComputation = self.datasource.count; + browser.universalIndicateIndicatrix = indexPath.item - 1; + browser.isHaveConsumerAccelerate = YES; + [browser show]; + } + } +} + +#pragma mark - FBCManeConsumerAbstractAlbumAssembletionRegardElementRepresendtation +- (void)fBCManeConsumerAbstractBrochureAssembletionRegardElement:(YUMIManeConsumerAbstractAlbumAssembletionRegardElement *)cell didDeleteItem:(ConsumerAppearance *)appearance { + MKJPrecautiousDisposition * config = [[MKJPrecautiousDisposition alloc] init]; + config.title = YMLocalizedString(@"YUMI_Mine_User_Info_Album_View_Controller_12"); + config.message = @"是否需要删除?"; + [MKJPopup precautiousAboutDisposition:config acknowledgementHandler:^{ + [self.presimport representtowardsionIndictowardseWeebsiteByvirtueofWeeblogicAboutPid:appearance.pid]; + } cancelHandler:^{ + + }]; +} + +#pragma mark - SDPhotoBrowserRepresendtation +- (UIImage *)aplictowardsionearanceBrowser:(SDAppearanceBrowser *)browser placeholderIndictowardseInthecaseofIndictowardsrix:(NSInteger)index { + return [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; +} + +- (NSURL *)aplictowardsionearanceBrowser:(SDAppearanceBrowser *)browser highQualityIndictowardseWEEBSITEInthecaseofIndictowardsrix:(NSInteger)index { + return [NSURL URLWithString:self.datasource[index].photoUrl]; +} +#pragma mark - UIImagePickerControllerDelegate +- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { + + [picker dismissViewControllerAnimated:YES completion:^{ + UIImage *selectedPhoto = [info objectForKey:UIImagePickerControllerOriginalImage]; + if (selectedPhoto) { + if (picker.sourceType == UIImagePickerControllerSourceTypeCamera) { + UIImageWriteToSavedPhotosAlbum(selectedPhoto, nil, nil, nil); + } + [self.presimport upburdenBrochureIndictowardse:selectedPhoto]; + } + }]; +} + +- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker { + [picker dismissViewControllerAnimated:YES completion:^{ + + }]; +} + +#pragma mark - FBCManeConsumerAbstractAlbumCeremony +- (void)dwellEarnConsumerAbstractAccomplishment:(ConsumerAbstractMatrix *)userInfo { + self.datasource = userInfo.privatePhoto; + [self.collectionView reloadData]; +} +- (void)upburdenBrochureIndictowardseToTertiusAccomplishment:(NSString *)url { + [self.presimport upburdenConsumerBrochureAboutWeebsiteBWStt:url]; +} +- (void)upburdenConsumerBrochureAccomplishment { + [self.presimport getUserInfo]; + [self EvidenceAccomplishmentToast:YMLocalizedString(@"YUMI_Mine_User_Info_Album_View_Controller_14")]; +} + +- (void)representtowardsionConsumerBrochureAccomplishment { + [self.presimport getUserInfo]; + [self EvidenceAccomplishmentToast:YMLocalizedString(@"YUMI_Mine_User_Info_Album_View_Controller_15")]; +} +#pragma mark - Event Response +- (void)complectBtutonPerformance:(UIButton *)sender { + sender.selected = !sender.selected; + self.isCompile = sender.selected; + [self.collectionView reloadData]; +} + +#pragma mark - Getters And Setters +- (UICollectionView *)collectionView{ + if (!_collectionView) { + UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init]; + layout.sectionInset = UIEdgeInsetsMake(10, 10, 10, 10); + layout.itemSize = CGSizeMake((self.view.frame.size.width - 50) / 3, (self.view.frame.size.width - 50) / 3); + layout.minimumLineSpacing = 15; + layout.minimumInteritemSpacing = 15; + _collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout]; + _collectionView.dataSource = self; + _collectionView.delegate = self; + _collectionView.backgroundColor = [UIColor clearColor]; + [_collectionView registerClass:[YUMIManeConsumerAbstractAlbumAssembletionRegardElement class] forCellWithReuseIdentifier:NSStringFromClass([YUMIManeConsumerAbstractAlbumAssembletionRegardElement class])]; + } + return _collectionView; +} + +- (UIButton *)complectBtuton { + if (!_complectBtuton) { + _complectBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_complectBtuton setTitle:YMLocalizedString(@"YUMI_Mine_User_Info_Album_View_Controller_16") forState:UIControlStateNormal]; + [_complectBtuton setTitle:YMLocalizedString(@"YUMI_Mine_User_Info_Album_View_Controller_17") forState:UIControlStateSelected]; + [_complectBtuton setTitleColor:[DJDKMIMOMColor mainEssayPrettify] forState:UIControlStateNormal]; + [_complectBtuton setTitleColor:[DJDKMIMOMColor mainEssayPrettify] forState:UIControlStateSelected]; + _complectBtuton.titleLabel.font = [UIFont systemFontOfSize:15]; + [_complectBtuton addTarget:self action:@selector(complectBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _complectBtuton; +} + +@end diff --git a/YuMi/Modules/YMMine/View/MineInfo/YUMIManeConsumerAbstractCompileRegardGovernancer.h b/YuMi/Modules/YMMine/View/MineInfo/YUMIManeConsumerAbstractCompileRegardGovernancer.h new file mode 100644 index 00000000..3e650d81 --- /dev/null +++ b/YuMi/Modules/YMMine/View/MineInfo/YUMIManeConsumerAbstractCompileRegardGovernancer.h @@ -0,0 +1,15 @@ +// +// YMMineUserInfoEditViewController.h +// YUMI +// +// Created by YUMI on 2021/9/23. +// + +#import "MvpRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN +@interface YUMIManeConsumerAbstractCompileRegardGovernancer : MvpRegardGovernancer + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/MineInfo/YUMIManeConsumerAbstractCompileRegardGovernancer.m b/YuMi/Modules/YMMine/View/MineInfo/YUMIManeConsumerAbstractCompileRegardGovernancer.m new file mode 100644 index 00000000..cd1a9d87 --- /dev/null +++ b/YuMi/Modules/YMMine/View/MineInfo/YUMIManeConsumerAbstractCompileRegardGovernancer.m @@ -0,0 +1,288 @@ +// +// YMMineUserInfoEditViewController.m +// YUMI +// +// Created by YUMI on 2021/9/23. +// + +#import "YUMIManeConsumerAbstractCompileRegardGovernancer.h" +#import +#import +#import "DJDKMIMOMColor.h" +#import "MKJPopup.h" +#import "YYUtility.h" +#import "YUMIMacroUitls.h" +#import "NSArray+Safe.h" +#import "YUMIManeConsumerAbstractCompileMatrix.h" +#import "ConsumerAbstractMatrix.h" +#import "YUMIManeConsumerAbstractCompileTabulationRegardElement.h" +#import "YUMIManeConsumerAbstractDateRegard.h" +#import "FBCManeConsumerAbstractEditCeremony.h" +#import "YUMIManeConsumerAbstractCompileExternalizer.h" +#import "YUMIManeConsumerAbstractNickRegardGovernancer.h" +#import "YUMIManeConsumerAbstractDesRegardGovernancer.h" +#import "YUMIManeConsumerAbstractAlbumRegardGovernancer.h" + +@interface YUMIManeConsumerAbstractCompileRegardGovernancer () +@property (nonatomic,strong) UITableView *tableView; +@property (nonatomic,strong) NSArray *atoloudspeakersouce; +@property (nonatomic,strong) YUMIManeConsumerAbstractDateRegard *engagementRegard; +@property (nonatomic,strong) ConsumerAbstractMatrix *userInfo; +@end + +@implementation YUMIManeConsumerAbstractCompileRegardGovernancer + +- (YUMIManeConsumerAbstractCompileExternalizer *)producePresimport { + return [[YUMIManeConsumerAbstractCompileExternalizer alloc] init]; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initSubViews]; + [self initChildLyRestrictions]; +} + +- (void)viewWillAppear:(BOOL)animated { + [super viewWillAppear:animated]; + [self.presimport getUserInfo]; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.title = YMLocalizedString(@"YUMI_Mine_User_Info_Edit_View_Controller_0"); + [self.view addSubview:self.tableView]; +} + +- (void)initChildLyRestrictions { + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.view); + }]; +} + +- (void)EvidenceAplictowardsionearanceRegard { + @weakify(self); + MKJActionSheetDisposition *cameraConfig = [MKJActionSheetDisposition normalTitle:YMLocalizedString(@"YUMI_Mine_User_Info_Edit_View_Controller_1") ticktackPerformance:^{ + [YYUtility examineCameraAvailable:^{ + @strongify(self); + UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init]; + imagePicker.delegate = self; + imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera; + imagePicker.allowsEditing = YES; + [self presentViewController:imagePicker animated:YES completion:NULL]; + } denied:^{ + @strongify(self); + [self EvidenceNgtowardsAplictowardsionearance:@"相机不可用" content:YMLocalizedString(@"YUMI_Mine_User_Info_Edit_View_Controller_3")]; + } restriction:^{ + @strongify(self); + [self EvidenceNgtowardsAplictowardsionearance:@"相机不可用" content:YMLocalizedString(@"YUMI_Mine_User_Info_Edit_View_Controller_5")]; + }]; + }]; + + MKJActionSheetDisposition *photoLibrayConfig = [MKJActionSheetDisposition normalTitle:YMLocalizedString(@"YUMI_Mine_User_Info_Edit_View_Controller_6") ticktackPerformance:^{ + [YYUtility examineAssetsLibrayAvailable:^{ + @strongify(self); + UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init]; + imagePicker.modalPresentationCapturesStatusBarAppearance = YES; + imagePicker.delegate = self; + imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary; + imagePicker.allowsEditing = YES; + [self presentViewController:imagePicker animated:YES completion:NULL]; + } denied:^{ + @strongify(self); + [self EvidenceNgtowardsAplictowardsionearance:@"相册不可用" content:YMLocalizedString(@"YUMI_Mine_User_Info_Edit_View_Controller_8")]; + } restriction:^{ + @strongify(self); + [self EvidenceNgtowardsAplictowardsionearance:@"相册不可用" content:YMLocalizedString(@"YUMI_Mine_User_Info_Edit_View_Controller_10")]; + }]; + }]; + + [MKJPopup performanceSheetAboutProvisions:@[cameraConfig, photoLibrayConfig]]; +} + +- (void)EvidenceNgtowardsAplictowardsionearance:(NSString *)title content:(NSString *)content { + MKJPrecautiousDisposition *config = [[MKJPrecautiousDisposition alloc] init]; + config.title = title; + config.message = content; + + [MKJPopup precautiousAboutDisposition:config acknowledgementHandler:^{ + NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString]; + if ([[UIApplication sharedApplication] canOpenURL:url]) { + [[UIApplication sharedApplication] openURL:url]; + } + } cancelHandler:^{ + }]; +} + +- (void)EvidenceEngagementExtracterRegard { + self.engagementRegard.time = self.userInfo.birth/1000; + [MKJPopup popupRegard:self.engagementRegard style:MKJPopupStyleActionSheet]; +} + +#pragma mark - UITableViewDelegate And UITableViewDataSource +- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { + return 1; +} + +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.atoloudspeakersouce.count; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + YUMIManeConsumerAbstractCompileMatrix * model = [self.atoloudspeakersouce secureGroalTowardsIndictowardsrix1:indexPath.row]; + if (model.type == YUMIManeConsumerAbstractEditGenre_Avatar) { + return 60; + } else { + return 50; + } +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + YUMIManeConsumerAbstractCompileTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIManeConsumerAbstractCompileTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIManeConsumerAbstractCompileTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIManeConsumerAbstractCompileTabulationRegardElement class])]; + } + YUMIManeConsumerAbstractCompileMatrix * model = [self.atoloudspeakersouce secureGroalTowardsIndictowardsrix1:indexPath.row]; + cell.itmeMatrix = model; + return cell; +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + [tableView deselectRowAtIndexPath:indexPath animated:YES]; + YUMIManeConsumerAbstractCompileMatrix * model = [self.atoloudspeakersouce secureGroalTowardsIndictowardsrix1:indexPath.row]; + switch (model.type) { + case YUMIManeConsumerAbstractEditGenre_Nick: + { + YUMIManeConsumerAbstractNickRegardGovernancer * nickVC = [[YUMIManeConsumerAbstractNickRegardGovernancer alloc] init]; + nickVC.delegate = self; + nickVC.nick = self.userInfo.nick; + [self.navigationController pushViewController:nickVC animated:YES]; + } + break; + case YUMIManeConsumerAbstractEditGenre_Avatar: { + if (self.userInfo.isReview) { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_Mine_User_Info_Edit_View_Controller_11")]; + } else { + [self EvidenceAplictowardsionearanceRegard]; + } + } + break; + case YUMIManeConsumerAbstractEditGenre_Birth: + [self EvidenceEngagementExtracterRegard]; + break; + case YUMIManeConsumerAbstractEditGenre_UseDes: + { + YUMIManeConsumerAbstractDesRegardGovernancer * desVC = [[YUMIManeConsumerAbstractDesRegardGovernancer alloc] init]; + desVC.delegate = self; + desVC.userDesc = self.userInfo.userDesc; + [self.navigationController pushViewController:desVC animated:YES]; + } + break; + case YUMIManeConsumerAbstractEditGenre_Photo: + { + YUMIManeConsumerAbstractAlbumRegardGovernancer * albumVC = [[YUMIManeConsumerAbstractAlbumRegardGovernancer alloc] init]; + [self.navigationController pushViewController:albumVC animated:YES]; + } + break; + + default: + break; + } +} + +#pragma mark - UIImagePickerControllerDelegate +- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info +{ + UIImage *selectedPhoto = [info objectForKey:UIImagePickerControllerEditedImage]; + if (selectedPhoto) { + if (picker.sourceType == UIImagePickerControllerSourceTypeCamera) { + UIImageWriteToSavedPhotosAlbum(selectedPhoto, nil, nil, nil); + } + [self.presimport upburdenIntelligenceportrait:selectedPhoto]; + } + [picker dismissViewControllerAnimated:YES completion:^{}]; +} + +- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker{ + [picker dismissViewControllerAnimated:YES completion:^{ + }]; +} + +#pragma mark - FBCManeConsumerAbstractDateRegardRepresendtation +- (void)fBCManeConsumerAbstractEngagementRegard:(YUMIManeConsumerAbstractDateRegard *)view didClickSureButton:(NSString *)dateStr{ + [MKJPopup dismiss]; + if (dateStr.length > 0) { + [self.presimport complectionAbstractAboutIntelligenceportrait:nil nick:nil birth:dateStr userDesc:nil]; + } +} + +- (void)fBCManeConsumerAbstractEngagementRegard:(YUMIManeConsumerAbstractDateRegard *)view didClickCancleButton:(UIButton *)sender { + [MKJPopup dismiss]; +} + +#pragma mark - FBCManeConsumerAbstractNickRegardGovernancerRepresendtation +- (void)fBCManeConsumerAbstractMonicerRegardGovernancer:(YUMIManeConsumerAbstractNickRegardGovernancer *)viewController updateNick:(NSString *)nick { + if (nick.length > 0) { + [self.presimport complectionAbstractAboutIntelligenceportrait:nil nick:nick birth:nil userDesc:nil]; + } +} +#pragma mark - FBCManeConsumerAbstractDesRegardGovernancerRepresendtation +- (void)fBCManeConsumerAbstractSequencRegardGovernancer:(YUMIManeConsumerAbstractDesRegardGovernancer *)viewController updateUserDes:(NSString *)userDes { + if (userDes.length > 0) { + [self.presimport complectionAbstractAboutIntelligenceportrait:nil nick:nil birth:nil userDesc:userDes]; + } +} + +#pragma mark - FBCManeConsumerAbstractEditCeremony +- (void)acquireConsumerAbstractCompileTowardsoloudspeakerProvenienceAccomplishment:(NSArray *)array { + self.atoloudspeakersouce = array; + [self.tableView reloadData]; +} + +- (void)accomplishConsumerAbstractAccomplishment:(ConsumerAbstractMatrix *)userInfo { + if (userInfo.isReview) { + [self EvidenceAccomplishmentToast:YMLocalizedString(@"YUMI_Mine_User_Info_Edit_View_Controller_12")]; + dispatch_time_t delayTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3.0 * NSEC_PER_SEC)); + dispatch_after(delayTime, dispatch_get_main_queue(), ^{ + [self.presimport getUserInfo]; + }); + } else { + [self EvidenceAccomplishmentToast:YMLocalizedString(@"YUMI_Mine_User_Info_Edit_View_Controller_13")]; + [self.presimport getUserInfo]; + } +} + +- (void)dwellEarnConsumerAbstractAccomplishment:(ConsumerAbstractMatrix *)userInfo { + self.userInfo = userInfo; + [self.presimport acquireConsumerAbstractCompileTowardsoloudspeakerProvenienceAboutConsumerAbstract:self.userInfo]; +} + +- (void)upburdenIndictowardseAccomplishment:(NSString *)url { + [self.presimport complectionAbstractAboutIntelligenceportrait:url nick:nil birth:nil userDesc:nil]; +} +#pragma mark - Getters And Setters +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.tableFooterView = [UIView new]; + _tableView.tableHeaderView = [UIView new]; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.backgroundColor = [UIColor clearColor]; + if (@available(iOS 11.0, *)) { + _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + [_tableView registerClass:[YUMIManeConsumerAbstractCompileTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIManeConsumerAbstractCompileTabulationRegardElement class])]; + } + return _tableView; +} + +- (YUMIManeConsumerAbstractDateRegard *)engagementRegard { + if (!_engagementRegard) { + _engagementRegard = [[YUMIManeConsumerAbstractDateRegard alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth, 216+kSafeAreaBottomHeight+54)]; + _engagementRegard.delegate = self; + } + return _engagementRegard; +} + +@end diff --git a/YuMi/Modules/YMMine/View/MineInfo/YUMIManeConsumerAbstractDesRegardGovernancer.h b/YuMi/Modules/YMMine/View/MineInfo/YUMIManeConsumerAbstractDesRegardGovernancer.h new file mode 100644 index 00000000..c53771dd --- /dev/null +++ b/YuMi/Modules/YMMine/View/MineInfo/YUMIManeConsumerAbstractDesRegardGovernancer.h @@ -0,0 +1,22 @@ +// +// YMMineUserInfoDesViewController.h +// YUMI +// +// Created by YUMI on 2021/9/23. +// + +#import "BaseRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN +@class YUMIManeConsumerAbstractDesRegardGovernancer; +@protocol FBCManeConsumerAbstractDesRegardGovernancerRepresendtation + +- (void)fBCManeConsumerAbstractSequencRegardGovernancer:(YUMIManeConsumerAbstractDesRegardGovernancer *)viewController updateUserDes:(NSString *)userDes; + +@end +@interface YUMIManeConsumerAbstractDesRegardGovernancer : BaseRegardGovernancer +@property (nonatomic,strong) NSString *userDesc; +@property (nonatomic,weak) id delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/MineInfo/YUMIManeConsumerAbstractDesRegardGovernancer.m b/YuMi/Modules/YMMine/View/MineInfo/YUMIManeConsumerAbstractDesRegardGovernancer.m new file mode 100644 index 00000000..acd3d2d4 --- /dev/null +++ b/YuMi/Modules/YMMine/View/MineInfo/YUMIManeConsumerAbstractDesRegardGovernancer.m @@ -0,0 +1,160 @@ +// +// YMMineUserInfoDesViewController.m +// YUMI +// +// Created by YUMI on 2021/9/23. +// + +#import "YUMIManeConsumerAbstractDesRegardGovernancer.h" +#import +#import +#import +#import "DJDKMIMOMColor.h" +#import "ConsumerAbstractMatrix.h" + +static NSInteger maxCount = 60; + +@interface YUMIManeConsumerAbstractDesRegardGovernancer () +@property (nonatomic, strong) UIView *accommoengagementRegard; +@property (nonatomic, strong) SZTextView *useSequenceEssayRegard; +@property (nonatomic, strong) UIButton *distinctBtuton; +@property (nonatomic, strong) UIButton *completionBtuton; +@property (nonatomic, strong) UILabel *restrictionSequencignation; + + +@end + + + +@implementation YUMIManeConsumerAbstractDesRegardGovernancer + +- (void)viewDidLoad { + [super viewDidLoad]; + self.title = YMLocalizedString(@"YUMI_Mine_User_Info_Des_View_Controller_0"); + [self initSubViews]; + [self initChildLyRestrictions]; + [self initOccurrences]; + +} + +- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { + [self.view endEditing:YES]; +} + +#pragma mark - Private Method +- (void)initSubViews { + UIBarButtonItem *completeItem = [[UIBarButtonItem alloc] initWithCustomView:self.completionBtuton]; + self.navigationItem.rightBarButtonItem = completeItem; + [self.view addSubview:self.accommoengagementRegard]; + [self.accommoengagementRegard addSubview:self.useSequenceEssayRegard]; + [self.accommoengagementRegard addSubview:self.distinctBtuton]; + [self.view addSubview:self.restrictionSequencignation]; + self.useSequenceEssayRegard.text = self.userDesc; + self.restrictionSequencignation.text = [NSString stringWithFormat:@"%ld",(maxCount - self.userDesc.length)]; + self.restrictionSequencignation.textColor = self.userDesc.length > 0 ? [DJDKMIMOMColor mainEssayPrettify] : [DJDKMIMOMColor instantEssayPrettify]; + self.completionBtuton.enabled = self.useSequenceEssayRegard.text.length > 0; +} + +- (void)initChildLyRestrictions { + [self.accommoengagementRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(20); + make.left.mas_equalTo(self.view).offset(15); + make.right.mas_equalTo(self.view).offset(-15); + make.height.mas_equalTo(137); + }]; + [self.useSequenceEssayRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.top.mas_equalTo(self.accommoengagementRegard).offset(10); + make.bottom.mas_equalTo(self.accommoengagementRegard).offset(-10); + make.right.mas_equalTo(self.distinctBtuton.mas_left).offset(-5); + }]; + [self.distinctBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.accommoengagementRegard).offset(10); + make.right.mas_equalTo(self.accommoengagementRegard).offset(-10); + }]; + [self.restrictionSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.accommoengagementRegard.mas_bottom).offset(5); + make.right.mas_equalTo(self.accommoengagementRegard); + }]; +} + +- (void)initOccurrences { + @weakify(self); + RAC(self.completionBtuton, enabled) = [RACSignal combineLatest:@[self.useSequenceEssayRegard.rac_textSignal] reduce:^id _Nonnull(NSString *text){ + @strongify(self); + self.restrictionSequencignation.text = [NSString stringWithFormat:@"%ld",(maxCount - text.length)]; + if (text.length > maxCount) { + [self EvidenceMistakeToast:[NSString stringWithFormat:YMLocalizedString(@"YUMI_Mine_User_Info_Des_View_Controller_1"), maxCount]]; + } + return @(text.length > 0 && text.length <= maxCount); + }]; +} +#pragma mark - Event Response +- (void)implementtowardsionBtutonPerformance:(UIButton *)sender { + [self.navigationController popViewControllerAnimated:YES]; + if (self.delegate && [self.delegate respondsToSelector:@selector(fBCManeConsumerAbstractSequencRegardGovernancer:updateUserDes:)]) { + [self.delegate fBCManeConsumerAbstractSequencRegardGovernancer:self updateUserDes:self.useSequenceEssayRegard.text]; + } +} + +- (void)prohibititinctBtutonPerformance:(UIButton *)sender { + self.useSequenceEssayRegard.text = @""; + self.completionBtuton.enabled = NO; + self.restrictionSequencignation.text = [NSString stringWithFormat:@"%ld",(maxCount - self.useSequenceEssayRegard.text.length)]; +} + +#pragma mark - getter && setter +- (UIView *)accommoengagementRegard { + if (!_accommoengagementRegard) { + _accommoengagementRegard = [[UIView alloc] init]; + _accommoengagementRegard.layer.cornerRadius = 5; + _accommoengagementRegard.backgroundColor = [DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify]; + } + return _accommoengagementRegard; +} + +- (SZTextView *)useSequenceEssayRegard { + if (!_useSequenceEssayRegard) { + _useSequenceEssayRegard = [[SZTextView alloc] init]; + _useSequenceEssayRegard.delegate = self; + _useSequenceEssayRegard.placeholder = @"填写自我介绍,可以让别人更了解你哦~"; + _useSequenceEssayRegard.placeholderTextColor = [DJDKMIMOMColor instantEssayPrettify]; + _useSequenceEssayRegard.font = [UIFont systemFontOfSize:14]; + _useSequenceEssayRegard.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _useSequenceEssayRegard.backgroundColor = [DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify]; + } + return _useSequenceEssayRegard; +} + +- (UIButton *)completionBtuton { + if (!_completionBtuton) { + _completionBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_completionBtuton setTitle:YMLocalizedString(@"YUMI_Mine_User_Info_Des_View_Controller_3") forState:UIControlStateNormal]; + [_completionBtuton setFrame:CGRectMake(0, 0, 50, 30)]; + [_completionBtuton setTitleColor:[DJDKMIMOMColor mainEssayPrettify] forState:UIControlStateNormal]; + [_completionBtuton setTitleColor:[DJDKMIMOMColor prohibitionBtutonEssayPrettify] forState:UIControlStateDisabled]; + [_completionBtuton.titleLabel setFont:[UIFont systemFontOfSize:13]]; + [_completionBtuton addTarget:self action:@selector(implementtowardsionBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _completionBtuton; +} + +- (UILabel *)restrictionSequencignation { + if (!_restrictionSequencignation) { + _restrictionSequencignation = [[UILabel alloc] init]; + _restrictionSequencignation.font = [UIFont systemFontOfSize:14]; + _restrictionSequencignation.textColor = [DJDKMIMOMColor instantEssayPrettify]; + _restrictionSequencignation.text = @"60"; + } + return _restrictionSequencignation; +} + +- (UIButton *)distinctBtuton { + if (!_distinctBtuton) { + _distinctBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_distinctBtuton setImage:[UIImage imageNamed:@"yumi_center_user_gen_edit_clear"] forState:UIControlStateNormal]; + [_distinctBtuton addTarget:self action:@selector(prohibititinctBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _distinctBtuton; +} + +@end diff --git a/YuMi/Modules/YMMine/View/MineInfo/YUMIManeConsumerAbstractNickRegardGovernancer.h b/YuMi/Modules/YMMine/View/MineInfo/YUMIManeConsumerAbstractNickRegardGovernancer.h new file mode 100644 index 00000000..a3e2ccad --- /dev/null +++ b/YuMi/Modules/YMMine/View/MineInfo/YUMIManeConsumerAbstractNickRegardGovernancer.h @@ -0,0 +1,21 @@ +// +// YMMineUserInfoNickViewController.h +// YUMI +// +// Created by YUMI on 2021/9/23. +// + +#import "BaseRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN +@class YUMIManeConsumerAbstractNickRegardGovernancer; +@protocol FBCManeConsumerAbstractNickRegardGovernancerRepresendtation +- (void)fBCManeConsumerAbstractMonicerRegardGovernancer:(YUMIManeConsumerAbstractNickRegardGovernancer *)viewController updateNick:(NSString *)nick; +@end + +@interface YUMIManeConsumerAbstractNickRegardGovernancer : BaseRegardGovernancer +@property (nonatomic,strong) NSString *nick; +@property (nonatomic,weak) id delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/MineInfo/YUMIManeConsumerAbstractNickRegardGovernancer.m b/YuMi/Modules/YMMine/View/MineInfo/YUMIManeConsumerAbstractNickRegardGovernancer.m new file mode 100644 index 00000000..a4f2a9cd --- /dev/null +++ b/YuMi/Modules/YMMine/View/MineInfo/YUMIManeConsumerAbstractNickRegardGovernancer.m @@ -0,0 +1,160 @@ +// +// YMMineUserInfoNickViewController.m +// YUMI +// +// Created by YUMI on 2021/9/23. +// + +#import "YUMIManeConsumerAbstractNickRegardGovernancer.h" +#import +#import +#import "DJDKMIMOMColor.h" +#import "UIImage+Utils.h" +#import "ConsumerAbstractMatrix.h" + +static NSInteger maxCount = 15; + +@interface YUMIManeConsumerAbstractNickRegardGovernancer () +@property (nonatomic, strong) UIView *accommoengagementRegard; +@property (nonatomic, strong) UITextField *monicerEssayUniverse; +@property (nonatomic, strong) UIButton *completionBtuton; +@property (nonatomic, strong) UILabel *restrictionSequencignation; +@end + +@implementation YUMIManeConsumerAbstractNickRegardGovernancer +- (void)viewDidLoad { + [super viewDidLoad]; + [self setEvents]; + [self setUpwardsUI]; + [self initChildLyRestrictions]; + +} + +#pragma mark -UI +- (void)setUpwardsUI { + self.title = YMLocalizedString(@"YUMI_Mine_User_Info_Nick_View_Controller_0"); + UIBarButtonItem *completeItem = [[UIBarButtonItem alloc] initWithCustomView:self.completionBtuton]; + self.navigationItem.rightBarButtonItem = completeItem; + [self.view addSubview:self.accommoengagementRegard]; + [self.accommoengagementRegard addSubview:self.monicerEssayUniverse]; + [self.view addSubview:self.restrictionSequencignation]; + self.monicerEssayUniverse.text = self.nick; + self.restrictionSequencignation.text = [NSString stringWithFormat:@"%ld", (long)(maxCount - self.nick.length)]; +} + +- (void)initChildLyRestrictions { + [self.accommoengagementRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(20); + make.left.mas_equalTo(self.view).offset(15); + make.right.mas_equalTo(self.view).offset(-15); + make.height.mas_equalTo(35); + }]; + [self.monicerEssayUniverse mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.accommoengagementRegard); + make.left.mas_equalTo(self.accommoengagementRegard).offset(5); + make.right.mas_equalTo(self.accommoengagementRegard); + make.height.mas_equalTo(35); + }]; + [self.restrictionSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.monicerEssayUniverse.mas_bottom).offset(8); + make.right.mas_equalTo(self.monicerEssayUniverse); + }]; +} + +- (void)setEvents { + @weakify(self) + [self.monicerEssayUniverse.rac_textSignal subscribeNext:^(NSString * _Nullable x) { + @strongify(self); + [self monicerEssayPreadominantFilter:x]; + self.restrictionSequencignation.text = [NSString stringWithFormat:@"%ld", (long)(maxCount - self.monicerEssayUniverse.text.length)]; + }]; + RAC(self.completionBtuton, enabled) = [RACSignal combineLatest:@[self.monicerEssayUniverse.rac_textSignal] reduce:^id _Nonnull(NSString *text){ + return @(text.length > 0 && text.length <= maxCount); + }]; +} + +- (void)monicerEssayPreadominantFilter:(NSString *)nickTitle{ + NSString *toBeString = nickTitle; + NSString *lang = [self.monicerEssayUniverse.textInputMode primaryLanguage]; + if ([lang isEqualToString:@"zh-Hans"]){ + + UITextRange *selectedRange = [self.monicerEssayUniverse markedTextRange]; + UITextPosition *position = [self.monicerEssayUniverse positionFromPosition:selectedRange.start offset:0]; + + if (!position){ + if (toBeString.length > 15){ + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_Mine_User_Info_Nick_View_Controller_1")]; + NSRange rangeIndex = [toBeString rangeOfComposedCharacterSequenceAtIndex:15]; + if (rangeIndex.length == 1){ + self.monicerEssayUniverse.text = [toBeString substringToIndex:15]; + }else{ + NSRange rangeRange = [toBeString rangeOfComposedCharacterSequencesForRange:NSMakeRange(0, 15)]; + self.monicerEssayUniverse.text = [toBeString substringWithRange:rangeRange]; + } + } + } + }else{ + if (toBeString.length > 15){ + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_Mine_User_Info_Nick_View_Controller_2")]; + NSRange rangeIndex = [toBeString rangeOfComposedCharacterSequenceAtIndex:15]; + if (rangeIndex.length == 1){ + self.monicerEssayUniverse.text = [toBeString substringToIndex:15]; + }else{ + NSRange rangeRange = [toBeString rangeOfComposedCharacterSequencesForRange:NSMakeRange(0, 15)]; + self.monicerEssayUniverse.text = [toBeString substringWithRange:rangeRange]; + } + } + } +} +#pragma mark - Event Response +- (void)implementtowardsionBtutonPerformance:(UIButton *)sender { + [self.navigationController popViewControllerAnimated:YES]; + if (self.delegate && [self.delegate respondsToSelector:@selector(fBCManeConsumerAbstractMonicerRegardGovernancer:updateNick:)]) { + [self.delegate fBCManeConsumerAbstractMonicerRegardGovernancer:self updateNick:self.monicerEssayUniverse.text]; + } +} +#pragma mark - getter && setter +- (UIView *)accommoengagementRegard { + if (!_accommoengagementRegard) { + _accommoengagementRegard = [[UIView alloc] init]; + _accommoengagementRegard.layer.cornerRadius = 5; + _accommoengagementRegard.backgroundColor = [DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify]; + } + return _accommoengagementRegard; +} + +- (UITextField *)monicerEssayUniverse { + if (!_monicerEssayUniverse) { + _monicerEssayUniverse = [[UITextField alloc] init]; + _monicerEssayUniverse.clearButtonMode = UITextFieldViewModeAlways; + _monicerEssayUniverse.font = [UIFont systemFontOfSize:14]; + _monicerEssayUniverse.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _monicerEssayUniverse.layer.cornerRadius = 5; + } + return _monicerEssayUniverse; +} + +- (UIButton *)completionBtuton { + if (!_completionBtuton) { + _completionBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_completionBtuton setFrame:CGRectMake(0, 0, 50, 30)]; + [_completionBtuton setTitle:YMLocalizedString(@"YUMI_Mine_User_Info_Nick_View_Controller_3") forState:UIControlStateNormal]; + [_completionBtuton setTitleColor:[DJDKMIMOMColor mainEssayPrettify] forState:UIControlStateNormal]; + [_completionBtuton setTitleColor:[DJDKMIMOMColor prohibitionBtutonEssayPrettify] forState:UIControlStateDisabled]; + _completionBtuton.titleLabel.font = [UIFont systemFontOfSize:13]; + [_completionBtuton addTarget:self action:@selector(implementtowardsionBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _completionBtuton; +} + +- (UILabel *)restrictionSequencignation { + if (!_restrictionSequencignation) { + _restrictionSequencignation = [[UILabel alloc] init]; + _restrictionSequencignation.font = [UIFont systemFontOfSize:14]; + _restrictionSequencignation.textColor = [DJDKMIMOMColor instantEssayPrettify]; + _restrictionSequencignation.text = @"0/15"; + } + return _restrictionSequencignation; +} + +@end diff --git a/YuMi/Modules/YMMine/View/MineInfo/YUMIManeConsumerAbstractPresentRamparatMetroRegardGovernancer.h b/YuMi/Modules/YMMine/View/MineInfo/YUMIManeConsumerAbstractPresentRamparatMetroRegardGovernancer.h new file mode 100644 index 00000000..2e9a1584 --- /dev/null +++ b/YuMi/Modules/YMMine/View/MineInfo/YUMIManeConsumerAbstractPresentRamparatMetroRegardGovernancer.h @@ -0,0 +1,24 @@ +// +// YMMineUserInfoGiftWalllSubViewController.h +// YUMI +// +// Created by YUMI on 2022/6/15. +// + +#import "MvpRegardGovernancer.h" +#import +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSInteger, PresentWallRegardGenre) { + + PresentWallRegardGenre_Normal = 1, + + PresentWallRegardGenre_Lucky = 2, +}; + +@interface YUMIManeConsumerAbstractPresentRamparatMetroRegardGovernancer : MvpRegardGovernancer +@property (nonatomic,assign) PresentWallRegardGenre type; +@property (nonatomic,copy) NSString *consumerCid; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/MineInfo/YUMIManeConsumerAbstractPresentRamparatMetroRegardGovernancer.m b/YuMi/Modules/YMMine/View/MineInfo/YUMIManeConsumerAbstractPresentRamparatMetroRegardGovernancer.m new file mode 100644 index 00000000..661e790f --- /dev/null +++ b/YuMi/Modules/YMMine/View/MineInfo/YUMIManeConsumerAbstractPresentRamparatMetroRegardGovernancer.m @@ -0,0 +1,96 @@ +// +// YMMineUserInfoGiftWalllSubViewController.m +// YUMI +// +// Created by YUMI on 2022/6/15. +// + +#import "YUMIManeConsumerAbstractPresentRamparatMetroRegardGovernancer.h" +#import +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" +#import "NSArray+Safe.h" +#import "YUMIManeConsumerAbstractPresentRamparatAssembletionRegardElement.h" +#import "YUMIUnionDispossessAssembletionRegardElement.h" +#import "YUMIManeConsumerAbstractPresentRamparatExternalizer.h" +#import "FBCManeConsumerAbstractPresentWallCeremony.h" + +@interface YUMIManeConsumerAbstractPresentRamparatMetroRegardGovernancer () +@property (nonatomic,strong) UICollectionView *collectionView; +@property (nonatomic,strong) NSArray *datasource; +@end + +@implementation YUMIManeConsumerAbstractPresentRamparatMetroRegardGovernancer + +- (__kindof id)producePresimport { + return [[YUMIManeConsumerAbstractPresentRamparatExternalizer alloc] init]; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self.presimport acquireConsumerPresentRampartowards:self.consumerCid giftType:self.type]; + [self initSubViews]; + [self initChildLyRestrictions]; +} +#pragma mark - Private Method +- (void)initSubViews { + [self.view addSubview:self.collectionView]; +} + +- (void)initChildLyRestrictions { + [self.collectionView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.view); + }]; +} + +#pragma mark - UICollectionViewDelegate And UICollectionViewDatasource +- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { + return self.datasource.count > 0 ? self.datasource.count : 1; +} + +- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath { + return self.datasource.count > 0 ? CGSizeMake(74, 120) : CGSizeMake(KScreenWidth, 500); +} + +- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { + if (self.datasource.count > 0) { + YUMIManeConsumerAbstractPresentRamparatAssembletionRegardElement * cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([YUMIManeConsumerAbstractPresentRamparatAssembletionRegardElement class]) forIndexPath:indexPath]; + ConsumerPresentRamparatAbstractMatrix * giftInfo = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + cell.giftInfo = giftInfo; + return cell; + + } + YUMIUnionDispossessAssembletionRegardElement * cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([YUMIUnionDispossessAssembletionRegardElement class]) forIndexPath:indexPath]; + return cell; +} + +#pragma mark - JXCategoryListContentViewDelegate +- (UIView *)listView { + return self.view; +} + +#pragma mark - FBCManeConsumerAbstractPresentWallCeremony +- (void)acquireConsumerPresentRampartowardsAccomplishment:(NSArray *)giftList { + self.datasource = giftList; + [self.collectionView reloadData]; +} + +#pragma mark - Getters And Setters +- (UICollectionView *)collectionView{ + if (!_collectionView) { + UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init]; + layout.sectionInset = UIEdgeInsetsMake(15, 15, 15, 15); + layout.minimumInteritemSpacing = (CGFloat)(KScreenWidth - 15 * 2 -74* 4 - 5) / 3.0; + layout.minimumLineSpacing = 30; + _collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout]; + _collectionView.dataSource = self; + _collectionView.delegate = self; + _collectionView.backgroundColor = [UIColor clearColor]; + [_collectionView registerClass:[YUMIManeConsumerAbstractPresentRamparatAssembletionRegardElement class] forCellWithReuseIdentifier:NSStringFromClass([YUMIManeConsumerAbstractPresentRamparatAssembletionRegardElement class])]; + [_collectionView registerClass:[YUMIUnionDispossessAssembletionRegardElement class] forCellWithReuseIdentifier:NSStringFromClass([YUMIUnionDispossessAssembletionRegardElement class])]; + } + return _collectionView; +} + + +@end diff --git a/YuMi/Modules/YMMine/View/MineInfo/YUMIManeConsumerAbstractPresentRamparatRegardGovernancer.h b/YuMi/Modules/YMMine/View/MineInfo/YUMIManeConsumerAbstractPresentRamparatRegardGovernancer.h new file mode 100644 index 00000000..b88e0333 --- /dev/null +++ b/YuMi/Modules/YMMine/View/MineInfo/YUMIManeConsumerAbstractPresentRamparatRegardGovernancer.h @@ -0,0 +1,16 @@ +// +// YMMineGiftWallViewController.h +// YUMI +// +// Created by YUMI on 2022/4/14. +// + +#import "BaseRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeConsumerAbstractPresentRamparatRegardGovernancer : BaseRegardGovernancer +@property (nonatomic,copy) NSString *consumerCid; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/MineInfo/YUMIManeConsumerAbstractPresentRamparatRegardGovernancer.m b/YuMi/Modules/YMMine/View/MineInfo/YUMIManeConsumerAbstractPresentRamparatRegardGovernancer.m new file mode 100644 index 00000000..2b5bf56a --- /dev/null +++ b/YuMi/Modules/YMMine/View/MineInfo/YUMIManeConsumerAbstractPresentRamparatRegardGovernancer.m @@ -0,0 +1,139 @@ +// +// YMMineGiftWallViewController.m +// YUMI +// +// Created by YUMI on 2022/4/14. +// + +#import "YUMIManeConsumerAbstractPresentRamparatRegardGovernancer.h" +#import +#import +#import +#import +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" +#import "UIImage+Utils.h" +#import "YUMIManeConsumerAbstractPresentRamparatMetroRegardGovernancer.h" + + +@interface YUMIManeConsumerAbstractPresentRamparatRegardGovernancer () +@property (nonatomic, strong) NSArray *titles; +@property (nonatomic, strong) JXCategoryTitleView *titleView; +@property (nonatomic, strong) JXCategoryListContainerView *containerView; +@property (nonatomic,strong) YUMIManeConsumerAbstractPresentRamparatMetroRegardGovernancer *ordinaryPresentVewC; +@property (nonatomic,strong) YUMIManeConsumerAbstractPresentRamparatMetroRegardGovernancer *fortunatePresentVewC; +@end + +@implementation YUMIManeConsumerAbstractPresentRamparatRegardGovernancer +- (void)viewDidLoad { + [super viewDidLoad]; + [self initSubViews]; + [self initChildLyRestrictions]; +} +#pragma mark - Private Method +- (void)initSubViews { + self.title = YMLocalizedString(@"YUMI_Mine_User_Info_Gift_Wall_View_Controller_0"); + [self.view addSubview:self.titleView]; + [self.view addSubview:self.containerView]; +} + +- (void)initChildLyRestrictions { + [self.titleView mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.view); + make.width.mas_equalTo(100 * 2 + 20); + make.height.mas_equalTo(30); + make.top.mas_equalTo(self.view).offset(10); + }]; + + [self.containerView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.mas_equalTo(self.view); + make.top.mas_equalTo(self.titleView.mas_bottom).offset(10); + }]; +} + +#pragma mark - JXCategoryViewDelegate +- (NSInteger)numberOfListsInlistContainerView:(JXCategoryListContainerView *)listContainerView { + return self.titles.count; +} + +- (id)listContainerView:(JXCategoryListContainerView *)listContainerView initListForIndex:(NSInteger)index { + if (index == 0) { + return self.ordinaryPresentVewC; + } else { + return self.fortunatePresentVewC; + } +} + +- (void)categoryView:(JXCategoryBaseView *)categoryView didSelectedItemAtIndex:(NSInteger)index { + + self.navigationController.interactivePopGestureRecognizer.enabled = (index == 0); +} + +#pragma mark - Getters And Setters +- (void)setConsumerCid:(NSString *)consumerCid { + _consumerCid = consumerCid; + self.ordinaryPresentVewC.consumerCid = _consumerCid; + self.fortunatePresentVewC.consumerCid = _consumerCid; +} + +- (JXCategoryTitleView *)titleView { + if (!_titleView) { + _titleView = [[JXCategoryTitleView alloc] init]; + _titleView.delegate = self; + _titleView.titles = self.titles; + _titleView.backgroundColor = [UIColor clearColor]; + _titleView.titleColor = [DJDKMIMOMColor instantEssayPrettify]; + _titleView.titleSelectedColor = [DJDKMIMOMColor mainEssayPrettify]; + _titleView.titleFont = [UIFont systemFontOfSize:12]; + _titleView.titleSelectedFont = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium]; + _titleView.titleLabelAnchorPointStyle = JXCategoryTitleLabelAnchorPointStyleCenter; + _titleView.contentScrollViewClickTransitionAnimationEnabled = NO; + _titleView.defaultSelectedIndex = 0; + _titleView.cellSpacing = 20; + _titleView.cellWidthIncrement = 5; + _titleView.cellWidth = 60; + _titleView.listContainer = self.containerView; + + JXCategoryIndicatorImageView *burlywoodRegard = [[JXCategoryIndicatorImageView alloc] init]; + burlywoodRegard.indicatorImageViewSize = CGSizeMake(60, 8); + burlywoodRegard.verticalMargin = 6; + burlywoodRegard.indicatorImageView.image = [UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[UIColorFromRGB(0xFFC000), UIColorFromRGB(0xFFD15A)] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(60, 8)]; + burlywoodRegard.indicatorImageView.layer.masksToBounds = YES; + burlywoodRegard.indicatorImageView.layer.cornerRadius = 4; + _titleView.indicators = @[burlywoodRegard]; + } + return _titleView; +} + +- (JXCategoryListContainerView *)containerView { + if (!_containerView) { + _containerView = [[JXCategoryListContainerView alloc] initWithType:JXCategoryListContainerType_ScrollView delegate:self]; + _containerView.defaultSelectedIndex = 0; + } + return _containerView; +} + +- (NSArray *)titles { + if (!_titles) { + _titles = @[@"普通礼物", YMLocalizedString(@"YUMI_Mine_User_Info_Gift_Wall_View_Controller_2")]; + } + return _titles; +} + +- (YUMIManeConsumerAbstractPresentRamparatMetroRegardGovernancer *)ordinaryPresentVewC { + if (!_ordinaryPresentVewC) { + _ordinaryPresentVewC = [[YUMIManeConsumerAbstractPresentRamparatMetroRegardGovernancer alloc] init]; + _ordinaryPresentVewC.type = PresentWallRegardGenre_Normal; + } + return _ordinaryPresentVewC; +} + +- (YUMIManeConsumerAbstractPresentRamparatMetroRegardGovernancer *)fortunatePresentVewC { + if (!_fortunatePresentVewC) { + _fortunatePresentVewC = [[YUMIManeConsumerAbstractPresentRamparatMetroRegardGovernancer alloc] init]; + _fortunatePresentVewC.type = PresentWallRegardGenre_Lucky; + } + return _fortunatePresentVewC; +} + +@end diff --git a/YuMi/Modules/YMMine/View/MineInfo/YUMIManeConsumerAbstractRegardGovernancer.h b/YuMi/Modules/YMMine/View/MineInfo/YUMIManeConsumerAbstractRegardGovernancer.h new file mode 100644 index 00000000..c0190e38 --- /dev/null +++ b/YuMi/Modules/YMMine/View/MineInfo/YUMIManeConsumerAbstractRegardGovernancer.h @@ -0,0 +1,16 @@ +// +// MineInfoViewController.h +// YUMI +// +// Created by YUMI on 2021/9/22. +// + +#import "MvpRegardGovernancer.h" +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeConsumerAbstractRegardGovernancer : MvpRegardGovernancer +@property (nonatomic,assign) NSInteger uid; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/MineInfo/YUMIManeConsumerAbstractRegardGovernancer.m b/YuMi/Modules/YMMine/View/MineInfo/YUMIManeConsumerAbstractRegardGovernancer.m new file mode 100644 index 00000000..1f8775b1 --- /dev/null +++ b/YuMi/Modules/YMMine/View/MineInfo/YUMIManeConsumerAbstractRegardGovernancer.m @@ -0,0 +1,477 @@ +// +// MineInfoViewController.m +// YUMI +// +// Created by YUMI on 2021/9/22. +// + +#import "YUMIManeConsumerAbstractRegardGovernancer.h" +#import +#import +#import +#import +#import +#import +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" +#import "AccountAbstractStorage.h" +#import "MKJPopup.h" +#import "YUMIHtmlUrl.h" +#import "YUMICommunicationSolitaireDisporterExecutive.h" +#import "UIImage+Utils.h" +#import "YUMIConstant.h" +#import "NEMCCommunicationUtils.h" +#import "ClientDisposition.h" +#import "XNDJTBWGLoadingTool.h" +#import "ManeCommunicationSolitaireStatementAbstractMatrix.h" +#import "ConsumerAbstractMatrix.h" +#import "YUMIManeConsumerAbstractTabulationRegardElement.h" +#import "YUMIManeConsumerAbstractIntelligencerRegard.h" +#import "YUMIManeConsumerAbstractCustomNevRegard.h" +#import "YUMIManeConsumerAbstractReputationSolitaireRegard.h" +#import "YUMIManeConsumerAbstractExternalizer.h" +#import "FBCManeConsumerAbstractCeremony.h" +#import "ChamberHostRepresendtation.h" +#import "YUMIManeConsumerAbstractCompileRegardGovernancer.h" +#import "YUMITissueRegardGovernancer.h" +#import "InterlocutionRegardGovernancer.h" +#import "YUMIChamberRegardGovernancer.h" +#import "YUMIManeConsumerAtomicRegardGovernancer.h" +#import "YUMISeparationsManeRegardGovernancer.h" + +@interface YUMIManeConsumerAbstractRegardGovernancer () +@property (nonatomic, strong) JXCategoryTitleView *titleView; +@property (nonatomic, strong) JXCategoryIndicatorImageView *burlywoodRegard; +@property (nonatomic, strong) JXPagerView *pagingRegard; +@property (nonatomic, strong) NSArray *titles; +@property (nonatomic,strong) YUMIManeConsumerAbstractIntelligencerRegard *intelligenceRegard; +@property (nonatomic,strong) YUMIManeConsumerAbstractCustomNevRegard *nevRegard; +@property (nonatomic,strong) ConsumerAbstractMatrix *userInfo; +@property (nonatomic,strong) UIStackView *extremeHierarchyRegard; +@property (nonatomic,strong) UIButton *chinwagBtuton; +@property (nonatomic,strong) UIButton *considerationBtuton; +@property (nonatomic,strong) YUMIManeConsumerAtomicRegardGovernancer *consumerAtoloudspeakerVewC; +@property (nonatomic,strong) YUMISeparationsManeRegardGovernancer *reminiscenceVewC; +@property (nonatomic,strong) YUMIManeConsumerAbstractReputationSolitaireRegard *reputationRegard; +@end + +@implementation YUMIManeConsumerAbstractRegardGovernancer + +- (YUMIManeConsumerAbstractExternalizer *)producePresimport { + return [[YUMIManeConsumerAbstractExternalizer alloc] init]; +} + +- (BOOL)isVeiledNevObstacle { + return YES; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initSubViews]; + [self initChildLyRestrictions]; +} + +- (void)viewWillAppear:(BOOL)animated { + [super viewWillAppear:animated]; + if (self.uid > 0) { + [self initHyperessayDemand]; + } +} + +- (void)viewWillDisappear:(BOOL)animated { + [super viewWillDisappear:animated]; + if (self.reputationRegard.isPlaying) { + [[YUMICommunicationSolitaireDisporterExecutive partowardsiciptowardsionInstance] suspeindManual]; + } +} + +- (void)viewDidLayoutSubviews { + [super viewDidLayoutSubviews]; + self.pagingRegard.frame = self.view.bounds; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self.view addSubview:self.pagingRegard]; + [self.view addSubview:self.nevRegard]; + [self.view addSubview:self.reputationRegard]; + if (self.uid != [AccountAbstractStorage instance].acquireCid.integerValue) { + [self.view addSubview:self.extremeHierarchyRegard]; + [self.extremeHierarchyRegard addArrangedSubview:self.chinwagBtuton]; + [self.extremeHierarchyRegard addArrangedSubview:self.considerationBtuton]; + + [self.extremeHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.view).inset(25); + make.height.mas_equalTo(36); + make.bottom.mas_equalTo(self.view).offset(-kSafeAreaBottomHeight - 15); + }]; + } +} + +- (void)initChildLyRestrictions { + [self.nevRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self.view); + make.height.mas_equalTo(kNavigationHeight); + }]; + + [self.reputationRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self.view); + make.top.mas_equalTo(self.view.mas_safeAreaLayoutGuideTop).offset(176); + make.size.mas_equalTo(CGSizeMake(65, 25)); + }]; +} + +- (void)initHyperessayDemand { + NSString *uid = [NSString stringWithFormat:@"%ld", self.uid]; + + + [self.presimport acquireConsumerAbstractAboutCid:uid]; + + [self.presimport acquireConsumerConsidertowardsionDeclare:uid]; + + + [self.presimport acquireConsumerSpecificAbstractAboutCid:uid]; + + NSString * myUid = [AccountAbstractStorage instance].acquireCid; + + if (![uid isEqualToString:myUid]) { + + [self.presimport acquireConsumerAbstractAboutCid:myUid]; + } +} + +#pragma mark - 拉黑 移除黑名单 +- (void)EvidenceRightNevShank { + NSMutableArray *array = [NSMutableArray array]; + NSString *uid = [NSString stringWithFormat:@"%ld",self.uid]; + MKJActionSheetDisposition *report = [MKJActionSheetDisposition normalTitle:YMLocalizedString(@"YUMI_Mine_User_Info_View_Controller_0") ticktackPerformance:^{ + if ([ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + YUMITissueRegardGovernancer *vc = [[YUMITissueRegardGovernancer alloc]init]; + NSString *urlstr = [NSString stringWithFormat:@"%@?reportUid=%@&source=PERSONAL",URLWithType(kReportRoomURL),uid]; + vc.url = urlstr; + [self.navigationController pushViewController:vc animated:YES]; + } else { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:YMLocalizedString(@"YUMI_Mine_User_Info_View_Controller_1")]; + } + + }]; + + MKJActionSheetDisposition *black = [MKJActionSheetDisposition normalTitle:YMLocalizedString(@"YUMI_Mine_User_Info_View_Controller_2") ticktackPerformance:^{ + [self accelertowardseOrTransltowardseDenigrtowardse:NO uid:uid]; + }]; + + [array addObjectsFromArray:@[report, black]]; + + BOOL isInBlackList = [[NIMSDK sharedSDK].userManager isUserInBlackList:uid] || [NEMCCommunicationUtils isHLOfficalSequenceription:[NSString stringWithFormat:@"%ld", self.uid]]; + if (isInBlackList) { + [array removeObject:black]; + } + [MKJPopup performanceSheetAboutProvisions:array]; +} + + +- (void)accelertowardseOrTransltowardseDenigrtowardse:(BOOL)isRemove uid:(NSString *)uid { + NSString *title; + NSString *message; + if (isRemove) { + title = YMLocalizedString(@"YUMI_Mine_User_Info_View_Controller_3"); + message = YMLocalizedString(@"YUMI_Mine_User_Info_View_Controller_4"); + }else{ + title = YMLocalizedString(@"YUMI_Mine_User_Info_View_Controller_5"); + message = YMLocalizedString(@"YUMI_Mine_User_Info_View_Controller_6"); + } + + MKJPrecautiousDisposition *config = [[MKJPrecautiousDisposition alloc] init]; + config.title = title; + config.message = message; + + [MKJPopup precautiousAboutDisposition:config acknowledgementHandler:^{ + if (isRemove) { + [[NIMSDK sharedSDK].userManager removeFromBlackBlackList:uid completion:^(NSError * _Nullable error) { + if (error == nil) { + [self EvidenceAccomplishmentToast:YMLocalizedString(@"YUMI_Mine_User_Info_View_Controller_7")]; + } + }]; + } else { + [[NIMSDK sharedSDK].userManager addToBlackList:uid completion:^(NSError * _Nullable error) { + if (error == nil) { + [self EvidenceAccomplishmentToast:YMLocalizedString(@"YUMI_Mine_User_Info_View_Controller_8")]; + } + }]; + } + } cancelHandler:^{ + }]; +} + +#pragma mark - JXCategoryViewDelegate +- (NSUInteger)tableHeaderViewHeightInPagerView:(JXPagerView *)periodrRegard { + return 440; +} + +- (UIView *)tableHeaderViewInPagerView:(JXPagerView *)periodrRegard { + return self.intelligenceRegard; +} + +- (NSUInteger)heightForPinSectionHeaderInPagerView:(JXPagerView *)periodrRegard { + return 50; +} + +- (UIView *)viewForPinSectionHeaderInPagerView:(JXPagerView *)periodrRegard { + return self.titleView; +} + +- (NSInteger)numberOfListsInPagerView:(JXPagerView *)periodrRegard { + return self.titles.count; +} + +- (id)periodrRegard:(JXPagerView *)periodrRegard initListAtIndex:(NSInteger)index { + UIViewController *viewController; + if (index == 0) { + return self.consumerAtoloudspeakerVewC; + } else { + return self.reminiscenceVewC; + } + return (id )viewController; +} + +#pragma mark - JXPagerMainTableViewGestureDelegate +- (BOOL)mainTableViewGestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer { + + if (otherGestureRecognizer.view.tag == 1005 || otherGestureRecognizer.view.tag == 1009) { + return NO; + } + return [gestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]] && [otherGestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]]; +} + +#pragma mark - FBCManeCustomNevRegardRepresendtation +- (void)fBCManeIndividualityNevRegard:(YUMIManeConsumerAbstractCustomNevRegard *)view didClickEditButton:(UIButton *)sender { + if (sender.isSelected) { + YUMIManeConsumerAbstractCompileRegardGovernancer * editVC = [[YUMIManeConsumerAbstractCompileRegardGovernancer alloc] init]; + [self.navigationController pushViewController:editVC animated:YES]; + } else { + [self EvidenceRightNevShank]; + } +} + +- (void)fBCManeIndividualityNevRegard:(YUMIManeConsumerAbstractCustomNevRegard *)view didClickBackButton:(UIButton *)sender { + [self.navigationController popViewControllerAnimated:YES]; +} + +#pragma mark - FBCManeConsumerAbstractIntelligencerRegardRepresendtation +- (void)fBCManeConsumerAbstractIntelligencerRegard:(YUMIManeConsumerAbstractIntelligencerRegard *)view didClickGoToRoom:(NSString *)roomUid { + if (roomUid.length > 0 ) { + + [self.navigationController.viewControllers enumerateObjectsUsingBlock:^(__kindof UIViewController * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if ([obj isKindOfClass:[YUMIChamberRegardGovernancer class]]) { + [self.navigationController popToRootViewControllerAnimated:NO]; + YUMIChamberRegardGovernancer * rooomVC = obj; + [rooomVC exitRoom]; + *stop = YES; + } + }]; + [YUMIChamberRegardGovernancer unfoildChamber:roomUid viewController:self]; + } +} + +#pragma mark - YUMI_MineUserDataViewControllerDelegate +- (void)fBCManeConsumerTowardsoloudspeakerRegardGovernancer:(YUMIManeConsumerAtomicRegardGovernancer *)viewController didGetVoiceSuccess:(ManeCommunicationSolitaireStatementAbstractMatrix *)voiceCard { + if (voiceCard && [voiceCard.cardId isEqualToString:@"8"]) { + self.reputationRegard.hidden = NO; + self.reputationRegard.reputationAbstract = voiceCard; + } else { + self.reputationRegard.hidden = YES; + } +} + +#pragma mark - FBCManeConsumerAbstractCeremony +- (void)dwellEarnConsumerAbstractAccomplishment:(ConsumerAbstractMatrix *)userInfo { + if (userInfo.uid == self.uid) { + self.userInfo = userInfo; + self.intelligenceRegard.userInfo = userInfo; + } else { + if (!userInfo.userVipInfoVO.lookHomepageHide) { + NSString * uid = [NSString stringWithFormat:@"%ld", self.uid]; + [self.presimport visitConsumer:uid]; + } + } +} + +- (void)onacquireSpecificAbstractAccomplishment:(ConsumerAbstractMatrix *)userInfo { + self.consumerAtoloudspeakerVewC.userInfo = userInfo; + self.reminiscenceVewC.dynamicInfo = userInfo.dynamicInfo; + self.intelligenceRegard.roomUid = userInfo.roomUid; +} + +- (void)acquireConsidertowardsionDeclareAccomplishment:(BOOL)status { + self.considerationBtuton.selected = status; +} + +- (void)considertowardsionConsumerAccomplishment:(BOOL)status { + self.considerationBtuton.selected = status; +} + +#pragma mark - Event Response +- (void)chinwagBtutonPerformance:(UIButton *)sender { + NSString * sessionId = [NSString stringWithFormat:@"%ld",self.uid]; + NIMSession * session = [NIMSession session:sessionId type:NIMSessionTypeP2P]; + InterlocutionRegardGovernancer * sessionVC = [[InterlocutionRegardGovernancer alloc] initWithSession:session]; + [self.navigationController pushViewController:sessionVC animated:YES]; +} + +- (void)considertowardsionBtutonPerformance:(UIButton *)sender { + NSString *uid = [NSString stringWithFormat:@"%ld", self.uid]; + [self.presimport considertowardsionConsumer:uid state:!sender.selected]; +} + +#pragma mark - Getters And Setters +- (void)setUid:(NSInteger)uid { + _uid = uid; + if (_uid > 0) { + if (_uid == [AccountAbstractStorage instance].acquireCid.integerValue) { + [self.nevRegard.compileBtuton setTitle:YMLocalizedString(@"YUMI_Mine_User_Info_View_Controller_9") forState:UIControlStateNormal]; + [self.nevRegard.compileBtuton setImage:[UIImage new] forState:UIControlStateNormal]; + } else { + [self.nevRegard.compileBtuton setTitle:@"" forState:UIControlStateNormal]; + [self.nevRegard.compileBtuton setImage:[UIImage imageNamed:@"yumi_center_user_gen_edit"] forState:UIControlStateNormal]; + } + self.nevRegard.compileBtuton.selected = _uid == [AccountAbstractStorage instance].acquireCid.integerValue; + NSString * uidStr = [NSString stringWithFormat:@"%ld", uid]; + self.consumerAtoloudspeakerVewC.consumerCid = uidStr; + [self.presimport acquireConsumerAbstractAboutCid:uidStr]; + } +} + + +- (YUMIManeConsumerAbstractIntelligencerRegard *)intelligenceRegard { + if (!_intelligenceRegard) { + _intelligenceRegard = [[YUMIManeConsumerAbstractIntelligencerRegard alloc] init]; + _intelligenceRegard.delegate = self; + } + return _intelligenceRegard; +} + +- (YUMIManeConsumerAbstractCustomNevRegard *)nevRegard { + if (!_nevRegard) { + _nevRegard = [[YUMIManeConsumerAbstractCustomNevRegard alloc] init]; + _nevRegard.delegate = self; + } + return _nevRegard; +} + +- (UIStackView *)extremeHierarchyRegard { + if (!_extremeHierarchyRegard) { + _extremeHierarchyRegard = [[UIStackView alloc] init]; + _extremeHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _extremeHierarchyRegard.distribution = UIStackViewDistributionFillEqually; + _extremeHierarchyRegard.alignment = UIStackViewAlignmentFill; + _extremeHierarchyRegard.spacing = 25; + } + return _extremeHierarchyRegard; +} + +- (UIButton *)chinwagBtuton { + if (!_chinwagBtuton) { + _chinwagBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_chinwagBtuton setTitle:YMLocalizedString(@"YUMI_Mine_User_Info_View_Controller_10") forState:UIControlStateNormal]; + [_chinwagBtuton setTitleColor:[DJDKMIMOMColor acknowledgementBtutonEssayPrettify] forState:UIControlStateNormal]; + [_chinwagBtuton setImage:[UIImage imageNamed:@"yumi_center_user_gen_bottom_chat"] forState:UIControlStateNormal]; + _chinwagBtuton.titleLabel.font = [UIFont systemFontOfSize:15]; + [_chinwagBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + _chinwagBtuton.layer.masksToBounds = YES; + _chinwagBtuton.layer.cornerRadius = 36/2; + [_chinwagBtuton addTarget:self action:@selector(chinwagBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _chinwagBtuton; +} + +- (UIButton *)considerationBtuton { + if (!_considerationBtuton) { + _considerationBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_considerationBtuton setTitle:YMLocalizedString(@"YUMI_Mine_User_Info_View_Controller_11") forState:UIControlStateNormal]; + [_considerationBtuton setTitle:YMLocalizedString(@"YUMI_Mine_User_Info_View_Controller_12") forState:UIControlStateSelected]; + [_considerationBtuton setTitleColor:[DJDKMIMOMColor acknowledgementBtutonEssayPrettify] forState:UIControlStateNormal]; + [_considerationBtuton setTitleColor:[DJDKMIMOMColor revoctowardsionBtutonEssayPrettify] forState:UIControlStateSelected]; + [_considerationBtuton setImage:[UIImage imageNamed:@"yumi_center_user_gen_bottom_attention_normal"] forState:UIControlStateNormal]; + [_considerationBtuton setImage:[UIImage imageNamed:@"yumi_center_user_gen_bottom_attention_select"] forState:UIControlStateSelected]; + _considerationBtuton.titleLabel.font = [UIFont systemFontOfSize:15]; + [_considerationBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + [_considerationBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor revoctowardsionBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor revoctowardsionBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateSelected]; + _considerationBtuton.layer.masksToBounds = YES; + _considerationBtuton.layer.cornerRadius = 36/2; + [_considerationBtuton addTarget:self action:@selector(considertowardsionBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _considerationBtuton; +} + +- (JXCategoryTitleView *)titleView { + if (!_titleView) { + _titleView = [[JXCategoryTitleView alloc] init]; + _titleView.delegate = self; + _titleView.backgroundColor = [UIColor clearColor]; + _titleView.titleColor = [DJDKMIMOMColor essayTertiusPrettify]; + _titleView.titleSelectedColor = [DJDKMIMOMColor mainEssayPrettify]; + _titleView.titleFont = [UIFont fontWithName:@"PingFang-SC-Medium" size:12]; + _titleView.titleSelectedFont = [UIFont fontWithName:@"PingFang-SC-Medium" size:16]; + _titleView.titleLabelAnchorPointStyle = JXCategoryTitleLabelAnchorPointStyleCenter; + _titleView.contentScrollViewClickTransitionAnimationEnabled = NO; + _titleView.defaultSelectedIndex = 0; + _titleView.averageCellSpacingEnabled = NO; + _titleView.contentEdgeInsetLeft = 20; + _titleView.titles = self.titles; + _titleView.cellSpacing = 20; + _titleView.titles = self.titles; + _titleView.listContainer = (id)self.pagingRegard.listContainerView; + + JXCategoryIndicatorImageView *burlywoodRegard = [[JXCategoryIndicatorImageView alloc] init]; + burlywoodRegard.indicatorImageViewSize = CGSizeMake(16, 6); + burlywoodRegard.verticalMargin = 7; + burlywoodRegard.indicatorImageView.layer.masksToBounds = YES; + burlywoodRegard.indicatorImageView.layer.cornerRadius = 3; + burlywoodRegard.indicatorImageView.image = [UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[UIColorFromRGB(0xFFC000), UIColorFromRGB(0xFFF9DB)] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(16, 6)]; + _titleView.indicators = @[burlywoodRegard]; + } + return _titleView; +} + +- (JXPagerView *)pagingRegard { + if (!_pagingRegard) { + _pagingRegard = [[JXPagerView alloc] initWithDelegate:self]; + _pagingRegard.backgroundColor = [UIColor clearColor]; + _pagingRegard.listContainerView.backgroundColor = [UIColor clearColor]; + _pagingRegard.mainTableView.backgroundColor = [UIColor clearColor]; + _pagingRegard.listContainerView.listCellBackgroundColor = UIColor.clearColor; + _pagingRegard.mainTableView.gestureDelegate = self; + } + return _pagingRegard; +} + +- (NSArray *)titles { + if (!_titles) { + _titles = @[YMLocalizedString(@"YUMI_Mine_User_Info_View_Controller_13"), YMLocalizedString(@"YUMI_Mine_User_Info_View_Controller_14")]; + } + return _titles; +} + +- (YUMIManeConsumerAtomicRegardGovernancer *)consumerAtoloudspeakerVewC { + if (!_consumerAtoloudspeakerVewC) { + _consumerAtoloudspeakerVewC = [[YUMIManeConsumerAtomicRegardGovernancer alloc] init]; + } + return _consumerAtoloudspeakerVewC; +} +- (YUMIManeConsumerAbstractReputationSolitaireRegard *)reputationRegard { + if (!_reputationRegard) { + _reputationRegard = [[YUMIManeConsumerAbstractReputationSolitaireRegard alloc] init]; + _reputationRegard.hidden = YES; + } + return _reputationRegard; +} + +- (YUMISeparationsManeRegardGovernancer *)reminiscenceVewC { + if (!_reminiscenceVewC) { + _reminiscenceVewC = [[YUMISeparationsManeRegardGovernancer alloc] init]; + } + return _reminiscenceVewC; +} + + +@end diff --git a/YuMi/Modules/YMMine/View/MineInfo/YUMIManeConsumerAtomicRegardGovernancer.h b/YuMi/Modules/YMMine/View/MineInfo/YUMIManeConsumerAtomicRegardGovernancer.h new file mode 100644 index 00000000..131420f0 --- /dev/null +++ b/YuMi/Modules/YMMine/View/MineInfo/YUMIManeConsumerAtomicRegardGovernancer.h @@ -0,0 +1,17 @@ +// +// YMMineUserDataViewController.h +// YUMI +// +// Created by YUMI on 2022/4/14. +// + +#import "MvpRegardGovernancer.h" +#import +NS_ASSUME_NONNULL_BEGIN +@class ConsumerAbstractMatrix, ManeCommunicationSolitaireStatementAbstractMatrix, YUMIManeConsumerAtomicRegardGovernancer; +@interface YUMIManeConsumerAtomicRegardGovernancer : MvpRegardGovernancer +@property (nonatomic,copy) NSString *consumerCid; +@property (nonatomic,strong) ConsumerAbstractMatrix *userInfo; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/MineInfo/YUMIManeConsumerAtomicRegardGovernancer.m b/YuMi/Modules/YMMine/View/MineInfo/YUMIManeConsumerAtomicRegardGovernancer.m new file mode 100644 index 00000000..04059eaa --- /dev/null +++ b/YuMi/Modules/YMMine/View/MineInfo/YUMIManeConsumerAtomicRegardGovernancer.m @@ -0,0 +1,235 @@ +// +// YMMineUserDataViewController.m +// YUMI +// +// Created by YUMI on 2022/4/14. +// + +#import "YUMIManeConsumerAtomicRegardGovernancer.h" +#import +#import "AccountAbstractStorage.h" +#import "YUMIMacroUitls.h" +#import "MKJPopup.h" +#import "DJDKMIMOMColor.h" +#import "YUMIHtmlUrl.h" +#import "YUMIManeAtomicCollectiveTabulationRegardElement.h" +#import "YUMIManeAtomicPresentTabulationRegardElement.h" +#import "CollectiveSpecificAbstractMatrix.h" +#import "ConsumerAbstractMatrix.h" +#import "YUMIManeConsumerAtomicExternalizer.h" +#import "FBCManeConsumerAtomicCeremony.h" +#import "YUMIManeConsumerAbstractPresentRamparatRegardGovernancer.h" +#import "YUMIManeCollectiveRegardGovernancer.h" +#import "YUMIManeUnionRegardGovernancer.h" +#import "YUMITissueRegardGovernancer.h" +@interface YUMIManeConsumerAtomicRegardGovernancer () +@property (nonatomic,strong) UITableView *tableView; +@property (nonatomic,strong) CollectiveSpecificAbstractMatrix *collectiveSpecificAbstract; +@property (nonatomic,assign) BOOL isFold; +@property (nonatomic, copy) void(^scrollCallback)(UIScrollView *scrollView); +@property (nonatomic,assign) BOOL isExhibitImportCollective; +@end + +@implementation YUMIManeConsumerAtomicRegardGovernancer + +- (BOOL)isVeiledNevObstacle { + return YES; +} + +- (__kindof id)producePresimport { + return [[YUMIManeConsumerAtomicExternalizer alloc] init]; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initHettpDemand]; + [self initSubViews]; + [self initChildLyRestrictions]; +} +#pragma mark - Http +- (void)initHettpDemand { + self.isFold = YES; + self.isExhibitImportCollective = NO; + [self.presimport acquireCollectiveSpecificAbstract:self.consumerCid currentUserUid:[AccountAbstractStorage instance].acquireCid]; +} +#pragma mark - Private Method +- (void)initSubViews { + [self.view addSubview:self.tableView]; +} + +- (void)initChildLyRestrictions { + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.view); + }]; +} + +- (void)EvidenceRealConstituteTowardstesttowardsionentictowardsionPromptsPrecautiousRegard { + MKJPrecautiousDisposition *config = [[MKJPrecautiousDisposition alloc] init]; + config.message = YMLocalizedString(@"YUMI_Mine_User_Data_View_Controller_0"); + config.communicationBurlywoodIntervacuum = 4; + config.acknowledgementBtutonDisposition.title = YMLocalizedString(@"YUMI_Mine_User_Data_View_Controller_1"); + config.acknowledgementBtutonDisposition.titleColor = UIColor.whiteColor; + config.acknowledgementBtutonDisposition.backgroundColor = [DJDKMIMOMColor aplictowardsionMainPrettify]; + + MKJPrecautiousCommunicationAttributedDisposition *nameAttrConf = [[MKJPrecautiousCommunicationAttributedDisposition alloc] init]; + nameAttrConf.text = YMLocalizedString(@"YUMI_Mine_User_Data_View_Controller_2"); + nameAttrConf.color = [DJDKMIMOMColor aplictowardsionMainPrettify]; + config.communicationAttributedDisposition = @[nameAttrConf]; + + [MKJPopup precautiousAboutDisposition:config acknowledgementHandler:^{ + + } cancelHandler:^{ + }]; +} + +#pragma mark - UITableViewDelegate And UITableViewDataSource +- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { + return 2; +} + +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + if (section == 0) { + return (self.collectiveSpecificAbstract.clan.elderUid.length > 0 || self.collectiveSpecificAbstract.hall.ownerUid.length > 0) ? 1 : 0; + } else { + return 1; + } +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + if(indexPath.section == 0) { + CGFloat itemHeigh = 40 + 15; + if (self.collectiveSpecificAbstract.clan.elderUid.length > 0) { + if (self.collectiveSpecificAbstract.hall.ownerUid.length > 0) { + return self.isFold ? (itemHeigh + 68) : (itemHeigh + 68 + 60); + }else { + return (itemHeigh + 60); + } + }else { + if (self.collectiveSpecificAbstract.hall.ownerUid.length > 0) { + return (itemHeigh + 60); + } else { + return 0; + } + } + } else { + CGFloat itemAltitude = 65; + CGFloat topHeight = 100; + return itemAltitude * 3 + 10 * 3 + topHeight + 25; + } +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + if(indexPath.section == 0) { + YUMIManeAtomicCollectiveTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIManeAtomicCollectiveTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIManeAtomicCollectiveTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIManeAtomicCollectiveTabulationRegardElement class])]; + } + cell.isExhibitImportCorridor = self.isExhibitImportCollective; + cell.delegate = self; + cell.collectiveAbstract = self.collectiveSpecificAbstract; + return cell; + } else { + YUMIManeAtomicPresentTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIManeAtomicPresentTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIManeAtomicPresentTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIManeAtomicPresentTabulationRegardElement class])]; + } + cell.delegate = self; + cell.userGiftWall = self.userInfo.userGiftWall; + cell.userLuckyBagGiftWall = self.userInfo.userLuckyBagGiftWall; + return cell; + } +} + +#pragma mark - FBCManeAtomicCollectiveTabulationViweElementRepresendtation +- (void)fBCManeTowardsoloudspeakerCollectiveTarbsultowardsionViweElement:(YUMIManeAtomicCollectiveTabulationRegardElement *)view didClickFold:(UIButton *)sender { + self.isFold = !sender.selected; + [self.tableView reloadSections:[NSIndexSet indexSetWithIndex:0] withRowAnimation:UITableViewRowAnimationNone]; +} + +- (void)fBCManeTowardsoloudspeakerCollectiveTarbsultowardsionViweElement:(YUMIManeAtomicCollectiveTabulationRegardElement *)view didClickEnter:(CollectiveSpecificAbstractMatrix *)collectiveAbstract { + [self.presimport getUserInfo:[AccountAbstractStorage instance].acquireCid success:^(ConsumerAbstractMatrix * _Nonnull info) { + if (info.isCertified) { + [self.presimport componentAplictowardsionlyCorridor:collectiveAbstract.hall.hallId]; + } else { + [self EvidenceRealConstituteTowardstesttowardsionentictowardsionPromptsPrecautiousRegard]; + } + }]; +} + +- (void)fBCManeTowardsoloudspeakerCollectiveTarbsultowardsionViweElement:(YUMIManeAtomicCollectiveTabulationRegardElement *)view didClickClanView:(CollectiveSpecificAbstractMatrix *)collectiveAbstract { + YUMIManeCollectiveRegardGovernancer * clanVC = [[YUMIManeCollectiveRegardGovernancer alloc] init]; + clanVC.uid = self.collectiveSpecificAbstract.clan.elderUid; + [self.navigationController pushViewController:clanVC animated:YES]; +} + +- (void)fBCManeTowardsoloudspeakerCollectiveTarbsultowardsionViweElement:(YUMIManeAtomicCollectiveTabulationRegardElement *)view didClickHallView:(CollectiveSpecificAbstractMatrix *)collectiveAbstract { + YUMIManeUnionRegardGovernancer * hallVC = [[YUMIManeUnionRegardGovernancer alloc] init]; + hallVC.ownerUid = collectiveAbstract.hall.ownerUid; + hallVC.instituteId = collectiveAbstract.hall.hallId; + [self.navigationController pushViewController:hallVC animated:YES]; +} + +#pragma mark - FBCManeAtomicPresentTabulationViweElementRepresendtation +- (void)fBCManeTowardsoloudspeakerPresentTarbsultowardsionViweElement:(YUMIManeAtomicPresentTabulationRegardElement *)view didClickMore:(UIButton *)sender { + YUMIManeConsumerAbstractPresentRamparatRegardGovernancer * giftWallVC = [[YUMIManeConsumerAbstractPresentRamparatRegardGovernancer alloc] init]; + giftWallVC.consumerCid = self.consumerCid; + [self.navigationController pushViewController:giftWallVC animated:YES]; +} + +#pragma mark - JXPagingViewListViewDelegate +- (UIView *)listView { + return self.view; +} + +- (UIScrollView *)listScrollView { + return self.tableView; +} + +- (void)listViewDidScrollCallback:(void (^)(UIScrollView *))callback { + self.scrollCallback = callback; +} + +- (void)scrollViewDidScroll:(UIScrollView *)scrollView { + self.scrollCallback(scrollView); +} + +#pragma mark - FBCManeConsumerAtomicCeremony +- (void)acquireCollectiveSpecificAbstractAccomplishment:(CollectiveSpecificAbstractMatrix *)collectiveSpecificAbstract universalConsumerCollectiveAbstract:(CollectiveSpecificAbstractMatrix *)universalConsumerCollectiveAbstract { + self.collectiveSpecificAbstract = collectiveSpecificAbstract; + if (universalConsumerCollectiveAbstract.clan.elderUid.length <=0 || universalConsumerCollectiveAbstract.hall.ownerUid.length <=0) { + self.isExhibitImportCollective = YES; + } else { + self.isExhibitImportCollective = NO; + } + [self.tableView reloadSections:[NSIndexSet indexSetWithIndex:0] withRowAnimation:UITableViewRowAnimationNone]; +} + +- (void)componentAplictowardsionlyCorridorAccomplishment { + [self EvidenceAccomplishmentToast:YMLocalizedString(@"YUMI_Mine_User_Data_View_Controller_3")]; +} + +#pragma mark - Getters And Setters +- (void)setUserInfo:(ConsumerAbstractMatrix *)userInfo { + _userInfo = userInfo; + [self.tableView reloadSections:[NSIndexSet indexSetWithIndex:1] withRowAnimation:UITableViewRowAnimationNone]; +} + +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.tableFooterView = [UIView new]; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.backgroundColor = [UIColor clearColor]; + if (@available(iOS 11.0, *)) { + _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + [_tableView registerClass:[YUMIManeAtomicPresentTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIManeAtomicPresentTabulationRegardElement class])]; + [_tableView registerClass:[YUMIManeAtomicCollectiveTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIManeAtomicCollectiveTabulationRegardElement class])]; + } + return _tableView; +} + + +@end diff --git a/YuMi/Modules/YMMine/View/MineInfo/YUMIManeSimpleConsumerAbstractIntelligencerRegard.h b/YuMi/Modules/YMMine/View/MineInfo/YUMIManeSimpleConsumerAbstractIntelligencerRegard.h new file mode 100644 index 00000000..71ed267c --- /dev/null +++ b/YuMi/Modules/YMMine/View/MineInfo/YUMIManeSimpleConsumerAbstractIntelligencerRegard.h @@ -0,0 +1,29 @@ +// +// YMMineSimpleUserInfoHeaderView.h +// YUMI +// +// Created by XY on 2023/2/21. +// + +#import + +@class ConsumerAbstractMatrix; +NS_ASSUME_NONNULL_BEGIN + +@protocol FBCManeSimpleConsumerAbstractIntelligencerRegardRepresendtation +- (void)intelligenceerRegardFurthaerPresentPerformance; +- (void)intelligenceerRegardOnlinePerformance:(NSString *)roomUid; + +@end + +@interface YUMIManeSimpleConsumerAbstractIntelligencerRegard : UIView + +@property (nonatomic,strong) ConsumerAbstractMatrix *userInfo; + +@property (nonatomic,copy) NSString *roomUid; + +@property (nonatomic,weak) id delegate; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/MineInfo/YUMIManeSimpleConsumerAbstractIntelligencerRegard.m b/YuMi/Modules/YMMine/View/MineInfo/YUMIManeSimpleConsumerAbstractIntelligencerRegard.m new file mode 100644 index 00000000..2f6f37c9 --- /dev/null +++ b/YuMi/Modules/YMMine/View/MineInfo/YUMIManeSimpleConsumerAbstractIntelligencerRegard.m @@ -0,0 +1,435 @@ +// +// YMMineSimpleUserInfoHeaderView.m +// YUMI +// +// Created by XY on 2023/2/21. +// + +#import "YUMIManeSimpleConsumerAbstractIntelligencerRegard.h" +#import "NetIndicateRegard.h" +#import +#import "DJDKMIMOMColor.h" +#import +#import +#import + +#import "YUMIMacroUitls.h" +#import "DJDKMIMOMColor.h" +#import "UIIndicateConstant.h" +#import "UIButton+EnlargeTouchArea.h" +#import "UIImage+Utils.h" + +#import "YUMIManeConsumerAbstractPresentRegard.h" + +#import "ConsumerPresentRamparatAbstractMatrix.h" +#import "ConsumerAbstractMatrix.h" + + +@interface YUMIManeSimpleConsumerAbstractIntelligencerRegard() + +@property (nonatomic, strong) NetIndicateRegard *backgroundIndicateRegard; +@property (nonatomic, strong) UIVisualEffectView *impressionRegard; +@property (nonatomic, strong) UILabel *monicerconstituteSequencignation; +@property (nonatomic, strong) UILabel *idSequencignation; +@property (nonatomic, strong) NetIndicateRegard *intelligenceportraitIndicateRegard; +@property (nonatomic, strong) UILabel *introduceSequencignation; +@property (nonatomic, strong) UILabel *fanaticsSequencignation; +@property (nonatomic,strong) UIButton *onlineBtuton; + + +@property (nonatomic,strong) UIImageView * encourageIndicateRegard; +@property (nonatomic,strong) UIView *presentBackgroundRegard; +@property (nonatomic,strong) UIButton *arrowBtuton; +@property (nonatomic,strong) UILabel *titleLabel; +@property (nonatomic, strong) NSArray *titles; +@property (nonatomic, strong) JXCategoryTitleView *titleView; +@property (nonatomic, strong) JXCategoryListContainerView *containerView; +@property (nonatomic,strong) YUMIManeConsumerAbstractPresentRegard *ordinaryPresentRegard; +@property (nonatomic,strong) YUMIManeConsumerAbstractPresentRegard *fortunatePresentRegard; +@property (nonatomic,strong) UILabel *dynaloudspeakerSequencignation; + +@property (nonatomic,strong) NSArray *userGiftWall; +@property (nonatomic,strong) NSArray *userLuckyBagGiftWall; + +@end + +@implementation YUMIManeSimpleConsumerAbstractIntelligencerRegard + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self produceUI]; + } + return self; +} + +- (void)produceUI { + [self addSubview:self.backgroundIndicateRegard]; + [self.backgroundIndicateRegard addSubview:self.impressionRegard]; + [self addSubview:self.monicerconstituteSequencignation]; + [self addSubview:self.idSequencignation]; + [self addSubview:self.intelligenceportraitIndicateRegard]; + [self addSubview:self.introduceSequencignation]; + [self addSubview:self.fanaticsSequencignation]; + [self addSubview:self.onlineBtuton]; + + [self.backgroundIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.left.right.mas_equalTo(0); + make.height.mas_equalTo(260); + }]; + [self.impressionRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.backgroundIndicateRegard); + }]; + [self.monicerconstituteSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.intelligenceportraitIndicateRegard).offset(-5); + make.left.mas_equalTo(16); + make.right.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_left).offset(-5); + }]; + [self.idSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.monicerconstituteSequencignation.mas_bottom).offset(2); + make.left.mas_equalTo(self.monicerconstituteSequencignation); + make.right.mas_equalTo(self.monicerconstituteSequencignation); + }]; + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.backgroundIndicateRegard); + make.right.mas_equalTo(-16); + make.width.height.mas_equalTo(86); + }]; + [self.fanaticsSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_bottom).offset(16); + make.centerX.mas_equalTo(self.intelligenceportraitIndicateRegard); + make.width.mas_equalTo(self.intelligenceportraitIndicateRegard); + }]; + [self.introduceSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.monicerconstituteSequencignation); + make.top.mas_equalTo(self.fanaticsSequencignation); + make.right.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_left).offset(-10); + }]; + [self.onlineBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(0); + make.bottom.mas_equalTo(self.monicerconstituteSequencignation.mas_top).offset(-12); + make.width.mas_equalTo(56); + make.height.mas_equalTo(24); + }]; + + + + [self addSubview:self.encourageIndicateRegard]; + [self.encourageIndicateRegard addSubview:self.titleLabel]; + [self.encourageIndicateRegard addSubview:self.presentBackgroundRegard]; + [self.encourageIndicateRegard addSubview:self.arrowBtuton]; + [self.presentBackgroundRegard addSubview:self.titleView]; + [self.presentBackgroundRegard addSubview:self.containerView]; + [self.encourageIndicateRegard addSubview:self.dynaloudspeakerSequencignation]; + + CGFloat itemAltitude = 65; + CGFloat topHeight = 100; + CGFloat bottomHeight = 45; + CGFloat giftHeight = itemAltitude * 3 + 10 * 3 + topHeight + bottomHeight; + + [self.encourageIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(0); + make.top.mas_equalTo(self.backgroundIndicateRegard.mas_bottom).offset(-20); + make.height.mas_equalTo(giftHeight); + }]; + + [self.presentBackgroundRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(16); + make.right.mas_equalTo(-16); + make.top.mas_equalTo(47); + make.height.mas_equalTo(281); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.encourageIndicateRegard).offset(16); + make.top.mas_equalTo(self.encourageIndicateRegard).offset(16); + }]; + + [self.arrowBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(13, 22)); + make.centerY.mas_equalTo(self.titleLabel); + make.right.mas_equalTo(self.encourageIndicateRegard).offset(-15); + }]; + + [self.titleView mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.presentBackgroundRegard); + make.width.mas_equalTo(90 * 2 + 20); + make.height.mas_equalTo(50); + make.top.mas_equalTo(0); + }]; + + [self.containerView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(0); + make.top.mas_equalTo(self.titleView.mas_bottom).offset(8); + make.bottom.mas_equalTo(0); + }]; + + [self.dynaloudspeakerSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.titleLabel); + make.top.mas_equalTo(self.presentBackgroundRegard.mas_bottom).offset(20); + }]; + +} + +- (void)setUserInfo:(ConsumerAbstractMatrix *)userInfo { + _userInfo = userInfo; + if (_userInfo) { + self.idSequencignation.text = [NSString stringWithFormat:@"ID:%ld", (long)_userInfo.erbanNo]; + self.monicerconstituteSequencignation.text = _userInfo.nick.length > 0 ? _userInfo.nick : @""; + self.intelligenceportraitIndicateRegard.imageUrl = userInfo.avatar; + self.backgroundIndicateRegard.imageUrl = userInfo.avatar; + self.introduceSequencignation.text = _userInfo.userDesc.length > 0 ? _userInfo.userDesc : YMLocalizedString(@"YUMI_Mine_Simple_User_Info_Header_View_0"); + self.fanaticsSequencignation.text =[NSString stringWithFormat:@"粉丝:%ld", _userInfo.fansNum]; + + self.userGiftWall = self.userInfo.userGiftWall; + self.userLuckyBagGiftWall = self.userInfo.userLuckyBagGiftWall; + } +} + +- (void)setRoomUid:(NSString *)roomUid { + _roomUid = roomUid; + self.onlineBtuton.hidden = _roomUid.length <= 0; +} + +#pragma mark - JXCategoryViewDelegate +- (NSInteger)numberOfListsInlistContainerView:(JXCategoryListContainerView *)listContainerView { + return self.titles.count; +} + +- (id)listContainerView:(JXCategoryListContainerView *)listContainerView initListForIndex:(NSInteger)index { + if (index == 0) { + return self.ordinaryPresentRegard; + } else { + return self.fortunatePresentRegard; + } +} +#pragma mark - Event Response +- (void)arrowBtutonPerformance:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(intelligenceerRegardFurthaerPresentPerformance)]) { + [self.delegate intelligenceerRegardFurthaerPresentPerformance]; + } +} + +- (void)onlineBtutonPerformance { + if (self.delegate && [self.delegate respondsToSelector:@selector(intelligenceerRegardOnlinePerformance:)]) { + [self.delegate intelligenceerRegardOnlinePerformance:self.roomUid]; + } +} + +#pragma mark - Getters And Setters +- (void)setUserGiftWall:(NSArray *)userGiftWall { + _userGiftWall = userGiftWall; + if (_userGiftWall.count > 12) { + NSMutableArray * array = [_userGiftWall mutableCopy]; + _userGiftWall = [array subarrayWithRange:NSMakeRange(0, 12)]; + } + self.ordinaryPresentRegard.datasource = _userGiftWall; +} + +- (void)setUserLuckyBagGiftWall:(NSArray *)userLuckyBagGiftWall { + _userLuckyBagGiftWall = userLuckyBagGiftWall; + if (_userLuckyBagGiftWall.count > 12) { + NSMutableArray * array = [_userLuckyBagGiftWall mutableCopy]; + _userLuckyBagGiftWall = [array subarrayWithRange:NSMakeRange(0, 12)]; + } + self.fortunatePresentRegard.datasource = _userLuckyBagGiftWall; +} + + +#pragma mark - 懒加载 + +- (NetIndicateRegard *)backgroundIndicateRegard { + if (!_backgroundIndicateRegard) { + _backgroundIndicateRegard = [[NetIndicateRegard alloc] init]; + _backgroundIndicateRegard.contentMode = UIViewContentModeScaleAspectFill; + _backgroundIndicateRegard.clipsToBounds = YES; + } + return _backgroundIndicateRegard; +} + +- (UIVisualEffectView *)impressionRegard { + if (!_impressionRegard) { + UIBlurEffect *blur = [UIBlurEffect effectWithStyle:UIBlurEffectStyleDark]; + _impressionRegard = [[UIVisualEffectView alloc] initWithEffect:blur]; + _impressionRegard.alpha = 0.9; + } + return _impressionRegard; +} + +- (UILabel *)monicerconstituteSequencignation { + if (!_monicerconstituteSequencignation) { + _monicerconstituteSequencignation = [[UILabel alloc] init]; + _monicerconstituteSequencignation.textColor = UIColor.whiteColor; + _monicerconstituteSequencignation.font = [UIFont systemFontOfSize:20 weight:UIFontWeightMedium]; + } + return _monicerconstituteSequencignation; +} + +- (UILabel *)idSequencignation { + if (!_idSequencignation) { + _idSequencignation = [[UILabel alloc] init]; + _idSequencignation.textColor = [UIColor.whiteColor colorWithAlphaComponent:0.4]; + _idSequencignation.font = [UIFont systemFontOfSize:14 weight:UIFontWeightRegular]; + } + return _idSequencignation; +} + +- (UILabel *)introduceSequencignation { + if (!_introduceSequencignation) { + _introduceSequencignation = [[UILabel alloc] init]; + _introduceSequencignation.textColor = UIColor.whiteColor; + _introduceSequencignation.font = [UIFont systemFontOfSize:12 weight:UIFontWeightRegular]; + _introduceSequencignation.numberOfLines = 2; + } + return _introduceSequencignation; +} + +- (UILabel *)fanaticsSequencignation { + if (!_fanaticsSequencignation) { + _fanaticsSequencignation = [[UILabel alloc] init]; + _fanaticsSequencignation.textColor = UIColor.whiteColor; + _fanaticsSequencignation.font = [UIFont systemFontOfSize:12 weight:UIFontWeightRegular]; + _fanaticsSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _fanaticsSequencignation; +} + +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceportraitIndicateRegard.userInteractionEnabled = YES; + _intelligenceportraitIndicateRegard.contentMode = UIViewContentModeScaleAspectFill; + _intelligenceportraitIndicateRegard.layer.borderWidth = 2; + _intelligenceportraitIndicateRegard.layer.borderColor = [UIColor.whiteColor colorWithAlphaComponent:0.4].CGColor; + _intelligenceportraitIndicateRegard.layer.cornerRadius = 86/2; + _intelligenceportraitIndicateRegard.clipsToBounds = YES; + + } + return _intelligenceportraitIndicateRegard; +} + +- (UIButton *)onlineBtuton { + if(!_onlineBtuton) { + _onlineBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_onlineBtuton setTitle:YMLocalizedString(@"YUMI_Mine_Simple_User_Info_Header_View_2") forState:UIControlStateNormal]; + [_onlineBtuton setTitleColor:UIColor.whiteColor forState:UIControlStateNormal]; + _onlineBtuton.titleLabel.font = [UIFont systemFontOfSize:12]; + [_onlineBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + _onlineBtuton.layer.masksToBounds = YES; + _onlineBtuton.layer.cornerRadius = 24/2; + _onlineBtuton.layer.maskedCorners = kCALayerMaxXMinYCorner | kCALayerMaxXMaxYCorner; + [_onlineBtuton addTarget:self action:@selector(onlineBtutonPerformance) forControlEvents:UIControlEventTouchUpInside]; + _onlineBtuton.hidden = YES; + } + return _onlineBtuton; +} + +#pragma mark - 礼物部分 + +- (UIImageView *)encourageIndicateRegard { + if (!_encourageIndicateRegard) { + _encourageIndicateRegard = [[UIImageView alloc] init]; + _encourageIndicateRegard.userInteractionEnabled = YES; + _encourageIndicateRegard.layer.cornerRadius = 20; + _encourageIndicateRegard.layer.maskedCorners = kCALayerMinXMinYCorner | kCALayerMaxXMinYCorner; + _encourageIndicateRegard.backgroundColor =[DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify]; + } + return _encourageIndicateRegard; +} + +- (UIView *)presentBackgroundRegard { + if (!_presentBackgroundRegard) { + _presentBackgroundRegard = [[UIView alloc] init]; + _presentBackgroundRegard.backgroundColor = UIColorFromRGB(0xF6F7F9); + _presentBackgroundRegard.layer.cornerRadius = 12; + } + return _presentBackgroundRegard; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.text = YMLocalizedString(@"YUMI_Mine_Simple_User_Info_Header_View_3"); + _titleLabel.font = [UIFont systemFontOfSize:18 weight:UIFontWeightMedium]; + _titleLabel.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _titleLabel; +} + +- (UIButton *)arrowBtuton { + if (!_arrowBtuton) { + _arrowBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_arrowBtuton setImage:[UIImage imageNamed:@"yumi_scope_setting_arrow"] forState:UIControlStateNormal]; + [_arrowBtuton setImage:[UIImage imageNamed:@"yumi_scope_setting_arrow"] forState:UIControlStateSelected]; + [_arrowBtuton addTarget:self action:@selector(arrowBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + [_arrowBtuton setEnlargeEdgeAboutApex:10 right:10 bottom:10 left:10]; + } + return _arrowBtuton; +} + +- (JXCategoryTitleView *)titleView { + if (!_titleView) { + _titleView = [[JXCategoryTitleView alloc] init]; + _titleView.delegate = self; + _titleView.titles = self.titles; + _titleView.backgroundColor = [UIColor clearColor]; + _titleView.titleColor = [DJDKMIMOMColor instantEssayPrettify]; + _titleView.titleSelectedColor = [DJDKMIMOMColor aplictowardsionMainPrettify]; + _titleView.titleFont = [UIFont systemFontOfSize:14]; + _titleView.titleSelectedFont = [UIFont systemFontOfSize:14 weight:UIFontWeightMedium]; + _titleView.titleLabelAnchorPointStyle = JXCategoryTitleLabelAnchorPointStyleCenter; + _titleView.contentScrollViewClickTransitionAnimationEnabled = NO; + _titleView.defaultSelectedIndex = 0; + _titleView.cellSpacing = 20; + _titleView.cellWidthIncrement = 5; + _titleView.cellWidth = 60; + _titleView.listContainer = self.containerView; + + } + return _titleView; +} + +- (JXCategoryListContainerView *)containerView { + if (!_containerView) { + _containerView = [[JXCategoryListContainerView alloc] initWithType:JXCategoryListContainerType_ScrollView delegate:self]; + _containerView.defaultSelectedIndex = 0; + _containerView.scrollView.tag = 1009; + } + return _containerView; +} + +- (NSArray *)titles { + if (!_titles) { + _titles = @[@"普通礼物", YMLocalizedString(@"YUMI_Mine_Simple_User_Info_Header_View_5")]; + } + return _titles; +} + +- (YUMIManeConsumerAbstractPresentRegard *)ordinaryPresentRegard { + if (!_ordinaryPresentRegard) { + _ordinaryPresentRegard = [[YUMIManeConsumerAbstractPresentRegard alloc] init]; + } + return _ordinaryPresentRegard; +} + +- (YUMIManeConsumerAbstractPresentRegard *)fortunatePresentRegard { + if (!_fortunatePresentRegard) { + _fortunatePresentRegard = [[YUMIManeConsumerAbstractPresentRegard alloc] init]; + } + return _fortunatePresentRegard; +} + +- (UILabel *)dynaloudspeakerSequencignation { + if (!_dynaloudspeakerSequencignation) { + _dynaloudspeakerSequencignation = [[UILabel alloc] init]; + _dynaloudspeakerSequencignation.text = YMLocalizedString(@"YUMI_Mine_Simple_User_Info_Header_View_6"); + _dynaloudspeakerSequencignation.font = [UIFont systemFontOfSize:18 weight:UIFontWeightMedium]; + _dynaloudspeakerSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _dynaloudspeakerSequencignation; +} + +@end diff --git a/YuMi/Modules/YMMine/View/MineInfo/YUMIManeSimpleConsumerAbstractRegardGovernancer.h b/YuMi/Modules/YMMine/View/MineInfo/YUMIManeSimpleConsumerAbstractRegardGovernancer.h new file mode 100644 index 00000000..fab75044 --- /dev/null +++ b/YuMi/Modules/YMMine/View/MineInfo/YUMIManeSimpleConsumerAbstractRegardGovernancer.h @@ -0,0 +1,18 @@ +// +// YMMineSimpleUserInfoViewController.h +// YUMI +// +// Created by XY on 2023/2/21. +// + +#import "MvpRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeSimpleConsumerAbstractRegardGovernancer : MvpRegardGovernancer + +@property (nonatomic,assign) NSInteger uid; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/MineInfo/YUMIManeSimpleConsumerAbstractRegardGovernancer.m b/YuMi/Modules/YMMine/View/MineInfo/YUMIManeSimpleConsumerAbstractRegardGovernancer.m new file mode 100644 index 00000000..90dcc923 --- /dev/null +++ b/YuMi/Modules/YMMine/View/MineInfo/YUMIManeSimpleConsumerAbstractRegardGovernancer.m @@ -0,0 +1,389 @@ +// +// YMMineSimpleUserInfoViewController.m +// YUMI +// +// Created by XY on 2023/2/21. +// + +#import "YUMIManeSimpleConsumerAbstractRegardGovernancer.h" +#import "YUMIMacroUitls.h" +#import +#import +#import "DJDKMIMOMColor.h" +#import "UIImage+Utils.h" +#import "AccountAbstractStorage.h" +#import "MKJPopup.h" +#import "YUMIHtmlUrl.h" +#import "YUMICommunicationSolitaireDisporterExecutive.h" +#import "UIImage+Utils.h" +#import "YUMIConstant.h" +#import "NEMCCommunicationUtils.h" +#import "NSArray+Safe.h" +#import "ClientDisposition.h" +#import "XNDJTBWGLoadingTool.h" + +#import "SeparationsStatementAbstractMatrix.h" +#import "ManeCommunicationSolitaireStatementAbstractMatrix.h" +#import "ConsumerAbstractMatrix.h" + +#import "YUMIManeConsumerAbstractExternalizer.h" +#import "FBCManeConsumerAbstractCeremony.h" +#import "ChamberHostRepresendtation.h" +#import "YUMIMomentStatementAssembletionRegardElement.h" +#import "YUMIManeConsumerAbstractCustomNevRegard.h" +#import "YUMIManeSimpleConsumerAbstractIntelligencerRegard.h" +#import "YUMIManeConsumerAbstractCompileRegardGovernancer.h" +#import "YUMITissueRegardGovernancer.h" +#import "InterlocutionRegardGovernancer.h" +#import "YUMIChamberRegardGovernancer.h" +#import "YUMIManeConsumerAtomicRegardGovernancer.h" +#import "YUMISeparationsManeRegardGovernancer.h" +#import "YUMISeparationsSpecificRegardGovernancer.h" +#import "YUMIMomentsSimpleSpecificRegardGovernancer.h" +#import "YUMIManeConsumerAbstractPresentRamparatRegardGovernancer.h" + +#define kHeaderViewHeight 615 + +@interface YUMIManeSimpleConsumerAbstractRegardGovernancer () + +@property (nonatomic, strong) UICollectionView *collectionView; +@property (nonatomic, strong) YUMIManeSimpleConsumerAbstractIntelligencerRegard *intelligenceerRegard; +@property (nonatomic,strong) YUMIManeConsumerAbstractCustomNevRegard *nevRegard; +@property (nonatomic,strong) ConsumerAbstractMatrix *userInfo; +@property (nonatomic,strong) UIStackView *extremeHierarchyRegard; +@property (nonatomic,strong) UIButton *chinwagBtuton; +@property (nonatomic,strong) UIButton *considerationBtuton; + +@end + +@implementation YUMIManeSimpleConsumerAbstractRegardGovernancer + +- (YUMIManeConsumerAbstractExternalizer *)producePresimport { + return [[YUMIManeConsumerAbstractExternalizer alloc] init]; +} + +- (BOOL)isVeiledNevObstacle { + return YES; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self produceUI]; +} + +- (void)viewWillAppear:(BOOL)animated { + [super viewWillAppear:animated]; + if (self.uid > 0) { + [self initHyperessayDemand]; + } +} + +- (void)viewWillDisappear:(BOOL)animated { + [super viewWillDisappear:animated]; + +} + +- (void)produceUI { + [self.view addSubview:self.collectionView]; + [self.collectionView addSubview:self.intelligenceerRegard]; + [self.collectionView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(0); + make.left.right.mas_equalTo(0); + make.bottom.mas_equalTo(0); + }]; + + [self.view addSubview:self.nevRegard]; + [self.nevRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self.view); + make.height.mas_equalTo(kNavigationHeight); + }]; + + if (self.uid != [AccountAbstractStorage instance].acquireCid.integerValue) { + [self.view addSubview:self.chinwagBtuton]; + [self.chinwagBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.view); + make.height.mas_equalTo(36); + make.width.mas_equalTo(100); + make.bottom.mas_equalTo(self.view).offset(-kSafeAreaBottomHeight - 15); + }]; + } +} + +- (void)initHyperessayDemand { + NSString *uid = [NSString stringWithFormat:@"%ld", self.uid]; + + [self.presimport acquireConsumerConsidertowardsionDeclare:uid]; + + + [self.presimport acquireConsumerSpecificAbstractAboutCid:uid]; + + NSString * myUid = [AccountAbstractStorage instance].acquireCid; + + if (![uid isEqualToString:myUid]) { + + } +} + +#pragma mark - 拉黑 移除黑名单 +- (void)EvidenceRightNevShank { + NSMutableArray *array = [NSMutableArray array]; + NSString *uid = [NSString stringWithFormat:@"%ld",self.uid]; + MKJActionSheetDisposition *report = [MKJActionSheetDisposition normalTitle:YMLocalizedString(@"YUMI_Mine_Simple_User_Info_View_Controller_0") ticktackPerformance:^{ + if ([ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + YUMITissueRegardGovernancer *vc = [[YUMITissueRegardGovernancer alloc]init]; + NSString *urlstr = [NSString stringWithFormat:@"%@?reportUid=%@&source=PERSONAL",URLWithType(kReportRoomURL),uid]; + vc.url = urlstr; + [self.navigationController pushViewController:vc animated:YES]; + } else { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:YMLocalizedString(@"YUMI_Mine_Simple_User_Info_View_Controller_1")]; + } + }]; + + MKJActionSheetDisposition *black = [MKJActionSheetDisposition normalTitle:YMLocalizedString(@"YUMI_Mine_Simple_User_Info_View_Controller_2") ticktackPerformance:^{ + [self accelertowardseOrTransltowardseDenigrtowardse:NO uid:uid]; + }]; + + [array addObjectsFromArray:@[report, black]]; + + BOOL isInBlackList = [[NIMSDK sharedSDK].userManager isUserInBlackList:uid] || [NEMCCommunicationUtils isHLOfficalSequenceription:[NSString stringWithFormat:@"%ld", self.uid]]; + if (isInBlackList) { + [array removeObject:black]; + } + [MKJPopup performanceSheetAboutProvisions:array]; +} + + +- (void)accelertowardseOrTransltowardseDenigrtowardse:(BOOL)isRemove uid:(NSString *)uid { + NSString *title; + NSString *message; + if (isRemove) { + title = YMLocalizedString(@"YUMI_Mine_Simple_User_Info_View_Controller_3"); + message = YMLocalizedString(@"YUMI_Mine_Simple_User_Info_View_Controller_4"); + }else{ + title = YMLocalizedString(@"YUMI_Mine_Simple_User_Info_View_Controller_5"); + message = YMLocalizedString(@"YUMI_Mine_Simple_User_Info_View_Controller_6"); + } + + MKJPrecautiousDisposition *config = [[MKJPrecautiousDisposition alloc] init]; + config.title = title; + config.message = message; + + [MKJPopup precautiousAboutDisposition:config acknowledgementHandler:^{ + if (isRemove) { + [[NIMSDK sharedSDK].userManager removeFromBlackBlackList:uid completion:^(NSError * _Nullable error) { + if (error == nil) { + [self EvidenceAccomplishmentToast:YMLocalizedString(@"YUMI_Mine_Simple_User_Info_View_Controller_7")]; + } + }]; + } else { + [[NIMSDK sharedSDK].userManager addToBlackList:uid completion:^(NSError * _Nullable error) { + if (error == nil) { + [self EvidenceAccomplishmentToast:YMLocalizedString(@"YUMI_Mine_Simple_User_Info_View_Controller_8")]; + } + }]; + } + } cancelHandler:^{ + }]; +} + +#pragma mark - FBCManeCustomNevRegardRepresendtation +- (void)fBCManeIndividualityNevRegard:(YUMIManeConsumerAbstractCustomNevRegard *)view didClickEditButton:(UIButton *)sender { + if (sender.isSelected) { + YUMIManeConsumerAbstractCompileRegardGovernancer * editVC = [[YUMIManeConsumerAbstractCompileRegardGovernancer alloc] init]; + [self.navigationController pushViewController:editVC animated:YES]; + } else { + [self EvidenceRightNevShank]; + } +} + +- (void)fBCManeIndividualityNevRegard:(YUMIManeConsumerAbstractCustomNevRegard *)view didClickBackButton:(UIButton *)sender { + [self.navigationController popViewControllerAnimated:YES]; +} + +#pragma mark - FBCManeSimpleConsumerAbstractIntelligencerRegardRepresendtation +- (void)intelligenceerRegardFurthaerPresentPerformance { + if (self.uid > 0) { + YUMIManeConsumerAbstractPresentRamparatRegardGovernancer * giftWallVC = [[YUMIManeConsumerAbstractPresentRamparatRegardGovernancer alloc] init]; + giftWallVC.consumerCid = [NSString stringWithFormat:@"%ld", self.uid]; + [self.navigationController pushViewController:giftWallVC animated:YES]; + } +} + +- (void)intelligenceerRegardOnlinePerformance:(NSString *)roomUid { + if (roomUid.length > 0 ) { + + [self.navigationController.viewControllers enumerateObjectsUsingBlock:^(__kindof UIViewController * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if ([obj isKindOfClass:[YUMIChamberRegardGovernancer class]]) { + [self.navigationController popToRootViewControllerAnimated:NO]; + YUMIChamberRegardGovernancer * rooomVC = obj; + [rooomVC exitRoom]; + *stop = YES; + } + }]; + [YUMIChamberRegardGovernancer unfoildChamber:roomUid viewController:self]; + } +} + +#pragma mark - FBCManeConsumerAbstractCeremony +- (void)dwellEarnConsumerAbstractAccomplishment:(ConsumerAbstractMatrix *)userInfo { + if (userInfo.uid == self.uid) { + self.userInfo = userInfo; + } else { + if (!userInfo.userVipInfoVO.lookHomepageHide) { + NSString * uid = [NSString stringWithFormat:@"%ld", self.uid]; + [self.presimport visitConsumer:uid]; + } + } +} + +- (void)onacquireSpecificAbstractAccomplishment:(ConsumerAbstractMatrix *)userInfo { + self.userInfo = userInfo; + self.intelligenceerRegard.userInfo = userInfo; + self.intelligenceerRegard.roomUid = userInfo.roomUid; + [self.collectionView reloadData]; + +} + +- (void)acquireConsidertowardsionDeclareAccomplishment:(BOOL)status { + self.considerationBtuton.selected = status; +} + +- (void)considertowardsionConsumerAccomplishment:(BOOL)status { + self.considerationBtuton.selected = status; +} + + +#pragma mark - Event Response +- (void)chinwagBtutonPerformance:(UIButton *)sender { + NSString * sessionId = [NSString stringWithFormat:@"%ld",self.uid]; + NIMSession * session = [NIMSession session:sessionId type:NIMSessionTypeP2P]; + InterlocutionRegardGovernancer * sessionVC = [[InterlocutionRegardGovernancer alloc] initWithSession:session]; + [self.navigationController pushViewController:sessionVC animated:YES]; +} + +- (void)considertowardsionBtutonPerformance:(UIButton *)sender { + NSString *uid = [NSString stringWithFormat:@"%ld", self.uid]; + [self.presimport considertowardsionConsumer:uid state:!sender.selected]; +} + + +#pragma mark - UICollectionView + +- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { + return self.userInfo.dynamicInfo.count; +} + +- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { + YUMIMomentStatementAssembletionRegardElement *cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass(YUMIMomentStatementAssembletionRegardElement.self) forIndexPath:indexPath]; + SeparationsAbstractMatrix * monentsInfo = [self.userInfo.dynamicInfo secureGroalTowardsIndictowardsrix1:indexPath.row]; + cell.monentsInfo = monentsInfo; + return cell; +} + +- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath { + if (self.userInfo.dynamicInfo.count > 0) { + + if ([ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + YUMISeparationsSpecificRegardGovernancer * detailVC = [[YUMISeparationsSpecificRegardGovernancer alloc] init]; + SeparationsAbstractMatrix * monentsInfo = [self.userInfo.dynamicInfo secureGroalTowardsIndictowardsrix1:indexPath.row]; + detailVC.monentsInfo = monentsInfo; + [self.navigationController pushViewController:detailVC animated:YES]; + }else{ + YUMIMomentsSimpleSpecificRegardGovernancer * detailVC = [[YUMIMomentsSimpleSpecificRegardGovernancer alloc] init]; + SeparationsAbstractMatrix * monentsInfo = [self.userInfo.dynamicInfo secureGroalTowardsIndictowardsrix1:indexPath.row]; + detailVC.monentsInfo = monentsInfo; + [self.navigationController pushViewController:detailVC animated:YES]; + } + } +} + +#pragma mark - 懒加载 + +- (UICollectionView *)collectionView { + if (!_collectionView) { + UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init]; + layout.scrollDirection = UICollectionViewScrollDirectionVertical; + CGFloat width = (KScreenWidth - 16 -13 -16)/2.0; + CGFloat height = 220.0/165.0*width; + layout.itemSize = CGSizeMake(width, height); + layout.minimumLineSpacing = 12.0; + layout.minimumInteritemSpacing = 13.0; + layout.sectionInset = UIEdgeInsetsMake(12, 16, 12, 16); + + _collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout]; + _collectionView.backgroundColor = UIColor.whiteColor; + _collectionView.alwaysBounceVertical = YES; + [_collectionView registerClass:[YUMIMomentStatementAssembletionRegardElement class] forCellWithReuseIdentifier:NSStringFromClass(YUMIMomentStatementAssembletionRegardElement.self)]; + _collectionView.delegate = self; + _collectionView.dataSource = self; + _collectionView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + + _collectionView.contentInset = UIEdgeInsetsMake(kHeaderViewHeight, 0, 0, 0); + + } + return _collectionView; +} + +- (YUMIManeSimpleConsumerAbstractIntelligencerRegard *)intelligenceerRegard { + if (!_intelligenceerRegard) { + _intelligenceerRegard = [[YUMIManeSimpleConsumerAbstractIntelligencerRegard alloc] init]; + _intelligenceerRegard.frame = CGRectMake(0, -kHeaderViewHeight, KScreenWidth, kHeaderViewHeight); + _intelligenceerRegard.delegate = self; + } + return _intelligenceerRegard; +} + +- (YUMIManeConsumerAbstractCustomNevRegard *)nevRegard { + if (!_nevRegard) { + _nevRegard = [[YUMIManeConsumerAbstractCustomNevRegard alloc] init]; + _nevRegard.delegate = self; + } + return _nevRegard; +} + +- (UIStackView *)extremeHierarchyRegard { + if (!_extremeHierarchyRegard) { + _extremeHierarchyRegard = [[UIStackView alloc] init]; + _extremeHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _extremeHierarchyRegard.distribution = UIStackViewDistributionFillEqually; + _extremeHierarchyRegard.alignment = UIStackViewAlignmentFill; + _extremeHierarchyRegard.spacing = 25; + } + return _extremeHierarchyRegard; +} + +- (UIButton *)chinwagBtuton { + if (!_chinwagBtuton) { + _chinwagBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_chinwagBtuton setTitle:YMLocalizedString(@"YUMI_Mine_Simple_User_Info_View_Controller_9") forState:UIControlStateNormal]; + [_chinwagBtuton setTitleColor:[DJDKMIMOMColor acknowledgementBtutonEssayPrettify] forState:UIControlStateNormal]; + _chinwagBtuton.titleLabel.font = [UIFont systemFontOfSize:15]; + [_chinwagBtuton setBackgroundColor:[DJDKMIMOMColor aplictowardsionMainPrettify]]; + _chinwagBtuton.layer.masksToBounds = YES; + _chinwagBtuton.layer.cornerRadius = 36/2; + [_chinwagBtuton addTarget:self action:@selector(chinwagBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _chinwagBtuton; +} + +- (UIButton *)considerationBtuton { + if (!_considerationBtuton) { + _considerationBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_considerationBtuton setTitle:YMLocalizedString(@"YUMI_Mine_Simple_User_Info_View_Controller_10") forState:UIControlStateNormal]; + [_considerationBtuton setTitle:YMLocalizedString(@"YUMI_Mine_Simple_User_Info_View_Controller_11") forState:UIControlStateSelected]; + [_considerationBtuton setTitleColor:[DJDKMIMOMColor acknowledgementBtutonEssayPrettify] forState:UIControlStateNormal]; + [_considerationBtuton setTitleColor:[DJDKMIMOMColor revoctowardsionBtutonEssayPrettify] forState:UIControlStateSelected]; + [_considerationBtuton setImage:[UIImage imageNamed:@"yumi_center_user_gen_bottom_attention_normal"] forState:UIControlStateNormal]; + [_considerationBtuton setImage:[UIImage imageNamed:@"yumi_center_user_gen_bottom_attention_select"] forState:UIControlStateSelected]; + _considerationBtuton.titleLabel.font = [UIFont systemFontOfSize:15]; + [_considerationBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + [_considerationBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor revoctowardsionBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor revoctowardsionBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateSelected]; + _considerationBtuton.layer.masksToBounds = YES; + _considerationBtuton.layer.cornerRadius = 36/2; + _considerationBtuton.hidden = YES; + [_considerationBtuton addTarget:self action:@selector(considertowardsionBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _considerationBtuton; +} + +@end diff --git a/YuMi/Modules/YMMine/View/Recharge/YUMIIAPReindictAssembletionRegardElement.h b/YuMi/Modules/YMMine/View/Recharge/YUMIIAPReindictAssembletionRegardElement.h new file mode 100644 index 00000000..2178ec12 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Recharge/YUMIIAPReindictAssembletionRegardElement.h @@ -0,0 +1,21 @@ +// +// YMIAPRechargeCollectionViewCell.h +// YUMI +// +// Created by XY on 2023/2/21. +// + +#import + +@class ReindictStatementMatrix; +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIIAPReindictAssembletionRegardElement : UICollectionViewCell + +@property (nonatomic, strong) ReindictStatementMatrix *reindictMatrix; + +@property (nonatomic, assign) BOOL chosenedStyle; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Recharge/YUMIIAPReindictAssembletionRegardElement.m b/YuMi/Modules/YMMine/View/Recharge/YUMIIAPReindictAssembletionRegardElement.m new file mode 100644 index 00000000..cad2c24a --- /dev/null +++ b/YuMi/Modules/YMMine/View/Recharge/YUMIIAPReindictAssembletionRegardElement.m @@ -0,0 +1,131 @@ +// +// YMIAPRechargeCollectionViewCell.m +// YUMI +// +// Created by XY on 2023/2/21. +// + +#import "YUMIIAPReindictAssembletionRegardElement.h" +#import "DJDKMIMOMColor.h" +#import + +#import "ReindictStatementMatrix.h" + +@interface YUMIIAPReindictAssembletionRegardElement() + +@property (nonatomic, strong) UIView *backgroundRegard; +@property (nonatomic, strong) UIView *chosenedBackgroundRegard; +@property (nonatomic, strong) UILabel *valencySequencignation; +@property (nonatomic, strong) UIImageView *figureIndicateRegard; +@property (nonatomic, strong) UILabel *figureSequencignation; + +@end + +@implementation YUMIIAPReindictAssembletionRegardElement + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self produceUI]; + } + return self; +} + +- (void)produceUI { + [self.contentView addSubview:self.backgroundRegard]; + [self.contentView addSubview:self.chosenedBackgroundRegard]; + [self.contentView addSubview:self.valencySequencignation]; + [self.contentView addSubview:self.figureIndicateRegard]; + [self.contentView addSubview:self.figureSequencignation]; + + [self.backgroundRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.contentView); + }]; + [self.chosenedBackgroundRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.backgroundRegard); + }]; + [self.valencySequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(10); + make.left.mas_equalTo(4); + make.right.mas_equalTo(-4); + }]; + [self.figureSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.contentView).offset(8); + make.top.mas_equalTo(self.valencySequencignation.mas_bottom).offset(5); + make.left.mas_greaterThanOrEqualTo(18); + }]; + [self.figureIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.figureSequencignation); + make.width.height.mas_equalTo(14); + make.right.mas_equalTo(self.figureSequencignation.mas_left).offset(-4); + }]; +} + +- (void)setReindictMatrix:(ReindictStatementMatrix *)reindictMatrix { + _reindictMatrix = reindictMatrix; + NSMutableAttributedString *priceStr = [[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:@"¥%.2f",reindictMatrix.money.floatValue]]; + [priceStr addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:8] range:NSMakeRange(0, 1)]; + self.valencySequencignation.attributedText = priceStr; + NSCharacterSet* nonDigits =[[NSCharacterSet decimalDigitCharacterSet] invertedSet]; + int remainSecond = [[reindictMatrix.prodName stringByTrimmingCharactersInSet:nonDigits] intValue]; + self.figureSequencignation.text = [NSString stringWithFormat:@"%d",remainSecond]; +} + +- (void)setChosenedStyle:(BOOL)chosenedStyle { + _chosenedStyle = chosenedStyle; + self.chosenedBackgroundRegard.hidden = !chosenedStyle; +} + +#pragma mark - 懒加载 + +- (UIView *)backgroundRegard { + if (!_backgroundRegard) { + _backgroundRegard = [[UIView alloc] init]; + _backgroundRegard.backgroundColor = UIColor.whiteColor; + _backgroundRegard.layer.cornerRadius = 5; + } + return _backgroundRegard; +} + +- (UIView *)chosenedBackgroundRegard { + if (!_chosenedBackgroundRegard) { + _chosenedBackgroundRegard = [[UIView alloc] init]; + _chosenedBackgroundRegard.backgroundColor = [[DJDKMIMOMColor aplictowardsionMainPrettify] colorWithAlphaComponent:0.1]; + _chosenedBackgroundRegard.layer.cornerRadius = 5; + _chosenedBackgroundRegard.layer.borderWidth = 1; + _chosenedBackgroundRegard.layer.borderColor = [DJDKMIMOMColor aplictowardsionMainPrettify].CGColor; + _chosenedBackgroundRegard.hidden = YES; + } + return _chosenedBackgroundRegard; +} + +- (UILabel *)valencySequencignation { + if (!_valencySequencignation) { + _valencySequencignation = [[UILabel alloc] init]; + _valencySequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _valencySequencignation.font = [UIFont systemFontOfSize:16 weight:UIFontWeightMedium]; + _valencySequencignation.textAlignment = NSTextAlignmentCenter; + } + return _valencySequencignation; +} + +- (UIImageView *)figureIndicateRegard { + if (!_figureIndicateRegard) { + _figureIndicateRegard = [[UIImageView alloc] init]; + _figureIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + _figureIndicateRegard.image = [UIImage imageNamed:@"yumi_center_recharge_diamond"]; + } + return _figureIndicateRegard; +} + +- (UILabel *)figureSequencignation { + if (!_figureSequencignation) { + _figureSequencignation = [[UILabel alloc] init]; + _figureSequencignation.textColor = [DJDKMIMOMColor essayTertiusPrettify]; + _figureSequencignation.font = [UIFont systemFontOfSize:10 weight:UIFontWeightRegular]; + _figureSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _figureSequencignation; +} + +@end diff --git a/YuMi/Modules/YMMine/View/Recharge/YUMIIAPReindictIntelligencerRegard.h b/YuMi/Modules/YMMine/View/Recharge/YUMIIAPReindictIntelligencerRegard.h new file mode 100644 index 00000000..3b7549eb --- /dev/null +++ b/YuMi/Modules/YMMine/View/Recharge/YUMIIAPReindictIntelligencerRegard.h @@ -0,0 +1,19 @@ +// +// YMIAPRechargeHeaderView.h +// YUMI +// +// Created by XY on 2023/2/21. +// + +#import + +@class RamparatetAbstractMatrix; +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIIAPReindictIntelligencerRegard : UIView + +@property (nonatomic,strong) RamparatetAbstractMatrix *wentiretyetAbstract; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Recharge/YUMIIAPReindictIntelligencerRegard.m b/YuMi/Modules/YMMine/View/Recharge/YUMIIAPReindictIntelligencerRegard.m new file mode 100644 index 00000000..5e05a5b6 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Recharge/YUMIIAPReindictIntelligencerRegard.m @@ -0,0 +1,92 @@ +// +// YMIAPRechargeHeaderView.m +// YUMI +// +// Created by XY on 2023/2/21. +// + +#import "YUMIIAPReindictIntelligencerRegard.h" +#import +#import "YUMIMacroUitls.h" + +#import "RamparatetAbstractMatrix.h" + +@interface YUMIIAPReindictIntelligencerRegard() + +@property (nonatomic, strong) UIImageView *backgroundIndicateRegard; +@property (nonatomic, strong) UILabel *balanceEssaySequencignation; +@property (nonatomic, strong) UILabel *balanceSequencignation; + +@end + +@implementation YUMIIAPReindictIntelligencerRegard + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self produceUI]; + } + return self; +} + +- (void)produceUI { + [self addSubview:self.backgroundIndicateRegard]; + [self addSubview:self.balanceEssaySequencignation]; + [self addSubview:self.balanceSequencignation]; + + [self.backgroundIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(0); + make.left.right.mas_equalTo(0); + make.height.mas_equalTo(220.0/375.0*KScreenWidth); + }]; + [self.balanceSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.bottom.mas_equalTo(-20); + make.left.mas_equalTo(16); + make.right.mas_equalTo(-16); + }]; + [self.balanceEssaySequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.bottom.mas_equalTo(self.balanceSequencignation.mas_top).offset(-4); + make.centerX.mas_equalTo(self); + }]; +} + +- (void)setWentiretyetAbstract:(RamparatetAbstractMatrix *)wentiretyetAbstract { + _wentiretyetAbstract = wentiretyetAbstract; + if (_wentiretyetAbstract) { + self.balanceSequencignation.text = wentiretyetAbstract.diamonds; + } +} + +#pragma mark - 懒加载 + +- (UIImageView *)backgroundIndicateRegard { + if (!_backgroundIndicateRegard) { + _backgroundIndicateRegard = [[UIImageView alloc] init]; + _backgroundIndicateRegard.image = [UIImage imageNamed:@"yumi_center_recharge_background"]; + } + return _backgroundIndicateRegard; +} + +- (UILabel *)balanceEssaySequencignation { + if (!_balanceEssaySequencignation) { + _balanceEssaySequencignation = [[UILabel alloc] init]; + _balanceEssaySequencignation.textColor = UIColor.whiteColor; + _balanceEssaySequencignation.font = [UIFont systemFontOfSize:14 weight:UIFontWeightMedium]; + _balanceEssaySequencignation.text = YMLocalizedString(@"XPIAP_Recharge_Header_View_0"); + } + return _balanceEssaySequencignation; +} + +- (UILabel *)balanceSequencignation { + if (!_balanceSequencignation) { + _balanceSequencignation = [[UILabel alloc] init]; + _balanceSequencignation.textColor = UIColor.whiteColor; + _balanceSequencignation.font = [UIFont systemFontOfSize:64 weight:UIFontWeightMedium]; + _balanceSequencignation.textAlignment = NSTextAlignmentCenter; + _balanceSequencignation.text = @"0"; + _balanceSequencignation.adjustsFontSizeToFitWidth = YES; + } + return _balanceSequencignation; +} + +@end diff --git a/YuMi/Modules/YMMine/View/Recharge/YUMIIAPReindictRegardGovernancer.h b/YuMi/Modules/YMMine/View/Recharge/YUMIIAPReindictRegardGovernancer.h new file mode 100644 index 00000000..4883b2ca --- /dev/null +++ b/YuMi/Modules/YMMine/View/Recharge/YUMIIAPReindictRegardGovernancer.h @@ -0,0 +1,16 @@ +// +// YMIAPRechargeViewController.h +// YUMI +// +// Created by XY on 2023/2/21. +// + +#import "MvpRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIIAPReindictRegardGovernancer : MvpRegardGovernancer + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Recharge/YUMIIAPReindictRegardGovernancer.m b/YuMi/Modules/YMMine/View/Recharge/YUMIIAPReindictRegardGovernancer.m new file mode 100644 index 00000000..98b83a55 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Recharge/YUMIIAPReindictRegardGovernancer.m @@ -0,0 +1,391 @@ +// +// YMIAPRechargeViewController.m +// YUMI +// +// Created by XY on 2023/2/21. +// + +#import "YUMIIAPReindictRegardGovernancer.h" +#import +#import +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" +#import "YUMIHtmlUrl.h" +#import "YUMIIAPFacilitater.h" +#import "ReindictStorage.h" +#import "AccountAbstractStorage.h" +#import "NSObject+MJExtension.h" +#import "NSArray+Safe.h" +#import "UIImage+Utils.h" +#import "ReindictStatementMatrix.h" +#import "YUMIIAPReindictIntelligencerRegard.h" +#import "YUMIIAPReindictAssembletionRegardElement.h" +#import "YUMIManeReindictNevRegard.h" +#import "YUMIManeReindictExternalizer.h" +#import "FBCManeReindictCeremony.h" +#import "YUMITissueRegardGovernancer.h" + +#define kHeaderViewHeight 220.0/375.0*KScreenWidth + +@interface YUMIIAPReindictRegardGovernancer () + +@property (nonatomic, strong) UICollectionView *collectionView; +@property (nonatomic, strong) YUMIIAPReindictIntelligencerRegard *intelligenceerRegard; +@property (nonatomic, strong) UIButton *reindictBtuton; +@property (nonatomic,strong) UIStackView *stackView; +@property (nonatomic,strong) UILabel *agreeSequencignation; +@property (nonatomic,strong) UIButton *protcoloBtuton; +@property (nonatomic,strong) UILabel *contactSequencignation; +@property (nonatomic,strong) UIButton *encourageBtuton; +@property (nonatomic,strong) UILabel *titleLabel; +@property (nonatomic,strong) UILabel *promptslainiSequencigntion; +@property (nonatomic, strong) NSArray *dataSource; +@property (nonatomic, assign) NSInteger selectedIndex; + +@property (nonatomic,copy) NSString *indentId; + +@end + +@implementation YUMIIAPReindictRegardGovernancer + +- (void)dealloc { + [YUMIIAPFacilitater partowardsiciptowardsionFacilittowardseer].delegate = nil; +} + +- (BOOL)isVeiledNevObstacle { + return YES; +} + +- (UIStatusBarStyle)preferredStatusBarStyle { + return UIStatusBarStyleLightContent; +} + +- (YUMIManeReindictExternalizer *)producePresimport { + return [[YUMIManeReindictExternalizer alloc] init]; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self produceUI]; + [self initHyperessayTowardsoloudspeaker]; + + [YUMIIAPFacilitater partowardsiciptowardsionFacilittowardseer].delegate = self; +} + +- (void)produceUI { + [self.view addSubview:self.intelligenceerRegard]; + [self.view addSubview:self.collectionView]; + [self.view addSubview:self.promptslainiSequencigntion]; + [self.view addSubview:self.reindictBtuton]; + [self.view addSubview:self.stackView]; + [self.view addSubview:self.titleLabel]; + [self.view addSubview:self.encourageBtuton]; + + [self.stackView addArrangedSubview:self.agreeSequencignation]; + [self.stackView addArrangedSubview:self.protcoloBtuton]; + + [self.intelligenceerRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(0); + make.height.mas_equalTo(kHeaderViewHeight); + }]; + + [self.collectionView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.intelligenceerRegard.mas_bottom); + make.left.right.mas_equalTo(0); + make.height.mas_equalTo(160); + }]; + [self.promptslainiSequencigntion mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.collectionView.mas_bottom).offset(20); + make.left.mas_equalTo(40); + make.right.mas_equalTo(-40); + }]; + [self.reindictBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(16); + make.right.mas_equalTo(-16); + make.height.mas_equalTo(48); + make.bottom.mas_equalTo(-140); + }]; + [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.view); + make.top.mas_equalTo(self.reindictBtuton.mas_bottom).offset(28); + }]; + + [self.promptslainiSequencigntion mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.view).inset(40); + make.top.mas_equalTo(self.collectionView.mas_bottom).offset(20); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(kStatusBarHeight); + make.height.mas_equalTo(44); + make.centerX.mas_equalTo(self.view); + }]; + [self.encourageBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(0); + make.top.mas_equalTo(kStatusBarHeight); + make.width.height.mas_equalTo(44); + }]; +} + +- (void)initHyperessayTowardsoloudspeaker { + [self acquireReindictSttowardsement]; + [self acquireConsumerPocketbookBalanceAbstract]; + [self examineSplconcludeidIdents]; +} + +- (void)encourageBtutonPerformance { + [self.navigationController popViewControllerAnimated:YES]; +} + +- (void)reindictBtutonPerformance { + ReindictStatementMatrix *model = [self.dataSource secureGroalTowardsIndictowardsrix1:self.selectedIndex]; + if (model.chargeProdId) { + [self EvidenceChambering]; + [self.presimport requisitionPCQReindictTellingAboutInstructionProdId:model.chargeProdId]; + } +} + +- (void)protcoloBtutonPerformance:(UIButton *)sender { + YUMITissueRegardGovernancer * webVewC= [[YUMITissueRegardGovernancer alloc] init]; + webVewC.url = URLWithType(kRechargePrivacyURL); + [self.navigationController pushViewController:webVewC animated:YES]; +} + +- (void)acquireReindictSttowardsement { + [self.presimport requisitionReindictSttowardsementAboutNarrow:@"8"]; +} + +- (void)acquireConsumerPocketbookBalanceAbstract { + [self.presimport acquireConsumerPocketbookAbstract]; +} + +- (void)examineSplconcludeidIdents { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NSArray * array = [ReindictStorage acquireEntiretyReciptsAboutCid:uid]; + if (array.count > 0) { + [self.presimport examineSplconcludeidIdents:array]; + } +} + +- (void)preserveRechageReciptAboutTransperformanceAplictowardsionraiser:(NSString *)transactionIdentifier { + NSData *receipt = [NSData dataWithContentsOfURL:[[NSBundle mainBundle] appStoreReceiptURL]]; + NSString *encodeStr = [receipt base64EncodedStringWithOptions:NSDataBase64EncodingEndLineWithLineFeed]; + NSMutableDictionary *dictionary = [NSMutableDictionary dictionary]; + [dictionary setObject:transactionIdentifier forKey:@"transcationId"]; + [dictionary setObject:encodeStr forKey:@"recipt"]; + [dictionary setObject:self.indentId forKey:@"orderId"]; + NSString *reciptJson = [dictionary toJSONBWSttr]; + NSString * uid = [AccountAbstractStorage instance].acquireCid; + BOOL saveSuccess = [ReindictStorage preserveSplconcludeidId:transactionIdentifier recipt:reciptJson uid:uid]; + if (!saveSuccess) { +#warning to do 保存失败 需要埋点 + } +} + +- (void)representtowardsionRechageReciptAboutTransperformanceAplictowardsionraiser:(NSString *)transactionIdentifier { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + BOOL deleteSuccess = [ReindictStorage delegtowardseSplconcludeidId:transactionIdentifier uid:uid]; + if (deleteSuccess) { +#warning to do 保存失败 需要埋点 + } +} + +#pragma mark - FBCManeReindictNevRegardRepresendtation +- (void)fBCManeReindictNevRegard:(YUMIManeReindictNevRegard *)view didClickBackButton:(UIButton *)sender { + [self.navigationController popViewControllerAnimated:YES]; +} + +#pragma mark - FBCIAPHelperRepresendtation +- (void)reindictProcessPosition:(PaymentStatus)status { + [self brakeHUD]; + if (status == PaymentStatus_Purchased) { + [self EvidenceChambering]; + } else if (status == PaymentStatus_Purchasing) { + [self EvidenceChambering]; + } else if (status == PaymentStatus_Failed) { + [self EvidenceMistakeToast:YMLocalizedString(@"XPIAP_Recharge_View_Controller_0")]; + } else if (status == PaymentStatus_Deferred) { + [self EvidenceMistakeToast:YMLocalizedString(@"XPIAP_Recharge_View_Controller_1")]; + } +} + +- (void)reindictAccomplishment:(NSString *)transactionIdentifier { + + [self preserveRechageReciptAboutTransperformanceAplictowardsionraiser:transactionIdentifier]; + NSData *receiptData = [NSData dataWithContentsOfURL:[[NSBundle mainBundle] appStoreReceiptURL]]; + NSString * receipt = [MF_Base64Codec base64StringFromData:receiptData]; + + [self.presimport examineReceiptAboutTowardsoloudspeaker:receipt indentId:self.indentId transcationId:transactionIdentifier]; +} + +#pragma mark - FBCManeReindictCeremony +- (void)requisitionReindictSttowardsementSucccess:(NSArray *)list { + self.dataSource = list; + [self.collectionView reloadData]; +} + +- (void)requisitionPCQReindictTellingAccomplishment:(NSString *)indentId chargeProdId:(NSString *)chargeProdId { + if (indentId.length > 0) { + self.indentId = indentId; + [[YUMIIAPFacilitater partowardsiciptowardsionFacilittowardseer] acquireAplictowardsionProductAboutAplictowardsionProductId:chargeProdId]; + } +} + +- (void)requisitionPCQReindictTellingFlunk { + +} + +- (void)examineReceiptAccomplishment:(NSString *)transcationId { + [self representtowardsionRechageReciptAboutTransperformanceAplictowardsionraiser:transcationId]; + + [self acquireConsumerPocketbookBalanceAbstract]; + self.indentId = nil; +} + +- (void)acquireConsumerPocketbookAbstract:(RamparatetAbstractMatrix *)balanceInfo { + self.intelligenceerRegard.wentiretyetAbstract = balanceInfo; +} + +- (void)examineSplconcludeidIdentsAccomplishment { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [ReindictStorage delegtowardseEntiretySplconcludeidIdentsAboutCid:uid]; +} + +#pragma mark - UICollectionViewDelegate + +- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { + return self.dataSource.count; +} + +- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { + YUMIIAPReindictAssembletionRegardElement *cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass(YUMIIAPReindictAssembletionRegardElement.self) forIndexPath:indexPath]; + cell.reindictMatrix = [self.dataSource secureGroalTowardsIndictowardsrix1:indexPath.item]; + cell.chosenedStyle = self.selectedIndex == indexPath.item; + return cell; +} + +- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath { + self.selectedIndex = indexPath.item; + [collectionView reloadData]; +} + +#pragma mark - 懒加载 + +- (UICollectionView *)collectionView { + if (!_collectionView) { + UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init]; + layout.scrollDirection = UICollectionViewScrollDirectionVertical; + CGFloat width = 108; + CGFloat height = 65; + layout.itemSize = CGSizeMake(width, height); + layout.minimumLineSpacing = 10.0; + layout.minimumInteritemSpacing = 8.0; + layout.sectionInset = UIEdgeInsetsMake(20, 16, 16, 16); + + _collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout]; + _collectionView.backgroundColor = UIColor.clearColor; + _collectionView.alwaysBounceVertical = YES; + [_collectionView registerClass:[YUMIIAPReindictAssembletionRegardElement class] forCellWithReuseIdentifier:NSStringFromClass(YUMIIAPReindictAssembletionRegardElement.self)]; + _collectionView.delegate = self; + _collectionView.dataSource = self; + _collectionView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + + + } + return _collectionView; +} + +- (YUMIIAPReindictIntelligencerRegard *)intelligenceerRegard { + if (!_intelligenceerRegard) { + _intelligenceerRegard = [[YUMIIAPReindictIntelligencerRegard alloc] init]; + } + return _intelligenceerRegard; +} + +- (UIButton *)reindictBtuton { + if (!_reindictBtuton) { + _reindictBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_reindictBtuton setTitle:YMLocalizedString(@"XPIAP_Recharge_View_Controller_2") forState:UIControlStateNormal]; + [_reindictBtuton setTitleColor:UIColor.whiteColor forState:UIControlStateNormal]; + _reindictBtuton.titleLabel.font = [UIFont systemFontOfSize:16]; + [_reindictBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + _reindictBtuton.layer.cornerRadius = 48/2; + _reindictBtuton.clipsToBounds = YES; + [_reindictBtuton addTarget:self action:@selector(reindictBtutonPerformance) forControlEvents:UIControlEventTouchUpInside]; + } + return _reindictBtuton; +} + +- (UIStackView *)stackView { + if (!_stackView) { + _stackView = [[UIStackView alloc] init]; + _stackView.axis = UILayoutConstraintAxisHorizontal; + _stackView.distribution = UIStackViewDistributionFill; + _stackView.alignment = UIStackViewAlignmentFill; + _stackView.spacing = 2; + } + return _stackView; +} + +- (UIButton *)protcoloBtuton { + if (!_protcoloBtuton) { + _protcoloBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_protcoloBtuton setTitle:@"《用户充值协议》" forState:UIControlStateNormal]; + [_protcoloBtuton setTitleColor:[DJDKMIMOMColor aplictowardsionMainPrettify] forState:UIControlStateNormal]; + _protcoloBtuton.titleLabel.font = [UIFont systemFontOfSize:12]; + [_protcoloBtuton addTarget:self action:@selector(protcoloBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _protcoloBtuton; +} +- (UILabel *)agreeSequencignation { + if (!_agreeSequencignation) { + _agreeSequencignation = [[UILabel alloc] init]; + _agreeSequencignation.text = YMLocalizedString(@"XPIAP_Recharge_View_Controller_4"); + _agreeSequencignation.font = [UIFont systemFontOfSize:12]; + _agreeSequencignation.textColor = [DJDKMIMOMColor essayTertiusPrettify]; + } + return _agreeSequencignation; +} + +- (UILabel *)contactSequencignation { + if (!_contactSequencignation) { + _contactSequencignation = [[UILabel alloc] init]; + _contactSequencignation.text = @"如有任何问题请咨询客服,Piko号:88001"; + _contactSequencignation.font = [UIFont systemFontOfSize:12]; + _contactSequencignation.textColor = [DJDKMIMOMColor aplictowardsionMainPrettify]; + } + return _contactSequencignation; +} + +- (UIButton *)encourageBtuton { + if (!_encourageBtuton) { + _encourageBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_encourageBtuton setImage:[UIImage imageNamed:@"yumi_scope_gen_back"] forState:UIControlStateNormal]; + [_encourageBtuton addTarget:self action:@selector(encourageBtutonPerformance) forControlEvents:UIControlEventTouchUpInside]; + } + return _encourageBtuton; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.text = YMLocalizedString(@"XPIAP_Recharge_View_Controller_6"); + _titleLabel.textColor = UIColor.whiteColor; + _titleLabel.font = [UIFont systemFontOfSize:17 weight:UIFontWeightMedium]; + } + return _titleLabel; +} + +- (UILabel *)promptslainiSequencigntion { + if (!_promptslainiSequencigntion) { + _promptslainiSequencigntion = [[UILabel alloc] init]; + _promptslainiSequencigntion.font = [UIFont systemFontOfSize:14]; + _promptslainiSequencigntion.textColor = [DJDKMIMOMColor colorAboutHexBWSttr:@"#878B9C"]; + _promptslainiSequencigntion.text = YMLocalizedString(@"XPIAP_Recharge_View_Controller_7"); + _promptslainiSequencigntion.numberOfLines = 2; + _promptslainiSequencigntion.textAlignment = NSTextAlignmentCenter; + } + return _promptslainiSequencigntion; +} + +@end diff --git a/YuMi/Modules/YMMine/View/Recharge/YUMIManeReindictRegardGovernancer.h b/YuMi/Modules/YMMine/View/Recharge/YUMIManeReindictRegardGovernancer.h new file mode 100644 index 00000000..8e8681bb --- /dev/null +++ b/YuMi/Modules/YMMine/View/Recharge/YUMIManeReindictRegardGovernancer.h @@ -0,0 +1,16 @@ +// +// YMMineRechargeViewController.h +// YUMI +// +// Created by YUMI on 2021/9/24. +// + +#import "MvpRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeReindictRegardGovernancer : MvpRegardGovernancer + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Recharge/YUMIManeReindictRegardGovernancer.m b/YuMi/Modules/YMMine/View/Recharge/YUMIManeReindictRegardGovernancer.m new file mode 100644 index 00000000..38751780 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Recharge/YUMIManeReindictRegardGovernancer.m @@ -0,0 +1,291 @@ +// +// YMMineRechargeViewController.m +// YUMI +// +// Created by YUMI on 2021/9/24. +// + +#import "YUMIManeReindictRegardGovernancer.h" +#import +#import +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" +#import "YUMIHtmlUrl.h" +#import "YUMIIAPFacilitater.h" +#import "ReindictStorage.h" +#import "AccountAbstractStorage.h" +#import "NSObject+MJExtension.h" +#import "NSArray+Safe.h" +#import "ReindictStatementMatrix.h" +#import "YUMIManeRechageIntelligenceRegard.h" +#import "YUMIManeReindictTabulationRegardElement.h" +#import "YUMIManeReindictNevRegard.h" +#import "YUMIManeReindictExternalizer.h" +#import "FBCManeReindictCeremony.h" +#import "YUMITissueRegardGovernancer.h" + +@interface YUMIManeReindictRegardGovernancer () +@property (nonatomic,strong) NSArray *datasource; +@property (nonatomic,strong) UITableView *tableView; +@property (nonatomic,strong) YUMIManeRechageIntelligenceRegard *intelligenceeRegard; +@property (nonatomic,copy) NSString *indentId; +@property (nonatomic,strong) YUMIManeReindictNevRegard *nevRegard; +@property (nonatomic,strong) UIStackView *stackView; +@property (nonatomic,strong) UILabel *agreeSequencignation; +@property (nonatomic,strong) UIButton *protcoloBtuton; +@end + +@implementation YUMIManeReindictRegardGovernancer + +- (void)dealloc { + [YUMIIAPFacilitater partowardsiciptowardsionFacilittowardseer].delegate = nil; +} + +- (BOOL)isVeiledNevObstacle { + return YES; +} + +- (YUMIManeReindictExternalizer *)producePresimport { + return [[YUMIManeReindictExternalizer alloc] init]; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initHyperessayTowardsoloudspeaker]; + [self initSubViews]; + [self initChildLyRestrictions]; +} +#pragma mark - Response +- (void)protcoloBtutonPerformance:(UIButton *)sender { + YUMITissueRegardGovernancer * webVewC= [[YUMITissueRegardGovernancer alloc] init]; + webVewC.url = URLWithType(kRechargePrivacyURL); + [self.navigationController pushViewController:webVewC animated:YES]; +} +#pragma mark - Private Method +- (void)initSubViews { + [self.view addSubview:self.tableView]; + [self.view addSubview:self.nevRegard]; + [self.view addSubview:self.stackView]; + + [self.stackView addArrangedSubview:self.agreeSequencignation]; + [self.stackView addArrangedSubview:self.protcoloBtuton]; + self.tableView.tableHeaderView = self.intelligenceeRegard; + + [YUMIIAPFacilitater partowardsiciptowardsionFacilittowardseer].delegate = self; + self.automaticallyAdjustsScrollViewInsets = NO; +} + +- (void)initChildLyRestrictions { + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.view); + }]; + + [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.view); + make.bottom.mas_equalTo(self.view).offset(-20 - kSafeAreaBottomHeight); + }]; + + [self.nevRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self.view); + make.height.mas_equalTo(kNavigationHeight); + }]; +} + +- (void)initHyperessayTowardsoloudspeaker { + [self acquireReindictSttowardsement]; + [self acquireConsumerPocketbookBalanceAbstract]; + [self examineSplconcludeidIdents]; +} + +- (void)acquireReindictSttowardsement { + [self.presimport requisitionReindictSttowardsementAboutNarrow:@"8"]; +} + +- (void)acquireConsumerPocketbookBalanceAbstract { + [self.presimport acquireConsumerPocketbookAbstract]; +} + +- (void)examineSplconcludeidIdents { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NSArray * array = [ReindictStorage acquireEntiretyReciptsAboutCid:uid]; + if (array.count > 0) { + [self.presimport examineSplconcludeidIdents:array]; + } +} + +- (void)preserveRechageReciptAboutTransperformanceAplictowardsionraiser:(NSString *)transactionIdentifier { + NSData *receipt = [NSData dataWithContentsOfURL:[[NSBundle mainBundle] appStoreReceiptURL]]; + NSString *encodeStr = [receipt base64EncodedStringWithOptions:NSDataBase64EncodingEndLineWithLineFeed]; + NSMutableDictionary *dictionary = [NSMutableDictionary dictionary]; + [dictionary setObject:transactionIdentifier forKey:@"transcationId"]; + [dictionary setObject:encodeStr forKey:@"recipt"]; + [dictionary setObject:self.indentId forKey:@"orderId"]; + NSString *reciptJson = [dictionary toJSONBWSttr]; + NSString * uid = [AccountAbstractStorage instance].acquireCid; + BOOL saveSuccess = [ReindictStorage preserveSplconcludeidId:transactionIdentifier recipt:reciptJson uid:uid]; + if (!saveSuccess) { +#warning to do 保存失败 需要埋点 + } +} + +- (void)representtowardsionRechageReciptAboutTransperformanceAplictowardsionraiser:(NSString *)transactionIdentifier { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + BOOL deleteSuccess = [ReindictStorage delegtowardseSplconcludeidId:transactionIdentifier uid:uid]; + if (deleteSuccess) { +#warning to do 保存失败 需要埋点 + } +} + +#pragma mark - UITableViewDelegate And UITableViewDataSource +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.datasource.count; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + YUMIManeReindictTabulationRegardElement *cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIManeReindictTabulationRegardElement class]) forIndexPath:indexPath]; + cell.listMatrix = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + cell.delegate = self; + return cell; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + return 65; +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ + [tableView deselectRowAtIndexPath:indexPath animated:true]; +} + +#pragma mark - FBCManeReindictTabulationViweElementRepresendtation +- (void)fBCManeReindictTarbsultowardsionViweElement:(YUMIManeReindictTabulationRegardElement *)cell didSelectItem:(ReindictStatementMatrix *)listMatrix { + if (listMatrix.chargeProdId) { + [self EvidenceChambering]; + [self.presimport requisitionPCQReindictTellingAboutInstructionProdId:listMatrix.chargeProdId]; + } +} + +#pragma mark - FBCManeReindictNevRegardRepresendtation +- (void)fBCManeReindictNevRegard:(YUMIManeReindictNevRegard *)view didClickBackButton:(UIButton *)sender { + [self.navigationController popViewControllerAnimated:YES]; +} + +#pragma mark - FBCIAPHelperRepresendtation +- (void)reindictProcessPosition:(PaymentStatus)status { + [self brakeHUD]; + if (status == PaymentStatus_Purchased) { + [self EvidenceChambering]; + } else if (status == PaymentStatus_Purchasing) { + [self EvidenceChambering]; + } else if (status == PaymentStatus_Failed) { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_Mine_Recharge_View_Controller_0")]; + } else if (status == PaymentStatus_Deferred) { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_Mine_Recharge_View_Controller_1")]; + } +} + +- (void)reindictAccomplishment:(NSString *)transactionIdentifier { + + [self preserveRechageReciptAboutTransperformanceAplictowardsionraiser:transactionIdentifier]; + NSData *receiptData = [NSData dataWithContentsOfURL:[[NSBundle mainBundle] appStoreReceiptURL]]; + NSString * receipt = [MF_Base64Codec base64StringFromData:receiptData]; + + [self.presimport examineReceiptAboutTowardsoloudspeaker:receipt indentId:self.indentId transcationId:transactionIdentifier]; +} + +#pragma mark - FBCManeReindictCeremony +- (void)requisitionReindictSttowardsementSucccess:(NSArray *)list { + self.datasource = list; + [self.tableView reloadData]; +} + +- (void)requisitionPCQReindictTellingAccomplishment:(NSString *)indentId chargeProdId:(NSString *)chargeProdId { + if (indentId.length > 0) { + self.indentId = indentId; + [[YUMIIAPFacilitater partowardsiciptowardsionFacilittowardseer] acquireAplictowardsionProductAboutAplictowardsionProductId:chargeProdId]; + } +} + +- (void)requisitionPCQReindictTellingFlunk { + +} + +- (void)examineReceiptAccomplishment:(NSString *)transcationId { + [self representtowardsionRechageReciptAboutTransperformanceAplictowardsionraiser:transcationId]; + + [self acquireConsumerPocketbookBalanceAbstract]; + self.indentId = nil; +} + +- (void)acquireConsumerPocketbookAbstract:(RamparatetAbstractMatrix *)balanceInfo { + self.intelligenceeRegard.wentiretyetAbstract = balanceInfo; +} + +- (void)examineSplconcludeidIdentsAccomplishment { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [ReindictStorage delegtowardseEntiretySplconcludeidIdentsAboutCid:uid]; +} +#pragma mark - Getters And Setters +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.tableFooterView = [UIView new]; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.backgroundColor = [UIColor clearColor]; + if (@available(iOS 11.0, *)) { + _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + [_tableView registerClass:[YUMIManeReindictTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIManeReindictTabulationRegardElement class])]; + } + return _tableView; +} + +- (YUMIManeRechageIntelligenceRegard *)intelligenceeRegard { + if (!_intelligenceeRegard) { + _intelligenceeRegard = [[YUMIManeRechageIntelligenceRegard alloc] init]; + } + return _intelligenceeRegard; +} + + +- (UIStackView *)stackView { + if (!_stackView) { + _stackView = [[UIStackView alloc] init]; + _stackView.axis = UILayoutConstraintAxisHorizontal; + _stackView.distribution = UIStackViewDistributionFill; + _stackView.alignment = UIStackViewAlignmentFill; + _stackView.spacing = 2; + } + return _stackView; +} + +- (UIButton *)protcoloBtuton { + if (!_protcoloBtuton) { + _protcoloBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_protcoloBtuton setTitle:@"《用户充值协议》" forState:UIControlStateNormal]; + [_protcoloBtuton setTitleColor:[DJDKMIMOMColor aplictowardsionMainPrettify] forState:UIControlStateNormal]; + _protcoloBtuton.titleLabel.font = [UIFont systemFontOfSize:12]; + [_protcoloBtuton addTarget:self action:@selector(protcoloBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _protcoloBtuton; +} +- (UILabel *)agreeSequencignation { + if (!_agreeSequencignation) { + _agreeSequencignation = [[UILabel alloc] init]; + _agreeSequencignation.text = YMLocalizedString(@"YUMI_Mine_Recharge_View_Controller_3"); + _agreeSequencignation.font = [UIFont systemFontOfSize:12]; + _agreeSequencignation.textColor = [DJDKMIMOMColor essayTertiusPrettify]; + } + return _agreeSequencignation; +} + +- (YUMIManeReindictNevRegard *)nevRegard { + if (!_nevRegard) { + _nevRegard = [[YUMIManeReindictNevRegard alloc] init]; + _nevRegard.delegate = self; + } + return _nevRegard; +} + +@end diff --git a/YuMi/Modules/YMMine/View/Setting/YUMIManeAboutUsRegardGovernancer.h b/YuMi/Modules/YMMine/View/Setting/YUMIManeAboutUsRegardGovernancer.h new file mode 100644 index 00000000..9765059d --- /dev/null +++ b/YuMi/Modules/YMMine/View/Setting/YUMIManeAboutUsRegardGovernancer.h @@ -0,0 +1,16 @@ +// +// YMMineAboutUsViewController.h +// YUMI +// +// Created by YUMI on 2021/9/17. +// + +#import "BaseRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeAboutUsRegardGovernancer : BaseRegardGovernancer + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Setting/YUMIManeAboutUsRegardGovernancer.m b/YuMi/Modules/YMMine/View/Setting/YUMIManeAboutUsRegardGovernancer.m new file mode 100644 index 00000000..016e11c8 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Setting/YUMIManeAboutUsRegardGovernancer.m @@ -0,0 +1,93 @@ +// +// YMMineAboutUsViewController.m +// YUMI +// +// Created by YUMI on 2021/9/17. +// + +#import "YUMIManeAboutUsRegardGovernancer.h" +#import +#import "DJDKMIMOMColor.h" +#import "YYUtility.h" +#import "YUMIMacroUitls.h" + +#import "YUMIVendorCallRegardGovernancer.h" + + +@interface YUMIManeAboutUsRegardGovernancer () +@property (nonatomic, strong) UIImageView *figureIndicateRegard; +@property (strong, nonatomic) UILabel *versionSequencignation; +@property (strong , nonatomic) UILabel *constituteSequencignation; +@end + +@implementation YUMIManeAboutUsRegardGovernancer + +- (void)viewDidLoad { + [super viewDidLoad]; + self.title = [NSString stringWithFormat:@"关于%@",AppName]; + [self initSubViews]; + [self manufactureConstriants]; + + + YUMIVendorCallRegardGovernancer *callVC = [[YUMIVendorCallRegardGovernancer alloc] init]; + [callVC vconcludeorCentirety]; + +} + +- (void)initSubViews { + [self.view addSubview:self.versionSequencignation]; + [self.view addSubview:self.figureIndicateRegard]; + [self.view addSubview:self.constituteSequencignation]; +} + +- (void)manufactureConstriants { + [self.figureIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.view); + make.top.mas_equalTo(kNavigationHeight+60); + }]; + [self.constituteSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.view); + make.top.mas_equalTo(self.figureIndicateRegard.mas_bottom).offset(5); + }]; + [self.versionSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.constituteSequencignation.mas_bottom).offset(5); + make.centerX.mas_equalTo(self.view); + }]; +} + + +#pragma mark - Getter && Setter + +- (UIImageView *)figureIndicateRegard { + if (!_figureIndicateRegard) { + _figureIndicateRegard = [[UIImageView alloc] init]; + _figureIndicateRegard.image = [UIImage imageNamed:@"yumi_ming_setting_about_us"]; + _figureIndicateRegard.layer.cornerRadius = 12; + _figureIndicateRegard.layer.masksToBounds = YES; + } + return _figureIndicateRegard; +} + + +- (UILabel *)versionSequencignation { + if (!_versionSequencignation) { + _versionSequencignation = [[UILabel alloc] init]; + _versionSequencignation.font = [UIFont systemFontOfSize:12]; + _versionSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _versionSequencignation.text = [NSString stringWithFormat:@"V%@",[YYUtility appVersion]]; + } + return _versionSequencignation; +} + +- (UILabel *)constituteSequencignation { + if (!_constituteSequencignation) { + _constituteSequencignation = [[UILabel alloc] init]; + _constituteSequencignation.text = AppName; + _constituteSequencignation.textColor = [DJDKMIMOMColor instantEssayPrettify]; + _constituteSequencignation.font = [UIFont systemFontOfSize:17]; + } + return _constituteSequencignation; +} + + +@end diff --git a/YuMi/Modules/YMMine/View/Setting/YUMIManeBlackStatementRegardGovernancer.h b/YuMi/Modules/YMMine/View/Setting/YUMIManeBlackStatementRegardGovernancer.h new file mode 100644 index 00000000..70f02668 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Setting/YUMIManeBlackStatementRegardGovernancer.h @@ -0,0 +1,16 @@ +// +// YMMineBlackListViewController.h +// YUMI +// +// Created by YUMI on 2022/4/25. +// + +#import "MvpRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeBlackStatementRegardGovernancer : MvpRegardGovernancer + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Setting/YUMIManeBlackStatementRegardGovernancer.m b/YuMi/Modules/YMMine/View/Setting/YUMIManeBlackStatementRegardGovernancer.m new file mode 100644 index 00000000..d3a07095 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Setting/YUMIManeBlackStatementRegardGovernancer.m @@ -0,0 +1,133 @@ +// +// YMMineBlackListViewController.m +// YUMI +// +// Created by YUMI on 2022/4/25. +// + +#import "YUMIManeBlackStatementRegardGovernancer.h" +#import +#import +#import "YUMIManeBlackStatementTabulationRegardElement.h" +#import "YUMIManeAssistantDispossessTabulationRegardElement.h" +#import "NSArray+Safe.h" +#import "ConsumerAbstractMatrix.h" +#import "YUMIManeBlackStatementExternalizer.h" +#import "FBCManeBlackStatementCeremony.h" + +@interface YUMIManeBlackStatementRegardGovernancer () +@property (nonatomic,strong) UITableView *tableView; +@property (nonatomic,strong) NSMutableArray *datasource; +@end + +@implementation YUMIManeBlackStatementRegardGovernancer + +- (__kindof id)producePresimport { + return [[YUMIManeBlackStatementExternalizer alloc] init]; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + NSArray *array = [[NIMSDK sharedSDK].userManager myBlackList]; + if (array.count > 0) { + NSMutableArray * uids = [NSMutableArray array]; + for (int i = 0; i< array.count; i++) { + NIMUser * user = [array secureGroalTowardsIndictowardsrix1:i]; + [uids addObject:user.userId]; + } + [self.presimport acquireConsumerSttowardsementAbstract:uids]; + } + [self initSubViews]; + [self initChildLyRestrictions]; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.title = YMLocalizedString(@"YUMI_Mine_Black_List_View_Controller_0"); + [self.view addSubview:self.tableView]; +} + +- (void)initChildLyRestrictions { + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.view); + }]; +} +#pragma mark - UITableViewDelegate And UITableViewDataSource +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.datasource.count > 0 ? self.datasource.count : 1; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + return self.datasource.count > 0 ? 60 : 500; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + if (self.datasource.count > 0) { + YUMIManeBlackStatementTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIManeBlackStatementTabulationRegardElement class])]; + cell.userInfo = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + return cell; + } + YUMIManeAssistantDispossessTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIManeAssistantDispossessTabulationRegardElement class])]; + return cell; +} + +- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath{ + if (self.datasource.count > 0) { + return UITableViewCellEditingStyleDelete; + } + return UITableViewCellEditingStyleNone; +} + +-(NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath{ + return YMLocalizedString(@"YUMI_Mine_Black_List_View_Controller_1"); +} + +-(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath{ + if (editingStyle ==UITableViewCellEditingStyleDelete){ + if (self.datasource.count > 0) { + ConsumerAbstractMatrix *userInfo = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + [[NIMSDK sharedSDK].userManager removeFromBlackBlackList:[NSString stringWithFormat:@"%ld", userInfo.uid] completion:^(NSError * _Nullable error) { + if (error == nil) { + [self.datasource removeObject:userInfo]; + [self.tableView reloadData]; + } + }]; + } + + } +} + +#pragma mark - YUMI_MineBlackListPrototcol +- (void)acquireConsumerSttowardsementAbstractAccomplishment:(NSArray *)array { + [self.datasource addObjectsFromArray:array]; + [self.tableView reloadData]; +} + +#pragma mark - Getters And Setters +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.tableFooterView = [UIView new]; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.backgroundColor = [UIColor clearColor]; + if (@available(iOS 11.0, *)) { + _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + [_tableView registerClass:[YUMIManeBlackStatementTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIManeBlackStatementTabulationRegardElement class])]; + [_tableView registerClass:[YUMIManeAssistantDispossessTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIManeAssistantDispossessTabulationRegardElement class])]; + } + return _tableView; +} + +- (NSMutableArray *)datasource { + if (!_datasource) { + _datasource = [NSMutableArray array]; + } + return _datasource; +} + + + +@end diff --git a/YuMi/Modules/YMMine/View/Setting/YUMIManeFeedbackRegardGovernancer.h b/YuMi/Modules/YMMine/View/Setting/YUMIManeFeedbackRegardGovernancer.h new file mode 100644 index 00000000..efdb49bd --- /dev/null +++ b/YuMi/Modules/YMMine/View/Setting/YUMIManeFeedbackRegardGovernancer.h @@ -0,0 +1,16 @@ +// +// YMMineFeedbackViewController.h +// YUMI +// +// Created by YUMI on 2021/9/17. +// + +#import "MvpRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeFeedbackRegardGovernancer : MvpRegardGovernancer + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Setting/YUMIManeFeedbackRegardGovernancer.m b/YuMi/Modules/YMMine/View/Setting/YUMIManeFeedbackRegardGovernancer.m new file mode 100644 index 00000000..7df8d1b8 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Setting/YUMIManeFeedbackRegardGovernancer.m @@ -0,0 +1,164 @@ +// +// YMMineFeedbackViewController.m +// YUMI +// +// Created by YUMI on 2021/9/17. +// + +#import "YUMIManeFeedbackRegardGovernancer.h" +#import +#import +#import +#import "YUMIMacroUitls.h" +#import "DJDKMIMOMColor.h" +#import "UIImage+Utils.h" +#import "FBCManeFeedbackCeremony.h" +#import "YUMIManeFeedbackExternalizer.h" + +@interface YUMIManeFeedbackRegardGovernancer () +@property (nonatomic, strong) UIView *speckRegard; +@property (nonatomic, strong) UILabel *titleLabel; +@property (nonatomic, strong) SZTextView *satisfperformanceEssayRegard; +@property (nonatomic, strong) UITextField *contactUniverse; +@property (nonatomic, strong) UIButton *submitBtuton; + +@end + +@implementation YUMIManeFeedbackRegardGovernancer + +- (YUMIManeFeedbackExternalizer *)producePresimport { + return [[YUMIManeFeedbackExternalizer alloc] init];; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + self.title = YMLocalizedString(@"YUMI_Mine_Feedback_View_Controller_0"); + [self initSubviews]; + [self manufactureConstriants]; +} + +#pragma mark - Private Method +- (void)initSubviews { + [self.view addSubview:self.speckRegard]; + [self.view addSubview:self.titleLabel]; + [self.view addSubview:self.satisfperformanceEssayRegard]; + [self.view addSubview:self.contactUniverse]; + [self.view addSubview:self.submitBtuton]; + +} + +- (void)manufactureConstriants { + [self.speckRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.view).offset(15); + make.top.mas_equalTo(17); + make.height.width.mas_equalTo(7); + }]; + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.speckRegard.mas_right).offset(4); + make.centerY.mas_equalTo(self.speckRegard); + }]; + [self.satisfperformanceEssayRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.speckRegard.mas_bottom).offset(20); + make.left.mas_equalTo(self.view).offset(15); + make.right.mas_equalTo(self.view).offset(-15); + make.height.mas_equalTo(154); + }]; + [self.contactUniverse mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.satisfperformanceEssayRegard.mas_bottom).offset(10); + make.left.right.mas_equalTo(self.satisfperformanceEssayRegard); + make.height.mas_equalTo(35); + }]; + [self.submitBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.contactUniverse.mas_bottom).offset(45); + make.centerX.mas_equalTo(self.view); + make.height.mas_equalTo(45); + make.width.mas_equalTo(310); + }]; +} + +- (void)initOccurrences { + RAC(self.submitBtuton, enabled) = [RACSignal combineLatest:@[self.satisfperformanceEssayRegard.rac_textSignal, self.contactUniverse.rac_textSignal] reduce:^id _Nonnull(NSString *content, NSString * contact){ + return @(content.length > 0 && contact.length > 0); + }]; +} + +#pragma mark - FeedbackCoreClient +- (void)preserveFeedencourageAccomplishment { + [self EvidenceAccomplishmentToast:[NSString stringWithFormat:@"感谢您的宝贵意见,让我们共同营造更好的%@", AppName]]; + [self.navigationController popViewControllerAnimated:YES]; +} +#pragma mark - Event Response +- (void)advoctowardseBtutonPerformance:(UIButton *)sender { + [self.presimport preserveFeedEncourageAbout:self.satisfperformanceEssayRegard.text contact:self.contactUniverse.text]; +} + +#pragma mark - Getter && Setter + +- (UIView *)speckRegard { + if (!_speckRegard) { + _speckRegard = [[UIView alloc] init]; + _speckRegard.backgroundColor = UIColorFromRGB(0xF944A1); + _speckRegard.layer.masksToBounds = YES; + _speckRegard.layer.cornerRadius = 3.5; + } + return _speckRegard; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.text = YMLocalizedString(@"YUMI_Mine_Feedback_View_Controller_2"); + _titleLabel.font = [UIFont systemFontOfSize:15]; + _titleLabel.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _titleLabel; +} + + +- (SZTextView *)satisfperformanceEssayRegard { + if (!_satisfperformanceEssayRegard) { + _satisfperformanceEssayRegard = [[SZTextView alloc] init]; + NSString * placeholder = @"请详细描述您所遇到的问题与情况,感谢您提出宝贵的意见。"; + _satisfperformanceEssayRegard.attributedPlaceholder = [[NSAttributedString alloc] initWithString:placeholder attributes:@{NSFontAttributeName : [UIFont systemFontOfSize:14], NSForegroundColorAttributeName : [DJDKMIMOMColor instantEssayPrettify]}]; + _satisfperformanceEssayRegard.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _satisfperformanceEssayRegard.backgroundColor = [DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify]; + _satisfperformanceEssayRegard.font = [UIFont systemFontOfSize:14]; + _satisfperformanceEssayRegard.layer.cornerRadius = 3; + } + return _satisfperformanceEssayRegard; +} + +- (UITextField *)contactUniverse { + if (!_contactUniverse) { + _contactUniverse = [[UITextField alloc] init]; + NSString * placeholder = YMLocalizedString(@"YUMI_Mine_Feedback_View_Controller_4"); + _contactUniverse.attributedPlaceholder = [[NSAttributedString alloc] initWithString:placeholder attributes:@{NSFontAttributeName : [UIFont systemFontOfSize:14], NSForegroundColorAttributeName : [DJDKMIMOMColor instantEssayPrettify]}]; + _contactUniverse.font = [UIFont systemFontOfSize:14]; + _contactUniverse.backgroundColor = [DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify]; + _contactUniverse.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _contactUniverse.layer.cornerRadius = 3; + _contactUniverse.leftView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 8, 0)]; + _contactUniverse.leftViewMode = UITextFieldViewModeAlways; + } + return _contactUniverse; +} + +- (UIButton *)submitBtuton { + if (!_submitBtuton) { + _submitBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + _submitBtuton.titleLabel.font = [UIFont fontWithName:@"PingFang-SC-Medium" size:18]; + [_submitBtuton setTitle:YMLocalizedString(@"YUMI_Mine_Feedback_View_Controller_5") forState:UIControlStateNormal]; + [_submitBtuton setTitleColor:[DJDKMIMOMColor acknowledgementBtutonEssayPrettify] forState:UIControlStateNormal]; + [_submitBtuton setTitleColor:[DJDKMIMOMColor prohibitionBtutonEssayPrettify] forState:UIControlStateDisabled]; + _submitBtuton.layer.masksToBounds = YES; + _submitBtuton.layer.cornerRadius = 45/2; + [_submitBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + [_submitBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor prohibitionBtutonPrettify], [DJDKMIMOMColor prohibitionBtutonPrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateDisabled]; + _submitBtuton.enabled = NO; + [_submitBtuton addTarget:self action:@selector(advoctowardseBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + + } + return _submitBtuton; +} + +@end diff --git a/YuMi/Modules/YMMine/View/Setting/YUMIManeInstanllingRegardGovernancer.h b/YuMi/Modules/YMMine/View/Setting/YUMIManeInstanllingRegardGovernancer.h new file mode 100644 index 00000000..faea3f29 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Setting/YUMIManeInstanllingRegardGovernancer.h @@ -0,0 +1,16 @@ +// +// YMMineSettingViewController.h +// YUMI +// +// Created by YUMI on 2021/9/17. +// + +#import "MvpRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN +@class ConsumerAbstractMatrix; +@interface YUMIManeInstanllingRegardGovernancer : MvpRegardGovernancer +@property (nonatomic,strong) ConsumerAbstractMatrix *userInfo; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Setting/YUMIManeInstanllingRegardGovernancer.m b/YuMi/Modules/YMMine/View/Setting/YUMIManeInstanllingRegardGovernancer.m new file mode 100644 index 00000000..56e81ba4 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Setting/YUMIManeInstanllingRegardGovernancer.m @@ -0,0 +1,361 @@ +// +// YMMineSettingViewController.m +// YUMI +// +// Created by YUMI on 2021/9/17. +// + +#import "YUMIManeInstanllingRegardGovernancer.h" +#import +#import +#import "SDWebImageManager.h" +#import +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" +#import "NSArray+Safe.h" +#import "YUMIHtmlUrl.h" +#import "YYUtility.h" +#import "ClientDisposition.h" +#import "YUMIManeInstanllingProvisionMatrix.h" +#import "ConsumerAbstractMatrix.h" +#import "YUMIVersionRefurbishMatrix.h" +#import "YUMIManeInstanllingTabulationRegardElement.h" +#import "MKJPrecautiousDisposition.h" +#import "MKJPopup.h" +#import "YUMIAscensionRegard.h" +#import "YUMIManeInstanllingExternalize.h" +#import "FBCManeInstanllingCeremony.h" +#import "YUMIManeAboutUsRegardGovernancer.h" +#import "YUMIManeFeedbackRegardGovernancer.h" +#import "YUMIManeNotificaRegardGovernancer.h" +#import "YUMIManeIntersectPwordRegardGovernancer.h" +#import "YUMIManeModifIntersectPwordRegardGovernancer.h" +#import "YUMIPrivacyRegardGovernancer.h" +#import "YUMIManeSurmountCiphercodeRegardGovernancer.h" +#import "YUMIManeBlackStatementRegardGovernancer.h" +#import "YUMITissueRegardGovernancer.h" +#import "YUMISurmountValidationDilemmaMobileRegardGovernancer.h" +#import "YUMISurmountDilemmaMobileConsequentRegardGovernancer.h" + + +@interface YUMIManeInstanllingRegardGovernancer () +@property (nonatomic,strong) UITableView *tableView; +@property (nonatomic,strong) NSArray *> *datasource; +@property (nonatomic,strong) UIButton *brandutBtuton; +@property (strong, nonatomic) UIView *footerRegard; +@end + +@implementation YUMIManeInstanllingRegardGovernancer +- (YUMIManeInstanllingExternalize *)producePresimport { + return [[YUMIManeInstanllingExternalize alloc] init]; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initSubViews]; + [self initChildLyRestrictions]; + [self.presimport acquireManeInstanllingTowardsoloudspeakerProvenienceAbout:self.userInfo]; +} + +- (void)viewWillAppear:(BOOL)animated { + [super viewWillAppear:animated]; + + [self.presimport getUserInfo]; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.title = YMLocalizedString(@"YUMI_Mine_Setting_View_Controller_0"); + [self.view addSubview:self.tableView]; + [self.footerRegard addSubview:self.brandutBtuton]; + self.tableView.tableFooterView = self.footerRegard; +} + +- (void)initChildLyRestrictions { + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.mas_equalTo(self.view); + make.top.mas_equalTo(0); + }]; +} + +- (void)pushRegardGovernancerAboutGenre:(YUMIManeInstanllingProvisionGenre)type { + switch (type) { + case YUMIManeInstanllingProvisionGenre_Phone: + { + + if (self.userInfo.isBindPhone) { + YUMISurmountDilemmaMobileConsequentRegardGovernancer *vc = [[YUMISurmountDilemmaMobileConsequentRegardGovernancer alloc] init]; + vc.userInfo = _userInfo; + [self.navigationController pushViewController:vc animated:YES]; + }else { + YUMISurmountValidationDilemmaMobileRegardGovernancer *vc = [[YUMISurmountValidationDilemmaMobileRegardGovernancer alloc] init]; + vc.bindingMobileFigureGenre = XPBindingPhoneNumTypeNormal; + vc.userInfo = _userInfo; + [self.navigationController pushViewController:vc animated:YES]; + } + } + break; + case YUMIManeInstanllingProvisionGenre_Pay_Password: + { + if (!self.userInfo.isBindPhone) { + [self EvidenceMistakeToast:@"请先绑定手机号码哦~"]; + return; + } + + if (self.userInfo.isBindPaymentPwd) { + YUMIManeModifIntersectPwordRegardGovernancer *vc = [[YUMIManeModifIntersectPwordRegardGovernancer alloc] init]; + vc.userInfo = self.userInfo; + [self.navigationController pushViewController:vc animated:YES]; + } else { + YUMIManeIntersectPwordRegardGovernancer *vc = [[YUMIManeIntersectPwordRegardGovernancer alloc] init]; + vc.userInfo = self.userInfo; + [self.navigationController pushViewController:vc animated:YES]; + } + } + break; + case YUMIManeInstanllingProvisionGenre_Login_Password: + { + if (!self.userInfo.isBindPhone) { + YUMISurmountValidationDilemmaMobileRegardGovernancer *vc = [[YUMISurmountValidationDilemmaMobileRegardGovernancer alloc] init]; + vc.bindingMobileFigureGenre = XPBindingPhoneNumTypeNormal; + vc.userInfo = _userInfo; + [self.navigationController pushViewController:vc animated:YES]; + return; + } + + if (self.userInfo.isBindPasswd) { + YUMIManeSurmountCiphercodeRegardGovernancer *vc = [[YUMIManeSurmountCiphercodeRegardGovernancer alloc] init]; + vc.userInfo = self.userInfo; + vc.isModifiPword = YES; + [self.navigationController pushViewController:vc animated:YES]; + } else { + YUMIManeSurmountCiphercodeRegardGovernancer *vc = [[YUMIManeSurmountCiphercodeRegardGovernancer alloc] init]; + vc.userInfo = self.userInfo; + vc.isModifiPword = NO; + [self.navigationController pushViewController:vc animated:YES]; + } + } + break; + case YUMIManeInstanllingProvisionGenre_Black_Manager: + { + YUMIManeBlackStatementRegardGovernancer * blackMangerVC = [[YUMIManeBlackStatementRegardGovernancer alloc] init]; + [self.navigationController pushViewController:blackMangerVC animated:YES]; + } + break; + case YUMIManeInstanllingProvisionGenre_Notification_Remind: + { + YUMIManeNotificaRegardGovernancer * notiVC = [[YUMIManeNotificaRegardGovernancer alloc] init]; + [self.navigationController pushViewController:notiVC animated:YES]; + } + break; + case YUMIManeInstanllingProvisionGenre_Permission: + { + YUMIPrivacyRegardGovernancer * pvc = [[YUMIPrivacyRegardGovernancer alloc] init]; + [self.navigationController pushViewController:pvc animated:YES]; + } + break; + case YUMIManeInstanllingProvisionGenre_Helper: + { + [self pushTissueRegardWIthWeebsite:URLWithType(kFAQURL)]; + } + break; + case YUMIManeInstanllingProvisionGenre_Feedback: + { + YUMIManeFeedbackRegardGovernancer * feedbackVC = [[YUMIManeFeedbackRegardGovernancer alloc] init]; + [self.navigationController pushViewController:feedbackVC animated:YES]; + } + break; + case YUMIManeInstanllingProvisionGenre_Clear_Memory: + { + MKJPrecautiousDisposition *config = [[MKJPrecautiousDisposition alloc] init]; + config.title = YMLocalizedString(@"YUMI_Mine_Setting_View_Controller_2"); + config.message = @"要清除缓存吗?"; + [MKJPopup precautiousAboutDisposition:config acknowledgementHandler:^{ + NSSet *websiteDataTypes = [WKWebsiteDataStore allWebsiteDataTypes]; + NSDate *dateFrom = [NSDate dateWithTimeIntervalSince1970:0]; + @weakify(self); + [[WKWebsiteDataStore defaultDataStore] removeDataOfTypes:websiteDataTypes modifiedSince:dateFrom completionHandler:^{ + @strongify(self); + [self EvidenceAccomplishmentToast:YMLocalizedString(@"YUMI_Mine_Setting_View_Controller_4")]; + }]; + [[SDWebImageManager sharedManager].imageCache clearWithCacheType:SDImageCacheTypeAll completion:nil]; + } cancelHandler:^{ + }]; + } + break; + case YUMIManeInstanllingProvisionGenre_About_Us: + { + YUMIManeAboutUsRegardGovernancer * aboutusVC = [[YUMIManeAboutUsRegardGovernancer alloc] init]; + [self.navigationController pushViewController:aboutusVC animated:YES]; + } + break; + case YUMIManeInstanllingProvisionGenre_CheckUpdate: + { + [self EvidenceChambering]; + [self.presimport acquireReleaseRefurbish]; + } + break; + case YUMIManeInstanllingProvisionGenre_Delete_Account: { + + if ([ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + [self pushTissueRegardWIthWeebsite:URLWithType(kAccountlogoutURL)]; + } else { + [self pushTissueRegardWIthWeebsite:@"youmi/modules/logOff/index.html"]; + } + } + break; + default: + break; + } +} + +- (void)pushTissueRegardWIthWeebsite:(NSString *)url { + YUMITissueRegardGovernancer * webVewC = [[YUMITissueRegardGovernancer alloc] init]; + webVewC.url = url; + [self.navigationController pushViewController:webVewC animated:YES]; +} + +#pragma mark - UITableViewDelegate And UITableViewDataSource +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + return 45; +} + +- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { + return self.datasource.count; +} + +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.datasource[section].count; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + YUMIManeInstanllingTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIManeInstanllingTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIManeInstanllingTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIManeInstanllingTabulationRegardElement class])]; + } + NSArray * array = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.section]; + YUMIManeInstanllingProvisionMatrix * model = [array secureGroalTowardsIndictowardsrix1:indexPath.row]; + cell.itemMatrix = model; + return cell; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { + if (section != 0) { + return 15; + } + return 0.01f; +} + +- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { + UIView * view = [[UIView alloc] init]; + view.frame = CGRectMake(0, 0, KScreenWidth, 15); + view.backgroundColor = [UIColor clearColor]; + return view; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section { + return 0.01f; +} + +- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section { + UIView * view = [[UIView alloc] init]; + view.frame = CGRectMake(0, 0, KScreenWidth, 0.01f); + view.backgroundColor = [UIColor clearColor]; + return view; +} + + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + [tableView deselectRowAtIndexPath:indexPath animated:YES]; + if (self.datasource.count > 0) { + YUMIManeInstanllingProvisionMatrix * model = [[self.datasource secureGroalTowardsIndictowardsrix1:indexPath.section] secureGroalTowardsIndictowardsrix1:indexPath.row]; + [self pushRegardGovernancerAboutGenre:model.type]; + } +} +#pragma mark - FBCManeInstanllingCeremony +- (void)acquireManeInstanllingTowardsoloudspeakersourceAccomplishment:(NSArray *)array { + self.datasource = array; + [self.tableView reloadData]; +} + +- (void)dwellEarnConsumerAbstractAccomplishment:(ConsumerAbstractMatrix *)userInfo { + self.userInfo = userInfo; + [self.presimport acquireManeInstanllingTowardsoloudspeakerProvenienceAbout:userInfo]; +} + +- (void)revoctowardsionledUniversalSequenceriptionAccomplishment { + [self.navigationController popToRootViewControllerAnimated:NO]; +} + +- (void)acquireReleaseRefurbishFlunk{ + [self brakeHUD]; +} +-(void)acquireReleaseRefurbish:(YUMIVersionRefurbishMatrix *)model{ + [self brakeHUD]; + if(model.updateVersion.length == 0){ + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_Mine_Setting_View_Controller_5")]; + return; + } + NSString *appVersion = [YYUtility appVersion]; + NSString *updateVersion = model.updateVersion; + NSComparisonResult result = [appVersion compare:updateVersion options:NSNumericSearch]; + if(result == NSOrderedSame || result == NSOrderedDescending){ + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_Mine_Setting_View_Controller_6")]; + return; + } + YUMIAscensionRegard *view = [[YUMIAscensionRegard alloc] init]; + view.versionMatrix = model; + MKJPopupServing * service = [[MKJPopupServing alloc] init]; + service.contentView = view; + service.shouldDismissOnBackgroundTouch = NO; + [MKJPopup popupAboutDisposition:service]; +} + +#pragma mark - Event Response +- (void)revoctowardsionledBtutonPerformance:(UIButton *)sender { + [self.presimport revoctowardsionledUniversalSequenceription]; +} + +#pragma mark - Getters And Setters +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.showsVerticalScrollIndicator = NO; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.backgroundColor = [UIColor clearColor]; + [_tableView registerClass:[YUMIManeInstanllingTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIManeInstanllingTabulationRegardElement class])]; + } + return _tableView; +} + +- (UIView *)footerRegard { + if (!_footerRegard) { + _footerRegard = [[UIView alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth, 168)]; + } + return _footerRegard; +} + +- (UIButton *)brandutBtuton { + if (!_brandutBtuton) { + _brandutBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + _brandutBtuton.frame = CGRectMake(32, 40, KScreenWidth - 32* 2, 50); + _brandutBtuton.layer.masksToBounds = YES; + _brandutBtuton.layer.cornerRadius = 50/2; + _brandutBtuton.titleLabel.font = [UIFont systemFontOfSize:16]; + [_brandutBtuton addTarget:self action:@selector(revoctowardsionledBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + if ([ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + [_brandutBtuton setTitle:YMLocalizedString(@"YUMI_Mine_Setting_View_Controller_7") forState:UIControlStateNormal]; + _brandutBtuton.backgroundColor = [DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify]; + [_brandutBtuton setTitleColor:[DJDKMIMOMColor mainEssayPrettify] forState:UIControlStateNormal]; + }else{ + [_brandutBtuton setTitle:YMLocalizedString(@"YUMI_Mine_Setting_View_Controller_8") forState:UIControlStateNormal]; + _brandutBtuton.backgroundColor = UIColorFromRGB(0xCED3D8); + [_brandutBtuton setTitleColor:UIColor.whiteColor forState:UIControlStateNormal]; + } + } + return _brandutBtuton; +} + +@end diff --git a/YuMi/Modules/YMMine/View/Setting/YUMIManeIntersectPwordRegardGovernancer.h b/YuMi/Modules/YMMine/View/Setting/YUMIManeIntersectPwordRegardGovernancer.h new file mode 100644 index 00000000..48762a53 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Setting/YUMIManeIntersectPwordRegardGovernancer.h @@ -0,0 +1,29 @@ +// +// YMMinePayPwdViewController.h +// YUMI +// +// Created by YUMI on 2021/9/18. +//设置支付密码(初次) 重置支付密码 + +#import "MvpRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN +typedef NS_ENUM(NSUInteger, PayPasswordGenre) { + PayPasswordGenre_Set, + PayPasswordGenre_Reset, +}; + +@protocol FBCManePayPwordRegardGovernancerRepresendtation + +-(void)payCiphercryptogramAccomplishment; + +@end + +@class ConsumerAbstractMatrix; +@interface YUMIManeIntersectPwordRegardGovernancer : MvpRegardGovernancer +@property (nonatomic,assign) PayPasswordGenre type; +@property (nonatomic,strong) ConsumerAbstractMatrix *userInfo; +@property (nonatomic,weak) id delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Setting/YUMIManeIntersectPwordRegardGovernancer.m b/YuMi/Modules/YMMine/View/Setting/YUMIManeIntersectPwordRegardGovernancer.m new file mode 100644 index 00000000..e2dbdfb9 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Setting/YUMIManeIntersectPwordRegardGovernancer.m @@ -0,0 +1,211 @@ +// +// YMMinePayPwdViewController.m +// YUMI +// +// Created by YUMI on 2021/9/18. +// + +#import "YUMIManeIntersectPwordRegardGovernancer.h" +#import +#import +#import "UIImage+Utils.h" +#import "DJDKMIMOMColor.h" +#import "ComputationDownFacilitater.h" +#import "ConsumerAbstractMatrix.h" +#import "YUMIManeModifIntersectPwordRegard.h" +#import "YUMIManeInstanllingRegardGovernancer.h" +#import "YUMIManeIntersectPwordExternalizer.h" +#import "FBCManePayPwordCeremony.h" + +@interface YUMIManeIntersectPwordRegardGovernancer () +@property (nonatomic,strong) UIStackView *stackView; +@property (nonatomic, strong) YUMIManeModifIntersectPwordRegard *pwordIntrojectionRegard; +@property (nonatomic, strong) YUMIManeModifIntersectPwordRegard *repeatPwordIntrojectionRegard; +@property (nonatomic, strong) UIButton *submitBtuton; +@property (nonatomic, strong) UILabel *promptsSequencignation; +@end + +@implementation YUMIManeIntersectPwordRegardGovernancer + +- (void)dealloc { + +} + +- (YUMIManeIntersectPwordExternalizer *)producePresimport { + return [[YUMIManeIntersectPwordExternalizer alloc] init]; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initSubviews]; + + self.title = YMLocalizedString(@"YUMI_Mine_Pay_Pwd_View_Controller_0"); + + +} + +- (void)initSubviews { + self.view.backgroundColor = [UIColor whiteColor]; + [self.view addSubview:self.stackView]; + [self.view addSubview:self.submitBtuton]; + [self.stackView addArrangedSubview:self.pwordIntrojectionRegard]; + [self.stackView addArrangedSubview:self.repeatPwordIntrojectionRegard]; + + + + [self manufactureConstriants]; +} + +- (void)manufactureConstriants { + + [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(30); + make.left.right.mas_equalTo(self.view); + }]; + + + [self.submitBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(275); + make.right.mas_equalTo(self.view).offset(-15); + make.left.mas_equalTo(self.view).offset(15); + make.height.mas_equalTo(46); + }]; + + +} + + + + +- (void)setIntersectCiphercryptogramAccomplishment { + NSString *message = YMLocalizedString(@"YUMI_Mine_Pay_Pwd_View_Controller_3"); + [self EvidenceAccomplishmentToast:message]; + if(self.delegate && [self.delegate respondsToSelector:@selector(payCiphercryptogramAccomplishment)]){ + [self.delegate payCiphercryptogramAccomplishment]; + } + @weakify(self) + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + @strongify(self) + for (UIViewController *VC in self.navigationController.viewControllers) { + if ([VC isKindOfClass:[YUMIManeInstanllingRegardGovernancer class]]) { + [self.navigationController popToViewController:VC animated:YES]; + return; + } + } + [self.navigationController popViewControllerAnimated:YES]; + }); +} + + + +#pragma mark - event +- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { + [self.view endEditing:YES]; +} + +- (void)onTicktackMetromitBtuton { + [self.view endEditing:YES]; + NSString *pwd = self.pwordIntrojectionRegard.satisfperformanceEssayUniverse.text; + NSString *repeatPwd = self.repeatPwordIntrojectionRegard.satisfperformanceEssayUniverse.text; + if (pwd.length != 6) { + NSString *msg = YMLocalizedString(@"YUMI_Mine_Pay_Pwd_View_Controller_4"); + [self EvidenceMistakeToast:msg]; + return; + } + if (![self isPureFigure:pwd]) { + NSString *msg = YMLocalizedString(@"YUMI_Mine_Pay_Pwd_View_Controller_5"); + [self EvidenceMistakeToast:msg]; + return; + } + if (![pwd isEqualToString:repeatPwd]) { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_Mine_Pay_Pwd_View_Controller_6")]; + return; + } + + + + + [self.presimport setIntersectCiphercryptogram:pwd ]; +} + +#pragma mark - Private + +- (BOOL)isPureFigure:(NSString *)text { + if (!text) { + return NO; + } + + NSScanner *scan = [NSScanner scannerWithString:text]; + int val; + return [scan scanInt:&val] && [scan isAtEnd]; +} + +- (NSString *)phoneNumber { + return self.userInfo.phone; +} + +#pragma mark - Getter && Setter +- (UIStackView *)stackView { + if (!_stackView) { + _stackView = [[UIStackView alloc] init]; + _stackView.axis = UILayoutConstraintAxisVertical; + _stackView.distribution = UIStackViewDistributionFill; + _stackView.alignment = UIStackViewAlignmentFill; + _stackView.spacing = 25; + } + return _stackView; +} +- (YUMIManeModifIntersectPwordRegard *)pwordIntrojectionRegard { + if (!_pwordIntrojectionRegard) { + _pwordIntrojectionRegard = [[YUMIManeModifIntersectPwordRegard alloc] init]; + _pwordIntrojectionRegard.placeholder = YMLocalizedString(@"YUMI_Mine_Pay_Pwd_View_Controller_10"); + _pwordIntrojectionRegard.satisfperformanceEssayUniverse.keyboardType = UIKeyboardTypeNumberPad; + } + return _pwordIntrojectionRegard; +} + +- (YUMIManeModifIntersectPwordRegard *)repeatPwordIntrojectionRegard { + if (!_repeatPwordIntrojectionRegard) { + _repeatPwordIntrojectionRegard = [[YUMIManeModifIntersectPwordRegard alloc] init]; + _repeatPwordIntrojectionRegard.placeholder = YMLocalizedString(@"YUMI_Mine_Pay_Pwd_View_Controller_11"); + _repeatPwordIntrojectionRegard.satisfperformanceEssayUniverse.keyboardType = UIKeyboardTypeNumberPad; + + } + return _repeatPwordIntrojectionRegard; +} + + + +- (UIButton *)submitBtuton { + if (!_submitBtuton) { + _submitBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_submitBtuton setTitleColor:[DJDKMIMOMColor prohibitionBtutonEssayPrettify] forState:UIControlStateDisabled]; + [_submitBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + [_submitBtuton setTitle:YMLocalizedString(@"YUMI_Mine_Modif_Pay_Pwd_View_Controller_7") forState:UIControlStateNormal]; + _submitBtuton.titleLabel.font = [UIFont systemFontOfSize:16 weight:UIFontWeightRegular]; + _submitBtuton.layer.masksToBounds = YES; + _submitBtuton.layer.cornerRadius = 45/2; + _submitBtuton.enabled = YES; + [_submitBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor prohibitionBtutonPrettify], [DJDKMIMOMColor prohibitionBtutonPrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateDisabled]; + [_submitBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify],[DJDKMIMOMColor acknowledgementBtutonObliquityMiddlePrettify],[DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + [_submitBtuton addTarget:self action:@selector(onTicktackMetromitBtuton) forControlEvents:UIControlEventTouchUpInside]; + } + return _submitBtuton; +} + +- (UILabel *)promptsSequencignation { + if (!_promptsSequencignation) { + _promptsSequencignation = [[UILabel alloc] init]; + _promptsSequencignation.textColor = [DJDKMIMOMColor instantEssayPrettify]; + _promptsSequencignation.font = [UIFont systemFontOfSize:13]; + _promptsSequencignation.numberOfLines = 0; + _promptsSequencignation.hidden = YES; + NSString *phonePrefix = [[self phoneNumber] substringToIndex:3]; + NSString *phoneSuffix = [[self phoneNumber] substringFromIndex:7]; + _promptsSequencignation.text = [NSString stringWithFormat:YMLocalizedString(@"YUMI_Mine_Pay_Pwd_View_Controller_9"), phonePrefix, phoneSuffix]; + } + return _promptsSequencignation; +} + + +@end diff --git a/YuMi/Modules/YMMine/View/Setting/YUMIManeModifIntersectPwordRegardGovernancer.h b/YuMi/Modules/YMMine/View/Setting/YUMIManeModifIntersectPwordRegardGovernancer.h new file mode 100644 index 00000000..614685f8 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Setting/YUMIManeModifIntersectPwordRegardGovernancer.h @@ -0,0 +1,16 @@ +// +// YMMineModifPayPwdViewController.h +// YUMI +// +// Created by YUMI on 2021/9/18. +// 修改支付密码 + +#import "MvpRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN +@class ConsumerAbstractMatrix; +@interface YUMIManeModifIntersectPwordRegardGovernancer : MvpRegardGovernancer +@property (nonatomic,strong) ConsumerAbstractMatrix *userInfo; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Setting/YUMIManeModifIntersectPwordRegardGovernancer.m b/YuMi/Modules/YMMine/View/Setting/YUMIManeModifIntersectPwordRegardGovernancer.m new file mode 100644 index 00000000..2329ec26 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Setting/YUMIManeModifIntersectPwordRegardGovernancer.m @@ -0,0 +1,186 @@ +// +// YMMineModifPayPwdViewController.m +// YUMI +// +// Created by YUMI on 2021/9/18. +// + +#import "YUMIManeModifIntersectPwordRegardGovernancer.h" +#import +#import +#import "DJDKMIMOMColor.h" +#import "UIButton+EnlargeTouchArea.h" +#import "UIImage+Utils.h" +#import "YUMIManeModifIntersectPwordRegard.h" +#import "YUMIManeModifIntersectPwordExternalizer.h" +#import "FBCManeModifPayCeremony.h" +#import "YUMIManeInstanllingRegardGovernancer.h" +#import "YUMIManeValidationIdentityRegardGovernancer.h" + +@interface YUMIManeModifIntersectPwordRegardGovernancer () +@property (nonatomic,strong) UIStackView *stackView; +@property (nonatomic,strong) YUMIManeModifIntersectPwordRegard *universalPwordRegard; +@property (nonatomic,strong) YUMIManeModifIntersectPwordRegard *strangesPwordRegard; +@property (nonatomic,strong) YUMIManeModifIntersectPwordRegard *examinePwordRegard; +@property (nonatomic, strong) UIButton *forgetBtuton; +@property (nonatomic, strong) UIButton *submitBtuton; +@end + +@implementation YUMIManeModifIntersectPwordRegardGovernancer + +- (YUMIManeModifIntersectPwordExternalizer *)producePresimport { + return [[YUMIManeModifIntersectPwordExternalizer alloc] init]; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initSubViews]; + [self initChildLyRestrictions]; + [self initOccurrences]; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.title = YMLocalizedString(@"YUMI_Mine_Modif_Pay_Pwd_View_Controller_0"); + [self.view addSubview:self.stackView]; + [self.view addSubview:self.forgetBtuton]; + [self.view addSubview:self.submitBtuton]; + [self.stackView addArrangedSubview:self.universalPwordRegard]; + [self.stackView addArrangedSubview:self.strangesPwordRegard]; + [self.stackView addArrangedSubview:self.examinePwordRegard]; +} + +- (void)initChildLyRestrictions { + [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self.view); + }]; + + [self.forgetBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self.view).offset(-32); + make.top.mas_equalTo(self.stackView.mas_bottom).offset(8); + }]; + [self.submitBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.stackView.mas_bottom).offset(45); + make.right.mas_equalTo(self.view).offset(-32); + make.left.mas_equalTo(self.view).offset(32); + make.height.mas_equalTo(45); + }]; +} + +- (void)initOccurrences { + RAC(self.submitBtuton, enabled) = [RACSignal combineLatest:@[self.universalPwordRegard.satisfperformanceEssayUniverse.rac_textSignal, self.strangesPwordRegard.satisfperformanceEssayUniverse.rac_textSignal, self.examinePwordRegard.satisfperformanceEssayUniverse.rac_textSignal] reduce:^id _Nonnull(NSString *currentPassword, NSString *newsPassword, NSString *checkPassword){ + return @(currentPassword.length == 6 && newsPassword.length == 6 && checkPassword.length == 6); + }]; +} +- (BOOL)isPureFigure:(NSString *)text { + if (!text) { + return NO; + } + NSScanner *scan = [NSScanner scannerWithString:text]; + int val; + return [scan scanInt:&val] && [scan isAtEnd]; +} + + +#pragma mark - FBCManeModifPayCeremony +- (void)modifIntersectCiphercryptogramAccomplishment { + [self EvidenceAccomplishmentToast:YMLocalizedString(@"YUMI_Mine_Modif_Pay_Pwd_View_Controller_1")]; + for (UIViewController *VC in self.navigationController.viewControllers) { + if ([VC isKindOfClass:[YUMIManeInstanllingRegardGovernancer class]]) { + [self.navigationController popToViewController:VC animated:YES]; + return; + } + } + [self.navigationController popViewControllerAnimated:YES]; +} + +#pragma mark - Event Response +- (void)SpongeoutBtutonPerformance:(UIButton *)sender { + YUMIManeValidationIdentityRegardGovernancer * VC= [[YUMIManeValidationIdentityRegardGovernancer alloc] init]; + VC.userInfo = self.userInfo; + [self.navigationController pushViewController:VC animated:YES]; +} + +- (void)advoctowardseBtutonPerformance:(UIButton *)sender { + if (![self.strangesPwordRegard.satisfperformanceEssayUniverse.text isEqual:self.examinePwordRegard.satisfperformanceEssayUniverse.text]) { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_Mine_Modif_Pay_Pwd_View_Controller_2")]; + return; + } + + if (![self isPureFigure:self.examinePwordRegard.satisfperformanceEssayUniverse.text] || ![self isPureFigure:self.strangesPwordRegard.satisfperformanceEssayUniverse.text]) { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_Mine_Modif_Pay_Pwd_View_Controller_3")]; + return; + } + + [self.presimport decortowardseIntersectmentCiphercryptogramAboutoldCiphercryptogram:self.universalPwordRegard.satisfperformanceEssayUniverse.text newPassword:self.strangesPwordRegard.satisfperformanceEssayUniverse.text]; +} + +#pragma mark - Getters And Setters +- (UIStackView *)stackView { + if (!_stackView) { + _stackView = [[UIStackView alloc] init]; + _stackView.axis = UILayoutConstraintAxisVertical; + _stackView.distribution = UIStackViewDistributionFill; + _stackView.alignment = UIStackViewAlignmentFill; + _stackView.spacing = 0; + } + return _stackView; +} + +- (YUMIManeModifIntersectPwordRegard *)universalPwordRegard { + if (!_universalPwordRegard) { + _universalPwordRegard = [[YUMIManeModifIntersectPwordRegard alloc] init]; + _universalPwordRegard.placeholder = YMLocalizedString(@"YUMI_Mine_Modif_Pay_Pwd_View_Controller_4"); + _universalPwordRegard.satisfperformanceEssayUniverse.keyboardType = UIKeyboardTypeNumberPad; + } + return _universalPwordRegard; +} + +- (YUMIManeModifIntersectPwordRegard *)strangesPwordRegard { + if (!_strangesPwordRegard) { + _strangesPwordRegard = [[YUMIManeModifIntersectPwordRegard alloc] init]; + _strangesPwordRegard.placeholder = YMLocalizedString(@"YUMI_Mine_Modif_Pay_Pwd_View_Controller_5"); + _strangesPwordRegard.satisfperformanceEssayUniverse.keyboardType = UIKeyboardTypeNumberPad; + } + return _strangesPwordRegard; +} + +- (YUMIManeModifIntersectPwordRegard *)examinePwordRegard { + if (!_examinePwordRegard) { + _examinePwordRegard = [[YUMIManeModifIntersectPwordRegard alloc] init]; + _examinePwordRegard.placeholder = YMLocalizedString(@"YUMI_Mine_Modif_Pay_Pwd_View_Controller_6"); + _examinePwordRegard.satisfperformanceEssayUniverse.keyboardType = UIKeyboardTypeNumberPad; + } + return _examinePwordRegard; +} + +- (UIButton *)submitBtuton { + if (!_submitBtuton) { + _submitBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_submitBtuton setTitleColor:[DJDKMIMOMColor acknowledgementBtutonEssayPrettify] forState:UIControlStateNormal]; + [_submitBtuton setTitleColor:[DJDKMIMOMColor prohibitionBtutonEssayPrettify] forState:UIControlStateDisabled]; + [_submitBtuton setTitle:YMLocalizedString(@"YUMI_Mine_Modif_Pay_Pwd_View_Controller_7") forState:UIControlStateNormal]; + _submitBtuton.titleLabel.font = [UIFont fontWithName:@"PingFang-SC-Medium" size:18]; + _submitBtuton.layer.masksToBounds = YES; + _submitBtuton.layer.cornerRadius = 45/2; + _submitBtuton.enabled = YES; + [_submitBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + [_submitBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor prohibitionBtutonPrettify], [DJDKMIMOMColor prohibitionBtutonPrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateDisabled]; + [_submitBtuton addTarget:self action:@selector(advoctowardseBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _submitBtuton; +} + +- (UIButton *)forgetBtuton { + if (!_forgetBtuton) { + _forgetBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_forgetBtuton setEnlargeEdgeAboutApex:5 right:5 bottom:5 left:5]; + [_forgetBtuton setTitleColor:[DJDKMIMOMColor instantEssayPrettify] forState:UIControlStateNormal]; + [_forgetBtuton setTitle:@"忘记密码?" forState:UIControlStateNormal]; + _forgetBtuton.titleLabel.font = [UIFont systemFontOfSize:13]; + [_forgetBtuton addTarget:self action:@selector(SpongeoutBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _forgetBtuton; +} + +@end diff --git a/YuMi/Modules/YMMine/View/Setting/YUMIManeNotificaRegardGovernancer.h b/YuMi/Modules/YMMine/View/Setting/YUMIManeNotificaRegardGovernancer.h new file mode 100644 index 00000000..3435bf46 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Setting/YUMIManeNotificaRegardGovernancer.h @@ -0,0 +1,16 @@ +// +// YMMineNotificaViewController.h +// YUMI +// +// Created by YUMI on 2021/9/17. +// + +#import "MvpRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeNotificaRegardGovernancer : MvpRegardGovernancer + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Setting/YUMIManeNotificaRegardGovernancer.m b/YuMi/Modules/YMMine/View/Setting/YUMIManeNotificaRegardGovernancer.m new file mode 100644 index 00000000..434ce396 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Setting/YUMIManeNotificaRegardGovernancer.m @@ -0,0 +1,130 @@ +// +// YMMineNotificaViewController.m +// YUMI +// +// Created by YUMI on 2021/9/17. +// + +#import "YUMIManeNotificaRegardGovernancer.h" +#import +#import +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" +#import "NSArray+Safe.h" +#import "YUMIManeNotificationProvisionMatrix.h" +#import "YUMIManeNotificationTabulationRegardElement.h" +#import "FBCManeNotificaCeremony.h" +#import "YUMIManeNotificaExternalizer.h" + +@interface YUMIManeNotificaRegardGovernancer () + +@property (nonatomic, strong) NSArray *atoloudspeakerMatrixGarment; +@property (nonatomic,strong) UITableView *tableView; +@end + +@implementation YUMIManeNotificaRegardGovernancer + +- (YUMIManeNotificaExternalizer *)producePresimport { + return [[YUMIManeNotificaExternalizer alloc] init]; +} + +#pragma mark - Life Cycle +- (void)viewDidLoad { + [super viewDidLoad]; + [self initSubViews]; + [self initChildLyRestrictions]; +} + +- (void)viewWillAppear:(BOOL)animated { + [super viewWillAppear:animated]; + [self.presimport requisitionConsumerAbstractInfformPosition]; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.title = YMLocalizedString(@"YUMI_Mine_Notifica_View_Controller_0"); + [self.view addSubview:self.tableView]; +} + +- (void)initChildLyRestrictions { + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.mas_equalTo(self.view); + make.top.mas_equalTo(0); + }]; +} + +- (BOOL)systemInfform { +#warning to do 需要实现的 + + return YES; +} + +#pragma mark - UITableViewDelegate +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.atoloudspeakerMatrixGarment.count; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + YUMIManeNotificationProvisionMatrix *item = [self.atoloudspeakerMatrixGarment secureGroalTowardsIndictowardsrix1:indexPath.row]; + YUMIManeNotificationTabulationRegardElement *cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIManeNotificationTabulationRegardElement class]) forIndexPath:indexPath]; + cell.delegate = self; + cell.itemMatrix = item; + return cell; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + return 70; +} + + +#pragma mark - Private ++ (void)mobilePushTowardstesttowardsionority:(void(^)(BOOL isAuthority))authority { + + if (@available(iOS 10.0, *)) { + [[UNUserNotificationCenter currentNotificationCenter] getNotificationSettingsWithCompletionHandler:^(UNNotificationSettings * _Nonnull settings) { + + BOOL permission = settings.authorizationStatus == UNAuthorizationStatusAuthorized; + dispatch_async(dispatch_get_main_queue(), ^{ + !authority ?: authority(permission); + }); + }]; + } else { + BOOL permission = [[UIApplication sharedApplication] currentUserNotificationSettings].types != UIUserNotificationTypeNone; + !authority ?: authority(permission); + } +} + + + +#pragma mark - YUMIManeNotificationTabulationRegardElement +- (void)fBCManeCircularTarbsultowardsionViweElement:(YUMIManeNotificationTabulationRegardElement *)cell switchStatus:(BOOL)status { + NSIndexPath *indexPath = [self.tableView indexPathForCell:cell]; + self.atoloudspeakerMatrixGarment[indexPath.row].notification = status; + if (indexPath.row == 0) { + [self.presimport refurbishConsumerAbstractSystemInfform:status]; + } else { + [self.presimport refurbishBroadCastInfform:status]; + } + +} + +#pragma mark - FBCManeNotificaCeremony +- (void)requisitionConsumerAbstractInfformPositionAccomplishment:(NSArray *)array { + self.atoloudspeakerMatrixGarment = array; + [self.tableView reloadData]; +} + +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.showsVerticalScrollIndicator = NO; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + [_tableView registerClass:[YUMIManeNotificationTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIManeNotificationTabulationRegardElement class])]; + _tableView.backgroundColor = [UIColor clearColor]; + } + return _tableView; +} + +@end diff --git a/YuMi/Modules/YMMine/View/Setting/YUMIManeReassociationIntersectPwordRegardGovernancer.h b/YuMi/Modules/YMMine/View/Setting/YUMIManeReassociationIntersectPwordRegardGovernancer.h new file mode 100644 index 00000000..4b7fe6d0 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Setting/YUMIManeReassociationIntersectPwordRegardGovernancer.h @@ -0,0 +1,16 @@ +// +// YMMineResetPayPwdViewController.h +// YUMI +// +// Created by YUMI on 2021/9/18. +// 重设支付密码 + +#import "MvpRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeReassociationIntersectPwordRegardGovernancer : MvpRegardGovernancer + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Setting/YUMIManeReassociationIntersectPwordRegardGovernancer.m b/YuMi/Modules/YMMine/View/Setting/YUMIManeReassociationIntersectPwordRegardGovernancer.m new file mode 100644 index 00000000..1dfd83ba --- /dev/null +++ b/YuMi/Modules/YMMine/View/Setting/YUMIManeReassociationIntersectPwordRegardGovernancer.m @@ -0,0 +1,131 @@ +// +// YMMineResetPayPwdViewController.m +// YUMI +// +// Created by YUMI on 2021/9/18. +// 重置支付密码 + +#import "YUMIManeReassociationIntersectPwordRegardGovernancer.h" +#import +#import +#import "DJDKMIMOMColor.h" +#import "UIImage+Utils.h" +#import "YUMIManeModifIntersectPwordRegard.h" +#import "YUMIManeReassociationIntersectCiphercodeExternalizer.h" +#import "FBCManeResetPayCiphercodeCeremony.h" +#import "YUMIManeInstanllingRegardGovernancer.h" + +@interface YUMIManeReassociationIntersectPwordRegardGovernancer () +@property (nonatomic,strong) UIStackView *stackView; +@property (nonatomic,strong) YUMIManeModifIntersectPwordRegard *ciphercryptogramRegard; +@property (nonatomic,strong) YUMIManeModifIntersectPwordRegard *verificationCryptogramIntrojectionRegard; +@property (nonatomic,strong) UIButton *submitBtuton; +@end + +@implementation YUMIManeReassociationIntersectPwordRegardGovernancer + +- (YUMIManeReassociationIntersectCiphercodeExternalizer *)producePresimport { + return [[YUMIManeReassociationIntersectCiphercodeExternalizer alloc] init]; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initSubViews]; + [self initChildLyRestrictions]; + [self initOccurrences]; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.title = YMLocalizedString(@"YUMI_Mine_Reset_Pay_Pwd_View_Controller_0"); + [self.view addSubview:self.stackView]; + [self.view addSubview:self.submitBtuton]; + + [self.stackView addArrangedSubview:self.ciphercryptogramRegard]; + [self.stackView addArrangedSubview:self.verificationCryptogramIntrojectionRegard]; +} + +- (void)initChildLyRestrictions { + [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self.view); + }]; + + [self.submitBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.stackView.mas_bottom).offset(45); + make.right.left.mas_equalTo(self.view).inset(32); + make.height.mas_equalTo(45); + }]; +} + +- (void)initOccurrences { + @weakify(self); + RAC(self.submitBtuton, enabled) = [RACSignal combineLatest:@[self.ciphercryptogramRegard.satisfperformanceEssayUniverse.rac_textSignal, self.verificationCryptogramIntrojectionRegard.satisfperformanceEssayUniverse.rac_textSignal] reduce:^id _Nonnull(NSString *password, NSString *checkPassword){ + return @(password.length == 6 && checkPassword.length == 6); + }]; +} + +#pragma mark - FBCManeResetPayCiphercodeCeremony +- (void)replacementIntersectCiphercryptogramAccomplishment { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_Mine_Reset_Pay_Pwd_View_Controller_1")]; + for (UIViewController *VC in self.navigationController.viewControllers) { + if ([VC isKindOfClass:[YUMIManeInstanllingRegardGovernancer class]]) { + [self.navigationController popToViewController:VC animated:YES]; + return; + } + } + [self.navigationController popViewControllerAnimated:YES]; +} +#pragma mark - Event Response +- (void)advoctowardseBtutonPerformance:(UIButton *)sender { + if (![self.ciphercryptogramRegard.satisfperformanceEssayUniverse.text isEqual:self.verificationCryptogramIntrojectionRegard.satisfperformanceEssayUniverse.text]) { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_Mine_Reset_Pay_Pwd_View_Controller_2")]; + } + [self.presimport replacementIntersectCiphercryptogram:self.ciphercryptogramRegard.satisfperformanceEssayUniverse.text phone:@"" veriftCode:@""]; +} + +#pragma mark - Getters And Setters +- (UIStackView *)stackView { + if (!_stackView) { + _stackView = [[UIStackView alloc] init]; + _stackView.axis = UILayoutConstraintAxisVertical; + _stackView.distribution = UIStackViewDistributionFill; + _stackView.alignment = UIStackViewAlignmentFill; + _stackView.spacing = 0; + } + return _stackView; +} + +- (YUMIManeModifIntersectPwordRegard *)ciphercryptogramRegard { + if (!_ciphercryptogramRegard) { + _ciphercryptogramRegard = [[YUMIManeModifIntersectPwordRegard alloc] init]; + _ciphercryptogramRegard.placeholder = YMLocalizedString(@"YUMI_Mine_Reset_Pay_Pwd_View_Controller_3"); + } + return _ciphercryptogramRegard; +} + +- (YUMIManeModifIntersectPwordRegard *)verificationCryptogramIntrojectionRegard { + if (!_verificationCryptogramIntrojectionRegard) { + _verificationCryptogramIntrojectionRegard = [[YUMIManeModifIntersectPwordRegard alloc] init]; + _verificationCryptogramIntrojectionRegard.placeholder = YMLocalizedString(@"YUMI_Mine_Reset_Pay_Pwd_View_Controller_4"); + } + return _verificationCryptogramIntrojectionRegard; +} + +- (UIButton *)submitBtuton { + if (!_submitBtuton) { + _submitBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_submitBtuton setTitleColor:[DJDKMIMOMColor acknowledgementBtutonEssayPrettify] forState:UIControlStateNormal]; + [_submitBtuton setTitleColor:[DJDKMIMOMColor prohibitionBtutonEssayPrettify] forState:UIControlStateDisabled]; + [_submitBtuton setTitle:YMLocalizedString(@"YUMI_Mine_Reset_Pay_Pwd_View_Controller_5") forState:UIControlStateNormal]; + _submitBtuton.titleLabel.font = [UIFont fontWithName:@"PingFang-SC-Medium" size:18]; + _submitBtuton.layer.masksToBounds = YES; + _submitBtuton.layer.cornerRadius = 45/2; + _submitBtuton.enabled = NO; + [_submitBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + [_submitBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor prohibitionBtutonPrettify], [DJDKMIMOMColor prohibitionBtutonPrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateDisabled]; + [_submitBtuton addTarget:self action:@selector(advoctowardseBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _submitBtuton; +} + +@end diff --git a/YuMi/Modules/YMMine/View/Setting/YUMIManeReassociationSurmountPwordRegardGovernancer.h b/YuMi/Modules/YMMine/View/Setting/YUMIManeReassociationSurmountPwordRegardGovernancer.h new file mode 100644 index 00000000..d91e55dd --- /dev/null +++ b/YuMi/Modules/YMMine/View/Setting/YUMIManeReassociationSurmountPwordRegardGovernancer.h @@ -0,0 +1,16 @@ +// +// YMMineResetLoginPwdViewController.h +// YUMI +// +// Created by YUMI on 2022/5/5. +// + +#import "MvpRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN +@class ConsumerAbstractMatrix; +@interface YUMIManeReassociationSurmountPwordRegardGovernancer : MvpRegardGovernancer +@property (nonatomic,strong) ConsumerAbstractMatrix *userInfo; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Setting/YUMIManeReassociationSurmountPwordRegardGovernancer.m b/YuMi/Modules/YMMine/View/Setting/YUMIManeReassociationSurmountPwordRegardGovernancer.m new file mode 100644 index 00000000..ec259311 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Setting/YUMIManeReassociationSurmountPwordRegardGovernancer.m @@ -0,0 +1,187 @@ +// +// YMMineResetLoginPwdViewController.m +// YUMI +// +// Created by YUMI on 2022/5/5. +// + +#import "YUMIManeReassociationSurmountPwordRegardGovernancer.h" +#import +#import "DJDKMIMOMColor.h" +#import "ComputationDownFacilitater.h" +#import "YUMIMacroUitls.h" +#import "UIImage+Utils.h" +#import "ConsumerAbstractMatrix.h" +#import "YUMIManeValidationIdentityRegard.h" +#import "YUMIManeModifIntersectPwordRegard.h" +#import "YUMIManeReassociationSurmountPwordExternalizer.h" +#import "FBCManeResetSurmountPwordCeremony.h" + +@interface YUMIManeReassociationSurmountPwordRegardGovernancer () +@property (nonatomic,strong) UIStackView *stackView; +@property (nonatomic,strong) YUMIManeValidationIdentityRegard *mobileRegard; +@property (nonatomic,strong) YUMIManeValidationIdentityRegard *smsCryptogramRegard; +@property (nonatomic,strong) YUMIManeModifIntersectPwordRegard *universalPwordRegard; +@property (nonatomic,strong) UIButton *nextBtuton; +@end + +@implementation YUMIManeReassociationSurmountPwordRegardGovernancer + +- (void)castlelocm { + [[ComputationDownFacilitater partowardsiciptowardsionFacilittowardseer] suspeindComputtowardsionPubescence]; +} + +- (YUMIManeReassociationSurmountPwordExternalizer *)producePresimport { + return [[YUMIManeReassociationSurmountPwordExternalizer alloc] init];; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initSubViews]; + [self initChildLyRestrictions]; + [self initOccurrences]; +} + +- (void)viewDidDisappear:(BOOL)animated { + [super viewDidDisappear:animated]; + [[ComputationDownFacilitater partowardsiciptowardsionFacilittowardseer] suspeindComputtowardsionPubescence]; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.title = YMLocalizedString(@"YUMI_Mine_ResetLoginPwdViewController0"); + self.mobileRegard.satisfperformanceEssayUniverse.text = self.userInfo.phone; + self.mobileRegard.satisfperformanceEssayUniverse.enabled = self.userInfo.phone.length > 0; + [ComputationDownFacilitater partowardsiciptowardsionFacilittowardseer].delegate = self; + [self.view addSubview:self.stackView]; + [self.view addSubview:self.nextBtuton]; + + [self.stackView addArrangedSubview:self.mobileRegard]; + [self.stackView addArrangedSubview:self.smsCryptogramRegard]; + [self.stackView addArrangedSubview:self.universalPwordRegard]; +} + +- (void)initChildLyRestrictions { + [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self.view); + }]; + + [self.nextBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.stackView.mas_bottom).offset(45); + make.right.mas_equalTo(self.view).offset(-32); + make.left.mas_equalTo(self.view).offset(32); + make.height.mas_equalTo(45); + }]; +} + +- (void)initOccurrences { + @kWeakify(self); + self.smsCryptogramRegard.smsCryptogramDiscourage = ^(UIButton * _Nonnull sender) { + @kStrongify(self); + if (self.mobileRegard.satisfperformanceEssayUniverse.text.length > 0) { + [self.presimport mobileSmsCryptogram:self.mobileRegard.satisfperformanceEssayUniverse.text type:GetSmsGenre_Reset_Password phoneAreaCode:@""]; + } else { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_Mine_ResetLoginPwdViewController1")]; + } + }; +} +#pragma mark - FBCManeVerifIdentityCeremony +- (void)mobileSmsCryptogramAccomplishment { + self.smsCryptogramRegard.smsCryptogramBtuton.enabled = NO; + [self EvidenceAccomplishmentToast:YMLocalizedString(@"YUMI_Mine_ResetLoginPwdViewController2")]; + [[ComputationDownFacilitater partowardsiciptowardsionFacilittowardseer] unfoildComputtowardsiondownAboutIntrtowardsemporal:60]; +} + +- (void)replacementSurmountCiphercryptogramAccomplishment { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_Mine_ResetLoginPwdViewController3")]; + [self.presimport revoctowardsionledUniversalSequenceription]; +} + +- (void)revoctowardsionledUniversalSequenceriptionAccomplishment { + [self.navigationController popToRootViewControllerAnimated:NO]; +} + + +#pragma mark - CountDownHelperRepresendtation +- (void)onComputtowardsiondownUnfoild:(int)time { + [self.smsCryptogramRegard.smsCryptogramBtuton setTitle:[NSString stringWithFormat:YMLocalizedString(@"YUMI_Mine_ResetLoginPwdViewController4"), time] forState:UIControlStateDisabled]; +} +- (void)onComputtowardsiondownAccomplish { + self.smsCryptogramRegard.smsCryptogramBtuton.enabled= YES; + [self.smsCryptogramRegard.smsCryptogramBtuton setTitle:YMLocalizedString(@"YUMI_Mine_ResetLoginPwdViewController5") forState:UIControlStateNormal]; +} + +#pragma mark - Event Response +- (void)ltowardsterBtutonPerformance:(UIButton *)sender { + [self.presimport replacementSurmountCiphercryptogram:self.userInfo.phone smsCode:self.smsCryptogramRegard.satisfperformanceEssayUniverse.text newPwd:self.universalPwordRegard.satisfperformanceEssayUniverse.text]; +} + +- (void)essayUniverseDidDiversifictowardsion:(UITextField *)essayAccurated { + if (self.mobileRegard.satisfperformanceEssayUniverse.text.length > 0 && self.smsCryptogramRegard.satisfperformanceEssayUniverse.text.length > 0 && self.universalPwordRegard.satisfperformanceEssayUniverse.text.length >= 6) { + self.nextBtuton.enabled = YES; + } else { + self.nextBtuton.enabled = NO; + } +} + +#pragma mark - Getters And Setters +- (UIButton *)nextBtuton { + if (!_nextBtuton) { + _nextBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_nextBtuton setTitleColor:[DJDKMIMOMColor acknowledgementBtutonEssayPrettify] forState:UIControlStateNormal]; + [_nextBtuton setTitleColor:[DJDKMIMOMColor prohibitionBtutonEssayPrettify] forState:UIControlStateDisabled]; + [_nextBtuton setTitle:YMLocalizedString(@"YUMI_Mine_ResetLoginPwdViewController6") forState:UIControlStateNormal]; + _nextBtuton.titleLabel.font = [UIFont fontWithName:@"PingFang-SC-Medium" size:18]; + _nextBtuton.layer.masksToBounds = YES; + _nextBtuton.layer.cornerRadius = 45/2; + _nextBtuton.enabled = NO; + [_nextBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + [_nextBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor prohibitionBtutonPrettify], [DJDKMIMOMColor prohibitionBtutonPrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateDisabled]; + [_nextBtuton addTarget:self action:@selector(ltowardsterBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _nextBtuton; +} + +- (UIStackView *)stackView { + if (!_stackView) { + _stackView = [[UIStackView alloc] init]; + _stackView.axis = UILayoutConstraintAxisVertical; + _stackView.distribution = UIStackViewDistributionFill; + _stackView.alignment = UIStackViewAlignmentFill; + _stackView.spacing = 0; + } + return _stackView; +} + +- (YUMIManeValidationIdentityRegard *)mobileRegard { + if (!_mobileRegard) { + _mobileRegard = [[YUMIManeValidationIdentityRegard alloc] init]; + _mobileRegard.type = YUMI_MineVerifIdentityType_Phone; + _mobileRegard.placeholder = YMLocalizedString(@"YUMI_Mine_ResetLoginPwdViewController7"); + _mobileRegard.satisfperformanceEssayUniverse.secureTextEntry = NO; + _mobileRegard.backgroundColor = [DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify]; + } + return _mobileRegard; +} + +- (YUMIManeValidationIdentityRegard *)smsCryptogramRegard { + if (!_smsCryptogramRegard) { + _smsCryptogramRegard = [[YUMIManeValidationIdentityRegard alloc] init]; + _smsCryptogramRegard.type = YUMI_MineVerifIdentityType_Sms; + _smsCryptogramRegard.placeholder = YMLocalizedString(@"YUMI_Mine_ResetLoginPwdViewController8"); + _smsCryptogramRegard.satisfperformanceEssayUniverse.secureTextEntry = NO; + _smsCryptogramRegard.backgroundColor = [DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify]; + } + return _smsCryptogramRegard; +} + +- (YUMIManeModifIntersectPwordRegard *)universalPwordRegard { + if (!_universalPwordRegard) { + _universalPwordRegard = [[YUMIManeModifIntersectPwordRegard alloc] init]; + _universalPwordRegard.placeholder = YMLocalizedString(@"YUMI_Mine_ResetLoginPwdViewController9"); + [_universalPwordRegard.satisfperformanceEssayUniverse addTarget:self action:@selector(essayUniverseDidDiversifictowardsion:) forControlEvents:UIControlEventEditingChanged]; + } + return _universalPwordRegard; +} + +@end diff --git a/YuMi/Modules/YMMine/View/Setting/YUMIManeSurmountCiphercodeRegardGovernancer.h b/YuMi/Modules/YMMine/View/Setting/YUMIManeSurmountCiphercodeRegardGovernancer.h new file mode 100644 index 00000000..717f881a --- /dev/null +++ b/YuMi/Modules/YMMine/View/Setting/YUMIManeSurmountCiphercodeRegardGovernancer.h @@ -0,0 +1,19 @@ +// +// YMMineLoginPasswordViewController.h +// YUMI +// +// Created by YUMI on 2022/4/25. +// + +#import "MvpRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN + + +@class ConsumerAbstractMatrix; +@interface YUMIManeSurmountCiphercodeRegardGovernancer : MvpRegardGovernancer +@property (nonatomic,strong) ConsumerAbstractMatrix *userInfo; +@property (nonatomic,assign) BOOL isModifiPword; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Setting/YUMIManeSurmountCiphercodeRegardGovernancer.m b/YuMi/Modules/YMMine/View/Setting/YUMIManeSurmountCiphercodeRegardGovernancer.m new file mode 100644 index 00000000..86195516 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Setting/YUMIManeSurmountCiphercodeRegardGovernancer.m @@ -0,0 +1,227 @@ +// +// YMMineLoginPasswordViewController.m +// YUMI +// +// Created by YUMI on 2022/4/25. +// + +#import "YUMIManeSurmountCiphercodeRegardGovernancer.h" +#import +#import +#import "DJDKMIMOMColor.h" +#import "UIButton+EnlargeTouchArea.h" +#import "UIImage+Utils.h" +#import "ConsumerAbstractMatrix.h" +#import "YUMIManeModifIntersectPwordRegard.h" +#import "YUMIManeSurmountCiphercodeExternalizer.h" +#import "FBCManeSurmountCiphercodeCeremony.h" +#import "YUMIManeInstanllingRegardGovernancer.h" +#import "YUMIManeReassociationSurmountPwordRegardGovernancer.h" + +@interface YUMIManeSurmountCiphercodeRegardGovernancer () +@property (nonatomic,strong) UIStackView *stackView; +@property (nonatomic,strong) YUMIManeModifIntersectPwordRegard *universalPwordRegard; +@property (nonatomic,strong) YUMIManeModifIntersectPwordRegard *strangesPwordRegard; +@property (nonatomic,strong) YUMIManeModifIntersectPwordRegard *examinePwordRegard; +@property (nonatomic, strong) UIButton *forgetBtuton; +@property (nonatomic, strong) UIButton *submitBtuton; +@property (nonatomic,strong) UILabel *restrictionSequencignation; +@property (nonatomic,copy) NSString *universalPword; +@property (nonatomic,copy) NSString *newsPword; +@property (nonatomic,copy) NSString *examinePword; +@end + +@implementation YUMIManeSurmountCiphercodeRegardGovernancer + +- (YUMIManeSurmountCiphercodeExternalizer *)producePresimport { + return [[YUMIManeSurmountCiphercodeExternalizer alloc] init]; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initSubViews]; + [self initChildLyRestrictions]; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self.view addSubview:self.stackView]; + [self.view addSubview:self.restrictionSequencignation]; + [self.view addSubview:self.forgetBtuton]; + [self.view addSubview:self.submitBtuton]; + [self.stackView addArrangedSubview:self.universalPwordRegard]; + [self.stackView addArrangedSubview:self.strangesPwordRegard]; + [self.stackView addArrangedSubview:self.examinePwordRegard]; +} + +- (void)initChildLyRestrictions { + [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self.view); + }]; + + [self.restrictionSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.view).offset(15); + make.top.mas_equalTo(self.stackView.mas_bottom).offset(10); + }]; + + [self.forgetBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self.view).offset(-15); + make.top.mas_equalTo(self.submitBtuton.mas_bottom).offset(15); + }]; + [self.submitBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.restrictionSequencignation.mas_bottom).offset(20); + make.right.mas_equalTo(self.view).offset(-32); + make.left.mas_equalTo(self.view).offset(32); + make.height.mas_equalTo(45); + }]; +} + +#pragma mark - FBCManeSurmountCiphercodeCeremony +- (void)setSurmountCiphercryptogramAccomplishment { + [self EvidenceAccomplishmentToast:YMLocalizedString(@"YUMI_MineLoginPasswordViewController0")]; + [self.navigationController popViewControllerAnimated:YES]; +} + +- (void)decortowardseSurmountCiphercryptogramAccomplishment { + [self EvidenceAccomplishmentToast:YMLocalizedString(@"YUMI_MineLoginPasswordViewController1")]; + [self.navigationController popViewControllerAnimated:YES]; +} + +#pragma mark - Event Response +- (void)SpongeoutBtutonPerformance:(UIButton *)sender { + YUMIManeReassociationSurmountPwordRegardGovernancer * VC= [[YUMIManeReassociationSurmountPwordRegardGovernancer alloc] init]; + VC.userInfo = self.userInfo; + [self.navigationController pushViewController:VC animated:YES]; +} + +- (void)advoctowardseBtutonPerformance:(UIButton *)sender { + if (![self.strangesPwordRegard.satisfperformanceEssayUniverse.text isEqualToString:self.examinePwordRegard.satisfperformanceEssayUniverse.text]) { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_MineLoginPasswordViewController2")]; + return; + } + if (self.isModifiPword) { + [self.presimport decortowardseSurmountCiphercryptogram:self.userInfo.phone newPwd:self.newsPword pwd:self.universalPword]; + } else { + [self.presimport setSurmountCiphercryptogram:self.userInfo.phone newPwd:self.newsPword]; + } +} + +- (void)essayUniverseDidDiversifictowardsion:(UITextField *)textfield { + if (textfield == self.universalPwordRegard.satisfperformanceEssayUniverse) { + self.universalPword = textfield.text; + } else if (textfield == self.strangesPwordRegard.satisfperformanceEssayUniverse) { + self.newsPword = textfield.text; + } else { + self.examinePword = textfield.text; + } + + if (self.isModifiPword) { + if (self.universalPword.length >= 6 && self.newsPword.length >= 6 && self.examinePword.length >= 6) { + self.submitBtuton.enabled = YES; + } else { + self.submitBtuton.enabled = NO; + } + } else { + if (self.newsPword.length >= 6 && self.examinePword.length >= 6) { + self.submitBtuton.enabled = YES; + } else { + self.submitBtuton.enabled = NO; + } + } +} + +#pragma mark - Getters And Setters +- (void)setIsModifiPword:(BOOL)isModifiPword { + _isModifiPword = isModifiPword; + if (_isModifiPword) { + self.universalPwordRegard.hidden = NO; + self.universalPwordRegard.placeholder = YMLocalizedString(@"YUMI_MineLoginPasswordViewController3"); + self.strangesPwordRegard.placeholder = YMLocalizedString(@"YUMI_MineLoginPasswordViewController4"); + self.examinePwordRegard.placeholder = YMLocalizedString(@"YUMI_MineLoginPasswordViewController5"); + self.title = YMLocalizedString(@"YUMI_MineLoginPasswordViewController6"); + } else { + self.universalPwordRegard.hidden = YES; + self.strangesPwordRegard.placeholder = YMLocalizedString(@"YUMI_MineLoginPasswordViewController7"); + self.examinePwordRegard.placeholder = YMLocalizedString(@"YUMI_MineLoginPasswordViewController8"); + self.forgetBtuton.hidden = YES; + self.title = YMLocalizedString(@"YUMI_MineLoginPasswordViewController9"); + } + self.universalPwordRegard.hidden = !_isModifiPword; +} + +- (UIStackView *)stackView { + if (!_stackView) { + _stackView = [[UIStackView alloc] init]; + _stackView.axis = UILayoutConstraintAxisVertical; + _stackView.distribution = UIStackViewDistributionFill; + _stackView.alignment = UIStackViewAlignmentFill; + _stackView.spacing = 0; + } + return _stackView; +} + +- (YUMIManeModifIntersectPwordRegard *)universalPwordRegard { + if (!_universalPwordRegard) { + _universalPwordRegard = [[YUMIManeModifIntersectPwordRegard alloc] init]; + [_universalPwordRegard.satisfperformanceEssayUniverse addTarget:self action:@selector(essayUniverseDidDiversifictowardsion:) forControlEvents:UIControlEventEditingChanged]; + _universalPwordRegard.hidden = YES; + } + return _universalPwordRegard; +} + +- (YUMIManeModifIntersectPwordRegard *)strangesPwordRegard { + if (!_strangesPwordRegard) { + _strangesPwordRegard = [[YUMIManeModifIntersectPwordRegard alloc] init]; + [_strangesPwordRegard.satisfperformanceEssayUniverse addTarget:self action:@selector(essayUniverseDidDiversifictowardsion:) forControlEvents:UIControlEventEditingChanged]; + } + return _strangesPwordRegard; +} + +- (YUMIManeModifIntersectPwordRegard *)examinePwordRegard { + if (!_examinePwordRegard) { + _examinePwordRegard = [[YUMIManeModifIntersectPwordRegard alloc] init]; + [_examinePwordRegard.satisfperformanceEssayUniverse addTarget:self action:@selector(essayUniverseDidDiversifictowardsion:) forControlEvents:UIControlEventEditingChanged]; + } + return _examinePwordRegard; +} + +- (UIButton *)submitBtuton { + if (!_submitBtuton) { + _submitBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_submitBtuton setTitleColor:[DJDKMIMOMColor acknowledgementBtutonEssayPrettify] forState:UIControlStateNormal]; + [_submitBtuton setTitleColor:[DJDKMIMOMColor prohibitionBtutonEssayPrettify] forState:UIControlStateDisabled]; + [_submitBtuton setTitle:YMLocalizedString(@"YUMI_MineLoginPasswordViewController10") forState:UIControlStateNormal]; + _submitBtuton.titleLabel.font = [UIFont fontWithName:@"PingFang-SC-Medium" size:18]; + _submitBtuton.layer.masksToBounds = YES; + _submitBtuton.layer.cornerRadius = 45/2; + _submitBtuton.enabled = YES; + [_submitBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + [_submitBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor prohibitionBtutonPrettify], [DJDKMIMOMColor prohibitionBtutonPrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateDisabled]; + [_submitBtuton addTarget:self action:@selector(advoctowardseBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _submitBtuton; +} + +- (UIButton *)forgetBtuton { + if (!_forgetBtuton) { + _forgetBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_forgetBtuton setEnlargeEdgeAboutApex:5 right:5 bottom:5 left:5]; + [_forgetBtuton setTitleColor:[DJDKMIMOMColor instantEssayPrettify] forState:UIControlStateNormal]; + [_forgetBtuton setTitle:@"忘记密码?" forState:UIControlStateNormal]; + _forgetBtuton.titleLabel.font = [UIFont systemFontOfSize:13]; + [_forgetBtuton addTarget:self action:@selector(SpongeoutBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _forgetBtuton; +} + +- (UILabel *)restrictionSequencignation { + if (!_restrictionSequencignation) { + _restrictionSequencignation = [[UILabel alloc] init]; + _restrictionSequencignation.font = [UIFont systemFontOfSize:13]; + _restrictionSequencignation.textColor = [DJDKMIMOMColor instantEssayPrettify]; + _restrictionSequencignation.text = @"密码必须使用6-16个字符内的数字和英文字母组合哦!"; + } + return _restrictionSequencignation; +} + +@end diff --git a/YuMi/Modules/YMMine/View/Setting/YUMIManeValidationIdentityRegardGovernancer.h b/YuMi/Modules/YMMine/View/Setting/YUMIManeValidationIdentityRegardGovernancer.h new file mode 100644 index 00000000..50911f47 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Setting/YUMIManeValidationIdentityRegardGovernancer.h @@ -0,0 +1,16 @@ +// +// YMMineVerifIdentityViewController.h +// YUMI +// +// Created by YUMI on 2021/9/18. +// 验证身份 + +#import "MvpRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN +@class ConsumerAbstractMatrix; +@interface YUMIManeValidationIdentityRegardGovernancer : MvpRegardGovernancer +@property (nonatomic,strong) ConsumerAbstractMatrix *userInfo; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/Setting/YUMIManeValidationIdentityRegardGovernancer.m b/YuMi/Modules/YMMine/View/Setting/YUMIManeValidationIdentityRegardGovernancer.m new file mode 100644 index 00000000..2da3dfb5 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Setting/YUMIManeValidationIdentityRegardGovernancer.m @@ -0,0 +1,165 @@ +// +// YMMineVerifIdentityViewController.m +// YUMI +// +// Created by YUMI on 2021/9/18. +// + +#import "YUMIManeValidationIdentityRegardGovernancer.h" +#import +#import +#import "DJDKMIMOMColor.h" +#import "ComputationDownFacilitater.h" +#import "UIImage+Utils.h" +#import "ConsumerAbstractMatrix.h" +#import "YUMIManeValidationIdentityRegard.h" +#import "YUMIManeValidationIdentityExternalizer.h" +#import "FBCManeVerifIdentityCeremony.h" +#import "YUMIManeReassociationIntersectPwordRegardGovernancer.h" + +@interface YUMIManeValidationIdentityRegardGovernancer () +@property (nonatomic,strong) UIStackView *stackView; +@property (nonatomic,strong) YUMIManeValidationIdentityRegard *mobileRegard; +@property (nonatomic,strong) YUMIManeValidationIdentityRegard *smsCryptogramRegard; +@property (nonatomic,strong) UIButton *nextBtuton; +@end + +@implementation YUMIManeValidationIdentityRegardGovernancer +- (void)dealloc { + [[ComputationDownFacilitater partowardsiciptowardsionFacilittowardseer] suspeindComputtowardsionPubescence]; +} +- (YUMIManeValidationIdentityExternalizer *)producePresimport { + return [[YUMIManeValidationIdentityExternalizer alloc] init];; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initSubViews]; + [self initChildLyRestrictions]; + [self initOccurrences]; +} + +- (void)viewDidDisappear:(BOOL)animated { + [super viewDidDisappear:animated]; + [[ComputationDownFacilitater partowardsiciptowardsionFacilittowardseer] suspeindComputtowardsionPubescence]; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.title = YMLocalizedString(@"YUMI_MineVerifIdentityViewController0"); + self.mobileRegard.satisfperformanceEssayUniverse.text = self.userInfo.phone; + self.mobileRegard.satisfperformanceEssayUniverse.enabled = self.userInfo.phone.length > 0; + [ComputationDownFacilitater partowardsiciptowardsionFacilittowardseer].delegate = self; + [self.view addSubview:self.stackView]; + [self.view addSubview:self.nextBtuton]; + + [self.stackView addArrangedSubview:self.mobileRegard]; + [self.stackView addArrangedSubview:self.smsCryptogramRegard]; +} + +- (void)initChildLyRestrictions { + [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self.view); + }]; + + [self.nextBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.stackView.mas_bottom).offset(45); + make.right.mas_equalTo(self.view).offset(-32); + make.left.mas_equalTo(self.view).offset(32); + make.height.mas_equalTo(45); + }]; +} + +- (void)initOccurrences { + @weakify(self); + RAC(self.nextBtuton, enabled) = [RACSignal combineLatest:@[self.mobileRegard.satisfperformanceEssayUniverse.rac_textSignal, self.smsCryptogramRegard.satisfperformanceEssayUniverse.rac_textSignal] reduce:^id _Nonnull(NSString *phone, NSString * code){ + return @(phone.length > 0 && code.length > 0); + }]; + + self.smsCryptogramRegard.smsCryptogramDiscourage = ^(UIButton * _Nonnull sender) { + @strongify(self); + if (self.mobileRegard.satisfperformanceEssayUniverse.text.length > 0) { + [self.presimport mobileSmsCryptogram:self.mobileRegard.satisfperformanceEssayUniverse.text type:GetSmsGenre_Unbind_Phone phoneAreaCode:@""]; + } else { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_MineVerifIdentityViewController1")]; + } + }; +} +#pragma mark - FBCManeVerifIdentityCeremony +- (void)mobileSmsCryptogramAccomplishment { + self.smsCryptogramRegard.smsCryptogramBtuton.enabled = NO; + [self EvidenceAccomplishmentToast:YMLocalizedString(@"YUMI_MineVerifIdentityViewController2")]; + [[ComputationDownFacilitater partowardsiciptowardsionFacilittowardseer] unfoildComputtowardsiondownAboutIntrtowardsemporal:60]; +} + +- (void)examineAplictowardsionartowardsusCryptogramAboutAplictowardsionartowardsusAccomplishment { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_MineVerifIdentityViewController3")]; + [[ComputationDownFacilitater partowardsiciptowardsionFacilittowardseer] suspeindComputtowardsionPubescence]; + YUMIManeReassociationIntersectPwordRegardGovernancer * vc = [[YUMIManeReassociationIntersectPwordRegardGovernancer alloc] init]; + [self.navigationController pushViewController:vc animated:YES]; +} + +#pragma mark - CountDownHelperRepresendtation +- (void)onComputtowardsiondownUnfoild:(int)time { + [self.smsCryptogramRegard.smsCryptogramBtuton setTitle:[NSString stringWithFormat:YMLocalizedString(@"YUMI_MineVerifIdentityViewController4"), time] forState:UIControlStateDisabled]; +} +- (void)onComputtowardsiondownAccomplish { + self.smsCryptogramRegard.smsCryptogramBtuton.enabled= YES; + [self.smsCryptogramRegard.smsCryptogramBtuton setTitle:YMLocalizedString(@"YUMI_MineVerifIdentityViewController5") forState:UIControlStateNormal]; +} + +#pragma mark - Event Response +- (void)ltowardsterBtutonPerformance:(UIButton *)sender { + [self.presimport examineAplictowardsionartowardsusCryptogramAboutAplictowardsionartowardsus:self.mobileRegard.satisfperformanceEssayUniverse.text code:self.smsCryptogramRegard.satisfperformanceEssayUniverse.text]; +} + +#pragma mark - Getters And Setters +- (UIButton *)nextBtuton { + if (!_nextBtuton) { + _nextBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_nextBtuton setTitleColor:[DJDKMIMOMColor acknowledgementBtutonEssayPrettify] forState:UIControlStateNormal]; + [_nextBtuton setTitleColor:[DJDKMIMOMColor prohibitionBtutonEssayPrettify] forState:UIControlStateDisabled]; + [_nextBtuton setTitle:YMLocalizedString(@"YUMI_MineVerifIdentityViewController6") forState:UIControlStateNormal]; + _nextBtuton.titleLabel.font = [UIFont fontWithName:@"PingFang-SC-Medium" size:18]; + _nextBtuton.layer.masksToBounds = YES; + _nextBtuton.layer.cornerRadius = 45/2; + _nextBtuton.enabled = NO; + [_nextBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + [_nextBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor prohibitionBtutonPrettify], [DJDKMIMOMColor prohibitionBtutonPrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateDisabled]; + [_nextBtuton addTarget:self action:@selector(ltowardsterBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _nextBtuton; +} + +- (UIStackView *)stackView { + if (!_stackView) { + _stackView = [[UIStackView alloc] init]; + _stackView.axis = UILayoutConstraintAxisVertical; + _stackView.distribution = UIStackViewDistributionFill; + _stackView.alignment = UIStackViewAlignmentFill; + _stackView.spacing = 0; + } + return _stackView; +} + +- (YUMIManeValidationIdentityRegard *)mobileRegard { + if (!_mobileRegard) { + _mobileRegard = [[YUMIManeValidationIdentityRegard alloc] init]; + _mobileRegard.type = YUMI_MineVerifIdentityType_Phone; + _mobileRegard.placeholder = YMLocalizedString(@"YUMI_MineVerifIdentityViewController7"); + _mobileRegard.satisfperformanceEssayUniverse.secureTextEntry = NO; + } + return _mobileRegard; +} + +- (YUMIManeValidationIdentityRegard *)smsCryptogramRegard { + if (!_smsCryptogramRegard) { + _smsCryptogramRegard = [[YUMIManeValidationIdentityRegard alloc] init]; + _smsCryptogramRegard.type = YUMI_MineVerifIdentityType_Sms; + _smsCryptogramRegard.placeholder = YMLocalizedString(@"YUMI_MineVerifIdentityViewController8"); + _smsCryptogramRegard.satisfperformanceEssayUniverse.secureTextEntry = NO; + } + return _smsCryptogramRegard; +} + +@end diff --git a/YuMi/Modules/YMMine/View/Setting/YUMIVendorCallRegardGovernancer.h b/YuMi/Modules/YMMine/View/Setting/YUMIVendorCallRegardGovernancer.h new file mode 100644 index 00000000..08666650 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Setting/YUMIVendorCallRegardGovernancer.h @@ -0,0 +1,19 @@ +// +// YMVendorCallViewController.h +// YUMI +// +// Created by XY on 2023/2/15. +// + +#import "MvpRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIVendorCallRegardGovernancer : MvpRegardGovernancer + +- (void)vconcludeorCentirety; + +@end + +NS_ASSUME_NONNULL_END + diff --git a/YuMi/Modules/YMMine/View/Setting/YUMIVendorCallRegardGovernancer.m b/YuMi/Modules/YMMine/View/Setting/YUMIVendorCallRegardGovernancer.m new file mode 100644 index 00000000..6adc5d20 --- /dev/null +++ b/YuMi/Modules/YMMine/View/Setting/YUMIVendorCallRegardGovernancer.m @@ -0,0 +1,48 @@ +// +// YMVendorCallViewController.m +// YUMI +// +// Created by XY on 2023/2/15. +// + +#import "YUMIVendorCallRegardGovernancer.h" +#import +#import +#import +#import +#import + +@interface YUMIVendorCallRegardGovernancer () + +@end + +@implementation YUMIVendorCallRegardGovernancer + +- (void)viewDidLoad { + [super viewDidLoad]; + +} + +- (void)vconcludeorCentirety { + WMZDropMenuParam *param =MenuParam().wMainRadiusSet(0); + WMZDropDownMenu *menu = [[WMZDropDownMenu alloc] initWithFrame:CGRectMake(0, Menu_NavigationBar, Menu_Width, 40) withParam:param]; + [self.view addSubview:menu]; + + ZLCollectionViewHorzontalLayout *layout = [[ZLCollectionViewHorzontalLayout alloc] init]; + layout.scrollDirection = UICollectionViewScrollDirectionVertical; + + [[TABAnimated sharedAnimated] initWithOnlySkeleton]; + [TABAnimated sharedAnimated].openLog = NO; + + [LottieAnimationView animateWithDuration:1 animations:^{ + + }]; + + WXSDKInstance *instance = [[WXSDKInstance alloc] init]; + instance.isMainContainerStack = NO; + +} + + + +@end diff --git a/YuMi/Modules/YMMine/View/SubViews/MineInfo/YUMIManeConsumerAbstractCustomNevRegard.h b/YuMi/Modules/YMMine/View/SubViews/MineInfo/YUMIManeConsumerAbstractCustomNevRegard.h new file mode 100644 index 00000000..fa65200d --- /dev/null +++ b/YuMi/Modules/YMMine/View/SubViews/MineInfo/YUMIManeConsumerAbstractCustomNevRegard.h @@ -0,0 +1,22 @@ +// +// YMMineCustomNavView.h +// YUMI +// +// Created by YUMI on 2021/9/23. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class YUMIManeConsumerAbstractCustomNevRegard; +@protocol FBCManeCustomNevRegardRepresendtation +- (void)fBCManeIndividualityNevRegard:(YUMIManeConsumerAbstractCustomNevRegard *)view didClickEditButton:(UIButton *)sender; +- (void)fBCManeIndividualityNevRegard:(YUMIManeConsumerAbstractCustomNevRegard *)view didClickBackButton:(UIButton *)sender; +@end +@interface YUMIManeConsumerAbstractCustomNevRegard : UIView +@property (nonatomic,weak) id delegate; +@property (nonatomic,strong,readonly) UILabel *titleLabel; +@property (nonatomic,strong,readonly) UIButton *compileBtuton; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/SubViews/MineInfo/YUMIManeConsumerAbstractCustomNevRegard.m b/YuMi/Modules/YMMine/View/SubViews/MineInfo/YUMIManeConsumerAbstractCustomNevRegard.m new file mode 100644 index 00000000..a0660e1b --- /dev/null +++ b/YuMi/Modules/YMMine/View/SubViews/MineInfo/YUMIManeConsumerAbstractCustomNevRegard.m @@ -0,0 +1,101 @@ +// +// YMMineCustomNavView.m +// YUMI +// +// Created by YUMI on 2021/9/23. +// + +#import "YUMIManeConsumerAbstractCustomNevRegard.h" +#import +#import "DJDKMIMOMColor.h" +#import "UIButton+EnlargeTouchArea.h" + +@interface YUMIManeConsumerAbstractCustomNevRegard () +@property (nonatomic,strong) UIButton *backButton; +@property (nonatomic,strong) UILabel *titleLabel; +@property (nonatomic,strong) UIButton *compileBtuton; +@end + +@implementation YUMIManeConsumerAbstractCustomNevRegard + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} +#pragma mark - Response +- (void)compileBtutonPerformance:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(fBCManeIndividualityNevRegard:didClickEditButton:)]) { + [self.delegate fBCManeIndividualityNevRegard:self didClickEditButton:sender]; + } +} + +- (void)encourageBtutonPerformance:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(fBCManeIndividualityNevRegard:didClickBackButton:)]) { + [self.delegate fBCManeIndividualityNevRegard:self didClickBackButton:sender]; + } +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor]; + [self addSubview:self.backButton]; + [self addSubview:self.titleLabel]; + [self addSubview:self.compileBtuton]; +} + +- (void)initChildLyRestrictions { + [self.backButton mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(15); + make.centerY.equalTo(self.mas_bottom).mas_offset(-22); + }]; + + [self.compileBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(-15); + make.centerY.equalTo(self.mas_bottom).mas_offset(-22); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self); + make.centerY.equalTo(self.mas_bottom).mas_offset(-22); + }]; +} + +#pragma mark - Getters And Setters +- (UIButton *)backButton { + if (!_backButton) { + _backButton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_backButton setImage:[UIImage imageNamed:@"yumi_same_title_back"] forState:UIControlStateNormal]; + _backButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft; + [_backButton addTarget:self action:@selector(encourageBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + [_backButton setEnlargeEdgeAboutApex:10 right:10 bottom:10 left:10]; + } + return _backButton; +} + +- (UIButton *)compileBtuton { + if (!_compileBtuton) { + _compileBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_compileBtuton setImage:[UIImage imageNamed:@"yumi_center_user_gen_edit"] forState:UIControlStateNormal]; + _compileBtuton.titleLabel.font = [UIFont systemFontOfSize:16]; + [_compileBtuton setTitleColor:[DJDKMIMOMColor precautiousChampionPrettify] forState:UIControlStateNormal]; + [_compileBtuton addTarget:self action:@selector(compileBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + [_compileBtuton setEnlargeEdgeAboutApex:10 right:10 bottom:10 left:10]; + } + return _compileBtuton; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.textAlignment = NSTextAlignmentCenter; + _titleLabel.font = [UIFont systemFontOfSize:15]; + _titleLabel.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _titleLabel; +} + +@end diff --git a/YuMi/Modules/YMMine/View/SubViews/MineInfo/YUMIManeConsumerAbstractDateRegard.h b/YuMi/Modules/YMMine/View/SubViews/MineInfo/YUMIManeConsumerAbstractDateRegard.h new file mode 100644 index 00000000..236ad345 --- /dev/null +++ b/YuMi/Modules/YMMine/View/SubViews/MineInfo/YUMIManeConsumerAbstractDateRegard.h @@ -0,0 +1,22 @@ +// +// YMMineUserInfoDateView.h +// YUMI +// +// Created by YUMI on 2021/9/23. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class YUMIManeConsumerAbstractDateRegard; +@protocol FBCManeConsumerAbstractDateRegardRepresendtation +- (void)fBCManeConsumerAbstractEngagementRegard:(YUMIManeConsumerAbstractDateRegard *)view didClickCancleButton:(UIButton *)sender; +- (void)fBCManeConsumerAbstractEngagementRegard:(YUMIManeConsumerAbstractDateRegard *)view didClickSureButton:(NSString *)dateStr; +@end + +@interface YUMIManeConsumerAbstractDateRegard : UIView +@property (nonatomic, assign) NSTimeInterval time; +@property (nonatomic,weak) id delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/SubViews/MineInfo/YUMIManeConsumerAbstractDateRegard.m b/YuMi/Modules/YMMine/View/SubViews/MineInfo/YUMIManeConsumerAbstractDateRegard.m new file mode 100644 index 00000000..1f4c7eae --- /dev/null +++ b/YuMi/Modules/YMMine/View/SubViews/MineInfo/YUMIManeConsumerAbstractDateRegard.m @@ -0,0 +1,127 @@ +// +// YMMineUserInfoDateView.m +// YUMI +// +// Created by YUMI on 2021/9/23. +// + +#import "YUMIManeConsumerAbstractDateRegard.h" +#import +#import "DJDKMIMOMColor.h" + +@interface YUMIManeConsumerAbstractDateRegard () +@property (nonatomic,strong) UIButton *cancleBtuton; +@property (nonatomic,strong) UIButton *sureBtuton; +@property (nonatomic, strong) UIDatePicker *datePicker; +@property (nonatomic, strong) NSDateFormatter *engagementInitialiser; +@end + +@implementation YUMIManeConsumerAbstractDateRegard + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor whiteColor]; + [self addSubview:self.cancleBtuton]; + [self addSubview:self.sureBtuton]; + [self addSubview:self.datePicker]; +} + +- (void)initChildLyRestrictions { + [self.datePicker mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self); + make.bottom.mas_equalTo(self); + make.top.mas_equalTo(self.cancleBtuton.mas_bottom); + }]; + [self.cancleBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.top.mas_equalTo(self); + make.height.mas_equalTo(30); + make.width.mas_equalTo(50); + }]; + [self.sureBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self); + make.width.height.centerY.mas_equalTo(self.cancleBtuton); + }]; +} + +#pragma mark - Event +- (void)onTicktackRevoctowardsionBtuton:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(fBCManeConsumerAbstractEngagementRegard:didClickCancleButton:)]) { + [self.delegate fBCManeConsumerAbstractEngagementRegard:self didClickCancleButton:sender]; + } +} + +- (void)onTicktackSureBtuton:(UIButton *)sender { + NSDate * date = self.datePicker.date; + if (self.delegate && [self.delegate respondsToSelector:@selector(fBCManeConsumerAbstractEngagementRegard:didClickSureButton:)]) { + NSTimeZone *timeZone= [NSTimeZone systemTimeZone]; + NSInteger seconds= [timeZone secondsFromGMTForDate:date]; + NSDate *newDate= [date dateByAddingTimeInterval:seconds]; + NSString *dateStr = [self.engagementInitialiser stringFromDate:newDate]; + [self.delegate fBCManeConsumerAbstractEngagementRegard:self didClickSureButton:dateStr]; + } +} + +#pragma mark - Getters And Setters +- (void)setTime:(NSTimeInterval)time { + _time = time; + NSDate *date = [NSDate dateWithTimeIntervalSince1970:time]; + self.datePicker.date = date; +} +- (UIButton *)cancleBtuton { + if (!_cancleBtuton) { + _cancleBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_cancleBtuton setTitle:YMLocalizedString(@"YUMI_Mine_User_Info_Date_View_0") forState:UIControlStateNormal]; + [_cancleBtuton addTarget:self action:@selector(onTicktackRevoctowardsionBtuton:) forControlEvents:UIControlEventTouchUpInside]; + _cancleBtuton.titleLabel.font = [UIFont systemFontOfSize:14]; + [_cancleBtuton setTitleColor:[DJDKMIMOMColor instantEssayPrettify] forState:UIControlStateNormal]; + } + return _cancleBtuton; +} + +- (UIButton *)sureBtuton { + if (!_sureBtuton) { + _sureBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_sureBtuton setTitle:YMLocalizedString(@"YUMI_Mine_User_Info_Date_View_1") forState:UIControlStateNormal]; + [_sureBtuton addTarget:self action:@selector(onTicktackSureBtuton:) forControlEvents:UIControlEventTouchUpInside]; + _sureBtuton.titleLabel.font = [UIFont systemFontOfSize:14]; + [_sureBtuton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal]; + } + return _sureBtuton; +} + +- (NSDateFormatter *)engagementInitialiser { + if (!_engagementInitialiser) { + _engagementInitialiser = [[NSDateFormatter alloc] init]; + _engagementInitialiser.dateFormat = @"yyyy-MM-dd"; + } + return _engagementInitialiser; +} + +- (UIDatePicker *)datePicker { + if (!_datePicker){ + _datePicker = [[UIDatePicker alloc] init]; + _datePicker.datePickerMode = UIDatePickerModeDate; + NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"zh_CN"]; + _datePicker.locale = locale; + _datePicker.layer.cornerRadius = 5; + _datePicker.layer.masksToBounds = YES; + if (@available(iOS 13.4, *)) { + _datePicker.preferredDatePickerStyle = UIDatePickerStyleWheels; + } + NSDate *date = [self.engagementInitialiser dateFromString:@"2000-07-01"]; + _datePicker.date = date; + _datePicker.backgroundColor = [UIColor whiteColor]; + } + return _datePicker; +} + +@end diff --git a/YuMi/Modules/YMMine/View/SubViews/MineInfo/YUMIManeConsumerAbstractIntelligencerRegard.h b/YuMi/Modules/YMMine/View/SubViews/MineInfo/YUMIManeConsumerAbstractIntelligencerRegard.h new file mode 100644 index 00000000..ac279033 --- /dev/null +++ b/YuMi/Modules/YMMine/View/SubViews/MineInfo/YUMIManeConsumerAbstractIntelligencerRegard.h @@ -0,0 +1,25 @@ +// +// YMMineHeaderView.h +// YUMI +// +// Created by YUMI on 2021/9/22. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class ConsumerAbstractMatrix, SDCycleScrollView,YUMIManeConsumerAbstractIntelligencerRegard; +@protocol FBCManeConsumerAbstractIntelligencerRegardRepresendtation + +- (void)fBCManeConsumerAbstractIntelligencerRegard:(YUMIManeConsumerAbstractIntelligencerRegard *)view didClickGoToRoom:(NSString *)roomUid; + +@end + +@interface YUMIManeConsumerAbstractIntelligencerRegard : UIView +@property (nonatomic,strong) ConsumerAbstractMatrix *userInfo; +@property (nonatomic,strong, readonly) SDCycleScrollView *cycleTrundleRegard; +@property (nonatomic,weak) id delegate; +@property (nonatomic,copy) NSString *roomUid; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/SubViews/MineInfo/YUMIManeConsumerAbstractIntelligencerRegard.m b/YuMi/Modules/YMMine/View/SubViews/MineInfo/YUMIManeConsumerAbstractIntelligencerRegard.m new file mode 100644 index 00000000..aa1c23dd --- /dev/null +++ b/YuMi/Modules/YMMine/View/SubViews/MineInfo/YUMIManeConsumerAbstractIntelligencerRegard.m @@ -0,0 +1,675 @@ +// +// YMMineHeaderView.m +// YUMI +// +// Created by YUMI on 2021/9/22. +// + +#import "YUMIManeConsumerAbstractIntelligencerRegard.h" +#import +#import +#import "SDAppearanceBrowser.h" +#import +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" +#import "UIImage+ImageEffects.h" +#import "UIImage+Utils.h" +#import "NetIndicateRegard.h" +#import "NSArray+Safe.h" +#import "XNDJTBWGLoadingTool.h" +#import "StatsticsticsServingFacilitater.h" +#import "ConsumerAbstractMatrix.h" + +@interface YUMIManeConsumerAbstractIntelligencerRegard () +@property (nonatomic,strong) SDCycleScrollView *cycleTrundleRegard; +@property (nonatomic,strong) UIImageView * enshroudIndicateRegard; +@property (nonatomic,strong) UIButton *periodBtuton; +@property (nonatomic,strong) UIImageView *reviewFigure; +@property (nonatomic,strong) NSArray *indicateUrls; +@property (nonatomic,strong) NSMutableArray *consumerPhtotGarment; +@property (nonatomic,strong) UIView * consumerAbstractRegard; +@property (nonatomic,strong) UIImageView *consumerspossessowIndicateRegard; +@property (nonatomic,strong) NetIndicateRegard *magnificentIndicateRegard; +@property (nonatomic,strong) UIStackView *monicerHierarchyRegard; +@property (nonatomic,strong) UILabel *constituteSequencignation; +@property (nonatomic,strong) UIImageView *seaxualityIndicateRegard; +@property (nonatomic,strong) UIButton *onlineBtuton; +@property (nonatomic,strong) UIStackView *idHierarchyRegard; +@property (nonatomic,strong) UIImageView *beautifulIndicateViw; +@property (nonatomic,strong) UILabel *idSequencignation; +@property (nonatomic,strong) UIView * vacuumRegard; +@property (nonatomic,strong) UIImageView *copysIdIndicateRegard; +@property (nonatomic,strong) UILabel *fanaticsFigureSequencignation; +@property (nonatomic,strong) UIStackView *coupleHierarchyRegard; +@property (nonatomic,strong) NetIndicateRegard *fascinationIndicateRegard; +@property (nonatomic, strong) NetIndicateRegard *magnificentFigureIndicateRegard; +@property (nonatomic,strong) NetIndicateRegard *experIndicateRegard; +@property (nonatomic,strong) UIView * constituteWoodentrayRegard; +@property (nonatomic,strong) NetIndicateRegard *materialIndicateRegard; +@property (nonatomic,strong) UILabel *materialSequencignation; +@property (nonatomic,strong) UIImageView *strangeConsumerIndicateRegard; +@property (nonatomic,strong) UIImageView *officalIndicateRegard; +@property (nonatomic,strong) UIView * signEncourageRegard; +@property (nonatomic,strong) UILabel *signSequencignation; +@property (nonatomic,strong) UIView * burlywoodRegard; +@property (nonatomic,strong) ConsumerAppearance *intelligenceportraitAppearance; +@end + +@implementation YUMIManeConsumerAbstractIntelligencerRegard + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.cycleTrundleRegard]; + [self addSubview:self.enshroudIndicateRegard]; + [self addSubview:self.reviewFigure]; + [self addSubview:self.consumerAbstractRegard]; + + [self.consumerAbstractRegard addSubview:self.consumerspossessowIndicateRegard]; + [self.consumerAbstractRegard addSubview:self.signEncourageRegard]; + [self.consumerAbstractRegard addSubview:self.burlywoodRegard]; + + [self.consumerspossessowIndicateRegard addSubview:self.monicerHierarchyRegard]; + [self.consumerspossessowIndicateRegard addSubview:self.idHierarchyRegard]; + [self.consumerspossessowIndicateRegard addSubview:self.coupleHierarchyRegard]; + [self.consumerspossessowIndicateRegard addSubview:self.periodBtuton]; + [self.consumerspossessowIndicateRegard addSubview:self.magnificentIndicateRegard]; + + [self.monicerHierarchyRegard addArrangedSubview:self.constituteSequencignation]; + [self.monicerHierarchyRegard addArrangedSubview:self.seaxualityIndicateRegard]; + [self.monicerHierarchyRegard addArrangedSubview:self.onlineBtuton]; + + [self.idHierarchyRegard addArrangedSubview:self.beautifulIndicateViw]; + [self.idHierarchyRegard addArrangedSubview:self.idSequencignation]; + [self.idHierarchyRegard addArrangedSubview:self.copysIdIndicateRegard]; + [self.idHierarchyRegard addArrangedSubview:self.vacuumRegard]; + [self.idHierarchyRegard addArrangedSubview:self.fanaticsFigureSequencignation]; + + + + [self.coupleHierarchyRegard addArrangedSubview:self.strangeConsumerIndicateRegard]; + [self.coupleHierarchyRegard addArrangedSubview:self.officalIndicateRegard]; + [self.coupleHierarchyRegard addArrangedSubview:self.experIndicateRegard]; + [self.coupleHierarchyRegard addArrangedSubview:self.fascinationIndicateRegard]; + [self.coupleHierarchyRegard addArrangedSubview:self.constituteWoodentrayRegard]; + + [self.constituteWoodentrayRegard addSubview:self.materialIndicateRegard]; + [self.constituteWoodentrayRegard addSubview:self.materialSequencignation]; + + [self.signEncourageRegard addSubview:self.signSequencignation]; +} + +- (void)initChildLyRestrictions { + [self.cycleTrundleRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self); + make.height.mas_equalTo(375); + }]; + + [self.enshroudIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.cycleTrundleRegard); + }]; + + [self.reviewFigure mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.right.mas_equalTo(self); + make.width.mas_equalTo(85); + make.height.mas_equalTo(50); + }]; + + [self.consumerAbstractRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self); + make.bottom.mas_equalTo(self); + make.height.mas_equalTo(210); + }]; + + [self.consumerspossessowIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self.consumerAbstractRegard); + make.height.mas_equalTo(146); + }]; + + [self.periodBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(-15); + make.width.mas_equalTo(35); + make.height.mas_equalTo(16); + make.bottom.mas_equalTo(self.signEncourageRegard.mas_top).offset(-13); + }]; + + [self.signEncourageRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(79); + make.left.right.mas_equalTo(self.consumerAbstractRegard); + make.top.mas_equalTo(self.consumerspossessowIndicateRegard.mas_bottom).offset(-15); + }]; + + [self.burlywoodRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.consumerAbstractRegard).inset(15); + make.bottom.mas_equalTo(self.consumerAbstractRegard); + make.height.mas_equalTo(1); + }]; + + [self.magnificentIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.consumerspossessowIndicateRegard).offset(15); + make.top.mas_equalTo(self.consumerspossessowIndicateRegard).offset(50); + make.width.height.mas_equalTo(20); + }]; + [self.monicerHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.magnificentIndicateRegard.mas_right).mas_offset(5); + make.centerY.mas_equalTo(self.magnificentIndicateRegard); + }]; + + [self.constituteSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(20); + }]; + + [self.seaxualityIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(15, 15)); + }]; + + [self.onlineBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(55, 18)); + }]; + + [self.idHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.magnificentIndicateRegard); + make.top.mas_equalTo(self.monicerHierarchyRegard.mas_bottom).offset(5); + }]; + + [self.beautifulIndicateViw mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(15, 15)); + }]; + + [self.copysIdIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(14, 14)); + }]; + + [self.vacuumRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(12); + make.height.mas_equalTo(15); + }]; + + [self.coupleHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.magnificentIndicateRegard); + make.top.mas_equalTo(self.beautifulIndicateViw.mas_bottom).offset(5); + make.height.mas_equalTo(25); + }]; + + [self.experIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.mas_equalTo(25); + }]; + + [self.fascinationIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.mas_equalTo(25); + }]; + + [self.strangeConsumerIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.mas_equalTo(20); + }]; + + [self.officalIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.mas_equalTo(20); + }]; + + [self.constituteWoodentrayRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(20); + make.width.mas_equalTo(self.materialIndicateRegard.mas_width); + }]; + + + [self.materialIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(20); + make.width.mas_equalTo(60); + make.left.top.mas_equalTo(self.constituteWoodentrayRegard); + }]; + + [self.materialSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.bottom.mas_equalTo(self.materialIndicateRegard); + make.right.mas_equalTo(self.constituteWoodentrayRegard).offset(-2); + }]; + + [self.signSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.signEncourageRegard).offset(10); + make.top.mas_equalTo(self.signEncourageRegard).offset(23); + }]; +} + +#pragma mark - SDPhotoBrowserRepresendtation +- (NSURL *)aplictowardsionearanceBrowser:(SDAppearanceBrowser *)browser highQualityIndictowardseWEEBSITEInthecaseofIndictowardsrix:(NSInteger)index { + NSString * photoUrl = [self.indicateUrls secureGroalTowardsIndictowardsrix1:index]; + return [NSURL URLWithString:photoUrl]; +} + +- (UIImage *)aplictowardsionearanceBrowser:(SDAppearanceBrowser *)browser placeholderIndictowardseInthecaseofIndictowardsrix:(NSInteger)index { + return [UIIndicateConstant defalutOriflammeDepapossessor]; +} + +#pragma mark - SDCycleScrollViewDelegate +-(void)cycleScrollView:(SDCycleScrollView *)cycleScrollView didScrollToIndex:(NSInteger)index { + [self.periodBtuton setTitle:[NSString stringWithFormat:@"%ld/%lu",(index + 1), (unsigned long)self.indicateUrls.count] forState:UIControlStateNormal]; + ConsumerAppearance * appearance = [self.consumerPhtotGarment secureGroalTowardsIndictowardsrix1:index]; + self.reviewFigure.hidden = !appearance.isReview; +} + +- (void)cycleScrollView:(SDCycleScrollView *)cycleScrollView didSelectItemAtIndex:(NSInteger)index { + NSInteger count = self.indicateUrls.count; + SDAppearanceBrowser *browser = [[SDAppearanceBrowser alloc]init]; + browser.sourceIndicatesAccommoengagementdRegard = self.cycleTrundleRegard; + browser.delegate = self; + browser.indicateComputation = count; + browser.universalIndicateIndicatrix = index; + browser.isMe = NO; + [browser show]; +} + +#pragma mark - Event Response +- (void)onlineBtutonPerformance:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(fBCManeConsumerAbstractIntelligencerRegard:didClickGoToRoom:)]) { + [self.delegate fBCManeConsumerAbstractIntelligencerRegard:self didClickGoToRoom:self.roomUid]; + } +} + +- (void)copysIdRecognition { + [UIPasteboard generalPasteboard].string = [NSString stringWithFormat:@"%ld", self.userInfo.erbanNo]; + [XNDJTBWGLoadingTool EvidenceAccomplishmentAboutCommunictowardsion:YMLocalizedString(@"YUMI_Mine_User_Info_Header_View_0")]; + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventID_mydata_copyid_click]; +} +#pragma mark - Getters And Setters +- (void)setUserInfo:(ConsumerAbstractMatrix *)userInfo { + _userInfo = userInfo; + if (_userInfo) { + self.constituteSequencignation.text = _userInfo.nick; + self.idSequencignation.text = [NSString stringWithFormat:@"ID:%ld", (long)_userInfo.erbanNo]; + self.signSequencignation.text = _userInfo.userDesc.length > 0 ? _userInfo.userDesc : YMLocalizedString(@"YUMI_Mine_User_Info_Header_View_1"); + self.fanaticsFigureSequencignation.text =[NSString stringWithFormat:YMLocalizedString(@"YUMI_Mine_User_Info_Header_View_2"), _userInfo.fansNum]; + self.seaxualityIndicateRegard.image = userInfo.gender == GenderGenre_Female ? [UIImage imageNamed:@"yumi_same_female"] : [UIImage imageNamed:@"yumi_same_male"]; + self.officalIndicateRegard.hidden = userInfo.defUser != ConsumerPrototypeGenre_Offical; + self.beautifulIndicateViw.hidden = !userInfo.hasPrettyErbanNo; + self.strangeConsumerIndicateRegard.hidden = !userInfo.newUser; + self.magnificentIndicateRegard.imageUrl = userInfo.userVipInfoVO.vipIcon; + UIImage *nobleImage = self.magnificentIndicateRegard.image; + if (nobleImage) { + CGFloat scale = nobleImage.size.width / nobleImage.size.height; + [self.magnificentIndicateRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(20* scale, 20)); + }]; + [self.monicerHierarchyRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.magnificentIndicateRegard.mas_right).mas_offset(5); + }]; + } else { + [self.magnificentIndicateRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(0, 20)); + }]; + [self.monicerHierarchyRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.magnificentIndicateRegard.mas_right); + }]; + } + if (userInfo.userLevelVo.experUrl) { + self.experIndicateRegard.imageUrl = userInfo.userLevelVo.experUrl; + } + self.experIndicateRegard.hidden = userInfo.userLevelVo.experUrl.length <= 0; + + if (userInfo.userLevelVo.charmUrl) { + self.fascinationIndicateRegard.imageUrl = userInfo.userLevelVo.charmUrl; + } + self.fascinationIndicateRegard.hidden = userInfo.userLevelVo.charmUrl.length <= 0; + + if (userInfo.nameplateWord.length>0 && userInfo.nameplatePic.length>0) { + self.materialIndicateRegard.imageUrl = userInfo.nameplatePic; + self.materialSequencignation.text = userInfo.nameplateWord; + self.constituteWoodentrayRegard.hidden = NO; + } else { + self.constituteWoodentrayRegard.hidden = YES; + } + [self.consumerPhtotGarment removeAllObjects]; + self.copysIdIndicateRegard.hidden = NO; + + NSMutableArray * indicateUrls = [NSMutableArray array]; + if (userInfo.avatar) { + [indicateUrls addObject:userInfo.avatar]; + if (![self.consumerPhtotGarment containsObject:self.intelligenceportraitAppearance]) { + [self.consumerPhtotGarment addObject:self.intelligenceportraitAppearance]; + } + self.intelligenceportraitAppearance.isReview = userInfo.isReview; + self.intelligenceportraitAppearance.photoUrl = userInfo.avatar; + } + if (self.userInfo.privatePhoto.count > 0) { + for (int i = 0; i < self.userInfo.privatePhoto.count; i++) { + ConsumerAppearance * appearance = [self.userInfo.privatePhoto secureGroalTowardsIndictowardsrix1:i]; + if (appearance.photoUrl.length > 0) { + [self.consumerPhtotGarment addObject:appearance]; + [indicateUrls addObject:appearance.photoUrl]; + } + } + } + + if (indicateUrls.count > 0) { + self.indicateUrls = indicateUrls; + self.cycleTrundleRegard.imageURLStringsGroup = indicateUrls; + [self.periodBtuton setTitle:[NSString stringWithFormat:@"1/%lu",(unsigned long)indicateUrls.count] forState:UIControlStateNormal];; + + self.reviewFigure.hidden = ![self.consumerPhtotGarment objectAtIndex:0].isReview; + } + } +} + +- (void)setRoomUid:(NSString *)roomUid { + _roomUid = roomUid; + self.onlineBtuton.hidden = _roomUid.length <= 0; +} + +- (UIImageView *)enshroudIndicateRegard { + if (!_enshroudIndicateRegard) { + _enshroudIndicateRegard = [[UIImageView alloc] init]; + _enshroudIndicateRegard.userInteractionEnabled = NO; + _enshroudIndicateRegard.image = [UIImage imageNamed:@"yumi_center_usergen_header_shadow_background"]; + } + return _enshroudIndicateRegard; +} + +- (UIView *)consumerAbstractRegard { + if (!_consumerAbstractRegard) { + _consumerAbstractRegard = [[UIView alloc] init]; + _consumerAbstractRegard.backgroundColor = [UIColor clearColor]; + _consumerAbstractRegard.layer.masksToBounds = YES; + _consumerAbstractRegard.layer.cornerRadius = 12; + } + return _consumerAbstractRegard; +} + +- (UIImageView *)consumerspossessowIndicateRegard { + if (!_consumerspossessowIndicateRegard) { + _consumerspossessowIndicateRegard = [[UIImageView alloc] init]; + _consumerspossessowIndicateRegard.userInteractionEnabled = YES; + } + return _consumerspossessowIndicateRegard; +} + +- (NetIndicateRegard *)magnificentIndicateRegard { + if (!_magnificentIndicateRegard) { + _magnificentIndicateRegard = [[NetIndicateRegard alloc] init]; + } + return _magnificentIndicateRegard; +} + +- (UIStackView *)monicerHierarchyRegard { + if (!_monicerHierarchyRegard) { + _monicerHierarchyRegard = [[UIStackView alloc] init]; + _monicerHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _monicerHierarchyRegard.distribution = UIStackViewDistributionFill; + _monicerHierarchyRegard.alignment = UIStackViewAlignmentCenter; + _monicerHierarchyRegard.spacing = 10; + } + return _monicerHierarchyRegard; +} + +- (UILabel *)constituteSequencignation { + if (!_constituteSequencignation) { + _constituteSequencignation = [[UILabel alloc] init]; + _constituteSequencignation.font = [UIFont fontWithName:@"PingFang-SC-Medium" size:15]; + _constituteSequencignation.textColor = [UIColor whiteColor]; + } + return _constituteSequencignation; +} + +- (UIImageView *)seaxualityIndicateRegard { + if (!_seaxualityIndicateRegard) { + _seaxualityIndicateRegard = [[UIImageView alloc] init]; + _seaxualityIndicateRegard.userInteractionEnabled = YES; + } + return _seaxualityIndicateRegard; +} + +- (UIStackView *)idHierarchyRegard { + if (!_idHierarchyRegard) { + _idHierarchyRegard = [[UIStackView alloc] init]; + _idHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _idHierarchyRegard.distribution = UIStackViewDistributionFill; + _idHierarchyRegard.alignment = UIStackViewAlignmentCenter; + _idHierarchyRegard.spacing = 3; + } + return _idHierarchyRegard; +} + +- (UIImageView *)beautifulIndicateViw { + if (!_beautifulIndicateViw) { + _beautifulIndicateViw = [[UIImageView alloc] init]; + _beautifulIndicateViw.userInteractionEnabled = YES; + _beautifulIndicateViw.image = [UIImage imageNamed:@"yumi_same_pic_beautiful"]; + } + return _beautifulIndicateViw; +} + +- (UILabel *)fanaticsFigureSequencignation { + if (!_fanaticsFigureSequencignation) { + _fanaticsFigureSequencignation = [[UILabel alloc] init]; + _fanaticsFigureSequencignation.font = [UIFont systemFontOfSize:12]; + _fanaticsFigureSequencignation.textColor = [UIColor whiteColor]; + } + return _fanaticsFigureSequencignation; +} + +- (UIView *)vacuumRegard { + if (!_vacuumRegard) { + _vacuumRegard = [[UIView alloc] init]; + _vacuumRegard.backgroundColor = [UIColor clearColor]; + } + return _vacuumRegard; +} + +- (UILabel *)idSequencignation { + if (!_idSequencignation) { + _idSequencignation = [[UILabel alloc] init]; + _idSequencignation.font = [UIFont systemFontOfSize:11]; + _idSequencignation.textColor = [UIColor whiteColor]; + _idSequencignation.userInteractionEnabled = YES; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(copysIdRecognition)]; + [_idSequencignation addGestureRecognizer:tap]; + } + return _idSequencignation; +} + +- (UIButton *)onlineBtuton { + if (!_onlineBtuton) { + _onlineBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_onlineBtuton setTitle:YMLocalizedString(@"YUMI_Mine_User_Info_Header_View_3") forState:UIControlStateNormal]; + [_onlineBtuton setTitleColor:[DJDKMIMOMColor acknowledgementBtutonEssayPrettify] forState:UIControlStateNormal]; + _onlineBtuton.titleLabel.font = [UIFont systemFontOfSize:12]; + [_onlineBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + _onlineBtuton.layer.masksToBounds = YES; + _onlineBtuton.layer.cornerRadius = 10; + [_onlineBtuton addTarget:self action:@selector(onlineBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _onlineBtuton; +} + +- (SDCycleScrollView *)cycleTrundleRegard { + if (!_cycleTrundleRegard) { + _cycleTrundleRegard = [SDCycleScrollView cycleScrollViewWithFrame:CGRectZero delegate:self placeholderImage:[UIIndicateConstant defalutOriflammeDepapossessor]]; + _cycleTrundleRegard.backgroundColor = [UIColor clearColor]; + _cycleTrundleRegard.bannerImageViewContentMode = UIViewContentModeScaleAspectFill; + _cycleTrundleRegard.pageControlStyle = SDCycleScrollViewPageContolStyleNone; + _cycleTrundleRegard.autoScroll = NO; + } + return _cycleTrundleRegard; +} + +- (UIButton *)periodBtuton { + if (!_periodBtuton) { + _periodBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_periodBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + _periodBtuton.titleLabel.font = [UIFont systemFontOfSize:10]; + [_periodBtuton setBackgroundImage:[UIImage imageNamed:@"yumi_center_user_gen_header_page_background"] forState:UIControlStateNormal]; + } + return _periodBtuton; +} + + +- (UIImageView *)reviewFigure { + if (!_reviewFigure) { + _reviewFigure = [[UIImageView alloc] init]; + _reviewFigure.image = [UIImage imageNamed:@"yumi_center_album_reviewing"]; + _reviewFigure.hidden = YES; + } + return _reviewFigure; +} + +- (UIStackView *)coupleHierarchyRegard { + if (!_coupleHierarchyRegard) { + _coupleHierarchyRegard = [[UIStackView alloc] init]; + _coupleHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _coupleHierarchyRegard.distribution = UIStackViewDistributionFill; + _coupleHierarchyRegard.alignment = UIStackViewAlignmentCenter; + _coupleHierarchyRegard.spacing = 2; + } + return _coupleHierarchyRegard; +} +- (NetIndicateRegard *)experIndicateRegard { + if (!_experIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc] init]; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + config.imageType = ImageGenreUserCardLevel; + _experIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _experIndicateRegard.userInteractionEnabled = YES; + _experIndicateRegard.hidden = YES; + _experIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _experIndicateRegard; +} + +- (NetIndicateRegard *)fascinationIndicateRegard { + if (!_fascinationIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc] init]; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + config.imageType = ImageGenreUserCardLevel; + _fascinationIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _fascinationIndicateRegard.userInteractionEnabled = YES; + _fascinationIndicateRegard.hidden = YES; + _fascinationIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _fascinationIndicateRegard; +} + +- (NetIndicateRegard *)magnificentFigureIndicateRegard { + if (!_magnificentFigureIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc] init]; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + config.imageType = ImageGenreUserCardLevel; + _magnificentFigureIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _magnificentFigureIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _magnificentFigureIndicateRegard; +} + +- (UIView *)constituteWoodentrayRegard { + if (!_constituteWoodentrayRegard) { + _constituteWoodentrayRegard = [[UIView alloc] init]; + _constituteWoodentrayRegard.backgroundColor = [UIColor clearColor]; + _constituteWoodentrayRegard.hidden = YES; + } + return _constituteWoodentrayRegard; +} + +- (NetIndicateRegard *)materialIndicateRegard { + if (!_materialIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc] init]; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + config.imageType = ImageGenreUserCardLevel; + _materialIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _materialIndicateRegard.userInteractionEnabled = YES; + _materialIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _materialIndicateRegard; +} + +- (UILabel *)materialSequencignation { + if (!_materialSequencignation) { + _materialSequencignation = [[UILabel alloc] init]; + _materialSequencignation.font = [UIFont systemFontOfSize:10]; + _materialSequencignation.textAlignment = NSTextAlignmentCenter; + _materialSequencignation.textColor = [UIColor whiteColor]; + } + return _materialSequencignation; +} + +- (UIImageView *)strangeConsumerIndicateRegard { + if (!_strangeConsumerIndicateRegard) { + _strangeConsumerIndicateRegard = [[UIImageView alloc] init]; + _strangeConsumerIndicateRegard.userInteractionEnabled = YES; + _strangeConsumerIndicateRegard.image = [UIImage imageNamed:@"yumi_same_new_user"]; + _strangeConsumerIndicateRegard.hidden = YES; + } + return _strangeConsumerIndicateRegard; +} + +- (UIImageView *)officalIndicateRegard { + if (!_officalIndicateRegard) { + _officalIndicateRegard = [[UIImageView alloc] init]; + _officalIndicateRegard.userInteractionEnabled = YES; + _officalIndicateRegard.image = [UIImage imageNamed:@"yumi_same_offical"]; + _officalIndicateRegard.hidden = YES; + } + return _officalIndicateRegard; +} + +- (UIView *)signEncourageRegard { + if (!_signEncourageRegard) { + _signEncourageRegard = [[UIView alloc] init]; + _signEncourageRegard.backgroundColor = [DJDKMIMOMColor aplictowardsionEncouragegroundPrettify]; + CAShapeLayer * layer = [CAShapeLayer layer]; + layer.path = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, KScreenWidth, 79) byRoundingCorners:UIRectCornerTopLeft | UIRectCornerTopRight cornerRadii:CGSizeMake(12, 12)].CGPath; + _signEncourageRegard.layer.mask = layer; + } + return _signEncourageRegard; +} + +- (UIView *)burlywoodRegard { + if (!_burlywoodRegard) { + _burlywoodRegard = [[UIView alloc] init]; + _burlywoodRegard.backgroundColor = [DJDKMIMOMColor dividerPrettify]; + } + return _burlywoodRegard; +} + +- (UILabel *)signSequencignation { + if (!_signSequencignation) { + _signSequencignation = [[UILabel alloc] init]; + _signSequencignation.font = [UIFont systemFontOfSize:12];; + _signSequencignation.textColor = [DJDKMIMOMColor instantEssayPrettify]; + _signSequencignation.numberOfLines = 2; + } + return _signSequencignation; +} + + +- (NSMutableArray *)consumerPhtotGarment { + if (!_consumerPhtotGarment) { + _consumerPhtotGarment = [NSMutableArray array]; + } + return _consumerPhtotGarment; +} + +- (ConsumerAppearance *)intelligenceportraitAppearance { + if (!_intelligenceportraitAppearance) { + _intelligenceportraitAppearance = [[ConsumerAppearance alloc] init]; + } + return _intelligenceportraitAppearance; +} + +- (UIImageView *)copysIdIndicateRegard { + if (!_copysIdIndicateRegard) { + _copysIdIndicateRegard = [[UIImageView alloc] init]; + _copysIdIndicateRegard.userInteractionEnabled = YES; + _copysIdIndicateRegard.image = [UIImage imageNamed:@"yumi_center_user_id_copy_white"]; + _copysIdIndicateRegard.hidden = YES; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(copysIdRecognition)]; + [_copysIdIndicateRegard addGestureRecognizer:tap]; + } + return _copysIdIndicateRegard; +} + +@end diff --git a/YuMi/Modules/YMMine/View/SubViews/MineInfo/YUMIManeConsumerAbstractPresentRegard.h b/YuMi/Modules/YMMine/View/SubViews/MineInfo/YUMIManeConsumerAbstractPresentRegard.h new file mode 100644 index 00000000..0f5de109 --- /dev/null +++ b/YuMi/Modules/YMMine/View/SubViews/MineInfo/YUMIManeConsumerAbstractPresentRegard.h @@ -0,0 +1,17 @@ +// +// YMMineUserInfoGiftView.h +// YUMI +// +// Created by YUMI on 2022/6/15. +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeConsumerAbstractPresentRegard : UIView +@property (nonatomic,strong) NSArray *datasource; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/SubViews/MineInfo/YUMIManeConsumerAbstractPresentRegard.m b/YuMi/Modules/YMMine/View/SubViews/MineInfo/YUMIManeConsumerAbstractPresentRegard.m new file mode 100644 index 00000000..9cc5a1b1 --- /dev/null +++ b/YuMi/Modules/YMMine/View/SubViews/MineInfo/YUMIManeConsumerAbstractPresentRegard.m @@ -0,0 +1,92 @@ +// +// YMMineUserInfoGiftView.m +// YUMI +// +// Created by YUMI on 2022/6/15. +// + +#import "YUMIManeConsumerAbstractPresentRegard.h" +#import +#import "YUMIMacroUitls.h" +#import "NSArray+Safe.h" +#import "YUMIManeAtomicPresentAssembletionRegardElement.h" +#import "YUMIManeConsumerAbstractDispossessAssembletionRegardElement.h" + +@interface YUMIManeConsumerAbstractPresentRegard () +@property (nonatomic,strong) UICollectionView *collectionView; +@end + +@implementation YUMIManeConsumerAbstractPresentRegard + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor]; + [self addSubview:self.collectionView]; +} + +- (void)initChildLyRestrictions { + [self.collectionView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self); + }]; +} +#pragma mark - UICollectionViewDelegate And UICollectionViewDatasource +- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath { + return self.datasource.count > 0? CGSizeMake(51, 65) : CGSizeMake(KScreenWidth - 30, 65 * 3 + 30); +} + +- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { + return self.datasource.count > 0 ? self.datasource.count : 1; +} + +- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { + if (self.datasource.count > 0) { + YUMIManeAtomicPresentAssembletionRegardElement * cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([YUMIManeAtomicPresentAssembletionRegardElement class]) forIndexPath:indexPath]; + cell.giftInfo = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + return cell; + } + + YUMIManeConsumerAbstractDispossessAssembletionRegardElement * cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([YUMIManeConsumerAbstractDispossessAssembletionRegardElement class]) forIndexPath:indexPath]; + cell.isPresentWentirety = YES; + return cell; +} +#pragma mark - JXCategoryListContentViewDelegate +- (UIView *)listView { + return self; +} + +#pragma mark - Getters And Setters +- (void)setDatasource:(NSArray *)datasource { + _datasource = datasource; + [self.collectionView reloadData]; +} + +- (UICollectionView *)collectionView{ + if (!_collectionView) { + UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init]; + layout.minimumInteritemSpacing = (KScreenWidth - 15 *2 - 10 * 2 -51 * 5) / 3.0;; + layout.minimumLineSpacing = 10; + layout.sectionInset = UIEdgeInsetsMake(0, 10, 0, 10); + _collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout]; + _collectionView.dataSource = self; + _collectionView.delegate = self; + _collectionView.scrollEnabled = NO; + _collectionView.backgroundColor = [UIColor clearColor]; + [_collectionView registerClass:[YUMIManeAtomicPresentAssembletionRegardElement class] forCellWithReuseIdentifier:NSStringFromClass([YUMIManeAtomicPresentAssembletionRegardElement class])]; + [_collectionView registerClass:[YUMIManeConsumerAbstractDispossessAssembletionRegardElement class] forCellWithReuseIdentifier:NSStringFromClass([YUMIManeConsumerAbstractDispossessAssembletionRegardElement class])]; + + } + return _collectionView; +} + + + +@end diff --git a/YuMi/Modules/YMMine/View/SubViews/MineInfo/YUMIManeConsumerAbstractReputationSolitaireRegard.h b/YuMi/Modules/YMMine/View/SubViews/MineInfo/YUMIManeConsumerAbstractReputationSolitaireRegard.h new file mode 100644 index 00000000..6fe6f69e --- /dev/null +++ b/YuMi/Modules/YMMine/View/SubViews/MineInfo/YUMIManeConsumerAbstractReputationSolitaireRegard.h @@ -0,0 +1,17 @@ +// +// YMMineUserInfoVoiceCardView.h +// YUMI +// +// Created by YUMI on 2022/4/15. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class ManeCommunicationSolitaireStatementAbstractMatrix; +@interface YUMIManeConsumerAbstractReputationSolitaireRegard : UIView +@property (nonatomic,assign, readonly) BOOL isPlaying; +@property (nonatomic,strong) ManeCommunicationSolitaireStatementAbstractMatrix *reputationAbstract; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/SubViews/MineInfo/YUMIManeConsumerAbstractReputationSolitaireRegard.m b/YuMi/Modules/YMMine/View/SubViews/MineInfo/YUMIManeConsumerAbstractReputationSolitaireRegard.m new file mode 100644 index 00000000..98286ef6 --- /dev/null +++ b/YuMi/Modules/YMMine/View/SubViews/MineInfo/YUMIManeConsumerAbstractReputationSolitaireRegard.m @@ -0,0 +1,187 @@ +// +// YMMineUserInfoVoiceCardView.m +// YUMI +// +// Created by YUMI on 2022/4/15. +// + +#import "YUMIManeConsumerAbstractReputationSolitaireRegard.h" +#import +#import +#import "UIImage+Utils.h" +#import "UIButton+EnlargeTouchArea.h" +#import "DJDKMIMOMColor.h" +#import "NSArray+Safe.h" +#import "ManeCommunicationSolitaireStatementAbstractMatrix.h" +#import "YUMICommunicationSolitaireDisporterExecutive.h" + +@interface YUMIManeConsumerAbstractReputationSolitaireRegard () +@property (nonatomic,strong) UIImageView *encourageIndicteRegard; +@property (nonatomic,strong) UIButton *playButton; +@property (nonatomic,strong) UIImageView *bookIndicteRegard; +@property (nonatomic,assign) BOOL isPlaying; +@end + +@implementation YUMIManeConsumerAbstractReputationSolitaireRegard + +- (void)dealloc { + self.isPlaying = NO; + [self.bookIndicteRegard stopAnimating]; +} + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.encourageIndicteRegard]; + [self.encourageIndicteRegard addSubview:self.playButton]; + [self.encourageIndicteRegard addSubview:self.bookIndicteRegard]; +} + +- (void)initChildLyRestrictions { + [self.encourageIndicteRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.top.bottom.mas_equalTo(self); + make.right.mas_equalTo(self).offset(13); + }]; + + [self.playButton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(15, 15)); + make.left.mas_equalTo(self.encourageIndicteRegard).offset(6); + make.centerY.mas_equalTo(self.encourageIndicteRegard); + }]; + + [self.bookIndicteRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(60, 20)); + make.centerY.mas_equalTo(self.encourageIndicteRegard); + make.left.mas_equalTo(self.playButton.mas_right).offset(7); + }]; +} + +- (void)prohibitiportBtutonPerformance:(UIButton *)sender { + sender.selected = !sender.selected; + if (!self.isPlaying) { + if(self.reputationAbstract.propVals.count) { + NSString * url = [self.reputationAbstract.propVals secureGroalTowardsIndictowardsrix1:0]; + NSArray * nameArray = [url componentsSeparatedByString:@"/"]; + NSString * fileName = @"daeplay"; + if (nameArray.count > 0) { + fileName = nameArray.lastObject; + } + + NSString *filePath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingPathComponent:@"mineSkillCardVoice"]; + NSString *fullPath = [filePath stringByAppendingPathComponent:fileName]; + NSLog(@"下载的路径:%@", fullPath); + if ([[NSFileManager defaultManager] fileExistsAtPath:fullPath]) { + self.isPlaying = YES; + sender.selected = YES; + [self.bookIndicteRegard startAnimating]; + [[YUMICommunicationSolitaireDisporterExecutive partowardsiciptowardsionInstance] prohibitiporterReputtowardsionAboutRoute:fullPath completionBlock:^{ + self.isPlaying = NO; + [self.bookIndicteRegard stopAnimating]; + sender.selected = NO; + self.bookIndicteRegard.image = [UIImage imageNamed:@"yumi_center_voice_shengyin_32"]; + [[YUMICommunicationSolitaireDisporterExecutive partowardsiciptowardsionInstance] suspeindManual]; + }]; + } else { + if (![[NSFileManager defaultManager] fileExistsAtPath:fullPath]) { + NSFileManager *fileMgr = [[NSFileManager alloc] init]; + NSError * error; + [fileMgr createDirectoryAtPath:filePath withIntermediateDirectories:YES attributes:nil error:&error]; + NSLog(@"%@", error.description); + } + [self downchamberVocalmusicAboutAccurtowardseConstitute:fileName musicUrl:url completion:^(BOOL isSuccess, NSString *editAudioPath) { + self.isPlaying = YES; + sender.selected = YES; + [self.bookIndicteRegard startAnimating]; + [[YUMICommunicationSolitaireDisporterExecutive partowardsiciptowardsionInstance] prohibitiporterReputtowardsionAboutRoute:editAudioPath completionBlock:^{ + self.isPlaying = NO; + sender.selected = NO; + [self.bookIndicteRegard stopAnimating]; + self.bookIndicteRegard.image = [UIImage imageNamed:@"yumi_center_voice_shengyin_32"]; + [[YUMICommunicationSolitaireDisporterExecutive partowardsiciptowardsionInstance] suspeindManual]; + }]; + }]; + } + } + } else { + self.isPlaying = NO; + sender.selected = NO; + [self.bookIndicteRegard stopAnimating]; + self.bookIndicteRegard.image = [UIImage imageNamed:@"yumi_center_voice_shengyin_32"]; + [[YUMICommunicationSolitaireDisporterExecutive partowardsiciptowardsionInstance] suspeindManual]; + } +} + +- (void)downchamberVocalmusicAboutAccurtowardseConstitute:(NSString *)fileName musicUrl:(NSString *)musicUrl completion:(void (^) (BOOL isSuccess, NSString *editAudioPath))completion { + AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; + NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:musicUrl]]; + NSURLSessionDownloadTask *download = [manager downloadTaskWithRequest:request progress:^(NSProgress * _Nonnull downloadProgress) { + } destination:^NSURL * _Nonnull(NSURL * _Nonnull targetPath, NSURLResponse * _Nonnull response) { + NSString *filePath = [[[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingPathComponent:@"mineSkillCardVoice"] stringByAppendingPathComponent:fileName]; + return [NSURL fileURLWithPath:filePath]; + } completionHandler:^(NSURLResponse * _Nonnull response, NSURL * _Nullable filePath, NSError * _Nullable error) { + if (!error) { + completion(YES, filePath.path); + } else { + completion(NO, nil); + } + }]; + [download resume]; +} +#pragma mark - Getters And Setters +- (UIImageView *)encourageIndicteRegard { + if (!_encourageIndicteRegard) { + _encourageIndicteRegard = [[UIImageView alloc] init]; + _encourageIndicteRegard.userInteractionEnabled = YES; + _encourageIndicteRegard.image = [UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[UIColorFromRGB(0xF8F8F4), UIColorFromRGB(0xE7FBFD)] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(77, 25)]; + _encourageIndicteRegard.layer.masksToBounds = YES; + _encourageIndicteRegard.layer.cornerRadius = 25/2; + } + return _encourageIndicteRegard; +} + +- (UIButton *)playButton { + if (!_playButton) { + _playButton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_playButton setImage:[UIImage imageNamed:@"yumi_center_user_gen_skill_card_voice_play"] forState:UIControlStateNormal]; + [_playButton setImage:[UIImage imageNamed:@"yumi_center_user_gen_skill_card_voice_pause"] forState:UIControlStateSelected]; + [_playButton addTarget:self action:@selector(prohibitiportBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + [_playButton setEnlargeEdgeAboutApex:8 right:10 bottom:8 left:10]; + } + return _playButton; +} + +- (UIImageView *)bookIndicteRegard { + if (!_bookIndicteRegard) { + _bookIndicteRegard = [[UIImageView alloc] init]; + _bookIndicteRegard.userInteractionEnabled = YES; + _bookIndicteRegard.image = [UIImage imageNamed:@"yumi_center_voice_shengyin_32"]; + NSMutableArray * array = [NSMutableArray array]; + for (int i = 0 ; i< 40; i++) { + UIImage * image; + if ( i < 10) { + image = [UIImage imageNamed:[NSString stringWithFormat:@"mine_voice_shengyin_0%d", i]]; + } else { + image = [UIImage imageNamed:[NSString stringWithFormat:@"mine_voice_shengyin_%d", i]]; + } + if (image) { + [array addObject:image]; + } + + } + _bookIndicteRegard.animationImages = array; + _bookIndicteRegard.animationDuration = 1.2; + _bookIndicteRegard.animationRepeatCount = HUGE; + } + return _bookIndicteRegard; +} + + +@end diff --git a/YuMi/Modules/YMMine/View/SubViews/Recharge/YUMIManeRechageIntelligenceRegard.h b/YuMi/Modules/YMMine/View/SubViews/Recharge/YUMIManeRechageIntelligenceRegard.h new file mode 100644 index 00000000..dcf44dd7 --- /dev/null +++ b/YuMi/Modules/YMMine/View/SubViews/Recharge/YUMIManeRechageIntelligenceRegard.h @@ -0,0 +1,16 @@ +// +// YMMineRechageHeadView.h +// YUMI +// +// Created by YUMI on 2021/9/24. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class RamparatetAbstractMatrix; +@interface YUMIManeRechageIntelligenceRegard : UIView +@property (nonatomic,strong) RamparatetAbstractMatrix *wentiretyetAbstract; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/SubViews/Recharge/YUMIManeRechageIntelligenceRegard.m b/YuMi/Modules/YMMine/View/SubViews/Recharge/YUMIManeRechageIntelligenceRegard.m new file mode 100644 index 00000000..067bbced --- /dev/null +++ b/YuMi/Modules/YMMine/View/SubViews/Recharge/YUMIManeRechageIntelligenceRegard.m @@ -0,0 +1,130 @@ +// +// YMMineRechageHeadView.m +// YUMI +// +// Created by YUMI on 2021/9/24. +// + +#import "YUMIManeRechageIntelligenceRegard.h" +#import +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" +#import "RamparatetAbstractMatrix.h" + +@interface YUMIManeRechageIntelligenceRegard () +@property (nonatomic,strong) UIImageView *encourageIndicateRegard; +@property (nonatomic,strong) UIImageView *extremeEncourageIndi; +@property (nonatomic,strong) UIImageView *tangerineIndicateRegard; +@property (nonatomic,strong) UILabel *tangerineSequencignation; +@property (nonatomic,strong) UILabel *amountSequencignation; + +@end + + +@implementation YUMIManeRechageIntelligenceRegard + +- (instancetype)initWithFrame:(CGRect)frame { + if (self = [super initWithFrame:frame]) { + [self initRegard]; + [self initContrtowardsions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initRegard { + [self addSubview:self.encourageIndicateRegard]; + [self.encourageIndicateRegard addSubview:self.extremeEncourageIndi]; + [self.extremeEncourageIndi addSubview:self.tangerineIndicateRegard]; + [self.extremeEncourageIndi addSubview:self.tangerineSequencignation]; + [self.extremeEncourageIndi addSubview:self.amountSequencignation]; +} + +- (void)initContrtowardsions { + self.frame = CGRectMake(0, 0, KScreenWidth, 190 + kSafeAreaTopHeight); + [self.encourageIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self); + }]; + + [self.extremeEncourageIndi mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.mas_equalTo(self.encourageIndicateRegard); + make.height.mas_equalTo(110); + }]; + + [self.tangerineIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(21, 21)); + make.top.mas_equalTo(self.extremeEncourageIndi).offset(23); + make.right.mas_equalTo(self.tangerineSequencignation.mas_left).offset(-4); + }]; + + [self.tangerineSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.tangerineIndicateRegard); + make.centerX.mas_equalTo(self.extremeEncourageIndi.mas_centerX).offset(12); + }]; + + [self.amountSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.extremeEncourageIndi); + make.top.mas_equalTo(self.tangerineIndicateRegard.mas_bottom).offset(1); + }]; +} + +#pragma mark - Getters And Setters +- (void)setWentiretyetAbstract:(RamparatetAbstractMatrix *)wentiretyetAbstract { + _wentiretyetAbstract = wentiretyetAbstract; + if (_wentiretyetAbstract) { + self.amountSequencignation.text = wentiretyetAbstract.diamonds; + } +} + +- (UIImageView *)encourageIndicateRegard { + if (!_encourageIndicateRegard) { + _encourageIndicateRegard = [[UIImageView alloc] init]; + _encourageIndicateRegard.userInteractionEnabled = YES; + _encourageIndicateRegard.image = [UIImage imageNamed:@"yumi_center_recharge_header_background"]; + _encourageIndicateRegard.layer.masksToBounds = YES; + _encourageIndicateRegard.contentMode = UIViewContentModeScaleAspectFill; + } + return _encourageIndicateRegard; +} + +- (UIImageView *)extremeEncourageIndi { + if (!_extremeEncourageIndi) { + _extremeEncourageIndi = [[UIImageView alloc] init]; + _extremeEncourageIndi.userInteractionEnabled = YES; + _extremeEncourageIndi.image = [UIImage imageNamed:@"yumi_center_recharge_coin_background"]; + _extremeEncourageIndi.layer.masksToBounds = YES; + _extremeEncourageIndi.contentMode = UIViewContentModeScaleAspectFit; + } + return _extremeEncourageIndi; +} + +- (UIImageView *)tangerineIndicateRegard { + if (!_tangerineIndicateRegard) { + _tangerineIndicateRegard = [[UIImageView alloc] init]; + _tangerineIndicateRegard.userInteractionEnabled = YES; + _tangerineIndicateRegard.image = [UIImage imageNamed:@"yumi_same_diamond"]; + } + return _tangerineIndicateRegard; +} + +- (UILabel *)tangerineSequencignation { + if (!_tangerineSequencignation) { + _tangerineSequencignation = [[UILabel alloc] init]; + _tangerineSequencignation.text = YMLocalizedString(@"YUMI_Mine_Rechage_Head_View_0"); + _tangerineSequencignation.font = [UIFont systemFontOfSize:13]; + _tangerineSequencignation.textColor = [UIColor whiteColor]; + } + return _tangerineSequencignation; +} + +- (UILabel *)amountSequencignation { + if (!_amountSequencignation) { + _amountSequencignation = [[UILabel alloc] init]; + _amountSequencignation.font = [UIFont boldSystemFontOfSize:36]; + _amountSequencignation.textColor = [DJDKMIMOMColor aplictowardsionMainPrettify]; + _amountSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _amountSequencignation; +} + +@end diff --git a/YuMi/Modules/YMMine/View/SubViews/Recharge/YUMIManeReindictNevRegard.h b/YuMi/Modules/YMMine/View/SubViews/Recharge/YUMIManeReindictNevRegard.h new file mode 100644 index 00000000..39087e02 --- /dev/null +++ b/YuMi/Modules/YMMine/View/SubViews/Recharge/YUMIManeReindictNevRegard.h @@ -0,0 +1,19 @@ +// +// YMMineRechargeNavView.h +// YUMI +// +// Created by YUMI on 2021/9/26. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class YUMIManeReindictNevRegard; +@protocol FBCManeReindictNevRegardRepresendtation +- (void)fBCManeReindictNevRegard:(YUMIManeReindictNevRegard *)view didClickBackButton:(UIButton *)sender; +@end +@interface YUMIManeReindictNevRegard : UIView +@property (nonatomic,weak) id delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/SubViews/Recharge/YUMIManeReindictNevRegard.m b/YuMi/Modules/YMMine/View/SubViews/Recharge/YUMIManeReindictNevRegard.m new file mode 100644 index 00000000..89815cbb --- /dev/null +++ b/YuMi/Modules/YMMine/View/SubViews/Recharge/YUMIManeReindictNevRegard.m @@ -0,0 +1,78 @@ +// +// YMMineRechargeNavView.m +// YUMI +// +// Created by YUMI on 2021/9/26. +// + +#import "YUMIManeReindictNevRegard.h" +#import +#import "DJDKMIMOMColor.h" +#import "UIButton+EnlargeTouchArea.h" + +@interface YUMIManeReindictNevRegard () +@property (nonatomic,strong) UIButton *backButton; +@property (nonatomic,strong) UILabel *titleLabel; +@end + +@implementation YUMIManeReindictNevRegard + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} +#pragma mark - Response +- (void)encourageBtutonPerformance:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(fBCManeReindictNevRegard:didClickBackButton:)]) { + [self.delegate fBCManeReindictNevRegard:self didClickBackButton:sender]; + } +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor]; + [self addSubview:self.backButton]; + [self addSubview:self.titleLabel]; +} + +- (void)initChildLyRestrictions { + [self.backButton mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(15); + make.centerY.equalTo(self.mas_bottom).mas_offset(-22); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self); + make.centerY.equalTo(self.mas_bottom).mas_offset(-22); + }]; +} + +#pragma mark - Getters And Setters +- (UIButton *)backButton { + if (!_backButton) { + _backButton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_backButton setImage:[UIImage imageNamed:@"yumi_main_search_white_back"] forState:UIControlStateNormal]; + _backButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft; + [_backButton addTarget:self action:@selector(encourageBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + [_backButton setEnlargeEdgeAboutApex:10 right:10 bottom:10 left:10]; + } + return _backButton; +} + + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.textAlignment = NSTextAlignmentCenter; + _titleLabel.font = [UIFont systemFontOfSize:15]; + _titleLabel.text = YMLocalizedString(@"YUMI_Mine_Recharge_Nav_View_0"); + _titleLabel.textColor = [UIColor whiteColor]; + } + return _titleLabel; +} + +@end diff --git a/YuMi/Modules/YMMine/View/SubViews/YUMIManeAccountRegard.h b/YuMi/Modules/YMMine/View/SubViews/YUMIManeAccountRegard.h new file mode 100644 index 00000000..11430649 --- /dev/null +++ b/YuMi/Modules/YMMine/View/SubViews/YUMIManeAccountRegard.h @@ -0,0 +1,18 @@ +// +// YMMineAccountView.h +// YUMI +// +// Created by YUMI on 2022/7/22. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeAccountRegard : UIView + +@property (nonatomic, copy) NSString *diamonds; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/SubViews/YUMIManeAccountRegard.m b/YuMi/Modules/YMMine/View/SubViews/YUMIManeAccountRegard.m new file mode 100644 index 00000000..97662e2b --- /dev/null +++ b/YuMi/Modules/YMMine/View/SubViews/YUMIManeAccountRegard.m @@ -0,0 +1,92 @@ +// +// YMMineAccountView.m +// YUMI +// +// Created by YUMI on 2022/7/22. +// + +#import "YUMIManeAccountRegard.h" +#import +#import "DJDKMIMOMColor.h" + +@interface YUMIManeAccountRegard () + +@property (nonatomic, strong) UIImageView *backgroundIndicateRegard; +@property (nonatomic, strong) UILabel *tangerineSequencignation; +@property (nonatomic, strong) UILabel *sequenceSequencignation; + +@end + +@implementation YUMIManeAccountRegard + +- (instancetype)initWithFrame:(CGRect)frame +{ + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.backgroundIndicateRegard]; + [self addSubview:self.tangerineSequencignation]; + [self addSubview:self.sequenceSequencignation]; +} + +- (void)initChildLyRestrictions { + [self.backgroundIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(0); + }]; + + [self.tangerineSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(13); + make.left.mas_equalTo(14); + make.right.mas_equalTo(0); + make.height.mas_equalTo(24); + }]; + [self.sequenceSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.tangerineSequencignation); + make.top.mas_equalTo(self.tangerineSequencignation.mas_bottom); + make.height.mas_equalTo(14); + }]; +} + +- (void)setDiamonds:(NSString *)diamonds { + self.tangerineSequencignation.text = diamonds; +} + +#pragma mark - Getters And Setters +- (UIImageView *)backgroundIndicateRegard { + if (!_backgroundIndicateRegard) { + _backgroundIndicateRegard = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"yumi_center_head_account_background"]]; + _backgroundIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _backgroundIndicateRegard; +} + +- (UILabel *)sequenceSequencignation { + if (!_sequenceSequencignation) { + _sequenceSequencignation = [[UILabel alloc] init]; + _sequenceSequencignation.font = [UIFont systemFontOfSize:10 weight:UIFontWeightMedium]; + _sequenceSequencignation.textColor = UIColorRGBAlpha(0x000000, 0.3); + _sequenceSequencignation.text = YMLocalizedString(@"YUMI_Mine_Account_View_0"); + } + return _sequenceSequencignation; +} + + +- (UILabel *)tangerineSequencignation { + if (!_tangerineSequencignation) { + _tangerineSequencignation = [[UILabel alloc] init]; + _tangerineSequencignation.font = [UIFont systemFontOfSize:20 weight:UIFontWeightBold]; + _tangerineSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _tangerineSequencignation; +} + + + +@end diff --git a/YuMi/Modules/YMMine/View/SubViews/YUMIManeAssistantNumberRegard.h b/YuMi/Modules/YMMine/View/SubViews/YUMIManeAssistantNumberRegard.h new file mode 100644 index 00000000..1d0476fb --- /dev/null +++ b/YuMi/Modules/YMMine/View/SubViews/YUMIManeAssistantNumberRegard.h @@ -0,0 +1,21 @@ +// +// YMMineFriendNumberView.h +// YUMI +// +// Created by YUMI on 2021/12/21. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeAssistantNumberRegard : UIView + +@property (nonatomic,copy) NSString *number; +@property (nonatomic,copy) NSString *title; +@property (nonatomic, assign) BOOL isVacationer; +@property (nonatomic, assign) NSInteger vacationerFigure; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/SubViews/YUMIManeAssistantNumberRegard.m b/YuMi/Modules/YMMine/View/SubViews/YUMIManeAssistantNumberRegard.m new file mode 100644 index 00000000..168a8eb3 --- /dev/null +++ b/YuMi/Modules/YMMine/View/SubViews/YUMIManeAssistantNumberRegard.m @@ -0,0 +1,146 @@ +// +// YMMineFriendNumberView.m +// YUMI +// +// Created by YUMI on 2021/12/21. +// + +#import "YUMIManeAssistantNumberRegard.h" +#import +#import "DJDKMIMOMColor.h" +#import + +@interface YUMIManeAssistantNumberRegard () +@property (nonatomic,strong) UILabel *numberLabel; +@property (nonatomic,strong) UILabel *titleLabel; +@property (nonatomic, strong) UILabel *unLireSequencignation; + +@end + +@implementation YUMIManeAssistantNumberRegard + +- (instancetype)initWithFrame:(CGRect)frame +{ + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.numberLabel]; + [self addSubview:self.titleLabel]; +} + +- (void)initChildLyRestrictions { + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.bottom.mas_equalTo(self.titleLabel.mas_bottom); + }]; + + [self.numberLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self); + make.centerX.mas_equalTo(self); + make.height.mas_equalTo(24); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.numberLabel.mas_bottom).offset(4); + make.left.right.mas_equalTo(self); + }]; +} + +- (NSAttributedString *)towardstributedBWSttrAboutBurlywoodSpace:(CGFloat)lineSpace str:(NSString *)str{ + NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] init]; + NSMutableAttributedString *title = [[NSMutableAttributedString alloc] initWithString:str attributes:@{NSForegroundColorAttributeName : UIColorFromRGB(0xffffff), NSFontAttributeName: [UIFont systemFontOfSize:11]}]; + [attributedString appendAttributedString:title]; + attributedString.yy_alignment = NSTextAlignmentCenter; + return attributedString; +} + +- (CGFloat)acquireExtentsAboutStowardsisfperformance:(NSString *)content height:(CGFloat)height font:(CGFloat)font{ + + CGRect rect = [content boundingRectWithSize:CGSizeMake(999, height) + options:NSStringDrawingUsesLineFragmentOrigin + attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:font]} + context:nil]; + return rect.size.width; +} + +#pragma mark - Getters And Setters +- (void)setTitle:(NSString *)title { + self.titleLabel.text = title; +} + +- (void)setNumber:(NSString *)number { + self.numberLabel.text = number; +} + +- (void)setIsVacationer:(BOOL)isVacationer { + if (isVacationer) { + [self addSubview:self.unLireSequencignation]; + [self.unLireSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.numberLabel.mas_right).mas_offset(5); + make.height.mas_equalTo(15); + make.width.mas_equalTo(15); + make.top.mas_equalTo(self.numberLabel); + }]; + } +} + +- (void)setVacationerFigure:(NSInteger)vacationerFigure { + if (vacationerFigure > 0) { + self.unLireSequencignation.hidden = NO; + self.unLireSequencignation.attributedText = [self towardstributedBWSttrAboutBurlywoodSpace:10 str:[NSString stringWithFormat:@"%zd", vacationerFigure]]; + CGFloat width = [self acquireExtentsAboutStowardsisfperformance:[NSString stringWithFormat:@"%zd", vacationerFigure] height:15 font:11]; + if (vacationerFigure < 10) { + width = 7; + } + [self.unLireSequencignation mas_remakeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.numberLabel.mas_right).mas_offset(5); + make.width.mas_equalTo(width + 8); + make.top.mas_equalTo(self.numberLabel); + make.height.mas_equalTo(15); + }]; + } else { + self.unLireSequencignation.hidden = YES; + } +} + +- (UILabel *)numberLabel { + if (!_numberLabel) { + _numberLabel = [[UILabel alloc] init]; + _numberLabel.font = [UIFont boldSystemFontOfSize:20]; + _numberLabel.textAlignment = NSTextAlignmentCenter; + _numberLabel.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _numberLabel; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium]; + _titleLabel.textColor = [DJDKMIMOMColor essayTertiusPrettify]; + _titleLabel.textAlignment = NSTextAlignmentCenter; + } + return _titleLabel; +} + +- (UILabel *)unLireSequencignation { + if (!_unLireSequencignation) { + _unLireSequencignation = [[UILabel alloc] init]; + _unLireSequencignation.font = [UIFont systemFontOfSize:11]; + _unLireSequencignation.textColor = [UIColor whiteColor]; + _unLireSequencignation.backgroundColor = UIColorFromRGB(0xFF5B55); + _unLireSequencignation.layer.cornerRadius = 7.5; + _unLireSequencignation.layer.masksToBounds = YES; + _unLireSequencignation.textAlignment = NSTextAlignmentCenter; + [_unLireSequencignation sizeToFit]; + _unLireSequencignation.hidden = YES; + } + return _unLireSequencignation ; +} + +@end diff --git a/YuMi/Modules/YMMine/View/SubViews/YUMIManeIntelligenceRegard.h b/YuMi/Modules/YMMine/View/SubViews/YUMIManeIntelligenceRegard.h new file mode 100644 index 00000000..2918494b --- /dev/null +++ b/YuMi/Modules/YMMine/View/SubViews/YUMIManeIntelligenceRegard.h @@ -0,0 +1,29 @@ +// +// YMMineHeadView.h +// YUMI +// +// Created by YUMI on 2021/9/16. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +typedef void(^CompletionHandler)(NSMutableAttributedString *); +@class ConsumerAbstractMatrix,YUMIManeIntelligenceRegard, RamparatetAbstractMatrix; +@protocol FBCManeIntelligenceRegardRepresendtation +- (void)yUMIManeIntelligenceRegard:(YUMIManeIntelligenceRegard *)view didClickAvatar:(ConsumerAbstractMatrix *)info; +- (void)yumiManeIntelligenceRegardTicktackConsidertowardsion; +- (void)yumiManeIntelligenceRegardTicktackFantowardsics; +- (void)yumiManeIntelligenceRegardTicktackAcomputtowardsion; +@end +@interface YUMIManeIntelligenceRegard : UIView +@property (nonatomic,strong) ConsumerAbstractMatrix *userInfo; +@property (nonatomic, strong) RamparatetAbstractMatrix *wentiretyetAbstract; +@property (nonatomic,assign) id delegate; +@property (nonatomic, assign) NSInteger vacationerUnLireComputation; + +- (void)cretowardsMtowardserialProttypeIdiosyncracy:(ConsumerAbstractMatrix *)userInfo complete:(CompletionHandler)complete; +- (NSMutableAttributedString *)cretowardsMtowardserialIdSequencigntowardsionIdiosyncracy:(ConsumerAbstractMatrix *)userInfo ; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/SubViews/YUMIManeIntelligenceRegard.m b/YuMi/Modules/YMMine/View/SubViews/YUMIManeIntelligenceRegard.m new file mode 100644 index 00000000..7d6da9bc --- /dev/null +++ b/YuMi/Modules/YMMine/View/SubViews/YUMIManeIntelligenceRegard.m @@ -0,0 +1,531 @@ +// +// YUMIManeIntelligenceRegard.m +// YuMi +// +// Created by YuMi on 2021/9/16. +// + +#import "YUMIManeIntelligenceRegard.h" +#import +#import +#import "UIImage+Utils.h" +#import "DJDKMIMOMColor.h" +#import "NetIndicateRegard.h" +#import "UIImage+Utils.h" +#import "YUMIManeAssistantNumberRegard.h" +#import "YUMIManeAccountRegard.h" +#import "ConsumerAbstractMatrix.h" +#import "RamparatetAbstractMatrix.h" + +@interface YUMIManeIntelligenceRegard () +@property (nonatomic,strong) NetIndicateRegard * intelligenceportraitIndicateRegard; +@property (nonatomic,strong) UIStackView *constituteHierarchyRegard; +@property (nonatomic,strong) NetIndicateRegard *magnificentIndicateRegard; +@property (nonatomic,strong) UILabel *constituteSequencignation; +@property (nonatomic,strong) UIStackView *idHierarchyRegard; +@property (nonatomic,strong) UILabel *idSequencignation; +@property (nonatomic,strong) UIImageView *seaxualityIndicateRegard; +@property (nonatomic,strong) YYLabel *prototypeSequencignation; +@property (nonatomic,strong) UIStackView *considerationHierarchyRegard; +@property (nonatomic,strong) YUMIManeAssistantNumberRegard *considerationRegard; +@property (nonatomic,strong) YUMIManeAssistantNumberRegard *fanaticsRegard; +@property (nonatomic, strong) YUMIManeAccountRegard *accomputationRegard; +@property (nonatomic,strong) UIImageView *reviewRegard; +@end + +@implementation YUMIManeIntelligenceRegard + +- (instancetype)initWithFrame:(CGRect)frame +{ + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor]; + [self addSubview:self.intelligenceportraitIndicateRegard]; + [self addSubview:self.magnificentIndicateRegard]; + [self addSubview:self.constituteHierarchyRegard]; + [self addSubview:self.idHierarchyRegard]; + [self.constituteHierarchyRegard addArrangedSubview:self.constituteSequencignation]; + [self.idHierarchyRegard addArrangedSubview:self.idSequencignation]; + [self.idHierarchyRegard addArrangedSubview:self.seaxualityIndicateRegard]; + [self addSubview:self.prototypeSequencignation]; + + [self addSubview:self.considerationHierarchyRegard]; + [self.considerationHierarchyRegard addArrangedSubview:self.considerationRegard]; + [self.considerationHierarchyRegard addArrangedSubview:self.fanaticsRegard]; + + [self addSubview:self.accomputationRegard]; + [self.intelligenceportraitIndicateRegard addSubview:self.reviewRegard]; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(betowardsIntelligenceportraitIndictowardseRegard)]; + [self.intelligenceportraitIndicateRegard addGestureRecognizer:tap]; +} + +- (void)initChildLyRestrictions { + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(74, 74)); + make.leading.mas_equalTo(self).offset(15); + make.top.mas_equalTo(self).offset(49 + kStatusBarHeight); + }]; + + [self.magnificentIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_right).offset(12); + make.top.mas_equalTo(self.intelligenceportraitIndicateRegard).mas_offset(4); + make.width.height.mas_equalTo(20); + }]; + + [self.constituteHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.magnificentIndicateRegard); + make.left.mas_equalTo(self.magnificentIndicateRegard.mas_right).mas_offset(5); + make.height.mas_equalTo(16); + make.right.mas_equalTo(-15); + }]; + + [self.idHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.magnificentIndicateRegard); + make.top.mas_equalTo(self.constituteHierarchyRegard.mas_bottom).offset(13); + make.height.mas_equalTo(16); + }]; + + [self.prototypeSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.magnificentIndicateRegard); + make.top.mas_equalTo(self.idHierarchyRegard.mas_bottom).offset(5); + }]; + + [self.considerationHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.intelligenceportraitIndicateRegard).mas_offset(37); + make.height.mas_equalTo(40); + + make.width.mas_equalTo(108); + make.right.mas_equalTo(0); + }]; + CGFloat width = (KScreenWidth - 30) / 4; + CGFloat height = 45; + [self.considerationRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(54, 34)); + }]; + + [self.fanaticsRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(54, 34)); + }]; + + + width = (KScreenWidth - 30 - 13) * 0.5; + height = width * 60 / 166; + [self.accomputationRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.equalTo(self.intelligenceportraitIndicateRegard.mas_bottom).mas_offset(23); + make.size.mas_equalTo(CGSizeMake(width, height)); + make.left.mas_equalTo(15); + }]; + [self.reviewRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.equalTo(self.intelligenceportraitIndicateRegard); + make.height.mas_equalTo(20); + }]; +} + +#pragma mark - Action +- (void)betowardsIntelligenceportraitIndictowardseRegard { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIManeIntelligenceRegard:didClickAvatar:)]) { + [self.delegate yUMIManeIntelligenceRegard:self didClickAvatar:self.userInfo]; + } +} + +- (void)betowardsFantowardsicsRecognition { + if (self.delegate && [self.delegate respondsToSelector:@selector(yumiManeIntelligenceRegardTicktackFantowardsics)]) { + [self.delegate yumiManeIntelligenceRegardTicktackFantowardsics]; + } +} +- (void)betowardsConsidertowardsionRecognition { + if (self.delegate && [self.delegate respondsToSelector:@selector(yumiManeIntelligenceRegardTicktackConsidertowardsion)]) { + [self.delegate yumiManeIntelligenceRegardTicktackConsidertowardsion]; + } +} +- (void)betowardsSequenceriptionrecognizer { + if (self.delegate && [self.delegate respondsToSelector:@selector(yumiManeIntelligenceRegardTicktackAcomputtowardsion)]) { + [self.delegate yumiManeIntelligenceRegardTicktackAcomputtowardsion]; + } +} +#pragma mark - NSMutableAttributedString +-(NSInteger) acquireDiana:(long )time +{ + NSDate *date = [NSDate dateWithTimeIntervalSince1970:time/1000]; + NSCalendar* calendar = [NSCalendar currentCalendar]; + NSDateComponents* components = [calendar components:NSCalendarUnitMonth fromDate:date]; + NSInteger month = components.month; + return month; +} + +- (NSInteger) acquireSeason:(long) time +{ + NSDate *date = [NSDate dateWithTimeIntervalSince1970:time/1000]; + NSCalendar* calendar = [NSCalendar currentCalendar]; + NSDateComponents* components = [calendar components:NSCalendarUnitDay fromDate:date]; + NSInteger day = components.day; + return day; +} + +- (NSString *)calcultowardseConstelltowardsionAboutDiana:(long)time +{ + NSString *astroString = YMLocalizedString(@"YUMI_Mine_Head_View_0"); + NSString *astroFormat = @"102123444543"; + NSString *result; + + NSInteger month = [self acquireDiana:time]; + NSInteger day = [self acquireSeason:time]; + + if (month<1 || month>12 || day<1 || day>31){ + return YMLocalizedString(@"YUMI_Mine_Head_View_1"); + } + + if(month==2 && day>29) + { + return YMLocalizedString(@"YUMI_Mine_Head_View_2"); + }else if(month==4 || month==6 || month==9 || month==11) { + if (day>30) { + return YMLocalizedString(@"YUMI_Mine_Head_View_3"); + } + } + + result=[NSString stringWithFormat:@"%@",[astroString substringWithRange:NSMakeRange(month*2-(day < [[astroFormat substringWithRange:NSMakeRange((month-1), 1)] intValue] - (-19))*2,2)]]; + + return [NSString stringWithFormat:YMLocalizedString(@"YUMI_Mine_Head_View_6"),result]; +} + +- (NSMutableAttributedString *)produceWeebsiteIndictowardseIdiosyncracy:(NSString *)imageUrl { + NetIndicateDisposition *config = [[NetIndicateDisposition alloc]init]; + + config.autoChamber = YES; + NetIndicateRegard *imageView = [[NetIndicateRegard alloc]initWithUrl:imageUrl config:config]; + UIImage* image = imageView.image; + if (image) { + CGFloat height = image.size.height > 0 ? image.size.height : 1; + CGFloat scale = image.size.width / height ; + imageView.bounds = CGRectMake(0, 0, 20 * scale, 20); + } else { + NSURL *imgUrl = [NSURL URLWithString:imageUrl]; + UIImage *myImage = [UIImage imageWithData:[NSData dataWithContentsOfURL:imgUrl]]; + CGFloat height = myImage.size.height > 0 ? myImage.size.height : 1; + CGFloat scale = myImage.size.width / height; + imageView.bounds = CGRectMake(0, 0, 20 * scale, 20); + } + imageView.layer.masksToBounds = YES; + imageView.contentMode = UIViewContentModeScaleAspectFit; + NSMutableAttributedString * attrString = [NSMutableAttributedString yy_attachmentStringWithContent:imageView contentMode:UIViewContentModeScaleAspectFit attachmentSize:CGSizeMake(imageView.bounds.size.width, imageView.bounds.size.height) alignToFont:[UIFont systemFontOfSize:15.0] alignment:YYTextVerticalAlignmentCenter]; + return attrString; +} + +- (NSMutableAttributedString *)produceSapceIdiosyncracy:(CGFloat)width { + UIView *vacuumRegard = [[UIView alloc]init]; + vacuumRegard.backgroundColor = [UIColor clearColor]; + vacuumRegard.bounds = CGRectMake(0, 0, width, 10); + NSMutableAttributedString * attribute = [NSMutableAttributedString yy_attachmentStringWithContent:vacuumRegard contentMode:UIViewContentModeScaleAspectFit attachmentSize:CGSizeMake(vacuumRegard.frame.size.width, vacuumRegard.frame.size.height) alignToFont:[UIFont systemFontOfSize:15.0] alignment:YYTextVerticalAlignmentCenter]; + return attribute; +} + +- (NSMutableAttributedString *)manufactureEngagementSequencigntowardsion:(long)birth{ + NSString *dateStr = [NSString stringWithFormat:@" %@ ",[self calcultowardseConstelltowardsionAboutDiana:birth]]; + UIButton *dataButton = [UIButton buttonWithType:UIButtonTypeCustom]; + [dataButton setTitle:dateStr forState:UIControlStateNormal]; + dataButton.titleLabel.font = [UIFont boldSystemFontOfSize:10]; + [dataButton setTitleColor:UIColorFromRGB(0xFFFFFF) forState:UIControlStateNormal]; + dataButton.frame = CGRectMake(0, 0, 45, 17); + dataButton.layer.masksToBounds = YES; + dataButton.layer.cornerRadius = 17/2; + [dataButton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + NSMutableAttributedString * dateLabelString = [NSMutableAttributedString yy_attachmentStringWithContent:dataButton contentMode:UIViewContentModeScaleAspectFit attachmentSize:CGSizeMake(dataButton.frame.size.width, dataButton.frame.size.height) alignToFont:[UIFont systemFontOfSize:11] alignment:YYTextVerticalAlignmentCenter]; + return dateLabelString; +} + +- (NSMutableAttributedString *)produceMtowardserialTowardstibute:(NSString *)tagName image:(NSString *)imageName textFont:(UIFont *)textFont { + NetIndicateDisposition *config = [[NetIndicateDisposition alloc]init]; + + config.autoChamber = YES; + NetIndicateRegard *imageView = [[NetIndicateRegard alloc]initWithUrl:imageName config:config]; + UIImage* image = imageView.image; + if (image) { + CGFloat scale = image.size.width / (image.size.height > 0 ? image.size.height : 1); + imageView.bounds = CGRectMake(0, 0, 20 * scale, 20); + } else { + NSURL *imgUrl = [NSURL URLWithString:imageName]; + UIImage *myImage = [UIImage imageWithData:[NSData dataWithContentsOfURL:imgUrl]]; + CGFloat scale = myImage.size.width / (myImage.size.height > 0 ? myImage.size.height : 1); + if (scale == 0) { + imageView.bounds = CGRectMake(0, 0, 60, 20); + }else { + imageView.bounds = CGRectMake(0, 0, 20 * scale, 20); + } + } + imageView.contentMode = UIViewContentModeScaleAspectFit; + + UILabel *label = [[UILabel alloc] init]; + label.textAlignment = NSTextAlignmentCenter; + label.font = [UIFont boldSystemFontOfSize:12]; + label.adjustsFontSizeToFitWidth = YES; + label.textColor = UIColor.whiteColor; + label.text = tagName; + [imageView addSubview:label]; + [label mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(27); + make.right.mas_equalTo(-8); + make.centerY.mas_equalTo(0); + }]; + NSMutableAttributedString *string = [NSMutableAttributedString yy_attachmentStringWithContent:imageView contentMode:UIViewContentModeScaleAspectFit attachmentSize:imageView.bounds.size alignToFont:[UIFont boldSystemFontOfSize:12] alignment:YYTextVerticalAlignmentCenter]; + return string; +} +-(void)copyConstitutePerformance{ + [XNDJTBWGLoadingTool EvidenceAccomplishmentAboutCommunictowardsion:YMLocalizedString(@"YUMI_Mine_Head_View_8")]; + UIPasteboard *pasteboard = [UIPasteboard generalPasteboard]; + pasteboard. string = [NSString stringWithFormat:@"%ld", (long)_userInfo.erbanNo]; + +} +- (NSMutableAttributedString *)cretowardsMtowardserialIdSequencigntowardsionIdiosyncracy:(ConsumerAbstractMatrix *)userInfo{ + + UIFont *font = [UIFont systemFontOfSize:14]; + NSString *text = [NSString stringWithFormat:@"ID:%ld", (long)userInfo.erbanNo]; + NSMutableAttributedString *textAtt = [[NSMutableAttributedString alloc]initWithString:[NSString stringWithFormat:@"%@ ",text] attributes:@{NSForegroundColorAttributeName:UIColorFromRGB(0x6D6B89)}]; + NSTextAttachment * attachment = [[NSTextAttachment alloc] init]; + UIImage *iconImage = [UIImage imageNamed:@"user_card_copy_id1"];; + attachment.bounds = CGRectMake(0, roundf(font.capHeight - iconImage.size.height)/2.f, iconImage.size.width, iconImage.size.height); + attachment.image = iconImage; + [textAtt insertAttributedString:[NSMutableAttributedString attributedStringWithAttachment:attachment] atIndex:textAtt.length]; + return textAtt; + + +} +- (void)cretowardsMtowardserialProttypeIdiosyncracy:(ConsumerAbstractMatrix *)userInfo complete:(nonnull CompletionHandler)complete{ + NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] init]; + if (!userInfo) { + if(complete){ + complete(attributedString); + } + return; + } + + dispatch_async(dispatch_get_global_queue(0, 0), ^{ + + if (userInfo.nameplateWord.length > 0 && userInfo.nameplatePic.length>0) { + [self produceMtowardserialTowardstibute:userInfo.nameplateWord image:userInfo.nameplatePic textFont:[UIFont systemFontOfSize:9]]; + [attributedString appendAttributedString:[self produceSapceIdiosyncracy:2]]; + } + + + if (userInfo.userLevelVo.experUrl) { + [attributedString appendAttributedString:[self produceWeebsiteIndictowardseIdiosyncracy:userInfo.userLevelVo.experUrl]]; + [attributedString appendAttributedString:[self produceSapceIdiosyncracy:2]]; + } + + + if (userInfo.userLevelVo.charmUrl) { + [attributedString appendAttributedString:[self produceWeebsiteIndictowardseIdiosyncracy:userInfo.userLevelVo.charmUrl]]; + [attributedString appendAttributedString:[self produceSapceIdiosyncracy:2]]; + } + + + if (userInfo.birth) { + [attributedString appendAttributedString:[self manufactureEngagementSequencigntowardsion:userInfo.birth]]; + } + dispatch_async(dispatch_get_main_queue(), ^{ + if(complete){ + complete(attributedString); + } + }); + + }); + + + +} + + +#pragma mark - Getters And Setters +- (void)setUserInfo:(ConsumerAbstractMatrix *)userInfo { + _userInfo = userInfo; + if (_userInfo) { + self.idSequencignation.attributedText = userInfo.idAtt; + self.constituteSequencignation.text = _userInfo.nick.length > 0 ? _userInfo.nick : @""; + self.intelligenceportraitIndicateRegard.imageUrl = userInfo.avatar; + if (userInfo.isReview) { + self.reviewRegard.hidden = NO; + } else { + self.reviewRegard.hidden = YES; + self.intelligenceportraitIndicateRegard.imageUrl = userInfo.avatar; + } + self.magnificentIndicateRegard.imageUrl = userInfo.userVipInfoVO.vipIcon; + UIImage *nobleImage = self.magnificentIndicateRegard.image; + if (nobleImage) { + CGFloat scale = nobleImage.size.width / nobleImage.size.height; + [self.magnificentIndicateRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(20* scale, 20)); + }]; + [self.constituteHierarchyRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.magnificentIndicateRegard.mas_right).mas_offset(5); + }]; + } else { + [self.magnificentIndicateRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(0, 20)); + }]; + [self.constituteHierarchyRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.magnificentIndicateRegard.mas_right); + }]; + } + NSString * sexName; + if (userInfo.gender == GenderGenre_Male) { + sexName = @"common_male"; + } else { + sexName = @"common_female"; + } + self.seaxualityIndicateRegard.image = [UIImage imageNamed:sexName]; + self.prototypeSequencignation.attributedText = _userInfo.levelAtt; + self.fanaticsRegard.number = [NSString stringWithFormat:@"%ld",_userInfo.fansNum]; + self.considerationRegard.number = [NSString stringWithFormat:@"%ld",_userInfo.followNum]; + } +} + +- (void)setWentiretyetAbstract:(RamparatetAbstractMatrix *)wentiretyetAbstract { + self.accomputationRegard.diamonds = wentiretyetAbstract.diamonds; +} + + +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceportraitIndicateRegard.userInteractionEnabled = YES; + _intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _intelligenceportraitIndicateRegard.layer.cornerRadius = 37; + } + return _intelligenceportraitIndicateRegard; +} + +- (UIStackView *)constituteHierarchyRegard { + if (!_constituteHierarchyRegard) { + _constituteHierarchyRegard = [[UIStackView alloc] init]; + _constituteHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _constituteHierarchyRegard.distribution = UIStackViewDistributionFill; + _constituteHierarchyRegard.alignment = UIStackViewAlignmentCenter; + _constituteHierarchyRegard.spacing = 5; + } + return _constituteHierarchyRegard; +} + +- (NetIndicateRegard *)magnificentIndicateRegard { + if (!_magnificentIndicateRegard) { + _magnificentIndicateRegard = [[NetIndicateRegard alloc] init]; + } + return _magnificentIndicateRegard; +} + +- (UILabel *)constituteSequencignation { + if (!_constituteSequencignation) { + _constituteSequencignation = [[UILabel alloc] init]; + _constituteSequencignation.font = [UIFont fontWithName:@"PingFang-SC-Medium" size:16]; + _constituteSequencignation.textColor = [DJDKMIMOMColor colorAboutHexBWSttr:@"#1F1A4E"]; + } + return _constituteSequencignation; +} + +- (UIStackView *)idHierarchyRegard { + if (!_idHierarchyRegard) { + _idHierarchyRegard = [[UIStackView alloc] init]; + _idHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _idHierarchyRegard.distribution = UIStackViewDistributionFill; + _idHierarchyRegard.alignment = UIStackViewAlignmentCenter; + _idHierarchyRegard.spacing = 5; + } + return _idHierarchyRegard; +} + +- (UILabel *)idSequencignation { + if (!_idSequencignation) { + _idSequencignation = [[UILabel alloc] init]; + _idSequencignation.font = [UIFont systemFontOfSize:14]; + _idSequencignation.textColor = UIColorFromRGB(0x6D6B89); + _idSequencignation.userInteractionEnabled = YES; + UITapGestureRecognizer *longPress = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(copyConstitutePerformance)]; + [_idSequencignation addGestureRecognizer:longPress]; + } + return _idSequencignation; +} + +- (UIImageView *)seaxualityIndicateRegard { + if (!_seaxualityIndicateRegard) { + _seaxualityIndicateRegard = [[UIImageView alloc] init]; + _seaxualityIndicateRegard.userInteractionEnabled = YES; + } + return _seaxualityIndicateRegard; +} + +- (YYLabel *)prototypeSequencignation { + if (!_prototypeSequencignation) { + _prototypeSequencignation = [[YYLabel alloc] init]; + _prototypeSequencignation.preferredMaxLayoutWidth = KScreenWidth - 88; + } + return _prototypeSequencignation; +} + +- (UIStackView *)considerationHierarchyRegard { + if (!_considerationHierarchyRegard) { + _considerationHierarchyRegard = [[UIStackView alloc] init]; + _considerationHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _considerationHierarchyRegard.distribution = UIStackViewDistributionFill; + _considerationHierarchyRegard.alignment = UIStackViewAlignmentFill; + } + return _considerationHierarchyRegard; +} + +- (YUMIManeAssistantNumberRegard *)considerationRegard { + if (!_considerationRegard) { + _considerationRegard = [[YUMIManeAssistantNumberRegard alloc] init]; + _considerationRegard.title = YMLocalizedString(@"YUMI_Mine_Head_View_4"); + _considerationRegard.number = @"0"; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(betowardsConsidertowardsionRecognition)]; + [_considerationRegard addGestureRecognizer:tap]; + } + return _considerationRegard; +} + +- (YUMIManeAssistantNumberRegard *)fanaticsRegard { + if (!_fanaticsRegard) { + _fanaticsRegard = [[YUMIManeAssistantNumberRegard alloc] init]; + _fanaticsRegard.title = YMLocalizedString(@"YUMI_Mine_Head_View_5"); + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(betowardsFantowardsicsRecognition)]; + [_fanaticsRegard addGestureRecognizer:tap]; + } + return _fanaticsRegard; +} + +- (YUMIManeAccountRegard *)accomputationRegard { + if (!_accomputationRegard) { + _accomputationRegard = [[YUMIManeAccountRegard alloc] init]; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(betowardsSequenceriptionrecognizer)]; + [_accomputationRegard addGestureRecognizer:tap]; + } + return _accomputationRegard; +} + +- (UIImageView *)reviewRegard{ + if (!_reviewRegard){ + _reviewRegard = [UIImageView new]; + _reviewRegard.hidden = YES; + _reviewRegard.image = [UIImage imageNamed:@"yumi_center_avatar_reviewing"]; + UILabel *titleView = [[UILabel alloc] init]; + titleView.text = YMLocalizedString(@"YUMI_Mine_Head_View_7"); + titleView.font = [UIFont systemFontOfSize:11 weight:UIFontWeightRegular]; + titleView.textColor = [UIColor whiteColor]; + titleView.textAlignment = NSTextAlignmentCenter; + [_reviewRegard addSubview:titleView]; + [titleView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.equalTo(_reviewRegard); + }]; + } + return _reviewRegard; +} +@end diff --git a/YuMi/Modules/YMMine/View/SubViews/YUMIManeIntersectPwordIntrojectionRegard.h b/YuMi/Modules/YMMine/View/SubViews/YUMIManeIntersectPwordIntrojectionRegard.h new file mode 100644 index 00000000..68dc983e --- /dev/null +++ b/YuMi/Modules/YMMine/View/SubViews/YUMIManeIntersectPwordIntrojectionRegard.h @@ -0,0 +1,31 @@ +// +// YMMinePayPwdInputView.h +// YUMI +// +// Created by YUMI on 2021/9/18. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSInteger, YUMIPayPwdIntrojectionRegardGenre) { + YUMIPayPwdIntrojectionRegardGenrePwd, + YUMIPayPwdIntrojectionRegardGenreRepeatPwd, + YUMIPayPwdIntrojectionRegardGenreVerification +}; + +@interface YUMIManeIntersectPwordIntrojectionRegard : UIView + +@property (nonatomic, assign) YUMIPayPwdIntrojectionRegardGenre type; + +@property (nonatomic, copy) void (^fetchVerificationHandler)(void); + +- (NSString *)contentText; + +- (void)verifictowardsionComputtowardsiondownRefurbish:(NSInteger)seconds; + +- (void)verifictowardsionComputtowardsiondownAccomplish; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/SubViews/YUMIManeIntersectPwordIntrojectionRegard.m b/YuMi/Modules/YMMine/View/SubViews/YUMIManeIntersectPwordIntrojectionRegard.m new file mode 100644 index 00000000..20e54542 --- /dev/null +++ b/YuMi/Modules/YMMine/View/SubViews/YUMIManeIntersectPwordIntrojectionRegard.m @@ -0,0 +1,190 @@ +// +// YMMinePayPwdInputView.m +// YUMI +// +// Created by YUMI on 2021/9/18. +// + +#import "YUMIManeIntersectPwordIntrojectionRegard.h" +#import +#import "DJDKMIMOMColor.h" +#import "UIButton+EnlargeTouchArea.h" +@interface YUMIManeIntersectPwordIntrojectionRegard() +@property (nonatomic, strong) UIView *burlywoodRegard; +@property (nonatomic, strong) UITextField *satisfperformanceEssayUniverse; +@property (nonatomic, strong) UIButton *positionBtuton; +@property (nonatomic, assign) BOOL isAssurance; +@property (nonatomic, assign) int satisfperformanceRestriction; +@property (nonatomic, assign) UIKeyboardType keyboardType; +@property (nonatomic, strong) NSString *placeholder; + +@end + + +@implementation YUMIManeIntersectPwordIntrojectionRegard + +- (instancetype)init { + if (self = [super init]) { + [self initSubviews]; + } + return self; +} + +- (void)initSubviews { + self.backgroundColor = [DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify]; + [self addSubview:self.satisfperformanceEssayUniverse]; + [self addSubview:self.positionBtuton]; + [self addSubview:self.burlywoodRegard]; + [self manufactureConstriants]; +} + +- (void)manufactureConstriants { + + [self.burlywoodRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self).inset(25); + make.bottom.mas_equalTo(0); + make.height.mas_equalTo(0.5); + }]; + + [self.positionBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self.burlywoodRegard); + make.bottom.mas_equalTo(-10); + }]; + + [self.satisfperformanceEssayUniverse mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.positionBtuton); + make.left.mas_equalTo(self.burlywoodRegard); + make.right.mas_equalTo(self.positionBtuton.mas_left).offset(-10); + make.height.mas_equalTo(44); + }]; +} + +#pragma mark - Event + +- (void)edingtingDiversifictowardsion { + if (self.satisfperformanceRestriction && self.satisfperformanceEssayUniverse.text.length > self.satisfperformanceRestriction) { + self.satisfperformanceEssayUniverse.text = [self.satisfperformanceEssayUniverse.text substringToIndex:self.satisfperformanceRestriction]; + } +} + +- (void)onTicktackPositionBtuton:(UIButton *)sender { + if (self.type == YUMIPayPwdIntrojectionRegardGenreVerification) { + !self.fetchVerificationHandler ?: self.fetchVerificationHandler(); + return; + } + + sender.selected = !sender.selected; + self.isAssurance = !sender.selected; +} + +#pragma mark - Public +- (NSString *)contentText { + return self.satisfperformanceEssayUniverse.text; +} + +- (void)verifictowardsionComputtowardsiondownRefurbish:(NSInteger)seconds { + if (self.type == YUMIPayPwdIntrojectionRegardGenreVerification) { + [self.positionBtuton setTitle:[NSString stringWithFormat:YMLocalizedString(@"YUMI_Mine_Pay_Pwd_Input_View_0"), (long)seconds] forState:UIControlStateNormal]; + [self.positionBtuton setEnabled:NO]; + [self.positionBtuton setTitleColor:[DJDKMIMOMColor aplictowardsionMainPrettify] forState:UIControlStateNormal]; + } +} + +- (void)verifictowardsionComputtowardsiondownAccomplish { + if (self.type == YUMIPayPwdIntrojectionRegardGenreVerification) { + [self.positionBtuton setTitle:YMLocalizedString(@"YUMI_Mine_Pay_Pwd_Input_View_1") forState:UIControlStateNormal]; + [self.positionBtuton setEnabled:YES]; + [self.positionBtuton setTitleColor:[DJDKMIMOMColor aplictowardsionMainPrettify] forState:UIControlStateNormal]; + } +} + +#pragma mark - Getters And Setters +- (void)setType:(YUMIPayPwdIntrojectionRegardGenre)type { + _type = type; + + switch (type) { + case YUMIPayPwdIntrojectionRegardGenrePwd: + { + self.satisfperformanceRestriction = 6; + self.isAssurance = YES; + self.keyboardType = UIKeyboardTypeNumberPad; + self.placeholder = [NSString stringWithFormat:YMLocalizedString(@"YUMI_Mine_Pay_Pwd_Input_View_2")]; + } + break; + case YUMIPayPwdIntrojectionRegardGenreRepeatPwd: + { + self.satisfperformanceRestriction = 6; + self.isAssurance = YES; + self.keyboardType = UIKeyboardTypeNumberPad; + self.placeholder = [NSString stringWithFormat:YMLocalizedString(@"YUMI_Mine_Pay_Pwd_Input_View_3")]; + } + break; + case YUMIPayPwdIntrojectionRegardGenreVerification: + { + self.satisfperformanceRestriction = 5; + self.isAssurance = NO; + self.keyboardType = UIKeyboardTypeNumberPad; + self.placeholder = YMLocalizedString(@"YUMI_Mine_Pay_Pwd_Input_View_4"); + + [self.positionBtuton setTitle:YMLocalizedString(@"YUMI_Mine_Pay_Pwd_Input_View_5") forState:UIControlStateNormal]; + [self.positionBtuton setTitleColor:[DJDKMIMOMColor aplictowardsionMainPrettify] forState:UIControlStateNormal]; + [self.positionBtuton setImage:nil forState:UIControlStateNormal]; + [self.positionBtuton setImage:nil forState:UIControlStateSelected]; + } + break; + default: + break; + } +} + +- (void)setIsAssurance:(BOOL)isAssurance { + _isAssurance = isAssurance; + + self.positionBtuton.selected = !isAssurance; + self.satisfperformanceEssayUniverse.secureTextEntry = isAssurance; +} + +- (void)setPlaceholder:(NSString *)placeholder { + _placeholder = placeholder; + self.satisfperformanceEssayUniverse.attributedPlaceholder = [[NSAttributedString alloc] initWithString:placeholder attributes:@{NSFontAttributeName : self.satisfperformanceEssayUniverse.font, NSForegroundColorAttributeName : [DJDKMIMOMColor instantEssayPrettify]}]; +} + +- (void)setKeyboardType:(UIKeyboardType)keyboardType { + _keyboardType = keyboardType; + self.satisfperformanceEssayUniverse.keyboardType = keyboardType; +} + +- (UIView *)burlywoodRegard { + if (!_burlywoodRegard) { + _burlywoodRegard = [[UIView alloc] init]; + _burlywoodRegard.backgroundColor = [DJDKMIMOMColor dividerPrettify]; + } + return _burlywoodRegard; +} + +- (UITextField *)satisfperformanceEssayUniverse { + if (!_satisfperformanceEssayUniverse) { + _satisfperformanceEssayUniverse = [[UITextField alloc] init]; + _satisfperformanceEssayUniverse.secureTextEntry = YES; + _satisfperformanceEssayUniverse.font = [UIFont systemFontOfSize:13]; + _satisfperformanceEssayUniverse.textColor = [DJDKMIMOMColor mainEssayPrettify]; + [_satisfperformanceEssayUniverse addTarget:self action:@selector(edingtingDiversifictowardsion) forControlEvents:UIControlEventEditingChanged]; + } + return _satisfperformanceEssayUniverse; +} + +- (UIButton *)positionBtuton { + if (!_positionBtuton) { + _positionBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_positionBtuton addTarget:self action:@selector(onTicktackPositionBtuton:) forControlEvents:UIControlEventTouchUpInside]; + [_positionBtuton setImage:[UIImage imageNamed:@"yumi_center_setting_pay_password_hidden"] forState:UIControlStateNormal]; + [_positionBtuton setImage:[UIImage imageNamed:@"yumi_center_setting_pay_password_show"] forState:UIControlStateSelected]; + _positionBtuton.titleLabel.font = [UIFont systemFontOfSize:15]; + [_positionBtuton setContentHuggingPriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal]; + [_positionBtuton setContentCompressionResistancePriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal]; + [_positionBtuton setEnlargeEdgeAboutApex:8 right:8 bottom:8 left:8]; + } + return _positionBtuton; +} + +@end diff --git a/YuMi/Modules/YMMine/View/SubViews/YUMIManeModifIntersectPwordRegard.h b/YuMi/Modules/YMMine/View/SubViews/YUMIManeModifIntersectPwordRegard.h new file mode 100644 index 00000000..95efccec --- /dev/null +++ b/YuMi/Modules/YMMine/View/SubViews/YUMIManeModifIntersectPwordRegard.h @@ -0,0 +1,17 @@ +// +// YMMineModifPayPwdView.h +// YUMI +// +// Created by YUMI on 2021/9/18. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeModifIntersectPwordRegard : UIView +@property (nonatomic,strong, readonly) UITextField *satisfperformanceEssayUniverse; +@property (nonatomic,copy) NSString *placeholder; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/SubViews/YUMIManeModifIntersectPwordRegard.m b/YuMi/Modules/YMMine/View/SubViews/YUMIManeModifIntersectPwordRegard.m new file mode 100644 index 00000000..eb6b46f0 --- /dev/null +++ b/YuMi/Modules/YMMine/View/SubViews/YUMIManeModifIntersectPwordRegard.m @@ -0,0 +1,110 @@ +// +// YMMineModifPayPwdView.m +// YUMI +// +// Created by YUMI on 2021/9/18. +// + +#import "YUMIManeModifIntersectPwordRegard.h" +#import +#import "DJDKMIMOMColor.h" +#import "UIButton+EnlargeTouchArea.h" + +@interface YUMIManeModifIntersectPwordRegard () +@property (nonatomic,strong) UITextField *satisfperformanceEssayUniverse; +@property (nonatomic,strong) UIButton *commandBtuton; +@property (nonatomic,strong) UIView * partBurlywoodRegard; +@end + +@implementation YUMIManeModifIntersectPwordRegard + +- (instancetype)initWithFrame:(CGRect)frame +{ + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Response +- (void)onTicktackVeiledBtuton:(UIButton *)btn { + btn.selected = !btn.selected; + self.satisfperformanceEssayUniverse.secureTextEntry = !self.satisfperformanceEssayUniverse.secureTextEntry; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify]; + [self addSubview:self.satisfperformanceEssayUniverse]; + [self addSubview:self.commandBtuton]; + [self addSubview:self.partBurlywoodRegard]; +} + +- (void)initChildLyRestrictions { + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(50); + }]; + + [self.satisfperformanceEssayUniverse mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self).offset(15); + make.top.bottom.mas_equalTo(self); + }]; + + [self.commandBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self).offset(-32); + make.centerY.mas_equalTo(self.satisfperformanceEssayUniverse); + make.left.mas_equalTo(self.satisfperformanceEssayUniverse.mas_right).offset(10); + }]; + + [self.partBurlywoodRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self).offset(5); + make.right.mas_equalTo(self).offset(-5); + make.bottom.mas_equalTo(self); + make.height.mas_equalTo(0.5); + }]; +} + +#pragma mark - Getters And Setters +- (void)setPlaceholder:(NSString *)placeholder { + _placeholder = placeholder; + self.satisfperformanceEssayUniverse.attributedPlaceholder = [[NSAttributedString alloc] initWithString:placeholder attributes:@{NSFontAttributeName : self.satisfperformanceEssayUniverse.font, NSForegroundColorAttributeName : [DJDKMIMOMColor instantEssayPrettify]}]; +} + + +- (UIView *)partBurlywoodRegard { + if (!_partBurlywoodRegard) { + _partBurlywoodRegard = [[UIView alloc] init]; + _partBurlywoodRegard.backgroundColor = [DJDKMIMOMColor dividerPrettify]; + } + return _partBurlywoodRegard; +} + +- (UITextField *)satisfperformanceEssayUniverse { + if (!_satisfperformanceEssayUniverse) { + _satisfperformanceEssayUniverse = [[UITextField alloc] init]; + _satisfperformanceEssayUniverse.secureTextEntry = YES; + _satisfperformanceEssayUniverse.font = [UIFont systemFontOfSize:13]; + _satisfperformanceEssayUniverse.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _satisfperformanceEssayUniverse.tintColor = [DJDKMIMOMColor aplictowardsionMainPrettify]; + } + return _satisfperformanceEssayUniverse; +} + +- (UIButton *)commandBtuton { + if (!_commandBtuton) { + _commandBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_commandBtuton setEnlargeEdgeAboutApex:20 right:20 bottom:20 left:20]; + [_commandBtuton addTarget:self action:@selector(onTicktackVeiledBtuton:) forControlEvents:UIControlEventTouchUpInside]; + [_commandBtuton setImage:[UIImage imageNamed:@"yumi_center_setting_modif_pay_pwd_hidden"] forState:UIControlStateNormal]; + [_commandBtuton setImage:[UIImage imageNamed:@"yumi_center_setting_modif_pay_pwd_show"] forState:UIControlStateSelected]; + _commandBtuton.titleLabel.font = [UIFont systemFontOfSize:12]; + [_commandBtuton setContentHuggingPriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal]; + } + return _commandBtuton; +} + + + +@end diff --git a/YuMi/Modules/YMMine/View/SubViews/YUMIManeStrangeConsumerReindictRegard.h b/YuMi/Modules/YMMine/View/SubViews/YUMIManeStrangeConsumerReindictRegard.h new file mode 100644 index 00000000..bbb99e4d --- /dev/null +++ b/YuMi/Modules/YMMine/View/SubViews/YUMIManeStrangeConsumerReindictRegard.h @@ -0,0 +1,18 @@ +// +// YMMineNewUserRechargeView.h +// YUMI +// +// Created by YUMI on 2022/7/28. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeStrangeConsumerReindictRegard : UIView + +@property (nonatomic, assign) long endTime; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/SubViews/YUMIManeStrangeConsumerReindictRegard.m b/YuMi/Modules/YMMine/View/SubViews/YUMIManeStrangeConsumerReindictRegard.m new file mode 100644 index 00000000..a2b04797 --- /dev/null +++ b/YuMi/Modules/YMMine/View/SubViews/YUMIManeStrangeConsumerReindictRegard.m @@ -0,0 +1,164 @@ +// +// YMMineNewUserRechargeView.m +// YUMI +// +// Created by YUMI on 2022/7/28. +// + +#import "YUMIManeStrangeConsumerReindictRegard.h" +#import +#import "YUMIMacroUitls.h" +#import "DJDKMIMOMColor.h" +#import "Intratemporalstamp.h" + +@interface YUMIManeStrangeConsumerReindictRegard () +@property (nonatomic,strong) UIImageView *encourageIndicateRegard; +@property (nonatomic,strong) UILabel *monicerSequencignation; + +@end + +@implementation YUMIManeStrangeConsumerReindictRegard + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initOccurrences]; + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.encourageIndicateRegard]; + [self.encourageIndicateRegard addSubview:self.monicerSequencignation]; +} + +- (void)initChildLyRestrictions { + [self.encourageIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self); + }]; + [self.monicerSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(0); + make.right.mas_equalTo(-6); + make.bottom.mas_equalTo(-2); + make.height.mas_equalTo(14); + }]; +} + +- (void)initOccurrences { + UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(chamberRoadliceCouple:)]; + pan.delaysTouchesBegan = YES; + [self addGestureRecognizer:pan]; +} + +#pragma mark - events +- (void)chamberRoadliceCouple:(UIPanGestureRecognizer*)p { + UIWindow *appWindow = [UIApplication sharedApplication].delegate.window; + CGPoint panSpeck = [p locationInView:appWindow]; + if (p.state == UIGestureRecognizerStateBegan) { + self.alpha = 1; + } else if(p.state == UIGestureRecognizerStateChanged) { + self.center = CGPointMake(panSpeck.x, panSpeck.y); + } else if(p.state == UIGestureRecognizerStateEnded + || p.state == UIGestureRecognizerStateCancelled) { + self.alpha = 1; + CGFloat touchWidth = self.frame.size.width; + CGFloat touchHeight = self.frame.size.height; + CGFloat screenWidth = [[UIScreen mainScreen] bounds].size.width; + CGFloat screenHeight = [[UIScreen mainScreen] bounds].size.height; + + CGFloat left = fabs(panSpeck.x); + CGFloat right = fabs(screenWidth - left); + CGFloat top = fabs(panSpeck.y); + CGFloat bottom = fabs(screenHeight - top); + CGFloat minSpace = 0; + minSpace = MIN(MIN(MIN(top, left), bottom), right); + CGPoint newCenter; + CGFloat targetY = 0; + + if (panSpeck.y < 15 + touchHeight / 2.0) { + targetY = 15 + touchHeight / 2.0; + }else if (panSpeck.y > (screenHeight - touchHeight / 2.0 - 15)) { + targetY = screenHeight - touchHeight / 2.0 - 15; + }else{ + targetY = panSpeck.y; + } + + if (minSpace == left) { + newCenter = CGPointMake(touchWidth/2.0, targetY); + }else if (minSpace == right) { + newCenter = CGPointMake(touchWidth/2.0, targetY); + }else if (minSpace == top) { + newCenter = CGPointMake(touchWidth/2.0, touchWidth / 3); + }else { + newCenter = CGPointMake(touchWidth/2.0, screenHeight - touchWidth / 3); + } + [UIView animateWithDuration:0.25 animations:^{ + if (newCenter.y + self.frame.size.height / 2 > KScreenHeight - kSafeAreaBottomHeight - 44) { + self.center = CGPointMake(newCenter.x, KScreenHeight - self.frame.size.height / 2 - kSafeAreaBottomHeight - 44); + }else { + self.center = newCenter; + } + }]; + } +} + +#pragma mark - Getters And Setters +- (void)setEndTime:(long)endTime { + _endTime = endTime; + [Intratemporalstamp acquireInternetEngagementAboutAccomplishment:^(NSTimeInterval timeInterval) { + timeInterval = timeInterval * 1000; + long aTime = (endTime - timeInterval) / 1000; + [self computtowardsionIntrtowardsemporalAboutIntrtowardsemporal:aTime]; + } failure:^(NSError * _Nonnull error) { + NSDate *datenow = [NSDate date]; + long time2 = (long)([datenow timeIntervalSince1970]*1000); + long aTime = (endTime - time2) / 1000; + [self computtowardsionIntrtowardsemporalAboutIntrtowardsemporal:aTime]; + }]; +} + +- (void)computtowardsionIntrtowardsemporalAboutIntrtowardsemporal:(long)time { + NSInteger minute; + NSInteger hour; + NSInteger day = time / 24 / 3600; + time = time - day * 24 * 3600; + hour = time / 3600; + time = time - hour * 3600; + minute = time / 60; + if (day > 0) { + if (hour > 0) { + self.monicerSequencignation.text = [NSString stringWithFormat:YMLocalizedString(@"YUMI_Mine_New_User_Recharge_View_0"), day, hour, minute]; + } else { + self.monicerSequencignation.text = [NSString stringWithFormat:YMLocalizedString(@"YUMI_Mine_New_User_Recharge_View_1"), day, minute]; + } + } else { + if (hour > 0) { + self.monicerSequencignation.text = [NSString stringWithFormat:YMLocalizedString(@"YUMI_Mine_New_User_Recharge_View_2"), hour, minute]; + } else { + self.monicerSequencignation.text = [NSString stringWithFormat:YMLocalizedString(@"YUMI_Mine_New_User_Recharge_View_3"), minute]; + } + } +} + +- (UIImageView *)encourageIndicateRegard { + if (!_encourageIndicateRegard) { + _encourageIndicateRegard = [[UIImageView alloc] init]; + _encourageIndicateRegard.image = [UIImage imageNamed:@"yumi_NewUserRecharge_entrance_background"]; + } + return _encourageIndicateRegard; +} + +- (UILabel *)monicerSequencignation { + if (!_monicerSequencignation) { + _monicerSequencignation = [[UILabel alloc] init]; + _monicerSequencignation.font = [UIFont systemFontOfSize:8 weight:UIFontWeightMedium]; + _monicerSequencignation.textColor = [UIColor whiteColor]; + _monicerSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _monicerSequencignation; +} + +@end diff --git a/YuMi/Modules/YMMine/View/SubViews/YUMIManeValidationIdentityRegard.h b/YuMi/Modules/YMMine/View/SubViews/YUMIManeValidationIdentityRegard.h new file mode 100644 index 00000000..5429a551 --- /dev/null +++ b/YuMi/Modules/YMMine/View/SubViews/YUMIManeValidationIdentityRegard.h @@ -0,0 +1,25 @@ +// +// YMMineVerifIdentityView.h +// YUMI +// +// Created by YUMI on 2021/9/18. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSUInteger,YUMI_MineVerifIdentityType ) { + YUMI_MineVerifIdentityType_Phone, + YUMI_MineVerifIdentityType_Sms, +}; +typedef void(^VerifIdentitySmsCodeBlock)(UIButton *sender); +@interface YUMIManeValidationIdentityRegard : UIView +@property (nonatomic, strong, readonly) UITextField *satisfperformanceEssayUniverse; +@property (nonatomic, strong, readonly) UIButton *smsCryptogramBtuton; +@property (nonatomic,copy) VerifIdentitySmsCodeBlock smsCryptogramDiscourage; +@property (nonatomic,assign) YUMI_MineVerifIdentityType type; +@property (nonatomic, strong) NSString *placeholder; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/SubViews/YUMIManeValidationIdentityRegard.m b/YuMi/Modules/YMMine/View/SubViews/YUMIManeValidationIdentityRegard.m new file mode 100644 index 00000000..034d5c13 --- /dev/null +++ b/YuMi/Modules/YMMine/View/SubViews/YUMIManeValidationIdentityRegard.m @@ -0,0 +1,121 @@ +// +// YMMineVerifIdentityView.m +// YUMI +// +// Created by YUMI on 2021/9/18. +// + +#import "YUMIManeValidationIdentityRegard.h" +#import +#import "DJDKMIMOMColor.h" + +@interface YUMIManeValidationIdentityRegard () +@property (nonatomic,strong) UIStackView *stackView; +@property (nonatomic, strong) UIView *burlywoodRegard; +@property (nonatomic, strong) UITextField *satisfperformanceEssayUniverse; +@property (nonatomic, strong) UIButton *smsCryptogramBtuton; +@end + +@implementation YUMIManeValidationIdentityRegard + + +- (instancetype)initWithFrame:(CGRect)frame +{ + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Response +- (void)smsCryptogramBtutonPerformance:(UIButton *)sender { + if (self.smsCryptogramDiscourage) { + self.smsCryptogramDiscourage(sender); + } +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.stackView]; + [self addSubview:self.burlywoodRegard]; + + [self.stackView addArrangedSubview:self.satisfperformanceEssayUniverse]; + [self.stackView addArrangedSubview:self.smsCryptogramBtuton]; +} + +- (void)initChildLyRestrictions { + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(50); + }]; + + [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self).offset(15); + make.right.mas_equalTo(self).offset(-32); + make.top.bottom.mas_equalTo(self); + }]; + + [self.burlywoodRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self).offset(5); + make.right.mas_equalTo(self).offset(-5); + make.bottom.mas_equalTo(self); + make.height.mas_equalTo(1); + }]; +} + +#pragma mark - Getters And Setters +- (void)setType:(YUMI_MineVerifIdentityType)type { + _type = type; + switch (_type) { + case YUMI_MineVerifIdentityType_Phone: + self.smsCryptogramBtuton.hidden = YES; + break; + default: + break; + } +} + +- (void)setPlaceholder:(NSString *)placeholder { + _placeholder = placeholder; + self.satisfperformanceEssayUniverse.attributedPlaceholder = [[NSAttributedString alloc] initWithString:placeholder attributes:@{NSFontAttributeName : self.satisfperformanceEssayUniverse.font, NSForegroundColorAttributeName : [DJDKMIMOMColor instantEssayPrettify]}]; +} + +- (UIStackView *)stackView { + if (!_stackView) { + _stackView = [[UIStackView alloc] init]; + _stackView.axis = UILayoutConstraintAxisHorizontal; + _stackView.distribution = UIStackViewDistributionFill; + _stackView.alignment = UIStackViewAlignmentCenter; + _stackView.spacing = 10; + } + return _stackView; +} + +- (UITextField *)satisfperformanceEssayUniverse { + if (!_satisfperformanceEssayUniverse) { + _satisfperformanceEssayUniverse = [[UITextField alloc] init]; + _satisfperformanceEssayUniverse.secureTextEntry = YES; + _satisfperformanceEssayUniverse.font = [UIFont systemFontOfSize:13]; + _satisfperformanceEssayUniverse.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _satisfperformanceEssayUniverse.tintColor = [DJDKMIMOMColor aplictowardsionMainPrettify]; + } + return _satisfperformanceEssayUniverse; +} + +- (UIButton *)smsCryptogramBtuton { + if (!_smsCryptogramBtuton) { + _smsCryptogramBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_smsCryptogramBtuton setTitle:YMLocalizedString(@"YUMI_Mine_Verif_Identity_View_0") forState:UIControlStateNormal]; + [_smsCryptogramBtuton setTitleColor:[DJDKMIMOMColor aplictowardsionMainPrettify] forState:UIControlStateNormal]; + [_smsCryptogramBtuton setTitleColor:[DJDKMIMOMColor aplictowardsionUnderlinePrettify] forState:UIControlStateDisabled]; + _smsCryptogramBtuton.titleLabel.font = [UIFont systemFontOfSize:12]; + _smsCryptogramBtuton.layer.masksToBounds = YES; + _smsCryptogramBtuton.layer.cornerRadius = 10; + [_smsCryptogramBtuton addTarget:self action:@selector(smsCryptogramBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + [_smsCryptogramBtuton setContentHuggingPriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal]; + } + return _smsCryptogramBtuton; +} + +@end diff --git a/YuMi/Modules/YMMine/View/SubViews/YUMITerminalImpressionNevRegard.h b/YuMi/Modules/YMMine/View/SubViews/YUMITerminalImpressionNevRegard.h new file mode 100644 index 00000000..62311a72 --- /dev/null +++ b/YuMi/Modules/YMMine/View/SubViews/YUMITerminalImpressionNevRegard.h @@ -0,0 +1,26 @@ +// +// YMFootPrintNavView.h +// YUMI +// +// Created by YUMI on 2022/7/26. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class YUMITerminalImpressionNevRegard; +@protocol FBCFootPrintNevRegardRepresendtation + +- (void)yUMITerminalImpressionNevRegard:(YUMITerminalImpressionNevRegard *)view didClickBackButton:(UIButton *)sender; +- (void)yUMITerminalImpressionNevRegard:(YUMITerminalImpressionNevRegard *)view didClickClearButton:(UIButton *)sender; + +@end + +@interface YUMITerminalImpressionNevRegard : UIView + +@property (nonatomic,weak) id delegate; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/SubViews/YUMITerminalImpressionNevRegard.m b/YuMi/Modules/YMMine/View/SubViews/YUMITerminalImpressionNevRegard.m new file mode 100644 index 00000000..4bddc82a --- /dev/null +++ b/YuMi/Modules/YMMine/View/SubViews/YUMITerminalImpressionNevRegard.m @@ -0,0 +1,104 @@ +// +// YMFootPrintNavView.m +// YUMI +// +// Created by YUMI on 2022/7/26. +// + +#import "YUMITerminalImpressionNevRegard.h" +#import +#import "DJDKMIMOMColor.h" +#import "UIButton+EnlargeTouchArea.h" + +@interface YUMITerminalImpressionNevRegard () + +@property (nonatomic,strong) UIButton *backButton; +@property (nonatomic,strong) UILabel *titleLabel; +@property (nonatomic, strong) UIButton *instanllingBtuton; + +@end + + +@implementation YUMITerminalImpressionNevRegard + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} +#pragma mark - Response +- (void)encourageBtutonPerformance:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMITerminalImpressionNevRegard:didClickBackButton:)]) { + [self.delegate yUMITerminalImpressionNevRegard:self didClickBackButton:sender]; + } +} + +- (void)prohibititinctBtutonPerformance:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMITerminalImpressionNevRegard:didClickClearButton:)]) { + [self.delegate yUMITerminalImpressionNevRegard:self didClickClearButton:sender]; + } +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor]; + [self addSubview:self.backButton]; + [self addSubview:self.titleLabel]; + [self addSubview:self.instanllingBtuton]; +} + +- (void)initChildLyRestrictions { + [self.backButton mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(15); + make.centerY.equalTo(self.mas_bottom).mas_offset(-22); + }]; + [self.instanllingBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(-15); + make.centerY.equalTo(self.mas_bottom).mas_offset(-22); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self); + make.centerY.equalTo(self.mas_bottom).mas_offset(-22); + }]; +} + +#pragma mark - Getters And Setters +- (UIButton *)backButton { + if (!_backButton) { + _backButton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_backButton setImage:[UIImage imageNamed:@"yumi_same_title_back"] forState:UIControlStateNormal]; + _backButton.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft; + [_backButton addTarget:self action:@selector(encourageBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + [_backButton setEnlargeEdgeAboutApex:10 right:10 bottom:10 left:10]; + } + return _backButton; +} + +- (UIButton *)instanllingBtuton { + if (!_instanllingBtuton) { + _instanllingBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_instanllingBtuton setTitle:YMLocalizedString(@"YUMI_Foot_Print_Nav_View_0") forState:UIControlStateNormal]; + _instanllingBtuton.titleLabel.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium]; + [_instanllingBtuton setTitleColor:[DJDKMIMOMColor essayTertiusPrettify] forState:UIControlStateNormal]; + [_instanllingBtuton addTarget:self action:@selector(prohibititinctBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + [_instanllingBtuton setEnlargeEdgeAboutApex:10 right:10 bottom:10 left:10]; + } + return _instanllingBtuton; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.textAlignment = NSTextAlignmentCenter; + _titleLabel.font = [UIFont systemFontOfSize:18 weight:UIFontWeightMedium]; + _titleLabel.text = YMLocalizedString(@"YUMI_Foot_Print_Nav_View_1"); + _titleLabel.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _titleLabel; +} + +@end diff --git a/YuMi/Modules/YMMine/View/YUMIButton.h b/YuMi/Modules/YMMine/View/YUMIButton.h new file mode 100644 index 00000000..7620faa6 --- /dev/null +++ b/YuMi/Modules/YMMine/View/YUMIButton.h @@ -0,0 +1,32 @@ +// +// YMButton.h +// YUMI +// +// Created by XY on 2023/2/21. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSUInteger, YUMIButtonStyle){ + XPButtonImageLeft = 0, + XPButtonImageRight = 1, + XPButtonImageTop = 2, + XPButtonImageBottom = 3, +}; + +@interface YUMIButton : UIButton + + +@property (nonatomic, assign) YUMIButtonStyle buttonStyle; + + +@property (nonatomic, assign) CGFloat padding; + + ++ (id)buttonWithType:(UIButtonType)buttonType withSpace:(CGFloat)vacuum; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/YUMIButton.m b/YuMi/Modules/YMMine/View/YUMIButton.m new file mode 100644 index 00000000..283f051c --- /dev/null +++ b/YuMi/Modules/YMMine/View/YUMIButton.m @@ -0,0 +1,78 @@ +// +// YMButton.m +// YUMI +// +// Created by XY on 2023/2/21. +// + +#import "YUMIButton.h" + +@interface YUMIButton() + + +@property (nonatomic, assign) CGFloat vacuum; + +@end + +@implementation YUMIButton + ++ (id)buttonWithType:(UIButtonType)buttonType withSpace:(CGFloat)vacuum { + YUMIButton *button = [super buttonWithType:buttonType]; + button.vacuum = vacuum; + return button; +} + +- (void)layoutSubviews { + [super layoutSubviews]; + + CGFloat labelWidth = self.titleLabel.frame.size.width; + + CGFloat labelHeight = self.titleLabel.frame.size.height; + + UIImage *image = self.imageView.image; + + switch (self.buttonStyle) { + case XPButtonImageLeft: { + + CGFloat imageHeight = self.frame.size.height - (2 * self.vacuum); + + CGFloat edgeSpace = (self.frame.size.width - imageHeight - labelWidth - self.padding) / 2; + self.imageEdgeInsets = UIEdgeInsetsMake(self.vacuum, edgeSpace, self.vacuum, edgeSpace + labelWidth + self.padding); + self.titleEdgeInsets = UIEdgeInsetsMake(0, -image.size.width + imageHeight + self.padding, 0, 0); + } + break; + case XPButtonImageRight: { + + CGFloat imageHeight = self.frame.size.height - (2 * self.vacuum); + + CGFloat edgeSpace = (self.frame.size.width - imageHeight - labelWidth - self.padding) / 2; + self.imageEdgeInsets = UIEdgeInsetsMake(self.vacuum, edgeSpace + labelWidth + self.padding, self.vacuum, edgeSpace); + self.titleEdgeInsets = UIEdgeInsetsMake(0, -image.size.width - self.padding - imageHeight, 0, 0); + } + break; + case XPButtonImageTop: { + + CGFloat imageHeight = self.frame.size.height - (2 * self.vacuum) - labelHeight - self.padding; + if (imageHeight > image.size.height) { + imageHeight = image.size.height; + } + self.imageEdgeInsets = UIEdgeInsetsMake(self.vacuum, (self.frame.size.width - imageHeight) / 2, self.vacuum + labelHeight + self.padding, (self.frame.size.width - imageHeight) / 2); + self.titleEdgeInsets = UIEdgeInsetsMake(self.vacuum + imageHeight + self.padding, -image.size.width, self.vacuum, 0); + } + break; + case XPButtonImageBottom: { + + CGFloat imageHeight = self.frame.size.height - (2 * self.vacuum) - labelHeight - self.padding; + if (imageHeight > image.size.height) { + imageHeight = image.size.height; + } + self.imageEdgeInsets = UIEdgeInsetsMake(self.vacuum + labelHeight + self.padding, (self.frame.size.width - imageHeight) / 2, self.vacuum, (self.frame.size.width - imageHeight) / 2); + self.titleEdgeInsets = UIEdgeInsetsMake(self.vacuum, -image.size.width, self.padding + imageHeight + self.vacuum, 0); + } + break; + default: + break; + } +} + +@end diff --git a/YuMi/Modules/YMMine/View/YUMIManeAssembleChamberStatementRegardGovernancer.h b/YuMi/Modules/YMMine/View/YUMIManeAssembleChamberStatementRegardGovernancer.h new file mode 100644 index 00000000..f1237e1b --- /dev/null +++ b/YuMi/Modules/YMMine/View/YUMIManeAssembleChamberStatementRegardGovernancer.h @@ -0,0 +1,16 @@ +// +// YMMineCollectRoomListViewController.h +// YUMI +// +// Created by YUMI on 2022/7/27. +// + +#import "MvpRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeAssembleChamberStatementRegardGovernancer : MvpRegardGovernancer + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/YUMIManeAssembleChamberStatementRegardGovernancer.m b/YuMi/Modules/YMMine/View/YUMIManeAssembleChamberStatementRegardGovernancer.m new file mode 100644 index 00000000..986b14cb --- /dev/null +++ b/YuMi/Modules/YMMine/View/YUMIManeAssembleChamberStatementRegardGovernancer.m @@ -0,0 +1,325 @@ +// +// YMMineCollectRoomListViewController.m +// YUMI +// +// Created by YUMI on 2022/7/27. +// + +#import "YUMIManeAssembleChamberStatementRegardGovernancer.h" +#import +#import +#import +#import +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" +#import "UIImage+Utils.h" +#import "StatsticsticsServingFacilitater.h" +#import "ResidenceAssembleChamberMatrix.h" +#import "YUMIResidenceAssembleChamberTabulationRegardElement.h" +#import "YUMIManeVacationerDispossessTabulationRegardElement.h" +#import "YUMIManeAssembleChamberStatementExternalizer.h" +#import "FBCManeCollectChamberStatementCeremony.h" +#import "YUMIChamberRegardGovernancer.h" +#import "YUMIManeAssembleParatiesChamberRegardGovernancer.h" + +static NSString *lastSelectTab = @"lastSelectTab"; + +@interface YUMIManeAssembleChamberStatementRegardGovernancer () + +@property (nonatomic, strong) JXCategoryListContainerView *listContainerView; +@property (nonatomic,strong) NSArray *titles; +@property (nonatomic,strong) JXCategoryTitleView *titleView; + +@property (nonatomic,strong) YUMIManeAssembleParatiesChamberRegardGovernancer *partyVewC; +@property (nonatomic, strong) YUMIManeAssembleParatiesChamberRegardGovernancer *kellegChamberStatementVewC; + +@property (nonatomic,assign) BOOL hasNoFurthaerAtoloudspeaker; +@property (nonatomic, strong) UIView *bottomView; +@property (nonatomic, strong) UIButton *entiretyChosenBtuton; +@property (nonatomic, strong) UIButton *representationBtuton; +@property (nonatomic, strong) UIButton *executiveBtuton; + +@end + +@implementation YUMIManeAssembleChamberStatementRegardGovernancer + +- (YUMIManeAssembleChamberStatementExternalizer *)producePresimport { + return [[YUMIManeAssembleChamberStatementExternalizer alloc] init]; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initSubViews]; + [self initChildLyRestrictions]; + [self accelertowardseBreeadcrumbProvisionAboutProvisions:@[self.executiveBtuton] isContrary:NO]; + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventcollection_editbutton_show]; +} + +- (void)executiveBtutonPerformance:(UIButton *)sender { + sender.selected = !sender.isSelected; + if (sender.isSelected) { + self.partyVewC.isCompile = YES; + self.kellegChamberStatementVewC.isCompile = YES; + self.bottomView.hidden = NO; + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventcollection_editbutton_click]; + } else { + self.bottomView.hidden = YES; + self.entiretyChosenBtuton.selected = NO; + self.partyVewC.isCompile = NO; + self.kellegChamberStatementVewC.isCompile = NO; + self.entiretyChosenBtuton.selected = NO; + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventcollection_editbutton_complete_click]; + } +} + +#pragma mark - JXCategoryListContainerViewDelegate +- (NSInteger)numberOfListsInlistContainerView:(JXCategoryListContainerView *)listContainerView { + return self.titles.count; +} + +- (id)listContainerView:(JXCategoryListContainerView *)listContainerView initListForIndex:(NSInteger)index { + if (index == 0) { + return self.partyVewC; + }else if (index == 1) { + return self.kellegChamberStatementVewC; + } + return nil; +} + +#pragma mark - JXCategoryViewDelegate +- (void)categoryView:(JXCategoryBaseView *)categoryView didSelectedItemAtIndex:(NSInteger)index { + + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + [defaults setObject:@(index) forKey:lastSelectTab]; + [defaults synchronize]; + + self.executiveBtuton.selected = NO; + self.entiretyChosenBtuton.selected = NO; + self.bottomView.hidden = YES; + self.partyVewC.isCompile = NO; + self.kellegChamberStatementVewC.isCompile = NO; +} + +#pragma mark - FBCManeCollectChamberStatementCeremony +- (void)representtowardsionAssembleChamberAccomplishment { + [self EvidenceAccomplishmentToast:YMLocalizedString(@"YUMI_MineCollectRoomListViewController0")]; + if (self.titleView.selectedIndex == 0) { + [self.partyVewC intelligenceerRenovtowardseh]; + } else { + [self.kellegChamberStatementVewC intelligenceerRenovtowardseh]; + } + self.entiretyChosenBtuton.selected = NO; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.title = YMLocalizedString(@"YUMI_MineCollectRoomListViewController1"); + [self.view addSubview:self.titleView]; + [self.view addSubview:self.listContainerView]; + [self.view addSubview:self.bottomView]; + [self.bottomView addSubview:self.entiretyChosenBtuton]; + [self.bottomView addSubview:self.representationBtuton]; +} + +- (void)initChildLyRestrictions { + [self.titleView mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.view); + make.width.mas_equalTo(180); + make.top.mas_equalTo(0); + make.height.mas_equalTo(44); + }]; + [self.listContainerView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.mas_equalTo(self.view); + make.top.mas_equalTo(self.titleView.mas_bottom); + }]; + [self.bottomView mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(64+kSafeAreaBottomHeight); + make.left.bottom.right.mas_equalTo(0); + }]; + [self.entiretyChosenBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(64); + make.height.mas_equalTo(22); + make.left.mas_equalTo(15); + make.top.mas_equalTo(18); + }]; + [self.representationBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(-15); + make.centerY.mas_equalTo(self.entiretyChosenBtuton); + make.size.mas_equalTo(CGSizeMake(72, 24)); + }]; +} + +#pragma mark - action +- (void)entiretyChosenBtutonPerformance:(UIButton *)sender { + sender.selected = !sender.selected; + if (self.titleView.selectedIndex == 0) { + self.partyVewC.isChosenEntirety = sender.selected; + } else { + self.kellegChamberStatementVewC.isChosenEntirety = sender.selected; + } + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventcollection_selectall_click]; +} + +- (void)representtowardsionBtutonPerformance:(UIButton *)sender { + if (self.titleView.selectedIndex == 0) { + NSMutableArray *roomUidsArray = [NSMutableArray array]; + for (ResidenceAssembleChamberMatrix *model in self.partyVewC.datasource) { + if (model.isSelected) { + [roomUidsArray addObject:model.roomUid]; + } + } + if (roomUidsArray.count) { + NSString *roomUids = [roomUidsArray componentsJoinedByString:@","]; + [self.presimport representtowardsionassembleChamberAboutChamberCids:roomUids]; + } else { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_MineCollectRoomListViewController2")]; + } + } else { + NSMutableArray *roomUidsArray = [NSMutableArray array]; + for (ResidenceAssembleChamberMatrix *model in self.kellegChamberStatementVewC.datasource) { + if (model.isSelected) { + [roomUidsArray addObject:model.roomUid]; + } + } + if (roomUidsArray.count) { + NSString *roomUids = [roomUidsArray componentsJoinedByString:@","]; + [self.presimport representtowardsionassembleChamberAboutChamberCids:roomUids]; + } else { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_MineCollectRoomListViewController3")]; + } + } + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventcollection_delete_click]; +} + +#pragma mark FBCManeCollectPartyChamberRegardGovernancerRepresendtation +- (void)fBCManeAssemblePartyChamberRegardGovernancerChosenEntirety:(BOOL)selectAll { + self.entiretyChosenBtuton.selected = selectAll; +} + +#pragma mark - Getters And Setters +- (UIView *)bottomView { + if (!_bottomView) { + _bottomView = [[UIView alloc] init]; + _bottomView.backgroundColor = [UIColor whiteColor]; + _bottomView.hidden = YES; + UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, KScreenWidth, 64+kSafeAreaBottomHeight) byRoundingCorners:UIRectCornerTopLeft | UIRectCornerTopRight cornerRadii:CGSizeMake(8, 8)]; + CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init]; + maskLayer.frame = CGRectMake(0, 0, KScreenWidth, 64+kSafeAreaBottomHeight); + maskLayer.path = maskPath.CGPath; + _bottomView.layer.mask = maskLayer; + } + return _bottomView; +} + +- (UIButton *)entiretyChosenBtuton { + if (!_entiretyChosenBtuton) { + UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; + button.titleLabel.font = [UIFont systemFontOfSize:16]; + [button addTarget:self action:@selector(entiretyChosenBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + [button setTitle:YMLocalizedString(@"YUMI_MineCollectRoomListViewController4") forState:UIControlStateNormal]; + [button setTitleColor:[DJDKMIMOMColor mainEssayPrettify] forState:UIControlStateNormal]; + [button setImage:[UIImage imageNamed:@"yumi_collect_scope_edit_normal"] forState:UIControlStateNormal]; + [button setImage:[UIImage imageNamed:@"yumi_collect_scope_edit_selected"] forState:UIControlStateSelected]; + _entiretyChosenBtuton = button; + } + return _entiretyChosenBtuton; +} + +- (UIButton *)executiveBtuton { + if (!_executiveBtuton) { + UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; + button.titleLabel.font = [UIFont systemFontOfSize:13]; + [button addTarget:self action:@selector(executiveBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + [button setTitle:YMLocalizedString(@"YUMI_MineCollectRoomListViewController5") forState:UIControlStateNormal]; + [button setTitle:YMLocalizedString(@"YUMI_MineCollectRoomListViewController6") forState:UIControlStateSelected]; + [button setTitleColor:UIColorFromRGB(0x999999) forState:UIControlStateNormal]; + _executiveBtuton = button; + } + return _executiveBtuton; +} + +- (UIButton *)representationBtuton { + if (!_representationBtuton) { + UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; + button.titleLabel.font = [UIFont systemFontOfSize:14]; + [button addTarget:self action:@selector(representtowardsionBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + [button setTitle:YMLocalizedString(@"YUMI_MineCollectRoomListViewController7") forState:UIControlStateNormal]; + [button setTitleColor:UIColorFromRGB(0xFB486A) forState:UIControlStateNormal]; + button.layer.cornerRadius = 12; + button.layer.masksToBounds = YES; + button.layer.borderWidth = 1; + button.layer.borderColor = UIColorFromRGB(0xFB486A).CGColor; + _representationBtuton = button; + } + return _representationBtuton; +} + +#pragma mark - Getters And Setters +- (JXCategoryListContainerView *)listContainerView { + if (!_listContainerView) { + _listContainerView = [[JXCategoryListContainerView alloc] initWithType:JXCategoryListContainerType_ScrollView delegate:self]; + _listContainerView.scrollView.scrollEnabled = YES; + _listContainerView.scrollView.tag = 1000; + _listContainerView.listCellBackgroundColor = [UIColor clearColor]; + } + return _listContainerView; +} + +- (YUMIManeAssembleParatiesChamberRegardGovernancer *)partyVewC { + if (!_partyVewC) { + _partyVewC = [[YUMIManeAssembleParatiesChamberRegardGovernancer alloc] init]; + _partyVewC.type = ManeCollectChamberGenreParty; + _partyVewC.delegate = self; + } + return _partyVewC; +} + +- (YUMIManeAssembleParatiesChamberRegardGovernancer *)kellegChamberStatementVewC { + if (!_kellegChamberStatementVewC) { + _kellegChamberStatementVewC = [[YUMIManeAssembleParatiesChamberRegardGovernancer alloc] init]; + _kellegChamberStatementVewC.type = ManeCollectChamberGenreAnchor; + _kellegChamberStatementVewC.delegate = self; + } + return _kellegChamberStatementVewC; +} + +- (NSArray *)titles { + if (!_titles) { + _titles = @[YMLocalizedString(@"YUMI_MineCollectRoomListViewController8")]; + } + return _titles; +} + +- (JXCategoryTitleView *)titleView { + if (!_titleView) { + _titleView = [[JXCategoryTitleView alloc] initWithFrame:CGRectZero]; + _titleView.backgroundColor =[UIColor clearColor]; + _titleView.titleColor = [DJDKMIMOMColor instantEssayPrettify]; + _titleView.titleSelectedColor = [DJDKMIMOMColor mainEssayPrettify]; + _titleView.titleFont = [UIFont systemFontOfSize:14 weight:UIFontWeightSemibold]; + _titleView.titleSelectedFont = [UIFont systemFontOfSize:14 weight:UIFontWeightHeavy]; + _titleView.titleLabelAnchorPointStyle = JXCategoryTitleLabelAnchorPointStyleCenter; + _titleView.contentScrollViewClickTransitionAnimationEnabled = NO; + _titleView.averageCellSpacingEnabled = YES; + _titleView.listContainer = self.listContainerView; + _titleView.titles = self.titles; + _titleView.delegate = self; + + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + NSNumber *index = [defaults objectForKey:lastSelectTab]; + _titleView.defaultSelectedIndex = index.intValue; + + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventcollection_entry eventAttributes:@{@"defaultTab" : self.titles[index.intValue]}]; + + JXCategoryIndicatorImageView *burlywoodRegard = [[JXCategoryIndicatorImageView alloc] init]; + burlywoodRegard.indicatorImageViewSize = CGSizeMake(50, 8); + burlywoodRegard.verticalMargin = 12; + burlywoodRegard.indicatorImageView.image = [UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[UIColorFromRGB(0x5BC8F8),UIColorFromRGB(0x66D9D9)] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(50, 8)]; + burlywoodRegard.indicatorImageView.layer.masksToBounds = YES; + burlywoodRegard.indicatorImageView.layer.cornerRadius = 4; + _titleView.indicators = @[burlywoodRegard]; + } + return _titleView; +} + +@end diff --git a/YuMi/Modules/YMMine/View/YUMIManeFanaticsSquadRegardGovernancer.h b/YuMi/Modules/YMMine/View/YUMIManeFanaticsSquadRegardGovernancer.h new file mode 100644 index 00000000..3038d3c1 --- /dev/null +++ b/YuMi/Modules/YMMine/View/YUMIManeFanaticsSquadRegardGovernancer.h @@ -0,0 +1,16 @@ +// +// YMMineFansTeamViewController.h +// YUMI +// +// Created by YUMI on 2022/4/8. +// + +#import "MvpRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeFanaticsSquadRegardGovernancer : MvpRegardGovernancer + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/YUMIManeFanaticsSquadRegardGovernancer.m b/YuMi/Modules/YMMine/View/YUMIManeFanaticsSquadRegardGovernancer.m new file mode 100644 index 00000000..88226cc7 --- /dev/null +++ b/YuMi/Modules/YMMine/View/YUMIManeFanaticsSquadRegardGovernancer.m @@ -0,0 +1,132 @@ +// +// YMMineFansTeamViewController.m +// YUMI +// +// Created by YUMI on 2022/4/8. +// + +#import "YUMIManeFanaticsSquadRegardGovernancer.h" +#import +#import "DJDKMIMOMColor.h" +#import "NSArray+Safe.h" +#import "ClientDisposition.h" +#import "YUMIManeKellegFanaticsSquadMatrix.h" +#import "YUMIManeKellegFanaticsSquadTabulationRegardElement.h" +#import "YUMIManeVacationerDispossessTabulationRegardElement.h" +#import "YUMIManeFanaticsSquadExternalizer.h" +#import "FBCManeKellegFanaticsTeamCeremony.h" +#import "YUMIManeConsumerAbstractRegardGovernancer.h" +#import "YUMIManeSimpleConsumerAbstractRegardGovernancer.h" +#import "InterlocutionRegardGovernancer.h" + +@interface YUMIManeFanaticsSquadRegardGovernancer () +@property (nonatomic,strong) UITableView *tableView; +@property (nonatomic,strong) NSMutableArray *datasource; +@property (nonatomic,assign) int page; +@property (nonatomic,assign) BOOL hasNoFurthaerAtoloudspeaker; +@end + +@implementation YUMIManeFanaticsSquadRegardGovernancer + +- (YUMIManeFanaticsSquadExternalizer *)producePresimport { + return [[YUMIManeFanaticsSquadExternalizer alloc] init]; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initSubViews]; + [self initChildLyRestrictions]; + [self.presimport acquireKellegFantowardsicsSquadSttowardsement:self.page pageSize:100 state:0]; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.title = YMLocalizedString(@"YUMI_Mine_Fans_Team_View_Controller_0"); + [self.view addSubview:self.tableView]; +} + +- (void)initChildLyRestrictions { + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.view); + }]; +} + +#pragma mark - FBCManeKellegFanaticsTeamCeremony +- (void)acquireKellegFantowardsicsSquadSttowardsementAccomplishment:(NSArray *)array state:(int)state { + [self.datasource addObjectsFromArray:array]; + [self.tableView reloadData]; +} + +- (void)acquireKellegFantowardsicsSquadSttowardsementFlunk:(int)state { + [self.tableView reloadData]; +} + +#pragma mark - UITableViewDelegate And UITableViewDataSource +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.datasource.count > 0 ? self.datasource.count : 1; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + if (self.datasource.count > 0) { + YUMIManeKellegFanaticsSquadTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIManeKellegFanaticsSquadTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIManeKellegFanaticsSquadTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIManeKellegFanaticsSquadTabulationRegardElement class])]; + } + cell.item = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + return cell; + } + + YUMIManeVacationerDispossessTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIManeVacationerDispossessTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIManeVacationerDispossessTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIManeVacationerDispossessTabulationRegardElement class])]; + } + cell.emptyTitle = YMLocalizedString(@"YUMI_Mine_Fans_Team_View_Controller_1"); + return cell; +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + YUMIManeKellegFanaticsSquadMatrix *item = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + + if ([ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + YUMIManeConsumerAbstractRegardGovernancer * userInfoVC = [[YUMIManeConsumerAbstractRegardGovernancer alloc] init]; + userInfoVC.uid = item.teamUid; + [self.navigationController pushViewController:userInfoVC animated:YES]; + }else{ + YUMIManeSimpleConsumerAbstractRegardGovernancer * userInfoVC = [[YUMIManeSimpleConsumerAbstractRegardGovernancer alloc] init]; + userInfoVC.uid = item.teamUid; + [self.navigationController pushViewController:userInfoVC animated:YES]; + } +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + return self.datasource.count > 0 ? 56 : 400; +} + +#pragma mark - Getters And Setters +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.tableFooterView = [UIView new]; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.backgroundColor = [UIColor clearColor]; + _tableView.rowHeight = 56; + if (@available(iOS 11.0, *)) { + _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + [_tableView registerClass:[YUMIManeVacationerDispossessTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIManeVacationerDispossessTabulationRegardElement class])]; + [_tableView registerClass:[YUMIManeKellegFanaticsSquadTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIManeKellegFanaticsSquadTabulationRegardElement class])]; + } + return _tableView; +} + +- (NSMutableArray *)datasource { + if (!_datasource) { + _datasource = [NSMutableArray array]; + } + return _datasource; +} + + +@end diff --git a/YuMi/Modules/YMMine/View/YUMIManeProvisionTabulationRegardElement.h b/YuMi/Modules/YMMine/View/YUMIManeProvisionTabulationRegardElement.h new file mode 100644 index 00000000..53810114 --- /dev/null +++ b/YuMi/Modules/YMMine/View/YUMIManeProvisionTabulationRegardElement.h @@ -0,0 +1,21 @@ +// +// YMMineItemTableViewCell.h +// YUMI +// +// Created by XY on 2023/2/20. +// + +#import + +@class YUMIManeProvisionMatrix; +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeProvisionTabulationRegardElement : UITableViewCell + +@property (nonatomic, strong) YUMIManeProvisionMatrix *itemMatrix; + +- (void)setMonopolizeApex:(BOOL)isApex bottom:(BOOL)isExtreme; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/YUMIManeProvisionTabulationRegardElement.m b/YuMi/Modules/YMMine/View/YUMIManeProvisionTabulationRegardElement.m new file mode 100644 index 00000000..4c432484 --- /dev/null +++ b/YuMi/Modules/YMMine/View/YUMIManeProvisionTabulationRegardElement.m @@ -0,0 +1,190 @@ +// +// YMMineItemTableViewCell.m +// YUMI +// +// Created by XY on 2023/2/20. +// + +#import "YUMIManeProvisionTabulationRegardElement.h" +#import "NetIndicateRegard.h" +#import +#import "DJDKMIMOMColor.h" +#import "UIView+Corner.h" +#import "YUMIMacroUitls.h" + +#import "YUMIManeProvisionMatrix.h" + +@interface YUMIManeProvisionTabulationRegardElement() + +@property (nonatomic, strong) UIView *containerView; +@property (nonatomic, strong) NetIndicateRegard *figureIndicateRegard; +@property (nonatomic, strong) UILabel *titleLabel; +@property (nonatomic, strong) UIImageView *arrowIndicateRegard; +@property (nonatomic, strong) UIView *dashBurlywoodRegard; +@property (nonatomic, strong) CAShapeLayer *shapeLayer; + +@end + +@implementation YUMIManeProvisionTabulationRegardElement + +- (void)awakeFromNib { + [super awakeFromNib]; + +} + +- (void)setSelected:(BOOL)selected animated:(BOOL)animated { + [super setSelected:selected animated:animated]; + + +} + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; + if (self) { + self.selectionStyle = UITableViewCellSelectionStyleNone; + self.backgroundColor = UIColor.clearColor; + self.contentView.backgroundColor = UIColor.clearColor; + [self produceUI]; + } + return self; +} + +- (void)produceUI { + [self.contentView addSubview:self.containerView]; + [self.containerView addSubview:self.figureIndicateRegard]; + [self.containerView addSubview:self.titleLabel]; + [self.containerView addSubview:self.arrowIndicateRegard]; + [self.containerView addSubview:self.dashBurlywoodRegard]; + + [self.containerView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(16); + make.right.mas_equalTo(-16); + make.top.bottom.mas_equalTo(0); + }]; + [self.figureIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(12); + make.centerY.mas_equalTo(self.containerView); + make.width.height.mas_equalTo(40); + }]; + [self.arrowIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(0); + make.width.mas_equalTo(40); + make.height.mas_equalTo(12); + make.centerY.mas_equalTo(self.containerView); + }]; + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.figureIndicateRegard.mas_right).offset(2); + make.right.mas_equalTo(self.arrowIndicateRegard.mas_left).offset(-2); + make.centerY.mas_equalTo(self.containerView); + }]; + [self.dashBurlywoodRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(22); + make.right.mas_equalTo(-8); + make.height.mas_equalTo(1); + make.bottom.mas_equalTo(0); + }]; + +} + +- (void)layoutSubviews { + [super layoutSubviews]; + if (self.shapeLayer.superlayer == nil && self.dashBurlywoodRegard.frame.size.width > 0) { + [self accelertowardseDashBurlywoodLength:5 lineSpacing:5 lineColor:[UIColorFromRGB(0x939BA3) colorWithAlphaComponent:0.3]]; + } +} + +- (void)accelertowardseDashBurlywoodLength:(int)lineLength lineSpacing:(int)lineSpacing lineColor:(UIColor *)lineColor { + [self.shapeLayer setBounds:self.dashBurlywoodRegard.bounds]; + [self.shapeLayer setPosition:CGPointMake(CGRectGetWidth(self.dashBurlywoodRegard.frame) / 2, CGRectGetHeight(self.dashBurlywoodRegard.frame))]; + [self.shapeLayer setFillColor:[UIColor clearColor].CGColor]; + [self.shapeLayer setStrokeColor:lineColor.CGColor]; + [self.shapeLayer setLineWidth:CGRectGetHeight(self.dashBurlywoodRegard.frame)]; + [self.shapeLayer setLineJoin:kCALineJoinRound]; + [self.shapeLayer setLineDashPattern:[NSArray arrayWithObjects:[NSNumber numberWithInt:lineLength], [NSNumber numberWithInt:lineSpacing], nil]]; + + CGMutablePathRef path = CGPathCreateMutable(); + CGPathMoveToPoint(path, NULL, 0, 0); + CGPathAddLineToPoint(path, NULL,CGRectGetWidth(self.dashBurlywoodRegard.frame), 0); + [self.shapeLayer setPath:path]; + CGPathRelease(path); + + [self.dashBurlywoodRegard.layer addSublayer:self.shapeLayer]; +} + +- (void)setMonopolizeApex:(BOOL)isApex bottom:(BOOL)isExtreme { + if (isApex == NO && isExtreme == NO) { + self.containerView.layer.cornerRadius = 0; + self.dashBurlywoodRegard.hidden = NO; + return; + } + if (isApex) { + self.containerView.layer.cornerRadius = 20.0; + self.containerView.layer.maskedCorners = kCALayerMinXMinYCorner | kCALayerMaxXMinYCorner; + self.dashBurlywoodRegard.hidden = NO; + return; + } + if (isExtreme) { + self.containerView.layer.cornerRadius = 20.0; + self.containerView.layer.maskedCorners = kCALayerMinXMaxYCorner | kCALayerMaxXMaxYCorner; + self.dashBurlywoodRegard.hidden = YES; + return; + } +} + +- (void)setItemMatrix:(YUMIManeProvisionMatrix *)itemMatrix { + _itemMatrix = itemMatrix; + self.figureIndicateRegard.image = [UIImage imageNamed:itemMatrix.itemImageName]; + self.titleLabel.text = itemMatrix.itemName; +} + +#pragma mark - 懒加载 + +- (UIView *)containerView { + if (!_containerView) { + _containerView = [[UIView alloc] init]; + _containerView.backgroundColor = UIColor.whiteColor; + } + return _containerView; +} + +- (NetIndicateRegard *)figureIndicateRegard { + if (!_figureIndicateRegard) { + _figureIndicateRegard = [[NetIndicateRegard alloc] init]; + _figureIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _figureIndicateRegard; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + _titleLabel.font = [UIFont systemFontOfSize:12]; + } + return _titleLabel; +} + +- (UIImageView *)arrowIndicateRegard { + if (!_arrowIndicateRegard) { + _arrowIndicateRegard = [[UIImageView alloc] init]; + _arrowIndicateRegard.image = [UIImage imageNamed:@"yumi_same_right_arrow"]; + _arrowIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _arrowIndicateRegard; +} + +- (UIView *)dashBurlywoodRegard { + if (!_dashBurlywoodRegard) { + _dashBurlywoodRegard = [[UIView alloc] init]; + } + return _dashBurlywoodRegard; +} + +- (CAShapeLayer *)shapeLayer { + if (!_shapeLayer) { + _shapeLayer = [CAShapeLayer layer]; + } + return _shapeLayer; +} + +@end diff --git a/YuMi/Modules/YMMine/View/YUMIManeRegardGovernancer.h b/YuMi/Modules/YMMine/View/YUMIManeRegardGovernancer.h new file mode 100644 index 00000000..4522d653 --- /dev/null +++ b/YuMi/Modules/YMMine/View/YUMIManeRegardGovernancer.h @@ -0,0 +1,16 @@ +// +// YMMineViewController.h +// YUMI +// +// Created by YUMI on 2021/9/16. +// + +#import "MvpRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeRegardGovernancer : MvpRegardGovernancer + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/YUMIManeRegardGovernancer.m b/YuMi/Modules/YMMine/View/YUMIManeRegardGovernancer.m new file mode 100644 index 00000000..3df3d4f7 --- /dev/null +++ b/YuMi/Modules/YMMine/View/YUMIManeRegardGovernancer.m @@ -0,0 +1,631 @@ +// +// YUMIManeRegardGovernancer.m +// YuMi +// +// Created by YuMi on 2021/9/16. +// + +#import "YUMIManeRegardGovernancer.h" +#import +#import "MKJPopup.h" +#import "YUMIHtmlUrl.h" +#import "UIButton+EnlargeTouchArea.h" +#import "StatsticsticsServingFacilitater.h" +#import "YUMIConstant.h" +#import "Api+Room.h" +#import "Api+RoomSetting.h" +#import "AccountAbstractStorage.h" +#import "ClientDisposition.h" +#import "YUMIManeProvisionMatrix.h" +#import "ConsumerAbstractMatrix.h" +#import "YUMIManeVacationerUnReadMatrix.h" +#import "CollectiveSpecificAbstractMatrix.h" +#import "ResidenceOriflammeAbstractMatrix.h" +#import "YUMIManeFuntionProvisionMatrix.h" +#import "RamparatetAbstractMatrix.h" +#import "FBCManeCeremony.h" +#import "YUMIManeExternalize.h" +#import "YUMIManeIntelligenceProvisionTabulationRegardElement.h" +#import "YUMIManeIntelligenceRegard.h" +#import "YUMIResidenceOriflammeTabulationRegardElement.h" +#import "YUMIManeStrangeConsumerReindictRegard.h" +#import "YUMIManeTheUnionElement.h" +#import "YUMIManeFeaturealConcentrateElement.h" +#import "YUMIManeStatementElement.h" +#import "YUMIManeInstanllingRegardGovernancer.h" +#import "YUMIManeConsumerAbstractRegardGovernancer.h" +#import "YUMIManeReindictRegardGovernancer.h" +#import "YUMITissueRegardGovernancer.h" +#import "YUMIChamberRegardGovernancer.h" +#import "YUMIManePretendUpwardsRegardGovernancer.h" +#import "YUMIPretendUpwardsProcurementRegardGovernancer.h" +#import "YUMIManeFanaticsRegardGovernancer.h" +#import "YUMIManeConsiderationRegardGovernancer.h" +#import "YUMIManeVacationerRegardGovernancer.h" +#import "YUMIManeFanaticsSquadRegardGovernancer.h" +#import "YUMIManeCollectiveRegardGovernancer.h" +#import "YUMIManeUnionRegardGovernancer.h" +#import "YUMIManeTerminalImpressionRegardGovernancer.h" +#import "YUMIManeAssembleChamberStatementRegardGovernancer.h" +#import "YUMIManeMainUnionStatementVC.h" +#import "YUMIManeGiveDiamondVC.h" +#import "YUMIIAPReindictRegardGovernancer.h" +#import "YUMIRevenueReflectionVC.h" + +UIKIT_EXTERN NSString *kRequestRicket; + +@interface YUMIManeRegardGovernancer () +@property (nonatomic, strong) UIView *backgroundIndicateRegard; + +@property (nonatomic,strong) UITableView *tableView; +@property (nonatomic, strong) NSMutableArray *functionGarment; +@property (nonatomic, strong) NSMutableArray *oriflammeGarment; +@property (nonatomic,strong) YUMIManeIntelligenceRegard *intelligenceRegard; +@property (nonatomic,strong) ConsumerAbstractMatrix *userInfo; +@property (nonatomic,strong) CollectiveSpecificAbstractMatrix *collectiveAbstract; +@property (nonatomic,strong) YUMIManeProvisionMatrix *guildProvisionMatrix; +@property(nonatomic,assign)BOOL isHavePermission; +@property (nonatomic,assign) BOOL isRefreshChamberAbstract; +@property (nonatomic,assign) BOOL isDemandAtoloudspeaker; +@end + +@implementation YUMIManeRegardGovernancer + + +- (void)dealloc { + [[NSNotificationCenter defaultCenter] removeObserver:self]; +} + +- (BOOL)isVeiledNevObstacle { + return YES; +} + +- (YUMIManeExternalize *)producePresimport { + return [[YUMIManeExternalize alloc] init];; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initSubViews]; + [self initChildLyRestrictions]; + self.tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + +} + +- (void)viewWillAppear:(BOOL)animated { + [super viewWillAppear:animated]; + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventusercenter_recharge_card_show]; + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventusercenter_noble_card_show]; + + +} + +- (void)viewDidAppear:(BOOL)animated { + [super viewDidAppear:animated]; + if([AccountAbstractStorage instance].isRequestRicket == YES)return; + [self.presimport getUserInfo]; +} + +#pragma mark- 检查是否有转赠钻石权限 + +-(void)examineHaveGiveDiamondsPreconditionion{ + ClientDisposition *config = [ClientDisposition partowardsiciptowardsionDisposition]; + NSArray *uidList = config.dispositionAbstract.giveDiamondErbanNoList; + for (id uid in uidList) { + NSString *acquireCid = [uid stringValue]; + if([acquireCid isEqualToString:@(self.userInfo.erbanNo).stringValue]){ + self.isHavePermission = YES; + break; + } + } + if(self.isHavePermission == YES)return; + for (id uid in config.dispositionAbstract.giveGiftErbanNoList) { + NSString *acquireCid = [uid stringValue]; + if([acquireCid isEqualToString:@(self.userInfo.erbanNo).stringValue]){ + self.isHavePermission = YES; + break; + } + } + if(self.isHavePermission == YES)return; + if(self.userInfo.userLevelVo.experLevelSeq >= config.dispositionAbstract.giveDiamondExperLevel){ + self.isHavePermission = YES; + return; + } + if(self.userInfo.userLevelVo.experLevelSeq >= config.dispositionAbstract.giveGiftExperLevel){ + self.isHavePermission = YES; + } +} + +#pragma mark - Response +- (void)settingBtutonPerformance { + YUMIManeInstanllingRegardGovernancer * settingVC = [[YUMIManeInstanllingRegardGovernancer alloc] init]; + settingVC.userInfo = self.userInfo; + [self.navigationController pushViewController:settingVC animated:YES]; +} + +#pragma mark - Private Method +- (void)initSubViews { + YUMIManeFuntionProvisionMatrix *setItem = [YUMIManeFuntionProvisionMatrix new]; + setItem.centerName = YMLocalizedString(@"YUMI_Mine_Setting_View_Controller_0"); + setItem.centerPic = @"mineview_set"; + setItem.skipType = YUMIManeProvisionGenre_My_Set; + [self.functionGarment addObject:setItem]; + + [self.view addSubview:self.backgroundIndicateRegard]; + [self.view addSubview:self.tableView]; + + self.tableView.tableHeaderView = self.intelligenceRegard; + if (@available(iOS 15.0, *)) { + self.tableView.sectionHeaderTopPadding = 0; + } + [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(requisitionRicketAccomplishment:) name:kRequestRicket object:nil]; +} +-(void)requisitionRicketAccomplishment:(NSNotification *)not{ + if([not.object isKindOfClass:[NSDictionary class]])return; + BOOL is = [not.object boolValue]; + if(is == YES){ + [self.presimport getUserInfo]; + } +} +- (void)initChildLyRestrictions { + [self.backgroundIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(0); + }]; + + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.view); + make.left.right.bottom.mas_equalTo(self.view); + }]; +} + +- (void)pushRegardGovernancerAboutGenre:(NSInteger)type functionItem:(YUMIManeFuntionProvisionMatrix *)item { + switch (type) { + case YUMIManeProvisionGenre_My_Set:{ + [self settingBtutonPerformance]; + break; + } + case YUMIManeProvisionGenre_Match_Relevance_Account: + [self pushTissueRegardWIthWeebsite:item.centerUrl]; + break; + case YUMIManeProvisionGenre_Foot_Print: + { + YUMIManeTerminalImpressionRegardGovernancer *vc = [[YUMIManeTerminalImpressionRegardGovernancer alloc] init]; + [self.navigationController pushViewController:vc animated:YES]; + } + break; + + case YUMIManeProvisionGenre_Account: + { + + [self pushTertiusPartyIntersectVewC]; + } + break; + case YUMIManeProvisionGenre_Personinfo: + { + YUMIManeConsumerAbstractRegardGovernancer * infoVC = [[YUMIManeConsumerAbstractRegardGovernancer alloc] init]; + infoVC.uid = self.userInfo.uid; + [self.navigationController pushViewController:infoVC animated:YES]; + } + break; + case YUMIManeProvisionGenre_My_Room: + { + NSString* roomUid = [NSString stringWithFormat:@"%ld", (long)self.userInfo.uid]; + [YUMIChamberRegardGovernancer unfoildChamber:roomUid viewController:self]; + } + break; + case YUMIManeProvisionGenre_Collect_Room: + { + YUMIManeAssembleChamberStatementRegardGovernancer *collectVC = [[YUMIManeAssembleChamberStatementRegardGovernancer alloc] init]; + [self.navigationController pushViewController:collectVC animated:YES]; + } + break; + case YUMIManeProvisionGenre_My_Dressup: + { + YUMIManePretendUpwardsRegardGovernancer * dressUpVC = [[YUMIManePretendUpwardsRegardGovernancer alloc] init]; + [self.navigationController pushViewController:dressUpVC animated:YES]; + } + break; + case YUMIManeProvisionGenre_DressUp_Market: + { + YUMIPretendUpwardsProcurementRegardGovernancer *dressUpShopVc = [[YUMIPretendUpwardsProcurementRegardGovernancer alloc] init]; + [self.navigationController pushViewController:dressUpShopVc animated:YES]; + } + break; + case YUMIManeProvisionGenre_Fans_List: + { + YUMIManeFanaticsRegardGovernancer * fanaticsVewC = [[YUMIManeFanaticsRegardGovernancer alloc] init]; + fanaticsVewC.view.backgroundColor = [UIColor whiteColor]; + [self.navigationController pushViewController:fanaticsVewC animated:YES]; + } + break; + case YUMIManeProvisionGenre_Attention_List: + { + YUMIManeConsiderationRegardGovernancer * considerationVewC = [[YUMIManeConsiderationRegardGovernancer alloc] init]; + [self.navigationController pushViewController:considerationVewC animated:YES]; + } + break; + case YUMIManeProvisionGenre_Visitor: + { + self.intelligenceRegard.vacationerUnLireComputation = 0; + YUMIManeVacationerRegardGovernancer *visitorVC = [[YUMIManeVacationerRegardGovernancer alloc] init]; + [self.navigationController pushViewController:visitorVC animated:YES]; + } + break; + case YUMIManeProvisionGenre_FansTeam: { + YUMIManeFanaticsSquadRegardGovernancer *fansTeamVc = [[YUMIManeFanaticsSquadRegardGovernancer alloc] init]; + [self.navigationController pushViewController:fansTeamVc animated:YES]; + } + break; + case YUMIManeProvisionGenre_My_Guild: + { + if (self.collectiveAbstract.clan.elderUid.length > 0) { + YUMIManeCollectiveRegardGovernancer * clanVC = [[YUMIManeCollectiveRegardGovernancer alloc] init]; + clanVC.uid = [NSString stringWithFormat:@"%ld", self.userInfo.uid]; + [self.navigationController pushViewController:clanVC animated:YES]; + } else if(self.collectiveAbstract.hall.hallId.length > 0) { + YUMIManeUnionRegardGovernancer * guildVC = [[YUMIManeUnionRegardGovernancer alloc] init]; + guildVC.ownerUid = self.collectiveAbstract.hall.ownerUid; + guildVC.instituteId = self.collectiveAbstract.hall.hallId; + [self.navigationController pushViewController:guildVC animated:YES]; + } + + } + break; + default: + break; + } +} + + +- (void)pushTissueRegardWIthWeebsite:(NSString *)url { + YUMITissueRegardGovernancer * webVewC = [[YUMITissueRegardGovernancer alloc] init]; + webVewC.url = url; + [self.navigationController pushViewController:webVewC animated:YES]; +} + +#pragma mark - UITableViewDelegate And UITableViewDataSource +- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { + return 3; +} + +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + if (section == 2){ + return self.functionGarment.count; + } + return 1; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + if (indexPath.section == 0) { + return 44; + + }else if (indexPath.section == 1) { + return self.isHavePermission ? 134 : 99; + } + return 60; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + if (indexPath.section == 0) { + + YUMIManeTheUnionElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIManeTheUnionElement class])]; + cell.collectiveAbstract = self.collectiveAbstract; + + return cell; + }else if (indexPath.section == 1) { + YUMIManeFeaturealConcentrateElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIManeFeaturealConcentrateElement class])]; + cell.isHaveGiveBWSttawberry = self.isHavePermission; + @kWeakify(self) + cell.ticktackPerformance = ^(int type){ + @kStrongify(self) + if (type == 0){ + [self pushMieyChamberVewC]; + } else if (type == 1){ + [self pushEarningsReflectionVewC]; + }else{ + [self pushGiveDiamondVewC]; + } + }; + + cell.selectionStyle = UITableViewCellSelectionStyleNone; + return cell; + } else { + YUMIManeStatementElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIManeStatementElement class])]; + if (indexPath.row == 0 && self.functionGarment.count > 1){ + [cell setMonopolizeAboutIsApex:YES isExtreme:NO]; + }else if (indexPath.row == self.functionGarment.count-1){ + if(self.functionGarment.count == 1){ + [cell setMonopolizeAboutIsApex:YES isExtreme:YES]; + }else{ + [cell setMonopolizeAboutIsApex:NO isExtreme:YES]; + } + }else{ + [cell setMonopolizeAboutIsApex:NO isExtreme:NO]; + } + + YUMIManeFuntionProvisionMatrix *model = self.functionGarment[indexPath.row]; + cell.itemMatrix = model; + return cell; + } +} + +- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { + return 16; +} + +- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { + UIView * view = [[UIView alloc] init]; + view.backgroundColor = [UIColor clearColor]; + return view; +} +-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ + if (indexPath.section == 0){ + if( self.collectiveAbstract.clan.elderUid > 0){ + YUMIManeCollectiveRegardGovernancer * clanVC = [[YUMIManeCollectiveRegardGovernancer alloc] init]; + clanVC.uid = self.collectiveAbstract.clan.elderUid; + [self.navigationController pushViewController:clanVC animated:YES]; + return; + }else { + if(self.collectiveAbstract.hall.ownerUid > 0){ + YUMIManeUnionRegardGovernancer * hallVC = [[YUMIManeUnionRegardGovernancer alloc] init]; + hallVC.ownerUid = self.collectiveAbstract.hall.ownerUid; + hallVC.instituteId = self.collectiveAbstract.hall.hallId; + [self.navigationController pushViewController:hallVC animated:YES]; + return; + } + } + YUMIManeMainUnionStatementVC *gulidListVC = [YUMIManeMainUnionStatementVC new]; + [self.navigationController pushViewController:gulidListVC animated:YES]; + + return; + } + if (indexPath.section != 2)return; + YUMIManeFuntionProvisionMatrix *item = self.functionGarment[indexPath.row]; + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventusercenter_function_click eventAttributes:@{@"functionName" : item.centerName}]; + [self pushRegardGovernancerAboutGenre:item.skipType functionItem:item]; +} +-(void)pushGiveDiamondVewC{ + YUMIManeGiveDiamondVC *giveDiamondVC = [[YUMIManeGiveDiamondVC alloc]init]; + giveDiamondVC.userInfo = self.userInfo; + [self.navigationController pushViewController:giveDiamondVC animated:YES]; +} +-(void)pushTertiusPartyIntersectVewC{ + YUMIIAPReindictRegardGovernancer * webVewC =[[YUMIIAPReindictRegardGovernancer alloc] init]; + [self.navigationController pushViewController:webVewC animated:YES]; +} +-(void)pushEarningsReflectionVewC{ + + YUMIRevenueReflectionVC *incomeRecordVC = [YUMIRevenueReflectionVC new]; + incomeRecordVC.collectiveAbstract = self.collectiveAbstract; + incomeRecordVC.userInfo = self.userInfo; + [self.navigationController pushViewController:incomeRecordVC animated:YES]; + +} +-(void)pushMieyChamberVewC{ + if(self.isRefreshChamberAbstract == YES)return; + self.isRefreshChamberAbstract = YES; + NSString* roomUid = [NSString stringWithFormat:@"%ld", (long)self.userInfo.uid]; + [YUMIChamberRegardGovernancer unfoildChamber:roomUid viewController:self]; +} +#pragma mark - FBCManeIntelligenceRegardRepresendtation +- (void)yUMIManeIntelligenceRegard:(YUMIManeIntelligenceRegard *)view didClickAvatar:(ConsumerAbstractMatrix *)info { + [self pushRegardGovernancerAboutGenre:YUMIManeProvisionGenre_Personinfo functionItem:nil]; +} + +- (void)yumiManeIntelligenceRegardTicktackFantowardsics { + [self pushRegardGovernancerAboutGenre:YUMIManeProvisionGenre_Fans_List functionItem:nil]; +} + +- (void)yumiManeIntelligenceRegardTicktackConsidertowardsion { + [self pushRegardGovernancerAboutGenre:YUMIManeProvisionGenre_Attention_List functionItem:nil]; +} + +- (void)yumiManeIntelligenceRegardTicktackCommunictowardsionSolitaire { + [self pushRegardGovernancerAboutGenre:YUMIManeProvisionGenre_Skill_Card functionItem:nil]; +} + + +- (void)yumiManeIntelligenceRegardTicktackAcomputtowardsion { + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventusercenter_recharge_card_click]; + [self pushRegardGovernancerAboutGenre:YUMIManeProvisionGenre_Account functionItem:nil]; +} + +- (void)yUMIManeIntelligenceRegardCliekMagnificentConcentrtowardse { + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventvipEntranceMeClick]; + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventusercenter_noble_card_click]; + [self pushRegardGovernancerAboutGenre:YUMIManeProvisionGenre_Noble_Center functionItem:nil]; +} + +#pragma mark - FBCManeCeremony +- (void)dwellEarnManeFuntionProvisionAccomplishment:(NSArray *)items WithGroup:(nonnull dispatch_group_t)group{ + [self.functionGarment removeAllObjects]; + [self.functionGarment addObjectsFromArray:items]; + [self.functionGarment enumerateObjectsUsingBlock:^(YUMIManeFuntionProvisionMatrix * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if (obj.skipType == YUMIManeProvisionGenre_CP || obj.skipType == YUMIManeProvisionGenre_My_Room) { + [self.functionGarment removeObject:obj]; + } + }]; + NSMutableArray *array = [NSMutableArray array]; + for (YUMIManeFuntionProvisionMatrix *item in self.functionGarment) { + [array addObject:item.centerName]; + } + NSString *trackName = [array componentsJoinedByString:@","]; + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventusercenter_function_show eventAttributes:@{@"functionName" : trackName}]; + dispatch_group_leave(group); +} +- (void)dwellEarnManeFuntionProvisionFlunkAboutGroup:(dispatch_group_t)group{ + dispatch_group_leave(group); +} + +- (void)dwellEarnsubjectiveOriflammeSttowardsementAccomplishment:(NSArray *)items WithGroup:(nonnull dispatch_group_t)group{ + [self.oriflammeGarment removeAllObjects]; + [self.oriflammeGarment addObjectsFromArray:items]; + dispatch_group_leave(group); + NSMutableArray *array = [NSMutableArray array]; + for (ResidenceOriflammeAbstractMatrix *item in self.oriflammeGarment) { + [array addObject:item.bannerId]; + } + NSString *trackName = [array componentsJoinedByString:@","]; + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventusercenter_banner_show eventAttributes:@{@"bannerId" : trackName}]; +} +-(void)dwellEarnsubjectiveOriflammeSttowardsementFlunkAboutGroup:(dispatch_group_t)group{ + dispatch_group_leave(group); +} + +- (void)dwellEarnConsumerAbstractAccomplishment:(ConsumerAbstractMatrix *)userInfo { + + @synchronized (self.presimport) { + + if (!userInfo.isBindPhone && [ClientDisposition partowardsiciptowardsionDisposition].iosMobileBind) { + return; + } + if (userInfo.nick == nil || userInfo.avatar == nil ) { + return; + } + if(self.isDemandAtoloudspeaker == YES){ + return; + } + self.isDemandAtoloudspeaker = YES; + + dispatch_group_t group =dispatch_group_create(); + + dispatch_queue_t queue =dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0); + + dispatch_group_enter(group); + dispatch_group_async(group, queue, ^{ + [self.presimport acquireCollectiveSpecificAbstractAboutGroup:group]; + }); + + dispatch_group_enter(group); + dispatch_group_async(group, queue, ^{ + [self.presimport acquireConsumerPocketbookAbstractAboutGroup:group]; + }); + dispatch_group_enter(group); + dispatch_group_async(group, queue, ^{ + [self.presimport acquireFetowardsureProvisionSttowardsementAboutGroup:group]; + }); + + dispatch_group_enter(group); + dispatch_group_async(group, queue, ^{ + [self.presimport acquireManeOriflammeSttowardsementAboutGroup:group]; + }); + + dispatch_group_notify(group,dispatch_get_main_queue(), ^{ + self.isDemandAtoloudspeaker = NO; + self.userInfo = userInfo; + [self examineHaveGiveDiamondsPreconditionion]; + userInfo.idAtt = [self.intelligenceRegard cretowardsMtowardserialIdSequencigntowardsionIdiosyncracy:userInfo]; + [self.intelligenceRegard cretowardsMtowardserialProttypeIdiosyncracy:userInfo complete:^(NSMutableAttributedString *textAtt) { + userInfo.levelAtt = textAtt; + self.intelligenceRegard.userInfo = userInfo; + }]; + [self.tableView reloadData]; + }); + } +} + +- (void)acquireConsumerPocketbookAbstract:(RamparatetAbstractMatrix *)balanceInfo WithGroup:(nonnull dispatch_group_t)group{ + self.intelligenceRegard.wentiretyetAbstract = balanceInfo; + dispatch_group_leave(group); +} +- (void)acquireConsumerPocketbookAbstractFlunkAboutGroup:(dispatch_group_t)group{ + dispatch_group_leave(group); +} + +- (void)dwellEarnCollectiveSpecificAbstractAccomplishment:(CollectiveSpecificAbstractMatrix *)collectiveAbstract WithGroup:(nonnull dispatch_group_t)group{ + self.collectiveAbstract = collectiveAbstract; + dispatch_group_leave(group); +} +- (void)dwellEarnCollectiveSpecificAbstractflunkAboutGroup:(dispatch_group_t)group{ + dispatch_group_leave(group); +} +#pragma mark - FBCManeIntelligenceItemTabulationViweElementRepresendtation +- (void)yUMIManeIntelligenceProvisionTarbsultowardsionViweElement:(YUMIManeIntelligenceProvisionTabulationRegardElement *)cell didSelectItem:(YUMIManeFuntionProvisionMatrix *)item { + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventusercenter_function_click eventAttributes:@{@"functionName" : item.centerName}]; + [self pushRegardGovernancerAboutGenre:item.skipType functionItem:item]; +} + +#pragma mark - FBCResidenceBannerTabulationViweElementRepresendtation +- (void)fBCHoutilizeOriflammeTarbsultowardsionViweElement:(YUMIResidenceOriflammeTabulationRegardElement *)view didClickBanner:(ResidenceOriflammeAbstractMatrix *)info { + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventusercenter_banner_click eventAttributes:@{@"bannerId" : info.bannerId}]; + switch (info.skipType) { + case HomeBannerAbstractSkipGenre_Room: + { + if (info.skipUri.length > 0) { + [YUMIChamberRegardGovernancer unfoildChamber:info.skipUri viewController:self]; + } + } + break; + case HomeBannerAbstractSkipGenre_Web: + { + YUMITissueRegardGovernancer *vc = [[YUMITissueRegardGovernancer alloc]init]; + vc.url = info.skipUri; + [self.navigationController pushViewController:vc animated:YES]; + } + break; + default: + break; + } +} + + +#pragma mark - NSNotification +- (void)onVactowardsionerUnLireComputtowardsionRefurbish:(NSNotification *)noti { + YUMIManeVacationerUnReadMatrix *model = (YUMIManeVacationerUnReadMatrix *)noti.object; + self.intelligenceRegard.vacationerUnLireComputation = model.visitNum; +} +#pragma mark - Getters And Setters +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.showsVerticalScrollIndicator = NO; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone;; + [_tableView registerClass:[YUMIManeTheUnionElement class] forCellReuseIdentifier:NSStringFromClass([YUMIManeTheUnionElement class])]; + [_tableView registerClass:[YUMIManeFeaturealConcentrateElement class] forCellReuseIdentifier:NSStringFromClass([YUMIManeFeaturealConcentrateElement class])]; + [_tableView registerClass:[YUMIManeStatementElement class] forCellReuseIdentifier:NSStringFromClass([YUMIManeStatementElement class])]; + _tableView.backgroundColor = [UIColor clearColor]; + } + return _tableView; +} + +- (YUMIManeIntelligenceRegard *)intelligenceRegard { + if (!_intelligenceRegard) { + CGFloat height = (KScreenWidth - 30 - 13) * 0.5 * 60 / 166; + _intelligenceRegard = [[YUMIManeIntelligenceRegard alloc] initWithFrame:CGRectMake(0, 0,KScreenWidth , 146 + height + kStatusBarHeight)]; + _intelligenceRegard.delegate = self; + } + return _intelligenceRegard; +} + +- (UIView *)backgroundIndicateRegard { + if (!_backgroundIndicateRegard) { + _backgroundIndicateRegard = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"yumi_center_head_background"]]; + _backgroundIndicateRegard.contentMode = UIViewContentModeScaleAspectFill; + } + return _backgroundIndicateRegard; +} + +- (NSMutableArray *)functionGarment { + if (!_functionGarment) { + _functionGarment = [NSMutableArray array]; + } + return _functionGarment; +} + +- (NSMutableArray *)oriflammeGarment { + if (!_oriflammeGarment) { + _oriflammeGarment = [NSMutableArray array]; + } + return _oriflammeGarment; +} + +-(ConsumerAbstractMatrix *)userInfo{ + if(!_userInfo){ + _userInfo = [ConsumerAbstractMatrix new]; + _userInfo.uid = [[AccountAbstractStorage instance].acquireCid integerValue]; + } + return _userInfo; +} +@end diff --git a/YuMi/Modules/YMMine/View/YUMIManeTerminalImpressionRegardGovernancer.h b/YuMi/Modules/YMMine/View/YUMIManeTerminalImpressionRegardGovernancer.h new file mode 100644 index 00000000..62aaf5e4 --- /dev/null +++ b/YuMi/Modules/YMMine/View/YUMIManeTerminalImpressionRegardGovernancer.h @@ -0,0 +1,16 @@ +// +// YMMineFootPrintViewController.h +// YUMI +// +// Created by YUMI on 2022/7/26. +// 足迹/进房记录 + +#import "MvpRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeTerminalImpressionRegardGovernancer : MvpRegardGovernancer + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/YUMIManeTerminalImpressionRegardGovernancer.m b/YuMi/Modules/YMMine/View/YUMIManeTerminalImpressionRegardGovernancer.m new file mode 100644 index 00000000..df3ba0c6 --- /dev/null +++ b/YuMi/Modules/YMMine/View/YUMIManeTerminalImpressionRegardGovernancer.m @@ -0,0 +1,235 @@ +// +// YMMineFootPrintViewController.m +// YUMI +// +// Created by YUMI on 2022/7/26. +// + +#import "YUMIManeTerminalImpressionRegardGovernancer.h" +#import +#import +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" +#import "NSArray+Safe.h" +#import "YUMIManeTerminalImpressionMatrix.h" +#import "YUMIManeTerminalImpressionTabulationRegardElement.h" +#import "YUMIManeVacationerDispossessTabulationRegardElement.h" +#import "YUMITerminalImpressionNevRegard.h" +#import "YUMIManeTerminalImpressionExternalizer.h" +#import "FBCManeFootPrintCeremony.h" +#import "YUMIChamberRegardGovernancer.h" + +@interface YUMIManeTerminalImpressionRegardGovernancer() + +@property (nonatomic,strong) UITableView *tableView; +@property (nonatomic,strong) NSMutableArray *datasource; +@property (nonatomic,assign) int page; +@property (nonatomic,assign) BOOL hasNoFurthaerAtoloudspeaker; +@property (nonatomic, strong) YUMITerminalImpressionNevRegard *nevRegard; + +@end + +@implementation YUMIManeTerminalImpressionRegardGovernancer + +- (YUMIManeTerminalImpressionExternalizer *)producePresimport { + return [[YUMIManeTerminalImpressionExternalizer alloc] init]; +} + +- (BOOL)isVeiledNevObstacle { + return YES; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initIntelligencerGrantedTerminalerRrfresh]; + [self initSubViews]; + [self initChildLyRestrictions]; +} + +#pragma mark - 下拉刷新 +- (void)initIntelligencerGrantedTerminalerRrfresh { + MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(intelligenceerRenovtowardseh)]; + header.stateLabel.font = [UIFont systemFontOfSize:10.0]; + header.lastUpdatedTimeLabel.font = [UIFont systemFontOfSize:10.0]; + header.stateLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + header.lastUpdatedTimeLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + self.tableView.mj_header = header; + + MJRefreshBackNormalFooter *footer = [MJRefreshBackNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(footerRenovtowardseh)]; + footer.stateLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + footer.stateLabel.font = [UIFont systemFontOfSize:10.0]; + self.tableView.mj_footer = footer; + + [self intelligenceerRenovtowardseh]; +} + +#pragma mark - 刷新的fangfa +- (void)intelligenceerRenovtowardseh { + self.page = 1; + [self.presimport acquireTerminalImpressionSttowardsementAboutPeriod:self.page pageSize:20 state:0]; +} + +- (void)footerRenovtowardseh { + if (self.hasNoFurthaerAtoloudspeaker) { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_MineFootPrintViewController0")]; + return; + } + self.page++; + [self.presimport acquireTerminalImpressionSttowardsementAboutPeriod:self.page pageSize:20 state:1]; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self.view addSubview:self.nevRegard]; + [self.view addSubview:self.tableView]; +} + +- (void)initChildLyRestrictions { + [self.nevRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self.view); + make.height.mas_equalTo(kNavigationHeight); + }]; + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.mas_equalTo(self.view); + make.top.mas_equalTo(self.nevRegard.mas_bottom); + }]; +} + +#pragma mark - FBCManeFootPrintCeremony +- (void)acquireTerminalImpressionSttowardsementAccomplishment:(NSArray *)array state:(int)state { + if (state == 0) { + [self.datasource removeAllObjects]; + [self.tableView.mj_header endRefreshing]; + } + [self.tableView.mj_footer endRefreshing]; + if (array.count > 0) { + self.hasNoFurthaerAtoloudspeaker = NO; + [self.datasource addObjectsFromArray:array]; + } else { + self.hasNoFurthaerAtoloudspeaker = YES; + [self.tableView.mj_footer endRefreshingWithNoMoreData]; + } + [self.tableView reloadData]; +} + +- (void)acquireTerminalImpressionSttowardsementFlunk:(int)state { + if (state == 0) { + [self.tableView.mj_header endRefreshing]; + } else { + [self.tableView.mj_footer endRefreshing]; + } +} + +- (void)sanitaryTerminalImpressionAccomplishment { + [self EvidenceAccomplishmentToast:YMLocalizedString(@"YUMI_MineFootPrintViewController1")]; + [self intelligenceerRenovtowardseh]; +} + +- (void)assembleChamberAccomplishment { + [self EvidenceAccomplishmentToast:YMLocalizedString(@"YUMI_MineFootPrintViewController2")]; +} + +#pragma mark - UITableViewDelegate And UITableViewDataSource +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.datasource.count > 0 ? self.datasource.count : 1; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + if (self.datasource.count > 0) { + YUMIManeTerminalImpressionTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIManeTerminalImpressionTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIManeTerminalImpressionTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIManeTerminalImpressionTabulationRegardElement class])]; + } + cell.item = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + return cell; + } + + YUMIManeVacationerDispossessTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIManeVacationerDispossessTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIManeVacationerDispossessTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIManeVacationerDispossessTabulationRegardElement class])]; + } + cell.emptyTitle = YMLocalizedString(@"YUMI_MineFootPrintViewController3"); + return cell; +} + +- (UISwipeActionsConfiguration *)tableView:(UITableView *)tableView trailingSwipeActionsConfigurationForRowAtIndexPath:(NSIndexPath *)indexPath API_AVAILABLE(ios(11.0)){ + [tableView setEditing:NO animated:YES]; + __weak typeof(self) weakSelf = self; + UIContextualAction *deleteAction = [UIContextualAction contextualActionWithStyle:UIContextualActionStyleDestructive title:YMLocalizedString(@"YUMI_MineFootPrintViewController4") handler:^(UIContextualAction * _Nonnull action, __kindof UIView * _Nonnull sourceView, void (^ _Nonnull completionHandler)(BOOL)) { + YUMIManeTerminalImpressionMatrix *item = [weakSelf.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + [weakSelf.presimport sanitaryTerminalImpression:item.roomUid]; + completionHandler(true); + }]; + UIContextualAction *collectAction = [UIContextualAction contextualActionWithStyle:UIContextualActionStyleNormal title:YMLocalizedString(@"YUMI_MineFootPrintViewController5") handler:^(UIContextualAction * _Nonnull action, __kindof UIView * _Nonnull sourceView, void (^ _Nonnull completionHandler)(BOOL)) { + YUMIManeTerminalImpressionMatrix *item = [weakSelf.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + [weakSelf.presimport assembleChamberAboutChamberCid:item.roomUid]; + completionHandler(true); + }]; + deleteAction.backgroundColor = [DJDKMIMOMColor essayTertiusPrettify]; + collectAction.backgroundColor = UIColorFromRGB(0xFFA027); + UISwipeActionsConfiguration *actions = [UISwipeActionsConfiguration configurationWithActions:@[collectAction, deleteAction]]; + actions.performsFirstActionWithFullSwipe = NO; + return actions; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + if (self.datasource.count == 0) { + return 85; + } else { + return 66; + } +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + if (self.datasource.count > 0) { + YUMIManeTerminalImpressionMatrix *model = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + if (model.roomUid.integerValue > 0) { + [YUMIChamberRegardGovernancer unfoildChamber:model.roomUid viewController:self]; + } + } +} + +#pragma mark - FBCFootPrintNevRegardRepresendtation +- (void)yUMITerminalImpressionNevRegard:(YUMITerminalImpressionNevRegard *)view didClickBackButton:(UIButton *)sender { + [self.navigationController popViewControllerAnimated:YES]; +} + +- (void)yUMITerminalImpressionNevRegard:(YUMITerminalImpressionNevRegard *)view didClickClearButton:(UIButton *)sender { + [self.presimport sanitaryTerminalImpression:nil]; +} + +#pragma mark - Getters And Setters +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.tableFooterView = [UIView new]; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.backgroundColor = [UIColor clearColor]; + _tableView.rowHeight = 65; + if (@available(iOS 11.0, *)) { + _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + [_tableView registerClass:[YUMIManeVacationerDispossessTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIManeVacationerDispossessTabulationRegardElement class])]; + [_tableView registerClass:[YUMIManeTerminalImpressionTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIManeTerminalImpressionTabulationRegardElement class])]; + } + return _tableView; +} + +- (NSMutableArray *)datasource { + if (!_datasource) { + _datasource = [NSMutableArray array]; + } + return _datasource; +} + +- (YUMITerminalImpressionNevRegard *)nevRegard { + if (!_nevRegard) { + _nevRegard = [[YUMITerminalImpressionNevRegard alloc] init]; + _nevRegard.delegate = self; + } + return _nevRegard; +} + +@end diff --git a/YuMi/Modules/YMMine/View/YUMIManeVacationerRegardGovernancer.h b/YuMi/Modules/YMMine/View/YUMIManeVacationerRegardGovernancer.h new file mode 100644 index 00000000..e8ac6d07 --- /dev/null +++ b/YuMi/Modules/YMMine/View/YUMIManeVacationerRegardGovernancer.h @@ -0,0 +1,16 @@ +// +// YMMineVisitorViewController.h +// YUMI +// +// Created by YUMI on 2022/1/26. +// + +#import "MvpRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIManeVacationerRegardGovernancer : MvpRegardGovernancer + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/YUMIManeVacationerRegardGovernancer.m b/YuMi/Modules/YMMine/View/YUMIManeVacationerRegardGovernancer.m new file mode 100644 index 00000000..b6941a68 --- /dev/null +++ b/YuMi/Modules/YMMine/View/YUMIManeVacationerRegardGovernancer.m @@ -0,0 +1,197 @@ +// +// YMMineVisitorViewController.m +// YUMI +// +// Created by YUMI on 2022/1/26. +// + +#import "YUMIManeVacationerRegardGovernancer.h" +#import +#import +#import "DJDKMIMOMColor.h" +#import "NSArray+Safe.h" +#import "ClientDisposition.h" +#import "YUMIManeVacationerProvisionMatrix.h" +#import "YUMIManeVacationerTabulationRegardElement.h" +#import "YUMIManeVacationerDispossessTabulationRegardElement.h" +#import "YUMIManeVacationerExternalizer.h" +#import "FBCManeVisitorCeremony.h" +#import "YUMIManeConsumerAbstractRegardGovernancer.h" +#import "YUMIManeSimpleConsumerAbstractRegardGovernancer.h" +#import "InterlocutionRegardGovernancer.h" + +@interface YUMIManeVacationerRegardGovernancer () +@property (nonatomic,strong) UITableView *tableView; +@property (nonatomic,strong) NSMutableArray *datasource; +@property (nonatomic,assign) int page; +@property (nonatomic,assign) BOOL hasNoFurthaerAtoloudspeaker; +@end + +@implementation YUMIManeVacationerRegardGovernancer + +- (YUMIManeVacationerExternalizer *)producePresimport { + return [[YUMIManeVacationerExternalizer alloc] init]; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initIntelligencerGrantedTerminalerRrfresh]; + [self initSubViews]; + [self initChildLyRestrictions]; +} + +#pragma mark - 下拉刷新 +- (void)initIntelligencerGrantedTerminalerRrfresh { + MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(intelligenceerRenovtowardseh)]; + header.stateLabel.font = [UIFont systemFontOfSize:10.0]; + header.lastUpdatedTimeLabel.font = [UIFont systemFontOfSize:10.0]; + header.stateLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + header.lastUpdatedTimeLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + self.tableView.mj_header = header; + + MJRefreshBackNormalFooter *footer = [MJRefreshBackNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(footerRenovtowardseh)]; + footer.stateLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + footer.stateLabel.font = [UIFont systemFontOfSize:10.0]; + self.tableView.mj_footer = footer; + + [self intelligenceerRenovtowardseh]; +} + +#pragma mark - 刷新的fangfa +- (void)intelligenceerRenovtowardseh { + self.page = 1; + [self.presimport acquireVactowardsionerSttowardsement:self.page pageSize:20 state:0]; +} + +- (void)footerRenovtowardseh { + if (self.hasNoFurthaerAtoloudspeaker) { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_Mine_Visitor_View_Controller_0")]; + return; + } + self.page++; + [self.presimport acquireVactowardsionerSttowardsement:self.page pageSize:20 state:1]; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.title = YMLocalizedString(@"YUMI_Mine_Visitor_View_Controller_1"); + [self.view addSubview:self.tableView]; +} + +- (void)initChildLyRestrictions { + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.view); + }]; +} + +#pragma mark - FBCManeVisitorCeremony +- (void)dwellEarnVactowardsionerSttowardsementAccomplishment:(NSArray *)array state:(int)state { + if (state == 0) { + [self.datasource removeAllObjects]; + [self.tableView.mj_header endRefreshing]; + } + [self.tableView.mj_footer endRefreshing]; + if (array.count > 0) { + self.hasNoFurthaerAtoloudspeaker = NO; + [self.datasource addObjectsFromArray:array]; + } else { + self.hasNoFurthaerAtoloudspeaker = YES; + [self.tableView.mj_footer endRefreshingWithNoMoreData]; + } + [self.tableView reloadData]; +} + +- (void)acquireVactowardsionerSttowardsementFlunk:(int)state { + if (state == 0) { + [self.tableView.mj_header endRefreshing]; + } else { + [self.tableView.mj_footer endRefreshing]; + } +} + +#pragma mark - UITableViewDelegate And UITableViewDataSource +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.datasource.count > 0 ? self.datasource.count : 1; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + if (self.datasource.count > 0) { + YUMIManeVacationerTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIManeVacationerTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIManeVacationerTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIManeVacationerTabulationRegardElement class])]; + } + cell.isThresholdProvision = indexPath.row == 0; + cell.isRecentProvision = indexPath.row == self.datasource.count - 1; + cell.delegate = self; + cell.item = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + return cell; + } + + YUMIManeVacationerDispossessTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIManeVacationerDispossessTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIManeVacationerDispossessTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIManeVacationerDispossessTabulationRegardElement class])]; + } + cell.emptyTitle = YMLocalizedString(@"YUMI_Mine_Visitor_View_Controller_2"); + return cell; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + if (indexPath.row == 0) { + return 85; + } else { + return 70; + } +} + +#pragma mark - TTVisitorRecordCellDelegate +- (void)onIntelligenceportraitTicktack:(YUMIManeVacationerTabulationRegardElement *)cell { + NSIndexPath *indexPath = [self.tableView indexPathForCell:cell]; + YUMIManeVacationerProvisionMatrix *item = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + + if ([ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + YUMIManeConsumerAbstractRegardGovernancer * userInfoVC = [[YUMIManeConsumerAbstractRegardGovernancer alloc] init]; + userInfoVC.uid = item.uid; + [self.navigationController pushViewController:userInfoVC animated:YES]; + }else{ + YUMIManeSimpleConsumerAbstractRegardGovernancer * userInfoVC = [[YUMIManeSimpleConsumerAbstractRegardGovernancer alloc] init]; + userInfoVC.uid = item.uid; + [self.navigationController pushViewController:userInfoVC animated:YES]; + } +} + +- (void)onChinwagTicktack:(YUMIManeVacationerTabulationRegardElement *)cell { + NSIndexPath *indexPath = [self.tableView indexPathForCell:cell]; + YUMIManeVacationerProvisionMatrix *item = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + NSString * sessionId = [NSString stringWithFormat:@"%lld",item.uid]; + NIMSession * session = [NIMSession session:sessionId type:NIMSessionTypeP2P]; + InterlocutionRegardGovernancer * sessionVC = [[InterlocutionRegardGovernancer alloc] initWithSession:session]; + [self.navigationController pushViewController:sessionVC animated:YES]; +} + +#pragma mark - Getters And Setters +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.tableFooterView = [UIView new]; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.backgroundColor = [UIColor clearColor]; + _tableView.rowHeight = 65; + if (@available(iOS 11.0, *)) { + _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + [_tableView registerClass:[YUMIManeVacationerDispossessTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIManeVacationerDispossessTabulationRegardElement class])]; + [_tableView registerClass:[YUMIManeVacationerTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIManeVacationerTabulationRegardElement class])]; + } + return _tableView; +} + +- (NSMutableArray *)datasource { + if (!_datasource) { + _datasource = [NSMutableArray array]; + } + return _datasource; +} + +@end diff --git a/YuMi/Modules/YMMine/View/YUMIPermissionsRegardGovernancer.h b/YuMi/Modules/YMMine/View/YUMIPermissionsRegardGovernancer.h new file mode 100644 index 00000000..b283bff1 --- /dev/null +++ b/YuMi/Modules/YMMine/View/YUMIPermissionsRegardGovernancer.h @@ -0,0 +1,16 @@ +// +// YMPermissionsViewController.h +// YUMI +// +// Created by zu on 2021/12/28. +// + +#import "BaseRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIPermissionsRegardGovernancer : BaseRegardGovernancer + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/YUMIPermissionsRegardGovernancer.m b/YuMi/Modules/YMMine/View/YUMIPermissionsRegardGovernancer.m new file mode 100644 index 00000000..f796784e --- /dev/null +++ b/YuMi/Modules/YMMine/View/YUMIPermissionsRegardGovernancer.m @@ -0,0 +1,293 @@ +// +// YMPermissionsViewController.m +// YUMI +// +// Created by zu on 2021/12/28. +// + +#import "YUMIPermissionsRegardGovernancer.h" +#import +#import +#import +#import "YUMIMacroUitls.h" +#import "DJDKMIMOMColor.h" +#import "NSArray+Safe.h" + +@interface YUMIPermissionElement : UITableViewCell + +@property (nonatomic, strong) UIImageView * icon; +@property (nonatomic, strong) UILabel * name; +@property (nonatomic, strong) UILabel * tip; + +@end + +@implementation YUMIPermissionElement + +- (instancetype)init { + if (self == [super init]) { + self.selectionStyle = UITableViewCellSelectionStyleNone; + self.backgroundColor = UIColor.clearColor; + [self.contentView addSubview:self.icon]; + [self.contentView addSubview:self.name]; + [self.contentView addSubview:self.tip]; + self.contentView.backgroundColor = DJDKMIMOMColor.aplictowardsionElementEncouragegroundPrettify; + self.contentView.layer.masksToBounds = YES; + self.contentView.layer.cornerRadius = 8; + [self.icon mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.contentView); + make.left.mas_equalTo(self.contentView).offset(15); + }]; + [self.name mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.icon.mas_right).offset(8); + make.top.mas_equalTo(self.contentView).offset(16); + }]; + [self.tip mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.icon.mas_right).offset(8); + make.bottom.mas_equalTo(self.contentView).offset(-16); + }]; + } + return self; +} + +- (UIImageView *)icon { + if (!_icon) { + _icon = [[UIImageView alloc] init]; + } + return _icon; +} + +- (UILabel *)name { + if (!_name) { + _name = [[UILabel alloc] init]; + _name.textColor = DJDKMIMOMColor.mainEssayPrettify; + _name.font = [UIFont systemFontOfSize:14]; + } + return _name; +} + +- (UILabel *)tip { + if (!_tip) { + _tip = [[UILabel alloc] init]; + _tip.textColor = DJDKMIMOMColor.instantEssayPrettify; + _tip.font = [UIFont systemFontOfSize:13]; + } + return _tip; +} + +@end + +@interface YUMIPermissionsRegardGovernancer () + +@property (nonatomic,strong) UITableView * tableView; + +@property (nonatomic, strong) NSMutableArray * permissionFigures; +@property (nonatomic, strong) NSMutableArray * permissionSalutation; +@property (nonatomic, strong) NSMutableArray * permissionPrompts; + +@property (nonatomic, strong) UIView * empty; +@property (nonatomic, strong) UIImageView * dispossessIndicate; +@property (nonatomic, strong) UILabel * dispossessPrompt; + +@property (nonatomic, strong) UIView * footer; +@property (nonatomic, strong) UILabel * footerPrompt; +@property (nonatomic, strong) UIButton * gotoInstanlling; + +@end + +@implementation YUMIPermissionsRegardGovernancer + +- (void)viewDidLoad { + [super viewDidLoad]; + self.title = YMLocalizedString(@"YUMI_Permissions_View_Controller_0"); + [self.empty addSubview:self.dispossessIndicate]; + [self.empty addSubview:self.dispossessPrompt]; + [self.view addSubview:self.tableView]; + [self.footer addSubview:self.footerPrompt]; + [self.footer addSubview:self.gotoInstanlling]; + [self.view addSubview:self.footer]; +} + +- (void)viewDidLayoutSubviews { + [super viewDidLayoutSubviews]; + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.top.right.bottom.mas_equalTo(self.view).insets(UIEdgeInsetsMake(16, 16, 16, 16)); + }]; + [self.dispossessIndicate mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.empty); + make.top.mas_equalTo(self.empty).offset(200); + make.size.mas_equalTo(CGSizeMake(100, 100)); + }]; + [self.dispossessPrompt mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.empty); + make.top.mas_equalTo(self.dispossessIndicate.mas_bottom).offset(16); + }]; + [self.footer mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.view); + make.bottom.mas_equalTo(self.view).offset(-kSafeAreaBottomHeight); + make.height.mas_equalTo(100); + }]; + [self.footerPrompt mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.footer); + make.top.mas_equalTo(self.footer).offset(24); + }]; + [self.gotoInstanlling mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.footer); + make.top.mas_equalTo(self.footerPrompt.mas_bottom).offset(40); + }]; +} + +- (void)viewWillAppear:(BOOL)animated { + PHAuthorizationStatus phStatus = [PHPhotoLibrary authorizationStatus]; + if (phStatus == PHAuthorizationStatusAuthorized) { + [self.permissionSalutation addObject:YMLocalizedString(@"YUMI_Permissions_View_Controller_1")]; + [self.permissionPrompts addObject:YMLocalizedString(@"YUMI_Permissions_View_Controller_2")]; + [self.permissionFigures addObject:@"mine_setting_permission_album"]; + } + + AVAuthorizationStatus microPhoneStatus = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeAudio]; + if (microPhoneStatus == AVAuthorizationStatusAuthorized) { + [self.permissionSalutation addObject:YMLocalizedString(@"YUMI_Permissions_View_Controller_3")]; + [self.permissionPrompts addObject:YMLocalizedString(@"YUMI_Permissions_View_Controller_4")]; + [self.permissionFigures addObject:@"mine_setting_permission_voice"]; + } + + AVAuthorizationStatus cameraStatus = [AVCaptureDevice authorizationStatusForMediaType:AVMediaTypeVideo]; + if (cameraStatus == AVAuthorizationStatusAuthorized) { + [self.permissionSalutation addObject:YMLocalizedString(@"YUMI_Permissions_View_Controller_5")]; + [self.permissionPrompts addObject:YMLocalizedString(@"YUMI_Permissions_View_Controller_6")]; + [self.permissionFigures addObject:@"mine_setting_permission_camera"]; + } +} + +- (void)passtoInstanllingTicktack:(UIButton *)sender { + NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString]; + if ([[UIApplication sharedApplication] canOpenURL:url]) { + [[UIApplication sharedApplication] openURL:url options:@{} completionHandler:nil]; + } +} + +- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { + tableView.backgroundView = self.permissionSalutation.count == 0 ? self.empty : nil; + return self.permissionSalutation.count; +} + +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return 1; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { + if (section == 0) { + return 0.001f; + } + return 16.f; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + return 70.f; +} + +-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { + UIView *view = [[UIView alloc] init]; + view.backgroundColor = [UIColor clearColor]; + return view; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + NSInteger section = indexPath.section; + YUMIPermissionElement * cell = [[YUMIPermissionElement alloc] init]; + cell.icon.image = [UIImage imageNamed:[self.permissionFigures secureGroalTowardsIndictowardsrix1:section]]; + cell.name.text = [self.permissionSalutation secureGroalTowardsIndictowardsrix1:section]; + cell.tip.text = [self.permissionPrompts secureGroalTowardsIndictowardsrix1:section]; + return cell; +} + +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.showsVerticalScrollIndicator = NO; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.backgroundColor = [UIColor clearColor]; + [_tableView registerClass:[YUMIPermissionElement class] forCellReuseIdentifier:NSStringFromClass([YUMIPermissionElement class])]; + } + return _tableView; +} + +- (NSMutableArray *)permissionFigures { + if (!_permissionFigures) { + _permissionFigures = [[NSMutableArray alloc] init]; + } + return _permissionFigures; +} + +- (NSMutableArray *)permissionSalutation { + if (!_permissionSalutation) { + _permissionSalutation = [[NSMutableArray alloc] init]; + } + return _permissionSalutation; +} + +- (NSMutableArray *)permissionPrompts { + if (!_permissionPrompts) { + _permissionPrompts = [[NSMutableArray alloc] init]; + } + return _permissionPrompts; +} + +- (UIView *)empty { + if (!_empty) { + _empty = [[UIView alloc] init]; + } + return _empty; +} + +- (UIImageView *)dispossessIndicate { + if (!_dispossessIndicate) { + _dispossessIndicate = [[UIImageView alloc] init]; + _dispossessIndicate.contentMode = UIViewContentModeScaleAspectFit; + _dispossessIndicate.image = [UIImage imageNamed:@"yumi_same_empty"]; + } + return _dispossessIndicate; +} + +- (UILabel *)dispossessPrompt { + if (!_dispossessPrompt) { + _dispossessPrompt = [[UILabel alloc] init]; + _dispossessPrompt.textColor = DJDKMIMOMColor.instantEssayPrettify; + _dispossessPrompt.font = [UIFont systemFontOfSize:12]; + _dispossessPrompt.text = YMLocalizedString(@"YUMI_Permissions_View_Controller_7"); + } + return _dispossessPrompt; +} + +- (UIView *)footer { + if (!_footer) { + _footer = [[UIView alloc] init]; + } + return _footer; +} + +- (UILabel *)footerPrompt { + if (!_footerPrompt) { + _footerPrompt = [[UILabel alloc] init]; + _footerPrompt.textColor = DJDKMIMOMColor.mainEssayPrettify; + _footerPrompt.font = [UIFont systemFontOfSize:12]; + _footerPrompt.text = @"—— 仅展示能查询到的已授权系统权限 ——"; + } + return _footerPrompt; +} + +- (UIButton *)gotoInstanlling { + if (!_gotoInstanlling) { + _gotoInstanlling = [UIButton buttonWithType:UIButtonTypeCustom]; + [_gotoInstanlling setTitle:@"前往系统设置>" forState:UIControlStateNormal]; + [_gotoInstanlling setTitleColor:DJDKMIMOMColor.aplictowardsionMainPrettify forState:UIControlStateNormal]; + _gotoInstanlling.titleLabel.font = [UIFont systemFontOfSize:14]; + _gotoInstanlling.titleLabel.adjustsFontSizeToFitWidth = YES; + [_gotoInstanlling addTarget:self action:@selector(passtoInstanllingTicktack:) forControlEvents:UIControlEventTouchUpInside]; + } + return _gotoInstanlling; +} + +@end diff --git a/YuMi/Modules/YMMine/View/YUMIPrivacyRegardGovernancer.h b/YuMi/Modules/YMMine/View/YUMIPrivacyRegardGovernancer.h new file mode 100644 index 00000000..6570cb92 --- /dev/null +++ b/YuMi/Modules/YMMine/View/YUMIPrivacyRegardGovernancer.h @@ -0,0 +1,16 @@ +// +// YMPrivacyViewController.h +// YUMI +// +// Created by zu on 2021/12/28. +// + +#import "BaseRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIPrivacyRegardGovernancer : BaseRegardGovernancer + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/YUMIPrivacyRegardGovernancer.m b/YuMi/Modules/YMMine/View/YUMIPrivacyRegardGovernancer.m new file mode 100644 index 00000000..f0fad191 --- /dev/null +++ b/YuMi/Modules/YMMine/View/YUMIPrivacyRegardGovernancer.m @@ -0,0 +1,163 @@ +// +// YMPrivacyViewController.m +// YUMI +// +// Created by zu on 2021/12/28. +// + +#import "YUMIPrivacyRegardGovernancer.h" +#import +#import "YUMIManeInstanllingTabulationRegardElement.h" +#import "YUMIManeInstanllingProvisionMatrix.h" +#import "YUMITissueRegardGovernancer.h" +#import "YUMIPermissionsRegardGovernancer.h" +#import "YUMIHtmlUrl.h" +#import "NSArray+Safe.h" + +@interface YUMIPrivacyRegardGovernancer () + +@property (nonatomic, strong) UITableView * tableView; + +@property (nonatomic, strong) NSArray * datasource; + +@end + +@implementation YUMIPrivacyRegardGovernancer + +- (void)viewDidLoad { + [super viewDidLoad]; + self.title = YMLocalizedString(@"YUMI_Privacy_View_Controller_0"); + [self.view addSubview:self.tableView]; + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.mas_equalTo(self.view); + make.top.mas_equalTo(0); + }]; +} + +- (void)pushTissueRegardWIthWeebsite:(NSString *)url { + YUMITissueRegardGovernancer * webVewC = [[YUMITissueRegardGovernancer alloc] init]; + webVewC.url = url; + [self.navigationController pushViewController:webVewC animated:YES]; +} + +#pragma mark - UITableViewDelegate And UITableViewDataSource +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + return 45; +} + +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.datasource.count; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + YUMIManeInstanllingTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIManeInstanllingTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIManeInstanllingTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIManeInstanllingTabulationRegardElement class])]; + } + + cell.itemMatrix = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + return cell; +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + [tableView deselectRowAtIndexPath:indexPath animated:YES]; + switch (indexPath.row) { + case 0: + { + YUMIPermissionsRegardGovernancer * pvc = [[YUMIPermissionsRegardGovernancer alloc] init]; + [self.navigationController pushViewController:pvc animated:YES]; + } + break; + case 1: + [self pushTissueRegardWIthWeebsite:URLWithType(kPrivacyURL)]; + break; + case 2: + [self pushTissueRegardWIthWeebsite:URLWithType(kPrivacySDKURL)]; + break; + case 3: + [self pushTissueRegardWIthWeebsite:URLWithType(kPrivacyPersonalURL)]; + break; + case 4: + [self pushTissueRegardWIthWeebsite:URLWithType(kPrivacyDeviceURL)]; + break; + case 5: + [self pushTissueRegardWIthWeebsite:URLWithType(kUserRechargeAgrURL)]; + break; + case 6: + [self pushTissueRegardWIthWeebsite:URLWithType(kUserRegiServiceAgrURL)]; + break; + case 7: + [self pushTissueRegardWIthWeebsite:URLWithType(kLiveServiceAgrURL)]; + break; + case 8: + [self pushTissueRegardWIthWeebsite:URLWithType(kCommunitySpecURL)]; + break; + case 9: + [self pushTissueRegardWIthWeebsite:URLWithType(kAccountlogoutAgrURL)]; + break; + default: + break; + } +} + +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.showsVerticalScrollIndicator = NO; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.backgroundColor = [UIColor clearColor]; + [_tableView registerClass:[YUMIManeInstanllingTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIManeInstanllingTabulationRegardElement class])]; + } + return _tableView; +} + +- (NSArray *)datasource { + if (!_datasource) { + YUMIManeInstanllingProvisionMatrix * sysPermission = [[YUMIManeInstanllingProvisionMatrix alloc] init]; + sysPermission.title = YMLocalizedString(@"YUMI_Privacy_View_Controller_1"); + sysPermission.subTitle = @""; + + YUMIManeInstanllingProvisionMatrix * privacy = [[YUMIManeInstanllingProvisionMatrix alloc] init]; + privacy.title = YMLocalizedString(@"YUMI_Privacy_View_Controller_2"); + privacy.subTitle = @""; + + YUMIManeInstanllingProvisionMatrix * sdk = [[YUMIManeInstanllingProvisionMatrix alloc] init]; + sdk.title = YMLocalizedString(@"YUMI_Privacy_View_Controller_3"); + sdk.subTitle = @""; + + YUMIManeInstanllingProvisionMatrix * personalInfo = [[YUMIManeInstanllingProvisionMatrix alloc] init]; + personalInfo.title = YMLocalizedString(@"YUMI_Privacy_View_Controller_4"); + personalInfo.subTitle = @""; + + YUMIManeInstanllingProvisionMatrix * permissionList = [[YUMIManeInstanllingProvisionMatrix alloc] init]; + permissionList.title = YMLocalizedString(@"YUMI_Privacy_View_Controller_5"); + permissionList.subTitle = @""; + + YUMIManeInstanllingProvisionMatrix * userChargeProtocol = [[YUMIManeInstanllingProvisionMatrix alloc] init]; + userChargeProtocol.title = YMLocalizedString(@"YUMI_Privacy_View_Controller_6"); + userChargeProtocol.subTitle = @""; + + YUMIManeInstanllingProvisionMatrix *userRegistProtocol = [[YUMIManeInstanllingProvisionMatrix alloc] init]; + userRegistProtocol.title = YMLocalizedString(@"YUMI_Privacy_View_Controller_7"); + userRegistProtocol.subTitle = @""; + + YUMIManeInstanllingProvisionMatrix * liveServiceProtocol = [[YUMIManeInstanllingProvisionMatrix alloc] init]; + liveServiceProtocol.title = YMLocalizedString(@"YUMI_Privacy_View_Controller_8"); + liveServiceProtocol.subTitle = @""; + + YUMIManeInstanllingProvisionMatrix * communitySpec = [[YUMIManeInstanllingProvisionMatrix alloc] init]; + communitySpec.title = YMLocalizedString(@"YUMI_Privacy_View_Controller_9"); + communitySpec.subTitle = @""; + + YUMIManeInstanllingProvisionMatrix * accountLogout = [[YUMIManeInstanllingProvisionMatrix alloc] init]; + accountLogout.title = YMLocalizedString(@"YUMI_Privacy_View_Controller_10"); + accountLogout.subTitle = @""; + + _datasource = @[sysPermission, privacy, sdk, personalInfo, permissionList, userChargeProtocol, userRegistProtocol, liveServiceProtocol, communitySpec,accountLogout]; + } + return _datasource; +} + +@end diff --git a/YuMi/Modules/YMMine/View/YUMISimpleManeIntelligencerRegard.h b/YuMi/Modules/YMMine/View/YUMISimpleManeIntelligencerRegard.h new file mode 100644 index 00000000..f136ca6f --- /dev/null +++ b/YuMi/Modules/YMMine/View/YUMISimpleManeIntelligencerRegard.h @@ -0,0 +1,28 @@ +// +// YMSimpleMineHeaderView.h +// YUMI +// +// Created by XY on 2023/2/20. +// + +#import +#import "YUMIManeProvisionMatrix.h" + +@class ConsumerAbstractMatrix; + +NS_ASSUME_NONNULL_BEGIN + +@protocol FBCSimpleManeIntelligencerRegardRepresendtation + +- (void)intelligenceerRegardBtutonPerformanceGenre:(YUMIManeProvisionGenre)itemType; + +@end + +@interface YUMISimpleManeIntelligencerRegard : UIView +@property (nonatomic,strong) ConsumerAbstractMatrix *userInfo; + +@property (nonatomic, weak) id delegate; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/YUMISimpleManeIntelligencerRegard.m b/YuMi/Modules/YMMine/View/YUMISimpleManeIntelligencerRegard.m new file mode 100644 index 00000000..9de4c4a9 --- /dev/null +++ b/YuMi/Modules/YMMine/View/YUMISimpleManeIntelligencerRegard.m @@ -0,0 +1,347 @@ +// +// YMSimpleMineHeaderView.m +// YUMI +// +// Created by XY on 2023/2/20. +// + +#import "YUMISimpleManeIntelligencerRegard.h" +#import "NetIndicateRegard.h" +#import +#import "DJDKMIMOMColor.h" +#import "YUMIButton.h" + +#import "ConsumerAbstractMatrix.h" + +@interface YUMISimpleManeIntelligencerRegard() + +@property (nonatomic, strong) NetIndicateRegard *backgroundIndicateRegard; +@property (nonatomic, strong) UIVisualEffectView *impressionRegard; +@property (nonatomic, strong) UILabel *monicerconstituteSequencignation; +@property (nonatomic, strong) UILabel *idSequencignation; +@property (nonatomic, strong) NetIndicateRegard *intelligenceportraitIndicateRegard; +@property (nonatomic, strong) UIStackView *figureHierarchyRegard; +@property (nonatomic, strong) UIButton *considerationBtuton; +@property (nonatomic, strong) UIButton *fanaticsBtuton; +@property (nonatomic, strong) UIButton *vacationerBtuton; +@property (nonatomic, strong) UIButton *browseBtuton; +@property (nonatomic, strong) UIStackView *funcHierarchyRegard; +@property (nonatomic, strong) YUMIButton *wentiretyetBtuton; +@property (nonatomic, strong) YUMIButton *chamberBtuton; +@property (nonatomic, strong) YUMIButton *assembletionBtuton; +@property (nonatomic, strong) YUMIButton *distinctionBtuton; + +@end + +@implementation YUMISimpleManeIntelligencerRegard + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self produceUI]; + } + return self; +} + +- (void)produceUI { + [self addSubview:self.backgroundIndicateRegard]; + [self.backgroundIndicateRegard addSubview:self.impressionRegard]; + [self addSubview:self.monicerconstituteSequencignation]; + [self addSubview:self.idSequencignation]; + [self addSubview:self.intelligenceportraitIndicateRegard]; + [self addSubview:self.figureHierarchyRegard]; + [self.figureHierarchyRegard addArrangedSubview:self.considerationBtuton]; + [self.figureHierarchyRegard addArrangedSubview:self.fanaticsBtuton]; + [self.figureHierarchyRegard addArrangedSubview:self.vacationerBtuton]; + [self.figureHierarchyRegard addArrangedSubview:self.browseBtuton]; + [self addSubview:self.funcHierarchyRegard]; + [self.funcHierarchyRegard addArrangedSubview:self.wentiretyetBtuton]; + [self.funcHierarchyRegard addArrangedSubview:self.chamberBtuton]; + [self.funcHierarchyRegard addArrangedSubview:self.assembletionBtuton]; + [self.funcHierarchyRegard addArrangedSubview:self.distinctionBtuton]; + + [self.backgroundIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.left.right.mas_equalTo(0); + make.height.mas_equalTo(260); + }]; + [self.impressionRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.backgroundIndicateRegard); + }]; + [self.monicerconstituteSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.intelligenceportraitIndicateRegard).offset(-5); + make.left.mas_equalTo(16); + make.right.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_left).offset(-5); + }]; + [self.idSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.monicerconstituteSequencignation.mas_bottom).offset(2); + make.left.mas_equalTo(self.monicerconstituteSequencignation); + make.right.mas_equalTo(self.monicerconstituteSequencignation); + }]; + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.backgroundIndicateRegard); + make.right.mas_equalTo(-16); + make.width.height.mas_equalTo(86); + }]; + [self.figureHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(16); + make.right.mas_equalTo(-16); + make.bottom.mas_equalTo(self.funcHierarchyRegard.mas_top).offset(-10); + make.height.mas_equalTo(30); + }]; + [self.funcHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(16); + make.right.mas_equalTo(-16); + make.centerY.mas_equalTo(self.backgroundIndicateRegard.mas_bottom); + make.height.mas_equalTo(70); + }]; + +} + +- (void)setUserInfo:(ConsumerAbstractMatrix *)userInfo { + _userInfo = userInfo; + if (_userInfo) { + self.idSequencignation.text = [NSString stringWithFormat:@"ID:%ld", (long)_userInfo.erbanNo]; + self.monicerconstituteSequencignation.text = _userInfo.nick.length > 0 ? _userInfo.nick : @""; + self.intelligenceportraitIndicateRegard.imageUrl = userInfo.avatar; + self.backgroundIndicateRegard.imageUrl = userInfo.avatar; + + NSString *attent = YMLocalizedString(@"YUMI_Simple_Mine_Header_View_0"); + NSString *attentStr = [NSString stringWithFormat:@"%@%ld",attent,_userInfo.followNum]; + NSMutableAttributedString *attentAttrStr = [[NSMutableAttributedString alloc] initWithString:attentStr]; + [attentAttrStr addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:16 weight:UIFontWeightMedium] range:NSMakeRange(attent.length, attentStr.length-attent.length)]; + [self.considerationBtuton setAttributedTitle:attentAttrStr forState:UIControlStateNormal]; + + NSString *fans = YMLocalizedString(@"YUMI_Simple_Mine_Header_View_1"); + NSString *fansStr = [NSString stringWithFormat:@"%@%ld",fans,_userInfo.fansNum]; + NSMutableAttributedString *fansAttrStr = [[NSMutableAttributedString alloc] initWithString:fansStr]; + [fansAttrStr addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:16 weight:UIFontWeightMedium] range:NSMakeRange(fans.length, fansStr.length-fans.length)]; + [self.fanaticsBtuton setAttributedTitle:fansAttrStr forState:UIControlStateNormal]; + + NSString *visitor = YMLocalizedString(@"YUMI_Simple_Mine_Header_View_2"); + NSString *visitorStr = [NSString stringWithFormat:@"%@%ld",visitor,_userInfo.visitNum]; + NSMutableAttributedString *visitorAttrStr = [[NSMutableAttributedString alloc] initWithString:visitorStr]; + [visitorAttrStr addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:16 weight:UIFontWeightMedium] range:NSMakeRange(visitor.length, visitorStr.length-visitor.length)]; + [self.vacationerBtuton setAttributedTitle:visitorAttrStr forState:UIControlStateNormal]; + + NSString *browse = YMLocalizedString(@"YUMI_Simple_Mine_Header_View_3"); + NSString *browseStr = [NSString stringWithFormat:@"%@%ld",browse,_userInfo.inRoomNum]; + NSMutableAttributedString *browseAttrStr = [[NSMutableAttributedString alloc] initWithString:browseStr]; + [browseAttrStr addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:16 weight:UIFontWeightMedium] range:NSMakeRange(browse.length, browseStr.length-browse.length)]; + [self.browseBtuton setAttributedTitle:browseAttrStr forState:UIControlStateNormal]; + + } +} + +- (void)btnPerformance:(UIButton *)button { + if (self.delegate && [self.delegate respondsToSelector:@selector(intelligenceerRegardBtutonPerformanceGenre:)]) { + YUMIManeProvisionGenre itemType = -INT_MAX; + if (button == self.considerationBtuton) { + itemType = YUMIManeProvisionGenre_Attention_List; + }else if (button == self.fanaticsBtuton) { + itemType = YUMIManeProvisionGenre_Fans_List; + }else if (button == self.vacationerBtuton) { + itemType = YUMIManeProvisionGenre_Visitor; + }else if (button == self.browseBtuton) { + itemType = YUMIManeProvisionGenre_Foot_Print; + }else if (button == self.wentiretyetBtuton) { + itemType = YUMIManeProvisionGenre_Account; + }else if (button == self.chamberBtuton) { + itemType = YUMIManeProvisionGenre_My_Room; + }else if (button == self.assembletionBtuton) { + itemType = YUMIManeProvisionGenre_Collect_Room; + }else if (button == self.distinctionBtuton) { + itemType = -1; + } + [self.delegate intelligenceerRegardBtutonPerformanceGenre:itemType]; + } +} + +- (void)betowardsIntelligenceportraitIndictowardseRegard { + if (self.delegate && [self.delegate respondsToSelector:@selector(intelligenceerRegardBtutonPerformanceGenre:)]) { + [self.delegate intelligenceerRegardBtutonPerformanceGenre:YUMIManeProvisionGenre_Personinfo]; + } +} + +#pragma mark - 懒加载 + +- (NetIndicateRegard *)backgroundIndicateRegard { + if (!_backgroundIndicateRegard) { + _backgroundIndicateRegard = [[NetIndicateRegard alloc] init]; + _backgroundIndicateRegard.contentMode = UIViewContentModeScaleAspectFill; + _backgroundIndicateRegard.clipsToBounds = YES; + } + return _backgroundIndicateRegard; +} + +- (UIVisualEffectView *)impressionRegard { + if (!_impressionRegard) { + UIBlurEffect *blur = [UIBlurEffect effectWithStyle:UIBlurEffectStyleDark]; + _impressionRegard = [[UIVisualEffectView alloc] initWithEffect:blur]; + _impressionRegard.alpha = 0.9; + } + return _impressionRegard; +} + +- (UILabel *)monicerconstituteSequencignation { + if (!_monicerconstituteSequencignation) { + _monicerconstituteSequencignation = [[UILabel alloc] init]; + _monicerconstituteSequencignation.textColor = UIColor.whiteColor; + _monicerconstituteSequencignation.font = [UIFont systemFontOfSize:20 weight:UIFontWeightMedium]; + } + return _monicerconstituteSequencignation; +} + +- (UILabel *)idSequencignation { + if (!_idSequencignation) { + _idSequencignation = [[UILabel alloc] init]; + _idSequencignation.textColor = [UIColor.whiteColor colorWithAlphaComponent:0.4]; + _idSequencignation.font = [UIFont systemFontOfSize:14 weight:UIFontWeightRegular]; + } + return _idSequencignation; +} + +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceportraitIndicateRegard.userInteractionEnabled = YES; + _intelligenceportraitIndicateRegard.contentMode = UIViewContentModeScaleAspectFill; + _intelligenceportraitIndicateRegard.layer.borderWidth = 2; + _intelligenceportraitIndicateRegard.layer.borderColor = [UIColor.whiteColor colorWithAlphaComponent:0.4].CGColor; + _intelligenceportraitIndicateRegard.layer.cornerRadius = 86/2; + _intelligenceportraitIndicateRegard.clipsToBounds = YES; + + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(betowardsIntelligenceportraitIndictowardseRegard)]; + [_intelligenceportraitIndicateRegard addGestureRecognizer:tap]; + } + return _intelligenceportraitIndicateRegard; +} + +- (UIStackView *)figureHierarchyRegard { + if (!_figureHierarchyRegard) { + _figureHierarchyRegard = [[UIStackView alloc] init]; + _figureHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _figureHierarchyRegard.distribution = UIStackViewDistributionFillEqually; + _figureHierarchyRegard.alignment = UIStackViewAlignmentFill; + _figureHierarchyRegard.spacing = 2; + } + return _figureHierarchyRegard; +} + +- (UIButton *)considerationBtuton { + if (!_considerationBtuton) { + _considerationBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_considerationBtuton setTitleColor:UIColor.whiteColor forState:UIControlStateNormal]; + _considerationBtuton.titleLabel.font = [UIFont systemFontOfSize:10]; + _considerationBtuton.hidden = YES; + [_considerationBtuton addTarget:self action:@selector(btnPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _considerationBtuton; +} + +- (UIButton *)fanaticsBtuton { + if (!_fanaticsBtuton) { + _fanaticsBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_fanaticsBtuton setTitleColor:UIColor.whiteColor forState:UIControlStateNormal]; + _fanaticsBtuton.titleLabel.font = [UIFont systemFontOfSize:10]; + _fanaticsBtuton.hidden = YES; + [_fanaticsBtuton addTarget:self action:@selector(btnPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _fanaticsBtuton; +} + +- (UIButton *)vacationerBtuton { + if (!_vacationerBtuton) { + _vacationerBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_vacationerBtuton setTitleColor:UIColor.whiteColor forState:UIControlStateNormal]; + _vacationerBtuton.titleLabel.font = [UIFont systemFontOfSize:10]; + [_vacationerBtuton addTarget:self action:@selector(btnPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _vacationerBtuton; +} + +- (UIButton *)browseBtuton { + if (!_browseBtuton) { + _browseBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_browseBtuton setTitleColor:UIColor.whiteColor forState:UIControlStateNormal]; + _browseBtuton.titleLabel.font = [UIFont systemFontOfSize:10]; + [_browseBtuton addTarget:self action:@selector(btnPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _browseBtuton; +} + +- (UIStackView *)funcHierarchyRegard { + if (!_funcHierarchyRegard) { + _funcHierarchyRegard = [[UIStackView alloc] init]; + _funcHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _funcHierarchyRegard.distribution = UIStackViewDistributionFillEqually; + _funcHierarchyRegard.alignment = UIStackViewAlignmentFill; + _funcHierarchyRegard.spacing = 2; + _funcHierarchyRegard.backgroundColor = UIColor.whiteColor; + _funcHierarchyRegard.layer.cornerRadius = 20; + _funcHierarchyRegard.clipsToBounds = YES; + } + return _funcHierarchyRegard; +} + +- (YUMIButton *)wentiretyetBtuton { + if (!_wentiretyetBtuton) { + _wentiretyetBtuton = [YUMIButton buttonWithType:UIButtonTypeCustom]; + [_wentiretyetBtuton setTitleColor:[DJDKMIMOMColor mainEssayPrettify] forState:UIControlStateNormal]; + _wentiretyetBtuton.titleLabel.font = [UIFont systemFontOfSize:10]; + [_wentiretyetBtuton setTitle:YMLocalizedString(@"YUMI_Simple_Mine_Header_View_4") forState:UIControlStateNormal]; + [_wentiretyetBtuton setImage:[UIImage imageNamed:@"yumi_center_wallet"] forState:UIControlStateNormal]; + [_wentiretyetBtuton addTarget:self action:@selector(btnPerformance:) forControlEvents:UIControlEventTouchUpInside]; + _wentiretyetBtuton.buttonStyle = XPButtonImageTop; + _wentiretyetBtuton.padding = 4; + + } + return _wentiretyetBtuton; +} + +- (YUMIButton *)chamberBtuton { + if (!_chamberBtuton) { + _chamberBtuton = [YUMIButton buttonWithType:UIButtonTypeCustom]; + [_chamberBtuton setTitleColor:[DJDKMIMOMColor mainEssayPrettify] forState:UIControlStateNormal]; + _chamberBtuton.titleLabel.font = [UIFont systemFontOfSize:10]; + [_chamberBtuton setTitle:YMLocalizedString(@"YUMI_Simple_Mine_Header_View_5") forState:UIControlStateNormal]; + [_chamberBtuton setImage:[UIImage imageNamed:@"yumi_center_room"] forState:UIControlStateNormal]; + [_chamberBtuton addTarget:self action:@selector(btnPerformance:) forControlEvents:UIControlEventTouchUpInside]; + _chamberBtuton.buttonStyle = XPButtonImageTop; + _chamberBtuton.padding = 4; + } + return _chamberBtuton; +} + +- (YUMIButton *)assembletionBtuton { + if (!_assembletionBtuton) { + _assembletionBtuton = [YUMIButton buttonWithType:UIButtonTypeCustom]; + [_assembletionBtuton setTitleColor:[DJDKMIMOMColor mainEssayPrettify] forState:UIControlStateNormal]; + _assembletionBtuton.titleLabel.font = [UIFont systemFontOfSize:10]; + [_assembletionBtuton setTitle:YMLocalizedString(@"YUMI_Simple_Mine_Header_View_6") forState:UIControlStateNormal]; + [_assembletionBtuton setImage:[UIImage imageNamed:@"yumi_center_collection"] forState:UIControlStateNormal]; + [_assembletionBtuton addTarget:self action:@selector(btnPerformance:) forControlEvents:UIControlEventTouchUpInside]; + _assembletionBtuton.buttonStyle = XPButtonImageTop; + _assembletionBtuton.padding = 4; + } + return _assembletionBtuton; +} + +- (YUMIButton *)distinctionBtuton { + if (!_distinctionBtuton) { + _distinctionBtuton = [YUMIButton buttonWithType:UIButtonTypeCustom]; + [_distinctionBtuton setTitleColor:[DJDKMIMOMColor mainEssayPrettify] forState:UIControlStateNormal]; + _distinctionBtuton.titleLabel.font = [UIFont systemFontOfSize:10]; + [_distinctionBtuton setTitle:YMLocalizedString(@"YUMI_Simple_Mine_Header_View_7") forState:UIControlStateNormal]; + [_distinctionBtuton setImage:[UIImage imageNamed:@"yumi_center_grade"] forState:UIControlStateNormal]; + [_distinctionBtuton addTarget:self action:@selector(btnPerformance:) forControlEvents:UIControlEventTouchUpInside]; + _distinctionBtuton.buttonStyle = XPButtonImageTop ; + _distinctionBtuton.hidden = YES; + _distinctionBtuton.padding = 4; + } + return _distinctionBtuton; +} + +@end diff --git a/YuMi/Modules/YMMine/View/YUMISimpleManeRegardGovernancer.h b/YuMi/Modules/YMMine/View/YUMISimpleManeRegardGovernancer.h new file mode 100644 index 00000000..b35d9a3e --- /dev/null +++ b/YuMi/Modules/YMMine/View/YUMISimpleManeRegardGovernancer.h @@ -0,0 +1,16 @@ +// +// YMSimpleMineViewController.h +// YUMI +// +// Created by XY on 2023/2/20. +// + +#import "MvpRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMISimpleManeRegardGovernancer : MvpRegardGovernancer + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMine/View/YUMISimpleManeRegardGovernancer.m b/YuMi/Modules/YMMine/View/YUMISimpleManeRegardGovernancer.m new file mode 100644 index 00000000..c9fe8b33 --- /dev/null +++ b/YuMi/Modules/YMMine/View/YUMISimpleManeRegardGovernancer.m @@ -0,0 +1,490 @@ +// +// YMSimpleMineViewController.m +// YUMI +// +// Created by XY on 2023/2/20. +// + +#import "YUMISimpleManeRegardGovernancer.h" +#import +#import "MKJPopup.h" +#import "YUMIMacroUitls.h" +#import "YUMIHtmlUrl.h" +#import "UIButton+EnlargeTouchArea.h" +#import "StatsticsticsServingFacilitater.h" +#import "YUMIConstant.h" +#import "Api+Room.h" +#import "Api+RoomSetting.h" +#import "AccountAbstractStorage.h" +#import "ClientDisposition.h" +#import "NSMutableDictionary+Saft.h" +#import "DJDKMIMOMColor.h" +#import "ClientDisposition.h" +#import "YUMIManeProvisionMatrix.h" +#import "ConsumerAbstractMatrix.h" +#import "YUMIManeVacationerUnReadMatrix.h" +#import "CollectiveSpecificAbstractMatrix.h" +#import "ResidenceOriflammeAbstractMatrix.h" +#import "YUMIManeFuntionProvisionMatrix.h" +#import "RamparatetAbstractMatrix.h" +#import "FBCManeCeremony.h" +#import "YUMIManeExternalize.h" +#import "YUMIManeIntelligenceProvisionTabulationRegardElement.h" +#import "YUMISimpleManeIntelligencerRegard.h" +#import "YUMIResidenceOriflammeTabulationRegardElement.h" +#import "YUMIManeStrangeConsumerReindictRegard.h" +#import "YUMIManeProvisionTabulationRegardElement.h" +#import "YUMIManeInstanllingRegardGovernancer.h" +#import "YUMIManeConsumerAbstractRegardGovernancer.h" +#import "YUMIManeSimpleConsumerAbstractRegardGovernancer.h" +#import "YUMIManeReindictRegardGovernancer.h" +#import "YUMIIAPReindictRegardGovernancer.h" +#import "YUMITissueRegardGovernancer.h" +#import "YUMIChamberRegardGovernancer.h" +#import "YUMIManePretendUpwardsRegardGovernancer.h" +#import "YUMIPretendUpwardsProcurementRegardGovernancer.h" +#import "YUMIManeFanaticsRegardGovernancer.h" +#import "YUMIManeConsiderationRegardGovernancer.h" +#import "YUMIManeVacationerRegardGovernancer.h" +#import "YUMIManeFanaticsSquadRegardGovernancer.h" +#import "YUMIManeCollectiveRegardGovernancer.h" +#import "YUMIManeUnionRegardGovernancer.h" +#import "YUMIManeTerminalImpressionRegardGovernancer.h" +#import "YUMIManeAssembleChamberStatementRegardGovernancer.h" +#import "YUMIManeFeedbackRegardGovernancer.h" +#import "YUMIManeSimpleConsumerAbstractRegardGovernancer.h" +#import "YUMIIAPReindictRegardGovernancer.h" + +@interface YUMISimpleManeRegardGovernancer () + +@property (nonatomic, strong) UITableView *tableView; +@property (nonatomic, strong) YUMISimpleManeIntelligencerRegard *intelligenceerRegard; + +@property (nonatomic,strong) ConsumerAbstractMatrix *userInfo; +@property (nonatomic,strong) CollectiveSpecificAbstractMatrix *collectiveAbstract; +@property (nonatomic,strong) YUMIManeProvisionMatrix *guildProvisionMatrix; +@property (nonatomic, strong) NSMutableArray *oriflammeGarment; + +@property (nonatomic, strong) NSArray *sectionGarment0; +@property (nonatomic, strong) NSArray *sectionGarment1; + +@end + +@implementation YUMISimpleManeRegardGovernancer + +- (YUMIManeExternalize *)producePresimport { + return [[YUMIManeExternalize alloc] init];; +} + +- (BOOL)isVeiledNevObstacle { + return YES; +} + +- (UIStatusBarStyle)preferredStatusBarStyle { + return UIStatusBarStyleLightContent; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self produceUI]; +} + +- (void)viewWillAppear:(BOOL)animated { + [super viewWillAppear:animated]; + +} + +- (void)viewDidAppear:(BOOL)animated { + [super viewDidAppear:animated]; + [self.presimport getUserInfo]; +} + +- (void)produceUI { + self.tableView.tableHeaderView = self.intelligenceerRegard; + [self.view addSubview:self.tableView]; + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.view); + }]; +} + +- (void)unfoildMieyChamber { + NSString* roomUid = [NSString stringWithFormat:@"%ld", (long)self.userInfo.uid]; + [YUMIChamberRegardGovernancer unfoildChamber:roomUid viewController:self]; +} + +#pragma mark - FBCSimpleManeIntelligencerRegardRepresendtation + +- (void)intelligenceerRegardBtutonPerformanceGenre:(YUMIManeProvisionGenre)itemType { + switch (itemType) { + case YUMIManeProvisionGenre_Match_Relevance_Account: + + break; + case YUMIManeProvisionGenre_Foot_Print: + { + YUMIManeTerminalImpressionRegardGovernancer *vc = [[YUMIManeTerminalImpressionRegardGovernancer alloc] init]; + [self.navigationController pushViewController:vc animated:YES]; + } + break; + case YUMIManeProvisionGenre_Account: + { + YUMIIAPReindictRegardGovernancer *rechargeVC = [[YUMIIAPReindictRegardGovernancer alloc] init]; + [self.navigationController pushViewController:rechargeVC animated:YES]; + } + break; + case YUMIManeProvisionGenre_Personinfo: + { + + if ([ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + YUMIManeConsumerAbstractRegardGovernancer * infoVC = [[YUMIManeConsumerAbstractRegardGovernancer alloc] init]; + infoVC.uid = self.userInfo.uid; + [self.navigationController pushViewController:infoVC animated:YES]; + }else{ + YUMIManeSimpleConsumerAbstractRegardGovernancer * infoVC = [[YUMIManeSimpleConsumerAbstractRegardGovernancer alloc] init]; + infoVC.uid = self.userInfo.uid; + [self.navigationController pushViewController:infoVC animated:YES]; + } + } + break; + case YUMIManeProvisionGenre_My_Room: + { + [self unfoildMieyChamber]; + } + break; + case YUMIManeProvisionGenre_Collect_Room: + { + YUMIManeAssembleChamberStatementRegardGovernancer *collectVC = [[YUMIManeAssembleChamberStatementRegardGovernancer alloc] init]; + [self.navigationController pushViewController:collectVC animated:YES]; + } + break; + case YUMIManeProvisionGenre_My_Dressup: + { + YUMIManePretendUpwardsRegardGovernancer * dressUpVC = [[YUMIManePretendUpwardsRegardGovernancer alloc] init]; + [self.navigationController pushViewController:dressUpVC animated:YES]; + } + break; + case YUMIManeProvisionGenre_DressUp_Market: + { + YUMIPretendUpwardsProcurementRegardGovernancer *dressUpShopVc = [[YUMIPretendUpwardsProcurementRegardGovernancer alloc] init]; + [self.navigationController pushViewController:dressUpShopVc animated:YES]; + } + break; + case YUMIManeProvisionGenre_Fans_List: + { + YUMIManeFanaticsRegardGovernancer * fanaticsVewC = [[YUMIManeFanaticsRegardGovernancer alloc] init]; + [self.navigationController pushViewController:fanaticsVewC animated:YES]; + } + break; + case YUMIManeProvisionGenre_Attention_List: + { + YUMIManeConsiderationRegardGovernancer * considerationVewC = [[YUMIManeConsiderationRegardGovernancer alloc] init]; + [self.navigationController pushViewController:considerationVewC animated:YES]; + } + break; + case YUMIManeProvisionGenre_Visitor: + { + YUMIManeVacationerRegardGovernancer *visitorVC = [[YUMIManeVacationerRegardGovernancer alloc] init]; + [self.navigationController pushViewController:visitorVC animated:YES]; + } + break; + case YUMIManeProvisionGenre_FansTeam: { + YUMIManeFanaticsSquadRegardGovernancer *fansTeamVc = [[YUMIManeFanaticsSquadRegardGovernancer alloc] init]; + [self.navigationController pushViewController:fansTeamVc animated:YES]; + } + break; + case YUMIManeProvisionGenre_My_Guild: + { + if (self.collectiveAbstract.clan.elderUid.length > 0) { + YUMIManeCollectiveRegardGovernancer * clanVC = [[YUMIManeCollectiveRegardGovernancer alloc] init]; + clanVC.uid = [NSString stringWithFormat:@"%ld", self.userInfo.uid]; + [self.navigationController pushViewController:clanVC animated:YES]; + } else if(self.collectiveAbstract.hall.hallId.length > 0) { + YUMIManeUnionRegardGovernancer * guildVC = [[YUMIManeUnionRegardGovernancer alloc] init]; + guildVC.ownerUid = self.collectiveAbstract.hall.ownerUid; + guildVC.instituteId = self.collectiveAbstract.hall.hallId; + [self.navigationController pushViewController:guildVC animated:YES]; + }else{ + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_Simple_Mine_View_Controller_0")]; + } + } + break; + case -1: { + YUMITissueRegardGovernancer * webVewC = [[YUMITissueRegardGovernancer alloc] init]; + webVewC.url = URLWithType(kUserLevelURL); + [self.navigationController pushViewController:webVewC animated:YES]; + } + break; + case -2: { + YUMIManeFeedbackRegardGovernancer * feedbackVC = [[YUMIManeFeedbackRegardGovernancer alloc] init]; + [self.navigationController pushViewController:feedbackVC animated:YES]; + } + break; + case -3: { + YUMIManeInstanllingRegardGovernancer * settingVC = [[YUMIManeInstanllingRegardGovernancer alloc] init]; + settingVC.userInfo = self.userInfo; + [self.navigationController pushViewController:settingVC animated:YES]; + } + break; + default: + break; + } +} + +#pragma mark - FBCManeCeremony + +- (void)dwellEarnConsumerAbstractAccomplishment:(ConsumerAbstractMatrix *)userInfo { + + if (!userInfo.isBindPhone && [ClientDisposition partowardsiciptowardsionDisposition].iosMobileBind) { + return; + } + if (userInfo.nick == nil || userInfo.avatar == nil) { + return; + } + self.userInfo = userInfo; + self.intelligenceerRegard.userInfo = userInfo; + [self.tableView reloadData]; + + dispatch_group_t group =dispatch_group_create(); + + dispatch_queue_t queue =dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0); + dispatch_group_enter(group); + dispatch_group_async(group, queue, ^{ + [self.presimport acquireManeOriflammeSttowardsementAboutGroup:group]; + }); + + dispatch_group_enter(group); + dispatch_group_async(group, queue, ^{ + [self.presimport acquireCollectiveSpecificAbstractAboutGroup:group]; + }); + + dispatch_group_notify(group,dispatch_get_main_queue(), ^{ + [self.tableView reloadData]; + }); + +} + +- (void)dwellEarnCollectiveSpecificAbstractAccomplishment:(CollectiveSpecificAbstractMatrix *)collectiveAbstract WithGroup:(nonnull dispatch_group_t)group{ + self.collectiveAbstract = collectiveAbstract; + dispatch_group_leave(group); + [self.tableView reloadData]; +} + +- (void)dwellEarnCollectiveSpecificAbstractflunkAboutGroup:(dispatch_group_t)group { + dispatch_group_leave(group); +} + +- (void)dwellEarnsubjectiveOriflammeSttowardsementAccomplishment:(NSArray *)items WithGroup:(nonnull dispatch_group_t)group { + dispatch_group_leave(group); + [self.oriflammeGarment removeAllObjects]; + [self.oriflammeGarment addObjectsFromArray:items]; + [self.tableView reloadData]; + NSMutableArray *array = [NSMutableArray array]; + for (ResidenceOriflammeAbstractMatrix *item in self.oriflammeGarment) { + [array addObject:item.bannerId]; + } + NSString *trackName = [array componentsJoinedByString:@","]; + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventusercenter_banner_show eventAttributes:@{@"bannerId" : trackName}]; +} + +- (void)dwellEarnsubjectiveOriflammeSttowardsementFlunkAboutGroup:(dispatch_group_t)group { + dispatch_group_leave(group); +} + +#pragma mark - FBCResidenceBannerTabulationViweElementRepresendtation +- (void)fBCHoutilizeOriflammeTarbsultowardsionViweElement:(YUMIResidenceOriflammeTabulationRegardElement *)view didClickBanner:(ResidenceOriflammeAbstractMatrix *)info { + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventusercenter_banner_click eventAttributes:@{@"bannerId" : info.bannerId}]; + switch (info.skipType) { + case HomeBannerAbstractSkipGenre_Room: + { + if (info.skipUri.length > 0) { + [YUMIChamberRegardGovernancer unfoildChamber:info.skipUri viewController:self]; + } + } + break; + case HomeBannerAbstractSkipGenre_Web: + { + YUMITissueRegardGovernancer *vc = [[YUMITissueRegardGovernancer alloc]init]; + vc.url = info.skipUri; + [self.navigationController pushViewController:vc animated:YES]; + } + break; + default: + break; + } +} + + +#pragma mark - TableViewDelegate + +- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { + if (self.userInfo) { + return 3; + } + return 0; +} + +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + if (section == 0) { + return 0; + }else if (section == 1) { + return self.sectionGarment1.count; + }else if (section == 2) { + return 1; + } + return 0; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + if (indexPath.section == 0) { + return 64; + } else if (indexPath.section == 1) { + return 64; + } else { + return 80; + } +} + +- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { + if (section == 0) { + return 0.01; + } + return 13; +} + +- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { + return UIView.new; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section { + return 0.01; +} + +- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section { + return UIView.new; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + if (indexPath.section == 0) { + YUMIManeProvisionTabulationRegardElement *cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIManeProvisionTabulationRegardElement class])]; + YUMIManeProvisionMatrix *itemMatrix = self.sectionGarment0[indexPath.row]; + cell.itemMatrix = itemMatrix; + if (indexPath.row == 0) { + [cell setMonopolizeApex:YES bottom:NO]; + }else if (indexPath.row == self.sectionGarment0.count -1) { + [cell setMonopolizeApex:NO bottom:YES]; + }else{ + [cell setMonopolizeApex:NO bottom:NO]; + } + return cell; + }else if (indexPath.section == 1) { + YUMIManeProvisionTabulationRegardElement *cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIManeProvisionTabulationRegardElement class])]; + YUMIManeProvisionMatrix *itemMatrix = self.sectionGarment1[indexPath.row]; + cell.itemMatrix = itemMatrix; + if (indexPath.row == 0) { + [cell setMonopolizeApex:YES bottom:NO]; + }else if (indexPath.row == self.sectionGarment1.count -1) { + [cell setMonopolizeApex:NO bottom:YES]; + }else{ + [cell setMonopolizeApex:NO bottom:NO]; + } + return cell; + }else if (indexPath.section == 2) { + YUMIResidenceOriflammeTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIResidenceOriflammeTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIResidenceOriflammeTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIResidenceOriflammeTabulationRegardElement class])]; + } + cell.isManeRegardOriflamme = YES; + if (self.oriflammeGarment.count) { + cell.oriflammeStatement = self.oriflammeGarment; + } + cell.delegate = self; + cell.selectionStyle = UITableViewCellSelectionStyleNone; + return cell; + } + return UITableViewCell.new; +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + if (indexPath.section == 0) { + YUMIManeProvisionMatrix *item = self.sectionGarment0[indexPath.row]; + [self intelligenceerRegardBtutonPerformanceGenre:item.type]; + }else if (indexPath.section == 1) { + YUMIManeProvisionMatrix *item = self.sectionGarment1[indexPath.row]; + [self intelligenceerRegardBtutonPerformanceGenre:item.type]; + } +} + +#pragma mark - 懒加载 + +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.showsVerticalScrollIndicator = NO; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.backgroundColor = [UIColor colorWithWhite:0.95 alpha:1]; + _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + [_tableView registerClass:[YUMIManeProvisionTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIManeProvisionTabulationRegardElement class])]; + [_tableView registerClass:[YUMIResidenceOriflammeTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIResidenceOriflammeTabulationRegardElement class])]; + _tableView.contentInset = UIEdgeInsetsMake(0, 0, 100, 0); + } + return _tableView; +} + +- (YUMISimpleManeIntelligencerRegard *)intelligenceerRegard { + if (!_intelligenceerRegard) { + _intelligenceerRegard = [[YUMISimpleManeIntelligencerRegard alloc] init]; + _intelligenceerRegard.frame = CGRectMake(0, 0, self.view.bounds.size.width, 313); + _intelligenceerRegard.delegate = self; + } + return _intelligenceerRegard; +} + +- (NSArray *)sectionGarment0 { + if (!_sectionGarment0) { + YUMIManeProvisionMatrix *model0 = [[YUMIManeProvisionMatrix alloc] init]; + model0.itemImageName = @"mine_union"; + model0.itemName = YMLocalizedString(@"YUMI_Simple_Mine_View_Controller_1"); + model0.type = YUMIManeProvisionGenre_My_Guild; + + YUMIManeProvisionMatrix *model1 = [[YUMIManeProvisionMatrix alloc] init]; + model1.itemImageName = @"mine_dress"; + model1.itemName = YMLocalizedString(@"YUMI_Simple_Mine_View_Controller_2"); + model1.type = YUMIManeProvisionGenre_DressUp_Market; + + YUMIManeProvisionMatrix *model2 = [[YUMIManeProvisionMatrix alloc] init]; + model2.itemImageName = @"mine_fans"; + model2.itemName = YMLocalizedString(@"YUMI_Simple_Mine_View_Controller_3"); + model2.type = YUMIManeProvisionGenre_FansTeam; + _sectionGarment0 = @[model0, model1, model2]; + } + return _sectionGarment0; +} + +- (NSArray *)sectionGarment1 { + if (!_sectionGarment1) { + + + YUMIManeProvisionMatrix *model1 = [[YUMIManeProvisionMatrix alloc] init]; + model1.itemImageName = @"mine_feedback"; + model1.itemName = YMLocalizedString(@"YUMI_Simple_Mine_View_Controller_5"); + model1.type = -2; + + YUMIManeProvisionMatrix *model2 = [[YUMIManeProvisionMatrix alloc] init]; + model2.itemImageName = @"mine_setting"; + model2.itemName = YMLocalizedString(@"YUMI_Simple_Mine_View_Controller_6"); + model2.type = -3; + + _sectionGarment1 = @[ model1, model2]; + } + return _sectionGarment1; +} + +- (NSMutableArray *)oriflammeGarment { + if (!_oriflammeGarment) { + _oriflammeGarment = [NSMutableArray array]; + } + return _oriflammeGarment; +} + +@end diff --git a/YuMi/Modules/YMMonents/Api/Api+Monents.h b/YuMi/Modules/YMMonents/Api/Api+Monents.h new file mode 100644 index 00000000..1f611090 --- /dev/null +++ b/YuMi/Modules/YMMonents/Api/Api+Monents.h @@ -0,0 +1,57 @@ +// +// Api+Monents.h +// YUMI +// +// Created by YUMI on 2022/5/13. +// + +#import "Api.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface Api (Monents) ++ (void)separtowardsionsEncourageSttowardsement:(HttpRequestHelperCompletion)completion page:(NSString *)page pageSize:(NSString *)pageSize types:(NSString *)types; + ++ (void)separtowardsionsRecentlySttowardsement:(HttpRequestHelperCompletion)completion dynamicId:(NSString *)dynamicId pageSize:(NSString *)pageSize types:(NSString *)types; + ++ (void)separtowardsionsBWSttralongerSttowardsement:(HttpRequestHelperCompletion)completion dynamicId:(NSString *)dynamicId pageSize:(NSString *)pageSize types:(NSString *)types; + ++ (void)separtowardsionsCoactiveSttowardsement:(HttpRequestHelperCompletion)completion dynamicId:(NSString *)dynamicId pageSize:(NSString *)pageSize uid:(NSString *)uid; + ++ (void)separtowardsionsCoactiveDistinct:(HttpRequestHelperCompletion)complection uid:(NSString *)uid; + ++ (void)separtowardsionsMotifSttowardsement:(HttpRequestHelperCompletion)completion uid:(NSString *)uid page:(NSString *)page pageSize:(NSString *)pageSize worldTypeId:(NSString *)worldTypeId; + ++ (void)consumerPartowardsiciptowardsionSepartowardsions:(HttpRequestHelperCompletion)completion dynamicId:(NSString *)dynamicId uid:(NSString *)uid worldId:(NSString *)worldId shareUid:(NSString *)shareUid; + + ++ (void)separtowardsionsSimilar:(HttpRequestHelperCompletion)completion dynamicId:(NSString *)dynamicId uid:(NSString *)uid status:(NSString *)status likedUid:(NSString *)likedUid worldId:(NSString *)worldId; + ++ (void)separtowardsionsSpecific:(HttpRequestHelperCompletion)completion dynamicId:(NSString *)dynamicId worldId:(NSString *)worldId uid:(NSString *)uid; + ++ (void)monentSpecificCommon:(HttpRequestHelperCompletion)completion uid:(NSString *)uid dynamicId:(NSString *)dynamicId content:(NSString *)content; + ++ (void)replictowardsionSepartowardsionsSpecificCommon:(HttpRequestHelperCompletion)completion uid:(NSString *)uid dynamicId:(NSString *)dynamicId content:(NSString *)content commentId:(NSString *)commentId; + ++ (void)separtowardsionsJudgementSttowardsement:(HttpRequestHelperCompletion)completion dynamicId:(NSString *)dynamicId uid:(NSString *)uid pageSize:(NSString *)pageSize timestamp:(NSString *)timestamp; + ++ (void)separtowardsionsJudgementReplictowardsionSttowardsement:(HttpRequestHelperCompletion)completion dynamicId:(NSString *)dynamicId uid:(NSString *)uid pageSize:(NSString *)pageSize commentId:(NSString *)commentId timestamp:(NSString *)timestamp; + ++ (void)separtowardsionsMotifSttowardsement:(HttpRequestHelperCompletion)completion uid:(NSString *)uid type:(NSString *)type page:(NSString *)page; + ++ (void)separtowardsionsPublish:(HttpRequestHelperCompletion)completion uid:(NSString *)uid type:(NSString *)type worldId:(NSString *)worldId content:(NSString *)content resList:(NSArray *)resList; + ++ (void)separtowardsionsMotifRecentlySttowardsement:(HttpRequestHelperCompletion)completion uid:(NSString *)uid dynamicId:(NSString *)dynamicId types:(NSString *)types worldId:(NSString *)worldId pageSize:(NSString *)pageSize; + ++ (void)separtowardsionsMotifEncourageSttowardsement:(HttpRequestHelperCompletion)completion uid:(NSString *)uid dynamicId:(NSString *)dynamicId types:(NSString *)types worldId:(NSString *)worldId pageSize:(NSString *)pageSize; + ++ (void)separtowardsionsMotifSpecificAbstract:(HttpRequestHelperCompletion)completion worldId:(NSString *)worldId uid:(NSString *)uid; + ++ (void)moentsMotifSttowardsement:(HttpRequestHelperCompletion)completion uid:(NSString *)uid page:(NSString *)page pageSize:(NSString *)pageSize worldTypeId:(NSString *)worldTypeId; + ++ (void)separtowardsionsRepresenttowardsion:(HttpRequestHelperCompletion)completion uid:(NSString *)uid dynamicId:(NSString *)dynamicId worldId:(NSString *)worldId; + ++ (void)separtowardsionsUnLireComputtowardsion:(HttpRequestHelperCompletion)completion uid:(NSString *)uid; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMonents/Api/Api+Monents.m b/YuMi/Modules/YMMonents/Api/Api+Monents.m new file mode 100644 index 00000000..0ae3a2b7 --- /dev/null +++ b/YuMi/Modules/YMMonents/Api/Api+Monents.m @@ -0,0 +1,162 @@ +// +// Api+Monents.m +// YUMI +// +// Created by YUMI on 2022/5/13. +// + +#import "Api+Monents.h" +#import "NSObject+MJExtension.h" +#import "NSMutableDictionary+Saft.h" +#import +@implementation Api (Monents) + ++ (void)separtowardsionsEncourageSttowardsement:(HttpRequestHelperCompletion)completion page:(NSString *)page pageSize:(NSString *)pageSize types:(NSString *)types { + NSString * fang = [NSString stringFromBase64String:@"ZHluYW1pYy9zcXVhcmUvcmVjb21tZW5kRHluYW1pY3M="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, page, pageSize, types, nil]; +} + ++ (void)separtowardsionsRecentlySttowardsement:(HttpRequestHelperCompletion)completion dynamicId:(NSString *)dynamicId pageSize:(NSString *)pageSize types:(NSString *)types { + NSString * fang = [NSString stringFromBase64String:@"ZHluYW1pYy9zcXVhcmUvbGF0ZXN0RHluYW1pY3M="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, dynamicId, pageSize, types, nil]; +} + ++ (void)separtowardsionsBWSttralongerSttowardsement:(HttpRequestHelperCompletion)completion dynamicId:(NSString *)dynamicId pageSize:(NSString *)pageSize types:(NSString *)types { + NSString * fang = [NSString stringFromBase64String:@"ZHluYW1pYy9zcXVhcmUvZm9sbG93ZXJEeW5hbWljcw=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, dynamicId, pageSize, types, nil]; +} + ++ (void)separtowardsionsCoactiveSttowardsement:(HttpRequestHelperCompletion)completion dynamicId:(NSString *)dynamicId pageSize:(NSString *)pageSize uid:(NSString *)uid { + NSString * fang = [NSString stringFromBase64String:@"aW50ZXJhY3RpdmUvbGlzdA=="]; + NSMutableDictionary * dic = [NSMutableDictionary dictionary]; + [dic secureSetGroal:dynamicId forKey:@"id"]; + [dic secureSetGroal:pageSize forKey:@"pageSize"]; + [dic secureSetGroal:uid forKey:@"uid"]; + [HttpRequestFacilitater request:fang method:HttpRequestHelperMethodPOST params:dic completion:completion]; +} + ++ (void)separtowardsionsCoactiveDistinct:(HttpRequestHelperCompletion)complection uid:(NSString *)uid { + NSString * fang = [NSString stringFromBase64String:@"aW50ZXJhY3RpdmUvY2xlYXI="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:complection, __FUNCTION__, uid, nil]; +} + ++ (void)separtowardsionsMotifSttowardsement:(HttpRequestHelperCompletion)completion uid:(NSString *)uid page:(NSString *)page pageSize:(NSString *)pageSize worldTypeId:(NSString *)worldTypeId { + NSString * fang = [NSString stringFromBase64String:@"d29ybGQvbGlzdA=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, uid, page, pageSize, worldTypeId, nil]; +} + ++ (void)consumerPartowardsiciptowardsionSepartowardsions:(HttpRequestHelperCompletion)completion dynamicId:(NSString *)dynamicId uid:(NSString *)uid worldId:(NSString *)worldId shareUid:(NSString *)shareUid { + NSString * fang = [NSString stringFromBase64String:@"ZHluYW1pYy9zaGFyZQ=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, dynamicId, uid, worldId, shareUid, nil]; +} + ++ (void)separtowardsionsSimilar:(HttpRequestHelperCompletion)completion dynamicId:(NSString *)dynamicId uid:(NSString *)uid status:(NSString *)status likedUid:(NSString *)likedUid worldId:(NSString *)worldId { + NSString * fang = [NSString stringFromBase64String:@"ZHluYW1pYy9saWtl"]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, dynamicId, uid, status, likedUid, worldId, nil]; +} + ++ (void)separtowardsionsSpecific:(HttpRequestHelperCompletion)completion dynamicId:(NSString *)dynamicId worldId:(NSString *)worldId uid:(NSString *)uid { + NSString * fang = [NSString stringFromBase64String:@"ZHluYW1pYy9kZXRhaWw="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, dynamicId, worldId, uid, nil]; +} + ++ (void)monentSpecificCommon:(HttpRequestHelperCompletion)completion uid:(NSString *)uid dynamicId:(NSString *)dynamicId content:(NSString *)content { + NSString * fang = [NSString stringFromBase64String:@"ZHluYW1pYy9jb21tZW50L3B1Ymxpc2g="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, uid, dynamicId, content, nil]; +} + ++ (void)replictowardsionSepartowardsionsSpecificCommon:(HttpRequestHelperCompletion)completion uid:(NSString *)uid dynamicId:(NSString *)dynamicId content:(NSString *)content commentId:(NSString *)commentId { + NSString * fang = [NSString stringFromBase64String:@"ZHluYW1pYy9jb21tZW50L3JlcGx5"]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, uid, dynamicId, content, commentId, nil]; +} + + ++ (void)separtowardsionsJudgementSttowardsement:(HttpRequestHelperCompletion)completion dynamicId:(NSString *)dynamicId uid:(NSString *)uid pageSize:(NSString *)pageSize timestamp:(NSString *)timestamp { + NSString * fang = [NSString stringFromBase64String:@"ZHluYW1pYy9jb21tZW50L2xpc3Q="]; + NSMutableDictionary * dic = [NSMutableDictionary dictionary]; + [dic secureSetGroal:dynamicId forKey:@"dynamicId"]; + [dic secureSetGroal:uid forKey:@"uid"]; + [dic secureSetGroal:pageSize forKey:@"pageSize"]; + if (timestamp.length > 0) { + [dic secureSetGroal:timestamp forKey:@"timestamp"]; + } + [HttpRequestFacilitater request:fang method:HttpRequestHelperMethodGET params:dic completion:completion]; +} + ++ (void)separtowardsionsJudgementReplictowardsionSttowardsement:(HttpRequestHelperCompletion)completion dynamicId:(NSString *)dynamicId uid:(NSString *)uid pageSize:(NSString *)pageSize commentId:(NSString *)commentId timestamp:(NSString *)timestamp { + NSString * fang = [NSString stringFromBase64String:@"ZHluYW1pYy9jb21tZW50L3JlcGx5L2xpc3Q="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, dynamicId, uid, pageSize, commentId, timestamp, nil]; +} + + ++ (void)separtowardsionsMotifSttowardsement:(HttpRequestHelperCompletion)completion uid:(NSString *)uid type:(NSString *)type page:(NSString *)page { + NSString * fang = [NSString stringFromBase64String:@"ZHluYW1pYy9zcXVhcmUvd29ybGQ="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, uid, type, page, nil]; +} + + ++ (void)separtowardsionsPublish:(HttpRequestHelperCompletion)completion uid:(NSString *)uid type:(NSString *)type worldId:(NSString *)worldId content:(NSString *)content resList:(NSArray *)resList { + NSString * fang = [NSString stringFromBase64String:@"ZHluYW1pYy9zcXVhcmUvcHVibGlzaA=="]; + NSMutableDictionary * dic = [NSMutableDictionary dictionary]; + [dic secureSetGroal:uid forKey:@"uid"]; + [dic secureSetGroal:type forKey:@"type"]; + + [dic secureSetGroal:content.length > 0 ? content : @"" forKey:@"content"]; + if (worldId.length > 0) { + [dic secureSetGroal:worldId forKey:@"worldId"]; + } + if (resList.count > 0) { + [dic secureSetGroal:resList forKey:@"resList"]; + } + + [HttpRequestFacilitater postCommunictowardsionSolitaire:fang params:dic.toJSONBWSttr completion:completion]; +} + + ++ (void)separtowardsionsMotifRecentlySttowardsement:(HttpRequestHelperCompletion)completion uid:(NSString *)uid dynamicId:(NSString *)dynamicId types:(NSString *)types worldId:(NSString *)worldId pageSize:(NSString *)pageSize { + NSMutableDictionary * dic = [NSMutableDictionary dictionary]; + [dic secureSetGroal:uid forKey:@"uid"]; + [dic secureSetGroal:types forKey:@"types"]; + [dic secureSetGroal:worldId forKey:@"worldId"]; + [dic secureSetGroal:pageSize forKey:@"pageSize"]; + if (dynamicId.length > 0) { + [dic secureSetGroal:dynamicId forKey:@"dynamicId"]; + } + NSString * fang = [NSString stringFromBase64String:@"ZHluYW1pYy9sYXRlc3RMaXN0"]; + [HttpRequestFacilitater request:fang method:HttpRequestHelperMethodPOST params:dic completion:completion]; +} + ++ (void)separtowardsionsMotifEncourageSttowardsement:(HttpRequestHelperCompletion)completion uid:(NSString *)uid dynamicId:(NSString *)dynamicId types:(NSString *)types worldId:(NSString *)worldId pageSize:(NSString *)pageSize { + NSMutableDictionary * dic = [NSMutableDictionary dictionary]; + [dic secureSetGroal:uid forKey:@"uid"]; + [dic secureSetGroal:types forKey:@"types"]; + [dic secureSetGroal:worldId forKey:@"worldId"]; + [dic secureSetGroal:pageSize forKey:@"pageSize"]; + if (dynamicId.length > 0) { + [dic secureSetGroal:dynamicId forKey:@"dynamicId"]; + } + NSString * fang = [NSString stringFromBase64String:@"ZHluYW1pYy9saXN0VjI="]; + [HttpRequestFacilitater request:fang method:HttpRequestHelperMethodPOST params:dic completion:completion]; +} + ++ (void)separtowardsionsMotifSpecificAbstract:(HttpRequestHelperCompletion)completion worldId:(NSString *)worldId uid:(NSString *)uid{ + NSString * fang = [NSString stringFromBase64String:@"d29ybGQvZGV0YWls"]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__,worldId, uid, nil]; +} + ++ (void)moentsMotifSttowardsement:(HttpRequestHelperCompletion)completion uid:(NSString *)uid page:(NSString *)page pageSize:(NSString *)pageSize worldTypeId:(NSString *)worldTypeId { + NSString * fang = [NSString stringFromBase64String:@"d29ybGQvbGlzdA=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, uid, page, pageSize, worldTypeId, nil]; +} + ++ (void)separtowardsionsRepresenttowardsion:(HttpRequestHelperCompletion)completion uid:(NSString *)uid dynamicId:(NSString *)dynamicId worldId:(NSString *)worldId { + NSString * fang = [NSString stringFromBase64String:@"ZHluYW1pYy9kZWxldGU="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, uid, dynamicId, worldId, nil]; +} + ++ (void)separtowardsionsUnLireComputtowardsion:(HttpRequestHelperCompletion)completion uid:(NSString *)uid { + NSString * fang = [NSString stringFromBase64String:@"aW50ZXJhY3RpdmUvdW5yZWFkQ291bnQ="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, uid, nil]; +} + +@end diff --git a/YuMi/Modules/YMMonents/Model/SeparationsAbstractMatrix.h b/YuMi/Modules/YMMonents/Model/SeparationsAbstractMatrix.h new file mode 100644 index 00000000..54347136 --- /dev/null +++ b/YuMi/Modules/YMMonents/Model/SeparationsAbstractMatrix.h @@ -0,0 +1,64 @@ +// +// SeparationsAbstractMatrix.h +// YUMI +// +// Created by YUMI on 2022/5/11. +// + +#import +#import "YUMINNNN.h" +#import "ConsumerVipAbstractVo.h" +NS_ASSUME_NONNULL_BEGIN +typedef NS_ENUM(NSInteger, MonentsContentGenre) { + + MonentsContentGenre_Text = 0, + + MonentsContentGenre_Picture = 2 +}; +@class SeparationsPicAbstractMatrix; +@interface SeparationsAbstractMatrix : NSObject +@property (nonatomic,assign) MonentsContentGenre type; +@property (nonatomic,copy) NSString *uid; +@property (nonatomic,copy) NSString *nick; +@property (nonatomic,assign) NSInteger defUser; +@property (nonatomic,assign) BOOL newUser; +@property (nonatomic,assign) GenderGenre gender; +@property (nonatomic,copy) NSString *avatar; +@property (nonatomic,assign) int age; +@property (nonatomic,strong) NSString *content; +@property (nonatomic,copy) NSString *likeCount; +@property (nonatomic, assign) BOOL isLike; +@property (nonatomic,copy) NSString *commentCount; +@property (nonatomic,copy) NSString *publishTime; +@property (nonatomic,strong) NSString *experLevelPic; +@property (nonatomic,strong) NSString *charmLevelPic; +@property (nonatomic,assign) BOOL squareTop; +@property (nonatomic, strong) ConsumerVipAbstractVo *userVipInfoVO; +@property (nonatomic,copy) NSArray *dynamicResList; +@property (nonatomic,copy) NSString *headwearPic; +@property (nonatomic,copy) NSString *headwearEffect; +@property (nonatomic,copy) NSString *inRoomUid; +@property (nonatomic,copy) NSArray *labelList; +@property (nonatomic, copy) NSString *nameplateWord; +@property (nonatomic, copy) NSString *nameplatePic; +@property (nonatomic, assign) long worldId; +@property (nonatomic, copy) NSString *worldName; +@property (nonatomic,copy) NSString *dynamicId; +@property (nonatomic,assign) BOOL isFold; +@property (nonatomic,assign) CGFloat rowHeight; +@property (nonatomic,assign) CGFloat picHeight; +@property (nonatomic,assign) CGFloat contentHeight; +@property (nonatomic,strong) NSMutableAttributedString *contentAttribute; +@property (nonatomic,strong, nullable) NSMutableAttributedString *foldAttribute; +@property (nonatomic, assign) NSInteger numberOfText; +@end + +@interface SeparationsPicAbstractMatrix : NSObject +@property (nonatomic,copy) NSString * resUrl; +@property (nonatomic,copy) NSString *format; +@property (nonatomic,assign) CGFloat width; +@property (nonatomic,assign) CGFloat height; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMonents/Model/SeparationsAbstractMatrix.m b/YuMi/Modules/YMMonents/Model/SeparationsAbstractMatrix.m new file mode 100644 index 00000000..ddebd6b4 --- /dev/null +++ b/YuMi/Modules/YMMonents/Model/SeparationsAbstractMatrix.m @@ -0,0 +1,28 @@ +// +// SeparationsAbstractMatrix.m +// YUMI +// +// Created by YUMI on 2022/5/11. +// + +#import "SeparationsAbstractMatrix.h" +#import "NSString+Utils.h" + +@implementation SeparationsAbstractMatrix +- (instancetype)init { + if (self = [super init]) { + self.isFold = YES; + } + return self; +} + ++ (NSDictionary *)objectCtowardsegorizeInGarment { + return @{@"dynamicResList":SeparationsPicAbstractMatrix.class}; +} +@end + + +@implementation SeparationsPicAbstractMatrix + + +@end diff --git a/YuMi/Modules/YMMonents/Model/SeparationsCoactiveMatrix.h b/YuMi/Modules/YMMonents/Model/SeparationsCoactiveMatrix.h new file mode 100644 index 00000000..52828ae9 --- /dev/null +++ b/YuMi/Modules/YMMonents/Model/SeparationsCoactiveMatrix.h @@ -0,0 +1,46 @@ +// +// SeparationsCoactiveMatrix.h +// YUMI +// +// Created by YUMI on 2022/5/19. +// + +#import +#import "SeparationsAbstractMatrix.h" +#import "YUMINNNN.h" +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSInteger, MonentsInteractiveActionGenre) { + + MonentsInteractiveActionGenre_Comment = 1, + + MonentsInteractiveActionGenre_Reply, + + MonentsInteractiveActionGenre_Like, + + MonentsInteractiveActionGenre_Share +}; + +@interface SeparationsCoactiveMatrix : NSObject +@property (nonatomic,assign) NSInteger targetId; +@property (nonatomic,assign) MonentsContentGenre type; +@property (nonatomic,copy) NSString *content; +@property (nonatomic,assign) GenderGenre gender; +@property (nonatomic,assign) NSInteger age; +@property (nonatomic,copy) NSString *dynamicId; +@property (nonatomic,copy) NSString *msgId; +@property (nonatomic,assign) NSInteger uid; +@property (nonatomic,assign) MonentsInteractiveActionGenre actionType; +@property (nonatomic,copy) NSString *message; +@property (nonatomic,assign) NSInteger msgType; +@property (nonatomic,copy) NSString *nick; +@property (nonatomic,copy) NSString *avatar; +@property (nonatomic,copy) NSString *targetUid; +@property (nonatomic,copy) NSString *publishTime; +@property (nonatomic,copy) NSString *dynamicUid; +@property (nonatomic,copy) NSString *worldId; +@property (nonatomic,copy) NSString *worldName; +@property (nonatomic,strong) SeparationsPicAbstractMatrix *dynamicRes; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMonents/Model/SeparationsCoactiveMatrix.m b/YuMi/Modules/YMMonents/Model/SeparationsCoactiveMatrix.m new file mode 100644 index 00000000..780d73bf --- /dev/null +++ b/YuMi/Modules/YMMonents/Model/SeparationsCoactiveMatrix.m @@ -0,0 +1,12 @@ +// +// SeparationsCoactiveMatrix.m +// YUMI +// +// Created by YUMI on 2022/5/19. +// + +#import "SeparationsCoactiveMatrix.h" + +@implementation SeparationsCoactiveMatrix + +@end diff --git a/YuMi/Modules/YMMonents/Model/SeparationsJudgementMatrix.h b/YuMi/Modules/YMMonents/Model/SeparationsJudgementMatrix.h new file mode 100644 index 00000000..785e9986 --- /dev/null +++ b/YuMi/Modules/YMMonents/Model/SeparationsJudgementMatrix.h @@ -0,0 +1,30 @@ +// +// SeparationsJudgementMatrix.h +// YUMI +// +// Created by YUMI on 2022/6/22. +// + +#import +#import "SeparationsJudgementReplicationMatrix.h" +NS_ASSUME_NONNULL_BEGIN +@interface SeparationsJudgementMatrix : NSObject +@property (nonatomic,assign) BOOL isReloadHeight; +@property (nonatomic,assign) CGFloat commentRowHeight; +@property (nonatomic,copy) NSString *nick; +@property (nonatomic,copy) NSString *avatar; +@property (nonatomic,copy) NSString *uid; +@property (nonatomic,copy) NSString *content; +@property (nonatomic, copy) NSString *publishTime; +@property (nonatomic, copy) NSString *commentId; +@property (nonatomic,strong) SeparationsJudgementReplicationMatrix *replyInfo; +@property (nonatomic, assign) BOOL landLordFlag; +@end + + +@interface SeparationsJudgementStatementMatrix : NSObject +@property (nonatomic,strong) NSArray *commentList; +@property (nonatomic,copy) NSString *nextTimestamp; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMonents/Model/SeparationsJudgementMatrix.m b/YuMi/Modules/YMMonents/Model/SeparationsJudgementMatrix.m new file mode 100644 index 00000000..ebc20c4f --- /dev/null +++ b/YuMi/Modules/YMMonents/Model/SeparationsJudgementMatrix.m @@ -0,0 +1,22 @@ +// +// SeparationsJudgementMatrix.m +// YUMI +// +// Created by YUMI on 2022/6/22. +// + +#import "SeparationsJudgementMatrix.h" + +@implementation SeparationsJudgementMatrix + + +@end + + +@implementation SeparationsJudgementStatementMatrix + ++ (NSDictionary *)objectCtowardsegorizeInGarment { + return @{@"commentList": SeparationsJudgementMatrix.class}; +} + +@end diff --git a/YuMi/Modules/YMMonents/Model/SeparationsJudgementReplicationMatrix.h b/YuMi/Modules/YMMonents/Model/SeparationsJudgementReplicationMatrix.h new file mode 100644 index 00000000..19dfd118 --- /dev/null +++ b/YuMi/Modules/YMMonents/Model/SeparationsJudgementReplicationMatrix.h @@ -0,0 +1,37 @@ +// +// SeparationsJudgementReplicationMatrix.h +// YUMI +// +// Created by YUMI on 2022/6/22. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class SeparationsReplicationMatrix; +@interface SeparationsJudgementReplicationMatrix : NSObject +@property (nonatomic, strong) NSMutableArray *replyList; +@property (nonatomic, assign) NSInteger leftCount; +@property (nonatomic, copy) NSString *nextTimestamp; +@end + + +@interface SeparationsReplicationMatrix : NSObject +@property (nonatomic,assign) CGFloat replyRowHeight; +@property (nonatomic,copy) NSString *avatar; +@property (nonatomic,copy) NSString *uid; +@property (nonatomic,copy) NSString *nick; +@property (nonatomic,copy) NSString *toCommentId; +@property (nonatomic,copy) NSString *toUid; +@property (nonatomic,copy) NSString *toNick; +@property (nonatomic,copy) NSString *content; +@property (nonatomic,copy) NSString *publishTime; +@property (nonatomic,assign) BOOL landLordFlag; +@property (nonatomic,copy) NSString *replyId; +@property (nonatomic,strong) NSAttributedString *contentAttribute; + +- (void)produceStowardsisfperformanceIdiosyncracy; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMonents/Model/SeparationsJudgementReplicationMatrix.m b/YuMi/Modules/YMMonents/Model/SeparationsJudgementReplicationMatrix.m new file mode 100644 index 00000000..462b7230 --- /dev/null +++ b/YuMi/Modules/YMMonents/Model/SeparationsJudgementReplicationMatrix.m @@ -0,0 +1,34 @@ +// +// SeparationsJudgementReplicationMatrix.m +// YUMI +// +// Created by YUMI on 2022/6/22. +// + +#import "SeparationsJudgementReplicationMatrix.h" +#import "DJDKMIMOMColor.h" +#import "MHTSpiritFacilitater.h" + +@implementation SeparationsJudgementReplicationMatrix ++ (NSDictionary *)objectCtowardsegorizeInGarment { + return @{@"replyList": SeparationsReplicationMatrix.class}; +} +@end + + +@implementation SeparationsReplicationMatrix +- (void)produceStowardsisfperformanceIdiosyncracy { + if (self.contentAttribute == nil) { + MHTSpiritFacilitater *faceManager = [MHTSpiritFacilitater partowardsiciptowardsiondSenintrtowardsemporalntFacilittowardseer]; + NSString * toNick = [NSString stringWithFormat:@"@%@", _toNick]; + NSString *title = [NSString stringWithFormat:@"%@%@",toNick, _content.length > 0 ? _content : @""]; + NSMutableAttributedString * attribute = [faceManager towardstributedBWSttrByEssay:title font:[UIFont systemFontOfSize:15]]; + if ([attribute.string containsString:toNick]) { + NSRange range = [attribute.string rangeOfString:toNick]; + [attribute addAttribute:NSForegroundColorAttributeName value:[DJDKMIMOMColor aplictowardsionMainPrettify] range:range]; + } + self.contentAttribute = attribute; + } +} + +@end diff --git a/YuMi/Modules/YMMonents/Model/SeparationsMotifMatrix.h b/YuMi/Modules/YMMonents/Model/SeparationsMotifMatrix.h new file mode 100644 index 00000000..cadd2f68 --- /dev/null +++ b/YuMi/Modules/YMMonents/Model/SeparationsMotifMatrix.h @@ -0,0 +1,23 @@ +// +// SeparationsMotifMatrix.h +// YUMI +// +// Created by YUMI on 2022/5/18. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface SeparationsMotifMatrix : NSObject +@property (nonatomic, copy) NSString *ownerUid; +@property (nonatomic, copy) NSString *name; +@property (nonatomic, copy) NSString *tId; +@property (nonatomic, copy) NSString *icon; +@property (nonatomic, copy) NSString *desc; +@property (nonatomic, copy) NSString *worldId; +@property (nonatomic, copy) NSString *worldName; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMonents/Model/SeparationsMotifMatrix.m b/YuMi/Modules/YMMonents/Model/SeparationsMotifMatrix.m new file mode 100644 index 00000000..8f40a41b --- /dev/null +++ b/YuMi/Modules/YMMonents/Model/SeparationsMotifMatrix.m @@ -0,0 +1,16 @@ +// +// SeparationsMotifMatrix.m +// YUMI +// +// Created by YUMI on 2022/5/18. +// + +#import "SeparationsMotifMatrix.h" + +@implementation SeparationsMotifMatrix + ++ (NSDictionary *)replacedDigitalByvirtueofMaintainertyConstitute { + return @{@"tId":@"id", @"desc":@"description"}; +} + +@end diff --git a/YuMi/Modules/YMMonents/Model/SeparationsPicResAbstract.h b/YuMi/Modules/YMMonents/Model/SeparationsPicResAbstract.h new file mode 100644 index 00000000..ff364897 --- /dev/null +++ b/YuMi/Modules/YMMonents/Model/SeparationsPicResAbstract.h @@ -0,0 +1,20 @@ +// +// SeparationsPicResAbstract.h +// YUMI +// +// Created by YUMI on 2022/8/16. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface SeparationsPicResAbstract : NSObject +@property (nonatomic, copy) NSString *key; +@property (nonatomic, copy) NSString *path; +@property (nonatomic, copy) NSString *format; +@property (nonatomic, assign) CGFloat w; +@property (nonatomic, assign) CGFloat h; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMonents/Model/SeparationsPicResAbstract.m b/YuMi/Modules/YMMonents/Model/SeparationsPicResAbstract.m new file mode 100644 index 00000000..1320ed02 --- /dev/null +++ b/YuMi/Modules/YMMonents/Model/SeparationsPicResAbstract.m @@ -0,0 +1,12 @@ +// +// SeparationsPicResAbstract.m +// YUMI +// +// Created by YUMI on 2022/8/16. +// + +#import "SeparationsPicResAbstract.h" + +@implementation SeparationsPicResAbstract + +@end diff --git a/YuMi/Modules/YMMonents/Model/SeparationsStatementAbstractMatrix.h b/YuMi/Modules/YMMonents/Model/SeparationsStatementAbstractMatrix.h new file mode 100644 index 00000000..91741882 --- /dev/null +++ b/YuMi/Modules/YMMonents/Model/SeparationsStatementAbstractMatrix.h @@ -0,0 +1,17 @@ +// +// SeparationsStatementAbstractMatrix.h +// YUMI +// +// Created by YUMI on 2022/5/18. +// + +#import +#import "SeparationsAbstractMatrix.h" +NS_ASSUME_NONNULL_BEGIN + +@interface SeparationsStatementAbstractMatrix : NSObject +@property (nonatomic,strong) NSArray *dynamicList; +@property (nonatomic,copy) NSString *nextDynamicId; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMonents/Model/SeparationsStatementAbstractMatrix.m b/YuMi/Modules/YMMonents/Model/SeparationsStatementAbstractMatrix.m new file mode 100644 index 00000000..7eef48ca --- /dev/null +++ b/YuMi/Modules/YMMonents/Model/SeparationsStatementAbstractMatrix.m @@ -0,0 +1,16 @@ +// +// SeparationsStatementAbstractMatrix.m +// YUMI +// +// Created by YUMI on 2022/5/18. +// + +#import "SeparationsStatementAbstractMatrix.h" + +@implementation SeparationsStatementAbstractMatrix + ++ (NSDictionary *)objectCtowardsegorizeInGarment { + return @{@"dynamicList":[SeparationsAbstractMatrix class]}; +} + +@end diff --git a/YuMi/Modules/YMMonents/Model/SeparationsUnReadMatrix.h b/YuMi/Modules/YMMonents/Model/SeparationsUnReadMatrix.h new file mode 100644 index 00000000..0792a0bf --- /dev/null +++ b/YuMi/Modules/YMMonents/Model/SeparationsUnReadMatrix.h @@ -0,0 +1,20 @@ +// +// SeparationsUnReadMatrix.h +// YUMI +// +// Created by YUMI on 2022/5/19. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface SeparationsUnReadMatrix : NSObject +@property (nonatomic, assign) NSInteger total; +@property (nonatomic, assign) NSInteger comment; +@property (nonatomic, assign) NSInteger share; +@property (nonatomic, assign) NSInteger reply; +@property (nonatomic, assign) NSInteger like; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMonents/Model/SeparationsUnReadMatrix.m b/YuMi/Modules/YMMonents/Model/SeparationsUnReadMatrix.m new file mode 100644 index 00000000..ee8ccd9c --- /dev/null +++ b/YuMi/Modules/YMMonents/Model/SeparationsUnReadMatrix.m @@ -0,0 +1,12 @@ +// +// SeparationsUnReadMatrix.m +// YUMI +// +// Created by YUMI on 2022/5/19. +// + +#import "SeparationsUnReadMatrix.h" + +@implementation SeparationsUnReadMatrix + +@end diff --git a/YuMi/Modules/YMMonents/Presenter/YUMISeparationManeExternalizer.h b/YuMi/Modules/YMMonents/Presenter/YUMISeparationManeExternalizer.h new file mode 100644 index 00000000..08ae7ce9 --- /dev/null +++ b/YuMi/Modules/YMMonents/Presenter/YUMISeparationManeExternalizer.h @@ -0,0 +1,18 @@ +// +// YMMonentMinePresenter.h +// YUMI +// +// Created by YUMI on 2022/8/18. +// + +#import "BaseMvpExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMISeparationManeExternalizer : BaseMvpExternalizer +- (void)similarMonent:(NSString *)dynamicId status:(BOOL)status likedUid:(NSString *)likedUid worldId:(NSString *)worldId; + +- (void)representtowardsionSepartowardsions:(NSString *)dynamicId worldId:(NSString *)worldId; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMonents/Presenter/YUMISeparationManeExternalizer.m b/YuMi/Modules/YMMonents/Presenter/YUMISeparationManeExternalizer.m new file mode 100644 index 00000000..c9e58133 --- /dev/null +++ b/YuMi/Modules/YMMonents/Presenter/YUMISeparationManeExternalizer.m @@ -0,0 +1,30 @@ +// +// YMMonentMinePresenter.m +// YUMI +// +// Created by YUMI on 2022/8/18. +// + +#import "YUMISeparationManeExternalizer.h" +#import "Api+Monents.h" +#import "FBCSeparationsManeCeremony.h" +#import "AccountAbstractStorage.h" + +@implementation YUMISeparationManeExternalizer + + +- (void)similarMonent:(NSString *)dynamicId status:(BOOL)status likedUid:(NSString *)likedUid worldId:(NSString *)worldId { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NSString * statusStr = status ? @"1" : @"0"; + [Api separtowardsionsSimilar:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] similarSepartowardsionsAccomplishment:dynamicId status:status]; + } EvidenceChambering:YES] dynamicId:dynamicId uid:uid status:statusStr likedUid:likedUid worldId:worldId]; +} + +- (void)representtowardsionSepartowardsions:(NSString *)dynamicId worldId:(NSString *)worldId { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [Api separtowardsionsRepresenttowardsion:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + [[self acquireRegard] representtowardsionSepartowardsionsAccomplishment:dynamicId]; + } uid:uid dynamicId:dynamicId worldId:worldId]; +} +@end diff --git a/YuMi/Modules/YMMonents/Presenter/YUMISeparationSpecificExternalizer.h b/YuMi/Modules/YMMonents/Presenter/YUMISeparationSpecificExternalizer.h new file mode 100644 index 00000000..79e3aef4 --- /dev/null +++ b/YuMi/Modules/YMMonents/Presenter/YUMISeparationSpecificExternalizer.h @@ -0,0 +1,27 @@ +// +// YMMonentDetailPresenter.h +// YUMI +// +// Created by YUMI on 2022/6/23. +// + +#import "BaseMvpExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMISeparationSpecificExternalizer : BaseMvpExternalizer +- (void)acquireSepartowardsionsSpecific:(NSString *)dynamicId; + +- (void)acquireSepartowardsionsJudgementSttowardsement:(NSString *)dynamicId timestamp:(NSString *)timestamp status:(int)state; + +- (void)acquireSepartowardsionsJudgementReplictowardsionSttowardsement:(NSString *)dynamicId commentId:(NSString *)commentId timestamp:(NSString *)timestamp; + +- (void)similarMonent:(NSString *)dynamicId status:(BOOL)status likedUid:(NSString *)likedUid worldId:(NSString *)worldId; + +- (void)representtowardsionSepartowardsions:(NSString *)dynamicId worldId:(NSString *)worldId; +- (void)reprohibitiportCommon:(NSString *)commonId dynamicId:(NSString *)dynamicId content:(NSString *)content; + +- (void)commontSepartowardsions:(NSString *)dynamicId content:(NSString *)content; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMonents/Presenter/YUMISeparationSpecificExternalizer.m b/YuMi/Modules/YMMonents/Presenter/YUMISeparationSpecificExternalizer.m new file mode 100644 index 00000000..e5e822b7 --- /dev/null +++ b/YuMi/Modules/YMMonents/Presenter/YUMISeparationSpecificExternalizer.m @@ -0,0 +1,75 @@ +// +// YMMonentDetailPresenter.m +// YUMI +// +// Created by YUMI on 2022/6/23. +// + +#import "YUMISeparationSpecificExternalizer.h" +#import "Api+Monents.h" +#import "AccountAbstractStorage.h" +#import "FBCSeparationsDetailCeremony.h" +#import "SeparationsAbstractMatrix.h" +#import "SeparationsJudgementMatrix.h" +#import "SeparationsJudgementReplicationMatrix.h" +@implementation YUMISeparationSpecificExternalizer + +- (void)acquireSepartowardsionsSpecific:(NSString *)dynamicId { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [Api separtowardsionsSpecific:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + SeparationsAbstractMatrix * monentsInfo = [SeparationsAbstractMatrix mtowardsrixAboutImpactbasket:data.data]; + [[self acquireRegard] acquireSepartowardsionsSpecificAccomplishment:monentsInfo]; + } EvidenceChambering:YES] dynamicId:dynamicId worldId:@"" uid:uid]; +} + + +- (void)acquireSepartowardsionsJudgementSttowardsement:(NSString *)dynamicId timestamp:(NSString *)timestamp status:(int)state{ + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [Api separtowardsionsJudgementSttowardsement:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + SeparationsJudgementStatementMatrix * info = [SeparationsJudgementStatementMatrix mtowardsrixAboutImpactbasket:data.data]; + [[self acquireRegard] acquireSepartowardsionsJudgementSttowardsementAccomplishment:info state:state]; + }] dynamicId:dynamicId uid:uid pageSize:@"10" timestamp:timestamp]; +} + + +- (void)acquireSepartowardsionsJudgementReplictowardsionSttowardsement:(NSString *)dynamicId commentId:(NSString *)commentId timestamp:(NSString *)timestamp { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [Api separtowardsionsJudgementReplictowardsionSttowardsement:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + SeparationsJudgementReplicationMatrix * replyInfo = [SeparationsJudgementReplicationMatrix mtowardsrixAboutImpactbasket:data.data]; + [[self acquireRegard] acquireSepartowardsionsJudgementReplictowardsionSttowardsementAccomplishment:replyInfo commentId:commentId]; + }] dynamicId:dynamicId uid:uid pageSize:@"5" commentId:commentId timestamp:timestamp]; +} + +- (void)similarMonent:(NSString *)dynamicId status:(BOOL)status likedUid:(NSString *)likedUid worldId:(NSString *)worldId { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NSString * statusStr = status ? @"1" : @"0"; + [Api separtowardsionsSimilar:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] similarSepartowardsionsAccomplishment:dynamicId status:status]; + } EvidenceChambering:YES] dynamicId:dynamicId uid:uid status:statusStr likedUid:likedUid worldId:worldId]; +} + +- (void)representtowardsionSepartowardsions:(NSString *)dynamicId worldId:(NSString *)worldId { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [Api separtowardsionsRepresenttowardsion:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + [[self acquireRegard] representtowardsionSepartowardsionsAccomplishment:dynamicId]; + } uid:uid dynamicId:dynamicId worldId:worldId]; +} + + +- (void)commontSepartowardsions:(NSString *)dynamicId content:(NSString *)content { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [Api monentSpecificCommon:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] commonSepartowardsionsAccomplishment]; + } EvidenceChambering:YES] uid:uid dynamicId:dynamicId content:content]; +} + +- (void)reprohibitiportCommon:(NSString *)commonId dynamicId:(NSString *)dynamicId content:(NSString *)content { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [Api replictowardsionSepartowardsionsSpecificCommon:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] replictowardsionSepartowardsionsAccomplishment]; + }] uid:uid dynamicId:dynamicId content:content commentId:commonId]; +} + + + +@end diff --git a/YuMi/Modules/YMMonents/Presenter/YUMISeparationsAnnounceExternalizer.h b/YuMi/Modules/YMMonents/Presenter/YUMISeparationsAnnounceExternalizer.h new file mode 100644 index 00000000..145b040c --- /dev/null +++ b/YuMi/Modules/YMMonents/Presenter/YUMISeparationsAnnounceExternalizer.h @@ -0,0 +1,16 @@ +// +// YMMonentsPublishPresenter.h +// YUMI +// +// Created by YUMI on 2022/7/1. +// + +#import "BaseMvpExternalizer.h" +#import "SeparationsAbstractMatrix.h" +NS_ASSUME_NONNULL_BEGIN + +@interface YUMISeparationsAnnounceExternalizer : BaseMvpExternalizer +- (void)announceSepartowardsions:(NSString *)worldId type:(MonentsContentGenre)type content:(NSString *)content resList:(NSArray *)resList; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMonents/Presenter/YUMISeparationsAnnounceExternalizer.m b/YuMi/Modules/YMMonents/Presenter/YUMISeparationsAnnounceExternalizer.m new file mode 100644 index 00000000..6df3d40b --- /dev/null +++ b/YuMi/Modules/YMMonents/Presenter/YUMISeparationsAnnounceExternalizer.m @@ -0,0 +1,24 @@ +// +// YMMonentsPublishPresenter.m +// YUMI +// +// Created by YUMI on 2022/7/1. +// + +#import "YUMISeparationsAnnounceExternalizer.h" +#import "Api+Monents.h" +#import "FBCSeparationsPublishCeremony.h" +#import "AccountAbstractStorage.h" + +@implementation YUMISeparationsAnnounceExternalizer + +- (void)announceSepartowardsions:(NSString *)worldId type:(MonentsContentGenre)type content:(NSString *)content resList:(NSArray *)resList { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NSString * typeStr = [NSString stringWithFormat:@"%ld", type]; + [Api separtowardsionsPublish:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] announceSepartowardsionsAccomplishment]; + } EvidenceChambering:YES] uid:uid type:typeStr worldId:worldId content:content resList:resList]; +} + + +@end diff --git a/YuMi/Modules/YMMonents/Presenter/YUMISeparationsCoactiveExternalizer.h b/YuMi/Modules/YMMonents/Presenter/YUMISeparationsCoactiveExternalizer.h new file mode 100644 index 00000000..b6f0e330 --- /dev/null +++ b/YuMi/Modules/YMMonents/Presenter/YUMISeparationsCoactiveExternalizer.h @@ -0,0 +1,19 @@ +// +// YMMonentsInteractivePresenter.h +// YUMI +// +// Created by YUMI on 2022/5/18. +// + +#import "BaseMvpExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMISeparationsCoactiveExternalizer : BaseMvpExternalizer + +- (void)acquireSepartowardsionsCoactiveSttowardsement:(NSString *)dynamicId pageSize:(int)pageSize state:(int)state; + +- (void)prohibititinctCoactiveCommunictowardsion; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMonents/Presenter/YUMISeparationsCoactiveExternalizer.m b/YuMi/Modules/YMMonents/Presenter/YUMISeparationsCoactiveExternalizer.m new file mode 100644 index 00000000..31515d5d --- /dev/null +++ b/YuMi/Modules/YMMonents/Presenter/YUMISeparationsCoactiveExternalizer.m @@ -0,0 +1,35 @@ +// +// YMMonentsInteractivePresenter.m +// YUMI +// +// Created by YUMI on 2022/5/18. +// + +#import "YUMISeparationsCoactiveExternalizer.h" +#import "Api+Monents.h" +#import "FBCSeparationsInteractiveCeremony.h" +#import "AccountAbstractStorage.h" +#import "SeparationsCoactiveMatrix.h" + +@implementation YUMISeparationsCoactiveExternalizer + + +- (void)acquireSepartowardsionsCoactiveSttowardsement:(NSString *)dynamicId pageSize:(int)pageSize state:(int)state{ + NSString * pageSizeStr = [NSString stringWithFormat:@"%d", pageSize]; + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [Api separtowardsionsCoactiveSttowardsement:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + NSArray * array = [SeparationsCoactiveMatrix mtowardsrixsAboutGarment:data.data]; + [[self acquireRegard] acquireSepartowardsionsCoactiveSttowardsementSueccess:array state:state]; + } fail:^(NSInteger code, NSString * _Nullable msg) { + [[self acquireRegard] acquireSepartowardsionsCoactiveSttowardsementFlunk:msg state:state]; + }] dynamicId:dynamicId pageSize:pageSizeStr uid:uid]; +} + +- (void)prohibititinctCoactiveCommunictowardsion { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [Api separtowardsionsCoactiveDistinct:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] prohibititinctCoactiveCommunictowardsionAccomplishment]; + } EvidenceChambering:YES] uid:uid]; +} + +@end diff --git a/YuMi/Modules/YMMonents/Presenter/YUMISeparationsConsiderationExternalizer.h b/YuMi/Modules/YMMonents/Presenter/YUMISeparationsConsiderationExternalizer.h new file mode 100644 index 00000000..09761a23 --- /dev/null +++ b/YuMi/Modules/YMMonents/Presenter/YUMISeparationsConsiderationExternalizer.h @@ -0,0 +1,22 @@ +// +// YMMonentsAttentionPresenter.h +// YUMI +// +// Created by YUMI on 2022/5/18. +// + +#import "BaseMvpExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMISeparationsConsiderationExternalizer : BaseMvpExternalizer + +- (void)acquireSepartowardsionsConsidertowardsionSttowardsementPeriodDimension:(NSInteger)pageSize dynamicId:(NSString *)dynamicId state:(int)state; + +- (void)similarMonent:(NSString *)dynamicId status:(BOOL)status likedUid:(NSString *)likedUid worldId:(NSString *)worldId; + +- (void)representtowardsionSepartowardsions:(NSString *)dynamicId worldId:(NSString *)worldId; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMonents/Presenter/YUMISeparationsConsiderationExternalizer.m b/YuMi/Modules/YMMonents/Presenter/YUMISeparationsConsiderationExternalizer.m new file mode 100644 index 00000000..5d0600dc --- /dev/null +++ b/YuMi/Modules/YMMonents/Presenter/YUMISeparationsConsiderationExternalizer.m @@ -0,0 +1,44 @@ +// +// YMMonentsAttentionPresenter.m +// YUMI +// +// Created by YUMI on 2022/5/18. +// + +#import "YUMISeparationsConsiderationExternalizer.h" +#import "Api+Monents.h" +#import "SeparationsStatementAbstractMatrix.h" +#import "FBCSeparationsConsiderationCeremony.h" +#import "AccountAbstractStorage.h" +@implementation YUMISeparationsConsiderationExternalizer + +- (void)acquireSepartowardsionsConsidertowardsionSttowardsementPeriodDimension:(NSInteger)pageSize dynamicId:(NSString *)dynamicId state:(int)state { + if (dynamicId.integerValue <= 0) { + dynamicId = @""; + } + NSString * pageSizeStr = [NSString stringWithFormat:@"%ld", pageSize]; + [Api separtowardsionsBWSttralongerSttowardsement:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + SeparationsStatementAbstractMatrix *listAbstract = [SeparationsStatementAbstractMatrix mtowardsrixAboutImpactbasket:data.data]; + [[self acquireRegard] acquireSepartowardsionsConsidertowardsionSttowardsementAccomplishment:listAbstract state:state]; + } fail:^(NSInteger code, NSString * _Nullable msg) { + [[self acquireRegard] acquireSepartowardsionsConsidertowardsionSttowardsementFlunk:msg state:state]; + } EvidenceChambering:YES] dynamicId:dynamicId pageSize:pageSizeStr types:@"0,2"]; +} + +- (void)similarMonent:(NSString *)dynamicId status:(BOOL)status likedUid:(NSString *)likedUid worldId:(NSString *)worldId { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NSString * statusStr = status ? @"1" : @"0"; + [Api separtowardsionsSimilar:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] similarSepartowardsionsAccomplishment:dynamicId status:status]; + } EvidenceChambering:YES] dynamicId:dynamicId uid:uid status:statusStr likedUid:likedUid worldId:worldId]; +} + +- (void)representtowardsionSepartowardsions:(NSString *)dynamicId worldId:(NSString *)worldId { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [Api separtowardsionsRepresenttowardsion:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + [[self acquireRegard] representtowardsionSepartowardsionsAccomplishment:dynamicId]; + } uid:uid dynamicId:dynamicId worldId:worldId]; +} + + +@end diff --git a/YuMi/Modules/YMMonents/Presenter/YUMISeparationsEncourageExternalizer.h b/YuMi/Modules/YMMonents/Presenter/YUMISeparationsEncourageExternalizer.h new file mode 100644 index 00000000..e7ca4127 --- /dev/null +++ b/YuMi/Modules/YMMonents/Presenter/YUMISeparationsEncourageExternalizer.h @@ -0,0 +1,22 @@ +// +// YMMonentsRecommendPresenter.h +// YUMI +// +// Created by YUMI on 2022/5/13. +// + +#import "BaseMvpExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMISeparationsEncourageExternalizer : BaseMvpExternalizer +- (void)acquireSepartowardsionsEncourageSttowardsement:(NSInteger)page pageSize:(NSInteger)pageSize state:(int)state; + +- (void)acquireSepartowardsionsMotifSttowardsement:(NSInteger)page pageSize:(NSInteger)pageSize; + +- (void)similarMonent:(NSString *)dynamicId status:(BOOL)status likedUid:(NSString *)likedUid worldId:(NSString *)worldId; + +- (void)representtowardsionSepartowardsions:(NSString *)dynamicId worldId:(NSString *)worldId; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMonents/Presenter/YUMISeparationsEncourageExternalizer.m b/YuMi/Modules/YMMonents/Presenter/YUMISeparationsEncourageExternalizer.m new file mode 100644 index 00000000..b8878da9 --- /dev/null +++ b/YuMi/Modules/YMMonents/Presenter/YUMISeparationsEncourageExternalizer.m @@ -0,0 +1,54 @@ +// +// YMMonentsRecommendPresenter.m +// YUMI +// +// Created by YUMI on 2022/5/13. +// + +#import "YUMISeparationsEncourageExternalizer.h" +#import "AccountAbstractStorage.h" +#import "Api+Monents.h" +#import "SeparationsMotifMatrix.h" +#import "SeparationsAbstractMatrix.h" +#import "FBCSeparationsEncourageCeremony.h" +@implementation YUMISeparationsEncourageExternalizer + + +- (void)acquireSepartowardsionsEncourageSttowardsement:(NSInteger)page pageSize:(NSInteger)pageSize state:(int)state { + NSString * pageStr = [NSString stringWithFormat:@"%ld", page]; + NSString * pageSizeStr = [NSString stringWithFormat:@"%ld", pageSize]; + [Api separtowardsionsEncourageSttowardsement:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + NSArray *array = [SeparationsAbstractMatrix mtowardsrixsAboutGarment:data.data]; + [[self acquireRegard] acquireSepartowardsionsEncourageSttowardsementAccomplishment:array state:state]; + } fail:^(NSInteger code, NSString * _Nullable msg) { + [[self acquireRegard] acquireSepartowardsionsEncourageSttowardsementFlunk:msg state:state]; + } EvidenceChambering:YES] page:pageStr pageSize:pageSizeStr types:@"0,2"]; +} + + +- (void)acquireSepartowardsionsMotifSttowardsement:(NSInteger)page pageSize:(NSInteger)pageSize { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NSString * pageStr = [NSString stringWithFormat:@"%ld", page]; + NSString * pageSizeStr = [NSString stringWithFormat:@"%ld", pageSize]; + [Api separtowardsionsMotifSttowardsement:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + NSArray * array = [SeparationsMotifMatrix mtowardsrixsAboutGarment:data.data[@"records"]]; + [[self acquireRegard] separtowardsionsMotifSttowardsementAccomplishment:array]; + }] uid:uid page:pageStr pageSize:pageSizeStr worldTypeId:@"1"]; +} + +- (void)similarMonent:(NSString *)dynamicId status:(BOOL)status likedUid:(NSString *)likedUid worldId:(NSString *)worldId { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NSString * statusStr = status ? @"1" : @"0"; + [Api separtowardsionsSimilar:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] similarSepartowardsionsAccomplishment:dynamicId status:status]; + } EvidenceChambering:YES] dynamicId:dynamicId uid:uid status:statusStr likedUid:likedUid worldId:worldId]; +} + +- (void)representtowardsionSepartowardsions:(NSString *)dynamicId worldId:(NSString *)worldId { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [Api separtowardsionsRepresenttowardsion:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + [[self acquireRegard] representtowardsionSepartowardsionsAccomplishment:dynamicId]; + } uid:uid dynamicId:dynamicId worldId:worldId]; +} + +@end diff --git a/YuMi/Modules/YMMonents/Presenter/YUMISeparationsMotifEncourageExternalizer.h b/YuMi/Modules/YMMonents/Presenter/YUMISeparationsMotifEncourageExternalizer.h new file mode 100644 index 00000000..104d0954 --- /dev/null +++ b/YuMi/Modules/YMMonents/Presenter/YUMISeparationsMotifEncourageExternalizer.h @@ -0,0 +1,20 @@ +// +// YMMonentsTopicRecommendPresenter.h +// YUMI +// +// Created by YUMI on 2022/8/18. +// + +#import "BaseMvpExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMISeparationsMotifEncourageExternalizer : BaseMvpExternalizer +- (void)acquireSepartowardsionsMotifEncourageSttowardsement:(NSString *)dynamicId worldId:(NSString *)worldId state:(int)state; + +- (void)similarMonent:(NSString *)dynamicId status:(BOOL)status likedUid:(NSString *)likedUid worldId:(NSString *)worldId; + +- (void)representtowardsionSepartowardsions:(NSString *)dynamicId worldId:(NSString *)worldId; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMonents/Presenter/YUMISeparationsMotifEncourageExternalizer.m b/YuMi/Modules/YMMonents/Presenter/YUMISeparationsMotifEncourageExternalizer.m new file mode 100644 index 00000000..33e549ba --- /dev/null +++ b/YuMi/Modules/YMMonents/Presenter/YUMISeparationsMotifEncourageExternalizer.m @@ -0,0 +1,39 @@ +// +// YMMonentsTopicRecommendPresenter.m +// YUMI +// +// Created by YUMI on 2022/8/18. +// + +#import "YUMISeparationsMotifEncourageExternalizer.h" +#import "Api+Monents.h" +#import "AccountAbstractStorage.h" +#import "SeparationsStatementAbstractMatrix.h" +#import "FBCSeparationsMotifEncourageCeremony.h" +@implementation YUMISeparationsMotifEncourageExternalizer + +- (void)acquireSepartowardsionsMotifEncourageSttowardsement:(NSString *)dynamicId worldId:(NSString *)worldId state:(int)state { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [Api separtowardsionsMotifEncourageSttowardsement:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + SeparationsStatementAbstractMatrix * model = [SeparationsStatementAbstractMatrix mtowardsrixAboutImpactbasket:data.data]; + [[self acquireRegard] acquireSepartowardsionsMotifEncourageSttowardsementAccomplishment:model state:state]; + }fail:^(NSInteger code, NSString * _Nullable msg) { + [[self acquireRegard] acquireSepartowardsionsMotifEncourageSttowardsementFlunk:msg state:state]; + } EvidenceChambering:YES] uid:uid dynamicId:dynamicId types:@"0,2" worldId:worldId pageSize:@"20"]; +} + +- (void)similarMonent:(NSString *)dynamicId status:(BOOL)status likedUid:(NSString *)likedUid worldId:(NSString *)worldId { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NSString * statusStr = status ? @"1" : @"0"; + [Api separtowardsionsSimilar:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] similarSepartowardsionsAccomplishment:dynamicId status:status]; + } EvidenceChambering:YES] dynamicId:dynamicId uid:uid status:statusStr likedUid:likedUid worldId:worldId]; +} + +- (void)representtowardsionSepartowardsions:(NSString *)dynamicId worldId:(NSString *)worldId { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [Api separtowardsionsRepresenttowardsion:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + [[self acquireRegard] representtowardsionSepartowardsionsAccomplishment:dynamicId]; + } uid:uid dynamicId:dynamicId worldId:worldId]; +} +@end diff --git a/YuMi/Modules/YMMonents/Presenter/YUMISeparationsMotifRecentlyExternalizer.h b/YuMi/Modules/YMMonents/Presenter/YUMISeparationsMotifRecentlyExternalizer.h new file mode 100644 index 00000000..83c530f1 --- /dev/null +++ b/YuMi/Modules/YMMonents/Presenter/YUMISeparationsMotifRecentlyExternalizer.h @@ -0,0 +1,20 @@ +// +// YMMonentsTopicLatestPresenter.h +// YUMI +// +// Created by YUMI on 2022/8/18. +// + +#import "BaseMvpExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMISeparationsMotifRecentlyExternalizer : BaseMvpExternalizer +- (void)acquireSepartowardsionsMotifRecentlySttowardsement:(NSString *)dynamicId worldId:(NSString *)worldId state:(int)state; + +- (void)similarMonent:(NSString *)dynamicId status:(BOOL)status likedUid:(NSString *)likedUid worldId:(NSString *)worldId; + +- (void)representtowardsionSepartowardsions:(NSString *)dynamicId worldId:(NSString *)worldId; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMonents/Presenter/YUMISeparationsMotifRecentlyExternalizer.m b/YuMi/Modules/YMMonents/Presenter/YUMISeparationsMotifRecentlyExternalizer.m new file mode 100644 index 00000000..82aa0c6e --- /dev/null +++ b/YuMi/Modules/YMMonents/Presenter/YUMISeparationsMotifRecentlyExternalizer.m @@ -0,0 +1,40 @@ +// +// YMMonentsTopicLatestPresenter.m +// YUMI +// +// Created by YUMI on 2022/8/18. +// + +#import "YUMISeparationsMotifRecentlyExternalizer.h" +#import "Api+Monents.h" +#import "AccountAbstractStorage.h" +#import "SeparationsStatementAbstractMatrix.h" +#import "FBCSeparationsMotifLatestCeremony.h" +@implementation YUMISeparationsMotifRecentlyExternalizer + +- (void)acquireSepartowardsionsMotifRecentlySttowardsement:(NSString *)dynamicId worldId:(NSString *)worldId state:(int)state { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [Api separtowardsionsMotifRecentlySttowardsement:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + SeparationsStatementAbstractMatrix * model = [SeparationsStatementAbstractMatrix mtowardsrixAboutImpactbasket:data.data]; + [[self acquireRegard] acquireSepartowardsionsMotifRecentlySttowardsementAccomplishment:model state:state]; + }fail:^(NSInteger code, NSString * _Nullable msg) { + [[self acquireRegard] acquireSepartowardsionsMotifRecentlySttowardsementFlunk:msg state:state]; + } EvidenceChambering:YES] uid:uid dynamicId:dynamicId types:@"0,2" worldId:worldId pageSize:@"20"]; +} + +- (void)similarMonent:(NSString *)dynamicId status:(BOOL)status likedUid:(NSString *)likedUid worldId:(NSString *)worldId { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NSString * statusStr = status ? @"1" : @"0"; + [Api separtowardsionsSimilar:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] similarSepartowardsionsAccomplishment:dynamicId status:status]; + } EvidenceChambering:YES] dynamicId:dynamicId uid:uid status:statusStr likedUid:likedUid worldId:worldId]; +} + +- (void)representtowardsionSepartowardsions:(NSString *)dynamicId worldId:(NSString *)worldId { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [Api separtowardsionsRepresenttowardsion:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + [[self acquireRegard] representtowardsionSepartowardsionsAccomplishment:dynamicId]; + } uid:uid dynamicId:dynamicId worldId:worldId]; +} + +@end diff --git a/YuMi/Modules/YMMonents/Presenter/YUMISeparationsMotifStatementExternalizer.h b/YuMi/Modules/YMMonents/Presenter/YUMISeparationsMotifStatementExternalizer.h new file mode 100644 index 00000000..06dab67e --- /dev/null +++ b/YuMi/Modules/YMMonents/Presenter/YUMISeparationsMotifStatementExternalizer.h @@ -0,0 +1,18 @@ +// +// YMMonentsTopicListPresenter.h +// YUMI +// +// Created by YUMI on 2022/8/18. +// + +#import "BaseMvpExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMISeparationsMotifStatementExternalizer : BaseMvpExternalizer +- (void)acquireMoentsMotifSttowardsement:(int)page pageSize:(int)pageSize state:(int)state; + +- (void)representtowardsionSepartowardsions:(NSString *)dynamicId worldId:(NSString *)worldId; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMonents/Presenter/YUMISeparationsMotifStatementExternalizer.m b/YuMi/Modules/YMMonents/Presenter/YUMISeparationsMotifStatementExternalizer.m new file mode 100644 index 00000000..67adae2f --- /dev/null +++ b/YuMi/Modules/YMMonents/Presenter/YUMISeparationsMotifStatementExternalizer.m @@ -0,0 +1,36 @@ +// +// YMMonentsTopicListPresenter.m +// YUMI +// +// Created by YUMI on 2022/8/18. +// + +#import "YUMISeparationsMotifStatementExternalizer.h" +#import "Api+Monents.h" +#import "AccountAbstractStorage.h" +#import "SeparationsMotifMatrix.h" +#import "FBCSeparationsMotifStatementCeremony.h" + +@implementation YUMISeparationsMotifStatementExternalizer + +- (void)acquireMoentsMotifSttowardsement:(int)page pageSize:(int)pageSize state:(int)state { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NSString * pageStr = [NSString stringWithFormat:@"%d", page]; + NSString * pageSizeStr = [NSString stringWithFormat:@"%d", pageSize]; + [Api moentsMotifSttowardsement:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + NSArray * array = [SeparationsMotifMatrix mtowardsrixsAboutGarment:data.data[@"records"]]; + [[self acquireRegard] acquireSepartowardsionsMotifSttowardsementAccomplishment:array state:state]; + }fail:^(NSInteger code, NSString * _Nullable msg) { + [[self acquireRegard] acquireMoentsMotifFlunk:msg state:state]; + } EvidenceChambering:YES] uid:uid page:pageStr pageSize:pageSizeStr worldTypeId:@"0"]; +} + +- (void)representtowardsionSepartowardsions:(NSString *)dynamicId worldId:(NSString *)worldId { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [Api separtowardsionsRepresenttowardsion:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + [[self acquireRegard] representtowardsionSepartowardsionsAccomplishment:dynamicId]; + } uid:uid dynamicId:dynamicId worldId:worldId]; +} + + +@end diff --git a/YuMi/Modules/YMMonents/Presenter/YUMISeparationsProgrammingDisposition.h b/YuMi/Modules/YMMonents/Presenter/YUMISeparationsProgrammingDisposition.h new file mode 100644 index 00000000..321a7716 --- /dev/null +++ b/YuMi/Modules/YMMonents/Presenter/YUMISeparationsProgrammingDisposition.h @@ -0,0 +1,48 @@ +// +// YMMonentsLayoutConfig.h +// YUMI +// +// Created by YUMI on 2022/5/12. +// + +#import +#import "YUMIMacroUitls.h" +NS_ASSUME_NONNULL_BEGIN +#define kMONENTS_CONTENT_LEFT_PADDING 67 +#define kMONENTS_CONTENT_RIGHT_PADDING 36 +#define kMONENTS_CONTENT_MAX_WIDTH (KScreenWidth - kMONENTS_CONTENT_LEFT_PADDING - kMONENTS_CONTENT_RIGHT_PADDING) +#define kMONENTS_PIC_ONE_WIDTH 200 +#define kMONENTS_PIC_SPACE 4 +#define kMONENTS_USER_INFO_HEIGHT 60 +#define kMONENTS_TOOL_BAR_HEIGHT 58 +#define kMONENTS_CONTENT_SPACAE_HEIGHT 12 +#define kMONENTS_TEXT_TOPIC_HEIGHT 20 +#define kMONENTS_FOLD_HEIGHT 20 +#pragma mark - 评论的配置 +#define kMONENTS_COMMENT_LEFT_PADDING 15 +#define kMONENTS_COMMENT_RIGHT_PADDING 25 +#define kMONENTS_COMMENT_AVATAR_NICK_PADDING 10 +#define KMONENTS_COMMENT_AVATAR_WIDTH 45 +#define KMONENTS_COMMENT_MAX_WIDTH (KScreenWidth - KMONENTS_COMMENT_AVATAR_WIDTH - kMONENTS_COMMENT_LEFT_PADDING - kMONENTS_COMMENT_RIGHT_PADDING - kMONENTS_COMMENT_AVATAR_NICK_PADDING) +#pragma mark - 评论回复的配置 +#define KMONENTS_COMMENT_REPLY_AVATAR_WIDTH 30 +#define kMONENTS_COMMENT_REPLY_LEFT_PADDING (kMONENTS_COMMENT_LEFT_PADDING + kMONENTS_COMMENT_RIGHT_PADDING + kMONENTS_COMMENT_AVATAR_NICK_PADDING) +#define KMONENTS_COMMENT_REPLY_MAX_WIDTH (KMONENTS_COMMENT_MAX_WIDTH - KMONENTS_COMMENT_REPLY_AVATAR_WIDTH - kMONENTS_COMMENT_AVATAR_NICK_PADDING) + +#pragma mark - 审核UI配置 +#define kSIMPLE_MONENTS_CONTENT_LEFT_PADDING 16 +#define kSIMPLE_MONENTS_CONTENT_RIGHT_PADDING 16 +#define kSIMPLE_MONENTS_CONTENT_MAX_WIDTH (KScreenWidth - kSIMPLE_MONENTS_CONTENT_LEFT_PADDING - kSIMPLE_MONENTS_CONTENT_RIGHT_PADDING) + +#define KSIMPLE_MONENTS_COMMENT_AVATAR_WIDTH 40 + +@class SeparationsAbstractMatrix, SeparationsJudgementMatrix; +@interface YUMISeparationsProgrammingDisposition : NSObject ++ (void)programmingSimpleSepartowardsionsMtowardsrix:(SeparationsAbstractMatrix *)reminiscence; ++ (void)programmingSepartowardsionsMtowardsrix:(SeparationsAbstractMatrix *)reminiscence; ++ (CGFloat)separtowardsionsGHPiicAltitude:(SeparationsAbstractMatrix *)reminiscence; ++ (CGFloat)separtowardsionsStowardsisfperformanceAltitude:(SeparationsAbstractMatrix *)reminiscence; ++ (CGFloat)judgementJudgementRowAltitude:(SeparationsJudgementMatrix * )comment; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMonents/Presenter/YUMISeparationsProgrammingDisposition.m b/YuMi/Modules/YMMonents/Presenter/YUMISeparationsProgrammingDisposition.m new file mode 100644 index 00000000..472854cd --- /dev/null +++ b/YuMi/Modules/YMMonents/Presenter/YUMISeparationsProgrammingDisposition.m @@ -0,0 +1,249 @@ +// +// YMMonentsLayoutConfig.m +// YUMI +// +// Created by YUMI on 2022/5/12. +// + +#import "YUMISeparationsProgrammingDisposition.h" +#import +#import "DJDKMIMOMColor.h" +#import "SeparationsAbstractMatrix.h" +#import "SeparationsJudgementMatrix.h" +#import "MHTSpiritFacilitater.h" + +@implementation YUMISeparationsProgrammingDisposition + +#pragma mark - 审核的布局 + ++ (void)programmingSimpleSepartowardsionsMtowardsrix:(SeparationsAbstractMatrix *)reminiscence { + CGFloat rowHeight = kMONENTS_CONTENT_SPACAE_HEIGHT; + + rowHeight += [self simpleSepartowardsionsStowardsisfperformanceAltitude:reminiscence]; + + rowHeight += [self separtowardsionsGHPiicAltitude:reminiscence]; + + if (reminiscence.type == MonentsContentGenre_Picture && reminiscence.content.length > 0) { + rowHeight += (kMONENTS_CONTENT_SPACAE_HEIGHT * 2); + }else { + rowHeight += kMONENTS_CONTENT_SPACAE_HEIGHT; + } + + rowHeight += kMONENTS_TEXT_TOPIC_HEIGHT; + reminiscence.rowHeight = rowHeight; +} + ++ (CGFloat)simpleSepartowardsionsStowardsisfperformanceAltitude:(SeparationsAbstractMatrix *)reminiscence { + if (reminiscence.content.length <= 0) { + reminiscence.contentHeight = 0; + return 0; + } + + if (!reminiscence.contentAttribute) { + NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] init]; + if (reminiscence.squareTop ) { + NSTextAttachment * attachment = [[NSTextAttachment alloc] init]; + attachment.bounds = CGRectMake(0, 0, 25 * 1.3 ,10 * 1.3); + attachment.image = [UIImage imageNamed:@"yumi_monents_gen_top"]; + NSAttributedString * starAttribute = [NSMutableAttributedString attributedStringWithAttachment:(NSTextAttachment *)attachment]; + [attributedString insertAttributedString:starAttribute atIndex:0]; + } + [attributedString appendAttributedString:[self cretowardsBWSttTowardstrByBWStt:reminiscence.content attributed:@{NSFontAttributeName : [UIFont systemFontOfSize:15]}]]; + attributedString.yy_lineSpacing = 5; + attributedString.yy_lineBreakMode = NSLineBreakByWordWrapping; + reminiscence.contentAttribute = attributedString; + } + + YYTextContainer *container = [YYTextContainer new]; + container.size = CGSizeMake(kSIMPLE_MONENTS_CONTENT_MAX_WIDTH, CGFLOAT_MAX); + container.maximumNumberOfRows = 0; + YYTextLayout *layout = [YYTextLayout layoutWithContainer:container text:reminiscence.contentAttribute]; + reminiscence.numberOfText = layout.rowCount; + CGFloat foldHeight = 0; + if (layout.rowCount > 6) { + foldHeight = kMONENTS_FOLD_HEIGHT; + NSInteger numberOfLines = reminiscence.isFold ? 6 : 0; + container.maximumNumberOfRows = numberOfLines; + } + YYTextLayout *realLayout = [YYTextLayout layoutWithContainer:container text:reminiscence.contentAttribute]; + CGFloat contentHeight = realLayout.textBoundingSize.height; + reminiscence.contentHeight =contentHeight; + return contentHeight + foldHeight; +} + ++ (CGFloat)simpleSepartowardsionsGHPiicAltitude:(SeparationsAbstractMatrix *)reminiscence { + + NSInteger picCount = reminiscence.dynamicResList.count; + CGFloat picHeight = 0; + if (picCount == 0) { + picHeight = 0; + } else if(picCount == 1) { + picHeight = kMONENTS_PIC_ONE_WIDTH; + } else if(picCount == 2) { + picHeight = (kSIMPLE_MONENTS_CONTENT_MAX_WIDTH - kMONENTS_PIC_SPACE) / 2; + } else { + if (picCount > 9) { + picCount = 9; + } + CGFloat itemWidth = (kSIMPLE_MONENTS_CONTENT_MAX_WIDTH - kMONENTS_PIC_SPACE * 2) / 3; + NSInteger page = picCount % 3; + NSInteger line = picCount / 3; + if (page == 0) { + picHeight = itemWidth * line + (line -1)* kMONENTS_PIC_SPACE; + } else { + picHeight = itemWidth * (line +1) + line * kMONENTS_PIC_SPACE; + } + } + reminiscence.picHeight = picHeight; + return picHeight; +} + +#pragma mark - 正常的布局 + ++ (void)programmingSepartowardsionsMtowardsrix:(SeparationsAbstractMatrix *)reminiscence { + CGFloat rowHeight = kMONENTS_USER_INFO_HEIGHT; + + rowHeight += kMONENTS_CONTENT_SPACAE_HEIGHT; + + rowHeight += [self separtowardsionsStowardsisfperformanceAltitude:reminiscence]; + + rowHeight += [self separtowardsionsGHPiicAltitude:reminiscence]; + + if (reminiscence.type == MonentsContentGenre_Picture && reminiscence.content.length > 0) { + rowHeight += (kMONENTS_CONTENT_SPACAE_HEIGHT * 2); + }else { + rowHeight += kMONENTS_CONTENT_SPACAE_HEIGHT; + } + + rowHeight += kMONENTS_TEXT_TOPIC_HEIGHT; + + rowHeight += kMONENTS_TOOL_BAR_HEIGHT; + reminiscence.rowHeight = rowHeight; +} + ++ (CGFloat)separtowardsionsGHPiicAltitude:(SeparationsAbstractMatrix *)reminiscence { + + NSInteger picCount = reminiscence.dynamicResList.count; + CGFloat picHeight = 0; + if (picCount == 0) { + picHeight = 0; + } else if(picCount == 1) { + picHeight = kMONENTS_PIC_ONE_WIDTH; + } else if(picCount == 2) { + picHeight = (kMONENTS_CONTENT_MAX_WIDTH - kMONENTS_PIC_SPACE) / 2; + } else { + if (picCount > 9) { + picCount = 9; + } + CGFloat itemWidth = (kMONENTS_CONTENT_MAX_WIDTH - kMONENTS_PIC_SPACE * 2) / 3; + NSInteger page = picCount % 3; + NSInteger line = picCount / 3; + if (page == 0) { + picHeight = itemWidth * line + (line -1)* kMONENTS_PIC_SPACE; + } else { + picHeight = itemWidth * (line +1) + line * kMONENTS_PIC_SPACE; + } + } + reminiscence.picHeight = picHeight; + return picHeight; +} + ++ (CGFloat)separtowardsionsStowardsisfperformanceAltitude:(SeparationsAbstractMatrix *)reminiscence { + if (reminiscence.content.length <= 0) { + reminiscence.contentHeight = 0; + return 0; + } + + if (!reminiscence.contentAttribute) { + NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] init]; + if (reminiscence.squareTop ) { + NSTextAttachment * attachment = [[NSTextAttachment alloc] init]; + attachment.bounds = CGRectMake(0, 0, 25 * 1.3 ,10 * 1.3); + attachment.image = [UIImage imageNamed:@"yumi_monents_gen_top"]; + NSAttributedString * starAttribute = [NSMutableAttributedString attributedStringWithAttachment:(NSTextAttachment *)attachment]; + [attributedString insertAttributedString:starAttribute atIndex:0]; + } + [attributedString appendAttributedString:[self cretowardsBWSttTowardstrByBWStt:reminiscence.content attributed:@{NSFontAttributeName : [UIFont systemFontOfSize:15]}]]; + attributedString.yy_lineSpacing = 5; + attributedString.yy_lineBreakMode = NSLineBreakByWordWrapping; + reminiscence.contentAttribute = attributedString; + } + + YYTextContainer *container = [YYTextContainer new]; + container.size = CGSizeMake(kMONENTS_CONTENT_MAX_WIDTH, CGFLOAT_MAX); + container.maximumNumberOfRows = 0; + YYTextLayout *layout = [YYTextLayout layoutWithContainer:container text:reminiscence.contentAttribute]; + reminiscence.numberOfText = layout.rowCount; + CGFloat foldHeight = 0; + if (layout.rowCount > 6) { + foldHeight = kMONENTS_FOLD_HEIGHT; + NSInteger numberOfLines = reminiscence.isFold ? 6 : 0; + container.maximumNumberOfRows = numberOfLines; + } + YYTextLayout *realLayout = [YYTextLayout layoutWithContainer:container text:reminiscence.contentAttribute]; + CGFloat contentHeight = realLayout.textBoundingSize.height; + reminiscence.contentHeight =contentHeight; + return contentHeight + foldHeight; +} + ++ (NSMutableAttributedString *)cretowardsBWSttTowardstrByBWStt:(NSString *)str attributed:(NSDictionary *)attribute{ + if (str.length == 0 || !str) { + str = @" "; + } + NSMutableAttributedString *attr = [[NSMutableAttributedString alloc] initWithString:str attributes:attribute]; + return attr; +} + ++ (CGFloat)judgementJudgementRowAltitude:(SeparationsJudgementMatrix * )comment { + if (comment.commentRowHeight > 0 && !comment.isReloadHeight) { + return comment.commentRowHeight; + } + __block CGFloat rowHeight = 0; + CGFloat commentTopHeight = 10 + 15 + 10; + + MHTSpiritFacilitater *faceManager = [MHTSpiritFacilitater partowardsiciptowardsiondSenintrtowardsemporalntFacilittowardseer]; + NSMutableAttributedString * attribute = [faceManager towardstributedBWSttrByEssay:comment.content font:[UIFont systemFontOfSize:15]]; + YYTextContainer *container = [YYTextContainer new]; + container.size = CGSizeMake(KMONENTS_COMMENT_REPLY_MAX_WIDTH, CGFLOAT_MAX); + container.maximumNumberOfRows = 0; + YYTextLayout *realLayout = [YYTextLayout layoutWithContainer:container text:attribute]; + CGFloat commentHeight = realLayout.textBoundingSize.height; + commentHeight = MAX(commentHeight, 15); + rowHeight += commentTopHeight; + rowHeight += commentHeight; + + + if (comment.replyInfo.leftCount > 0) { + rowHeight += 44; + } + + if (comment.replyInfo.replyList.count > 0) { + rowHeight += 10 * 2; + } else { + rowHeight += 10; + } + + + [comment.replyInfo.replyList enumerateObjectsUsingBlock:^(SeparationsReplicationMatrix * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if (obj.content.length > 0) { + [obj produceStowardsisfperformanceIdiosyncracy]; + CGFloat replayHeight = 0; + CGFloat commentTopHeight = 10 + 15 + 10; + CGFloat commentBottomHeight = 10; + YYTextContainer *container = [YYTextContainer new]; + container.size = CGSizeMake(KMONENTS_COMMENT_REPLY_MAX_WIDTH, CGFLOAT_MAX); + container.maximumNumberOfRows = 0; + YYTextLayout *realLayout = [YYTextLayout layoutWithContainer:container text:obj.contentAttribute]; + CGFloat replyContentHeight = realLayout.textBoundingSize.height; + replayHeight += commentTopHeight; + replayHeight += replyContentHeight; + replayHeight += commentBottomHeight; + obj.replyRowHeight = replayHeight; + rowHeight += replayHeight; + } + }]; + comment.commentRowHeight = rowHeight; + return rowHeight; +} + +@end diff --git a/YuMi/Modules/YMMonents/Presenter/YUMISeparationsRecentlyExternalizer.h b/YuMi/Modules/YMMonents/Presenter/YUMISeparationsRecentlyExternalizer.h new file mode 100644 index 00000000..b098a1ca --- /dev/null +++ b/YuMi/Modules/YMMonents/Presenter/YUMISeparationsRecentlyExternalizer.h @@ -0,0 +1,21 @@ +// +// YMMonentsLatestPresenter.h +// YUMI +// +// Created by YUMI on 2022/5/18. +// + +#import "BaseMvpExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMISeparationsRecentlyExternalizer : BaseMvpExternalizer + +- (void)acquireSepartowardsionsRecentlySttowardsementPeriodDimension:(NSInteger)pageSize dynamicId:(NSString *)dynamicId state:(int)state; + +- (void)similarMonent:(NSString *)dynamicId status:(BOOL)status likedUid:(NSString *)likedUid worldId:(NSString *)worldId; + +- (void)representtowardsionSepartowardsions:(NSString *)dynamicId worldId:(NSString *)worldId; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMonents/Presenter/YUMISeparationsRecentlyExternalizer.m b/YuMi/Modules/YMMonents/Presenter/YUMISeparationsRecentlyExternalizer.m new file mode 100644 index 00000000..bf2cb0a9 --- /dev/null +++ b/YuMi/Modules/YMMonents/Presenter/YUMISeparationsRecentlyExternalizer.m @@ -0,0 +1,43 @@ +// +// YMMonentsLatestPresenter.m +// YUMI +// +// Created by YUMI on 2022/5/18. +// + +#import "YUMISeparationsRecentlyExternalizer.h" +#import "Api+Monents.h" +#import "SeparationsStatementAbstractMatrix.h" +#import "FBCSeparationsLatestCeremony.h" +#import "AccountAbstractStorage.h" +@implementation YUMISeparationsRecentlyExternalizer + +- (void)acquireSepartowardsionsRecentlySttowardsementPeriodDimension:(NSInteger)pageSize dynamicId:(NSString *)dynamicId state:(int)state { + if (dynamicId.length <= 0) { + dynamicId = @""; + } + NSString * pageSizeStr = [NSString stringWithFormat:@"%ld", pageSize]; + [Api separtowardsionsRecentlySttowardsement:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + SeparationsStatementAbstractMatrix *listAbstract = [SeparationsStatementAbstractMatrix mtowardsrixAboutImpactbasket:data.data]; + [[self acquireRegard] acquireSepartowardsionsRecentlySttowardsementAccomplishment:listAbstract state:state]; + } fail:^(NSInteger code, NSString * _Nullable msg) { + [[self acquireRegard] acquireSepartowardsionsRecentlySttowardsementFlunk:msg state:state]; + } EvidenceChambering:YES] dynamicId:dynamicId pageSize:pageSizeStr types:@"0,2"]; +} + +- (void)similarMonent:(NSString *)dynamicId status:(BOOL)status likedUid:(NSString *)likedUid worldId:(NSString *)worldId { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NSString * statusStr = status ? @"1" : @"0"; + [Api separtowardsionsSimilar:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] similarSepartowardsionsAccomplishment:dynamicId status:status]; + } EvidenceChambering:YES] dynamicId:dynamicId uid:uid status:statusStr likedUid:likedUid worldId:worldId]; +} + +- (void)representtowardsionSepartowardsions:(NSString *)dynamicId worldId:(NSString *)worldId { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [Api separtowardsionsRepresenttowardsion:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + [[self acquireRegard] representtowardsionSepartowardsionsAccomplishment:dynamicId]; + } uid:uid dynamicId:dynamicId worldId:worldId]; +} + +@end diff --git a/YuMi/Modules/YMMonents/Protocol/FBCSeparationsConsiderationCeremony.h b/YuMi/Modules/YMMonents/Protocol/FBCSeparationsConsiderationCeremony.h new file mode 100644 index 00000000..82831e53 --- /dev/null +++ b/YuMi/Modules/YMMonents/Protocol/FBCSeparationsConsiderationCeremony.h @@ -0,0 +1,21 @@ +// +// YMMonentsAttentionProtocol.h +// YUMI +// +// Created by YUMI on 2022/5/18. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class SeparationsStatementAbstractMatrix; +@protocol FBCSeparationsConsiderationCeremony +- (void)acquireSepartowardsionsConsidertowardsionSttowardsementAccomplishment:(SeparationsStatementAbstractMatrix *)listAbstract state:(int)state; +- (void)acquireSepartowardsionsConsidertowardsionSttowardsementFlunk:(NSString *)msg state:(int)state; + +- (void)similarSepartowardsionsAccomplishment:(NSString *)dynamicId status:(BOOL)status; + +- (void)representtowardsionSepartowardsionsAccomplishment:(NSString *)monentsInfo; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMonents/Protocol/FBCSeparationsDetailCeremony.h b/YuMi/Modules/YMMonents/Protocol/FBCSeparationsDetailCeremony.h new file mode 100644 index 00000000..0a6d1740 --- /dev/null +++ b/YuMi/Modules/YMMonents/Protocol/FBCSeparationsDetailCeremony.h @@ -0,0 +1,26 @@ +// +// YMMonentsDetailProtocol.h +// YUMI +// +// Created by YUMI on 2022/6/23. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class SeparationsAbstractMatrix, SeparationsJudgementStatementMatrix, SeparationsJudgementReplicationMatrix; +@protocol FBCSeparationsDetailCeremony +- (void)acquireSepartowardsionsSpecificAccomplishment:(SeparationsAbstractMatrix *)judgementAbstract; + +- (void)acquireSepartowardsionsJudgementSttowardsementAccomplishment:(SeparationsJudgementStatementMatrix *)replyList state:(int)state; + +- (void)acquireSepartowardsionsJudgementReplictowardsionSttowardsementAccomplishment:(SeparationsJudgementReplicationMatrix *)replyInfo commentId:(NSString *)commentId; + +- (void)similarSepartowardsionsAccomplishment:(NSString *)dynamicId status:(BOOL)status; +- (void)representtowardsionSepartowardsionsAccomplishment:(NSString *)monentsInfo; + +- (void)commonSepartowardsionsAccomplishment; +- (void)replictowardsionSepartowardsionsAccomplishment; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMonents/Protocol/FBCSeparationsDetailRegardGovernancerRepresendtation.h b/YuMi/Modules/YMMonents/Protocol/FBCSeparationsDetailRegardGovernancerRepresendtation.h new file mode 100644 index 00000000..127b089c --- /dev/null +++ b/YuMi/Modules/YMMonents/Protocol/FBCSeparationsDetailRegardGovernancerRepresendtation.h @@ -0,0 +1,18 @@ +// +// YMMonentsDetailViewControllerDelegate.h +// YUMI +// +// Created by XY on 2023/2/22. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol FBCSeparationsDetailRegardGovernancerRepresendtation + +- (void)yUMISepartowardsionsSpecificRegardGovernancer:(UIViewController *)view representtowardsionSepartowardsions:(NSString *)dynamicId; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMonents/Protocol/FBCSeparationsEncourageCeremony.h b/YuMi/Modules/YMMonents/Protocol/FBCSeparationsEncourageCeremony.h new file mode 100644 index 00000000..fde7f6fe --- /dev/null +++ b/YuMi/Modules/YMMonents/Protocol/FBCSeparationsEncourageCeremony.h @@ -0,0 +1,23 @@ +// +// YMMonentsRecommendProtocol.h +// YUMI +// +// Created by YUMI on 2022/5/13. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol FBCSeparationsEncourageCeremony + +- (void)acquireSepartowardsionsEncourageSttowardsementAccomplishment:(NSArray *)array state:(int)state; +- (void)acquireSepartowardsionsEncourageSttowardsementFlunk:(NSString *)msg state:(int)state; +- (void)separtowardsionsMotifSttowardsementAccomplishment:(NSArray *)array; +- (void)similarSepartowardsionsAccomplishment:(NSString *)dynamicId status:(BOOL)status; + +- (void)representtowardsionSepartowardsionsAccomplishment:(NSString *)monentsInfo; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMonents/Protocol/FBCSeparationsInteractiveCeremony.h b/YuMi/Modules/YMMonents/Protocol/FBCSeparationsInteractiveCeremony.h new file mode 100644 index 00000000..7eb8fc24 --- /dev/null +++ b/YuMi/Modules/YMMonents/Protocol/FBCSeparationsInteractiveCeremony.h @@ -0,0 +1,19 @@ +// +// YMMonentsInteractiveProtocol.h +// YUMI +// +// Created by YUMI on 2022/5/18. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol FBCSeparationsInteractiveCeremony + +- (void)acquireSepartowardsionsCoactiveSttowardsementSueccess:(NSArray *)array state:(int)state; +- (void)acquireSepartowardsionsCoactiveSttowardsementFlunk:(NSString *)msg state:(int)state; +- (void)prohibititinctCoactiveCommunictowardsionAccomplishment; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMonents/Protocol/FBCSeparationsLatestCeremony.h b/YuMi/Modules/YMMonents/Protocol/FBCSeparationsLatestCeremony.h new file mode 100644 index 00000000..21f61055 --- /dev/null +++ b/YuMi/Modules/YMMonents/Protocol/FBCSeparationsLatestCeremony.h @@ -0,0 +1,20 @@ +// +// YMMonentsLatestProtocol.h +// YUMI +// +// Created by YUMI on 2022/5/18. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class SeparationsStatementAbstractMatrix; +@protocol FBCSeparationsLatestCeremony +- (void)acquireSepartowardsionsRecentlySttowardsementAccomplishment:(SeparationsStatementAbstractMatrix *)listAbstract state:(int)state; +- (void)acquireSepartowardsionsRecentlySttowardsementFlunk:(NSString *)msg state:(int)state; + +- (void)similarSepartowardsionsAccomplishment:(NSString *)dynamicId status:(BOOL)status; +- (void)representtowardsionSepartowardsionsAccomplishment:(NSString *)monentsInfo; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMonents/Protocol/FBCSeparationsManeCeremony.h b/YuMi/Modules/YMMonents/Protocol/FBCSeparationsManeCeremony.h new file mode 100644 index 00000000..4a0ac460 --- /dev/null +++ b/YuMi/Modules/YMMonents/Protocol/FBCSeparationsManeCeremony.h @@ -0,0 +1,18 @@ +// +// YMMonentsMineProtocol.h +// YUMI +// +// Created by YUMI on 2022/8/18. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol FBCSeparationsManeCeremony +- (void)similarSepartowardsionsAccomplishment:(NSString *)dynamicId status:(BOOL)status; + +- (void)representtowardsionSepartowardsionsAccomplishment:(NSString *)monentsInfo; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMonents/Protocol/FBCSeparationsMotifEncourageCeremony.h b/YuMi/Modules/YMMonents/Protocol/FBCSeparationsMotifEncourageCeremony.h new file mode 100644 index 00000000..cbcf3d15 --- /dev/null +++ b/YuMi/Modules/YMMonents/Protocol/FBCSeparationsMotifEncourageCeremony.h @@ -0,0 +1,23 @@ +// +// YMMonentsTopicRecommendProtocol.h +// YUMI +// +// Created by YUMI on 2022/8/18. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class SeparationsStatementAbstractMatrix; +@protocol FBCSeparationsMotifEncourageCeremony + +- (void)acquireSepartowardsionsMotifEncourageSttowardsementAccomplishment:(SeparationsStatementAbstractMatrix *)info state:(int)state; + +- (void)acquireSepartowardsionsMotifEncourageSttowardsementFlunk:(NSString *)msg state:(int)state; + +- (void)similarSepartowardsionsAccomplishment:(NSString *)dynamicId status:(BOOL)status; + +- (void)representtowardsionSepartowardsionsAccomplishment:(NSString *)monentsInfo; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMonents/Protocol/FBCSeparationsMotifLatestCeremony.h b/YuMi/Modules/YMMonents/Protocol/FBCSeparationsMotifLatestCeremony.h new file mode 100644 index 00000000..2a7612fa --- /dev/null +++ b/YuMi/Modules/YMMonents/Protocol/FBCSeparationsMotifLatestCeremony.h @@ -0,0 +1,22 @@ +// +// YMMonentsTopicLatestProtocol.h +// YUMI +// +// Created by YUMI on 2022/8/18. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class SeparationsStatementAbstractMatrix; +@protocol FBCSeparationsMotifLatestCeremony +- (void)acquireSepartowardsionsMotifRecentlySttowardsementAccomplishment:(SeparationsStatementAbstractMatrix *)info state:(int)state; + +- (void)acquireSepartowardsionsMotifRecentlySttowardsementFlunk:(NSString *)msg state:(int)state; + +- (void)similarSepartowardsionsAccomplishment:(NSString *)dynamicId status:(BOOL)status; + +- (void)representtowardsionSepartowardsionsAccomplishment:(NSString *)monentsInfo; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMonents/Protocol/FBCSeparationsMotifStatementCeremony.h b/YuMi/Modules/YMMonents/Protocol/FBCSeparationsMotifStatementCeremony.h new file mode 100644 index 00000000..e71ec80f --- /dev/null +++ b/YuMi/Modules/YMMonents/Protocol/FBCSeparationsMotifStatementCeremony.h @@ -0,0 +1,20 @@ +// +// YMMonentsTopicListProtocol.h +// YUMI +// +// Created by YUMI on 2022/8/18. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol FBCSeparationsMotifStatementCeremony +- (void)acquireSepartowardsionsMotifSttowardsementAccomplishment:(NSArray *)list state:(int)state; + +- (void)acquireMoentsMotifFlunk:(NSString *)message state:(int)state; + +- (void)representtowardsionSepartowardsionsAccomplishment:(NSString *)monentsInfo; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMonents/Protocol/FBCSeparationsPublishCeremony.h b/YuMi/Modules/YMMonents/Protocol/FBCSeparationsPublishCeremony.h new file mode 100644 index 00000000..c23d8135 --- /dev/null +++ b/YuMi/Modules/YMMonents/Protocol/FBCSeparationsPublishCeremony.h @@ -0,0 +1,18 @@ +// +// YMMonentsPublishProtocol.h +// YUMI +// +// Created by YUMI on 2022/7/1. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol FBCSeparationsPublishCeremony + +- (void)announceSepartowardsionsAccomplishment; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMonents/View/Cell/YUMIMomentStatementAssembletionRegardElement.h b/YuMi/Modules/YMMonents/View/Cell/YUMIMomentStatementAssembletionRegardElement.h new file mode 100644 index 00000000..e3e60d6a --- /dev/null +++ b/YuMi/Modules/YMMonents/View/Cell/YUMIMomentStatementAssembletionRegardElement.h @@ -0,0 +1,20 @@ +// +// YMMomentListCollectionViewCell.h +// YUMI +// +// Created by XY on 2023/2/16. +// + +#import + +@class SeparationsAbstractMatrix; + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIMomentStatementAssembletionRegardElement : UICollectionViewCell + +@property (nonatomic,strong) SeparationsAbstractMatrix *monentsInfo; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMonents/View/Cell/YUMIMomentStatementAssembletionRegardElement.m b/YuMi/Modules/YMMonents/View/Cell/YUMIMomentStatementAssembletionRegardElement.m new file mode 100644 index 00000000..9d40a4ce --- /dev/null +++ b/YuMi/Modules/YMMonents/View/Cell/YUMIMomentStatementAssembletionRegardElement.m @@ -0,0 +1,155 @@ +// +// YMMomentListCollectionViewCell.m +// YUMI +// +// Created by XY on 2023/2/16. +// + +#import "YUMIMomentStatementAssembletionRegardElement.h" +#import "DJDKMIMOMColor.h" +#import +#import "NetIndicateRegard.h" +#import "NSArray+Safe.h" + +#import "SeparationsAbstractMatrix.h" + +@interface YUMIMomentStatementAssembletionRegardElement() + +@property (nonatomic, strong) CAGradientLayer *backgroundLayer; +@property (nonatomic, strong) NetIndicateRegard *enshroudIndicateRegard; +@property (nonatomic, strong) UIButton *likeBtuton; +@property (nonatomic, strong) UILabel *computationSequencignation; +@property (nonatomic, strong) UILabel *titleLabel; +@property (nonatomic, strong) NetIndicateRegard *intelligenceportraitIndicateRegard; + +@end + +@implementation YUMIMomentStatementAssembletionRegardElement + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + self.contentView.layer.cornerRadius = 12; + self.contentView.clipsToBounds = YES; + [self produceUI]; + + } + return self; +} + +- (void)layoutSubviews { + [super layoutSubviews]; + self.backgroundLayer.frame = CGRectMake(0, self.contentView.bounds.size.height-78, self.contentView.bounds.size.width, 78); +} + +- (void)produceUI { + [self.contentView addSubview:self.enshroudIndicateRegard]; + [self.contentView.layer addSublayer:self.backgroundLayer]; + [self.contentView addSubview:self.likeBtuton]; + [self.contentView addSubview:self.computationSequencignation]; + [self.contentView addSubview:self.titleLabel]; + [self.contentView addSubview:self.intelligenceportraitIndicateRegard]; + + [self.enshroudIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.contentView); + }]; + [self.likeBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(8); + make.bottom.mas_equalTo(-12); + make.width.mas_equalTo(14); + make.height.mas_equalTo(14); + }]; + [self.computationSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.likeBtuton.mas_right).offset(2); + make.centerY.mas_equalTo(self.likeBtuton); + make.right.mas_lessThanOrEqualTo(-8); + }]; + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(8); + make.bottom.mas_equalTo(self.likeBtuton.mas_top).offset(-2); + make.right.mas_equalTo(-8); + }]; + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(-4); + make.bottom.mas_equalTo(-4); + make.width.height.mas_equalTo(24); + }]; +} + +#pragma mark - Getters And Setters +- (void)setMonentsInfo:(SeparationsAbstractMatrix *)monentsInfo { + _monentsInfo = monentsInfo; + if (_monentsInfo) { + if (_monentsInfo.dynamicResList.count > 0) { + SeparationsPicAbstractMatrix * picInfo = [_monentsInfo.dynamicResList secureGroalTowardsIndictowardsrix1:0]; + self.enshroudIndicateRegard.imageUrl = picInfo.resUrl; + }else{ + self.enshroudIndicateRegard.imageUrl = _monentsInfo.avatar; + } + self.intelligenceportraitIndicateRegard.imageUrl = _monentsInfo.avatar; + self.titleLabel.text = _monentsInfo.content; + self.likeBtuton.selected = _monentsInfo.isLike; + self.computationSequencignation.text = _monentsInfo.likeCount.length > 0 ? _monentsInfo.likeCount : @"0"; + } +} + +#pragma mark - 懒加载 + +- (CAGradientLayer *)backgroundLayer { + if (!_backgroundLayer) { + _backgroundLayer = [[CAGradientLayer alloc] init]; + _backgroundLayer.colors = @[(__bridge id)[UIColor.blackColor colorWithAlphaComponent:0].CGColor, (__bridge id)[UIColor.blackColor colorWithAlphaComponent:0.4].CGColor]; + _backgroundLayer.locations = @[@0, @1]; + _backgroundLayer.startPoint = CGPointMake(0.5, 0); + _backgroundLayer.endPoint = CGPointMake(0.5, 1); + } + return _backgroundLayer; +} + +- (NetIndicateRegard *)enshroudIndicateRegard { + if (!_enshroudIndicateRegard) { + _enshroudIndicateRegard = [[NetIndicateRegard alloc] init]; + _enshroudIndicateRegard.contentMode = UIViewContentModeScaleAspectFill; + } + return _enshroudIndicateRegard; +} + +- (UIButton *)likeBtuton { + if (!_likeBtuton) { + _likeBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_likeBtuton setImage:[UIImage imageNamed:@"yumi_monents_gen_like_count_normal"] forState:UIControlStateNormal]; + [_likeBtuton setImage:[UIImage imageNamed:@"yumi_monents_gen_like_count_select"] forState:UIControlStateSelected]; + } + return _likeBtuton; +} + +- (UILabel *)computationSequencignation { + if (!_computationSequencignation) { + _computationSequencignation = [[UILabel alloc] init]; + _computationSequencignation.textColor = UIColor.whiteColor; + _computationSequencignation.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium]; + } + return _computationSequencignation; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.textColor = UIColor.whiteColor; + _titleLabel.font = [UIFont systemFontOfSize:14 weight:UIFontWeightMedium]; + _titleLabel.numberOfLines = 5; + } + return _titleLabel; +} + +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] init]; + _intelligenceportraitIndicateRegard.contentMode = UIViewContentModeScaleAspectFill; + _intelligenceportraitIndicateRegard.layer.cornerRadius = 24/2; + _intelligenceportraitIndicateRegard.clipsToBounds = YES; + } + return _intelligenceportraitIndicateRegard; +} + +@end diff --git a/YuMi/Modules/YMMonents/View/Cell/YUMISeparationsAnnounceAssembletionRegardElement.h b/YuMi/Modules/YMMonents/View/Cell/YUMISeparationsAnnounceAssembletionRegardElement.h new file mode 100644 index 00000000..1617b930 --- /dev/null +++ b/YuMi/Modules/YMMonents/View/Cell/YUMISeparationsAnnounceAssembletionRegardElement.h @@ -0,0 +1,25 @@ +// +// YMMonentsPublishCollectionViewCell.h +// YUMI +// +// Created by YUMI on 2022/7/1. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class YUMISeparationsAnnounceAssembletionRegardElement; + +@protocol FBCSeparationsPublishAssembletionRegardElementRepresendtation + +- (void)YUMISeparationsAnnounceAssembletionRegardElement:(YUMISeparationsAnnounceAssembletionRegardElement *)view didDeleteItem:(UIImage *)image; + +@end + +@interface YUMISeparationsAnnounceAssembletionRegardElement : UICollectionViewCell +@property (nonatomic,strong) UIImage *image; +@property (nonatomic,assign) BOOL isExhibitRepresentation; +@property (nonatomic,weak) id delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMonents/View/Cell/YUMISeparationsAnnounceAssembletionRegardElement.m b/YuMi/Modules/YMMonents/View/Cell/YUMISeparationsAnnounceAssembletionRegardElement.m new file mode 100644 index 00000000..aabaac42 --- /dev/null +++ b/YuMi/Modules/YMMonents/View/Cell/YUMISeparationsAnnounceAssembletionRegardElement.m @@ -0,0 +1,89 @@ +// +// YMMonentsPublishCollectionViewCell.m +// YUMI +// +// Created by YUMI on 2022/7/1. +// + +#import "YUMISeparationsAnnounceAssembletionRegardElement.h" +#import + +@interface YUMISeparationsAnnounceAssembletionRegardElement () +@property (nonatomic,strong) UIImageView *brandIndicateRegard; +@property (nonatomic,strong) UIButton *representationBtuton; +@end + + +@implementation YUMISeparationsAnnounceAssembletionRegardElement + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor]; + [self.contentView addSubview:self.brandIndicateRegard]; + [self.contentView addSubview:self.representationBtuton]; +} + +- (void)initChildLyRestrictions { + [self.brandIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.contentView); + }]; + + [self.representationBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(20, 20)); + make.right.top.mas_equalTo(self.contentView); + }]; +} + +#pragma mark - Event Response +- (void)representtowardsionBtutonPerformance:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(YUMISeparationsAnnounceAssembletionRegardElement:didDeleteItem:)]) { + [self.delegate YUMISeparationsAnnounceAssembletionRegardElement:self didDeleteItem:self.image]; + } +} + +#pragma mark - Getters And Setters +- (void)setImage:(UIImage *)image { + _image = image; + if (_image) { + self.brandIndicateRegard.image = _image; + } +} + +- (void)setIsExhibitRepresentation:(BOOL)isExhibitRepresentation { + _isExhibitRepresentation = isExhibitRepresentation; + self.representationBtuton.hidden = !_isExhibitRepresentation; +} + +- (UIImageView *)brandIndicateRegard { + if (!_brandIndicateRegard) { + _brandIndicateRegard = [[UIImageView alloc] init]; + _brandIndicateRegard.userInteractionEnabled = YES; + _brandIndicateRegard.layer.masksToBounds = YES; + _brandIndicateRegard.layer.cornerRadius = 10; + _brandIndicateRegard.contentMode = UIViewContentModeScaleAspectFill; + _brandIndicateRegard.layer.masksToBounds = YES; + } + return _brandIndicateRegard; +} + +- (UIButton *)representationBtuton { + if (!_representationBtuton) { + _representationBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_representationBtuton setImage:[UIImage imageNamed:@"yumi_monents_publish_album_delete"] forState:UIControlStateNormal]; + [_representationBtuton setImage:[UIImage imageNamed:@"yumi_monents_publish_album_delete"] forState:UIControlStateSelected]; + [_representationBtuton addTarget:self action:@selector(representtowardsionBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _representationBtuton; +} + +@end diff --git a/YuMi/Modules/YMMonents/View/Cell/YUMISeparationsCoactiveTabulationRegardElement.h b/YuMi/Modules/YMMonents/View/Cell/YUMISeparationsCoactiveTabulationRegardElement.h new file mode 100644 index 00000000..d5e9d756 --- /dev/null +++ b/YuMi/Modules/YMMonents/View/Cell/YUMISeparationsCoactiveTabulationRegardElement.h @@ -0,0 +1,16 @@ +// +// YMMonentsInteractiveTableViewCell.h +// YUMI +// +// Created by YUMI on 2022/5/19. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class SeparationsCoactiveMatrix; +@interface YUMISeparationsCoactiveTabulationRegardElement : UITableViewCell +@property (nonatomic,strong) SeparationsCoactiveMatrix *interactiveAbstract; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMonents/View/Cell/YUMISeparationsCoactiveTabulationRegardElement.m b/YuMi/Modules/YMMonents/View/Cell/YUMISeparationsCoactiveTabulationRegardElement.m new file mode 100644 index 00000000..a235903b --- /dev/null +++ b/YuMi/Modules/YMMonents/View/Cell/YUMISeparationsCoactiveTabulationRegardElement.m @@ -0,0 +1,292 @@ +// +// YMMonentsInteractiveTableViewCell.m +// YUMI +// +// Created by YUMI on 2022/5/19. +// + +#import "YUMISeparationsCoactiveTabulationRegardElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "NetIndicateRegard.h" +#import "YUMIMacroUitls.h" +#import "UIImage+Utils.h" +#import "SeparationsCoactiveMatrix.h" + +@interface YUMISeparationsCoactiveTabulationRegardElement () +@property (nonatomic,strong) UIStackView *stackView; +@property (nonatomic,strong) UIButton *motifBtuton; +@property (nonatomic,strong) UIView * abstractRegard; +@property (nonatomic,strong) NetIndicateRegard *intelligenceportraitIndicateRegard; +@property (nonatomic,strong) UILabel *monicerSequencignation; +@property (nonatomic,strong) UIImageView *seaxualityIndicateRegard; +@property (nonatomic,strong) UILabel *judgementSequencignation; +@property (nonatomic,strong) UILabel *satisfperformanceSequencignation; +@property (nonatomic,strong) UILabel *intratemporalSequencignation; +@property (nonatomic,strong) NetIndicateRegard *dynaloudspeakerIndicateRegard; +@property (nonatomic,strong) UILabel *dynaloudspeakerSequencignation; +@property (nonatomic,strong) UIView * burlywoodRegard; +@property (nonatomic,strong) NSDateFormatter *atoloudspeakerInitialiser; +@end +@implementation YUMISeparationsCoactiveTabulationRegardElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify]; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.stackView]; + + [self.stackView addArrangedSubview:self.motifBtuton]; + [self.stackView addArrangedSubview:self.abstractRegard]; + + + [self.abstractRegard addSubview:self.intelligenceportraitIndicateRegard]; + [self.abstractRegard addSubview:self.monicerSequencignation]; + [self.abstractRegard addSubview:self.seaxualityIndicateRegard]; + [self.abstractRegard addSubview:self.judgementSequencignation]; + [self.abstractRegard addSubview:self.satisfperformanceSequencignation]; + [self.abstractRegard addSubview:self.intratemporalSequencignation]; + [self.abstractRegard addSubview:self.dynaloudspeakerIndicateRegard]; + [self.abstractRegard addSubview:self.dynaloudspeakerSequencignation]; + [self.abstractRegard addSubview:self.burlywoodRegard]; +} + +- (void)initChildLyRestrictions { + [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.contentView).inset(15); + make.top.mas_equalTo(self.contentView).offset(10); + make.bottom.mas_equalTo(self.contentView); + }]; + + [self.motifBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(30); + make.width.mas_equalTo(50); + }]; + + [self.abstractRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(KScreenWidth- 15 * 2); + }]; + + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(44, 44)); + make.left.top.mas_equalTo(self.abstractRegard); + }]; + + [self.monicerSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_right).offset(10); + make.top.mas_equalTo(self.intelligenceportraitIndicateRegard); + }]; + + [self.seaxualityIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(15, 15)); + make.centerY.mas_equalTo(self.monicerSequencignation); + make.left.mas_equalTo(self.monicerSequencignation.mas_right).offset(2); + }]; + + [self.judgementSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.monicerSequencignation); + make.left.mas_equalTo(self.seaxualityIndicateRegard.mas_right).offset(2); + }]; + + [self.satisfperformanceSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.monicerSequencignation.mas_bottom).offset(10); + make.left.mas_equalTo(self.monicerSequencignation); + make.right.mas_lessThanOrEqualTo(self.dynaloudspeakerIndicateRegard.mas_left).offset(-5); + }]; + + [self.intratemporalSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.monicerSequencignation); + make.top.mas_equalTo(self.satisfperformanceSequencignation.mas_bottom).offset(10); + }]; + + + [self.dynaloudspeakerIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(60, 60)); + make.right.mas_equalTo(self.abstractRegard); + make.centerY.mas_equalTo(self.abstractRegard); + }]; + + [self.dynaloudspeakerSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.right.mas_equalTo(self.dynaloudspeakerIndicateRegard); + }]; + + [self.burlywoodRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.monicerSequencignation); + make.right.mas_equalTo(self.abstractRegard); + make.height.mas_equalTo(1); + make.bottom.mas_equalTo(self.abstractRegard); + }]; +} +#pragma mark - Getters And Setters +- (void)setInteractiveAbstract:(SeparationsCoactiveMatrix *)interactiveAbstract { + _interactiveAbstract = interactiveAbstract; + if (_interactiveAbstract) { + self.motifBtuton.hidden = _interactiveAbstract.worldName.length <=0; + [self.motifBtuton setTitle:_interactiveAbstract.worldName forState:UIControlStateNormal]; + self.intelligenceportraitIndicateRegard.imageUrl = _interactiveAbstract.avatar; + NSString * nick = interactiveAbstract.nick; + if (nick.length > 6) { + nick = [NSString stringWithFormat:@"%@…", [nick substringToIndex:6]]; + } + self.monicerSequencignation.text = nick.length > 0 ? nick : @""; + self.seaxualityIndicateRegard.image = _interactiveAbstract.gender == GenderGenre_Female ? [UIImage imageNamed:@"yumi_same_female"] : [UIImage imageNamed:@"yumi_same_male"]; + BOOL isComment = _interactiveAbstract.actionType == MonentsInteractiveActionGenre_Comment; + self.judgementSequencignation.text = isComment ? YMLocalizedString(@"YUMI_Monents_Interactive_Table_View_Cell_0") : @""; + BOOL isText = _interactiveAbstract.type == MonentsContentGenre_Text; + self.dynaloudspeakerIndicateRegard.hidden = isText; + self.dynaloudspeakerSequencignation.hidden = !isText; + if (isText) { + self.dynaloudspeakerSequencignation.text = _interactiveAbstract.content; + } else { + self.dynaloudspeakerIndicateRegard.imageUrl = _interactiveAbstract.dynamicRes.resUrl; + } + self.satisfperformanceSequencignation.text = _interactiveAbstract.message; + + NSDate *date = [NSDate dateWithTimeIntervalSince1970:_interactiveAbstract.publishTime.floatValue/1000]; + NSString *dateString = [self.atoloudspeakerInitialiser stringFromDate:date]; + self.intratemporalSequencignation.text = dateString; + + CGFloat width = [_interactiveAbstract.worldName boundingRectWithSize:CGSizeMake(150,CGFLOAT_MAX) options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingTruncatesLastVisibleLine attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:12]} context:nil].size.width + 10; + [self.motifBtuton mas_updateConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(width); + }]; + } +} + +- (UIStackView *)stackView { + if (!_stackView) { + _stackView = [[UIStackView alloc] init]; + _stackView.axis = UILayoutConstraintAxisVertical; + _stackView.distribution = UIStackViewDistributionFill; + _stackView.alignment = UIStackViewAlignmentLeading; + _stackView.spacing = 10; + } + return _stackView; +} + +- (UIButton *)motifBtuton { + if (!_motifBtuton) { + _motifBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_motifBtuton setTitle:YMLocalizedString(@"YUMI_Monents_Interactive_Table_View_Cell_1") forState:UIControlStateNormal]; + [_motifBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + _motifBtuton.titleLabel.font = [UIFont systemFontOfSize:12]; + [_motifBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + _motifBtuton.layer.masksToBounds = YES; + _motifBtuton.layer.cornerRadius = 15; + } + return _motifBtuton; +} + +- (UIView *)abstractRegard { + if (!_abstractRegard) { + _abstractRegard = [[UIView alloc] init]; + _abstractRegard.backgroundColor = [UIColor clearColor]; + } + return _abstractRegard; +} + +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _intelligenceportraitIndicateRegard.layer.cornerRadius = 22; + } + return _intelligenceportraitIndicateRegard; +} + +- (UILabel *)monicerSequencignation { + if (!_monicerSequencignation) { + _monicerSequencignation = [[UILabel alloc] init]; + _monicerSequencignation.font = [UIFont systemFontOfSize:15]; + _monicerSequencignation.textColor = [DJDKMIMOMColor essayTertiusPrettify]; + } + return _monicerSequencignation; +} + +- (UIImageView *)seaxualityIndicateRegard { + if (!_seaxualityIndicateRegard) { + _seaxualityIndicateRegard = [[UIImageView alloc] init]; + _seaxualityIndicateRegard.userInteractionEnabled = YES; + } + return _seaxualityIndicateRegard; +} + +- (UILabel *)judgementSequencignation { + if (!_judgementSequencignation) { + _judgementSequencignation = [[UILabel alloc] init]; + _judgementSequencignation.font = [UIFont systemFontOfSize:15]; + _judgementSequencignation.textColor = [DJDKMIMOMColor essayTertiusPrettify]; + } + return _judgementSequencignation; +} + +- (UILabel *)satisfperformanceSequencignation { + if (!_satisfperformanceSequencignation) { + _satisfperformanceSequencignation = [[UILabel alloc] init]; + _satisfperformanceSequencignation.font = [UIFont systemFontOfSize:15]; + _satisfperformanceSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _satisfperformanceSequencignation; +} + +- (UILabel *)intratemporalSequencignation { + if (!_intratemporalSequencignation) { + _intratemporalSequencignation = [[UILabel alloc] init]; + _intratemporalSequencignation.font = [UIFont systemFontOfSize:12]; + _intratemporalSequencignation.textColor = [DJDKMIMOMColor essayTertiusPrettify]; + } + return _intratemporalSequencignation; +} + +- (NetIndicateRegard *)dynaloudspeakerIndicateRegard { + if (!_dynaloudspeakerIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _dynaloudspeakerIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _dynaloudspeakerIndicateRegard.layer.masksToBounds = YES; + _dynaloudspeakerIndicateRegard.layer.cornerRadius = 8; + _dynaloudspeakerIndicateRegard.contentMode = UIViewContentModeScaleAspectFill; + } + return _dynaloudspeakerIndicateRegard; +} + +- (UILabel *)dynaloudspeakerSequencignation { + if (!_dynaloudspeakerSequencignation) { + _dynaloudspeakerSequencignation = [[UILabel alloc] init]; + _dynaloudspeakerSequencignation.font = [UIFont systemFontOfSize:12]; + _dynaloudspeakerSequencignation.textColor = [DJDKMIMOMColor essayTertiusPrettify]; + } + return _dynaloudspeakerSequencignation; +} + +- (UIView *)burlywoodRegard { + if (!_burlywoodRegard) { + _burlywoodRegard = [[UIView alloc] init]; + _burlywoodRegard.backgroundColor = [DJDKMIMOMColor dividerPrettify]; + } + return _burlywoodRegard; +} + +- (NSDateFormatter *)atoloudspeakerInitialiser { + if (!_atoloudspeakerInitialiser) { + NSDateFormatter *engagementInitialiser = [[NSDateFormatter alloc] init]; + [engagementInitialiser setDateFormat:@"yyyy-MM-dd HH:mm"]; + _atoloudspeakerInitialiser = engagementInitialiser; + } + return _atoloudspeakerInitialiser; +} + + +@end diff --git a/YuMi/Modules/YMMonents/View/Cell/YUMISeparationsDispossessTabulationRegardElement.h b/YuMi/Modules/YMMonents/View/Cell/YUMISeparationsDispossessTabulationRegardElement.h new file mode 100644 index 00000000..3e060e90 --- /dev/null +++ b/YuMi/Modules/YMMonents/View/Cell/YUMISeparationsDispossessTabulationRegardElement.h @@ -0,0 +1,16 @@ +// +// YMMonentsEmptyTableViewCell.h +// YUMI +// +// Created by YUMI on 2022/5/13. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMISeparationsDispossessTabulationRegardElement : UITableViewCell + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMonents/View/Cell/YUMISeparationsDispossessTabulationRegardElement.m b/YuMi/Modules/YMMonents/View/Cell/YUMISeparationsDispossessTabulationRegardElement.m new file mode 100644 index 00000000..3ccd085d --- /dev/null +++ b/YuMi/Modules/YMMonents/View/Cell/YUMISeparationsDispossessTabulationRegardElement.m @@ -0,0 +1,70 @@ +// +// YMMonentsEmptyTableViewCell.m +// YUMI +// +// Created by YUMI on 2022/5/13. +// + +#import "YUMISeparationsDispossessTabulationRegardElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "UIIndicateConstant.h" + +@interface YUMISeparationsDispossessTabulationRegardElement () +@property (nonatomic,strong) UIImageView *dispossessIndicateRegard; +@property (nonatomic,strong) UILabel *titleLabel; +@end + +@implementation YUMISeparationsDispossessTabulationRegardElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor]; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.dispossessIndicateRegard]; + [self.contentView addSubview:self.titleLabel]; +} + +- (void)initChildLyRestrictions { + [self.dispossessIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.contentView).offset(150); + make.centerX.mas_equalTo(self.contentView); + make.size.mas_equalTo(CGSizeMake(200, 200)); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.dispossessIndicateRegard.mas_bottom).offset(20); + make.left.right.mas_equalTo(self.contentView); + }]; +} +#pragma mark - Getters And Setters +- (UIImageView *)dispossessIndicateRegard { + if (!_dispossessIndicateRegard) { + _dispossessIndicateRegard = [[UIImageView alloc] init]; + _dispossessIndicateRegard.userInteractionEnabled = YES; + _dispossessIndicateRegard.image = [UIIndicateConstant defalutDispossessDepapossessor]; + _dispossessIndicateRegard.layer.masksToBounds = YES; + _dispossessIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _dispossessIndicateRegard; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.text = YMLocalizedString(@"YUMI_Monents_Empty_Table_View_Cell_0"); + _titleLabel.font = [UIFont systemFontOfSize:16]; + _titleLabel.textAlignment = NSTextAlignmentCenter; + _titleLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + } + return _titleLabel; +} + +@end diff --git a/YuMi/Modules/YMMonents/View/Cell/YUMISeparationsJudgementTabulationRegardElement.h b/YuMi/Modules/YMMonents/View/Cell/YUMISeparationsJudgementTabulationRegardElement.h new file mode 100644 index 00000000..837c6b7f --- /dev/null +++ b/YuMi/Modules/YMMonents/View/Cell/YUMISeparationsJudgementTabulationRegardElement.h @@ -0,0 +1,24 @@ +// +// YMMonentsCommentTableViewCell.h +// YUMI +// +// Created by YUMI on 2022/6/22. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class SeparationsJudgementMatrix, YUMISeparationsJudgementTabulationRegardElement, SeparationsReplicationMatrix; + +@protocol FBCSeparationsCommentTabulationViweElementRepresendtation +- (void)yUMISepartowardsionsJudgementTarbsultowardsionViweElement:(YUMISeparationsJudgementTabulationRegardElement *)view didClickMoreReply:(SeparationsJudgementMatrix *)judgementAbstract; +- (void)yUMISepartowardsionsJudgementTarbsultowardsionViweElement:(YUMISeparationsJudgementTabulationRegardElement *)view didClickCommon:(SeparationsReplicationMatrix *)judgementAbstract; +- (void)yUMISepartowardsionsJudgementTarbsultowardsionViweElement:(YUMISeparationsJudgementTabulationRegardElement *)view didClickAvatar:(NSString *)judgementAbstract; +@end + +@interface YUMISeparationsJudgementTabulationRegardElement : UITableViewCell +@property (nonatomic,strong) SeparationsJudgementMatrix *judgementAbstract; +@property (nonatomic,weak) id delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMonents/View/Cell/YUMISeparationsJudgementTabulationRegardElement.m b/YuMi/Modules/YMMonents/View/Cell/YUMISeparationsJudgementTabulationRegardElement.m new file mode 100644 index 00000000..ae4e0e25 --- /dev/null +++ b/YuMi/Modules/YMMonents/View/Cell/YUMISeparationsJudgementTabulationRegardElement.m @@ -0,0 +1,361 @@ +// +// YMMonentsCommentTableViewCell.m +// YUMI +// +// Created by YUMI on 2022/6/22. +// + +#import "YUMISeparationsJudgementTabulationRegardElement.h" +#import +#import +#import "NetIndicateRegard.h" +#import "DJDKMIMOMColor.h" +#import "YUMISeparationsProgrammingDisposition.h" +#import "NSString+Utils.h" +#import "MHTSpiritFacilitater.h" +#import "AccountAbstractStorage.h" +#import "NSArray+Safe.h" +#import "SeparationsJudgementMatrix.h" +#import "YUMISeparationsReplicationTabulationRegardElement.h" +#import "YUMISeparationsReplicationFurthaerTabulationRegardElement.h" + +@interface YUMISeparationsJudgementTabulationRegardElement () +@property (nonatomic,strong) UIStackView *stackView; +@property (nonatomic,strong) UIView * judgementConsumerRegard; +@property (nonatomic,strong) NetIndicateRegard *judgementIntelligenceportraitRegard; +@property (nonatomic,strong) UILabel *judgementMonicerSequencignation; +@property (nonatomic,strong) UIImageView *maintainrietaryIndicateRegard; +@property (nonatomic,strong) YYLabel *judgementSequencignation; +@property (nonatomic,strong) UILabel *judgementEngagementSequencignation; +@property (nonatomic,strong) UITableView *tableView; +@property (nonatomic,strong) UIView * burlywoodAccommoengagementdRegard; +@property (nonatomic,strong) UIView * burlywoodRegard; +@property (nonatomic,strong) NSArray *datasource; +@end + +@implementation YUMISeparationsJudgementTabulationRegardElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method + +- (void)initSubViews { + self.backgroundColor = [DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify]; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.stackView]; + [self.stackView addArrangedSubview:self.judgementConsumerRegard]; + [self.stackView addArrangedSubview:self.tableView]; + [self.stackView addArrangedSubview:self.burlywoodAccommoengagementdRegard]; + + [self.burlywoodAccommoengagementdRegard addSubview:self.burlywoodRegard]; + + [self.judgementConsumerRegard addSubview:self.judgementIntelligenceportraitRegard]; + [self.judgementConsumerRegard addSubview:self.judgementMonicerSequencignation]; + [self.judgementConsumerRegard addSubview:self.maintainrietaryIndicateRegard]; + [self.judgementConsumerRegard addSubview:self.judgementSequencignation]; + [self.judgementConsumerRegard addSubview:self.judgementEngagementSequencignation]; +} + +- (void)initChildLyRestrictions { + if ([self.reuseIdentifier isEqualToString:NSStringFromClass([YUMISeparationsJudgementTabulationRegardElement class])]) { + + [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.left.mas_equalTo(self.contentView).inset(15); + make.top.bottom.mas_equalTo(self.contentView); + }]; + + [self.burlywoodAccommoengagementdRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(1); + }]; + + + [self.burlywoodRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.judgementMonicerSequencignation); + make.top.bottom.right.mas_equalTo(self.burlywoodAccommoengagementdRegard); + }]; + + [self.judgementIntelligenceportraitRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(KMONENTS_COMMENT_AVATAR_WIDTH, KMONENTS_COMMENT_AVATAR_WIDTH)); + make.left.mas_equalTo(self.judgementConsumerRegard); + make.top.mas_equalTo(self.judgementConsumerRegard).offset(10); + }]; + + [self.judgementMonicerSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.judgementIntelligenceportraitRegard.mas_right).offset(10); + make.top.mas_equalTo(self.judgementConsumerRegard).offset(10); + make.height.mas_equalTo(15); + }]; + + [self.maintainrietaryIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(32, 15)); + make.centerY.mas_equalTo(self.judgementMonicerSequencignation); + make.left.mas_equalTo(self.judgementMonicerSequencignation.mas_right).offset(5); + }]; + + [self.judgementEngagementSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self.judgementConsumerRegard); + make.centerY.mas_equalTo(self.judgementMonicerSequencignation); + }]; + + [self.judgementSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.judgementMonicerSequencignation); + make.top.mas_equalTo(self.judgementMonicerSequencignation.mas_bottom).offset(10); + make.right.mas_equalTo(self.judgementConsumerRegard).offset(-kMONENTS_COMMENT_RIGHT_PADDING); + }]; + + }else{ + [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.left.mas_equalTo(self.contentView).inset(15); + make.top.bottom.mas_equalTo(self.contentView); + }]; + + [self.burlywoodAccommoengagementdRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(1); + }]; + + [self.burlywoodRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.judgementMonicerSequencignation); + make.top.bottom.right.mas_equalTo(self.burlywoodAccommoengagementdRegard); + }]; + + [self.judgementIntelligenceportraitRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(KMONENTS_COMMENT_AVATAR_WIDTH, KMONENTS_COMMENT_AVATAR_WIDTH)); + make.left.mas_equalTo(self.judgementConsumerRegard); + make.top.mas_equalTo(self.judgementConsumerRegard).offset(10); + }]; + + [self.judgementMonicerSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.judgementIntelligenceportraitRegard.mas_right).offset(10); + make.top.mas_equalTo(self.judgementConsumerRegard).offset(10); + make.height.mas_equalTo(15); + }]; + + [self.maintainrietaryIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(32, 15)); + make.centerY.mas_equalTo(self.judgementMonicerSequencignation); + make.left.mas_equalTo(self.judgementMonicerSequencignation.mas_right).offset(5); + }]; + + [self.judgementEngagementSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self.judgementConsumerRegard); + make.centerY.mas_equalTo(self.judgementMonicerSequencignation); + }]; + + [self.judgementSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.judgementMonicerSequencignation); + make.top.mas_equalTo(self.judgementMonicerSequencignation.mas_bottom).offset(10); + make.right.mas_equalTo(self.judgementConsumerRegard).offset(-kMONENTS_COMMENT_RIGHT_PADDING); + }]; + } +} + +#pragma mark - UITableViewDelegate And UITableViewDataSource +- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { + return 2; +} + +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + if (section == 0) { + return self.datasource.count; + } + return self.judgementAbstract.replyInfo.leftCount > 0 ? 1 : 0; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + if (indexPath.section == 0) { + SeparationsReplicationMatrix * replayinfo = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + return replayinfo.replyRowHeight; + } + return 44; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + if (indexPath.section == 0) { + YUMISeparationsReplicationTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMISeparationsReplicationTabulationRegardElement class])]; + cell.replyInfo = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + cell.delegate = self; + return cell; + } + YUMISeparationsReplicationFurthaerTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMISeparationsReplicationFurthaerTabulationRegardElement class])]; + cell.leftCount = self.judgementAbstract.replyInfo.leftCount; + cell.delegate = self; + return cell; +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + [tableView deselectRowAtIndexPath:indexPath animated:YES]; + if (indexPath.section == 0 && self.datasource.count > 0) { + SeparationsReplicationMatrix * replyInfo = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + if (replyInfo.uid.integerValue != [AccountAbstractStorage instance].acquireCid.integerValue && self.delegate && [self.delegate respondsToSelector:@selector(yUMISepartowardsionsJudgementTarbsultowardsionViweElement:didClickCommon:)]) { + [self.delegate yUMISepartowardsionsJudgementTarbsultowardsionViweElement:self didClickCommon:replyInfo]; + } + } +} + +#pragma mark - FBCSeparationsReplyTabulationViweElementRepresendtation +- (void)yUMISepartowardsionsReplictowardsionTarbsultowardsionViweElement:(YUMISeparationsReplicationTabulationRegardElement *)view didClickAvatar:(SeparationsReplicationMatrix *)replyInfo { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMISepartowardsionsJudgementTarbsultowardsionViweElement:didClickAvatar:)]) { + [self.delegate yUMISepartowardsionsJudgementTarbsultowardsionViweElement:self didClickAvatar:replyInfo.uid]; + } +} + +#pragma mark - FBCSeparationsReplyFurthaerTabulationViweElementRepresendtation +- (void)yUMISepartowardsionsReplictowardsionFurthaerTarbsultowardsionViweElementDidTicktackFurthaerReplictowardsion:(YUMISeparationsReplicationFurthaerTabulationRegardElement *)view { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMISepartowardsionsJudgementTarbsultowardsionViweElement:didClickMoreReply:)]) { + [self.delegate yUMISepartowardsionsJudgementTarbsultowardsionViweElement:self didClickMoreReply:self.judgementAbstract]; + } +} + +#pragma mark - Event Response +- (void)betowardsIntelligenceportraitRecognition { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMISepartowardsionsJudgementTarbsultowardsionViweElement:didClickAvatar:)]) { + [self.delegate yUMISepartowardsionsJudgementTarbsultowardsionViweElement:self didClickAvatar:self.judgementAbstract.uid]; + } +} + +#pragma mark - Getters And Setters +- (void)setJudgementAbstract:(SeparationsJudgementMatrix *)judgementAbstract { + _judgementAbstract = judgementAbstract; + if (_judgementAbstract) { + self.maintainrietaryIndicateRegard.hidden = !_judgementAbstract.landLordFlag; + self.judgementIntelligenceportraitRegard.imageUrl = _judgementAbstract.avatar; + NSString * nick = _judgementAbstract.nick; + if (nick.length > 8) { + nick = [nick substringToIndex:8]; + } + MHTSpiritFacilitater *faceManager = [MHTSpiritFacilitater partowardsiciptowardsiondSenintrtowardsemporalntFacilittowardseer]; + + NSMutableAttributedString * attribute = [faceManager towardstributedBWSttrByEssay:_judgementAbstract.content font:[UIFont systemFontOfSize:15]]; + self.judgementSequencignation.attributedText = attribute; + self.judgementMonicerSequencignation.text = nick; + self.judgementEngagementSequencignation.text = [NSString sttriAboutIntrtowardsemporalStamp:_judgementAbstract.publishTime]; + self.tableView.hidden = _judgementAbstract.replyInfo.replyList.count <=0; + self.datasource = _judgementAbstract.replyInfo.replyList; + [self.tableView reloadData]; + if (_judgementAbstract.replyInfo.replyList.count > 0) { + NSString * content = _judgementAbstract.content.length > 0 ? _judgementAbstract.content : @""; + CGFloat commentHeight = [content boundingRectWithSize:CGSizeMake(KMONENTS_COMMENT_MAX_WIDTH, CGFLOAT_MAX) options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingTruncatesLastVisibleLine attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:15]} context:nil].size.height + 5; + commentHeight = MAX(commentHeight, 15); + [self.judgementConsumerRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(commentHeight + 10 + 15 + 10); + }]; + } + + } +} + +- (UIStackView *)stackView { + if (!_stackView) { + _stackView = [[UIStackView alloc] init]; + _stackView.axis = UILayoutConstraintAxisVertical; + _stackView.distribution = UIStackViewDistributionFill; + _stackView.alignment = UIStackViewAlignmentFill; + _stackView.spacing = 10; + } + return _stackView; +} + +- (UIView *)judgementConsumerRegard { + if (!_judgementConsumerRegard) { + _judgementConsumerRegard = [[UIView alloc] init]; + _judgementConsumerRegard.backgroundColor = [UIColor clearColor]; + } + return _judgementConsumerRegard; +} + +- (NetIndicateRegard *)judgementIntelligenceportraitRegard { + if (!_judgementIntelligenceportraitRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _judgementIntelligenceportraitRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _judgementIntelligenceportraitRegard.layer.masksToBounds = YES; + _judgementIntelligenceportraitRegard.layer.cornerRadius = 45/2.0; + _judgementIntelligenceportraitRegard.userInteractionEnabled = YES; + UITapGestureRecognizer * tap= [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(betowardsIntelligenceportraitRecognition)]; + [_judgementIntelligenceportraitRegard addGestureRecognizer:tap]; + } + return _judgementIntelligenceportraitRegard; +} + +- (UILabel *)judgementMonicerSequencignation { + if (!_judgementMonicerSequencignation) { + _judgementMonicerSequencignation = [[UILabel alloc] init]; + _judgementMonicerSequencignation.font = [UIFont systemFontOfSize:15 weight:UIFontWeightMedium]; + _judgementMonicerSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + [_judgementMonicerSequencignation sizeToFit]; + } + return _judgementMonicerSequencignation; +} + +- (YYLabel *)judgementSequencignation { + if (!_judgementSequencignation) { + _judgementSequencignation = [[YYLabel alloc] init]; + _judgementSequencignation.font = [UIFont systemFontOfSize:15]; + _judgementSequencignation.numberOfLines = 0; + _judgementSequencignation.textColor = [DJDKMIMOMColor instantEssayPrettify]; + _judgementSequencignation.preferredMaxLayoutWidth = KMONENTS_COMMENT_MAX_WIDTH; + } + return _judgementSequencignation; +} + +- (UILabel *)judgementEngagementSequencignation { + if (!_judgementEngagementSequencignation) { + _judgementEngagementSequencignation = [[UILabel alloc] init]; + _judgementEngagementSequencignation.font = [UIFont systemFontOfSize:12]; + _judgementEngagementSequencignation.textColor = [DJDKMIMOMColor essayTertiusPrettify]; + } + return _judgementEngagementSequencignation; +} + +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.tableFooterView = [UIView new]; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.backgroundColor = [UIColor clearColor]; + _tableView.scrollEnabled = NO; + if (@available(iOS 11.0, *)) { + _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + [_tableView registerClass:[YUMISeparationsReplicationTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMISeparationsReplicationTabulationRegardElement class])]; + [_tableView registerClass:[YUMISeparationsReplicationFurthaerTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMISeparationsReplicationFurthaerTabulationRegardElement class])]; + } + return _tableView; +} + +- (UIView *)burlywoodRegard { + if (!_burlywoodRegard) { + _burlywoodRegard = [[UIView alloc] init]; + _burlywoodRegard.backgroundColor = [DJDKMIMOMColor dividerPrettify]; + } + return _burlywoodRegard; +} + +- (UIView *)burlywoodAccommoengagementdRegard { + if (!_burlywoodAccommoengagementdRegard) { + _burlywoodAccommoengagementdRegard = [[UIView alloc] init]; + _burlywoodAccommoengagementdRegard.backgroundColor = [UIColor clearColor]; + } + return _burlywoodAccommoengagementdRegard; +} + +- (UIImageView *)maintainrietaryIndicateRegard { + if (!_maintainrietaryIndicateRegard) { + _maintainrietaryIndicateRegard = [[UIImageView alloc] init]; + _maintainrietaryIndicateRegard.userInteractionEnabled = YES; + _maintainrietaryIndicateRegard.image = [UIImage imageNamed:@"yumi_monents_same_landLordFlag"]; + _maintainrietaryIndicateRegard.hidden = YES; + } + return _maintainrietaryIndicateRegard; +} + +@end diff --git a/YuMi/Modules/YMMonents/View/Cell/YUMISeparationsMotifAssembletionRegardElement.h b/YuMi/Modules/YMMonents/View/Cell/YUMISeparationsMotifAssembletionRegardElement.h new file mode 100644 index 00000000..c294d611 --- /dev/null +++ b/YuMi/Modules/YMMonents/View/Cell/YUMISeparationsMotifAssembletionRegardElement.h @@ -0,0 +1,16 @@ +// +// YMMonentsTopicCollectionViewCell.h +// YUMI +// +// Created by YUMI on 2022/5/18. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class SeparationsMotifMatrix; +@interface YUMISeparationsMotifAssembletionRegardElement : UICollectionViewCell +@property (nonatomic,strong) SeparationsMotifMatrix *motifAbstract; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMonents/View/Cell/YUMISeparationsMotifAssembletionRegardElement.m b/YuMi/Modules/YMMonents/View/Cell/YUMISeparationsMotifAssembletionRegardElement.m new file mode 100644 index 00000000..918cde0d --- /dev/null +++ b/YuMi/Modules/YMMonents/View/Cell/YUMISeparationsMotifAssembletionRegardElement.m @@ -0,0 +1,95 @@ +// +// YMMonentsTopicCollectionViewCell.m +// YUMI +// +// Created by YUMI on 2022/5/18. +// + +#import "YUMISeparationsMotifAssembletionRegardElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "UIImage+Utils.h" +#import "NetIndicateRegard.h" +#import "SeparationsMotifMatrix.h" + +@interface YUMISeparationsMotifAssembletionRegardElement () + +@property (nonatomic,strong) NetIndicateRegard *motifIndicateRegard; +@property (nonatomic,strong) UIImageView *figureIndicateRegard; +@property (nonatomic,strong) UILabel *motifSequencignation; + +@end + +@implementation YUMISeparationsMotifAssembletionRegardElement + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} +#pragma mark - Private Method +- (void)initSubViews { + [self.contentView addSubview:self.motifIndicateRegard]; + [self.motifIndicateRegard addSubview:self.figureIndicateRegard]; + [self.motifIndicateRegard addSubview:self.motifSequencignation]; +} + +- (void)initChildLyRestrictions { + [self.motifIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.contentView); + }]; + + [self.figureIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.mas_equalTo(self.motifIndicateRegard); + make.height.mas_equalTo(30); + }]; + + [self.motifSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.motifIndicateRegard).inset(2); + make.bottom.mas_equalTo(self.motifIndicateRegard.mas_bottom).offset(-6); + }]; +} + +#pragma mark - Getters And Setters +- (void)setMotifAbstract:(SeparationsMotifMatrix *)motifAbstract { + _motifAbstract = motifAbstract; + if (_motifAbstract) { + self.motifSequencignation.text = [NSString stringWithFormat:@"#%@", _motifAbstract.name]; + self.motifIndicateRegard.imageUrl = _motifAbstract.icon; + } +} + +- (NetIndicateRegard *)motifIndicateRegard { + if (!_motifIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _motifIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _motifIndicateRegard.layer.masksToBounds = YES; + _motifIndicateRegard.layer.cornerRadius = 12; + _motifIndicateRegard.contentMode = UIViewContentModeScaleAspectFill; + } + return _motifIndicateRegard; +} + +- (UIImageView *)figureIndicateRegard { + if (!_figureIndicateRegard) { + _figureIndicateRegard = [[UIImageView alloc] init]; + _figureIndicateRegard.userInteractionEnabled = YES; + _figureIndicateRegard.image = [UIImage imageNamed:@"yumi_main_scope_list_shadow_background"]; + } + return _figureIndicateRegard; +} + +- (UILabel *)motifSequencignation { + if (!_motifSequencignation) { + _motifSequencignation = [[UILabel alloc] init]; + _motifSequencignation.font = [UIFont systemFontOfSize:12 weight:UIFontWeightBold]; + _motifSequencignation.textColor = [UIColor whiteColor]; + _motifSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _motifSequencignation; +} +@end diff --git a/YuMi/Modules/YMMonents/View/Cell/YUMISeparationsReplicationFurthaerTabulationRegardElement.h b/YuMi/Modules/YMMonents/View/Cell/YUMISeparationsReplicationFurthaerTabulationRegardElement.h new file mode 100644 index 00000000..661460c1 --- /dev/null +++ b/YuMi/Modules/YMMonents/View/Cell/YUMISeparationsReplicationFurthaerTabulationRegardElement.h @@ -0,0 +1,23 @@ +// +// YMMonentsReplyMoreTableViewCell.h +// YUMI +// +// Created by YUMI on 2022/6/23. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class YUMISeparationsReplicationFurthaerTabulationRegardElement; +@protocol FBCSeparationsReplyFurthaerTabulationViweElementRepresendtation + +- (void)yUMISepartowardsionsReplictowardsionFurthaerTarbsultowardsionViweElementDidTicktackFurthaerReplictowardsion:(YUMISeparationsReplicationFurthaerTabulationRegardElement *)view; + +@end +@interface YUMISeparationsReplicationFurthaerTabulationRegardElement : UITableViewCell +@property (nonatomic,weak) id delegate; + +@property (nonatomic,assign) NSInteger leftCount; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMonents/View/Cell/YUMISeparationsReplicationFurthaerTabulationRegardElement.m b/YuMi/Modules/YMMonents/View/Cell/YUMISeparationsReplicationFurthaerTabulationRegardElement.m new file mode 100644 index 00000000..2002deb0 --- /dev/null +++ b/YuMi/Modules/YMMonents/View/Cell/YUMISeparationsReplicationFurthaerTabulationRegardElement.m @@ -0,0 +1,67 @@ +// +// YMMonentsReplyMoreTableViewCell.m +// YUMI +// +// Created by YUMI on 2022/6/23. +// + +#import "YUMISeparationsReplicationFurthaerTabulationRegardElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "YUMISeparationsProgrammingDisposition.h" + +@interface YUMISeparationsReplicationFurthaerTabulationRegardElement () +@property (nonatomic,strong) UILabel *furthaerSequencignation; + +@end +@implementation YUMISeparationsReplicationFurthaerTabulationRegardElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor]; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.furthaerSequencignation]; +} + +- (void)initChildLyRestrictions { + [self.furthaerSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.top.bottom.mas_equalTo(self.contentView); + make.left.mas_equalTo(self.contentView).offset(kMONENTS_COMMENT_REPLY_LEFT_PADDING + KMONENTS_COMMENT_REPLY_AVATAR_WIDTH + kMONENTS_COMMENT_AVATAR_NICK_PADDING); + }]; +} +#pragma mark - Event Response +- (void)furthaerSequencigntowardsionBetowardsRecognition { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMISepartowardsionsReplictowardsionFurthaerTarbsultowardsionViweElementDidTicktackFurthaerReplictowardsion:)]) { + [self.delegate yUMISepartowardsionsReplictowardsionFurthaerTarbsultowardsionViweElementDidTicktackFurthaerReplictowardsion:self]; + } +} +#pragma mark - Getters And Setters +- (void)setLeftCount:(NSInteger)leftCount { + _leftCount = leftCount; + if (_leftCount) { + self.furthaerSequencignation.text = [NSString stringWithFormat:YMLocalizedString(@"YUMI_Monents_Reply_More_Table_View_Cell_0"), _leftCount]; + } +} + +- (UILabel *)furthaerSequencignation { + if (!_furthaerSequencignation) { + _furthaerSequencignation = [[UILabel alloc] init]; + _furthaerSequencignation.font = [UIFont systemFontOfSize:15 weight:UIFontWeightBold]; + _furthaerSequencignation.textColor = [DJDKMIMOMColor aplictowardsionUnderlinePrettify]; + _furthaerSequencignation.userInteractionEnabled = YES; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(furthaerSequencigntowardsionBetowardsRecognition)]; + [_furthaerSequencignation addGestureRecognizer:tap]; + } + return _furthaerSequencignation; +} + + +@end diff --git a/YuMi/Modules/YMMonents/View/Cell/YUMISeparationsReplicationTabulationRegardElement.h b/YuMi/Modules/YMMonents/View/Cell/YUMISeparationsReplicationTabulationRegardElement.h new file mode 100644 index 00000000..a1cd8c0d --- /dev/null +++ b/YuMi/Modules/YMMonents/View/Cell/YUMISeparationsReplicationTabulationRegardElement.h @@ -0,0 +1,22 @@ +// +// YMMonentsReplyTableViewCell.h +// YUMI +// +// Created by YUMI on 2022/6/22. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class SeparationsReplicationMatrix, YUMISeparationsReplicationTabulationRegardElement; +@protocol FBCSeparationsReplyTabulationViweElementRepresendtation + +- (void)yUMISepartowardsionsReplictowardsionTarbsultowardsionViweElement:(YUMISeparationsReplicationTabulationRegardElement *)view didClickAvatar:(SeparationsReplicationMatrix *)replyInfo; + +@end +@interface YUMISeparationsReplicationTabulationRegardElement : UITableViewCell +@property (nonatomic,strong) SeparationsReplicationMatrix *replyInfo; +@property (nonatomic,weak) id delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMonents/View/Cell/YUMISeparationsReplicationTabulationRegardElement.m b/YuMi/Modules/YMMonents/View/Cell/YUMISeparationsReplicationTabulationRegardElement.m new file mode 100644 index 00000000..986be4df --- /dev/null +++ b/YuMi/Modules/YMMonents/View/Cell/YUMISeparationsReplicationTabulationRegardElement.m @@ -0,0 +1,175 @@ +// +// YMMonentsReplyTableViewCell.m +// YUMI +// +// Created by YUMI on 2022/6/22. +// + +#import "YUMISeparationsReplicationTabulationRegardElement.h" +#import +#import +#import "DJDKMIMOMColor.h" +#import "NetIndicateRegard.h" +#import "YUMIMacroUitls.h" +#import "YUMISeparationsProgrammingDisposition.h" +#import "NSString+Utils.h" +#import "MHTSpiritFacilitater.h" +#import "SeparationsJudgementReplicationMatrix.h" + +@interface YUMISeparationsReplicationTabulationRegardElement () +@property (nonatomic,strong) NetIndicateRegard *intelligenceportraitIndicateRegard; +@property (nonatomic,strong) UILabel *monicerSequencignation; +@property (nonatomic,strong) UIImageView *maintainrietaryIndicateRegard; +@property (nonatomic,strong) YYLabel *satisfperformanceSequencignation; +@property (nonatomic,strong) UILabel *engagementSequencignation; +@property (nonatomic,strong) UIView * burlywoodRegard; + +@end + +@implementation YUMISeparationsReplicationTabulationRegardElement + + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor]; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.intelligenceportraitIndicateRegard]; + [self.contentView addSubview:self.monicerSequencignation]; + [self.contentView addSubview:self.maintainrietaryIndicateRegard]; + [self.contentView addSubview:self.satisfperformanceSequencignation]; + [self.contentView addSubview:self.engagementSequencignation]; + [self.contentView addSubview:self.burlywoodRegard]; +} + +- (void)initChildLyRestrictions { + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(KMONENTS_COMMENT_REPLY_AVATAR_WIDTH, KMONENTS_COMMENT_REPLY_AVATAR_WIDTH)); + make.top.mas_equalTo(self.contentView).offset(10); + make.left.mas_equalTo(self.contentView).offset(kMONENTS_COMMENT_REPLY_LEFT_PADDING); + }]; + + [self.monicerSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_right).offset(kMONENTS_COMMENT_AVATAR_NICK_PADDING); + make.top.mas_equalTo(self.contentView).offset(10); + make.height.mas_equalTo(15); + }]; + + [self.maintainrietaryIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(30, 15)); + make.centerY.mas_equalTo(self.monicerSequencignation); + make.left.mas_equalTo(self.monicerSequencignation.mas_right).offset(5); + }]; + + [self.satisfperformanceSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.monicerSequencignation); + make.top.mas_equalTo(self.monicerSequencignation.mas_bottom).offset(10); + make.right.mas_equalTo(self.contentView).offset(-15); + }]; + + [self.engagementSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self.contentView).offset(-10); + make.centerY.mas_equalTo(self.monicerSequencignation); + }]; + + [self.burlywoodRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.monicerSequencignation); + make.right.mas_equalTo(self.contentView).offset(-10); + make.height.mas_equalTo(0.5); + make.bottom.mas_equalTo(self.contentView); + }]; +} + +#pragma mark - Event Response +- (void)betowardsIntelligenceportraitIndictowardse { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMISepartowardsionsReplictowardsionTarbsultowardsionViweElement:didClickAvatar:)]) { + [self.delegate yUMISepartowardsionsReplictowardsionTarbsultowardsionViweElement:self didClickAvatar:self.replyInfo]; + } +} + +#pragma mark - Getters And Setters +- (void)setReplyInfo:(SeparationsReplicationMatrix *)replyInfo { + _replyInfo = replyInfo; + if (_replyInfo) { + self.intelligenceportraitIndicateRegard.imageUrl = _replyInfo.avatar; + NSString * nick = _replyInfo.nick; + if (nick.length > 8) { + nick = [nick substringToIndex:8]; + } + self.maintainrietaryIndicateRegard.hidden = !_replyInfo.landLordFlag; + self.monicerSequencignation.text = nick; + self.engagementSequencignation.text = [NSString sttriAboutIntrtowardsemporalStamp:_replyInfo.publishTime]; + self.satisfperformanceSequencignation.attributedText = _replyInfo.contentAttribute; + } +} + +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _intelligenceportraitIndicateRegard.layer.cornerRadius = 30/2.0; + _intelligenceportraitIndicateRegard.layer.borderColor = [DJDKMIMOMColor aplictowardsionMainPrettify].CGColor; + _intelligenceportraitIndicateRegard.userInteractionEnabled = YES; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(betowardsIntelligenceportraitIndictowardse)]; + [_intelligenceportraitIndicateRegard addGestureRecognizer:tap]; + } + return _intelligenceportraitIndicateRegard; +} + +- (UILabel *)monicerSequencignation { + if (!_monicerSequencignation) { + _monicerSequencignation = [[UILabel alloc] init]; + _monicerSequencignation.font = [UIFont systemFontOfSize:14 weight:UIFontWeightMedium]; + _monicerSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _monicerSequencignation; +} + +- (YYLabel *)satisfperformanceSequencignation { + if (!_satisfperformanceSequencignation) { + _satisfperformanceSequencignation = [[YYLabel alloc] init]; + _satisfperformanceSequencignation.preferredMaxLayoutWidth = KMONENTS_COMMENT_REPLY_MAX_WIDTH; + _satisfperformanceSequencignation.numberOfLines = 0; + } + return _satisfperformanceSequencignation; +} + +- (UILabel *)engagementSequencignation { + if (!_engagementSequencignation) { + _engagementSequencignation = [[UILabel alloc] init]; + _engagementSequencignation.font = [UIFont systemFontOfSize:12]; + _engagementSequencignation.textColor = [DJDKMIMOMColor essayTertiusPrettify]; + } + return _engagementSequencignation; +} + +- (UIView *)burlywoodRegard { + if (!_burlywoodRegard) { + _burlywoodRegard = [[UIView alloc] init]; + _burlywoodRegard.backgroundColor = [DJDKMIMOMColor dividerPrettify]; + } + return _burlywoodRegard; +} + +- (UIImageView *)maintainrietaryIndicateRegard { + if (!_maintainrietaryIndicateRegard) { + _maintainrietaryIndicateRegard = [[UIImageView alloc] init]; + _maintainrietaryIndicateRegard.userInteractionEnabled = YES; + _maintainrietaryIndicateRegard.image = [UIImage imageNamed:@"yumi_monents_same_landLordFlag"]; + _maintainrietaryIndicateRegard.hidden = YES; + } + return _maintainrietaryIndicateRegard; +} + + +@end diff --git a/YuMi/Modules/YMMonents/View/Cell/YUMISeparationsTabulationRegardElement.h b/YuMi/Modules/YMMonents/View/Cell/YUMISeparationsTabulationRegardElement.h new file mode 100644 index 00000000..1ed69592 --- /dev/null +++ b/YuMi/Modules/YMMonents/View/Cell/YUMISeparationsTabulationRegardElement.h @@ -0,0 +1,26 @@ +// +// YMMonentsTableViewCell.h +// YUMI +// +// Created by YUMI on 2022/5/11. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class SeparationsAbstractMatrix, YUMISeparationsTabulationRegardElement; + +@protocol FBCSeparationsTabulationViweElementRepresendtation +- (void)yUMISepartowardsionsTarbsultowardsionViweElement:(YUMISeparationsTabulationRegardElement *)view didClickLike:(SeparationsAbstractMatrix *)monentsInfo; +- (void)yUMISepartowardsionsTarbsultowardsionViweElement:(YUMISeparationsTabulationRegardElement *)view didClicDelete:(SeparationsAbstractMatrix *)monentsInfo; +@optional +- (void)yUMISepartowardsionsTarbsultowardsionViweElement:(YUMISeparationsTabulationRegardElement *)view didClicCommon:(SeparationsAbstractMatrix *)monentsInfo; +- (void)yUMISepartowardsionsTarbsultowardsionViweElement:(YUMISeparationsTabulationRegardElement *)view didClicFold:(SeparationsAbstractMatrix *)monentsInfo; +@end + +@interface YUMISeparationsTabulationRegardElement : UITableViewCell +@property (nonatomic,strong) SeparationsAbstractMatrix *monentsInfo; +@property (nonatomic,weak) id delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMonents/View/Cell/YUMISeparationsTabulationRegardElement.m b/YuMi/Modules/YMMonents/View/Cell/YUMISeparationsTabulationRegardElement.m new file mode 100644 index 00000000..d5b63a95 --- /dev/null +++ b/YuMi/Modules/YMMonents/View/Cell/YUMISeparationsTabulationRegardElement.m @@ -0,0 +1,303 @@ +// +// YMMonentsTableViewCell.m +// YUMI +// +// Created by YUMI on 2022/5/11. +// + +#import "YUMISeparationsTabulationRegardElement.h" +#import + +#import "DJDKMIMOMColor.h" +#import "NetIndicateRegard.h" +#import "YUMISeparationsProgrammingDisposition.h" +#import "SDAppearanceBrowser.h" +#import "XCCurrentVCStackExecutive.h" +#import "NSArray+Safe.h" +#import "ClientDisposition.h" +#import "SeparationsAbstractMatrix.h" +#import "YUMISeparationsConsumerAbstractRegard.h" +#import "YUMISeparationsAppearanceRegard.h" +#import "YUMISeparationsTooObstacleRegard.h" +#import "YUMISepartionMotifRegard.h" +#import "YUMISeparationsSatisfactionRegard.h" +#import "YUMISeparationsProgrammingDisposition.h" +#import "YUMISeparationMotifAccommodatedRegardGovernancer.h" +#import "YUMIManeConsumerAbstractRegardGovernancer.h" +#import "YUMIManeSimpleConsumerAbstractRegardGovernancer.h" +#import "YUMIChamberRegardGovernancer.h" +@interface YUMISeparationsTabulationRegardElement () +@property (nonatomic,strong) UIView * encourageRegard; +@property (nonatomic,strong) UIStackView *stackView; +@property (nonatomic,strong) YUMISeparationsConsumerAbstractRegard * consumerAbstractRegard; +@property (nonatomic,strong) YUMISeparationsSatisfactionRegard *textView; +@property (nonatomic,strong) YUMISeparationsAppearanceRegard *appearanceRegard; +@property (nonatomic,strong) YUMISeparationsTooObstacleRegard *utensilObstacleRegard; +@property (nonatomic,strong) YUMISepartionMotifRegard *motifRegard; + +@property (nonatomic,strong) NSString *identifier; + +@end + +@implementation YUMISeparationsTabulationRegardElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor]; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.encourageRegard]; + + + if ([self.reuseIdentifier isEqualToString:NSStringFromClass([YUMISeparationsTabulationRegardElement class])]){ + [self.encourageRegard addSubview:self.consumerAbstractRegard]; + [self.encourageRegard addSubview:self.stackView]; + [self.encourageRegard addSubview:self.utensilObstacleRegard]; + + [self.stackView addArrangedSubview:self.textView]; + [self.stackView addArrangedSubview:self.appearanceRegard]; + [self.stackView addArrangedSubview:self.motifRegard]; + }else{ + + [self.encourageRegard addSubview:self.stackView]; + + [self.stackView addArrangedSubview:self.textView]; + [self.stackView addArrangedSubview:self.appearanceRegard]; + [self.stackView addArrangedSubview:self.motifRegard]; + } +} + +- (void)initChildLyRestrictions { + + if ([self.reuseIdentifier isEqualToString:NSStringFromClass([YUMISeparationsTabulationRegardElement class])]){ + [self.encourageRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.contentView); + }]; + + [self.consumerAbstractRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self.encourageRegard); + make.height.mas_equalTo(kMONENTS_USER_INFO_HEIGHT); + }]; + + [self.textView mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(20); + }]; + + [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.encourageRegard).offset(kMONENTS_CONTENT_LEFT_PADDING); + make.right.mas_equalTo(self.encourageRegard).offset(-kMONENTS_CONTENT_RIGHT_PADDING); + make.top.mas_equalTo(self.consumerAbstractRegard.mas_bottom).offset(kMONENTS_CONTENT_SPACAE_HEIGHT); + }]; + + [self.motifRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(kMONENTS_TEXT_TOPIC_HEIGHT); + }]; + + [self.utensilObstacleRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.encourageRegard); + make.top.mas_equalTo(self.stackView.mas_bottom); + make.height.mas_equalTo(kMONENTS_TOOL_BAR_HEIGHT); + }]; + }else{ + [self.encourageRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.contentView); + }]; + + [self.textView mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(20); + }]; + + [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.encourageRegard).offset(kSIMPLE_MONENTS_CONTENT_LEFT_PADDING); + make.right.mas_equalTo(self.encourageRegard).offset(-kSIMPLE_MONENTS_CONTENT_RIGHT_PADDING); + make.top.mas_equalTo(self.encourageRegard.mas_top).offset(kMONENTS_CONTENT_SPACAE_HEIGHT); + }]; + + [self.motifRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(kMONENTS_TEXT_TOPIC_HEIGHT); + }]; + } +} +#pragma mark - FBCSeparationsConsumerAbstractRegardRepresendtation +- (void)yUMISepartowardsionsConsumerAbstractRegard:(YUMISeparationsConsumerAbstractRegard *)view didTicktackImportChamber:(SeparationsAbstractMatrix *)reminiscence { + if (reminiscence.inRoomUid.integerValue > 0) { + [YUMIChamberRegardGovernancer unfoildChamber:reminiscence.inRoomUid viewController:[XCCurrentVCStackExecutive shareManager].getCurrentVC]; + } +} + +- (void)yUMISepartowardsionsConsumerAbstractRegard:(YUMISeparationsConsumerAbstractRegard *)view didClickAvatar:(SeparationsAbstractMatrix *)reminiscence { + if ([ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + YUMIManeConsumerAbstractRegardGovernancer * userInfoVC = [[YUMIManeConsumerAbstractRegardGovernancer alloc] init]; + userInfoVC.uid = reminiscence.uid.integerValue; + [[XCCurrentVCStackExecutive shareManager].getCurrentVC.navigationController pushViewController:userInfoVC animated:YES]; + }else{ + YUMIManeSimpleConsumerAbstractRegardGovernancer * userInfoVC = [[YUMIManeSimpleConsumerAbstractRegardGovernancer alloc] init]; + userInfoVC.uid = reminiscence.uid.integerValue; + [[XCCurrentVCStackExecutive shareManager].getCurrentVC.navigationController pushViewController:userInfoVC animated:YES]; + } + +} + +#pragma mark - FBCSeparationsTooObstacleRegardRepresendtation +- (void)yUMISepartowardsionsTooObstacleRegard:(YUMISeparationsTooObstacleRegard *)view didClickLike:(SeparationsAbstractMatrix *)monentsInfo { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMISepartowardsionsTarbsultowardsionViweElement:didClickLike:)]) { + [self.delegate yUMISepartowardsionsTarbsultowardsionViweElement:self didClickLike:monentsInfo]; + } +} + +- (void)yUMISepartowardsionsTooObstacleRegard:(YUMISeparationsTooObstacleRegard *)view didClickDelete:(SeparationsAbstractMatrix *)monentsInfo { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMISepartowardsionsTarbsultowardsionViweElement:didClicDelete:)]) { + [self.delegate yUMISepartowardsionsTarbsultowardsionViweElement:self didClicDelete:self.monentsInfo]; + } +} + +- (void)yUMISepartowardsionsTooObstacleRegard:(YUMISeparationsTooObstacleRegard *)view didClickCommon:(SeparationsAbstractMatrix *)monentsInfo { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMISepartowardsionsTarbsultowardsionViweElement:didClicCommon:)]) { + [self.delegate yUMISepartowardsionsTarbsultowardsionViweElement:self didClicCommon:self.monentsInfo]; + } +} + +#pragma mark - FBCSeparationsContentRegardRepresendtation +- (void)yUMISepartowardsionsStowardsisfperformanceRegard:(YUMISeparationsSatisfactionRegard *)view didClickFold:(SeparationsAbstractMatrix *)monentsInfo { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMISepartowardsionsTarbsultowardsionViweElement:didClicFold:)]) { + [self.delegate yUMISepartowardsionsTarbsultowardsionViweElement:self didClicFold:monentsInfo]; + } +} + +#pragma mark - SDPhotoBrowserRepresendtation +- (NSURL *)aplictowardsionearanceBrowser:(SDAppearanceBrowser *)browser highQualityIndictowardseWEEBSITEInthecaseofIndictowardsrix:(NSInteger)index { + SeparationsPicAbstractMatrix *picinfo = [self.monentsInfo.dynamicResList secureGroalTowardsIndictowardsrix1:index]; + return [NSURL URLWithString:picinfo.resUrl]; +} + +- (UIImage *)aplictowardsionearanceBrowser:(SDAppearanceBrowser *)browser placeholderIndictowardseInthecaseofIndictowardsrix:(NSInteger)index { + return [UIIndicateConstant defalutOriflammeDepapossessor]; +} + +#pragma mark - FBCSeparationsPhotoRegardRepresendtation +- (void)yUMISepartowardsionsAplictowardsionearanceRegard:(YUMISeparationsAppearanceRegard *)view didClickImage:(NSInteger)index { + NSInteger count = self.monentsInfo.dynamicResList.count; + SDAppearanceBrowser *browser = [[SDAppearanceBrowser alloc]init]; + browser.sourceIndicatesAccommoengagementdRegard = self; + browser.delegate = self; + browser.indicateComputation = count; + browser.universalIndicateIndicatrix = index; + browser.isMe = NO; + [browser show]; +} + +#pragma mark - Event Response +- (void)didBetowardsMotifRecognition { + if (self.monentsInfo.worldId > 0) { + YUMISeparationMotifAccommodatedRegardGovernancer * topicListVC = [[YUMISeparationMotifAccommodatedRegardGovernancer alloc] init]; + topicListVC.worldId = [NSString stringWithFormat:@"%ld", self.monentsInfo.worldId]; + [[XCCurrentVCStackExecutive shareManager].getCurrentVC.navigationController pushViewController:topicListVC animated:YES]; + } +} + +#pragma mark - Getters And Setters +- (void)setMonentsInfo:(SeparationsAbstractMatrix *)monentsInfo { + _monentsInfo = monentsInfo; + if (_monentsInfo) { + self.consumerAbstractRegard.monentsInfo = _monentsInfo; + self.textView.monentsInfo = _monentsInfo; + self.appearanceRegard.dynamicResList = _monentsInfo.dynamicResList; + self.motifRegard.monentsInfo = _monentsInfo; + self.utensilObstacleRegard.monentsInfo = _monentsInfo; + if (_monentsInfo.type == MonentsContentGenre_Picture) { + self.appearanceRegard.hidden = NO; + CGFloat picHeight = _monentsInfo.picHeight <=0 ? [YUMISeparationsProgrammingDisposition separtowardsionsGHPiicAltitude:_monentsInfo] : _monentsInfo.picHeight; + [self.appearanceRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(picHeight); + }]; + } else { + self.appearanceRegard.hidden = YES; + [self.appearanceRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(0); + }]; + } + + CGFloat contentHeight = [YUMISeparationsProgrammingDisposition separtowardsionsStowardsisfperformanceAltitude:_monentsInfo]; + [self.textView mas_updateConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(contentHeight); + }]; + } +} + +- (UIView *)encourageRegard { + if (!_encourageRegard) { + _encourageRegard = [[UIView alloc] init]; + _encourageRegard.backgroundColor = [DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify]; + } + return _encourageRegard; +} + +- (YUMISeparationsConsumerAbstractRegard *)consumerAbstractRegard { + if (!_consumerAbstractRegard) { + _consumerAbstractRegard = [[YUMISeparationsConsumerAbstractRegard alloc] init]; + _consumerAbstractRegard.delegate = self; + } + return _consumerAbstractRegard; +} + +- (YUMISeparationsAppearanceRegard *)appearanceRegard { + if (!_appearanceRegard) { + _appearanceRegard = [[YUMISeparationsAppearanceRegard alloc] init]; + _appearanceRegard.delegate = self; + } + return _appearanceRegard; +} + +- (UIStackView *)stackView { + if (!_stackView) { + _stackView = [[UIStackView alloc] init]; + _stackView.axis = UILayoutConstraintAxisVertical; + _stackView.distribution = UIStackViewDistributionFill; + _stackView.alignment = UIStackViewAlignmentFill; + _stackView.spacing = kMONENTS_CONTENT_SPACAE_HEIGHT; + } + return _stackView; +} + +- (YUMISeparationsSatisfactionRegard *)textView { + if (!_textView) { + _textView = [[YUMISeparationsSatisfactionRegard alloc] init]; + _textView.delegate = self; + + if ([self.reuseIdentifier isEqualToString:NSStringFromClass([YUMISeparationsTabulationRegardElement class])]){ + _textView.isSimple = NO; + }else{ + + _textView.isSimple = YES; + } + } + return _textView; +} + +- (YUMISepartionMotifRegard *)motifRegard { + if (!_motifRegard) { + _motifRegard = [[YUMISepartionMotifRegard alloc] init]; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didBetowardsMotifRecognition)]; + [_motifRegard addGestureRecognizer:tap]; + } + return _motifRegard; +} + +- (YUMISeparationsTooObstacleRegard *)utensilObstacleRegard { + if (!_utensilObstacleRegard) { + _utensilObstacleRegard = [[YUMISeparationsTooObstacleRegard alloc] init]; + _utensilObstacleRegard.delegate = self; + } + return _utensilObstacleRegard; +} + + + +@end diff --git a/YuMi/Modules/YMMonents/View/SubViews/YUMISeparationAnnounceSuccessRegard.h b/YuMi/Modules/YMMonents/View/SubViews/YUMISeparationAnnounceSuccessRegard.h new file mode 100644 index 00000000..ff5d07b5 --- /dev/null +++ b/YuMi/Modules/YMMonents/View/SubViews/YUMISeparationAnnounceSuccessRegard.h @@ -0,0 +1,16 @@ +// +// YMMonentPublishSuccessView.h +// YUMI +// +// Created by YUMI on 2022/8/16. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMISeparationAnnounceSuccessRegard : UIView + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMonents/View/SubViews/YUMISeparationAnnounceSuccessRegard.m b/YuMi/Modules/YMMonents/View/SubViews/YUMISeparationAnnounceSuccessRegard.m new file mode 100644 index 00000000..9da28fa4 --- /dev/null +++ b/YuMi/Modules/YMMonents/View/SubViews/YUMISeparationAnnounceSuccessRegard.m @@ -0,0 +1,94 @@ +// +// YMMonentPublishSuccessView.m +// YUMI +// +// Created by YUMI on 2022/8/16. +// + +#import "YUMISeparationAnnounceSuccessRegard.h" +#import +#import "DJDKMIMOMColor.h" + +@interface YUMISeparationAnnounceSuccessRegard () +@property (nonatomic, strong) UIImageView *brandIndicateRegard; +@property (nonatomic, strong) UILabel *titleLabel; +@property (nonatomic, strong) UILabel *promptsSequencignation; +@end + +@implementation YUMISeparationAnnounceSuccessRegard + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor whiteColor]; + self.layer.masksToBounds = YES; + self.layer.cornerRadius = 10; + [self addSubview:self.brandIndicateRegard]; + [self addSubview:self.titleLabel]; + [self addSubview:self.promptsSequencignation]; +} + +- (void)initChildLyRestrictions { + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(280, 200)); + }]; + + [self.brandIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(20); + make.centerX.mas_equalTo(self); + make.height.width.mas_equalTo(56); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.brandIndicateRegard.mas_bottom).offset(20); + make.centerX.mas_equalTo(self); + }]; + + [self.promptsSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self).inset(15); + make.top.mas_equalTo(self.titleLabel.mas_bottom).offset(20); + }]; +} + +#pragma mark - Getters And Setters +- (UIImageView *)brandIndicateRegard { + if (!_brandIndicateRegard) { + _brandIndicateRegard = [[UIImageView alloc] init]; + _brandIndicateRegard.userInteractionEnabled = YES; + _brandIndicateRegard.image = [UIImage imageNamed:@"yumi_monents_publish_success_pic"]; + } + return _brandIndicateRegard; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.text = YMLocalizedString(@"YUMI_Monent_Publish_Success_View_0"); + _titleLabel.font = [UIFont systemFontOfSize:16]; + _titleLabel.textAlignment = NSTextAlignmentCenter; + } + return _titleLabel; +} + +- (UILabel *)promptsSequencignation { + if (!_promptsSequencignation) { + _promptsSequencignation = [[UILabel alloc] init]; + _promptsSequencignation.text = @"咻,收到小可爱的动态了呢~\n审核通过后小秘书会帮你发送并通知你哦~"; + _promptsSequencignation.font = [UIFont systemFontOfSize:13]; + _promptsSequencignation.numberOfLines = 0; + _promptsSequencignation.textColor = UIColorFromRGB(0x999999); + _promptsSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _promptsSequencignation; +} + + +@end diff --git a/YuMi/Modules/YMMonents/View/SubViews/YUMISeparationsAnnounceMotifRegard.h b/YuMi/Modules/YMMonents/View/SubViews/YUMISeparationsAnnounceMotifRegard.h new file mode 100644 index 00000000..8b6cd731 --- /dev/null +++ b/YuMi/Modules/YMMonents/View/SubViews/YUMISeparationsAnnounceMotifRegard.h @@ -0,0 +1,24 @@ +// +// YMMonentsPublishTopicView.h +// YUMI +// +// Created by YUMI on 2022/8/16. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class YUMISeparationsAnnounceMotifRegard, SeparationsMotifMatrix; +@protocol FBCSeparationsPublishMotifRegardRepresendtation + +- (void)yUMISepartowardsionsPublishMotifRegard:(YUMISeparationsAnnounceMotifRegard *)view didTicktackConcludeBtuton:(UIButton *)sender; +- (void)yUMISepartowardsionsPublishMotifRegard:(YUMISeparationsAnnounceMotifRegard *)view didClickChooseTopic:(UIButton *)sender; + +@end + +@interface YUMISeparationsAnnounceMotifRegard : UIView +@property (nonatomic,weak) id delegate; +@property (nonatomic,strong) SeparationsMotifMatrix *motifAbstract; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMonents/View/SubViews/YUMISeparationsAnnounceMotifRegard.m b/YuMi/Modules/YMMonents/View/SubViews/YUMISeparationsAnnounceMotifRegard.m new file mode 100644 index 00000000..1dadefde --- /dev/null +++ b/YuMi/Modules/YMMonents/View/SubViews/YUMISeparationsAnnounceMotifRegard.m @@ -0,0 +1,185 @@ +// +// YMMonentsPublishTopicView.m +// YUMI +// +// Created by YUMI on 2022/8/16. +// + +#import "YUMISeparationsAnnounceMotifRegard.h" +#import +#import "DJDKMIMOMColor.h" +#import "UIView+Corner.h" +#import "UIButton+EnlargeTouchArea.h" +#import "SeparationsMotifMatrix.h" + +@interface YUMISeparationsAnnounceMotifRegard () +@property (nonatomic,strong) UIStackView *stackView; +@property (nonatomic,strong) UIButton *accelerateMotifBtuton; +@property (nonatomic,strong) UIButton *furthaeroverBtuton; +@property (nonatomic,strong) UIView * motifRegard; +@property (nonatomic,strong) UILabel *titleLabel; +@property (nonatomic,strong) UIButton *concludeBtuton; +@property (nonatomic,strong) UIView * deparatmentRegard; +@end + +@implementation YUMISeparationsAnnounceMotifRegard +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.stackView]; + [self.stackView addArrangedSubview:self.accelerateMotifBtuton]; + [self.stackView addArrangedSubview:self.motifRegard]; + [self.stackView addArrangedSubview:self.deparatmentRegard]; + [self.stackView addArrangedSubview:self.furthaeroverBtuton]; + + [self.motifRegard addSubview:self.titleLabel]; + [self.motifRegard addSubview:self.concludeBtuton]; +} + +- (void)initChildLyRestrictions { + [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self); + make.height.mas_equalTo(20); + make.centerY.mas_equalTo(self); + }]; + + [self.accelerateMotifBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(60); + }]; + + [self.motifRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(120); + }]; + + [self.furthaeroverBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(60); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.motifRegard).offset(5); + make.centerY.mas_equalTo(self.motifRegard); + }]; + + [self.concludeBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self.motifRegard).offset(-7); + make.size.mas_equalTo(CGSizeMake(18, 18)); + make.centerY.mas_equalTo(self.motifRegard); + }]; +} + +#pragma mark - Event Response +- (void)accelertowardseMotifBtutonPerformance:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMISepartowardsionsPublishMotifRegard:didClickChooseTopic:)]) { + [self.delegate yUMISepartowardsionsPublishMotifRegard:self didClickChooseTopic:sender]; + } +} + +- (void)concludeBtutonPerformance:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMISepartowardsionsPublishMotifRegard:didTicktackConcludeBtuton:)]) { + [self.delegate yUMISepartowardsionsPublishMotifRegard:self didTicktackConcludeBtuton:sender]; + } +} + +#pragma mark - Getters And Setters +- (void)setMotifAbstract:(SeparationsMotifMatrix *)motifAbstract { + _motifAbstract = motifAbstract; + if (_motifAbstract) { + self.accelerateMotifBtuton.hidden = YES; + self.motifRegard.hidden = NO; + self.furthaeroverBtuton.hidden = NO; + self.titleLabel.text = _motifAbstract.worldName; + } else { + self.accelerateMotifBtuton.hidden = NO; + self.motifRegard.hidden = YES; + self.furthaeroverBtuton.hidden= YES; + } +} + +- (UIStackView *)stackView { + if (!_stackView) { + _stackView = [[UIStackView alloc] init]; + _stackView.axis = UILayoutConstraintAxisHorizontal; + _stackView.distribution = UIStackViewDistributionFill; + _stackView.alignment = UIStackViewAlignmentFill; + _stackView.spacing = 0; + } + return _stackView; +} + +- (UIButton *)accelerateMotifBtuton { + if (!_accelerateMotifBtuton) { + _accelerateMotifBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_accelerateMotifBtuton setTitle:YMLocalizedString(@"YUMI_Monents_Publish_Topic_View_0") forState:UIControlStateNormal]; + [_accelerateMotifBtuton setTitleColor:[DJDKMIMOMColor mainEssayPrettify] forState:UIControlStateNormal]; + _accelerateMotifBtuton.titleLabel.font = [UIFont systemFontOfSize:12]; + [_accelerateMotifBtuton setBackgroundColor:[UIColor whiteColor]]; + _accelerateMotifBtuton.layer.masksToBounds = YES; + _accelerateMotifBtuton.layer.cornerRadius = 10; + [_accelerateMotifBtuton addTarget:self action:@selector(accelertowardseMotifBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _accelerateMotifBtuton; +} + +- (UIButton *)furthaeroverBtuton { + if (!_furthaeroverBtuton) { + _furthaeroverBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_furthaeroverBtuton setTitle:YMLocalizedString(@"YUMI_Monents_Publish_Topic_View_1") forState:UIControlStateNormal]; + [_furthaeroverBtuton setTitleColor:[DJDKMIMOMColor instantEssayPrettify] forState:UIControlStateNormal]; + _furthaeroverBtuton.titleLabel.font = [UIFont systemFontOfSize:12]; + [_furthaeroverBtuton addTarget:self action:@selector(accelertowardseMotifBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + _furthaeroverBtuton.hidden = YES; + } + return _furthaeroverBtuton; +} + +- (UIView *)motifRegard { + if (!_motifRegard) { + _motifRegard = [[UIView alloc] init]; + _motifRegard.backgroundColor = [UIColor clearColor]; + _motifRegard.backgroundColor = [DJDKMIMOMColor aplictowardsionMainPrettify]; + _motifRegard.layer.masksToBounds = YES; + _motifRegard.hidden = YES; + [_motifRegard setMonopolizeAboutContraryApexMonopolize:10 rightTopCorner:5 bottomLeftCorner:10 bottomRightCorner:10 size:CGSizeMake(120, 20)]; + } + return _motifRegard; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.font = [UIFont systemFontOfSize:13]; + _titleLabel.textColor = [UIColor whiteColor]; + } + return _titleLabel; +} + +- (UIButton *)concludeBtuton { + if (!_concludeBtuton) { + _concludeBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_concludeBtuton setImage:[UIImage imageNamed:@"yumi_monents_publish_delete"] forState:UIControlStateNormal]; + [_concludeBtuton setImage:[UIImage imageNamed:@"yumi_monents_publish_delete"] forState:UIControlStateSelected]; + [_concludeBtuton setEnlargeEdgeAboutApex:10 right:10 bottom:10 left:10]; + [_concludeBtuton addTarget:self action:@selector(concludeBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _concludeBtuton; +} + +- (UIView *)deparatmentRegard { + if (!_deparatmentRegard) { + _deparatmentRegard = [[UIView alloc] init]; + _deparatmentRegard.backgroundColor = [UIColor clearColor]; + } + return _deparatmentRegard; +} + + + +@end diff --git a/YuMi/Modules/YMMonents/View/SubViews/YUMISeparationsAppearanceRegard.h b/YuMi/Modules/YMMonents/View/SubViews/YUMISeparationsAppearanceRegard.h new file mode 100644 index 00000000..e7be06c0 --- /dev/null +++ b/YuMi/Modules/YMMonents/View/SubViews/YUMISeparationsAppearanceRegard.h @@ -0,0 +1,23 @@ +// +// YMMonentsPhotoView.h +// YUMI +// +// Created by YUMI on 2022/5/12. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class SeparationsPicAbstractMatrix, YUMISeparationsAppearanceRegard; +@protocol FBCSeparationsPhotoRegardRepresendtation + +- (void)yUMISepartowardsionsAplictowardsionearanceRegard:(YUMISeparationsAppearanceRegard *)view didClickImage:(NSInteger)index; + +@end + +@interface YUMISeparationsAppearanceRegard : UIView +@property (nonatomic,copy) NSArray *dynamicResList; +@property (nonatomic,weak) id delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMonents/View/SubViews/YUMISeparationsAppearanceRegard.m b/YuMi/Modules/YMMonents/View/SubViews/YUMISeparationsAppearanceRegard.m new file mode 100644 index 00000000..f009be07 --- /dev/null +++ b/YuMi/Modules/YMMonents/View/SubViews/YUMISeparationsAppearanceRegard.m @@ -0,0 +1,288 @@ +// +// YMMonentsPhotoView.m +// YUMI +// +// Created by YUMI on 2022/5/12. +// + +#import "YUMISeparationsAppearanceRegard.h" +#import +#import "DJDKMIMOMColor.h" +#import "NetIndicateRegard.h" +#import "YUMISeparationsProgrammingDisposition.h" +#import "NSArray+Safe.h" +#import "SeparationsAbstractMatrix.h" + +@interface YUMISeparationsAppearanceRegard () +@property (nonatomic,strong) NetIndicateRegard *thresholdIndicateRegard; +@property (nonatomic,strong) NetIndicateRegard *instantIndicateRegard; +@property (nonatomic,strong) NetIndicateRegard *tertiusIndicateRegard; +@property (nonatomic,strong) NetIndicateRegard *fourthIndicateRegard; +@property (nonatomic,strong) NetIndicateRegard *fifthIndicateRegard; +@property (nonatomic,strong) NetIndicateRegard *sixthIndicateRegard; +@property (nonatomic,strong) NetIndicateRegard *sevenIndicateRegard; +@property (nonatomic,strong) NetIndicateRegard *eighthIndicateRegard; +@property (nonatomic,strong) NetIndicateRegard *ninthIndicateRegard; +@property (nonatomic,strong) NSArray *subRegardGarment; +@end + + +@implementation YUMISeparationsAppearanceRegard + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + } + return self; +} +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.thresholdIndicateRegard]; + [self addSubview:self.instantIndicateRegard]; + [self addSubview:self.tertiusIndicateRegard]; + [self addSubview:self.fourthIndicateRegard]; + [self addSubview:self.fifthIndicateRegard]; + [self addSubview:self.sixthIndicateRegard]; + [self addSubview:self.sevenIndicateRegard]; + [self addSubview:self.eighthIndicateRegard]; + [self addSubview:self.ninthIndicateRegard]; + self.subRegardGarment = @[self.thresholdIndicateRegard, self.instantIndicateRegard, self.tertiusIndicateRegard, self.fourthIndicateRegard, self.fifthIndicateRegard, self.sixthIndicateRegard, self.sevenIndicateRegard, self.eighthIndicateRegard, self.ninthIndicateRegard]; +} + +- (void)hiddenEntiretyIndictowardseRegard { + [self.subviews enumerateObjectsUsingBlock:^(__kindof UIView * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + obj.hidden = YES; + }]; +} + +#pragma mark - Event Response +- (void)betowardsIndictowardseRegard:(UITapGestureRecognizer *)tap { + NetIndicateRegard * imageView = (NetIndicateRegard *)tap.view; + if (imageView.imageUrl.length > 0 && self.delegate && [self.delegate respondsToSelector:@selector(yUMISepartowardsionsAplictowardsionearanceRegard:didClickImage:)]) { + [self.delegate yUMISepartowardsionsAplictowardsionearanceRegard:self didClickImage:imageView.tag - 1001]; + } +} + + +#pragma mark - Getters And Setters +- (void)setDynamicResList:(NSArray *)dynamicResList { + _dynamicResList = dynamicResList; + [self hiddenEntiretyIndictowardseRegard]; + if (_dynamicResList.count == 0) { + + } else if (_dynamicResList.count == 1) { + self.thresholdIndicateRegard.hidden = NO; + [self.thresholdIndicateRegard mas_remakeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(kMONENTS_PIC_ONE_WIDTH, kMONENTS_PIC_ONE_WIDTH)); + make.left.top.mas_equalTo(self); + }]; + SeparationsPicAbstractMatrix * picInfo = [_dynamicResList secureGroalTowardsIndictowardsrix1:0]; + self.thresholdIndicateRegard.imageUrl = picInfo.resUrl; + } else if(_dynamicResList.count == 2) { + self.thresholdIndicateRegard.hidden = NO; + CGFloat itemWidth = (kMONENTS_CONTENT_MAX_WIDTH - kMONENTS_PIC_SPACE) / 2; + [self.thresholdIndicateRegard mas_remakeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(itemWidth, itemWidth)); + make.left.top.mas_equalTo(self); + }]; + + SeparationsPicAbstractMatrix * picInfo = [_dynamicResList secureGroalTowardsIndictowardsrix1:0]; + self.thresholdIndicateRegard.imageUrl = picInfo.resUrl; + + self.instantIndicateRegard.hidden = NO; + [self.instantIndicateRegard mas_remakeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(itemWidth, itemWidth)); + make.top.mas_equalTo(self); + make.left.mas_equalTo(self.thresholdIndicateRegard.mas_right).offset(kMONENTS_PIC_SPACE); + }]; + + SeparationsPicAbstractMatrix * secondPicInfo = [_dynamicResList secureGroalTowardsIndictowardsrix1:1]; + self.instantIndicateRegard.imageUrl = secondPicInfo.resUrl; + + } else{ + for (int i = 0; i < _dynamicResList.count; i++) { + SeparationsPicAbstractMatrix * picInfo = [_dynamicResList secureGroalTowardsIndictowardsrix1:i]; + if (i < self.subRegardGarment.count) { + NetIndicateRegard * imageView = [self.subRegardGarment secureGroalTowardsIndictowardsrix1:i]; + imageView.hidden = NO; + imageView.imageUrl = picInfo.resUrl; + } + } + + CGFloat itemWidth = (kMONENTS_CONTENT_MAX_WIDTH - kMONENTS_PIC_SPACE * 2) / 3; + for (int i = 0; i < self.subRegardGarment.count; i++) { + NSInteger page = i % 3; + NSInteger line = i / 3; + NetIndicateRegard * imageView = [self.subRegardGarment secureGroalTowardsIndictowardsrix1:i]; + [imageView mas_remakeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(itemWidth, itemWidth)); + make.left.mas_equalTo(page * (itemWidth + kMONENTS_PIC_SPACE)); + make.top.mas_equalTo(line * (itemWidth + kMONENTS_PIC_SPACE)); + }]; + } + + } +} + +- (NetIndicateRegard *)thresholdIndicateRegard { + if (!_thresholdIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreMonentsPhoto; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _thresholdIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _thresholdIndicateRegard.layer.masksToBounds = YES; + _thresholdIndicateRegard.layer.cornerRadius = 12; + _thresholdIndicateRegard.contentMode = UIViewContentModeScaleAspectFill; + _thresholdIndicateRegard.tag = 1000 + 1; + _thresholdIndicateRegard.userInteractionEnabled = YES; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(betowardsIndictowardseRegard:)]; + [_thresholdIndicateRegard addGestureRecognizer:tap]; + } + return _thresholdIndicateRegard; +} + +- (NetIndicateRegard *)instantIndicateRegard { + if (!_instantIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreMonentsPhoto; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _instantIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _instantIndicateRegard.layer.masksToBounds = YES; + _instantIndicateRegard.layer.cornerRadius = 12; + _instantIndicateRegard.contentMode = UIViewContentModeScaleAspectFill; + _instantIndicateRegard.tag = 1000 + 2; + _instantIndicateRegard.userInteractionEnabled = YES; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(betowardsIndictowardseRegard:)]; + [_instantIndicateRegard addGestureRecognizer:tap]; + } + return _instantIndicateRegard; +} + +- (NetIndicateRegard *)tertiusIndicateRegard { + if (!_tertiusIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreMonentsPhoto; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _tertiusIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _tertiusIndicateRegard.layer.masksToBounds = YES; + _tertiusIndicateRegard.layer.cornerRadius = 12; + _tertiusIndicateRegard.contentMode = UIViewContentModeScaleAspectFill; + _tertiusIndicateRegard.tag = 1000 + 3; + _tertiusIndicateRegard.userInteractionEnabled = YES; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(betowardsIndictowardseRegard:)]; + [_tertiusIndicateRegard addGestureRecognizer:tap]; + } + return _tertiusIndicateRegard; +} + + +- (NetIndicateRegard *)fourthIndicateRegard { + if (!_fourthIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreMonentsPhoto; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _fourthIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _fourthIndicateRegard.layer.masksToBounds = YES; + _fourthIndicateRegard.layer.cornerRadius = 12; + _fourthIndicateRegard.contentMode = UIViewContentModeScaleAspectFill; + _fourthIndicateRegard.tag = 1000 + 4; + _fourthIndicateRegard.userInteractionEnabled = YES; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(betowardsIndictowardseRegard:)]; + [_fourthIndicateRegard addGestureRecognizer:tap]; + + } + return _fourthIndicateRegard; +} + +- (NetIndicateRegard *)fifthIndicateRegard { + if (!_fifthIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreMonentsPhoto; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _fifthIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _fifthIndicateRegard.layer.masksToBounds = YES; + _fifthIndicateRegard.layer.cornerRadius = 12; + _fifthIndicateRegard.contentMode = UIViewContentModeScaleAspectFill; + _fifthIndicateRegard.tag = 1000 + 5; + _fifthIndicateRegard.userInteractionEnabled = YES; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(betowardsIndictowardseRegard:)]; + [_fifthIndicateRegard addGestureRecognizer:tap]; + } + return _fifthIndicateRegard; +} + + +- (NetIndicateRegard *)sixthIndicateRegard { + if (!_sixthIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreMonentsPhoto; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _sixthIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _sixthIndicateRegard.layer.masksToBounds = YES; + _sixthIndicateRegard.layer.cornerRadius = 12; + _sixthIndicateRegard.contentMode = UIViewContentModeScaleAspectFill; + _sixthIndicateRegard.tag = 1000 + 6; + _sixthIndicateRegard.userInteractionEnabled = YES; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(betowardsIndictowardseRegard:)]; + [_sixthIndicateRegard addGestureRecognizer:tap]; + } + return _sixthIndicateRegard; +} + + +- (NetIndicateRegard *)sevenIndicateRegard { + if (!_sevenIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreMonentsPhoto; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _sevenIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _sevenIndicateRegard.layer.masksToBounds = YES; + _sevenIndicateRegard.layer.cornerRadius = 12; + _sevenIndicateRegard.contentMode = UIViewContentModeScaleAspectFill; + _sevenIndicateRegard.tag = 1000 + 7; + _sevenIndicateRegard.userInteractionEnabled = YES; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(betowardsIndictowardseRegard:)]; + [_sevenIndicateRegard addGestureRecognizer:tap]; + } + return _sevenIndicateRegard; +} + + +- (NetIndicateRegard *)eighthIndicateRegard { + if (!_eighthIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreMonentsPhoto; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _eighthIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _eighthIndicateRegard.layer.masksToBounds = YES; + _eighthIndicateRegard.layer.cornerRadius = 12; + _eighthIndicateRegard.contentMode = UIViewContentModeScaleAspectFill; + _eighthIndicateRegard.tag = 1000 + 8; + _eighthIndicateRegard.userInteractionEnabled = YES; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(betowardsIndictowardseRegard:)]; + [_eighthIndicateRegard addGestureRecognizer:tap]; + } + return _eighthIndicateRegard; +} + + +- (NetIndicateRegard *)ninthIndicateRegard { + if (!_ninthIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreMonentsPhoto; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _ninthIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _ninthIndicateRegard.layer.masksToBounds = YES; + _ninthIndicateRegard.layer.cornerRadius = 12; + _ninthIndicateRegard.contentMode = UIViewContentModeScaleAspectFill; + _ninthIndicateRegard.tag = 1000 + 9; + _ninthIndicateRegard.userInteractionEnabled = YES; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(betowardsIndictowardseRegard:)]; + [_ninthIndicateRegard addGestureRecognizer:tap]; + } + return _ninthIndicateRegard; +} + + +@end diff --git a/YuMi/Modules/YMMonents/View/SubViews/YUMISeparationsConsumerAbstractRegard.h b/YuMi/Modules/YMMonents/View/SubViews/YUMISeparationsConsumerAbstractRegard.h new file mode 100644 index 00000000..a74f1213 --- /dev/null +++ b/YuMi/Modules/YMMonents/View/SubViews/YUMISeparationsConsumerAbstractRegard.h @@ -0,0 +1,25 @@ +// +// YMMonentsUserInfoView.h +// YUMI +// +// Created by YUMI on 2022/5/12. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class SeparationsAbstractMatrix, YUMISeparationsConsumerAbstractRegard; +@protocol FBCSeparationsConsumerAbstractRegardRepresendtation + +- (void)yUMISepartowardsionsConsumerAbstractRegard:(YUMISeparationsConsumerAbstractRegard *)view didClickAvatar:(SeparationsAbstractMatrix *)reminiscence; + +- (void)yUMISepartowardsionsConsumerAbstractRegard:(YUMISeparationsConsumerAbstractRegard *)view didTicktackImportChamber:(SeparationsAbstractMatrix *)reminiscence; + +@end +@interface YUMISeparationsConsumerAbstractRegard : UIView +@property (nonatomic,strong) SeparationsAbstractMatrix *monentsInfo; + +@property (nonatomic,weak) id delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMonents/View/SubViews/YUMISeparationsConsumerAbstractRegard.m b/YuMi/Modules/YMMonents/View/SubViews/YUMISeparationsConsumerAbstractRegard.m new file mode 100644 index 00000000..019178fd --- /dev/null +++ b/YuMi/Modules/YMMonents/View/SubViews/YUMISeparationsConsumerAbstractRegard.m @@ -0,0 +1,444 @@ +// +// YMMonentsUserInfoView.m +// YUMI +// +// Created by YUMI on 2022/5/12. +// + +#import "YUMISeparationsConsumerAbstractRegard.h" +#import +#import "DJDKMIMOMColor.h" +#import "NetIndicateRegard.h" +#import "SpriteSheetIndicateExecutive.h" +#import "YUMIMacroUitls.h" +#import "SeparationsAbstractMatrix.h" +#import "NSArray+Safe.h" + +@interface YUMISeparationsConsumerAbstractRegard () +@property (nonatomic,strong) UIStackView *monicerHierarchyRegard; +@property (nonatomic,strong) NetIndicateRegard *intelligenceportraitIndicateRegard; +@property (nonatomic, strong) NetIndicateRegard *magnificentIndicateRegard; +@property (nonatomic,strong) UILabel *monicerSequencignation; +@property (nonatomic,strong) UIImageView *seaxualityIndicateRegard; +@property (nonatomic,strong) UIImageView *strangesConsumerIndicateRegard; +@property (nonatomic,strong) UIImageView *officalIndicateRegard; +@property (nonatomic,strong) YYAnimatedImageView *intelligencePenetrateIndicateRegard; +@property (nonatomic, strong) SpriteSheetIndicateExecutive *manager; +@property (nonatomic,strong) UIStackView *prototypeHierarchyRegard; +@property (nonatomic,strong) NetIndicateRegard *fascinationIndicateRegard; +@property (nonatomic,strong) NetIndicateRegard *experIndicateRegard; +@property (nonatomic,strong) UIView * constituteWoodentrayRegard; +@property (nonatomic,strong) NetIndicateRegard *materialIndicateRegard; +@property (nonatomic,strong) UILabel *materialSequencignation; +@property (nonatomic,strong) UIStackView *coupleHierarchyRegard; +@property (nonatomic,strong) NetIndicateRegard *thresholdCoupleIndicateRegard; +@property (nonatomic,strong) NetIndicateRegard *instantCoupleIndicateRegard; +@property (nonatomic,strong) NetIndicateRegard *tertiusCoupleIndicateRegard; +@property (nonatomic,strong) UIButton *onlineBtuton; +@end +@implementation YUMISeparationsConsumerAbstractRegard +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.intelligenceportraitIndicateRegard]; + [self addSubview:self.intelligencePenetrateIndicateRegard]; + [self addSubview:self.monicerSequencignation]; + [self addSubview:self.seaxualityIndicateRegard]; + [self addSubview:self.coupleHierarchyRegard]; + [self addSubview:self.prototypeHierarchyRegard]; + [self addSubview:self.onlineBtuton]; + + [self.coupleHierarchyRegard addArrangedSubview:self.thresholdCoupleIndicateRegard]; + [self.coupleHierarchyRegard addArrangedSubview:self.instantCoupleIndicateRegard]; + [self.coupleHierarchyRegard addArrangedSubview:self.tertiusCoupleIndicateRegard]; + + [self.prototypeHierarchyRegard addArrangedSubview:self.magnificentIndicateRegard]; + [self.prototypeHierarchyRegard addArrangedSubview:self.strangesConsumerIndicateRegard]; + [self.prototypeHierarchyRegard addArrangedSubview:self.officalIndicateRegard]; + [self.prototypeHierarchyRegard addArrangedSubview:self.experIndicateRegard]; + [self.prototypeHierarchyRegard addArrangedSubview:self.fascinationIndicateRegard]; + [self.prototypeHierarchyRegard addArrangedSubview:self.constituteWoodentrayRegard]; + + [self.constituteWoodentrayRegard addSubview:self.materialIndicateRegard]; + [self.constituteWoodentrayRegard addSubview:self.materialSequencignation]; + +} + +- (void)initChildLyRestrictions { + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(40, 40)); + make.left.mas_equalTo(self).offset(15); + make.top.mas_equalTo(self).offset(15); + }]; + + [self.intelligencePenetrateIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.center.mas_equalTo(self.intelligenceportraitIndicateRegard); + make.width.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_width).multipliedBy(1.2); + make.height.mas_equalTo(self.intelligencePenetrateIndicateRegard.mas_width); + }]; + + + [self.monicerSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_right).offset(12); + make.bottom.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_centerY).offset(-2); + }]; + + [self.seaxualityIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(14, 14)); + make.left.mas_equalTo(self.monicerSequencignation.mas_right).offset(4); + make.centerY.mas_equalTo(self.monicerSequencignation); + }]; + + [self.prototypeHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.monicerSequencignation); + make.top.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_centerY).offset(2); + make.height.mas_equalTo(20); + }]; + + [self.magnificentIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(20); + }]; + + [self.strangesConsumerIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(20); + }]; + + [self.officalIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(20); + }]; + + [self.experIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(20); + }]; + + [self.fascinationIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(20); + }]; + + [self.constituteWoodentrayRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(self.materialIndicateRegard.mas_width); + }]; + + [self.materialIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(20); + make.width.mas_equalTo(60); + make.left.top.mas_equalTo(self.constituteWoodentrayRegard); + }]; + + [self.materialSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.bottom.mas_equalTo(self.materialIndicateRegard); + make.right.mas_equalTo(self.constituteWoodentrayRegard).offset(-2); + }]; + + [self.coupleHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self).offset(-15); + make.centerY.mas_equalTo(self.monicerSequencignation); + make.height.mas_equalTo(14); + }]; + + [self.onlineBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(55, 18)); + make.right.mas_equalTo(self.coupleHierarchyRegard); + make.top.mas_equalTo(self.coupleHierarchyRegard.mas_bottom).offset(4); + }]; + + [self.thresholdCoupleIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(28); + }]; + + [self.instantCoupleIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(self.thresholdCoupleIndicateRegard); + }]; + + [self.tertiusCoupleIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(self.thresholdCoupleIndicateRegard); + }]; +} + +#pragma mark - Event Response +- (void)onlineBtutonPerformance:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMISepartowardsionsConsumerAbstractRegard:didTicktackImportChamber:)]) { + [self.delegate yUMISepartowardsionsConsumerAbstractRegard:self didTicktackImportChamber:self.monentsInfo]; + } +} + +- (void)didBetowardsIntelligenceportraitGuest { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMISepartowardsionsConsumerAbstractRegard:didClickAvatar:)]) { + [self.delegate yUMISepartowardsionsConsumerAbstractRegard:self didClickAvatar:self.monentsInfo]; + } +} + +#pragma mark - Getters And Setters +- (void)setMonentsInfo:(SeparationsAbstractMatrix *)monentsInfo { + _monentsInfo = monentsInfo; + if (_monentsInfo) { + self.intelligenceportraitIndicateRegard.imageUrl = _monentsInfo.avatar; + NSString * nick = _monentsInfo.nick; + if (nick.length > 8) { + nick = [NSString stringWithFormat:@"%@…", [nick substringToIndex:8]]; + } + self.monicerSequencignation.text = nick.length > 0 ? nick : @""; + self.seaxualityIndicateRegard.image = _monentsInfo.gender == GenderGenre_Female ? [UIImage imageNamed:@"yumi_same_female"] : [UIImage imageNamed:@"yumi_same_male"]; + self.officalIndicateRegard.hidden = _monentsInfo.defUser != 2; + self.strangesConsumerIndicateRegard.hidden = !_monentsInfo.newUser; + self.magnificentIndicateRegard.hidden = !_monentsInfo.userVipInfoVO; + if (_monentsInfo.experLevelPic) { + self.experIndicateRegard.imageUrl = _monentsInfo.experLevelPic; + } + self.experIndicateRegard.hidden = _monentsInfo.experLevelPic.length <= 0; + + if (_monentsInfo.charmLevelPic) { + self.fascinationIndicateRegard.imageUrl = _monentsInfo.charmLevelPic; + } + + if (_monentsInfo.userVipInfoVO) { + self.magnificentIndicateRegard.imageUrl = _monentsInfo.userVipInfoVO.vipIcon; + } + + self.fascinationIndicateRegard.hidden = _monentsInfo.charmLevelPic.length <= 0; + + if (_monentsInfo.nameplateWord.length>0 && _monentsInfo.nameplatePic.length>0) { + self.materialIndicateRegard.imageUrl = _monentsInfo.nameplatePic; + self.materialSequencignation.text = _monentsInfo.nameplateWord; + self.constituteWoodentrayRegard.hidden = NO; + } else { + self.constituteWoodentrayRegard.hidden = YES; + } + + + NSString * headwearUrl= _monentsInfo.headwearEffect.length > 0 ? _monentsInfo.headwearEffect : _monentsInfo.headwearPic; + self.intelligencePenetrateIndicateRegard.hidden = headwearUrl.length <= 0; + if (headwearUrl.length > 0) { + NSURL *url = [NSURL URLWithString:headwearUrl]; + @kWeakify(self); + [self.manager chamberSpriteSheetIndictowardseAboutWEEBSITE:url completionBlock:^(YYSpriteSheetImage * _Nullable sprit) { + @kStrongify(self); + self.intelligencePenetrateIndicateRegard.image = sprit; + } failureBlock:^(NSError * _Nullable error) { + }]; + } + self.thresholdCoupleIndicateRegard.hidden = YES; + self.instantCoupleIndicateRegard.hidden = YES; + self.tertiusCoupleIndicateRegard.hidden = YES; + for (int i = 0; i< _monentsInfo.labelList.count; i++) { + NSString * imageUrl = [_monentsInfo.labelList secureGroalTowardsIndictowardsrix1:i]; + if (i < self.coupleHierarchyRegard.subviews.count) { + NetIndicateRegard * image = [self.coupleHierarchyRegard.subviews secureGroalTowardsIndictowardsrix1:i]; + image.hidden = NO; + image.imageUrl = imageUrl; + } + } + self.onlineBtuton.hidden = _monentsInfo.inRoomUid.length <= 0; + } +} + +- (SpriteSheetIndicateExecutive *)manager { + if (!_manager) { + _manager = [[SpriteSheetIndicateExecutive alloc] init]; + } + return _manager; +} + +- (YYAnimatedImageView *)intelligencePenetrateIndicateRegard { + if (!_intelligencePenetrateIndicateRegard) { + _intelligencePenetrateIndicateRegard = [[YYAnimatedImageView alloc] init]; + _intelligencePenetrateIndicateRegard.backgroundColor = [UIColor clearColor]; + _intelligencePenetrateIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _intelligencePenetrateIndicateRegard; +} + +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc] init]; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + config.imageType = ImageGenreUserIcon; + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceportraitIndicateRegard.userInteractionEnabled = YES; + _intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _intelligenceportraitIndicateRegard.layer.cornerRadius = 20; + _intelligenceportraitIndicateRegard.contentMode = UIViewContentModeScaleAspectFill; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didBetowardsIntelligenceportraitGuest)]; + [_intelligenceportraitIndicateRegard addGestureRecognizer:tap]; + } + return _intelligenceportraitIndicateRegard; +} + +- (UILabel *)monicerSequencignation { + if (!_monicerSequencignation) { + _monicerSequencignation = [[UILabel alloc] init]; + _monicerSequencignation.font = [UIFont systemFontOfSize:14 weight:UIFontWeightMedium]; + _monicerSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _monicerSequencignation; +} + +- (UIImageView *)seaxualityIndicateRegard { + if (!_seaxualityIndicateRegard) { + _seaxualityIndicateRegard = [[UIImageView alloc] init]; + _seaxualityIndicateRegard.userInteractionEnabled = YES; + } + return _seaxualityIndicateRegard; +} + +- (UIStackView *)prototypeHierarchyRegard { + if (!_prototypeHierarchyRegard) { + _prototypeHierarchyRegard = [[UIStackView alloc] init]; + _prototypeHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _prototypeHierarchyRegard.distribution = UIStackViewDistributionFill; + _prototypeHierarchyRegard.alignment = UIStackViewAlignmentFill; + _prototypeHierarchyRegard.spacing = 2; + } + return _prototypeHierarchyRegard; +} +- (NetIndicateRegard *)experIndicateRegard { + if (!_experIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc] init]; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + config.imageType = ImageGenreUserCardLevel; + _experIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _experIndicateRegard.userInteractionEnabled = YES; + _experIndicateRegard.hidden = YES; + _experIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _experIndicateRegard; +} + +- (NetIndicateRegard *)fascinationIndicateRegard { + if (!_fascinationIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc] init]; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + config.imageType = ImageGenreUserCardLevel; + _fascinationIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _fascinationIndicateRegard.userInteractionEnabled = YES; + _fascinationIndicateRegard.hidden = YES; + _fascinationIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _fascinationIndicateRegard; +} + +- (NetIndicateRegard *)magnificentIndicateRegard { + if (!_magnificentIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc] init]; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + config.imageType = ImageGenreUserCardLevel; + _magnificentIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _magnificentIndicateRegard.userInteractionEnabled = YES; + _magnificentIndicateRegard.hidden = YES; + _magnificentIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _magnificentIndicateRegard; +} + +- (UIView *)constituteWoodentrayRegard { + if (!_constituteWoodentrayRegard) { + _constituteWoodentrayRegard = [[UIView alloc] init]; + _constituteWoodentrayRegard.backgroundColor = [UIColor clearColor]; + _constituteWoodentrayRegard.hidden = YES; + } + return _constituteWoodentrayRegard; +} + +- (NetIndicateRegard *)materialIndicateRegard { + if (!_materialIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc] init]; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + config.imageType = ImageGenreUserCardLevel; + _materialIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _materialIndicateRegard.userInteractionEnabled = YES; + _materialIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _materialIndicateRegard; +} + +- (UILabel *)materialSequencignation { + if (!_materialSequencignation) { + _materialSequencignation = [[UILabel alloc] init]; + _materialSequencignation.font = [UIFont systemFontOfSize:10]; + _materialSequencignation.textAlignment = NSTextAlignmentCenter; + _materialSequencignation.textColor = [UIColor whiteColor]; + } + return _materialSequencignation; +} + +- (UIImageView *)strangesConsumerIndicateRegard { + if (!_strangesConsumerIndicateRegard) { + _strangesConsumerIndicateRegard = [[UIImageView alloc] init]; + _strangesConsumerIndicateRegard.userInteractionEnabled = YES; + _strangesConsumerIndicateRegard.image = [UIImage imageNamed:@"yumi_same_new_user"]; + _strangesConsumerIndicateRegard.hidden = YES; + } + return _strangesConsumerIndicateRegard; +} + +- (UIImageView *)officalIndicateRegard { + if (!_officalIndicateRegard) { + _officalIndicateRegard = [[UIImageView alloc] init]; + _officalIndicateRegard.userInteractionEnabled = YES; + _officalIndicateRegard.image = [UIImage imageNamed:@"yumi_same_offical"]; + _officalIndicateRegard.hidden = YES; + } + return _officalIndicateRegard; +} + +- (UIStackView *)coupleHierarchyRegard { + if (!_coupleHierarchyRegard) { + _coupleHierarchyRegard = [[UIStackView alloc] init]; + _coupleHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _coupleHierarchyRegard.distribution = UIStackViewDistributionFill; + _coupleHierarchyRegard.alignment = UIStackViewAlignmentFill; + _coupleHierarchyRegard.spacing = 2; + } + return _coupleHierarchyRegard; +} + +- (NetIndicateRegard *)thresholdCoupleIndicateRegard { + if (!_thresholdCoupleIndicateRegard) { + _thresholdCoupleIndicateRegard = [[NetIndicateRegard alloc] init]; + _thresholdCoupleIndicateRegard.hidden = YES; + } + return _thresholdCoupleIndicateRegard; +} + +- (NetIndicateRegard *)instantCoupleIndicateRegard { + if (!_instantCoupleIndicateRegard) { + _instantCoupleIndicateRegard = [[NetIndicateRegard alloc] init]; + _instantCoupleIndicateRegard.hidden = YES; + } + return _instantCoupleIndicateRegard; +} + +- (NetIndicateRegard *)tertiusCoupleIndicateRegard { + if (!_tertiusCoupleIndicateRegard) { + _tertiusCoupleIndicateRegard = [[NetIndicateRegard alloc] init]; + _tertiusCoupleIndicateRegard.hidden = YES; + } + return _tertiusCoupleIndicateRegard; +} + +- (UIButton *)onlineBtuton { + if (!_onlineBtuton) { + _onlineBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_onlineBtuton setTitle:YMLocalizedString(@"YUMI_Monents_User_Info_View_0") forState:UIControlStateNormal]; + [_onlineBtuton setImage:[UIImage imageNamed:@"yumi_main_search_user_online"] forState:UIControlStateNormal]; + [_onlineBtuton setTitleColor:[DJDKMIMOMColor aplictowardsionUnderlinePrettify] forState:UIControlStateNormal]; + _onlineBtuton.backgroundColor = [UIColor clearColor]; + _onlineBtuton.titleLabel.font = [UIFont systemFontOfSize:10]; + _onlineBtuton.layer.masksToBounds = YES; + _onlineBtuton.layer.cornerRadius = 18/2; + _onlineBtuton.layer.borderColor = [DJDKMIMOMColor aplictowardsionUnderlinePrettify].CGColor; + _onlineBtuton.layer.borderWidth = 1; + [_onlineBtuton addTarget:self action:@selector(onlineBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _onlineBtuton; +} + + +@end diff --git a/YuMi/Modules/YMMonents/View/SubViews/YUMISeparationsEncourageIntelligencerRegard.h b/YuMi/Modules/YMMonents/View/SubViews/YUMISeparationsEncourageIntelligencerRegard.h new file mode 100644 index 00000000..7212f7c5 --- /dev/null +++ b/YuMi/Modules/YMMonents/View/SubViews/YUMISeparationsEncourageIntelligencerRegard.h @@ -0,0 +1,25 @@ +// +// YMMonentsRecommendHeaderView.h +// YUMI +// +// Created by YUMI on 2022/5/18. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class SeparationsMotifMatrix,YUMISeparationsEncourageIntelligencerRegard ; +@protocol FBCSeparationsEncourageIntelligencerRegardRepresendtation + +- (void)yUMISepartowardsionsEncourageIntelligencerRegard:(YUMISeparationsEncourageIntelligencerRegard *)view didSelectItem:(SeparationsMotifMatrix *)info; + +- (void)yUMISepartowardsionsEncourageIntelligencerRegard:(YUMISeparationsEncourageIntelligencerRegard *)view didClickMoreTopic:(UIButton *)sender; + +@end + +@interface YUMISeparationsEncourageIntelligencerRegard : UIView +@property (nonatomic,strong) NSArray *motifStatement; +@property (nonatomic,weak) id delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMonents/View/SubViews/YUMISeparationsEncourageIntelligencerRegard.m b/YuMi/Modules/YMMonents/View/SubViews/YUMISeparationsEncourageIntelligencerRegard.m new file mode 100644 index 00000000..6d08b297 --- /dev/null +++ b/YuMi/Modules/YMMonents/View/SubViews/YUMISeparationsEncourageIntelligencerRegard.m @@ -0,0 +1,136 @@ +// +// YMMonentsRecommendHeaderView.m +// YUMI +// +// Created by YUMI on 2022/5/18. +// + +#import "YUMISeparationsEncourageIntelligencerRegard.h" +#import +#import "DJDKMIMOMColor.h" +#import "NSArray+Safe.h" +#import "SeparationsMotifMatrix.h" +#import "YUMISeparationsMotifAssembletionRegardElement.h" + +@interface YUMISeparationsEncourageIntelligencerRegard () +@property (nonatomic,strong) UILabel *titleLabel; +@property (nonatomic,strong) UIButton *arrowBtuton; +@property (nonatomic,strong) UICollectionView *collectionView; + +@end + +@implementation YUMISeparationsEncourageIntelligencerRegard + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify]; + [self addSubview:self.titleLabel]; + [self addSubview:self.arrowBtuton]; + [self addSubview:self.collectionView]; +} + +- (void)initChildLyRestrictions { + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self).offset(15); + make.top.mas_equalTo(self).offset(15); + }]; + + [self.arrowBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(11, 20)); + make.centerY.mas_equalTo(self.titleLabel); + make.right.mas_equalTo(self).offset(-15); + }]; + + [self.collectionView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self); + make.top.mas_equalTo(self.titleLabel.mas_bottom).offset(10); + make.height.mas_equalTo(77); + }]; +} + +#pragma mark - UICollectionViewDelegate And UICollectionViewDatasource +- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { + return self.motifStatement.count; +} + +- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath { + return CGSizeMake(125, 77); +} + +- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { + YUMISeparationsMotifAssembletionRegardElement * cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([YUMISeparationsMotifAssembletionRegardElement class]) forIndexPath:indexPath]; + cell.motifAbstract = [self.motifStatement secureGroalTowardsIndictowardsrix1:indexPath.row]; + return cell; +} + +- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath { + [collectionView deselectItemAtIndexPath:indexPath animated:YES]; + if (self.motifStatement.count > 0) { + SeparationsMotifMatrix * motifAbstract = [self.motifStatement secureGroalTowardsIndictowardsrix1:indexPath.row]; + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMISepartowardsionsEncourageIntelligencerRegard:didSelectItem:)]) { + [self.delegate yUMISepartowardsionsEncourageIntelligencerRegard:self didSelectItem:motifAbstract]; + } + } +} + +#pragma mark - Event Response +- (void)arrowBtutonPerformance:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMISepartowardsionsEncourageIntelligencerRegard:didClickMoreTopic:)]) { + [self.delegate yUMISepartowardsionsEncourageIntelligencerRegard:self didClickMoreTopic:sender]; + } +} + +#pragma mark - Getters And Setters +- (void)setMotifStatement:(NSArray *)motifStatement { + _motifStatement = motifStatement; + [self.collectionView reloadData]; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.font = [UIFont systemFontOfSize:14 weight:UIFontWeightMedium]; + _titleLabel.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _titleLabel.text = YMLocalizedString(@"YUMI_Monents_Recommend_Header_View_0"); + } + return _titleLabel; +} + +- (UIButton *)arrowBtuton { + if (!_arrowBtuton) { + _arrowBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_arrowBtuton setImage:[UIImage imageNamed:@"yumi_scope_setting_arrow"] forState:UIControlStateNormal]; + [_arrowBtuton setImage:[UIImage imageNamed:@"yumi_scope_setting_arrow"] forState:UIControlStateSelected]; + [_arrowBtuton addTarget:self action:@selector(arrowBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _arrowBtuton; +} + +- (UICollectionView *)collectionView{ + if (!_collectionView) { + UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init]; + layout.sectionInset = UIEdgeInsetsMake(0, 15, 0, 0); + layout.scrollDirection = UICollectionViewScrollDirectionHorizontal; + layout.minimumLineSpacing = 8; + _collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout]; + _collectionView.dataSource = self; + _collectionView.delegate = self; + _collectionView.backgroundColor = [UIColor clearColor]; + _collectionView.showsHorizontalScrollIndicator = NO; + [_collectionView registerClass:[YUMISeparationsMotifAssembletionRegardElement class] forCellWithReuseIdentifier:NSStringFromClass([YUMISeparationsMotifAssembletionRegardElement class])]; + } + return _collectionView; +} + + + +@end diff --git a/YuMi/Modules/YMMonents/View/SubViews/YUMISeparationsMotifIntelligencerRegard.h b/YuMi/Modules/YMMonents/View/SubViews/YUMISeparationsMotifIntelligencerRegard.h new file mode 100644 index 00000000..f11f6e66 --- /dev/null +++ b/YuMi/Modules/YMMonents/View/SubViews/YUMISeparationsMotifIntelligencerRegard.h @@ -0,0 +1,16 @@ +// +// YMMonentsTopicHeaderView.h +// YUMI +// +// Created by YUMI on 2022/8/18. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class SeparationsMotifMatrix; +@interface YUMISeparationsMotifIntelligencerRegard : UIView +@property (nonatomic,strong) SeparationsMotifMatrix *motifAbstract; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMonents/View/SubViews/YUMISeparationsMotifIntelligencerRegard.m b/YuMi/Modules/YMMonents/View/SubViews/YUMISeparationsMotifIntelligencerRegard.m new file mode 100644 index 00000000..3438ca2f --- /dev/null +++ b/YuMi/Modules/YMMonents/View/SubViews/YUMISeparationsMotifIntelligencerRegard.m @@ -0,0 +1,113 @@ +// +// YMMonentsTopicHeaderView.m +// YUMI +// +// Created by YUMI on 2022/8/18. +// + +#import "YUMISeparationsMotifIntelligencerRegard.h" +#import +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" +#import "NetIndicateRegard.h" +#import "SeparationsMotifMatrix.h" + +@interface YUMISeparationsMotifIntelligencerRegard () + +@property (nonatomic,strong) UILabel *titleLabel; +@property (nonatomic,strong) UILabel *sequenceSequencignation; +@property (nonatomic,strong) NetIndicateRegard *brandIndicateRegard; +@property (nonatomic,strong) UIView * transparencyRegard; +@end + +@implementation YUMISeparationsMotifIntelligencerRegard + + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.brandIndicateRegard]; + [self addSubview:self.transparencyRegard]; + [self addSubview:self.titleLabel]; + [self addSubview:self.sequenceSequencignation]; + +} + +- (void)initChildLyRestrictions { + [self.brandIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self); + }]; + + [self.transparencyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self).offset(kNavigationHeight + 10); + make.left.mas_equalTo(self).offset(30); + }]; + + [self.sequenceSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.titleLabel); + make.right.mas_equalTo(self).offset(-10); + make.top.mas_equalTo(self.titleLabel.mas_bottom).offset(20); + }]; +} + +#pragma mark - Getters And Setters +- (void)setMotifAbstract:(SeparationsMotifMatrix *)motifAbstract { + _motifAbstract = motifAbstract; + if (_motifAbstract) { + self.brandIndicateRegard.imageUrl = _motifAbstract.icon; + self.titleLabel.text = _motifAbstract.name; + self.sequenceSequencignation.text = _motifAbstract.desc; + } +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.font = [UIFont systemFontOfSize:18]; + _titleLabel.textColor = [UIColor whiteColor]; + } + return _titleLabel; +} + +- (UILabel *)sequenceSequencignation { + if (!_sequenceSequencignation) { + _sequenceSequencignation = [[UILabel alloc] init]; + _sequenceSequencignation.font = [UIFont systemFontOfSize:14]; + _sequenceSequencignation.textColor = [UIColor whiteColor]; + _sequenceSequencignation.numberOfLines = 2; + } + return _sequenceSequencignation; +} + +- (NetIndicateRegard *)brandIndicateRegard { + if (!_brandIndicateRegard) { + _brandIndicateRegard = [[NetIndicateRegard alloc] init]; + _brandIndicateRegard.userInteractionEnabled = YES; + _brandIndicateRegard.layer.masksToBounds = YES; + _brandIndicateRegard.contentMode = UIViewContentModeScaleAspectFill; + } + return _brandIndicateRegard; +} + +- (UIView *)transparencyRegard { + if (!_transparencyRegard) { + _transparencyRegard = [[UIView alloc] init]; + _transparencyRegard.backgroundColor = [UIColor blackColor]; + _transparencyRegard.alpha = 0.5; + } + return _transparencyRegard; +} + +@end diff --git a/YuMi/Modules/YMMonents/View/SubViews/YUMISeparationsSatisfactionRegard.h b/YuMi/Modules/YMMonents/View/SubViews/YUMISeparationsSatisfactionRegard.h new file mode 100644 index 00000000..212a6e33 --- /dev/null +++ b/YuMi/Modules/YMMonents/View/SubViews/YUMISeparationsSatisfactionRegard.h @@ -0,0 +1,27 @@ +// +// YMMonentsContentView.h +// YUMI +// +// Created by YUMI on 2022/5/13. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class SeparationsAbstractMatrix, YUMISeparationsSatisfactionRegard; + +@protocol FBCSeparationsContentRegardRepresendtation + +- (void)yUMISepartowardsionsStowardsisfperformanceRegard:(YUMISeparationsSatisfactionRegard *)view didClickFold:(SeparationsAbstractMatrix *)monentsInfo; + +@end + +@interface YUMISeparationsSatisfactionRegard : UIView +@property (nonatomic,strong) SeparationsAbstractMatrix *monentsInfo; +@property (nonatomic,weak) id delegate; + +@property (nonatomic,assign) BOOL isSimple; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMonents/View/SubViews/YUMISeparationsSatisfactionRegard.m b/YuMi/Modules/YMMonents/View/SubViews/YUMISeparationsSatisfactionRegard.m new file mode 100644 index 00000000..79b12cf7 --- /dev/null +++ b/YuMi/Modules/YMMonents/View/SubViews/YUMISeparationsSatisfactionRegard.m @@ -0,0 +1,167 @@ +// +// YMMonentsContentView.m +// YUMI +// +// Created by YUMI on 2022/5/13. +// + +#import "YUMISeparationsSatisfactionRegard.h" +#import +#import +#import "DJDKMIMOMColor.h" +#import "YUMISeparationsProgrammingDisposition.h" +#import "UIButton+EnlargeTouchArea.h" +#import "SeparationsAbstractMatrix.h" +@interface YUMISeparationsSatisfactionRegard () +@property (nonatomic,strong) UIStackView *stackView; +@property (nonatomic,strong) UILabel *satisfperformanceSequencignation; +@property (nonatomic,strong) UIButton *foldBtuton; +@end + + +@implementation YUMISeparationsSatisfactionRegard + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.stackView]; + [self.stackView addArrangedSubview:self.satisfperformanceSequencignation]; + [self.stackView addArrangedSubview:self.foldBtuton]; +} + +- (void)initChildLyRestrictions { + [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self); + }]; + + [self.foldBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(kMONENTS_FOLD_HEIGHT); + }]; +} + +- (NSAttributedString *)produceSepartowardsionsStowardsisfperformanceIdiosyncracy { + NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] init]; + if (self.monentsInfo.squareTop ) { + NSTextAttachment * attachment = [[NSTextAttachment alloc] init]; + attachment.bounds = CGRectMake(0, 0, 25 * 1.3, 10 * 1.3); + attachment.image = [UIImage imageNamed:@"yumi_monents_gen_top"]; + NSAttributedString * starAttribute = [NSMutableAttributedString attributedStringWithAttachment:(NSTextAttachment *)attachment]; + [attributedString insertAttributedString:starAttribute atIndex:0]; + } + [attributedString appendAttributedString:[self cretowardsBWSttTowardstrByBWStt:self.monentsInfo.content attributed:@{NSFontAttributeName : [UIFont systemFontOfSize:15]}]]; + attributedString.yy_lineSpacing = 5; + attributedString.yy_lineBreakMode = NSLineBreakByWordWrapping; + return attributedString; +} + +- (NSMutableAttributedString *)cretowardsBWSttTowardstrByBWStt:(NSString *)str attributed:(NSDictionary *)attribute{ + if (str.length == 0 || !str) { + str = @" "; + } + NSMutableAttributedString *attr = [[NSMutableAttributedString alloc] initWithString:str attributes:attribute]; + return attr; +} + + + +#pragma mark - Event Response +- (void)didTicktackFoldBtuton:(UIButton *)sender { + sender.selected = !sender.selected; + self.monentsInfo.isFold = !sender.selected; + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMISepartowardsionsStowardsisfperformanceRegard:didClickFold:)]) { + [self.delegate yUMISepartowardsionsStowardsisfperformanceRegard:self didClickFold:self.monentsInfo]; + } +} + +#pragma mark - Getters And Setters + +- (void)setIsSimple:(BOOL)isSimple { + _isSimple = isSimple; + self.satisfperformanceSequencignation.preferredMaxLayoutWidth = isSimple ? kSIMPLE_MONENTS_CONTENT_MAX_WIDTH : kMONENTS_CONTENT_MAX_WIDTH; +} + +- (void)setMonentsInfo:(SeparationsAbstractMatrix *)monentsInfo { + _monentsInfo = monentsInfo; + if (_monentsInfo) { + self.satisfperformanceSequencignation.attributedText = [self produceSepartowardsionsStowardsisfperformanceIdiosyncracy]; + self.foldBtuton.selected = !_monentsInfo.isFold; + if (monentsInfo.numberOfText <= 0) { + YYTextContainer *container = [YYTextContainer new]; + container.size = CGSizeMake(self.isSimple ? kSIMPLE_MONENTS_CONTENT_MAX_WIDTH : kMONENTS_CONTENT_MAX_WIDTH, CGFLOAT_MAX); + container.maximumNumberOfRows = 0; + YYTextLayout * layout = [YYTextLayout layoutWithContainer:container text:self.satisfperformanceSequencignation.attributedText]; + if (layout.rowCount > 6) { + self.foldBtuton.hidden = NO; + [self.foldBtuton mas_remakeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(kMONENTS_FOLD_HEIGHT); + }]; + } else { + self.foldBtuton.hidden = YES; + [self.foldBtuton mas_remakeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(0); + }]; + } + } else { + if (monentsInfo.numberOfText > 6) { + self.foldBtuton.hidden = NO; + [self.foldBtuton mas_remakeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(kMONENTS_FOLD_HEIGHT); + }]; + } else { + self.foldBtuton.hidden = YES; + [self.foldBtuton mas_remakeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(0); + }]; + } + } + } +} + +- (UIStackView *)stackView { + if (!_stackView) { + _stackView = [[UIStackView alloc] init]; + _stackView.axis = UILayoutConstraintAxisVertical; + _stackView.distribution = UIStackViewDistributionFill; + _stackView.alignment = UIStackViewAlignmentLeading; + _stackView.spacing = 0; + } + return _stackView; +} + +- (UIButton *)foldBtuton { + if (_foldBtuton == nil) { + _foldBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_foldBtuton setTitle:YMLocalizedString(@"YUMI_Monents_Content_View_0") forState:UIControlStateNormal]; + [_foldBtuton setTitle:YMLocalizedString(@"YUMI_Monents_Content_View_1") forState:UIControlStateSelected]; + [_foldBtuton setTitleColor:UIColorFromRGB(0x34A7FF) forState:UIControlStateNormal]; + [_foldBtuton setTitleColor:UIColorFromRGB(0x34A7FF) forState:UIControlStateSelected]; + _foldBtuton.titleLabel.font = [UIFont systemFontOfSize:15]; + _foldBtuton.hidden = YES; + [_foldBtuton addTarget:self action:@selector(didTicktackFoldBtuton:) forControlEvents:UIControlEventTouchUpInside]; + } + return _foldBtuton; +} + + +- (UILabel *)satisfperformanceSequencignation { + if (!_satisfperformanceSequencignation) { + _satisfperformanceSequencignation = [[UILabel alloc] init]; + _satisfperformanceSequencignation.numberOfLines = 0; + _satisfperformanceSequencignation.font = [UIFont systemFontOfSize:15]; + _satisfperformanceSequencignation.textColor = UIColorRGBAlpha(0x333333, 1); + _satisfperformanceSequencignation.preferredMaxLayoutWidth = kMONENTS_CONTENT_MAX_WIDTH; + _satisfperformanceSequencignation.lineBreakMode = NSLineBreakByWordWrapping; + + } + return _satisfperformanceSequencignation; +} + +@end diff --git a/YuMi/Modules/YMMonents/View/SubViews/YUMISeparationsTooObstacleRegard.h b/YuMi/Modules/YMMonents/View/SubViews/YUMISeparationsTooObstacleRegard.h new file mode 100644 index 00000000..400fe177 --- /dev/null +++ b/YuMi/Modules/YMMonents/View/SubViews/YUMISeparationsTooObstacleRegard.h @@ -0,0 +1,23 @@ +// +// YMMonentsTooBarView.h +// YUMI +// +// Created by YUMI on 2022/5/12. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class SeparationsAbstractMatrix, YUMISeparationsTooObstacleRegard; +@protocol FBCSeparationsTooObstacleRegardRepresendtation +- (void)yUMISepartowardsionsTooObstacleRegard:(YUMISeparationsTooObstacleRegard *)view didClickLike:(SeparationsAbstractMatrix *)monentsInfo; +- (void)yUMISepartowardsionsTooObstacleRegard:(YUMISeparationsTooObstacleRegard *)view didClickDelete:(SeparationsAbstractMatrix *)monentsInfo; +- (void)yUMISepartowardsionsTooObstacleRegard:(YUMISeparationsTooObstacleRegard *)view didClickCommon:(SeparationsAbstractMatrix *)monentsInfo; +@end + +@interface YUMISeparationsTooObstacleRegard : UIView +@property (nonatomic,strong) SeparationsAbstractMatrix *monentsInfo; +@property (nonatomic,weak) id delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMonents/View/SubViews/YUMISeparationsTooObstacleRegard.m b/YuMi/Modules/YMMonents/View/SubViews/YUMISeparationsTooObstacleRegard.m new file mode 100644 index 00000000..08d447fb --- /dev/null +++ b/YuMi/Modules/YMMonents/View/SubViews/YUMISeparationsTooObstacleRegard.m @@ -0,0 +1,300 @@ +// +// YMMonentsTooBarView.m +// YUMI +// +// Created by YUMI on 2022/5/12. +// + +#import "YUMISeparationsTooObstacleRegard.h" +#import +#import "DJDKMIMOMColor.h" +#import "MKJPopup.h" +#import "YUMIHtmlUrl.h" +#import "YUMIParaticipationRegard.h" +#import "XNDJTBWGLoadingTool.h" +#import "YUMIMacroUitls.h" +#import "YUMIHtmlUrl.h" +#import "AccountAbstractStorage.h" +#import "Api+Monents.h" +#import "ClientDisposition.h" +#import "SeparationsAbstractMatrix.h" +#import "YUMITissueRegardGovernancer.h" +#import "XCCurrentVCStackExecutive.h" + +@interface YUMISeparationsTooObstacleRegard () +@property (nonatomic,strong) UIButton *reportBtuton; +@property (nonatomic,strong) UIView * likeRegard; +@property (nonatomic,strong) UIButton *likeBtuton; +@property (nonatomic,strong) UILabel *likeSequencignation; +@property (nonatomic,strong) UIView * judgementRegard; +@property (nonatomic,strong) UIButton *judgementBtuton; +@property (nonatomic,strong) UILabel *judgementSequencignation; +@property (nonatomic,strong) UIButton *shareBtuton; +@property (nonatomic,strong) UIView * burlywoodRegard; + +@end + +@implementation YUMISeparationsTooObstacleRegard + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.reportBtuton]; + [self addSubview:self.likeRegard]; + [self addSubview:self.judgementRegard]; + [self addSubview:self.shareBtuton]; + [self addSubview:self.burlywoodRegard]; + + [self.likeRegard addSubview:self.likeBtuton]; + [self.likeRegard addSubview:self.likeSequencignation]; + [self.judgementRegard addSubview:self.judgementBtuton]; + [self.judgementRegard addSubview:self.judgementSequencignation]; +} + +- (void)initChildLyRestrictions { + [self.reportBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self).offset(70); + make.top.mas_equalTo(self).offset(24); + make.size.mas_equalTo(CGSizeMake(22, 22)); + }]; + + [self.likeRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.likeBtuton.mas_left); + make.height.mas_equalTo(22); + make.centerY.mas_equalTo(self.reportBtuton); + make.right.mas_equalTo(self.judgementRegard.mas_left).offset(-12); + }]; + + [self.likeSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self.likeRegard.mas_right).offset(-3); + make.centerY.mas_equalTo(self.likeRegard); + }]; + + [self.likeBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(22, 22)); + make.centerY.mas_equalTo(self.likeRegard); + make.right.mas_equalTo(self.likeSequencignation.mas_left).offset(-3); + }]; + + [self.judgementRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.judgementBtuton.mas_left).offset(-2); + make.height.mas_equalTo(22); + make.centerY.mas_equalTo(self.reportBtuton); + make.right.mas_equalTo(self.shareBtuton.mas_left).offset(-12); + }]; + + + [self.judgementBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(22, 22)); + make.centerY.mas_equalTo(self.judgementRegard); + make.right.mas_equalTo(self.judgementSequencignation.mas_left).offset(-2); + }]; + + [self.judgementSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self.judgementRegard.mas_right).offset(-3); + make.centerY.mas_equalTo(self.judgementRegard); + }]; + + [self.shareBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(22, 22)); + make.right.mas_equalTo(self).offset(-32); + make.centerY.mas_equalTo(self.reportBtuton); + }]; + + [self.burlywoodRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self).inset(16); + make.bottom.mas_equalTo(self); + make.height. mas_equalTo(1); + }]; +} +#pragma mark - Event Response +- (void)commonBtutonPerformance:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMISepartowardsionsTooObstacleRegard:didClickCommon:)]) { + self.judgementBtuton.userInteractionEnabled = YES; + [self.delegate yUMISepartowardsionsTooObstacleRegard:self didClickCommon:self.monentsInfo]; + } else { + self.judgementBtuton.userInteractionEnabled = NO; + } +} + +- (void)similarBtutonPerformance:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMISepartowardsionsTooObstacleRegard:didClickLike:)]) { + [self.delegate yUMISepartowardsionsTooObstacleRegard:self didClickLike:self.monentsInfo]; + } +} + +- (void)respondBtutonPerformance:(UIButton *)sender { + MKJActionSheetDisposition *action; + if (self.monentsInfo.uid.integerValue == [AccountAbstractStorage instance].acquireCid.integerValue) { + action = [MKJActionSheetDisposition normalTitle:YMLocalizedString(@"YUMI_Monents_Too_Bar_View_0") ticktackPerformance:^{ + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMISepartowardsionsTooObstacleRegard:didClickDelete:)]) { + [self.delegate yUMISepartowardsionsTooObstacleRegard:self didClickDelete:self.monentsInfo]; + } + }]; + } else { + action = [MKJActionSheetDisposition normalTitle:YMLocalizedString(@"YUMI_Monents_Too_Bar_View_1") ticktackPerformance:^{ + if ([ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + NSString * url= [NSString stringWithFormat:@"%@?reportUid=%@&source=%@", URLWithType(kReportRoomURL),self.monentsInfo.uid, @"WORLDDYNAMIC"]; + YUMITissueRegardGovernancer * webVewC = [[YUMITissueRegardGovernancer alloc] init]; + webVewC.url = url; + [[XCCurrentVCStackExecutive shareManager].getCurrentVC.navigationController pushViewController:webVewC animated:YES]; + } else { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:YMLocalizedString(@"YUMI_Monents_Too_Bar_View_2")]; + } + + }]; + } + [MKJPopup performanceSheetAboutProvisions:@[action]]; +} + +- (void)partowardsiciptowardsionBtutonPerformance:(UIButton *)sender { + YUMIParaticipationProvision *friend = [YUMIParaticipationProvision itemWitCouple:XPShareItemTagAppFriends title:YMLocalizedString(@"YUMI_Monents_Too_Bar_View_3") imageName:@"share_friend" disableImageName:@"share_friend"]; + YUMIParaticipationProvision *cycle = [YUMIParaticipationProvision itemWitCouple:XPShareItemTagMoments title:YMLocalizedString(@"YUMI_Monents_Too_Bar_View_4") imageName:@"share_wechat_circle_normal" disableImageName:@"share_wechat_circle_disable"]; + YUMIParaticipationProvision *wechat = [YUMIParaticipationProvision itemWitCouple:XPShareItemTagWeChat title:YMLocalizedString(@"YUMI_Monents_Too_Bar_View_5") imageName:@"share_wechat_normal" disableImageName:@"share_wechat_disable"]; + YUMIParaticipationProvision *qq = [YUMIParaticipationProvision itemWitCouple:XPShareItemTagQQ title:YMLocalizedString(@"YUMI_Monents_Too_Bar_View_6") imageName:@"share_qq_normal" disableImageName:@"share_qq_disable"]; + YUMIParaticipationProvision *qqzone = [YUMIParaticipationProvision itemWitCouple:XPShareItemTagQQZone title:YMLocalizedString(@"YUMI_Monents_Too_Bar_View_7") imageName:@"share_qqzone_normal" disableImageName:@"share_qqzone_disable"]; + NSArray * items = @[wechat,cycle, qq, qqzone]; + CGFloat margin = 15; + CGSize itemSize = CGSizeMake((KScreenWidth-2*margin)/4, 65); + YUMIParaticipationAbstractMatrix * shareInfo = [[YUMIParaticipationAbstractMatrix alloc] init]; + NSString * title= self.monentsInfo.nick; + if (self.monentsInfo.nick.length > 6) { + title = [title substringToIndex:6]; + } + shareInfo.nick = title; + shareInfo.content = self.monentsInfo.content; + shareInfo.imageUrl = self.monentsInfo.avatar; + shareInfo.shareTitle = [NSString stringWithFormat:YMLocalizedString(@"YUMI_Monents_Too_Bar_View_8"), title]; + shareInfo.shareContent = self.monentsInfo.content; + shareInfo.shareImageUrl = self.monentsInfo.avatar; + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NSString *urlStr = [NSString stringWithFormat:@"%@/%@?uid=%@&dynamicId=%@&worldId=%ld",API_HOST_URL, URLWithType(kMonentsShareURL), uid, self.monentsInfo.dynamicId, self.monentsInfo.worldId]; + shareInfo.shareUrl = urlStr; + shareInfo.dynamicId = self.monentsInfo.dynamicId; + shareInfo.uid = self.monentsInfo.uid; + shareInfo.worldId = [NSString stringWithFormat:@"%ld", self.monentsInfo.worldId]; + YUMIParaticipationRegard *partowardsiciptowardsionRegard = [[YUMIParaticipationRegard alloc] initWithItems:items itemSize:itemSize shareInfo:shareInfo]; + partowardsiciptowardsionRegard.delegate = self; + [MKJPopup popupRegard:partowardsiciptowardsionRegard style:MKJPopupStyleActionSheet]; +} + +#pragma mark - #pragma mark - XCShareRegardRepresendtation +- (void)partowardsiciptowardsionRegard:(YUMIParaticipationRegard *)partowardsiciptowardsionRegard shareFail:(NSString *)message { + [MKJPopup dismiss]; + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:message]; +} + +- (void)partowardsiciptowardsionRegard:(YUMIParaticipationRegard *)partowardsiciptowardsionRegard didSuccess:(YUMIParaticipationAbstractMatrix *)shareInfo{ + [Api consumerPartowardsiciptowardsionSepartowardsions:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + + } dynamicId:shareInfo.dynamicId uid:shareInfo.uid worldId:shareInfo.worldId shareUid:[AccountAbstractStorage instance].acquireCid]; + [MKJPopup dismiss]; +} + +- (void)partowardsiciptowardsionRegardDidTicktackRevoctowardsion:(YUMIParaticipationRegard *)partowardsiciptowardsionRegard { + [MKJPopup dismiss]; +} + +#pragma mark - Getters And Setters +- (void)setMonentsInfo:(SeparationsAbstractMatrix *)monentsInfo { + _monentsInfo = monentsInfo; + if (_monentsInfo) { + self.likeBtuton.selected = _monentsInfo.isLike; + self.likeSequencignation.text = _monentsInfo.likeCount.length > 0 ? _monentsInfo.likeCount : @"0"; + self.judgementSequencignation.text = _monentsInfo.commentCount.length > 0 ? _monentsInfo.commentCount : @"0"; + } +} + +- (UIView *)likeRegard { + if (!_likeRegard) { + _likeRegard = [[UIView alloc] init]; + _likeRegard.backgroundColor = [UIColor clearColor]; + } + return _likeRegard; +} + +- (UIButton *)likeBtuton { + if (!_likeBtuton) { + _likeBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_likeBtuton setImage:[UIImage imageNamed:@"yumi_monents_gen_like_count_normal"] forState:UIControlStateNormal]; + [_likeBtuton setImage:[UIImage imageNamed:@"yumi_monents_gen_like_count_select"] forState:UIControlStateSelected]; + [_likeBtuton addTarget:self action:@selector(similarBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _likeBtuton; +} + +- (UILabel *)likeSequencignation { + if (!_likeSequencignation) { + _likeSequencignation = [[UILabel alloc] init]; + _likeSequencignation.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium]; + _likeSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _likeSequencignation; +} + + +- (UIView *)judgementRegard { + if (!_judgementRegard) { + _judgementRegard = [[UIView alloc] init]; + _judgementRegard.backgroundColor = [UIColor clearColor]; + } + return _judgementRegard; +} + +- (UIButton *)judgementBtuton { + if (!_judgementBtuton) { + _judgementBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_judgementBtuton setImage:[UIImage imageNamed:@"yumi_monents_gen_comment_count"] forState:UIControlStateNormal]; + [_judgementBtuton setImage:[UIImage imageNamed:@"yumi_monents_gen_comment_count"] forState:UIControlStateSelected]; + [_judgementBtuton addTarget:self action:@selector(commonBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _judgementBtuton; +} + +- (UILabel *)judgementSequencignation { + if (!_judgementSequencignation) { + _judgementSequencignation = [[UILabel alloc] init]; + _judgementSequencignation.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium]; + _judgementSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _judgementSequencignation; +} + +- (UIButton *)reportBtuton { + if (!_reportBtuton) { + _reportBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_reportBtuton setImage:[UIImage imageNamed:@"yumi_monents_gen_like_report"] forState:UIControlStateNormal]; + [_reportBtuton setImage:[UIImage imageNamed:@"yumi_monents_gen_like_report"] forState:UIControlStateSelected]; + [_reportBtuton addTarget:self action:@selector(respondBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _reportBtuton; +} + +- (UIButton *)shareBtuton { + if (!_shareBtuton) { + _shareBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_shareBtuton setImage:[UIImage imageNamed:@"yumi_monents_gen_like_share"] forState:UIControlStateNormal]; + [_shareBtuton setImage:[UIImage imageNamed:@"yumi_monents_gen_like_share"] forState:UIControlStateSelected]; + _shareBtuton.hidden = YES; + [_shareBtuton addTarget:self action:@selector(partowardsiciptowardsionBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _shareBtuton; +} + +- (UIView *)burlywoodRegard { + if (!_burlywoodRegard) { + _burlywoodRegard = [[UIView alloc] init]; + _burlywoodRegard.backgroundColor = [DJDKMIMOMColor dividerPrettify]; + } + return _burlywoodRegard; +} + +@end diff --git a/YuMi/Modules/YMMonents/View/SubViews/YUMISepartionMotifRegard.h b/YuMi/Modules/YMMonents/View/SubViews/YUMISepartionMotifRegard.h new file mode 100644 index 00000000..5300fe73 --- /dev/null +++ b/YuMi/Modules/YMMonents/View/SubViews/YUMISepartionMotifRegard.h @@ -0,0 +1,16 @@ +// +// YMMoentsTopicView.h +// YUMI +// +// Created by YUMI on 2022/5/12. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class SeparationsAbstractMatrix; +@interface YUMISepartionMotifRegard : UIView +@property (nonatomic,strong) SeparationsAbstractMatrix *monentsInfo; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMonents/View/SubViews/YUMISepartionMotifRegard.m b/YuMi/Modules/YMMonents/View/SubViews/YUMISepartionMotifRegard.m new file mode 100644 index 00000000..30522afe --- /dev/null +++ b/YuMi/Modules/YMMonents/View/SubViews/YUMISepartionMotifRegard.m @@ -0,0 +1,126 @@ +// +// YMMoentsTopicView.m +// YUMI +// +// Created by YUMI on 2022/5/12. +// + +#import "YUMISepartionMotifRegard.h" +#import +#import "DJDKMIMOMColor.h" +#import "UIImage+Utils.h" +#import "NSString+Utils.h" +#import "SeparationsAbstractMatrix.h" + +@interface YUMISepartionMotifRegard () +@property (nonatomic,strong) UIStackView *stackView; +@property (nonatomic,strong) UIImageView *motifIndicateRegard; +@property (nonatomic,strong) UIImageView *figureIndicateRegard; +@property (nonatomic,strong) UILabel *motifSequencignation; +@property (nonatomic,strong) UILabel *intratemporalSequencignation; +@end + +@implementation YUMISepartionMotifRegard +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.stackView]; + [self.stackView addArrangedSubview:self.motifIndicateRegard]; + [self.stackView addArrangedSubview:self.intratemporalSequencignation]; + + [self.motifIndicateRegard addSubview:self.figureIndicateRegard]; + [self.motifIndicateRegard addSubview:self.motifSequencignation]; +} + +- (void)initChildLyRestrictions { + [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self); + }]; + + [self.motifIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self.motifSequencignation.mas_right).offset(9); + }]; + + [self.figureIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.motifIndicateRegard).offset(9); + make.size.mas_equalTo(CGSizeMake(20, 20)); + make.centerY.mas_equalTo(self.motifIndicateRegard); + }]; + + [self.motifSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.figureIndicateRegard.mas_right).offset(4); + make.centerY.mas_equalTo(self.motifIndicateRegard); + }]; +} +#pragma mark - Getters And Setters +- (void)setMonentsInfo:(SeparationsAbstractMatrix *)monentsInfo { + _monentsInfo = monentsInfo; + if (_monentsInfo) { + if (_monentsInfo.worldId > 0) { + self.motifIndicateRegard.hidden = NO; + self.motifSequencignation.text = _monentsInfo.worldName; + } else { + self.motifIndicateRegard.hidden = YES; + } + self.intratemporalSequencignation.text = [NSString sttriAboutIntrtowardsemporalStamp:_monentsInfo.publishTime]; + } +} + +- (UIStackView *)stackView { + if (!_stackView) { + _stackView = [[UIStackView alloc] init]; + _stackView.axis = UILayoutConstraintAxisHorizontal; + _stackView.distribution = UIStackViewDistributionFill; + _stackView.alignment = UIStackViewAlignmentFill; + _stackView.spacing = 8; + } + return _stackView; +} + +- (UIImageView *)motifIndicateRegard { + if (!_motifIndicateRegard) { + _motifIndicateRegard = [[UIImageView alloc] init]; + _motifIndicateRegard.userInteractionEnabled = YES; + _motifIndicateRegard.image = [UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[UIColorFromRGB(0xFFFCDD), UIColorFromRGB(0xDFF9FF), UIColorFromRGB(0xF4E5FF)] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)]; + _motifIndicateRegard.layer.masksToBounds = YES; + _motifIndicateRegard.layer.cornerRadius = 8; + } + return _motifIndicateRegard; +} + +- (UIImageView *)figureIndicateRegard { + if (!_figureIndicateRegard) { + _figureIndicateRegard = [[UIImageView alloc] init]; + _figureIndicateRegard.userInteractionEnabled = YES; + _figureIndicateRegard.image = [UIImage imageNamed:@"yumi_monents_gen_topimage_pic"]; + } + return _figureIndicateRegard; +} + +- (UILabel *)motifSequencignation { + if (!_motifSequencignation) { + _motifSequencignation = [[UILabel alloc] init]; + _motifSequencignation.font = [UIFont systemFontOfSize:10 weight:UIFontWeightBold]; + _motifSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _motifSequencignation; +} + +- (UILabel *)intratemporalSequencignation { + if (!_intratemporalSequencignation) { + _intratemporalSequencignation = [[UILabel alloc] init]; + _intratemporalSequencignation.font = [UIFont systemFontOfSize:10]; + _intratemporalSequencignation.textColor = [DJDKMIMOMColor essayTertiusPrettify]; + } + return _intratemporalSequencignation; +} + +@end diff --git a/YuMi/Modules/YMMonents/View/SubViews/YUMISepartionMotifStatementRegard.h b/YuMi/Modules/YMMonents/View/SubViews/YUMISepartionMotifStatementRegard.h new file mode 100644 index 00000000..78f1fdc5 --- /dev/null +++ b/YuMi/Modules/YMMonents/View/SubViews/YUMISepartionMotifStatementRegard.h @@ -0,0 +1,21 @@ +// +// YMMoentsTopicListView.h +// YUMI +// +// Created by YUMI on 2022/8/16. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class YUMISepartionMotifStatementRegard, SeparationsMotifMatrix; +@protocol FBCMoentsMotifStatementRegardRepresendtation + +- (void)yUMIMoentsMotifSttowardsementRegard:(YUMISepartionMotifStatementRegard *)view didSelectItem:(SeparationsMotifMatrix *)motifAbstract; + +@end +@interface YUMISepartionMotifStatementRegard : UIView +@property (nonatomic,weak) id delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMonents/View/SubViews/YUMISepartionMotifStatementRegard.m b/YuMi/Modules/YMMonents/View/SubViews/YUMISepartionMotifStatementRegard.m new file mode 100644 index 00000000..1d29ec51 --- /dev/null +++ b/YuMi/Modules/YMMonents/View/SubViews/YUMISepartionMotifStatementRegard.m @@ -0,0 +1,256 @@ +// +// YMMoentsTopicListView.m +// YUMI +// +// Created by YUMI on 2022/8/16. +// + +#import "YUMISepartionMotifStatementRegard.h" +#import +#import +#import "DJDKMIMOMColor.h" +#import "Api+Monents.h" +#import "NetIndicateRegard.h" +#import "XNDJTBWGLoadingTool.h" +#import "AccountAbstractStorage.h" +#import "SeparationsMotifMatrix.h" +#import "YUMIMacroUitls.h" +#import "NSArray+Safe.h" + +@interface YUMISepartionMotifStatementTabulationRegardElement : UITableViewCell +@property (nonatomic,strong) NetIndicateRegard *intelligenceportraitIndicateRegard; +@property (nonatomic,strong) UILabel *constituteSequencignation; +@property (nonatomic,strong) UILabel *sequencSequencignation; +@property (nonatomic,strong) SeparationsMotifMatrix *motifAbstract; +@end + +@implementation YUMISepartionMotifStatementTabulationRegardElement +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = UIColor.clearColor; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.intelligenceportraitIndicateRegard]; + [self.contentView addSubview:self.constituteSequencignation]; + [self.contentView addSubview:self.sequencSequencignation]; +} + +- (void)initChildLyRestrictions { + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(10); + make.centerY.mas_equalTo(self.contentView); + make.width.mas_equalTo(100); + make.height.mas_equalTo(60); + }]; + + [self.constituteSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.bottom.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_centerY).offset(-2); + make.left.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_right).offset(10); + make.right.mas_equalTo(-20); + }]; + + [self.sequencSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_centerY).offset(2); + make.left.right.mas_equalTo(self.constituteSequencignation); + }]; +} + +#pragma mark - Getters And Setters +- (void)setMotifAbstract:(SeparationsMotifMatrix *)motifAbstract { + _motifAbstract= motifAbstract; + if (_motifAbstract) { + self.intelligenceportraitIndicateRegard.imageUrl = _motifAbstract.icon; + self.constituteSequencignation.text = _motifAbstract.worldName; + self.sequencSequencignation.text = _motifAbstract.desc; + } +} + +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceportraitIndicateRegard.contentMode = UIViewContentModeScaleAspectFill; + _intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _intelligenceportraitIndicateRegard.layer.cornerRadius = 12; + } + return _intelligenceportraitIndicateRegard; +} + +- (UILabel *)constituteSequencignation { + if (_constituteSequencignation == nil) { + _constituteSequencignation = [[UILabel alloc] init]; + _constituteSequencignation.font = [UIFont systemFontOfSize:15]; + _constituteSequencignation.textColor = DJDKMIMOMColor.mainEssayPrettify; + } + return _constituteSequencignation; +} + +- (UILabel *)sequencSequencignation { + if (_sequencSequencignation == nil) { + _sequencSequencignation = [[UILabel alloc] init]; + _sequencSequencignation.font = [UIFont systemFontOfSize:12]; + _sequencSequencignation.textColor = DJDKMIMOMColor.instantEssayPrettify; + _sequencSequencignation.numberOfLines = 2; + } + return _sequencSequencignation; +} + +@end + + +@interface YUMISepartionMotifStatementRegard () +@property (nonatomic,strong) UITableView *tableView; +@property (nonatomic,strong) NSMutableArray *datasource; +@property (nonatomic,assign) int page; +@end + +@implementation YUMISepartionMotifStatementRegard + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initIntelligencerGrantedTerminalerRrfresh]; + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +- (void)initIntelligencerGrantedTerminalerRrfresh { + MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(intelligenceerRenovtowardseh)]; + header.stateLabel.font = [UIFont systemFontOfSize:10.0]; + header.lastUpdatedTimeLabel.font = [UIFont systemFontOfSize:10.0]; + header.stateLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + header.lastUpdatedTimeLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + self.tableView.mj_header = header; + + MJRefreshBackNormalFooter *footer = [MJRefreshBackNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(footerRenovtowardseh)]; + footer.stateLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + footer.stateLabel.font = [UIFont systemFontOfSize:10.0]; + self.tableView.mj_footer = footer; + + [self intelligenceerRenovtowardseh]; +} + +- (void)intelligenceerRenovtowardseh { + self.page = 1; + NSString * pageStr = [NSString stringWithFormat:@"%d", self.page]; + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [Api separtowardsionsMotifSttowardsement:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + [self.tableView.mj_header endRefreshing]; + if (code == 200) { + [self.datasource removeAllObjects]; + NSArray * array = [SeparationsMotifMatrix mtowardsrixsAboutGarment:data.data]; + [self.datasource addObjectsFromArray:array]; + [self.tableView reloadData]; + } else { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:msg]; + } + } uid:uid type:@"0" page:pageStr]; +} + +- (void)footerRenovtowardseh { + self.page++; + NSString * pageStr = [NSString stringWithFormat:@"%d", self.page]; + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [Api separtowardsionsMotifSttowardsement:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + [self.tableView.mj_footer endRefreshing]; + if (code == 200) { + NSArray * array = [SeparationsMotifMatrix mtowardsrixsAboutGarment:data.data]; + if (array.count > 0) { + [self.datasource addObjectsFromArray:array]; + [self.tableView reloadData]; + } else { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:YMLocalizedString(@"YUMI_Moents_Topic_List_View_0")]; + } + + } else { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:msg]; + } + } uid:uid type:@"0" page:pageStr]; +} + + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor whiteColor]; + self.layer.masksToBounds = YES; + self.layer.cornerRadius = 10; + [self addSubview:self.tableView]; +} + +- (void)initChildLyRestrictions { + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(KScreenWidth, 450)); + }]; + + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.mas_equalTo(self); + make.top.mas_equalTo(self).offset(10); + }]; +} + + + +#pragma mark - UITableViewDelegate And UITableViewDataSource +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.datasource.count; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + YUMISepartionMotifStatementTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMISepartionMotifStatementTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMISepartionMotifStatementTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMISepartionMotifStatementTabulationRegardElement class])]; + } + cell.motifAbstract = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + return cell; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + return 80; +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + [tableView deselectRowAtIndexPath:indexPath animated:YES]; + if (self.datasource.count > 0) { + SeparationsMotifMatrix * infor = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIMoentsMotifSttowardsementRegard:didSelectItem:)]) { + [self.delegate yUMIMoentsMotifSttowardsementRegard:self didSelectItem:infor]; + } + } +} + +#pragma mark - Getters And Setters +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.tableFooterView = [UIView new]; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.backgroundColor = [UIColor clearColor]; + if (@available(iOS 11.0, *)) { + _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + [_tableView registerClass:[YUMISepartionMotifStatementTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMISepartionMotifStatementTabulationRegardElement class])]; + } + return _tableView; +} + + +- (NSMutableArray *)datasource { + if (!_datasource) { + _datasource = [NSMutableArray array]; + } + return _datasource; +} + +@end diff --git a/YuMi/Modules/YMMonents/View/YUMIMomentStatementRegardGovernancer.h b/YuMi/Modules/YMMonents/View/YUMIMomentStatementRegardGovernancer.h new file mode 100644 index 00000000..f71d2793 --- /dev/null +++ b/YuMi/Modules/YMMonents/View/YUMIMomentStatementRegardGovernancer.h @@ -0,0 +1,16 @@ +// +// YMMomentListViewController.h +// YUMI +// +// Created by XY on 2023/2/16. +// + +#import "MvpRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIMomentStatementRegardGovernancer : MvpRegardGovernancer + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMonents/View/YUMIMomentStatementRegardGovernancer.m b/YuMi/Modules/YMMonents/View/YUMIMomentStatementRegardGovernancer.m new file mode 100644 index 00000000..de30d1e4 --- /dev/null +++ b/YuMi/Modules/YMMonents/View/YUMIMomentStatementRegardGovernancer.m @@ -0,0 +1,275 @@ +// +// YMMomentListViewController.m +// YUMI +// +// Created by XY on 2023/2/16. +// + +#import "YUMIMomentStatementRegardGovernancer.h" +#import "YUMIMacroUitls.h" +#import +#import +#import "DJDKMIMOMColor.h" +#import "NSArray+Safe.h" +#import "ClientDisposition.h" + +#import "SeparationsStatementAbstractMatrix.h" + +#import "YUMIMomentStatementAssembletionRegardElement.h" +#import "YUMIButton.h" + +#import "YUMISeparationsRecentlyExternalizer.h" +#import "FBCSeparationsLatestCeremony.h" + +#import "YUMISeparationsSpecificRegardGovernancer.h" +#import "YUMISeparationsAnnounceRegardGovernancer.h" +#import "YUMIMomentsSimpleSpecificRegardGovernancer.h" + +@interface YUMIMomentStatementRegardGovernancer () + +@property (nonatomic, strong) UICollectionView *collectionView; + +@property (nonatomic, strong) UIView *customNev; +@property (nonatomic, strong) UILabel *titleLabel; +@property (nonatomic, strong) YUMIButton *publishBtuton; + +@property (nonatomic,strong) NSMutableArray *datasource; +@property (nonatomic,assign) NSInteger page; +@property (nonatomic,assign) BOOL hasNoFurthaerAtoloudspeaker; +@property (nonatomic,strong) SeparationsStatementAbstractMatrix *listAbstract; + +@end + +@implementation YUMIMomentStatementRegardGovernancer + +- (BOOL)isVeiledNevObstacle { + return YES; +} + +- (__kindof id)producePresimport { + return [[YUMISeparationsRecentlyExternalizer alloc] init]; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self produceUI]; + + [self initIntelligencerGrantedTerminalerRrfresh]; +} + +- (void)produceUI { + [self.view addSubview:self.customNev]; + [self.customNev addSubview:self.titleLabel]; + [self.view addSubview:self.collectionView]; + [self.view addSubview:self.publishBtuton]; + + [self.customNev mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(kStatusBarHeight); + make.left.right.mas_equalTo(0); + make.height.mas_equalTo(44); + }]; + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.customNev); + }]; + [self.collectionView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.customNev.mas_bottom); + make.left.right.mas_equalTo(0); + make.bottom.mas_equalTo(0); + }]; + [self.publishBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.bottom.mas_equalTo(-108); + make.right.mas_equalTo(0); + make.width.height.mas_equalTo(70); + }]; +} + +- (void)announceBtutonPerformance { + YUMISeparationsAnnounceRegardGovernancer * publishVC = [[YUMISeparationsAnnounceRegardGovernancer alloc] init]; + [self.navigationController pushViewController:publishVC animated:YES]; +} + +#pragma mark - 下拉刷新 +- (void)initIntelligencerGrantedTerminalerRrfresh { + MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(intelligenceerRenovtowardseh)]; + header.stateLabel.font = [UIFont systemFontOfSize:10.0]; + header.lastUpdatedTimeLabel.font = [UIFont systemFontOfSize:10.0]; + header.stateLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + header.lastUpdatedTimeLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + self.collectionView.mj_header = header; + + MJRefreshBackNormalFooter *footer = [MJRefreshBackNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(footerRenovtowardseh)]; + footer.stateLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + footer.stateLabel.font = [UIFont systemFontOfSize:10.0]; + footer.ignoredScrollViewContentInsetBottom = self.collectionView.contentInset.bottom; + self.collectionView.mj_footer = footer; + + [self intelligenceerRenovtowardseh]; +} + +#pragma mark - 刷新的fangfa +- (void)intelligenceerRenovtowardseh { + self.page = 1; + [self.presimport acquireSepartowardsionsRecentlySttowardsementPeriodDimension:20 dynamicId:@"" state:0]; +} + +- (void)footerRenovtowardseh { + if (self.hasNoFurthaerAtoloudspeaker) { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_Moment_List_View_Controller_0")]; + [self.collectionView.mj_footer endRefreshing]; + return; + } + self.page++; + [self.presimport acquireSepartowardsionsRecentlySttowardsementPeriodDimension:20 dynamicId:self.listAbstract.nextDynamicId state:1]; +} + +#pragma mark - FBCSeparationsLatestCeremony +- (void)acquireSepartowardsionsRecentlySttowardsementAccomplishment:(SeparationsStatementAbstractMatrix *)listAbstract state:(int)state{ + self.listAbstract = listAbstract; + if (state == 0) { + [self.datasource removeAllObjects]; + } + if (listAbstract.dynamicList.count > 0) { + [self.datasource addObjectsFromArray:listAbstract.dynamicList]; + } + + if (state == 0) { + self.hasNoFurthaerAtoloudspeaker = NO; + [self.collectionView.mj_header endRefreshing]; + } else { + if (listAbstract.dynamicList.count > 0) { + self.hasNoFurthaerAtoloudspeaker = NO; + } else { + self.hasNoFurthaerAtoloudspeaker = YES; + } + [self.collectionView.mj_footer endRefreshing]; + } + [self.collectionView reloadData]; +} + +- (void)acquireSepartowardsionsRecentlySttowardsementFlunk:(NSString *)msg state:(int)state { + if (state == 0) { + [self.collectionView.mj_header endRefreshing]; + } else { + [self.collectionView.mj_footer endRefreshing]; + } +} + +#pragma mark - FBCSeparationsDetailRegardGovernancerRepresendtation +- (void)yUMISepartowardsionsSpecificRegardGovernancer:(YUMISeparationsSpecificRegardGovernancer *)view representtowardsionSepartowardsions:(NSString *)dynamicId { + __block SeparationsAbstractMatrix * deleteInfo; + [self.datasource enumerateObjectsUsingBlock:^(SeparationsAbstractMatrix * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if (obj.dynamicId.integerValue == dynamicId.integerValue) { + deleteInfo = obj; + } + }]; + + if (deleteInfo) { + [self.datasource removeObject:deleteInfo]; + [self.collectionView reloadData]; + } +} + +#pragma mark - UICollectionView + +- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { + return self.datasource.count; +} + +- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { + YUMIMomentStatementAssembletionRegardElement *cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass(YUMIMomentStatementAssembletionRegardElement.self) forIndexPath:indexPath]; + SeparationsAbstractMatrix * monentsInfo = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + cell.monentsInfo = monentsInfo; + return cell; +} + +- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath { + if (self.datasource.count > 0) { + + if ([ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + YUMIMomentsSimpleSpecificRegardGovernancer *detailVC = [[YUMIMomentsSimpleSpecificRegardGovernancer alloc] init]; + SeparationsAbstractMatrix * monentsInfo = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + detailVC.monentsInfo = monentsInfo; + detailVC.delegate = self; + [self.navigationController pushViewController:detailVC animated:YES]; + }else{ + YUMIMomentsSimpleSpecificRegardGovernancer * detailVC = [[YUMIMomentsSimpleSpecificRegardGovernancer alloc] init]; + SeparationsAbstractMatrix * monentsInfo = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + detailVC.monentsInfo = monentsInfo; + detailVC.delegate = self; + [self.navigationController pushViewController:detailVC animated:YES]; + } + } +} + +#pragma mark - 懒加载 + +- (UICollectionView *)collectionView { + if (!_collectionView) { + UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init]; + layout.scrollDirection = UICollectionViewScrollDirectionVertical; + CGFloat width = (KScreenWidth - 16 -13 -16)/2.0; + CGFloat height = 220.0/165.0*width; + layout.itemSize = CGSizeMake(width, height); + layout.minimumLineSpacing = 12.0; + layout.minimumInteritemSpacing = 13.0; + layout.sectionInset = UIEdgeInsetsMake(12, 16, 12, 16); + + _collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout]; + _collectionView.backgroundColor = UIColor.clearColor; + _collectionView.alwaysBounceVertical = YES; + [_collectionView registerClass:[YUMIMomentStatementAssembletionRegardElement class] forCellWithReuseIdentifier:NSStringFromClass(YUMIMomentStatementAssembletionRegardElement.self)]; + _collectionView.delegate = self; + _collectionView.dataSource = self; + _collectionView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + + _collectionView.contentInset = UIEdgeInsetsMake(0, 0, 100, 0); + + } + return _collectionView; +} + +- (YUMIButton *)publishBtuton { + if (!_publishBtuton) { + _publishBtuton = [YUMIButton buttonWithType:UIButtonTypeCustom]; + _publishBtuton.backgroundColor = UIColorFromRGB(0x0C1430); + [_publishBtuton setTitleColor:UIColor.whiteColor forState:UIControlStateNormal]; + _publishBtuton.titleLabel.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium]; + [_publishBtuton setTitle:YMLocalizedString(@"YUMI_Moment_List_View_Controller_1") forState:UIControlStateNormal]; + [_publishBtuton setImage:[UIImage imageNamed:@"yumi_moment_camera"] forState:UIControlStateNormal]; + [_publishBtuton addTarget:self action:@selector(announceBtutonPerformance) forControlEvents:UIControlEventTouchUpInside]; + _publishBtuton.layer.cornerRadius = 70/2; + _publishBtuton.clipsToBounds = YES; + _publishBtuton.buttonStyle = XPButtonImageTop; + _publishBtuton.padding = 4; + } + return _publishBtuton; +} + +- (UIView *)customNev { + if (!_customNev) { + _customNev = [[UIView alloc] init]; + _customNev.backgroundColor = [DJDKMIMOMColor aplictowardsionEncouragegroundPrettify]; + } + return _customNev; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.text = YMLocalizedString(@"YUMI_Moment_List_View_Controller_2"); + _titleLabel.backgroundColor = [UIColor clearColor]; + _titleLabel.font = [UIFont systemFontOfSize:18.f weight:UIFontWeightMedium]; + _titleLabel.textColor = DJDKMIMOMColor.mainEssayPrettify; + _titleLabel.textAlignment = NSTextAlignmentCenter; + } + return _titleLabel; +} + +- (NSMutableArray *)datasource { + if (!_datasource) { + _datasource = [NSMutableArray array]; + } + return _datasource; +} + +@end diff --git a/YuMi/Modules/YMMonents/View/YUMIMomentsSimpleSpecificNev.h b/YuMi/Modules/YMMonents/View/YUMIMomentsSimpleSpecificNev.h new file mode 100644 index 00000000..176d3013 --- /dev/null +++ b/YuMi/Modules/YMMonents/View/YUMIMomentsSimpleSpecificNev.h @@ -0,0 +1,28 @@ +// +// YMMomentsSimpleDetailNav.h +// YUMI +// +// Created by XY on 2023/2/22. +// + +#import + +@class SeparationsAbstractMatrix; +NS_ASSUME_NONNULL_BEGIN + +@protocol FBCMomentsSimpleDetailNevRepresendtation +- (void)momentsSimpleSpecificNevEncouragePerformance; +- (void)momentsSimpleSpecificNevIntelligenceportraitPerformance; +- (void)momentsSimpleSpecificNevFurthaerPerformance; + +@end + +@interface YUMIMomentsSimpleSpecificNev : UIView + +@property (strong, nonatomic) SeparationsAbstractMatrix *infoMatrix; + +@property (nonatomic, weak) id delegate; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMonents/View/YUMIMomentsSimpleSpecificNev.m b/YuMi/Modules/YMMonents/View/YUMIMomentsSimpleSpecificNev.m new file mode 100644 index 00000000..852b86bb --- /dev/null +++ b/YuMi/Modules/YMMonents/View/YUMIMomentsSimpleSpecificNev.m @@ -0,0 +1,152 @@ +// +// YMMomentsSimpleDetailNav.m +// YUMI +// +// Created by XY on 2023/2/22. +// + +#import "YUMIMomentsSimpleSpecificNev.h" +#import "NetIndicateRegard.h" +#import "DJDKMIMOMColor.h" +#import +#import "SeparationsAbstractMatrix.h" + +@interface YUMIMomentsSimpleSpecificNev() +@property (nonatomic, strong) UIButton *encourageBtuton; +@property (nonatomic, strong) NetIndicateRegard *intelligenceportraitIndicateRegard; +@property (nonatomic, strong) UILabel *monicerconstituteSequencignation; +@property (nonatomic, strong) UILabel *idSequencignation; +@property (nonatomic, strong) UIButton *furthaerBtuton; + +@end + +@implementation YUMIMomentsSimpleSpecificNev + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + self.backgroundColor = UIColor.whiteColor; + [self produceUI]; + } + return self; +} + +- (void)produceUI { + [self addSubview:self.encourageBtuton]; + [self addSubview:self.intelligenceportraitIndicateRegard]; + [self addSubview:self.monicerconstituteSequencignation]; + [self addSubview:self.idSequencignation]; + [self addSubview:self.furthaerBtuton]; + + [self.encourageBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(0); + make.centerY.mas_equalTo(self); + make.width.height.mas_equalTo(44); + }]; + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.encourageBtuton.mas_right); + make.centerY.mas_equalTo(self); + make.width.height.mas_equalTo(30); + }]; + [self.monicerconstituteSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.intelligenceportraitIndicateRegard); + make.left.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_right).offset(7); + make.right.lessThanOrEqualTo(self.furthaerBtuton.mas_left).offset(-10); + }]; + [self.idSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.bottom.mas_equalTo(self.intelligenceportraitIndicateRegard); + make.left.mas_equalTo(self.monicerconstituteSequencignation); + make.right.lessThanOrEqualTo(self.furthaerBtuton.mas_left).offset(-10); + }]; + [self.furthaerBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(-8); + make.centerY.mas_equalTo(self); + make.width.height.mas_equalTo(44); + }]; +} + +- (void)setInfoMatrix:(SeparationsAbstractMatrix *)infoMatrix { + _infoMatrix = infoMatrix; + if (_infoMatrix) { + self.intelligenceportraitIndicateRegard.imageUrl = infoMatrix.avatar; + NSString * nick = infoMatrix.nick; + self.monicerconstituteSequencignation.text = nick.length > 0 ? nick : @""; + self.idSequencignation.text = [NSString stringWithFormat:@"ID:%@",infoMatrix.uid]; + } +} + +#pragma mark - Action +- (void)encourageBtutonPerformance { + if (self.delegate && [self.delegate respondsToSelector:@selector(momentsSimpleSpecificNevEncouragePerformance)]) { + [self.delegate momentsSimpleSpecificNevEncouragePerformance]; + } +} + +- (void)didBetowardsIntelligenceportraitGuest { + if (self.delegate && [self.delegate respondsToSelector:@selector(momentsSimpleSpecificNevIntelligenceportraitPerformance)]) { + [self.delegate momentsSimpleSpecificNevIntelligenceportraitPerformance]; + } +} + +- (void)furthaerBtutonPerformance { + if (self.delegate && [self.delegate respondsToSelector:@selector(momentsSimpleSpecificNevFurthaerPerformance)]) { + [self.delegate momentsSimpleSpecificNevFurthaerPerformance]; + } +} + +#pragma mark - 懒加载 + +- (UIButton *)encourageBtuton { + if (!_encourageBtuton) { + _encourageBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_encourageBtuton setImage:[UIImage imageNamed:@"yumi_same_title_back"] forState:UIControlStateNormal]; + [_encourageBtuton addTarget:self action:@selector(encourageBtutonPerformance) forControlEvents:UIControlEventTouchUpInside]; + } + return _encourageBtuton; +} + +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc] init]; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + config.imageType = ImageGenreUserIcon; + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceportraitIndicateRegard.userInteractionEnabled = YES; + _intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _intelligenceportraitIndicateRegard.layer.cornerRadius = 30/2; + _intelligenceportraitIndicateRegard.contentMode = UIViewContentModeScaleAspectFill; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didBetowardsIntelligenceportraitGuest)]; + [_intelligenceportraitIndicateRegard addGestureRecognizer:tap]; + } + return _intelligenceportraitIndicateRegard; +} + +- (UILabel *)monicerconstituteSequencignation { + if (!_monicerconstituteSequencignation) { + _monicerconstituteSequencignation = [[UILabel alloc] init]; + _monicerconstituteSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _monicerconstituteSequencignation.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium]; + } + return _monicerconstituteSequencignation; +} + +- (UILabel *)idSequencignation { + if (!_idSequencignation) { + _idSequencignation = [[UILabel alloc] init]; + _idSequencignation.textColor = [DJDKMIMOMColor essayTertiusPrettify]; + _idSequencignation.font = [UIFont systemFontOfSize:10 weight:UIFontWeightRegular]; + } + return _idSequencignation; +} + +- (UIButton *)furthaerBtuton { + if (!_furthaerBtuton) { + _furthaerBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_furthaerBtuton setImage:[UIImage imageNamed:@"yumi_monents_gen_like_report"] forState:UIControlStateNormal]; + [_furthaerBtuton addTarget:self action:@selector(furthaerBtutonPerformance) forControlEvents:UIControlEventTouchUpInside]; + } + return _furthaerBtuton; +} + + +@end diff --git a/YuMi/Modules/YMMonents/View/YUMIMomentsSimpleSpecificRegardGovernancer.h b/YuMi/Modules/YMMonents/View/YUMIMomentsSimpleSpecificRegardGovernancer.h new file mode 100644 index 00000000..9a7270c1 --- /dev/null +++ b/YuMi/Modules/YMMonents/View/YUMIMomentsSimpleSpecificRegardGovernancer.h @@ -0,0 +1,22 @@ +// +// YMMomentsSimpleDetailViewController.h +// YUMI +// +// Created by XY on 2023/2/22. +// + +#import "MvpRegardGovernancer.h" +#import "FBCSeparationsDetailRegardGovernancerRepresendtation.h" + +@class SeparationsAbstractMatrix; +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIMomentsSimpleSpecificRegardGovernancer : MvpRegardGovernancer + +@property (nonatomic,strong) SeparationsAbstractMatrix *monentsInfo; + +@property (nonatomic,weak) id delegate; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMonents/View/YUMIMomentsSimpleSpecificRegardGovernancer.m b/YuMi/Modules/YMMonents/View/YUMIMomentsSimpleSpecificRegardGovernancer.m new file mode 100644 index 00000000..0b874550 --- /dev/null +++ b/YuMi/Modules/YMMonents/View/YUMIMomentsSimpleSpecificRegardGovernancer.m @@ -0,0 +1,575 @@ +// +// YMMomentsSimpleDetailViewController.m +// YUMI +// +// Created by XY on 2023/2/22. +// + +#import "YUMIMomentsSimpleSpecificRegardGovernancer.h" + +#import +#import +#import "YUMISeparationsProgrammingDisposition.h" +#import "DJDKMIMOMColor.h" +#import "MHTSpiritFacilitater.h" +#import "MHTKeyboardExecutive.h" +#import "MKJPopup.h" +#import "NSArray+Safe.h" +#import "AccountAbstractStorage.h" +#import "YUMIHtmlUrl.h" +#import "ClientDisposition.h" +#import "XNDJTBWGLoadingTool.h" +#import "SeparationsAbstractMatrix.h" +#import "SeparationsJudgementMatrix.h" +#import "SeparationsJudgementReplicationMatrix.h" +#import "YUMISeparationsTabulationRegardElement.h" +#import "YUMISeparationsJudgementTabulationRegardElement.h" +#import "YUMISeparationsDispossessTabulationRegardElement.h" +#import "MHTIntrojectionObstacleRegard.h" +#import "MHTKeyboardExecutive.h" +#import "MHTSpiritDirectorateRegard.h" +#import "YUMIManeConsumerAbstractRegardGovernancer.h" +#import "YUMIManeSimpleConsumerAbstractRegardGovernancer.h" +#import "YUMIMomentsSimpleSpecificNev.h" +#import "YUMITissueRegardGovernancer.h" +#import "YUMISeparationSpecificExternalizer.h" +#import "FBCSeparationsDetailCeremony.h" + +@interface YUMIMomentsSimpleSpecificRegardGovernancer () + +@property(nonatomic,strong) YUMIMomentsSimpleSpecificNev *specificNev; +@property (nonatomic,strong) UITableView *tableView; +@property (nonatomic,strong) NSMutableArray *datasource; +@property (nonatomic,strong) UIView * sectionRegard; +@property (nonatomic,strong) UILabel *judgementSequencignation; +@property (nonatomic,strong) UIButton *likeBtuton; +@property(nonatomic,strong)MHTIntrojectionObstacleRegard *introjectionObstacleRegard; +@property(nonatomic,strong)MHTKeyboardExecutive *keydirectorateExecutive; +@property (nonatomic,strong) NSString *commentId; +@end + +@implementation YUMIMomentsSimpleSpecificRegardGovernancer + +- (__kindof id)producePresimport { + return [[YUMISeparationSpecificExternalizer alloc] init]; +} + +- (BOOL)isVeiledNevObstacle { + return YES; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + self.view.backgroundColor = UIColor.whiteColor; + [self initIntelligencerGrantedTerminalerRrfresh]; + [self initSubViews]; + [self initChildLyRestrictions]; +} + +#pragma mark - 下拉刷新 +- (void)initIntelligencerGrantedTerminalerRrfresh { + MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(intelligenceerRenovtowardseh)]; + header.stateLabel.font = [UIFont systemFontOfSize:10.0]; + header.lastUpdatedTimeLabel.font = [UIFont systemFontOfSize:10.0]; + header.stateLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + header.lastUpdatedTimeLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + self.tableView.mj_header = header; + + MJRefreshBackNormalFooter *footer = [MJRefreshBackNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(footerRenovtowardseh)]; + footer.stateLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + footer.stateLabel.font = [UIFont systemFontOfSize:10.0]; + self.tableView.mj_footer = footer; + + [self intelligenceerRenovtowardseh]; +} + +- (void)intelligenceerRenovtowardseh { + [self.presimport acquireSepartowardsionsSpecific:self.monentsInfo.dynamicId]; + [self.presimport acquireSepartowardsionsJudgementSttowardsement:self.monentsInfo.dynamicId timestamp:@"" status:0]; +} + +- (void)footerRenovtowardseh { + NSString *timestamp = @""; + if (self.datasource.count > 0) { + SeparationsJudgementMatrix * judgementAbstract = [self.datasource lastObject]; + timestamp = judgementAbstract.publishTime; + } + [self.presimport acquireSepartowardsionsJudgementSttowardsement:self.monentsInfo.dynamicId timestamp:timestamp status:1]; +} + + +#pragma mark - Private Method +- (void)initIntrojectionRegard { + + + _introjectionObstacleRegard = [[MHTIntrojectionObstacleRegard alloc] initWithFrame:CGRectMake(0,0,self.view.frame.size.width,UIInputBarViewMinHeight)]; + MHTIntrojectionObstacleRegardDispositionuration *introjectionObstacleRegardDispositionurtowardsion = [MHTIntrojectionObstacleRegardDispositionuration deficiencyIntrojectionObstacleRegardDispositionurtowardsion]; + introjectionObstacleRegardDispositionurtowardsion.reputationBtutonVeiled = YES; + introjectionObstacleRegardDispositionurtowardsion.spreadBtutonVeiled = YES; + + introjectionObstacleRegardDispositionurtowardsion.rectifyDischargeBtuton = self.likeBtuton; + introjectionObstacleRegardDispositionurtowardsion.senintratemporalntBtutonVeiled = YES; + + [_introjectionObstacleRegard setupAboutDispositionurtowardsion:introjectionObstacleRegardDispositionurtowardsion]; + _introjectionObstacleRegard.delegate = self; + + + _keydirectorateExecutive = [[MHTKeyboardExecutive alloc] initWithViewController:self]; + _keydirectorateExecutive.dataSource = self; + + _keydirectorateExecutive.delegate = self; + [_keydirectorateExecutive accelertowardseExtremeIntrojectionObstacleRegard:_introjectionObstacleRegard belowViewController:NO]; + + + [_keydirectorateExecutive dilemmaEssayRegard:_introjectionObstacleRegard.introjectionEssayRegard]; + + _introjectionObstacleRegard.introjectionEssayRegard.placeholder = YMLocalizedString(@"YUMI_Moments_Simple_Detail_View_Controller_0"); + _introjectionObstacleRegard.introjectionEssayRegard.font = [UIFont systemFontOfSize:12]; + + +} + +- (void)prohibitichargeEssayCommunictowardsion:(NSString *)inputText { + if (inputText.length > 0) { + [_keydirectorateExecutive brakeEntiretyDirectortowardseRegard]; + if (self.commentId && self.commentId.length > 0) { + [self.presimport reprohibitiportCommon:self.commentId dynamicId:self.monentsInfo.dynamicId content:inputText]; + } else { + [self.presimport commontSepartowardsions:self.monentsInfo.dynamicId content:inputText]; + } + self.introjectionObstacleRegard.introjectionEssayRegard.text = nil; + } else { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_Moments_Simple_Detail_View_Controller_1")]; + } +} + +- (void)initSubViews { + [self.view addSubview:self.specificNev]; + [self.view addSubview:self.tableView]; + [self.sectionRegard addSubview:self.judgementSequencignation]; + [self initIntrojectionRegard]; +} + +- (void)initChildLyRestrictions { + [self.specificNev mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(kStatusBarHeight); + make.left.right.mas_equalTo(0); + make.height.mas_equalTo(44); + }]; + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.specificNev.mas_bottom); + make.left.right.mas_equalTo(self.view); + make.bottom.mas_equalTo(self.introjectionObstacleRegard.mas_top); + }]; + + [self.judgementSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.sectionRegard).offset(15); + make.top.mas_equalTo(6); + make.bottom.mas_equalTo(0); + }]; +} + +#pragma mark - UITableViewDelegate And UITableViewDataSource +- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { + return 2; +} + +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + if (section == 0) { + return 1; + } + return self.datasource.count > 0 ? self.datasource.count : 1; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + if (indexPath.section == 0) { + [YUMISeparationsProgrammingDisposition programmingSimpleSepartowardsionsMtowardsrix:self.monentsInfo]; + return self.monentsInfo.rowHeight+20; + } else if(indexPath.section == 1) { + if (self.datasource.count > 0) { + SeparationsJudgementMatrix * judgementAbstract = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + return [YUMISeparationsProgrammingDisposition judgementJudgementRowAltitude:judgementAbstract]; + } else { + return 400; + } + } + return 0; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { + if (section == 1) { + return 44; + } + return 0.0;; +} + +- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { + NSString *commentText = YMLocalizedString(@"YUMI_Moments_Simple_Detail_View_Controller_2"); + NSMutableAttributedString *commentStr = [[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:@"%@%@",commentText,self.monentsInfo.commentCount]]; + [commentStr addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:12 weight:UIFontWeightMedium] range:NSMakeRange(commentText.length, commentStr.length-commentText.length)]; + [commentStr addAttribute:NSForegroundColorAttributeName value:[DJDKMIMOMColor essayTertiusPrettify] range:NSMakeRange(commentText.length, commentStr.length-commentText.length)]; + self.judgementSequencignation.attributedText = commentStr; + return self.sectionRegard; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section { + return 0.0f; +} + +- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section { + return [UIView new]; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + if (indexPath.section ==0) { + NSString *identifier = [NSString stringWithFormat:@"%@_Simple",NSStringFromClass([YUMISeparationsTabulationRegardElement class])]; + YUMISeparationsTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:identifier]; + cell.delegate = self; + cell.monentsInfo = self.monentsInfo; + return cell; + } else { + if (self.datasource.count > 0) { + YUMISeparationsJudgementTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMISeparationsJudgementTabulationRegardElement class])]; + cell.judgementAbstract = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + cell.delegate = self; + return cell; + } else { + YUMISeparationsDispossessTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMISeparationsDispossessTabulationRegardElement class])]; + return cell; + } + } +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + [tableView deselectRowAtIndexPath:indexPath animated:YES]; + if (indexPath.section == 1) { + if (self.datasource.count > 0) { + SeparationsJudgementMatrix* monent = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + self.commentId = monent.commentId; + self.introjectionObstacleRegard.introjectionEssayRegard.placeholder = [NSString stringWithFormat:@"回复: %@", monent.nick]; + [self.introjectionObstacleRegard essayRegardBecomeThresholdResponder]; + } + } +} + +- (void)scrollViewDidScroll:(UIScrollView *)scrollView { + [_keydirectorateExecutive brakeEntiretyDirectortowardseRegard]; +} + +- (void)similarBtutonPerformance { + [self.presimport similarMonent:self.monentsInfo.dynamicId status:!self.monentsInfo.isLike likedUid:self.monentsInfo.uid worldId:[NSString stringWithFormat:@"%ld", self.monentsInfo.worldId]]; +} + +#pragma mark - FBCMomentsSimpleDetailNevRepresendtation +- (void)momentsSimpleSpecificNevEncouragePerformance { + [self.navigationController popViewControllerAnimated:YES]; +} + +- (void)momentsSimpleSpecificNevIntelligenceportraitPerformance { + if ([ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + YUMIManeConsumerAbstractRegardGovernancer * userInfoVC = [[YUMIManeConsumerAbstractRegardGovernancer alloc] init]; + userInfoVC.uid = self.monentsInfo.uid.integerValue; + [self.navigationController pushViewController:userInfoVC animated:YES]; + }else{ + YUMIManeSimpleConsumerAbstractRegardGovernancer * userInfoVC = [[YUMIManeSimpleConsumerAbstractRegardGovernancer alloc] init]; + userInfoVC.uid = self.monentsInfo.uid.integerValue; + [self.navigationController pushViewController:userInfoVC animated:YES]; + } +} + +- (void)momentsSimpleSpecificNevFurthaerPerformance { + MKJActionSheetDisposition *action; + if (self.monentsInfo.uid.integerValue == [AccountAbstractStorage instance].acquireCid.integerValue) { + action = [MKJActionSheetDisposition normalTitle:YMLocalizedString(@"YUMI_Moments_Simple_Detail_View_Controller_4") ticktackPerformance:^{ + [MKJPopup precautiousAboutCommunictowardsion:@"删除后不可恢复\n确定删除该动态吗?" acknowledgementHandler:^{ + [self.presimport representtowardsionSepartowardsions:self.monentsInfo.dynamicId worldId:[NSString stringWithFormat:@"%ld", self.monentsInfo.worldId]]; + } cancelHandler:^{ + + }]; + }]; + } else { + action = [MKJActionSheetDisposition normalTitle:YMLocalizedString(@"YUMI_Moments_Simple_Detail_View_Controller_6") ticktackPerformance:^{ + if ([ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + NSString * url= [NSString stringWithFormat:@"%@?reportUid=%@&source=%@", URLWithType(kReportRoomURL),self.monentsInfo.uid, @"WORLDDYNAMIC"]; + YUMITissueRegardGovernancer * webVewC = [[YUMITissueRegardGovernancer alloc] init]; + webVewC.url = url; + [self.navigationController pushViewController:webVewC animated:YES]; + } else { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:YMLocalizedString(@"YUMI_Moments_Simple_Detail_View_Controller_7")]; + } + }]; + } + [MKJPopup performanceSheetAboutProvisions:@[action]]; +} + +#pragma mark - FBCSeparationsCommentTabulationViweElementRepresendtation +- (void)yUMISepartowardsionsJudgementTarbsultowardsionViweElement:(YUMISeparationsJudgementTabulationRegardElement *)view didClickMoreReply:(SeparationsJudgementMatrix *)judgementAbstract { + [self.presimport acquireSepartowardsionsJudgementReplictowardsionSttowardsement:self.monentsInfo.dynamicId commentId:judgementAbstract.commentId timestamp:judgementAbstract.replyInfo.nextTimestamp]; +} + +- (void)yUMISepartowardsionsJudgementTarbsultowardsionViweElement:(YUMISeparationsJudgementTabulationRegardElement *)view didClickCommon:(SeparationsReplicationMatrix *)judgementAbstract { + if (judgementAbstract) { + self.commentId = judgementAbstract.replyId; + self.introjectionObstacleRegard.introjectionEssayRegard.placeholder = [NSString stringWithFormat:@"回复: %@", judgementAbstract.nick]; + [self.introjectionObstacleRegard essayRegardBecomeThresholdResponder]; + } +} +- (void)yUMISepartowardsionsJudgementTarbsultowardsionViweElement:(YUMISeparationsJudgementTabulationRegardElement *)view didClickAvatar:(NSString *)judgementAbstract { + if ([ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + YUMIManeConsumerAbstractRegardGovernancer * userInfoVC = [[YUMIManeConsumerAbstractRegardGovernancer alloc] init]; + userInfoVC.uid = judgementAbstract.integerValue; + [self.navigationController pushViewController:userInfoVC animated:YES]; + }else{ + YUMIManeSimpleConsumerAbstractRegardGovernancer * userInfoVC = [[YUMIManeSimpleConsumerAbstractRegardGovernancer alloc] init]; + userInfoVC.uid = judgementAbstract.integerValue; + [self.navigationController pushViewController:userInfoVC animated:YES]; + } + +} +#pragma mark - FBCSeparationsTabulationViweElementRepresendtation +- (void)yUMISepartowardsionsTarbsultowardsionViweElement:(YUMISeparationsTabulationRegardElement *)view didClickLike:(SeparationsAbstractMatrix *)monentsInfo { + [self.presimport similarMonent:monentsInfo.dynamicId status:!monentsInfo.isLike likedUid:monentsInfo.uid worldId:[NSString stringWithFormat:@"%ld", monentsInfo.worldId]]; +} + +- (void)yUMISepartowardsionsTarbsultowardsionViweElement:(YUMISeparationsTabulationRegardElement *)view didClicDelete:(SeparationsAbstractMatrix *)monentsInfo { + [MKJPopup precautiousAboutCommunictowardsion:@"删除后不可恢复\n确定删除该动态吗?" acknowledgementHandler:^{ + [self.presimport representtowardsionSepartowardsions:monentsInfo.dynamicId worldId:[NSString stringWithFormat:@"%ld", monentsInfo.worldId]]; + } cancelHandler:^{ + + }]; +} + +- (void)yUMISepartowardsionsTarbsultowardsionViweElement:(YUMISeparationsTabulationRegardElement *)view didClicCommon:(SeparationsAbstractMatrix *)monentsInfo { + if (monentsInfo) { + self.commentId = nil; + self.introjectionObstacleRegard.introjectionEssayRegard.placeholder = YMLocalizedString(@"YUMI_Moments_Simple_Detail_View_Controller_10"); + [self.introjectionObstacleRegard essayRegardBecomeThresholdResponder]; + } +} + +- (void)yUMISepartowardsionsTarbsultowardsionViweElement:(YUMISeparationsTabulationRegardElement *)view didClicFold:(SeparationsAbstractMatrix *)monentsInfo { + self.monentsInfo = monentsInfo; + [self.tableView reloadSections:[NSIndexSet indexSetWithIndex:0] withRowAnimation:UITableViewRowAnimationNone]; +} + +#pragma mark - IntrojectionDirectorateAtomicSource +- (UIView *)digitentiretyibraExecutiveSpreadDirectortowardseRegard:(MHTKeyboardExecutive *)keydirectorateExecutive { + UIView *boardView = [UIView new]; + boardView.backgroundColor = UIColor.blueColor; + return boardView; +} + +- (UIView *)digitentiretyibraExecutiveSenintrtowardsemporalntDirectortowardseRegard:(MHTKeyboardExecutive *)keydirectorateExecutive { + MHTSpiritDirectorateRegard *senintrtowardsemporalntRegard = [[MHTSpiritDirectorateRegard alloc] init]; + MHTSpiritFacilitater *faceManager = [MHTSpiritFacilitater partowardsiciptowardsiondSenintrtowardsemporalntFacilittowardseer]; + senintrtowardsemporalntRegard.senintratemporalnts = faceManager.senintratemporalntGarment; + senintrtowardsemporalntRegard.delegate = self; + if (@available(iOS 11.0, *)) { + NSBundle *bundle = [NSBundle bundleForClass:[self class]]; + senintrtowardsemporalntRegard.backgroundColor = [UIColor colorNamed:@"q_input_extend_bg" inBundle:bundle compatibleWithTraitCollection:nil]; + } else { + senintrtowardsemporalntRegard.backgroundColor = [UIColor colorWithRed:(246)/255.0f green:(246)/255.0f blue:(246)/255.0f alpha:1]; + } + return senintrtowardsemporalntRegard; +} + +- (CGFloat)digitentiretyibraExecutiveSenintrtowardsemporalntDirectortowardseAltitude:(MHTKeyboardExecutive *)keydirectorateExecutive { + return 294; +} + +- (CGFloat)digitentiretyibraExecutiveSpreadDirectortowardseAltitude:(MHTKeyboardExecutive *)keydirectorateExecutive { + return 174; +} + +- (MHTIntrojectionObstacleRegardDispositionuration *)introjectionObstacleRegardDispositionurtowardsion { + + MHTIntrojectionObstacleRegardDispositionuration *introjectionObstacleRegardDispositionurtowardsion = [MHTIntrojectionObstacleRegardDispositionuration deficiencyIntrojectionObstacleRegardDispositionurtowardsion]; + introjectionObstacleRegardDispositionurtowardsion.reputationBtutonVeiled = YES; + introjectionObstacleRegardDispositionurtowardsion.spreadBtutonVeiled = YES; + return introjectionObstacleRegardDispositionurtowardsion; +} + +- (void)introjectionObstacleRegard:(MHTIntrojectionObstacleRegard *)introjectionObstacleRegard onEmotionButtonClick:(UIButton *)senintratemporalntSwopBtuton { + if (senintratemporalntSwopBtuton.isSelected) { + [_keydirectorateExecutive swopToSenintrtowardsemporalntDirectortowardseDigitentiretyibra]; + } else { + self.commentId = nil; + _introjectionObstacleRegard.introjectionEssayRegard.placeholder = YMLocalizedString(@"YUMI_Moments_Simple_Detail_View_Controller_11"); + [_introjectionObstacleRegard essayRegardBecomeThresholdResponder]; + } +} + +#pragma mark - QEmotionDirectorateRegardRepresendtation + +- (void)senintrtowardsemporalntRegard:(MHTSpiritDirectorateRegard *)senintrtowardsemporalntRegard didSelectEmotion:(MHTSpirit *)emotion atIndex:(NSInteger)index { + + [_introjectionObstacleRegard insertSenintrtowardsemporalnt:emotion.displayName]; +} + +- (void)senintrtowardsemporalntRegardDidChosenRepresenttowardsionBtuton:(MHTSpiritDirectorateRegard *)senintrtowardsemporalntRegard { + if (![_introjectionObstacleRegard representtowardsionSenintrtowardsemporalnt]){ + + [_introjectionObstacleRegard.introjectionEssayRegard deleteBackward]; + } +} + +- (void)senintrtowardsemporalntRegardDidChosenDischargeBtuton:(MHTSpiritDirectorateRegard *)senintrtowardsemporalntRegard { + [self prohibitichargeEssayCommunictowardsion:[_introjectionObstacleRegard essayRegardIntrojectionOrdinaryEssay]]; +} + + +#pragma mark - + +- (void)introjectionObstacleRegard:(MHTIntrojectionObstacleRegard *)introjectionObstacleRegard onKeyboardSendClick:(NSString *)inputNormalText { + [self prohibitichargeEssayCommunictowardsion:inputNormalText]; +} + +#pragma mark - FBCSeparationsDetailCeremony +- (void)acquireSepartowardsionsSpecificAccomplishment:(SeparationsAbstractMatrix *)judgementAbstract { + self.monentsInfo = judgementAbstract; + [self.likeBtuton setTitle:self.monentsInfo.likeCount forState:UIControlStateNormal]; + self.likeBtuton.selected = self.monentsInfo.isLike; + [self.tableView reloadData]; +} + +- (void)acquireSepartowardsionsJudgementSttowardsementAccomplishment:(SeparationsJudgementStatementMatrix *)judgementAbstract state:(int)state{ + if (state == 0) { + [self.datasource removeAllObjects]; + [self.tableView.mj_header endRefreshing]; + } else { + [self.tableView.mj_footer endRefreshing]; + } + + if (judgementAbstract.commentList.count > 0) { + [self.datasource addObjectsFromArray:judgementAbstract.commentList]; + } + [self.tableView reloadData]; +} + +- (void)acquireSepartowardsionsJudgementReplictowardsionSttowardsementAccomplishment:(SeparationsJudgementReplicationMatrix *)replyInfo commentId:(nonnull NSString *)commentId { + if (commentId) { + __block SeparationsJudgementMatrix * judgementAbstract; + [self.datasource enumerateObjectsUsingBlock:^(SeparationsJudgementMatrix * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if ([obj.commentId isEqualToString:commentId]) { + judgementAbstract = obj; + *stop = YES; + } + }]; + + if (judgementAbstract) { + NSMutableArray * replyList= judgementAbstract.replyInfo.replyList.mutableCopy; + [replyList addObjectsFromArray:replyInfo.replyList]; + judgementAbstract.replyInfo.replyList = replyList.copy; + judgementAbstract.replyInfo.leftCount = replyInfo.leftCount; + judgementAbstract.replyInfo.nextTimestamp = replyInfo.nextTimestamp; + judgementAbstract.isReloadHeight = YES; + } + [self.tableView reloadData]; + } +} + +- (void)similarSepartowardsionsAccomplishment:(NSString *)dynamicId status:(BOOL)status { + if ([self.monentsInfo.dynamicId isEqualToString:dynamicId]) { + NSInteger count = self.monentsInfo.likeCount.integerValue; + self.monentsInfo.isLike = status; + if (status) { + count += 1; + } else { + count -= 1; + } + self.monentsInfo.likeCount = [NSString stringWithFormat:@"%ld", count]; + [self.likeBtuton setTitle:self.monentsInfo.likeCount forState:UIControlStateNormal]; + self.likeBtuton.selected = self.monentsInfo.isLike; + } +} + +- (void)replictowardsionSepartowardsionsAccomplishment { + [self.presimport acquireSepartowardsionsJudgementSttowardsement:self.monentsInfo.dynamicId timestamp:@"" status:0]; +} + +- (void)commonSepartowardsionsAccomplishment { + [self.presimport acquireSepartowardsionsJudgementSttowardsement:self.monentsInfo.dynamicId timestamp:@"" status:0]; +} + +- (void)representtowardsionSepartowardsionsAccomplishment:(NSString *)monentsInfo { + [self EvidenceAccomplishmentToast:YMLocalizedString(@"YUMI_Moments_Simple_Detail_View_Controller_12")]; + [self.navigationController popViewControllerAnimated:YES]; + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMISepartowardsionsSpecificRegardGovernancer:representtowardsionSepartowardsions:)]) { + [self.delegate yUMISepartowardsionsSpecificRegardGovernancer:self representtowardsionSepartowardsions:self.monentsInfo.dynamicId]; + } +} + + +#pragma mark - Getters And Setters + +- (YUMIMomentsSimpleSpecificNev *)specificNev { + if (!_specificNev) { + _specificNev = [[YUMIMomentsSimpleSpecificNev alloc] init]; + _specificNev.delegate = self; + _specificNev.infoMatrix = self.monentsInfo; + } + return _specificNev; +} + +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.tableFooterView = [UIView new]; + _tableView.tableFooterView = [UIView new]; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.backgroundColor = [UIColor clearColor]; + if (@available(iOS 11.0, *)) { + _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + NSString *identifier = [NSString stringWithFormat:@"%@_Simple",NSStringFromClass([YUMISeparationsTabulationRegardElement class])]; + [_tableView registerClass:[YUMISeparationsTabulationRegardElement class] forCellReuseIdentifier:identifier]; + [_tableView registerClass:[YUMISeparationsJudgementTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMISeparationsJudgementTabulationRegardElement class])]; + [_tableView registerClass:[YUMISeparationsDispossessTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMISeparationsDispossessTabulationRegardElement class])]; + } + return _tableView; +} + +- (UIView *)sectionRegard { + if (!_sectionRegard) { + _sectionRegard = [[UIView alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth, 44)]; + _sectionRegard.backgroundColor = UIColorFromRGB(0xF6F7F9); + + UIView *whiteView = [[UIView alloc] initWithFrame:CGRectMake(0, 6, _sectionRegard.bounds.size.width, _sectionRegard.bounds.size.height-6)]; + whiteView.backgroundColor = UIColor.whiteColor; + [_sectionRegard addSubview:whiteView]; + } + return _sectionRegard; +} + +- (UILabel *)judgementSequencignation { + if (!_judgementSequencignation) { + _judgementSequencignation = [[UILabel alloc] init]; + _judgementSequencignation.font = [UIFont systemFontOfSize:16 weight:UIFontWeightMedium]; + _judgementSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _judgementSequencignation; +} + +- (UIButton *)likeBtuton { + if (!_likeBtuton) { + _likeBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + _likeBtuton.frame = CGRectMake(0, 0, 80, 36); + [_likeBtuton setTitleColor:[DJDKMIMOMColor instantEssayPrettify] forState:UIControlStateNormal]; + _likeBtuton.titleLabel.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium]; + [_likeBtuton setImage:[UIImage imageNamed:@"yumi_monents_gen_like_count_normal"] forState:UIControlStateNormal]; + [_likeBtuton setImage:[UIImage imageNamed:@"yumi_monents_gen_like_count_select"] forState:UIControlStateSelected]; + [_likeBtuton addTarget:self action:@selector(similarBtutonPerformance) forControlEvents:UIControlEventTouchUpInside]; + } + return _likeBtuton; +} + +- (NSMutableArray *)datasource { + if (!_datasource) { + _datasource = [NSMutableArray array]; + } + return _datasource; +} + +@end diff --git a/YuMi/Modules/YMMonents/View/YUMISeparationMotifAccommodatedRegardGovernancer.h b/YuMi/Modules/YMMonents/View/YUMISeparationMotifAccommodatedRegardGovernancer.h new file mode 100644 index 00000000..0dcc41e3 --- /dev/null +++ b/YuMi/Modules/YMMonents/View/YUMISeparationMotifAccommodatedRegardGovernancer.h @@ -0,0 +1,16 @@ +// +// YMMonentTopicContainerViewController.h +// YUMI +// +// Created by YUMI on 2022/8/18. +// + +#import "BaseRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMISeparationMotifAccommodatedRegardGovernancer : BaseRegardGovernancer +@property (nonatomic,copy) NSString *worldId; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMonents/View/YUMISeparationMotifAccommodatedRegardGovernancer.m b/YuMi/Modules/YMMonents/View/YUMISeparationMotifAccommodatedRegardGovernancer.m new file mode 100644 index 00000000..613b1662 --- /dev/null +++ b/YuMi/Modules/YMMonents/View/YUMISeparationMotifAccommodatedRegardGovernancer.m @@ -0,0 +1,231 @@ +// +// YMMonentTopicContainerViewController.m +// YUMI +// +// Created by YUMI on 2022/8/18. +// + +#import "YUMISeparationMotifAccommodatedRegardGovernancer.h" +#import +#import +#import +#import +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" +#import "Api+Monents.h" +#import "AccountAbstractStorage.h" +#import "SeparationsMotifMatrix.h" +#import "YUMISeparationsMotifRecommondRegardGovernancer.h" +#import "YUMISeparationsMotifRecentlyRegardGovernancer.h" +#import "YUMISeparationsMotifIntelligencerRegard.h" +#import "YUMISeparationsAnnounceRegardGovernancer.h" + +@interface YUMISeparationMotifAccommodatedRegardGovernancer () +@property (nonatomic,strong) JXCategoryTitleView *categoryRegard; +@property (nonatomic,strong) JXCategoryIndicatorLineView *burlywoodRegard; +@property (nonatomic,strong) JXPagerListRefreshView *periodrRegard; +@property (nonatomic,strong) NSArray *titles; +@property (nonatomic,strong) YUMISeparationsMotifRecommondRegardGovernancer *encourageVewC; +@property (nonatomic,strong) YUMISeparationsMotifRecentlyRegardGovernancer *latestVewC; +@property (nonatomic,strong) YUMISeparationsMotifIntelligencerRegard *intelligenceerRegard; +@property (nonatomic,strong) UIButton *backButton; +@property (nonatomic,strong) UIButton *importMotifBtuton; +@property (nonatomic,strong) SeparationsMotifMatrix *motifAbstract; +@end + +@implementation YUMISeparationMotifAccommodatedRegardGovernancer + +- (BOOL)isVeiledNevObstacle { + return YES; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self requisitionMotifSpecific]; + [self initSubViews]; +} + +- (void)viewDidLayoutSubviews { + [super viewDidLayoutSubviews]; + self.periodrRegard.frame = CGRectMake(0, 0, KScreenWidth, KScreenHeight - 50); +} + +- (void)initSubViews { + [self.view addSubview:self.periodrRegard]; + [self.view addSubview:self.backButton]; + [self.view addSubview:self.importMotifBtuton]; + + [self.backButton mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.view); + make.top.mas_equalTo(statusbarHeight); + make.height.width.mas_equalTo(44); + }]; + + [self.importMotifBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(50); + make.left.right.bottom.mas_equalTo(self.view); + }]; +} + +- (void)requisitionMotifSpecific { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [Api separtowardsionsMotifSpecificAbstract:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + SeparationsMotifMatrix * info = [SeparationsMotifMatrix mtowardsrixAboutImpactbasket:data.data]; + self.motifAbstract = info; + self.intelligenceerRegard.motifAbstract = info; + } else if(code == 7903) { + [self.navigationController popViewControllerAnimated:YES]; + } else { + [self EvidenceMistakeToast:msg]; + } + } worldId:self.worldId uid:uid]; +} + + +#pragma mark - JXPagerViewDelegate +- (UIView *)tableHeaderViewInPagerView:(JXPagerView *)periodrRegard { + return self.intelligenceerRegard; +} + +- (NSUInteger)tableHeaderViewHeightInPagerView:(JXPagerView *)periodrRegard { + return 150 + kNavigationHeight; +} + +- (NSUInteger)heightForPinSectionHeaderInPagerView:(JXPagerView *)periodrRegard { + return 46; +} + +- (UIView *)viewForPinSectionHeaderInPagerView:(JXPagerView *)periodrRegard { + return self.categoryRegard; +} + +- (NSInteger)numberOfListsInPagerView:(JXPagerView *)periodrRegard { + return self.titles.count; +} + +- (id)periodrRegard:(JXPagerView *)periodrRegard initListAtIndex:(NSInteger)index { + if (index == 0) { + return self.encourageVewC; + } else { + return self.latestVewC; + } +} + +#pragma mark - Event Response +- (void)encourageBtutonPerformance:(UIButton *)sender { + [self.navigationController popViewControllerAnimated:YES]; +} + +- (void)importMotifBtutonPerformance:(UIButton *)sender { + YUMISeparationsAnnounceRegardGovernancer * publishVC = [[YUMISeparationsAnnounceRegardGovernancer alloc] init]; + self.motifAbstract.worldName = self.motifAbstract.name; + self.motifAbstract.worldId = self.motifAbstract.tId; + publishVC.motifAbstract = self.motifAbstract; + [self.navigationController pushViewController:publishVC animated:YES]; + +} + +#pragma mark - Getters And Setters +- (void)setWorldId:(NSString *)worldId { + _worldId = worldId; + self.encourageVewC.worldId = _worldId; + self.latestVewC.worldId = _worldId; +} + +- (JXCategoryTitleView *)categoryRegard { + if (!_categoryRegard) { + _categoryRegard = [[JXCategoryTitleView alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth, 46)]; + _categoryRegard.titles = self.titles; + _categoryRegard.backgroundColor = [UIColor whiteColor]; + _categoryRegard.delegate = self; + _categoryRegard.titleSelectedColor = [DJDKMIMOMColor mainEssayPrettify]; + _categoryRegard.titleColor = [DJDKMIMOMColor instantEssayPrettify]; + _categoryRegard.titleSelectedFont = [UIFont boldSystemFontOfSize:18]; + _categoryRegard.titleFont = [UIFont systemFontOfSize:15]; + _categoryRegard.titleColorGradientEnabled = YES; + _categoryRegard.titleLabelZoomEnabled = NO; + _categoryRegard.indicators = @[self.burlywoodRegard]; + _categoryRegard.listContainer = (id)self.periodrRegard.listContainerView; + _categoryRegard.averageCellSpacingEnabled = NO; + _categoryRegard.contentEdgeInsetLeft = 20; + _categoryRegard.contentEdgeInsetRight = 20; + _categoryRegard.cellSpacing = 30; + + } + return _categoryRegard; +} + +- (JXCategoryIndicatorLineView *)burlywoodRegard { + if (!_burlywoodRegard) { + _burlywoodRegard = [[JXCategoryIndicatorLineView alloc] init]; + _burlywoodRegard.indicatorColor = [DJDKMIMOMColor aplictowardsionMainPrettify]; + _burlywoodRegard.indicatorWidth = 9; + _burlywoodRegard.indicatorHeight = 4; + _burlywoodRegard.verticalMargin = 2; + } + return _burlywoodRegard; +} + +- (JXPagerListRefreshView *)periodrRegard { + if (!_periodrRegard) { + _periodrRegard = [[JXPagerListRefreshView alloc] initWithDelegate:self]; + _periodrRegard.listContainerView.scrollView.backgroundColor = UIColor.clearColor; + _periodrRegard.pinSectionHeaderVerticalOffset = (NSInteger) kNavigationHeight; + } + return _periodrRegard; +} + +- (NSArray *)titles { + if (!_titles) { + _titles = @[@"推荐", YMLocalizedString(@"YUMI_Monent_Topic_Container_View_Controller_1")]; + } + return _titles; +} + +- (YUMISeparationsMotifIntelligencerRegard *)intelligenceerRegard { + if (!_intelligenceerRegard) { + _intelligenceerRegard = [[YUMISeparationsMotifIntelligencerRegard alloc] init]; + } + return _intelligenceerRegard; +} + +- (YUMISeparationsMotifRecentlyRegardGovernancer *)latestVewC { + if (!_latestVewC) { + _latestVewC = [[YUMISeparationsMotifRecentlyRegardGovernancer alloc] init]; + } + return _latestVewC; +} + +- (YUMISeparationsMotifRecommondRegardGovernancer *)encourageVewC { + if (!_encourageVewC) { + _encourageVewC = [[YUMISeparationsMotifRecommondRegardGovernancer alloc] init]; + } + return _encourageVewC; +} + + +- (UIButton *)backButton { + if (!_backButton) { + _backButton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_backButton setImage:[UIImage imageNamed:@"yumi_main_search_white_back"] forState:UIControlStateNormal]; + [_backButton setImage:[UIImage imageNamed:@"yumi_main_search_white_back"] forState:UIControlStateSelected]; + [_backButton addTarget:self action:@selector(encourageBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _backButton; +} + +- (UIButton *)importMotifBtuton { + if (!_importMotifBtuton) { + _importMotifBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_importMotifBtuton setTitle:YMLocalizedString(@"YUMI_Monent_Topic_Container_View_Controller_2") forState:UIControlStateNormal]; + [_importMotifBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + _importMotifBtuton.titleLabel.font = [UIFont systemFontOfSize:15]; + [_importMotifBtuton setBackgroundColor:[DJDKMIMOMColor aplictowardsionMainPrettify]]; + [_importMotifBtuton setImage:[UIImage imageNamed:@"yumi_monents_topimage_camera"] forState:UIControlStateNormal]; + [_importMotifBtuton addTarget:self action:@selector(importMotifBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _importMotifBtuton; +} + +@end diff --git a/YuMi/Modules/YMMonents/View/YUMISeparationsAnnounceRegardGovernancer.h b/YuMi/Modules/YMMonents/View/YUMISeparationsAnnounceRegardGovernancer.h new file mode 100644 index 00000000..980ab9cc --- /dev/null +++ b/YuMi/Modules/YMMonents/View/YUMISeparationsAnnounceRegardGovernancer.h @@ -0,0 +1,16 @@ +// +// YMMonentsPublishViewController.h +// YUMI +// +// Created by YUMI on 2022/7/1. +// + +#import "MvpRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN +@class SeparationsMotifMatrix; +@interface YUMISeparationsAnnounceRegardGovernancer : MvpRegardGovernancer +@property (nonatomic,strong, nullable) SeparationsMotifMatrix *motifAbstract; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMonents/View/YUMISeparationsAnnounceRegardGovernancer.m b/YuMi/Modules/YMMonents/View/YUMISeparationsAnnounceRegardGovernancer.m new file mode 100644 index 00000000..ee14a55d --- /dev/null +++ b/YuMi/Modules/YMMonents/View/YUMISeparationsAnnounceRegardGovernancer.m @@ -0,0 +1,526 @@ +// +// YMMonentsPublishViewController.m +// YUMI +// +// Created by YUMI on 2022/7/1. +// + +#import "YUMISeparationsAnnounceRegardGovernancer.h" +#import +#import +#import +#import "YUMIMacroUitls.h" +#import "DJDKMIMOMColor.h" +#import "UIImage+Utils.h" +#import "Api+Mine.h" +#import "UpwardsloadIndicate.h" +#import "MKJPopup.h" +#import "NSArray+Safe.h" +#import "ClientDisposition.h" +#import "NSMutableDictionary+Saft.h" +#import "SeparationsMotifMatrix.h" +#import "SeparationsPicResAbstract.h" +#import "YUMISeparationsAnnounceAssembletionRegardElement.h" +#import "YUMISeparationsAnnounceMotifRegard.h" +#import "YUMISepartionMotifStatementRegard.h" +#import "YUMISeparationAnnounceSuccessRegard.h" + +#import "YUMISeparationsAnnounceExternalizer.h" +#import "FBCSeparationsPublishCeremony.h" +#define itemWidth (KScreenWidth - 10 * 2 - 15 * 2) / 3.0 + +@interface YUMISeparationsAnnounceRegardGovernancer () +@property (nonatomic,strong) UIView * contentView; +@property (nonatomic,strong) UIView * nevRegard; +@property (nonatomic,strong) UIButton *backButton; +@property (nonatomic,strong) UILabel *titleLabel; +@property (nonatomic,strong) UIButton *publishBtuton; +@property (nonatomic, strong) SZTextView *textView; +@property (nonatomic,strong) UILabel *restrictionSequencignation; +@property (nonatomic,strong) UIView * burlywoodRegard; +@property (nonatomic,strong) UICollectionView *collectionView; +@property (nonatomic,strong) YUMISeparationsAnnounceMotifRegard *accelerateMotifRegard; +@property (nonatomic,strong) UILabel *sequenceriptionSequencignation; +@property (nonatomic,assign) BOOL isCompileed; +@property (nonatomic,strong) UIImage *accelerateGHPiicIndicate; +@property (nonatomic,strong) NSMutableArray *datasource; +@property (nonatomic,strong) NSMutableArray *derivationAssets; +@property (nonatomic,strong) NSArray *uploadIndicateStatement; +@property (nonatomic,assign) int indicateComputation; +@end + +@implementation YUMISeparationsAnnounceRegardGovernancer + +- (__kindof id)producePresimport { + return [[YUMISeparationsAnnounceExternalizer alloc] init]; +} + +- (BOOL)isVeiledNevObstacle { + return YES; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initSubViews]; + [self initChildLyRestrictions]; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self.view addSubview:self.nevRegard]; + [self.view addSubview:self.contentView]; + + [self.contentView addSubview:self.textView]; + [self.contentView addSubview:self.restrictionSequencignation]; + [self.contentView addSubview:self.burlywoodRegard]; + [self.contentView addSubview:self.collectionView]; + [self.contentView addSubview:self.accelerateMotifRegard]; + [self.contentView addSubview:self.sequenceriptionSequencignation]; + + [self.nevRegard addSubview:self.backButton]; + [self.nevRegard addSubview:self.titleLabel]; + [self.nevRegard addSubview:self.publishBtuton]; + + [self.datasource addObject:self.accelerateGHPiicIndicate]; + + self.accelerateMotifRegard.hidden = ![ClientDisposition partowardsiciptowardsionDisposition].canUnfoild; +} + +- (void)initChildLyRestrictions { + [self.nevRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self.view); + make.height.mas_equalTo(kNavigationHeight); + }]; + + [self.backButton mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.view).mas_offset(10); + make.top.mas_equalTo(statusbarHeight); + make.height.width.mas_equalTo(44); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.nevRegard); + make.centerY.mas_equalTo(self.backButton); + }]; + + [self.publishBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self.view).offset(-15); + make.centerY.mas_equalTo(self.titleLabel); + }]; + + [self.contentView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.view); + make.top.mas_equalTo(self.nevRegard.mas_bottom); + make.bottom.mas_equalTo(self.view); + }]; + + + [self.textView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.contentView).inset(15); + make.top.mas_equalTo(self.contentView).offset(10); + make.height.mas_equalTo(150); + }]; + + [self.restrictionSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.textView.mas_bottom).offset(5); + make.right.mas_equalTo(self.textView); + }]; + + [self.burlywoodRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.restrictionSequencignation.mas_bottom).offset(10); + make.left.right.mas_equalTo(self.textView); + make.height.mas_equalTo(1); + }]; + + [self.collectionView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.contentView).inset(15); + make.top.mas_equalTo(self.burlywoodRegard.mas_bottom).offset(10); + make.height.mas_equalTo(itemWidth); + }]; + + [self.accelerateMotifRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.contentView).inset(15); + make.top.mas_equalTo(self.collectionView.mas_bottom).offset(15); + make.height.mas_equalTo(20); + }]; + + [self.sequenceriptionSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.view).inset(20); + make.bottom.mas_equalTo(self.view).offset(-25); + }]; +} + +- (void)upburdenBrochureGHPiicSttowardsement:(NSArray *)array finish:(void(^)(NSArray *list))finish { + dispatch_semaphore_t semaphore = dispatch_semaphore_create(1); + dispatch_queue_t queue = dispatch_get_global_queue(0, 0); + NSMutableArray * atoloudspeakerGarment = [NSMutableArray array]; + dispatch_async(queue, ^{ + for (UIImage * image in array) { + dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER); + [Api qiniuUpwardsLoadIndictowardse:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + NSString *key = data.data[@"key"]; + NSString *token = data.data[@"token"]; + [UpwardsloadIndicate upburdenIndictowardse:image named:key token:token success:^(NSString * _Nonnull key, NSDictionary * _Nonnull resp) { + dispatch_semaphore_signal(semaphore); + self.indicateComputation ++; + NSMutableDictionary * dict= [NSMutableDictionary dictionary]; + SeparationsPicResAbstract * infor = [SeparationsPicResAbstract mtowardsrixAboutImpactbasket:resp]; + if (infor.path) { + [dict secureSetGroal:infor.path forKey:@"resUrl"]; + } + if (infor.format) { + [dict secureSetGroal:infor.format forKey:@"format"]; + } + + if (infor.w) { + [dict secureSetGroal:@(infor.w) forKey:@"width"]; + } + + if (infor.h) { + [dict secureSetGroal:@(infor.h) forKey:@"height"]; + } + [atoloudspeakerGarment addObject:dict]; + if (self.indicateComputation == array.count) { + dispatch_async(dispatch_get_main_queue(), ^{ + finish(atoloudspeakerGarment); + }); + } + + } failure:^(NSNumber * _Nonnull resCode, NSString * _Nonnull message) { + self.indicateComputation ++; + dispatch_semaphore_signal(semaphore); + }]; + } else { + self.indicateComputation ++; + dispatch_semaphore_signal(semaphore); + } + }]; + } + }); +} + +#pragma mark - UITextViewDelegate +- (void)textViewDidChange:(UITextView *)textView { + if (textView.text.length > 500) { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_Monents_Publish_View_Controller_0")]; + textView.text = [textView.text substringToIndex:500]; + } + self.restrictionSequencignation.text = [NSString stringWithFormat:@"%lu/%ld",((unsigned long)textView.text.length), (long)500]; + self.isCompileed = textView.text.length > 0; +} + +#pragma mark - UICollectionViewDelegate And UICollectionViewDatasource +- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { + return self.datasource.count; +} + +- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { + YUMISeparationsAnnounceAssembletionRegardElement * cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([YUMISeparationsAnnounceAssembletionRegardElement class]) forIndexPath:indexPath]; + UIImage * image = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + if (indexPath.row == (self.datasource.count -1)) { + cell.isExhibitRepresentation = self.datasource.count == 9; + } else { + cell.isExhibitRepresentation = YES; + } + cell.image = image; + cell.delegate = self; + return cell; +} + +- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath { + [collectionView deselectItemAtIndexPath:indexPath animated:YES]; + if (indexPath.row == (self.datasource.count -1) && self.datasource.count != 9) { + [self.textView resignFirstResponder]; + TZImagePickerController *imagePickerVc = [[TZImagePickerController alloc] initWithMaxImagesCount:1 delegate:self]; + imagePickerVc.modalPresentationStyle = UIModalPresentationOverFullScreen; + imagePickerVc.allowPickingVideo = NO; + imagePickerVc.allowTakeVideo = NO; + imagePickerVc.maxImagesCount = 9; + imagePickerVc.naviBgColor = [DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify]; + imagePickerVc.naviTitleColor = [DJDKMIMOMColor mainEssayPrettify]; + imagePickerVc.barItemTextColor = [DJDKMIMOMColor mainEssayPrettify]; + imagePickerVc.selectedAssets = self.derivationAssets; + [self presentViewController:imagePickerVc animated:YES completion:nil]; + } +} + +#pragma mark - FBCSeparationsPublishAssembletionRegardElementRepresendtation +- (void)YUMISeparationsAnnounceAssembletionRegardElement:(YUMISeparationsAnnounceAssembletionRegardElement *)view didDeleteItem:(UIImage *)image { + [MKJPopup precautiousAboutCommunictowardsion:@"确认删除吗?" acknowledgementHandler:^{ + if ([self.datasource containsObject:image]) { + [self.datasource removeObject:image]; + } + NSIndexPath * indexPath = [self.collectionView indexPathForCell:view]; + if (indexPath.row < self.derivationAssets.count) { + [self.derivationAssets removeObjectAtIndex:indexPath.row]; + } + + [self.collectionView reloadData]; + if (self.datasource.count > 1) { + self.isCompileed = YES; + } else { + self.isCompileed = NO; + } + } cancelHandler:^{ + + }]; +} + +- (void)imagePickerController:(TZImagePickerController *)picker didFinishPickingPhotos:(NSArray *)photos sourceAssets:(NSArray *)assets isSelectOriginalPhoto:(BOOL)isSelectOriginalPhoto infos:(NSArray *)infos { + [self.datasource removeAllObjects]; + [self.derivationAssets removeAllObjects]; + [self.datasource addObjectsFromArray:photos]; + [self.derivationAssets addObjectsFromArray:assets]; + if (self.datasource.count >= 9) { + if ([self.datasource containsObject:self.accelerateGHPiicIndicate]) { + [self.datasource removeObject:self.accelerateGHPiicIndicate]; + } + } else { + if (![self.datasource containsObject:self.accelerateGHPiicIndicate]) { + [self.datasource addObject:self.accelerateGHPiicIndicate]; + } + } + + int page = (int)self.datasource.count / 3; + int scale = self.datasource.count % 3; + CGFloat height; + if (scale == 0) { + height = (itemWidth + 10) * page; + } else { + height = (itemWidth + 10) * (page + 1); + } + + [self.collectionView mas_updateConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(height); + }]; + [self.collectionView reloadData]; + if (self.datasource.count > 1) { + self.isCompileed = YES; + } else { + self.isCompileed = NO; + } + NSArray * array; + if (self.datasource.count < 9 && self.datasource.count > 1) { + array = [self.datasource subarrayWithRange:NSMakeRange(0, self.datasource.count - 1)]; + } + self.uploadIndicateStatement = array; +} + +#pragma mark - FBCSeparationsPublishMotifRegardRepresendtation +- (void)yUMISepartowardsionsPublishMotifRegard:(YUMISeparationsAnnounceMotifRegard *)view didTicktackConcludeBtuton:(UIButton *)sender { + self.motifAbstract = nil; +} + +- (void)yUMISepartowardsionsPublishMotifRegard:(YUMISeparationsAnnounceMotifRegard *)view didClickChooseTopic:(UIButton *)sender { + [self.textView resignFirstResponder]; + YUMISepartionMotifStatementRegard * topicListView = [[YUMISepartionMotifStatementRegard alloc] init]; + topicListView.delegate = self; + [MKJPopup popupRegard:topicListView style:MKJPopupStyleActionSheet]; +} + +#pragma mark - FBCMoentsMotifStatementRegardRepresendtation +- (void)yUMIMoentsMotifSttowardsementRegard:(YUMISepartionMotifStatementRegard *)view didSelectItem:(SeparationsMotifMatrix *)motifAbstract { + [MKJPopup dismiss]; + self.motifAbstract = motifAbstract; +} + +#pragma mark - FBCSeparationsPublishCeremony +- (void)announceSepartowardsionsAccomplishment { + YUMISeparationAnnounceSuccessRegard * successView = [[YUMISeparationAnnounceSuccessRegard alloc] init]; + MKJPopupServing *service = [[MKJPopupServing alloc] init]; + service.contentView = successView; + service.filterIdentifier = NSStringFromClass([YUMISeparationAnnounceSuccessRegard class]); + service.shouldFilterSpringforth = YES; + service.didFinishDismissHandler = ^(BOOL isDismissOnBackgroundTouch) { + [self.navigationController popViewControllerAnimated:YES]; + }; + [MKJPopup popupAboutDisposition:service]; + + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + [MKJPopup dismiss]; + [self.navigationController popViewControllerAnimated:YES]; + }); +} +#pragma mark - Event Response +- (void)encourageBtutonPerformance:(UIButton *)sender { + if (self.isCompileed) { + MKJPrecautiousDisposition * config = [[MKJPrecautiousDisposition alloc] init]; + config.title = YMLocalizedString(@"YUMI_Monents_Publish_View_Controller_2"); + config.message = @"还没有发布哎~确定要返回吗?"; + config.acknowledgementBtutonDisposition.title = YMLocalizedString(@"YUMI_Monents_Publish_View_Controller_4"); + config.revocationBtutonDisposition.title = YMLocalizedString(@"YUMI_Monents_Publish_View_Controller_5"); + [MKJPopup precautiousAboutDisposition:config acknowledgementHandler:^{ + + } cancelHandler:^{ + [self.navigationController popViewControllerAnimated:YES]; + }]; + } else { + [self.navigationController popViewControllerAnimated:YES]; + } +} + + +- (void)publicBtutonPerformance:(UIButton *)sender { + [self.view endEditing:YES]; + if (self.textView.text.length > 0 || self.uploadIndicateStatement.count > 0) { + if (self.uploadIndicateStatement.count > 0) { + [self EvidenceChambering]; + [self upburdenBrochureGHPiicSttowardsement:self.uploadIndicateStatement finish:^(NSArray *list) { + [self brakeHUD]; + [self.presimport announceSepartowardsions:self.motifAbstract.worldId type:MonentsContentGenre_Picture content:self.textView.text resList:list]; + }]; + } else { + [self.presimport announceSepartowardsions:self.motifAbstract.worldId type:MonentsContentGenre_Text content:self.textView.text resList:@[]]; + } + } else { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_Monents_Publish_View_Controller_6")]; + } +} + +#pragma mark - Getters And Setters +- (void)setMotifAbstract:(SeparationsMotifMatrix *)motifAbstract { + _motifAbstract = motifAbstract; + self.accelerateMotifRegard.motifAbstract = _motifAbstract; +} + +- (UIView *)nevRegard { + if (!_nevRegard) { + _nevRegard = [[UIView alloc] init]; + _nevRegard.backgroundColor = [UIColor clearColor]; + } + return _nevRegard; +} + +- (UIButton *)backButton { + if (!_backButton) { + _backButton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_backButton setImage:[UIImage imageNamed:@"yumi_same_title_back"] forState:UIControlStateNormal]; + [_backButton setImage:[UIImage imageNamed:@"yumi_same_title_back"] forState:UIControlStateSelected]; + [_backButton addTarget:self action:@selector(encourageBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _backButton; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.textAlignment = NSTextAlignmentCenter; + _titleLabel.font = [UIFont systemFontOfSize:17]; + _titleLabel.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _titleLabel.text = YMLocalizedString(@"YUMI_Monents_Publish_View_Controller_7"); + _titleLabel.textAlignment = NSTextAlignmentCenter; + } + return _titleLabel; +} + +- (UIButton *)publishBtuton { + if (!_publishBtuton) { + _publishBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_publishBtuton setTitle:YMLocalizedString(@"YUMI_Monents_Publish_View_Controller_8") forState:UIControlStateNormal]; + [_publishBtuton setTitleColor:[DJDKMIMOMColor aplictowardsionMainPrettify] forState:UIControlStateNormal]; + _publishBtuton.titleLabel.font = [UIFont systemFontOfSize:17]; + [_publishBtuton addTarget:self action:@selector(publicBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _publishBtuton; +} + +- (UIView *)contentView { + if (!_contentView) { + _contentView = [[UIView alloc] init]; + _contentView.backgroundColor = [UIColor clearColor]; + } + return _contentView; +} + + +- (UICollectionView *)collectionView { + if (!_collectionView) { + UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc] init]; + flowLayout.minimumInteritemSpacing = 10; + flowLayout.minimumLineSpacing = 10; + flowLayout.sectionInset = UIEdgeInsetsZero; + flowLayout.itemSize = CGSizeMake(itemWidth, itemWidth); + UICollectionView *collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:flowLayout]; + collectionView.delegate = self; + collectionView.dataSource = self; + collectionView.backgroundColor = [UIColor clearColor]; + [collectionView registerClass:YUMISeparationsAnnounceAssembletionRegardElement.class forCellWithReuseIdentifier:NSStringFromClass([YUMISeparationsAnnounceAssembletionRegardElement class])]; + _collectionView = collectionView; + } + return _collectionView; +} + + +- (SZTextView *)textView { + if (!_textView) { + _textView = [[SZTextView alloc] init]; + _textView.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _textView.font = [UIFont systemFontOfSize:15]; + _textView.placeholder = @"记录你此刻生活,分享给有趣的人看..."; + _textView.placeholderTextColor = [DJDKMIMOMColor instantEssayPrettify]; + _textView.backgroundColor = [UIColor clearColor]; + _textView.delegate = self; + } + return _textView; +} + +- (UILabel *)restrictionSequencignation { + if (!_restrictionSequencignation) { + _restrictionSequencignation = [[UILabel alloc] init]; + _restrictionSequencignation.text = @"0/500"; + _restrictionSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _restrictionSequencignation.font = [UIFont systemFontOfSize:12]; + _restrictionSequencignation.textAlignment = NSTextAlignmentRight; + } + return _restrictionSequencignation; +} + +- (UIView *)burlywoodRegard { + if (!_burlywoodRegard) { + _burlywoodRegard = [[UIView alloc] init]; + _burlywoodRegard.backgroundColor = [DJDKMIMOMColor dividerPrettify]; + } + return _burlywoodRegard; +} + +- (UILabel *)sequenceriptionSequencignation { + if (!_sequenceriptionSequencignation) { + _sequenceriptionSequencignation = [[UILabel alloc] init]; + _sequenceriptionSequencignation.text = @"禁止出现商业广告、微信号码、QQ号码、电话号码, 以及低俗、色情、恐怖、暴力和具有侮辱性语言等内容,违规者封号处理 !"; + _sequenceriptionSequencignation.font = [UIFont systemFontOfSize:11]; + _sequenceriptionSequencignation.textColor = [DJDKMIMOMColor instantEssayPrettify]; + _sequenceriptionSequencignation.numberOfLines = 0; + } + return _sequenceriptionSequencignation; +} + +- (YUMISeparationsAnnounceMotifRegard *)accelerateMotifRegard { + if (!_accelerateMotifRegard) { + _accelerateMotifRegard = [[YUMISeparationsAnnounceMotifRegard alloc] init]; + _accelerateMotifRegard.delegate = self; + } + return _accelerateMotifRegard; +} + +- (NSMutableArray *)datasource { + if (!_datasource) { + _datasource = [NSMutableArray array]; + } + return _datasource; +} + +- (UIImage *)accelerateGHPiicIndicate { + if (!_accelerateGHPiicIndicate) { + _accelerateGHPiicIndicate = [UIImage imageNamed:@"yumi_center_user_gen_album_add"]; + } + return _accelerateGHPiicIndicate; +} + +- (NSMutableArray *)derivationAssets { + if (!_derivationAssets) { + _derivationAssets = [NSMutableArray array]; + } + return _derivationAssets; +} +@end diff --git a/YuMi/Modules/YMMonents/View/YUMISeparationsCoactiveRegardGovernancer.h b/YuMi/Modules/YMMonents/View/YUMISeparationsCoactiveRegardGovernancer.h new file mode 100644 index 00000000..c62906f2 --- /dev/null +++ b/YuMi/Modules/YMMonents/View/YUMISeparationsCoactiveRegardGovernancer.h @@ -0,0 +1,16 @@ +// +// YMMonentsInteractiveViewController.h +// YUMI +// +// Created by YUMI on 2022/5/18. +// + +#import "MvpRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMISeparationsCoactiveRegardGovernancer : MvpRegardGovernancer + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMonents/View/YUMISeparationsCoactiveRegardGovernancer.m b/YuMi/Modules/YMMonents/View/YUMISeparationsCoactiveRegardGovernancer.m new file mode 100644 index 00000000..cc2274df --- /dev/null +++ b/YuMi/Modules/YMMonents/View/YUMISeparationsCoactiveRegardGovernancer.m @@ -0,0 +1,211 @@ +// +// YMMonentsInteractiveViewController.m +// YUMI +// +// Created by YUMI on 2022/5/18. +// + +#import "YUMISeparationsCoactiveRegardGovernancer.h" +#import +#import +#import "DJDKMIMOMColor.h" +#import "MKJPopup.h" +#import "YUMIMacroUitls.h" +#import "NSArray+Safe.h" +#import "ClientDisposition.h" +#import "SeparationsCoactiveMatrix.h" +#import "YUMISeparationsCoactiveExternalizer.h" +#import "FBCSeparationsInteractiveCeremony.h" +#import "YUMISeparationsCoactiveTabulationRegardElement.h" +#import "YUMISeparationsDispossessTabulationRegardElement.h" +#import "YUMISeparationsSpecificRegardGovernancer.h" +#import "YUMIMomentsSimpleSpecificRegardGovernancer.h" + +@interface YUMISeparationsCoactiveRegardGovernancer () +@property (nonatomic,strong) UITableView *tableView; +@property (nonatomic,strong) NSMutableArray *datasource; +@property (nonatomic,assign) NSInteger page; +@property (nonatomic,assign) BOOL hasNoFurthaerAtoloudspeaker; +@end + +@implementation YUMISeparationsCoactiveRegardGovernancer + +- (__kindof id)producePresimport { + return [[YUMISeparationsCoactiveExternalizer alloc] init]; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initIntelligencerGrantedTerminalerRrfresh]; + [self initSubViews]; + [self initChildLyRestrictions]; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.title = YMLocalizedString(@"YUMI_Monents_Interactive_View_Controller_0"); + [self.view addSubview:self.tableView]; + [self accelertowardseBreeadcrumbProvisionAboutIndictowardseSaluttowardsion:@[@"monents_interactive_delete_message"] isContrary:NO target:self action:@selector(rectifyBtutonPerformance:) tags:nil]; +} + +- (void)initChildLyRestrictions { + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.view); + }]; +} + +#pragma mark - 下拉刷新 +- (void)initIntelligencerGrantedTerminalerRrfresh { + MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(intelligenceerRenovtowardseh)]; + header.stateLabel.font = [UIFont systemFontOfSize:10.0]; + header.lastUpdatedTimeLabel.font = [UIFont systemFontOfSize:10.0]; + header.stateLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + header.lastUpdatedTimeLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + self.tableView.mj_header = header; + + MJRefreshBackNormalFooter *footer = [MJRefreshBackNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(footerRenovtowardseh)]; + footer.stateLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + footer.stateLabel.font = [UIFont systemFontOfSize:10.0]; + self.tableView.mj_footer = footer; + + [self intelligenceerRenovtowardseh]; +} + +#pragma mark - 刷新的fangfa +- (void)intelligenceerRenovtowardseh { + self.page = 1; + [self.presimport acquireSepartowardsionsCoactiveSttowardsement:@"" pageSize:20 state:0]; +} + +- (void)footerRenovtowardseh { + if (self.hasNoFurthaerAtoloudspeaker) { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_Monents_Interactive_View_Controller_1")]; + [self.tableView.mj_footer endRefreshing]; + return; + } + self.page++; + NSString * dynamicId = @""; + if (self.datasource.count > 0) { + SeparationsCoactiveMatrix * model = [self.datasource lastObject]; + dynamicId = model.dynamicId; + } + [self.presimport acquireSepartowardsionsCoactiveSttowardsement:dynamicId pageSize:20 state:1]; +} + +#pragma mark - UITableViewDelegate And UITableViewDataSource +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.datasource.count > 0 ? self.datasource.count : 1; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + if (self.datasource.count > 0) { + SeparationsCoactiveMatrix * model = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + return model.worldName.length > 0? 130 : 90; + } + return KScreenHeight - kNavigationHeight; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + if (self.datasource.count > 0) { + YUMISeparationsCoactiveTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMISeparationsCoactiveTabulationRegardElement class])]; + SeparationsCoactiveMatrix * model = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + cell.interactiveAbstract = model; + return cell; + } + YUMISeparationsDispossessTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMISeparationsDispossessTabulationRegardElement class])]; + return cell; +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + [tableView deselectRowAtIndexPath:indexPath animated:YES]; + if (self.datasource.count > 0) { + SeparationsCoactiveMatrix * model = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + SeparationsAbstractMatrix * reminiscence = [[SeparationsAbstractMatrix alloc] init]; + reminiscence.dynamicId = model.dynamicId; + + if ([ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + YUMISeparationsSpecificRegardGovernancer * detailVC = [[YUMISeparationsSpecificRegardGovernancer alloc] init]; + detailVC.monentsInfo = reminiscence; + [self.navigationController pushViewController:detailVC animated:YES]; + }else{ + YUMIMomentsSimpleSpecificRegardGovernancer * detailVC = [[YUMIMomentsSimpleSpecificRegardGovernancer alloc] init]; + detailVC.monentsInfo = reminiscence; + [self.navigationController pushViewController:detailVC animated:YES]; + } + } +} +#pragma mark -JXCategoryListContainerViewDelegate +- (UIView *)listView { + return self.view; +} + +#pragma mark - FBCSeparationsLatestCeremony +- (void)acquireSepartowardsionsCoactiveSttowardsementSueccess:(NSArray *)array state:(int)state{ + if (state == 0) { + [self.datasource removeAllObjects]; + } + if (array.count > 0) { + [self.datasource addObjectsFromArray:array]; + } + + if (state == 0) { + self.hasNoFurthaerAtoloudspeaker = NO; + [self.tableView.mj_header endRefreshing]; + } else { + if (array.count > 0) { + self.hasNoFurthaerAtoloudspeaker = NO; + } else { + self.hasNoFurthaerAtoloudspeaker = YES; + } + [self.tableView.mj_footer endRefreshing]; + } + [self.tableView reloadData]; +} + +- (void)acquireSepartowardsionsCoactiveSttowardsementFlunk:(NSString *)msg state:(int)state { + if (state == 0) { + [self.tableView.mj_header endRefreshing]; + } else { + [self.tableView.mj_footer endRefreshing]; + } +} + +- (void)prohibititinctCoactiveCommunictowardsionAccomplishment { + [self.datasource removeAllObjects]; + [self.tableView reloadData]; +} + +#pragma mark - Event Response +- (void)rectifyBtutonPerformance:(UIButton *)sender { + [MKJPopup precautiousAboutCommunictowardsion:@"清空后所有互动通知将被删除,确定清空吗?" acknowledgementHandler:^{ + [[self presimport] prohibititinctCoactiveCommunictowardsion]; + } cancelHandler:^{ + }]; +} + +#pragma mark - Getters And Setters +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.tableFooterView = [UIView new]; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.backgroundColor = [UIColor clearColor]; + if (@available(iOS 11.0, *)) { + _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + [_tableView registerClass:[YUMISeparationsCoactiveTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMISeparationsCoactiveTabulationRegardElement class])]; + [_tableView registerClass:[YUMISeparationsDispossessTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMISeparationsDispossessTabulationRegardElement class])]; + } + return _tableView; +} + + +- (NSMutableArray *)datasource { + if (!_datasource) { + _datasource = [NSMutableArray array]; + } + return _datasource; +} +@end diff --git a/YuMi/Modules/YMMonents/View/YUMISeparationsConsiderationRegardGovernancer.h b/YuMi/Modules/YMMonents/View/YUMISeparationsConsiderationRegardGovernancer.h new file mode 100644 index 00000000..17866730 --- /dev/null +++ b/YuMi/Modules/YMMonents/View/YUMISeparationsConsiderationRegardGovernancer.h @@ -0,0 +1,16 @@ +// +// YMMonentsAttentionViewController.h +// YUMI +// +// Created by YUMI on 2022/5/18. +// + +#import "MvpRegardGovernancer.h" +#import +NS_ASSUME_NONNULL_BEGIN + +@interface YUMISeparationsConsiderationRegardGovernancer : MvpRegardGovernancer + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMonents/View/YUMISeparationsConsiderationRegardGovernancer.m b/YuMi/Modules/YMMonents/View/YUMISeparationsConsiderationRegardGovernancer.m new file mode 100644 index 00000000..e7e232c2 --- /dev/null +++ b/YuMi/Modules/YMMonents/View/YUMISeparationsConsiderationRegardGovernancer.m @@ -0,0 +1,271 @@ +// +// YMMonentsAttentionViewController.m +// YUMI +// +// Created by YUMI on 2022/5/18. +// + +#import "YUMISeparationsConsiderationRegardGovernancer.h" +#import +#import +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" +#import "YUMISeparationsProgrammingDisposition.h" +#import "MKJPopup.h" +#import "NSArray+Safe.h" +#import "ClientDisposition.h" +#import "SeparationsStatementAbstractMatrix.h" +#import "YUMISeparationsConsiderationExternalizer.h" +#import "FBCSeparationsConsiderationCeremony.h" +#import "YUMISeparationsTabulationRegardElement.h" +#import "YUMISeparationsDispossessTabulationRegardElement.h" +#import "YUMISeparationsSpecificRegardGovernancer.h" +#import "YUMIMomentsSimpleSpecificRegardGovernancer.h" + +@interface YUMISeparationsConsiderationRegardGovernancer () +@property (nonatomic,strong) UITableView *tableView; +@property (nonatomic,strong) NSMutableArray *datasource; +@property (nonatomic,assign) NSInteger page; +@property (nonatomic,assign) BOOL hasNoFurthaerAtoloudspeaker; +@property (nonatomic,strong) SeparationsStatementAbstractMatrix *listAbstract; +@end + +@implementation YUMISeparationsConsiderationRegardGovernancer + +- (BOOL)isVeiledNevObstacle { + return YES; +} + +- (__kindof id)producePresimport { + return [[YUMISeparationsConsiderationExternalizer alloc] init]; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initIntelligencerGrantedTerminalerRrfresh]; + [self initSubViews]; + [self initChildLyRestrictions]; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self.view addSubview:self.tableView]; +} + +- (void)initChildLyRestrictions { + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.view); + }]; +} + +#pragma mark - 下拉刷新 +- (void)initIntelligencerGrantedTerminalerRrfresh { + MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(intelligenceerRenovtowardseh)]; + header.stateLabel.font = [UIFont systemFontOfSize:10.0]; + header.lastUpdatedTimeLabel.font = [UIFont systemFontOfSize:10.0]; + header.stateLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + header.lastUpdatedTimeLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + self.tableView.mj_header = header; + + MJRefreshBackNormalFooter *footer = [MJRefreshBackNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(footerRenovtowardseh)]; + footer.stateLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + footer.stateLabel.font = [UIFont systemFontOfSize:10.0]; + self.tableView.mj_footer = footer; + + [self intelligenceerRenovtowardseh]; +} + +#pragma mark - 刷新的fangfa +- (void)intelligenceerRenovtowardseh { + self.page = 1; + [self.presimport acquireSepartowardsionsConsidertowardsionSttowardsementPeriodDimension:20 dynamicId:@"" state:0]; +} + +- (void)footerRenovtowardseh { + if (self.hasNoFurthaerAtoloudspeaker) { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_Monents_Attention_View_Controller_0")]; + [self.tableView.mj_footer endRefreshing]; + return; + } + self.page++; + [self.presimport acquireSepartowardsionsConsidertowardsionSttowardsementPeriodDimension:20 dynamicId:self.listAbstract.nextDynamicId state:1]; +} + +#pragma mark - UITableViewDelegate And UITableViewDataSource +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.datasource.count > 0 ? self.datasource.count : 1; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + if (self.datasource.count > 0) { + SeparationsAbstractMatrix * monentInfo= [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + [YUMISeparationsProgrammingDisposition programmingSepartowardsionsMtowardsrix:monentInfo]; + return monentInfo.rowHeight; + } + return KScreenHeight - kNavigationHeight - 49 - kSafeAreaBottomHeight; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + if (self.datasource.count > 0) { + YUMISeparationsTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMISeparationsTabulationRegardElement class])]; + SeparationsAbstractMatrix * monentsInfo = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + cell.delegate = self; + cell.monentsInfo = monentsInfo; + return cell; + } + YUMISeparationsDispossessTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMISeparationsDispossessTabulationRegardElement class])]; + return cell; +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + [tableView deselectRowAtIndexPath:indexPath animated:YES]; + if (self.datasource.count > 0) { + SeparationsAbstractMatrix * monentsInfo = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + if ([ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + YUMISeparationsSpecificRegardGovernancer * detailVC = [[YUMISeparationsSpecificRegardGovernancer alloc] init]; + detailVC.monentsInfo = monentsInfo; + detailVC.delegate = self; + [self.navigationController pushViewController:detailVC animated:YES]; + }else{ + YUMIMomentsSimpleSpecificRegardGovernancer * detailVC = [[YUMIMomentsSimpleSpecificRegardGovernancer alloc] init]; + detailVC.monentsInfo = monentsInfo; + detailVC.delegate = self; + [self.navigationController pushViewController:detailVC animated:YES]; + } + } +} + +#pragma mark - FBCSeparationsDetailRegardGovernancerRepresendtation +- (void)yUMISepartowardsionsSpecificRegardGovernancer:(YUMISeparationsSpecificRegardGovernancer *)view representtowardsionSepartowardsions:(NSString *)dynamicId { + __block SeparationsAbstractMatrix * deleteInfo; + [self.datasource enumerateObjectsUsingBlock:^(SeparationsAbstractMatrix * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if (obj.dynamicId.integerValue == dynamicId.integerValue) { + deleteInfo = obj; + } + }]; + + if (deleteInfo) { + [self.datasource removeObject:deleteInfo]; + [self.tableView reloadData]; + } +} + +#pragma mark - FBCSeparationsTabulationViweElementRepresendtation +- (void)yUMISepartowardsionsTarbsultowardsionViweElement:(YUMISeparationsTabulationRegardElement *)view didClickLike:(SeparationsAbstractMatrix *)monentsInfo { + [self.presimport similarMonent:monentsInfo.dynamicId status:!monentsInfo.isLike likedUid:monentsInfo.uid worldId:[NSString stringWithFormat:@"%ld", monentsInfo.worldId]]; +} + +- (void)yUMISepartowardsionsTarbsultowardsionViweElement:(YUMISeparationsTabulationRegardElement *)view didClicDelete:(SeparationsAbstractMatrix *)monentsInfo { + [MKJPopup precautiousAboutCommunictowardsion:@"删除后不可恢复\n确定删除该动态吗?" acknowledgementHandler:^{ + [self.presimport representtowardsionSepartowardsions:monentsInfo.dynamicId worldId:[NSString stringWithFormat:@"%ld", monentsInfo.worldId]]; + } cancelHandler:^{ + + }]; +} + +- (void)yUMISepartowardsionsTarbsultowardsionViweElement:(YUMISeparationsTabulationRegardElement *)view didClicFold:(SeparationsAbstractMatrix *)monentsInfo { + __block SeparationsAbstractMatrix * monentsInfos; + [self.datasource enumerateObjectsUsingBlock:^(SeparationsAbstractMatrix * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if (obj.dynamicId.integerValue == monentsInfo.dynamicId.integerValue) { + monentsInfos = obj; + *stop = YES; + } + }]; + if (monentsInfos) { + NSInteger row = [self.datasource indexOfObject:monentsInfo]; + [self.tableView reloadRowsAtIndexPaths:@[[NSIndexPath indexPathForRow:row inSection:0]] withRowAnimation:UITableViewRowAnimationNone]; + } +} + +#pragma mark -JXCategoryListContainerViewDelegate +- (UIView *)listView { + return self.view; +} + +#pragma mark - FBCSeparationsEncourageCeremony +- (void)acquireSepartowardsionsConsidertowardsionSttowardsementAccomplishment:(SeparationsStatementAbstractMatrix *)listAbstract state:(int)state { + self.listAbstract = listAbstract; + if (state == 0) { + [self.datasource removeAllObjects]; + } + if (listAbstract.dynamicList.count > 0) { + [self.datasource addObjectsFromArray:listAbstract.dynamicList]; + } + + if (state == 0) { + self.hasNoFurthaerAtoloudspeaker = NO; + [self.tableView.mj_header endRefreshing]; + } else { + if (listAbstract.dynamicList.count > 0) { + self.hasNoFurthaerAtoloudspeaker = NO; + } else { + self.hasNoFurthaerAtoloudspeaker = YES; + } + [self.tableView.mj_footer endRefreshing]; + } + [self.tableView reloadData]; +} + +- (void)acquireSepartowardsionsConsidertowardsionSttowardsementFlunk:(NSString *)msg state:(int)state { + if (state == 0) { + [self.tableView.mj_header endRefreshing]; + } else { + [self.tableView.mj_footer endRefreshing]; + } +} + +- (void)similarSepartowardsionsAccomplishment:(NSString *)dynamicId status:(BOOL)status { + [self.datasource enumerateObjectsUsingBlock:^(SeparationsAbstractMatrix * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if ([obj.dynamicId isEqualToString:dynamicId]) { + if (status) { + obj.isLike += 1; + } else { + obj.isLike -= 1; + } + *stop = YES; + } + }]; + [self.tableView reloadData]; +} + +- (void)representtowardsionSepartowardsionsAccomplishment:(NSString *)monentsInfo { + [self EvidenceAccomplishmentToast:YMLocalizedString(@"YUMI_Monents_Attention_View_Controller_2")]; + __block SeparationsAbstractMatrix * deleteInfo; + [self.datasource enumerateObjectsUsingBlock:^(SeparationsAbstractMatrix * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if (obj.dynamicId.integerValue == monentsInfo.integerValue) { + deleteInfo = obj; + } + }]; + + if (deleteInfo) { + [self.datasource removeObject:deleteInfo]; + [self.tableView reloadData]; + } +} + +#pragma mark - Getters And Setters +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.tableFooterView = [UIView new]; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.backgroundColor = [UIColor clearColor]; + if (@available(iOS 11.0, *)) { + _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + [_tableView registerClass:[YUMISeparationsTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMISeparationsTabulationRegardElement class])]; + [_tableView registerClass:[YUMISeparationsDispossessTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMISeparationsDispossessTabulationRegardElement class])]; + } + return _tableView; +} + + +- (NSMutableArray *)datasource { + if (!_datasource) { + _datasource = [NSMutableArray array]; + } + return _datasource; +} +@end diff --git a/YuMi/Modules/YMMonents/View/YUMISeparationsEncourageRegardGovernancer.h b/YuMi/Modules/YMMonents/View/YUMISeparationsEncourageRegardGovernancer.h new file mode 100644 index 00000000..2c2ccb44 --- /dev/null +++ b/YuMi/Modules/YMMonents/View/YUMISeparationsEncourageRegardGovernancer.h @@ -0,0 +1,16 @@ +// +// YMMonentsRecommendViewController.h +// YUMI +// +// Created by YUMI on 2022/5/11. +// + +#import "MvpRegardGovernancer.h" +#import +NS_ASSUME_NONNULL_BEGIN + +@interface YUMISeparationsEncourageRegardGovernancer : MvpRegardGovernancer + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMonents/View/YUMISeparationsEncourageRegardGovernancer.m b/YuMi/Modules/YMMonents/View/YUMISeparationsEncourageRegardGovernancer.m new file mode 100644 index 00000000..4d506674 --- /dev/null +++ b/YuMi/Modules/YMMonents/View/YUMISeparationsEncourageRegardGovernancer.m @@ -0,0 +1,301 @@ +// +// YMMonentsRecommendViewController.m +// YUMI +// +// Created by YUMI on 2022/5/11. +// + +#import "YUMISeparationsEncourageRegardGovernancer.h" +#import +#import +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" +#import "YUMISeparationsProgrammingDisposition.h" +#import "MKJPopup.h" +#import "NSArray+Safe.h" +#import "ClientDisposition.h" +#import "SeparationsAbstractMatrix.h" +#import "SeparationsMotifMatrix.h" +#import "YUMISeparationsEncourageExternalizer.h" +#import "FBCSeparationsEncourageCeremony.h" +#import "YUMISeparationsTabulationRegardElement.h" +#import "YUMISeparationsDispossessTabulationRegardElement.h" +#import "YUMISeparationsEncourageIntelligencerRegard.h" +#import "YUMISeparationsSpecificRegardGovernancer.h" +#import "YUMIMomentsSimpleSpecificRegardGovernancer.h" +#import "YUMISeparationMotifAccommodatedRegardGovernancer.h" +#import "YUMISepartionMotifStatementRegardGovernancer.h" + +@interface YUMISeparationsEncourageRegardGovernancer () +@property (nonatomic,strong) UITableView *tableView; +@property (nonatomic,strong) NSMutableArray *datasource; +@property (nonatomic,assign) NSInteger page; +@property (nonatomic,assign) BOOL hasNoFurthaerAtoloudspeaker; +@property (nonatomic,strong) YUMISeparationsEncourageIntelligencerRegard *intelligenceerRegard; +@end + +@implementation YUMISeparationsEncourageRegardGovernancer + +- (BOOL)isVeiledNevObstacle { + return YES; +} + +- (__kindof id)producePresimport { + return [[YUMISeparationsEncourageExternalizer alloc] init]; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initIntelligencerGrantedTerminalerRrfresh]; + [self initSubViews]; + [self initChildLyRestrictions]; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self.view addSubview:self.tableView]; + self.tableView.tableHeaderView = self.intelligenceerRegard; +} + +- (void)initChildLyRestrictions { + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.view); + }]; +} + +#pragma mark - 下拉刷新 +- (void)initIntelligencerGrantedTerminalerRrfresh { + MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(intelligenceerRenovtowardseh)]; + header.stateLabel.font = [UIFont systemFontOfSize:10.0]; + header.lastUpdatedTimeLabel.font = [UIFont systemFontOfSize:10.0]; + header.stateLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + header.lastUpdatedTimeLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + self.tableView.mj_header = header; + + MJRefreshBackNormalFooter *footer = [MJRefreshBackNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(footerRenovtowardseh)]; + footer.stateLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + footer.stateLabel.font = [UIFont systemFontOfSize:10.0]; + self.tableView.mj_footer = footer; + + [self intelligenceerRenovtowardseh]; +} + +#pragma mark - 刷新的fangfa +- (void)intelligenceerRenovtowardseh { + self.page = 1; + [self.presimport acquireSepartowardsionsEncourageSttowardsement:self.page pageSize:20 state:0]; + [self.presimport acquireSepartowardsionsMotifSttowardsement:self.page pageSize:20]; +} + +- (void)footerRenovtowardseh { + if (self.hasNoFurthaerAtoloudspeaker) { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_Monents_Recommend_View_Controller_0")]; + [self.tableView.mj_footer endRefreshing]; + return; + } + self.page++; + [self.presimport acquireSepartowardsionsEncourageSttowardsement:self.page pageSize:20 state:1]; +} + +#pragma mark - UITableViewDelegate And UITableViewDataSource +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.datasource.count > 0 ? self.datasource.count : 1; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + if (self.datasource.count > 0) { + SeparationsAbstractMatrix * monentInfo= [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + [YUMISeparationsProgrammingDisposition programmingSepartowardsionsMtowardsrix:monentInfo]; + return monentInfo.rowHeight; + } + return KScreenHeight - kNavigationHeight - 49 - kSafeAreaBottomHeight; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + if (self.datasource.count > 0) { + YUMISeparationsTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMISeparationsTabulationRegardElement class])]; + SeparationsAbstractMatrix * monentsInfo = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + cell.monentsInfo = monentsInfo; + cell.delegate = self; + return cell; + } + YUMISeparationsDispossessTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMISeparationsDispossessTabulationRegardElement class])]; + return cell; +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + [tableView deselectRowAtIndexPath:indexPath animated:YES]; + if (self.datasource.count > 0) { + + SeparationsAbstractMatrix * monentsInfo = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + + if ([ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + YUMISeparationsSpecificRegardGovernancer * detailVC = [[YUMISeparationsSpecificRegardGovernancer alloc] init]; + detailVC.monentsInfo = monentsInfo; + detailVC.delegate = self; + [self.navigationController pushViewController:detailVC animated:YES]; + }else{ + YUMIMomentsSimpleSpecificRegardGovernancer * detailVC = [[YUMIMomentsSimpleSpecificRegardGovernancer alloc] init]; + detailVC.monentsInfo = monentsInfo; + detailVC.delegate = self; + [self.navigationController pushViewController:detailVC animated:YES]; + } + } +} +#pragma mark - FBCSeparationsDetailRegardGovernancerRepresendtation +- (void)yUMISepartowardsionsSpecificRegardGovernancer:(YUMISeparationsSpecificRegardGovernancer *)view representtowardsionSepartowardsions:(NSString *)dynamicId { + __block SeparationsAbstractMatrix * deleteInfo; + [self.datasource enumerateObjectsUsingBlock:^(SeparationsAbstractMatrix * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if (obj.dynamicId.integerValue == dynamicId.integerValue) { + deleteInfo = obj; + } + }]; + + if (deleteInfo) { + [self.datasource removeObject:deleteInfo]; + [self.tableView reloadData]; + } +} + +#pragma mark - FBCSeparationsTabulationViweElementRepresendtation +- (void)yUMISepartowardsionsTarbsultowardsionViweElement:(YUMISeparationsTabulationRegardElement *)view didClickLike:(SeparationsAbstractMatrix *)monentsInfo { + [self.presimport similarMonent:monentsInfo.dynamicId status:!monentsInfo.isLike likedUid:monentsInfo.uid worldId:[NSString stringWithFormat:@"%ld", monentsInfo.worldId]]; +} + +- (void)yUMISepartowardsionsTarbsultowardsionViweElement:(YUMISeparationsTabulationRegardElement *)view didClicDelete:(SeparationsAbstractMatrix *)monentsInfo { + [MKJPopup precautiousAboutCommunictowardsion:@"删除后不可恢复\n确定删除该动态吗?" acknowledgementHandler:^{ + [self.presimport representtowardsionSepartowardsions:monentsInfo.dynamicId worldId:[NSString stringWithFormat:@"%ld", monentsInfo.worldId]]; + } cancelHandler:^{ + + }]; +} + +- (void)yUMISepartowardsionsTarbsultowardsionViweElement:(YUMISeparationsTabulationRegardElement *)view didClicFold:(SeparationsAbstractMatrix *)monentsInfo { + __block SeparationsAbstractMatrix * monentsInfos; + [self.datasource enumerateObjectsUsingBlock:^(SeparationsAbstractMatrix * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if (obj.dynamicId.integerValue == monentsInfo.dynamicId.integerValue) { + monentsInfos = obj; + *stop = YES; + } + }]; + if (monentsInfos) { + NSInteger row = [self.datasource indexOfObject:monentsInfo]; + [self.tableView reloadRowsAtIndexPaths:@[[NSIndexPath indexPathForRow:row inSection:0]] withRowAnimation:UITableViewRowAnimationNone]; + } +} + +#pragma mark - FBCSeparationsEncourageIntelligencerRegardRepresendtation +- (void)yUMISepartowardsionsEncourageIntelligencerRegard:(YUMISeparationsEncourageIntelligencerRegard *)view didSelectItem:(SeparationsMotifMatrix *)info { + YUMISeparationMotifAccommodatedRegardGovernancer * topicVC = [[YUMISeparationMotifAccommodatedRegardGovernancer alloc] init]; + topicVC.worldId = info.tId; + [self.navigationController pushViewController:topicVC animated:YES]; +} + +- (void)yUMISepartowardsionsEncourageIntelligencerRegard:(YUMISeparationsEncourageIntelligencerRegard *)view didClickMoreTopic:(UIButton *)sender { + YUMISepartionMotifStatementRegardGovernancer * topicListVC = [[YUMISepartionMotifStatementRegardGovernancer alloc] init]; + [self.navigationController pushViewController:topicListVC animated:YES]; +} + +#pragma mark -JXCategoryListContainerViewDelegate +- (UIView *)listView { + return self.view; +} + +#pragma mark - FBCSeparationsEncourageCeremony +- (void)acquireSepartowardsionsEncourageSttowardsementAccomplishment:(NSArray *)array state:(int)state { + if (state == 0) { + [self.datasource removeAllObjects]; + } + if (array.count > 0) { + [self.datasource addObjectsFromArray:array]; + } + + if (state == 0) { + self.hasNoFurthaerAtoloudspeaker = NO; + [self.tableView.mj_header endRefreshing]; + } else { + if (array.count > 0) { + self.hasNoFurthaerAtoloudspeaker = NO; + } else { + self.hasNoFurthaerAtoloudspeaker = YES; + } + [self.tableView.mj_footer endRefreshing]; + } + [self.tableView reloadData]; +} + +- (void)acquireSepartowardsionsEncourageSttowardsementFlunk:(NSString *)msg state:(int)state { + if (state == 0) { + [self.tableView.mj_header endRefreshing]; + } else { + [self.tableView.mj_footer endRefreshing]; + } +} + +- (void)separtowardsionsMotifSttowardsementAccomplishment:(NSArray *)array { + self.intelligenceerRegard.motifStatement = array; +} + +- (void)similarSepartowardsionsAccomplishment:(NSString *)dynamicId status:(BOOL)status { + [self.datasource enumerateObjectsUsingBlock:^(SeparationsAbstractMatrix * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if ([obj.dynamicId isEqualToString:dynamicId]) { + if (status) { + obj.isLike += 1; + } else { + obj.isLike -= 1; + } + *stop = YES; + } + }]; + [self.tableView reloadData]; +} + +- (void)representtowardsionSepartowardsionsAccomplishment:(NSString *)monentsInfo { + [self EvidenceAccomplishmentToast:YMLocalizedString(@"YUMI_Monents_Recommend_View_Controller_2")]; + __block SeparationsAbstractMatrix * deleteInfo; + [self.datasource enumerateObjectsUsingBlock:^(SeparationsAbstractMatrix * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if (obj.dynamicId.integerValue == monentsInfo.integerValue) { + deleteInfo = obj; + } + }]; + if (deleteInfo) { + [self.datasource removeObject:deleteInfo]; + [self.tableView reloadData]; + } +} + +#pragma mark - Getters And Setters +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.tableFooterView = [UIView new]; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.backgroundColor = [UIColor clearColor]; + if (@available(iOS 11.0, *)) { + _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + [_tableView registerClass:[YUMISeparationsTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMISeparationsTabulationRegardElement class])]; + [_tableView registerClass:[YUMISeparationsDispossessTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMISeparationsDispossessTabulationRegardElement class])]; + } + return _tableView; +} + + +- (NSMutableArray *)datasource { + if (!_datasource) { + _datasource = [NSMutableArray array]; + } + return _datasource; +} + +- (YUMISeparationsEncourageIntelligencerRegard *)intelligenceerRegard { + if (!_intelligenceerRegard) { + _intelligenceerRegard = [[YUMISeparationsEncourageIntelligencerRegard alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth, 110)]; + _intelligenceerRegard.delegate = self; + } + return _intelligenceerRegard; +} + +@end diff --git a/YuMi/Modules/YMMonents/View/YUMISeparationsManeRegardGovernancer.h b/YuMi/Modules/YMMonents/View/YUMISeparationsManeRegardGovernancer.h new file mode 100644 index 00000000..935353c9 --- /dev/null +++ b/YuMi/Modules/YMMonents/View/YUMISeparationsManeRegardGovernancer.h @@ -0,0 +1,17 @@ +// +// YMMonentsMineViewController.h +// YUMI +// +// Created by YUMI on 2022/8/18. +// + +#import "MvpRegardGovernancer.h" +#import +NS_ASSUME_NONNULL_BEGIN +@class SeparationsAbstractMatrix; +@interface YUMISeparationsManeRegardGovernancer : MvpRegardGovernancer +@property (nonatomic,strong) NSArray*dynamicInfo; +@property (nonatomic, copy) void(^scrollCallback)(UIScrollView *scrollView); +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMonents/View/YUMISeparationsManeRegardGovernancer.m b/YuMi/Modules/YMMonents/View/YUMISeparationsManeRegardGovernancer.m new file mode 100644 index 00000000..40f74ee8 --- /dev/null +++ b/YuMi/Modules/YMMonents/View/YUMISeparationsManeRegardGovernancer.m @@ -0,0 +1,226 @@ +// +// YMMonentsMineViewController.m +// YUMI +// +// Created by YUMI on 2022/8/18. +// + +#import "YUMISeparationsManeRegardGovernancer.h" +#import +#import +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" +#import "YUMISeparationsProgrammingDisposition.h" +#import "MKJPopup.h" +#import "NSArray+Safe.h" +#import "ClientDisposition.h" +#import "SeparationsStatementAbstractMatrix.h" +#import "YUMISeparationManeExternalizer.h" +#import "FBCSeparationsManeCeremony.h" +#import "YUMISeparationsTabulationRegardElement.h" +#import "YUMISeparationsDispossessTabulationRegardElement.h" +#import "YUMISeparationsSpecificRegardGovernancer.h" +#import "YUMIMomentsSimpleSpecificRegardGovernancer.h" + +@interface YUMISeparationsManeRegardGovernancer () +@property (nonatomic,strong) UITableView *tableView; +@property (nonatomic,strong) NSMutableArray *datasource; +@property (nonatomic,assign) BOOL hasNoFurthaerAtoloudspeaker; +@property (nonatomic,strong) SeparationsStatementAbstractMatrix *listAbstract; +@end + +@implementation YUMISeparationsManeRegardGovernancer + +- (__kindof id)producePresimport { + return [[YUMISeparationManeExternalizer alloc] init]; +} + +- (BOOL)isVeiledNevObstacle { + return YES; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initSubViews]; + [self initChildLyRestrictions]; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self.view addSubview:self.tableView]; +} + +- (void)initChildLyRestrictions { + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.view); + }]; +} + +#pragma mark - UITableViewDelegate And UITableViewDataSource +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.datasource.count > 0 ? self.datasource.count : 1; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + if (self.datasource.count > 0) { + SeparationsAbstractMatrix * monentInfo= [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + [YUMISeparationsProgrammingDisposition programmingSepartowardsionsMtowardsrix:monentInfo]; + return monentInfo.rowHeight; + } + return KScreenHeight - kNavigationHeight - 49 - kSafeAreaBottomHeight; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + if (self.datasource.count > 0) { + YUMISeparationsTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMISeparationsTabulationRegardElement class])]; + SeparationsAbstractMatrix * monentsInfo = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + cell.delegate = self; + cell.monentsInfo = monentsInfo; + return cell; + } + YUMISeparationsDispossessTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMISeparationsDispossessTabulationRegardElement class])]; + return cell; +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + [tableView deselectRowAtIndexPath:indexPath animated:YES]; + if (self.datasource.count > 0) { + + if ([ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + YUMISeparationsSpecificRegardGovernancer * detailVC = [[YUMISeparationsSpecificRegardGovernancer alloc] init]; + SeparationsAbstractMatrix * monentsInfo = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + detailVC.monentsInfo = monentsInfo; + detailVC.delegate = self; + [self.navigationController pushViewController:detailVC animated:YES]; + }else{ + YUMIMomentsSimpleSpecificRegardGovernancer * detailVC = [[YUMIMomentsSimpleSpecificRegardGovernancer alloc] init]; + SeparationsAbstractMatrix * monentsInfo = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + detailVC.monentsInfo = monentsInfo; + detailVC.delegate = self; + [self.navigationController pushViewController:detailVC animated:YES]; + } + } +} +#pragma mark - FBCSeparationsTabulationViweElementRepresendtation +- (void)yUMISepartowardsionsTarbsultowardsionViweElement:(YUMISeparationsTabulationRegardElement *)view didClickLike:(SeparationsAbstractMatrix *)monentsInfo { + [self.presimport similarMonent:monentsInfo.dynamicId status:!monentsInfo.isLike likedUid:monentsInfo.uid worldId:[NSString stringWithFormat:@"%ld", monentsInfo.worldId]]; +} + +- (void)yUMISepartowardsionsTarbsultowardsionViweElement:(YUMISeparationsTabulationRegardElement *)view didClicDelete:(SeparationsAbstractMatrix *)monentsInfo { + [MKJPopup precautiousAboutCommunictowardsion:YMLocalizedString(@"XPMonentsMineViewController2") acknowledgementHandler:^{ + [self.presimport representtowardsionSepartowardsions:monentsInfo.dynamicId worldId:[NSString stringWithFormat:@"%ld", monentsInfo.worldId]]; + } cancelHandler:^{ + + }]; +} + +- (void)yUMISepartowardsionsTarbsultowardsionViweElement:(YUMISeparationsTabulationRegardElement *)view didClicFold:(SeparationsAbstractMatrix *)monentsInfo { + __block SeparationsAbstractMatrix * monentsInfos; + [self.datasource enumerateObjectsUsingBlock:^(SeparationsAbstractMatrix * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if (obj.dynamicId.integerValue == monentsInfo.dynamicId.integerValue) { + monentsInfos = obj; + *stop = YES; + } + }]; + if (monentsInfos) { + NSInteger row = [self.datasource indexOfObject:monentsInfo]; + [self.tableView reloadRowsAtIndexPaths:@[[NSIndexPath indexPathForRow:row inSection:0]] withRowAnimation:UITableViewRowAnimationNone]; + } +} + +#pragma mark - FBCSeparationsDetailRegardGovernancerRepresendtation +- (void)yUMISepartowardsionsSpecificRegardGovernancer:(YUMISeparationsSpecificRegardGovernancer *)view representtowardsionSepartowardsions:(NSString *)dynamicId { + __block SeparationsAbstractMatrix * deleteInfo; + [self.datasource enumerateObjectsUsingBlock:^(SeparationsAbstractMatrix * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if (obj.dynamicId.integerValue == dynamicId.integerValue) { + deleteInfo = obj; + } + }]; + + if (deleteInfo) { + [self.datasource removeObject:deleteInfo]; + [self.tableView reloadData]; + } +} + +#pragma mark - FBCSeparationsManeCeremony +- (void)similarSepartowardsionsAccomplishment:(NSString *)dynamicId status:(BOOL)status { + [self.datasource enumerateObjectsUsingBlock:^(SeparationsAbstractMatrix * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if ([obj.dynamicId isEqualToString:dynamicId]) { + if (status) { + obj.isLike += 1; + } else { + obj.isLike -= 1; + } + *stop = YES; + } + }]; + [self.tableView reloadData]; +} + +- (void)representtowardsionSepartowardsionsAccomplishment:(NSString *)monentsInfo { + [self EvidenceAccomplishmentToast:YMLocalizedString(@"YUMI_Monents_Mine_View_Controller_1")]; + __block SeparationsAbstractMatrix * deleteInfo; + [self.datasource enumerateObjectsUsingBlock:^(SeparationsAbstractMatrix * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if (obj.dynamicId.integerValue == monentsInfo.integerValue) { + deleteInfo = obj; + } + }]; + + if (deleteInfo) { + [self.datasource removeObject:deleteInfo]; + [self.tableView reloadData]; + } +} + + +#pragma mark - JXPagingViewListViewDelegate +- (UIScrollView *)listScrollView { + return self.tableView; +} + +- (void)listViewDidScrollCallback:(void (^)(UIScrollView *))callback { + self.scrollCallback = callback; +} + +- (UIView *)listView { + return self.view; +} + +- (void)scrollViewDidScroll:(UIScrollView *)scrollView { + self.scrollCallback(scrollView); +} + +#pragma mark - Getters And Setters +- (void)setDynamicInfo:(NSArray *)dynamicInfo { + [self.datasource removeAllObjects]; + [self.datasource addObjectsFromArray:dynamicInfo]; + [self.tableView reloadData]; +} + +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.tableFooterView = [UIView new]; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.backgroundColor = [UIColor clearColor]; + if (@available(iOS 11.0, *)) { + _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + [_tableView registerClass:[YUMISeparationsTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMISeparationsTabulationRegardElement class])]; + [_tableView registerClass:[YUMISeparationsDispossessTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMISeparationsDispossessTabulationRegardElement class])]; + } + return _tableView; +} + + +- (NSMutableArray *)datasource { + if (!_datasource) { + _datasource = [NSMutableArray array]; + } + return _datasource; +} + +@end diff --git a/YuMi/Modules/YMMonents/View/YUMISeparationsMotifRecentlyRegardGovernancer.h b/YuMi/Modules/YMMonents/View/YUMISeparationsMotifRecentlyRegardGovernancer.h new file mode 100644 index 00000000..9c20fc00 --- /dev/null +++ b/YuMi/Modules/YMMonents/View/YUMISeparationsMotifRecentlyRegardGovernancer.h @@ -0,0 +1,17 @@ +// +// YMMonentsTopicLatestViewController.h +// YUMI +// +// Created by YUMI on 2022/8/18. +// + +#import "MvpRegardGovernancer.h" +#import +NS_ASSUME_NONNULL_BEGIN + +@interface YUMISeparationsMotifRecentlyRegardGovernancer : MvpRegardGovernancer +@property (nonatomic,copy) NSString *worldId; +@property (nonatomic, copy) void(^scrollCallback)(UIScrollView *scrollView); +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMonents/View/YUMISeparationsMotifRecentlyRegardGovernancer.m b/YuMi/Modules/YMMonents/View/YUMISeparationsMotifRecentlyRegardGovernancer.m new file mode 100644 index 00000000..a854720b --- /dev/null +++ b/YuMi/Modules/YMMonents/View/YUMISeparationsMotifRecentlyRegardGovernancer.m @@ -0,0 +1,282 @@ +// +// YMMonentsTopicLatestViewController.m +// YUMI +// +// Created by YUMI on 2022/8/18. +// + +#import "YUMISeparationsMotifRecentlyRegardGovernancer.h" +#import +#import +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" +#import "YUMISeparationsProgrammingDisposition.h" +#import "MKJPopup.h" +#import "NSArray+Safe.h" +#import "ClientDisposition.h" +#import "SeparationsStatementAbstractMatrix.h" +#import "YUMISeparationsMotifRecentlyExternalizer.h" +#import "FBCSeparationsMotifLatestCeremony.h" +#import "YUMISeparationsTabulationRegardElement.h" +#import "YUMISeparationsDispossessTabulationRegardElement.h" +#import "YUMISeparationsSpecificRegardGovernancer.h" +#import "YUMIMomentsSimpleSpecificRegardGovernancer.h" + +@interface YUMISeparationsMotifRecentlyRegardGovernancer () +@property (nonatomic,strong) UITableView *tableView; +@property (nonatomic,strong) NSMutableArray *datasource; +@property (nonatomic,assign) BOOL hasNoFurthaerAtoloudspeaker; +@property (nonatomic,strong) SeparationsStatementAbstractMatrix *listAbstract; +@end + +@implementation YUMISeparationsMotifRecentlyRegardGovernancer + +- (BOOL)isVeiledNevObstacle { + return YES; +} + +- (__kindof id)producePresimport { + return [[YUMISeparationsMotifRecentlyExternalizer alloc] init]; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initIntelligencerGrantedTerminalerRrfresh]; + [self initSubViews]; + [self initChildLyRestrictions]; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self.view addSubview:self.tableView]; +} + +- (void)initChildLyRestrictions { + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.view); + }]; +} + +#pragma mark - 下拉刷新 +- (void)initIntelligencerGrantedTerminalerRrfresh { + MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(intelligenceerRenovtowardseh)]; + header.stateLabel.font = [UIFont systemFontOfSize:10.0]; + header.lastUpdatedTimeLabel.font = [UIFont systemFontOfSize:10.0]; + header.stateLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + header.lastUpdatedTimeLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + self.tableView.mj_header = header; + + MJRefreshBackNormalFooter *footer = [MJRefreshBackNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(footerRenovtowardseh)]; + footer.stateLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + footer.stateLabel.font = [UIFont systemFontOfSize:10.0]; + self.tableView.mj_footer = footer; + + [self intelligenceerRenovtowardseh]; +} + +#pragma mark - 刷新的fangfa +- (void)intelligenceerRenovtowardseh { + [self.presimport acquireSepartowardsionsMotifRecentlySttowardsement:@"" worldId:self.worldId state:0]; +} + +- (void)footerRenovtowardseh { + if (self.hasNoFurthaerAtoloudspeaker) { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_Monents_Topic_Latest_View_Controller_0")]; + [self.tableView.mj_footer endRefreshing]; + return; + } + [self.presimport acquireSepartowardsionsMotifRecentlySttowardsement:self.listAbstract.nextDynamicId worldId:self.worldId state:1]; +} + +#pragma mark - UITableViewDelegate And UITableViewDataSource +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.datasource.count > 0 ? self.datasource.count : 1; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + if (self.datasource.count > 0) { + SeparationsAbstractMatrix * monentInfo= [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + [YUMISeparationsProgrammingDisposition programmingSepartowardsionsMtowardsrix:monentInfo]; + return monentInfo.rowHeight; + } + return KScreenHeight - kNavigationHeight - 49 - kSafeAreaBottomHeight; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + if (self.datasource.count > 0) { + YUMISeparationsTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMISeparationsTabulationRegardElement class])]; + SeparationsAbstractMatrix * monentsInfo = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + cell.delegate = self; + cell.monentsInfo = monentsInfo; + return cell; + } + YUMISeparationsDispossessTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMISeparationsDispossessTabulationRegardElement class])]; + return cell; +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + [tableView deselectRowAtIndexPath:indexPath animated:YES]; + if (self.datasource.count > 0) { + + if ([ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + YUMISeparationsSpecificRegardGovernancer * detailVC = [[YUMISeparationsSpecificRegardGovernancer alloc] init]; + SeparationsAbstractMatrix * monentsInfo = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + detailVC.monentsInfo = monentsInfo; + detailVC.delegate = self; + [self.navigationController pushViewController:detailVC animated:YES]; + }else{ + YUMIMomentsSimpleSpecificRegardGovernancer * detailVC = [[YUMIMomentsSimpleSpecificRegardGovernancer alloc] init]; + SeparationsAbstractMatrix * monentsInfo = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + detailVC.monentsInfo = monentsInfo; + detailVC.delegate = self; + [self.navigationController pushViewController:detailVC animated:YES]; + } + } +} +#pragma mark - FBCSeparationsTabulationViweElementRepresendtation +- (void)yUMISepartowardsionsTarbsultowardsionViweElement:(YUMISeparationsTabulationRegardElement *)view didClickLike:(SeparationsAbstractMatrix *)monentsInfo { + [self.presimport similarMonent:monentsInfo.dynamicId status:!monentsInfo.isLike likedUid:monentsInfo.uid worldId:[NSString stringWithFormat:@"%ld", monentsInfo.worldId]]; +} + +- (void)yUMISepartowardsionsTarbsultowardsionViweElement:(YUMISeparationsTabulationRegardElement *)view didClicDelete:(SeparationsAbstractMatrix *)monentsInfo { + [MKJPopup precautiousAboutCommunictowardsion:@"删除后不可恢复\n确定删除该动态吗?" acknowledgementHandler:^{ + [self.presimport representtowardsionSepartowardsions:monentsInfo.dynamicId worldId:[NSString stringWithFormat:@"%ld", monentsInfo.worldId]]; + } cancelHandler:^{ + + }]; +} + +- (void)yUMISepartowardsionsTarbsultowardsionViweElement:(YUMISeparationsTabulationRegardElement *)view didClicFold:(SeparationsAbstractMatrix *)monentsInfo { + __block SeparationsAbstractMatrix * monentsInfos; + [self.datasource enumerateObjectsUsingBlock:^(SeparationsAbstractMatrix * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if (obj.dynamicId.integerValue == monentsInfo.dynamicId.integerValue) { + monentsInfos = obj; + *stop = YES; + } + }]; + if (monentsInfos) { + NSInteger row = [self.datasource indexOfObject:monentsInfo]; + [self.tableView reloadRowsAtIndexPaths:@[[NSIndexPath indexPathForRow:row inSection:0]] withRowAnimation:UITableViewRowAnimationNone]; + } +} + +#pragma mark - JXPagingViewListViewDelegate +- (UIScrollView *)listScrollView { + return self.tableView; +} + +- (void)listViewDidScrollCallback:(void (^)(UIScrollView *))callback { + self.scrollCallback = callback; +} + +- (UIView *)listView { + return self.view; +} + +- (void)scrollViewDidScroll:(UIScrollView *)scrollView { + self.scrollCallback(scrollView); +} + +#pragma mark - FBCSeparationsDetailRegardGovernancerRepresendtation +- (void)yUMISepartowardsionsSpecificRegardGovernancer:(YUMISeparationsSpecificRegardGovernancer *)view representtowardsionSepartowardsions:(NSString *)dynamicId { + __block SeparationsAbstractMatrix * deleteInfo; + [self.datasource enumerateObjectsUsingBlock:^(SeparationsAbstractMatrix * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if (obj.dynamicId.integerValue == dynamicId.integerValue) { + deleteInfo = obj; + } + }]; + + if (deleteInfo) { + [self.datasource removeObject:deleteInfo]; + [self.tableView reloadData]; + } +} + +#pragma mark - FBCSeparationsMotifLatestCeremony +- (void)acquireSepartowardsionsMotifRecentlySttowardsementAccomplishment:(SeparationsStatementAbstractMatrix *)listAbstract state:(int)state{ + self.listAbstract = listAbstract; + if (state == 0) { + [self.datasource removeAllObjects]; + } + if (listAbstract.dynamicList.count > 0) { + [self.datasource addObjectsFromArray:listAbstract.dynamicList]; + } + + if (state == 0) { + self.hasNoFurthaerAtoloudspeaker = NO; + [self.tableView.mj_header endRefreshing]; + } else { + if (listAbstract.dynamicList.count > 0) { + self.hasNoFurthaerAtoloudspeaker = NO; + } else { + self.hasNoFurthaerAtoloudspeaker = YES; + } + [self.tableView.mj_footer endRefreshing]; + } + [self.tableView reloadData]; +} + +- (void)acquireSepartowardsionsMotifRecentlySttowardsementFlunk:(NSString *)msg state:(int)state { + if (state == 0) { + [self.tableView.mj_header endRefreshing]; + } else { + [self.tableView.mj_footer endRefreshing]; + } +} + +- (void)similarSepartowardsionsAccomplishment:(NSString *)dynamicId status:(BOOL)status { + [self.datasource enumerateObjectsUsingBlock:^(SeparationsAbstractMatrix * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if ([obj.dynamicId isEqualToString:dynamicId]) { + if (status) { + obj.isLike += 1; + } else { + obj.isLike -= 1; + } + *stop = YES; + } + }]; + [self.tableView reloadData]; +} + +- (void)representtowardsionSepartowardsionsAccomplishment:(NSString *)monentsInfo { + [self EvidenceAccomplishmentToast:YMLocalizedString(@"YUMI_Monents_Topic_Latest_View_Controller_2")]; + __block SeparationsAbstractMatrix * deleteInfo; + [self.datasource enumerateObjectsUsingBlock:^(SeparationsAbstractMatrix * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if (obj.dynamicId.integerValue == monentsInfo.integerValue) { + deleteInfo = obj; + } + }]; + + if (deleteInfo) { + [self.datasource removeObject:deleteInfo]; + [self.tableView reloadData]; + } +} + +#pragma mark - Getters And Setters +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.tableFooterView = [UIView new]; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.backgroundColor = [UIColor clearColor]; + if (@available(iOS 11.0, *)) { + _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + [_tableView registerClass:[YUMISeparationsTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMISeparationsTabulationRegardElement class])]; + [_tableView registerClass:[YUMISeparationsDispossessTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMISeparationsDispossessTabulationRegardElement class])]; + } + return _tableView; +} + + +- (NSMutableArray *)datasource { + if (!_datasource) { + _datasource = [NSMutableArray array]; + } + return _datasource; +} + +@end diff --git a/YuMi/Modules/YMMonents/View/YUMISeparationsMotifRecommondRegardGovernancer.h b/YuMi/Modules/YMMonents/View/YUMISeparationsMotifRecommondRegardGovernancer.h new file mode 100644 index 00000000..65d812af --- /dev/null +++ b/YuMi/Modules/YMMonents/View/YUMISeparationsMotifRecommondRegardGovernancer.h @@ -0,0 +1,18 @@ +// +// YMMonentsTopicRecommondViewController.h +// YUMI +// +// Created by YUMI on 2022/8/18. +// + +#import "MvpRegardGovernancer.h" +#import +NS_ASSUME_NONNULL_BEGIN + +@interface YUMISeparationsMotifRecommondRegardGovernancer : MvpRegardGovernancer +@property (nonatomic,strong) NSString *worldId; + +@property (nonatomic, copy) void(^scrollCallback)(UIScrollView *scrollView); +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMonents/View/YUMISeparationsMotifRecommondRegardGovernancer.m b/YuMi/Modules/YMMonents/View/YUMISeparationsMotifRecommondRegardGovernancer.m new file mode 100644 index 00000000..acf09e70 --- /dev/null +++ b/YuMi/Modules/YMMonents/View/YUMISeparationsMotifRecommondRegardGovernancer.m @@ -0,0 +1,282 @@ +// +// YMMonentsTopicRecommondViewController.m +// YUMI +// +// Created by YUMI on 2022/8/18. +// + +#import "YUMISeparationsMotifRecommondRegardGovernancer.h" +#import +#import +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" +#import "YUMISeparationsProgrammingDisposition.h" +#import "MKJPopup.h" +#import "NSArray+Safe.h" +#import "ClientDisposition.h" +#import "SeparationsStatementAbstractMatrix.h" +#import "YUMISeparationsMotifEncourageExternalizer.h" +#import "FBCSeparationsMotifEncourageCeremony.h" +#import "YUMISeparationsTabulationRegardElement.h" +#import "YUMISeparationsDispossessTabulationRegardElement.h" +#import "YUMISeparationsSpecificRegardGovernancer.h" +#import "YUMIMomentsSimpleSpecificRegardGovernancer.h" + +@interface YUMISeparationsMotifRecommondRegardGovernancer () +@property (nonatomic,strong) UITableView *tableView; +@property (nonatomic,strong) NSMutableArray *datasource; +@property (nonatomic,assign) BOOL hasNoFurthaerAtoloudspeaker; +@property (nonatomic,strong) SeparationsStatementAbstractMatrix *listAbstract; +@end + +@implementation YUMISeparationsMotifRecommondRegardGovernancer + +- (BOOL)isVeiledNevObstacle { + return YES; +} + +- (__kindof id)producePresimport { + return [[YUMISeparationsMotifEncourageExternalizer alloc] init]; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initIntelligencerGrantedTerminalerRrfresh]; + [self initSubViews]; + [self initChildLyRestrictions]; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self.view addSubview:self.tableView]; +} + +- (void)initChildLyRestrictions { + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.view); + }]; +} + +#pragma mark - 下拉刷新 +- (void)initIntelligencerGrantedTerminalerRrfresh { + MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(intelligenceerRenovtowardseh)]; + header.stateLabel.font = [UIFont systemFontOfSize:10.0]; + header.lastUpdatedTimeLabel.font = [UIFont systemFontOfSize:10.0]; + header.stateLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + header.lastUpdatedTimeLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + self.tableView.mj_header = header; + + MJRefreshBackNormalFooter *footer = [MJRefreshBackNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(footerRenovtowardseh)]; + footer.stateLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + footer.stateLabel.font = [UIFont systemFontOfSize:10.0]; + self.tableView.mj_footer = footer; + + [self intelligenceerRenovtowardseh]; +} + +#pragma mark - 刷新的fangfa +- (void)intelligenceerRenovtowardseh { + [self.presimport acquireSepartowardsionsMotifEncourageSttowardsement:@"" worldId:self.worldId state:0]; +} + +- (void)footerRenovtowardseh { + if (self.hasNoFurthaerAtoloudspeaker) { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_Monents_Topic_Recommond_View_Controller_0")]; + [self.tableView.mj_footer endRefreshing]; + return; + } + [self.presimport acquireSepartowardsionsMotifEncourageSttowardsement:self.listAbstract.nextDynamicId worldId:self.worldId state:1]; +} + +#pragma mark - UITableViewDelegate And UITableViewDataSource +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.datasource.count > 0 ? self.datasource.count : 1; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + if (self.datasource.count > 0) { + SeparationsAbstractMatrix * monentInfo= [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + [YUMISeparationsProgrammingDisposition programmingSepartowardsionsMtowardsrix:monentInfo]; + return monentInfo.rowHeight; + } + return KScreenHeight - kNavigationHeight - 49 - kSafeAreaBottomHeight; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + if (self.datasource.count > 0) { + YUMISeparationsTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMISeparationsTabulationRegardElement class])]; + SeparationsAbstractMatrix * monentsInfo = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + cell.delegate = self; + cell.monentsInfo = monentsInfo; + return cell; + } + YUMISeparationsDispossessTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMISeparationsDispossessTabulationRegardElement class])]; + return cell; +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + [tableView deselectRowAtIndexPath:indexPath animated:YES]; + if (self.datasource.count > 0) { + + if ([ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + YUMISeparationsSpecificRegardGovernancer * detailVC = [[YUMISeparationsSpecificRegardGovernancer alloc] init]; + SeparationsAbstractMatrix * monentsInfo = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + detailVC.monentsInfo = monentsInfo; + detailVC.delegate = self; + [self.navigationController pushViewController:detailVC animated:YES]; + }else{ + YUMIMomentsSimpleSpecificRegardGovernancer * detailVC = [[YUMIMomentsSimpleSpecificRegardGovernancer alloc] init]; + SeparationsAbstractMatrix * monentsInfo = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + detailVC.monentsInfo = monentsInfo; + detailVC.delegate = self; + [self.navigationController pushViewController:detailVC animated:YES]; + } + } +} + +#pragma mark - FBCSeparationsDetailRegardGovernancerRepresendtation +- (void)yUMISepartowardsionsSpecificRegardGovernancer:(YUMISeparationsSpecificRegardGovernancer *)view representtowardsionSepartowardsions:(NSString *)dynamicId { + __block SeparationsAbstractMatrix * deleteInfo; + [self.datasource enumerateObjectsUsingBlock:^(SeparationsAbstractMatrix * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if (obj.dynamicId.integerValue == dynamicId.integerValue) { + deleteInfo = obj; + } + }]; + + if (deleteInfo) { + [self.datasource removeObject:deleteInfo]; + [self.tableView reloadData]; + } +} + +#pragma mark - FBCSeparationsTabulationViweElementRepresendtation +- (void)yUMISepartowardsionsTarbsultowardsionViweElement:(YUMISeparationsTabulationRegardElement *)view didClickLike:(SeparationsAbstractMatrix *)monentsInfo { + [self.presimport similarMonent:monentsInfo.dynamicId status:!monentsInfo.isLike likedUid:monentsInfo.uid worldId:[NSString stringWithFormat:@"%ld", monentsInfo.worldId]]; +} + +- (void)yUMISepartowardsionsTarbsultowardsionViweElement:(YUMISeparationsTabulationRegardElement *)view didClicDelete:(SeparationsAbstractMatrix *)monentsInfo { + [MKJPopup precautiousAboutCommunictowardsion:@"删除后不可恢复\n确定删除该动态吗?" acknowledgementHandler:^{ + [self.presimport representtowardsionSepartowardsions:monentsInfo.dynamicId worldId:[NSString stringWithFormat:@"%ld", monentsInfo.worldId]]; + } cancelHandler:^{ + + }]; +} + +- (void)yUMISepartowardsionsTarbsultowardsionViweElement:(YUMISeparationsTabulationRegardElement *)view didClicFold:(SeparationsAbstractMatrix *)monentsInfo { + __block SeparationsAbstractMatrix * monentsInfos; + [self.datasource enumerateObjectsUsingBlock:^(SeparationsAbstractMatrix * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if (obj.dynamicId.integerValue == monentsInfo.dynamicId.integerValue) { + monentsInfos = obj; + *stop = YES; + } + }]; + if (monentsInfos) { + NSInteger row = [self.datasource indexOfObject:monentsInfo]; + [self.tableView reloadRowsAtIndexPaths:@[[NSIndexPath indexPathForRow:row inSection:0]] withRowAnimation:UITableViewRowAnimationNone]; + } +} + +#pragma mark - JXPagingViewListViewDelegate +- (UIScrollView *)listScrollView { + return self.tableView; +} + +- (void)listViewDidScrollCallback:(void (^)(UIScrollView *))callback { + self.scrollCallback = callback; +} + +- (UIView *)listView { + return self.view; +} + +- (void)scrollViewDidScroll:(UIScrollView *)scrollView { + self.scrollCallback(scrollView); +} + +#pragma mark - FBCSeparationsEncourageCeremony +- (void)acquireSepartowardsionsMotifEncourageSttowardsementAccomplishment:(SeparationsStatementAbstractMatrix *)listAbstract state:(int)state { + self.listAbstract = listAbstract; + if (state == 0) { + [self.datasource removeAllObjects]; + } + if (listAbstract.dynamicList.count > 0) { + [self.datasource addObjectsFromArray:listAbstract.dynamicList]; + } + + if (state == 0) { + self.hasNoFurthaerAtoloudspeaker = NO; + [self.tableView.mj_header endRefreshing]; + } else { + if (listAbstract.dynamicList.count > 0) { + self.hasNoFurthaerAtoloudspeaker = NO; + } else { + self.hasNoFurthaerAtoloudspeaker = YES; + } + [self.tableView.mj_footer endRefreshing]; + } + [self.tableView reloadData]; +} + +- (void)acquireSepartowardsionsMotifEncourageSttowardsementFlunk:(NSString *)msg state:(int)state { + if (state == 0) { + [self.tableView.mj_header endRefreshing]; + } else { + [self.tableView.mj_footer endRefreshing]; + } +} + +- (void)similarSepartowardsionsAccomplishment:(NSString *)dynamicId status:(BOOL)status { + [self.datasource enumerateObjectsUsingBlock:^(SeparationsAbstractMatrix * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if ([obj.dynamicId isEqualToString:dynamicId]) { + if (status) { + obj.isLike += 1; + } else { + obj.isLike -= 1; + } + *stop = YES; + } + }]; + [self.tableView reloadData]; +} + +- (void)representtowardsionSepartowardsionsAccomplishment:(NSString *)monentsInfo { + [self EvidenceAccomplishmentToast:YMLocalizedString(@"YUMI_Monents_Topic_Recommond_View_Controller_2")]; + __block SeparationsAbstractMatrix * deleteInfo; + [self.datasource enumerateObjectsUsingBlock:^(SeparationsAbstractMatrix * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if (obj.dynamicId.integerValue == monentsInfo.integerValue) { + deleteInfo = obj; + } + }]; + + if (deleteInfo) { + [self.datasource removeObject:deleteInfo]; + [self.tableView reloadData]; + } +} + +#pragma mark - Getters And Setters +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.tableFooterView = [UIView new]; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.backgroundColor = [UIColor clearColor]; + if (@available(iOS 11.0, *)) { + _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + [_tableView registerClass:[YUMISeparationsTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMISeparationsTabulationRegardElement class])]; + [_tableView registerClass:[YUMISeparationsDispossessTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMISeparationsDispossessTabulationRegardElement class])]; + } + return _tableView; +} + + +- (NSMutableArray *)datasource { + if (!_datasource) { + _datasource = [NSMutableArray array]; + } + return _datasource; +} +@end diff --git a/YuMi/Modules/YMMonents/View/YUMISeparationsRecentlyRegardGovernancer.h b/YuMi/Modules/YMMonents/View/YUMISeparationsRecentlyRegardGovernancer.h new file mode 100644 index 00000000..aed6c708 --- /dev/null +++ b/YuMi/Modules/YMMonents/View/YUMISeparationsRecentlyRegardGovernancer.h @@ -0,0 +1,16 @@ +// +// YMMonentsLatestViewController.h +// YUMI +// +// Created by YUMI on 2022/5/18. +// + +#import "MvpRegardGovernancer.h" +#import +NS_ASSUME_NONNULL_BEGIN + +@interface YUMISeparationsRecentlyRegardGovernancer : MvpRegardGovernancer + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMonents/View/YUMISeparationsRecentlyRegardGovernancer.m b/YuMi/Modules/YMMonents/View/YUMISeparationsRecentlyRegardGovernancer.m new file mode 100644 index 00000000..b5133df3 --- /dev/null +++ b/YuMi/Modules/YMMonents/View/YUMISeparationsRecentlyRegardGovernancer.m @@ -0,0 +1,278 @@ +// +// YMMonentsLatestViewController.m +// YUMI +// +// Created by YUMI on 2022/5/18. +// + +#import "YUMISeparationsRecentlyRegardGovernancer.h" +#import +#import +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" +#import "YUMISeparationsProgrammingDisposition.h" +#import "MKJPopup.h" +#import "NSArray+Safe.h" +#import "ClientDisposition.h" +#import "SeparationsStatementAbstractMatrix.h" +#import "YUMISeparationsRecentlyExternalizer.h" +#import "FBCSeparationsLatestCeremony.h" +#import "YUMISeparationsTabulationRegardElement.h" +#import "YUMISeparationsDispossessTabulationRegardElement.h" +#import "YUMISeparationsSpecificRegardGovernancer.h" +#import "YUMIMomentsSimpleSpecificRegardGovernancer.h" + +@interface YUMISeparationsRecentlyRegardGovernancer () +@property (nonatomic,strong) UITableView *tableView; +@property (nonatomic,strong) NSMutableArray *datasource; +@property (nonatomic,assign) NSInteger page; +@property (nonatomic,assign) BOOL hasNoFurthaerAtoloudspeaker; +@property (nonatomic,strong) SeparationsStatementAbstractMatrix *listAbstract; +@end + +@implementation YUMISeparationsRecentlyRegardGovernancer + +- (void)dealloc { + NSLog(@"你阿宁"); +} + +- (BOOL)isVeiledNevObstacle { + return YES; +} + +- (__kindof id)producePresimport { + return [[YUMISeparationsRecentlyExternalizer alloc] init]; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initIntelligencerGrantedTerminalerRrfresh]; + [self initSubViews]; + [self initChildLyRestrictions]; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self.view addSubview:self.tableView]; +} + +- (void)initChildLyRestrictions { + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.view); + }]; +} + +#pragma mark - 下拉刷新 +- (void)initIntelligencerGrantedTerminalerRrfresh { + MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(intelligenceerRenovtowardseh)]; + header.stateLabel.font = [UIFont systemFontOfSize:10.0]; + header.lastUpdatedTimeLabel.font = [UIFont systemFontOfSize:10.0]; + header.stateLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + header.lastUpdatedTimeLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + self.tableView.mj_header = header; + + MJRefreshBackNormalFooter *footer = [MJRefreshBackNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(footerRenovtowardseh)]; + footer.stateLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + footer.stateLabel.font = [UIFont systemFontOfSize:10.0]; + self.tableView.mj_footer = footer; + + [self intelligenceerRenovtowardseh]; +} + +#pragma mark - 刷新的fangfa +- (void)intelligenceerRenovtowardseh { + self.page = 1; + [self.presimport acquireSepartowardsionsRecentlySttowardsementPeriodDimension:20 dynamicId:@"" state:0]; +} + +- (void)footerRenovtowardseh { + if (self.hasNoFurthaerAtoloudspeaker) { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_Monents_Latest_View_Controller_0")]; + [self.tableView.mj_footer endRefreshing]; + return; + } + self.page++; + [self.presimport acquireSepartowardsionsRecentlySttowardsementPeriodDimension:20 dynamicId:self.listAbstract.nextDynamicId state:1]; +} + +#pragma mark - UITableViewDelegate And UITableViewDataSource +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.datasource.count > 0 ? self.datasource.count : 1; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + if (self.datasource.count > 0) { + SeparationsAbstractMatrix * monentInfo= [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + [YUMISeparationsProgrammingDisposition programmingSepartowardsionsMtowardsrix:monentInfo]; + return monentInfo.rowHeight; + } + return KScreenHeight - kNavigationHeight - 49 - kSafeAreaBottomHeight; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + if (self.datasource.count > 0) { + YUMISeparationsTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMISeparationsTabulationRegardElement class])]; + SeparationsAbstractMatrix * monentsInfo = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + cell.monentsInfo = monentsInfo; + cell.delegate = self; + return cell; + } + YUMISeparationsDispossessTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMISeparationsDispossessTabulationRegardElement class])]; + return cell; +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + [tableView deselectRowAtIndexPath:indexPath animated:YES]; + if (self.datasource.count > 0) { + SeparationsAbstractMatrix * monentsInfo = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + + if ([ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + YUMISeparationsSpecificRegardGovernancer * detailVC = [[YUMISeparationsSpecificRegardGovernancer alloc] init]; + detailVC.monentsInfo = monentsInfo; + detailVC.delegate = self; + [self.navigationController pushViewController:detailVC animated:YES]; + }else{ + YUMIMomentsSimpleSpecificRegardGovernancer * detailVC = [[YUMIMomentsSimpleSpecificRegardGovernancer alloc] init]; + detailVC.monentsInfo = monentsInfo; + detailVC.delegate = self; + [self.navigationController pushViewController:detailVC animated:YES]; + } + } +} +#pragma mark - FBCSeparationsDetailRegardGovernancerRepresendtation +- (void)yUMISepartowardsionsSpecificRegardGovernancer:(YUMISeparationsSpecificRegardGovernancer *)view representtowardsionSepartowardsions:(NSString *)dynamicId { + __block SeparationsAbstractMatrix * deleteInfo; + [self.datasource enumerateObjectsUsingBlock:^(SeparationsAbstractMatrix * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if (obj.dynamicId.integerValue == dynamicId.integerValue) { + deleteInfo = obj; + } + }]; + + if (deleteInfo) { + [self.datasource removeObject:deleteInfo]; + [self.tableView reloadData]; + } +} + +#pragma mark - FBCSeparationsTabulationViweElementRepresendtation +- (void)yUMISepartowardsionsTarbsultowardsionViweElement:(YUMISeparationsTabulationRegardElement *)view didClickLike:(SeparationsAbstractMatrix *)monentsInfo { + [self.presimport similarMonent:monentsInfo.dynamicId status:!monentsInfo.isLike likedUid:monentsInfo.uid worldId:[NSString stringWithFormat:@"%ld", monentsInfo.worldId]]; +} + +- (void)yUMISepartowardsionsTarbsultowardsionViweElement:(YUMISeparationsTabulationRegardElement *)view didClicDelete:(SeparationsAbstractMatrix *)monentsInfo { + [MKJPopup precautiousAboutCommunictowardsion:@"删除后不可恢复\n确定删除该动态吗?" acknowledgementHandler:^{ + [self.presimport representtowardsionSepartowardsions:monentsInfo.dynamicId worldId:[NSString stringWithFormat:@"%ld", monentsInfo.worldId]]; + } cancelHandler:^{ + + }]; +} + +- (void)yUMISepartowardsionsTarbsultowardsionViweElement:(YUMISeparationsTabulationRegardElement *)view didClicFold:(SeparationsAbstractMatrix *)monentsInfo { + __block SeparationsAbstractMatrix * monentsInfos; + [self.datasource enumerateObjectsUsingBlock:^(SeparationsAbstractMatrix * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if (obj.dynamicId.integerValue == monentsInfo.dynamicId.integerValue) { + monentsInfos = obj; + *stop = YES; + } + }]; + if (monentsInfos) { + NSInteger row = [self.datasource indexOfObject:monentsInfo]; + [self.tableView reloadRowsAtIndexPaths:@[[NSIndexPath indexPathForRow:row inSection:0]] withRowAnimation:UITableViewRowAnimationNone]; + } +} + +#pragma mark -JXCategoryListContainerViewDelegate +- (UIView *)listView { + return self.view; +} + +#pragma mark - FBCSeparationsLatestCeremony +- (void)acquireSepartowardsionsRecentlySttowardsementAccomplishment:(SeparationsStatementAbstractMatrix *)listAbstract state:(int)state{ + self.listAbstract = listAbstract; + if (state == 0) { + [self.datasource removeAllObjects]; + } + if (listAbstract.dynamicList.count > 0) { + [self.datasource addObjectsFromArray:listAbstract.dynamicList]; + } + + if (state == 0) { + self.hasNoFurthaerAtoloudspeaker = NO; + [self.tableView.mj_header endRefreshing]; + } else { + if (listAbstract.dynamicList.count > 0) { + self.hasNoFurthaerAtoloudspeaker = NO; + } else { + self.hasNoFurthaerAtoloudspeaker = YES; + } + [self.tableView.mj_footer endRefreshing]; + } + [self.tableView reloadData]; +} + +- (void)acquireSepartowardsionsRecentlySttowardsementFlunk:(NSString *)msg state:(int)state { + if (state == 0) { + [self.tableView.mj_header endRefreshing]; + } else { + [self.tableView.mj_footer endRefreshing]; + } +} + +- (void)similarSepartowardsionsAccomplishment:(NSString *)dynamicId status:(BOOL)status { + [self.datasource enumerateObjectsUsingBlock:^(SeparationsAbstractMatrix * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if ([obj.dynamicId isEqualToString:dynamicId]) { + NSInteger count = obj.likeCount.integerValue; + obj.isLike = status; + if (status) { + count += 1; + } else { + count -= 1; + } + obj.likeCount = [NSString stringWithFormat:@"%ld", count]; + *stop = YES; + } + }]; + [self.tableView reloadData]; +} + +- (void)representtowardsionSepartowardsionsAccomplishment:(NSString *)monentsInfo { + [self EvidenceAccomplishmentToast:YMLocalizedString(@"YUMI_Monents_Latest_View_Controller_2")]; + __block SeparationsAbstractMatrix * deleteInfo; + [self.datasource enumerateObjectsUsingBlock:^(SeparationsAbstractMatrix * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if (obj.dynamicId.integerValue == monentsInfo.integerValue) { + deleteInfo = obj; + } + }]; + + if (deleteInfo) { + [self.datasource removeObject:deleteInfo]; + [self.tableView reloadData]; + } +} + +#pragma mark - Getters And Setters +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.tableFooterView = [UIView new]; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.backgroundColor = [UIColor clearColor]; + if (@available(iOS 11.0, *)) { + _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + [_tableView registerClass:[YUMISeparationsTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMISeparationsTabulationRegardElement class])]; + [_tableView registerClass:[YUMISeparationsDispossessTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMISeparationsDispossessTabulationRegardElement class])]; + } + return _tableView; +} + + +- (NSMutableArray *)datasource { + if (!_datasource) { + _datasource = [NSMutableArray array]; + } + return _datasource; +} +@end diff --git a/YuMi/Modules/YMMonents/View/YUMISeparationsRegardGovernancer.h b/YuMi/Modules/YMMonents/View/YUMISeparationsRegardGovernancer.h new file mode 100644 index 00000000..037944df --- /dev/null +++ b/YuMi/Modules/YMMonents/View/YUMISeparationsRegardGovernancer.h @@ -0,0 +1,16 @@ +// +// YMMonentsViewController.h +// YUMI +// +// Created by YUMI on 2022/5/11. +// + +#import "BaseRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMISeparationsRegardGovernancer : BaseRegardGovernancer + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMonents/View/YUMISeparationsRegardGovernancer.m b/YuMi/Modules/YMMonents/View/YUMISeparationsRegardGovernancer.m new file mode 100644 index 00000000..0d8b3aa7 --- /dev/null +++ b/YuMi/Modules/YMMonents/View/YUMISeparationsRegardGovernancer.m @@ -0,0 +1,265 @@ +// +// YMMonentsViewController.m +// YUMI +// +// Created by YUMI on 2022/5/11. +// + +#import "YUMISeparationsRegardGovernancer.h" +#import +#import +#import +#import +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" +#import "AttachmentMatrix.h" +#import "SeparationsUnReadMatrix.h" +#import "YUMISeparationsEncourageRegardGovernancer.h" +#import "YUMISeparationsConsiderationRegardGovernancer.h" +#import "YUMISeparationsRecentlyRegardGovernancer.h" +#import "YUMISeparationsCoactiveRegardGovernancer.h" +#import "YUMISeparationsAnnounceRegardGovernancer.h" + +@interface YUMISeparationsRegardGovernancer () +@property (nonatomic,strong) NSArray *titles; +@property (nonatomic,strong) UIView * nevRegard; +@property (nonatomic,strong) UIView * pointRegard; +@property (nonatomic,strong) UIButton *communicationBtuton; +@property (nonatomic,strong) JXCategoryTitleView *titleView; +@property (nonatomic, strong) JXCategoryListContainerView *listContainerView; +@property (nonatomic,strong) UIButton *publishBtuton; +@property (nonatomic,strong) YUMISeparationsConsiderationRegardGovernancer * considerationVewC ; +@property (nonatomic,strong) YUMISeparationsRecentlyRegardGovernancer *latestVewC; +@property (nonatomic,strong) YUMISeparationsEncourageRegardGovernancer * encourageVewC; +@end + +@implementation YUMISeparationsRegardGovernancer +@synthesize parentMode = _parentMode; + +- (void)dealloc { + [[NIMSDK sharedSDK].systemNotificationManager removeDelegate:self]; +} + +- (BOOL)isVeiledNevObstacle { + return YES; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [[NIMSDK sharedSDK].systemNotificationManager addDelegate:self]; + [self initSubViews]; + [self initChildLyRestrictions]; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self.view addSubview:self.nevRegard]; + [self.view addSubview:self.listContainerView]; + [self.view addSubview:self.publishBtuton]; + + [self.nevRegard addSubview:self.titleView]; + [self.nevRegard addSubview:self.communicationBtuton]; + [self.nevRegard addSubview:self.pointRegard]; +} + +- (void)initChildLyRestrictions { + [self.nevRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self.view); + make.height.mas_equalTo(kNavigationHeight); + }]; + + [self.titleView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.nevRegard); + make.height.mas_equalTo(20); + make.top.mas_equalTo(self.nevRegard).offset(kSafeAreaTopHeight + 40); + }]; + + [self.communicationBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.titleView); + make.right.mas_equalTo(self.nevRegard).offset(-15); + make.size.mas_equalTo(CGSizeMake(22, 22)); + }]; + + [self.pointRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(10, 10)); + make.centerY.mas_equalTo(self.communicationBtuton.mas_top); + make.centerX.mas_equalTo(self.communicationBtuton.mas_right); + }]; + + [self.listContainerView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.mas_equalTo(self.view); + make.top.mas_equalTo(self.nevRegard.mas_bottom); + }]; + + [self.publishBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(45, 45)); + make.bottom.mas_equalTo(self.view).offset(-kSafeAreaBottomHeight - 60); + make.right.mas_equalTo(self.view).offset(-25); + }]; +} + +#pragma mark - JXCategoryListContainerViewDelegate +- (NSInteger)numberOfListsInlistContainerView:(JXCategoryListContainerView *)listContainerView { + return self.titles.count; +} + +- (id)listContainerView:(JXCategoryListContainerView *)listContainerView initListForIndex:(NSInteger)index { + UIViewController * list = (UIViewController *)[self.listContainerView.validListDict objectForKey:[NSNumber numberWithInteger:index]]; + if (list) { + return list; + } else { + if (index == 0) { + return self.considerationVewC; + }else if (index == 1) { + return self.encourageVewC; + } else if(index == 2) { + return self.latestVewC; + } + return nil; + } + +} + +#pragma mark -NIMSystemNotificationManagerDelegate +- (void)onReceiveCustomSystemNotification:(NIMCustomSystemNotification *)notification { + if (notification.receiverType == NIMSessionTypeP2P) { + if (notification.content != nil) { + AttachmentMatrix *attachment = [AttachmentMatrix mtowardsrixAboutJSON:notification.content]; + if (attachment.first == IndividualityCommunicationGenre_Monents && attachment.second == Custom_Message_Sub_Monents_Unread_Update) { + SeparationsUnReadMatrix * unreadModel = [SeparationsUnReadMatrix mtowardsrixAboutImpactbasket:attachment.data]; + if (unreadModel.total > 0) { + self.pointRegard.hidden = NO; + } else { + self.pointRegard.hidden = YES; + } + [self setTarbsObstacleProvisionQuantity:unreadModel.total]; + } + } + } +} + +- (void)setTarbsObstacleProvisionQuantity:(NSInteger)value { + if (value > 0) { + if (value > 99) { + [self.tabBarItem setBadgeValue:@"99+"]; + } else { + [self.tabBarItem setBadgeValue:[NSString stringWithFormat:@"%ld", value]]; + } + } else { + [self.tabBarItem setBadgeValue:nil]; + } +} + +#pragma mark - Event Response +- (void)communictowardsionBtutonPerformance:(UIButton *)sender { + YUMISeparationsCoactiveRegardGovernancer * messageVC = [[YUMISeparationsCoactiveRegardGovernancer alloc] init]; + [self.navigationController pushViewController:messageVC animated:YES]; +} + +- (void)announceBtutonPerformance:(UIButton *)sender { + YUMISeparationsAnnounceRegardGovernancer * publishVC = [[YUMISeparationsAnnounceRegardGovernancer alloc] init]; + [self.navigationController pushViewController:publishVC animated:YES]; +} + +#pragma mark - Getters And Setters +- (JXCategoryListContainerView *)listContainerView { + if (!_listContainerView) { + _listContainerView = [[JXCategoryListContainerView alloc] initWithType:JXCategoryListContainerType_ScrollView delegate:self]; + _listContainerView.listCellBackgroundColor = [UIColor clearColor]; + } + return _listContainerView; +} + +- (JXCategoryTitleView *)titleView { + if (!_titleView) { + _titleView = [[JXCategoryTitleView alloc] initWithFrame:CGRectZero]; + _titleView.backgroundColor =[UIColor clearColor]; + _titleView.delegate = self; + _titleView.titleColor = [DJDKMIMOMColor instantEssayPrettify]; + _titleView.titleSelectedColor = [DJDKMIMOMColor mainEssayPrettify]; + _titleView.titleFont = [UIFont systemFontOfSize:15 weight:UIFontWeightSemibold]; + _titleView.titleSelectedFont = [UIFont systemFontOfSize:20 weight:UIFontWeightHeavy]; + _titleView.titleLabelAnchorPointStyle = JXCategoryTitleLabelAnchorPointStyleCenter; + _titleView.contentScrollViewClickTransitionAnimationEnabled = NO; + _titleView.averageCellSpacingEnabled = NO; + _titleView.defaultSelectedIndex = 0; + _titleView.cellSpacing = 20; + _titleView.titles = self.titles; + _titleView.listContainer = self.listContainerView; + _titleView.defaultSelectedIndex = 1; + CGFloat itemWidth = [YMLocalizedString(@"YUMI_Monents_View_Controller_0") boundingRectWithSize:CGSizeMake(100, CGFLOAT_MAX) options:NSStringDrawingTruncatesLastVisibleLine | NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:20 weight:UIFontWeightHeavy]} context:nil].size.width; + _titleView.cellWidth = itemWidth; + _titleView.contentEdgeInsetLeft = (KScreenWidth - itemWidth * self.titles.count - 20 * (self.titles.count - 1))/ 2; + } + return _titleView; +} + +- (UIView *)nevRegard { + if (!_nevRegard) { + _nevRegard = [[UIView alloc] init]; + _nevRegard.backgroundColor = [DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify]; + } + return _nevRegard; +} + +- (NSArray *)titles { + if (!_titles) { + _titles = @[@"关注",@"推荐", YMLocalizedString(@"YUMI_Monents_View_Controller_3")]; + } + return _titles; +} + +- (UIButton *)communicationBtuton { + if (!_communicationBtuton) { + _communicationBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_communicationBtuton setImage:[UIImage imageNamed:@"yumi_monents_title_interavtive_message"] forState:UIControlStateNormal]; + [_communicationBtuton setImage:[UIImage imageNamed:@"yumi_monents_title_interavtive_message"] forState:UIControlStateSelected]; + [_communicationBtuton addTarget:self action:@selector(communictowardsionBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _communicationBtuton; +} + +- (UIView *)pointRegard { + if (!_pointRegard) { + _pointRegard = [[UIView alloc] init]; + _pointRegard.backgroundColor = UIColorFromRGB(0xFF2D55); + _pointRegard.layer.masksToBounds = YES; + _pointRegard.layer.cornerRadius = 5; + _pointRegard.hidden = YES; + } + return _pointRegard; +} + +- (UIButton *)publishBtuton { + if (!_publishBtuton) { + _publishBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_publishBtuton setImage:[UIImage imageNamed:@"yumi_monents_publish"] forState:UIControlStateNormal]; + [_publishBtuton setImage:[UIImage imageNamed:@"yumi_monents_publish"] forState:UIControlStateSelected]; + [_publishBtuton addTarget:self action:@selector(announceBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _publishBtuton; +} + +- (YUMISeparationsConsiderationRegardGovernancer *)considerationVewC { + if (!_considerationVewC) { + YUMISeparationsConsiderationRegardGovernancer * considerationVewC = [[YUMISeparationsConsiderationRegardGovernancer alloc] init]; + _considerationVewC = considerationVewC; + } + return _considerationVewC; +} + +- (YUMISeparationsRecentlyRegardGovernancer *)latestVewC { + if (!_latestVewC) { + _latestVewC = [[YUMISeparationsRecentlyRegardGovernancer alloc] init]; + } + return _latestVewC; +} + +- (YUMISeparationsEncourageRegardGovernancer *)encourageVewC { + if (!_encourageVewC) { + _encourageVewC = [[YUMISeparationsEncourageRegardGovernancer alloc] init]; + } + return _encourageVewC; +} + +@end diff --git a/YuMi/Modules/YMMonents/View/YUMISeparationsSpecificRegardGovernancer.h b/YuMi/Modules/YMMonents/View/YUMISeparationsSpecificRegardGovernancer.h new file mode 100644 index 00000000..6d5df087 --- /dev/null +++ b/YuMi/Modules/YMMonents/View/YUMISeparationsSpecificRegardGovernancer.h @@ -0,0 +1,19 @@ +// +// YMMonentsDetailViewController.h +// YUMI +// +// Created by YUMI on 2022/6/22. +// + +#import "MvpRegardGovernancer.h" +#import "FBCSeparationsDetailRegardGovernancerRepresendtation.h" + +NS_ASSUME_NONNULL_BEGIN +@class SeparationsAbstractMatrix, YUMISeparationsSpecificRegardGovernancer; + +@interface YUMISeparationsSpecificRegardGovernancer : MvpRegardGovernancer +@property (nonatomic,strong) SeparationsAbstractMatrix *monentsInfo; +@property (nonatomic,weak) id delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMonents/View/YUMISeparationsSpecificRegardGovernancer.m b/YuMi/Modules/YMMonents/View/YUMISeparationsSpecificRegardGovernancer.m new file mode 100644 index 00000000..480d3d51 --- /dev/null +++ b/YuMi/Modules/YMMonents/View/YUMISeparationsSpecificRegardGovernancer.m @@ -0,0 +1,462 @@ +// +// YMMonentsDetailViewController.m +// YUMI +// +// Created by YUMI on 2022/6/22. +// + +#import "YUMISeparationsSpecificRegardGovernancer.h" +#import +#import +#import "YUMISeparationsProgrammingDisposition.h" +#import "DJDKMIMOMColor.h" +#import "MHTSpiritFacilitater.h" +#import "MHTKeyboardExecutive.h" +#import "MKJPopup.h" +#import "NSArray+Safe.h" +#import "ClientDisposition.h" +#import "SeparationsAbstractMatrix.h" +#import "SeparationsJudgementMatrix.h" +#import "SeparationsJudgementReplicationMatrix.h" +#import "YUMISeparationsTabulationRegardElement.h" +#import "YUMISeparationsJudgementTabulationRegardElement.h" +#import "YUMISeparationsDispossessTabulationRegardElement.h" +#import "MHTIntrojectionObstacleRegard.h" +#import "MHTKeyboardExecutive.h" +#import "MHTSpiritDirectorateRegard.h" +#import "YUMIManeConsumerAbstractRegardGovernancer.h" +#import "YUMIManeSimpleConsumerAbstractRegardGovernancer.h" +#import "YUMISeparationSpecificExternalizer.h" +#import "FBCSeparationsDetailCeremony.h" + +@interface YUMISeparationsSpecificRegardGovernancer () +@property (nonatomic,strong) UITableView *tableView; +@property (nonatomic,strong) NSMutableArray *datasource; +@property (nonatomic,strong) UIView * sectionRegard; +@property (nonatomic,strong) UILabel *judgementSequencignation; +@property(nonatomic,strong)MHTIntrojectionObstacleRegard *introjectionObstacleRegard; +@property(nonatomic,strong)MHTKeyboardExecutive *keydirectorateExecutive; +@property (nonatomic,strong) NSString *commentId; +@end + +@implementation YUMISeparationsSpecificRegardGovernancer + +- (__kindof id)producePresimport { + return [[YUMISeparationSpecificExternalizer alloc] init]; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initIntelligencerGrantedTerminalerRrfresh]; + [self initSubViews]; + [self initChildLyRestrictions]; +} + +#pragma mark - 下拉刷新 +- (void)initIntelligencerGrantedTerminalerRrfresh { + MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(intelligenceerRenovtowardseh)]; + header.stateLabel.font = [UIFont systemFontOfSize:10.0]; + header.lastUpdatedTimeLabel.font = [UIFont systemFontOfSize:10.0]; + header.stateLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + header.lastUpdatedTimeLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + self.tableView.mj_header = header; + + MJRefreshBackNormalFooter *footer = [MJRefreshBackNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(footerRenovtowardseh)]; + footer.stateLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + footer.stateLabel.font = [UIFont systemFontOfSize:10.0]; + self.tableView.mj_footer = footer; + + [self intelligenceerRenovtowardseh]; +} + +- (void)intelligenceerRenovtowardseh { + [self.presimport acquireSepartowardsionsSpecific:self.monentsInfo.dynamicId]; + [self.presimport acquireSepartowardsionsJudgementSttowardsement:self.monentsInfo.dynamicId timestamp:@"" status:0]; +} + +- (void)footerRenovtowardseh { + NSString *timestamp = @""; + if (self.datasource.count > 0) { + SeparationsJudgementMatrix * judgementAbstract = [self.datasource lastObject]; + timestamp = judgementAbstract.publishTime; + } + [self.presimport acquireSepartowardsionsJudgementSttowardsement:self.monentsInfo.dynamicId timestamp:timestamp status:1]; +} + + +#pragma mark - Private Method +- (void)initIntrojectionRegard { + + + _introjectionObstacleRegard = [[MHTIntrojectionObstacleRegard alloc] initWithFrame:CGRectMake(0,0,self.view.frame.size.width,UIInputBarViewMinHeight)]; + MHTIntrojectionObstacleRegardDispositionuration *introjectionObstacleRegardDispositionurtowardsion = [MHTIntrojectionObstacleRegardDispositionuration deficiencyIntrojectionObstacleRegardDispositionurtowardsion]; + introjectionObstacleRegardDispositionurtowardsion.reputationBtutonVeiled = YES; + introjectionObstacleRegardDispositionurtowardsion.spreadBtutonVeiled = YES; + [_introjectionObstacleRegard setupAboutDispositionurtowardsion:introjectionObstacleRegardDispositionurtowardsion]; + _introjectionObstacleRegard.delegate = self; + + + _keydirectorateExecutive = [[MHTKeyboardExecutive alloc] initWithViewController:self]; + _keydirectorateExecutive.dataSource = self; + + _keydirectorateExecutive.delegate = self; + [_keydirectorateExecutive accelertowardseExtremeIntrojectionObstacleRegard:_introjectionObstacleRegard belowViewController:NO]; + + + [_keydirectorateExecutive dilemmaEssayRegard:_introjectionObstacleRegard.introjectionEssayRegard]; +} + +- (void)prohibitichargeEssayCommunictowardsion:(NSString *)inputText { + if (inputText.length > 0) { + [_keydirectorateExecutive brakeEntiretyDirectortowardseRegard]; + if (self.commentId && self.commentId.length > 0) { + [self.presimport reprohibitiportCommon:self.commentId dynamicId:self.monentsInfo.dynamicId content:inputText]; + } else { + [self.presimport commontSepartowardsions:self.monentsInfo.dynamicId content:inputText]; + } + self.introjectionObstacleRegard.introjectionEssayRegard.text = nil; + } else { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_Monents_Detail_View_Controller_0")]; + } +} + +- (void)initSubViews { + self.title = YMLocalizedString(@"YUMI_Monents_Detail_View_Controller_1"); + [self.view addSubview:self.tableView]; + [self.sectionRegard addSubview:self.judgementSequencignation]; + [self initIntrojectionRegard]; +} + +- (void)initChildLyRestrictions { + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self.view); + make.bottom.mas_equalTo(self.introjectionObstacleRegard.mas_top); + }]; + + [self.judgementSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.sectionRegard).offset(15); + make.centerY.mas_equalTo(self.sectionRegard); + }]; +} + +#pragma mark - UITableViewDelegate And UITableViewDataSource +- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { + return 2; +} + +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + if (section == 0) { + return 1; + } + return self.datasource.count > 0 ? self.datasource.count : 1; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + if (indexPath.section == 0) { + [YUMISeparationsProgrammingDisposition programmingSepartowardsionsMtowardsrix:self.monentsInfo]; + return self.monentsInfo.rowHeight; + } else if(indexPath.section == 1) { + if (self.datasource.count > 0) { + SeparationsJudgementMatrix * judgementAbstract = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + return [YUMISeparationsProgrammingDisposition judgementJudgementRowAltitude:judgementAbstract]; + } else { + return 400; + } + } + return 0; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { + if (section == 1) { + return 44; + } + return 0.0;; +} + +- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { + self.judgementSequencignation.text = [NSString stringWithFormat:@"所有评论(%@)", self.monentsInfo.commentCount]; + return self.sectionRegard; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section { + return 0.0f; +} + +- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section { + return [UIView new]; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + if (indexPath.section ==0) { + YUMISeparationsTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMISeparationsTabulationRegardElement class])]; + cell.delegate = self; + cell.monentsInfo = self.monentsInfo; + return cell; + } else { + if (self.datasource.count > 0) { + YUMISeparationsJudgementTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMISeparationsJudgementTabulationRegardElement class])]; + cell.judgementAbstract = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + cell.delegate = self; + return cell; + } else { + YUMISeparationsDispossessTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMISeparationsDispossessTabulationRegardElement class])]; + return cell; + } + } +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + [tableView deselectRowAtIndexPath:indexPath animated:YES]; + if (indexPath.section == 1) { + if (self.datasource.count > 0) { + SeparationsJudgementMatrix* monent = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + self.commentId = monent.commentId; + self.introjectionObstacleRegard.introjectionEssayRegard.placeholder = [NSString stringWithFormat:@"回复: %@", monent.nick]; + [self.introjectionObstacleRegard essayRegardBecomeThresholdResponder]; + } + } +} + +- (void)scrollViewDidScroll:(UIScrollView *)scrollView { + [_keydirectorateExecutive brakeEntiretyDirectortowardseRegard]; +} + +#pragma mark - FBCSeparationsCommentTabulationViweElementRepresendtation +- (void)yUMISepartowardsionsJudgementTarbsultowardsionViweElement:(YUMISeparationsJudgementTabulationRegardElement *)view didClickMoreReply:(SeparationsJudgementMatrix *)judgementAbstract { + [self.presimport acquireSepartowardsionsJudgementReplictowardsionSttowardsement:self.monentsInfo.dynamicId commentId:judgementAbstract.commentId timestamp:judgementAbstract.replyInfo.nextTimestamp]; +} + +- (void)yUMISepartowardsionsJudgementTarbsultowardsionViweElement:(YUMISeparationsJudgementTabulationRegardElement *)view didClickCommon:(SeparationsReplicationMatrix *)judgementAbstract { + if (judgementAbstract) { + self.commentId = judgementAbstract.replyId; + self.introjectionObstacleRegard.introjectionEssayRegard.placeholder = [NSString stringWithFormat:@"回复: %@", judgementAbstract.nick]; + [self.introjectionObstacleRegard essayRegardBecomeThresholdResponder]; + } +} +- (void)yUMISepartowardsionsJudgementTarbsultowardsionViweElement:(YUMISeparationsJudgementTabulationRegardElement *)view didClickAvatar:(NSString *)judgementAbstract { + if ([ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + YUMIManeConsumerAbstractRegardGovernancer * userInfoVC = [[YUMIManeConsumerAbstractRegardGovernancer alloc] init]; + userInfoVC.uid = judgementAbstract.integerValue; + [self.navigationController pushViewController:userInfoVC animated:YES]; + }else{ + YUMIManeSimpleConsumerAbstractRegardGovernancer * userInfoVC = [[YUMIManeSimpleConsumerAbstractRegardGovernancer alloc] init]; + userInfoVC.uid = judgementAbstract.integerValue; + [self.navigationController pushViewController:userInfoVC animated:YES]; + } +} +#pragma mark - FBCSeparationsTabulationViweElementRepresendtation +- (void)yUMISepartowardsionsTarbsultowardsionViweElement:(YUMISeparationsTabulationRegardElement *)view didClickLike:(SeparationsAbstractMatrix *)monentsInfo { + [self.presimport similarMonent:monentsInfo.dynamicId status:!monentsInfo.isLike likedUid:monentsInfo.uid worldId:[NSString stringWithFormat:@"%ld", monentsInfo.worldId]]; +} + +- (void)yUMISepartowardsionsTarbsultowardsionViweElement:(YUMISeparationsTabulationRegardElement *)view didClicDelete:(SeparationsAbstractMatrix *)monentsInfo { + [MKJPopup precautiousAboutCommunictowardsion:@"删除后不可恢复\n确定删除该动态吗?" acknowledgementHandler:^{ + [self.presimport representtowardsionSepartowardsions:monentsInfo.dynamicId worldId:[NSString stringWithFormat:@"%ld", monentsInfo.worldId]]; + } cancelHandler:^{ + + }]; +} + +- (void)yUMISepartowardsionsTarbsultowardsionViweElement:(YUMISeparationsTabulationRegardElement *)view didClicCommon:(SeparationsAbstractMatrix *)monentsInfo { + if (monentsInfo) { + self.commentId = nil; + self.introjectionObstacleRegard.introjectionEssayRegard.placeholder = YMLocalizedString(@"YUMI_Monents_Detail_View_Controller_6"); + [self.introjectionObstacleRegard essayRegardBecomeThresholdResponder]; + } +} + +- (void)yUMISepartowardsionsTarbsultowardsionViweElement:(YUMISeparationsTabulationRegardElement *)view didClicFold:(SeparationsAbstractMatrix *)monentsInfo { + self.monentsInfo = monentsInfo; + [self.tableView reloadSections:[NSIndexSet indexSetWithIndex:0] withRowAnimation:UITableViewRowAnimationNone]; +} + +#pragma mark - IntrojectionDirectorateAtomicSource +- (UIView *)digitentiretyibraExecutiveSpreadDirectortowardseRegard:(MHTKeyboardExecutive *)keydirectorateExecutive { + UIView *boardView = [UIView new]; + boardView.backgroundColor = UIColor.blueColor; + return boardView; +} + +- (UIView *)digitentiretyibraExecutiveSenintrtowardsemporalntDirectortowardseRegard:(MHTKeyboardExecutive *)keydirectorateExecutive { + MHTSpiritDirectorateRegard *senintrtowardsemporalntRegard = [[MHTSpiritDirectorateRegard alloc] init]; + MHTSpiritFacilitater *faceManager = [MHTSpiritFacilitater partowardsiciptowardsiondSenintrtowardsemporalntFacilittowardseer]; + senintrtowardsemporalntRegard.senintratemporalnts = faceManager.senintratemporalntGarment; + senintrtowardsemporalntRegard.delegate = self; + if (@available(iOS 11.0, *)) { + NSBundle *bundle = [NSBundle bundleForClass:[self class]]; + senintrtowardsemporalntRegard.backgroundColor = [UIColor colorNamed:@"q_input_extend_bg" inBundle:bundle compatibleWithTraitCollection:nil]; + } else { + senintrtowardsemporalntRegard.backgroundColor = [UIColor colorWithRed:(246)/255.0f green:(246)/255.0f blue:(246)/255.0f alpha:1]; + } + return senintrtowardsemporalntRegard; +} + +- (CGFloat)digitentiretyibraExecutiveSenintrtowardsemporalntDirectortowardseAltitude:(MHTKeyboardExecutive *)keydirectorateExecutive { + return 294; +} + +- (CGFloat)digitentiretyibraExecutiveSpreadDirectortowardseAltitude:(MHTKeyboardExecutive *)keydirectorateExecutive { + return 174; +} + +- (MHTIntrojectionObstacleRegardDispositionuration *)introjectionObstacleRegardDispositionurtowardsion { + + MHTIntrojectionObstacleRegardDispositionuration *introjectionObstacleRegardDispositionurtowardsion = [MHTIntrojectionObstacleRegardDispositionuration deficiencyIntrojectionObstacleRegardDispositionurtowardsion]; + introjectionObstacleRegardDispositionurtowardsion.reputationBtutonVeiled = YES; + introjectionObstacleRegardDispositionurtowardsion.spreadBtutonVeiled = YES; + return introjectionObstacleRegardDispositionurtowardsion; +} + +- (void)introjectionObstacleRegard:(MHTIntrojectionObstacleRegard *)introjectionObstacleRegard onEmotionButtonClick:(UIButton *)senintratemporalntSwopBtuton { + if (senintratemporalntSwopBtuton.isSelected) { + [_keydirectorateExecutive swopToSenintrtowardsemporalntDirectortowardseDigitentiretyibra]; + } else { + self.commentId = nil; + _introjectionObstacleRegard.introjectionEssayRegard.placeholder = YMLocalizedString(@"YUMI_Monents_Detail_View_Controller_7"); + [_introjectionObstacleRegard essayRegardBecomeThresholdResponder]; + } +} + +#pragma mark - QEmotionDirectorateRegardRepresendtation + +- (void)senintrtowardsemporalntRegard:(MHTSpiritDirectorateRegard *)senintrtowardsemporalntRegard didSelectEmotion:(MHTSpirit *)emotion atIndex:(NSInteger)index { + + [_introjectionObstacleRegard insertSenintrtowardsemporalnt:emotion.displayName]; +} + +- (void)senintrtowardsemporalntRegardDidChosenRepresenttowardsionBtuton:(MHTSpiritDirectorateRegard *)senintrtowardsemporalntRegard { + if (![_introjectionObstacleRegard representtowardsionSenintrtowardsemporalnt]){ + + [_introjectionObstacleRegard.introjectionEssayRegard deleteBackward]; + } +} + +- (void)senintrtowardsemporalntRegardDidChosenDischargeBtuton:(MHTSpiritDirectorateRegard *)senintrtowardsemporalntRegard { + [self prohibitichargeEssayCommunictowardsion:[_introjectionObstacleRegard essayRegardIntrojectionOrdinaryEssay]]; +} + + +#pragma mark - + +- (void)introjectionObstacleRegard:(MHTIntrojectionObstacleRegard *)introjectionObstacleRegard onKeyboardSendClick:(NSString *)inputNormalText { + [self prohibitichargeEssayCommunictowardsion:inputNormalText]; +} + +#pragma mark - FBCSeparationsDetailCeremony +- (void)acquireSepartowardsionsSpecificAccomplishment:(SeparationsAbstractMatrix *)judgementAbstract { + self.monentsInfo = judgementAbstract; + [self.tableView reloadData]; +} + +- (void)acquireSepartowardsionsJudgementSttowardsementAccomplishment:(SeparationsJudgementStatementMatrix *)judgementAbstract state:(int)state{ + if (state == 0) { + [self.datasource removeAllObjects]; + [self.tableView.mj_header endRefreshing]; + } else { + [self.tableView.mj_footer endRefreshing]; + } + + if (judgementAbstract.commentList.count > 0) { + [self.datasource addObjectsFromArray:judgementAbstract.commentList]; + } + [self.tableView reloadData]; +} + +- (void)acquireSepartowardsionsJudgementReplictowardsionSttowardsementAccomplishment:(SeparationsJudgementReplicationMatrix *)replyInfo commentId:(nonnull NSString *)commentId { + if (commentId) { + __block SeparationsJudgementMatrix * judgementAbstract; + [self.datasource enumerateObjectsUsingBlock:^(SeparationsJudgementMatrix * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if ([obj.commentId isEqualToString:commentId]) { + judgementAbstract = obj; + *stop = YES; + } + }]; + + if (judgementAbstract) { + NSMutableArray * replyList= judgementAbstract.replyInfo.replyList.mutableCopy; + [replyList addObjectsFromArray:replyInfo.replyList]; + judgementAbstract.replyInfo.replyList = replyList.copy; + judgementAbstract.replyInfo.leftCount = replyInfo.leftCount; + judgementAbstract.replyInfo.nextTimestamp = replyInfo.nextTimestamp; + judgementAbstract.isReloadHeight = YES; + } + [self.tableView reloadData]; + } +} + +- (void)similarSepartowardsionsAccomplishment:(NSString *)dynamicId status:(BOOL)status { + if ([self.monentsInfo.dynamicId isEqualToString:dynamicId]) { + NSInteger count = self.monentsInfo.likeCount.integerValue; + self.monentsInfo.isLike = status; + if (status) { + count += 1; + } else { + count -= 1; + } + self.monentsInfo.likeCount = [NSString stringWithFormat:@"%ld", count]; + [self.tableView reloadData]; + } +} + +- (void)replictowardsionSepartowardsionsAccomplishment { + [self.presimport acquireSepartowardsionsJudgementSttowardsement:self.monentsInfo.dynamicId timestamp:@"" status:0]; +} + +- (void)commonSepartowardsionsAccomplishment { + [self.presimport acquireSepartowardsionsJudgementSttowardsement:self.monentsInfo.dynamicId timestamp:@"" status:0]; +} + +- (void)representtowardsionSepartowardsionsAccomplishment:(NSString *)monentsInfo { + [self EvidenceAccomplishmentToast:YMLocalizedString(@"YUMI_Monents_Detail_View_Controller_8")]; + [self.navigationController popViewControllerAnimated:YES]; + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMISepartowardsionsSpecificRegardGovernancer:representtowardsionSepartowardsions:)]) { + [self.delegate yUMISepartowardsionsSpecificRegardGovernancer:self representtowardsionSepartowardsions:self.monentsInfo.dynamicId]; + } +} + + +#pragma mark - Getters And Setters +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.tableFooterView = [UIView new]; + _tableView.tableFooterView = [UIView new]; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.backgroundColor = [UIColor clearColor]; + if (@available(iOS 11.0, *)) { + _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + [_tableView registerClass:[YUMISeparationsTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMISeparationsTabulationRegardElement class])]; + [_tableView registerClass:[YUMISeparationsJudgementTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMISeparationsJudgementTabulationRegardElement class])]; + [_tableView registerClass:[YUMISeparationsDispossessTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMISeparationsDispossessTabulationRegardElement class])]; + } + return _tableView; +} + +- (UIView *)sectionRegard { + if (!_sectionRegard) { + _sectionRegard = [[UIView alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth, 44)]; + _sectionRegard.backgroundColor = [UIColor clearColor]; + } + return _sectionRegard; +} + +- (UILabel *)judgementSequencignation { + if (!_judgementSequencignation) { + _judgementSequencignation = [[UILabel alloc] init]; + _judgementSequencignation.font = [UIFont systemFontOfSize:14]; + _judgementSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _judgementSequencignation; +} + +- (NSMutableArray *)datasource { + if (!_datasource) { + _datasource = [NSMutableArray array]; + } + return _datasource; +} + +@end diff --git a/YuMi/Modules/YMMonents/View/YUMISepartionMotifStatementRegardGovernancer.h b/YuMi/Modules/YMMonents/View/YUMISepartionMotifStatementRegardGovernancer.h new file mode 100644 index 00000000..bada23fb --- /dev/null +++ b/YuMi/Modules/YMMonents/View/YUMISepartionMotifStatementRegardGovernancer.h @@ -0,0 +1,16 @@ +// +// YMMoentsTopicListViewController.h +// YUMI +// +// Created by YUMI on 2022/8/18. +// + +#import "MvpRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMISepartionMotifStatementRegardGovernancer : MvpRegardGovernancer + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMMonents/View/YUMISepartionMotifStatementRegardGovernancer.m b/YuMi/Modules/YMMonents/View/YUMISepartionMotifStatementRegardGovernancer.m new file mode 100644 index 00000000..eb39927c --- /dev/null +++ b/YuMi/Modules/YMMonents/View/YUMISepartionMotifStatementRegardGovernancer.m @@ -0,0 +1,161 @@ +// +// YMMoentsTopicListViewController.m +// YUMI +// +// Created by YUMI on 2022/8/18. +// + +#import "YUMISepartionMotifStatementRegardGovernancer.h" +#import +#import +#import "DJDKMIMOMColor.h" +#import "NSArray+Safe.h" +#import "SeparationsMotifMatrix.h" +#import "YUMISeparationMotifAccommodatedRegardGovernancer.h" +#import "YUMISeparationsMotifStatementExternalizer.h" +#import "FBCSeparationsMotifStatementCeremony.h" + +@interface YUMISepartionMotifStatementRegardGovernancer () +@property (nonatomic,strong) UITableView *tableView; +@property (nonatomic,strong) NSMutableArray *datasource; +@property (nonatomic,assign) int page; +@end + +@implementation YUMISepartionMotifStatementRegardGovernancer + +- (__kindof id)producePresimport { + return [[YUMISeparationsMotifStatementExternalizer alloc] init]; +} + + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initIntelligencerGrantedTerminalerRrfresh]; + [self initSubViews]; + [self initChildLyRestrictions]; +} + +- (void)initIntelligencerGrantedTerminalerRrfresh { + MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(intelligenceerRenovtowardseh)]; + header.stateLabel.font = [UIFont systemFontOfSize:10.0]; + header.lastUpdatedTimeLabel.font = [UIFont systemFontOfSize:10.0]; + header.stateLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + header.lastUpdatedTimeLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + self.tableView.mj_header = header; + + MJRefreshBackNormalFooter *footer = [MJRefreshBackNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(footerRenovtowardseh)]; + footer.stateLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + footer.stateLabel.font = [UIFont systemFontOfSize:10.0]; + self.tableView.mj_footer = footer; + + [self intelligenceerRenovtowardseh]; +} + +- (void)intelligenceerRenovtowardseh { + self.page = 1; + [self.presimport acquireMoentsMotifSttowardsement:self.page pageSize:20 state:0]; +} + +- (void)footerRenovtowardseh { + self.page++; + [self.presimport acquireMoentsMotifSttowardsement:self.page pageSize:20 state:1]; +} + + +#pragma mark - Private Method +- (void)initSubViews { + self.title = YMLocalizedString(@"YUMI_Moents_Topic_List_View_Controller_0"); + [self.view addSubview:self.tableView]; +} + +- (void)initChildLyRestrictions { + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.view); + }]; +} + +#pragma mark - UITableViewDelegate And UITableViewDataSource +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.datasource.count; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + return 50; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + UITableViewCell* cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([UITableViewCell class])]; + if (cell == nil) { + cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([UITableViewCell class])]; + } + SeparationsMotifMatrix * topicModel = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + cell.textLabel.text = [NSString stringWithFormat:@"#%@", topicModel.name]; + cell.textLabel.textColor = [DJDKMIMOMColor mainEssayPrettify]; + cell.textLabel.font = [UIFont systemFontOfSize:13]; + return cell; +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + [tableView deselectRowAtIndexPath:indexPath animated:YES]; + if (self.datasource.count > 0) { + SeparationsMotifMatrix * topicModel = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + YUMISeparationMotifAccommodatedRegardGovernancer * topicVC = [[YUMISeparationMotifAccommodatedRegardGovernancer alloc] init]; + topicVC.worldId = topicModel.tId; + [self.navigationController pushViewController:topicVC animated:YES]; + } +} + +#pragma mark - FBCSeparationsMotifStatementCeremony +- (void)acquireSepartowardsionsMotifSttowardsementAccomplishment:(NSArray *)list state:(int)state { + if (state == 0) { + [self.tableView.mj_header endRefreshing]; + [self.datasource removeAllObjects]; + } else { + if (list.count <= 0) { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_Moents_Topic_List_View_Controller_1")]; + } + [self.tableView.mj_footer endRefreshing]; + } + + if (list.count > 0) { + [self.datasource addObjectsFromArray:list]; + } + + [self.tableView reloadData]; +} + +- (void)acquireMoentsMotifFlunk:(NSString *)message state:(int)state { + if (state == 0) { + [self.tableView.mj_header endRefreshing]; + } else { + [self.tableView.mj_footer endRefreshing]; + } +} + +#pragma mark - Getters And Setters +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.tableFooterView = [UIView new]; + _tableView.separatorStyle = UITableViewCellSeparatorStyleSingleLine; + _tableView.backgroundColor = [UIColor clearColor]; + if (@available(iOS 11.0, *)) { + _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + [_tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:NSStringFromClass([UITableViewCell class])]; + } + return _tableView; +} + +- (NSMutableArray *)datasource { + if (!_datasource) { + _datasource = [NSMutableArray array]; + } + return _datasource; +} + + + +@end diff --git a/YuMi/Modules/YMNewHome/Api/Api+Home.h b/YuMi/Modules/YMNewHome/Api/Api+Home.h new file mode 100644 index 00000000..8682df13 --- /dev/null +++ b/YuMi/Modules/YMNewHome/Api/Api+Home.h @@ -0,0 +1,62 @@ +// +// Api+Home.h +// YUMI +// +// Created by YUMI on 2021/11/29. +// + +#import "Api.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface Api (Home) + ++ (void)residenceCoupleimplementtion:(HttpRequestHelperCompletion)complection uid:(NSString *)uid; + ++ (void)residenceEneracquireicCoupleimplementtion:(HttpRequestHelperCompletion)complection uid:(NSString *)uid; + ++ (void)acquireEncourageSttowardsementimplementtion:(HttpRequestHelperCompletion)complection + uid:(NSString *)uid + suspensionId:(NSString *)suspensionId + pageNum:(NSString *)pageNum + pageSize:(NSString *)pageSize; + ++ (void)huntforimplementtion:(HttpRequestHelperCompletion)complection + key:(NSString *)key + type:(NSString *)type + page:(NSString *)page + pageSize:(NSString *)pageSize; + ++ (void)requisitionEachSoleHuntforChamberSttowardsement:(HttpRequestHelperCompletion)completion wordId:(NSString *)sid; + ++ (void)requisitionHuntforHijacker:(HttpRequestHelperCompletion)completion key:(NSString *)key; + ++ (void)residenceOriflammeSttowardsement:(HttpRequestHelperCompletion)completion uid:(NSString *)uid type:(NSString *)type; + ++ (void)residenceParrotSttowardsement:(HttpRequestHelperCompletion)completion uid:(NSString *)uid; + ++ (void)residenceEncourageChamberSttowardsement:(HttpRequestHelperCompletion)completion uid:(NSString *)uid; + ++ (void)residenceThermalChamberSttowardsement:(HttpRequestHelperCompletion)completion; + ++ (void)residenceKellegFurthaerChamberSttowardsement:(HttpRequestHelperCompletion)completion singleRoomSortId:(NSString *)singleRoomSortId; + ++ (void)residencesubjectiveChamberSttowardsement:(HttpRequestHelperCompletion)completion uid:(NSString *)uid; + ++ (void)residenceDisportCompetitionSquad:(HttpRequestHelperCompletion)completion uid:(NSString *)uid pageNum:(NSString *)pageNum pageSize:(NSString *)pageSize; + ++ (void)residenceConsidertowardsionSttowardsement:(HttpRequestHelperCompletion)completion uid:(NSString *)uid; + ++ (void)residenceAssembleChamberSttowardsement:(HttpRequestHelperCompletion)completion uid:(NSString *)uid page:(NSString *)page pageSize:(NSString *)pageSize; + ++ (void)residenceExtractEyumiense:(HttpRequestHelperCompletion)completion uid:(NSString *)uid rid:(NSString *)rid; + ++ (void)residenceTraitCompetitionChamberSttowardsement:(HttpRequestHelperCompletion)completion pageSize:(NSString *)pageSize pageNum:(NSString *)pageNum uid:(NSString *)uid; + ++ (void)residenceFlexibleDirectoryapttowardsionTraitCompetition:(HttpRequestHelperCompletion)completion uid:(NSString *)uid; + ++ (void)onceConsiderKellegChamberimplementtion:(HttpRequestHelperCompletion)complection uid:(NSString *)uid; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMNewHome/Api/Api+Home.m b/YuMi/Modules/YMNewHome/Api/Api+Home.m new file mode 100644 index 00000000..ba1bacf7 --- /dev/null +++ b/YuMi/Modules/YMNewHome/Api/Api+Home.m @@ -0,0 +1,113 @@ +// +// Api+Home.m +// YUMI +// +// Created by YUMI on 2021/11/29. +// + +#import "Api+Home.h" +#import "NSMutableDictionary+Saft.h" +#import +@implementation Api (Home) + + ++ (void)residenceCoupleimplementtion:(HttpRequestHelperCompletion)complection uid:(NSString *)uid { + NSString * fang = [NSString stringFromBase64String:@"aG9tZS90YWdWMg=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:complection, __FUNCTION__, uid, nil]; +} + ++ (void)residenceEneracquireicCoupleimplementtion:(HttpRequestHelperCompletion)complection uid:(NSString *)uid { + NSString * fang = [NSString stringFromBase64String:@"c2luZ2xlL2Jyb2FkY2FzdC9zb3J0"]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:complection, __FUNCTION__, uid, nil]; +} ++ (void)acquireEncourageSttowardsementimplementtion:(HttpRequestHelperCompletion)complection uid:(NSString *)uid suspensionId:(NSString *)suspensionId pageNum:(NSString *)pageNum pageSize:(NSString *)pageSize { + NSString * fang = [NSString stringFromBase64String:@"aG9tZS90YWIvbWFwVjI="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:complection, __FUNCTION__, uid, suspensionId, pageNum, pageSize, nil]; +} + ++ (void)huntforimplementtion:(HttpRequestHelperCompletion)complection key:(NSString *)key type:(NSString *)type page:(NSString *)page pageSize:(NSString *)pageSize { + NSString * fang = [NSString stringFromBase64String:@"c2VhcmNoL3Jvb20="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:complection, __FUNCTION__, key, type, page, pageSize, nil]; +} + ++ (void)requisitionEachSoleHuntforChamberSttowardsement:(HttpRequestHelperCompletion)completion wordId:(NSString *)sid { + NSString * fang = [NSString stringFromBase64String:@"ZXZlcnkvb25lL3NlYXJjaC9nZXRSb29tTGlzdA=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, sid, nil]; +} + ++ (void)requisitionHuntforHijacker:(HttpRequestHelperCompletion)completion key:(NSString *)key { + NSString * fang = [NSString stringFromBase64String:@"c2VhcmNoL2hpamFjay9nZXQ="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, key, nil]; +} + ++ (void)residenceOriflammeSttowardsement:(HttpRequestHelperCompletion)completion uid:(NSString *)uid type:(NSString *)type { + NSString * fang = [NSString stringFromBase64String:@"aG9tZS9iYW5uZXI="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, uid, type, nil]; +} + ++ (void)residenceParrotSttowardsement:(HttpRequestHelperCompletion)completion uid:(NSString *)uid { + NSString * fang = [NSString stringFromBase64String:@"aG9tZS9jdXJyZW50UmVzb3VyY2U="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, uid, nil]; +} + ++ (void)residenceEncourageChamberSttowardsement:(HttpRequestHelperCompletion)completion uid:(NSString *)uid { + NSString * fang = [NSString stringFromBase64String:@"aG9tZS90YWIvaG9tZVYy"]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, uid, nil]; +} + ++ (void)residenceThermalChamberSttowardsement:(HttpRequestHelperCompletion)completion { + NSString * fang = [NSString stringFromBase64String:@"c2luZ2xlL2Jyb2FkY2FzdC9tb3JlUG9wdWxhcml0eUFuY2hvckxpc3Q="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, nil]; +} + ++ (void)residenceKellegFurthaerChamberSttowardsement:(HttpRequestHelperCompletion)completion singleRoomSortId:(NSString *)singleRoomSortId { + NSString * fang = [NSString stringFromBase64String:@"c2luZ2xlL2Jyb2FkY2FzdC9tb3JlUG9wdWxhcml0eUFuY2hvckxpc3Q="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, singleRoomSortId, nil]; +} + ++ (void)residencesubjectiveChamberSttowardsement:(HttpRequestHelperCompletion)completion uid:(NSString *)uid { + NSString * fang = [NSString stringFromBase64String:@"aG9tZS9ob3RSb29t"]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__,uid, nil]; +} + ++ (void)residenceDisportCompetitionSquad:(HttpRequestHelperCompletion)completion uid:(NSString *)uid pageNum:(NSString *)pageNum pageSize:(NSString *)pageSize { + NSString * fang = [NSString stringFromBase64String:@"aG9tZS9wbGF5VjI="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__,uid , pageNum, pageSize,nil]; +} + ++ (void)residenceConsidertowardsionSttowardsement:(HttpRequestHelperCompletion)completion uid:(NSString *)uid { + NSString * fang = [NSString stringFromBase64String:@"ZmFucy9wYXJ0VGFiRm9sbG93TGlzdA=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__,uid ,nil]; +} + ++ (void)residenceAssembleChamberSttowardsement:(HttpRequestHelperCompletion)completion uid:(NSString *)uid page:(NSString *)page pageSize:(NSString *)pageSize { + NSString * fang = [NSString stringFromBase64String:@"ZmFucy9mYW5zUm9vbUxpc3Q="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__,uid , page, pageSize,nil]; +} + ++ (void)residenceExtractEyumiense:(HttpRequestHelperCompletion)completion uid:(NSString *)uid rid:(NSString *)rid { + NSString * fang = [NSString stringFromBase64String:@"aG9tZS9waWNrUmVzb3VyY2U="]; + NSMutableDictionary * pararms = [NSMutableDictionary dictionary]; + [pararms secureSetGroal:uid forKey:@"uid"]; + [pararms secureSetGroal:rid forKey:@"id"]; + [HttpRequestFacilitater request:fang method:HttpRequestHelperMethodGET params:pararms completion:completion]; +} + + ++ (void)residenceTraitCompetitionChamberSttowardsement:(HttpRequestHelperCompletion)completion pageSize:(NSString *)pageSize pageNum:(NSString *)pageNum uid:(NSString *)uid { + NSString * fang = [NSString stringFromBase64String:@"aG9tZS9taW5pR2FtZVRhYkxpc3Q="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, pageSize, pageNum, uid, nil]; +} + + ++ (void)residenceFlexibleDirectoryapttowardsionTraitCompetition:(HttpRequestHelperCompletion)completion uid:(NSString *)uid { + NSString * fang = [NSString stringFromBase64String:@"aG9tZS9mYXN0UGljaw=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, uid, nil]; +} + ++ (void)onceConsiderKellegChamberimplementtion:(HttpRequestHelperCompletion)complection uid:(NSString *)uid { + NSString * fang = [NSString stringFromBase64String:@"c2luZ2xlL2Jyb2FkY2FzdC9vbmNlTG9vaw=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:complection, __FUNCTION__, uid, nil]; +} + +@end diff --git a/YuMi/Modules/YMNewHome/Model/ResidenceAssembleChamberMatrix.h b/YuMi/Modules/YMNewHome/Model/ResidenceAssembleChamberMatrix.h new file mode 100644 index 00000000..6349a8b4 --- /dev/null +++ b/YuMi/Modules/YMNewHome/Model/ResidenceAssembleChamberMatrix.h @@ -0,0 +1,26 @@ +// +// ResidenceAssembleChamberMatrix.h +// YUMI +// +// Created by YUMI on 2022/3/2. +// + +#import +#import "ResidenceDisportChamberMatrix.h" +NS_ASSUME_NONNULL_BEGIN + +@interface ResidenceAssembleChamberMatrix : NSObject +@property (nonatomic,copy) NSString *nick; +@property (nonatomic,copy) NSString *roomAvatar; +@property (nonatomic,copy) NSString *roomName; +@property (nonatomic,copy) NSString *roomOnlineNum; +@property (nonatomic,assign) BOOL crossPking; +@property (nonatomic,copy) NSString *erbanNo; +@property (nonatomic,copy) NSString *tagPict; +@property (nonatomic,copy) NSString *roomUid; +@property (nonatomic, strong) NSArray *micUsers; +@property (nonatomic, assign) BOOL isSelected; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMNewHome/Model/ResidenceAssembleChamberMatrix.m b/YuMi/Modules/YMNewHome/Model/ResidenceAssembleChamberMatrix.m new file mode 100644 index 00000000..5b082ace --- /dev/null +++ b/YuMi/Modules/YMNewHome/Model/ResidenceAssembleChamberMatrix.m @@ -0,0 +1,18 @@ +// +// ResidenceAssembleChamberMatrix.m +// YUMI +// +// Created by YUMI on 2022/3/2. +// + +#import "ResidenceAssembleChamberMatrix.h" + +@implementation ResidenceAssembleChamberMatrix + ++ (NSDictionary *)objectCtowardsegorizeInGarment { + return @{ + @"micUsers": [ResidenceDisportLoudspeakerConsumerMatrix class], + }; +} + +@end diff --git a/YuMi/Modules/YMNewHome/Model/ResidenceCoupleMatrix.h b/YuMi/Modules/YMNewHome/Model/ResidenceCoupleMatrix.h new file mode 100644 index 00000000..0e1be641 --- /dev/null +++ b/YuMi/Modules/YMNewHome/Model/ResidenceCoupleMatrix.h @@ -0,0 +1,17 @@ +// +// ResidenceCoupleMatrix.h +// YUMI +// +// Created by YUMI on 2021/12/2. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface ResidenceCoupleMatrix : NSObject +@property (nonatomic,copy) NSString *tid; +@property (nonatomic,copy) NSString *name; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMNewHome/Model/ResidenceCoupleMatrix.m b/YuMi/Modules/YMNewHome/Model/ResidenceCoupleMatrix.m new file mode 100644 index 00000000..c888b50e --- /dev/null +++ b/YuMi/Modules/YMNewHome/Model/ResidenceCoupleMatrix.m @@ -0,0 +1,16 @@ +// +// ResidenceCoupleMatrix.m +// YUMI +// +// Created by YUMI on 2021/12/2. +// + +#import "ResidenceCoupleMatrix.h" +@implementation ResidenceCoupleMatrix + ++ (NSDictionary *)replacedDigitalByvirtueofMaintainertyConstitute { + return @{@"tid":@"id"}; +} + + +@end diff --git a/YuMi/Modules/YMNewHome/Model/ResidenceDisportChamberMatrix.h b/YuMi/Modules/YMNewHome/Model/ResidenceDisportChamberMatrix.h new file mode 100644 index 00000000..ef662f44 --- /dev/null +++ b/YuMi/Modules/YMNewHome/Model/ResidenceDisportChamberMatrix.h @@ -0,0 +1,37 @@ +// +// ResidenceDisportChamberMatrix.h +// YUMI +// +// Created by YUMI on 2022/2/25. +// + +#import +#import "YUMINNNN.h" +#import "ResidenceOriflammeAbstractMatrix.h" +NS_ASSUME_NONNULL_BEGIN +@class ResidenceDisportLoudspeakerConsumerMatrix; +@interface ResidenceDisportChamberMatrix : NSObject +@property (nonatomic, copy) NSString *avatar; +@property (nonatomic, assign) BOOL crossPking; +@property(nonatomic, copy) NSString *erbanNo; +@property (nonatomic, assign) BOOL isBanner; +@property(nonatomic, copy) NSString *mgId; +@property(nonatomic, copy) NSString *mgName; +@property (nonatomic, strong) NSArray *micUsers; +@property (nonatomic, assign) NSInteger onlineNum; +@property (nonatomic, strong) NSString *tagPict; +@property (nonatomic, copy) NSString *title; +@property (nonatomic,copy) NSString *uid; +@property (nonatomic, strong) NSArray *bannerVoList; +@property (nonatomic, copy) NSString *broadMsg; +@property (nonatomic,assign) GenderGenre gender; +@end + +@interface ResidenceDisportLoudspeakerConsumerMatrix : NSObject +@property (nonatomic, copy) NSString *avatar; +@property (nonatomic,assign) GenderGenre gender; +@property (nonatomic,copy) NSString *nick; +@property (nonatomic,copy) NSString *uid; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMNewHome/Model/ResidenceDisportChamberMatrix.m b/YuMi/Modules/YMNewHome/Model/ResidenceDisportChamberMatrix.m new file mode 100644 index 00000000..a0121bbf --- /dev/null +++ b/YuMi/Modules/YMNewHome/Model/ResidenceDisportChamberMatrix.m @@ -0,0 +1,24 @@ +// +// ResidenceDisportChamberMatrix.m +// YUMI +// +// Created by YUMI on 2022/2/25. +// + +#import "ResidenceDisportChamberMatrix.h" + +@implementation ResidenceDisportChamberMatrix + ++ (NSDictionary *)objectCtowardsegorizeInGarment { + return @{ + @"micUsers": [ResidenceDisportLoudspeakerConsumerMatrix class], + @"bannerVoList": [ResidenceOriflammeAbstractMatrix class] + }; +} +@end + + +@implementation ResidenceDisportLoudspeakerConsumerMatrix + + +@end diff --git a/YuMi/Modules/YMNewHome/Model/ResidenceEncourageChamberMatrix.h b/YuMi/Modules/YMNewHome/Model/ResidenceEncourageChamberMatrix.h new file mode 100644 index 00000000..c65577f0 --- /dev/null +++ b/YuMi/Modules/YMNewHome/Model/ResidenceEncourageChamberMatrix.h @@ -0,0 +1,33 @@ +// +// ResidenceEncourageChamberMatrix.h +// YUMI +// +// Created by YUMI on 2021/11/29. +// + +#import +#import "YUMINNNN.h" +NS_ASSUME_NONNULL_BEGIN + +@interface ResidenceEncourageChamberMatrix : NSObject +@property (nonatomic,copy) NSString *avatar; +@property (nonatomic,assign) NSInteger onlineNum; +@property (nonatomic,copy) NSString *roomUid; +@property (nonatomic,copy) NSString *roomTag; +@property (nonatomic,copy) NSString *title; +@property (nonatomic,copy) NSString *tagPict; +@property (nonatomic,assign) GenderGenre gender; +@property (nonatomic,copy) NSString *nick; +@property (nonatomic,copy) NSString *roomId; +@property (nonatomic,copy) NSString *uid; +@property(nonatomic, copy) NSString *roomDesc; +@property (nonatomic,strong) NSNumber * seq; +@property (nonatomic,copy) NSString *iconContent; +@property (nonatomic, assign) BOOL crossPking; +@property (nonatomic, assign) BOOL isRecommend; + +@property (nonatomic, copy) NSString *erbanNo; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMNewHome/Model/ResidenceEncourageChamberMatrix.m b/YuMi/Modules/YMNewHome/Model/ResidenceEncourageChamberMatrix.m new file mode 100644 index 00000000..dfa716a7 --- /dev/null +++ b/YuMi/Modules/YMNewHome/Model/ResidenceEncourageChamberMatrix.m @@ -0,0 +1,12 @@ +// +// ResidenceEncourageChamberMatrix.m +// YUMI +// +// Created by YUMI on 2021/11/29. +// + +#import "ResidenceEncourageChamberMatrix.h" + +@implementation ResidenceEncourageChamberMatrix + +@end diff --git a/YuMi/Modules/YMNewHome/Model/ResidenceOriflammeAbstractMatrix.h b/YuMi/Modules/YMNewHome/Model/ResidenceOriflammeAbstractMatrix.h new file mode 100644 index 00000000..040c1129 --- /dev/null +++ b/YuMi/Modules/YMNewHome/Model/ResidenceOriflammeAbstractMatrix.h @@ -0,0 +1,27 @@ +// +// ResidenceOriflammeAbstractMatrix.h +// YUMI +// +// Created by YUMI on 2022/2/21. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSUInteger, HomeBannerAbstractSkipGenre) { + + HomeBannerAbstractSkipGenre_Room = 2, + + HomeBannerAbstractSkipGenre_Web = 3, +}; + +@interface ResidenceOriflammeAbstractMatrix : NSObject +@property (nonatomic,copy)NSString *bannerId; +@property (nonatomic,copy)NSString *bannerName; +@property (nonatomic, copy)NSString *bannerPic; +@property (nonatomic, copy)NSString *skipUri; +@property (nonatomic, assign)HomeBannerAbstractSkipGenre skipType; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMNewHome/Model/ResidenceOriflammeAbstractMatrix.m b/YuMi/Modules/YMNewHome/Model/ResidenceOriflammeAbstractMatrix.m new file mode 100644 index 00000000..0b5ce5ee --- /dev/null +++ b/YuMi/Modules/YMNewHome/Model/ResidenceOriflammeAbstractMatrix.m @@ -0,0 +1,12 @@ +// +// ResidenceOriflammeAbstractMatrix.m +// YUMI +// +// Created by YUMI on 2022/2/21. +// + +#import "ResidenceOriflammeAbstractMatrix.h" + +@implementation ResidenceOriflammeAbstractMatrix + +@end diff --git a/YuMi/Modules/YMNewHome/Model/ResidenceParrotAbstractMatrix.h b/YuMi/Modules/YMNewHome/Model/ResidenceParrotAbstractMatrix.h new file mode 100644 index 00000000..0ab77499 --- /dev/null +++ b/YuMi/Modules/YMNewHome/Model/ResidenceParrotAbstractMatrix.h @@ -0,0 +1,34 @@ +// +// ResidenceParrotAbstractMatrix.h +// YUMI +// +// Created by YUMI on 2022/2/21. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSInteger, HomeParrotResourceGenre) { + + HomeParrotResourceGenre_Room_Licnese = 1, + + HomeParrotResourceGenre_Room_Dating, + + HomeParrotResourceGenre_Room_PK, + + HomeParrotResourceGenre_Room_Game, + + HomeParrotResourceGenre_H5, + + HomeParrotResourceGenre_Room_Custom, +}; + +@interface ResidenceParrotAbstractMatrix : NSObject +@property (nonatomic,copy) NSString *hid; +@property (nonatomic, copy)NSString *icon; +@property (nonatomic, assign)HomeParrotResourceGenre resourceType; +@property (nonatomic, copy)NSString *resourceContent; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMNewHome/Model/ResidenceParrotAbstractMatrix.m b/YuMi/Modules/YMNewHome/Model/ResidenceParrotAbstractMatrix.m new file mode 100644 index 00000000..d406bd13 --- /dev/null +++ b/YuMi/Modules/YMNewHome/Model/ResidenceParrotAbstractMatrix.m @@ -0,0 +1,16 @@ +// +// ResidenceParrotAbstractMatrix.m +// YUMI +// +// Created by YUMI on 2022/2/21. +// + +#import "ResidenceParrotAbstractMatrix.h" + +@implementation ResidenceParrotAbstractMatrix + ++ (NSDictionary *)replacedDigitalByvirtueofMaintainertyConstitute { + return @{@"hid":@"id"}; +} + +@end diff --git a/YuMi/Modules/YMNewHome/Presenter/YUMIResidenceAccommodatedExternalizer.h b/YuMi/Modules/YMNewHome/Presenter/YUMIResidenceAccommodatedExternalizer.h new file mode 100644 index 00000000..bfa6bd2e --- /dev/null +++ b/YuMi/Modules/YMNewHome/Presenter/YUMIResidenceAccommodatedExternalizer.h @@ -0,0 +1,18 @@ +// +// YUMIResidenceAccommodatedExternalizer.h +// YuMi +// +// Created by YuMi on 2021/12/2. +// + +#import "BaseMvpExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIResidenceAccommodatedExternalizer : BaseMvpExternalizer + +- (void)acquireResidenceCoupleSttowardsement; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMNewHome/Presenter/YUMIResidenceAccommodatedExternalizer.m b/YuMi/Modules/YMNewHome/Presenter/YUMIResidenceAccommodatedExternalizer.m new file mode 100644 index 00000000..8920300f --- /dev/null +++ b/YuMi/Modules/YMNewHome/Presenter/YUMIResidenceAccommodatedExternalizer.m @@ -0,0 +1,31 @@ +// +// YUMIResidenceAccommodatedExternalizer.m +// YuMi +// +// Created by YuMi on 2021/12/2. +// + +#import "YUMIResidenceAccommodatedExternalizer.h" +#import "Api+Home.h" +#import "AccountAbstractStorage.h" +#import "ResidenceCoupleMatrix.h" +#import "FBCResidenceContainerCeremony.h" +#import "AccountAbstractStorage.h" +@implementation YUMIResidenceAccommodatedExternalizer + +- (void)acquireResidenceCoupleSttowardsement { + NSString * uid = [[AccountAbstractStorage instance] acquireCid]; + NSArray *list = [[AccountAbstractStorage instance]acquireUniversalCoupleSttowardsement]; + if(list.count > 0){ + [[self acquireRegard] acquireResidenceCoupleSttowardsementAccomplishment:list]; + } + [Api residenceCoupleimplementtion:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + NSArray * array = [ResidenceCoupleMatrix mtowardsrixsAboutGarment:data.data]; + [[AccountAbstractStorage instance]preserveCoupleSttowardsement:array]; + if(list.count == 0 || list.count != array.count){ + [[self acquireRegard] acquireResidenceCoupleSttowardsementAccomplishment:array]; + } + }] uid:uid]; +} + +@end diff --git a/YuMi/Modules/YMNewHome/Presenter/YUMIResidenceExternalizer.h b/YuMi/Modules/YMNewHome/Presenter/YUMIResidenceExternalizer.h new file mode 100644 index 00000000..a78e8871 --- /dev/null +++ b/YuMi/Modules/YMNewHome/Presenter/YUMIResidenceExternalizer.h @@ -0,0 +1,21 @@ +// +// YMHomePresenter.h +// YUMI +// +// Created by YUMI on 2021/11/29. +// + +#import "BaseMvpExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIResidenceExternalizer : BaseMvpExternalizer + +- (void)acquireEncourageChamberSttowardsement:(NSString *)suspensionId page:(int)page pageSize:(int)pageSize state:(BOOL)state; + + +- (void)acquireResidenceFurthaerKellegChamberSttowardsement; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMNewHome/Presenter/YUMIResidenceExternalizer.m b/YuMi/Modules/YMNewHome/Presenter/YUMIResidenceExternalizer.m new file mode 100644 index 00000000..8230a68f --- /dev/null +++ b/YuMi/Modules/YMNewHome/Presenter/YUMIResidenceExternalizer.m @@ -0,0 +1,37 @@ +// +// YMHomePresenter.m +// YUMI +// +// Created by YUMI on 2021/11/29. +// + +#import "YUMIResidenceExternalizer.h" +#import "Api+Home.h" +#import "AccountAbstractStorage.h" +#import "ResidenceEncourageChamberMatrix.h" +#import "FBCResidenceCeremony.h" +@implementation YUMIResidenceExternalizer + + +- (void)acquireEncourageChamberSttowardsement:(NSString *)suspensionId page:(int)page pageSize:(int)pageSize state:(BOOL)state { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NSString * pageStr = [NSString stringWithFormat:@"%d", page]; + NSString * pageSizeStr = [NSString stringWithFormat:@"%d", pageSize]; + [Api acquireEncourageSttowardsementimplementtion:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + NSArray * array = [ResidenceEncourageChamberMatrix mtowardsrixsAboutGarment:data.data]; + [[self acquireRegard] acquireResidenceEncourageChamberSttowardsementAccomplishment:array state:state]; + }fail:^(NSInteger code, NSString * _Nullable msg) { + [[self acquireRegard] acquireResidenceEncourageChamberSttowardsementFlunk:msg state:state]; + }] uid:uid suspensionId:suspensionId pageNum:pageStr pageSize:pageSizeStr]; +} + +- (void)acquireResidenceFurthaerKellegChamberSttowardsement { + [Api residenceKellegFurthaerChamberSttowardsement:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + NSArray * array = [ResidenceEncourageChamberMatrix mtowardsrixsAboutGarment:data.data]; + [[self acquireRegard] acquireResidenceFurthaerKellegChamberSttowardsementAccomplishment:array]; + }fail:^(NSInteger code, NSString * _Nullable msg) { + [[self acquireRegard] acquireResidenceFurthaerKellegChamberSttowardsementFlunk:msg]; + }] singleRoomSortId:@""]; +} + +@end diff --git a/YuMi/Modules/YMNewHome/Presenter/YUMIStrangeResidenceEncourageExternalizer.h b/YuMi/Modules/YMNewHome/Presenter/YUMIStrangeResidenceEncourageExternalizer.h new file mode 100644 index 00000000..8513856c --- /dev/null +++ b/YuMi/Modules/YMNewHome/Presenter/YUMIStrangeResidenceEncourageExternalizer.h @@ -0,0 +1,20 @@ +// +// YUMIStrangeResidenceEncourageExternalizer.h +// YuMi +// +// Created by YuMi on 2023/6/18. +// + +#import "BaseMvpExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIStrangeResidenceEncourageExternalizer : BaseMvpExternalizer +- (void)acquireResidenceApexOriflammeSttowardsementAboutGroup:(dispatch_group_t)group; +- (void)acquireResidenceEncourageChamberSttowardsementAboutGroup:(dispatch_group_t)group; +- (void)acquireResidenceThermalChamberSttowardsementAboutGroup:(dispatch_group_t)group; +- (void)acquireResidencesubjectiveChamberSttowardsementAboutGroup:(dispatch_group_t)group; +- (void)acquireDisportCompetitionAboutSquad:(int)pageNum withGroup:(dispatch_group_t)group; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMNewHome/Presenter/YUMIStrangeResidenceEncourageExternalizer.m b/YuMi/Modules/YMNewHome/Presenter/YUMIStrangeResidenceEncourageExternalizer.m new file mode 100644 index 00000000..56592b93 --- /dev/null +++ b/YuMi/Modules/YMNewHome/Presenter/YUMIStrangeResidenceEncourageExternalizer.m @@ -0,0 +1,129 @@ +// +// YUMIStrangeResidenceEncourageExternalizer.m +// YuMi +// +// Created by YuMi on 2023/6/18. +// + +#import "YUMIStrangeResidenceEncourageExternalizer.h" +#import +#import "Api+Home.h" +#import "Api+Guild.h" +#import "AccountAbstractStorage.h" +#import "ResidenceParrotAbstractMatrix.h" +#import "ResidenceEncourageChamberMatrix.h" +#import "ResidenceOriflammeAbstractMatrix.h" +#import "ResidenceDisportChamberMatrix.h" +#import "FBCStrangeResidenceEncourageCeremony.h" +#import "CollectiveSpecificAbstractMatrix.h" +@implementation YUMIStrangeResidenceEncourageExternalizer +- (void)acquireResidenceApexOriflammeSttowardsementAboutGroup:(dispatch_group_t)group { + RACSubject* banner = [RACSubject subject]; + RACSubject* menu = [RACSubject subject]; + + [[RACSignal combineLatest:@[banner, menu] reduce:^id(NSArray* oriflammeStatement, NSArray* menuList){ + + dispatch_async(dispatch_get_main_queue(), ^{ + + + [[self acquireRegard] acquireResidenceApexOriflammeSttowardsementAccomplishment:oriflammeStatement menuList:menuList withGroup:group]; + }); + + return nil; + }] subscribeError:^(NSError * _Nullable error) { + dispatch_async(dispatch_get_main_queue(), ^{ + + + [[self acquireRegard] acquireResidenceEncourageTowardsoloudspeakerFlunkAboutGroup:group]; + }); + + }]; + + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [Api residenceOriflammeSttowardsement:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + NSArray * array = [ResidenceOriflammeAbstractMatrix mtowardsrixsAboutGarment:data.data]; + [banner sendNext:array]; + [banner sendCompleted]; + }fail:^(NSInteger code, NSString * _Nullable msg) { + [banner sendError:nil]; + [banner sendCompleted]; + } errorToast:NO] uid:uid type:@"1"]; + + [Api residenceParrotSttowardsement:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + NSArray * array = [ResidenceParrotAbstractMatrix mtowardsrixsAboutGarment:data.data]; + [menu sendNext:array]; + [menu sendCompleted]; + } fail:^(NSInteger code, NSString * _Nullable msg) { + [menu sendError:nil]; + [menu sendCompleted]; + }errorToast:NO] uid:uid]; +} +- (void)acquireResidenceEncourageChamberSttowardsementAboutGroup:(dispatch_group_t)group { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [Api residenceEncourageChamberSttowardsement:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + NSArray * array = [ResidenceEncourageChamberMatrix mtowardsrixsAboutGarment:data.data]; + if (array.count > 1) { + + NSArray * newArray = [array sortedArrayUsingComparator:^NSComparisonResult(id _Nonnull obj1, id _Nonnull obj2) { + ResidenceEncourageChamberMatrix * model1 = obj1; + ResidenceEncourageChamberMatrix * model2 = obj2; + return [model1.seq compare:model2.seq]; + }]; + if (newArray.count > 0) { + NSMutableArray * array = [NSMutableArray arrayWithArray:newArray]; + NSMutableArray * temAray = [NSMutableArray array]; + [newArray enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + ResidenceEncourageChamberMatrix * model = obj; + if (model.seq.intValue == 0) { + [temAray addObject:model]; + [array removeObject:model]; + } + }]; + if (temAray.count > 0) { + [array addObjectsFromArray:temAray]; + } + newArray = array.copy; + } + array = newArray; + } + + [[self acquireRegard] acquireResidenceEncourageChamberSttowardsementAccomplishment:array withGroup:group]; + + }fail:^(NSInteger code, NSString * _Nullable msg) { + [[self acquireRegard] acquireResidenceEncourageTowardsoloudspeakerFlunkAboutGroup:group]; + }errorToast:NO] uid:uid]; +} + +- (void)acquireResidenceThermalChamberSttowardsementAboutGroup:(dispatch_group_t)group { + [Api residenceThermalChamberSttowardsement:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + NSArray * array = [ResidenceEncourageChamberMatrix mtowardsrixsAboutGarment:data.data]; + [[self acquireRegard] acquireResidenceThermalChamberSttowardsementAccomplishment:array withGroup:group]; + }fail:^(NSInteger code, NSString * _Nullable msg) { + [[self acquireRegard] acquireResidenceEncourageTowardsoloudspeakerFlunkAboutGroup:group]; + }]]; +} + + +- (void)acquireDisportCompetitionAboutSquad:(int)pageNum withGroup:(dispatch_group_t)group{ + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NSString * pageNumStr = [NSString stringWithFormat:@"%d", pageNum]; + [Api residenceDisportCompetitionSquad:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + NSArray * array = [ResidenceDisportChamberMatrix mtowardsrixsAboutGarment:data.data]; + [[self acquireRegard] acquireDisportCompetitionAboutSquadAccomplishment:array withGroup:group]; + }fail:^(NSInteger code, NSString * _Nullable msg) { + [[self acquireRegard] acquireResidenceEncourageTowardsoloudspeakerFlunkAboutGroup:group]; + }errorToast:NO] uid:uid pageNum:pageNumStr pageSize:@"20"]; +} + + +- (void)acquireResidencesubjectiveChamberSttowardsementAboutGroup:(dispatch_group_t)group { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [Api residencesubjectiveChamberSttowardsement:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + NSArray * array = [ResidenceDisportChamberMatrix mtowardsrixsAboutGarment:data.data]; + [[self acquireRegard] acquireResidencesubjectiveChamberSttowardsementAccomplishment:array withGroup:group]; + }fail:^(NSInteger code, NSString * _Nullable msg) { + [[self acquireRegard] acquireResidenceEncourageTowardsoloudspeakerFlunkAboutGroup:group]; + }errorToast:NO] uid:uid]; +} + +@end diff --git a/YuMi/Modules/YMNewHome/Protocol/FBCResidenceCeremony.h b/YuMi/Modules/YMNewHome/Protocol/FBCResidenceCeremony.h new file mode 100644 index 00000000..98f74322 --- /dev/null +++ b/YuMi/Modules/YMNewHome/Protocol/FBCResidenceCeremony.h @@ -0,0 +1,19 @@ +// +// YMHomeProtocol.h +// YUMI +// +// Created by YUMI on 2021/11/29. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol FBCResidenceCeremony +- (void)acquireResidenceEncourageChamberSttowardsementAccomplishment:(NSArray *)list state:(BOOL)state; +- (void)acquireResidenceEncourageChamberSttowardsementFlunk:(NSString *)message state:(BOOL)state; +- (void)acquireResidenceFurthaerKellegChamberSttowardsementAccomplishment:(NSArray *)list; +- (void)acquireResidenceFurthaerKellegChamberSttowardsementFlunk:(NSString *)messag; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMNewHome/Protocol/FBCResidenceContainerCeremony.h b/YuMi/Modules/YMNewHome/Protocol/FBCResidenceContainerCeremony.h new file mode 100644 index 00000000..bfa13e68 --- /dev/null +++ b/YuMi/Modules/YMNewHome/Protocol/FBCResidenceContainerCeremony.h @@ -0,0 +1,18 @@ +// +// FBCResidenceContainerCeremony.h +// YuMi +// +// Created by YuMi on 2021/12/2. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class ResidenceCoupleMatrix; +@protocol FBCResidenceContainerCeremony + +- (void)acquireResidenceCoupleSttowardsementAccomplishment:(NSArray *)array; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMNewHome/Protocol/FBCResidenceEncourageCeremony.h b/YuMi/Modules/YMNewHome/Protocol/FBCResidenceEncourageCeremony.h new file mode 100644 index 00000000..9bb108cc --- /dev/null +++ b/YuMi/Modules/YMNewHome/Protocol/FBCResidenceEncourageCeremony.h @@ -0,0 +1,21 @@ +// +// YMHomeRecommendProtocol.h +// YUMI +// +// Created by YUMI on 2022/2/21. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol FBCResidenceEncourageCeremony +- (void)acquireResidenceApexOriflammeSttowardsementAccomplishment:(NSArray*)list menuList:(NSArray *)memuList; +- (void)acquireResidenceEncourageChamberSttowardsementAccomplishment:(NSArray *)list; +- (void)acquireResidenceThermalChamberSttowardsementAccomplishment:(NSArray *)list; +- (void)acquireResidencesubjectiveChamberSttowardsementAccomplishment:(NSArray *)list; +- (void)acquireDisportCompetitionAboutSquadAccomplishment:(NSArray *)list; +- (void)acquireResidenceEncourageTowardsoloudspeakerFlunk; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMNewHome/Protocol/FBCStrangeResidenceEncourageCeremony.h b/YuMi/Modules/YMNewHome/Protocol/FBCStrangeResidenceEncourageCeremony.h new file mode 100644 index 00000000..dd5e05dd --- /dev/null +++ b/YuMi/Modules/YMNewHome/Protocol/FBCStrangeResidenceEncourageCeremony.h @@ -0,0 +1,21 @@ +// +// FBCStrangeResidenceEncourageCeremony.h +// YuMi +// +// Created by YuMi on 2023/6/18. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol FBCStrangeResidenceEncourageCeremony +- (void)acquireResidenceApexOriflammeSttowardsementAccomplishment:(NSArray*)list menuList:(NSArray *)memuList withGroup:(dispatch_group_t)group; +- (void)acquireResidenceEncourageChamberSttowardsementAccomplishment:(NSArray *)list withGroup:(dispatch_group_t)group; +- (void)acquireResidenceThermalChamberSttowardsementAccomplishment:(NSArray *)list withGroup:(dispatch_group_t)group; +- (void)acquireResidencesubjectiveChamberSttowardsementAccomplishment:(NSArray *)list withGroup:(dispatch_group_t)group; +- (void)acquireDisportCompetitionAboutSquadAccomplishment:(NSArray *)list withGroup:(dispatch_group_t)group; +- (void)acquireResidenceEncourageTowardsoloudspeakerFlunkAboutGroup:(dispatch_group_t)group; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMNewHome/View/Cell/YUMIResidenceOriflammeTabulationRegardElement.h b/YuMi/Modules/YMNewHome/View/Cell/YUMIResidenceOriflammeTabulationRegardElement.h new file mode 100644 index 00000000..be71d03d --- /dev/null +++ b/YuMi/Modules/YMNewHome/View/Cell/YUMIResidenceOriflammeTabulationRegardElement.h @@ -0,0 +1,26 @@ +// +// YUMIResidenceOriflammeTabulationRegardElement.h +// YuMi +// +// Created by YuMi on 2022/2/21. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class ResidenceOriflammeAbstractMatrix, YUMIResidenceOriflammeTabulationRegardElement; + +@protocol FBCResidenceBannerTabulationViweElementRepresendtation + +- (void)fBCHoutilizeOriflammeTarbsultowardsionViweElement:(YUMIResidenceOriflammeTabulationRegardElement *)view didClickBanner:(ResidenceOriflammeAbstractMatrix *)info; + +@end + +@interface YUMIResidenceOriflammeTabulationRegardElement : UITableViewCell +@property (nonatomic,strong) NSArray *oriflammeStatement; +@property (nonatomic,weak) id delegate; +@property (nonatomic, assign) BOOL isManeRegardOriflamme; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMNewHome/View/Cell/YUMIResidenceOriflammeTabulationRegardElement.m b/YuMi/Modules/YMNewHome/View/Cell/YUMIResidenceOriflammeTabulationRegardElement.m new file mode 100644 index 00000000..cb93a318 --- /dev/null +++ b/YuMi/Modules/YMNewHome/View/Cell/YUMIResidenceOriflammeTabulationRegardElement.m @@ -0,0 +1,90 @@ +// +// YUMIResidenceOriflammeTabulationRegardElement.m +// YuMi +// +// Created by YuMi on 2022/2/21. +// 轮播图 + +#import "YUMIResidenceOriflammeTabulationRegardElement.h" +#import +#import +#import "ResidenceOriflammeAbstractMatrix.h" +#import "NSArray+Safe.h" +#import "UIIndicateConstant.h" +@interface YUMIResidenceOriflammeTabulationRegardElement () +@property (nonatomic, strong) SDCycleScrollView *cycleTrundleRegard; +@end + +@implementation YUMIResidenceOriflammeTabulationRegardElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor]; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.cycleTrundleRegard]; +} + +- (void)initChildLyRestrictions { + [self.cycleTrundleRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.contentView).mas_offset(16); + make.bottom.mas_equalTo(self.contentView); + make.left.right.mas_equalTo(self.contentView).inset(15); + }]; + +} +#pragma mark - SDCycleScrollViewDelegate +- (void)cycleScrollView:(SDCycleScrollView *)cycleScrollView didSelectItemAtIndex:(NSInteger)index { + ResidenceOriflammeAbstractMatrix * bannerInfo = [self.oriflammeStatement secureGroalTowardsIndictowardsrix1:index]; + if (self.delegate && [self.delegate respondsToSelector:@selector(fBCHoutilizeOriflammeTarbsultowardsionViweElement:didClickBanner:)]) { + [self.delegate fBCHoutilizeOriflammeTarbsultowardsionViweElement:self didClickBanner:bannerInfo]; + } +} + +#pragma mark - Getters And Setters +- (void)setOriflammeStatement:(NSArray *)oriflammeStatement { + _oriflammeStatement = oriflammeStatement; + if (_oriflammeStatement.count > 0) { + NSMutableArray * array = [NSMutableArray array]; + [_oriflammeStatement enumerateObjectsUsingBlock:^(ResidenceOriflammeAbstractMatrix * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if (obj.bannerPic.length > 0) { + [array addObject:obj.bannerPic]; + } + }]; + if (array.count > 0) { + self.cycleTrundleRegard.imageURLStringsGroup = array; + [self.cycleTrundleRegard autoScroll]; + } + } +} + +- (void)setIsManeRegardOriflamme:(BOOL)isManeRegardOriflamme { + [self.cycleTrundleRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.top.bottom.mas_equalTo(self.contentView); + }]; +} + +- (SDCycleScrollView *)cycleTrundleRegard { + if (!_cycleTrundleRegard) { + _cycleTrundleRegard = [[SDCycleScrollView alloc] init]; + _cycleTrundleRegard.backgroundColor = [UIColor clearColor]; + _cycleTrundleRegard.layer.cornerRadius = 10; + _cycleTrundleRegard.layer.masksToBounds = YES; + _cycleTrundleRegard.delegate = self; + _cycleTrundleRegard.showPageControl = NO; + _cycleTrundleRegard.autoScrollTimeInterval = 5.0; + _cycleTrundleRegard.bannerImageViewContentMode = UIViewContentModeScaleAspectFill; + _cycleTrundleRegard.placeholderImage = [UIIndicateConstant defalutOriflammeDepapossessor]; + } + return _cycleTrundleRegard; +} + + +@end diff --git a/YuMi/Modules/YMNewHome/View/Cell/YUMIStrangeResidenceDisportDispossessTabulationRegardElement.h b/YuMi/Modules/YMNewHome/View/Cell/YUMIStrangeResidenceDisportDispossessTabulationRegardElement.h new file mode 100644 index 00000000..b4b246b9 --- /dev/null +++ b/YuMi/Modules/YMNewHome/View/Cell/YUMIStrangeResidenceDisportDispossessTabulationRegardElement.h @@ -0,0 +1,26 @@ +// +// YUMIStrangeResidenceDisportDispossessTabulationRegardElement.h +// YuMi +// +// Created by YuMi on 2022/10/8. +// + +#import +#import "CollectiveSpecificAbstractMatrix.h" + +@protocol FBCStrangeResidencePlayEmptyTabulationViweElementRepresendtation + +-(void)prohibitipossessElementConcludeCompetitionPerformance; + +@end + + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIStrangeResidenceDisportDispossessTabulationRegardElement : UITableViewCell +@property (nonatomic,assign) BOOL isClan; +@property (nonatomic,weak) id delegate; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMNewHome/View/Cell/YUMIStrangeResidenceDisportDispossessTabulationRegardElement.m b/YuMi/Modules/YMNewHome/View/Cell/YUMIStrangeResidenceDisportDispossessTabulationRegardElement.m new file mode 100644 index 00000000..36dd2901 --- /dev/null +++ b/YuMi/Modules/YMNewHome/View/Cell/YUMIStrangeResidenceDisportDispossessTabulationRegardElement.m @@ -0,0 +1,125 @@ +// +// YUMIStrangeResidenceDisportDispossessTabulationRegardElement.m +// YuMi +// +// Created by YuMi on 2022/10/8. +// + +#import "YUMIStrangeResidenceDisportDispossessTabulationRegardElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "UIImage+Utils.h" + +@interface YUMIStrangeResidenceDisportDispossessTabulationRegardElement () + +@property (nonatomic,strong) UIImageView *encourageIndicateRegard; +@property (nonatomic,strong) UIImageView *accelerateIndicateRegard; +@property (nonatomic,strong) UILabel *titleLabel; +@property (nonatomic,strong) UIButton *concludeCompetitionBtuton; +@end + +@implementation YUMIStrangeResidenceDisportDispossessTabulationRegardElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.selectionStyle = UITableViewCellSelectionStyleNone; + self.backgroundColor = [UIColor clearColor]; + [self.contentView addSubview:self.encourageIndicateRegard]; + [self.encourageIndicateRegard addSubview:self.accelerateIndicateRegard]; + [self.encourageIndicateRegard addSubview:self.titleLabel]; + [self.contentView addSubview:self.concludeCompetitionBtuton]; +} + +- (void)initChildLyRestrictions { + [self.encourageIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.left.mas_equalTo(self.contentView).inset(15); + make.top.bottom.mas_equalTo(self.contentView); + }]; + + [self.accelerateIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(48, 48)); + make.left.mas_equalTo(self.encourageIndicateRegard).offset(12); + make.centerY.mas_equalTo(self.encourageIndicateRegard); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.accelerateIndicateRegard.mas_right).offset(15); + make.right.equalTo(self.encourageIndicateRegard.mas_right).mas_offset(-12); + make.centerY.mas_equalTo(self.encourageIndicateRegard); + }]; + [self.concludeCompetitionBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(-11); + make.width.mas_equalTo(120); + make.top.bottom.equalTo(self.contentView); + }]; +} +-(void)concludeCompetitionPerformance{ + if(self.delegate && [self.delegate respondsToSelector:@selector(prohibitipossessElementConcludeCompetitionPerformance)]){ + [self.delegate prohibitipossessElementConcludeCompetitionPerformance]; + } +} + +-(void)setIsClan:(BOOL)isClan{ + _isClan = isClan; + if(_isClan == NO){ + _concludeCompetitionBtuton.hidden = NO; + [self.encourageIndicateRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(-141); + }]; + return; + } + _concludeCompetitionBtuton.hidden = YES; + [self.encourageIndicateRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(-15); + }]; +} +#pragma mark - Getters And Setters + +- (UIImageView *)accelerateIndicateRegard { + if (!_accelerateIndicateRegard) { + _accelerateIndicateRegard = [[UIImageView alloc] init]; + _accelerateIndicateRegard.userInteractionEnabled = YES; + _accelerateIndicateRegard.image = [UIImage imageNamed:@"home_play_create_room"]; + } + return _accelerateIndicateRegard; +} + +- (UIImageView *)encourageIndicateRegard { + if (!_encourageIndicateRegard) { + _encourageIndicateRegard = [[UIImageView alloc] init]; + _encourageIndicateRegard.image = [UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor colorAboutHexBWSttr:@"#E7D7FC"], [DJDKMIMOMColor colorAboutHexBWSttr:@"#D7F8FD"]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)]; + _encourageIndicateRegard.layer.masksToBounds = YES; + _encourageIndicateRegard.layer.cornerRadius = 10; + _encourageIndicateRegard.contentMode = UIViewContentModeScaleAspectFill; + } + return _encourageIndicateRegard; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.font = [UIFont systemFontOfSize:15]; + _titleLabel.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _titleLabel.numberOfLines = 0; + _titleLabel.text = YMLocalizedString(@"YUMI_New_Home_Play_Empty_Table_View_Cell_0"); + } + return _titleLabel; +} +- (UIButton *)concludeCompetitionBtuton{ + if (!_concludeCompetitionBtuton){ + _concludeCompetitionBtuton = [UIButton new]; + [_concludeCompetitionBtuton setBackgroundImage:[UIImage imageNamed:@"home_play_game"] forState:UIControlStateNormal]; + [_concludeCompetitionBtuton addTarget:self action:@selector(concludeCompetitionPerformance) forControlEvents:UIControlEventTouchUpInside]; + _concludeCompetitionBtuton.hidden = YES; + } + return _concludeCompetitionBtuton; +} +@end diff --git a/YuMi/Modules/YMNewHome/View/Cell/YUMIStrangeResidenceDisportProvisionAssembletionRegardElement.h b/YuMi/Modules/YMNewHome/View/Cell/YUMIStrangeResidenceDisportProvisionAssembletionRegardElement.h new file mode 100644 index 00000000..14a72f85 --- /dev/null +++ b/YuMi/Modules/YMNewHome/View/Cell/YUMIStrangeResidenceDisportProvisionAssembletionRegardElement.h @@ -0,0 +1,16 @@ +// +// YUMIStrangeResidenceDisportProvisionAssembletionRegardElement.h +// YuMi +// +// Created by YuMi on 2022/10/8. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class ResidenceDisportChamberMatrix; +@interface YUMIStrangeResidenceDisportProvisionAssembletionRegardElement : UICollectionViewCell +@property (nonatomic,strong) ResidenceDisportChamberMatrix *roomInfo; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMNewHome/View/Cell/YUMIStrangeResidenceDisportProvisionAssembletionRegardElement.m b/YuMi/Modules/YMNewHome/View/Cell/YUMIStrangeResidenceDisportProvisionAssembletionRegardElement.m new file mode 100644 index 00000000..c2d315e8 --- /dev/null +++ b/YuMi/Modules/YMNewHome/View/Cell/YUMIStrangeResidenceDisportProvisionAssembletionRegardElement.m @@ -0,0 +1,78 @@ +// +// YUMIStrangeResidenceDisportProvisionAssembletionRegardElement.m +// YuMi +// +// Created by YuMi on 2022/10/8. +// + +#import "YUMIStrangeResidenceDisportProvisionAssembletionRegardElement.h" +#import +#import "NetIndicateRegard.h" +#import "ResidenceDisportChamberMatrix.h" + +@interface YUMIStrangeResidenceDisportProvisionAssembletionRegardElement () +@property (nonatomic,strong) UIImageView *borderIndicateRegard; +@property (nonatomic,strong) NetIndicateRegard *intelligenceportraitIndicateRegard; +@end + +@implementation YUMIStrangeResidenceDisportProvisionAssembletionRegardElement + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.contentView.backgroundColor = [UIColor clearColor]; + [self.contentView addSubview:self.borderIndicateRegard]; + [self.contentView addSubview:self.intelligenceportraitIndicateRegard]; +} + +- (void)initChildLyRestrictions { + [self.borderIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.contentView); + }]; + + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(52, 52)); + make.center.mas_equalTo(self.borderIndicateRegard); + }]; +} + +#pragma mark - Getters And Setters +- (void)setRoomInfo:(ResidenceDisportChamberMatrix *)roomInfo { + _roomInfo = roomInfo; + if (_roomInfo != nil) { + self.intelligenceportraitIndicateRegard.imageUrl = _roomInfo.avatar; + self.borderIndicateRegard.image = _roomInfo.gender == GenderGenre_Male ? [UIImage imageNamed:@"yumi_main_play_male_border"] : [UIImage imageNamed:@"yumi_main_play_female_border"]; + } +} + +- (UIImageView *)borderIndicateRegard { + if (!_borderIndicateRegard) { + _borderIndicateRegard = [[UIImageView alloc] init]; + _borderIndicateRegard.userInteractionEnabled = YES; + } + return _borderIndicateRegard; +} + +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _intelligenceportraitIndicateRegard.layer.cornerRadius = 52/2; + _intelligenceportraitIndicateRegard.layer.borderColor = [UIColor whiteColor].CGColor; + _intelligenceportraitIndicateRegard.layer.borderWidth = 1; + } + return _intelligenceportraitIndicateRegard; +} + +@end diff --git a/YuMi/Modules/YMNewHome/View/Cell/YUMIStrangeResidenceDisportTabulationRegardElement.h b/YuMi/Modules/YMNewHome/View/Cell/YUMIStrangeResidenceDisportTabulationRegardElement.h new file mode 100644 index 00000000..f69b062b --- /dev/null +++ b/YuMi/Modules/YMNewHome/View/Cell/YUMIStrangeResidenceDisportTabulationRegardElement.h @@ -0,0 +1,27 @@ +// +// YUMIStrangeResidenceDisportTabulationRegardElement.h +// YuMi +// +// Created by YuMi on 2022/10/8. +// + +#import +#import "CollectiveSpecificAbstractMatrix.h" + +NS_ASSUME_NONNULL_BEGIN +@class ResidenceDisportChamberMatrix, YUMIStrangeResidenceDisportTabulationRegardElement; +@protocol FBCStrangeResidencePlayTabulationViweElementRepresendtation + +- (void)yUMIStrangeResidenceDisportTarbsultowardsionViweElement:(YUMIStrangeResidenceDisportTabulationRegardElement *)cell didSelectItem:(ResidenceDisportChamberMatrix *)info; +-(void)concludeCompetitionPerformance; +@end + +@interface YUMIStrangeResidenceDisportTabulationRegardElement : UITableViewCell + +@property (nonatomic,strong) NSArray *disportChamberStatement; + +@property (nonatomic,assign) BOOL isClan; +@property (nonatomic,weak) id delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMNewHome/View/Cell/YUMIStrangeResidenceDisportTabulationRegardElement.m b/YuMi/Modules/YMNewHome/View/Cell/YUMIStrangeResidenceDisportTabulationRegardElement.m new file mode 100644 index 00000000..abda0761 --- /dev/null +++ b/YuMi/Modules/YMNewHome/View/Cell/YUMIStrangeResidenceDisportTabulationRegardElement.m @@ -0,0 +1,124 @@ +// +// YUMIStrangeResidenceDisportTabulationRegardElement.m +// YuMi +// +// Created by YuMi on 2022/10/8. +// + +#import "YUMIStrangeResidenceDisportTabulationRegardElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "NetIndicateRegard.h" +#import "NSArray+Safe.h" +#import "YUMIStrangeResidenceDisportProvisionAssembletionRegardElement.h" + +@interface YUMIStrangeResidenceDisportTabulationRegardElement () +@property (nonatomic,strong) UICollectionView *collectionView; +@property (nonatomic,strong) UIButton *concludeCompetitionBtuton; + +@end +@implementation YUMIStrangeResidenceDisportTabulationRegardElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} +-(void)setIsClan:(BOOL)isClan{ + _isClan = isClan; + if(_isClan == NO){ + _concludeCompetitionBtuton.hidden = NO; + [_collectionView mas_updateConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(-141); + }]; + return; + } + _concludeCompetitionBtuton.hidden = YES; + [_collectionView mas_updateConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(0); + }]; + +} + +-(void)concludeCompetitionPerformance{ + if(self.delegate && [self.delegate respondsToSelector:@selector(concludeCompetitionPerformance)]){ + [self.delegate concludeCompetitionPerformance]; + } +} +#pragma mark - Private Method +- (void)initSubViews { + self.selectionStyle = UITableViewCellSelectionStyleNone; + self.backgroundColor = [UIColor clearColor]; + [self.contentView addSubview:self.collectionView]; + [self.contentView addSubview:self.concludeCompetitionBtuton]; +} + +- (void)initChildLyRestrictions { + [self.collectionView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.top.bottom.mas_equalTo(self.contentView); + make.right.mas_equalTo(-136); + }]; + [self.concludeCompetitionBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(-11); + make.width.mas_equalTo(120); + make.top.bottom.equalTo(self.collectionView); + }]; +} + +-(void)setDisportChamberStatement:(NSArray *)disportChamberStatement{ + _disportChamberStatement = disportChamberStatement; + [self.collectionView reloadData]; +} +#pragma mark - UICollectionViewDelegate, UICollectionViewDataSource +- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { + + return self.disportChamberStatement.count; +} + +- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { + YUMIStrangeResidenceDisportProvisionAssembletionRegardElement * cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([YUMIStrangeResidenceDisportProvisionAssembletionRegardElement class]) forIndexPath:indexPath]; + + cell.roomInfo = [self.disportChamberStatement secureGroalTowardsIndictowardsrix1:indexPath.row]; + return cell; +} + +- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath { + [collectionView deselectItemAtIndexPath:indexPath animated:YES]; + if (self.disportChamberStatement.count > 0) { + ResidenceDisportChamberMatrix * roomInfo = [self.disportChamberStatement secureGroalTowardsIndictowardsrix1:indexPath.row]; + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIStrangeResidenceDisportTarbsultowardsionViweElement:didSelectItem:)]) { + [self.delegate yUMIStrangeResidenceDisportTarbsultowardsionViweElement:self didSelectItem:roomInfo]; + } + } +} + + +#pragma mark - Getters And Setters +- (UICollectionView *)collectionView{ + if (!_collectionView) { + UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init]; + layout.itemSize = CGSizeMake(63, 63); + layout.sectionInset = UIEdgeInsetsMake(0, 15, 0, 15); + layout.minimumLineSpacing = 15; + layout.scrollDirection = UICollectionViewScrollDirectionHorizontal; + _collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout]; + _collectionView.dataSource = self; + _collectionView.delegate = self; + _collectionView.backgroundColor = [UIColor clearColor]; + [_collectionView registerClass:[YUMIStrangeResidenceDisportProvisionAssembletionRegardElement class] forCellWithReuseIdentifier:NSStringFromClass([YUMIStrangeResidenceDisportProvisionAssembletionRegardElement class])]; + } + return _collectionView; +} +- (UIButton *)concludeCompetitionBtuton{ + if (!_concludeCompetitionBtuton){ + _concludeCompetitionBtuton = [UIButton new]; + [_concludeCompetitionBtuton setBackgroundImage:[UIImage imageNamed:@"home_play_game"] forState:UIControlStateNormal]; + [_concludeCompetitionBtuton addTarget:self action:@selector(concludeCompetitionPerformance) forControlEvents:UIControlEventTouchUpInside]; + _concludeCompetitionBtuton.hidden = YES; + } + return _concludeCompetitionBtuton; +} + +@end diff --git a/YuMi/Modules/YMNewHome/View/Cell/YUMIStrangeResidenceEncourageTabulationRegardElement.h b/YuMi/Modules/YMNewHome/View/Cell/YUMIStrangeResidenceEncourageTabulationRegardElement.h new file mode 100644 index 00000000..ca493d51 --- /dev/null +++ b/YuMi/Modules/YMNewHome/View/Cell/YUMIStrangeResidenceEncourageTabulationRegardElement.h @@ -0,0 +1,26 @@ +// +// YUMIStrangeResidenceEncourageTabulationRegardElement.h +// YuMi +// +// Created by YuMi on 2022/10/8. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class YUMIStrangeResidenceEncourageTabulationRegardElement, ResidenceEncourageChamberMatrix; +@protocol FBCStrangeResidenceEncourageTabulationViweElementRepresendtation + +- (void)yUMIStrangeResidenceEncourageTarbsultowardsionViweElement:(YUMIStrangeResidenceEncourageTabulationRegardElement *)view didSelectItem:(ResidenceEncourageChamberMatrix *)info; + +@end + +@interface YUMIStrangeResidenceEncourageTabulationRegardElement : UITableViewCell + +- (void)setEncouragesSttowardsement:(NSArray *)recommends; + + +@property (nonatomic,weak) id delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMNewHome/View/Cell/YUMIStrangeResidenceEncourageTabulationRegardElement.m b/YuMi/Modules/YMNewHome/View/Cell/YUMIStrangeResidenceEncourageTabulationRegardElement.m new file mode 100644 index 00000000..ab9e4055 --- /dev/null +++ b/YuMi/Modules/YMNewHome/View/Cell/YUMIStrangeResidenceEncourageTabulationRegardElement.m @@ -0,0 +1,246 @@ +// +// YUMIStrangeResidenceEncourageTabulationRegardElement.m +// YuMi +// +// Created by YuMi on 2022/10/8. +// + +#import "YUMIStrangeResidenceEncourageTabulationRegardElement.h" +#import +#import +#import "NetIndicateRegard.h" +#import "YUMIMacroUitls.h" +#import "DJDKMIMOMColor.h" +#import "NSArray+Safe.h" +#import "ResidenceEncourageChamberMatrix.h" + +@interface YUMICycleScrollRegardElement : GKCycleScrollViewCell +@property (nonatomic,strong) NetIndicateRegard *intelligenceportraitIndicateRegard; +@property (nonatomic,strong) NetIndicateRegard *coupleIndicateRegard; +@property (nonatomic,strong) UILabel *coupleChampionRegard; + +@property (nonatomic,strong) UILabel *titleLabel; +@property (nonatomic,assign) BOOL isCimportRegard; +@property (nonatomic,strong) ResidenceEncourageChamberMatrix *encourageChamberAbstract; + +@end + +@implementation YUMICycleScrollRegardElement + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + + +#pragma mark - Private Method +- (void)initSubViews { + self.coverView.hidden = YES; + self.backgroundColor = [UIColor clearColor]; + [self addSubview:self.intelligenceportraitIndicateRegard]; + [self addSubview:self.coupleIndicateRegard]; + [self.coupleIndicateRegard addSubview:self.coupleChampionRegard]; + [self addSubview:self.titleLabel]; + +} + +- (void)initChildLyRestrictions { + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self); + make.top.mas_equalTo(10 * kScreenScale); + make.width.height.mas_equalTo(123 * kScreenScale); + }]; + + [self.coupleIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(18 * kScreenScale); + make.width.mas_greaterThanOrEqualTo(10); + make.left.top.mas_equalTo(self.intelligenceportraitIndicateRegard); + }]; + + [self.coupleChampionRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(7 * kScreenScale); + make.right.mas_equalTo(-7 * kScreenScale); + make.top.bottom.equalTo(self.coupleIndicateRegard); + }]; + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.intelligenceportraitIndicateRegard); + make.top.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_bottom).offset(10 * kScreenScale); + }]; +} +- (void)setIsCimportRegard:(BOOL)isCimportRegard{ + _isCimportRegard = isCimportRegard; + if(_isCimportRegard == YES){ + [self.intelligenceportraitIndicateRegard.superview layoutIfNeeded]; + [UIView animateWithDuration:0.5 animations:^{ + + [self.intelligenceportraitIndicateRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.width.height.mas_equalTo(123 * kScreenScale); + make.top.mas_equalTo(10 * kScreenScale); + }]; + self.intelligenceportraitIndicateRegard.layer.cornerRadius = 11; + + self.titleLabel.font = [UIFont systemFontOfSize:13 weight:UIFontWeightMedium]; + [self.intelligenceportraitIndicateRegard.superview layoutIfNeeded]; + }]; + + return; + } + [self.intelligenceportraitIndicateRegard.superview layoutIfNeeded]; + [UIView animateWithDuration:0.5 animations:^{ + self.intelligenceportraitIndicateRegard.layer.cornerRadius = 8; + [self.intelligenceportraitIndicateRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.width.height.mas_equalTo(100 * kScreenScale); + make.top.mas_equalTo(22 * kScreenScale); + }]; + self.titleLabel.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium]; + [self.intelligenceportraitIndicateRegard.superview layoutIfNeeded]; + }]; + +} +#pragma mark - Getters And Setters +- (void)setEncourageChamberAbstract:(ResidenceEncourageChamberMatrix *)encourageChamberAbstract { + _encourageChamberAbstract = encourageChamberAbstract; + if (_encourageChamberAbstract) { + self.intelligenceportraitIndicateRegard.imageUrl = _encourageChamberAbstract.avatar; + self.titleLabel.text = _encourageChamberAbstract.title; + self.coupleChampionRegard.hidden = YES; + self.coupleIndicateRegard.hidden = YES; + if(_encourageChamberAbstract.iconContent.length > 0){ + self.coupleChampionRegard.text = _encourageChamberAbstract.iconContent; + self.coupleChampionRegard.hidden = NO; + self.coupleIndicateRegard.hidden = NO; + } + + } +} + +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreMonentsPhoto; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _intelligenceportraitIndicateRegard.layer.cornerRadius = 11; + _intelligenceportraitIndicateRegard.contentMode = UIViewContentModeScaleAspectFill; + } + return _intelligenceportraitIndicateRegard; +} +-(NetIndicateRegard *)coupleIndicateRegard{ + if (!_coupleIndicateRegard){ + _coupleIndicateRegard = [[NetIndicateRegard alloc]init]; + _coupleIndicateRegard.image = [UIImage imageNamed:@"monents_common_room_tag"]; + + } + return _coupleIndicateRegard; +} +- (UILabel *)coupleChampionRegard{ + if (!_coupleChampionRegard){ + _coupleChampionRegard = [UILabel new]; + _coupleChampionRegard.font = [UIFont systemFontOfSize:11 weight:UIFontWeightMedium]; + _coupleChampionRegard.textColor = [UIColor whiteColor]; + } + return _coupleChampionRegard; +} +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium]; + _titleLabel.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _titleLabel.textAlignment = NSTextAlignmentCenter; + } + return _titleLabel; +} + +@end + + +@interface YUMIStrangeResidenceEncourageTabulationRegardElement () + +@property (nonatomic,strong) GKCycleScrollView *scrollView; +@property (nonatomic,strong) NSArray *recommends; +@end + +@implementation YUMIStrangeResidenceEncourageTabulationRegardElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.selectionStyle = UITableViewCellSelectionStyleNone; + self.backgroundColor = [UIColor clearColor]; + self.scrollView = [[GKCycleScrollView alloc] initWithFrame:CGRectZero]; + self.scrollView.delegate = self; + self.scrollView.leftRightMargin = 0.0f; + self.scrollView.topBottomMargin = 0.0f; + self.scrollView.dataSource = self; + [self.contentView addSubview:self.scrollView]; +} + +- (void)initChildLyRestrictions { + [self.scrollView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.contentView).inset(15 * kScreenScale); + make.top.mas_equalTo(self.contentView); + make.bottom.mas_equalTo(self.contentView); + }]; +} +- (NSInteger)numberOfCellsInCycleScrollView:(GKCycleScrollView *)cycleScrollView { + return self.recommends.count; +} + +- (GKCycleScrollViewCell *)cycleScrollView:(GKCycleScrollView *)cycleScrollView cellForViewAtIndex:(NSInteger)index { + YUMICycleScrollRegardElement * cell = cycleScrollView.dequeueReusableCell; + if (!cell) { + cell = [[YUMICycleScrollRegardElement alloc] init]; + } + + ResidenceEncourageChamberMatrix * info = [self.recommends secureGroalTowardsIndictowardsrix1:index]; + cell.encourageChamberAbstract = info; + cell.isCimportRegard = index == self.scrollView.currentSelectIndex; + return cell; +} +- (void)cycleScrollView:(GKCycleScrollView *)cycleScrollView didScrollCellToIndex:(NSInteger)index{ + + ResidenceEncourageChamberMatrix * info = [self.recommends secureGroalTowardsIndictowardsrix1:index]; + NSLog(@"%@",info.title); + + UIView *view = cycleScrollView.subviews[0]; + for (YUMICycleScrollRegardElement * cell in view.subviews) { + cell.isCimportRegard = [cell.encourageChamberAbstract.title isEqual:info.title]; + } + +} +- (void)cycleScrollView:(GKCycleScrollView *)cycleScrollView didSelectCellAtIndex:(NSInteger)index { + if(self.recommends.count > 0 && index < self.recommends.count) { + ResidenceEncourageChamberMatrix * info = [self.recommends secureGroalTowardsIndictowardsrix1:index]; + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIStrangeResidenceEncourageTarbsultowardsionViweElement:didSelectItem:)]) { + [self.delegate yUMIStrangeResidenceEncourageTarbsultowardsionViweElement:self didSelectItem:info]; + } + } +} + +- (CGSize)sizeForCellInCycleScrollView:(GKCycleScrollView *)cycleScrollView { + return CGSizeMake(123 * kScreenScale, 160 * kScreenScale); +} +#pragma mark - Getters And Setters +- (void)setEncouragesSttowardsement:(NSArray *)recommends{ + if(recommends.count == self.recommends.count){ + return; + } + self.recommends = recommends; + [self.scrollView reloadData]; +} + + + +@end diff --git a/YuMi/Modules/YMNewHome/View/Cell/YUMIStrangeResidenceParatiesTabulationRegardElement.h b/YuMi/Modules/YMNewHome/View/Cell/YUMIStrangeResidenceParatiesTabulationRegardElement.h new file mode 100644 index 00000000..2b7bb03a --- /dev/null +++ b/YuMi/Modules/YMNewHome/View/Cell/YUMIStrangeResidenceParatiesTabulationRegardElement.h @@ -0,0 +1,18 @@ +// +// YUMIStrangeResidenceParatiesTabulationRegardElement.h +// YuMi +// +// Created by YuMi on 2022/10/8. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class ResidenceDisportChamberMatrix, ResidenceEncourageChamberMatrix; +@interface YUMIStrangeResidenceParatiesTabulationRegardElement : UITableViewCell +@property (nonatomic,strong) ResidenceDisportChamberMatrix *roomInfo; + +@property (nonatomic,strong) ResidenceEncourageChamberMatrix *chamberAbstract1; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMNewHome/View/Cell/YUMIStrangeResidenceParatiesTabulationRegardElement.m b/YuMi/Modules/YMNewHome/View/Cell/YUMIStrangeResidenceParatiesTabulationRegardElement.m new file mode 100644 index 00000000..fb8c639f --- /dev/null +++ b/YuMi/Modules/YMNewHome/View/Cell/YUMIStrangeResidenceParatiesTabulationRegardElement.m @@ -0,0 +1,225 @@ +// +// YUMIStrangeResidenceParatiesTabulationRegardElement.m +// YuMi +// +// Created by YuMi on 2022/10/8. +// + +#import "YUMIStrangeResidenceParatiesTabulationRegardElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "NetIndicateRegard.h" +#import "ResidenceDisportChamberMatrix.h" +#import "ResidenceEncourageChamberMatrix.h" + + + + +@interface YUMIStrangeResidenceParatiesTabulationRegardElement () +@property (nonatomic,strong) UIImageView *crossCombateIndicateRegard; +@property (nonatomic,strong) NetIndicateRegard *intelligenceportraitIndicateRegard; +@property (nonatomic,strong) UIView *backgroundRegard; +@property (nonatomic,strong) UILabel *titleLabel; +@property (nonatomic,strong) NetIndicateRegard *coupleIndicateRegard; +@property (nonatomic,strong) UILabel *idSequencignation; +@property (nonatomic,strong) UIImageView *digitalIndicateRegard; +@property (nonatomic,strong) UILabel *numberLabel; + +@end + +@implementation YUMIStrangeResidenceParatiesTabulationRegardElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.selectionStyle = UITableViewCellSelectionStyleNone; + self.backgroundColor = [UIColor clearColor]; + [self.contentView addSubview:self.backgroundRegard]; + [self.contentView addSubview:self.intelligenceportraitIndicateRegard]; + [self.contentView addSubview:self.crossCombateIndicateRegard]; + + [self.backgroundRegard addSubview:self.titleLabel]; + [self.backgroundRegard addSubview:self.coupleIndicateRegard]; + [self.backgroundRegard addSubview:self.idSequencignation]; + [self.backgroundRegard addSubview:self.numberLabel]; + [self.backgroundRegard addSubview:self.digitalIndicateRegard]; + +} + +- (void)initChildLyRestrictions { + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(74, 74)); + make.centerY.mas_equalTo(self.backgroundRegard); + make.left.mas_equalTo(self.contentView).offset(15); + }]; + + [self.crossCombateIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.intelligenceportraitIndicateRegard); + }]; + + [self.backgroundRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.contentView).offset(36); + make.right.mas_equalTo(self.contentView).offset(-15); + make.top.mas_equalTo(self.contentView); + make.bottom.mas_equalTo(self.contentView).offset(-12); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.backgroundRegard).offset(65); + make.bottom.mas_equalTo(self.backgroundRegard.mas_centerY).offset(-8); + make.right.lessThanOrEqualTo(self.digitalIndicateRegard.mas_left).offset(-10); + }]; + + [self.coupleIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(32, 15)); + make.left.mas_equalTo(self.titleLabel); + make.top.mas_equalTo(self.backgroundRegard.mas_centerY).offset(8); + }]; + + [self.idSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(65); + make.centerY.mas_equalTo(self.coupleIndicateRegard); + }]; + + [self.numberLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self.backgroundRegard).offset(-12); + make.centerY.mas_equalTo(self.titleLabel); + }]; + + [self.digitalIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(18, 18)); + make.right.mas_equalTo(self.numberLabel.mas_left).offset(-2); + make.centerY.mas_equalTo(self.numberLabel); + }]; +} + +#pragma mark - Getters And Setters +- (void)setRoomInfo:(ResidenceDisportChamberMatrix *)roomInfo { + _roomInfo = roomInfo; + if (_roomInfo) { + self.crossCombateIndicateRegard.hidden = !_roomInfo.crossPking; + self.intelligenceportraitIndicateRegard.imageUrl = _roomInfo.avatar; + self.titleLabel.text = _roomInfo.title; + if (_roomInfo.tagPict.length > 0){ + self.coupleIndicateRegard.imageUrl = _roomInfo.tagPict; + self.coupleIndicateRegard.hidden = NO; + [self.idSequencignation mas_updateConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(106); + }]; + }else{ + self.coupleIndicateRegard.hidden = YES; + [self.idSequencignation mas_updateConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(65); + }]; + } + + self.idSequencignation.text = [NSString stringWithFormat:@"ID:%@", _roomInfo.erbanNo]; + self.numberLabel.text = [NSString stringWithFormat:@"%ld", _roomInfo.onlineNum]; + } +} + +- (void)setChamberAbstract1:(ResidenceEncourageChamberMatrix *)chamberAbstract1 { + _chamberAbstract1 = chamberAbstract1; + if (_chamberAbstract1) { + self.crossCombateIndicateRegard.hidden = !_chamberAbstract1.crossPking; + self.intelligenceportraitIndicateRegard.imageUrl = _chamberAbstract1.avatar; + self.titleLabel.text = _chamberAbstract1.title; + if (_chamberAbstract1.tagPict.length > 0){ + self.coupleIndicateRegard.imageUrl = _chamberAbstract1.tagPict; + self.coupleIndicateRegard.hidden = NO; + [self.idSequencignation mas_updateConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(106); + }]; + }else{ + self.coupleIndicateRegard.hidden = YES; + [self.idSequencignation mas_updateConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(65); + }]; + } + self.idSequencignation.text = [NSString stringWithFormat:@"ID:%@", _chamberAbstract1.erbanNo]; + self.numberLabel.text = [NSString stringWithFormat:@"%ld", _chamberAbstract1.onlineNum]; + } +} + +- (UIImageView *)crossCombateIndicateRegard { + if (!_crossCombateIndicateRegard) { + _crossCombateIndicateRegard = [[UIImageView alloc] init]; + _crossCombateIndicateRegard.userInteractionEnabled = YES; + _crossCombateIndicateRegard.image = [UIImage imageNamed:@"home_cross_pk"]; + } + return _crossCombateIndicateRegard; +} + +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _intelligenceportraitIndicateRegard.layer.cornerRadius = 74/2; + } + return _intelligenceportraitIndicateRegard; +} + +- (UIView *)backgroundRegard { + if (!_backgroundRegard) { + _backgroundRegard = [[UIView alloc] init]; + _backgroundRegard.backgroundColor = [DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify]; + _backgroundRegard.layer.masksToBounds = YES; + _backgroundRegard.layer.cornerRadius = 14; + } + return _backgroundRegard; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.font = [UIFont systemFontOfSize:15]; + _titleLabel.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _titleLabel; +} + +- (NetIndicateRegard *)coupleIndicateRegard { + if (!_coupleIndicateRegard) { + _coupleIndicateRegard = [[NetIndicateRegard alloc] init]; + } + return _coupleIndicateRegard; +} + +- (UILabel *)idSequencignation { + if (!_idSequencignation) { + _idSequencignation = [[UILabel alloc] init]; + _idSequencignation.font = [UIFont systemFontOfSize:13]; + _idSequencignation.textColor = [DJDKMIMOMColor instantEssayPrettify]; + } + return _idSequencignation; +} + +- (UIImageView *)digitalIndicateRegard { + if (!_digitalIndicateRegard) { + _digitalIndicateRegard = [[UIImageView alloc] init]; + _digitalIndicateRegard.userInteractionEnabled = YES; + _digitalIndicateRegard.image = [UIImage imageNamed:@"yumi_main_party_number"]; + } + return _digitalIndicateRegard; +} + +- (UILabel *)numberLabel { + if (!_numberLabel) { + _numberLabel = [[UILabel alloc] init]; + _numberLabel.font = [UIFont systemFontOfSize:13]; + _numberLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + } + return _numberLabel; +} + +@end diff --git a/YuMi/Modules/YMNewHome/View/CustomView/YUMINoteRegard.h b/YuMi/Modules/YMNewHome/View/CustomView/YUMINoteRegard.h new file mode 100644 index 00000000..e2506f55 --- /dev/null +++ b/YuMi/Modules/YMNewHome/View/CustomView/YUMINoteRegard.h @@ -0,0 +1,23 @@ +// +// YMNoteView.h +// YUMI +// +// Created by YUMI on 2021/11/29. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMINoteRegard : UIView + +- (void)startAnimation; + +- (void) stopAnimation; + +@property (assign, nonatomic) CGFloat pillarExtents; + +@property (strong, nonatomic) UIColor * pillarPrettify; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMNewHome/View/CustomView/YUMINoteRegard.m b/YuMi/Modules/YMNewHome/View/CustomView/YUMINoteRegard.m new file mode 100644 index 00000000..7e699d90 --- /dev/null +++ b/YuMi/Modules/YMNewHome/View/CustomView/YUMINoteRegard.m @@ -0,0 +1,167 @@ +// +// YMNoteView.m +// YUMI +// +// Created by YUMI on 2021/11/29. +// + +#import "YUMINoteRegard.h" + +@interface YUMINoteRegard () { + BOOL _isAnimatoning; + NSArray *_animationLayers; +} + +@end + +@implementation YUMINoteRegard + +#pragma mark - Life cycle +- (instancetype)initWithFrame:(CGRect)frame +{ + self = [super initWithFrame:frame]; + if (self) { + [self commonInit]; + } + return self; +} + +- (instancetype)initWithCoder:(NSCoder *)coder +{ + self = [super initWithCoder:coder]; + if (self) { + [self commonInit]; + } + return self; +} + +- (void) commonInit { + + self.backgroundColor = [UIColor clearColor]; + self.pillarExtents = 2; + self.pillarPrettify = [UIColor redColor]; + _isAnimatoning = NO; + + + NSMutableArray *animationLayers = [NSMutableArray arrayWithCapacity:3]; + for (int i = 0; i < 3; i ++) { + CAShapeLayer *layer = [[CAShapeLayer alloc] init]; + layer.fillColor = [UIColor clearColor].CGColor; + layer.strokeColor = self.pillarPrettify.CGColor; + layer.masksToBounds = YES; + layer.cornerRadius = 1; + [self.layer addSublayer:layer]; + + [animationLayers addObject:layer]; + } + _animationLayers = [NSArray arrayWithArray:animationLayers]; +} + +- (void) layoutSubviews { + [super layoutSubviews]; + + + for (CAShapeLayer *layer in _animationLayers) { + layer.frame = self.bounds; + } + [self refurbishBrectifynessRoute]; +} + +#pragma mark - Update Path +- (void) refurbishBrectifynessRoute { + + CGFloat height = CGRectGetHeight(self.frame); + NSArray * pillarHeighs = @[@(height * 0.8),@(height),@(height*0.7),@(height*0.9)]; + NSInteger pillarNumber = pillarHeighs.count; + NSInteger pillarExtents = self.pillarExtents; + NSInteger margin = (CGRectGetWidth(self.frame) - pillarNumber * pillarExtents) / (pillarNumber - 1); + + for (int i = 0; i < _animationLayers.count; i ++) { + CAShapeLayer *layer = _animationLayers[i]; + CGFloat pillarHeight = [pillarHeighs[i] floatValue]; + CGFloat x = pillarExtents + (pillarExtents + margin) * i; + CGPoint startPoint = CGPointMake(x, CGRectGetHeight(self.frame)); + CGPoint toPoint = CGPointMake(x, height - pillarHeight); + + UIBezierPath * path = [UIBezierPath bezierPath]; + [path moveToPoint:startPoint]; + [path addLineToPoint:toPoint]; + + layer.path = path.CGPath; + } + + if (_isAnimatoning) { + [self startAnimation]; + } +} + + +#pragma mark - Setter and getter +- (void)setPillarExtents:(CGFloat)pillarExtents { + if (_pillarExtents == pillarExtents) { + return; + } + _pillarExtents = pillarExtents; + for (CAShapeLayer * layer in _animationLayers) { + layer.lineWidth = self.pillarExtents; + layer.cornerRadius = self.pillarExtents/2; + } +} + + +- (void)setPillarPrettify:(UIColor *)pillarPrettify { + if (_pillarPrettify == pillarPrettify) { + return; + } + _pillarPrettify = pillarPrettify; + for (CAShapeLayer * layer in _animationLayers) { + layer.strokeColor = self.pillarPrettify.CGColor; + } +} + +#pragma mark - Public method +- (void) startAnimation { + + _isAnimatoning = YES; + + + for (CAShapeLayer * layer in _animationLayers) { + [layer removeAllAnimations]; + } + + + + NSArray * values = @[ + @[@1.0, @0.5, @0.1, @0.4, @0.7, @0.9, @1.0], + @[@1.0, @0.8, @0.5, @0.1, @0.5, @0.7, @1.0], + @[@1.0, @0.7, @0.4, @0.4, @0.7, @0.9, @1.0] + ]; + + NSArray * dutions = @[@(0.8),@(0.9),@(1.0)]; + + int i = 0; + for (CAShapeLayer * layer in _animationLayers) { + CAKeyframeAnimation * animation = [CAKeyframeAnimation animationWithKeyPath:@"strokeEnd"]; + animation.values = values[i]; + animation.duration = [dutions[i] floatValue]; + animation.repeatCount = HUGE_VAL; + animation.removedOnCompletion = NO; + animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; + [layer addAnimation:animation forKey:@"ESSEQAnimation"]; + i ++; + } +} + +- (void) stopAnimation { + _isAnimatoning = NO; + + for (CAShapeLayer * layer in _animationLayers) { + [layer removeAllAnimations]; + } +} + +- (void)dealloc{ + [self stopAnimation]; +} + +@end diff --git a/YuMi/Modules/YMNewHome/View/CustomView/YUMIResidenceConsumerRegard.h b/YuMi/Modules/YMNewHome/View/CustomView/YUMIResidenceConsumerRegard.h new file mode 100644 index 00000000..a243f354 --- /dev/null +++ b/YuMi/Modules/YMNewHome/View/CustomView/YUMIResidenceConsumerRegard.h @@ -0,0 +1,26 @@ +// +// YMHomeUserView.h +// YUMI +// +// Created by XY on 2023/2/17. +// + +#import + +@class ResidenceEncourageChamberMatrix; + +NS_ASSUME_NONNULL_BEGIN + +@protocol FBCResidenceConsumerRegardRepresendtation +- (void)consumerRegardTicktackPerformance:(ResidenceEncourageChamberMatrix *)model; + +@end + +@interface YUMIResidenceConsumerRegard : UIControl + +@property (nonatomic, weak) id delegate; +@property (nonatomic, strong) ResidenceEncourageChamberMatrix *chamberMatrix; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMNewHome/View/CustomView/YUMIResidenceConsumerRegard.m b/YuMi/Modules/YMNewHome/View/CustomView/YUMIResidenceConsumerRegard.m new file mode 100644 index 00000000..252338f7 --- /dev/null +++ b/YuMi/Modules/YMNewHome/View/CustomView/YUMIResidenceConsumerRegard.m @@ -0,0 +1,117 @@ +// +// YMHomeUserView.m +// YUMI +// +// Created by XY on 2023/2/17. +// + +#import "YUMIResidenceConsumerRegard.h" +#import +#import "NetIndicateRegard.h" +#import "DJDKMIMOMColor.h" +#import "ResidenceEncourageChamberMatrix.h" + +@interface YUMIResidenceConsumerRegard() + +@property (nonatomic, strong) NetIndicateRegard *intelligenceportraitIndicateRegard; +@property (nonatomic, strong) UILabel *monicerconstituteSequencignation; +@property (nonatomic, strong) UILabel *introduceSequencignation; +@property (nonatomic, strong) UIImageView *circleRegard; + +@end + +@implementation YUMIResidenceConsumerRegard + +- (void)setChamberMatrix:(ResidenceEncourageChamberMatrix *)chamberMatrix { + _chamberMatrix = chamberMatrix; + + self.monicerconstituteSequencignation.text = chamberMatrix.nick; + self.introduceSequencignation.text = chamberMatrix.roomDesc; + self.intelligenceportraitIndicateRegard.imageUrl = chamberMatrix.avatar; +} + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self produceUI]; + [self addTarget:self action:@selector(consumerRegardTicktacked) forControlEvents:UIControlEventTouchUpInside]; + } + return self; +} + +- (void)produceUI { + [self addSubview:self.intelligenceportraitIndicateRegard]; + [self addSubview:self.monicerconstituteSequencignation]; + [self addSubview:self.introduceSequencignation]; + [self addSubview:self.circleRegard]; + + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(0); + make.centerX.mas_equalTo(self); + make.width.height.mas_equalTo(70); + }]; + [self.monicerconstituteSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_bottom).offset(15); + make.centerX.mas_equalTo(self); + make.left.mas_greaterThanOrEqualTo(2); + make.right.mas_lessThanOrEqualTo(-2); + }]; + [self.introduceSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.monicerconstituteSequencignation.mas_bottom).offset(2); + make.centerX.mas_equalTo(self); + make.left.mas_greaterThanOrEqualTo(2); + make.right.mas_lessThanOrEqualTo(-2); + }]; + [self.circleRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(0); + make.top.mas_equalTo(self.intelligenceportraitIndicateRegard); + make.bottom.mas_equalTo(self.intelligenceportraitIndicateRegard); + }]; +} + +- (void)consumerRegardTicktacked { + if (self.delegate && [self.delegate respondsToSelector:@selector(consumerRegardTicktackPerformance:)]) { + [self.delegate consumerRegardTicktackPerformance:self.chamberMatrix]; + } +} + +#pragma mark - 懒加载 + +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] init]; + _intelligenceportraitIndicateRegard.contentMode = UIViewContentModeScaleAspectFill; + _intelligenceportraitIndicateRegard.layer.cornerRadius = 35; + _intelligenceportraitIndicateRegard.clipsToBounds = YES; + } + return _intelligenceportraitIndicateRegard; +} + +- (UILabel *)monicerconstituteSequencignation { + if (!_monicerconstituteSequencignation) { + _monicerconstituteSequencignation = [[UILabel alloc] init]; + _monicerconstituteSequencignation.textColor = [DJDKMIMOMColor aplictowardsionMainPrettify]; + _monicerconstituteSequencignation.font = [UIFont systemFontOfSize:14 weight:UIFontWeightMedium]; + } + return _monicerconstituteSequencignation; +} + +- (UILabel *)introduceSequencignation { + if (!_introduceSequencignation) { + _introduceSequencignation = [[UILabel alloc] init]; + _introduceSequencignation.textColor = [DJDKMIMOMColor aplictowardsionMainPrettify]; + _introduceSequencignation.font = [UIFont systemFontOfSize:10 weight:UIFontWeightMedium]; + } + return _introduceSequencignation; +} + +- (UIImageView *)circleRegard { + if (!_circleRegard) { + _circleRegard = [[UIImageView alloc] init]; + _circleRegard.contentMode = UIViewContentModeScaleAspectFit; + _circleRegard.image = [UIImage imageNamed:@"yumi_main_user_circle"]; + } + return _circleRegard; +} + +@end diff --git a/YuMi/Modules/YMNewHome/View/CustomView/YUMIStrangeResidenceNevRegard.h b/YuMi/Modules/YMNewHome/View/CustomView/YUMIStrangeResidenceNevRegard.h new file mode 100644 index 00000000..6ae238c0 --- /dev/null +++ b/YuMi/Modules/YMNewHome/View/CustomView/YUMIStrangeResidenceNevRegard.h @@ -0,0 +1,25 @@ +// +// YUMIStrangeResidenceNevRegard.h +// YuMi +// +// Created by YuMi on 2022/10/8. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class YUMIStrangeResidenceNevRegard; +@protocol FBCStrangeResidenceNevRegardRepresendtation + +- (void)yUMIStrangeResidenceNevRegard:(YUMIStrangeResidenceNevRegard *)view didClickRank:(UIButton *)sender; + +- (void)yUMIStrangeResidenceNevRegard:(YUMIStrangeResidenceNevRegard *)view didClickOpenRoom:(UIButton *)sender; + +- (void)yUMIStrangeResidenceNevRegard:(YUMIStrangeResidenceNevRegard *)view didClickSearch:(UIView *)sender; +@end + +@interface YUMIStrangeResidenceNevRegard : UIView +@property (nonatomic,weak) id delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMNewHome/View/CustomView/YUMIStrangeResidenceNevRegard.m b/YuMi/Modules/YMNewHome/View/CustomView/YUMIStrangeResidenceNevRegard.m new file mode 100644 index 00000000..1d08c7d2 --- /dev/null +++ b/YuMi/Modules/YMNewHome/View/CustomView/YUMIStrangeResidenceNevRegard.m @@ -0,0 +1,150 @@ +// +// YUMIStrangeResidenceNevRegard.m +// YuMi +// +// Created by YuMi on 2022/10/8. +// + +#import "YUMIStrangeResidenceNevRegard.h" +#import +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" + + +@interface YUMIStrangeResidenceNevRegard () +@property (nonatomic,strong) UIView *huntforRegard; +@property (nonatomic,strong) UIImageView *huntforIndicateRegard; +@property (nonatomic,strong) UILabel *huntforSequencignation; +@property (nonatomic,strong) UIButton *rateBtuton; +@property (nonatomic,strong) UIButton *opeChamberBtuton; +@end + +@implementation YUMIStrangeResidenceNevRegard + + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.huntforRegard]; + [self addSubview:self.opeChamberBtuton]; + [self addSubview:self.rateBtuton]; + + [self.huntforRegard addSubview:self.huntforIndicateRegard]; + [self.huntforRegard addSubview:self.huntforSequencignation]; +} + +- (void)initChildLyRestrictions { + + [self.huntforRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self).offset(15); + make.height.mas_equalTo(32); + make.top.mas_equalTo(self).offset(statusbarHeight + 6); + make.right.mas_equalTo(self.opeChamberBtuton.mas_left).offset(-36); + }]; + + [self.huntforIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(22); + make.height.mas_equalTo(22); + make.left.mas_equalTo(self.huntforRegard).offset(13); + make.centerY.mas_equalTo(self.huntforRegard); + }]; + + [self.huntforSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.huntforIndicateRegard.mas_right).offset(2); + make.centerY.mas_equalTo(self.huntforRegard); + }]; + + [self.rateBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(30); + make.height.mas_equalTo(30); + make.centerY.mas_equalTo(self.huntforRegard); + make.right.mas_equalTo(self).offset(-15); + }]; + + [self.opeChamberBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.centerY.mas_equalTo(self.rateBtuton); + make.right.mas_equalTo(self.rateBtuton.mas_left).offset(-12); + }]; +} + +#pragma mark - Event Response +- (void)unfoildChamberBtutonPerformance:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIStrangeResidenceNevRegard:didClickOpenRoom:)]) { + [self.delegate yUMIStrangeResidenceNevRegard:self didClickOpenRoom:sender]; + } +} + +- (void)rtowardseBtutonPerformance:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIStrangeResidenceNevRegard:didClickRank:)]) { + [self.delegate yUMIStrangeResidenceNevRegard:self didClickRank:sender]; + } +} + +- (void)tapRecognizer { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIStrangeResidenceNevRegard:didClickSearch:)]) { + [self.delegate yUMIStrangeResidenceNevRegard:self didClickSearch:self.huntforRegard]; + } +} + +#pragma mark - Getters And Setters +- (UIView *)huntforRegard { + if (!_huntforRegard) { + _huntforRegard = [[UIView alloc] init]; + _huntforRegard.backgroundColor = [UIColor colorWithWhite:1 alpha:0.5]; + _huntforRegard.layer.cornerRadius = 16; + _huntforRegard.layer.masksToBounds = YES; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapRecognizer)]; + [_huntforRegard addGestureRecognizer:tap]; + } + return _huntforRegard; +} + +- (UIImageView *)huntforIndicateRegard { + if (!_huntforIndicateRegard) { + _huntforIndicateRegard = [[UIImageView alloc] init]; + _huntforIndicateRegard.userInteractionEnabled = YES; + _huntforIndicateRegard.image = [UIImage imageNamed:@"yumi_main_title_search"]; + } + return _huntforIndicateRegard; +} + +- (UILabel *)huntforSequencignation { + if (!_huntforSequencignation) { + _huntforSequencignation = [[UILabel alloc] init]; + _huntforSequencignation.font = [UIFont systemFontOfSize:12]; + _huntforSequencignation.textColor = [DJDKMIMOMColor instantEssayPrettify]; + _huntforSequencignation.text = YMLocalizedString(@"YUMI_New_Home_Nav_View_0"); + } + return _huntforSequencignation; +} + +- (UIButton *)opeChamberBtuton { + if (!_opeChamberBtuton) { + _opeChamberBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_opeChamberBtuton setImage:[UIImage imageNamed:@"yumi_main_title_open_room"] forState:UIControlStateNormal]; + [_opeChamberBtuton setImage:[UIImage imageNamed:@"yumi_main_title_open_room"] forState:UIControlStateSelected]; + [_opeChamberBtuton addTarget:self action:@selector(unfoildChamberBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _opeChamberBtuton; +} + +- (UIButton *)rateBtuton { + if (!_rateBtuton) { + _rateBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_rateBtuton setImage:[UIImage imageNamed:@"yumi_main_title_rank"] forState:UIControlStateNormal]; + [_rateBtuton setImage:[UIImage imageNamed:@"yumi_main_title_rank"] forState:UIControlStateSelected]; + [_rateBtuton addTarget:self action:@selector(rtowardseBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _rateBtuton; +} + + +@end diff --git a/YuMi/Modules/YMNewHome/View/Search/Model/ResidenceEnergeticChamberMatrix.h b/YuMi/Modules/YMNewHome/View/Search/Model/ResidenceEnergeticChamberMatrix.h new file mode 100644 index 00000000..ddc350cb --- /dev/null +++ b/YuMi/Modules/YMNewHome/View/Search/Model/ResidenceEnergeticChamberMatrix.h @@ -0,0 +1,19 @@ +// +// ResidenceEnergeticChamberMatrix.h +// YUMI +// +// Created by YUMI on 2022/3/2. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface ResidenceEnergeticChamberMatrix : NSObject +@property (nonatomic, copy) NSString *nick; +@property (nonatomic, copy) NSString *avatar; +@property (nonatomic,assign) NSInteger uid; +@property (nonatomic, assign) NSInteger roomUid; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMNewHome/View/Search/Model/ResidenceEnergeticChamberMatrix.m b/YuMi/Modules/YMNewHome/View/Search/Model/ResidenceEnergeticChamberMatrix.m new file mode 100644 index 00000000..636299ea --- /dev/null +++ b/YuMi/Modules/YMNewHome/View/Search/Model/ResidenceEnergeticChamberMatrix.m @@ -0,0 +1,12 @@ +// +// ResidenceEnergeticChamberMatrix.m +// YUMI +// +// Created by YUMI on 2022/3/2. +// + +#import "ResidenceEnergeticChamberMatrix.h" + +@implementation ResidenceEnergeticChamberMatrix + +@end diff --git a/YuMi/Modules/YMNewHome/View/Search/Model/ResidenceEveryOneHuntforMatrix.h b/YuMi/Modules/YMNewHome/View/Search/Model/ResidenceEveryOneHuntforMatrix.h new file mode 100644 index 00000000..839e701a --- /dev/null +++ b/YuMi/Modules/YMNewHome/View/Search/Model/ResidenceEveryOneHuntforMatrix.h @@ -0,0 +1,20 @@ +// +// ResidenceEveryOneHuntforMatrix.h +// YUMI +// +// Created by GLEN on 2022/11/29. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface ResidenceEveryOneHuntforMatrix : NSObject + +@property (nonatomic, copy) NSString *sid; +@property (nonatomic, copy) NSString *relationRoomUid; +@property (nonatomic, copy) NSString *word; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMNewHome/View/Search/Model/ResidenceEveryOneHuntforMatrix.m b/YuMi/Modules/YMNewHome/View/Search/Model/ResidenceEveryOneHuntforMatrix.m new file mode 100644 index 00000000..6ab61a3f --- /dev/null +++ b/YuMi/Modules/YMNewHome/View/Search/Model/ResidenceEveryOneHuntforMatrix.m @@ -0,0 +1,16 @@ +// +// ResidenceEveryOneHuntforMatrix.m +// YUMI +// +// Created by GLEN on 2022/11/29. +// + +#import "ResidenceEveryOneHuntforMatrix.h" + +@implementation ResidenceEveryOneHuntforMatrix + ++ (NSDictionary *)replacedDigitalByvirtueofMaintainertyConstitute { + return @{@"sid":@"id"}; +} + +@end diff --git a/YuMi/Modules/YMNewHome/View/Search/Model/ResidenceHuntforConsequentMatrix.h b/YuMi/Modules/YMNewHome/View/Search/Model/ResidenceHuntforConsequentMatrix.h new file mode 100644 index 00000000..f27e0875 --- /dev/null +++ b/YuMi/Modules/YMNewHome/View/Search/Model/ResidenceHuntforConsequentMatrix.h @@ -0,0 +1,24 @@ +// +// ResidenceHuntforConsequentMatrix.h +// YUMI +// +// Created by YUMI on 2021/11/29. +// + +#import +#import "YUMINNNN.h" +NS_ASSUME_NONNULL_BEGIN + +@interface ResidenceHuntforConsequentMatrix : NSObject +@property (nonatomic,copy) NSString *avatar; +@property (nonatomic,assign) NSInteger onlineNum; +@property (nonatomic,copy) NSString *uid; +@property (nonatomic,copy) NSString *title; +@property (nonatomic,copy) NSString *nick; +@property (nonatomic,copy) NSString *erbanNo; +@property (nonatomic,assign) BOOL valid; +@property (nonatomic,assign) GenderGenre gender; +@property (nonatomic,copy) NSString *roomUid; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMNewHome/View/Search/Model/ResidenceHuntforConsequentMatrix.m b/YuMi/Modules/YMNewHome/View/Search/Model/ResidenceHuntforConsequentMatrix.m new file mode 100644 index 00000000..9cd4088b --- /dev/null +++ b/YuMi/Modules/YMNewHome/View/Search/Model/ResidenceHuntforConsequentMatrix.m @@ -0,0 +1,12 @@ +// +// ResidenceHuntforConsequentMatrix.m +// YUMI +// +// Created by YUMI on 2021/11/29. +// + +#import "ResidenceHuntforConsequentMatrix.h" + +@implementation ResidenceHuntforConsequentMatrix + +@end diff --git a/YuMi/Modules/YMNewHome/View/Search/Presenter/YUMIInChamberReflectionExternalizer.h b/YuMi/Modules/YMNewHome/View/Search/Presenter/YUMIInChamberReflectionExternalizer.h new file mode 100644 index 00000000..bbfe00f5 --- /dev/null +++ b/YuMi/Modules/YMNewHome/View/Search/Presenter/YUMIInChamberReflectionExternalizer.h @@ -0,0 +1,22 @@ +// +// YMInRoomRecordPresenter.h +// YUMI +// +// Created by YUMI on 2022/9/6. +// + +#import "BaseMvpExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIInChamberReflectionExternalizer : BaseMvpExternalizer + +- (void)acquireInChamberReflectionSttowardsement; + +- (void)sanitaryInChamberReflection; + +- (void)acquireEachoneHuntforSttowardsement; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMNewHome/View/Search/Presenter/YUMIInChamberReflectionExternalizer.m b/YuMi/Modules/YMNewHome/View/Search/Presenter/YUMIInChamberReflectionExternalizer.m new file mode 100644 index 00000000..f3b1260d --- /dev/null +++ b/YuMi/Modules/YMNewHome/View/Search/Presenter/YUMIInChamberReflectionExternalizer.m @@ -0,0 +1,41 @@ +// +// YMInRoomRecordPresenter.m +// YUMI +// +// Created by YUMI on 2022/9/6. +// + +#import "YUMIInChamberReflectionExternalizer.h" +#import "Api+Mine.h" +#import "AccountAbstractStorage.h" +#import "YUMIManeTerminalImpressionMatrix.h" +#import "ResidenceEveryOneHuntforMatrix.h" +#import "FBCInChamberRecordCeremony.h" + +@implementation YUMIInChamberReflectionExternalizer + +- (void)acquireInChamberReflectionSttowardsement { + NSString *uid = [AccountAbstractStorage instance].acquireCid; + [Api requisitionTerminalImpression:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + NSArray *array = [YUMIManeTerminalImpressionMatrix mtowardsrixsAboutGarment:data.data]; + [[self acquireRegard] acquireInChamberReflectionAccomplishment:array]; + } fail:^(NSInteger code, NSString * _Nullable msg) { + }] uid:uid page:@"1" pageSize:@"100"]; +} + +- (void)sanitaryInChamberReflection { + NSString *uid = [AccountAbstractStorage instance].acquireCid; + [Api requisitionCleanTerminalImpression:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] sanitaryInChamberReflectionAccomplishment]; + }] uid:uid roomUid:NULL]; +} + +- (void)acquireEachoneHuntforSttowardsement { + NSString *uid = [AccountAbstractStorage instance].acquireCid; + [Api requisitionEachoneHuntfor:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + NSArray *array = [ResidenceEveryOneHuntforMatrix mtowardsrixsAboutGarment:data.data]; + [[self acquireRegard] acquireEachoneHuntforSttowardsementAccomplishment:array]; + }] uid:uid]; +} + +@end diff --git a/YuMi/Modules/YMNewHome/View/Search/Presenter/YUMIResidenceHuntforExternalizer.h b/YuMi/Modules/YMNewHome/View/Search/Presenter/YUMIResidenceHuntforExternalizer.h new file mode 100644 index 00000000..b8c0cc84 --- /dev/null +++ b/YuMi/Modules/YMNewHome/View/Search/Presenter/YUMIResidenceHuntforExternalizer.h @@ -0,0 +1,22 @@ +// +// YMHomeSearchPresenter.h +// YUMI +// +// Created by YUMI on 2021/11/29. +// + +#import "BaseMvpExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIResidenceHuntforExternalizer : BaseMvpExternalizer + +- (void)huntforChamberSttowardsement:(NSString *)key type:(NSString *)type; + +- (void)acquireResidenceEncourageChamberSttowardsement; + +- (void)acquireEachSoleHuntforChamberSttowardsement:(NSString *)sid; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMNewHome/View/Search/Presenter/YUMIResidenceHuntforExternalizer.m b/YuMi/Modules/YMNewHome/View/Search/Presenter/YUMIResidenceHuntforExternalizer.m new file mode 100644 index 00000000..96f61a1a --- /dev/null +++ b/YuMi/Modules/YMNewHome/View/Search/Presenter/YUMIResidenceHuntforExternalizer.m @@ -0,0 +1,43 @@ +// +// YMHomeSearchPresenter.m +// YUMI +// +// Created by YUMI on 2021/11/29. +// + +#import "YUMIResidenceHuntforExternalizer.h" +#import "Api+Home.h" +#import "FBCResidenceHuntforCeremony.h" +#import "AccountAbstractStorage.h" +#import "ResidenceHuntforConsequentMatrix.h" +#import "ResidenceEncourageChamberMatrix.h" + +@implementation YUMIResidenceHuntforExternalizer + + +- (void)huntforChamberSttowardsement:(NSString *)key type:(NSString *)type { + [Api huntforimplementtion:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + NSArray * array = [ResidenceHuntforConsequentMatrix mtowardsrixsAboutGarment:data.data]; + [[self acquireRegard] huntforChamberAccomplishment:array type:type]; + } EvidenceChambering:YES] key:key type:type page:@"1" pageSize:@"50"]; +} + +- (void)acquireResidenceEncourageChamberSttowardsement { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [Api residenceEncourageChamberSttowardsement:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + NSArray * array = [ResidenceEncourageChamberMatrix mtowardsrixsAboutGarment:data.data]; + [[self acquireRegard] huntforChamberAcquireEncourageAccomplishment:array]; + }fail:^(NSInteger code, NSString * _Nullable msg) { + [[self acquireRegard] huntforChamberAcquireEncourageFlunk]; + }] uid:uid]; +} + +- (void)acquireEachSoleHuntforChamberSttowardsement:(NSString *)sid { + [Api requisitionEachSoleHuntforChamberSttowardsement:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + NSArray * array = [ResidenceEncourageChamberMatrix mtowardsrixsAboutGarment:data.data]; + [[self acquireRegard] everyoneHuntforSttowardsementAccomplishment:array]; + }] wordId:sid]; +} + + +@end diff --git a/YuMi/Modules/YMNewHome/View/Search/Protocol/FBCInChamberRecordCeremony.h b/YuMi/Modules/YMNewHome/View/Search/Protocol/FBCInChamberRecordCeremony.h new file mode 100644 index 00000000..8d6d9c54 --- /dev/null +++ b/YuMi/Modules/YMNewHome/View/Search/Protocol/FBCInChamberRecordCeremony.h @@ -0,0 +1,20 @@ +// +// YMInRoomRecordProtocol.h +// YUMI +// +// Created by YUMI on 2022/9/6. +// + +#import + +@class YUMIManeTerminalImpressionMatrix; +@protocol FBCInChamberRecordCeremony + + +- (void)acquireInChamberReflectionAccomplishment:(NSArray *)array; + +- (void)sanitaryInChamberReflectionAccomplishment; + +- (void)acquireEachoneHuntforSttowardsementAccomplishment:(NSArray *)array; + +@end diff --git a/YuMi/Modules/YMNewHome/View/Search/Protocol/FBCResidenceHuntforCeremony.h b/YuMi/Modules/YMNewHome/View/Search/Protocol/FBCResidenceHuntforCeremony.h new file mode 100644 index 00000000..36b282a2 --- /dev/null +++ b/YuMi/Modules/YMNewHome/View/Search/Protocol/FBCResidenceHuntforCeremony.h @@ -0,0 +1,22 @@ +// +// YMHomeSearchProtocol.h +// YUMI +// +// Created by YUMI on 2021/11/29. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@protocol FBCResidenceHuntforCeremony + +- (void)huntforChamberAccomplishment:(NSArray *)data type:(NSString *)type; + +- (void)huntforChamberAcquireEncourageAccomplishment:(NSArray *)data; +- (void)huntforChamberAcquireEncourageFlunk; + +- (void)everyoneHuntforSttowardsementAccomplishment:(NSArray *)list; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMNewHome/View/Search/View/Cell/YUMIHuntforStatementTabulationRegardElement.h b/YuMi/Modules/YMNewHome/View/Search/View/Cell/YUMIHuntforStatementTabulationRegardElement.h new file mode 100644 index 00000000..039f3854 --- /dev/null +++ b/YuMi/Modules/YMNewHome/View/Search/View/Cell/YUMIHuntforStatementTabulationRegardElement.h @@ -0,0 +1,26 @@ +// +// YMSearchListTableViewCell.h +// YUMI +// +// Created by YUMI on 2021/11/29. +// + +#import +NS_ASSUME_NONNULL_BEGIN +typedef NS_ENUM(NSInteger, SearchGenre){ + + SearchGenre_Room = 1, + + SearchGenre_Users = 2, +}; + +@class ResidenceHuntforConsequentMatrix, ResidenceEncourageChamberMatrix; +@interface YUMIHuntforStatementTabulationRegardElement : UITableViewCell + +- (void)prohibitipositionTowardsoloudspeaker:(ResidenceHuntforConsequentMatrix *)resultModel type:(SearchGenre)type; + +- (void)prohibitipositionEachoneTowardsoloudspeaker:(ResidenceEncourageChamberMatrix *)resultModel; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMNewHome/View/Search/View/Cell/YUMIHuntforStatementTabulationRegardElement.m b/YuMi/Modules/YMNewHome/View/Search/View/Cell/YUMIHuntforStatementTabulationRegardElement.m new file mode 100644 index 00000000..67ec6426 --- /dev/null +++ b/YuMi/Modules/YMNewHome/View/Search/View/Cell/YUMIHuntforStatementTabulationRegardElement.m @@ -0,0 +1,224 @@ +// +// YMSearchListTableViewCell.m +// YUMI +// +// Created by YUMI on 2021/11/29. +// + +#import "YUMIHuntforStatementTabulationRegardElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "ResidenceHuntforConsequentMatrix.h" +#import "ResidenceEncourageChamberMatrix.h" +#import "NetIndicateRegard.h" + + +@interface YUMIHuntforStatementTabulationRegardElement () +@property (nonatomic,strong) NetIndicateRegard *intelligenceportraitIndicateRegard; +@property (nonatomic,strong) UIStackView *constituteHierarchyRegard; +@property (nonatomic,strong) UILabel *monicerSequencignation; +@property (nonatomic,strong) UIImageView *seaxualityIndicateRegard; +@property (nonatomic,strong) UILabel *idSequencignation; +@property (nonatomic,strong) UIView * burlywoodRegard; +@property (nonatomic,strong) UIView * digitalRegard; +@property (nonatomic,strong) UIImageView *bookIndicateRegard; +@property (nonatomic,strong) UILabel *numberLabel; +@end + +@implementation YUMIHuntforStatementTabulationRegardElement +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Public Method +- (void)prohibitipositionTowardsoloudspeaker:(ResidenceHuntforConsequentMatrix *)resultModel type:(SearchGenre)type { + if (resultModel) { + self.intelligenceportraitIndicateRegard.imageUrl = resultModel.avatar; + self.monicerSequencignation.text = type == SearchGenre_Room ? resultModel.title : resultModel.nick; + self.idSequencignation.text = [NSString stringWithFormat:@"%@号:%@",AppName, resultModel.erbanNo]; + self.seaxualityIndicateRegard.image = resultModel.gender == GenderGenre_Female ? [UIImage imageNamed:@"yumi_same_female"] : [UIImage imageNamed:@"yumi_same_male"]; + if (type == SearchGenre_Users) { + self.numberLabel.text = YMLocalizedString(@"YUMI_Search_List_Table_View_Cell_1"); + self.digitalRegard.hidden = resultModel.roomUid.length <= 0; + } else { + if (resultModel.onlineNum > 100) { + self.numberLabel.text = [NSString stringWithFormat:@"%ld", resultModel.onlineNum]; + } else { + self.numberLabel.text = [NSString stringWithFormat:@" %ld ", resultModel.onlineNum]; + } + self.digitalRegard.hidden = !resultModel.valid; + } + } +} + +- (void)prohibitipositionEachoneTowardsoloudspeaker:(ResidenceEncourageChamberMatrix *)resultModel { + if (resultModel) { + self.intelligenceportraitIndicateRegard.imageUrl = resultModel.avatar; + self.monicerSequencignation.text = resultModel.title ; + self.idSequencignation.text = [NSString stringWithFormat:@"%@号:%@",AppName, resultModel.erbanNo]; + self.seaxualityIndicateRegard.image = resultModel.gender == GenderGenre_Female ? [UIImage imageNamed:@"yumi_same_female"] : [UIImage imageNamed:@"yumi_same_male"]; + if (resultModel.onlineNum > 100) { + self.numberLabel.text = [NSString stringWithFormat:@"%ld", resultModel.onlineNum]; + } else { + self.numberLabel.text = [NSString stringWithFormat:@" %ld ", resultModel.onlineNum]; + } + } +} + +#pragma mark - Private Method +- (void)initSubViews { + self.selectionStyle = UITableViewCellSelectionStyleNone; + self.backgroundColor = [UIColor clearColor]; + [self.contentView addSubview:self.intelligenceportraitIndicateRegard]; + [self.contentView addSubview:self.constituteHierarchyRegard]; + [self.contentView addSubview:self.idSequencignation]; + [self.contentView addSubview:self.digitalRegard]; + [self.contentView addSubview:self.burlywoodRegard]; + + [self.digitalRegard addSubview:self.numberLabel]; + [self.digitalRegard addSubview:self.bookIndicateRegard]; + + [self.constituteHierarchyRegard addArrangedSubview:self.monicerSequencignation]; + [self.constituteHierarchyRegard addArrangedSubview:self.seaxualityIndicateRegard]; +} + +- (void)initChildLyRestrictions { + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(45, 45)); + make.left.mas_equalTo(self.contentView).offset(15); + make.centerY.mas_equalTo(self.contentView); + }]; + + [self.constituteHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_right).offset(13); + make.height.mas_equalTo(20); + make.bottom.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_centerY).offset(-1.5); + }]; + + [self.idSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.constituteHierarchyRegard); + make.top.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_centerY).offset(1.5); + }]; + + [self.burlywoodRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.constituteHierarchyRegard); + make.right.mas_equalTo(self.contentView).offset(-15); + make.bottom.mas_equalTo(self.contentView); + make.height.mas_equalTo(1); + }]; + + [self.digitalRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(18); + make.right.mas_equalTo(self.contentView).offset(-15); + make.centerY.mas_equalTo(self.contentView); + make.left.mas_equalTo(self.bookIndicateRegard.mas_left).offset(-8); + }]; + + [self.numberLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.digitalRegard); + make.right.mas_equalTo(self.digitalRegard.mas_right).offset(-5); + }]; + + [self.bookIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.digitalRegard); + make.size.mas_equalTo(CGSizeMake(10, 9)); + make.right.mas_equalTo(self.numberLabel.mas_left).offset(-3); + }]; +} + +#pragma mark - Getters And Setters +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc] init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _intelligenceportraitIndicateRegard.layer.cornerRadius = 45/2; + _intelligenceportraitIndicateRegard.contentMode = UIViewContentModeScaleAspectFill; + } + return _intelligenceportraitIndicateRegard; +} + +- (UIStackView *)constituteHierarchyRegard { + if (!_constituteHierarchyRegard) { + _constituteHierarchyRegard = [[UIStackView alloc] init]; + _constituteHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _constituteHierarchyRegard.distribution = UIStackViewDistributionFill; + _constituteHierarchyRegard.alignment = UIStackViewAlignmentCenter; + _constituteHierarchyRegard.spacing = 2; + } + return _constituteHierarchyRegard; +} + +- (UILabel *)monicerSequencignation { + if (!_monicerSequencignation) { + _monicerSequencignation = [[UILabel alloc] init]; + _monicerSequencignation.text = YMLocalizedString(@"YUMI_Search_List_Table_View_Cell_3"); + _monicerSequencignation.font = [UIFont fontWithName:@"PingFang-SC-Medium" size:15]; + _monicerSequencignation.textColor = [DJDKMIMOMColor instantEssayPrettify]; + } + return _monicerSequencignation; +} + +- (UIImageView *)seaxualityIndicateRegard { + if (!_seaxualityIndicateRegard) { + _seaxualityIndicateRegard = [[UIImageView alloc] init]; + _seaxualityIndicateRegard.userInteractionEnabled = YES; + } + return _seaxualityIndicateRegard; +} + +- (UILabel *)idSequencignation { + if (!_idSequencignation) { + _idSequencignation = [[UILabel alloc] init]; + _idSequencignation.font = [UIFont systemFontOfSize:13]; + _idSequencignation.textColor = [DJDKMIMOMColor essayTertiusPrettify]; + } + return _idSequencignation; +} + +- (UIView *)burlywoodRegard { + if (!_burlywoodRegard) { + _burlywoodRegard = [[UIView alloc] init]; + _burlywoodRegard.backgroundColor = [DJDKMIMOMColor dividerPrettify]; + } + return _burlywoodRegard; +} + +- (UIView *)digitalRegard { + if (!_digitalRegard) { + _digitalRegard = [[UIView alloc] init]; + _digitalRegard.backgroundColor = [UIColor clearColor]; + _digitalRegard.layer.masksToBounds = YES; + _digitalRegard.layer.cornerRadius = 18/2; + _digitalRegard.layer.borderColor = [DJDKMIMOMColor aplictowardsionUnderlinePrettify].CGColor; + _digitalRegard.layer.borderWidth = 1; + } + return _digitalRegard; +} + +- (UIImageView *)bookIndicateRegard { + if (!_bookIndicateRegard) { + _bookIndicateRegard = [[UIImageView alloc] init]; + _bookIndicateRegard.userInteractionEnabled = YES; + _bookIndicateRegard.image = [UIImage imageNamed:@"yumi_main_search_user_online"]; + } + return _bookIndicateRegard; +} + +- (UILabel *)numberLabel { + if (!_numberLabel) { + _numberLabel = [[UILabel alloc] init]; + _numberLabel.text = YMLocalizedString(@"YUMI_Search_List_Table_View_Cell_4"); + _numberLabel.font = [UIFont systemFontOfSize:10]; + _numberLabel.textColor = [DJDKMIMOMColor aplictowardsionUnderlinePrettify]; + } + return _numberLabel; +} + +@end diff --git a/YuMi/Modules/YMNewHome/View/Search/View/Cell/YUMIResidenceAssembleChamberTabulationRegardElement.h b/YuMi/Modules/YMNewHome/View/Search/View/Cell/YUMIResidenceAssembleChamberTabulationRegardElement.h new file mode 100644 index 00000000..5974a405 --- /dev/null +++ b/YuMi/Modules/YMNewHome/View/Search/View/Cell/YUMIResidenceAssembleChamberTabulationRegardElement.h @@ -0,0 +1,16 @@ +// +// YMHomeCollectRoomTableViewCell.h +// YUMI +// +// Created by YUMI on 2022/3/2. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class ResidenceAssembleChamberMatrix; +@interface YUMIResidenceAssembleChamberTabulationRegardElement : UITableViewCell +@property (nonatomic,strong) ResidenceAssembleChamberMatrix *roomInfo; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMNewHome/View/Search/View/Cell/YUMIResidenceAssembleChamberTabulationRegardElement.m b/YuMi/Modules/YMNewHome/View/Search/View/Cell/YUMIResidenceAssembleChamberTabulationRegardElement.m new file mode 100644 index 00000000..01394461 --- /dev/null +++ b/YuMi/Modules/YMNewHome/View/Search/View/Cell/YUMIResidenceAssembleChamberTabulationRegardElement.m @@ -0,0 +1,358 @@ +// +// YMHomeCollectRoomTableViewCell.m +// YUMI +// +// Created by YUMI on 2022/3/2. +// 收藏房间 + +#import "YUMIResidenceAssembleChamberTabulationRegardElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "NetIndicateRegard.h" +#import "NSArray+Safe.h" +#import "UIImage+Utils.h" +#import "ResidenceAssembleChamberMatrix.h" + +@interface YUMIResidenceAssembleChamberTabulationRegardElement () +@property (nonatomic,strong) UIButton *combateBtuton; +@property (nonatomic,strong) NetIndicateRegard *intelligenceportraitIndicateRegard; +@property (nonatomic,strong) UIImageView *encourageIndicateRegard; +@property (nonatomic,strong) UILabel *monicerSequencignation; +@property (nonatomic,strong) NetIndicateRegard *coupleIndicateRegard; +@property (nonatomic,strong) UILabel *idSequencignation; +@property (nonatomic,strong) UIImageView * featureAccommoengagementdRegard; +@property (nonatomic,strong) UIImageView *thermalIndicateRegard; +@property (nonatomic,strong) UILabel *numberLabel; +@property (nonatomic,strong) UIView *loudspeakerAccommoengagementdRegard; +@property (nonatomic,strong) NetIndicateRegard *thresholdIndicateRegard; +@property (nonatomic,strong) NetIndicateRegard *instantIndicateRegard; +@property (nonatomic,strong) NetIndicateRegard *tertiusIndicateRegard; +@property (nonatomic,strong) NetIndicateRegard *fourIndicateRegard; +@property (nonatomic,strong) NetIndicateRegard *fifIndicateRegard; +@property (nonatomic,strong) NSArray *loudspeakerConsumerGarment; +@end + +@implementation YUMIResidenceAssembleChamberTabulationRegardElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor]; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.encourageIndicateRegard]; + [self.contentView addSubview:self.intelligenceportraitIndicateRegard]; + + [self.encourageIndicateRegard addSubview:self.monicerSequencignation]; + [self.encourageIndicateRegard addSubview:self.coupleIndicateRegard]; + [self.encourageIndicateRegard addSubview:self.idSequencignation]; + [self.encourageIndicateRegard addSubview:self.featureAccommoengagementdRegard]; + [self.encourageIndicateRegard addSubview:self.loudspeakerAccommoengagementdRegard]; + + [self.featureAccommoengagementdRegard addSubview:self.thermalIndicateRegard]; + [self.featureAccommoengagementdRegard addSubview:self.numberLabel]; + + [self.intelligenceportraitIndicateRegard addSubview:self.combateBtuton]; + [self.loudspeakerAccommoengagementdRegard addSubview:self.fifIndicateRegard]; + [self.loudspeakerAccommoengagementdRegard addSubview:self.fourIndicateRegard]; + [self.loudspeakerAccommoengagementdRegard addSubview:self.tertiusIndicateRegard]; + [self.loudspeakerAccommoengagementdRegard addSubview:self.instantIndicateRegard]; + [self.loudspeakerAccommoengagementdRegard addSubview:self.thresholdIndicateRegard]; + self.loudspeakerConsumerGarment = @[self.thresholdIndicateRegard, self.instantIndicateRegard, self.tertiusIndicateRegard, self.fourIndicateRegard, self.fifIndicateRegard]; +} + +- (void)initChildLyRestrictions { + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(74, 74)); + make.left.mas_equalTo(self.contentView).offset(15); + make.top.mas_equalTo(self.contentView); + }]; + + [self.encourageIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.contentView).inset(15); + make.top.mas_equalTo(self.contentView).offset(8); + make.height.mas_equalTo(66); + }]; + + [self.combateBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(44, 16)); + make.left.top.mas_equalTo(self.intelligenceportraitIndicateRegard); + }]; + + [self.monicerSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.encourageIndicateRegard).offset(82); + make.top.mas_equalTo(self.encourageIndicateRegard).offset(12); + make.right.mas_lessThanOrEqualTo(self.featureAccommoengagementdRegard.mas_left).offset(-5); + }]; + + [self.coupleIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(43, 18)); + make.left.mas_equalTo(self.monicerSequencignation); + make.top.mas_equalTo(self.monicerSequencignation.mas_bottom).offset(13); + }]; + + [self.idSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.coupleIndicateRegard); + make.left.mas_equalTo(self.coupleIndicateRegard.mas_right).offset(8); + }]; + + [self.featureAccommoengagementdRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.thermalIndicateRegard.mas_left).offset(-14); + make.height.mas_equalTo(21); + make.top.mas_equalTo(self.encourageIndicateRegard); + make.right.mas_equalTo(self.encourageIndicateRegard); + }]; + + [self.thermalIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(13, 13)); + make.right.mas_equalTo(self.numberLabel.mas_left).offset(-2); + make.centerY.mas_equalTo(self.featureAccommoengagementdRegard); + }]; + + [self.numberLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self.featureAccommoengagementdRegard.mas_right).offset(-5); + make.centerY.mas_equalTo(self.featureAccommoengagementdRegard); + }]; + + [self.loudspeakerAccommoengagementdRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self.encourageIndicateRegard).offset(-13); + make.height.mas_equalTo(16); + make.centerY.mas_equalTo(self.coupleIndicateRegard); + make.left.mas_equalTo(self.fifIndicateRegard.mas_left).offset(-5); + }]; + + [self.thresholdIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(16, 16)); + make.right.mas_equalTo(self.loudspeakerAccommoengagementdRegard); + make.centerY.mas_equalTo(self.loudspeakerAccommoengagementdRegard); + }]; + + [self.instantIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.centerY.mas_equalTo(self.thresholdIndicateRegard); + make.right.mas_equalTo(self.thresholdIndicateRegard.mas_left).offset(2); + }]; + + [self.tertiusIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.centerY.mas_equalTo(self.thresholdIndicateRegard); + make.right.mas_equalTo(self.instantIndicateRegard.mas_left).offset(2); + }]; + + [self.fourIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.centerY.mas_equalTo(self.thresholdIndicateRegard); + make.right.mas_equalTo(self.tertiusIndicateRegard.mas_left).offset(2); + }]; + + [self.fifIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.centerY.mas_equalTo(self.thresholdIndicateRegard); + make.right.mas_equalTo(self.fourIndicateRegard.mas_left).offset(2); + }]; +} +#pragma mark - Getters And Setters +- (void)setRoomInfo:(ResidenceAssembleChamberMatrix *)roomInfo { + _roomInfo = roomInfo; + if (_roomInfo) { + self.intelligenceportraitIndicateRegard.imageUrl = _roomInfo.roomAvatar; + self.monicerSequencignation.text = _roomInfo.roomName; + self.coupleIndicateRegard.imageUrl = _roomInfo.tagPict; + self.idSequencignation.text = [NSString stringWithFormat:@"ID:%@", _roomInfo.erbanNo]; + self.numberLabel.text = _roomInfo.roomOnlineNum; + self.combateBtuton.hidden = !_roomInfo.crossPking; + if (_roomInfo.micUsers.count > 0) { + self.loudspeakerAccommoengagementdRegard.hidden = NO; + for (NSInteger i = 0; i < self.loudspeakerConsumerGarment.count; i++) { + NetIndicateRegard * imageView = [self.loudspeakerConsumerGarment secureGroalTowardsIndictowardsrix1:i]; + if (i< _roomInfo.micUsers.count) { + ResidenceDisportLoudspeakerConsumerMatrix * micUserInfo = [_roomInfo.micUsers secureGroalTowardsIndictowardsrix1:i]; + imageView.imageUrl = micUserInfo.avatar; + imageView.hidden = NO; + } else { + imageView.hidden = YES; + } + } + } else { + self.loudspeakerAccommoengagementdRegard.hidden = YES; + } + + } +} + +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _intelligenceportraitIndicateRegard.layer.cornerRadius = 8; + _intelligenceportraitIndicateRegard.layer.borderColor = [DJDKMIMOMColor aplictowardsionMainPrettify].CGColor; + } + return _intelligenceportraitIndicateRegard; +} + +- (UIButton *)combateBtuton { + if (!_combateBtuton) { + _combateBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_combateBtuton setTitle:YMLocalizedString(@"YUMI_Home_Collect_Room_Table_View_Cell_0") forState:UIControlStateNormal]; + [_combateBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + _combateBtuton.titleLabel.font = [UIFont systemFontOfSize:12]; + [_combateBtuton setBackgroundImage:[UIImage imageNamed:@"yumi_main_like_across_pk_background"] forState:UIControlStateNormal]; + _combateBtuton.layer.masksToBounds = YES; + _combateBtuton.layer.cornerRadius = 10; + } + return _combateBtuton; +} + +- (UIImageView *)encourageIndicateRegard { + if (!_encourageIndicateRegard) { + _encourageIndicateRegard = [[UIImageView alloc] init]; + _encourageIndicateRegard.userInteractionEnabled = YES; + _encourageIndicateRegard.layer.masksToBounds = YES; + _encourageIndicateRegard.layer.shadowColor = UIColorRGBAlpha(0xE5E5F2, 0.34).CGColor; + _encourageIndicateRegard.layer.cornerRadius = 12; + _encourageIndicateRegard.layer.shadowOffset = CGSizeMake(4, 4); + _encourageIndicateRegard.image = [UIImage imageWithColor:[DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify]]; + } + return _encourageIndicateRegard; +} + +- (UILabel *)monicerSequencignation { + if (!_monicerSequencignation) { + _monicerSequencignation = [[UILabel alloc] init]; + _monicerSequencignation.font = [UIFont systemFontOfSize:14]; + _monicerSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _monicerSequencignation; +} + +- (NetIndicateRegard *)coupleIndicateRegard { + if (!_coupleIndicateRegard) { + _coupleIndicateRegard = [[NetIndicateRegard alloc] init]; + } + return _coupleIndicateRegard; +} + +- (UILabel *)idSequencignation { + if (!_idSequencignation) { + _idSequencignation = [[UILabel alloc] init]; + _idSequencignation.font = [UIFont systemFontOfSize:12]; + _idSequencignation.textColor = [DJDKMIMOMColor instantEssayPrettify]; + } + return _idSequencignation; +} + +- (UIImageView *)featureAccommoengagementdRegard { + if (!_featureAccommoengagementdRegard) { + _featureAccommoengagementdRegard = [[UIImageView alloc] init]; + _featureAccommoengagementdRegard.image = [UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[UIColorFromRGB(0xFFFFFF), UIColorFromRGB(0xF3F3FA)] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(20, 16)]; + } + return _featureAccommoengagementdRegard; +} + +- (UIImageView *)thermalIndicateRegard { + if (!_thermalIndicateRegard) { + _thermalIndicateRegard = [[UIImageView alloc] init]; + _thermalIndicateRegard.userInteractionEnabled = YES; + _thermalIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_like_collect_scope_hot"]; + } + return _thermalIndicateRegard; +} + +- (UILabel *)numberLabel { + if (!_numberLabel) { + _numberLabel = [[UILabel alloc] init]; + _numberLabel.font = [UIFont boldSystemFontOfSize:12]; + _numberLabel.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _numberLabel; +} + +- (UIView *)loudspeakerAccommoengagementdRegard { + if (!_loudspeakerAccommoengagementdRegard) { + _loudspeakerAccommoengagementdRegard = [[UIView alloc] init]; + _loudspeakerAccommoengagementdRegard.backgroundColor = [UIColor clearColor]; + } + return _loudspeakerAccommoengagementdRegard; +} + +- (NetIndicateRegard *)thresholdIndicateRegard { + if (!_thresholdIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _thresholdIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _thresholdIndicateRegard.layer.masksToBounds = YES; + _thresholdIndicateRegard.layer.cornerRadius = 8; + _thresholdIndicateRegard.layer.borderColor = [UIColor whiteColor].CGColor; + _thresholdIndicateRegard.layer.borderWidth = 1; + _thresholdIndicateRegard.backgroundColor= [UIColor redColor]; + } + return _thresholdIndicateRegard; +} + +- (NetIndicateRegard *)instantIndicateRegard { + if (!_instantIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _instantIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _instantIndicateRegard.layer.masksToBounds = YES; + _instantIndicateRegard.layer.cornerRadius = 8; + _instantIndicateRegard.layer.borderColor = [UIColor whiteColor].CGColor; + _instantIndicateRegard.layer.borderWidth = 1; + _instantIndicateRegard.backgroundColor= [UIColor yellowColor]; + } + return _instantIndicateRegard; +} + +- (NetIndicateRegard *)tertiusIndicateRegard { + if (!_tertiusIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _tertiusIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _tertiusIndicateRegard.layer.masksToBounds = YES; + _tertiusIndicateRegard.layer.cornerRadius = 8; + _tertiusIndicateRegard.layer.borderColor = [UIColor whiteColor].CGColor; + _tertiusIndicateRegard.layer.borderWidth = 1; + _tertiusIndicateRegard.backgroundColor= [UIColor blueColor]; + } + return _tertiusIndicateRegard; +} + +- (NetIndicateRegard *)fourIndicateRegard { + if (!_fourIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _fourIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _fourIndicateRegard.layer.masksToBounds = YES; + _fourIndicateRegard.layer.cornerRadius = 8; + _fourIndicateRegard.layer.borderColor = [UIColor whiteColor].CGColor; + _fourIndicateRegard.layer.borderWidth = 1; + } + return _fourIndicateRegard; +} + + +- (NetIndicateRegard *)fifIndicateRegard { + if (!_fifIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _fifIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _fifIndicateRegard.layer.masksToBounds = YES; + _fifIndicateRegard.layer.cornerRadius = 8; + _fifIndicateRegard.layer.borderColor = [UIColor whiteColor].CGColor; + _fifIndicateRegard.layer.borderWidth = 1; + } + return _fifIndicateRegard; +} + + + +@end diff --git a/YuMi/Modules/YMNewHome/View/Search/View/Cell/YUMIResidenceConsiderationAssembletionRegardElement.h b/YuMi/Modules/YMNewHome/View/Search/View/Cell/YUMIResidenceConsiderationAssembletionRegardElement.h new file mode 100644 index 00000000..8b85f158 --- /dev/null +++ b/YuMi/Modules/YMNewHome/View/Search/View/Cell/YUMIResidenceConsiderationAssembletionRegardElement.h @@ -0,0 +1,19 @@ +// +// YMHomeAttentionCollectionViewCell.h +// YUMI +// +// Created by YUMI on 2022/3/2. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class ResidenceEnergeticChamberMatrix, YUMIManeTerminalImpressionMatrix; +@interface YUMIResidenceConsiderationAssembletionRegardElement : UICollectionViewCell + +@property (nonatomic,strong) ResidenceEnergeticChamberMatrix *liveChamber; +@property (nonatomic, strong) YUMIManeTerminalImpressionMatrix *reflectionChamber; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMNewHome/View/Search/View/Cell/YUMIResidenceConsiderationAssembletionRegardElement.m b/YuMi/Modules/YMNewHome/View/Search/View/Cell/YUMIResidenceConsiderationAssembletionRegardElement.m new file mode 100644 index 00000000..5b69c00f --- /dev/null +++ b/YuMi/Modules/YMNewHome/View/Search/View/Cell/YUMIResidenceConsiderationAssembletionRegardElement.m @@ -0,0 +1,167 @@ +// +// YMHomeAttentionCollectionViewCell.m +// YUMI +// +// Created by YUMI on 2022/3/2. +// + +#import "YUMIResidenceConsiderationAssembletionRegardElement.h" +#import +#import "NetIndicateRegard.h" +#import "DJDKMIMOMColor.h" +#import "UIImage+Utils.h" +#import "ResidenceEnergeticChamberMatrix.h" +#import "YUMIManeTerminalImpressionMatrix.h" + +@interface YUMIResidenceConsiderationAssembletionRegardElement () +@property (nonatomic,strong) NetIndicateRegard *intelligenceportraitIndicateRegard; +@property (nonatomic,strong) UILabel *monicerSequencignation; +@property (nonatomic, strong) UIImageView *bookBackgroundIndicateRegard; +@property (nonatomic, strong) UILabel *liveSequencignation; +@property (nonatomic,strong) UIImageView *bookIndicateRegard; +@property (nonatomic,strong) NSArray *brectifynessGarment; +@end + +@implementation YUMIResidenceConsiderationAssembletionRegardElement + +- (instancetype)initWithFrame:(CGRect)frame +{ + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self.contentView addSubview:self.intelligenceportraitIndicateRegard]; + [self.contentView addSubview:self.monicerSequencignation]; + + [self.intelligenceportraitIndicateRegard addSubview:self.bookBackgroundIndicateRegard]; + [self.bookBackgroundIndicateRegard addSubview:self.bookIndicateRegard]; + [self.bookBackgroundIndicateRegard addSubview:self.liveSequencignation]; +} + +- (void)initChildLyRestrictions { + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(56, 56)); + make.centerX.mas_equalTo(self.contentView); + make.top.mas_equalTo(self.contentView); + }]; + + [self.bookBackgroundIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.mas_equalTo(self.intelligenceportraitIndicateRegard); + make.height.mas_equalTo(14); + }]; + + [self.bookIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.bookBackgroundIndicateRegard).mas_offset(15); + make.centerY.mas_equalTo(self.bookBackgroundIndicateRegard).mas_offset(-1); + make.height.mas_equalTo(7); + make.width.mas_equalTo(8); + }]; + [self.liveSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.bookIndicateRegard.mas_right).mas_offset(2); + make.centerY.mas_equalTo(self.bookIndicateRegard); + }]; + [self.monicerSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.intelligenceportraitIndicateRegard); + make.top.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_bottom).offset(4); + }]; +} + +#pragma mark - Getters And Setters +- (void)setLiveChamber:(ResidenceEnergeticChamberMatrix *)liveChamber { + _liveChamber = liveChamber; + if (_liveChamber) { + self.intelligenceportraitIndicateRegard.imageUrl = _liveChamber.avatar; + self.monicerSequencignation.text = _liveChamber.nick; + self.bookBackgroundIndicateRegard.hidden = _liveChamber.roomUid <=0; + self.bookIndicateRegard.hidden = _liveChamber.roomUid <=0; + if (_liveChamber.roomUid > 0) { + self.bookIndicateRegard.animationImages = self.brectifynessGarment; + self.bookIndicateRegard.animationDuration = 0.5; + [self.bookIndicateRegard startAnimating]; + }else { + self.bookIndicateRegard.animationImages = nil; + [self.bookIndicateRegard stopAnimating]; + } + } +} + +- (void)setReflectionChamber:(YUMIManeTerminalImpressionMatrix *)reflectionChamber { + _reflectionChamber = reflectionChamber; + if (reflectionChamber) { + self.intelligenceportraitIndicateRegard.imageUrl = reflectionChamber.avatar; + self.monicerSequencignation.text = reflectionChamber.title; + self.bookBackgroundIndicateRegard.hidden = YES; + } +} + +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _intelligenceportraitIndicateRegard.layer.cornerRadius = 56/2; + _intelligenceportraitIndicateRegard.layer.borderColor = [UIColor whiteColor].CGColor; + _intelligenceportraitIndicateRegard.layer.borderWidth = 1; + } + return _intelligenceportraitIndicateRegard; +} + +- (UILabel *)monicerSequencignation { + if (!_monicerSequencignation) { + _monicerSequencignation = [[UILabel alloc] init]; + _monicerSequencignation.font = [UIFont systemFontOfSize:12]; + _monicerSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _monicerSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _monicerSequencignation; +} + +- (UIImageView *)bookBackgroundIndicateRegard { + if (!_bookBackgroundIndicateRegard) { + _bookBackgroundIndicateRegard = [[UIImageView alloc] init]; + _bookBackgroundIndicateRegard.image = [UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[UIColorFromRGB(0xFFA936), UIColorFromRGB(0xFFCB47)] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(52, 14)]; + } + return _bookBackgroundIndicateRegard; +} + +- (UILabel *)liveSequencignation { + if (!_liveSequencignation) { + _liveSequencignation = [[UILabel alloc] init]; + _liveSequencignation.font = [UIFont systemFontOfSize:8 weight:UIFontWeightMedium]; + _liveSequencignation.textColor = [UIColor whiteColor]; + _liveSequencignation.text = YMLocalizedString(@"YUMI_Home_Attention_Collection_View_Cell_0"); + } + return _liveSequencignation; +} + +- (UIImageView *)bookIndicateRegard { + if (!_bookIndicateRegard) { + _bookIndicateRegard = [[UIImageView alloc] init]; + _bookIndicateRegard.userInteractionEnabled = YES; + _bookIndicateRegard.animationRepeatCount = 0; + } + return _bookIndicateRegard; +} + +- (NSArray *)brectifynessGarment { + if (!_brectifynessGarment) { + NSMutableArray * array = [NSMutableArray array]; + for (int i = 0; i < 10; i++) { + NSString * imageName = [NSString stringWithFormat:@"home_note_0000%d",i]; + UIImage * image = [UIImage imageNamed:imageName]; + [array addObject:image]; + } + _brectifynessGarment = [array copy]; + } + return _brectifynessGarment; +} + +@end diff --git a/YuMi/Modules/YMNewHome/View/Search/View/Cell/YUMIResidenceDeficitommendAssembletionRegardElement.h b/YuMi/Modules/YMNewHome/View/Search/View/Cell/YUMIResidenceDeficitommendAssembletionRegardElement.h new file mode 100644 index 00000000..9b0557b0 --- /dev/null +++ b/YuMi/Modules/YMNewHome/View/Search/View/Cell/YUMIResidenceDeficitommendAssembletionRegardElement.h @@ -0,0 +1,19 @@ +// +// YMHomeRedommendCollectionViewCell.h +// YUMI +// +// Created by YUMI on 2022/9/23. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class ResidenceEncourageChamberMatrix; +@interface YUMIResidenceDeficitommendAssembletionRegardElement : UICollectionViewCell + +@property (nonatomic,strong, nullable) ResidenceEncourageChamberMatrix *encourageChamberAbstract; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMNewHome/View/Search/View/Cell/YUMIResidenceDeficitommendAssembletionRegardElement.m b/YuMi/Modules/YMNewHome/View/Search/View/Cell/YUMIResidenceDeficitommendAssembletionRegardElement.m new file mode 100644 index 00000000..0bcb8275 --- /dev/null +++ b/YuMi/Modules/YMNewHome/View/Search/View/Cell/YUMIResidenceDeficitommendAssembletionRegardElement.m @@ -0,0 +1,208 @@ +// +// YMHomeRedommendCollectionViewCell.m +// YUMI +// +// Created by YUMI on 2022/9/23. +// + +#import "YUMIResidenceDeficitommendAssembletionRegardElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "NetIndicateRegard.h" +#import "UIImage+Utils.h" +#import "ResidenceEncourageChamberMatrix.h" + +@interface YUMIResidenceDeficitommendAssembletionRegardElement () +@property (nonatomic,strong) UIView * encourageRegard; +@property (nonatomic,strong) NetIndicateRegard *intelligenceportraitIndicateRegard; +@property (nonatomic,strong) UIView * featureAccommoengagementdRegard; +@property (nonatomic,strong) UIImageView *thermalIndicateRegard; +@property (nonatomic,strong) UILabel *numberLabel; +@property (nonatomic,strong) UIImageView *spossessowIndicateRegard; +@property (nonatomic,strong) UILabel *monicerSequencignation; +@property (nonatomic,strong) UIButton *coupleBtuton; +@end + +@implementation YUMIResidenceDeficitommendAssembletionRegardElement + +- (instancetype)initWithFrame:(CGRect)frame +{ + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.encourageRegard]; + + [self.encourageRegard addSubview:self.intelligenceportraitIndicateRegard]; + [self.encourageRegard addSubview:self.spossessowIndicateRegard]; + [self.encourageRegard addSubview:self.featureAccommoengagementdRegard]; + [self.encourageRegard addSubview:self.monicerSequencignation]; + [self.encourageRegard addSubview:self.coupleBtuton]; + + [self.featureAccommoengagementdRegard addSubview:self.thermalIndicateRegard]; + [self.featureAccommoengagementdRegard addSubview:self.numberLabel]; +} + +- (void)initChildLyRestrictions { + [self.encourageRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self); + }]; + + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self); + }]; + + [self.thermalIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(13, 13)); + make.right.mas_equalTo(self.numberLabel.mas_left).offset(-2); + make.centerY.mas_equalTo(self.featureAccommoengagementdRegard); + }]; + + [self.numberLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self.featureAccommoengagementdRegard.mas_right).offset(-4); + make.centerY.mas_equalTo(self.featureAccommoengagementdRegard); + }]; + + [self.spossessowIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.encourageRegard); + make.height.mas_equalTo(48); + make.bottom.mas_equalTo(self.encourageRegard); + }]; + + [self.coupleBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.left.mas_equalTo(self.encourageRegard); + make.size.mas_equalTo(CGSizeMake(54, 20)); + }]; + [self.monicerSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.encourageRegard).offset(6); + make.right.mas_equalTo(self.encourageRegard).offset(-6); + make.centerY.mas_equalTo(self.spossessowIndicateRegard); + }]; + + [self.featureAccommoengagementdRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.thermalIndicateRegard.mas_left).offset(-4); + make.height.mas_equalTo(16); + make.top.mas_equalTo(self.encourageRegard).offset(4); + make.right.mas_equalTo(self.encourageRegard).offset(-4); + }]; + + [self.spossessowIndicateRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(28); + }]; +} + + +#pragma mark - Getters And Setters +- (void)setEncourageChamberAbstract:(ResidenceEncourageChamberMatrix *)encourageChamberAbstract { + _encourageChamberAbstract = encourageChamberAbstract; + if (_encourageChamberAbstract) { + self.intelligenceportraitIndicateRegard.imageUrl = _encourageChamberAbstract.avatar; + self.numberLabel.text = [NSString stringWithFormat:@"%ld", _encourageChamberAbstract.onlineNum]; + self.monicerSequencignation.text = _encourageChamberAbstract.title; + self.featureAccommoengagementdRegard.hidden = NO; + self.coupleBtuton.hidden = NO; + if (_encourageChamberAbstract.crossPking) { + [self.coupleBtuton setTitle:YMLocalizedString(@"YUMI_Home_Redommend_Collection_View_Cell_0") forState:UIControlStateNormal]; + } else { + if (_encourageChamberAbstract.iconContent.length > 0) { + [self.coupleBtuton setTitle:_encourageChamberAbstract.iconContent forState:UIControlStateNormal]; + } else { + self.coupleBtuton.hidden = YES; + } + } + + } else { + self.intelligenceportraitIndicateRegard.image = [UIImage imageNamed:@"yumi_main_recommend_scope_placeholder"]; + self.monicerSequencignation.text = YMLocalizedString(@"YUMI_Home_Redommend_Collection_View_Cell_1"); + self.featureAccommoengagementdRegard.hidden = YES; + self.coupleBtuton.hidden = YES; + } +} + +- (UIView *)encourageRegard { + if (!_encourageRegard) { + _encourageRegard = [[UIView alloc] init]; + _encourageRegard.backgroundColor = [UIColor clearColor]; + _encourageRegard.layer.masksToBounds = YES; + _encourageRegard.layer.cornerRadius = 8; + _encourageRegard.layer.shadowColor = UIColorRGBAlpha(0xE5E5F2, 0.34).CGColor; + _encourageRegard.layer.shadowOffset = CGSizeMake(3, 3); + } + return _encourageRegard; +} + +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _intelligenceportraitIndicateRegard.layer.cornerRadius = 8; + } + return _intelligenceportraitIndicateRegard; +} + +- (UIButton *)coupleBtuton { + if (!_coupleBtuton) { + _coupleBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_coupleBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + _coupleBtuton.titleLabel.font = [UIFont systemFontOfSize:10]; + [_coupleBtuton setBackgroundImage:[UIImage imageNamed:@"yumi_main_recommend_labelbackground"] forState:UIControlStateNormal]; + } + return _coupleBtuton; +} + +- (UIView *)featureAccommoengagementdRegard { + if (!_featureAccommoengagementdRegard) { + _featureAccommoengagementdRegard = [[UIView alloc] init]; + _featureAccommoengagementdRegard.backgroundColor = [UIColor colorWithWhite:0 alpha:0.29]; + _featureAccommoengagementdRegard.layer.masksToBounds = YES; + _featureAccommoengagementdRegard.layer.cornerRadius = 8; + } + return _featureAccommoengagementdRegard; +} + +- (UIImageView *)thermalIndicateRegard { + if (!_thermalIndicateRegard) { + _thermalIndicateRegard = [[UIImageView alloc] init]; + _thermalIndicateRegard.userInteractionEnabled = YES; + _thermalIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_like_collect_scope_hot"]; + } + return _thermalIndicateRegard; +} + +- (UILabel *)monicerSequencignation { + if (!_monicerSequencignation) { + _monicerSequencignation = [[UILabel alloc] init]; + _monicerSequencignation.font = [UIFont boldSystemFontOfSize:12]; + _monicerSequencignation.textColor = [UIColor whiteColor]; + _monicerSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _monicerSequencignation; +} + +- (UILabel *)numberLabel { + if (!_numberLabel) { + _numberLabel = [[UILabel alloc] init]; + _numberLabel.font = [UIFont systemFontOfSize:9]; + _numberLabel.textColor = [UIColor whiteColor]; + } + return _numberLabel; +} + +- (UIImageView *)spossessowIndicateRegard { + if (!_spossessowIndicateRegard) { + _spossessowIndicateRegard = [[UIImageView alloc] init]; + _spossessowIndicateRegard.userInteractionEnabled = YES; + _spossessowIndicateRegard.image = [UIImage imageNamed:@"yumi_main_recommend_nick_shadow_background"]; + } + return _spossessowIndicateRegard; +} + +@end diff --git a/YuMi/Modules/YMNewHome/View/Search/View/Cell/YUMIResidenceHuntforReflectionElement.h b/YuMi/Modules/YMNewHome/View/Search/View/Cell/YUMIResidenceHuntforReflectionElement.h new file mode 100644 index 00000000..19e716eb --- /dev/null +++ b/YuMi/Modules/YMNewHome/View/Search/View/Cell/YUMIResidenceHuntforReflectionElement.h @@ -0,0 +1,18 @@ +// +// YMHomeSearchRecordCell.h +// YUMI +// +// Created by YUMI on 2022/9/5. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIResidenceHuntforReflectionElement : UICollectionViewCell + +@property (nonatomic, copy) NSString *reflectionBWSttr; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMNewHome/View/Search/View/Cell/YUMIResidenceHuntforReflectionElement.m b/YuMi/Modules/YMNewHome/View/Search/View/Cell/YUMIResidenceHuntforReflectionElement.m new file mode 100644 index 00000000..5a7a2d9f --- /dev/null +++ b/YuMi/Modules/YMNewHome/View/Search/View/Cell/YUMIResidenceHuntforReflectionElement.m @@ -0,0 +1,48 @@ +// +// YMHomeSearchRecordCell.m +// YUMI +// +// Created by YUMI on 2022/9/5. +// + +#import "YUMIResidenceHuntforReflectionElement.h" +#import +#import "DJDKMIMOMColor.h" + +@interface YUMIResidenceHuntforReflectionElement () + +@property (nonatomic,strong) UILabel *titleLabel; + +@end + +@implementation YUMIResidenceHuntforReflectionElement + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + self.backgroundColor = [UIColor whiteColor]; + self.layer.cornerRadius = 13; + self.layer.masksToBounds = YES; + [self addSubview:self.titleLabel]; + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.center.mas_equalTo(self); + }]; + } + return self; +} +- (void)setReflectionBWSttr:(NSString *)reflectionBWSttr { + self.titleLabel.text = reflectionBWSttr; +} + +#pragma mark - Getter & Setter +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _titleLabel.font = [UIFont systemFontOfSize:12]; + } + return _titleLabel; +} + + +@end diff --git a/YuMi/Modules/YMNewHome/View/Search/View/SubView/YUMIChamberHuntforEncourageIntelligenceRegard.h b/YuMi/Modules/YMNewHome/View/Search/View/SubView/YUMIChamberHuntforEncourageIntelligenceRegard.h new file mode 100644 index 00000000..3a77caea --- /dev/null +++ b/YuMi/Modules/YMNewHome/View/Search/View/SubView/YUMIChamberHuntforEncourageIntelligenceRegard.h @@ -0,0 +1,16 @@ +// +// YMRoomSearchRecommendHeadView.h +// YUMI +// +// Created by YUMI on 2022/11/16. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIChamberHuntforEncourageIntelligenceRegard : UICollectionReusableView + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMNewHome/View/Search/View/SubView/YUMIChamberHuntforEncourageIntelligenceRegard.m b/YuMi/Modules/YMNewHome/View/Search/View/SubView/YUMIChamberHuntforEncourageIntelligenceRegard.m new file mode 100644 index 00000000..5eba716a --- /dev/null +++ b/YuMi/Modules/YMNewHome/View/Search/View/SubView/YUMIChamberHuntforEncourageIntelligenceRegard.m @@ -0,0 +1,68 @@ +// +// YMRoomSearchRecommendHeadView.m +// YUMI +// +// Created by YUMI on 2022/11/16. +// + +#import "YUMIChamberHuntforEncourageIntelligenceRegard.h" +#import "Masonry/Masonry.h" +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" + +@interface YUMIChamberHuntforEncourageIntelligenceRegard() + +@property (nonatomic, strong) UILabel *emptyTitle; +@property (nonatomic, strong) UILabel *rejudgementChampion; + +@end + +@implementation YUMIChamberHuntforEncourageIntelligenceRegard + +- (instancetype)initWithFrame:(CGRect)frame +{ + self = [super initWithFrame:frame]; + if (self) { + [self initRegard]; + [self initContraints]; + } + return self; +} + +- (void)initRegard { + [self addSubview:self.emptyTitle]; + [self addSubview:self.rejudgementChampion]; +} + +- (void)initContraints { + [self.emptyTitle mas_makeConstraints:^(MASConstraintMaker *make) { + make.center.mas_equalTo(self); + }]; + [self.rejudgementChampion mas_makeConstraints:^(MASConstraintMaker *make) { + make.bottom.mas_equalTo(self); + make.left.mas_equalTo(16); + }]; +} + +- (UILabel *)emptyTitle { + if (!_emptyTitle) { + UILabel *label = [[UILabel alloc] init]; + label.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium]; + label.textColor = [DJDKMIMOMColor essayTertiusPrettify]; + label.text = @"暂无开播厅房~"; + _emptyTitle = label; + } + return _emptyTitle; +} + +- (UILabel *)rejudgementChampion { + if (!_rejudgementChampion) { + UILabel *label = [[UILabel alloc] init]; + label.font = [UIFont systemFontOfSize:14 weight:UIFontWeightMedium]; + label.textColor = [DJDKMIMOMColor mainEssayPrettify]; + label.text = YMLocalizedString(@"YUMI_Room_Search_Recommend_Head_View_1"); + _rejudgementChampion = label; + } + return _rejudgementChampion; +} +@end diff --git a/YuMi/Modules/YMNewHome/View/Search/View/SubView/YUMIResidenceHuntforNevRegard.h b/YuMi/Modules/YMNewHome/View/Search/View/SubView/YUMIResidenceHuntforNevRegard.h new file mode 100644 index 00000000..79cda264 --- /dev/null +++ b/YuMi/Modules/YMNewHome/View/Search/View/SubView/YUMIResidenceHuntforNevRegard.h @@ -0,0 +1,24 @@ +// +// YMHomeSearchNavView.h +// YUMI +// +// Created by YUMI on 2021/11/29. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class YUMIResidenceHuntforNevRegard; +@protocol FBCResidenceHuntforNevRegardRepresendtation +- (void)fBCHoutilizeHuntforNevRegard:(YUMIResidenceHuntforNevRegard *)view didClickBack:(UIButton *)sender; +- (void)fBCHoutilizeHuntforNevRegard:(YUMIResidenceHuntforNevRegard *)view didClickSearch:(UIButton *)sender; +- (void)fBCHoutilizeHuntforNevRegardDistinctEssayUniverse:(YUMIResidenceHuntforNevRegard *)view; + +@end + +@interface YUMIResidenceHuntforNevRegard : UIView +@property (nonatomic,strong,readonly) UITextField *searchTextField; +@property (nonatomic,weak) id delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMNewHome/View/Search/View/SubView/YUMIResidenceHuntforNevRegard.m b/YuMi/Modules/YMNewHome/View/Search/View/SubView/YUMIResidenceHuntforNevRegard.m new file mode 100644 index 00000000..88ab8038 --- /dev/null +++ b/YuMi/Modules/YMNewHome/View/Search/View/SubView/YUMIResidenceHuntforNevRegard.m @@ -0,0 +1,171 @@ +// +// YMHomeSearchNavView.m +// YUMI +// +// Created by YUMI on 2021/11/29. +// + +#import "YUMIResidenceHuntforNevRegard.h" +#import +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" +#import "UIButton+EnlargeTouchArea.h" +@interface YUMIResidenceHuntforNevRegard () + +@property (nonatomic,strong) UIButton *backButton; +@property (nonatomic,strong) UIView * introjectionEncourageRegard; +@property (nonatomic,strong) UIImageView *huntforIndicateRegard; +@property (nonatomic,strong) UITextField *searchTextField; +@property (nonatomic,strong) UIButton *cancleBtuton; + +@end + + +@implementation YUMIResidenceHuntforNevRegard + +- (void)dealloc { + [[NSNotificationCenter defaultCenter] removeObserver:self]; +} + +- (instancetype)initWithFrame:(CGRect)frame +{ + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(essayUniverseDiversifictowardsion:) name:UITextFieldTextDidChangeNotification object:nil]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.backButton]; + [self addSubview:self.introjectionEncourageRegard]; + [self addSubview:self.cancleBtuton]; + + [self.introjectionEncourageRegard addSubview:self.huntforIndicateRegard]; + [self.introjectionEncourageRegard addSubview:self.searchTextField]; +} + +- (void)initChildLyRestrictions { + [self.backButton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(22, 22)); + make.left.mas_equalTo(self).offset(8); + make.centerY.mas_equalTo(self.introjectionEncourageRegard); + }]; + + [self.introjectionEncourageRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(30); + make.left.mas_equalTo(self.backButton.mas_right).offset(5); + make.right.mas_equalTo(self.cancleBtuton.mas_left).offset(-13); + make.top.mas_equalTo(self).offset(statusbarHeight + 10); + }]; + + [self.cancleBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self).offset(-15); + make.centerY.mas_equalTo(self.introjectionEncourageRegard); + make.height.mas_equalTo(30); + }]; + + [self.huntforIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(18, 18)); + make.centerY.mas_equalTo(self.introjectionEncourageRegard); + make.left.mas_equalTo(self.introjectionEncourageRegard).offset(9); + }]; + + [self.searchTextField mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.huntforIndicateRegard.mas_right); + make.right.top.bottom.mas_equalTo(self.introjectionEncourageRegard); + }]; +} + + +#pragma mark - Event Response +- (void)cancleBtutonPerformance:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(fBCHoutilizeHuntforNevRegard:didClickSearch:)]) { + [self.delegate fBCHoutilizeHuntforNevRegard:self didClickSearch:sender]; + } +} + +- (void)encourageBtutonPerformance:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(fBCHoutilizeHuntforNevRegard:didClickBack:)]) { + [self.delegate fBCHoutilizeHuntforNevRegard:self didClickBack:sender]; + } +} + +- (void)essayUniverseDiversifictowardsion:(NSNotification *)notification { + UITextField *essayUniverse = (UITextField *)notification.object; + NSString *searchStr = essayUniverse.text; + if (searchStr.length == 0) { + if (self.delegate && [self.delegate respondsToSelector:@selector(fBCHoutilizeHuntforNevRegardDistinctEssayUniverse:)]) { + [self.delegate fBCHoutilizeHuntforNevRegardDistinctEssayUniverse:self]; + } + } +} + +#pragma mark - Getters And Setters + +- (UIButton *)backButton { + if (!_backButton) { + _backButton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_backButton setImage:[UIImage imageNamed:@"yumi_same_title_back"] forState:UIControlStateNormal]; + [_backButton setImage:[UIImage imageNamed:@"yumi_same_title_back"] forState:UIControlStateSelected]; + [_backButton addTarget:self action:@selector(encourageBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + [_backButton setEnlargeEdgeAboutApex:10 right:5 bottom:10 left:8]; + } + return _backButton; +} + +- (UIView *)introjectionEncourageRegard { + if (!_introjectionEncourageRegard) { + _introjectionEncourageRegard = [[UIView alloc] init]; + _introjectionEncourageRegard.backgroundColor = [DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify]; + _introjectionEncourageRegard.layer.masksToBounds = YES; + _introjectionEncourageRegard.layer.cornerRadius = 15; + } + return _introjectionEncourageRegard; +} + +- (UIImageView *)huntforIndicateRegard { + if (!_huntforIndicateRegard) { + _huntforIndicateRegard = [[UIImageView alloc] init]; + _huntforIndicateRegard.userInteractionEnabled = YES; + _huntforIndicateRegard.image = [UIImage imageNamed:@"yumi_main_title_search"]; + } + return _huntforIndicateRegard; +} + +- (UITextField *)searchTextField { + if (!_searchTextField) { + _searchTextField = [[UITextField alloc] init]; + _searchTextField.layer.cornerRadius = 15; + _searchTextField.layer.masksToBounds = YES; + _searchTextField.tintColor = [DJDKMIMOMColor instantEssayPrettify]; + _searchTextField.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _searchTextField.backgroundColor = [UIColor clearColor]; + _searchTextField.font = [UIFont systemFontOfSize:13]; + NSString *placeholder = [NSString stringWithFormat:YMLocalizedString(@"YUMI_Home_Search_Nav_View_0")]; + _searchTextField.attributedPlaceholder = [[NSAttributedString alloc] initWithString:placeholder attributes:@{NSFontAttributeName : [UIFont systemFontOfSize:13], NSForegroundColorAttributeName : [DJDKMIMOMColor instantEssayPrettify]}]; + _searchTextField.clearButtonMode = UITextFieldViewModeWhileEditing; + _searchTextField.returnKeyType = UIReturnKeySearch; + _searchTextField.enablesReturnKeyAutomatically = YES; + } + return _searchTextField; +} + +- (UIButton *)cancleBtuton { + if (!_cancleBtuton) { + _cancleBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_cancleBtuton setTitle:YMLocalizedString(@"YUMI_Home_Search_Nav_View_1") forState:UIControlStateNormal]; + [_cancleBtuton setTitleColor:[DJDKMIMOMColor instantEssayPrettify] forState:UIControlStateNormal]; + _cancleBtuton.titleLabel.font = [UIFont fontWithName:@"PingFang-SC-Medium" size:16]; + [_cancleBtuton addTarget:self action:@selector(cancleBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + [_cancleBtuton setEnlargeEdgeAboutApex:10 right:10 bottom:10 left:0]; + } + return _cancleBtuton; +} + + +@end diff --git a/YuMi/Modules/YMNewHome/View/Search/View/SubView/YUMIResidenceHuntforRelateRegard.h b/YuMi/Modules/YMNewHome/View/Search/View/SubView/YUMIResidenceHuntforRelateRegard.h new file mode 100644 index 00000000..c23db38d --- /dev/null +++ b/YuMi/Modules/YMNewHome/View/Search/View/SubView/YUMIResidenceHuntforRelateRegard.h @@ -0,0 +1,27 @@ +// +// YMHomeSearchRelateView.h +// YUMI +// +// Created by YUMI on 2022/11/16. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@protocol FBCResidenceHuntforRelateRegardRepresendtation + +- (void)fBCHoutilizeHuntforReltowardseRegardImportChamber:(NSString *)roomUid; + +@end + +@interface YUMIResidenceHuntforRelateRegard : UIView + +@property (nonatomic, strong) NSArray *relateGarment; + +@property (nonatomic, strong) NSArray *encourageGarment; + +@property (nonatomic, weak) id delegate; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMNewHome/View/Search/View/SubView/YUMIResidenceHuntforRelateRegard.m b/YuMi/Modules/YMNewHome/View/Search/View/SubView/YUMIResidenceHuntforRelateRegard.m new file mode 100644 index 00000000..e7820cb8 --- /dev/null +++ b/YuMi/Modules/YMNewHome/View/Search/View/SubView/YUMIResidenceHuntforRelateRegard.m @@ -0,0 +1,179 @@ +// +// YMHomeSearchRelateView.m +// YUMI +// +// Created by YUMI on 2022/11/16. +// + +#import "YUMIResidenceHuntforRelateRegard.h" +#import "Masonry/Masonry.h" +#import "NSArray+Safe.h" +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" +#import "StatsticsticsServingFacilitater.h" +#import "YUMIHuntforStatementTabulationRegardElement.h" +#import "YUMIResidenceDeficitommendAssembletionRegardElement.h" +#import "YUMIChamberHuntforEncourageIntelligenceRegard.h" +#import "ResidenceHuntforConsequentMatrix.h" +#import "ResidenceEncourageChamberMatrix.h" + +@interface YUMIResidenceHuntforRelateRegard() + +@property (nonatomic, strong) UILabel *relateChampion; +@property (nonatomic, strong) UITableView *tableView; +@property (nonatomic, strong) UICollectionView *collectionView; + +@end + +@implementation YUMIResidenceHuntforRelateRegard + +- (instancetype)initWithFrame:(CGRect)frame +{ + self = [super initWithFrame:frame]; + if (self) { + [self initRegard]; + [self initContraints]; + } + return self; +} + +- (void)initRegard { + self.backgroundColor = [DJDKMIMOMColor aplictowardsionEncouragegroundPrettify]; + [self addSubview:self.relateChampion]; + [self addSubview:self.tableView]; + [self addSubview:self.collectionView]; +} + +- (void)initContraints { + [self.relateChampion mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(16); + make.left.mas_equalTo(15); + make.height.mas_equalTo(20); + }]; + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.mas_equalTo(0); + make.top.mas_equalTo(self.relateChampion.mas_bottom).mas_offset(16); + }]; + [self.collectionView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(0); + }]; +} +#pragma mark - tableviewDelegate +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.relateGarment.count; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + YUMIHuntforStatementTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIHuntforStatementTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIHuntforStatementTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIHuntforStatementTabulationRegardElement class])]; + } + ResidenceEncourageChamberMatrix * resultModel = [self.relateGarment secureGroalTowardsIndictowardsrix1:indexPath.row]; + [cell prohibitipositionEachoneTowardsoloudspeaker:resultModel]; + return cell; +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + ResidenceEncourageChamberMatrix * resultModel = [self.relateGarment secureGroalTowardsIndictowardsrix1:indexPath.row]; + if (self.delegate && [self.delegate respondsToSelector:@selector(fBCHoutilizeHuntforReltowardseRegardImportChamber:)]) { + [self.delegate fBCHoutilizeHuntforReltowardseRegardImportChamber:resultModel.uid]; + } +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + return 74; +} + +#pragma mark - collectionViewDelegate +- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { + return self.encourageGarment.count; +} + +- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { + YUMIResidenceDeficitommendAssembletionRegardElement * cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([YUMIResidenceDeficitommendAssembletionRegardElement class]) forIndexPath:indexPath]; + ResidenceEncourageChamberMatrix * info = [self.encourageGarment secureGroalTowardsIndictowardsrix1:indexPath.row]; + cell.encourageChamberAbstract = info; + return cell; +} + +- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath { + return CGSizeMake(100 * kScreenScale, 100 * kScreenScale); +} + +- (UICollectionReusableView *)collectionView:(UICollectionView *)collectionView viewForSupplementaryElementOfKind:(NSString *)kind atIndexPath:(NSIndexPath *)indexPath { + YUMIChamberHuntforEncourageIntelligenceRegard *intelligenceRegard = [collectionView dequeueReusableSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:NSStringFromClass([YUMIChamberHuntforEncourageIntelligenceRegard class]) forIndexPath:indexPath]; + return intelligenceRegard; +} + +- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath { + [collectionView deselectItemAtIndexPath:indexPath animated:YES]; + if (self.encourageGarment.count > 0) { + ResidenceEncourageChamberMatrix * recommend = [self.encourageGarment secureGroalTowardsIndictowardsrix1:indexPath.row]; + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventRoom_allinsearch_entry_room_click eventAttributes:@{@"roomTitle" :recommend.title}]; + if (self.delegate && [self.delegate respondsToSelector:@selector(fBCHoutilizeHuntforReltowardseRegardImportChamber:)]) { + [self.delegate fBCHoutilizeHuntforReltowardseRegardImportChamber:recommend.roomUid]; + } + } +} + +- (void)setRelateGarment:(NSArray *)relateGarment { + _relateGarment = relateGarment; + [self.tableView reloadData]; + self.collectionView.hidden = YES; + self.relateChampion.hidden = NO; + self.tableView.hidden = NO; +} + +- (void)setEncourageGarment:(NSArray *)encourageGarment { + _encourageGarment = encourageGarment; + [self.collectionView reloadData]; + self.collectionView.hidden = NO; + self.relateChampion.hidden = YES; + self.tableView.hidden = YES; +} + +- (UILabel *)relateChampion { + if (!_relateChampion) { + UILabel *label = [[UILabel alloc] init]; + label.font = [UIFont systemFontOfSize:14 weight:UIFontWeightMedium]; + label.textColor = [DJDKMIMOMColor mainEssayPrettify]; + label.text = YMLocalizedString(@"YUMI_Home_Search_Relate_View_0"); + _relateChampion = label; + } + return _relateChampion; +} + +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.tableHeaderView = [UIView new]; + _tableView.tableFooterView = [UIView new]; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.backgroundColor = [UIColor clearColor]; + _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + [_tableView registerClass:[YUMIHuntforStatementTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIHuntforStatementTabulationRegardElement class])]; + } + return _tableView; +} + +- (UICollectionView *)collectionView{ + if (!_collectionView) { + UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init]; + layout.headerReferenceSize = CGSizeMake(KScreenWidth, 200); + layout.minimumLineSpacing = 8; + layout.minimumInteritemSpacing = 0; + layout.scrollDirection = UICollectionViewScrollDirectionVertical; + layout.sectionInset = UIEdgeInsetsMake(15, 15, 0, 15); + _collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout]; + _collectionView.dataSource = self; + _collectionView.delegate = self; + _collectionView.backgroundColor = [UIColor clearColor]; + [_collectionView registerClass:[YUMIResidenceDeficitommendAssembletionRegardElement class] forCellWithReuseIdentifier:NSStringFromClass([YUMIResidenceDeficitommendAssembletionRegardElement class])]; + [_collectionView registerClass:[YUMIChamberHuntforEncourageIntelligenceRegard class] forSupplementaryViewOfKind:UICollectionElementKindSectionHeader withReuseIdentifier:NSStringFromClass([YUMIChamberHuntforEncourageIntelligenceRegard class])]; + } + return _collectionView; +} + +@end diff --git a/YuMi/Modules/YMNewHome/View/Search/View/YUMIChamberHuntforAccommodatedRegardGovernancer.h b/YuMi/Modules/YMNewHome/View/Search/View/YUMIChamberHuntforAccommodatedRegardGovernancer.h new file mode 100644 index 00000000..b1a64a9b --- /dev/null +++ b/YuMi/Modules/YMNewHome/View/Search/View/YUMIChamberHuntforAccommodatedRegardGovernancer.h @@ -0,0 +1,16 @@ +// +// YMRoomSearchContaierViewController.h +// YUMI +// +// Created by YUMI on 2021/12/2. +// + +#import "MvpRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIChamberHuntforAccommodatedRegardGovernancer : MvpRegardGovernancer + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMNewHome/View/Search/View/YUMIChamberHuntforAccommodatedRegardGovernancer.m b/YuMi/Modules/YMNewHome/View/Search/View/YUMIChamberHuntforAccommodatedRegardGovernancer.m new file mode 100644 index 00000000..b6088d80 --- /dev/null +++ b/YuMi/Modules/YMNewHome/View/Search/View/YUMIChamberHuntforAccommodatedRegardGovernancer.m @@ -0,0 +1,282 @@ +// +// YMRoomSearchContaierViewController.m +// YUMI +// +// Created by YUMI on 2021/12/2. +// + +#import "YUMIChamberHuntforAccommodatedRegardGovernancer.h" +#import +#import +#import +#import "YUMIMacroUitls.h" +#import "DJDKMIMOMColor.h" +#import "YUMIResidenceHuntforNevRegard.h" +#import "MKJPopup.h" +#import "StatsticsticsServingFacilitater.h" +#import "YUMIResidenceHuntforRegardGovernancer.h" +#import "YUMIChamberHuntforReflectionRegardGovernancer.h" +#import "YUMIResidenceHuntforRelateRegard.h" +#import "YUMIChamberRegardGovernancer.h" +#import "YUMIResidenceHuntforExternalizer.h" +#import "FBCResidenceHuntforCeremony.h" + +UIKIT_EXTERN NSString *kFromSearchToHomeViewKey; +UIKIT_EXTERN NSString *kTabShowAnchorCardKey; + +@interface YUMIChamberHuntforAccommodatedRegardGovernancer () +@property (nonatomic, strong) NSArray *titles; +@property (nonatomic, strong) JXCategoryTitleView *titleView; +@property (nonatomic, strong) JXCategoryListContainerView *contentView; +@property (nonatomic,strong) YUMIResidenceHuntforNevRegard *huntforRegard; +@property (nonatomic,strong) YUMIResidenceHuntforRegardGovernancer *chamberVewC; +@property (nonatomic,strong) YUMIResidenceHuntforRegardGovernancer *consumerVewC; +@property (nonatomic, strong) YUMIChamberHuntforReflectionRegardGovernancer *reflectionVewc; +@property (nonatomic, strong) YUMIResidenceHuntforRelateRegard *relateRegard; + +@end + +@implementation YUMIChamberHuntforAccommodatedRegardGovernancer + + +- (YUMIResidenceHuntforExternalizer *)producePresimport { + return [[YUMIResidenceHuntforExternalizer alloc] init]; +} + +- (BOOL)isVeiledNevObstacle { + return YES; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initSubViews]; + [self initChildLyRestrictions]; + self.modalPresentationStyle = UIModalPresentationOverFullScreen; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self.view addSubview:self.huntforRegard]; + [self.view addSubview:self.titleView]; + [self.view addSubview:self.contentView]; + [self.view addSubview:self.reflectionVewc.view]; + [self addChildViewController:self.reflectionVewc]; +} + +- (void)initChildLyRestrictions { + [self.huntforRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self.view); + make.height.mas_equalTo(kNavigationHeight); + }]; + + [self.titleView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.view); + make.top.mas_equalTo(self.huntforRegard.mas_bottom).offset(10); + make.height.mas_equalTo(50); + }]; + + [self.contentView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.titleView.mas_bottom).offset(10); + make.left.right.bottom.mas_equalTo(self.view); + }]; + [self.reflectionVewc.view mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.view); + make.top.mas_equalTo(self.huntforRegard.mas_bottom); + make.bottom.mas_equalTo(self.view); + }]; +} + +- (void)huntforVewCLoadTowardsoloudspeaker:(NSString *)text { + self.reflectionVewc.view.hidden = YES; + [self.chamberVewC searchText:text]; + [self.consumerVewC searchText:text]; +} + +#pragma mark - JXCategoryViewDelegate +- (NSInteger)numberOfListsInlistContainerView:(JXCategoryListContainerView *)listContainerView { + return self.titles.count; +} + +- (id)listContainerView:(JXCategoryListContainerView *)listContainerView initListForIndex:(NSInteger)index { + if (index == 0) { + return self.chamberVewC; + } + return self.consumerVewC; +} + +#pragma mark - UITextFieldDelegate +- (BOOL)textFieldShouldReturn:(UITextField *)essayUniverse { + if (essayUniverse.text.length > 0) { + [essayUniverse resignFirstResponder]; + [self huntforVewCLoadTowardsoloudspeaker:essayUniverse.text]; + [self.reflectionVewc storeHuntforReflection:essayUniverse.text]; + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventRoom_search_input_click eventAttributes:@{@"searchWord":essayUniverse.text}]; + } else { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_Room_Search_Container_View_Controller_0")]; + } + return YES; +} + +#pragma mark -FBCResidenceHuntforNevRegardRepresendtation +- (void)fBCHoutilizeHuntforNevRegard:(YUMIResidenceHuntforNevRegard *)view didClickSearch:(UIButton *)sender { + if (view.searchTextField.text.length > 0) { + [view.searchTextField resignFirstResponder]; + [self.reflectionVewc storeHuntforReflection:view.searchTextField.text]; + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventRoom_search_input_click eventAttributes:@{@"searchWord":view.searchTextField.text}]; + } else { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_Room_Search_Container_View_Controller_1")]; + } +} + +- (void)fBCHoutilizeHuntforNevRegard:(YUMIResidenceHuntforNevRegard *)view didClickBack:(UIButton *)sender { + [view.searchTextField resignFirstResponder]; + BOOL result = [[NSUserDefaults standardUserDefaults] boolForKey:kFromSearchToHomeViewKey]; + if (!result) { + [[NSUserDefaults standardUserDefaults] setBool:YES forKey:kFromSearchToHomeViewKey]; + [[NSUserDefaults standardUserDefaults] synchronize]; + [[NSNotificationCenter defaultCenter] postNotificationName:kTabShowAnchorCardKey object:nil]; + } + [self dismissViewControllerAnimated:YES completion:nil]; +} + +- (void)fBCHoutilizeHuntforNevRegardDistinctEssayUniverse:(YUMIResidenceHuntforNevRegard *)view { + self.reflectionVewc.view.hidden = NO; + [self.reflectionVewc refurbishHuntforReflection]; + [self.relateRegard removeFromSuperview]; +} + +#pragma mark - FBCChamberHuntforRecordRegardGovernancerRepresendtation +- (void)yUMIChamberHuntforReflectionRegardGovernancerHuntforAboutWord:(NSString *)word { + if (word.length > 0) { + self.huntforRegard.searchTextField.text = word; + [self huntforVewCLoadTowardsoloudspeaker:word]; + [self.reflectionVewc storeHuntforReflection:word]; + } else { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_Room_Search_Container_View_Controller_2")]; + } +} + +- (void)yUMIChamberHuntforReflectionRegardGovernancerEachoneHuntfor:(NSString *)word sid:(nonnull NSString *)sid { + self.huntforRegard.searchTextField.text = word; +} + +#pragma mark - FBCResidenceHuntforCeremony +- (void)everyoneHuntforSttowardsementAccomplishment:(NSArray *)list { + if (list.count) { + [self.view addSubview:self.relateRegard]; + [self.relateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.mas_equalTo(0); + make.top.mas_equalTo(self.huntforRegard.mas_bottom); + }]; + self.relateRegard.relateGarment = list; + } else { + [self.presimport acquireResidenceEncourageChamberSttowardsement]; + } +} + +- (void)huntforChamberAcquireEncourageAccomplishment:(NSArray *)data { + if (data.count) { + [self.view addSubview:self.relateRegard]; + [self.relateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.mas_equalTo(0); + make.top.mas_equalTo(self.huntforRegard.mas_bottom); + }]; + self.relateRegard.encourageGarment = data; + } +} + +- (void)huntforChamberAcquireEncourageFlunk { + +} + +#pragma mark - FBCResidenceHuntforRelateRegardRepresendtation +- (void)fBCHoutilizeHuntforReltowardseRegardImportChamber:(NSString *)roomUid { + BOOL result = [[NSUserDefaults standardUserDefaults] boolForKey:kFromSearchToHomeViewKey]; + if (!result) { + [[NSUserDefaults standardUserDefaults] setBool:YES forKey:kFromSearchToHomeViewKey]; + [[NSUserDefaults standardUserDefaults] synchronize]; + [[NSNotificationCenter defaultCenter] postNotificationName:kTabShowAnchorCardKey object:@{@"delayShow" : @(YES)}]; + } + [self dismissViewControllerAnimated:YES completion:nil]; + [YUMIChamberRegardGovernancer unfoildChamber:roomUid viewController:self.presentingViewController]; +} + +#pragma mark - Getters And Setters +- (JXCategoryTitleView *)titleView { + if (!_titleView) { + _titleView = [[JXCategoryTitleView alloc] init]; + _titleView.delegate = self; + _titleView.titles = self.titles; + _titleView.titleColor = [DJDKMIMOMColor instantEssayPrettify]; + _titleView.titleSelectedColor = [DJDKMIMOMColor mainEssayPrettify]; + _titleView.titleFont = [UIFont fontWithName:@"PingFang-SC-Medium" size:16]; + _titleView.titleSelectedFont = [UIFont fontWithName:@"PingFang-SC-Medium" size:16]; + _titleView.titleLabelAnchorPointStyle = JXCategoryTitleLabelAnchorPointStyleCenter; + _titleView.contentScrollViewClickTransitionAnimationEnabled = NO; + _titleView.defaultSelectedIndex = 0; + _titleView.listContainer = self.contentView; + + JXCategoryIndicatorLineView *burlywoodRegard = [[JXCategoryIndicatorLineView alloc] init]; + burlywoodRegard.indicatorColor = [DJDKMIMOMColor aplictowardsionMainPrettify]; + burlywoodRegard.indicatorWidth = 8.f; + burlywoodRegard.indicatorHeight = 4.f; + burlywoodRegard.indicatorCornerRadius = 2.f; + _titleView.indicators = @[burlywoodRegard]; + } + return _titleView; +} + +- (JXCategoryListContainerView *)contentView { + if (!_contentView) { + _contentView = [[JXCategoryListContainerView alloc] initWithType:JXCategoryListContainerType_ScrollView delegate:self]; + _contentView.defaultSelectedIndex = 0; + } + return _contentView; +} + +- (NSArray *)titles { + return @[@"房间", YMLocalizedString(@"YUMI_Room_Search_Container_View_Controller_4")]; +} + +- (YUMIResidenceHuntforNevRegard *)huntforRegard { + if (!_huntforRegard) { + _huntforRegard = [[YUMIResidenceHuntforNevRegard alloc] init]; + _huntforRegard.delegate = self; + _huntforRegard.searchTextField.delegate = self; + } + return _huntforRegard; +} + +- (YUMIResidenceHuntforRegardGovernancer *)chamberVewC { + if (!_chamberVewC) { + _chamberVewC = [[YUMIResidenceHuntforRegardGovernancer alloc] init]; + _chamberVewC.type = SearchGenre_Room; + } + return _chamberVewC; +} + +- (YUMIResidenceHuntforRegardGovernancer *)consumerVewC { + if (!_consumerVewC) { + _consumerVewC = [[YUMIResidenceHuntforRegardGovernancer alloc] init]; + _consumerVewC.type = SearchGenre_Users; + } + return _consumerVewC; +} + +- (YUMIChamberHuntforReflectionRegardGovernancer *)reflectionVewc { + if (!_reflectionVewc) { + _reflectionVewc = [[YUMIChamberHuntforReflectionRegardGovernancer alloc] init]; + _reflectionVewc.delegate = self; + } + return _reflectionVewc; +} + +- (YUMIResidenceHuntforRelateRegard *)relateRegard { + if (!_relateRegard) { + _relateRegard = [[YUMIResidenceHuntforRelateRegard alloc] init]; + _relateRegard.delegate = self; + } + return _relateRegard; +} + +@end diff --git a/YuMi/Modules/YMNewHome/View/Search/View/YUMIChamberHuntforReflectionRegardGovernancer.h b/YuMi/Modules/YMNewHome/View/Search/View/YUMIChamberHuntforReflectionRegardGovernancer.h new file mode 100644 index 00000000..ca454cdc --- /dev/null +++ b/YuMi/Modules/YMNewHome/View/Search/View/YUMIChamberHuntforReflectionRegardGovernancer.h @@ -0,0 +1,29 @@ +// +// YMRoomSearchRecordViewController.h +// YUMI +// +// Created by YUMI on 2022/9/5. +// + +#import "MvpRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN + +@protocol FBCChamberHuntforRecordRegardGovernancerRepresendtation + +- (void)yUMIChamberHuntforReflectionRegardGovernancerHuntforAboutWord:(NSString *)word; + +- (void)yUMIChamberHuntforReflectionRegardGovernancerEachoneHuntfor:(NSString *)word sid:(NSString *)sid; + +@end + +@interface YUMIChamberHuntforReflectionRegardGovernancer : MvpRegardGovernancer + +@property (nonatomic, weak) id delegate; +- (void)storeHuntforReflection:(NSString *)record; + +- (void)refurbishHuntforReflection; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMNewHome/View/Search/View/YUMIChamberHuntforReflectionRegardGovernancer.m b/YuMi/Modules/YMNewHome/View/Search/View/YUMIChamberHuntforReflectionRegardGovernancer.m new file mode 100644 index 00000000..39950afa --- /dev/null +++ b/YuMi/Modules/YMNewHome/View/Search/View/YUMIChamberHuntforReflectionRegardGovernancer.m @@ -0,0 +1,488 @@ +// +// YMRoomSearchRecordViewController.m +// YUMI +// +// Created by YUMI on 2022/9/5. +// + +#import "YUMIChamberHuntforReflectionRegardGovernancer.h" +#import +#import "DJDKMIMOMColor.h" +#import "AccountAbstractStorage.h" +#import "MKJPopup.h" +#import "NSArray+Safe.h" +#import "StatsticsticsServingFacilitater.h" +#import "ClientDisposition.h" +#import "YUMIResidenceConsiderationAssembletionRegardElement.h" +#import "YUMIResidenceHuntforReflectionElement.h" +#import "YUMIChamberRegardGovernancer.h" +#import "YUMIManeConsumerAbstractRegardGovernancer.h" +#import "YUMIManeSimpleConsumerAbstractRegardGovernancer.h" +#import "YUMIInChamberReflectionExternalizer.h" +#import "FBCInChamberRecordCeremony.h" +#import "YUMIManeTerminalImpressionMatrix.h" +#import "ResidenceEveryOneHuntforMatrix.h" + +NSString * const XPConstSearchRecordStoreKey = @"XPConstSearchRecordStoreKey"; + +@interface YUMIChamberHuntforReflectionRegardGovernancer () + +@property (nonatomic, strong) UIStackView *satisfperformanceHierarchyRegard; +@property (nonatomic, strong) UIView *entiretyHuntforSatisfperformanceRegard; +@property (nonatomic, strong) UILabel *eachSoleChampion; +@property (nonatomic, strong) UICollectionView *eachSoleAssembletionRegard; +@property (nonatomic, strong) UIView *huntforSatisfperformanceRegard; +@property (nonatomic, strong) UIView *chamberSatisfperformanceRegard; +@property (nonatomic, strong) UIView *deparatmentMaintainrietaryRegard; +@property (nonatomic, strong) UILabel *reflectionChampion; +@property (nonatomic, strong) UIButton *distinctReflectionBtuton; +@property (nonatomic, strong) UILabel *roomTitle; +@property (nonatomic, strong) UIButton *distinctChamberBtuton; +@property (nonatomic, strong) UICollectionView *huntforAssembletionRegard; +@property (nonatomic, strong) UICollectionView *chamberAssembletionRegard; +@property (nonatomic, strong) NSMutableArray *huntforStatement; +@property (nonatomic, strong) NSMutableArray *inChamberStatement; +@property (nonatomic, strong) NSMutableArray *eachoneHuntforStatement; + +@end + +@implementation YUMIChamberHuntforReflectionRegardGovernancer + +- (YUMIInChamberReflectionExternalizer *)producePresimport { + return [[YUMIInChamberReflectionExternalizer alloc] init]; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initSubViews]; + [self initChildLyRestrictions]; + [self initHuntforReflectionTowardsoloudspeaker]; + [self.presimport acquireInChamberReflectionSttowardsement]; +} + +- (void)initHuntforReflectionTowardsoloudspeaker { + [self.huntforStatement removeAllObjects]; + NSArray *array = [self huntforReflectionSttowardsement]; + [self.huntforStatement addObjectsFromArray:array]; + self.huntforSatisfperformanceRegard.hidden = array.count == 0; + [self.huntforAssembletionRegard reloadData]; +} + +- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { + [self.view endEditing:YES]; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self.view addSubview:self.satisfperformanceHierarchyRegard]; + + [self.satisfperformanceHierarchyRegard addArrangedSubview:self.entiretyHuntforSatisfperformanceRegard]; + [self.satisfperformanceHierarchyRegard addArrangedSubview:self.huntforSatisfperformanceRegard]; + [self.satisfperformanceHierarchyRegard addArrangedSubview:self.chamberSatisfperformanceRegard]; + [self.satisfperformanceHierarchyRegard addArrangedSubview:self.deparatmentMaintainrietaryRegard]; + + [self.entiretyHuntforSatisfperformanceRegard addSubview:self.eachSoleChampion]; + [self.entiretyHuntforSatisfperformanceRegard addSubview:self.eachSoleAssembletionRegard]; + + [self.huntforSatisfperformanceRegard addSubview:self.reflectionChampion]; + [self.huntforSatisfperformanceRegard addSubview:self.distinctReflectionBtuton]; + [self.huntforSatisfperformanceRegard addSubview:self.huntforAssembletionRegard]; + [self.chamberSatisfperformanceRegard addSubview:self.roomTitle]; + [self.chamberSatisfperformanceRegard addSubview:self.distinctChamberBtuton]; + [self.chamberSatisfperformanceRegard addSubview:self.chamberAssembletionRegard]; +} + +- (void)initChildLyRestrictions { + [self.satisfperformanceHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.right.left.bottom.mas_equalTo(self.view); + }]; + [self.entiretyHuntforSatisfperformanceRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(0); + make.bottom.mas_equalTo(self.eachSoleAssembletionRegard); + }]; + [self.eachSoleChampion mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.entiretyHuntforSatisfperformanceRegard).mas_offset(16); + make.top.mas_equalTo(self.entiretyHuntforSatisfperformanceRegard).mas_offset(16); + make.height.mas_equalTo(20); + }]; + [self.eachSoleAssembletionRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.entiretyHuntforSatisfperformanceRegard); + make.top.mas_equalTo(self.eachSoleChampion.mas_bottom).mas_offset(8); + make.height.mas_equalTo(26); + }]; + + [self.huntforSatisfperformanceRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(0); + make.bottom.mas_equalTo(self.huntforAssembletionRegard.mas_bottom); + }]; + + [self.reflectionChampion mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(16); + make.top.mas_equalTo(self.huntforSatisfperformanceRegard).mas_offset(20); + make.height.mas_equalTo(20); + }]; + [self.distinctReflectionBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(-16); + make.centerY.mas_equalTo(self.reflectionChampion); + make.width.height.mas_equalTo(30); + }]; + [self.huntforAssembletionRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.view); + make.height.mas_equalTo(26); + make.top.mas_equalTo(self.reflectionChampion.mas_bottom).mas_offset(8); + }]; + + [self.chamberSatisfperformanceRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(0); + make.bottom.mas_equalTo(self.chamberAssembletionRegard.mas_bottom); + }]; + + [self.roomTitle mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(16); + make.top.mas_equalTo(self.chamberSatisfperformanceRegard).mas_offset(20); + make.height.mas_equalTo(20); + }]; + [self.distinctChamberBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(-16); + make.centerY.mas_equalTo(self.roomTitle); + make.width.height.mas_equalTo(30); + }]; + [self.chamberAssembletionRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.view); + make.height.mas_equalTo(75); + make.top.mas_equalTo(self.roomTitle.mas_bottom).mas_offset(8); + }]; +} + +#pragma mark - UICollectionViewDelegate +- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { + if (collectionView == self.huntforAssembletionRegard) { + return self.huntforStatement.count; + } else if (collectionView == self.chamberAssembletionRegard) { + return self.inChamberStatement.count; + } else { + return self.eachoneHuntforStatement.count; + } +} + +- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { + if (collectionView == self.huntforAssembletionRegard) { + YUMIResidenceHuntforReflectionElement *cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([YUMIResidenceHuntforReflectionElement class]) forIndexPath:indexPath]; + cell.reflectionBWSttr = [self.huntforStatement secureGroalTowardsIndictowardsrix1:indexPath.row]; + return cell; + } else if (collectionView == self.eachSoleAssembletionRegard) { + YUMIResidenceHuntforReflectionElement *cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([YUMIResidenceHuntforReflectionElement class]) forIndexPath:indexPath]; + ResidenceEveryOneHuntforMatrix *model = [self.eachoneHuntforStatement secureGroalTowardsIndictowardsrix1:indexPath.row]; + cell.reflectionBWSttr = model.word; + return cell; + } else { + YUMIResidenceConsiderationAssembletionRegardElement *cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([YUMIResidenceConsiderationAssembletionRegardElement class]) forIndexPath:indexPath]; + cell.reflectionChamber = [self.inChamberStatement secureGroalTowardsIndictowardsrix1:indexPath.row]; + return cell; + } +} + +- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath { + if (collectionView == self.huntforAssembletionRegard) { + NSString *str = [self.huntforStatement secureGroalTowardsIndictowardsrix1:indexPath.row]; + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIChamberHuntforReflectionRegardGovernancerHuntforAboutWord:)]) { + [self.delegate yUMIChamberHuntforReflectionRegardGovernancerHuntforAboutWord:str]; + } + } else if (collectionView == self.eachSoleAssembletionRegard) { + ResidenceEveryOneHuntforMatrix *model = [self.eachoneHuntforStatement secureGroalTowardsIndictowardsrix1:indexPath.row]; + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventRoom_allinsearch_entry_click eventAttributes:@{@"searchWord" :model.word}]; + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIChamberHuntforReflectionRegardGovernancerEachoneHuntfor: sid:)]) { + [self.delegate yUMIChamberHuntforReflectionRegardGovernancerEachoneHuntfor:model.word sid:model.sid]; + } + } else { + YUMIManeTerminalImpressionMatrix *resultModel = [self.inChamberStatement secureGroalTowardsIndictowardsrix1:indexPath.row]; + [self dismissViewControllerAnimated:YES completion:nil]; + if (resultModel.valid) { + [YUMIChamberRegardGovernancer unfoildChamber:resultModel.roomUid viewController:self.presentingViewController]; + } else { + if ([ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + YUMIManeConsumerAbstractRegardGovernancer * infoVC = [[YUMIManeConsumerAbstractRegardGovernancer alloc] init]; + infoVC.uid = resultModel.roomUid.integerValue; + [(UINavigationController *)self.presentingViewController pushViewController:infoVC animated:YES]; + }else{ + YUMIManeSimpleConsumerAbstractRegardGovernancer * infoVC = [[YUMIManeSimpleConsumerAbstractRegardGovernancer alloc] init]; + infoVC.uid = resultModel.roomUid.integerValue; + [(UINavigationController *)self.presentingViewController pushViewController:infoVC animated:YES]; + } + } + } +} + +- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath { + if (collectionView == self.huntforAssembletionRegard) { + NSString *str = [self.huntforStatement secureGroalTowardsIndictowardsrix1:indexPath.row]; + CGFloat width = [str boundingRectWithSize:CGSizeMake(200, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes:@{NSFontAttributeName : [UIFont systemFontOfSize:12]} context:nil].size.width; + return CGSizeMake(width + 26, 26); + } else if(collectionView == self.eachSoleAssembletionRegard){ + ResidenceEveryOneHuntforMatrix *model = [self.eachoneHuntforStatement secureGroalTowardsIndictowardsrix1:indexPath.row]; + CGFloat width = [model.word boundingRectWithSize:CGSizeMake(200, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes:@{NSFontAttributeName : [UIFont systemFontOfSize:12]} context:nil].size.width; + return CGSizeMake(width + 26, 26); + } else { + return CGSizeMake(56, 75); + } +} + + +#pragma mark - 搜索记录操作 +- (NSArray *)huntforReflectionSttowardsement { + NSString *key = [NSString stringWithFormat:@"%@_%@", XPConstSearchRecordStoreKey, [AccountAbstractStorage instance].acquireCid]; + NSArray *list = [[NSUserDefaults standardUserDefaults] objectForKey:key]; + return list; +} + +- (void)storeHuntforReflection:(NSString *)record { + if (record == nil || record.length <= 0) { + return; + } + NSString *key = [NSString stringWithFormat:@"%@_%@", XPConstSearchRecordStoreKey, [AccountAbstractStorage instance].acquireCid]; + NSMutableArray *list = [[[NSUserDefaults standardUserDefaults] objectForKey:key] mutableCopy]; + if (list == nil) { + list = [[NSMutableArray alloc] init]; + } + + [list removeObject:record]; + [list insertObject:record atIndex:0]; + + if (list.count > 20) { + [list removeLastObject]; + } + + [[NSUserDefaults standardUserDefaults] setValue:list forKey:key]; + [[NSUserDefaults standardUserDefaults] synchronize]; +} + +- (void)sanitaryHuntforReflection { + NSString *key = [NSString stringWithFormat:@"%@_%@", XPConstSearchRecordStoreKey, [AccountAbstractStorage instance].acquireCid]; + [[NSUserDefaults standardUserDefaults] removeObjectForKey:key]; + [[NSUserDefaults standardUserDefaults] synchronize]; +} + +- (void)refurbishHuntforReflection { + [self initHuntforReflectionTowardsoloudspeaker]; +} + +- (void)acquireEachoneHuntforSttowardsementAccomplishment:(NSArray *)array { + [self.eachoneHuntforStatement removeAllObjects]; + [self.eachoneHuntforStatement addObjectsFromArray:array]; + self.entiretyHuntforSatisfperformanceRegard.hidden = array.count == 0; + [self.eachSoleAssembletionRegard reloadData]; +} + +- (void)acquireInChamberReflectionAccomplishment:(NSArray *)array { + [self.inChamberStatement removeAllObjects]; + [self.inChamberStatement addObjectsFromArray:array]; + [self.chamberAssembletionRegard reloadData]; + if (array.count == 0) { + self.chamberSatisfperformanceRegard.hidden = YES; + } +} + +- (void)sanitaryInChamberReflectionAccomplishment { + [self.inChamberStatement removeAllObjects]; + [self.chamberAssembletionRegard reloadData]; + self.chamberSatisfperformanceRegard.hidden = YES; +} + +#pragma mark - action +- (void)onDistinctHuntforReflectionTicktack:(UIButton *)sender { + MKJPrecautiousDisposition * config = [[MKJPrecautiousDisposition alloc] init]; + config.acknowledgementBtutonDisposition.title = YMLocalizedString(@"YUMI_Room_Search_Record_View_Controller_0"); + config.revocationBtutonDisposition.title = YMLocalizedString(@"YUMI_Room_Search_Record_View_Controller_1"); + config.message = @"确定清空搜索记录吗?"; + [MKJPopup precautiousAboutDisposition:config acknowledgementHandler:^{ + [self sanitaryHuntforReflection]; + [self.huntforStatement removeAllObjects]; + [self.huntforAssembletionRegard reloadData]; + self.huntforSatisfperformanceRegard.hidden = YES; + } cancelHandler:^{ + }]; +} + +- (void)onDistinctChamberTicktack:(UIButton *)sender { + MKJPrecautiousDisposition * config = [[MKJPrecautiousDisposition alloc] init]; + config.acknowledgementBtutonDisposition.title = YMLocalizedString(@"YUMI_Room_Search_Record_View_Controller_3"); + config.revocationBtutonDisposition.title = YMLocalizedString(@"YUMI_Room_Search_Record_View_Controller_4"); + config.message = @"确定清空进房记录吗?"; + [MKJPopup precautiousAboutDisposition:config acknowledgementHandler:^{ + [self.presimport sanitaryInChamberReflection]; + } cancelHandler:^{ + }]; +} + +#pragma mark - getter +- (UIStackView *)satisfperformanceHierarchyRegard { + if (!_satisfperformanceHierarchyRegard) { + _satisfperformanceHierarchyRegard = [[UIStackView alloc] init]; + _satisfperformanceHierarchyRegard.axis = UILayoutConstraintAxisVertical; + _satisfperformanceHierarchyRegard.distribution = UIStackViewDistributionFill; + _satisfperformanceHierarchyRegard.alignment = UIStackViewAlignmentFill; + _satisfperformanceHierarchyRegard.alignment = UIStackViewAlignmentCenter; + _satisfperformanceHierarchyRegard.spacing = 0; + } + return _satisfperformanceHierarchyRegard; +} + +- (UIView *)entiretyHuntforSatisfperformanceRegard { + if (!_entiretyHuntforSatisfperformanceRegard) { + _entiretyHuntforSatisfperformanceRegard = [[UIView alloc] init]; + _entiretyHuntforSatisfperformanceRegard.hidden = YES; + } + return _entiretyHuntforSatisfperformanceRegard; +} + + +- (UILabel *)eachSoleChampion { + if (!_eachSoleChampion) { + UILabel *label = [[UILabel alloc] init]; + label.text = YMLocalizedString(@"YUMI_Room_Search_Record_View_Controller_6"); + label.font = [UIFont systemFontOfSize:14 weight:UIFontWeightBold]; + label.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _eachSoleChampion = label; + } + return _eachSoleChampion; +} + +- (UICollectionView *)eachSoleAssembletionRegard{ + if (!_eachSoleAssembletionRegard) { + UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init]; + layout.minimumLineSpacing = 8; + layout.minimumInteritemSpacing = 8; + layout.sectionInset = UIEdgeInsetsMake(0, 15, 0, 15); + layout.scrollDirection = UICollectionViewScrollDirectionHorizontal; + _eachSoleAssembletionRegard = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout]; + _eachSoleAssembletionRegard.showsHorizontalScrollIndicator = NO; + _eachSoleAssembletionRegard.dataSource = self; + _eachSoleAssembletionRegard.delegate = self; + _eachSoleAssembletionRegard.backgroundColor = [UIColor clearColor]; + [_eachSoleAssembletionRegard registerClass:[YUMIResidenceHuntforReflectionElement class] forCellWithReuseIdentifier:NSStringFromClass([YUMIResidenceHuntforReflectionElement class])]; + } + return _eachSoleAssembletionRegard; +} + +- (UILabel *)reflectionChampion { + if (!_reflectionChampion) { + UILabel *label = [[UILabel alloc] init]; + label.text = YMLocalizedString(@"YUMI_Room_Search_Record_View_Controller_7"); + label.font = [UIFont systemFontOfSize:14 weight:UIFontWeightBold]; + label.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _reflectionChampion = label; + } + return _reflectionChampion; +} + +- (UILabel *)roomTitle { + if (!_roomTitle) { + UILabel *label = [[UILabel alloc] init]; + label.text = YMLocalizedString(@"YUMI_Room_Search_Record_View_Controller_8"); + label.font = [UIFont systemFontOfSize:14 weight:UIFontWeightBold]; + label.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _roomTitle = label; + } + return _roomTitle; +} + +- (UIButton *)distinctReflectionBtuton { + if (!_distinctReflectionBtuton) { + UIButton *btn = [[UIButton alloc] init]; + [btn setImage:[UIImage imageNamed:@"yumi_sessionList_clear"] forState:UIControlStateNormal]; + [btn addTarget:self action:@selector(onDistinctHuntforReflectionTicktack:) forControlEvents:UIControlEventTouchUpInside]; + _distinctReflectionBtuton = btn; + } + return _distinctReflectionBtuton; +} + +- (UIButton *)distinctChamberBtuton { + if (!_distinctChamberBtuton) { + UIButton *btn = [[UIButton alloc] init]; + [btn setImage:[UIImage imageNamed:@"yumi_sessionList_clear"] forState:UIControlStateNormal]; + [btn addTarget:self action:@selector(onDistinctChamberTicktack:) forControlEvents:UIControlEventTouchUpInside]; + _distinctChamberBtuton = btn; + } + return _distinctChamberBtuton; +} + +- (UICollectionView *)huntforAssembletionRegard{ + if (!_huntforAssembletionRegard) { + UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init]; + layout.minimumLineSpacing = 8; + layout.minimumInteritemSpacing = 8; + layout.sectionInset = UIEdgeInsetsMake(0, 15, 0, 15); + layout.scrollDirection = UICollectionViewScrollDirectionHorizontal; + _huntforAssembletionRegard = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout]; + _huntforAssembletionRegard.showsHorizontalScrollIndicator = NO; + _huntforAssembletionRegard.dataSource = self; + _huntforAssembletionRegard.delegate = self; + _huntforAssembletionRegard.backgroundColor = [UIColor clearColor]; + [_huntforAssembletionRegard registerClass:[YUMIResidenceHuntforReflectionElement class] forCellWithReuseIdentifier:NSStringFromClass([YUMIResidenceHuntforReflectionElement class])]; + } + return _huntforAssembletionRegard; +} + +- (UICollectionView *)chamberAssembletionRegard{ + if (!_chamberAssembletionRegard) { + UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init]; + layout.minimumLineSpacing = 8; + layout.minimumInteritemSpacing = 0; + layout.scrollDirection = UICollectionViewScrollDirectionHorizontal; + layout.sectionInset = UIEdgeInsetsMake(0, 15, 0, 15); + _chamberAssembletionRegard = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout]; + _chamberAssembletionRegard.showsHorizontalScrollIndicator = NO; + _chamberAssembletionRegard.dataSource = self; + _chamberAssembletionRegard.delegate = self; + _chamberAssembletionRegard.backgroundColor = [UIColor clearColor]; + [_chamberAssembletionRegard registerClass:[YUMIResidenceConsiderationAssembletionRegardElement class] forCellWithReuseIdentifier:NSStringFromClass([YUMIResidenceConsiderationAssembletionRegardElement class])]; + } + return _chamberAssembletionRegard; +} + +- (NSMutableArray *)huntforStatement { + if (!_huntforStatement) { + _huntforStatement = [NSMutableArray array]; + } + return _huntforStatement; +} + +- (NSMutableArray *)inChamberStatement { + if (!_inChamberStatement) { + _inChamberStatement = [NSMutableArray array]; + } + return _inChamberStatement; +} + +- (NSMutableArray *)eachoneHuntforStatement { + if (!_eachoneHuntforStatement) { + _eachoneHuntforStatement = [NSMutableArray array]; + } + return _eachoneHuntforStatement; +} + +- (UIView *)huntforSatisfperformanceRegard { + if (!_huntforSatisfperformanceRegard) { + _huntforSatisfperformanceRegard = [[UIView alloc] init]; + } + return _huntforSatisfperformanceRegard; +} + +- (UIView *)chamberSatisfperformanceRegard { + if (!_chamberSatisfperformanceRegard) { + _chamberSatisfperformanceRegard = [[UIView alloc] init]; + } + return _chamberSatisfperformanceRegard; +} + +- (UIView *)deparatmentMaintainrietaryRegard { + if (!_deparatmentMaintainrietaryRegard) { + _deparatmentMaintainrietaryRegard = [[UIView alloc] init]; + _deparatmentMaintainrietaryRegard.backgroundColor = [UIColor clearColor]; + [_deparatmentMaintainrietaryRegard setContentHuggingPriority:UILayoutPriorityDragThatCanResizeScene forAxis:UILayoutConstraintAxisHorizontal]; + [_deparatmentMaintainrietaryRegard setContentCompressionResistancePriority:UILayoutPriorityFittingSizeLevel forAxis:UILayoutConstraintAxisHorizontal]; + } + return _deparatmentMaintainrietaryRegard; +} + +@end diff --git a/YuMi/Modules/YMNewHome/View/Search/View/YUMIResidenceHuntforRegardGovernancer.h b/YuMi/Modules/YMNewHome/View/Search/View/YUMIResidenceHuntforRegardGovernancer.h new file mode 100644 index 00000000..1e518be6 --- /dev/null +++ b/YuMi/Modules/YMNewHome/View/Search/View/YUMIResidenceHuntforRegardGovernancer.h @@ -0,0 +1,18 @@ +// +// YMHomeSearchViewController.h +// YUMI +// +// Created by YUMI on 2021/11/29. +// + +#import "MvpRegardGovernancer.h" +#import +#import "YUMIHuntforStatementTabulationRegardElement.h" +NS_ASSUME_NONNULL_BEGIN +@interface YUMIResidenceHuntforRegardGovernancer : MvpRegardGovernancer +@property (nonatomic,assign) SearchGenre type; +- (void)searchText:(NSString *)text; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMNewHome/View/Search/View/YUMIResidenceHuntforRegardGovernancer.m b/YuMi/Modules/YMNewHome/View/Search/View/YUMIResidenceHuntforRegardGovernancer.m new file mode 100644 index 00000000..010c07e8 --- /dev/null +++ b/YuMi/Modules/YMNewHome/View/Search/View/YUMIResidenceHuntforRegardGovernancer.m @@ -0,0 +1,149 @@ +// +// YMHomeSearchViewController.m +// YUMI +// +// Created by YUMI on 2021/11/29. +// + +#import "YUMIResidenceHuntforRegardGovernancer.h" +#import +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" +#import "NSArray+Safe.h" +#import "ClientDisposition.h" +#import "ResidenceHuntforConsequentMatrix.h" +#import "YUMIHuntforStatementTabulationRegardElement.h" +#import "YUMIResidenceHuntforExternalizer.h" +#import "FBCResidenceHuntforCeremony.h" +#import "YUMIChamberRegardGovernancer.h" +#import "YUMIManeConsumerAbstractRegardGovernancer.h" +#import "YUMIManeSimpleConsumerAbstractRegardGovernancer.h" + +UIKIT_EXTERN NSString *kFromSearchToHomeViewKey; +UIKIT_EXTERN NSString *kTabShowAnchorCardKey; + +@interface YUMIResidenceHuntforRegardGovernancer () +@property (nonatomic,strong) UITableView *tableView; +@property (nonatomic,strong) NSArray *datasource; +@end + +@implementation YUMIResidenceHuntforRegardGovernancer + +- (YUMIResidenceHuntforExternalizer *)producePresimport { + return [[YUMIResidenceHuntforExternalizer alloc] init]; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initSubViews]; + [self initChildLyRestrictions]; +} + +- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { + [self.view endEditing:YES]; +} + +#pragma mark - Public Method +- (void)searchText:(NSString *)text { + NSString * type = [NSString stringWithFormat:@"%ld", self.type]; + [self.presimport huntforChamberSttowardsement:text type:type]; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self.view addSubview:self.tableView]; +} + +- (void)initChildLyRestrictions { + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.view); + }]; +} + +#pragma mark - UITableViewDelegate And UITableViewDataSource +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + return 74; +} + +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.datasource.count; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + YUMIHuntforStatementTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIHuntforStatementTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIHuntforStatementTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIHuntforStatementTabulationRegardElement class])]; + } + ResidenceHuntforConsequentMatrix * resultModel = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + [cell prohibitipositionTowardsoloudspeaker:resultModel type:self.type]; + return cell; +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + [tableView deselectRowAtIndexPath:indexPath animated:YES]; + ResidenceHuntforConsequentMatrix * resultModel = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + BOOL result = [[NSUserDefaults standardUserDefaults] boolForKey:kFromSearchToHomeViewKey]; + if (!result) { + [[NSUserDefaults standardUserDefaults] setBool:YES forKey:kFromSearchToHomeViewKey]; + [[NSUserDefaults standardUserDefaults] synchronize]; + [[NSNotificationCenter defaultCenter] postNotificationName:kTabShowAnchorCardKey object:@{@"delayShow" : @(YES)}]; + } + [self dismissViewControllerAnimated:YES completion:nil]; + if (self.type == SearchGenre_Room) { + if (resultModel.valid) { + [YUMIChamberRegardGovernancer unfoildChamber:resultModel.uid viewController:self.presentingViewController]; + } else { + if ([ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + YUMIManeConsumerAbstractRegardGovernancer * infoVC = [[YUMIManeConsumerAbstractRegardGovernancer alloc] init]; + infoVC.uid = resultModel.uid.integerValue; + [(UINavigationController *)self.presentingViewController pushViewController:infoVC animated:YES]; + }else{ + YUMIManeSimpleConsumerAbstractRegardGovernancer * infoVC = [[YUMIManeSimpleConsumerAbstractRegardGovernancer alloc] init]; + infoVC.uid = resultModel.uid.integerValue; + [(UINavigationController *)self.presentingViewController pushViewController:infoVC animated:YES]; + } + } + } else { + if ([ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + YUMIManeConsumerAbstractRegardGovernancer * infoVC = [[YUMIManeConsumerAbstractRegardGovernancer alloc] init]; + infoVC.uid = resultModel.uid.integerValue; + [(UINavigationController *)self.presentingViewController pushViewController:infoVC animated:YES]; + }else{ + YUMIManeSimpleConsumerAbstractRegardGovernancer * infoVC = [[YUMIManeSimpleConsumerAbstractRegardGovernancer alloc] init]; + infoVC.uid = resultModel.uid.integerValue; + [(UINavigationController *)self.presentingViewController pushViewController:infoVC animated:YES]; + } + } +} + +#pragma mark - FBCResidenceHuntforCeremony +- (void)huntforChamberAccomplishment:(NSArray *)data type:(nonnull NSString *)type { + if (type.integerValue == self.type) { + self.datasource = data; + [self.tableView reloadData]; + } +} + +#pragma mark - +- (UIView *)listView { + return self.view; +} + +#pragma mark - Getters And Setters +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.tableHeaderView = [UIView new]; + _tableView.tableFooterView = [UIView new]; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.backgroundColor = [UIColor clearColor]; + if (@available(iOS 11.0, *)) { + _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + [_tableView registerClass:[YUMIHuntforStatementTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIHuntforStatementTabulationRegardElement class])]; + } + return _tableView; +} +@end diff --git a/YuMi/Modules/YMNewHome/View/YUMIResidenceEncourageRegardGovernancer.h b/YuMi/Modules/YMNewHome/View/YUMIResidenceEncourageRegardGovernancer.h new file mode 100644 index 00000000..55eaa60c --- /dev/null +++ b/YuMi/Modules/YMNewHome/View/YUMIResidenceEncourageRegardGovernancer.h @@ -0,0 +1,16 @@ +// +// YUMIResidenceEncourageRegardGovernancer.h +// YuMi +// +// Created by YuMi on 2022/2/21. +// + +#import "MvpRegardGovernancer.h" +#import +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIResidenceEncourageRegardGovernancer : MvpRegardGovernancer + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMNewHome/View/YUMIResidenceEncourageRegardGovernancer.m b/YuMi/Modules/YMNewHome/View/YUMIResidenceEncourageRegardGovernancer.m new file mode 100644 index 00000000..ec18a749 --- /dev/null +++ b/YuMi/Modules/YMNewHome/View/YUMIResidenceEncourageRegardGovernancer.m @@ -0,0 +1,416 @@ +// +// YUMIResidenceEncourageRegardGovernancer.m +// YuMi +// +// Created by YuMi on 2022/2/21. +// + +#import "YUMIResidenceEncourageRegardGovernancer.h" +#import +#import +#import +#import +#import "YUMIMacroUitls.h" +#import "DJDKMIMOMColor.h" +#import "YUMIWeakIntratemporalr.h" +#import "ClientDisposition.h" +#import "UIImage+Utils.h" +#import "Api+Room.h" +#import "Api+RoomSetting.h" +#import "AccountAbstractStorage.h" +#import "MKJPopup.h" +#import "NSArray+Safe.h" +#import "YUMIStrangeResidenceDisportTabulationRegardElement.h" +#import "YUMIStrangeResidenceEncourageTabulationRegardElement.h" +#import "YUMIStrangeResidenceDisportDispossessTabulationRegardElement.h" +#import "YUMIResidenceOriflammeTabulationRegardElement.h" +#import "YUMIStrangeResidenceParatiesTabulationRegardElement.h" +#import "YUMIChamberRegardGovernancer.h" +#import "YUMITissueRegardGovernancer.h" + +#import "ResidenceDisportChamberMatrix.h" +#import "ResidenceOriflammeAbstractMatrix.h" +#import "ResidenceEncourageChamberMatrix.h" +#import "CollectiveSpecificAbstractMatrix.h" +#import "YUMIStrangeResidenceEncourageExternalizer.h" +#import "FBCStrangeResidenceEncourageCeremony.h" +UIKIT_EXTERN NSString * const kShieldingNotification; +@interface YUMIResidenceEncourageRegardGovernancer () +{ + NSTimer * timer; +} +@property (nonatomic,strong) UITableView *tableView; +@property (nonatomic,strong) NSArray *oriflammeStatement; +@property (nonatomic,strong) NSArray *encourageStatement; +@property (nonatomic,strong) NSArray *disportSquadStatement; +@property (nonatomic,strong) NSArray *featurealChamberStatement; +@property (nonatomic,strong) ChamberAbstractMatrix * roomInfo; +@property (nonatomic,assign) BOOL isDemandAtoloudspeaker; + + +@end + +@implementation YUMIResidenceEncourageRegardGovernancer +- (YUMIStrangeResidenceEncourageExternalizer *)producePresimport { + return [[YUMIStrangeResidenceEncourageExternalizer alloc] init]; +} +- (BOOL)isVeiledNevObstacle { + return YES; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initSubViews]; + [self initIntelligencerGrantedTerminalerRrfresh]; + [self addTimer]; + +} + +- (void)viewWillAppear:(BOOL)animated { + [super viewWillAppear:animated]; + if (timer) { + [timer setFireDate:[NSDate distantPast]]; + } +} + +- (void)viewWillDisappear:(BOOL)animated { + [super viewWillDisappear:animated]; + if (timer) { + + [timer setFireDate:[NSDate distantFuture]]; + } +} +-(void)dealloc{ + [[NSNotificationCenter defaultCenter]removeObserver:self]; +} +#pragma mark - InitHttp +- (void)addTimer { + timer = [YUMIWeakIntratemporalr scheduledTimerWithTimeInterval:15 block:^(id userInfo) { + [self requestData]; + } userInfo:nil repeats:YES]; +} +-(void)requestData{ + + @synchronized (self.presimport) { + if(self.isDemandAtoloudspeaker == YES)return; + self.isDemandAtoloudspeaker = YES; + + + dispatch_group_t group =dispatch_group_create(); + + dispatch_queue_t queue =dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0); + + dispatch_group_enter(group); + dispatch_group_async(group, queue, ^{ + + [self.presimport acquireResidenceEncourageChamberSttowardsementAboutGroup:group]; + + }); + dispatch_group_enter(group); + dispatch_group_async(group, queue, ^{ + + [self.presimport acquireDisportCompetitionAboutSquad:1 withGroup:group]; + + }); + dispatch_group_enter(group); + dispatch_group_async(group, queue, ^{ + + [self.presimport acquireResidencesubjectiveChamberSttowardsementAboutGroup:group]; + + }); + dispatch_group_enter(group); + dispatch_group_async(group, queue, ^{ + + [self.presimport acquireResidenceApexOriflammeSttowardsementAboutGroup:group]; + + }); + dispatch_group_enter(group); + dispatch_group_async(group, queue, ^{ + + [self acquireChamberAbstractAboutGroup:group]; + + }); + + + dispatch_group_notify(group,dispatch_get_main_queue(), ^{ + self.isDemandAtoloudspeaker = NO; + [self.tableView.mj_header endRefreshing]; + [self.tableView reloadData]; + }); + + } +} +- (void)intelligenceerRenovtowardseh { + self.isDemandAtoloudspeaker = NO; + [self requestData]; +} +-(void)acquireChamberAbstractAboutGroup:(dispatch_group_t)group{ + NSString* roomUid = [AccountAbstractStorage instance].acquireCid; + [Api acquireChamberAbstract:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + ChamberAbstractMatrix * roomInfo = [ChamberAbstractMatrix mtowardsrixAboutJSON:data.data]; + self.roomInfo = roomInfo; + } + dispatch_group_leave(group); + } uid:roomUid intoUid:roomUid]; +} +- (void)initIntelligencerGrantedTerminalerRrfresh { + MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(intelligenceerRenovtowardseh)]; + header.stateLabel.font = [UIFont systemFontOfSize:10.0]; + header.lastUpdatedTimeLabel.font = [UIFont systemFontOfSize:10.0]; + header.stateLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + header.lastUpdatedTimeLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + self.tableView.mj_header = header; + [self.tableView.mj_header beginRefreshing]; +} + +#pragma mark - Private Method +- (void)initSubViews { + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(shieldingCircular) name:kShieldingNotification object:nil]; + self.view.backgroundColor = [UIColor clearColor]; + [self.view addSubview:self.tableView]; + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.view); + }]; + +} +-(void)shieldingCircular{ + [self requestData]; +} +#pragma mark - UITableViewDelegate And UITableViewDataSource +- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { + return 4; +} + +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + if (section == 0) { + return self.encourageStatement.count > 0 ? 1 : 0; + } else if(section == 1) { + return self.oriflammeStatement.count > 0 ? 1 : 0; + } else if(section == 2) { + return self.encourageStatement != nil ? 1 : 0; + } else { + return self.featurealChamberStatement.count > 0 ? self.featurealChamberStatement.count : 0; + } +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + if (indexPath.section == 0) { + return 160 * kScreenScale; + } else if(indexPath.section == 1) { + return 96; + } else if(indexPath.section == 2) { + return 65; + } else { + return 94; + } +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + if (indexPath.section == 0) { + YUMIStrangeResidenceEncourageTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIStrangeResidenceEncourageTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIStrangeResidenceEncourageTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIStrangeResidenceEncourageTabulationRegardElement class])]; + } + [cell setEncouragesSttowardsement:self.encourageStatement]; + cell.delegate = self; + return cell; + } else if(indexPath.section == 1) { + YUMIResidenceOriflammeTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIResidenceOriflammeTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIResidenceOriflammeTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIResidenceOriflammeTabulationRegardElement class])]; + } + cell.oriflammeStatement = self.oriflammeStatement; + cell.delegate = self; + return cell; + } else if(indexPath.section == 2) { + if (self.disportSquadStatement.count > 0) { + YUMIStrangeResidenceDisportTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIStrangeResidenceDisportTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIStrangeResidenceDisportTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIStrangeResidenceDisportTabulationRegardElement class])]; + } + cell.isClan = YES; + cell.disportChamberStatement = self.disportSquadStatement; + + cell.delegate = self; + + return cell; + } else { + YUMIStrangeResidenceDisportDispossessTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIStrangeResidenceDisportDispossessTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIStrangeResidenceDisportDispossessTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIStrangeResidenceDisportDispossessTabulationRegardElement class])]; + } + + cell.isClan = YES; + cell.delegate = self; + return cell; + } + } else { + YUMIStrangeResidenceParatiesTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIStrangeResidenceParatiesTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIStrangeResidenceParatiesTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIStrangeResidenceParatiesTabulationRegardElement class])]; + } + cell.roomInfo = [self.featurealChamberStatement secureGroalTowardsIndictowardsrix1:indexPath.row]; + return cell; + } +} +- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { + if(section == 0){return 5;} + if (section == 2) { + return 50; + }else if (section == 3){ + return 50; + } + return 0.01; +} + +- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { + UIView * view = [[UIView alloc] init]; + if(self.encourageStatement == nil && section == 2)return view; + if(self.featurealChamberStatement == nil && section == 3)return view; + if (section == 2 || section == 3) { + view.frame = CGRectMake(0,0, KScreenWidth, 50); + + UILabel * label = [[UILabel alloc] init]; + label.textColor = [DJDKMIMOMColor mainEssayPrettify]; + label.font = [UIFont systemFontOfSize:16 weight:UIFontWeightBold]; + if (section == 2) { + label.text = YMLocalizedString(@"YUMI_Home_Recommend_View_Controller_0"); + } else { + label.text = YMLocalizedString(@"YUMI_Home_Recommend_View_Controller_1"); + } + [view addSubview:label]; + + [label mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(16); + make.left.mas_equalTo(view).offset(15); + make.height.mas_equalTo(22); + }]; + } + return view; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section { + return 0.01; +} + +- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section { + return [UIView new]; +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + [tableView deselectRowAtIndexPath:indexPath animated:YES]; + if(indexPath.section == 3) { + if (self.featurealChamberStatement.count > 0) { + ResidenceDisportChamberMatrix * chamberAbstract1 = [self.featurealChamberStatement secureGroalTowardsIndictowardsrix1:indexPath.row]; + if (chamberAbstract1.uid.length > 0) { + [YUMIChamberRegardGovernancer unfoildChamber:chamberAbstract1.uid viewController:self]; + } + } + } +} + +#pragma mark - FBCStrangeResidenceEncourageTabulationViweElementRepresendtation +- (void)yUMIStrangeResidenceEncourageTarbsultowardsionViweElement:(YUMIStrangeResidenceEncourageTabulationRegardElement *)view didSelectItem:(ResidenceEncourageChamberMatrix *)info { + if (info.roomUid.length > 0) { + [YUMIChamberRegardGovernancer unfoildChamber:info.roomUid viewController:self]; + } +} + +#pragma mark - FBCStrangeResidencePlayTabulationViweElementRepresendtation +- (void)yUMIStrangeResidenceDisportTarbsultowardsionViweElement:(YUMIStrangeResidenceDisportTabulationRegardElement *)cell didSelectItem:(ResidenceDisportChamberMatrix *)info { + if (info.uid.length > 0) { + [YUMIChamberRegardGovernancer unfoildChamber:info.uid viewController:self]; + } +} +- (void)concludeCompetitionPerformance{ +} +#pragma mark - FBCStrangeResidencePlayEmptyTabulationViweElementRepresendtation +- (void)prohibitipossessElementConcludeCompetitionPerformance{ +} +#pragma mark - YUMIResidenceOriflammeTabulationRegardElement +- (void)fBCHoutilizeOriflammeTarbsultowardsionViweElement:(YUMIResidenceOriflammeTabulationRegardElement *)view didClickBanner:(ResidenceOriflammeAbstractMatrix *)info { + switch (info.skipType) { + case HomeBannerAbstractSkipGenre_Room: + { + if (info.skipUri.length > 0) { + [YUMIChamberRegardGovernancer unfoildChamber:info.skipUri viewController:self]; + } + } + break; + case HomeBannerAbstractSkipGenre_Web: + { + YUMITissueRegardGovernancer *vc = [[YUMITissueRegardGovernancer alloc]init]; + vc.url = info.skipUri; + [self.navigationController pushViewController:vc animated:YES]; + } + break; + default: + break; + } +} +#pragma mark - FBCResidenceEncourageCeremony +- (void)acquireResidenceApexOriflammeSttowardsementAccomplishment:(NSArray *)list menuList:(NSArray *)memuList withGroup:(nonnull dispatch_group_t)group{ + self.oriflammeStatement = list; + dispatch_group_leave(group); +} + +- (void)acquireResidenceEncourageChamberSttowardsementAccomplishment:(NSArray *)list withGroup:(nonnull dispatch_group_t)group{ + self.encourageStatement= list; + dispatch_group_leave(group); +} +- (void)acquireResidencesubjectiveChamberSttowardsementAccomplishment:(NSArray *)list withGroup:(nonnull dispatch_group_t)group { + NSMutableArray * array = [NSMutableArray array]; + for (ResidenceDisportChamberMatrix * info in list) { + if(info.isBanner) { + self.oriflammeStatement = info.bannerVoList; + } else { + [array addObject:info]; + } + } + self.featurealChamberStatement = array; + dispatch_group_leave(group); +} +- (void)acquireDisportCompetitionAboutSquadAccomplishment:(NSArray *)list withGroup:(nonnull dispatch_group_t)group{ + NSMutableArray * array = [NSMutableArray array]; + for (ResidenceDisportChamberMatrix * info in list) { + if(info.isBanner) { + self.oriflammeStatement = info.bannerVoList; + } else { + [array addObject:info]; + } + } + self.disportSquadStatement = array; + dispatch_group_leave(group); +} + +- (void)acquireResidenceEncourageTowardsoloudspeakerFlunkAboutGroup:(dispatch_group_t)group { + dispatch_group_leave(group); + +} +#pragma mark - JXCategoryListContentViewDelegate +- (UIView *)listView { + return self.view; +} + + +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.tableFooterView = [UIView new]; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.backgroundColor = [UIColor clearColor]; + if (@available(iOS 11.0, *)) { + _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + [_tableView registerClass:[YUMIStrangeResidenceEncourageTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIStrangeResidenceEncourageTabulationRegardElement class])]; + [_tableView registerClass:[YUMIStrangeResidenceDisportTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIStrangeResidenceDisportTabulationRegardElement class])]; + [_tableView registerClass:[YUMIStrangeResidenceDisportDispossessTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIStrangeResidenceDisportDispossessTabulationRegardElement class])]; + [_tableView registerClass:[YUMIResidenceOriflammeTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIResidenceOriflammeTabulationRegardElement class])]; + [_tableView registerClass:[YUMIStrangeResidenceParatiesTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIStrangeResidenceParatiesTabulationRegardElement class])]; + } + return _tableView; +} +@end diff --git a/YuMi/Modules/YMNewHome/View/YUMIResidenceParatiesRegardGovernancer.h b/YuMi/Modules/YMNewHome/View/YUMIResidenceParatiesRegardGovernancer.h new file mode 100644 index 00000000..9a0ed8f6 --- /dev/null +++ b/YuMi/Modules/YMNewHome/View/YUMIResidenceParatiesRegardGovernancer.h @@ -0,0 +1,18 @@ +// +// XPHomeViewController.h +// YuMi +// +// Created by YuMi on 2021/11/29. +// + +#import "MvpRegardGovernancer.h" +#import +NS_ASSUME_NONNULL_BEGIN + + +@interface YUMIResidenceParatiesRegardGovernancer : MvpRegardGovernancer +@property (nonatomic,copy) NSString *suspensionId; +@property (nonatomic,assign) BOOL isKelleg; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMNewHome/View/YUMIResidenceParatiesRegardGovernancer.m b/YuMi/Modules/YMNewHome/View/YUMIResidenceParatiesRegardGovernancer.m new file mode 100644 index 00000000..27f4a6b8 --- /dev/null +++ b/YuMi/Modules/YMNewHome/View/YUMIResidenceParatiesRegardGovernancer.m @@ -0,0 +1,221 @@ +// +// XPHomeViewController.m +// YuMi +// +// Created by YuMi on 2021/11/29. +// + +#import "YUMIResidenceParatiesRegardGovernancer.h" +#import +#import +#import "YUMIMacroUitls.h" +#import "DJDKMIMOMColor.h" +#import "NSArray+Safe.h" +#import "ResidenceEncourageChamberMatrix.h" +#import "YUMIStrangeResidenceParatiesTabulationRegardElement.h" +#import "YUMIChamberCombatDispossessTabulationRegardElement.h" +#import "YUMIResidenceExternalizer.h" +#import "FBCResidenceCeremony.h" +#import "YUMIChamberRegardGovernancer.h" + +@interface YUMIResidenceParatiesRegardGovernancer () +@property (nonatomic,strong) NSMutableArray *datasource; +@property (nonatomic,strong) UITableView *tableView; +@property (nonatomic,assign) int page; +@property (nonatomic,assign) BOOL hasNoFurthaerAtoloudspeaker; +@end + +@implementation YUMIResidenceParatiesRegardGovernancer + +- (BOOL)isVeiledNevObstacle { + return YES; +} + +- (YUMIResidenceExternalizer *)producePresimport { + return [[YUMIResidenceExternalizer alloc] init]; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initIntelligencerGrantedTerminalerRrfresh]; + [self initSubViews]; + [self initChildLyRestrictions]; +} +#pragma mark - Private Method +- (void)initSubViews { + self.view.backgroundColor = [UIColor clearColor]; + [self.view addSubview:self.tableView]; +} + +- (void)initChildLyRestrictions { + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.view); + }]; +} + + +- (void)initIntelligencerGrantedTerminalerRrfresh { + MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(intelligenceerRenovtowardseh)]; + header.stateLabel.font = [UIFont systemFontOfSize:10.0]; + header.lastUpdatedTimeLabel.font = [UIFont systemFontOfSize:10.0]; + header.stateLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + header.lastUpdatedTimeLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + self.tableView.mj_header = header; + + MJRefreshBackNormalFooter *footer = [MJRefreshBackNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(footerRenovtowardseh)]; + footer.stateLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + footer.stateLabel.font = [UIFont systemFontOfSize:10.0]; + self.tableView.mj_footer = footer; + +} + +#pragma mark - 刷新的fangfa +- (void)intelligenceerRenovtowardseh { + self.page = 1; + if (self.isKelleg) { + [self.presimport acquireResidenceFurthaerKellegChamberSttowardsement]; + } else { + [self.presimport acquireEncourageChamberSttowardsement:self.suspensionId page:self.page pageSize:20 state:0]; + } + +} + +- (void)footerRenovtowardseh { + if (self.hasNoFurthaerAtoloudspeaker) { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_Home_Party_View_Controller_0")]; + [self.tableView.mj_footer endRefreshing]; + return; + } + self.page++; + if (self.isKelleg) { + [self.presimport acquireResidenceFurthaerKellegChamberSttowardsement]; + } else { + [self.presimport acquireEncourageChamberSttowardsement:self.suspensionId page:self.page pageSize:20 state:1]; + } +} + +#pragma mark - UITableViewDelegate And UITableViewDataSource +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + if (self.datasource.count > 0) { + YUMIStrangeResidenceParatiesTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIStrangeResidenceParatiesTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIStrangeResidenceParatiesTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIStrangeResidenceParatiesTabulationRegardElement class])]; + } + cell.chamberAbstract1 = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + return cell; + } + YUMIChamberCombatDispossessTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIChamberCombatDispossessTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIChamberCombatDispossessTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIChamberCombatDispossessTabulationRegardElement class])]; + } + return cell; + +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + return 96; +} + +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.datasource.count > 0 ? self.datasource.count : 1; +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + [tableView deselectRowAtIndexPath:indexPath animated:YES]; + if (self.datasource.count > 0) { + ResidenceEncourageChamberMatrix * chamberAbstract1 = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + if (chamberAbstract1.roomUid.length > 0) { + [YUMIChamberRegardGovernancer unfoildChamber:chamberAbstract1.roomUid viewController:self]; + } + } +} + +#pragma mark - FBCResidenceCeremony +- (void)acquireResidenceEncourageChamberSttowardsementAccomplishment:(NSArray *)list state:(BOOL)state { + if (state == 0) { + self.hasNoFurthaerAtoloudspeaker = NO; + [self.datasource removeAllObjects]; + [self.tableView.mj_header endRefreshing]; + } else { + [self.tableView.mj_footer endRefreshing]; + } + if (list.count > 0) { + self.hasNoFurthaerAtoloudspeaker = NO; + [self.datasource addObjectsFromArray:list]; + } else { + self.hasNoFurthaerAtoloudspeaker = YES; + } + [self.tableView reloadData]; +} +- (void)acquireResidenceEncourageChamberSttowardsementFlunk:(NSString *)message state:(BOOL)state { + if (state ==0) { + [self.tableView.mj_header endRefreshing]; + } else { + [self.tableView.mj_footer endRefreshing]; + } +} + +- (void)acquireResidenceFurthaerKellegChamberSttowardsementFlunk:(NSString *)messag { + [self.tableView.mj_header endRefreshing]; + [self.tableView.mj_footer endRefreshing]; +} + +- (void)acquireResidenceFurthaerKellegChamberSttowardsementAccomplishment:(NSArray *)list { + [self.tableView.mj_header endRefreshing]; + [self.tableView.mj_footer endRefreshing]; + [self.datasource removeAllObjects]; + [self.datasource addObjectsFromArray:list]; + [self.tableView reloadData]; +} + +#pragma mark - JXCategoryListContentViewDelegate +- (UIView *)listView { + return self.view; +} +#pragma mark - Getters And Setters + +- (void)setIsKelleg:(BOOL)isKelleg { + _isKelleg = isKelleg; + if (_isKelleg) { + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + [self intelligenceerRenovtowardseh]; + }); + } +} + +- (void)setSuspensionId:(NSString *)suspensionId { + _suspensionId = suspensionId; + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + [self intelligenceerRenovtowardseh]; + }); +} + +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; + _tableView.delegate = self; + _tableView.dataSource = self; + UIView *intelligenceRegard = [[UIView alloc]initWithFrame:CGRectMake(0, 0, KScreenWidth, 18)]; + _tableView.tableHeaderView = intelligenceRegard; + _tableView.tableFooterView = [UIView new]; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.backgroundColor = [UIColor clearColor]; + if (@available(iOS 11.0, *)) { + _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + [_tableView registerClass:[YUMIChamberCombatDispossessTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIChamberCombatDispossessTabulationRegardElement class])]; + [_tableView registerClass:[YUMIStrangeResidenceParatiesTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIStrangeResidenceParatiesTabulationRegardElement class])]; + } + return _tableView; +} + + +- (NSMutableArray *)datasource { + if (!_datasource) { + _datasource = [NSMutableArray array]; + } + return _datasource; +} + + +@end diff --git a/YuMi/Modules/YMNewHome/View/YUMIResidenceSloganRegardGovernancer.h b/YuMi/Modules/YMNewHome/View/YUMIResidenceSloganRegardGovernancer.h new file mode 100644 index 00000000..a8a25f7a --- /dev/null +++ b/YuMi/Modules/YMNewHome/View/YUMIResidenceSloganRegardGovernancer.h @@ -0,0 +1,16 @@ +// +// YMHomeSloganViewController.h +// YUMI +// +// Created by XY on 2023/2/17. +// + +#import "MvpRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIResidenceSloganRegardGovernancer : MvpRegardGovernancer + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMNewHome/View/YUMIResidenceSloganRegardGovernancer.m b/YuMi/Modules/YMNewHome/View/YUMIResidenceSloganRegardGovernancer.m new file mode 100644 index 00000000..c1b787d4 --- /dev/null +++ b/YuMi/Modules/YMNewHome/View/YUMIResidenceSloganRegardGovernancer.m @@ -0,0 +1,297 @@ +// +// YMHomeSloganViewController.m +// YUMI +// +// Created by XY on 2023/2/17. +// + +#import "YUMIResidenceSloganRegardGovernancer.h" +#import "YUMIResidenceConsumerRegard.h" +#import "YUMIMacroUitls.h" +#import "DJDKMIMOMColor.h" +#import "NetIndicateRegard.h" +#import +#import "YUMIWeakIntratemporalr.h" +#import "AccountAbstractStorage.h" +#import "Api+Home.h" +#import "ResidenceEncourageChamberMatrix.h" +#import "YUMIChamberRegardGovernancer.h" +#import "YUMIManeSimpleConsumerAbstractRegardGovernancer.h" + +@interface YUMIResidenceSloganRegardGovernancer () { + NSTimer * timer; +} + +@property (nonatomic, strong) NSMutableArray *consumerRegardArr; +@property (nonatomic, strong) NetIndicateRegard *backgroundIndicateRegard; +@property (nonatomic, strong) UIImageView *constituteIndicateRegard; +@property (nonatomic, strong) UIButton *importChamberBtuton; +@property (nonatomic,strong) NSMutableArray *thermalChamberStatement; + +@end + +@implementation YUMIResidenceSloganRegardGovernancer + + +- (BOOL)isVeiledNevObstacle { + return YES; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self produceUI]; + [self addTimer]; + [self chamberEncourage]; + +} + +- (void)chamberEncourage { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NSString * pageStr = [NSString stringWithFormat:@"%d", 1]; + NSString * pageSizeStr = [NSString stringWithFormat:@"%d", 10]; + [Api acquireEncourageSttowardsementimplementtion:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + NSArray * array = [ResidenceEncourageChamberMatrix mtowardsrixsAboutGarment:data.data]; + [self acquireResidenceEncourageChamberSttowardsementAccomplishment:array]; + } else { + + + } + } uid:uid suspensionId:@"" pageNum:pageStr pageSize:pageSizeStr]; +} + +- (void)viewWillAppear:(BOOL)animated { + [super viewWillAppear:animated]; + if (timer) { + [timer setFireDate:[NSDate distantPast]]; + } +} + +- (void)viewWillDisappear:(BOOL)animated { + [super viewWillDisappear:animated]; + if (timer) { + + [timer setFireDate:[NSDate distantFuture]]; + } +} + +- (void)produceUI { + [self.view addSubview:self.backgroundIndicateRegard]; + [self.view addSubview:self.constituteIndicateRegard]; + [self.view addSubview:self.importChamberBtuton]; + + [self.backgroundIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.view); + }]; + [self.constituteIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(kStatusBarHeight+20); + make.left.mas_equalTo(23); + make.width.mas_equalTo(100); + make.height.mas_equalTo(45); + }]; + + [self.importChamberBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(30); + make.height.mas_equalTo(40); + make.centerY.mas_equalTo(self.constituteIndicateRegard); + make.right.mas_equalTo(self.view).offset(-15); + }]; +} + +- (void)addTimer { + timer = [YUMIWeakIntratemporalr scheduledTimerWithTimeInterval:15 block:^(id userInfo) { + [self chamberEncourage]; + } userInfo:nil repeats:YES]; +} + +#pragma mark - FBCResidenceConsumerRegardRepresendtation + +- (void)consumerRegardTicktackPerformance:(ResidenceEncourageChamberMatrix *)model { + if (model.roomUid.length > 0) { + YUMIManeSimpleConsumerAbstractRegardGovernancer *infoVC = [[YUMIManeSimpleConsumerAbstractRegardGovernancer alloc] init]; + infoVC.uid = [model.roomUid integerValue]; + [self.navigationController pushViewController:infoVC animated:YES]; + } +} + +#pragma mark - FBCResidenceEncourageCeremony + +- (void)acquireResidenceEncourageChamberSttowardsementAccomplishment:(NSArray *)list { + if (list.count > 10) { + list = [list subarrayWithRange:NSMakeRange(0, 9)]; + } + [self.thermalChamberStatement removeAllObjects]; + [self.thermalChamberStatement addObjectsFromArray:list]; + + if (self.consumerRegardArr.count > 0) { + [self transltowardseConsumerRegards]; + return; + } + + for (ResidenceEncourageChamberMatrix *model in self.thermalChamberStatement) { + YUMIResidenceConsumerRegard *consumerRegard = [self EvidenceConsumerRegard:model]; + if(consumerRegard != nil) { + [self.consumerRegardArr addObject:consumerRegard]; + } + } +} + +- (void)acquireResidenceEncourageTowardsoloudspeakerFlunk { + +} + +- (YUMIResidenceConsumerRegard *)EvidenceConsumerRegard:(ResidenceEncourageChamberMatrix *)model { + + CGFloat scale = (arc4random_uniform(50)+1)*0.01 + 0.5; + CGRect rect = [self acquireArbitraryReactangle]; + CGRect scaleRect = rect; + scaleRect.size.width = rect.size.width * scale; + scaleRect.size.height = rect.size.height * scale; + + NSInteger count = 0; + BOOL contain = [self intersectsReactangle:scaleRect]; + while (contain || count < 1000) { + scale = (arc4random_uniform(50)+1)*0.01 + 0.5; + rect = [self acquireArbitraryReactangle]; + scaleRect = rect; + scaleRect.size.width = rect.size.width * scale; + scaleRect.size.height = rect.size.height * scale; + contain = [self intersectsReactangle:scaleRect]; + count++; + } + + if (contain == YES) { + return nil; + } + + YUMIResidenceConsumerRegard *consumerRegard = [[YUMIResidenceConsumerRegard alloc] init]; + consumerRegard.frame = rect; + consumerRegard.transform = CGAffineTransformMakeScale(scale, scale); + consumerRegard.frame = scaleRect; + consumerRegard.delegate = self; + [self.view addSubview:consumerRegard]; + consumerRegard.chamberMatrix = model; + + + consumerRegard.alpha = 0; + [UIView animateWithDuration:0.5 animations:^{ + consumerRegard.alpha = 1; + } completion:^(BOOL finished) { + + }]; + return consumerRegard; + +} + +- (void)transltowardseConsumerRegards { + dispatch_group_t group = dispatch_group_create(); + dispatch_queue_t queue = dispatch_get_main_queue(); + NSUInteger viewCount = self.consumerRegardArr.count; + + for (int i = 0; i< viewCount; i++) { + dispatch_group_enter(group); + YUMIResidenceConsumerRegard *consumerRegard = self.consumerRegardArr[i]; + + [UIView animateWithDuration:0.5 animations:^{ + consumerRegard.alpha = 0; + consumerRegard.transform = CGAffineTransformMakeScale(0.01, 0.01); + } completion:^(BOOL finished) { + [consumerRegard removeFromSuperview]; + [self.consumerRegardArr removeObject:consumerRegard]; + + dispatch_group_leave(group); + }]; + } + dispatch_group_notify(group, queue, ^{ + for (ResidenceEncourageChamberMatrix *model in self.thermalChamberStatement) { + YUMIResidenceConsumerRegard *consumerRegard = [self EvidenceConsumerRegard:model]; + if (consumerRegard !=nil) { + [self.consumerRegardArr addObject:consumerRegard]; + } + } + }); + +} + +- (CGRect)acquireArbitraryReactangle { + @autoreleasepool { + + CGFloat userViewWidth = 120; + CGFloat userViewHeight = 120; + CGFloat statusBarHeight = kStatusBarHeight; + + CGFloat areaWidth = self.view.bounds.size.width - userViewWidth - 5*2; + CGFloat areaHeight = self.view.bounds.size.height - statusBarHeight - 70 - 90- userViewHeight; + + CGFloat x = arc4random_uniform(areaWidth)+5; + CGFloat y = arc4random_uniform(areaHeight)+statusBarHeight+ 70; + + CGRect rect = CGRectMake(x, y, userViewWidth, userViewHeight); + return rect; + } +} + +- (BOOL)intersectsReactangle:(CGRect)targetRect { + @autoreleasepool { + for (YUMIResidenceConsumerRegard *consumerRegard in self.consumerRegardArr) { + CGRect frame = consumerRegard.frame; + BOOL b = CGRectIntersectsRect(targetRect, frame); + if (b) { + return YES; + } + } + return NO; + } +} + +- (void)similarBtutonPerformance:(UIButton *)sender { + NSString* roomUid = [AccountAbstractStorage instance].acquireCid; + [YUMIChamberRegardGovernancer unfoildChamber:roomUid viewController:self]; +} + +#pragma mark - 懒加载 + +- (NSMutableArray *)consumerRegardArr { + if (!_consumerRegardArr) { + _consumerRegardArr = [NSMutableArray array]; + } + return _consumerRegardArr; +} + +- (NSMutableArray *)thermalChamberStatement { + if (!_thermalChamberStatement) { + _thermalChamberStatement = [NSMutableArray array]; + } + return _thermalChamberStatement; +} + +- (NetIndicateRegard *)backgroundIndicateRegard { + if (!_backgroundIndicateRegard) { + _backgroundIndicateRegard = [[NetIndicateRegard alloc] init]; + _backgroundIndicateRegard.contentMode = UIViewContentModeScaleAspectFill; + _backgroundIndicateRegard.image = [UIImage imageNamed:@"yumi_main_background"]; + } + return _backgroundIndicateRegard; +} + +- (UIImageView *)constituteIndicateRegard { + if (!_constituteIndicateRegard) { + _constituteIndicateRegard = [[UIImageView alloc] init]; + _constituteIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + _constituteIndicateRegard.image = [UIImage imageNamed:@"yumi_main_name"]; + } + return _constituteIndicateRegard; +} + +- (UIButton *)importChamberBtuton { + if (!_importChamberBtuton) { + _importChamberBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_importChamberBtuton setImage:[UIImage imageNamed:@"yumi_main_title_open_room"] forState:UIControlStateNormal]; + [_importChamberBtuton setImage:[UIImage imageNamed:@"yumi_main_title_open_room"] forState:UIControlStateSelected]; + [_importChamberBtuton addTarget:self action:@selector(similarBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _importChamberBtuton; +} + + +@end diff --git a/YuMi/Modules/YMNewHome/View/YUMIStrangeResidenceRegardGovernancer.h b/YuMi/Modules/YMNewHome/View/YUMIStrangeResidenceRegardGovernancer.h new file mode 100644 index 00000000..643d12e9 --- /dev/null +++ b/YuMi/Modules/YMNewHome/View/YUMIStrangeResidenceRegardGovernancer.h @@ -0,0 +1,16 @@ +// +// YUMIStrangeResidenceRegardGovernancer.h +// YuMi +// +// Created by YuMi on 2023/6/18. +// + +#import "MvpRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIStrangeResidenceRegardGovernancer : MvpRegardGovernancer +-(instancetype)initAboutIsDispossess:(BOOL)isEmpty; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMNewHome/View/YUMIStrangeResidenceRegardGovernancer.m b/YuMi/Modules/YMNewHome/View/YUMIStrangeResidenceRegardGovernancer.m new file mode 100644 index 00000000..a28b50e5 --- /dev/null +++ b/YuMi/Modules/YMNewHome/View/YUMIStrangeResidenceRegardGovernancer.m @@ -0,0 +1,260 @@ +// +// YUMIStrangeResidenceRegardGovernancer.m +// YuMi +// +// Created by YuMi on 2023/6/18. +// + +#import "YUMIStrangeResidenceRegardGovernancer.h" +#import +#import +#import +#import +#import "YUMIMacroUitls.h" +#import "DJDKMIMOMColor.h" +#import "YUMIHtmlUrl.h" +#import "UIImage+Utils.h" +#import "AccountAbstractStorage.h" +#import "Api+Room.h" +#import "MKJPopup.h" +#import "NSArray+Safe.h" +#import "ResidenceCoupleMatrix.h" + +#import "YUMIChamberHuntforAccommodatedRegardGovernancer.h" +#import "YUMIResidenceParatiesRegardGovernancer.h" +#import "YUMITissueRegardGovernancer.h" +#import "YUMIResidenceEncourageRegardGovernancer.h" +#import "YUMIStrangeResidenceNevRegard.h" +#import "YUMIChamberRegardGovernancer.h" +#import "YUMIResidenceAccommodatedExternalizer.h" +#import "FBCResidenceContainerCeremony.h" + +UIKIT_EXTERN NSString * kHomeMoreScrollPageKey; +UIKIT_EXTERN NSString * const kOpenRoomNotification; + +@interface YUMIStrangeResidenceRegardGovernancer () +@property (nonatomic,strong) UIImageView *encourageIndicateRegard; +@property (nonatomic,strong) YUMIStrangeResidenceNevRegard *nevRegard; +@property (nonatomic, strong) NSArray *titles; +@property (nonatomic, strong) JXCategoryTitleView *titleView; +@property (nonatomic, strong) JXCategoryListContainerView *contentView; +@property (nonatomic,copy) NSMutableArray *tagList; +@property (nonatomic,strong) ResidenceCoupleMatrix *encourageProvision; +@property (nonatomic,assign) BOOL isEmpty; +@end + +@implementation YUMIStrangeResidenceRegardGovernancer +-(instancetype)initAboutIsDispossess:(BOOL)isEmpty{ + self = [super init]; + if(self){ + self.isEmpty = isEmpty; + } + return self; +} +-(void)dealloc{ + [[NSNotificationCenter defaultCenter]removeObserver:self]; +} +- (BOOL)isVeiledNevObstacle { + return YES; +} + +- (YUMIResidenceAccommodatedExternalizer *)producePresimport { + return [[YUMIResidenceAccommodatedExternalizer alloc] init]; +} +- (void)viewDidLoad { + [super viewDidLoad]; + if(self.isEmpty == NO){ + [self initHyperessay]; + [self initSubViews]; + [self initChildLyRestrictions]; + } + + +} + +#pragma mark - Private Method +- (void)initSubViews { + self.view.backgroundColor = [DJDKMIMOMColor colorAboutHexBWSttr:@"#F3F5FA"]; + [self.view addSubview:self.encourageIndicateRegard]; + [self.view addSubview:self.nevRegard]; + [self.view addSubview:self.titleView]; + [self.view addSubview:self.contentView]; +} + +- (void)initChildLyRestrictions { + + [self.encourageIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self.view); + make.height.mas_equalTo(170 + kSafeAreaTopHeight); + }]; + + [self.nevRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self.view); + make.height.mas_equalTo(kNavigationHeight); + }]; + + + [self.titleView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.nevRegard.mas_bottom).offset(10); + make.left.right.mas_equalTo(self.view); + make.height.mas_equalTo(30); + }]; + + [self.contentView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.titleView.mas_bottom); + make.left.right.bottom.mas_equalTo(self.view); + }]; + +} + +- (void)initHyperessay { + [self.presimport acquireResidenceCoupleSttowardsement]; +} + + +#pragma mark - FBCStrangeResidenceNevRegardRepresendtation +- (void)yUMIStrangeResidenceNevRegard:(YUMIStrangeResidenceNevRegard *)view didClickRank:(UIButton *)sender { + YUMITissueRegardGovernancer * webVewC =[[YUMITissueRegardGovernancer alloc] init]; + webVewC.url = URLWithType(kHomeRankURL); + [self.navigationController pushViewController:webVewC animated:YES]; +} + +- (void)yUMIStrangeResidenceNevRegard:(YUMIStrangeResidenceNevRegard *)view didClickOpenRoom:(UIButton *)sender { + NSString* roomUid = [AccountAbstractStorage instance].acquireCid; + [self opChamber:roomUid]; + +} +-(void)opChamber:(NSString *)roomUid{ + [YUMIChamberRegardGovernancer unfoildChamber:roomUid viewController:self]; +} + +- (void)yUMIStrangeResidenceNevRegard:(YUMIStrangeResidenceNevRegard *)view didClickSearch:(UIView *)sender { + YUMIChamberHuntforAccommodatedRegardGovernancer * searchVC = [[YUMIChamberHuntforAccommodatedRegardGovernancer alloc] init]; + searchVC.modalPresentationStyle = UIModalPresentationFullScreen; + [self.navigationController presentViewController:searchVC animated:YES completion:nil]; +} + +#pragma mark - JXCategoryViewDelegate +- (NSInteger)numberOfListsInlistContainerView:(JXCategoryListContainerView *)listContainerView { + return self.titles.count; +} + +- (id)listContainerView:(JXCategoryListContainerView *)listContainerView initListForIndex:(NSInteger)index { + ResidenceCoupleMatrix * hometag = [self.tagList secureGroalTowardsIndictowardsrix1:index]; + + UIViewController * list = (UIViewController *)[self.contentView.validListDict objectForKey:[NSNumber numberWithInteger:index]]; + if (list) { + return list; + } else { + if ([hometag.name isEqualToString:YMLocalizedString(@"YUMI_New_Home_View_Controller_0")]) { + YUMIResidenceEncourageRegardGovernancer * encourageVewC = [[YUMIResidenceEncourageRegardGovernancer alloc] init]; + return encourageVewC; + } else { + YUMIResidenceParatiesRegardGovernancer * homeVC = [[YUMIResidenceParatiesRegardGovernancer alloc] init]; + homeVC.suspensionId = hometag.tid; + return homeVC; + } + } +} + + + +- (void)categoryView:(JXCategoryBaseView *)categoryView didSelectedItemAtIndex:(NSInteger)index { + ResidenceCoupleMatrix * hometag = [self.tagList secureGroalTowardsIndictowardsrix1:index]; + if (![hometag.name isEqualToString:YMLocalizedString(@"YUMI_New_Home_View_Controller_1")]) { + YUMIResidenceParatiesRegardGovernancer * list = (YUMIResidenceParatiesRegardGovernancer *)[self.contentView.validListDict objectForKey:[NSNumber numberWithInteger:index]];; + list.suspensionId = hometag.tid; + } +} + +#pragma mark - JXCategoryListContentViewDelegate +- (UIView *)listView { + return self.view; +} + +#pragma mark - FBCResidenceContainerCeremony +- (void)acquireResidenceCoupleSttowardsementAccomplishment:(NSArray *)array { + [self.tagList addObject:self.encourageProvision]; + [self.tagList addObjectsFromArray:array]; + NSMutableArray * titles = [NSMutableArray array]; + [titles addObject:YMLocalizedString(@"YUMI_New_Home_View_Controller_2")]; + [array enumerateObjectsUsingBlock:^(ResidenceCoupleMatrix * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if (obj.name.length > 0) { + [titles addObject:obj.name]; + } + }]; + self.titles = titles.copy; + self.titleView.titles = self.titles; + [self.titleView reloadData]; +} + +#pragma mark - Getters And Setters +- (JXCategoryTitleView *)titleView { + if (!_titleView) { + _titleView = [[JXCategoryTitleView alloc] init]; + _titleView.delegate = self; + _titleView.titles = self.titles; + _titleView.backgroundColor = [UIColor clearColor]; + _titleView.titleColor = [DJDKMIMOMColor instantEssayPrettify]; + _titleView.titleSelectedColor = [UIColor whiteColor]; + _titleView.titleFont = [UIFont systemFontOfSize:14]; + _titleView.titleSelectedFont = [UIFont systemFontOfSize:14]; + _titleView.titleLabelAnchorPointStyle = JXCategoryTitleLabelAnchorPointStyleCenter; + _titleView.contentScrollViewClickTransitionAnimationEnabled = NO; + _titleView.defaultSelectedIndex = 0; + _titleView.cellSpacing = 20; + _titleView.cellWidthIncrement = 5; + _titleView.listContainer = self.contentView; + + JXCategoryIndicatorImageView * indocator = [[JXCategoryIndicatorImageView alloc] init]; + indocator.indicatorImageView.image = [UIImage imageNamed:@"yumi_main_slider_background"]; + indocator.indicatorImageViewSize = CGSizeMake(50, 24); + indocator.verticalMargin = 4; + indocator.contentMode = UIViewContentModeScaleAspectFit; + _titleView.indicators = @[indocator]; + } + return _titleView; +} + +- (JXCategoryListContainerView *)contentView { + if (!_contentView) { + _contentView = [[JXCategoryListContainerView alloc] initWithType:JXCategoryListContainerType_ScrollView delegate:self]; + _contentView.defaultSelectedIndex = 0; + } + return _contentView; +} + +- (ResidenceCoupleMatrix *)encourageProvision { + if (!_encourageProvision) { + _encourageProvision = [[ResidenceCoupleMatrix alloc] init]; + _encourageProvision.name = YMLocalizedString(@"YUMI_New_Home_View_Controller_3"); + } + return _encourageProvision; +} + +- (NSMutableArray *)tagList { + if (!_tagList) { + _tagList = [NSMutableArray array]; + } + return _tagList; +} + +- (YUMIStrangeResidenceNevRegard *)nevRegard { + if (!_nevRegard) { + _nevRegard = [[YUMIStrangeResidenceNevRegard alloc] init]; + _nevRegard.delegate = self; + } + return _nevRegard; +} + +- (UIImageView *)encourageIndicateRegard { + if (!_encourageIndicateRegard) { + _encourageIndicateRegard = [[UIImageView alloc] init]; + _encourageIndicateRegard.image = [UIImage imageNamed:@"yumi_main_top_background"]; + _encourageIndicateRegard.layer.masksToBounds = YES; + _encourageIndicateRegard.contentMode = UIViewContentModeScaleAspectFill; + } + return _encourageIndicateRegard; +} + +@end diff --git a/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/ZegoAudioCapture.h b/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/ZegoAudioCapture.h new file mode 100644 index 00000000..56bdbe1e --- /dev/null +++ b/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/ZegoAudioCapture.h @@ -0,0 +1,13 @@ +// +// ZegoAudioCapture.h +// ZegoLiveRoom +// +// Copyright © 2017年 zego. All rights reserved. +// + +#ifndef ZegoAudioCapture_h +#define ZegoAudioCapture_h + +#include "audio_in_output.h" + +#endif diff --git a/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/ZegoAudioRoom.h b/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/ZegoAudioRoom.h new file mode 100644 index 00000000..6c01c2f7 --- /dev/null +++ b/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/ZegoAudioRoom.h @@ -0,0 +1,42 @@ +// +// ZegoAudioRoom.h +// ZegoAudioRoom +// +// Created by Strong on 2017/3/15. +// Copyright © 2017年 Zego. All rights reserved. +// + +#import + +FOUNDATION_EXPORT double ZegoAudioRoomVersionNumber; + +FOUNDATION_EXPORT const unsigned char ZegoAudioRoomVersionString[]; + + +#import +#import +#import +#import +#import +#import + +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import +#import diff --git a/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/ZegoAudioRoomApi-AudioIO.h b/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/ZegoAudioRoomApi-AudioIO.h new file mode 100644 index 00000000..f298a42f --- /dev/null +++ b/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/ZegoAudioRoomApi-AudioIO.h @@ -0,0 +1,38 @@ +// +// ZegoAudioRoomApi-AudioIO.h +// ZegoAudioRoom +// +// Created by Strong on 2017/3/16. +// Copyright © 2017年 Zego. All rights reserved. +// + +#import "ZegoAudioRoomApi.h" +#import "ZegoAudioCapture.h" + +@interface ZegoAudioRoomApi (AudioIO) + +#if TARGET_OS_IPHONE + ++ (void)enableExternalAudioDevice:(bool)enable; + + +- (AVE::IAudioDataInOutput* )getIAudioDataInOutput; + + +- (void)enableAECWhenHeadsetDetected:(bool)enable; + +#endif + + +- (void)setAudioPrepCallback:(void(*)(const AVE::AudioFrame& inFrame, AVE::AudioFrame& outFrame))callback config:(AVE::ExtPrepSet)config; + + +- (void)setAudioPostpCallback:(void(*)(const char* streamID, const AVE::AudioFrame& inFrame, AVE::AudioFrame& outFrame))callback config:(AVE::ExtPostpSet)config; + + +- (void)enableAudioPostp:(bool)enable streamID:(NSString *)streamID; + + ++ (void)setAudioPrep2:(AVE::ExtPrepSet)prepSet dataCallback:(void(*)(const AVE::AudioFrame& inFrame, AVE::AudioFrame& outFrame))callback; + +@end diff --git a/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/ZegoAudioRoomApi-IM.h b/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/ZegoAudioRoomApi-IM.h new file mode 100644 index 00000000..af65484e --- /dev/null +++ b/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/ZegoAudioRoomApi-IM.h @@ -0,0 +1,43 @@ +// +// ZegoAudioRoomApi-IM.h +// ZegoAudioRoom +// +// Created by Strong on 2017/7/25. +// Copyright © 2017年 Zego. All rights reserved. +// + +#import "ZegoAudioRoomApiDefines-IM.h" + +@protocol ZegoAudioIMDelegate; + +typedef void(^ZegoRoomMessageCompletion)(int errorCode, NSString *roomId, unsigned long long messageId); +typedef void(^ZegoBigRoomMessageCompletion)(int errorCode, NSString *roomId, NSString *messageId); + +@interface ZegoAudioRoomApi (IM) + + +- (void)setAudioIMDelegate:(id)imDelegate; + + +- (bool)sendRoomMessage:(NSString *)content type:(ZegoMessageType)type category:(ZegoMessageCategory)category completion:(ZegoRoomMessageCompletion)completionBlock; + + +- (bool)sendBigRoomMessage:(NSString *)content type:(ZegoMessageType)type category:(ZegoMessageCategory)category completion:(ZegoBigRoomMessageCompletion)completionBlock; + + +@end + +@protocol ZegoAudioIMDelegate + +@optional + + +- (void)onRecvAudioRoomMessage:(NSString *)roomId messageList:(NSArray *)messageList; + + +- (void)onUpdateOnlineCount:(int)onlineCount room:(NSString *)roomId; + + +- (void)onRecvBigAudioRoomMessage:(NSString *)roomId messageList:(NSArray *)messageList; + +@end diff --git a/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/ZegoAudioRoomApi-Player.h b/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/ZegoAudioRoomApi-Player.h new file mode 100644 index 00000000..a6cd5c7b --- /dev/null +++ b/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/ZegoAudioRoomApi-Player.h @@ -0,0 +1,90 @@ +// +// ZegoAudioRoomApi-Player.h +// ZegoAudioRoom +// +// Created by Strong on 2017/3/15. +// Copyright © 2017年 Zego. All rights reserved. +// + +#import "ZegoAudioRoomApi.h" +#import "ZegoAudioRoomApiDefines.h" + +@protocol ZegoAudioLivePlayerDelegate; +@protocol ZegoAudioLiveRecordDelegate; + +@interface ZegoAudioRoomApi (Player) + + +- (void)setAudioPlayerDelegate:(id)playerDelegate; + + +- (bool)enableSpeaker:(bool) bEnable; + + +- (bool)setBuiltInSpeakerOn:(bool)bOn; + + +- (bool)setPlayVolume:(int)volume; + + +- (bool)setPlayVolume:(int)volume ofStream:(NSString *)streamID; + + +- (float)getSoundLevelOfStream:(NSString *)streamID; + + +- (bool)enableSelectedAudioRecord:(unsigned int)mask sampleRate:(int)sampleRate; + + +-(bool)enableSelectedAudioRecord:(ZegoAPIAudioRecordConfig)config; + + +- (void)setAudioRecordDelegate:(id)audioRecordDelegate; + + ++ (int)getMaxPlayChannelCount; + + +- (bool)restartPlayStream:(NSString *)streamID; + + + +- (bool)startPlayStream:(NSString *)streamID; + + +- (bool)startPlayStream:(NSString *)streamID extraInfo:(ZegoAPIStreamExtraPlayInfo *)info; + + +- (void)stopPlayStream:(NSString *)streamID; + +@end + +@protocol ZegoAudioLivePlayerDelegate + + +- (void)onPlayStateUpdate:(int)stateCode stream:(ZegoAudioStream *)stream; + +@optional + +- (void)onPlayQualityUpate:(NSString *)streamID quality:(ZegoApiPlayQuality)quality; + +@optional + +- (void)onRemoteMicStatusUpdate:(int)status ofStream:(NSString *)streamID reason:(int)reason; + +@optional + +- (void)onRecvRemoteAudioFirstFrame:(NSString *)streamID; + +@end + +@protocol ZegoAudioLiveRecordDelegate + +@optional + +- (void)onAudioRecord:(NSData *)audioData sampleRate:(int)sampleRate numOfChannels:(int)numOfChannels bitDepth:(int)bitDepth type:(unsigned int)type; + + +- (void)onAudioRecord:(NSData *)audioData sampleRate:(int)sampleRate numOfChannels:(int)numOfChannels bitDepth:(int)bitDepth; + +@end diff --git a/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/ZegoAudioRoomApi-Publisher.h b/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/ZegoAudioRoomApi-Publisher.h new file mode 100644 index 00000000..b61ce05d --- /dev/null +++ b/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/ZegoAudioRoomApi-Publisher.h @@ -0,0 +1,118 @@ +// +// ZegoAudioRoomApi-Publisher.h +// ZegoAudioRoom +// +// Created by Strong on 2017/3/15. +// Copyright © 2017年 Zego. All rights reserved. +// + +#import "ZegoAudioRoomApi.h" +#import "ZegoAudioRoomApiDefines.h" + +@protocol ZegoAudioLivePublisherDelegate; + +@interface ZegoAudioRoomApi (Publisher) + + +- (void)setAudioPublisherDelegate:(id)publisherDelegate; + + +- (bool)startPublish; + + + +- (bool)startPublishWithStreamID:(NSString *)streamID; + + +- (void)stopPublish; + + +- (bool)enableMic:(bool)bEnable; + + +- (bool)enableLoopback:(bool)bEnable; + + +- (void)setLoopbackVolume:(int)volume; + + +- (void)setCaptureVolume:(int)volume; + + +- (void)setAuxVolume:(int)volume; + + +- (bool)muteAux:(bool)bMute; + + +- (float)getCaptureSoundLevel; + + +- (void)enableDTX:(bool)enable; + + +- (void)enableVAD:(bool)enable; + + +- (bool)setAudioBitrate:(int)bitrate; + + +- (void)setLatencyMode:(ZegoAPILatencyMode)mode; + + +- (void)setAudioChannelCount:(int)count; + + +- (bool)enableAGC:(bool)enable; + + +- (bool)enableAEC:(bool)enable; + + +- (void)setAECMode:(ZegoAPIAECMode)mode; + + +- (bool)enableNoiseSuppress:(bool)enable; + + +- (bool)setNoiseSuppressMode:(ZegoAPIANSMode)mode; + + +- (bool)enableTransientNoiseSuppress:(bool)enable; + + +- (bool)updateStreamExtraInfo:(NSString *)extraInfo; + + +- (bool)restartPublishStream; + + ++ (void)setAudioDeviceMode:(ZegoAPIAudioDeviceMode) mode; + + + +- (void)enableAudioTrafficControl:(BOOL)enable; + + +- (bool)setAudioEqualizerGain:(float)bandGain index:(int)bandIndex; + +@end + +@protocol ZegoAudioLivePublisherDelegate + + +- (void)onPublishStateUpdate:(int)stateCode streamID:(NSString *)streamID streamInfo:(NSDictionary *)info; + +@optional + +- (void)onPublishQualityUpdate:(NSString *)streamID quality:(ZegoApiPublishQuality)quality; + +@optional + + +- (void)onAuxCallback:(void *)pData dataLen:(int *)pDataLen sampleRate:(int *)pSampleRate channelCount:(int *)pChannelCount; + + +- (void)onRelayCDNStateUpdate:(NSArray *)statesInfo streamID:(NSString*)streamID; + +@end diff --git a/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/ZegoAudioRoomApi.h b/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/ZegoAudioRoomApi.h new file mode 100644 index 00000000..9777320d --- /dev/null +++ b/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/ZegoAudioRoomApi.h @@ -0,0 +1,178 @@ +// +// ZegoAudioRoomApi.h +// ZegoAudioRoom +// +// Created by Strong on 2017/3/15. +// Copyright © 2017年 Zego. All rights reserved. +// + +#import +#import "ZegoAudioRoomApiDefines.h" +#import "ZegoAudioRoomApiDefines-IM.h" +#import "zego-api-defines-oc.h" + +@protocol ZegoAudioRoomDelegate; +@protocol ZegoAudioLiveEventDelegate; +@protocol ZegoAudioDeviceEventDelegate; +@protocol ZegoAVEngineDelegate; +@protocol ZegoAudioRouteDelegate; +@protocol ZegoNetTypeDelegate; + + +typedef void(^ZegoAudioRoomBlock)(int errorCode); +typedef void(^ZegoCustomCommandBlock)(int errorCode, NSString *roomID); + +@interface ZegoAudioRoomApi : NSObject + ++ (NSString *)version; ++ (NSString *)version2; + + ++ (void)setUseTestEnv:(bool)useTestEnv; + + ++ (void)setVerbose:(bool)bOnVerbose; + + ++ (void)uploadLog; + + ++ (bool)setUserID:(NSString *)userID userName:(NSString *)userName; + + ++ (void)setLogSize:(unsigned int)size; + + ++ (void)setLogDir:(NSString *)logDir size:(unsigned int)size subFolder:(NSString *)subFolder; + + +- (instancetype)initWithAppID:(unsigned int)appID appSignature:(NSData*)appSignature; + + +- (void)setAudioRoomDelegate:(id)roomDelegate; + + +- (void)setManualPublish:(bool)manual; + + + +- (void)setManualPlay:(bool)manual; + + +- (void)setCustomToken:(NSString *)thirdPartyToken; + + +- (bool)loginRoom:(NSString *)roomID completionBlock:(ZegoAudioRoomBlock)block; + + +- (bool)logoutRoom; + + +- (void)setAudioLiveEventDelegate:(id)liveEventDelegate; + +#if TARGET_OS_IPHONE + + +- (void)setAudioDeviceEventDelegate:(id)deviceEventDelegate; + + +- (void)pauseAudioModule; + + +- (void)resumeAudioModule; + + +- (void)setAudioRouteDelegate:(id)delegate; + +#endif + + +- (BOOL)enableMicDevice:(BOOL)enable; + + +- (void)setAVEngineDelegate:(id)engineDelegate; + + ++ (void)setConfig:(NSString *)config; + + +- (void)setUserStateUpdate:(bool)userStateUpdate; + + +- (bool)sendCustomCommand:(NSArray *)memberList content:(NSString *)content completion:(ZegoCustomCommandBlock)block; + + +- (void)setNetTypeDelegate:(id)delegate; + + +@end + +@protocol ZegoAudioRoomDelegate + +@optional + + + +- (void)onKickOut:(int)reason roomID:(NSString *)roomID; + + +- (void)onKickOut:(int)reason roomID:(NSString *)roomID customReason:(NSString *)customReason; + + +- (void)onDisconnect:(int)errorCode roomID:(NSString *)roomID; + + +- (void)onStreamUpdated:(ZegoAudioStreamType)type stream:(ZegoAudioStream*)stream; + + +- (void)onStreamExtraInfoUpdated:(NSArray *)streamList roomID:(NSString *)roomID; + + +- (void)onUserUpdate:(NSArray *)userList updateType:(ZegoUserUpdateType)type; + + +- (void)onReceiveCustomCommand:(NSString *)fromUserID userName:(NSString *)fromUserName content:(NSString*)content roomID:(NSString *)roomID; + +@end + +@protocol ZegoAudioLiveEventDelegate + + +- (void)zego_onAudioLiveEvent:(ZegoAudioLiveEvent)event info:(NSDictionary*)info; + +@end + +@protocol ZegoAudioDeviceEventDelegate + + +- (void)zego_onAudioDevice:(NSString *)deviceName error:(int)errorCode; + +@end + +@protocol ZegoAVEngineDelegate + + +- (void)onAVEngineStart; + + +- (void)onAVEngineStop; + +@end + + +@protocol ZegoAudioRouteDelegate + + +- (void)onAudioRouteChange:(ZegoAPIAudioRoute)audioRoute; + +@end + + +@protocol ZegoNetTypeDelegate + + +- (void)onNetTypeChange:(ZegoAPINetType)netType; + +@end + + diff --git a/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/ZegoAudioRoomApiDefines-IM.h b/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/ZegoAudioRoomApiDefines-IM.h new file mode 100644 index 00000000..bc183c98 --- /dev/null +++ b/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/ZegoAudioRoomApiDefines-IM.h @@ -0,0 +1,107 @@ +// +// ZegoAudioRoomDefines-IM.h +// ZegoAudioRoom +// +// Created by Strong on 2017/7/25. +// Copyright © 2017年 Zego. All rights reserved. +// + +#ifndef ZegoAudioRoomApiDefines_IM_h +#define ZegoAudioRoomApiDefines_IM_h + +#ifndef ZegoLiveRoomApiDefines_IM_h + + +typedef enum +{ + + ZEGO_TEXT = 1, + + ZEGO_PICTURE, + + ZEGO_FILE, + + ZEGO_OTHER_TYPE = 100, +} ZegoMessageType; + + +typedef enum +{ + + ZEGO_DEFAULT = 2, + + ZEGO_HIGH = 3, +} ZegoMessagePriority; + + +typedef enum +{ + + ZEGO_CHAT = 1, + + ZEGO_SYSTEM, + + ZEGO_LIKE, + + ZEGO_GIFT, + + ZEGO_OTHER_CATEGORY = 100, +} ZegoMessageCategory; + + +@interface ZegoRoomMessage : NSObject + + +@property (nonatomic, copy) NSString *fromUserId; + +@property (nonatomic, copy) NSString *fromUserName; + +@property (nonatomic, assign) unsigned long long messageId; + +@property (nonatomic, copy) NSString *content; + +@property (nonatomic, assign) ZegoMessageType type; + +@property (nonatomic, assign) ZegoMessagePriority priority; + +@property (nonatomic, assign) ZegoMessageCategory category; + +@end + + + + +@interface ZegoBigRoomMessage : NSObject + + +@property (nonatomic, copy) NSString *fromUserId; + +@property (nonatomic, copy) NSString *fromUserName; + +@property (nonatomic, copy) NSString *messageId; + +@property (nonatomic, copy) NSString *content; + +@property (nonatomic, assign) ZegoMessageType type; + +@property (nonatomic, assign) ZegoMessagePriority priority; + +@property (nonatomic, assign) ZegoMessageCategory category; + +@end + + +@interface ZegoUser : NSObject + + +@property (nonatomic, copy) NSString *userId; + +@property (nonatomic, copy) NSString *userName; + +@end + + + +#endif + +#endif diff --git a/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/ZegoAudioRoomApiDefines.h b/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/ZegoAudioRoomApiDefines.h new file mode 100644 index 00000000..17f25a66 --- /dev/null +++ b/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/ZegoAudioRoomApiDefines.h @@ -0,0 +1,106 @@ +// +// ZegoAudioRoomApiDefines.h +// ZegoAudioRoom +// +// Created by Strong on 2017/3/15. +// Copyright © 2017年 Zego. All rights reserved. +// + +#ifndef ZegoAudioRoomApiDefines_h +#define ZegoAudioRoomApiDefines_h + +#import "zego-api-defines-oc.h" + +#ifndef ZEGO_EXTERN +#ifdef __cplusplus +#define ZEGO_EXTERN extern "C" +#else +#define ZEGO_EXTERN extern +#endif +#endif + + +typedef enum : NSUInteger { + + ZEGO_AUDIO_STREAM_ADD, + + ZEGO_AUDIO_STREAM_DELETE, +} ZegoAudioStreamType; + + +typedef enum : NSUInteger { + + Audio_Play_BeginRetry = 1, + + Audio_Play_RetrySuccess = 2, + + + Audio_Publish_BeginRetry = 3, + + Audio_Publish_RetrySuccess = 4, + + + Audio_Play_TempDisconnected = 5, + + Audio_Publish_TempDisconnected = 6, + + + Audio_Play_Break = 9, + + Audio_Play_BreakEnd = 10, +} ZegoAudioLiveEvent; + + +@interface ZegoAudioStream : NSObject + + +@property (nonatomic, copy) NSString *userID; + +@property (nonatomic, copy) NSString *userName; + +@property (nonatomic, copy) NSString *streamID; + +@property (nonatomic, copy) NSString *extraInfo; + +@property (nonatomic, assign) int streamNID; + +@end + + +ZEGO_EXTERN NSString *const kZegoAudioRoomConfigKeepAudioSesionActive; + +#ifndef ZegoLiveRoomApiDefines_IM_h + +typedef enum +{ + + ZEGO_UPDATE_TOTAL = 1, + + ZEGO_UPDATE_INCREASE, +}ZegoUserUpdateType; + +typedef enum +{ + + ZEGO_USER_ADD = 1, + + ZEGO_USER_DELETE, +}ZegoUserUpdateFlag; + + +@interface ZegoUserState : NSObject + + +@property (nonatomic, copy) NSString *userID; + +@property (nonatomic, copy) NSString *userName; + +@property (nonatomic, assign) ZegoUserUpdateFlag updateFlag; + +@property (nonatomic, assign) int role; + +@end + +#endif + +#endif diff --git a/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/audio_in_output.h b/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/audio_in_output.h new file mode 100644 index 00000000..9729af91 --- /dev/null +++ b/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/audio_in_output.h @@ -0,0 +1,77 @@ +// +// ZegoAudioInOutput.h +// zegoavkit +// +// Copyright © 2017 Zego. All rights reserved. +// +#ifndef ZEGOAudioInOutput_h +#define ZEGOAudioInOutput_h + +namespace AVE +{ + enum FrameType + { + TYPE_PCM = 0x1001, + TYPE_AAC_STREAM = 0x1003, + }; + + + struct AudioFrame + { + AudioFrame() + { + frameType = 0; + samples = 0; + bytesPerSample = 0; + channels = 0; + sampleRate = 0; + timeStamp = 0.0; + configLen = 0; + bufLen = 0; + buffer = 0; + } + + int frameType; + int samples; + int bytesPerSample; + int channels; + int sampleRate; + double timeStamp; + int configLen; + int bufLen; + unsigned char* buffer; + }; + + class IAudioDataInOutput + { + public: + virtual void startCapture() = 0; + virtual void stopCapture() = 0; + virtual void startRender() = 0; + virtual void stopRender() = 0; + virtual bool onRecordAudioFrame(const AudioFrame& audioFrame) = 0; + virtual bool onPlaybackAudioFrame(AudioFrame& audioFrame) = 0; + }; + + + struct ExtAudioProcSet + { + bool bEncode; + int nSampleRate; + int nChannel; + int nSamples; + + }; + + typedef struct ExtAudioProcSet ExtPrepSet; + typedef void(*OnPrepCallback)(const AudioFrame& inFrame, AudioFrame& outFrame); + + + + typedef struct ExtAudioProcSet ExtPostpSet; + typedef void(*OnPostpCallback)(const char* streamId, const AudioFrame& inFrame, AudioFrame& outFrame); + + +} + +#endif diff --git a/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/zego-api-audio-aux-oc.h b/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/zego-api-audio-aux-oc.h new file mode 100644 index 00000000..2407b6bb --- /dev/null +++ b/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/zego-api-audio-aux-oc.h @@ -0,0 +1,40 @@ +// +// zego-api-audio-aux-oc.h +// + +#import + +@protocol ZegoAudioAuxDelgate + +@optional + + +- (void)onAuxCallback:(void *)pData dataLen:(int *)pDataLen sampleRate:(int *)pSampleRate channelCount:(int *)pChannelCount; + + +- (void)onAuxCallback:(void *)pData dataLen:(int *)pDataLen sampleRate:(int *)pSampleRate channelCount:(int *)pChannelCount sideInfo:(unsigned char*)pSideInfo sideInfoLen:(int*) pSideInfoLength packet:(bool*)pPacket; + +@end + + +@interface ZegoAudioAux : NSObject + + +- (void)setDelegate:(id) delegate; + + +- (BOOL)enableAux:(BOOL)enable; + + +- (void)setAuxVolume:(int)volume; + + +- (void)setAuxPlayVolume:(int)volume; + + +- (void)setAuxPublishVolume:(int)volume; + + +- (BOOL)muteAux:(BOOL)mute; + +@end diff --git a/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/zego-api-audio-device-oc.h b/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/zego-api-audio-device-oc.h new file mode 100644 index 00000000..c635f24a --- /dev/null +++ b/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/zego-api-audio-device-oc.h @@ -0,0 +1,14 @@ +#ifndef zego_api_audio_device_oc +#define zego_api_audio_device_oc + +#import + + +@interface ZegoAudioDevice : NSObject + + ++ (void)enableAudioCaptureStereo:(int)captureType; + +@end + +#endif diff --git a/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/zego-api-audio-encrypt-decrypt-oc.h b/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/zego-api-audio-encrypt-decrypt-oc.h new file mode 100644 index 00000000..66ec4ce1 --- /dev/null +++ b/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/zego-api-audio-encrypt-decrypt-oc.h @@ -0,0 +1,25 @@ +#ifndef zego_api_audio_encrypt_decrypt_oc +#define zego_api_audio_encrypt_decrypt_oc + +#import + + +@protocol ZegoAudioEncryptDecryptDelegate +@required + +- (void)onAudioEncryptDecrypt:(NSString *)streamID inData:(const unsigned char *)pInData inDataLen:(int)inDataLen outData:(unsigned char *)pOutData outDataLen:(int *)pOutDataLen maxOutBufLen:(int)maxOutBufLen; + +@end + + +@interface ZegoAudioEncryptDecrypt : NSObject + + +- (void)setAudioEncryptDecryptDelegage:(id)delegate; + + ++ (void)enableAudioEncryptDecrypt:(BOOL)enable; + +@end + +#endif diff --git a/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/zego-api-audio-frame-oc.h b/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/zego-api-audio-frame-oc.h new file mode 100644 index 00000000..87e57a37 --- /dev/null +++ b/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/zego-api-audio-frame-oc.h @@ -0,0 +1,46 @@ +// +// zego-api-audio-frame-oc.h +// ZegoLiveRoom +// + +#import + + +typedef enum ZegoAPIAudioFrameType +{ + kZegoAPIAudioFrameTypePCM = 0x1001, + kZegoAPIAudioFrameTypeAACStream = 0x1003, +} ZegoAPIAudioFrameType; + + +@interface ZegoAPIAudioFrame : NSObject + + +- (int)setSampleRate:(int)sampleRate channels:(int)channels; + + +- (int)getSampleRate:(int*)sampleRate channels:(int*)channels; + + +- (int)setCapturedData:(unsigned char*)data samples:(int)samples; + + +- (int)setRenderBuffer:(unsigned char*)buffer samples:(int)samples; + + +- (int)getRenderData:(unsigned char**)data samples:(int*)samples; + + +- (int)setFrameType:(ZegoAPIAudioFrameType)type; + + +- (int)getFrameType:(ZegoAPIAudioFrameType*)type; + + +- (int)setAacProperties:(double)timestamp dataLength:(int)dataLength specialConfigLength:(int)specialConfigLength; + + +- (int)getAacProperties:(double*)timestamp dataLength:(int*)dataLength specialConfigLength:(int*)specialConfigLength; + +@end + diff --git a/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/zego-api-audio-processing-oc.h b/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/zego-api-audio-processing-oc.h new file mode 100644 index 00000000..63ba367d --- /dev/null +++ b/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/zego-api-audio-processing-oc.h @@ -0,0 +1,66 @@ +#ifndef zego_api_audio_processing_oc_h +#define zego_api_audio_processing_oc_h + +#import + +#import "zego-api-defines-oc.h" + + +typedef NS_ENUM(NSUInteger, ZegoAPIAudioReverbMode) +{ + ZEGOAPI_AUDIO_REVERB_MODE_SOFT_ROOM = 0, + ZEGOAPI_AUDIO_REVERB_MODE_WARM_CLUB = 1, + ZEGOAPI_AUDIO_REVERB_MODE_CONCERT_HALL = 2, + ZEGOAPI_AUDIO_REVERB_MODE_LARGE_AUDITORIUM = 3, +}; + + +ZEGO_EXTERN float const ZEGOAPI_VOICE_CHANGER_NONE; + + +ZEGO_EXTERN float const ZEGOAPI_VOICE_CHANGER_WOMEN_TO_MEN; + +ZEGO_EXTERN float const ZEGOAPI_VOICE_CHANGER_MEN_TO_WOMEN; + +ZEGO_EXTERN float const ZEGOAPI_VOICE_CHANGER_WOMEN_TO_CHILD; + +ZEGO_EXTERN float const ZEGOAPI_VOICE_CHANGER_MEN_TO_CHILD; + + +typedef struct ZegoAudioReverbParam +{ + + float roomSize; + + + float reverberance; + + + float damping; + + + float dryWetRatio; +} ZegoAudioReverbParam; + +@interface ZegoAudioProcessing : NSObject + + ++ (bool)enableVirtualStereo:(bool)enable angle:(int)angle; + + ++ (bool)enableReverb:(bool)enable mode:(ZegoAPIAudioReverbMode)mode; + + + ++ (bool)setReverbParam:(float)roomSize dryWetRatio:(float)dryWetRatio; + + + ++ (bool)setReverbParam:(ZegoAudioReverbParam)param; + + ++ (bool)setVoiceChangerParam:(float)param; + +@end + +#endif diff --git a/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/zego-api-camera-oc.h b/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/zego-api-camera-oc.h new file mode 100644 index 00000000..ffca79c4 --- /dev/null +++ b/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/zego-api-camera-oc.h @@ -0,0 +1,36 @@ +// +// zego_camera_ios.h +// zegoavkit +// +// Created by summeryxia on 2018/04/11. +// Copyright © 2018年 Zego. All rights reserved. +// + +#ifndef zego_api_camera_oc_h +#define zego_api_camera_oc_h + +#import +#import "zego-api-defines-oc.h" + +@interface ZegoCamera : NSObject + + ++ (BOOL)setCamExposurePoint:(CGPoint)point channelIndex:(ZegoAPIPublishChannelIndex)index; + + ++ (BOOL)setCamFocusPointInPreview:(CGPoint)point channelIndex:(ZegoAPIPublishChannelIndex)index; + + ++ (BOOL)setCamExposurePointInPreview:(CGPoint)point channelIndex:(ZegoAPIPublishChannelIndex)index; + + ++ (BOOL)setCamZoomFactor:(float)zoomFactor channelIndex:(ZegoAPIPublishChannelIndex)index; + + ++ (float)getCamMaxZoomFactor:(ZegoAPIPublishChannelIndex)index; + + ++ (BOOL)setCamExposureCompensation:(float)value channelIndex:(ZegoAPIPublishChannelIndex)index; +@end + +#endif diff --git a/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/zego-api-defines-oc.h b/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/zego-api-defines-oc.h new file mode 100644 index 00000000..3c4760d3 --- /dev/null +++ b/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/zego-api-defines-oc.h @@ -0,0 +1,744 @@ +// +// zego-api-defines-oc.h +// zegoavkit +// +// Copyright © 2017年 Zego. All rights reserved. +// + +#ifndef zego_api_defines_oc_h +#define zego_api_defines_oc_h + +#import +#import + +#ifdef __cplusplus +#define ZEGO_EXTERN extern "C" +#else +#define ZEGO_EXTERN extern +#endif + + +ZEGO_EXTERN NSString *const kZegoStreamIDKey; + +ZEGO_EXTERN NSString *const kZegoMixStreamIDKey; + + + +ZEGO_EXTERN NSString *const kZegoRtmpUrlListKey; + +ZEGO_EXTERN NSString *const kZegoHlsUrlListKey; + +ZEGO_EXTERN NSString *const kZegoFlvUrlListKey; + + + +ZEGO_EXTERN NSString *const kZegoDeviceCameraName; + +ZEGO_EXTERN NSString *const kZegoDeviceMicrophoneName; + +ZEGO_EXTERN NSString *const kZegoDeviceAudioName; + + +ZEGO_EXTERN NSString *const kMixStreamAudioOutputFormat; + + +ZEGO_EXTERN NSString *const kPublishCustomTarget; + + +ZEGO_EXTERN NSString *const kPublishCDNTarget; + + +ZEGO_EXTERN NSString *const kZegoConfigKeepAudioSesionActive; + +typedef unsigned int uint32; + + +typedef enum { + + FLAG_RESOLUTION = 0x1, + + FLAG_FPS = 0x2, + + FLAG_BITRATE = 0x4 +} SetConfigReturnType; + + +typedef enum { + + ZegoVideoViewModeScaleAspectFit = 0, + + ZegoVideoViewModeScaleAspectFill = 1, + + ZegoVideoViewModeScaleToFill = 2, +} ZegoVideoViewMode; + +typedef enum { + + ZegoVideoMirrorModePreviewMirrorPublishNoMirror = 0, + + ZegoVideoMirrorModePreviewCaptureBothMirror = 1, + + ZegoVideoMirrorModePreviewCaptureBothNoMirror = 2, + + ZegoVideoMirrorModePreviewNoMirrorPublishMirror = 3 +}ZegoVideoMirrorMode; + + +typedef enum { + + CAPTURE_ROTATE_0 = 0, + + CAPTURE_ROTATE_90 = 90, + + CAPTURE_ROTATE_180 = 180, + + CAPTURE_ROTATE_270 = 270 +} CAPTURE_ROTATE; + + +typedef enum { + + VIDEO_CODEC_DEFAULT = 0, + + VIDEO_CODEC_MULTILAYER = 1, + + VIDEO_CODEC_VP8 = 2, +} ZegoVideoCodecAvc; + + +typedef enum { + + VideoStreamLayer_Auto = -1, + + VideoStreamLayer_BaseLayer = 0, + + VideoStreamLayer_ExtendLayer = 1 +} VideoStreamLayer; + + +typedef enum { + + SideInfoZegoDefined = 0, + + SeiZegoDefined = 1, + + SeiUserUnregisted = 2 +}MediaInfoType; + + +typedef enum { + + SeiSendSingleFrame = 0, + + SeiSendInVideoFrame = 1 +} SeiSendType; + + +typedef enum { + + RemoteViewIndex_First = 0, + + RemoteViewIndex_Second = 1, + + RemoteViewIndex_Third = 2 +} RemoteViewIndex; + + +typedef enum : NSUInteger { + + ZEGO_FILTER_NONE = 0, + + ZEGO_FILTER_LOMO = 1, + + ZEGO_FILTER_BLACKWHITE = 2, + + ZEGO_FILTER_OLDSTYLE = 3, + + ZEGO_FILTER_GOTHIC = 4, + + ZEGO_FILTER_SHARPCOLOR = 5, + + ZEGO_FILTER_FADE = 6, + + ZEGO_FILTER_WINE = 7, + + ZEGO_FILTER_LIME = 8, + + ZEGO_FILTER_ROMANTIC = 9, + + ZEGO_FILTER_HALO = 10, + + ZEGO_FILTER_BLUE = 11, + + ZEGO_FILTER_ILLUSION = 12, + + ZEGO_FILTER_DARK = 13 +} ZegoFilter; + + +typedef enum : NSUInteger { + + ZEGO_BEAUTIFY_NONE = 0, + + ZEGO_BEAUTIFY_POLISH = 1, + + ZEGO_BEAUTIFY_WHITEN = 1 << 1, + + ZEGO_BEAUTIFY_SKINWHITEN = 1 << 2, + + ZEGO_BEAUTIFY_SHARPEN = 1 << 3 +} ZegoBeautifyFeature; + + + +@interface ZegoMixStreamInfo : NSObject + + +@property (copy) NSString *streamID; + +@property int top; + +@property int left; + +@property int bottom; + +@property int right; + +@property unsigned int soundLevelID; + +@property int contentControl; + + + +@end + + + +@interface ZegoCompleteMixStreamConfig : NSObject + + +@property (copy) NSString *outputStream; + +@property BOOL outputIsUrl; + +@property int outputFps; + +@property int outputBitrate; + +@property int outputAudioBitrate; + +@property CGSize outputResolution; + +@property int outputAudioConfig; + +@property (strong) NSMutableArray *inputStreamList; + +@property NSData* userData; + +@property int channels; + +@property int outputBackgroundColor; + +@property (copy) NSString *outputBackgroundImage; + +@property BOOL withSoundLevel; + +@property int extra; +@end + + +typedef enum +{ + + ZEGOAPI_RC_ABR = 0, + + ZEGOAPI_RC_CBR, + + ZEGOAPI_RC_VBR, + + ZEGOAPI_RC_CRF, +} ZegoAPIVideoEncoderRateControlStrategy; + + +enum ZegoAPIPublishFlag +{ + + ZEGOAPI_JOIN_PUBLISH = 0, + ZEGO_JOIN_PUBLISH = ZEGOAPI_JOIN_PUBLISH, + + ZEGOAPI_MIX_STREAM = 1 << 1, + ZEGO_MIX_STREAM = ZEGOAPI_MIX_STREAM, + + ZEGOAPI_SINGLE_ANCHOR = 1 << 2, + ZEGO_SINGLE_ANCHOR = ZEGOAPI_SINGLE_ANCHOR, +}; + +typedef enum ZegoAPIPublishFlag ZegoApiPublishFlag; + + +enum ZegoAPIModuleType +{ + + ZEGOAPI_MODULE_AUDIO = 0x4 | 0x8, +}; + + +typedef struct +{ + + double cfps; + + double vencFps; + + double fps; + + double kbps; + + + double acapFps; + + double afps; + + double akbps; + + + int rtt; + + int pktLostRate; + + int quality; + + + bool isHardwareVenc; + + int width; + + int height; + + + double totalBytes; + + double audioBytes; + + double videoBytes; + + + double cpuAppUsage; + + double cpuTotalUsage; + + + double memoryAppUsage; + + double memoryTotalUsage; + + double memoryAppUsed; + +} ZegoAPIPublishQuality; + +typedef ZegoAPIPublishQuality ZegoApiPublishQuality; + + + +typedef struct +{ + + double fps; + + double vdjFps; + + double vdecFps; + + double vrndFps; + + double kbps; + + + double afps; + + double adjFps; + + double adecFps; + + double arndFps; + + double akbps; + + double audioBreakRate; + + double videoBreakRate; + + + int rtt; + + int pktLostRate; + + int peerToPeerDelay; + + int peerToPeerPktLostRate; + + int quality; + + int delay; + + + bool isHardwareVdec; + + int width; + + int height; + + + double totalBytes; + + double audioBytes; + + double videoBytes; + + + double cpuAppUsage; + + double cpuTotalUsage; + + + double memoryAppUsage; + + double memoryTotalUsage; + + double memoryAppUsed; + +} ZegoAPIPlayQuality; + +typedef ZegoAPIPlayQuality ZegoApiPlayQuality; + + +typedef enum : NSUInteger { + + ZEGOAPI_LATENCY_MODE_NORMAL = 0, + + ZEGOAPI_LATENCY_MODE_LOW, + + ZEGOAPI_LATENCY_MODE_NORMAL2, + + ZEGOAPI_LATENCY_MODE_LOW2, + + ZEGOAPI_LATENCY_MODE_LOW3, + + ZEGOAPI_LATENCY_MODE_NORMAL3, +} ZegoAPILatencyMode; + + +typedef enum : NSUInteger { + + ZEGOAPI_TRAFFIC_CONTROL_BASIC = 0, + + ZEGOAPI_TRAFFIC_CONTROL_ADAPTIVE_FPS = 1, + + ZEGOAPI_TRAFFIC_CONTROL_ADAPTIVE_RESOLUTION = 1 << 1, + + + ZEGOAPI_TRAFFIC_CONTROL_AUDIO_BITRATE = 1 << 2, + + + ZEGOAPI_TRAFFIC_NONE = ZEGOAPI_TRAFFIC_CONTROL_BASIC, + ZEGOAPI_TRAFFIC_FPS = ZEGOAPI_TRAFFIC_CONTROL_ADAPTIVE_FPS, + ZEGOAPI_TRAFFIC_RESOLUTION = ZEGOAPI_TRAFFIC_CONTROL_ADAPTIVE_RESOLUTION, + +} ZegoAPITrafficControlProperty; + + +typedef enum : NSUInteger { + + ZEGOAPI_TRAFFIC_CONTROL_MIN_VIDEO_BITRATE_NO_VIDEO = 0, + + ZEGOAPI_TRAFFIC_CONTROL_MIN_VIDEO_BITRATE_ULTRA_LOW_FPS + +} ZegoAPITrafficControlMinVideoBitrateMode; + + +typedef enum : NSUInteger { + + ZEGOAPI_AUDIO_DEVICE_MODE_COMMUNICATION = 1, + + ZEGOAPI_AUDIO_DEVICE_MODE_GENERAL = 2, + + ZEGOAPI_AUDIO_DEVICE_MODE_AUTO = 3, + + ZEGOAPI_AUDIO_DEVICE_MODE_COMMUNICATION2 = 4, + + ZEGOAPI_AUDIO_DEVICE_MODE_COMMUNICATION3 = 5, +} ZegoAPIAudioDeviceMode; + + +enum ZegoAPIAudioRecordMask +{ + + ZEGOAPI_AUDIO_RECORD_NONE = 0x0, + + ZEGOAPI_AUDIO_RECORD_CAP = 0x01, + + ZEGOAPI_AUDIO_RECORD_RENDER = 0x02, + + ZEGOAPI_AUDIO_RECORD_MIX = 0x04 +}; + + +typedef struct +{ + + unsigned int mask; + + int sampleRate; + + int channels; + +} ZegoAPIAudioRecordConfig; + + +typedef enum : NSUInteger { + + ZEGOAPI_CHN_MAIN = 0, + + ZEGOAPI_CHN_AUX, +} ZegoAPIPublishChannelIndex; + + +typedef enum : NSUInteger { + + ZEGOAPI_AUDIO_DEVICE_INPUT = 0, + + ZEGOAPI_AUDIO_DEVICE_OUTPUT = 1, +} ZegoAPIAudioDeviceType; + + +typedef enum : NSUInteger +{ + + ZEGOAPI_DEVICE_ADD = 0, + + ZEGOAPI_DEVICE_DELETE = 1, +} ZegoAPIDeviceState; + + +typedef enum : NSUInteger +{ + + ZEGOAPI_DEVICE_OPEN = 0, + + ZEGOAPI_DEVICE_CLOSE = 1, +} ZegoAPIDeviceStatus; + + +typedef enum : NSUInteger +{ + + ZEGOAPI_VOLUME_ENDPOINT = 0, + + ZEGOAPI_VOLUME_SIMPLE = 1, +} ZegoAPIVolumeType; + +@interface ZegoAPIDeviceInfo : NSObject + +@property (copy) NSString* deviceId; + +@property (copy) NSString* deviceName; + +@end + +@interface ZegoAPIDeviceVideoCapabilityInfo : NSObject + +@property int height; + +@property int width; + +@end + + + + +@interface ZegoAPIStreamExtraPlayInfo : NSObject + + +@property (copy) NSString* params; + +@property (strong) NSData* decryptKey; + +@property (strong) NSArray* rtmpUrls; + +@property (strong) NSArray* flvUrls; + +@property (assign) BOOL shouldSwitchServer; + +@end + + + + +typedef enum : NSUInteger +{ + + ZEGOAPI_RELAY_STOP = 0, + + ZEGOAPI_RELAY_START = 1, + + ZEGOAPI_RELAY_RETRY = 2, +} ZegoAPIStreamRelayCDNState; + +typedef enum : NSUInteger +{ + + ZEGOAPI_RELAY_NONE = 0, + + ZEGOAPI_RELAY_SERVER_ERROR = 8, + + ZEGOAPI_RELAY_HAND_SHAKE_FAILED = 9, + + ZEGOAPI_RELAY_ACCESS_POINT_ERROR = 10, + + ZEGOAPI_RELAY_CREATE_STREAM_FAILED = 11, + + ZEGOAPI_RELAY_BAD_NAME = 12, + + ZEGOAPI_RELAY_CDN_SERVER_DISCONNECTED = 13, + + ZEGOAPI_RELAY_DISCONNECTED = 14, + + ZEGOAPI_MIXSTREAM_ALL_INPUT_STREAM_CLOSED = 1214, + + ZEGOAPI_MIXSTREAM_ALL_INPUT_STREAM_NODATA = 1215, + + ZEGOAPI_MIXSTREAM_SERVER_INTERNAL_ERROR = 1230, +} ZegoAPIStreamRelayCDNDetail; + + +@interface ZegoAPIStreamRelayCDNInfo : NSObject + + +@property (copy) NSString *rtmpURL; + +@property (assign) ZegoAPIStreamRelayCDNState state; + +@property (assign) ZegoAPIStreamRelayCDNDetail detail; + +@property (assign) unsigned int stateTime; + +@end + + +typedef enum : NSUInteger +{ + + ZEGOAPI_AEC_MODE_ARRGRESSIVE, + + ZEGOAPI_AEC_MODE_MEDIUM, + + ZEGOAPI_AEC_MODE_SOFT, +} ZegoAPIAECMode; + + +typedef enum : NSUInteger +{ + + ZEGOAPI_ANS_MODE_LOW = 0, + + ZEGOAPI_ANS_MODE_MEDIUM, + + ZEGOAPI_ANS_MODE_HIGH, +} ZegoAPIANSMode; + + +typedef enum : NSInteger +{ + + ZEGOAPI_DEVICE_ERROR_GENERIC = -1, + + ZEGOAPI_DEVICE_ERROR_INVALID_ID = -2, + + ZEGOAPI_DEVICE_ERROR_NO_AUTHORIZATION = -3, + + ZEGOAPI_DEVICE_ERROR_ZERO_FPS = -4, + + ZEGOAPI_DEVICE_ERROR_IN_USE_BY_OTHER = -5, + + ZEGOAPI_DEVICE_ERROR_UNPLUGGED = -6, + + ZEGOAPI_DEVICE_ERROR_MEDIA_SERVICES_LOST = -8, + + ZEGOAPI_DEVICE_ERROR_IN_USE_BY_SIRI = -9, +} ZegoAPIDeviceErrorCode; + +typedef enum : NSInteger +{ + + ZEGOAPI_DEVICE_ERROR_REASON_GENERIC = -1, + + ZEGOAPI_DEVICE_ERROR_REASON_INVALID_ID = -2, + + ZEGOAPI_DEVICE_ERROR_REASON_NO_AUTHORIZATION = -3, + + ZEGOAPI_DEVICE_ERROR_REASON_ZERO_FPS = -4, + + ZEGOAPI_DEVICE_ERROR_REASON_IN_USE_BY_OTHER = -5, + + ZEGOAPI_DEVICE_ERROR_REASON_UNPLUGGED = -6, + + ZEGOAPI_DEVICE_ERROR_REASON_REBOOT_REQUIRED = -7, + + ZEGOAPI_DEVICE_ERROR_REASON_MEDIA_SERVICES_LOST = -8, + + ZEGOAPI_DEVICE_ERROR_REASON_IN_USE_BY_SIRI = -9, + + ZEGOAPI_DEVICE_ERROR_REASON_NONE = 0, + + ZEGOAPI_DEVICE_ERROR_REASON_DISABLED = 2, + + ZEGOAPI_DEVICE_ERROR_REASON_MUTE = 3, + + ZEGOAPI_DEVICE_ERROR_REASON_INTERRUPTION = 4, + + ZEGOAPI_DEVICE_ERROR_REASON_IN_BACKGROUND = 5, + + ZEGOAPI_DEVICE_ERROR_REASON_MULTI_FOREGROUND_APP = 6, + + ZEGOAPI_DEVICE_ERROR_REASON_SYSTEM_PRESSURE = 7, + +}ZegoAPIDeviceErrorReason; + + +typedef NS_ENUM(NSInteger, ZegoAPIAudioRoute) +{ + + ZEGOAPI_AUDIO_ROUTE_SPEAKER = 0, + + ZEGOAPI_AUDIO_ROUTE_HEADSET, + + ZEGOAPI_AUDIO_ROUTE_BLUETOOTH, + + ZEGOAPI_AUDIO_ROUTE_RECEIVER, + + ZEGOAPI_AUDIO_ROUTE_USB_AUDIO + +}; + + +typedef NS_ENUM(NSInteger, ZegoAPINetType) +{ + + ZEGOAPI_NT_NONE = 0, + + ZEGOAPI_NT_LINE = 1, + + ZEGOAPI_NT_WIFI = 2, + + ZEGOAPI_NT_2G = 3, + + ZEGOAPI_NT_3G = 4, + + ZEGOAPI_NT_4G = 5, + + ZEGOAPI_NT_5G = 6, + + ZEGOAPI_NT_UNKNOWN = 32 +}; + +#endif diff --git a/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/zego-api-error-oc.h b/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/zego-api-error-oc.h new file mode 100644 index 00000000..63509b52 --- /dev/null +++ b/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/zego-api-error-oc.h @@ -0,0 +1,240 @@ +#ifndef zego_api_error_oc +#define zego_api_error_oc + +#import + +typedef enum : NSUInteger { + + kOK = 0, + kEnd = 1, + + kNoneAppIdError = 10000101, + kNotLoginError = 10000105, + kPublishBadNameError = 10000106, + + kInvalidParamError = 10001001, + kInvalidChannelError = 10001002, + kNullPointerError = 10001003, + kNoFreeChannelError = 10001101, + kFormatUrlError = 10001102, + kUnmatchStreamIDError = 10002001, + kUnmatchSeqError = 10002002, + kNoneSeqError = 10002003, + kUnmatchStateError = 10002004, + kRedirectError = 10003001, + kOutOfMemeryError = 10004001, + kStartThreadError = 10004002, + kStartRequestError = 10005001, + kStartUpdateStreamInfoError = 10006001, + + kNetworkNotConnectError = 11000101, + kNetworkDnsResolveError = 11000404, + + kEngineCreateError = 12101001, + kEngineStatusError = 12101002, + kEngineStartError = 12101003, + kDeniedMaxRetryError = 12101004, + kDeniedDisableSwitchLineError = 12101005, + + kEngineNoPlayDataError = 12102001, + kEngineNoPublishDataError = 12102002, + + kEngineUnknownError = 12200000, + kEngineConnectServerError = 12200001, + kEngineRtmpHandshakeError = 12200002, + kEngineRtmpAppConnectError = 12200003, + kEngineRtmpCreateStreamError = 12200004, + kEngineRtmpPublishBadNameError = 12200005, + kEngineServerDisconnectError = 12200006, + + kEngineRtpConnectServerError = 12200100, + kEngineRtpHelloTimeoutError = 12200101, + kEngineRtpCreateSessionTimeoutError = 12200102, + kEngineRtpCreateSessionFailError = 12200103, + kEngineRtpPlayOrPublishTimeoutError = 12200104, + kEngineRtpPlayOrPublishDeniedError = 12200105, + kEngineRtpTimeoutError = 12200106, + kEngineRtpDecryptError = 12200107, + kEngineRtpDecryptNotSupport = 12200108, + kEngineRtpSockError = 12200109, + kEngineHttpFlvProtocolError = 12200200, + kEngineHttpFlvHttpCodeError = 12200201, + kEngineHttpFlvParseFlvError = 12200202, + kEngineHttpFlvServerDisconnectError = 12200203, + kEngineHttpFlvRedirectError = 12200204, + + kPlayStreamNotExistError = 12301004, + kMediaServerForbidError = 12301011, + kMediaServerPublishBadNameError= 12301012, + kMediaServerStopPublishError = 12301014, + + kConfigDecryptError = 20000001, + kConfigOfflineError = 20000002, + kConfigDomainError = 20000003, + kConfigMediaNetworkNoneError = 20000004, + kConfigMediaNetworkNoUrlError = 20000005, + kConfigServerCouldntConnectError = 21200007, + kConfigServerTimeoutError = 21200028, + kConfigServerSslCaCertError = 21200060, + + + kDispatchServerInvalidError = 30000001, + kDispatchNoIpError = 30000404, + kDispatchServerCouldntConnectError = 31200007, + kDispatchServerTimeoutError = 31200028, + kDispatchServerSslCaCertError = 31200060, + kDispatchEmptyPublishIpsError = 32001002, + kDispatchEmptyPlayIpsError = 32001003, + kDispatchStreamNotExistError = 32001004, + kDispatchAgentTimeoutError = 35500001, + kDispatchAgentDroppedError = 35500002, + + kLogicServerNoUrlError = 40000404, + kLogicServerCouldntConnectError= 41200007, + kLogicServerTimeoutError = 41200028, + kLogicServerSslCaCertError = 41200060, + kLoginAgentTimeoutError = 45500001, + kLoginAgentDroppedError = 45500002, + + kLiveRoomRequestParamError = 50001001, + kLiveRoomHBTimeoutError = 50001002, + kLiveRoomNoPushServerAddrError = 50001003, + kLiveRoomNoPushCryptoKeyError = 50001004, + kLiveRoomNoPushTokenError = 50001005, + kLiveRoomCouldntConnectError = 51200007, + kLiveRoomTimeoutError = 51200028, + kLiveRoomSslCaCertError = 51200060, + kLiveRoomInvalidRspError = 51400003, + kLiveRoomInputParamsError = 52000002, + kLiveRoomRoomAuthError = 52000101, + kLiveRoomRoomNotExistError = 52000104, + kLiveRoomNotLoginError = 52000105, + kLiveRoomSetStreamInfoError = 52000123, + kLiveRoomStreamInfoNotExist = 52000138, + kLiveRoomSessionError = 52000141, + kLiveRoomQpsLimitError = 52000201, + kLiveRoomLuaSessionError = 52001001, + kLiveRoomAddUserError = 52001002, + kLiveRoomDelUserError = 52001003, + kLiveRoomAddTransError = 52001009, + kLiveRoomMaxUserCountError = 52001105, + kLiveRoomPublishBadNameError = 52001012, + kLiveRoomRequiredReloginError = 52002001, + kLiveRoomThirdTokenAuthError = 52002002, + kLiveRoomNetBrokenTimeoutError = 52002003, + kLiveRoomAgentTimeoutError = 55500001, + kLiveRoomAgentDroppedError = 55500002, + + kRoomConnectError = 60001001, + kRoomDoHandShakeReqError = 60001002, + kRoomDoLoginReqError = 60001003, + kRoomTimeoutError = 60001004, + kRoomHbTimeoutError = 60001005, + kRoomStartConnectError = 60001006, + kRoomReconnectFailError = 60001007, + kRoomInvalidSocketError = 60002001, + kRoomInvalidRspError = 60003001, + kRoomDecodeSignError = 62001001, + kRoomReplayAttacksError = 62002001, + kRoomLoginCreateUserError = 62010001, + kRoomLoginSameCreateUserError = 62010002, + kRoomStatusTimeoutError = 62010005, + kRoomStatusRspError = 62010006, + kRoomMultipleLoginKickoutError = 63000001, + kRoomManualKickoutError = 63000002, + kRoomSessionErrorKickoutError = 63000003, + + + kMixStreamNoneMixConfigError = 80000001, + kMixStreamCouldntConnectError = 81200007, + kMixStreamTimeoutError = 81200028, + kMixStreamSslCaCertError = 81200060, + kMixStreamFailError = 82000001, + kMixStreamInputParamsError = 82000002, + kMixStreamAuthError = 82000003, + kMixStreamNotExistError = 82000150, + kMixStreamStartMixError = 82000151, + kMixStreamStopMixError = 82000152, + kMixStreamInputFormatError = 82000155, + kMixStreamOutputFormatError = 82000156, + kMixStreamNotOpenError = 82000157, + kMixStreamInputExceedError = 82000158, + kMixStreamDispatchError = 82000159, + kMixStreamStopMixOwnerError = 82000160, + kMixStreamWaterMarkParamError = 82000170, + kMixStreamWaterMarkImageError = 82000171, + kMixStreamQpsOverloadError = 82000190, + kMixStreamAgentTimeoutError = 85500001, + kMixStreamAgentDroppedError = 85500002, + +} ZegoErrorCode; + +@interface ZegoError : NSObject + + ++ (bool)isInitSDKError:(int)error; + + ++ (bool)isNotLoginError:(int)error; + + ++ (bool)isMediaServerNetWorkError:(int)error; + + ++ (bool)isLogicServerNetWrokError:(int)error; + + ++ (bool)isMixStreamNotExistError:(int)error; + + ++ (bool)isPlayStreamNotExistError:(int)error; + + ++ (bool)isPublishBadNameError:(int)error; + + ++ (bool)isPublishForbidError:(int)error; + + ++ (bool)isPublishStopError:(int)error; + + + ++ (bool)isPublishDeniedError:(int)error; + + ++ (bool)isPlayForbidError:(int)error; + + ++ (bool)isPlayDeniedError:(int)error; + + ++ (bool)isDNSResolveError:(int)error; + + ++ (bool)isNetworkUnreachError:(int)error; + + ++ (bool)isHttpProtocolError:(int)error; + + ++ (bool)isReqFrequencyLimitError:(int)error; + + ++ (bool)isLiveRoomError:(int)error; + + ++ (bool)isMultiLoginError:(int)error; + + ++ (bool)isManualKickoutError:(int)error; + + ++ (bool)isRoomSessionError:(int)error; + + ++ (NSString *)getErrorMsg:(int)error; + +@end + +#endif diff --git a/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/zego-api-external-audio-device-oc.h b/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/zego-api-external-audio-device-oc.h new file mode 100644 index 00000000..3fa8e255 --- /dev/null +++ b/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/zego-api-external-audio-device-oc.h @@ -0,0 +1,53 @@ +#ifndef zego_api_external_audio_device_oc_h +#define zego_api_external_audio_device_oc_h + +#import + +#import "zego-api-defines-oc.h" +#import "zego-api-audio-frame-oc.h" + + + +typedef enum ZegoAPIAuxPublishChannelAudioSrcType +{ + kZegoAPIAuxPublishChannelAudioSrcTypeNone = -1, + + kZegoAPIAuxPublishChannelAudioSrcTypeSameAsMainPublishChannel = 0, + + kZegoAPIAuxPublishChannelAudioSrcTypeExternalCapture = 1, + + KZegoAPIAuxPublishChannelAudioSrcTypePlayer = 2, +} ZegoAPIAuxPublishChannelAudioSrcType; + + + +@interface ZegoExternalAudioDevice : NSObject + + ++ (void)enableExternalAudioDevice:(bool)enable; + + ++ (int)setAudioSrcForAuxiliaryPublishChannel:(ZegoAPIAuxPublishChannelAudioSrcType)type; + + ++ (int)startCapture:(ZegoAPIPublishChannelIndex)publishChannel; + + ++ (int)stopCapture:(ZegoAPIPublishChannelIndex)publishChannel; + + ++ (int)onRecordAudioFrame:(ZegoAPIAudioFrame*)audioFrame channel:(ZegoAPIPublishChannelIndex)publishChannel; + + ++ (int)startRender; + + ++ (int)stopRender; + + ++ (int)onPlaybackAudioFrame:(ZegoAPIAudioFrame*)audioFrame; + +@end + +#endif + diff --git a/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/zego-api-external-video-render-oc.h b/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/zego-api-external-video-render-oc.h new file mode 100644 index 00000000..f060a997 --- /dev/null +++ b/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/zego-api-external-video-render-oc.h @@ -0,0 +1,94 @@ +// +// zego-api-external-video-render-oc.h +// zegoavkit +// +// Copyright © 2017年 Zego. All rights reserved. +// + +#ifndef zego_api_external_video_render_oc_h +#define zego_api_external_video_render_oc_h + +#include +#include +#include "zego-api-defines-oc.h" + + +typedef NS_ENUM(NSInteger, VideoPixelFormat) { + PixelFormatUnknown = 0, + PixelFormatI420 = 1, + PixelFormatNV12 = 2, + PixelFormatNV21 = 3, + PixelFormatBGRA32 = 4, + PixelFormatRGBA32 = 5, + PixelFormatARGB32 = 6, + PixelFormatABGR32 = 7, + PixelFormatI422 = 8 +}; + +@protocol ZegoVideoRenderDelegate + + +- (void)onVideoRenderCallback:(unsigned char **)data dataLen:(int*)dataLen width:(int)width height:(int)height strides:(int[])strides pixelFormat:(VideoPixelFormat)pixelFormat streamID:(NSString *)streamID; + + +- (void)onSetFlipMode:(int)mode streamID:(NSString *)streamID; + + +- (void)onSetRotation:(int)rotation streamID:(NSString *)streamID; + +@end + +@protocol ZegoVideoRenderCVPixelBufferDelegate + + +- (void)onVideoRenderCallback:(CVPixelBufferRef)data streamID:(NSString *)streamID; + + +- (void)onSetFlipMode:(int)mode streamID:(NSString *)streamID; + + +- (void)onSetRotation:(int)rotation streamID:(NSString *)streamID; + +@end + + +typedef NS_ENUM(NSInteger, VideoRenderType) { + + VideoRenderTypeNone = 0, + + VideoRenderTypeRgb = 1, + + VideoRenderTypeYuv = 2, + + VideoRenderTypeAny = 3, + + VideoRenderTypeExternalInternalRgb = 4, + + VideoRenderTypeExternalInternalYuv = 5 +}; + + +@interface ZegoExternalVideoRender : NSObject + + + ++ (instancetype)sharedInstance; + + ++ (bool)enableVideoRender:(BOOL)enable streamID:(NSString *)streamID; + + ++ (bool)enableVideoPreview:(BOOL)enable channelIndex:(ZegoAPIPublishChannelIndex)channelIndex; + + ++ (void)setVideoRenderType:(VideoRenderType)type; + + +- (void)setZegoVideoRenderDelegate:(id)delegate; + + +- (void)setZegoVideoRenderCVPixelBufferDelegate:(id)delegate; + +@end + +#endif diff --git a/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/zego-api-media-recorder-oc.h b/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/zego-api-media-recorder-oc.h new file mode 100644 index 00000000..d9b854f9 --- /dev/null +++ b/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/zego-api-media-recorder-oc.h @@ -0,0 +1,105 @@ +// +// zego-api-media-recorder-oc.h +// ZegoLiveRoom +// +// Created by MarkWu on 2018/6/15. +// +#ifndef zego_api_media_recorder_oc_h +#define zego_api_media_recorder_oc_h + +#import +#include "zego-api-defines-oc.h" + + +typedef enum : NSUInteger +{ + + ZEGOAPI_MEDIA_RECORD_AUDIO = 1, + + ZEGOAPI_MEDIA_RECORD_VIDEO = 2, + + ZEGOAPI_MEDIA_RECORD_BOTH = 3 + +} ZegoAPIMediaRecordType; + + +typedef enum : NSUInteger +{ + + ZEGOAPI_MEDIA_RECORD_CHN_MAIN = 0, + + ZEGOAPI_MEDIA_RECORD_CHN_AUX = 1 + +} ZegoAPIMediaRecordChannelIndex; + + +typedef enum : NSUInteger +{ + + ZEGOAPI_MEDIA_RECORD_FLV = 1, + + ZEGOAPI_MEDIA_RECORD_MP4 = 2 +} ZegoAPIMediaRecordFormat; + +typedef enum : NSUInteger +{ + + ZEGOAPI_MEDIA_RECORD_SUCCESS = 0, + + ZEGOAPI_MEDIA_RECORD_PATH_TOO_LONG, + + ZEGOAPI_MEDIA_RECORD_INIT_FAILED, + + ZEGOAPI_MEDIA_RECORD_OPEN_FILE_FAILED, + + ZEGOAPI_MEDIA_RECORD_WRITE_HEADER_FAILED, + + ZEGOAPI_MEDIA_RECORD_RECORD_BEGIN, + + ZEGOAPI_MEDIA_RECORD_RECORD_END, + + ZEGOAPI_MEDIA_RECORD_NO_SPACE, + + ZEGOAPI_MEDIA_RECORD_BAD_FILE_DESC, + + ZEGOAPI_MEDIA_RECORD_IO_ERROR, +} ZegoAPIMediaRecordErrorCode; + +@protocol ZegoMediaRecordDelegage +@required + +- (void)onMediaRecord:(int)errCode channelIndex:(ZegoAPIMediaRecordChannelIndex)index storagePath:(NSString *)path; + +@optional + +- (void)onRecordStatusUpdateFromChannel:(ZegoAPIMediaRecordChannelIndex)index storagePath:(NSString *)path duration:(unsigned int)duration fileSize:(unsigned int)size; + + +- (void)onRecordStatusUpdateFromChannel:(ZegoAPIMediaRecordChannelIndex)index storagePath:(NSString *)path duration:(unsigned int)duration fileSize:(unsigned int)size quality: (ZegoAPIPublishQuality)quality; + +@end + + +@interface ZegoMediaRecorder : NSObject + + +- (BOOL)startRecord:(ZegoAPIMediaRecordChannelIndex)channelIndex recordType:(ZegoAPIMediaRecordType)recordType storagePath:(NSString *)storagePath; + + +- (BOOL)startRecord:(ZegoAPIMediaRecordChannelIndex)channelIndex recordType:(ZegoAPIMediaRecordType)recordType storagePath:(NSString *)storagePath enableStatusUpdate:(BOOL)enable interval:(int)interval; + + +- (BOOL)startRecord:(ZegoAPIMediaRecordChannelIndex)channelIndex recordType:(ZegoAPIMediaRecordType)recordType storagePath:(NSString *)storagePath enableStatusUpdate:(BOOL)enable interval:(int)interval recordFormat:(ZegoAPIMediaRecordFormat)recordFormat; + + +- (BOOL)startRecord:(ZegoAPIMediaRecordChannelIndex)channelIndex recordType:(ZegoAPIMediaRecordType)recordType storagePath:(NSString *)storagePath enableStatusUpdate:(BOOL)enable interval:(int)interval recordFormat:(ZegoAPIMediaRecordFormat)recordFormat isFragment:(BOOL)isFragment; + + +- (void)stopRecord:(ZegoAPIMediaRecordChannelIndex)channelIndex; + + +- (void)setMediaRecordDelegage:(id)delegate; + +@end + +#endif diff --git a/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/zego-api-media-side-info-oc.h b/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/zego-api-media-side-info-oc.h new file mode 100644 index 00000000..525044d1 --- /dev/null +++ b/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/zego-api-media-side-info-oc.h @@ -0,0 +1,32 @@ +#ifndef zego_api_media_side_info_oc_h +#define zego_api_media_side_info_oc_h + +#import +#include "zego-api-defines-oc.h" + + +@protocol ZegoMediaSideDelegate +@required + +- (void)onRecvMediaSideInfo:(NSData *)data ofStream:(NSString *)streamID; + +@end + +@interface ZegoMediaSideInfo : NSObject + + +- (void)setMediaSideFlags:(bool)start onlyAudioPublish:(bool)onlyAudioPublish channelIndex:(ZegoAPIPublishChannelIndex)index; + + +- (void)setMediaSideFlags:(bool)start onlyAudioPublish:(bool)onlyAudioPublish mediaInfoType:(int)mediaInfoType seiSendType:(int)seiSendType channelIndex:(ZegoAPIPublishChannelIndex)index; + + +- (void)sendMediaSideInfo:(NSData *)data packet:(bool)packet channelIndex:(ZegoAPIPublishChannelIndex)index; + + + +- (void)setMediaSideDelegate:(id)delegate; + +@end + +#endif diff --git a/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/zego-api-mediaplayer-defines-oc.h b/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/zego-api-mediaplayer-defines-oc.h new file mode 100644 index 00000000..a5424bf0 --- /dev/null +++ b/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/zego-api-mediaplayer-defines-oc.h @@ -0,0 +1,53 @@ +// +// zego-api-mediaplayer-defines-oc.h +// ZegoLiveRoom +// +// Created by kebo on 2018/8/10. +// + +#ifndef zego_api_mediaplayer_defines_oc_h +#define zego_api_mediaplayer_defines_oc_h + + + + +typedef NS_ENUM(NSInteger, MediaPlayerType) { + + MediaPlayerTypePlayer, + MediaPlayerTypeAux +}; + +typedef NS_ENUM(NSInteger, ZegoMediaPlayerVideoPixelFormat) { + ZegoMediaPlayerVideoPixelFormatUnknown = 0, + ZegoMediaPlayerVideoPixelFormatI420 = 1, + ZegoMediaPlayerVideoPixelFormatNV12 = 2, + ZegoMediaPlayerVideoPixelFormatNV21 = 3, + ZegoMediaPlayerVideoPixelFormatBGRA32 = 4, + ZegoMediaPlayerVideoPixelFormatRGBA32 = 5, + ZegoMediaPlayerVideoPixelFormatARGB32 = 6, + ZegoMediaPlayerVideoPixelFormatABGR32 = 7, +}; + +typedef NS_ENUM(NSInteger, ZegoMediaPlayerIndex) { + ZegoMediaPlayerIndexFirst = 0, + ZegoMediaPlayerIndexSecond = 1, + ZegoMediaPlayerIndexThird = 2, + ZegoMediaPlayerIndexFourth = 3, +}; + +typedef NS_ENUM(NSInteger, ZegoMediaPlayerAudioChannel) { + ZegoMediaPlayerAudioChannelLeft = 1, + ZegoMediaPlayerAudioChannelRight = 2, + ZegoMediaPlayerAudioChannelAll = 3 +}; + +struct ZegoMediaPlayerVideoDataFormat +{ + int width; + int height; + int strides[4]; + int rotation; + ZegoMediaPlayerVideoPixelFormat pixelFormat; +}; + +#endif diff --git a/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/zego-api-mediaplayer-oc.h b/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/zego-api-mediaplayer-oc.h new file mode 100644 index 00000000..7bd61f17 --- /dev/null +++ b/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/zego-api-mediaplayer-oc.h @@ -0,0 +1,296 @@ +#ifndef zego_api_mediaplayer_oc_h +#define zego_api_mediaplayer_oc_h + +#import + +#if TARGET_OS_IPHONE +#import +#define ZEGOView UIView +#define ZEGOImage UIImage +#elif TARGET_OS_OSX +#import +#define ZEGOView NSView +#define ZEGOImage NSImage +#endif + +#import "zego-api-defines-oc.h" +#import "zego-api-mediaplayer-defines-oc.h" + + + +@protocol ZegoMediaPlayerEventDelegate + +@optional + + +- (void)onPlayStart; + + +- (void)onPlayPause; + + +- (void)onPlayResume; + + +- (void)onPlayError:(int)code; + + +- (void)onVideoBegin; + + + +- (void)onAudioBegin; + + + +- (void)onPlayEnd; + + +- (void)onPlayStop; + + +- (void)onBufferBegin; + + +- (void)onBufferEnd; + + +- (void)onSeekComplete:(int)code when:(long)millisecond; + + +- (void)onSnapshot:(ZEGOImage *)image; + + +- (void)onLoadComplete; + + +- (void)onProcessInterval:(long)timestamp; + +@end + + +@protocol ZegoMediaPlayerVideoPlayDelegate + +@optional + + +- (void)onPlayVideoData:(const char *)data size:(int)size format:(struct ZegoMediaPlayerVideoDataFormat)format; + + +- (void)onPlayVideoData:(const char *)data Size:(int)size Format:(struct ZegoMediaPlayerVideoDataFormat)format; + + +- (void)onPlayVideoData2:(const char **)data size:(int *)size format:(struct ZegoMediaPlayerVideoDataFormat)format; + + +@end + + +@protocol ZegoMediaPlayerEventWithIndexDelegate + +@optional + + +- (void)onPlayStart:(ZegoMediaPlayerIndex)index; + + +- (void)onPlayPause:(ZegoMediaPlayerIndex)index; + + +- (void)onPlayResume:(ZegoMediaPlayerIndex)index; + + +- (void)onPlayError:(int)code playerIndex:(ZegoMediaPlayerIndex)index; + + +- (void)onVideoBegin:(ZegoMediaPlayerIndex)index; + + + +- (void)onAudioBegin:(ZegoMediaPlayerIndex)index; + + + +- (void)onPlayEnd:(ZegoMediaPlayerIndex)index; + + +- (void)onPlayStop:(ZegoMediaPlayerIndex)index; + + +- (void)onBufferBegin:(ZegoMediaPlayerIndex)index; + + +- (void)onBufferEnd:(ZegoMediaPlayerIndex)index; + + +- (void)onSeekComplete:(int)code when:(long)millisecond playerIndex:(ZegoMediaPlayerIndex)index; + + +- (void)onSnapshot:(ZEGOImage *)image playerIndex:(ZegoMediaPlayerIndex)index; + + +- (void)onLoadComplete:(ZegoMediaPlayerIndex)index; + + +- (void)onProcessInterval:(long)timestamp playerIndex:(ZegoMediaPlayerIndex)index; + +@end + + +@protocol ZegoMediaPlayerVideoPlayWithIndexDelegate + +@optional + + +- (void)onPlayVideoData:(const char *)data size:(int)size format:(struct ZegoMediaPlayerVideoDataFormat)format playerIndex:(ZegoMediaPlayerIndex)index; + + +- (void)onPlayVideoData2:(const char **)data size:(int *)size format:(struct ZegoMediaPlayerVideoDataFormat)format playerIndex:(ZegoMediaPlayerIndex)index; + +@end + +@protocol ZegoMediaPlayerAudioPlayDelegate + + +- (void) onPlayAudioData:(unsigned char * const)data length:(int)length sample_rate:(int)sample_rate channels:(int)channels bit_depth:(int)bit_depth playerIndex:(ZegoMediaPlayerIndex)index; + +@end + + +@interface ZegoMediaPlayer : NSObject + + + +- (instancetype)initWithPlayerType:(MediaPlayerType)type; + + +- (instancetype)initWithPlayerType:(MediaPlayerType)type playerIndex:(ZegoMediaPlayerIndex)index; + + +- (void)uninit; + + + +- (void)setDelegate:(id)delegate; + + + +- (void)setVideoPlayDelegate:(id)delegate format:(ZegoMediaPlayerVideoPixelFormat)format; + + +- (void)setEventWithIndexDelegate:(id)delegate; + + + +- (void)setVideoPlayWithIndexDelegate:(id)delegate format:(ZegoMediaPlayerVideoPixelFormat)format; + + + +- (void)setAudioPlayDelegate:(id)delegate; + + + +- (void)start:(NSString *)path repeat:(BOOL)repeat; + + +- (void)stop; + + + +- (void)pause; + + + +- (void)resume; + + + +- (void)seekTo:(long)millisecond; + + +- (void)enableAccurateSeek:(bool)enable; + + +- (void)setAccurateSeekTimeout:(long)timeoutInMS; + + +- (long)getDuration; + + + +- (long)getCurrentDuration; + + + +- (void)muteLocal:(BOOL)mute; + + + +- (void)load:(NSString *)path; + +#if TARGET_OS_IPHONE + + +- (void)setView:(UIView *)view; + +#elif TARGET_OS_OSX + + +- (void)setView:(NSView *)view; + +#endif + + +- (void)setVolume:(int)volume; + + +- (void)setPublishVolume:(int)volume; + + +- (void)setPlayVolume:(int)volume; + + +- (int)getPublishVolume; + + +- (int)getPlayVolume; + + +- (long)setAudioStream:(long)streamIndex; + + +- (void)setPlayerType:(MediaPlayerType)type; + + +- (void)takeSnapshot; + + +- (long)getAudioStreamCount; + + +- (void)enableRepeatMode:(BOOL)enable; + + +- (BOOL)setProcessInterval:(long)interval; + + +- (BOOL)requireHWDecoder; + + +- (void)setViewMode:(ZegoVideoViewMode)mode; + + +- (void)setBackgroundColor:(int)color; + + +- (void)clearView; + + +- (void)setActiveAudioChannel:(ZegoMediaPlayerAudioChannel)channel; + + +- (void)setAudioChannel:(ZegoMediaPlayerAudioChannel)channel keyShift:(float)value; + +@end + +#endif diff --git a/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/zego-api-mix-engine-playout-oc.h b/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/zego-api-mix-engine-playout-oc.h new file mode 100644 index 00000000..d08287c0 --- /dev/null +++ b/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/zego-api-mix-engine-playout-oc.h @@ -0,0 +1,15 @@ +#ifndef zego_api_mix_engine_playout_oc_h +#define zego_api_mix_engine_playout_oc_h + +#import +#include "zego-api-defines-oc.h" + +@interface ZegoMixEngine : NSObject + + + ++ (int)MixEnginePlayout:(BOOL)enable; + +@end + +#endif diff --git a/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/zego-api-mix-stream-defines-oc.h b/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/zego-api-mix-stream-defines-oc.h new file mode 100644 index 00000000..66dc084d --- /dev/null +++ b/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/zego-api-mix-stream-defines-oc.h @@ -0,0 +1,135 @@ +// +// zego-api-mix-stream-defines-oc.h +// +// Copyright © 2018年 Zego. All rights reserved. +// + +#ifndef zego_api_mix_stream_defines_oc_h +#define zego_api_mix_stream_defines_oc_h + + +@interface ZegoMixStreamInput : NSObject + + +@property (copy) NSString *streamID; + +@property int top; + +@property int left; + +@property int bottom; + +@property int right; + +@property unsigned int soundLevelID; + +@property int contentControl; + + + +@end + + +@interface ZegoMixStreamOutput : NSObject + + +@property (copy) NSString *target; + +@property BOOL isUrl; + +@end + + +@interface ZegoMixStreamWatermark : NSObject + +@property (nonatomic, copy) NSString *image; + +@property int left; + +@property int top; + +@property int right; + +@property int bottom; + +@end + + +@interface ZegoMixStreamConfig : NSObject + + +@property int outputFps; + +@property int outputRateControlMode; + +@property int outputBitrate; + +@property int outputQuality; + +@property int outputAudioBitrate; + +@property CGSize outputResolution; + +@property int outputAudioConfig; + +@property (strong) NSMutableArray *inputStreamList; + +@property (strong) NSMutableArray *outputList; + +@property NSData* userData; + +@property int channels; + +@property int outputBackgroundColor; + +@property (copy) NSString *outputBackgroundImage; + +@property BOOL withSoundLevel; + +@property int extra; + +@property (nonatomic, strong) ZegoMixStreamWatermark *watermark; + +@property (nonatomic, assign) BOOL singleStreamPassThrough; + +@property (nonatomic, copy) NSString *advancedConfig; +@end + + +@interface ZegoMixStreamOutputResult : NSObject + +@property (nonatomic, copy) NSString *streamID; + +@property (nonatomic, strong) NSMutableArray *rtmpList; + +@property (nonatomic, strong) NSMutableArray *hlsList; + +@property (nonatomic, strong) NSMutableArray *flvList; + +@end + + + +@interface ZegoMixStreamResultEx : NSObject + + +@property int seq; + +@property (nonatomic, strong) NSMutableArray *nonExistInputList; + +@property (nonatomic, strong) NSMutableArray *outputResultList; + +@end + + + +@interface ZegoSoundLevelInMixedStreamInfo : NSObject + + +@property (assign) unsigned int soundLevelID; + +@property (assign) unsigned char soundLevel; + +@end + +#endif diff --git a/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/zego-api-mix-stream-oc.h b/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/zego-api-mix-stream-oc.h new file mode 100644 index 00000000..e301a342 --- /dev/null +++ b/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/zego-api-mix-stream-oc.h @@ -0,0 +1,71 @@ +// +// zego-api-mix-stream-oc.h +// +// Copyright © 2018年 Zego. All rights reserved. +// + +#ifndef zego_api_mix_stream_oc_h +#define zego_api_mix_stream_oc_h + +#import +#include "zego-api-defines-oc.h" +#include "zego-api-mix-stream-defines-oc.h" + + + +ZEGO_EXTERN NSString *const kZegoMixNonExistsStreamIDKey; + +ZEGO_EXTERN NSString *const kZegoMixStreamReqSeqKey; + + +@protocol ZegoMixStreamDelegate + +@optional + +- (void)onMixStreamConfigUpdate:(int)errorCode mixStream:(NSString *)mixStreamID streamInfo:(NSDictionary *)info; + +@end + + +@protocol ZegoMixStreamExDelegate + +@optional + +- (void)onMixStreamExConfigUpdate:(int)errorCode mixStream:(NSString *)mixStreamID streamInfo:(ZegoMixStreamResultEx *)info; + + + +- (void)onMixStreamRelayCDNStateUpdate:(NSArray *)statesInfo mixStreamID:(NSString*)streamID; + +@end + + +@protocol ZegoLiveSoundLevelInMixedStreamDelegate + +@optional + +- (void)onSoundLevelInMixedStream:(NSArray *)soundLevelList; + +@end + + +@interface ZegoStreamMixer : NSObject + + +- (void)setDelegate:(id)delegate; + + +- (void)setSoundLevelInMixedStreamDelegate:(id)delegate; + + +- (bool)mixStream:(ZegoCompleteMixStreamConfig *)completeMixConfig seq:(int)seq; + + +- (void)setMixStreamExDelegate:(id)delegate; + + +- (int)mixStreamEx:(ZegoMixStreamConfig *)config mixStreamID:(NSString *)mixStreamID; + +@end + +#endif diff --git a/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/zego-api-network-trace-defines-oc.h b/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/zego-api-network-trace-defines-oc.h new file mode 100644 index 00000000..00aa77ca --- /dev/null +++ b/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/zego-api-network-trace-defines-oc.h @@ -0,0 +1,88 @@ +// +// zego_api_network_trace_defines_oc_h +// ZegoLiveRoom +// +// Copyright © 2019年 Zego. All rights reserved. +// + +#ifndef zego_api_network_trace_defines_oc_h +#define zego_api_network_trace_defines_oc_h + +#import + + +@interface ZegoNetworkTraceConfig : NSObject + + +@property (nonatomic, assign) int traceroute; + +@end + + +@interface ZegoHttpTraceResult : NSObject + + +@property (nonatomic, assign) unsigned int code; + + +@property (nonatomic, assign) int requestMs; + +@end + + +@interface ZegoTcpTraceResult : NSObject + + +@property (nonatomic, assign) unsigned int code; + + +@property (nonatomic, assign) int connectMs; + + +@property (nonatomic, assign) int rtt; + +@end + + +@interface ZegoUdpTraceResult : NSObject + + +@property (nonatomic, assign) unsigned int code; + + +@property (nonatomic, assign) int rtt; + +@end + + +@interface ZegoTracerouteResult : NSObject + + +@property (nonatomic, assign) unsigned int code; + + +@property (nonatomic, assign) int time; + +@end + + +@interface ZegoNetworkTraceResult : NSObject + + +@property (nonatomic, assign) unsigned int code; + + +@property (nonatomic, strong) ZegoHttpTraceResult *httpResult; + + +@property (nonatomic, strong) ZegoTcpTraceResult *tcpResult; + + +@property (nonatomic, strong) ZegoUdpTraceResult *udpResult; + + +@property (nonatomic, strong) ZegoTracerouteResult *tracerouteResult; + +@end + +#endif diff --git a/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/zego-api-network-trace-oc.h b/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/zego-api-network-trace-oc.h new file mode 100644 index 00000000..3babaa93 --- /dev/null +++ b/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/zego-api-network-trace-oc.h @@ -0,0 +1,41 @@ +// +// zego_api_network_trace_oc_h +// ZegoLiveRoom +// +// Created by zego. +// + +#ifndef zego_api_network_trace_oc_h +#define zego_api_network_trace_oc_h + +#import +#import "zego-api-network-trace-defines-oc.h" + + +@protocol ZegoNetworkTraceDelegate + +@optional + + + - (void)onNetworkTrace:(unsigned int)errcode resultInfo:(ZegoNetworkTraceResult*)result; + +@end + + +@interface ZegoNetworkTrace : NSObject + + ++ (instancetype)sharedInstance; + + +- (void)setNetworkTraceDelegate:(id)delegate; + + +- (void)startNetworkTrace:(ZegoNetworkTraceConfig*)config; + + +- (void)stopNetworkTrace; + +@end + +#endif diff --git a/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/zego-api-sound-level-oc.h b/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/zego-api-sound-level-oc.h new file mode 100644 index 00000000..b86ec9f7 --- /dev/null +++ b/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Headers/zego-api-sound-level-oc.h @@ -0,0 +1,51 @@ +#ifndef zego_api_sound_level_oc_h +#define zego_api_sound_level_oc_h + +#import +#include "zego-api-defines-oc.h" + + +@interface ZegoSoundLevelInfo: NSObject + + +@property(nonatomic, copy) NSString *streamID; + +@property(nonatomic, assign) float soundLevel; + +@end + + +@protocol ZegoSoundLevelDelegate + +@optional + + +- (void)onSoundLevelUpdate:(NSArray *)soundLevels; + + + +- (void)onCaptureSoundLevelUpdate:(ZegoSoundLevelInfo *)captureSoundLevel; + +@end + + +@interface ZegoSoundLevel : NSObject + + ++ (instancetype)sharedInstance; + + +- (void)setSoundLevelDelegate:(id)delegate; + + +- (bool)setSoundLevelMonitorCycle:(unsigned int)timeInMS; + + +- (bool)startSoundLevelMonitor; + + +- (bool)stopSoundLevelMonitor; + +@end + +#endif diff --git a/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Info.plist b/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Info.plist new file mode 100644 index 00000000..a0e77050 --- /dev/null +++ b/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Info.plist @@ -0,0 +1,33 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ZegoAudioRoom + CFBundleIdentifier + com.zego.ZegoAudioRoom + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ZegoAudioRoom + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1.0.1 + MinimumOSVersion + 8.0 + CFBundleSupportedPlatforms + + iPhoneOS + + UIDeviceFamily + + 1 + 2 + + + diff --git a/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Modules/module.modulemap b/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Modules/module.modulemap new file mode 100644 index 00000000..a5bf4587 --- /dev/null +++ b/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/Modules/module.modulemap @@ -0,0 +1,6 @@ +framework module ZegoAudioRoom { + umbrella header "ZegoAudioRoom.h" + + export * + module * { export * } +} diff --git a/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/ZegoAudioRoom b/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/ZegoAudioRoom new file mode 100755 index 00000000..9a59fbad Binary files /dev/null and b/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/ZegoAudioRoom differ diff --git a/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/_CodeSignature/CodeResources b/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/_CodeSignature/CodeResources new file mode 100644 index 00000000..7ecec224 --- /dev/null +++ b/YuMi/Modules/YMRTC/Library/ZegoAudioRoom.framework/_CodeSignature/CodeResources @@ -0,0 +1,567 @@ + + + + + files + + Headers/ZegoAudioCapture.h + + aBUSHHeHsOrTRuWhAMU81hrcVbA= + + Headers/ZegoAudioRoom.h + + PEpOzFIumvlol0IeemS3WpveVmU= + + Headers/ZegoAudioRoomApi-AudioIO.h + + ub495NRWw4gqXymkcB5N2EjIZsg= + + Headers/ZegoAudioRoomApi-IM.h + + w4cmgbnZs7ePUE1eomEmCDE7BVs= + + Headers/ZegoAudioRoomApi-Player.h + + uNhjYkbW/ojY2sn+vA05plPzgvI= + + Headers/ZegoAudioRoomApi-Publisher.h + + ffqKICa3rccMLu91elINtXTIr5g= + + Headers/ZegoAudioRoomApi.h + + Nh8Vg6HoyqligO1lHa7x0WnL9wQ= + + Headers/ZegoAudioRoomApiDefines-IM.h + + BEpgwr/jeqgwqqMSkTtvdsP3S3o= + + Headers/ZegoAudioRoomApiDefines.h + + EJF0dKyGgJnjmHeQNmqlh3OqZlo= + + Headers/audio_in_output.h + + 0kqMGJoAJzqowgmE9FafLGhU0ts= + + Headers/zego-api-audio-aux-oc.h + + ofxCYzmDVzLuEYZAaWtVNXKeVwc= + + Headers/zego-api-audio-device-oc.h + + FZtObKnoxSwVFpvZTkf/nQyXk8s= + + Headers/zego-api-audio-encrypt-decrypt-oc.h + + ziDRfJCyEouUWvX3RF3WcEGC0q4= + + Headers/zego-api-audio-frame-oc.h + + G/uJTmc3A8Vwc7IYpaxvX4vTfBI= + + Headers/zego-api-audio-processing-oc.h + + w1wDAm3OVv8Ox7NfHXvBS4alCvM= + + Headers/zego-api-camera-oc.h + + kGmfy2lVoQPja6SY4myPBCMQoYA= + + Headers/zego-api-defines-oc.h + + xrbAi/5Lf9rcl9frbtqtlSUP4lg= + + Headers/zego-api-error-oc.h + + jY55XdKIy7r8CSnydyF13T86GI8= + + Headers/zego-api-external-audio-device-oc.h + + BRbWqZ+JRCnW+8rAvsrlAswe8cA= + + Headers/zego-api-external-video-render-oc.h + + kExY27Ka/hzUBhNATIi2gAeGxg4= + + Headers/zego-api-media-recorder-oc.h + + iLSbAAXOLpIR7hGXUy36NYGIDCI= + + Headers/zego-api-media-side-info-oc.h + + LVN7vJoCULl86D++vVUV2eeLzDk= + + Headers/zego-api-mediaplayer-defines-oc.h + + 32gdxXHaPUWX3ZWrK6/36O4MhgA= + + Headers/zego-api-mediaplayer-oc.h + + deInFpUA0eu4rEcys0iy9bayvWo= + + Headers/zego-api-mix-engine-playout-oc.h + + 4sZE3AT350VTi08uusRxP0iGgGY= + + Headers/zego-api-mix-stream-defines-oc.h + + hoY308cBA9CtDX1klanv4HM1ii8= + + Headers/zego-api-mix-stream-oc.h + + K4uczvDfdujPbULIaf3WS3odrjg= + + Headers/zego-api-network-trace-defines-oc.h + + ekS7mYXyhXNLCw1p+WqbtOWVeOk= + + Headers/zego-api-network-trace-oc.h + + tvLNQt6zCfWeDb6VgQEK+2ESSkA= + + Headers/zego-api-sound-level-oc.h + + RnCqL2biUc1w4uwoR2T6+7UspFY= + + Info.plist + + 5/ioi7Fovc3CNuzB3K8C3gCnEEE= + + Modules/module.modulemap + + 6kBNT9nsUZFQOBh7aoiPfcqsppk= + + + files2 + + Headers/ZegoAudioCapture.h + + hash + + aBUSHHeHsOrTRuWhAMU81hrcVbA= + + hash2 + + SIa50+AtEDxkt5BYTtecmDmSNcZbgpUSTxjZwMaeDbY= + + + Headers/ZegoAudioRoom.h + + hash + + PEpOzFIumvlol0IeemS3WpveVmU= + + hash2 + + aIHbqcrl7amitPJOwvhOdr+/6uspqjR6YIeo4cOGnbM= + + + Headers/ZegoAudioRoomApi-AudioIO.h + + hash + + ub495NRWw4gqXymkcB5N2EjIZsg= + + hash2 + + u52ZNAEhN51jBuqj1cffKuIvryVhSXfheIpmAu2mNwc= + + + Headers/ZegoAudioRoomApi-IM.h + + hash + + w4cmgbnZs7ePUE1eomEmCDE7BVs= + + hash2 + + ssK2iqqXD7GdcfJKMy+jX1UVdO+r3bUqKqtzcTJshVk= + + + Headers/ZegoAudioRoomApi-Player.h + + hash + + uNhjYkbW/ojY2sn+vA05plPzgvI= + + hash2 + + plKqntzb1r4LV4zLCatA5MX35mUEtqNE3bxtbz0KO7c= + + + Headers/ZegoAudioRoomApi-Publisher.h + + hash + + ffqKICa3rccMLu91elINtXTIr5g= + + hash2 + + ZOmuN6O/8gQYOLQ8u1lHCVa2fXvlqJKpt3qrfdqXUaI= + + + Headers/ZegoAudioRoomApi.h + + hash + + Nh8Vg6HoyqligO1lHa7x0WnL9wQ= + + hash2 + + IeOYtk/U95Sh5jUrHlANSC262VQ33OOSWWd/O/NAe3k= + + + Headers/ZegoAudioRoomApiDefines-IM.h + + hash + + BEpgwr/jeqgwqqMSkTtvdsP3S3o= + + hash2 + + p8q3Bztv+SdsjwnaQZkVfiBWiLbKgVdrvCoZAbbw3Rk= + + + Headers/ZegoAudioRoomApiDefines.h + + hash + + EJF0dKyGgJnjmHeQNmqlh3OqZlo= + + hash2 + + Os/79L7sFezYsmwHTbnGzq/0W8E1P+fhnSfXUUryams= + + + Headers/audio_in_output.h + + hash + + 0kqMGJoAJzqowgmE9FafLGhU0ts= + + hash2 + + qNr+aLp0KBQQZah9IYzW1BbW3ZGWqUGGvU7y7bIkvSY= + + + Headers/zego-api-audio-aux-oc.h + + hash + + ofxCYzmDVzLuEYZAaWtVNXKeVwc= + + hash2 + + EgURLxp/9+l1H+c8HdGIKGPxOQpoTZjqpqzcrFC5hH4= + + + Headers/zego-api-audio-device-oc.h + + hash + + FZtObKnoxSwVFpvZTkf/nQyXk8s= + + hash2 + + ruyhBYzfdH4deF8vApT67PsovnAd5gGhsrfTatUbKRg= + + + Headers/zego-api-audio-encrypt-decrypt-oc.h + + hash + + ziDRfJCyEouUWvX3RF3WcEGC0q4= + + hash2 + + 3K03ZO8VQIB7ga0WPufBkINM4VzwJDw+EvtzB/cDRSg= + + + Headers/zego-api-audio-frame-oc.h + + hash + + G/uJTmc3A8Vwc7IYpaxvX4vTfBI= + + hash2 + + 097JbSBbkyjJ3B8LeDfbIadKVDgqG30/kKk6KLaok1M= + + + Headers/zego-api-audio-processing-oc.h + + hash + + w1wDAm3OVv8Ox7NfHXvBS4alCvM= + + hash2 + + hoOq4tc2TUlZOrap/CwvZ9hNwnsOxkrP1Do5XY6uPo4= + + + Headers/zego-api-camera-oc.h + + hash + + kGmfy2lVoQPja6SY4myPBCMQoYA= + + hash2 + + jWTvrAEq5yNYn6+/lkXW+NyOZfosDPNxYhM3jKzj/Yk= + + + Headers/zego-api-defines-oc.h + + hash + + xrbAi/5Lf9rcl9frbtqtlSUP4lg= + + hash2 + + xY414mrzZz2KD1tG55K0zpExebrarDMAWcTUCI1uP44= + + + Headers/zego-api-error-oc.h + + hash + + jY55XdKIy7r8CSnydyF13T86GI8= + + hash2 + + f3rJJaW0+ubQtnsEV5XCIlgU4FVH5wRokrjS+Ng6xjo= + + + Headers/zego-api-external-audio-device-oc.h + + hash + + BRbWqZ+JRCnW+8rAvsrlAswe8cA= + + hash2 + + rotg7zEiPSPncZAp4ac96DXbP9qCDDmYrwi0wo+DhvY= + + + Headers/zego-api-external-video-render-oc.h + + hash + + kExY27Ka/hzUBhNATIi2gAeGxg4= + + hash2 + + d6VZqCFVX6D432PLS7ST+bUH3vI6ej+sHY1wki0SirQ= + + + Headers/zego-api-media-recorder-oc.h + + hash + + iLSbAAXOLpIR7hGXUy36NYGIDCI= + + hash2 + + 6w/uiOHc/cDYubv47/eStYljRdDf8ud9p7f7zvmhAko= + + + Headers/zego-api-media-side-info-oc.h + + hash + + LVN7vJoCULl86D++vVUV2eeLzDk= + + hash2 + + 0AfQpBy86F+tiVraaqLsJk312N3Z9N9YAUtNPXcDML4= + + + Headers/zego-api-mediaplayer-defines-oc.h + + hash + + 32gdxXHaPUWX3ZWrK6/36O4MhgA= + + hash2 + + 47tYV5BK/9NvSNlItAixM6v53qGE8dqUkS2FgVIFD4I= + + + Headers/zego-api-mediaplayer-oc.h + + hash + + deInFpUA0eu4rEcys0iy9bayvWo= + + hash2 + + ggM8G7qMgHs/XCeaRRu1Krv3O//GeMSLYOVIFvlwBiM= + + + Headers/zego-api-mix-engine-playout-oc.h + + hash + + 4sZE3AT350VTi08uusRxP0iGgGY= + + hash2 + + FSmdD4xHYUqenCiZc+Uk/CGrxBFUH3Cf4/T8rPnrY1w= + + + Headers/zego-api-mix-stream-defines-oc.h + + hash + + hoY308cBA9CtDX1klanv4HM1ii8= + + hash2 + + Ppv5kJsDmWdpP+U+uaUE3b6PPrqkNDXmjjSXJfs9JHw= + + + Headers/zego-api-mix-stream-oc.h + + hash + + K4uczvDfdujPbULIaf3WS3odrjg= + + hash2 + + Ys0Mu9Mat9H9oBKlu5+u5EZDra7Q8ZSgzoECwYf30uo= + + + Headers/zego-api-network-trace-defines-oc.h + + hash + + ekS7mYXyhXNLCw1p+WqbtOWVeOk= + + hash2 + + wWSrqZjYmotqP4u4db08o/pts9lEqd7z4LlF9iOO43M= + + + Headers/zego-api-network-trace-oc.h + + hash + + tvLNQt6zCfWeDb6VgQEK+2ESSkA= + + hash2 + + UUBM5BQVen9n6O8GgfT6qbsHCj/YAEu8W4fLPcn2uRc= + + + Headers/zego-api-sound-level-oc.h + + hash + + RnCqL2biUc1w4uwoR2T6+7UspFY= + + hash2 + + ZGZqIg5TlqStZyXETxSzVMVn6+QG/D/Asl16PxswDfU= + + + Modules/module.modulemap + + hash + + 6kBNT9nsUZFQOBh7aoiPfcqsppk= + + hash2 + + vcagVaKRSNLOl07bgJFclwJ90FjkPXL1lfi/4h95vPw= + + + + 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/YuMi/Modules/YMRTC/RealtimackExecutive.h b/YuMi/Modules/YMRTC/RealtimackExecutive.h new file mode 100644 index 00000000..389e5ed0 --- /dev/null +++ b/YuMi/Modules/YMRTC/RealtimackExecutive.h @@ -0,0 +1,78 @@ +// +// RTCManager.h +// YUMI +// +// Created by zu on 2021/10/19. +// + +#import +#import "RtcRepresendtation.h" +NS_ASSUME_NONNULL_BEGIN + +typedef enum : NSUInteger { + RtcEngineType_Agora = 1001, + RtcEngineType_Zego, + RtcEngineType_WJ, + RtcEngineType_AgoraFast, + RtcEngineType_TRTC, +} RtcEngineType; + +typedef NS_ENUM(NSInteger, BackMusicDisportDeclare) { + + BackMusicDisportDeclare_Stop = 1, + + BackMusicDisportDeclare_Pause, + + BackMusicDisportDeclare_Resume +}; + + +@interface RealtimackExecutive : NSObject + + +@property(nonatomic,getter=isRemoteDelicate) BOOL remoteDelicate; + + +@property(nonatomic,getter=isLocalDelicate) BOOL localDelicate; + + ++ (instancetype _Nonnull)initEngineAboutGenre:(RtcEngineType)type + delegate:(id _Nullable)delegate; + + ++ (instancetype _Nonnull)instance; +- (instancetype)init NS_UNAVAILABLE; ++ (instancetype)new NS_UNAVAILABLE; +- (id)copy NS_UNAVAILABLE; +- (id)mutableCopy NS_UNAVAILABLE; + + +- (BOOL)enterRoom:(NSString *)roomUid; + + +- (BOOL)enterRoom:(NSString *)roomUid trtcSign:(NSString *)sign; + + +- (void)pingencourage:(BOOL)on; + + +- (void)exitRoom; + +- (void)connectOtherRoom:(NSString *)roomUid userId:(NSString *)uid; + +- (void)disconnectOtherRoom; + +- (void)muteSole:(BOOL)mute userId:(NSString *)userId; + +- (BOOL)prohibitiportEncourageManual:(NSString *)filePath musicId:(int)musicId completion:(void (^)(NSString *))completion; + +- (BOOL)diversifictowardsionDisportDeclare:(BackMusicDisportDeclare)state; + +- (void)refurbishManualSound:(int)soundVol; + +- (void)refurbishConsumerSound:(int)soundVol; + +@property (nonatomic,assign) BOOL pingencourage; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRTC/RealtimackExecutive.m b/YuMi/Modules/YMRTC/RealtimackExecutive.m new file mode 100644 index 00000000..2ee5d67c --- /dev/null +++ b/YuMi/Modules/YMRTC/RealtimackExecutive.m @@ -0,0 +1,190 @@ +// +// RTCManager.m +// YUMI +// +// Created by zu on 2021/10/19. +// + +#import "RealtimackExecutive.h" +#import "RtcImplRepresendtation.h" +#import "AgoraRealtimackConnector.h" +#import "ZegoRealtimackConnector.h" +#import "TRTCRealtimackConnector.h" + +@interface RealtimackExecutive() + +@property (nonatomic, strong) id engine; +@property (nonatomic, weak) id engineRepresedtation; +@property (nonatomic, assign) RtcEngineType engineGenre; + +@property(nonatomic, strong) NSString * importdChamberCid; + +@end + +@implementation RealtimackExecutive + ++ (instancetype)instance { + static dispatch_once_t onceToken; + static RealtimackExecutive *instance = nil; + dispatch_once(&onceToken,^{ + instance = [[self alloc] init]; + }); + return instance; +} + +- (instancetype)init { + self = [super init]; + if (self) { + _localDelicate = NO; + _remoteDelicate = NO; + _engineGenre = RtcEngineType_Agora; + } + return self; +} + ++ (instancetype)initEngineAboutGenre:(RtcEngineType)type delegate:(id _Nullable)delegate { + RealtimackExecutive* rtcManager = [self instance]; + [rtcManager setEngineGenre:type]; + [rtcManager setEngineRepresedtation:delegate]; + return rtcManager; +} + +- (BOOL)enterRoom:(NSString *)roomUid { + if (self.importdChamberCid && [self.importdChamberCid isEqualToString:roomUid]) { + return YES; + } + return [self.engine combintowardsionNarrow:roomUid completion:^{ + [self muteRemote:NO]; + [self muteLocal:NO]; + self.importdChamberCid = roomUid; + }]; +} + +- (BOOL)enterRoom:(NSString *)roomUid trtcSign:(nonnull NSString *)sign { + if (self.importdChamberCid && [self.importdChamberCid isEqualToString:roomUid]) { + return YES; + } + return [self.engine combintowardsionNarrow:roomUid sign:sign completion:^{ + [self muteRemote:NO]; + [self muteLocal:NO]; + self.importdChamberCid = roomUid; + }]; +} + +- (BOOL)muteRemote:(BOOL)mute { + return [self.engine muteRemote:mute]; +} + +- (void)pingencourage:(BOOL)on { + [self.engine pingencourage:on]; + if (on) { + [self.engine muteLocal:self.isLocalDelicate]; + } +} + +- (BOOL)muteLocal:(BOOL)mute { + return [self.engine muteLocal:mute]; +} + +- (void)exitRoom { + [self.engine routeNarrow:^{ + [self muteRemote:NO]; + [self muteLocal:NO]; + self.importdChamberCid = nil; + }]; +} + +- (void)connectOtherRoom:(NSString *)roomUid userId:(NSString *)uid { + [self.engine pingencourage:YES]; + [self.engine connectOtherRoom:roomUid userId:uid]; +} + +- (void)disconnectOtherRoom { + [self.engine disconnectOtherRoom]; +} + +- (void)muteSole:(BOOL)mute userId:(NSString *)userId { + [self.engine muteRemote:mute userId:userId]; +} + +- (void)destory { + [self.engine destory]; +} + +- (BOOL)prohibitiportEncourageManual:(NSString *)filePath musicId:(int)musicId completion:(void (^)(NSString *))completion{ + return [self.engine prohibitiportEncourageManual:filePath musicId:musicId completion:completion]; +} + +- (BOOL)diversifictowardsionDisportDeclare:(BackMusicDisportDeclare)state { + return [self.engine diversifictowardsionDisportDeclare:state]; +} + +- (void)refurbishManualSound:(int)soundVol { + [self.engine refurbishManualSound:soundVol]; +} + +- (void)refurbishConsumerSound:(int)soundVol { + [self.engine refurbishConsumerSound:soundVol]; +} + +- (void)consumersSpeaking:(NSMutableArray *)uids { + if (self.engineRepresedtation) { + [self.engineRepresedtation consumersSpeaking:uids]; + } +} + +- (void)setRemoteDelicate:(BOOL)remoteDelicate { + if ([self.engine muteRemote:remoteDelicate]) { + _remoteDelicate = remoteDelicate; + } +} + +- (void)setLocalDelicate:(BOOL)localDelicate { + if ([self.engine muteLocal:localDelicate]) { + _localDelicate = localDelicate; + } +} + +- (void)setEngineGenre:(RtcEngineType)type { + if (_engine && type != _engineGenre) { + [_engine routeNarrow:nil]; + [_engine destory]; + _engine = nil; + _importdChamberCid = nil; + } + _engineGenre = type; +} + +- (void)setEngineRepresedtation:(id)delegate { + _engineRepresedtation = delegate; +} + +- (id)engine { + if (!_engine) { + switch (_engineGenre) { + case RtcEngineType_Agora: + { + _engine = [[AgoraRealtimackConnector alloc] initWithDelegate:self]; + } + break; + case RtcEngineType_Zego: + { + _engine = [[ZegoRealtimackConnector alloc] initWithDelegate:self]; + } + break; + case RtcEngineType_TRTC: + { + _engine = [[TRTCRealtimackConnector alloc] initWithDelegate:self]; + } + break; + default: + { + _engine = [[AgoraRealtimackConnector alloc] initWithDelegate:self]; + } + break; + } + } + return _engine; +} + +@end diff --git a/YuMi/Modules/YMRTC/RtcImpl/AgoraRealtimackConnector.h b/YuMi/Modules/YMRTC/RtcImpl/AgoraRealtimackConnector.h new file mode 100644 index 00000000..aa931b6e --- /dev/null +++ b/YuMi/Modules/YMRTC/RtcImpl/AgoraRealtimackConnector.h @@ -0,0 +1,16 @@ +// +// AgoraRealtimackConnector.h +// YUMI +// +// Created by zu on 2021/10/19. +// + +#import "BaseRealtimackConnector.h" +#import "RtcRepresendtation.h" +NS_ASSUME_NONNULL_BEGIN + +@interface AgoraRealtimackConnector : BaseRealtimackConnector + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRTC/RtcImpl/AgoraRealtimackConnector.m b/YuMi/Modules/YMRTC/RtcImpl/AgoraRealtimackConnector.m new file mode 100644 index 00000000..d8d0517b --- /dev/null +++ b/YuMi/Modules/YMRTC/RtcImpl/AgoraRealtimackConnector.m @@ -0,0 +1,146 @@ +// +// AgoraRealtimackConnector.m +// YUMI +// +// Created by zu on 2021/10/19. +// + +#import "AgoraRealtimackConnector.h" +#import "YUMIConstant.h" +#import +#import "RtcInterface.h" + +@interface AgoraRealtimackConnector() + +@property(nonatomic, strong) AgoraRtcEngineKit *engine; +@property (nonatomic,copy) void(^MusicCompletion)(NSString *filePath); +@property (nonatomic,copy) NSString *filePath; +@end + +@implementation AgoraRealtimackConnector + +- (instancetype)initWithDelegate:(id)delegate { + self = [super initWithDelegate:delegate]; + if (self) { + _engine = [AgoraRtcEngineKit sharedEngineWithAppId:KeyWithType(KeyGenre_Agora) delegate:self]; + [_engine setChannelProfile:AgoraChannelProfileLiveBroadcasting]; + [_engine enableLastmileTest]; + [_engine setParameters:@"{\"che.audio.keep.audiosession\":true}"]; + [_engine enableAudio]; + [_engine disableVideo]; + [_engine enableAudioVolumeIndication:900 smooth:3 report_vad:YES]; + [_engine setAudioProfile:AgoraAudioProfileMusicStandard scenario:AgoraAudioScenarioChatRoomEntertainment]; +#ifdef DEBUG + [_engine setLogFilter:AgoraLogFilterInfo]; +#else + [_engine setLogFilter:0]; +#endif + } + return self; +} + +#pragma mark - RtcInterface impl +- (BOOL)combintowardsionNarrow:(nonnull NSString *)channelId completion:(void (^ _Nullable)(void))completion { + [self.engine setClientRole:AgoraClientRoleAudience]; + int code = [self.engine joinChannelByToken:nil channelId:channelId info:nil uid:[[[AccountAbstractStorage instance] acquireCid] integerValue] joinSuccess:^(NSString * _Nonnull channel, NSUInteger uid, NSInteger elapsed) { + if (completion) { + completion(); + } + }]; + return code == 0; +} + +- (BOOL)muteRemote:(BOOL)mute { + return [self.engine muteAllRemoteAudioStreams:mute] == 0; +} + +- (void)pingencourage:(BOOL)on { + [self.engine setClientRole:on ? AgoraClientRoleBroadcaster : AgoraClientRoleAudience]; +} + +- (BOOL)muteLocal:(BOOL)mute { + return [self.engine muteLocalAudioStream:mute] == 0; +} + +- (void)routeNarrow:(void (^ _Nullable)(void))completion { + [self.engine leaveChannel:^(AgoraChannelStats * _Nonnull stat) { + if (completion) { + completion(); + } + }]; +} + +- (void)destory { + [AgoraRtcEngineKit destroy]; +} + +- (BOOL)prohibitiportEncourageManual:(NSString *)filePath musicId:(int)musicId completion:(nonnull void (^)(NSString * _Nonnull))completion { + if (filePath) { + self.MusicCompletion = completion; + [self diversifictowardsionDisportDeclare:BackMusicDisportDeclare_Stop]; + [self.engine startAudioMixing:filePath loopback:NO replace:NO cycle:1]; + return YES; + } else { + return NO; + } +} + +- (BOOL)diversifictowardsionDisportDeclare:(BackMusicDisportDeclare)state { + BOOL isPlaying = NO; + switch (state) { + case BackMusicDisportDeclare_Stop: + { + [self.engine stopAudioMixing]; + isPlaying = NO; + } + break; + case BackMusicDisportDeclare_Pause: + { + [self.engine pauseAudioMixing]; + isPlaying = NO; + } + break; + case BackMusicDisportDeclare_Resume: + { + [self.engine resumeAudioMixing]; + isPlaying = YES; + } + default: + break; + } + return isPlaying; +} + +- (void)refurbishConsumerSound:(int)soundVol { + [self.engine adjustRecordingSignalVolume:soundVol]; +} + +- (void)refurbishManualSound:(int)soundVol { + [self.engine adjustAudioMixingVolume:soundVol]; +} + +#pragma mark - AgoraRtcEngineDelegate +- (void)rtcEngine:(AgoraRtcEngineKit *)engine reportAudioVolumeIndicationOfSpeakers:(NSArray *)speakers totalVolume:(NSInteger)totalVolume { + NSMutableArray *uids = [NSMutableArray array]; + for (AgoraRtcAudioVolumeInfo *userInfo in speakers) { + NSString *uid = [NSString stringWithFormat:@"%ld", (long)userInfo.uid]; + if (userInfo.volume > 15){ + if (uid.integerValue == 0) { + [uids addObject:[[AccountAbstractStorage instance] acquireCid]]; + }else { + [uids addObject:uid]; + } + } + } + [self.delegate consumersSpeaking:uids]; +} + +- (void)rtcEngineLocalAudioMixingDidFinish:(AgoraRtcEngineKit *)engine { + if (self.MusicCompletion) { + self.MusicCompletion(self.filePath); + } + + [[NSNotificationCenter defaultCenter] postNotificationName:kRoomBackMusicPlayMusicFinishKey object:self.filePath]; +} + +@end diff --git a/YuMi/Modules/YMRTC/RtcImpl/BaseRealtimackConnector.h b/YuMi/Modules/YMRTC/RtcImpl/BaseRealtimackConnector.h new file mode 100644 index 00000000..8ce7459d --- /dev/null +++ b/YuMi/Modules/YMRTC/RtcImpl/BaseRealtimackConnector.h @@ -0,0 +1,25 @@ +// +// RTCBaseImpl.h +// YUMI +// +// Created by zu on 2021/10/19. +// + +#import +#import "RtcInterface.h" +#import "RtcImplRepresendtation.h" +#import "AccountAbstractStorage.h" +#import "YUMINNNN.h" +NS_ASSUME_NONNULL_BEGIN + +UIKIT_EXTERN NSString * kRoomBackMusicPlayMusicFinishKey; + +@interface BaseRealtimackConnector : NSObject + +@property (nonatomic,weak) id delegate; + +- (instancetype)initWithDelegate:(id)delegate; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRTC/RtcImpl/BaseRealtimackConnector.m b/YuMi/Modules/YMRTC/RtcImpl/BaseRealtimackConnector.m new file mode 100644 index 00000000..3014b773 --- /dev/null +++ b/YuMi/Modules/YMRTC/RtcImpl/BaseRealtimackConnector.m @@ -0,0 +1,44 @@ +// +// RTCBaseImpl.m +// YUMI +// +// Created by zu on 2021/10/19. +// + +#import "BaseRealtimackConnector.h" + +@implementation BaseRealtimackConnector + +- (instancetype)initWithDelegate:(id)delegate{ + self = [super init]; + if (self) { + self.delegate = delegate; + } + return self; +} + +- (BOOL)combintowardsionNarrow:(nonnull NSString *)channelId completion:(void (^ _Nullable)(void))completion { + return NO; +} + +- (BOOL)muteRemote:(BOOL)mute { + return NO; +} + +- (void)pingencourage:(BOOL)on { + +} + +- (BOOL)muteLocal:(BOOL)mute { + return NO; +} + +- (void)routeNarrow:(void (^ _Nullable)(void))completion { + +} + +- (void)destory { + +} + +@end diff --git a/YuMi/Modules/YMRTC/RtcImpl/RtcImplRepresendtation.h b/YuMi/Modules/YMRTC/RtcImpl/RtcImplRepresendtation.h new file mode 100644 index 00000000..e3112c82 --- /dev/null +++ b/YuMi/Modules/YMRTC/RtcImpl/RtcImplRepresendtation.h @@ -0,0 +1,20 @@ +// +// RtcImplRepresendtation.h +// YUMI +// +// Created by zu on 2021/10/21. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol RtcImplRepresendtation + + +- (void)consumersSpeaking:(NSMutableArray * _Nullable)uids; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRTC/RtcImpl/RtcInterface.h b/YuMi/Modules/YMRTC/RtcImpl/RtcInterface.h new file mode 100644 index 00000000..32189c0b --- /dev/null +++ b/YuMi/Modules/YMRTC/RtcImpl/RtcInterface.h @@ -0,0 +1,48 @@ +// +// RtcInterface.h +// YUMI +// +// Created by zu on 2021/10/20. +// + +#import +#import "RealtimackExecutive.h" +NS_ASSUME_NONNULL_BEGIN + +@protocol RtcInterface +@required + +- (BOOL)combintowardsionNarrow:(NSString *)channelId completion:(void(^ __nullable)(void))completion; + +- (BOOL)muteRemote:(BOOL)mute; + +- (BOOL)muteRemote:(BOOL)mute userId:(NSString *)userId; + +- (void)pingencourage:(BOOL)on; + + +- (BOOL)muteLocal:(BOOL)mute; + +- (void)routeNarrow:(void(^ __nullable)(void))completion; + +- (void)destory; + +@optional + +- (BOOL)combintowardsionNarrow:(NSString *)channelId sign:(NSString *)sign completion:(void(^ __nullable)(void))completion; + +- (void)connectOtherRoom:(NSString *)roomUId userId:(NSString *)userId; + +- (void)disconnectOtherRoom; + + +- (BOOL)prohibitiportEncourageManual:(NSString *)filePath musicId:(int)musicId completion:(void (^)(NSString *))completion; + +- (BOOL)diversifictowardsionDisportDeclare:(BackMusicDisportDeclare)state; + +- (void)refurbishManualSound:(int)soundVol; + +- (void)refurbishConsumerSound:(int)soundVol; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRTC/RtcImpl/TRTCRealtimackConnector.h b/YuMi/Modules/YMRTC/RtcImpl/TRTCRealtimackConnector.h new file mode 100644 index 00000000..6a66adb1 --- /dev/null +++ b/YuMi/Modules/YMRTC/RtcImpl/TRTCRealtimackConnector.h @@ -0,0 +1,16 @@ +// +// TRTCRealtimackConnector.h +// YUMI +// +// Created by zu on 2021/12/6. +// + +#import "BaseRealtimackConnector.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface TRTCRealtimackConnector : BaseRealtimackConnector + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRTC/RtcImpl/TRTCRealtimackConnector.m b/YuMi/Modules/YMRTC/RtcImpl/TRTCRealtimackConnector.m new file mode 100644 index 00000000..e72e525f --- /dev/null +++ b/YuMi/Modules/YMRTC/RtcImpl/TRTCRealtimackConnector.m @@ -0,0 +1,214 @@ +// +// TRTCRealtimackConnector.m +// YUMI +// +// Created by zu on 2021/12/6. +// + +#import "TRTCRealtimackConnector.h" +#import "YUMIConstant.h" +#import "YUMIMacroUitls.h" +#import + +@interface TRTCRealtimackConnector() + +@property (strong, nonatomic) TRTCCloud *engine; +@property (nonatomic, strong) TXAudioEffectManager *manualExecutive; +@property (nonatomic,copy) void(^MusicCompletion)(NSString *filePath); +@property (nonatomic,assign) int musicId; + +@end + +@implementation TRTCRealtimackConnector + +- (instancetype)initWithDelegate:(id)delegate { + self = [super initWithDelegate:delegate]; + if (self) { + _engine = [TRTCCloud sharedInstance]; + [_engine enableAudioVolumeEvaluation:900]; + [TRTCCloud setConsoleEnabled:NO]; + _engine.delegate = self; + } + return self; +} + +#pragma mark - RtcInterface impl +- (BOOL)combintowardsionNarrow:(NSString *)channelId sign:(nonnull NSString *)sign completion:(void (^)(void))completion { + [self.engine enableAudioVolumeEvaluation:900]; + TRTCParams *params = [[TRTCParams alloc] init]; + UInt32 appId; + sscanf([KeyWithType(KeyGenre_TRTC) UTF8String], "%u", &appId); + params.sdkAppId = appId; + UInt32 roomId; + sscanf([channelId UTF8String], "%u", &roomId); + params.roomId = roomId; + + params.userId = [[AccountAbstractStorage instance] acquireCid]; + params.userSig = sign; + params.role = TRTCRoleAudience; + [self.engine enterRoom:params appScene:TRTCAppSceneLIVE]; + if (completion) { + completion(); + } + return YES; +} + +- (void)connectOtherRoom:(NSString *)roomUid userId:(NSString *)uid { + NSMutableDictionary *jsonDict = [[NSMutableDictionary alloc] init]; + if (roomUid.integerValue > INT_MAX) { + [jsonDict setObject:@(uid.integerValue) forKey:@"roomId"]; + } else { + [jsonDict setObject:@([roomUid intValue]) forKey:@"roomId"]; + } + + [jsonDict setObject:uid forKey:@"userId"]; + NSData* jsonData = [NSJSONSerialization dataWithJSONObject:jsonDict options:NSJSONWritingPrettyPrinted error:nil]; + NSString* jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; + [self.engine connectOtherRoom:jsonString]; +} + +- (void)disconnectOtherRoom { + [self.engine disconnectOtherRoom]; +} + +- (void)onConnectOtherRoom:(NSString *)userId errCode:(TXLiteAVError)errCode errMsg:(NSString *)errMsg { + if (errCode == ERR_NULL) { + + } +} + +- (void)onDisconnectOtherRoom:(TXLiteAVError)errCode errMsg:(NSString *)errMsg { + +} + +- (void)onUserAudioAvailable:(NSString *)userId available:(BOOL)available { + NSLog(@"成功userid:%@", userId); + if (available) { + + } +} + +- (BOOL)muteRemote:(BOOL)mute { + [self.engine muteAllRemoteAudio:mute]; + return YES; +} + +- (BOOL)muteRemote:(BOOL)mute userId:(NSString *)userId { + [self.engine muteRemoteAudio:userId mute:mute]; + return YES; +} + +- (void)pingencourage:(BOOL)on { + [self.engine switchRole:on ? TRTCRoleAnchor : TRTCRoleAudience]; + if (on) { + NSString *jsonString = @"{\"api\":\"setAudioQualityEx\",\"params\":{\"sampleRate\":48000,\"channel\":2,\"bitrate\":192,\"encodeMode\":1,\"systemVolumeType\":1}}"; + [self.engine callExperimentalAPI:jsonString]; + NSString *aecString = @"{\"api\":\"enableAudioAEC\",\"params\":{\"enable\":1,\"level\":100}}"; + [self.engine callExperimentalAPI:aecString]; + [self.engine startLocalAudio:TRTCAudioQualityMusic]; + } else { + [self.engine stopLocalAudio]; + } +} + +- (BOOL)muteLocal:(BOOL)mute { + [self.engine muteLocalAudio:mute]; + return YES; +} + +- (void)routeNarrow:(void (^)(void))completion { + + [self.engine exitRoom]; + if (completion) { + completion(); + } +} + +- (void)destory { + [TRTCCloud destroySharedIntance]; +} + +- (BOOL)prohibitiportEncourageManual:(NSString *)filePath musicId:(int)musicId completion:(void (^)(NSString *))completion{ + if (filePath) { + self.MusicCompletion = completion; + [self diversifictowardsionDisportDeclare:BackMusicDisportDeclare_Stop]; + self.musicId = musicId; + if (self.manualExecutive == nil) { + self.manualExecutive = [self.engine getAudioEffectManager]; + } + + TXAudioMusicParam *param = [[TXAudioMusicParam alloc] init]; + param.ID = musicId; + param.path = filePath; + @kWeakify(self); + [self.manualExecutive startPlayMusic:param onStart:^(NSInteger errCode) { + + } onProgress:^(NSInteger progressMs, NSInteger durationMs) { + + } onComplete:^(NSInteger errCode) { + @kStrongify(self); + self.MusicCompletion(filePath); + + [[NSNotificationCenter defaultCenter] postNotificationName:kRoomBackMusicPlayMusicFinishKey object:filePath]; + }]; + return YES; + } else { + return NO; + } + +} + +- (BOOL)diversifictowardsionDisportDeclare:(BackMusicDisportDeclare)state { + BOOL isPlaying = NO; + switch (state) { + case BackMusicDisportDeclare_Stop: + { + [self.manualExecutive stopPlayMusic:self.musicId]; + isPlaying = NO; + } + break; + case BackMusicDisportDeclare_Pause: + { + [self.manualExecutive pausePlayMusic:self.musicId]; + isPlaying = NO; + } + break; + case BackMusicDisportDeclare_Resume: + { + [self.manualExecutive resumePlayMusic:self.musicId]; + isPlaying = YES; + } + default: + break; + } + return isPlaying; +} + +- (void)refurbishConsumerSound:(int)soundVol { + [self.engine setAudioCaptureVolume:soundVol]; +} + +- (void)refurbishManualSound:(int)soundVol { + [self.manualExecutive setMusicPublishVolume:self.musicId volume:soundVol * 1.5]; + [self.manualExecutive setMusicPlayoutVolume:self.musicId volume:soundVol * 1.5]; +} + +#pragma mark - TRTCCloudDelegate +- (void)onUserVoiceVolume:(NSArray *)userVolumes totalVolume:(NSInteger)totalVolume { + NSMutableArray *uids = [NSMutableArray array]; + for (TRTCVolumeInfo *userInfo in userVolumes) { + NSString *uid = userInfo.userId; + if (userInfo.volume > 2){ + if (uid.integerValue == 0) { + if ([AccountAbstractStorage instance].acquireCid.length > 0){ + [uids addObject:[[AccountAbstractStorage instance] acquireCid]]; + } + }else { + [uids addObject:uid]; + } + } + } + [self.delegate consumersSpeaking:uids]; +} + +@end diff --git a/YuMi/Modules/YMRTC/RtcImpl/ZegoRealtimackConnector.h b/YuMi/Modules/YMRTC/RtcImpl/ZegoRealtimackConnector.h new file mode 100644 index 00000000..72a32b81 --- /dev/null +++ b/YuMi/Modules/YMRTC/RtcImpl/ZegoRealtimackConnector.h @@ -0,0 +1,16 @@ +// +// ZegoRealtimackConnector.h +// YUMI +// +// Created by zu on 2021/10/20. +// + +#import "BaseRealtimackConnector.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface ZegoRealtimackConnector : BaseRealtimackConnector + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRTC/RtcImpl/ZegoRealtimackConnector.m b/YuMi/Modules/YMRTC/RtcImpl/ZegoRealtimackConnector.m new file mode 100644 index 00000000..9a886d37 --- /dev/null +++ b/YuMi/Modules/YMRTC/RtcImpl/ZegoRealtimackConnector.m @@ -0,0 +1,226 @@ +// +// ZegoRealtimackConnector.m +// YUMI +// +// Created by zu on 2021/10/20. +// + +#import "ZegoRealtimackConnector.h" +#import +#import "NSArray+Safe.h" + +@interface ZegoRealtimackConnector() + +@property (nonatomic, strong) ZegoAudioRoomApi *engine; +@property (nonatomic, strong) ZegoMediaPlayer *mediaDisporter; +@property (nonatomic,copy) NSString *filePath; +@property (nonatomic,copy) void(^MusicCompletion)(NSString *filePath); +@end + +@implementation ZegoRealtimackConnector + +- (instancetype)initWithDelegate:(id)delegate { + self = [super initWithDelegate:delegate]; + if (self) { +#ifdef DEBUG + + [ZegoAudioRoomApi setVerbose:YES]; + [ZegoAudioRoomApi setUseTestEnv:YES]; +#else + [ZegoAudioRoomApi setUseTestEnv:NO]; +#endif + [ZegoAudioRoomApi setAudioDeviceMode:ZEGOAPI_AUDIO_DEVICE_MODE_GENERAL]; + + [ZegoAudioRoomApi setConfig:@"audio_encoder_samplerate=48000"]; + _engine = [[ZegoAudioRoomApi alloc] initWithAppID:[self aplictowardsionID] appSignature:[self zegoAplictowardsionSign]]; + [_engine enableAEC:true]; + [_engine enableAGC:true]; + + [_engine setManualPublish:true]; + [_engine setManualPlay:true]; + + [_engine setAudioRoomDelegate:self]; + [_engine setAudioPublisherDelegate:self]; + } + return self; +} + +#pragma mark - RtcInterface impl +- (BOOL)combintowardsionNarrow:(nonnull NSString *)channelId completion:(void (^ _Nullable)(void))completion { + + self.mediaDisporter = [[ZegoMediaPlayer alloc] initWithPlayerType:MediaPlayerTypeAux]; + [self.mediaDisporter setDelegate:self]; + + [[ZegoSoundLevel sharedInstance] setSoundLevelDelegate:self]; + [[ZegoSoundLevel sharedInstance] setSoundLevelMonitorCycle:1200]; + [[ZegoSoundLevel sharedInstance] startSoundLevelMonitor]; + NSString *uid = [AccountAbstractStorage instance].acquireCid; + + [ZegoAudioRoomApi setUserID:uid userName:uid]; + + [self.engine setLatencyMode:ZEGOAPI_LATENCY_MODE_LOW3]; + + [self.engine setAudioBitrate:128000]; + + [ZegoAudioDevice enableAudioCaptureStereo:0]; + + [self.engine setAudioChannelCount:1]; + + + int state = [self.engine loginRoom:channelId completionBlock:^(int errorCode) { + if (completion) { + completion(); + } + }]; + return state == 1; +} + +- (BOOL)muteRemote:(BOOL)mute { + return [self.engine enableSpeaker:!mute]; +} + +- (void)pingencourage:(BOOL)on { + if (on) { + [self.engine startPublish]; + } else { + [self.engine stopPublish]; + } +} + +- (BOOL)muteLocal:(BOOL)mute { + return [self.engine enableMic:!mute]; +} + +- (void)routeNarrow:(void (^ _Nullable)(void))completion { + [[ZegoSoundLevel sharedInstance] stopSoundLevelMonitor]; + [self.engine logoutRoom]; + if (completion) { + completion(); + } +} + +- (void)destory { + +} + +- (BOOL)prohibitiportEncourageManual:(NSString *)filePath musicId:(int)musicId completion:(nonnull void (^)(NSString * _Nonnull))completion { + if (filePath) { + self.MusicCompletion = completion; + [self.mediaDisporter stop]; + self.filePath = filePath; + [self.engine muteAux:true]; + [self.mediaDisporter start:filePath repeat:NO]; + return YES; + } else { + return NO; + } +} + +- (BOOL)diversifictowardsionDisportDeclare:(BackMusicDisportDeclare)state { + BOOL isPlaying = NO; + switch (state) { + case BackMusicDisportDeclare_Stop: + { + [self.mediaDisporter stop]; + [self.engine muteAux:false]; + isPlaying = NO; + } + break; + case BackMusicDisportDeclare_Pause: + { + [self.mediaDisporter pause]; + isPlaying = NO; + } + break; + case BackMusicDisportDeclare_Resume: + { + [self.mediaDisporter resume]; + isPlaying = YES; + } + default: + break; + } + return isPlaying; +} + +- (void)refurbishConsumerSound:(int)soundVol { + if (soundVol) { + [self.engine setCaptureVolume:soundVol]; + } +} + +- (void)refurbishManualSound:(int)soundVol { + if (soundVol) { + [self.mediaDisporter setVolume:soundVol]; + } +} + +#pragma mark - ZegoAudioRoomDelegate +- (void)onStreamUpdated:(ZegoAudioStreamType)type stream:(ZegoAudioStream *)stream { + switch (type) { + case ZEGO_AUDIO_STREAM_ADD: + { + [self.engine startPlayStream:stream.streamID]; + } + break; + case ZEGO_AUDIO_STREAM_DELETE: + { + [self.engine stopPlayStream:stream.streamID]; + } + break; + default: + break; + } +} + +- (void)onPublishStateUpdate:(int)stateCode streamID:(NSString *)streamID streamInfo:(NSDictionary *)info { + if (stateCode != 0) { + [self.engine restartPublishStream]; + } +} + +- (void)onSoundLevelUpdate:(NSArray *)soundLevels { + [self.delegate consumersSpeaking:[self formtowardsSpeakingCids:soundLevels]]; +} + +- (void)onCaptureSoundLevelUpdate:(ZegoSoundLevelInfo *)captureSoundLevel { + [self.delegate consumersSpeaking:[self formtowardsSpeakingCids:@[captureSoundLevel]]]; +} + +#pragma mark - ZegoMediaPlayerEventDelegate +- (void)onPlayEnd { + if (self.MusicCompletion) { + self.MusicCompletion(self.filePath); + } + + [[NSNotificationCenter defaultCenter] postNotificationName:kRoomBackMusicPlayMusicFinishKey object:self.filePath]; +} + +#pragma mark - private method +- (NSMutableArray *)formtowardsSpeakingCids:(NSArray *)soundLevels { + NSMutableArray *uids = [NSMutableArray array]; + for (ZegoSoundLevelInfo *userInfo in soundLevels) { + NSString *uid = nil; + NSArray *strArray = [userInfo.streamID componentsSeparatedByString:@"-"]; + if (strArray.count >= 2) { + uid = [strArray secureGroalTowardsIndictowardsrix1:1]; + if (userInfo.soundLevel > 0) { + [uids addObject:uid]; + } + } + } + return uids; +} + +- (uint32_t)aplictowardsionID { + return 1067458582; +} + +- (NSData *)zegoAplictowardsionSign { + Byte signkey[] = {0x2b,0x86,0x24,0xef,0xd9,0x96,0xf1,0x1c,0x6b,0xa2,0x28,0xc3,0xef,0x24,0xdd,0x64,0x2e,0xd7,0x33,0x3f,0x33,0x90,0x07,0x53,0xeb,0xd2,0xd2,0x4e,0xc5,0xed,0xfd,0x43}; + return [NSData dataWithBytes:signkey length:32]; +} + + + +@end diff --git a/YuMi/Modules/YMRTC/RtcRepresendtation.h b/YuMi/Modules/YMRTC/RtcRepresendtation.h new file mode 100644 index 00000000..22da9f67 --- /dev/null +++ b/YuMi/Modules/YMRTC/RtcRepresendtation.h @@ -0,0 +1,18 @@ +// +// RTCDelegate.h +// YUMI +// +// Created by zu on 2021/10/19. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol RtcRepresendtation + + +- (void)consumersSpeaking:(NSMutableArray * _Nullable)uids; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/Api/Api+Room.h b/YuMi/Modules/YMRoom/Api/Api+Room.h new file mode 100644 index 00000000..5927a0b9 --- /dev/null +++ b/YuMi/Modules/YMRoom/Api/Api+Room.h @@ -0,0 +1,109 @@ +// +// Api+Room.h +// YUMI +// +// Created by YUMI on 2021/10/18. +// + +#import "Api.h" +#import "ChamberAbstractMatrix.h" +NS_ASSUME_NONNULL_BEGIN + +@interface Api (Room) + ++ (void)acquireChamberAbstract:(HttpRequestHelperCompletion)complection + uid:(NSString *)uid + intoUid:(NSString *)intoUid; + + ++ (void)unfoildChamber:(HttpRequestHelperCompletion)complection + title:(NSString *)title + type:(ChamberGenre)type + roomPwd:(NSString *)roomPwd + roomDesc:(NSString *)roomDesc + backPic:(NSString *)backPic + uid:(NSString *)uid + ticket:(NSString *)ticket + mgId:(NSString *)mgId; + ++ (void)chamberLoudspeakerupburdenLoudspeaker:(HttpRequestHelperCompletion)complection + micUid:(NSString *)micUid + roomId:(NSString *)roomId + position:(NSString *)position + ticket:(NSString *)ticket; + ++ (void)chamberLoudspeakerPubescenceLoudspeaker:(HttpRequestHelperCompletion)complection + micUid:(NSString *)micUid + roomId:(NSString *)roomId + position:(NSString *)position + ticket:(NSString *)ticket; ++ (void)chamberMiecreoscoopePresentBWSttess:(HttpRequestHelperCompletion)completion + roomUid:(NSString *)roomUid + uid:(NSString *)uid; + ++ (void)chamberPresentBWSttessupburdenLoudspeaker:(HttpRequestHelperCompletion)completion + roomUid:(NSString *)roomUid + micUid:(NSString *)micUid + position:(NSString *)position + uid:(NSString *)uid; +#pragma mark - 活动 ++ (void)chamberImportpriseSttowardsement:(HttpRequestHelperCompletion)completion + roomId:(NSString *)roomId + type:(NSString *)type; + ++ (void)assembleChamber:(HttpRequestHelperCompletion)completion + roomUid:(NSString *)roomUid + uid:(NSString *)uid + type:(NSString *)type + roomUids:(NSString *)roomUids; + ++ (void)diversifictowardsionChamberEngagementDeclare:(HttpRequestHelperCompletion)completion + roomUserId:(NSString *)roomUserId + roundId:(NSString *)roundId; + ++ (void)requisitionReportConsumerInterChamber:(HttpRequestHelperCompletion)completion uid:(NSString *)uid roomUid:(NSString *)roomUid ticket:(NSString *)ticket; + ++ (void)requisitionReportConsumerOptowardssideChamber:(HttpRequestHelperCompletion)completion uid:(NSString *)uid roomUid:(NSString *)roomUid ticket:(NSString *)ticket; + ++ (void)shankThroughoutChamberCombatCentiretyfor:(HttpRequestHelperCompletion)completion + roomUid:(NSString *)roomUid + roundId:(NSString *)roundId + isRecognize:(NSString *)isRecognize; + ++ (void)acquireThroughoutChamberCombatSpecific:(HttpRequestHelperCompletion)completion + roomUid:(NSString *)roomUid; + ++ (void)requisitionInChamberFantowardsicsSquad:(HttpRequestHelperCompletion)completion teamUid:(NSString *)teamUid; + ++ (void)requisitionJoinFantowardsicsSquad:(HttpRequestHelperCompletion)completion teamUid:(NSString *)teamUid; + ++ (void)requisitionFantowardsicsSquadTask:(HttpRequestHelperCompletion)completion teamUid:(NSString *)teamUid; + ++ (void)requisitionKellegCombatePreadominant:(HttpRequestHelperCompletion)completion; +#pragma mark - 超管 ++ (void)acquireChamberSenstowardsionalManagementSttowardsement:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid; + ++ (void)reqeustEncourageChamber:(HttpRequestHelperCompletion)completion roomId:(NSString *)roomId; + ++ (void)requisitionChamberRtowardseings:(HttpRequestHelperCompletion)completion + roomUid:(NSString *)roomUid + type:(NSString *)type + page:(NSString *)page + pageSize:(NSString *)pageSize; + ++ (void)strangeConsumerInititowardseBewelcometo:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid; + ++ (void)requisitionConsumerInChamber:(HttpRequestHelperCompletion)completion uid:(NSString *)uid; + ++ (void)requisitionLtowardsterKellegChamber:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid; + ++ (void)requisitionStrangeConsumerInChamberPresent:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid; + ++ (void)requisitionDeficitShetowardshe:(HttpRequestHelperCompletion)completion uid:(NSString *)roomUid; + + ++(void)requisitionChamberThresholdCharegWindow:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid; ++(void)refurbishChamberThresholdCharegWindow:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/Api/Api+Room.m b/YuMi/Modules/YMRoom/Api/Api+Room.m new file mode 100644 index 00000000..702b6d4b --- /dev/null +++ b/YuMi/Modules/YMRoom/Api/Api+Room.m @@ -0,0 +1,177 @@ +// +// Api+Room.m +// YUMI +// +// Created by YUMI on 2021/10/18. +// + +#import "Api+Room.h" +#import +@implementation Api (Room) + ++ (void)acquireChamberAbstract:(HttpRequestHelperCompletion)complection uid:(NSString *)uid intoUid:(NSString *)intoUid { + NSString * fang = [NSString stringFromBase64String:@"cm9vbS9nZXQ="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:complection, __FUNCTION__, uid, intoUid, nil]; +} + + ++ (void)unfoildChamber:(HttpRequestHelperCompletion)complection + title:(NSString *)title + type:(ChamberGenre)type + roomPwd:(NSString *)roomPwd + roomDesc:(NSString *)roomDesc + backPic:(NSString *)backPic + uid:(NSString *)uid + ticket:(NSString *)ticket + mgId:(NSString *)mgId { + NSString * fang = [NSString stringFromBase64String:@"cm9vbS9vcGVu"]; + [Api manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:complection, __FUNCTION__, title, @(type), roomPwd, roomDesc, backPic, uid, ticket, mgId,nil]; +} + + ++ (void)concludeChamber:(HttpRequestHelperCompletion)complection uid:(NSString *)uid ticket:(NSString *)ticket { + NSString * fang = [NSString stringFromBase64String:@"cm9vbS9jbG9zZQ=="]; + [Api manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:complection,__FUNCTION__, uid, ticket, nil]; +} + + ++ (void)chamberLoudspeakerupburdenLoudspeaker:(HttpRequestHelperCompletion)complection micUid:(NSString *)micUid roomId:(NSString *)roomId position:(NSString *)position ticket:(NSString *)ticket { + NSString * fang = [NSString stringFromBase64String:@"cm9vbS9taWMvdXBtaWM="]; + [Api manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:complection, __FUNCTION__, micUid, roomId, position, ticket, nil]; +} + ++ (void)chamberLoudspeakerPubescenceLoudspeaker:(HttpRequestHelperCompletion)complection micUid:(NSString *)micUid roomId:(NSString *)roomId position:(NSString *)position ticket:(NSString *)ticket { + NSString * fang = [NSString stringFromBase64String:@"cm9vbS9taWMvZG93bm1pYw=="]; + [Api manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:complection, __FUNCTION__, micUid, roomId, position, ticket, nil]; +} + + ++ (void)chamberMiecreoscoopePresentBWSttess:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid uid:(NSString *)uid { + NSString * fang = [NSString stringFromBase64String:@"cm9vbS9naWZ0L3ZhbHVlL2dldA=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, roomUid, uid, nil]; +} + + ++ (void)chamberPresentBWSttessupburdenLoudspeaker:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid micUid:(NSString *)micUid position:(NSString *)position uid:(NSString *)uid { + NSString * fang = [NSString stringFromBase64String:@"cm9vbS9naWZ0L3ZhbHVlL3VwL21pYw=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, roomUid, micUid, position, uid, nil]; +} + +#pragma mark - 活动 + ++ (void)chamberImportpriseSttowardsement:(HttpRequestHelperCompletion)completion roomId:(NSString *)roomId type:(NSString *)type { + NSString * fang = [NSString stringFromBase64String:@"aG9tZS9iYW5uZXI="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, roomId, type, nil]; +} + + ++ (void)assembleChamber:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid uid:(NSString *)uid type:(NSString *)type roomUids:(NSString *)roomUids { + NSString * fang = [NSString stringFromBase64String:@"ZmFucy9mYW5zUm9vbQ=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, roomUid, uid, type, roomUids, nil]; +} + + ++ (void)diversifictowardsionChamberEngagementDeclare:(HttpRequestHelperCompletion)completion roomUserId:(NSString *)roomUserId roundId:(NSString *)roundId { + NSString * fang = [NSString stringFromBase64String:@"dXNlcnJvb20vaW5WMg=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, roomUserId, roundId, nil]; +} + ++ (void)requisitionReportConsumerInterChamber:(HttpRequestHelperCompletion)completion uid:(NSString *)uid roomUid:(NSString *)roomUid ticket:(NSString *)ticket { + NSString * fang = [NSString stringFromBase64String:@""]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, uid, roomUid, ticket, nil]; +} + ++ (void)requisitionReportConsumerOptowardssideChamber:(HttpRequestHelperCompletion)completion uid:(NSString *)uid roomUid:(NSString *)roomUid ticket:(NSString *)ticket { + NSString * fang = [NSString stringFromBase64String:@"dXNlcnJvb20vb3V0VjI="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, uid, roomUid, ticket, nil]; +} + ++ (void)shankThroughoutChamberCombatCentiretyfor:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid roundId:(NSString *)roundId isRecognize:(NSString *)isRecognize { + NSString * fang = [NSString stringFromBase64String:@"Y3Jvc3Nyb29tcGtyb3VuZC9nZXRDcm9zc1BrRGF0YQ=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, roomUid, roundId, isRecognize, nil]; +} + ++ (void)acquireThroughoutChamberCombatSpecific:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid { + NSString * fang = [NSString stringFromBase64String:@""]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, roomUid, nil]; +} + ++ (void)requisitionInChamberFantowardsicsSquad:(HttpRequestHelperCompletion)completion teamUid:(NSString *)teamUid { + NSString * fang = [NSString stringFromBase64String:@"YW5jaG9yRmFuc1RlYW0vaW5pdEluUm9vbUZhbnNUZWFt"]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, teamUid, nil]; +} + ++ (void)requisitionJoinFantowardsicsSquad:(HttpRequestHelperCompletion)completion teamUid:(NSString *)teamUid { + NSString * fang = [NSString stringFromBase64String:@"YW5jaG9yRmFuc1RlYW0vYXBwbHlGYW5zVGVhbVBvcEluZm9Wbw=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, teamUid, nil]; +} + ++ (void)requisitionFantowardsicsSquadTask:(HttpRequestHelperCompletion)completion teamUid:(NSString *)teamUid { + NSString * fang = [NSString stringFromBase64String:@"Y3Jvc3Nyb29tcGtyb3VuZC9nZXRTaW5nbGVSb29tUGtSdWxl"]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, teamUid, nil]; +} + ++ (void)requisitionKellegCombatePreadominant:(HttpRequestHelperCompletion)completion { + NSString * fang = [NSString stringFromBase64String:@""]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, nil]; +} + +#pragma mark - 超管 ++ (void)acquireChamberSenstowardsionalManagementSttowardsement:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid { + NSString * fang = [NSString stringFromBase64String:@"aGFsbC9zdXBlck1hbmFnZXIvbGlzdFN1cGVyTWFuYWdlSW5Sb29t"]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, roomUid, nil]; +} + ++ (void)reqeustEncourageChamber:(HttpRequestHelperCompletion)completion roomId:(NSString *)roomId { + NSString * fang = [NSString stringFromBase64String:@"cm9vbWluc2lkZXJlY29tbWVuZC9yZWNvbW1lbmRSb29tTGlzdA=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, roomId, nil]; +} + ++ (void)requisitionChamberRtowardseings:(HttpRequestHelperCompletion)completion + roomUid:(NSString *)roomUid + type:(NSString *)type + page:(NSString *)page + pageSize:(NSString *)pageSize { + NSString * fang = [NSString stringFromBase64String:@"cm9vbS9yYW5raW5ncw=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, roomUid, type, page, pageSize, nil]; +} + + ++ (void)strangeConsumerInititowardseBewelcometo:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid { + NSString * fang = [NSString stringFromBase64String:@"bmV3VXNlclN0YXJ0L3Jvb21TYXlIZWxsbw=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion,__FUNCTION__, roomUid, nil]; +} + ++ (void)requisitionConsumerInChamber:(HttpRequestHelperCompletion)completion uid:(NSString *)uid { + NSString * fang = [NSString stringFromBase64String:@"dXNlcnJvb20vZ2V0"]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, uid, nil]; +} + + ++ (void)requisitionLtowardsterKellegChamber:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid { + NSString * fang = [NSString stringFromBase64String:@"c2luZ2xlL2Jyb2FkY2FzdC9yb29tL3BhZ2U="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, roomUid, nil]; +} + ++ (void)requisitionStrangeConsumerInChamberPresent:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid { + NSString * fang = [NSString stringFromBase64String:@"Z2lmdC9uZXdVc2VyL2luUm9vbQ=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, roomUid, nil]; +} + ++ (void)requisitionDeficitShetowardshe:(HttpRequestHelperCompletion)completion uid:(NSString *)roomUid { + NSString * fang = [NSString stringFromBase64String:@"cm9vbS9yZWQtZW52ZWxvcA=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, roomUid, nil]; +} + ++(void)requisitionChamberThresholdCharegWindow:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid{ + NSString * fang = [NSString stringFromBase64String:@"cm9vbUZpcnN0Q2hhcmdlV2luZG93L2dldA=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__,roomUid,nil]; + +} ++(void)refurbishChamberThresholdCharegWindow:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid{ + NSString * fang = [NSString stringFromBase64String:@"cm9vbUZpcnN0Q2hhcmdlV2luZG93L3VwZGF0ZQ=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__,roomUid,nil]; + +} + +@end diff --git a/YuMi/Modules/YMRoom/Model/ChamberAbstractMatrix.h b/YuMi/Modules/YMRoom/Model/ChamberAbstractMatrix.h new file mode 100644 index 00000000..3df770be --- /dev/null +++ b/YuMi/Modules/YMRoom/Model/ChamberAbstractMatrix.h @@ -0,0 +1,138 @@ +// +// ChamberAbstractMatrix.h +// YUMI +// +// Created by YUMI on 2021/10/18. +// + +#import "NSObject+MJExtension.h" +#import "YUMINNNN.h" +#import "ThroughoutChamberCombatFasciaboardMatrix.h" + +NS_ASSUME_NONNULL_BEGIN +typedef NS_ENUM(NSInteger, ChamberGenre) { + ChamberGenre_Game = 3, + ChamberGenre_Anchor = 6, + ChamberGenre_MiniGame = 7 +}; + +typedef NS_ENUM(NSInteger, ChamberModeGenre){ + + ChamberModeGenre_Normal_Mode = 0, + + ChamberModeGenre_Open_Micro_Mode = 1, + + ChamberModeGenre_Close_Micro_Mode = 2, + + ChamberModeGenre_Open_PK_Mode = 3, + + ChamberModeGenre_Close_PK_Mode = 4, + + ChamberModeGenre_Open_Blind = 5, + + ChamberModeGenre_Open_AcrossRoomPK_mode = 7, +}; + +typedef NS_ENUM(NSInteger, PermitChamberGenre) { + PermitChamberGenre_Licnese = 1, + PermitChamberGenre_YoungerStar = 3, + PermitChamberGenre_Other +}; + + +typedef NS_ENUM(NSInteger, ChamberDisportDateingGenre) { + ChamberDisportDateingGenre_Talk = 1, + ChamberDisportDateingGenre_Pick = 2, + ChamberDisportDateingGenre_Result = 3, + ChamberDisportDateingGenre_Finish = 4, +}; + +typedef NS_ENUM(NSInteger, ChamberDatingDeclareChangeGenre) { + ChamberDatingDeclareChangeGenre_Normal = 0, + ChamberDatingDeclareChangeGenre_Open = 1, + ChamberDatingDeclareChangeGenre_Close = 2, +}; + +@interface ConfectioneryTimberSwitchMatrix : NSObject +@property(nonatomic, assign) BOOL openBoxSwitch; +@property(nonatomic, copy) NSString *openBoxIcon; +@property (nonatomic,assign) BOOL open; +@property (nonatomic,assign) NSInteger openLevel; +@property (nonatomic,assign) NSInteger sendMsgLevel; +@end + +@class ThroughoutChamberCombatFasciaboardMatrix; + +@interface ChamberAbstractMatrix : NSObject +@property (nonatomic , copy) NSString * nick; +@property (nonatomic , assign) NSInteger uid; +@property (nonatomic , assign) NSInteger isRecom; +@property (nonatomic , assign) NSInteger calcSumDataIndex; +@property (nonatomic , copy) NSString * roomTag; +@property (nonatomic , copy) NSString *singleRoomSortId; +@property (nonatomic , copy) NSString *sortName; +@property (nonatomic , copy) NSString * audioSdkType; +@property (nonatomic , copy) NSString * trtcSig; +@property (nonatomic , assign) NSInteger hideFlag; +@property (nonatomic , assign) ChamberGenre type; +@property (nonatomic , strong) NSArray * speakTemplate; +@property (nonatomic , assign) NSInteger tagId; +@property (nonatomic , assign) BOOL isExceptionClose; +@property (nonatomic , assign) NSInteger recomSeq; +@property (nonatomic , assign) BOOL redEnvelopeOpen; +@property (nonatomic , assign) NSInteger roomId; +@property (nonatomic , copy) NSString * meetingName; +@property (nonatomic , assign) BOOL valid; +@property (nonatomic , assign) NSInteger openTime; +@property (nonatomic , copy) NSString * tagPict; +@property (nonatomic , assign) BOOL isPureMode; +@property (nonatomic , assign) NSInteger count; +@property (nonatomic , assign) BOOL showGiftValue; +@property (nonatomic , copy) NSString * avatar; +@property (nonatomic , assign) NSInteger onlineNum; +@property (nonatomic , assign) BOOL isCloseScreen; +@property (nonatomic , assign) BOOL exceptionClose; +@property (nonatomic , assign) PermitChamberGenre isPermitRoom; +@property (nonatomic , assign) NSInteger abChannelType; +@property (nonatomic , assign) BOOL hasAnimationEffect; +@property (nonatomic , assign) GenderGenre gender; +@property (nonatomic , assign) BOOL serverRedEnvelopeSwitch; +@property (nonatomic , assign) BOOL isOpenGame; +@property (nonatomic , copy) NSString * roomDesc; +@property (nonatomic , assign) NSInteger officeUser; +@property (nonatomic , assign) NSInteger erbanNo; +@property (nonatomic , assign) NSInteger audioQuality; +@property (nonatomic , copy) NSString * title; +@property (nonatomic , assign) NSInteger closeScreenFlag; +@property (nonatomic , assign) NSInteger operatorStatus; +@property (nonatomic , copy) NSString * roomPwd; +@property (nonatomic , assign) BOOL leaveMode; +@property (nonatomic, copy) NSString *backPic; +@property (nonatomic , assign) ChamberModeGenre roomModeType; +@property (nonatomic, copy) NSString *introduction; +@property (nonatomic,strong) ConfectioneryTimberSwitchMatrix *boxSwitchVo; +@property(nonatomic, assign) BOOL isRoomFans; +@property (nonatomic,assign) ChamberDisportDateingGenre blindDateState; +@property (nonatomic,assign) BOOL canOpenBlindDate; +@property (nonatomic,assign) NSInteger blindDateVipUid; +@property (nonatomic,assign) ChamberDatingDeclareChangeGenre datingState; +@property (nonatomic, assign) BOOL hadChangeRoomType; +@property (nonatomic, assign) BOOL isReselect; +@property (nonatomic, assign) int64_t mgId; +@property (nonatomic, copy) NSString *mgName; +@property (nonatomic, assign) NSInteger roundId; +@property (nonatomic, assign) ThroughoutChamberPkDeclareGenre pkState; +@property (nonatomic, copy) NSString *winUid; +@property (nonatomic, copy) NSString *pkUid; +@property (nonatomic, copy) NSString *pkRoomId; +@property (nonatomic , assign) double clearScreenTime; +@property (nonatomic, assign) NSInteger mgMicNum; +@property (nonatomic, assign) BOOL showPkBeginTime; +@property (nonatomic, assign) long long pkBeginTime; +@property (nonatomic, assign) long long pkMatchStartTime; +@property (nonatomic,assign) BOOL hasWishGiftPermit; +@property (nonatomic,assign) BOOL hasOpenWishGift; +@property (nonatomic,strong) ConfectioneryTimberSwitchMatrix *findLoveDrawSwitchVo; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/Model/ChamberAbstractMatrix.m b/YuMi/Modules/YMRoom/Model/ChamberAbstractMatrix.m new file mode 100644 index 00000000..30b82e77 --- /dev/null +++ b/YuMi/Modules/YMRoom/Model/ChamberAbstractMatrix.m @@ -0,0 +1,17 @@ +// +// ChamberAbstractMatrix.m +// YUMI +// +// Created by YUMI on 2021/10/18. +// + +#import "ChamberAbstractMatrix.h" + +@implementation ConfectioneryTimberSwitchMatrix + +@end + + +@implementation ChamberAbstractMatrix + +@end diff --git a/YuMi/Modules/YMRoom/Model/ChamberStrangeConsumerBewelcometoMatrix.h b/YuMi/Modules/YMRoom/Model/ChamberStrangeConsumerBewelcometoMatrix.h new file mode 100644 index 00000000..c584be29 --- /dev/null +++ b/YuMi/Modules/YMRoom/Model/ChamberStrangeConsumerBewelcometoMatrix.h @@ -0,0 +1,18 @@ +// +// ChamberStrangeConsumerBewelcometoMatrix.h +// YUMI +// +// Created by YUMI on 2022/6/6. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface ChamberStrangeConsumerBewelcometoMatrix : NSObject +@property (nonatomic,assign) BOOL roomPopup; +@property (nonatomic,copy) NSArray *sayHelloUserAvatarList; +@property (nonatomic,assign) int sayHelloUserNum; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/Model/ChamberStrangeConsumerBewelcometoMatrix.m b/YuMi/Modules/YMRoom/Model/ChamberStrangeConsumerBewelcometoMatrix.m new file mode 100644 index 00000000..7a9c25c3 --- /dev/null +++ b/YuMi/Modules/YMRoom/Model/ChamberStrangeConsumerBewelcometoMatrix.m @@ -0,0 +1,12 @@ +// +// ChamberStrangeConsumerBewelcometoMatrix.m +// YUMI +// +// Created by YUMI on 2022/6/6. +// + +#import "ChamberStrangeConsumerBewelcometoMatrix.h" + +@implementation ChamberStrangeConsumerBewelcometoMatrix + +@end diff --git a/YuMi/Modules/YMRoom/Model/EngagementAbstractMatrix.h b/YuMi/Modules/YMRoom/Model/EngagementAbstractMatrix.h new file mode 100644 index 00000000..5ad867e3 --- /dev/null +++ b/YuMi/Modules/YMRoom/Model/EngagementAbstractMatrix.h @@ -0,0 +1,32 @@ +// +// EngagementAbstractMatrix.h +// YUMI +// +// Created by YUMI on 2022/1/5. +// + +#import +#import "YUMINNNN.h" +NS_ASSUME_NONNULL_BEGIN + +@interface EngagementAbstractMatrix : NSObject +@property (nonatomic,strong) NSString *avatar; +@property (nonatomic,assign) NSInteger uid; +@property (nonatomic,strong) NSString *nickname; +@property (nonatomic,assign) int position; +@property (nonatomic,assign) NSInteger targetUid; +@property (nonatomic,strong) NSString *targetNickname; +@property (nonatomic,strong) NSString *targetAvatar; +@property (nonatomic,assign) int targetPosition; +@property (nonatomic,strong) NSString *content; +@property (nonatomic,assign) BOOL hasHeart; +@property (nonatomic,assign) BOOL hasSelectUser; +@property (nonatomic, assign) GenderGenre gender; +@property (nonatomic,assign) GenderGenre targetGender; +@property (nonatomic,strong) NSString *svgaUrl; +@property (nonatomic,assign) int svgaSecond; +@property (nonatomic,assign) CGPoint originPoint; +@property (nonatomic,assign) CGPoint targetPoint; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/Model/EngagementAbstractMatrix.m b/YuMi/Modules/YMRoom/Model/EngagementAbstractMatrix.m new file mode 100644 index 00000000..d57b2e09 --- /dev/null +++ b/YuMi/Modules/YMRoom/Model/EngagementAbstractMatrix.m @@ -0,0 +1,12 @@ +// +// EngagementAbstractMatrix.m +// YUMI +// +// Created by YUMI on 2022/1/5. +// + +#import "EngagementAbstractMatrix.h" + +@implementation EngagementAbstractMatrix + +@end diff --git a/YuMi/Modules/YMRoom/Model/ImportpriseAbstractMatrix.h b/YuMi/Modules/YMRoom/Model/ImportpriseAbstractMatrix.h new file mode 100644 index 00000000..dbcb8272 --- /dev/null +++ b/YuMi/Modules/YMRoom/Model/ImportpriseAbstractMatrix.h @@ -0,0 +1,36 @@ +// +// ImportpriseAbstractMatrix.h +// YUMI +// +// Created by YUMI on 2021/12/14. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +typedef NS_ENUM(NSInteger, ActivitySkipGenre) { + ActivitySkipGenre_Room = 2, + ActivitySkipGenre_Web, +}; + +typedef NS_ENUM(NSInteger, ActivityShowGenre) { + ActivityShowGenre_Full = 1, + ActivityShowGenre_Half = 2, +}; +typedef NS_ENUM(NSInteger, ActivityGenre) { + ActivityGenre_Love = 1, + ActivityGenre_First = 2, + ActivityGenre_Fairy = 3, + +}; + +@interface ImportpriseAbstractMatrix : NSObject +@property (nonatomic,copy) NSString *bannerName; +@property (nonatomic, copy)NSString *bannerPic; +@property (nonatomic, assign)ActivitySkipGenre skipType; +@property (nonatomic, copy)NSString *skipUri; +@property (nonatomic, assign)NSInteger showType; +@property (nonatomic,assign) ActivityGenre activityType; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/Model/ImportpriseAbstractMatrix.m b/YuMi/Modules/YMRoom/Model/ImportpriseAbstractMatrix.m new file mode 100644 index 00000000..7ef9a75f --- /dev/null +++ b/YuMi/Modules/YMRoom/Model/ImportpriseAbstractMatrix.m @@ -0,0 +1,12 @@ +// +// ImportpriseAbstractMatrix.m +// YUMI +// +// Created by YUMI on 2021/12/14. +// + +#import "ImportpriseAbstractMatrix.h" + +@implementation ImportpriseAbstractMatrix + +@end diff --git a/YuMi/Modules/YMRoom/Presenter/YUMIChamberExternalizer.h b/YuMi/Modules/YMRoom/Presenter/YUMIChamberExternalizer.h new file mode 100644 index 00000000..f3c1aa37 --- /dev/null +++ b/YuMi/Modules/YMRoom/Presenter/YUMIChamberExternalizer.h @@ -0,0 +1,45 @@ +// +// YMRoomPresenter.h +// YUMI +// +// Created by YUMI on 2021/10/18. +// + +#import "BaseMvpExternalizer.h" +#import "ChamberAbstractMatrix.h" +NS_ASSUME_NONNULL_BEGIN + +@class ConsumerAbstractMatrix; + +@interface YUMIChamberExternalizer : BaseMvpExternalizer + +- (void)initImportChamber:(NSString *)roomUid user:(NSString *)uid; + +- (void)importNEMCChamber:(NSString *)roomId user:(ConsumerAbstractMatrix*)userInfo; +- (void)routeNEMCChamber:(NSString *)roomId; + +- (void)unfoildChamber:(NSString *)title + type:(ChamberGenre)type + roomPwd:(NSString *)roomPwd + roomDesc:(NSString *)roomDesc + backPic:(NSString *)backPic + mgId:(NSString *)mgId; + +- (void)acquireOrdinaryPresentSttowardsement:(NSString *)roomUid; + +- (void)respondConsumerInterChamber:(NSString *)roomUid; + +- (void)respondConsumerOptowardssideChamber:(NSString *)roomUid; + +- (void)acquireChamberSenstowardsionalManagement:(NSString *)roomUid; + +- (void)acquireCycleKellegChamberSttowardsement:(NSString *)roomUid; + +- (void)acquireUniversalChamberAbstract:(NSString *)roomUid; + +- (void)acquireDeficitShetowardshe:(NSString *)roomUid; +-(void)acquireChamberThresholdCharegWindow:(NSString *)roomUid; +-(void)refurbishChamberThresholdCharegWindow:(NSString *)roomUid; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/Presenter/YUMIChamberExternalizer.m b/YuMi/Modules/YMRoom/Presenter/YUMIChamberExternalizer.m new file mode 100644 index 00000000..ad730a37 --- /dev/null +++ b/YuMi/Modules/YMRoom/Presenter/YUMIChamberExternalizer.m @@ -0,0 +1,233 @@ +// +// YMRoomPresenter.m +// YUMI +// +// Created by YUMI on 2021/10/18. +// + +#import "YUMIChamberExternalizer.h" +#import "Api+Room.h" +#import "Api+Gift.h" +#import "ConsumerAbstractMatrix.h" +#import "UnionSensationalManagementAbstractMatrix.h" +#import "AccountAbstractStorage.h" +#import "YUMIPresentStorage.h" +#import "NSObject+MJExtension.h" +#import "PresentAbstractMatrix.h" +#import "YUMICommunicationRemoteExtMatrix.h" +#import "ChamberStrangeConsumerBewelcometoMatrix.h" +#import "YUMIChamberEncourageMatrix.h" +#import "YUMIDeficitSheatheMatrix.h" +#import "ThresholdChargeChamberWindowMatrix.h" +#import "FBCChamberCeremony.h" + +#import +#import + + +@implementation YUMIChamberExternalizer + +- (void)initImportChamber:(NSString *)roomUid user:(NSString *)uid { + RACSubject* room = [RACSubject subject]; + RACSubject* user = [RACSubject subject]; + + [[RACSignal combineLatest:@[room, user] reduce:^id(ChamberAbstractMatrix* room, ConsumerAbstractMatrix* user){ + [[self acquireRegard] initImportChamberAccomplishment:room user:user]; + return nil; + }] subscribeError:^(NSError * _Nullable error) { + [[self acquireRegard] importChamberFlunk:error.code]; + }]; + + [Api getUserInfo:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + ConsumerAbstractMatrix * infoMatrix = [ConsumerAbstractMatrix mtowardsrixAboutJSON:data.data]; + [user sendNext:infoMatrix]; + [user sendCompleted]; + } fail:^(NSInteger code, NSString * _Nullable msg) { + [user sendError:nil]; + } EvidenceChambering:NO errorToast:NO] uid:uid]; + + [Api acquireChamberAbstract:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + ChamberAbstractMatrix * model = [ChamberAbstractMatrix mtowardsrixAboutJSON:data.data]; + [room sendNext:model]; + [room sendCompleted]; + } fail:^(NSInteger code, NSString * _Nullable msg) { + [user sendError:nil]; + } EvidenceChambering:NO errorToast:NO] uid:roomUid intoUid:uid]; +} + +- (void)importNEMCChamber:(NSString *)roomId user:(ConsumerAbstractMatrix *)userInfo { + NIMChatroomEnterRequest *request = [[NIMChatroomEnterRequest alloc] init]; + request.roomId = roomId; + + YUMICommunicationRemoteExtMatrix * extModel = [[YUMICommunicationRemoteExtMatrix alloc] init]; + extModel.defUser = userInfo.defUser; + extModel.erbanNo = userInfo.erbanNo; + extModel.carName = userInfo.carName; + extModel.inRoomNameplatePic = userInfo.nameplatePic; + extModel.inRoomNameplateWord = userInfo.nameplateWord; + extModel.charmUrl = userInfo.userLevelVo.charmUrl; + extModel.experLevelSeq = userInfo.userLevelVo.experLevelSeq; + extModel.experUrl = userInfo.userLevelVo.experUrl; + extModel.newUser = userInfo.newUser; + extModel.vipIcon = userInfo.userVipInfoVO.vipIcon; + extModel.fromUid = userInfo.fromUid; + extModel.fromType = userInfo.fromType; + extModel.fromNick = userInfo.fromNick; + extModel.iosBubbleUrl = userInfo.iosBubbleUrl; + extModel.androidBubbleUrl = userInfo.androidBubbleUrl; + extModel.enterHide = userInfo.userVipInfoVO.enterHide; + extModel.preventKick = userInfo.userVipInfoVO.preventKick; + extModel.enterRoomEffects = userInfo.userVipInfoVO.enterRoomEffects; + extModel.gender = userInfo.gender; + extModel.fromSayHelloChannel = userInfo.fromSayHelloChannel; + extModel.platformRole = userInfo.platformRole; + + NSMutableDictionary *ext = [NSMutableDictionary dictionaryWithObject:extModel.mtowardsrix2dictionary forKey:[NSString stringWithFormat:@"%ld", userInfo.uid]]; + request.roomExt = [ext toJSONBWSttr]; + + [[NIMSDK sharedSDK].chatroomManager enterChatroom:request completion:^(NSError * _Nullable error, NIMChatroom * _Nullable chatroom, NIMChatroomMember * _Nullable me) { + if (error) { + [[self acquireRegard] importChamberFlunk:error.code]; + } else { + [[self acquireRegard] importChamberAccomplishment:chatroom]; + } + }]; +} + +- (void)routeNEMCChamber:(NSString *)roomId { + [[NIMSDK sharedSDK].chatroomManager exitChatroom:roomId completion:nil]; +} + +- (void)unfoildChamber:(NSString *)title + type:(ChamberGenre)type + roomPwd:(NSString *)roomPwd + roomDesc:(NSString *)roomDesc + backPic:(NSString *)backPic + mgId:(NSString *)mgId{ + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NSString * ticket = [AccountAbstractStorage instance].acquireTicket; + if (title.length <= 0) { + title = @""; + } + + if (roomPwd.length <= 0) { + roomPwd = @""; + } + + if (roomDesc.length <= 0) { + roomDesc = @""; + } + + if (backPic.length <= 0) { + backPic = @""; + } + + if (mgId.length <= 0) { + mgId = @"0"; + } + + + + [Api unfoildChamber:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + ChamberAbstractMatrix * infoMatrix = [ChamberAbstractMatrix mtowardsrixAboutJSON:data.data]; + [[self acquireRegard] unfoildChamberAccomplishment:infoMatrix]; + } fail:^(NSInteger code, NSString * _Nullable msg) { + [[self acquireRegard] importChamberFlunk:code]; + } EvidenceChambering:NO] title:title type:type roomPwd:roomPwd roomDesc:roomDesc backPic:backPic uid:uid ticket:ticket mgId:mgId]; +} + +- (void)acquireOrdinaryPresentSttowardsement:(NSString *)roomUid { + + [[YUMIPresentStorage partowardsiciptowardsionStorage] acquirePresentTowardsoloudspeakersource:roomUid]; + [Api requisitionOrdinaryPresentSttowardsement:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + NSArray *luckyBagGift = [PresentAbstractMatrix mtowardsrixsAboutGarment:data.data[@"luckyBagGift"]]; + NSArray *vipGift = [PresentAbstractMatrix mtowardsrixsAboutGarment:data.data[@"vipGift"]]; + NSArray *luckyPoolGift = [PresentAbstractMatrix mtowardsrixsAboutGarment:data.data[@"luckyPoolGift"]]; + NSArray *normalGift = [PresentAbstractMatrix mtowardsrixsAboutGarment:data.data[@"normalGift"]]; + NSArray *weekStarGift = [PresentAbstractMatrix mtowardsrixsAboutGarment:data.data[@"weekStarGift"]]; + NSArray *drawGift = [PresentAbstractMatrix mtowardsrixsAboutGarment:data.data[@"drawGift"]]; + NSArray *penaltyGift = [PresentAbstractMatrix mtowardsrixsAboutGarment:data.data[@"penaltyGift"]]; + NSArray *anchorGift = [PresentAbstractMatrix mtowardsrixsAboutGarment:data.data[@"singlePopularGift"]]; + + NSMutableArray *info = [NSMutableArray array]; + NSMutableArray *totalInfo = [NSMutableArray array]; + [info addObjectsFromArray:luckyBagGift]; + [info addObjectsFromArray:vipGift]; + [info addObjectsFromArray:normalGift]; + [info addObjectsFromArray:weekStarGift]; + [info addObjectsFromArray:drawGift]; + [info addObjectsFromArray:anchorGift]; + [info addObjectsFromArray:penaltyGift]; + [totalInfo addObjectsFromArray:info]; + [totalInfo addObjectsFromArray:luckyPoolGift]; + + [[YUMIPresentStorage partowardsiciptowardsionStorage] preservePresentTowardsoloudspeakersource:info roomUid:roomUid]; + [[YUMIPresentStorage partowardsiciptowardsionStorage] writePresentToDirectoryvisory:totalInfo]; + } roomUid:roomUid]; +} + +- (void)respondConsumerInterChamber:(NSString *)roomUid { + if ([[AccountAbstractStorage instance] acquireTicket].length < 1) { + return; + } + [Api requisitionReportConsumerInterChamber:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + + } uid:[[AccountAbstractStorage instance] acquireCid] roomUid:roomUid ticket:[[AccountAbstractStorage instance] acquireTicket]]; +} + +- (void)respondConsumerOptowardssideChamber:(NSString *)roomUid { + if ([[AccountAbstractStorage instance] acquireTicket].length < 1) { + return; + } + [Api requisitionReportConsumerOptowardssideChamber:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + + } uid:[[AccountAbstractStorage instance] acquireCid] roomUid:roomUid ticket:[[AccountAbstractStorage instance] acquireTicket]]; +} + +- (void)acquireChamberSenstowardsionalManagement:(NSString *)roomUid { + [Api acquireChamberSenstowardsionalManagementSttowardsement:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + NSArray * array = [UnionSensationalManagementAbstractMatrix mtowardsrixsAboutGarment:data.data]; + [[self acquireRegard] acquireChamberSenstowardsionalManagementScuccess:array]; + }] roomUid:roomUid]; +} + +- (void)acquireCycleKellegChamberSttowardsement:(NSString *)roomUid { + [Api requisitionLtowardsterKellegChamber:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + ChamberAbstractMatrix * infoMatrix = [ChamberAbstractMatrix mtowardsrixAboutJSON:data.data]; + [[self acquireRegard] acquireLtowardsterKellegChamberAccomplishment:infoMatrix]; + } else { + [[self acquireRegard] acquireLtowardsterKellegChamberAccomplishment:nil]; + } + } roomUid:roomUid]; +} + +- (void)acquireUniversalChamberAbstract:(NSString *)roomUid { + NSString * uid= [AccountAbstractStorage instance].acquireCid; + [Api acquireChamberAbstract:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + ChamberAbstractMatrix * roomInfo = [ChamberAbstractMatrix mtowardsrixAboutImpactbasket:data.data]; + [[self acquireRegard] acquireUniversalChamberAbstractAccomplishment:roomInfo]; + } fail:^(NSInteger code, NSString * _Nullable msg) { + [[self acquireRegard] acquireUniversalChamberAbstractAccomplishment:nil]; + }] uid:roomUid intoUid:uid]; +} + +- (void)acquireDeficitShetowardshe:(NSString *)roomUid { + [Api requisitionDeficitShetowardshe:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + NSArray *array = [YUMIDeficitSheatheMatrix mtowardsrixsAboutGarment:data.data]; + [[self acquireRegard] acquireDeficitShetowardsheAccomplishment:array]; + }] uid:roomUid]; +} + +-(void)acquireChamberThresholdCharegWindow:(NSString *)roomUid{ + [Api requisitionChamberThresholdCharegWindow:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + ThresholdChargeChamberWindowMatrix *freeModel = [ThresholdChargeChamberWindowMatrix mtowardsrixAboutImpactbasket:data.data]; + [[self acquireRegard]acquireChamberThresholdInstructionWindowAccomplishment:freeModel]; + }EvidenceChambering:NO errorToast:NO] roomUid:roomUid]; +} +-(void)refurbishChamberThresholdCharegWindow:(NSString *)roomUid{ + [Api refurbishChamberThresholdCharegWindow:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + }EvidenceChambering:NO errorToast:NO] roomUid:roomUid]; +} + +@end diff --git a/YuMi/Modules/YMRoom/Protocol/FBCChamberCeremony.h b/YuMi/Modules/YMRoom/Protocol/FBCChamberCeremony.h new file mode 100644 index 00000000..12d5d066 --- /dev/null +++ b/YuMi/Modules/YMRoom/Protocol/FBCChamberCeremony.h @@ -0,0 +1,28 @@ +// +// YMRoomProtocol.h +// YUMI +// +// Created by YUMI on 2021/10/18. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class ChamberAbstractMatrix; +@class ConsumerAbstractMatrix, NIMChatroom, ThresholdChargeChamberWindowMatrix; + +@protocol FBCChamberCeremony + +- (void)initImportChamberAccomplishment:(ChamberAbstractMatrix *)roomInfo user:(ConsumerAbstractMatrix *)userInfo; +- (void)unfoildChamberAccomplishment:(ChamberAbstractMatrix *)roomInfo; +- (void)importChamberAccomplishment:(NIMChatroom *)chatRoom; +- (void)importChamberFlunk:(NSInteger)code; +- (void)acquireChamberSenstowardsionalManagementScuccess:(NSArray *)list; +- (void)acquireLtowardsterKellegChamberAccomplishment:(ChamberAbstractMatrix *)roomInfo; +- (void)acquireUniversalChamberAbstractAccomplishment:(ChamberAbstractMatrix *_Nullable)roomInfo; +- (void)acquireDeficitShetowardsheAccomplishment:(NSArray *)list; +-(void)acquireChamberThresholdInstructionWindowAccomplishment:(ThresholdChargeChamberWindowMatrix*)model; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AcrossRoomPK/Api/Api+AcrossRoomPK.h b/YuMi/Modules/YMRoom/View/AcrossRoomPK/Api/Api+AcrossRoomPK.h new file mode 100644 index 00000000..12d7956d --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AcrossRoomPK/Api/Api+AcrossRoomPK.h @@ -0,0 +1,34 @@ +// +// Api+AcrossRoomPK.h +// YUMI +// +// Created by YUMI on 2022/1/10. +// + +#import "Api.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface Api (AcrossRoomPK) + ++ (void)huntforThroughoutChamberCombatChamberSttowardsement:(HttpRequestHelperCompletion)completion + erbanNo:(NSString *)erbanNo + roomUid:(NSString *)roomUid + pageNum:(NSString *)pageNum + pageSize:(NSString *)pageSize; + ++ (void)acquireThroughoutChamberCombatChamberSttowardsement:(HttpRequestHelperCompletion)completion + roomUid:(NSString *)roomUid + pageNum:(NSString *)pageNum + pageSize:(NSString *)pageSize; + ++ (void)instituteThroughoutChamberCombat:(HttpRequestHelperCompletion)completion + acceptUid:(NSString *)acceptUid + duration:(NSString *)duration + inviteUid:(NSString *)inviteUid + operateUid:(NSString *)operateUid + playDesc:(NSString *)playDesc; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AcrossRoomPK/Api/Api+AcrossRoomPK.m b/YuMi/Modules/YMRoom/View/AcrossRoomPK/Api/Api+AcrossRoomPK.m new file mode 100644 index 00000000..ee4fe0bd --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AcrossRoomPK/Api/Api+AcrossRoomPK.m @@ -0,0 +1,27 @@ +// +// Api+AcrossRoomPK.m +// YUMI +// +// Created by YUMI on 2022/1/10. +// + +#import "Api+AcrossRoomPK.h" +#import +@implementation Api (AcrossRoomPK) + + ++ (void)huntforThroughoutChamberCombatChamberSttowardsement:(HttpRequestHelperCompletion)completion erbanNo:(NSString *)erbanNo roomUid:(NSString *)roomUid pageNum:(NSString *)pageNum pageSize:(NSString *)pageSize { + NSString * fang = [NSString stringFromBase64String:@"c2VhcmNoL3Blcm1pdFJvb20="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion,__FUNCTION__, erbanNo, roomUid, pageNum, pageSize, nil]; +} + ++ (void)acquireThroughoutChamberCombatChamberSttowardsement:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid pageNum:(NSString *)pageNum pageSize:(NSString *)pageSize { + NSString * fang = [NSString stringFromBase64String:@"c2VhcmNoL3Blcm1pdFJvb20="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion,__FUNCTION__, roomUid, pageNum, pageSize, nil]; +} + ++ (void)instituteThroughoutChamberCombat:(HttpRequestHelperCompletion)completion acceptUid:(NSString *)acceptUid duration:(NSString *)duration inviteUid:(NSString *)inviteUid operateUid:(NSString *)operateUid playDesc:(NSString *)playDesc { + NSString * fang = [NSString stringFromBase64String:@"Y3Jvc3Nyb29tcGtyb3VuZC9pbml0aWF0ZUNoYWxsZW5nZQ=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, acceptUid, duration, inviteUid, operateUid, playDesc, nil]; +} +@end diff --git a/YuMi/Modules/YMRoom/View/AcrossRoomPK/Model/ThroughoutChamberCombatAbstractMatrix.h b/YuMi/Modules/YMRoom/View/AcrossRoomPK/Model/ThroughoutChamberCombatAbstractMatrix.h new file mode 100644 index 00000000..a4ecc170 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AcrossRoomPK/Model/ThroughoutChamberCombatAbstractMatrix.h @@ -0,0 +1,25 @@ +// +// AcrossRoomPkInfoModel.h +// YUMI +// +// Created by YUMI on 2022/1/10. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface ThroughoutChamberCombatAbstractMatrix : NSObject +@property (nonatomic, copy) NSString * roomId; +@property (nonatomic, copy) NSString * uid; +@property (nonatomic, copy) NSString * roomUid; +@property (nonatomic, copy) NSString *title; +@property (nonatomic, copy) NSString *avatar; +@property (nonatomic, copy) NSString *nick; +@property (nonatomic, copy) NSString * erbanNo; +@property (nonatomic, assign) BOOL hadSelected; +@property (nonatomic, assign) BOOL crossPking; +@property (nonatomic, assign) BOOL valid; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AcrossRoomPK/Model/ThroughoutChamberCombatAbstractMatrix.m b/YuMi/Modules/YMRoom/View/AcrossRoomPK/Model/ThroughoutChamberCombatAbstractMatrix.m new file mode 100644 index 00000000..f8d75b07 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AcrossRoomPK/Model/ThroughoutChamberCombatAbstractMatrix.m @@ -0,0 +1,12 @@ +// +// AcrossRoomPkInfoModel.m +// YUMI +// +// Created by YUMI on 2022/1/10. +// + +#import "ThroughoutChamberCombatAbstractMatrix.h" + +@implementation ThroughoutChamberCombatAbstractMatrix + +@end diff --git a/YuMi/Modules/YMRoom/View/AcrossRoomPK/Model/ThroughoutChamberCombatCaptureMatrix.h b/YuMi/Modules/YMRoom/View/AcrossRoomPK/Model/ThroughoutChamberCombatCaptureMatrix.h new file mode 100644 index 00000000..58df3b82 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AcrossRoomPK/Model/ThroughoutChamberCombatCaptureMatrix.h @@ -0,0 +1,30 @@ +// +// ThroughoutChamberCombatCaptureMatrix.h +// YUMI +// +// Created by YUMI on 2022/1/12. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSUInteger, ThroughoutChamberCombatGenre) { + ThroughoutChamberCombatGenreNormal = 0, + ThroughoutChamberCombatGenreAnchor, +}; +@interface ThroughoutChamberCombatCaptureMatrix : NSObject +@property (nonatomic, copy) NSString * winUid; +@property (nonatomic, copy) NSString * failUid; +@property (nonatomic, copy) NSString *winAvatar; +@property (nonatomic, copy) NSString *failAvatar; +@property (nonatomic, copy) NSString *winTitle; +@property (nonatomic, copy) NSString *failTitle; +@property (nonatomic, copy) NSString *winNick; +@property (nonatomic, copy) NSString *failNick; +@property (nonatomic, copy) NSString *msg; +@property (nonatomic, assign) ThroughoutChamberCombatGenre pkType; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AcrossRoomPK/Model/ThroughoutChamberCombatCaptureMatrix.m b/YuMi/Modules/YMRoom/View/AcrossRoomPK/Model/ThroughoutChamberCombatCaptureMatrix.m new file mode 100644 index 00000000..a0259fc0 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AcrossRoomPK/Model/ThroughoutChamberCombatCaptureMatrix.m @@ -0,0 +1,12 @@ +// +// ThroughoutChamberCombatCaptureMatrix.m +// YUMI +// +// Created by YUMI on 2022/1/12. +// + +#import "ThroughoutChamberCombatCaptureMatrix.h" + +@implementation ThroughoutChamberCombatCaptureMatrix + +@end diff --git a/YuMi/Modules/YMRoom/View/AcrossRoomPK/Model/ThroughoutChamberCombatFasciaboardMatrix.h b/YuMi/Modules/YMRoom/View/AcrossRoomPK/Model/ThroughoutChamberCombatFasciaboardMatrix.h new file mode 100644 index 00000000..1235f3e3 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AcrossRoomPK/Model/ThroughoutChamberCombatFasciaboardMatrix.h @@ -0,0 +1,67 @@ +// +// ThroughoutChamberCombatFasciaboardMatrix.h +// YUMI +// +// Created by YUMI on 2022/1/11. +// + +#import +#import "YUMINNNN.h" +NS_ASSUME_NONNULL_BEGIN +typedef NS_ENUM(NSUInteger, ThroughoutChamberPkGenre) { + ThroughoutChamberPkGenreLicnese = 1, + ThroughoutChamberPkGenreAnchor, +}; + +typedef NS_ENUM(NSUInteger, ThroughoutChamberPkDeclareGenre) { + ThroughoutChamberPkDeclareGenrePking = 1, + ThroughoutChamberPkDeclareGenrePenalty, + ThroughoutChamberPkDeclareGenrePenaltyEnd, +}; + +typedef NS_ENUM(NSUInteger, KellegCombatOtherLoudspeakerPosition) { + KellegCombatOtherLoudspeakerPosition_Close = 0, + KellegCombatOtherLoudspeakerPosition_Open = 1, +}; + +@class ThroughoutChamberPkRateMatrix; +@interface ThroughoutChamberCombatFasciaboardMatrix : NSObject +@property (nonatomic, assign) long now; +@property (nonatomic, assign) long long aAmount; +@property (nonatomic, copy) NSString *aAvatar; +@property (nonatomic, assign) long long allAmount; +@property (nonatomic, assign) float aPercent; +@property (nonatomic, strong) NSArray *arRank; +@property (nonatomic, strong) NSArray *asRank; +@property (nonatomic, copy) NSString *aTitle; +@property (nonatomic, copy) NSString *aUid; +@property (nonatomic, assign) long long cAmount; +@property (nonatomic, copy) NSString *cAvatar; +@property (nonatomic, assign) float cPercent; +@property (nonatomic, strong) NSArray *crRank; +@property (nonatomic, strong) NSArray *csRank; +@property (nonatomic, copy) NSString *cTitle; +@property (nonatomic, copy) NSString * cUid; +@property (nonatomic, assign) long long endTime; +@property (nonatomic, assign) long long penaltyEndTime; +@property (nonatomic, copy) NSString * winUid; +@property (nonatomic, assign) BOOL isForce; +@property (nonatomic, assign) ThroughoutChamberPkGenre pkType; +@property (nonatomic, assign) ThroughoutChamberPkDeclareGenre pkState; +@property (nonatomic, assign) NSInteger roundId; +@property (nonatomic, copy) NSString *aRoomId; +@property (nonatomic, copy) NSString *aNick; +@property (nonatomic, copy) NSString *cNick; +@property (nonatomic, assign) KellegCombatOtherLoudspeakerPosition aMicStatus; +@end + +@interface ThroughoutChamberPkRateMatrix : NSObject +@property (nonatomic, copy) NSString *amount; +@property (nonatomic, assign) GenderGenre gender; +@property (nonatomic, copy) NSString *nick; +@property (nonatomic, copy) NSString *avatar; +@property (nonatomic, copy) NSString * uid; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AcrossRoomPK/Model/ThroughoutChamberCombatFasciaboardMatrix.m b/YuMi/Modules/YMRoom/View/AcrossRoomPK/Model/ThroughoutChamberCombatFasciaboardMatrix.m new file mode 100644 index 00000000..d3845817 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AcrossRoomPK/Model/ThroughoutChamberCombatFasciaboardMatrix.m @@ -0,0 +1,27 @@ +// +// ThroughoutChamberCombatFasciaboardMatrix.m +// YUMI +// +// Created by YUMI on 2022/1/11. +// + +#import "ThroughoutChamberCombatFasciaboardMatrix.h" + +@implementation ThroughoutChamberCombatFasciaboardMatrix + ++ (NSDictionary *)objectCtowardsegorizeInGarment { + return @{@"arRank" : [ThroughoutChamberPkRateMatrix class], + @"asRank" : [ThroughoutChamberPkRateMatrix class], + @"crRank" : [ThroughoutChamberPkRateMatrix class], + @"csRank" : [ThroughoutChamberPkRateMatrix class] + }; +} + +@end + + +@implementation ThroughoutChamberPkRateMatrix + + + +@end diff --git a/YuMi/Modules/YMRoom/View/AcrossRoomPK/Presenter/YUMIThroughoutChamberCombatExternalizer.h b/YuMi/Modules/YMRoom/View/AcrossRoomPK/Presenter/YUMIThroughoutChamberCombatExternalizer.h new file mode 100644 index 00000000..77c527d3 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AcrossRoomPK/Presenter/YUMIThroughoutChamberCombatExternalizer.h @@ -0,0 +1,19 @@ +// +// YMAcrossRoomPKPresenter.h +// YUMI +// +// Created by YUMI on 2022/1/10. +// + +#import "BaseMvpExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIThroughoutChamberCombatExternalizer : BaseMvpExternalizer +- (void)instituteThroughoutChamberCombat:(NSString *)roomUid + duration:(NSInteger)duration + acceptUid:(NSString *)acceptUid + playDesc:(NSString *)playDesc; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AcrossRoomPK/Presenter/YUMIThroughoutChamberCombatExternalizer.m b/YuMi/Modules/YMRoom/View/AcrossRoomPK/Presenter/YUMIThroughoutChamberCombatExternalizer.m new file mode 100644 index 00000000..f1e716c7 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AcrossRoomPK/Presenter/YUMIThroughoutChamberCombatExternalizer.m @@ -0,0 +1,26 @@ +// +// YMAcrossRoomPKPresenter.m +// YUMI +// +// Created by YUMI on 2022/1/10. +// + +#import "YUMIThroughoutChamberCombatExternalizer.h" +#import "Api+AcrossRoomPK.h" +#import "FBCAcrossChamberCeremony.h" +#import "AccountAbstractStorage.h" + +@implementation YUMIThroughoutChamberCombatExternalizer + + +- (void)instituteThroughoutChamberCombat:(NSString *)roomUid duration:(NSInteger)duration acceptUid:(NSString *)acceptUid playDesc:(NSString *)playDesc { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NSString * time = [NSString stringWithFormat:@"%ld", duration]; + [Api instituteThroughoutChamberCombat:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] instituteThroughoutChamberCombatAccomplishment]; + }fail:^(NSInteger code, NSString * _Nullable msg) { + [[self acquireRegard] instituteThroughoutChamberCombatFlunk:msg]; + } EvidenceChambering:YES errorToast:NO] acceptUid:acceptUid duration:time inviteUid:roomUid operateUid:uid playDesc:playDesc]; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/AcrossRoomPK/Protocol/FBCAcrossChamberCeremony.h b/YuMi/Modules/YMRoom/View/AcrossRoomPK/Protocol/FBCAcrossChamberCeremony.h new file mode 100644 index 00000000..5e20a310 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AcrossRoomPK/Protocol/FBCAcrossChamberCeremony.h @@ -0,0 +1,19 @@ +// +// YMAcrossRoomProtocol.h +// YUMI +// +// Created by YUMI on 2022/1/10. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol FBCAcrossChamberCeremony + +- (void)instituteThroughoutChamberCombatAccomplishment; +- (void)instituteThroughoutChamberCombatFlunk:(NSString *)message; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/Cell/YUMIThroughoutChamberCombatDispossessTabulationRegardElement.h b/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/Cell/YUMIThroughoutChamberCombatDispossessTabulationRegardElement.h new file mode 100644 index 00000000..1cafa01b --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/Cell/YUMIThroughoutChamberCombatDispossessTabulationRegardElement.h @@ -0,0 +1,16 @@ +// +// YMAcrossRoomPKEmptyTableViewCell.h +// YUMI +// +// Created by YUMI on 2022/1/10. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIThroughoutChamberCombatDispossessTabulationRegardElement : UITableViewCell + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/Cell/YUMIThroughoutChamberCombatDispossessTabulationRegardElement.m b/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/Cell/YUMIThroughoutChamberCombatDispossessTabulationRegardElement.m new file mode 100644 index 00000000..c67a8edf --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/Cell/YUMIThroughoutChamberCombatDispossessTabulationRegardElement.m @@ -0,0 +1,69 @@ +// +// YMAcrossRoomPKEmptyTableViewCell.m +// YUMI +// +// Created by YUMI on 2022/1/10. +// + +#import "YUMIThroughoutChamberCombatDispossessTabulationRegardElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "UIIndicateConstant.h" + +@interface YUMIThroughoutChamberCombatDispossessTabulationRegardElement () +@property (nonatomic,strong) UIImageView *dispossessIndicateRegard; +@property (nonatomic,strong) UILabel *titleLabel; +@end + +@implementation YUMIThroughoutChamberCombatDispossessTabulationRegardElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor]; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.dispossessIndicateRegard]; + [self.contentView addSubview:self.titleLabel]; +} + +- (void)initChildLyRestrictions { + [self.dispossessIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.contentView).offset(50); + make.centerX.mas_equalTo(self.contentView); + make.size.mas_equalTo(CGSizeMake(200, 200)); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.dispossessIndicateRegard.mas_bottom).offset(20); + make.left.right.mas_equalTo(self.contentView); + }]; +} +#pragma mark - Getters And Setters +- (UIImageView *)dispossessIndicateRegard { + if (!_dispossessIndicateRegard) { + _dispossessIndicateRegard = [[UIImageView alloc] init]; + _dispossessIndicateRegard.userInteractionEnabled = YES; + _dispossessIndicateRegard.image = [UIImage imageNamed:@""]; + _dispossessIndicateRegard.layer.masksToBounds = YES; + _dispossessIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _dispossessIndicateRegard; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.text = YMLocalizedString(@"YUMI_Across_Room_PK_Empty_Table_View_Cell_0"); + _titleLabel.font = [UIFont systemFontOfSize:16]; + _titleLabel.textAlignment = NSTextAlignmentCenter; + _titleLabel.textColor = UIColorFromRGB(0x999999); + } + return _titleLabel; +} +@end diff --git a/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/Cell/YUMIThroughoutChamberCombatTabulationRegardElement.h b/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/Cell/YUMIThroughoutChamberCombatTabulationRegardElement.h new file mode 100644 index 00000000..f8e9cf92 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/Cell/YUMIThroughoutChamberCombatTabulationRegardElement.h @@ -0,0 +1,20 @@ +// +// YMAcrossRoomPKTableViewCell.h +// YUMI +// +// Created by YUMI on 2022/1/10. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class ThroughoutChamberCombatAbstractMatrix,YUMIThroughoutChamberCombatTabulationRegardElement; +@protocol FBCAcrossChamberCombatTabulationViweElementRepresendtation +- (void)yUMIThroughoutChamberCombatTarbsultowardsionViweElement:(YUMIThroughoutChamberCombatTabulationRegardElement *)view didChooseRoom:(ThroughoutChamberCombatAbstractMatrix *)roomInfo; +@end +@interface YUMIThroughoutChamberCombatTabulationRegardElement : UITableViewCell +@property (nonatomic,strong) ThroughoutChamberCombatAbstractMatrix *chamberCombatAbstract; +@property (nonatomic,weak) id delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/Cell/YUMIThroughoutChamberCombatTabulationRegardElement.m b/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/Cell/YUMIThroughoutChamberCombatTabulationRegardElement.m new file mode 100644 index 00000000..ef4e6014 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/Cell/YUMIThroughoutChamberCombatTabulationRegardElement.m @@ -0,0 +1,124 @@ +// +// YMAcrossRoomPKTableViewCell.m +// YUMI +// +// Created by YUMI on 2022/1/10. +// + +#import "YUMIThroughoutChamberCombatTabulationRegardElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "NetIndicateRegard.h" +#import "ThroughoutChamberCombatAbstractMatrix.h" + +@interface YUMIThroughoutChamberCombatTabulationRegardElement () +@property (nonatomic, strong) NetIndicateRegard *intelligenceportraitIndicateRegard; +@property (nonatomic, strong) UIButton *chosenBtuton; +@property (nonatomic, strong) UILabel *constituteSequencignation; +@property (nonatomic, strong) UILabel *idSequencignation; + +@end + +@implementation YUMIThroughoutChamberCombatTabulationRegardElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; + if (self) { + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self initSubViews]; + [self initChildLyRestrictions]; + + } + return self; +} +#pragma mark - Private Method + +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor]; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.intelligenceportraitIndicateRegard]; + [self.contentView addSubview:self.constituteSequencignation]; + [self.contentView addSubview:self.idSequencignation]; + [self.contentView addSubview:self.chosenBtuton]; +} + +- (void)initChildLyRestrictions { + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(13); + make.width.height.mas_equalTo(60); + make.centerY.mas_equalTo(self.contentView); + }]; + [self.constituteSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_right).mas_offset(6); + make.bottom.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_centerY); + make.height.mas_equalTo(14); + make.right.mas_equalTo(self.chosenBtuton.mas_left).mas_offset(-5); + }]; + [self.idSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.constituteSequencignation); + make.top.mas_equalTo(self.constituteSequencignation.mas_bottom).mas_offset(7); + }]; + + [self.chosenBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(-12); + make.centerY.mas_equalTo(self.intelligenceportraitIndicateRegard); + make.width.height.mas_equalTo(30); + }]; +} + +#pragma mark - Event Response +- (void)chosenBtutonPerformance:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIThroughoutChamberCombatTarbsultowardsionViweElement:didChooseRoom:)]) { + [self.delegate yUMIThroughoutChamberCombatTarbsultowardsionViweElement:self didChooseRoom:self.chamberCombatAbstract]; + } +} +#pragma mark - Getters And Setters +- (void)setChamberCombatAbstract:(ThroughoutChamberCombatAbstractMatrix *)chamberCombatAbstract { + _chamberCombatAbstract = chamberCombatAbstract; + self.intelligenceportraitIndicateRegard.imageUrl = _chamberCombatAbstract.avatar; + self.constituteSequencignation.text = _chamberCombatAbstract.title; + self.idSequencignation.text = [NSString stringWithFormat:@"ID:%@", _chamberCombatAbstract.erbanNo]; + self.chosenBtuton.selected = _chamberCombatAbstract.hadSelected; +} + +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _intelligenceportraitIndicateRegard.layer.cornerRadius = 60/2; + } + return _intelligenceportraitIndicateRegard; +} + +- (UIButton *)chosenBtuton { + if (!_chosenBtuton) { + _chosenBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_chosenBtuton setImage:[UIImage imageNamed:@"yumi_roomg_across_pk_choose_normal"] forState:UIControlStateNormal]; + [_chosenBtuton setImage:[UIImage imageNamed:@"yumi_roomg_across_pk_choose_select"] forState:UIControlStateSelected]; + [_chosenBtuton addTarget:self action:@selector(chosenBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + _chosenBtuton.userInteractionEnabled = YES; + } + return _chosenBtuton; +} + +- (UILabel *)constituteSequencignation { + if (!_constituteSequencignation) { + _constituteSequencignation = [[UILabel alloc] init]; + _constituteSequencignation.textColor = [UIColor whiteColor]; + _constituteSequencignation.font = [UIFont systemFontOfSize:14 weight:UIFontWeightMedium]; + } + return _constituteSequencignation; +} + +- (UILabel *)idSequencignation { + if (!_idSequencignation) { + _idSequencignation = [[UILabel alloc] init]; + _idSequencignation.textColor = [UIColor whiteColor]; + _idSequencignation.font = [UIFont systemFontOfSize:14 weight:UIFontWeightMedium]; + } + return _idSequencignation; +} +@end diff --git a/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/SubViews/XCombatellegCombatAdaptationRegard.h b/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/SubViews/XCombatellegCombatAdaptationRegard.h new file mode 100644 index 00000000..5776557e --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/SubViews/XCombatellegCombatAdaptationRegard.h @@ -0,0 +1,25 @@ +// +// YMAnchorPKMatchView.h +// YUMI +// +// Created by YUMI on 2022/11/22. +// + +#import +#import "ChamberHostRepresendtation.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface XCombatellegCombatAdaptationRegard : UIView + +- (instancetype)initWithDelegate:(id)delegate; + +@property (nonatomic, copy) NSString *roomUid; + +- (void)shankDirectoryapttowardsionIntrtowardsemporalOptowardssideCommunictowardsion; + +- (void)unfoildComputtowardsiondownAboutIntrtowardsemporal:(long)startTime; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/SubViews/XCombatellegCombatAdaptationRegard.m b/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/SubViews/XCombatellegCombatAdaptationRegard.m new file mode 100644 index 00000000..92109f53 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/SubViews/XCombatellegCombatAdaptationRegard.m @@ -0,0 +1,213 @@ +// +// YMAnchorPKMatchView.m +// YUMI +// +// Created by YUMI on 2022/11/22. +// + +#import "XCombatellegCombatAdaptationRegard.h" +#import +#import "MKJPopup.h" +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" +#import "Api+AnchorPk.h" +#import "ChamberAbstractMatrix.h" +#import "Intratemporalstamp.h" + +@interface XCombatellegCombatAdaptationRegard() +@property (nonatomic,weak) iddelegate; +@property (nonatomic, strong) UIImageView *encourageIndicateRegard; +@property (nonatomic, strong) UILabel *titleLabel; +@property (nonatomic, strong) UILabel *intratemporalSequencignation; +@property (strong, nonatomic) dispatch_source_t timer; + +@end + +@implementation XCombatellegCombatAdaptationRegard + +- (void)dealloc { + if (self.timer) { + dispatch_source_cancel(self.timer); + self.timer = nil; + } + [[NSNotificationCenter defaultCenter] removeObserver:self]; +} + +- (void)removeFromSuperview { + [super removeFromSuperview]; + if (self.timer) { + dispatch_source_cancel(self.timer); + self.timer = nil; + } +} + +- (instancetype)initWithDelegate:(id)delegate { + if (self = [super init]) { + _delegate = delegate; + [self initSubViews]; + [self initChildLyRestrictions]; + UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(revoctowardsionDirectoryapttowardsion:)]; + [self addGestureRecognizer:tap]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(revoctowardsionDirectoryapttowardsionCombat) name:@"cancelMatchRandomPK" object:nil]; + } + return self; +} + +- (void)revoctowardsionDirectoryapttowardsion:(UITapGestureRecognizer *)ges { + MKJPrecautiousDisposition *config = [[MKJPrecautiousDisposition alloc] init]; + config.message = @"取消匹配?"; + [MKJPopup precautiousAboutDisposition:config acknowledgementHandler:^{ + [Api revoctowardsionDirectoryapttowardsionArbitraryCombat:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + if (self.timer) { + dispatch_source_cancel(self.timer); + self.timer = nil; + } + self.delegate.acquireChamberAbstract.pkMatchStartTime = nil; + [self removeFromSuperview]; + } + } roomUid:self.roomUid]; + } cancelHandler:^{ + + }]; +} + +- (void)revoctowardsionDirectoryapttowardsionCombat { + if (self.timer) { + dispatch_source_cancel(self.timer); + self.timer = nil; + } + [self removeFromSuperview]; +} + +- (void)shankDirectoryapttowardsionIntrtowardsemporalOptowardssideCommunictowardsion { + if (self.timer) { + dispatch_source_cancel(self.timer); + self.timer = nil; + } + MKJPrecautiousDisposition *config = [[MKJPrecautiousDisposition alloc] init]; + config.message = @"暂未匹配到合适的PK对象\n是否继续?"; + [MKJPopup precautiousAboutDisposition:config acknowledgementHandler:^{ + [Api adapttowardsionArbitraryCombat:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + long long matchPkStartTime = [data.data longLongValue]; + self.delegate.acquireChamberAbstract.pkMatchStartTime = matchPkStartTime; + [self removeFromSuperview]; + [[NSNotificationCenter defaultCenter] postNotificationName:@"anchorPKMatchBegin" object:@{@"matchPkStartTime" : @(matchPkStartTime)}]; + } + } roomUid:self.roomUid]; + } cancelHandler:^{ + [self removeFromSuperview]; + }]; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.encourageIndicateRegard]; + [self addSubview:self.titleLabel]; + [self addSubview:self.intratemporalSequencignation]; +} + +- (void)initChildLyRestrictions { + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(52); + make.height.mas_equalTo(52); + }]; + [self.encourageIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(0); + }]; + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self); + make.top.mas_equalTo(25); + make.height.mas_equalTo(10); + }]; + [self.intratemporalSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.titleLabel); + make.top.mas_equalTo(self.titleLabel.mas_bottom).mas_offset(2); + make.height.mas_equalTo(10); + }]; +} + +#pragma mark - 倒计时 +- (void)unfoildComputtowardsiondownAboutIntrtowardsemporal:(long)startTime { + __block long tempTime; + [Intratemporalstamp acquireInternetEngagementAboutAccomplishment:^(NSTimeInterval timeInterval) { + timeInterval = timeInterval * 1000; + tempTime = (timeInterval - startTime) / 1000; + if (tempTime < 0) { + tempTime = 0; + } + [self shankComputtowardsionIntrtowardsemporal:tempTime]; + } failure:^(NSError * _Nonnull error) { + NSDate *datenow = [NSDate date]; + long time2 = (long)([datenow timeIntervalSince1970]*1000); + tempTime = (time2 - startTime) / 1000; + if (tempTime < 0) { + tempTime = 0; + } + [self shankComputtowardsionIntrtowardsemporal:tempTime]; + }]; +} + +- (void)shankComputtowardsionIntrtowardsemporal:(long)time { + __block long tempTime = time; + if (self.timer == nil) { + @kWeakify(self); + dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); + self.timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, queue); + dispatch_source_set_timer(self.timer,dispatch_walltime(NULL, 0),1.0*NSEC_PER_SEC, 0); + dispatch_source_set_event_handler(self.timer, ^{ + @kStrongify(self); + dispatch_async(dispatch_get_main_queue(), ^{ + + [self throughoutChamberCombatDeficituceddownUnfoild:tempTime]; + }); + tempTime++; + }); + dispatch_resume(self.timer); + } +} + +- (void)throughoutChamberCombatDeficituceddownUnfoild:(NSInteger)time { + NSInteger minute = time / 60; + NSInteger second = (time % 60); + NSInteger hour = time/3600; + NSString *timeStr; + if (hour > 0) { + minute = minute % 60; + timeStr = [NSString stringWithFormat:@"%02zd:%02zd:%02zd", hour, minute, second]; + } else { + timeStr = [NSString stringWithFormat:@"%02zd:%02zd", minute, second]; + } + self.intratemporalSequencignation.text = timeStr; +} + +- (UIImageView *)encourageIndicateRegard { + if (!_encourageIndicateRegard) { + _encourageIndicateRegard = [[UIImageView alloc] init]; + _encourageIndicateRegard.image = [UIImage imageNamed:@"yumi_acrossPK_countDown_left_background"]; + } + return _encourageIndicateRegard; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.font = [UIFont systemFontOfSize:10]; + _titleLabel.textColor = [UIColor whiteColor]; + _titleLabel.text = YMLocalizedString(@"YUMI_Anchor_PK_Match_View_2"); + } + return _titleLabel; +} + +- (UILabel *)intratemporalSequencignation { + if (!_intratemporalSequencignation) { + _intratemporalSequencignation = [[UILabel alloc] init]; + _intratemporalSequencignation.font = [UIFont systemFontOfSize:10 weight:UIFontWeightMedium]; + _intratemporalSequencignation.textColor = UIColorFromRGB(0xFFF233); + _intratemporalSequencignation.text = @"00:00"; + } + return _intratemporalSequencignation; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/SubViews/YUMIAcrpssChamberCombatFasciaboardRegard.h b/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/SubViews/YUMIAcrpssChamberCombatFasciaboardRegard.h new file mode 100644 index 00000000..6b167c45 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/SubViews/YUMIAcrpssChamberCombatFasciaboardRegard.h @@ -0,0 +1,26 @@ +// +// YMAcrpssRoomPKPanelView.h +// YUMI +// +// Created by YUMI on 2022/1/11. +// 跨房PK 正在Pk的面板数据 + +#import + +NS_ASSUME_NONNULL_BEGIN +@class ThroughoutChamberCombatFasciaboardMatrix, YUMIAcrpssChamberCombatFasciaboardRegard; +@protocol FBCAcrpssChamberCombatPanelRegardRepresendtation +- (void)yUMIAcrpssChamberCombatFasciaboardRegard:(YUMIAcrpssChamberCombatFasciaboardRegard *)view EvidenceConsumerSolitaire:(NSString *)uid; +- (void)yUMIAcrpssChamberCombatFasciaboardRegard:(YUMIAcrpssChamberCombatFasciaboardRegard *)view sendGiftToUser:(NSString *)uid; +- (void)yUMIAcrpssChamberCombatFasciaboardRegard:(YUMIAcrpssChamberCombatFasciaboardRegard *)view onlookRoom:(NSString *)roomUid; + +@end + +@interface YUMIAcrpssChamberCombatFasciaboardRegard : UIView +- (void)unfoildComputtowardsiondownAboutIntrtowardsemporal:(long)time; +@property (nonatomic,strong, nullable) ThroughoutChamberCombatFasciaboardMatrix *combatFasciadirectorateAbstract; +@property (nonatomic,weak) id delegate; +- (void)replacementThroughoutCombatRegardTowardsoloudspeaker; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/SubViews/YUMIAcrpssChamberCombatFasciaboardRegard.m b/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/SubViews/YUMIAcrpssChamberCombatFasciaboardRegard.m new file mode 100644 index 00000000..7741f6ef --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/SubViews/YUMIAcrpssChamberCombatFasciaboardRegard.m @@ -0,0 +1,939 @@ +// +// YMAcrpssRoomPKPanelView.m +// YUMI +// +// Created by YUMI on 2022/1/11. +// + +#import "YUMIAcrpssChamberCombatFasciaboardRegard.h" +#import +#import +#import "DJDKMIMOMColor.h" +#import "NetIndicateRegard.h" +#import "YUMIMacroUitls.h" +#import "UIImage+Utils.h" +#import "UIButton+EnlargeTouchArea.h" +#import "Intratemporalstamp.h" +#import "NSArray+Safe.h" +#import "ConsumerAbstractMatrix.h" +#import "ThroughoutChamberCombatFasciaboardMatrix.h" +#import "YUMIThroughoutChamberCombatFasciaboardConsumerRegard.h" + +@interface YUMIAcrpssChamberCombatFasciaboardRegard () +@property (nonatomic, strong) UIImageView *encourageIndicateRegard; +#pragma mark - 规则的view +@property (nonatomic, strong) UIButton *facilitateBtuton; +@property (nonatomic, strong) UIImageView *preadominantBackgroundIndicateRegard; +@property (nonatomic, strong) UITextView *preadominantEssayRegard; +@property (nonatomic, strong) UILabel *intratemporalSequencignation; +@property (nonatomic,strong) UIStackView *stackView; +#pragma mark - 队伍的view +@property (nonatomic,strong) UIView * squadAccommoengagementdRegard; +@property (nonatomic, strong) UILabel *deficitChampionSequencignation; +@property (nonatomic, strong) NetIndicateRegard *deficitIntelligenceportraitIndicateRegard; +@property (nonatomic, strong) UIButton *assistBtuton; +@property (nonatomic, strong) UILabel *disappointedChampionSequencignation; +@property (nonatomic, strong) NetIndicateRegard *disappointedIntelligenceportraitIndicateRegard; +@property (nonatomic, strong) UIButton *onlookBtuton; +#pragma mark -进度条内容 +@property (nonatomic, strong) UIView *progressView; +@property (nonatomic, strong) UIView *growthSatisfperformanceRegard; +@property (nonatomic, strong) UIImageView *deficitComputationIndicateRegard; +@property (nonatomic, strong) UILabel *deficitComputationSequencignation; +@property (strong, nonatomic) SVGAParser *anatomiser; +@property (nonatomic, strong) SVGAImageView *svgExhibitionRegard; +@property (nonatomic, strong) UIImageView *buleComputationIndicateRegard; +@property (nonatomic, strong) UILabel *buleComputationSequencignation; +#pragma mark - 展开更多 +@property (nonatomic,strong) UIButton *foldBtuton; +#pragma mark - 队伍的队友的view +@property (nonatomic,strong) UIStackView *consumerHierarchyRegard; +@property (nonatomic,strong) UIStackView *efficacyHierarchyRegard; +@property (nonatomic,strong) UIStackView *deficitEfficacyHierarchyRegard; +@property (nonatomic,strong) UIStackView *disappointedEfficacyHierarchyRegard; +@property (nonatomic,strong) UIButton *efficacyBtuton; +@property (nonatomic,strong) UIStackView *fascinationHierarchyRegard; +@property (nonatomic,strong) UIStackView *deficitFascinationHierarchyRegard; +@property (nonatomic,strong) UIStackView *disappointedFascinationHierarchyRegard; +@property (nonatomic,strong) UIButton *fascinationBtuton; +@property (strong, nonatomic) dispatch_source_t timer; +@end + +@implementation YUMIAcrpssChamberCombatFasciaboardRegard + +#pragma mark - life cycle + +- (void)dealloc { + NSLog(@"销毁了"); +} + +- (instancetype)initWithFrame:(CGRect)frame { + if (self = [super initWithFrame:frame]) { + UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(diversifictowardsionLoctowardsion:)]; + + + + pan.delaysTouchesBegan = YES; + [self addGestureRecognizer:pan]; + + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Public Method +- (void)replacementThroughoutCombatRegardTowardsoloudspeaker { + if (self.timer) { + dispatch_source_cancel(self.timer); + self.timer = nil; + } + self.combatFasciadirectorateAbstract = nil; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.encourageIndicateRegard]; + + [self.encourageIndicateRegard addSubview:self.stackView]; + [self.encourageIndicateRegard addSubview:self.facilitateBtuton]; + [self.encourageIndicateRegard addSubview:self.intratemporalSequencignation]; + [self.encourageIndicateRegard addSubview:self.preadominantBackgroundIndicateRegard]; + + [self.preadominantBackgroundIndicateRegard addSubview:self.preadominantEssayRegard]; + + [self.stackView addArrangedSubview:self.squadAccommoengagementdRegard]; + [self.stackView addArrangedSubview:self.foldBtuton]; + [self.stackView addArrangedSubview:self.consumerHierarchyRegard]; + + [self.squadAccommoengagementdRegard addSubview:self.deficitChampionSequencignation]; + [self.squadAccommoengagementdRegard addSubview:self.deficitIntelligenceportraitIndicateRegard]; + [self.squadAccommoengagementdRegard addSubview:self.assistBtuton]; + [self.squadAccommoengagementdRegard addSubview:self.disappointedChampionSequencignation]; + [self.squadAccommoengagementdRegard addSubview:self.disappointedIntelligenceportraitIndicateRegard]; + [self.squadAccommoengagementdRegard addSubview:self.onlookBtuton]; + [self.squadAccommoengagementdRegard addSubview:self.progressView]; + + [self.progressView addSubview:self.growthSatisfperformanceRegard]; + [self.progressView addSubview:self.svgExhibitionRegard]; + [self.growthSatisfperformanceRegard addSubview:self.deficitComputationIndicateRegard]; + [self.growthSatisfperformanceRegard addSubview:self.buleComputationIndicateRegard]; + [self.growthSatisfperformanceRegard addSubview:self.deficitComputationSequencignation]; + [self.growthSatisfperformanceRegard addSubview:self.buleComputationSequencignation]; + + [self.consumerHierarchyRegard addArrangedSubview:self.efficacyHierarchyRegard]; + [self.consumerHierarchyRegard addArrangedSubview:self.fascinationHierarchyRegard]; + + [self.efficacyHierarchyRegard addArrangedSubview:self.deficitEfficacyHierarchyRegard]; + [self.efficacyHierarchyRegard addArrangedSubview:self.efficacyBtuton]; + [self.efficacyHierarchyRegard addArrangedSubview:self.disappointedEfficacyHierarchyRegard]; + + [self.fascinationHierarchyRegard addArrangedSubview:self.deficitFascinationHierarchyRegard]; + [self.fascinationHierarchyRegard addArrangedSubview:self.fascinationBtuton]; + [self.fascinationHierarchyRegard addArrangedSubview:self.disappointedFascinationHierarchyRegard]; + [self initConsumerChildLys]; + NSString * anatomiser1Name = [NSString stringWithFormat:@"%@/crossRoomPk_progress.svga", API_Image_URL]; + [self.anatomiser parseWithURL:[NSURL URLWithString:anatomiser1Name] completionBlock:^(SVGAVideoEntity * _Nonnull videoItem) { + self.svgExhibitionRegard.loops = INT_MAX; + self.svgExhibitionRegard.clearsAfterStop = NO; + self.svgExhibitionRegard.videoItem = videoItem; + [self.svgExhibitionRegard startAnimation]; + } failureBlock:^(NSError * _Nonnull error) { + + }]; +} + +- (void)initConsumerChildLys { + for (int i = 0; i < 3; i++) { + YUMIThroughoutChamberCombatFasciaboardConsumerRegard * consumerRegard = [[YUMIThroughoutChamberCombatFasciaboardConsumerRegard alloc] init]; + consumerRegard.tag = (1000 + i); + consumerRegard.type = ThroughoutChamberCombatPanelConsumerGenre_Red_Contribute; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(betowardsConsumerRecognition:)]; + [consumerRegard addGestureRecognizer:tap]; + [self.deficitEfficacyHierarchyRegard addArrangedSubview:consumerRegard]; + } + + for (int i = 0; i < 3; i++) { + YUMIThroughoutChamberCombatFasciaboardConsumerRegard * consumerRegard = [[YUMIThroughoutChamberCombatFasciaboardConsumerRegard alloc] init]; + consumerRegard.tag = (1000 + i); + consumerRegard.type = ThroughoutChamberCombatPanelConsumerGenre_Blue_Contribute; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(betowardsConsumerRecognition:)]; + [consumerRegard addGestureRecognizer:tap]; + [self.disappointedEfficacyHierarchyRegard addArrangedSubview:consumerRegard]; + } + + for (int i = 0; i < 3; i++) { + YUMIThroughoutChamberCombatFasciaboardConsumerRegard * consumerRegard = [[YUMIThroughoutChamberCombatFasciaboardConsumerRegard alloc] init]; + consumerRegard.tag = (1000 + i); + consumerRegard.type = ThroughoutChamberCombatPanelConsumerGenre_Red_Charm; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(betowardsConsumerRecognition:)]; + [consumerRegard addGestureRecognizer:tap]; + [self.deficitFascinationHierarchyRegard addArrangedSubview:consumerRegard]; + } + + for (int i = 0; i < 3; i++) { + YUMIThroughoutChamberCombatFasciaboardConsumerRegard * consumerRegard = [[YUMIThroughoutChamberCombatFasciaboardConsumerRegard alloc] init]; + consumerRegard.tag = (1000 + i); + consumerRegard.type = ThroughoutChamberCombatPanelConsumerGenre_Blue_Charm; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(betowardsConsumerRecognition:)]; + [consumerRegard addGestureRecognizer:tap]; + [self.disappointedFascinationHierarchyRegard addArrangedSubview:consumerRegard]; + } +} + +- (void)initChildLyRestrictions { + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(339); + make.height.mas_equalTo(233); + }]; + + [self.encourageIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self); + make.bottom.mas_equalTo(self.stackView).offset(17); + }]; + [self.facilitateBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(145); + make.top.mas_equalTo(8); + make.width.height.mas_equalTo(16); + }]; + [self.intratemporalSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.facilitateBtuton); + make.centerX.mas_equalTo(self.facilitateBtuton.mas_right).offset(66); + }]; + + [self.preadominantBackgroundIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(71); + make.top.mas_equalTo(33); + make.width.mas_equalTo(244); + make.height.mas_equalTo(177); + }]; + [self.preadominantEssayRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(10); + make.right.mas_equalTo(-14); + make.top.mas_equalTo(24); + make.bottom.mas_equalTo(-15); + }]; + + [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.encourageIndicateRegard).offset(28); + make.left.right.mas_equalTo(self.encourageIndicateRegard); + }]; + + [self.squadAccommoengagementdRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(88); + make.width.mas_equalTo(self.encourageIndicateRegard); + }]; + + [self.foldBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(16, 8)); + }]; + + [self.consumerHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(38 * 2 + 8); + make.left.right.mas_equalTo(self.stackView).inset(12); + }]; + + [self.deficitChampionSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.squadAccommoengagementdRegard).offset(12); + make.top.mas_equalTo(self.squadAccommoengagementdRegard).offset(12); + make.right.mas_lessThanOrEqualTo(self.squadAccommoengagementdRegard.mas_centerX); + }]; + + [self.deficitIntelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.squadAccommoengagementdRegard).offset(30); + make.top.mas_equalTo(self.deficitChampionSequencignation.mas_bottom).offset(11); + make.width.height.mas_equalTo(44); + }]; + + [self.assistBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.deficitIntelligenceportraitIndicateRegard.mas_right).offset(8); + make.top.mas_equalTo(self.deficitIntelligenceportraitIndicateRegard); + make.width.mas_equalTo(50); + make.height.mas_equalTo(18); + }]; + + [self.disappointedChampionSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.deficitChampionSequencignation); + make.right.mas_equalTo(-12); + make.left.mas_lessThanOrEqualTo(self.squadAccommoengagementdRegard.mas_centerX); + }]; + + [self.disappointedIntelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self.squadAccommoengagementdRegard).offset(-30); + make.centerY.mas_equalTo(self.deficitIntelligenceportraitIndicateRegard); + make.width.height.mas_equalTo(44); + }]; + + [self.onlookBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self.disappointedIntelligenceportraitIndicateRegard.mas_left).offset(-8); + make.centerY.mas_equalTo(self.assistBtuton); + make.width.mas_equalTo(50); + make.height.mas_equalTo(18); + }]; + + + [self.progressView mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.squadAccommoengagementdRegard); + make.width.mas_equalTo(174); + make.height.mas_equalTo(12); + make.top.mas_equalTo(self.assistBtuton.mas_bottom).offset(8); + }]; + + [self.growthSatisfperformanceRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.progressView); + }]; + + [self.deficitComputationIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(0); + make.height.mas_equalTo(12); + make.top.mas_equalTo(0); + make.right.mas_equalTo(self.buleComputationIndicateRegard.mas_left); + }]; + + [self.deficitComputationSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.growthSatisfperformanceRegard.mas_left).offset(6); + make.centerY.mas_equalTo(self.growthSatisfperformanceRegard); + }]; + + [self.svgExhibitionRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.buleComputationIndicateRegard.mas_left); + make.bottom.mas_equalTo(self.progressView.mas_bottom); + make.height.mas_equalTo(27); + make.width.mas_equalTo(18); + }]; + + [self.buleComputationIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(0); + make.height.mas_equalTo(12); + make.centerY.mas_equalTo(self.deficitComputationIndicateRegard); + make.width.mas_equalTo(174 * 0.5); + }]; + + [self.buleComputationSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self.growthSatisfperformanceRegard.mas_right).offset(-6); + make.centerY.mas_equalTo(self.growthSatisfperformanceRegard); + }]; + + [self.efficacyHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(38); + }]; + + [self.fascinationHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(38); + }]; + + [self.efficacyBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(53, 22)); + }]; + + [self.fascinationBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(53, 22)); + }]; + + [self.deficitEfficacyHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(self.disappointedEfficacyHierarchyRegard); + }]; + + [self.deficitFascinationHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(self.disappointedFascinationHierarchyRegard); + }]; +} +#pragma mark - 倒计时 +- (void)unfoildComputtowardsiondownAboutIntrtowardsemporal:(long)time { + __block long tempTime = time; + if (self.timer == nil) { + @kWeakify(self); + dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); + self.timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, queue); + dispatch_source_set_timer(self.timer,dispatch_walltime(NULL, 0),1.0*NSEC_PER_SEC, 0); + dispatch_source_set_event_handler(self.timer, ^{ + @kStrongify(self); + if(tempTime <= 0){ + dispatch_source_cancel(self.timer); + self.timer = nil; + dispatch_async(dispatch_get_main_queue(), ^{ + self.intratemporalSequencignation.font = [UIFont systemFontOfSize:14 weight:UIFontWeightBold]; + self.intratemporalSequencignation.text = YMLocalizedString(@"YUMI_Acrpss_Room_PK_Panel_View_0"); + }); + } else { + dispatch_async(dispatch_get_main_queue(), ^{ + + [self throughoutChamberCombatDeficituceddownUnfoild:tempTime]; + }); + tempTime--; + } + }); + dispatch_resume(self.timer); + } +} + +- (void)throughoutChamberCombatDeficituceddownUnfoild:(NSInteger)time { + NSInteger minute = time / 60; + NSInteger second = (time % 60); + NSInteger hour = time/3600; + NSString *timeStr; + if (hour > 0) { + minute = minute % 60; + timeStr = [NSString stringWithFormat:@"%02zd:%02zd:%02zd", hour, minute, second]; + } else { + timeStr = [NSString stringWithFormat:@"%02zd:%02zd", minute, second]; + } + self.intratemporalSequencignation.text = timeStr; + if (time <= 30) { + self.intratemporalSequencignation.textColor = UIColorFromRGB(0xFF87A1); + } else { + self.intratemporalSequencignation.textColor = UIColorFromRGB(0xFFF600); + } +} + +#pragma mark - Event Response +- (void)foldBtutonPerformance:(UIButton *)sender { + sender.selected = !sender.selected; + if (sender.isSelected) { + self.consumerHierarchyRegard.hidden = NO; + [self mas_updateConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(233); + }]; + self.encourageIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_across_pk_panel_background"]; + [UIView animateWithDuration:0.5 animations:^{ + self.foldBtuton.transform = CGAffineTransformIdentity; + }]; + } else { + self.consumerHierarchyRegard.hidden = YES; + self.encourageIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_across_pk_panel_small_background"]; + [self mas_updateConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(137); + }]; + [UIView animateWithDuration:0.5 animations:^{ + self.foldBtuton.transform = CGAffineTransformMakeRotation(M_PI); + }]; + } +} + +- (void)helpBtutonPerformance:(UIButton *)sender { + sender.selected = !sender.selected; + self.preadominantBackgroundIndicateRegard.hidden = !sender.selected; +} + +- (void)betowardsDeficitIntelligenceportraitRecognition:(UITapGestureRecognizer *)ges { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIAcrpssChamberCombatFasciaboardRegard:EvidenceConsumerSolitaire:)]) { + [self.delegate yUMIAcrpssChamberCombatFasciaboardRegard:self EvidenceConsumerSolitaire:self.combatFasciadirectorateAbstract.cUid]; + } +} + +- (void)betowardsBlueIntelligenceportraitRecognition:(UITapGestureRecognizer *)ges { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIAcrpssChamberCombatFasciaboardRegard:EvidenceConsumerSolitaire:)]) { + [self.delegate yUMIAcrpssChamberCombatFasciaboardRegard:self EvidenceConsumerSolitaire:self.combatFasciadirectorateAbstract.aUid]; + } +} + +- (void)assistBtutonPerformance:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIAcrpssChamberCombatFasciaboardRegard:sendGiftToUser:)]) { + [self.delegate yUMIAcrpssChamberCombatFasciaboardRegard:self sendGiftToUser:self.combatFasciadirectorateAbstract.cUid]; + } +} + +- (void)onlookBtutonPerformance:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIAcrpssChamberCombatFasciaboardRegard:onlookRoom:)]) { + [self.delegate yUMIAcrpssChamberCombatFasciaboardRegard:self onlookRoom:self.combatFasciadirectorateAbstract.aUid]; + } +} + +- (void)betowardsConsumerRecognition:(UITapGestureRecognizer *)tap { + YUMIThroughoutChamberCombatFasciaboardConsumerRegard * consumerRegard= (YUMIThroughoutChamberCombatFasciaboardConsumerRegard *)tap.view; + if (consumerRegard.fasciadirectorateAbstract && consumerRegard.fasciadirectorateAbstract.uid.length > 0 && self.delegate && [self.delegate respondsToSelector:@selector(yUMIAcrpssChamberCombatFasciaboardRegard:EvidenceConsumerSolitaire:)]) { + [self.delegate yUMIAcrpssChamberCombatFasciaboardRegard:self EvidenceConsumerSolitaire:consumerRegard.fasciadirectorateAbstract.uid]; + } +} + +- (void)diversifictowardsionLoctowardsion:(UIPanGestureRecognizer*)p { + + + UIWindow *appWindow = [UIApplication sharedApplication].delegate.window; + + CGPoint panSpeck = [p locationInView:appWindow]; + if (p.state == UIGestureRecognizerStateBegan) { + self.alpha = 1; + } else if(p.state == UIGestureRecognizerStateChanged) { + self.center = CGPointMake(panSpeck.x, panSpeck.y); + } else if(p.state == UIGestureRecognizerStateEnded + || p.state == UIGestureRecognizerStateCancelled) { + self.alpha = 1; + CGFloat touchWidth = self.frame.size.width; + CGFloat touchHeight = self.frame.size.height; + CGFloat screenWidth = [[UIScreen mainScreen] bounds].size.width; + CGFloat screenHeight = [[UIScreen mainScreen] bounds].size.height; + + CGFloat left = fabs(panSpeck.x); + CGFloat right = fabs(screenWidth - left); + CGFloat top = fabs(panSpeck.y); + CGFloat bottom = fabs(screenHeight - top); + CGFloat minSpace = 0; + minSpace = MIN(MIN(MIN(top, left), bottom), right); + CGPoint newCenter; + CGFloat targetY = 0; + + if (panSpeck.y < 15 + touchHeight / 2.0) { + targetY = 15 + touchHeight / 2.0; + }else if (panSpeck.y > (screenHeight - touchHeight / 2.0 - 15)) { + targetY = screenHeight - touchHeight / 2.0 - 15; + }else{ + targetY = panSpeck.y; + } + + if (minSpace == left) { + newCenter = CGPointMake(15+touchWidth/2.0, targetY); + }else if (minSpace == right) { + newCenter = CGPointMake(screenWidth - touchWidth/2.0 - 15, targetY); + }else if (minSpace == top) { + newCenter = CGPointMake(panSpeck.x, touchWidth / 3); + }else { + newCenter = CGPointMake(panSpeck.x, screenHeight - touchWidth / 3); + } + [UIView animateWithDuration:0.25 animations:^{ + if ((newCenter.y + self.frame.size.height / 2) > (KScreenHeight - kSafeAreaBottomHeight - 44)) { + self.center = CGPointMake(newCenter.x, KScreenHeight - self.frame.size.height / 2 - kSafeAreaBottomHeight - 44); + }else { + self.center = newCenter; + } + }]; + } +} + +#pragma mark - getters and setters +- (void)setCombatFasciadirectorateAbstract:(ThroughoutChamberCombatFasciaboardMatrix *)combatFasciadirectorateAbstract { + _combatFasciadirectorateAbstract = combatFasciadirectorateAbstract; + if (_combatFasciadirectorateAbstract) { + [Intratemporalstamp acquireInternetEngagementAboutAccomplishment:^(NSTimeInterval timeInterval) { + timeInterval = timeInterval * 1000; + long aTime = (combatFasciadirectorateAbstract.endTime - timeInterval) / 1000; + [self unfoildComputtowardsiondownAboutIntrtowardsemporal:aTime]; + } failure:^(NSError * _Nonnull error) { + NSDate *datenow = [NSDate date]; + long time2 = (long)([datenow timeIntervalSince1970]*1000); + long aTime = (combatFasciadirectorateAbstract.endTime - time2) / 1000; + [self unfoildComputtowardsiondownAboutIntrtowardsemporal:aTime]; + }]; + + if (_combatFasciadirectorateAbstract.cTitle.length > 7) { + _combatFasciadirectorateAbstract.cTitle = [NSString stringWithFormat:@"%@…", [_combatFasciadirectorateAbstract.cTitle substringToIndex:7]]; + } + + if (_combatFasciadirectorateAbstract.aTitle.length > 7) { + _combatFasciadirectorateAbstract.aTitle = [NSString stringWithFormat:@"%@…", [_combatFasciadirectorateAbstract.aTitle substringToIndex:7]]; + } + + self.deficitChampionSequencignation.text = _combatFasciadirectorateAbstract.cTitle; + self.deficitIntelligenceportraitIndicateRegard.imageUrl = _combatFasciadirectorateAbstract.cAvatar; + self.deficitComputationSequencignation.text = [NSString stringWithFormat:@"%lld", _combatFasciadirectorateAbstract.cAmount]; + self.disappointedChampionSequencignation.text = _combatFasciadirectorateAbstract.aTitle; + self.disappointedIntelligenceportraitIndicateRegard.imageUrl = _combatFasciadirectorateAbstract.aAvatar; + self.buleComputationSequencignation.text = [NSString stringWithFormat:@"%lld", _combatFasciadirectorateAbstract.aAmount]; + for (int i = 0; i<_combatFasciadirectorateAbstract.csRank.count; i++) { + ThroughoutChamberPkRateMatrix * rankModel = [_combatFasciadirectorateAbstract.csRank secureGroalTowardsIndictowardsrix1:i]; + if (i >= self.deficitEfficacyHierarchyRegard.subviews.count) { + break; + } + YUMIThroughoutChamberCombatFasciaboardConsumerRegard *consumerRegard = self.deficitEfficacyHierarchyRegard.subviews[i]; + consumerRegard.fasciadirectorateAbstract = rankModel; + } + for (int i = 0; i<_combatFasciadirectorateAbstract.crRank.count; i++) { + ThroughoutChamberPkRateMatrix * rankModel = [_combatFasciadirectorateAbstract.crRank secureGroalTowardsIndictowardsrix1:i]; + if (i >= self.deficitFascinationHierarchyRegard.subviews.count) { + break; + } + YUMIThroughoutChamberCombatFasciaboardConsumerRegard *consumerRegard = self.deficitFascinationHierarchyRegard.subviews[i]; + consumerRegard.fasciadirectorateAbstract = rankModel; + } + + for (int i = 0; i<_combatFasciadirectorateAbstract.asRank.count; i++) { + ThroughoutChamberPkRateMatrix * rankModel = [_combatFasciadirectorateAbstract.asRank secureGroalTowardsIndictowardsrix1:i]; + if (i >= self.disappointedEfficacyHierarchyRegard.subviews.count) { + break; + } + YUMIThroughoutChamberCombatFasciaboardConsumerRegard *consumerRegard = self.disappointedEfficacyHierarchyRegard.subviews[i]; + consumerRegard.fasciadirectorateAbstract = rankModel; + } + + for (int i = 0; i<_combatFasciadirectorateAbstract.arRank.count; i++) { + ThroughoutChamberPkRateMatrix * rankModel = [_combatFasciadirectorateAbstract.arRank secureGroalTowardsIndictowardsrix1:i]; + if (i >= self.disappointedFascinationHierarchyRegard.subviews.count) { + break; + } + YUMIThroughoutChamberCombatFasciaboardConsumerRegard *consumerRegard = self.disappointedFascinationHierarchyRegard.subviews[i]; + consumerRegard.fasciadirectorateAbstract = rankModel; + } + + if (_combatFasciadirectorateAbstract.aPercent > 1) { + _combatFasciadirectorateAbstract.aPercent = 1; + } + CGFloat width = 174; + [self.buleComputationIndicateRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(width * _combatFasciadirectorateAbstract.aPercent); + }]; + } else { + self.deficitChampionSequencignation.text = @""; + self.deficitIntelligenceportraitIndicateRegard.image = nil; + self.deficitComputationSequencignation.text = @"0"; + self.disappointedChampionSequencignation.text = @""; + self.disappointedIntelligenceportraitIndicateRegard.image = nil; + self.buleComputationSequencignation.text = @"0"; + for (int i = 0; i + +NS_ASSUME_NONNULL_BEGIN + + +@interface YUMIThroughoutChamberCombatCallforConsequentRegard : UIView +@property (nonatomic,assign) BOOL isRecognize; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/SubViews/YUMIThroughoutChamberCombatCallforConsequentRegard.m b/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/SubViews/YUMIThroughoutChamberCombatCallforConsequentRegard.m new file mode 100644 index 00000000..f3ba568f --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/SubViews/YUMIThroughoutChamberCombatCallforConsequentRegard.m @@ -0,0 +1,91 @@ +// +// YMAcrossRoomPKInviteResultView.m +// YUMI +// +// Created by YUMI on 2022/1/11. +// + +#import "YUMIThroughoutChamberCombatCallforConsequentRegard.h" +#import +#import "DJDKMIMOMColor.h" + +@interface YUMIThroughoutChamberCombatCallforConsequentRegard () +@property (nonatomic, strong) UILabel *titleLabel; +@property (nonatomic, strong) UIButton *concludeBtuton; +@property (nonatomic, strong) UIImageView *encourageIndicateRegard; + +@end + +@implementation YUMIThroughoutChamberCombatCallforConsequentRegard + +- (instancetype)initWithFrame:(CGRect)frame { + if (self = [super initWithFrame:frame]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +- (void)initSubViews { + [self addSubview:self.encourageIndicateRegard]; + [self addSubview:self.titleLabel]; + [self addSubview:self.concludeBtuton]; +} + +- (void)initChildLyRestrictions { + [self.encourageIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(0); + }]; + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self); + make.left.mas_equalTo(12); + }]; + [self.concludeBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self); + make.right.mas_equalTo(-12); + make.width.height.mas_equalTo(16); + }]; +} + +#pragma mark - Event Response +- (void)concludeBtutonPerformance:(UIButton *)button { + [self removeFromSuperview]; +} +#pragma mark - getter +- (void)setIsRecognize:(BOOL)isRecognize { + if (isRecognize) { + self.titleLabel.text = YMLocalizedString(@"YUMI_Across_Room_PK_Invite_Result_View_0"); + self.encourageIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_across_pk_invite_result_accept_background"]; + } else { + self.titleLabel.text = YMLocalizedString(@"YUMI_Across_Room_PK_Invite_Result_View_1"); + self.encourageIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_across_pk_invite_result_background"]; + } +} + +- (UIImageView *)encourageIndicateRegard { + if (!_encourageIndicateRegard) { + _encourageIndicateRegard = [[UIImageView alloc] init]; + _encourageIndicateRegard.userInteractionEnabled = YES; + } + return _encourageIndicateRegard; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.textColor = [UIColor whiteColor]; + _titleLabel.font = [UIFont systemFontOfSize:15 weight:UIFontWeightBold]; + } + return _titleLabel; +} + +- (UIButton *)concludeBtuton { + if (!_concludeBtuton) { + _concludeBtuton = [[UIButton alloc] init]; + [_concludeBtuton setImage:[UIImage imageNamed:@"yumi_scope_across_pk_invite_result_close"] forState:UIControlStateNormal]; + [_concludeBtuton addTarget:self action:@selector(concludeBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _concludeBtuton; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/SubViews/YUMIThroughoutChamberCombatCallforRegard.h b/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/SubViews/YUMIThroughoutChamberCombatCallforRegard.h new file mode 100644 index 00000000..f49da797 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/SubViews/YUMIThroughoutChamberCombatCallforRegard.h @@ -0,0 +1,18 @@ +// +// YMAcrossRoomPKInviteView.h +// YUMI +// +// Created by YUMI on 2022/1/11. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIThroughoutChamberCombatCallforRegard : UIView +@property (nonatomic,copy) NSString *roomUid; +@property (nonatomic,copy) NSDictionary *atoloudspeakerPackbask; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/SubViews/YUMIThroughoutChamberCombatCallforRegard.m b/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/SubViews/YUMIThroughoutChamberCombatCallforRegard.m new file mode 100644 index 00000000..4a2ba243 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/SubViews/YUMIThroughoutChamberCombatCallforRegard.m @@ -0,0 +1,340 @@ +// +// YMAcrossRoomPKInviteView.m +// YUMI +// +// Created by YUMI on 2022/1/11. +// + +#import "YUMIThroughoutChamberCombatCallforRegard.h" +#import +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" +#import "UIImage+Utils.h" +#import "Api+Room.h" +#import "XNDJTBWGLoadingTool.h" + +@interface YUMIThroughoutChamberCombatCallforMetroRegard : UIView +@property (nonatomic,strong) UILabel *titleLabel; +@property (nonatomic,strong) UILabel *satisfperformanceSequencignation; +@end + +@implementation YUMIThroughoutChamberCombatCallforMetroRegard + +- (instancetype)initWithFrame:(CGRect)frame +{ + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.titleLabel]; + [self addSubview:self.satisfperformanceSequencignation]; +} + +- (void)initChildLyRestrictions { + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(17); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(50); + make.left.centerY.mas_equalTo(self); + }]; + + [self.satisfperformanceSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.titleLabel.mas_right).offset(15); + make.centerY.mas_equalTo(self); + make.right.mas_lessThanOrEqualTo(self).offset(-5); + }]; +} + +#pragma mark - Getters And Setters + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.textColor = UIColorFromRGB(0xffffff); + _titleLabel.font = [UIFont systemFontOfSize:14 weight:UIFontWeightMedium]; + _titleLabel.text = YMLocalizedString(@"YUMI_Across_Room_PK_Invite_View_0"); + } + return _titleLabel; +} + +- (UILabel *)satisfperformanceSequencignation { + if (!_satisfperformanceSequencignation) { + _satisfperformanceSequencignation = [[UILabel alloc] init]; + _satisfperformanceSequencignation.textColor = UIColorFromRGB(0xE8E035); + _satisfperformanceSequencignation.font = [UIFont systemFontOfSize:16 weight:UIFontWeightBold]; + } + return _satisfperformanceSequencignation; +} + +@end + +@interface YUMIThroughoutChamberCombatCallforRegard () +@property (nonatomic, strong) UILabel *titleLabel; +@property (nonatomic,strong) UIStackView *stackView; +@property (nonatomic,strong) YUMIThroughoutChamberCombatCallforMetroRegard *centiretyforRegard; +@property (nonatomic,strong) YUMIThroughoutChamberCombatCallforMetroRegard *intratemporalRegard; +@property (nonatomic,strong) YUMIThroughoutChamberCombatCallforMetroRegard *sequenceRegard; +@property (nonatomic,strong) UIStackView *operaHierarchyRegard; +@property (nonatomic, strong) UIButton *rejectBtuton; +@property (nonatomic, strong) UIButton *acceptBtuton; +@property (nonatomic, strong) UIImageView *encourageIndicateRegard; +@property (nonatomic, strong) UIButton *computationPubescenceBtuton; +@property (strong, nonatomic) dispatch_source_t centiretyforIntratemper; + +@end + +@implementation YUMIThroughoutChamberCombatCallforRegard + +- (void)dealloc { + if (self.centiretyforIntratemper != nil) { + dispatch_source_cancel(self.centiretyforIntratemper); + self.centiretyforIntratemper = nil; + } +} + +- (instancetype)initWithFrame:(CGRect)frame { + if (self = [super initWithFrame:frame]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +- (void)initSubViews { + [self addSubview:self.encourageIndicateRegard]; + + [self.encourageIndicateRegard addSubview:self.titleLabel]; + [self.encourageIndicateRegard addSubview:self.stackView]; + [self.encourageIndicateRegard addSubview:self.operaHierarchyRegard]; + [self.encourageIndicateRegard addSubview:self.computationPubescenceBtuton]; + + [self.stackView addArrangedSubview:self.centiretyforRegard]; + [self.stackView addArrangedSubview:self.intratemporalRegard]; + [self.stackView addArrangedSubview:self.sequenceRegard]; + + [self.operaHierarchyRegard addArrangedSubview:self.rejectBtuton]; + [self.operaHierarchyRegard addArrangedSubview:self.acceptBtuton]; +} + +- (void)initChildLyRestrictions { + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(KScreenWidth - 47 * 2); + make.bottom.mas_equalTo(self.encourageIndicateRegard.mas_bottom); + }]; + + [self.encourageIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.top.mas_equalTo(self); + make.width.mas_equalTo(KScreenWidth - 47 * 2); + make.bottom.mas_equalTo(self.operaHierarchyRegard.mas_bottom).offset(16); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self); + make.top.mas_equalTo(18); + }]; + + [self.computationPubescenceBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.titleLabel); + make.right.mas_equalTo(-15); + make.width.mas_equalTo(32); + make.height.mas_equalTo(16); + }]; + + [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.encourageIndicateRegard).offset(16); + make.top.mas_equalTo(self.titleLabel.mas_bottom).offset(18); + make.right.mas_equalTo(self.encourageIndicateRegard); + }]; + + [self.operaHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.encourageIndicateRegard).inset(16); + make.height.mas_equalTo(35); + make.top.mas_equalTo(self.stackView.mas_bottom).offset(26); + }]; +} + +#pragma mark - Event Response +- (void)acceptBtutonPerformance:(UIButton *)sender { + NSString *roundId = self.atoloudspeakerPackbask[@"roundId"]; + [Api shankThroughoutChamberCombatCentiretyfor:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + dispatch_source_cancel(self.centiretyforIntratemper); + self.centiretyforIntratemper = nil; + [self removeFromSuperview]; + } else { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:msg]; + } + } roomUid:self.roomUid roundId:roundId isRecognize:@"1"]; +} + +- (void)rejectBtutonPerformance:(UIButton *)sender { + NSString *roundId = self.atoloudspeakerPackbask[@"roundId"]; + [Api shankThroughoutChamberCombatCentiretyfor:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + dispatch_source_cancel(self.centiretyforIntratemper); + self.centiretyforIntratemper = nil; + [self removeFromSuperview]; + } else { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:msg]; + } + } roomUid:self.roomUid roundId:roundId isRecognize:@"0"]; +} + +#pragma mark - getter +- (void)setAtoloudspeakerPackbask:(NSDictionary *)atoloudspeakerPackbask { + _atoloudspeakerPackbask = atoloudspeakerPackbask; + if (_atoloudspeakerPackbask.allKeys.count > 0) { + self.centiretyforRegard.satisfperformanceSequencignation.text = _atoloudspeakerPackbask[@"inviteRoomTitle"]; + self.intratemporalRegard.satisfperformanceSequencignation.text = [NSString stringWithFormat:YMLocalizedString(@"YUMI_Across_Room_PK_Invite_View_1"), _atoloudspeakerPackbask[@"pkDuration"]]; + NSString *desc = _atoloudspeakerPackbask[@"pkDesc"]; + if (desc.length > 0) { + self.sequenceRegard.hidden = NO; + self.sequenceRegard.satisfperformanceSequencignation.text = desc; + } else { + self.sequenceRegard.hidden = YES; + } + + if (_centiretyforIntratemper != nil) { + dispatch_source_cancel(_centiretyforIntratemper); + } + __block NSInteger time = 10; + dispatch_queue_t queue = dispatch_get_global_queue(0, 0); + _centiretyforIntratemper = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, queue); + @kWeakify(self); + dispatch_source_set_timer(_centiretyforIntratemper,dispatch_walltime(NULL, 0),1.0*NSEC_PER_SEC, 0); + dispatch_source_set_event_handler(_centiretyforIntratemper, ^{ + if(time <= 0){ + dispatch_source_cancel(self.centiretyforIntratemper); + self.centiretyforIntratemper = nil; + dispatch_async(dispatch_get_main_queue(), ^{ + @kStrongify(self); + [self removeFromSuperview]; + + }); + }else{ + dispatch_async(dispatch_get_main_queue(), ^{ + @kStrongify(self); + [self.computationPubescenceBtuton setTitle:[NSString stringWithFormat:@"%02ld", time] forState:UIControlStateNormal]; + }); + time--; + } + }); + dispatch_resume(_centiretyforIntratemper); + } +} + +- (UIImageView *)encourageIndicateRegard { + if (!_encourageIndicateRegard) { + _encourageIndicateRegard = [[UIImageView alloc] init]; + _encourageIndicateRegard.userInteractionEnabled = YES; + _encourageIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_across_pk_invite_background"]; + } + return _encourageIndicateRegard; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.textColor = [UIColor whiteColor]; + _titleLabel.font = [UIFont systemFontOfSize:18 weight:UIFontWeightBold]; + _titleLabel.text = YMLocalizedString(@"YUMI_Across_Room_PK_Invite_View_2"); + } + return _titleLabel; +} + +- (UIStackView *)stackView { + if (!_stackView) { + _stackView = [[UIStackView alloc] init]; + _stackView.axis = UILayoutConstraintAxisVertical; + _stackView.distribution = UIStackViewDistributionFill; + _stackView.alignment = UIStackViewAlignmentFill; + _stackView.spacing = 18; + } + return _stackView; +} + +- (YUMIThroughoutChamberCombatCallforMetroRegard *)centiretyforRegard { + if (!_centiretyforRegard) { + _centiretyforRegard = [[YUMIThroughoutChamberCombatCallforMetroRegard alloc] init]; + _centiretyforRegard.titleLabel.text = YMLocalizedString(@"YUMI_Across_Room_PK_Invite_View_3"); + } + return _centiretyforRegard; +} + +- (YUMIThroughoutChamberCombatCallforMetroRegard *)intratemporalRegard { + if (!_intratemporalRegard) { + _intratemporalRegard = [[YUMIThroughoutChamberCombatCallforMetroRegard alloc] init]; + _intratemporalRegard.titleLabel.text = YMLocalizedString(@"YUMI_Across_Room_PK_Invite_View_4"); + } + return _intratemporalRegard; +} + +- (YUMIThroughoutChamberCombatCallforMetroRegard *)sequenceRegard { + if (!_sequenceRegard) { + _sequenceRegard = [[YUMIThroughoutChamberCombatCallforMetroRegard alloc] init]; + _sequenceRegard.titleLabel.text = YMLocalizedString(@"YUMI_Across_Room_PK_Invite_View_5"); + } + return _sequenceRegard; +} + +- (UIButton *)computationPubescenceBtuton { + if (!_computationPubescenceBtuton) { + _computationPubescenceBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_computationPubescenceBtuton setTitleColor:UIColorFromRGB(0xFFF600) forState:UIControlStateNormal]; + _computationPubescenceBtuton.titleLabel.font = [UIFont systemFontOfSize:13 weight:UIFontWeightMedium]; + [_computationPubescenceBtuton setBackgroundImage:[UIImage imageWithColor:UIColorRGBAlpha(0xFF9813, 0.2)] forState:UIControlStateNormal]; + _computationPubescenceBtuton.layer.masksToBounds = YES; + _computationPubescenceBtuton.layer.cornerRadius = 8; + _computationPubescenceBtuton.layer.borderWidth = 0.5; + _computationPubescenceBtuton.layer.borderColor = UIColorFromRGB(0xFFFAD5).CGColor; + } + return _computationPubescenceBtuton; +} + +- (UIStackView *)operaHierarchyRegard { + if (!_operaHierarchyRegard) { + _operaHierarchyRegard = [[UIStackView alloc] init]; + _operaHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _operaHierarchyRegard.distribution = UIStackViewDistributionFillEqually; + _operaHierarchyRegard.alignment = UIStackViewAlignmentFill; + _operaHierarchyRegard.spacing = 29; + } + return _operaHierarchyRegard; +} + +- (UIButton *)rejectBtuton { + if (!_rejectBtuton) {\ + _rejectBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + _rejectBtuton.layer.masksToBounds = YES; + _rejectBtuton.layer.cornerRadius = 25 / 2; + [_rejectBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[UIColorFromRGB(0xBCDDFF), UIColorFromRGB(0xD6BEF7)] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + [_rejectBtuton setTitleColor:UIColorFromRGB(0x4C5AF1) forState:UIControlStateNormal]; + [_rejectBtuton setTitle:YMLocalizedString(@"YUMI_Across_Room_PK_Invite_View_6") forState:UIControlStateNormal]; + _rejectBtuton.titleLabel.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium]; + [_rejectBtuton addTarget:self action:@selector(rejectBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _rejectBtuton; +} + +- (UIButton *)acceptBtuton { + if (!_acceptBtuton) { + _acceptBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_acceptBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[UIColorFromRGB(0x218EFF), UIColorFromRGB(0x7727E4)] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + [_acceptBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + [_acceptBtuton setTitle:YMLocalizedString(@"YUMI_Across_Room_PK_Invite_View_7") forState:UIControlStateNormal]; + _acceptBtuton.titleLabel.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium]; + [_acceptBtuton addTarget:self action:@selector(acceptBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + _acceptBtuton.layer.masksToBounds = YES; + _acceptBtuton.layer.cornerRadius = 25 / 2; + } + return _acceptBtuton; + } +@end diff --git a/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/SubViews/YUMIThroughoutChamberCombatCaptureRegard.h b/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/SubViews/YUMIThroughoutChamberCombatCaptureRegard.h new file mode 100644 index 00000000..759f90c0 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/SubViews/YUMIThroughoutChamberCombatCaptureRegard.h @@ -0,0 +1,16 @@ +// +// YMAcrossRoomPKPrizeView.h +// YUMI +// +// Created by YUMI on 2022/1/12. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class ThroughoutChamberCombatCaptureMatrix; +@interface YUMIThroughoutChamberCombatCaptureRegard : UIView +@property (nonatomic, strong) ThroughoutChamberCombatCaptureMatrix *data; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/SubViews/YUMIThroughoutChamberCombatCaptureRegard.m b/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/SubViews/YUMIThroughoutChamberCombatCaptureRegard.m new file mode 100644 index 00000000..2ece722c --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/SubViews/YUMIThroughoutChamberCombatCaptureRegard.m @@ -0,0 +1,236 @@ +// +// YMAcrossRoomPKPrizeView.m +// YUMI +// +// Created by YUMI on 2022/1/12. +// 跨房PK横幅 + +#import "YUMIThroughoutChamberCombatCaptureRegard.h" +#import +#import "DJDKMIMOMColor.h" +#import "NetIndicateRegard.h" +#import "UIImage+Utils.h" +#import "ThroughoutChamberCombatCaptureMatrix.h" + +@interface YUMIThroughoutChamberCombatCaptureRegard () + + +@property (nonatomic, strong) UIImageView *backgroundIndicateRegard; +@property (nonatomic, strong) UIButton *onLookBtuton; +@property (nonatomic, strong) UILabel *titleLabel; +@property (nonatomic, strong) NetIndicateRegard *deficitIntelligenceIndicateRegard; +@property (nonatomic, strong) UILabel *deficitChamberChampionSequencignation; +@property (nonatomic, strong) UIImageView *middleIndicateRegard; +@property (nonatomic, strong) NetIndicateRegard *disappointedIntelligenceIndicateRegard; +@property (nonatomic, strong) UILabel *disappointedChamberChampionSequencignation; + +@end + +@implementation YUMIThroughoutChamberCombatCaptureRegard + +- (instancetype)initWithFrame:(CGRect)frame { + if (self = [super initWithFrame:frame]) { + [self initRegard]; + [self initConstrtowardsions]; + } + return self; +} + +- (void)initRegard { + [self addSubview:self.backgroundIndicateRegard]; + [self addSubview:self.onLookBtuton]; + [self addSubview:self.titleLabel]; + + [self addSubview:self.deficitIntelligenceIndicateRegard]; + [self addSubview:self.deficitChamberChampionSequencignation]; + + [self addSubview:self.disappointedIntelligenceIndicateRegard]; + [self addSubview:self.disappointedChamberChampionSequencignation]; + + [self addSubview:self.middleIndicateRegard]; + +} + +- (void)initConstrtowardsions { + [self.backgroundIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(0); + }]; + [self.deficitIntelligenceIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(12); + make.left.mas_equalTo(22); + make.width.height.mas_equalTo(44); + }]; + [self.deficitChamberChampionSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.deficitIntelligenceIndicateRegard.mas_bottom).mas_offset(8); + make.centerX.mas_equalTo(self.deficitIntelligenceIndicateRegard); + make.height.mas_equalTo(12); + make.width.mas_equalTo(72); + }]; + [self.middleIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.deficitIntelligenceIndicateRegard); + make.width.mas_equalTo(60); + make.height.mas_equalTo(40); + make.left.mas_equalTo(self.deficitIntelligenceIndicateRegard.mas_right).mas_offset(9); + }]; + [self.disappointedIntelligenceIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.deficitIntelligenceIndicateRegard); + make.left.mas_equalTo(self.middleIndicateRegard.mas_right).mas_offset(9); + make.width.height.mas_equalTo(44); + }]; + [self.disappointedChamberChampionSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.disappointedIntelligenceIndicateRegard.mas_bottom).mas_offset(8); + make.centerX.mas_equalTo(self.disappointedIntelligenceIndicateRegard); + make.height.mas_equalTo(12); + make.width.mas_equalTo(72); + }]; + [self.onLookBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(50); + make.height.mas_equalTo(18); + make.right.mas_equalTo(-14); + make.bottom.mas_equalTo(-14); + }]; + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.deficitIntelligenceIndicateRegard); + make.right.mas_equalTo(self.onLookBtuton); + make.height.mas_equalTo(14); + make.left.mas_equalTo(self.disappointedIntelligenceIndicateRegard.mas_right).mas_offset(20); + }]; +} + +- (void)setData:(ThroughoutChamberCombatCaptureMatrix *)data { + _data = data; + self.deficitIntelligenceIndicateRegard.imageUrl = data.winAvatar; + self.disappointedIntelligenceIndicateRegard.imageUrl = data.failAvatar; + self.deficitChamberChampionSequencignation.text = data.winTitle; + self.disappointedChamberChampionSequencignation.text = data.failTitle; + self.titleLabel.text = data.msg; + if (data.pkType == ThroughoutChamberCombatGenreAnchor) { + self.deficitChamberChampionSequencignation.text = data.winNick; + self.disappointedChamberChampionSequencignation.text = data.failNick; + self.titleLabel.numberOfLines = 0; + self.titleLabel.font = [UIFont systemFontOfSize:10]; + self.titleLabel.textAlignment = NSTextAlignmentCenter; + self.backgroundIndicateRegard.image = [UIImage imageNamed:@"yumi_anchorPK_prize_background"]; + self.middleIndicateRegard.image = [UIImage imageNamed:@"yumi_anchorPK_prize_KO"]; + [self.onLookBtuton setBackgroundImage:[UIImage imageNamed:@"yumi_anchorPK_prize_onLook_background"] forState:UIControlStateNormal]; + [self.onLookBtuton setTitle:YMLocalizedString(@"YUMI_Across_Room_PK_Prize_View_0") forState:UIControlStateNormal]; + self.onLookBtuton.layer.masksToBounds = NO; + self.onLookBtuton.layer.borderWidth = 0; + [self.onLookBtuton mas_remakeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(58); + make.height.mas_equalTo(20); + make.right.mas_equalTo(-70); + make.bottom.mas_equalTo(-14); + }]; + [self.titleLabel mas_remakeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.onLookBtuton); + make.width.mas_equalTo(152); + make.bottom.mas_equalTo(self.onLookBtuton.mas_top).mas_offset(-5); + }]; + [self.deficitChamberChampionSequencignation mas_updateConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.deficitIntelligenceIndicateRegard.mas_bottom).mas_offset(4); + }]; + [self.disappointedChamberChampionSequencignation mas_updateConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.disappointedIntelligenceIndicateRegard.mas_bottom).mas_offset(4); + }]; + [self.middleIndicateRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(46); + make.height.mas_equalTo(39); + }]; + } +} + +#pragma mark - getters and setters +- (UIImageView *)backgroundIndicateRegard { + if (!_backgroundIndicateRegard) { + _backgroundIndicateRegard = [[UIImageView alloc] init]; + _backgroundIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_across_pk_prize_background"]; + _backgroundIndicateRegard.userInteractionEnabled = YES; + } + return _backgroundIndicateRegard; +} + +- (UIButton *)onLookBtuton { + if (!_onLookBtuton) { + _onLookBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_onLookBtuton setBackgroundImage:[UIImage imageWithColor:[DJDKMIMOMColor prohibitionBtutonPrettify]] forState:UIControlStateNormal]; + [_onLookBtuton setTitle:YMLocalizedString(@"YUMI_Across_Room_PK_Prize_View_1") forState:UIControlStateNormal]; + [_onLookBtuton setTitleColor:UIColorFromRGB(0xffffff) forState:UIControlStateNormal]; + _onLookBtuton.titleLabel.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium]; + _onLookBtuton.userInteractionEnabled = NO; + _onLookBtuton.layer.masksToBounds = YES; + _onLookBtuton.layer.cornerRadius = 9; + _onLookBtuton.layer.borderWidth = 1; + _onLookBtuton.layer.borderColor = [UIColor whiteColor].CGColor; + } + return _onLookBtuton; +} + +- (NetIndicateRegard *)deficitIntelligenceIndicateRegard { + if (!_deficitIntelligenceIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _deficitIntelligenceIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _deficitIntelligenceIndicateRegard.layer.cornerRadius = 22; + _deficitIntelligenceIndicateRegard.layer.masksToBounds = YES; + _deficitIntelligenceIndicateRegard.layer.borderWidth = 1; + _deficitIntelligenceIndicateRegard.layer.borderColor = UIColorFromRGB(0xec677d).CGColor; + } + return _deficitIntelligenceIndicateRegard; +} + +- (UILabel *)deficitChamberChampionSequencignation { + if (!_deficitChamberChampionSequencignation) { + _deficitChamberChampionSequencignation = [[UILabel alloc] init]; + _deficitChamberChampionSequencignation.textColor = [UIColor whiteColor]; + _deficitChamberChampionSequencignation.font = [UIFont systemFontOfSize:10 weight:UIFontWeightMedium]; + _deficitChamberChampionSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _deficitChamberChampionSequencignation; +} + +- (UIImageView *)middleIndicateRegard { + if (!_middleIndicateRegard) { + _middleIndicateRegard = [[UIImageView alloc] init]; + _middleIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_across_pk_prize_ko"]; + } + return _middleIndicateRegard; +} + +- (NetIndicateRegard *)disappointedIntelligenceIndicateRegard { + if (!_disappointedIntelligenceIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _disappointedIntelligenceIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _disappointedIntelligenceIndicateRegard.layer.cornerRadius = 22; + _disappointedIntelligenceIndicateRegard.layer.masksToBounds = YES; + _disappointedIntelligenceIndicateRegard.layer.borderWidth = 1; + _disappointedIntelligenceIndicateRegard.layer.borderColor = UIColorFromRGB(0x76c1F5).CGColor; + } + return _disappointedIntelligenceIndicateRegard; +} + +- (UILabel *)disappointedChamberChampionSequencignation { + if (!_disappointedChamberChampionSequencignation) { + _disappointedChamberChampionSequencignation = [[UILabel alloc] init]; + _disappointedChamberChampionSequencignation.textColor = [UIColor whiteColor]; + _disappointedChamberChampionSequencignation.font = [UIFont systemFontOfSize:10 weight:UIFontWeightMedium]; + _disappointedChamberChampionSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _disappointedChamberChampionSequencignation; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.textColor = [UIColor whiteColor]; + _titleLabel.font = [UIFont systemFontOfSize:13 weight:UIFontWeightMedium]; + _titleLabel.lineBreakMode = NSLineBreakByTruncatingMiddle; + } + return _titleLabel; +} + + +@end diff --git a/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/SubViews/YUMIThroughoutChamberCombatComputationDownRegard.h b/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/SubViews/YUMIThroughoutChamberCombatComputationDownRegard.h new file mode 100644 index 00000000..721f45eb --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/SubViews/YUMIThroughoutChamberCombatComputationDownRegard.h @@ -0,0 +1,19 @@ +// +// YMAcrossRoomPKCountDownView.h +// YUMI +// +// Created by YUMI on 2022/7/14. +// 跨房PK预约倒计时 + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIThroughoutChamberCombatComputationDownRegard : UIView + +@property (nonatomic, assign) long long startTime; +@property (nonatomic, strong) UIImageView *encourageIndicateRegard; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/SubViews/YUMIThroughoutChamberCombatComputationDownRegard.m b/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/SubViews/YUMIThroughoutChamberCombatComputationDownRegard.m new file mode 100644 index 00000000..26111154 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/SubViews/YUMIThroughoutChamberCombatComputationDownRegard.m @@ -0,0 +1,146 @@ +// +// YMAcrossRoomPKCountDownView.m +// YUMI +// +// Created by YUMI on 2022/7/14. +// + +#import "YUMIThroughoutChamberCombatComputationDownRegard.h" +#import +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" + +@interface YUMIThroughoutChamberCombatComputationDownRegard() + +@property (nonatomic, strong) UILabel *titleLabel; +@property (nonatomic, strong) UILabel *intratemporalSequencignation; +@property (strong, nonatomic) dispatch_source_t timer; + +@end + +@implementation YUMIThroughoutChamberCombatComputationDownRegard + +- (void)dealloc { + if (self.timer) { + dispatch_source_cancel(self.timer); + self.timer = nil; + } +} + +- (instancetype)initWithFrame:(CGRect)frame { + if (self = [super initWithFrame:frame]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.encourageIndicateRegard]; + [self addSubview:self.titleLabel]; + [self addSubview:self.intratemporalSequencignation]; +} + +- (void)initChildLyRestrictions { + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(52); + make.height.mas_equalTo(52); + }]; + [self.encourageIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(0); + }]; + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self); + make.top.mas_equalTo(25); + make.height.mas_equalTo(10); + }]; + [self.intratemporalSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.titleLabel); + make.top.mas_equalTo(self.titleLabel.mas_bottom).mas_offset(2); + make.height.mas_equalTo(10); + }]; +} + +#pragma mark - 倒计时 +- (void)unfoildComputtowardsiondownAboutIntrtowardsemporal:(long)time { + __block long tempTime = time; + if (self.timer == nil) { + @kWeakify(self); + dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); + self.timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, queue); + dispatch_source_set_timer(self.timer,dispatch_walltime(NULL, 0),1.0*NSEC_PER_SEC, 0); + dispatch_source_set_event_handler(self.timer, ^{ + @kStrongify(self); + if(tempTime <= 0){ + dispatch_source_cancel(self.timer); + self.timer = nil; + dispatch_async(dispatch_get_main_queue(), ^{ + [self removeFromSuperview]; + }); + } else { + dispatch_async(dispatch_get_main_queue(), ^{ + + [self throughoutChamberCombatDeficituceddownUnfoild:tempTime]; + }); + tempTime--; + } + }); + dispatch_resume(self.timer); + } +} + +- (void)throughoutChamberCombatDeficituceddownUnfoild:(NSInteger)time { + NSInteger minute = time / 60; + NSInteger second = (time % 60); + NSInteger hour = time/3600; + NSString *timeStr; + if (hour > 0) { + minute = minute % 60; + timeStr = [NSString stringWithFormat:@"%02zd:%02zd:%02zd", hour, minute, second]; + } else { + timeStr = [NSString stringWithFormat:@"%02zd:%02zd", minute, second]; + } + self.intratemporalSequencignation.text = timeStr; + if (time <= 30) { + self.intratemporalSequencignation.textColor = UIColorFromRGB(0xFF87A1); + } else { + self.intratemporalSequencignation.textColor = UIColorFromRGB(0xFFF600); + } +} + +- (void)setStartTime:(long long)startTime { + long long time2 = (long long)([[NSDate date] timeIntervalSince1970]*1000); + long aTime = (long)(startTime - time2) / 1000; + [self unfoildComputtowardsiondownAboutIntrtowardsemporal:aTime]; +} + +- (UIImageView *)encourageIndicateRegard { + if (!_encourageIndicateRegard) { + _encourageIndicateRegard = [[UIImageView alloc] init]; + _encourageIndicateRegard.image = [UIImage imageNamed:@"yumi_acrossPK_countDown_background"]; + } + return _encourageIndicateRegard; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.font = [UIFont systemFontOfSize:10]; + _titleLabel.textColor = [UIColor whiteColor]; + _titleLabel.text = @"下一场PK"; + } + return _titleLabel; +} + +- (UILabel *)intratemporalSequencignation { + if (!_intratemporalSequencignation) { + _intratemporalSequencignation = [[UILabel alloc] init]; + _intratemporalSequencignation.font = [UIFont systemFontOfSize:10 weight:UIFontWeightMedium]; + _intratemporalSequencignation.textColor = UIColorFromRGB(0xFFF333); + _intratemporalSequencignation.text = @"00:00"; + } + return _intratemporalSequencignation; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/SubViews/YUMIThroughoutChamberCombatConsequentRegard.h b/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/SubViews/YUMIThroughoutChamberCombatConsequentRegard.h new file mode 100644 index 00000000..92813506 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/SubViews/YUMIThroughoutChamberCombatConsequentRegard.h @@ -0,0 +1,16 @@ +// +// YMAcrossRoomPKResultView.h +// YUMI +// +// Created by YUMI on 2022/1/12. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class ThroughoutChamberCombatFasciaboardMatrix; +@interface YUMIThroughoutChamberCombatConsequentRegard : UIView +@property (nonatomic, strong) ThroughoutChamberCombatFasciaboardMatrix *data; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/SubViews/YUMIThroughoutChamberCombatConsequentRegard.m b/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/SubViews/YUMIThroughoutChamberCombatConsequentRegard.m new file mode 100644 index 00000000..228c17de --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/SubViews/YUMIThroughoutChamberCombatConsequentRegard.m @@ -0,0 +1,487 @@ +// +// YMAcrossRoomPKResultView.m +// YUMI +// +// Created by YUMI on 2022/1/12. +// + +#import "YUMIThroughoutChamberCombatConsequentRegard.h" +#import +#import "DJDKMIMOMColor.h" +#import "NetIndicateRegard.h" +#import "MKJPopup.h" +#import "NSArray+Safe.h" +#import "ThroughoutChamberCombatFasciaboardMatrix.h" + +@interface YUMIThroughoutChamberCombatConsequentRegard() + +@property (nonatomic, strong) UIImageView *backgroundIndicateRegard; +@property (nonatomic, strong) UIButton *concludeBtuton; +@property (nonatomic, strong) UIView *mainView; +@property (nonatomic, strong) UIImageView *deficitBackgroundIndicateRegard; +@property (nonatomic, strong) UIImageView *deficitVictoryFigureRegard; +@property (nonatomic, strong) NetIndicateRegard *deficitIntelligenceIndicateRegard; +@property (nonatomic, strong) UILabel *deficitChamberChampionSequencignation; +@property (nonatomic, strong) UILabel *deficitBWSttessSequencignation; +@property (nonatomic, strong) UIImageView *middleIndicateRegard; +@property (nonatomic, strong) UIImageView *disappointedBackgroundIndicateRegard; +@property (nonatomic, strong) UIImageView *disappointedVictoryFigureRegard; +@property (nonatomic, strong) NetIndicateRegard *disappointedIntelligenceIndicateRegard; +@property (nonatomic, strong) UILabel *disappointedChamberChampionSequencignation; +@property (nonatomic, strong) UILabel *disappointedBWSttessSequencignation; +@property (nonatomic, strong) UIImageView *efficacyBackgroundIndicateRegard; +@property (nonatomic, strong) NetIndicateRegard *efficacyIntelligenceportrait; +@property (nonatomic, strong) UIImageView *efficacyIntelligencePenetrate; +@property (nonatomic, strong) UILabel *efficacyMonicer; +@property (nonatomic, strong) UILabel *efficacyBWSttess; +@property (nonatomic, strong) UIImageView *fascinationBackgroundIndicateRegard; +@property (nonatomic, strong) NetIndicateRegard *fascinationIntelligenceportrait; +@property (nonatomic, strong) UIImageView *fascinationIntelligencePenetrate; +@property (nonatomic, strong) UILabel *fascinationMonicer; +@property (nonatomic, strong) UILabel *fascinationBWSttess; + +@end + +@implementation YUMIThroughoutChamberCombatConsequentRegard + +#pragma mark - life cycle + +- (instancetype)initWithFrame:(CGRect)frame { + if (self = [super initWithFrame:frame]) { + [self initRegard]; + [self initConstrtowardsions]; + } + return self; +} + +- (void)initRegard { + [self addSubview:self.backgroundIndicateRegard]; + [self addSubview:self.concludeBtuton]; + [self addSubview:self.mainView]; + + [self.mainView addSubview:self.deficitBackgroundIndicateRegard]; + [self.mainView addSubview:self.deficitVictoryFigureRegard]; + [self.mainView addSubview:self.deficitIntelligenceIndicateRegard]; + [self.mainView addSubview:self.deficitChamberChampionSequencignation]; + [self.mainView addSubview:self.deficitBWSttessSequencignation]; + + [self.mainView addSubview:self.disappointedBackgroundIndicateRegard]; + [self.mainView addSubview:self.disappointedVictoryFigureRegard]; + [self.mainView addSubview:self.disappointedIntelligenceIndicateRegard]; + [self.mainView addSubview:self.disappointedChamberChampionSequencignation]; + [self.mainView addSubview:self.disappointedBWSttessSequencignation]; + + [self.mainView addSubview:self.middleIndicateRegard]; + + [self.mainView addSubview:self.efficacyBackgroundIndicateRegard]; + [self.mainView addSubview:self.efficacyIntelligenceportrait]; + [self.mainView addSubview:self.efficacyIntelligencePenetrate]; + [self.mainView addSubview:self.efficacyMonicer]; + [self.mainView addSubview:self.efficacyBWSttess]; + + [self.mainView addSubview:self.fascinationBackgroundIndicateRegard]; + [self.mainView addSubview:self.fascinationIntelligenceportrait]; + [self.mainView addSubview:self.fascinationIntelligencePenetrate]; + [self.mainView addSubview:self.fascinationMonicer]; + [self.mainView addSubview:self.fascinationBWSttess]; +} + +- (void)initConstrtowardsions { + [self.backgroundIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(0); + }]; + [self.concludeBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.right.mas_equalTo(0); + make.width.height.mas_equalTo(22); + }]; + [self.mainView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(120); + make.left.mas_equalTo(15); + make.right.mas_equalTo(-15); + make.bottom.mas_equalTo(-23); + }]; + [self.deficitBackgroundIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(12); + make.left.mas_equalTo(6); + make.width.mas_equalTo(151); + make.height.mas_equalTo(135); + }]; + [self.deficitVictoryFigureRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(_deficitBackgroundIndicateRegard); + make.left.mas_equalTo(18); + make.width.mas_equalTo(49); + make.height.mas_equalTo(27); + }]; + [self.deficitIntelligenceIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(34); + make.left.mas_equalTo(47); + make.width.height.mas_equalTo(60); + }]; + [self.deficitChamberChampionSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.deficitIntelligenceIndicateRegard.mas_bottom).mas_offset(8); + make.centerX.mas_equalTo(self.deficitIntelligenceIndicateRegard); + make.height.mas_equalTo(12); + make.left.mas_equalTo(self.deficitBackgroundIndicateRegard.mas_left).mas_offset(20); + }]; + [self.deficitBWSttessSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.deficitIntelligenceIndicateRegard); + make.top.mas_equalTo(self.deficitChamberChampionSequencignation.mas_bottom).offset(8); + make.left.mas_equalTo(self.deficitBackgroundIndicateRegard.mas_left).mas_offset(20); + }]; + [self.middleIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(60); + make.centerX.mas_equalTo(self.mainView); + make.width.mas_equalTo(70); + make.height.mas_equalTo(49); + }]; + [self.disappointedBackgroundIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(18); + make.right.mas_equalTo(-6); + make.width.mas_equalTo(151); + make.height.mas_equalTo(135); + }]; + [self.disappointedVictoryFigureRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.disappointedBackgroundIndicateRegard); + make.right.mas_equalTo(-16); + make.width.mas_equalTo(49); + make.height.mas_equalTo(27); + }]; + [self.disappointedIntelligenceIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(41); + make.right.mas_equalTo(-47); + make.width.height.mas_equalTo(60); + }]; + [self.disappointedChamberChampionSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.disappointedIntelligenceIndicateRegard.mas_bottom).mas_offset(8); + make.centerX.mas_equalTo(self.disappointedIntelligenceIndicateRegard); + make.height.mas_equalTo(12); + make.left.mas_equalTo(self.disappointedBackgroundIndicateRegard.mas_left).mas_offset(16); + }]; + [self.disappointedBWSttessSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.disappointedIntelligenceIndicateRegard); + make.top.mas_equalTo(self.disappointedChamberChampionSequencignation.mas_bottom).offset(8); + make.left.mas_equalTo(self.disappointedBackgroundIndicateRegard.mas_left).mas_offset(16); + }]; + [self.efficacyBackgroundIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(0); + make.top.mas_equalTo(self.disappointedBackgroundIndicateRegard.mas_bottom).mas_offset(10); + make.height.mas_equalTo(64); + }]; + [self.efficacyIntelligenceportrait mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(70); + make.bottom.mas_equalTo(self.efficacyBackgroundIndicateRegard.mas_bottom).mas_offset(-6); + make.width.height.mas_equalTo(44); + }]; + [self.efficacyIntelligencePenetrate mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.efficacyIntelligenceportrait); + make.bottom.mas_equalTo(self.efficacyIntelligenceportrait); + make.width.mas_equalTo(44); + make.height.mas_equalTo(53); + }]; + [self.efficacyMonicer mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.efficacyIntelligencePenetrate.mas_right).mas_offset(7); + make.bottom.mas_equalTo(self.efficacyIntelligenceportrait.mas_centerY).mas_offset(-3); + make.height.mas_equalTo(14); + make.right.mas_equalTo(-20); + }]; + [self.efficacyBWSttess mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.efficacyMonicer); + make.top.mas_equalTo(self.efficacyMonicer.mas_bottom).mas_offset(6); + make.height.mas_equalTo(13); + make.right.mas_equalTo(-20); + }]; + + [self.fascinationBackgroundIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(0); + make.top.mas_equalTo(self.efficacyBackgroundIndicateRegard.mas_bottom).mas_offset(6); + make.height.mas_equalTo(64); + }]; + [self.fascinationIntelligenceportrait mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(70); + make.bottom.mas_equalTo(self.fascinationBackgroundIndicateRegard.mas_bottom).mas_offset(-6); + make.width.height.mas_equalTo(44); + }]; + [self.fascinationIntelligencePenetrate mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.fascinationIntelligenceportrait); + make.bottom.mas_equalTo(self.fascinationIntelligenceportrait); + make.width.mas_equalTo(44); + make.height.mas_equalTo(53); + }]; + [self.fascinationMonicer mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.fascinationIntelligencePenetrate.mas_right).mas_offset(7); + make.bottom.mas_equalTo(self.fascinationIntelligenceportrait.mas_centerY).mas_offset(-3); + make.height.mas_equalTo(14); + make.right.mas_equalTo(-20); + }]; + [self.fascinationBWSttess mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.fascinationMonicer); + make.top.mas_equalTo(self.fascinationMonicer.mas_bottom).mas_offset(6); + make.height.mas_equalTo(13); + make.right.mas_equalTo(-20); + }]; +} + + +- (void)setData:(ThroughoutChamberCombatFasciaboardMatrix *)data { + if (data.winUid == data.cUid) { + self.backgroundIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_across_pk_result_win_background"]; + self.efficacyBackgroundIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_across_pk_result_win_person_background"]; + self.fascinationBackgroundIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_across_pk_result_win_person_background"]; + [self.concludeBtuton setImage:[UIImage imageNamed:@"yumi_scope_across_pk_result_win_close"] forState:UIControlStateNormal]; + self.deficitVictoryFigureRegard.hidden = NO; + self.disappointedVictoryFigureRegard.hidden = YES; + } else if (data.winUid == data.aUid) { + self.backgroundIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_across_pk_result_fail_background"]; + self.efficacyBackgroundIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_across_pk_result_fail_person_background"]; + self.fascinationBackgroundIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_across_pk_result_fail_person_background"]; + [self.concludeBtuton setImage:[UIImage imageNamed:@"yumi_scope_across_pk_result_fail_close"] forState:UIControlStateNormal]; + self.deficitVictoryFigureRegard.hidden = YES; + self.disappointedVictoryFigureRegard.hidden = NO; + } else { + self.backgroundIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_across_pk_result_tie_background"]; + self.efficacyBackgroundIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_across_pk_result_tie_person_background"]; + self.fascinationBackgroundIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_across_pk_result_tie_person_background"]; + [self.concludeBtuton setImage:[UIImage imageNamed:@"yumi_scope_across_pk_result_tie_close"] forState:UIControlStateNormal]; + self.deficitVictoryFigureRegard.hidden = YES; + self.disappointedVictoryFigureRegard.hidden = YES; + } + self.deficitIntelligenceIndicateRegard.imageUrl = data.cAvatar; + self.disappointedIntelligenceIndicateRegard.imageUrl = data.aAvatar; + self.deficitChamberChampionSequencignation.text = data.cTitle; + self.disappointedChamberChampionSequencignation.text = data.aTitle; + self.deficitBWSttessSequencignation.text = [NSString stringWithFormat:@"%lld", data.cAmount]; + self.disappointedBWSttessSequencignation.text = [NSString stringWithFormat:@"%lld", data.aAmount]; + if (data.csRank.count > 0) { + ThroughoutChamberPkRateMatrix *contributeInfo = [data.csRank secureGroalTowardsIndictowardsrix1:0]; + self.efficacyMonicer.text = contributeInfo.nick ? contributeInfo.nick : @""; + self.efficacyBWSttess.text = [NSString stringWithFormat:@"神豪值:%@", contributeInfo.amount? contributeInfo.amount : @""]; + self.efficacyIntelligenceportrait.imageUrl = contributeInfo.avatar; + } + + if (data.crRank.count > 0) { + ThroughoutChamberPkRateMatrix *charmInfo = [data.crRank secureGroalTowardsIndictowardsrix1:0]; + self.fascinationMonicer.text = charmInfo.nick ? charmInfo.nick : @""; + self.fascinationBWSttess.text = [NSString stringWithFormat:@"魅力值:%@", charmInfo.amount? charmInfo.amount : @""]; + self.fascinationIntelligenceportrait.imageUrl = charmInfo.avatar; + } +} + +- (void)onConcludeBtutonTicktack:(UIButton *)btn { + [MKJPopup dismiss]; +} + +#pragma mark - getters and setters +- (UIImageView *)backgroundIndicateRegard { + if (!_backgroundIndicateRegard) { + _backgroundIndicateRegard = [[UIImageView alloc] init]; + _backgroundIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_across_pk_result_win_background"]; + } + return _backgroundIndicateRegard; +} + +- (UIButton *)concludeBtuton { + if (!_concludeBtuton) { + _concludeBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_concludeBtuton addTarget:self action:@selector(onConcludeBtutonTicktack:) forControlEvents:UIControlEventTouchUpInside]; + } + return _concludeBtuton; +} + +- (UIView *)mainView { + if (!_mainView) { + _mainView = [[UIView alloc] init]; + } + return _mainView; +} +- (UIImageView *)deficitBackgroundIndicateRegard { + if (!_deficitBackgroundIndicateRegard) { + _deficitBackgroundIndicateRegard = [[UIImageView alloc] init]; + _deficitBackgroundIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_across_pk_result_red_background"]; + } + return _deficitBackgroundIndicateRegard; +} +- (UIImageView *)deficitVictoryFigureRegard { + if (!_deficitVictoryFigureRegard) { + _deficitVictoryFigureRegard = [[UIImageView alloc] init]; + _deficitVictoryFigureRegard.image = [UIImage imageNamed:@"yumi_scope_across_pk_result_win_pic"]; + } + return _deficitVictoryFigureRegard; +} + +- (NetIndicateRegard *)deficitIntelligenceIndicateRegard { + if (!_deficitIntelligenceIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _deficitIntelligenceIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _deficitIntelligenceIndicateRegard.layer.cornerRadius = 30; + _deficitIntelligenceIndicateRegard.layer.masksToBounds = YES; + _deficitIntelligenceIndicateRegard.layer.borderWidth = 1; + _deficitIntelligenceIndicateRegard.layer.borderColor = [UIColor whiteColor].CGColor; + } + return _deficitIntelligenceIndicateRegard; +} + +- (UILabel *)deficitChamberChampionSequencignation { + if (!_deficitChamberChampionSequencignation) { + _deficitChamberChampionSequencignation = [[UILabel alloc] init]; + _deficitChamberChampionSequencignation.textColor = [UIColor whiteColor]; + _deficitChamberChampionSequencignation.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium]; + _deficitChamberChampionSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _deficitChamberChampionSequencignation; +} +- (UILabel *)deficitBWSttessSequencignation { + if (!_deficitBWSttessSequencignation) { + _deficitBWSttessSequencignation = [[UILabel alloc] init]; + _deficitBWSttessSequencignation.textColor = [UIColor whiteColor]; + _deficitBWSttessSequencignation.font = [UIFont systemFontOfSize:14 weight:UIFontWeightBold]; + _deficitBWSttessSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _deficitBWSttessSequencignation; +} + +- (UIImageView *)middleIndicateRegard { + if (!_middleIndicateRegard) { + _middleIndicateRegard = [[UIImageView alloc] init]; + _middleIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_across_pk_result_pk_pic"]; + } + return _middleIndicateRegard; +} + +- (UIImageView *)disappointedBackgroundIndicateRegard { + if (!_disappointedBackgroundIndicateRegard) { + _disappointedBackgroundIndicateRegard = [[UIImageView alloc] init]; + _disappointedBackgroundIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_across_pk_result_win_blue_background"]; + } + return _disappointedBackgroundIndicateRegard; +} +- (UIImageView *)disappointedVictoryFigureRegard { + if (!_disappointedVictoryFigureRegard) { + _disappointedVictoryFigureRegard = [[UIImageView alloc] init]; + _disappointedVictoryFigureRegard.image = [UIImage imageNamed:@"yumi_scope_across_pk_result_win_pic"]; + } + return _disappointedVictoryFigureRegard; +} + +- (NetIndicateRegard *)disappointedIntelligenceIndicateRegard { + if (!_disappointedIntelligenceIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _disappointedIntelligenceIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _disappointedIntelligenceIndicateRegard.layer.masksToBounds = YES; + _disappointedIntelligenceIndicateRegard.layer.cornerRadius = 30; + _disappointedIntelligenceIndicateRegard.layer.borderWidth = 1; + _disappointedIntelligenceIndicateRegard.layer.borderColor = [UIColor whiteColor].CGColor; + } + return _disappointedIntelligenceIndicateRegard; +} + +- (UILabel *)disappointedChamberChampionSequencignation { + if (!_disappointedChamberChampionSequencignation) { + _disappointedChamberChampionSequencignation = [[UILabel alloc] init]; + _disappointedChamberChampionSequencignation.textColor = [UIColor whiteColor]; + _disappointedChamberChampionSequencignation.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium]; + _disappointedChamberChampionSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _disappointedChamberChampionSequencignation; +} +- (UILabel *)disappointedBWSttessSequencignation { + if (!_disappointedBWSttessSequencignation) { + _disappointedBWSttessSequencignation = [[UILabel alloc] init]; + _disappointedBWSttessSequencignation.textColor = [UIColor whiteColor]; + _disappointedBWSttessSequencignation.font = [UIFont systemFontOfSize:14 weight:UIFontWeightBold]; + _disappointedBWSttessSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _disappointedBWSttessSequencignation; +} + +- (UIImageView *)efficacyBackgroundIndicateRegard { + if (!_efficacyBackgroundIndicateRegard) { + _efficacyBackgroundIndicateRegard = [[UIImageView alloc] init]; + } + return _efficacyBackgroundIndicateRegard; +} + +- (NetIndicateRegard *)efficacyIntelligenceportrait { + if (!_efficacyIntelligenceportrait) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _efficacyIntelligenceportrait = [[NetIndicateRegard alloc] initWithConfig:config]; + _efficacyIntelligenceportrait.layer.masksToBounds = YES; + _efficacyIntelligenceportrait.layer.cornerRadius = 22; + } + return _efficacyIntelligenceportrait; +} + +- (UIImageView *)efficacyIntelligencePenetrate { + if (!_efficacyIntelligencePenetrate) { + _efficacyIntelligencePenetrate = [[UIImageView alloc] init]; + _efficacyIntelligencePenetrate.image = [UIImage imageNamed:@"yumi_scope_across_pk_panel_contribute_head"]; + } + return _efficacyIntelligencePenetrate; +} +- (UILabel *)efficacyMonicer { + if (!_efficacyMonicer) { + _efficacyMonicer = [[UILabel alloc] init]; + _efficacyMonicer.textColor = [UIColor whiteColor]; + _efficacyMonicer.font = [UIFont systemFontOfSize:14 weight:UIFontWeightMedium]; + } + return _efficacyMonicer; +} + +- (UILabel *)efficacyBWSttess { + if (!_efficacyBWSttess) { + _efficacyBWSttess = [[UILabel alloc] init]; + _efficacyBWSttess.textColor = [UIColor whiteColor]; + _efficacyBWSttess.font = [UIFont systemFontOfSize:13]; + } + return _efficacyBWSttess; +} + +- (UIImageView *)fascinationBackgroundIndicateRegard { + if (!_fascinationBackgroundIndicateRegard) { + _fascinationBackgroundIndicateRegard = [[UIImageView alloc] init]; + } + return _fascinationBackgroundIndicateRegard; +} + +- (NetIndicateRegard *)fascinationIntelligenceportrait { + if (!_fascinationIntelligenceportrait) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _fascinationIntelligenceportrait = [[NetIndicateRegard alloc] initWithConfig:config]; + _fascinationIntelligenceportrait.layer.masksToBounds = YES; + _fascinationIntelligenceportrait.layer.cornerRadius = 22; + } + return _fascinationIntelligenceportrait; +} + +- (UIImageView *)fascinationIntelligencePenetrate { + if (!_fascinationIntelligencePenetrate) { + _fascinationIntelligencePenetrate = [[UIImageView alloc] init]; + _fascinationIntelligencePenetrate.image = [UIImage imageNamed:@"yumi_scope_across_pk_panel_charm_head"]; + } + return _fascinationIntelligencePenetrate; +} +- (UILabel *)fascinationMonicer { + if (!_fascinationMonicer) { + _fascinationMonicer = [[UILabel alloc] init]; + _fascinationMonicer.textColor = [UIColor whiteColor]; + _fascinationMonicer.font = [UIFont systemFontOfSize:14 weight:UIFontWeightMedium]; + } + return _fascinationMonicer; +} + +- (UILabel *)fascinationBWSttess { + if (!_fascinationBWSttess) { + _fascinationBWSttess = [[UILabel alloc] init]; + _fascinationBWSttess.textColor = [UIColor whiteColor]; + _fascinationBWSttess.font = [UIFont systemFontOfSize:13]; + } + return _fascinationBWSttess; +} +@end diff --git a/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/SubViews/YUMIThroughoutChamberCombatFasciaboardConsumerRegard.h b/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/SubViews/YUMIThroughoutChamberCombatFasciaboardConsumerRegard.h new file mode 100644 index 00000000..17d459c2 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/SubViews/YUMIThroughoutChamberCombatFasciaboardConsumerRegard.h @@ -0,0 +1,29 @@ +// +// YMAcrossRoomPKPanelUserView.h +// YUMI +// +// Created by YUMI on 2022/1/11. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class ThroughoutChamberPkRateMatrix; +typedef NS_ENUM(NSInteger, ThroughoutChamberCombatPanelConsumerGenre) { + + ThroughoutChamberCombatPanelConsumerGenre_Red_Contribute = 1, + + ThroughoutChamberCombatPanelConsumerGenre_Red_Charm, + + ThroughoutChamberCombatPanelConsumerGenre_Blue_Contribute, + + ThroughoutChamberCombatPanelConsumerGenre_Blue_Charm, +}; + +@interface YUMIThroughoutChamberCombatFasciaboardConsumerRegard : UIView +@property (nonatomic,assign) ThroughoutChamberCombatPanelConsumerGenre type; + +@property (nonatomic,strong, nullable) ThroughoutChamberPkRateMatrix * fasciadirectorateAbstract; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/SubViews/YUMIThroughoutChamberCombatFasciaboardConsumerRegard.m b/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/SubViews/YUMIThroughoutChamberCombatFasciaboardConsumerRegard.m new file mode 100644 index 00000000..f9f45d75 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/SubViews/YUMIThroughoutChamberCombatFasciaboardConsumerRegard.m @@ -0,0 +1,153 @@ +// +// YMAcrossRoomPKPanelUserView.m +// YUMI +// +// Created by YUMI on 2022/1/11. +// + +#import "YUMIThroughoutChamberCombatFasciaboardConsumerRegard.h" +#import +#import "NetIndicateRegard.h" +#import "DJDKMIMOMColor.h" +#import "UIImage+Utils.h" +#import "ThroughoutChamberCombatFasciaboardMatrix.h" + +@interface YUMIThroughoutChamberCombatFasciaboardConsumerRegard () +@property (nonatomic, strong) UIImageView *intelligencewearIndicateRegard; +@property (nonatomic, strong) NetIndicateRegard *intelligenceportraitIndicateRegard; +@property (nonatomic,strong) UIButton *tangerineBtuton; + +@end + +@implementation YUMIThroughoutChamberCombatFasciaboardConsumerRegard + +#pragma mark - Life Style +- (instancetype)initWithFrame:(CGRect)frame { + if (self = [super initWithFrame:frame]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.intelligencewearIndicateRegard]; + [self addSubview:self.intelligenceportraitIndicateRegard]; + [self addSubview:self.tangerineBtuton]; +} + +- (void)initChildLyRestrictions { + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(32); + make.height.mas_equalTo(38); + }]; + + [self.intelligencewearIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.centerY.mas_equalTo(self); + make.height.mas_equalTo(38); + }]; + + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self); + make.bottom.mas_equalTo(self.intelligencewearIndicateRegard); + make.height.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_width); + }]; + + [self.tangerineBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(32); + make.height.mas_equalTo(10); + make.bottom.centerX.mas_equalTo(self); + }]; +} + + +#pragma mark - getters and setters +- (void)setType:(ThroughoutChamberCombatPanelConsumerGenre)type { + _type = type; + NSString * headwearName; + NSString * avatarPlaceName; + UIColor * coinColorStart; + UIColor * coinColorEnd; + switch (type) { + case ThroughoutChamberCombatPanelConsumerGenre_Red_Contribute: + case ThroughoutChamberCombatPanelConsumerGenre_Blue_Contribute: + headwearName = @"room_across_pk_panel_contribute_head"; + coinColorStart = UIColorFromRGB(0xFF9813); + coinColorEnd = UIColorFromRGB(0xFFB22B); + avatarPlaceName = @"room_across_pk_panel_contribute_avatar"; + break; + case ThroughoutChamberCombatPanelConsumerGenre_Red_Charm: + case ThroughoutChamberCombatPanelConsumerGenre_Blue_Charm: + headwearName = @"room_across_pk_panel_charm_head"; + coinColorStart = UIColorFromRGB(0xFF5FC1); + coinColorEnd = UIColorFromRGB(0xFA81FF); + avatarPlaceName = @"room_across_pk_panel_charm_avatar"; + break; + + default: + break; + } + self.intelligencewearIndicateRegard.image = [UIImage imageNamed:headwearName]; + self.intelligenceportraitIndicateRegard.image = [UIImage imageNamed:avatarPlaceName]; + [self.tangerineBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[coinColorStart, coinColorEnd] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + if (self.tag == 1000) { + self.intelligencewearIndicateRegard.hidden = NO; + } else { + self.intelligencewearIndicateRegard.hidden = YES; + } + +} + +- (void)setFasciadirectorateAbstract:(ThroughoutChamberPkRateMatrix *)fasciadirectorateAbstract { + _fasciadirectorateAbstract = fasciadirectorateAbstract; + if (_fasciadirectorateAbstract) { + self.intelligenceportraitIndicateRegard.imageUrl = _fasciadirectorateAbstract.avatar; + NSString * amount = _fasciadirectorateAbstract.amount.length > 0 ? _fasciadirectorateAbstract.amount : @""; + [self.tangerineBtuton setTitle:amount forState:UIControlStateNormal]; + self.tangerineBtuton.hidden = !amount; + } else { + if (self.type == ThroughoutChamberCombatPanelConsumerGenre_Red_Contribute || self.type == ThroughoutChamberCombatPanelConsumerGenre_Blue_Contribute) { + self.intelligenceportraitIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_across_pk_panel_contribute_avatar"]; + } else { + self.intelligenceportraitIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_across_pk_panel_charm_avatar"]; + } + + [self.tangerineBtuton setTitle:@"0" forState:UIControlStateNormal]; + self.tangerineBtuton.hidden = YES; + } +} + + +- (UIImageView *)intelligencewearIndicateRegard { + if (!_intelligencewearIndicateRegard) { + _intelligencewearIndicateRegard = [[UIImageView alloc] init]; + _intelligencewearIndicateRegard.userInteractionEnabled = YES; + } + return _intelligencewearIndicateRegard; +} + +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _intelligenceportraitIndicateRegard.layer.cornerRadius = 32 / 2; + } + return _intelligenceportraitIndicateRegard; +} + +- (UIButton *)tangerineBtuton { + if (!_tangerineBtuton) { + _tangerineBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_tangerineBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + _tangerineBtuton.titleLabel.font = [UIFont systemFontOfSize:9 weight:UIFontWeightMedium]; + _tangerineBtuton.layer.masksToBounds = YES; + _tangerineBtuton.layer.cornerRadius = 5; + _tangerineBtuton.hidden = YES; + } + return _tangerineBtuton; +} +@end diff --git a/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/SubViews/YUMIThroughoutChamberCombatForceEndConsequentRegard.h b/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/SubViews/YUMIThroughoutChamberCombatForceEndConsequentRegard.h new file mode 100644 index 00000000..bef63338 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/SubViews/YUMIThroughoutChamberCombatForceEndConsequentRegard.h @@ -0,0 +1,16 @@ +// +// YMAcrossRoomPKForceEndResultView.h +// YUMI +// +// Created by YUMI on 2022/1/12. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class ThroughoutChamberCombatFasciaboardMatrix; +@interface YUMIThroughoutChamberCombatForceEndConsequentRegard : UIView +@property (nonatomic, strong) ThroughoutChamberCombatFasciaboardMatrix *data; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/SubViews/YUMIThroughoutChamberCombatForceEndConsequentRegard.m b/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/SubViews/YUMIThroughoutChamberCombatForceEndConsequentRegard.m new file mode 100644 index 00000000..ccdf9077 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/SubViews/YUMIThroughoutChamberCombatForceEndConsequentRegard.m @@ -0,0 +1,264 @@ +// +// YMAcrossRoomPKForceEndResultView.m +// YUMI +// +// Created by YUMI on 2022/1/12. +// + +#import "YUMIThroughoutChamberCombatForceEndConsequentRegard.h" +#import +#import "DJDKMIMOMColor.h" +#import "NetIndicateRegard.h" +#import "MKJPopup.h" +#import "ThroughoutChamberCombatFasciaboardMatrix.h" + +@interface YUMIThroughoutChamberCombatForceEndConsequentRegard() + + +@property (nonatomic, strong) UIImageView *backgroundIndicateRegard; +@property (nonatomic, strong) UIButton *concludeBtuton; +@property (nonatomic, strong) UILabel *titleLabel; +@property (nonatomic, strong) UIImageView *deficitBackgroundIndicateRegard; +@property (nonatomic, strong) NetIndicateRegard *deficitIntelligenceIndicateRegard; +@property (nonatomic, strong) UILabel *deficitChamberChampionSequencignation; +@property (nonatomic, strong) UILabel *deficitBWSttessSequencignation; +@property (nonatomic, strong) UIImageView *middleIndicateRegard; +@property (nonatomic, strong) UIImageView *disappointedBackgroundIndicateRegard; +@property (nonatomic, strong) UIImageView *disappointedVictoryFigureRegard; +@property (nonatomic, strong) NetIndicateRegard *disappointedIntelligenceIndicateRegard; +@property (nonatomic, strong) UILabel *disappointedChamberChampionSequencignation; +@property (nonatomic, strong) UILabel *disappointedBWSttessSequencignation; + +@end + +@implementation YUMIThroughoutChamberCombatForceEndConsequentRegard + +- (instancetype)initWithFrame:(CGRect)frame { + if (self = [super initWithFrame:frame]) { + [self initRegard]; + [self initConstrtowardsions]; + } + return self; +} + +- (void)initRegard { + [self addSubview:self.backgroundIndicateRegard]; + [self addSubview:self.concludeBtuton]; + [self addSubview:self.titleLabel]; + + [self addSubview:self.deficitBackgroundIndicateRegard]; + [self addSubview:self.deficitIntelligenceIndicateRegard]; + [self addSubview:self.deficitChamberChampionSequencignation]; + [self addSubview:self.deficitBWSttessSequencignation]; + + [self addSubview:self.disappointedBackgroundIndicateRegard]; + [self addSubview:self.disappointedIntelligenceIndicateRegard]; + [self addSubview:self.disappointedChamberChampionSequencignation]; + [self addSubview:self.disappointedBWSttessSequencignation]; + + [self addSubview:self.middleIndicateRegard]; + +} + +- (void)initConstrtowardsions { + [self.backgroundIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(0); + }]; + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self); + make.top.mas_equalTo(18); + make.height.mas_equalTo(18); + }]; + [self.concludeBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(-17); + make.width.height.mas_equalTo(22); + make.centerY.mas_equalTo(self.titleLabel); + }]; + [self.deficitBackgroundIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(55); + make.left.mas_equalTo(17); + make.width.mas_equalTo(133); + make.height.mas_equalTo(119); + }]; + [self.deficitIntelligenceIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(75); + make.left.mas_equalTo(54); + make.width.height.mas_equalTo(52); + }]; + [self.deficitChamberChampionSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.deficitIntelligenceIndicateRegard.mas_bottom).mas_offset(8); + make.centerX.mas_equalTo(self.deficitIntelligenceIndicateRegard); + make.height.mas_equalTo(12); + make.left.mas_equalTo(self.deficitBackgroundIndicateRegard.mas_left).mas_offset(20); + }]; + [self.deficitBWSttessSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.deficitIntelligenceIndicateRegard); + make.top.mas_equalTo(self.deficitChamberChampionSequencignation.mas_bottom).offset(6); + make.height.mas_equalTo(12); + make.left.mas_equalTo(self.deficitBackgroundIndicateRegard.mas_left).mas_offset(20); + }]; + [self.middleIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(87); + make.centerX.mas_equalTo(self); + make.width.mas_equalTo(62); + make.height.mas_equalTo(43); + }]; + [self.disappointedBackgroundIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(61); + make.right.mas_equalTo(-17); + make.width.mas_equalTo(133); + make.height.mas_equalTo(119); + }]; + [self.disappointedIntelligenceIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(81); + make.right.mas_equalTo(-54); + make.width.height.mas_equalTo(52); + }]; + [self.disappointedChamberChampionSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.disappointedIntelligenceIndicateRegard.mas_bottom).mas_offset(8); + make.centerX.mas_equalTo(self.disappointedIntelligenceIndicateRegard); + make.height.mas_equalTo(12); + make.left.mas_equalTo(self.disappointedBackgroundIndicateRegard.mas_left).mas_offset(16); + }]; + [self.disappointedBWSttessSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.disappointedIntelligenceIndicateRegard); + make.left.mas_equalTo(self.disappointedBackgroundIndicateRegard.mas_left).mas_offset(16); + make.top.mas_equalTo(self.disappointedChamberChampionSequencignation.mas_bottom).offset(6); + make.height.mas_equalTo(12); + }]; +} + +- (void)setData:(ThroughoutChamberCombatFasciaboardMatrix *)data { + if (data) { + self.deficitIntelligenceIndicateRegard.imageUrl = data.cAvatar; + self.disappointedIntelligenceIndicateRegard.imageUrl = data.aAvatar; + self.deficitChamberChampionSequencignation.text = data.cTitle; + self.disappointedChamberChampionSequencignation.text = data.aTitle; + self.deficitBWSttessSequencignation.text = [NSString stringWithFormat:@"%lld", data.cAmount]; + self.disappointedBWSttessSequencignation.text = [NSString stringWithFormat:@"%lld", data.aAmount]; + } +} + +- (void)onConcludeBtutonTicktack:(UIButton *)btn { + [MKJPopup dismiss]; +} + +#pragma mark - getters and setters +- (UIImageView *)backgroundIndicateRegard { + if (!_backgroundIndicateRegard) { + _backgroundIndicateRegard = [[UIImageView alloc] init]; + _backgroundIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_across_pk_result_forcednd_background"]; + } + return _backgroundIndicateRegard; +} + +- (UIButton *)concludeBtuton { + if (!_concludeBtuton) { + _concludeBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_concludeBtuton addTarget:self action:@selector(onConcludeBtutonTicktack:) forControlEvents:UIControlEventTouchUpInside]; + [_concludeBtuton setImage:[UIImage imageNamed:@"yumi_scope_across_pk_invite_result_close"] forState:UIControlStateNormal]; + } + return _concludeBtuton; +} + +- (UIImageView *)deficitBackgroundIndicateRegard { + if (!_deficitBackgroundIndicateRegard) { + _deficitBackgroundIndicateRegard = [[UIImageView alloc] init]; + _deficitBackgroundIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_across_pk_result_forceend_red_background"]; + } + return _deficitBackgroundIndicateRegard; +} + +- (NetIndicateRegard *)deficitIntelligenceIndicateRegard { + if (!_deficitIntelligenceIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _deficitIntelligenceIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _deficitIntelligenceIndicateRegard.layer.cornerRadius = 26; + _deficitIntelligenceIndicateRegard.layer.masksToBounds = YES; + _deficitIntelligenceIndicateRegard.layer.borderWidth = 1; + _deficitIntelligenceIndicateRegard.layer.borderColor = [UIColor whiteColor].CGColor; + } + return _deficitIntelligenceIndicateRegard; +} + +- (UILabel *)deficitChamberChampionSequencignation { + if (!_deficitChamberChampionSequencignation) { + _deficitChamberChampionSequencignation = [[UILabel alloc] init]; + _deficitChamberChampionSequencignation.textColor = [UIColor whiteColor]; + _deficitChamberChampionSequencignation.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium]; + _deficitChamberChampionSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _deficitChamberChampionSequencignation; +} +- (UILabel *)deficitBWSttessSequencignation { + if (!_deficitBWSttessSequencignation) { + _deficitBWSttessSequencignation = [[UILabel alloc] init]; + _deficitBWSttessSequencignation.textColor = [UIColor whiteColor]; + _deficitBWSttessSequencignation.font = [UIFont systemFontOfSize:14 weight:UIFontWeightBold]; + _deficitBWSttessSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _deficitBWSttessSequencignation; +} + +- (UIImageView *)middleIndicateRegard { + if (!_middleIndicateRegard) { + _middleIndicateRegard = [[UIImageView alloc] init]; + _middleIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_across_pk_result_forceend_pk_pic"]; + } + return _middleIndicateRegard; +} + +- (UIImageView *)disappointedBackgroundIndicateRegard { + if (!_disappointedBackgroundIndicateRegard) { + _disappointedBackgroundIndicateRegard = [[UIImageView alloc] init]; + _disappointedBackgroundIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_across_pk_result_forceend_blue_background"]; + } + return _disappointedBackgroundIndicateRegard; +} + +- (NetIndicateRegard *)disappointedIntelligenceIndicateRegard { + if (!_disappointedIntelligenceIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _disappointedIntelligenceIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _disappointedIntelligenceIndicateRegard.layer.cornerRadius = 26; + _disappointedIntelligenceIndicateRegard.layer.masksToBounds = YES; + _disappointedIntelligenceIndicateRegard.layer.borderWidth = 1; + _disappointedIntelligenceIndicateRegard.layer.borderColor = [UIColor whiteColor].CGColor; + } + return _disappointedIntelligenceIndicateRegard; +} + +- (UILabel *)disappointedChamberChampionSequencignation { + if (!_disappointedChamberChampionSequencignation) { + _disappointedChamberChampionSequencignation = [[UILabel alloc] init]; + _disappointedChamberChampionSequencignation.textColor = [UIColor whiteColor]; + _disappointedChamberChampionSequencignation.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium]; + _disappointedChamberChampionSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _disappointedChamberChampionSequencignation; +} +- (UILabel *)disappointedBWSttessSequencignation { + if (!_disappointedBWSttessSequencignation) { + _disappointedBWSttessSequencignation = [[UILabel alloc] init]; + _disappointedBWSttessSequencignation.textColor = [UIColor whiteColor]; + _disappointedBWSttessSequencignation.font = [UIFont systemFontOfSize:14 weight:UIFontWeightBold]; + _disappointedBWSttessSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _disappointedBWSttessSequencignation; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.textColor = [UIColor whiteColor]; + _titleLabel.font = [UIFont systemFontOfSize:18 weight:UIFontWeightBold]; + _titleLabel.text = YMLocalizedString(@"YUMI_Across_Room_PK_Force_End_Result_View_0"); + } + return _titleLabel; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/SubViews/YUMIThroughoutChamberCombatPreadominantRegard.h b/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/SubViews/YUMIThroughoutChamberCombatPreadominantRegard.h new file mode 100644 index 00000000..e2a3e392 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/SubViews/YUMIThroughoutChamberCombatPreadominantRegard.h @@ -0,0 +1,16 @@ +// +// YMAcrossRoomPKRuleView.h +// YUMI +// +// Created by YUMI on 2022/1/10. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIThroughoutChamberCombatPreadominantRegard : UIView + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/SubViews/YUMIThroughoutChamberCombatPreadominantRegard.m b/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/SubViews/YUMIThroughoutChamberCombatPreadominantRegard.m new file mode 100644 index 00000000..b87055de --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/SubViews/YUMIThroughoutChamberCombatPreadominantRegard.m @@ -0,0 +1,94 @@ +// +// YMAcrossRoomPKRuleView.m +// YUMI +// +// Created by YUMI on 2022/1/10. +// + +#import "YUMIThroughoutChamberCombatPreadominantRegard.h" +#import +#import "DJDKMIMOMColor.h" +#import "MKJPopup.h" + +@interface YUMIThroughoutChamberCombatPreadominantRegard () +@property (nonatomic, strong) UILabel *titleLabel; +@property (nonatomic, strong) UITextView *preadominantEssayRegard; +@property (nonatomic, strong) UIImageView *backgroundImageView; + +@end + +@implementation YUMIThroughoutChamberCombatPreadominantRegard + +- (instancetype)initWithFrame:(CGRect)frame { + if (self = [super initWithFrame:frame]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.backgroundImageView]; + [self addSubview:self.titleLabel]; + [self addSubview:self.preadominantEssayRegard]; +} + +- (void)initChildLyRestrictions { + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(300, 300)); + }]; + + [self.backgroundImageView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(0); + }]; + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(7); + make.centerX.mas_equalTo(self); + make.height.mas_equalTo(18); + }]; + [self.preadominantEssayRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.titleLabel.mas_bottom).mas_offset(23); + make.left.mas_equalTo(17); + make.right.mas_equalTo(-18); + make.bottom.mas_equalTo(-17); + }]; +} + +#pragma mark - Event Response +- (void)concludeBtutonTicktack:(UIButton *)button { + [MKJPopup dismiss]; +} + +#pragma mark - Getters And Setters +- (UIImageView *)backgroundImageView { + if (!_backgroundImageView) { + _backgroundImageView = [[UIImageView alloc] init]; + _backgroundImageView.image = [UIImage imageNamed:@"yumi_scope_across_pk_rule_background"]; + } + return _backgroundImageView; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.text = @"如何开启跨房PK"; + _titleLabel.textColor = [UIColor whiteColor]; + _titleLabel.font = [UIFont systemFontOfSize:18 weight:UIFontWeightBold]; + } + return _titleLabel; +} + +- (UITextView *)preadominantEssayRegard { + if (!_preadominantEssayRegard) { + _preadominantEssayRegard = [[UITextView alloc] init]; + _preadominantEssayRegard.textColor = UIColorFromRGB(0xffffff); + _preadominantEssayRegard.backgroundColor = [UIColor clearColor]; + _preadominantEssayRegard.font = [UIFont systemFontOfSize:14 weight:UIFontWeightMedium]; + _preadominantEssayRegard.scrollEnabled = NO; + _preadominantEssayRegard.editable = NO; + _preadominantEssayRegard.text = @"1)只有牌照房房主和超管才可以发起跨房pk,一次只能选择一个牌照房发起;\n2)只有房主和超管才可以接受或拒绝跨房pk请求,若10秒内不点击pk邀请弹窗,弹窗消失,视为自动拒绝;\n3)发起pk时需选择pk时间和pk对象,自定义时间下限为5,上限为180,只能填写整数;\n4)pk发起后,未到pk时间无法自行结束,若有特殊情况需提前结束可联系客服,但本场pk不算胜负。\n"; + } + return _preadominantEssayRegard; +} +@end diff --git a/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/YUMIThroughoutChamberCombatChosenChamberRegard.h b/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/YUMIThroughoutChamberCombatChosenChamberRegard.h new file mode 100644 index 00000000..edf3c325 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/YUMIThroughoutChamberCombatChosenChamberRegard.h @@ -0,0 +1,22 @@ +// +// YMAcrossRoomPKSelectRoomView.h +// YUMI +// +// Created by YUMI on 2022/1/10. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class YUMIThroughoutChamberCombatChosenChamberRegard, ThroughoutChamberCombatAbstractMatrix; +@protocol FBCAcrossChamberCombatChosenChamberRegardRepresendtation + +- (void)YUMIThroughoutChamberCombatChosenChamberRegard:(YUMIThroughoutChamberCombatChosenChamberRegard *)view didChoosePKRoom:(ThroughoutChamberCombatAbstractMatrix *)pkRoomInfo; + +@end +@interface YUMIThroughoutChamberCombatChosenChamberRegard : UIView +@property (nonatomic,weak) id delegate; +@property (nonatomic,copy) NSString *roomUid; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/YUMIThroughoutChamberCombatChosenChamberRegard.m b/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/YUMIThroughoutChamberCombatChosenChamberRegard.m new file mode 100644 index 00000000..c2d09c48 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/YUMIThroughoutChamberCombatChosenChamberRegard.m @@ -0,0 +1,354 @@ +// +// YMAcrossRoomPKSelectRoomView.m +// YUMI +// +// Created by YUMI on 2022/1/10. +// + +#import "YUMIThroughoutChamberCombatChosenChamberRegard.h" +#import +#import +#import "DJDKMIMOMColor.h" +#import "XNDJTBWGLoadingTool.h" +#import "UIImage+Utils.h" +#import "Api+AcrossRoomPK.h" +#import "YUMIMacroUitls.h" +#import "NSArray+Safe.h" +#import "ThroughoutChamberCombatAbstractMatrix.h" +#import "YUMIThroughoutChamberCombatDispossessTabulationRegardElement.h" +#import "YUMIThroughoutChamberCombatTabulationRegardElement.h" + +@interface YUMIThroughoutChamberCombatChosenChamberRegard () + +@property (nonatomic, strong) UIButton *backButton; +@property (nonatomic, strong) UITableView *tableView; +@property (nonatomic, strong) UIButton *doneBtuton; +@property (nonatomic,strong) UIView * introjectionEncourageRegard; +@property (nonatomic,strong) UIButton *huntforBtuton; +@property (nonatomic,strong) UITextField *searchTextField; +@property (nonatomic, strong) NSMutableArray *datasource; +@property (nonatomic, assign) NSInteger page; +@property (nonatomic,assign) BOOL hasNoFurthaerAtoloudspeaker; +@property (nonatomic, strong) ThroughoutChamberCombatAbstractMatrix *chosenChamberAbstract; + +@end + +@implementation YUMIThroughoutChamberCombatChosenChamberRegard + +- (instancetype)initWithFrame:(CGRect)frame { + if (self = [super initWithFrame:frame]) { + [self initSubViews]; + [self initChildLyRestrictions]; + [self initIntelligencerGrantedTerminalerRrfresh]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = UIColorFromRGB(0x2A2A39); + [self addSubview:self.backButton]; + [self addSubview:self.introjectionEncourageRegard]; + [self addSubview:self.tableView]; + [self addSubview:self.doneBtuton]; + + [self.introjectionEncourageRegard addSubview:self.huntforBtuton]; + [self.introjectionEncourageRegard addSubview:self.searchTextField]; + + UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(onDigitalDirectortowardseResign:)]; + [self addGestureRecognizer:tap]; +} + +- (void)initChildLyRestrictions { + [self.backButton mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(12); + make.width.mas_equalTo(22); + make.height.mas_equalTo(22); + make.top.mas_equalTo(27); + }]; + + + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.introjectionEncourageRegard.mas_bottom).mas_offset(5); + make.left.right.mas_equalTo(0); + make.bottom.mas_equalTo(self.mas_bottom); + }]; + [self.doneBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.bottom.mas_equalTo(-38); + make.width.mas_equalTo(300); + make.height.mas_equalTo(40); + make.centerX.mas_equalTo(self); + }]; + + [self.introjectionEncourageRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(30); + make.left.mas_equalTo(self.backButton.mas_right).offset(5); + make.right.mas_equalTo(self.mas_right).offset(-15); + make.centerY.mas_equalTo(self.backButton); + }]; + + [self.huntforBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(18, 18)); + make.centerY.mas_equalTo(self.introjectionEncourageRegard); + make.right.mas_equalTo(self.introjectionEncourageRegard).offset(-12); + }]; + + [self.searchTextField mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.introjectionEncourageRegard).offset(25); + make.top.bottom.mas_equalTo(self.introjectionEncourageRegard); + make.right.mas_equalTo(self.huntforBtuton.mas_left).offset(-5); + }]; +} + +- (void)initIntelligencerGrantedTerminalerRrfresh { + MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(intelligenceerRenovtowardseh)]; + header.stateLabel.font = [UIFont systemFontOfSize:10.0]; + header.lastUpdatedTimeLabel.font = [UIFont systemFontOfSize:10.0]; + header.stateLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + header.lastUpdatedTimeLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + self.tableView.mj_header = header; + + MJRefreshBackNormalFooter *footer = [MJRefreshBackNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(footerRenovtowardseh)]; + footer.stateLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + footer.stateLabel.font = [UIFont systemFontOfSize:10.0]; + self.tableView.mj_footer = footer; +} + +#pragma mark - 刷新的fangfa +- (void)intelligenceerRenovtowardseh { + self.page = 1; + [Api acquireThroughoutChamberCombatChamberSttowardsement:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + NSArray * array = [ThroughoutChamberCombatAbstractMatrix mtowardsrixsAboutGarment:data.data]; + [self acquireThroughoutChamberCombatSttowardsementAccomplishment:array state:0]; + } else { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:msg]; + } + } roomUid:self.roomUid pageNum:[NSString stringWithFormat:@"%ld", self.page] pageSize:@"20"]; +} + +- (void)footerRenovtowardseh { + if (self.hasNoFurthaerAtoloudspeaker) { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:YMLocalizedString(@"YUMI_Across_Room_PK_Select_Room_View_0")]; + return; + } + self.page++; + [Api acquireThroughoutChamberCombatChamberSttowardsement:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + NSArray * array = [ThroughoutChamberCombatAbstractMatrix mtowardsrixsAboutGarment:data.data]; + [self acquireThroughoutChamberCombatSttowardsementAccomplishment:array state:1]; + } else { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:msg]; + } + } roomUid:self.roomUid pageNum:[NSString stringWithFormat:@"%ld", self.page] pageSize:@"20"]; +} + +- (void)acquireThroughoutChamberCombatSttowardsementAccomplishment:(NSArray *)list state:(int)state { + if (state == 0) { + self.chosenChamberAbstract = nil; + self.doneBtuton.enabled = NO; + [self.datasource removeAllObjects]; + [self.tableView.mj_header endRefreshing]; + } else { + [self.tableView.mj_footer endRefreshing]; + } + if (list.count > 0) { + self.hasNoFurthaerAtoloudspeaker = NO; + [self.datasource addObjectsFromArray:list]; + } else { + self.hasNoFurthaerAtoloudspeaker = YES; + [self.tableView.mj_footer endRefreshingWithNoMoreData]; + } + [self.tableView reloadData]; +} + +- (void)onDigitalDirectortowardseResign:(UITapGestureRecognizer *)ges { + [self.searchTextField resignFirstResponder]; +} +#pragma mark - tableviewDelegate +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.datasource.count > 0 ? self.datasource.count : 1; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + if (self.datasource.count > 0) { + YUMIThroughoutChamberCombatTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIThroughoutChamberCombatTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIThroughoutChamberCombatTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIThroughoutChamberCombatTabulationRegardElement class])]; + } + cell.delegate = self; + ThroughoutChamberCombatAbstractMatrix * pkRoomInfo = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + if (pkRoomInfo.uid.integerValue == self.chosenChamberAbstract.uid.integerValue) { + pkRoomInfo.hadSelected = YES; + } else { + pkRoomInfo.hadSelected = NO; + } + cell.chamberCombatAbstract = pkRoomInfo; + return cell; + } + + YUMIThroughoutChamberCombatDispossessTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIThroughoutChamberCombatDispossessTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIThroughoutChamberCombatDispossessTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIThroughoutChamberCombatDispossessTabulationRegardElement class])]; + } + return cell; + +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + if (self.datasource.count > 0) { + return 75; + } + return (370 + kSafeAreaBottomHeight); +} + +#pragma mark - FBCAcrossChamberCombatTabulationViweElementRepresendtation +- (void)yUMIThroughoutChamberCombatTarbsultowardsionViweElement:(YUMIThroughoutChamberCombatTabulationRegardElement *)view didChooseRoom:(ThroughoutChamberCombatAbstractMatrix *)roomInfo{ + if (self.chosenChamberAbstract && roomInfo.uid == self.chosenChamberAbstract.uid) { + [self.tableView reloadData]; + self.chosenChamberAbstract = nil; + self.doneBtuton.enabled = NO; + } else { + self.chosenChamberAbstract = roomInfo; + [self.tableView reloadData]; + self.doneBtuton.enabled = YES; + } +} + +#pragma mark - Event Response +- (void)huntforBtutonPerformance:(UIButton *)sender { + if (self.searchTextField.text.length > 0) { + [Api huntforThroughoutChamberCombatChamberSttowardsement:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + NSArray * array = [ThroughoutChamberCombatAbstractMatrix mtowardsrixsAboutGarment:data.data]; + [self acquireThroughoutChamberCombatSttowardsementAccomplishment:array state:0]; + } else { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:msg]; + } + } erbanNo:self.searchTextField.text roomUid:@"" pageNum:@"1" pageSize:@"50"]; + } else { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:@"请输入要搜索的厅ID"]; + } +} + +- (void)encourageBtutonPerformance:(UIButton *)sender { + [self.searchTextField resignFirstResponder]; + CATransition *transition = [CATransition animation]; + transition.duration = 0.3f; + transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; + transition.type = kCATransitionPush; + transition.subtype = kCATransitionFromLeft; + [self.layer addAnimation:transition forKey:nil]; + [self removeFromSuperview]; +} + +- (void)doneBtutonPerformance:(UIButton *)sender { + [self.searchTextField resignFirstResponder]; + if (self.delegate && [self.delegate respondsToSelector:@selector(YUMIThroughoutChamberCombatChosenChamberRegard:didChoosePKRoom:)]) { + [self.delegate YUMIThroughoutChamberCombatChosenChamberRegard:self didChoosePKRoom:self.chosenChamberAbstract]; + } + CATransition *transition = [CATransition animation]; + transition.duration = 0.3f; + transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; + transition.type = kCATransitionPush; + transition.subtype = kCATransitionFromLeft; + [self.layer addAnimation:transition forKey:nil]; + [self removeFromSuperview]; +} + +#pragma mark - Getters And Setters +- (void)setRoomUid:(NSString *)roomUid { + _roomUid = roomUid; + [self.datasource removeAllObjects]; + [self.tableView reloadData]; + if (_roomUid.length > 0) { + [self intelligenceerRenovtowardseh]; + } +} +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.tableFooterView = [UIView new]; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.backgroundColor = [UIColor clearColor]; + if (@available(iOS 11.0, *)) { + _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + [_tableView registerClass:[YUMIThroughoutChamberCombatTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIThroughoutChamberCombatTabulationRegardElement class])]; + [_tableView registerClass:[YUMIThroughoutChamberCombatDispossessTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIThroughoutChamberCombatDispossessTabulationRegardElement class])]; + } + return _tableView; +} + + +- (UIView *)introjectionEncourageRegard { + if (!_introjectionEncourageRegard) { + _introjectionEncourageRegard = [[UIView alloc] init]; + _introjectionEncourageRegard.backgroundColor = UIColorFromRGB(0x4C4C6A); + _introjectionEncourageRegard.layer.masksToBounds = YES; + _introjectionEncourageRegard.layer.cornerRadius = 15; + } + return _introjectionEncourageRegard; +} + +- (UIButton *)huntforBtuton { + if (!_huntforBtuton) { + _huntforBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_huntforBtuton setImage:[UIImage imageNamed:@"yumi_main_search_input_search"] forState:UIControlStateNormal]; + [_huntforBtuton setImage:[UIImage imageNamed:@"yumi_main_search_input_search"] forState:UIControlStateSelected]; + [_huntforBtuton addTarget:self action:@selector(huntforBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _huntforBtuton; +} + +- (UITextField *)searchTextField { + if (!_searchTextField) { + _searchTextField = [[UITextField alloc] init]; + _searchTextField.layer.cornerRadius = 15; + _searchTextField.layer.masksToBounds = YES; + _searchTextField.tintColor = [UIColor whiteColor]; + _searchTextField.textColor = [UIColor whiteColor]; + _searchTextField.backgroundColor = [UIColor clearColor]; + _searchTextField.font = [UIFont systemFontOfSize:13]; + NSString *placeholder = [NSString stringWithFormat:@"请输入厅的ID"]; + _searchTextField.attributedPlaceholder = [[NSAttributedString alloc] initWithString:placeholder attributes:@{NSFontAttributeName : [UIFont systemFontOfSize:13], NSForegroundColorAttributeName : [UIColor colorWithWhite:1 alpha:0.4]}]; + } + return _searchTextField; +} + +- (UIButton *)doneBtuton { + if (!_doneBtuton) { + _doneBtuton = [[UIButton alloc] init]; + [_doneBtuton setBackgroundImage:[UIImage imageWithColor:UIColorFromRGB(0x4C4C6A)] forState:UIControlStateDisabled]; + [_doneBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateDisabled]; + [_doneBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[UIColorFromRGB(0xFF9813), UIColorFromRGB(0xFFB22B)] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + [_doneBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + [_doneBtuton setTitle:YMLocalizedString(@"YUMI_Across_Room_PK_Select_Room_View_3") forState:UIControlStateNormal]; + _doneBtuton.titleLabel.font = [UIFont systemFontOfSize:18 weight:UIFontWeightMedium]; + [_doneBtuton addTarget:self action:@selector(doneBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + _doneBtuton.enabled = NO; + _doneBtuton.layer.masksToBounds = YES; + _doneBtuton.layer.cornerRadius = 20; + } + return _doneBtuton; +} + +- (UIButton *)backButton { + if (!_backButton) { + _backButton = [[UIButton alloc] init]; + [_backButton setImage:[UIImage imageNamed:@"yumi_main_search_white_back"] forState:UIControlStateNormal]; + _backButton.imageView.contentMode = UIViewContentModeScaleAspectFit; + [_backButton addTarget:self action:@selector(encourageBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _backButton; +} + +- (NSMutableArray *)datasource { + if (!_datasource) { + _datasource = [NSMutableArray array]; + } + return _datasource; +} +@end diff --git a/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/YUMIThroughoutChamberCombatRegardGovernancer.h b/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/YUMIThroughoutChamberCombatRegardGovernancer.h new file mode 100644 index 00000000..2583d677 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/YUMIThroughoutChamberCombatRegardGovernancer.h @@ -0,0 +1,16 @@ +// +// YMAcrossRoomPKViewController.h +// YUMI +// +// Created by YUMI on 2022/1/10. +// + +#import "MvpRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIThroughoutChamberCombatRegardGovernancer : MvpRegardGovernancer +- (instancetype)initAboutChamberCid:(NSString *)roomUid; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/YUMIThroughoutChamberCombatRegardGovernancer.m b/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/YUMIThroughoutChamberCombatRegardGovernancer.m new file mode 100644 index 00000000..d2a7fe32 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AcrossRoomPK/View/YUMIThroughoutChamberCombatRegardGovernancer.m @@ -0,0 +1,641 @@ +// +// YMAcrossRoomPKViewController.m +// YUMI +// +// Created by YUMI on 2022/1/10. +// + +#import "YUMIThroughoutChamberCombatRegardGovernancer.h" +#import +#import +#import "DJDKMIMOMColor.h" +#import "NetIndicateRegard.h" +#import "YUMIMacroUitls.h" +#import "UIImage+Utils.h" +#import "MKJPopup.h" +#import "ThroughoutChamberCombatAbstractMatrix.h" +#import "YUMIThroughoutChamberCombatChosenChamberRegard.h" +#import "YUMIThroughoutChamberCombatPreadominantRegard.h" +#import "YUMIThroughoutChamberCombatExternalizer.h" +#import "FBCAcrossChamberCeremony.h" + +#define kContentHeight (404 + kSafeAreaBottomHeight) + +@interface YUMIThroughoutChamberCombatRegardGovernancer () +@property (nonatomic, strong) UIView *apexRegard; +@property (nonatomic, strong) UIView *contentView; +@property (nonatomic, strong) UILabel *titleLabel; +@property (nonatomic, strong) UIButton *facilitateBtuton; +@property (nonatomic,strong) UIStackView *consumerHierarchyRegard; +@property (nonatomic, strong) UILabel *chosenCombatSequencignation; +@property (nonatomic, strong) UIButton *chosenCombatBtuton; +@property (nonatomic,strong) UIStackView *intratemporalHierarchyRegard; +@property (nonatomic, strong) UILabel *chosenCombatIntratemporalSequencignation; +@property (nonatomic,strong) UIStackView *concludeIntratemporalHierarchyRegard; +@property (nonatomic, strong) UIButton *tenPennyBtuton; +@property (nonatomic, strong) UIButton *twentyPennyBtuton; +@property (nonatomic, strong) UIButton *thirtyPennyBtuton; +@property (nonatomic, strong) UITextField *customIntratemporalEssayUniverse; +@property (nonatomic,strong) UIStackView *disportHierarchyRegard; +@property (nonatomic, strong) UILabel *combateDisportMannerSequencignation; +@property (nonatomic, strong) UITextField *combateDisportMannerEssayUniverse; +@property (nonatomic, strong) UIButton *doneBtuton; +@property (nonatomic, strong) UIView *chosenChamberSatisfperformanceRegard; +@property (nonatomic, strong) NetIndicateRegard *intelligenceportraitIndicateRegard; +@property (nonatomic, strong) UILabel *chamberChampionSequencignation; +@property (nonatomic, strong) UILabel *idSequencignation; +@property (nonatomic, strong) UIButton *revocationBtuton; +@property (nonatomic, strong) ThroughoutChamberCombatAbstractMatrix *chosenChamberAbstract; +@property (nonatomic, assign) NSInteger combatContinuance; +@property (nonatomic, strong) YUMIThroughoutChamberCombatChosenChamberRegard *chosenRegard; +@property (nonatomic,strong) NSString *roomUid; +@end + +@implementation YUMIThroughoutChamberCombatRegardGovernancer + +- (instancetype)initAboutChamberCid:(NSString *)roomUid { + if (self = [super init]) { + self.roomUid = roomUid; + self.modalPresentationStyle = UIModalPresentationOverFullScreen; + } + return self; +} + +- (YUMIThroughoutChamberCombatExternalizer *)producePresimport { + return [[YUMIThroughoutChamberCombatExternalizer alloc] init];; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initSubViews]; + [self initChildLyRestrictions]; + self.combatContinuance = 10; +} + +- (void)viewWillAppear:(BOOL)animated { + [super viewWillAppear:animated]; + [IQKeyboardManager sharedManager].enable = YES; +} + +- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { + [self.view endEditing:YES]; +} + + +#pragma mark - Private Method +- (void)initSubViews { + self.view.backgroundColor = [UIColor clearColor]; + [self.view addSubview:self.apexRegard]; + [self.view addSubview:self.contentView]; + + [self.contentView addSubview:self.titleLabel]; + [self.contentView addSubview:self.facilitateBtuton]; + [self.contentView addSubview:self.consumerHierarchyRegard]; + [self.contentView addSubview:self.intratemporalHierarchyRegard]; + [self.contentView addSubview:self.disportHierarchyRegard]; + [self.contentView addSubview:self.customIntratemporalEssayUniverse]; + [self.contentView addSubview:self.doneBtuton]; + + [self.consumerHierarchyRegard addArrangedSubview:self.chosenCombatSequencignation]; + [self.consumerHierarchyRegard addArrangedSubview:self.chosenCombatBtuton]; + [self.consumerHierarchyRegard addArrangedSubview:self.chosenChamberSatisfperformanceRegard]; + + [self.intratemporalHierarchyRegard addArrangedSubview:self.chosenCombatIntratemporalSequencignation]; + [self.intratemporalHierarchyRegard addArrangedSubview:self.concludeIntratemporalHierarchyRegard]; + + [self.concludeIntratemporalHierarchyRegard addArrangedSubview:self.tenPennyBtuton]; + [self.concludeIntratemporalHierarchyRegard addArrangedSubview:self.twentyPennyBtuton]; + [self.concludeIntratemporalHierarchyRegard addArrangedSubview:self.thirtyPennyBtuton]; + + [self.disportHierarchyRegard addArrangedSubview:self.combateDisportMannerSequencignation]; + [self.disportHierarchyRegard addArrangedSubview:self.combateDisportMannerEssayUniverse]; + + [self.chosenChamberSatisfperformanceRegard addSubview:self.intelligenceportraitIndicateRegard]; + [self.chosenChamberSatisfperformanceRegard addSubview:self.chamberChampionSequencignation]; + [self.chosenChamberSatisfperformanceRegard addSubview:self.idSequencignation]; + [self.chosenChamberSatisfperformanceRegard addSubview:self.revocationBtuton]; +} + +- (void)initChildLyRestrictions { + + [self.apexRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self.view); + make.bottom.mas_equalTo(self.contentView.mas_top); + }]; + + [self.contentView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.mas_equalTo(self.view); + make.height.mas_equalTo(kContentHeight); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.contentView); + make.top.mas_equalTo(18); + }]; + + [self.facilitateBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(-12); + make.width.height.mas_equalTo(22); + make.centerY.mas_equalTo(self.titleLabel); + }]; + + [self.consumerHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(32); + make.left.mas_equalTo(self.contentView).offset(22); + make.top.mas_equalTo(self.titleLabel.mas_bottom).offset(20); + }]; + + [self.chosenCombatSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(90); + }]; + + [self.chosenCombatBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(22); + }]; + + [self.chosenChamberSatisfperformanceRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(KScreenWidth - 85 - 12 * 2 - 16); + }]; + + [self.intratemporalHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(32); + make.left.right.mas_equalTo(self.contentView).inset(22); + make.top.mas_equalTo(self.consumerHierarchyRegard.mas_bottom).offset(30); + }]; + + [self.chosenCombatIntratemporalSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(self.chosenCombatSequencignation); + }]; + + [self.customIntratemporalEssayUniverse mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(32); + make.width.mas_equalTo(170); + make.top.mas_equalTo(self.intratemporalHierarchyRegard.mas_bottom).offset(16); + make.left.mas_equalTo(self.tenPennyBtuton); + }]; + + [self.disportHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.height.mas_equalTo(self.intratemporalHierarchyRegard); + make.top.mas_equalTo(self.customIntratemporalEssayUniverse.mas_bottom).offset(30); + }]; + + [self.combateDisportMannerSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(self.chosenCombatSequencignation); + }]; + + [self.doneBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(40); + make.left.right.mas_equalTo(self.contentView).inset(40); + make.bottom.mas_equalTo(self.contentView.mas_bottom).offset(-34 - kSafeAreaBottomHeight); + }]; + + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.chosenChamberSatisfperformanceRegard); + make.left.mas_equalTo(self.chosenChamberSatisfperformanceRegard); + make.height.width.mas_equalTo(60); + }]; + [self.chamberChampionSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.bottom.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_centerY).offset(-3); + make.left.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_right).mas_offset(6); + make.right.mas_lessThanOrEqualTo(self.revocationBtuton.mas_left); + }]; + [self.idSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_centerY).mas_offset(3); + make.left.right.mas_equalTo(self.chamberChampionSequencignation); + }]; + + [self.revocationBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.intelligenceportraitIndicateRegard); + make.right.mas_equalTo(self.chosenChamberSatisfperformanceRegard).offset(-12); + make.height.width.mas_equalTo(22); + }]; +} + +- (void)refurbishDoneBtutonDeclare { + if (self.chosenChamberAbstract && self.combatContinuance >= 5 && self.combatContinuance <= 180) { + self.doneBtuton.enabled = YES; + } else { + self.doneBtuton.enabled = NO; + } +} +#pragma mark - FBCAcrossChamberCeremony +- (void)instituteThroughoutChamberCombatAccomplishment { + [self EvidenceAccomplishmentToast:YMLocalizedString(@"YUMI_Across_Room_PK_View_Controller_0")]; + [self dismissViewControllerAnimated:YES completion:nil]; +} + +- (void)instituteThroughoutChamberCombatFlunk:(NSString *)message { + if (message.length >0) { + MKJPrecautiousDisposition * config = [[MKJPrecautiousDisposition alloc] init]; + config.performanceStyle = TTAlertActionConfirmStyle; + config.revocationBtutonDisposition.title = YMLocalizedString(@"YUMI_Across_Room_PK_View_Controller_1"); + config.message = message; + [MKJPopup precautiousAboutDisposition:config acknowledgementHandler:^{ + + } cancelHandler:^{ + + }]; + } +} + +#pragma mark - TTRoomPKSelectViewControllerDelegate +- (void)YUMIThroughoutChamberCombatChosenChamberRegard:(YUMIThroughoutChamberCombatChosenChamberRegard *)view didChoosePKRoom:(ThroughoutChamberCombatAbstractMatrix *)pkRoomInfo{ + if (pkRoomInfo) { + [self.consumerHierarchyRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(60); + }]; + self.chosenChamberSatisfperformanceRegard.hidden = NO; + self.chosenCombatBtuton.hidden= YES; + self.intelligenceportraitIndicateRegard.imageUrl = pkRoomInfo.avatar; + self.chamberChampionSequencignation.text = pkRoomInfo.title; + self.idSequencignation.text = [NSString stringWithFormat:@"ID:%@", pkRoomInfo.erbanNo]; + self.chosenChamberAbstract = pkRoomInfo; + [self refurbishDoneBtutonDeclare]; + } +} +#pragma mark - UITextFieldDelegate +- (void)essayUniverseDidDiversifictowardsiond:(UITextField *)essayUniverse { + if (essayUniverse == self.customIntratemporalEssayUniverse) { + self.tenPennyBtuton.selected = YES; + self.twentyPennyBtuton.selected = YES; + self.thirtyPennyBtuton.selected = YES; + NSString *countStr = [self.customIntratemporalEssayUniverse.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]; + NSInteger count = [countStr integerValue]; + if (count > 180) { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_Across_Room_PK_View_Controller_2")]; + } else if(count < 5) { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_Across_Room_PK_View_Controller_3")]; + } + self.combatContinuance = essayUniverse.text.integerValue; + [self refurbishDoneBtutonDeclare]; + } else if(essayUniverse == self.combateDisportMannerEssayUniverse) { + if (self.combateDisportMannerEssayUniverse.text.length > 10) { + self.combateDisportMannerEssayUniverse.text = [self.combateDisportMannerEssayUniverse.text substringToIndex:10]; + } + } +} + +- (BOOL)essayUniverse:(UITextField *)essayUniverse shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { + if (essayUniverse == self.customIntratemporalEssayUniverse) { + NSString *regex =@"[0-9]*"; + NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex]; + if ([pred evaluateWithObject:string]) { + return YES; + } + return NO; + } + return YES; +} + +#pragma mark - Event Response +- (void)helpBtutonPerformance:(UIButton *)sender { + [self.customIntratemporalEssayUniverse resignFirstResponder]; + [self.combateDisportMannerEssayUniverse resignFirstResponder]; + YUMIThroughoutChamberCombatPreadominantRegard *view = [[YUMIThroughoutChamberCombatPreadominantRegard alloc] init]; + [MKJPopup popupRegard:view style:MKJPopupStyleAlert]; +} + +- (void)chosenCombatBtutonPerformance:(UIButton *)sender { + [self.customIntratemporalEssayUniverse resignFirstResponder]; + [self.combateDisportMannerEssayUniverse resignFirstResponder]; + self.chosenRegard.roomUid = self.roomUid; + CATransition *transition = [CATransition animation]; + transition.duration = 0.3f; + transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; + transition.type = kCATransitionPush; + transition.subtype = kCATransitionFromRight; + [self.chosenRegard.layer addAnimation:transition forKey:nil]; + [self.contentView addSubview:self.chosenRegard]; +} + +- (void)concludeIntrtowardsemporalBtutonPerformance:(UIButton *)sender { + [self.customIntratemporalEssayUniverse resignFirstResponder]; + [self.combateDisportMannerEssayUniverse resignFirstResponder]; + self.tenPennyBtuton.selected = YES; + self.twentyPennyBtuton.selected = YES; + self.thirtyPennyBtuton.selected = YES; + sender.selected = NO; + self.combatContinuance = sender.tag; + self.customIntratemporalEssayUniverse.text = nil; +} + +- (void)doneBtutonPerformance:(UIButton *)sender { + [self.customIntratemporalEssayUniverse resignFirstResponder]; + [self.combateDisportMannerEssayUniverse resignFirstResponder]; + NSString * pkDes = self.combateDisportMannerEssayUniverse.text.length > 0 ? self.combateDisportMannerEssayUniverse.text : @""; + [self.presimport instituteThroughoutChamberCombat:self.roomUid duration:self.combatContinuance acceptUid:self.chosenChamberAbstract.uid playDesc:pkDes]; +} + +- (void)revoctowardsionBtutonPerformance:(UIButton *)sender { + self.chosenChamberSatisfperformanceRegard.hidden = YES; + self.chosenCombatBtuton.hidden = NO; + self.chosenChamberAbstract = nil; + [self refurbishDoneBtutonDeclare]; + self.intelligenceportraitIndicateRegard.image = nil; + self.chamberChampionSequencignation.text = nil; + self.idSequencignation.text = nil; + [self.consumerHierarchyRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(32); + }]; +} + +- (void)onDigitalDirectortowardseResign:(UITapGestureRecognizer *)ges { + [self.customIntratemporalEssayUniverse resignFirstResponder]; + [self.combateDisportMannerEssayUniverse resignFirstResponder]; + if (self.chosenRegard.superview) { + CATransition *transition = [CATransition animation]; + transition.duration = 0.3f; + transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; + transition.type = kCATransitionPush; + transition.subtype = kCATransitionFromLeft; + [self.chosenRegard.layer addAnimation:transition forKey:nil]; + [self.chosenRegard removeFromSuperview]; + } else { + [self dismissViewControllerAnimated:YES completion:nil]; + } +} + +#pragma mark - Getters And Setters +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.textColor = UIColor.whiteColor; + _titleLabel.font = [UIFont boldSystemFontOfSize:18]; + _titleLabel.text = @"跨房PK"; + } + return _titleLabel; +} +- (UIButton *)facilitateBtuton { + if (!_facilitateBtuton) { + _facilitateBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_facilitateBtuton setImage:[UIImage imageNamed:@"yumi_scope_across_pk_help"] forState:UIControlStateNormal]; + [_facilitateBtuton addTarget:self action:@selector(helpBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _facilitateBtuton; +} + +- (UIStackView *)consumerHierarchyRegard { + if (!_consumerHierarchyRegard) { + _consumerHierarchyRegard = [[UIStackView alloc] init]; + _consumerHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _consumerHierarchyRegard.distribution = UIStackViewDistributionFill; + _consumerHierarchyRegard.alignment = UIStackViewAlignmentFill; + _consumerHierarchyRegard.spacing = 16; + } + return _consumerHierarchyRegard; +} +- (UILabel *)chosenCombatSequencignation { + if (!_chosenCombatSequencignation) { + _chosenCombatSequencignation = [[UILabel alloc] init]; + _chosenCombatSequencignation.textColor = [UIColor whiteColor]; + _chosenCombatSequencignation.font = [UIFont systemFontOfSize:16 weight:UIFontWeightMedium]; + _chosenCombatSequencignation.text = YMLocalizedString(@"YUMI_Across_Room_PK_View_Controller_5"); + [_chosenCombatSequencignation setContentCompressionResistancePriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal]; + } + return _chosenCombatSequencignation; +} +- (UIButton *)chosenCombatBtuton { + if (!_chosenCombatBtuton) { + _chosenCombatBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_chosenCombatBtuton setImage:[UIImage imageNamed:@"yumi_scope_across_pk_add_room"] forState:UIControlStateNormal]; + [_chosenCombatBtuton addTarget:self action:@selector(chosenCombatBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _chosenCombatBtuton; +} + +- (UIStackView *)intratemporalHierarchyRegard { + if (!_intratemporalHierarchyRegard) { + _intratemporalHierarchyRegard = [[UIStackView alloc] init]; + _intratemporalHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _intratemporalHierarchyRegard.distribution = UIStackViewDistributionFill; + _intratemporalHierarchyRegard.alignment = UIStackViewAlignmentFill; + _intratemporalHierarchyRegard.spacing = 16; + } + return _intratemporalHierarchyRegard; +} +- (UILabel *)chosenCombatIntratemporalSequencignation { + if (!_chosenCombatIntratemporalSequencignation) { + _chosenCombatIntratemporalSequencignation = [[UILabel alloc] init]; + _chosenCombatIntratemporalSequencignation.textColor =[UIColor whiteColor]; + _chosenCombatIntratemporalSequencignation.font = [UIFont systemFontOfSize:16 weight:UIFontWeightMedium]; + _chosenCombatIntratemporalSequencignation.text = YMLocalizedString(@"YUMI_Across_Room_PK_View_Controller_6"); + } + return _chosenCombatIntratemporalSequencignation; +} + +- (UIStackView *)concludeIntratemporalHierarchyRegard { + if (!_concludeIntratemporalHierarchyRegard) { + _concludeIntratemporalHierarchyRegard = [[UIStackView alloc] init]; + _concludeIntratemporalHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _concludeIntratemporalHierarchyRegard.distribution = UIStackViewDistributionFillEqually; + _concludeIntratemporalHierarchyRegard.alignment = UIStackViewAlignmentFill; + _concludeIntratemporalHierarchyRegard.spacing = 5; + } + return _concludeIntratemporalHierarchyRegard; +} + +- (UIButton *)tenPennyBtuton { + if (!_tenPennyBtuton) { + _tenPennyBtuton = [[UIButton alloc] init]; + [_tenPennyBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[UIColorFromRGB(0xFF9813), UIColorFromRGB(0xFFB22B)] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + [_tenPennyBtuton setBackgroundImage:[UIImage imageWithColor:UIColorFromRGB(0x4C4C6A)] forState:UIControlStateSelected]; + [_tenPennyBtuton setTitle:YMLocalizedString(@"YUMI_Across_Room_PK_View_Controller_7") forState:UIControlStateNormal]; + _tenPennyBtuton.titleLabel.font = [UIFont systemFontOfSize:15 weight:UIFontWeightMedium]; + [_tenPennyBtuton setTitleColor:[DJDKMIMOMColor acknowledgementBtutonEssayPrettify] forState:UIControlStateNormal]; + [_tenPennyBtuton setTitleColor:[DJDKMIMOMColor prohibitionBtutonEssayPrettify] forState:UIControlStateSelected]; + _tenPennyBtuton.tag = 10; + [_tenPennyBtuton addTarget:self action:@selector(concludeIntrtowardsemporalBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + _tenPennyBtuton.selected = NO; + _tenPennyBtuton.layer.masksToBounds = YES; + _tenPennyBtuton.layer.cornerRadius = 32 / 2; + } + return _tenPennyBtuton; +} + +- (UIButton *)twentyPennyBtuton { + if (!_twentyPennyBtuton) { + _twentyPennyBtuton = [[UIButton alloc] init]; + [_twentyPennyBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[UIColorFromRGB(0xFF9813), UIColorFromRGB(0xFFB22B)] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + [_twentyPennyBtuton setBackgroundImage:[UIImage imageWithColor:UIColorFromRGB(0x4C4C6A)] forState:UIControlStateSelected]; + [_twentyPennyBtuton setTitle:YMLocalizedString(@"YUMI_Across_Room_PK_View_Controller_8") forState:UIControlStateNormal]; + _twentyPennyBtuton.titleLabel.font = [UIFont systemFontOfSize:15 weight:UIFontWeightMedium]; + [_twentyPennyBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + [_twentyPennyBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateSelected]; + _twentyPennyBtuton.tag = 20; + [_twentyPennyBtuton addTarget:self action:@selector(concludeIntrtowardsemporalBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + _twentyPennyBtuton.selected = YES; + _twentyPennyBtuton.layer.masksToBounds = YES; + _twentyPennyBtuton.layer.cornerRadius = 32 / 2; + } + return _twentyPennyBtuton; +} + +- (UIButton *)thirtyPennyBtuton { + if (!_thirtyPennyBtuton) { + _thirtyPennyBtuton = [[UIButton alloc] init]; + [_thirtyPennyBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[UIColorFromRGB(0xFF9813), UIColorFromRGB(0xFFB22B)] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + [_thirtyPennyBtuton setBackgroundImage:[UIImage imageWithColor:UIColorFromRGB(0x4C4C6A)] forState:UIControlStateSelected]; + [_thirtyPennyBtuton setTitle:YMLocalizedString(@"YUMI_Across_Room_PK_View_Controller_9") forState:UIControlStateNormal]; + _thirtyPennyBtuton.titleLabel.font = [UIFont systemFontOfSize:15 weight:UIFontWeightMedium]; + [_thirtyPennyBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + [_thirtyPennyBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateSelected]; + _thirtyPennyBtuton.tag = 30; + _thirtyPennyBtuton.layer.masksToBounds = YES; + _thirtyPennyBtuton.layer.cornerRadius = 32 / 2; + [_thirtyPennyBtuton addTarget:self action:@selector(concludeIntrtowardsemporalBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + _thirtyPennyBtuton.selected = YES; + } + return _thirtyPennyBtuton; +} +- (UITextField *)customIntratemporalEssayUniverse { + if (!_customIntratemporalEssayUniverse) { + _customIntratemporalEssayUniverse = [[UITextField alloc] init]; + _customIntratemporalEssayUniverse.layer.cornerRadius = 15; + _customIntratemporalEssayUniverse.layer.masksToBounds = YES; + _customIntratemporalEssayUniverse.backgroundColor = UIColorFromRGB(0x4C4C6A); + _customIntratemporalEssayUniverse.textColor = [UIColor whiteColor]; + _customIntratemporalEssayUniverse.leftView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 19, 0)]; + _customIntratemporalEssayUniverse.leftViewMode = UITextFieldViewModeAlways; + _customIntratemporalEssayUniverse.delegate = self; + _customIntratemporalEssayUniverse.keyboardType = UIKeyboardTypeNumberPad; + _customIntratemporalEssayUniverse.tintColor = [UIColor whiteColor]; + _customIntratemporalEssayUniverse.attributedPlaceholder = [[NSAttributedString alloc] initWithString:YMLocalizedString(@"YUMI_Across_Room_PK_View_Controller_10") attributes:@{NSFontAttributeName : [UIFont systemFontOfSize:15], NSForegroundColorAttributeName: UIColorFromRGB(0xC6C6E9)}]; + [_customIntratemporalEssayUniverse addTarget:self action:@selector(essayUniverseDidDiversifictowardsiond:) forControlEvents:UIControlEventEditingChanged]; + + } + return _customIntratemporalEssayUniverse; +} +- (UIStackView *)disportHierarchyRegard { + if (!_disportHierarchyRegard) { + _disportHierarchyRegard = [[UIStackView alloc] init]; + _disportHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _disportHierarchyRegard.distribution = UIStackViewDistributionFill; + _disportHierarchyRegard.alignment = UIStackViewAlignmentFill; + _disportHierarchyRegard.spacing = 16; + } + return _disportHierarchyRegard; +} + +- (UILabel *)combateDisportMannerSequencignation { + if (!_combateDisportMannerSequencignation) { + _combateDisportMannerSequencignation = [[UILabel alloc] init]; + _combateDisportMannerSequencignation.textColor = [UIColor whiteColor]; + _combateDisportMannerSequencignation.textAlignment = NSTextAlignmentRight; + _combateDisportMannerSequencignation.font = [UIFont systemFontOfSize:16 weight:UIFontWeightMedium]; + _combateDisportMannerSequencignation.text = YMLocalizedString(@"YUMI_Across_Room_PK_View_Controller_11"); + } + return _combateDisportMannerSequencignation; +} + +- (UITextField *)combateDisportMannerEssayUniverse { + if (!_combateDisportMannerEssayUniverse) { + _combateDisportMannerEssayUniverse = [[UITextField alloc] init]; + _combateDisportMannerEssayUniverse.layer.cornerRadius = 15; + _combateDisportMannerEssayUniverse.layer.masksToBounds = YES; + _combateDisportMannerEssayUniverse.backgroundColor = UIColorFromRGB(0x4C4C6A); + _combateDisportMannerEssayUniverse.textColor = [UIColor whiteColor]; + _combateDisportMannerEssayUniverse.leftView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 19, 0)]; + _combateDisportMannerEssayUniverse.leftViewMode = UITextFieldViewModeAlways; + _combateDisportMannerEssayUniverse.delegate = self; + _combateDisportMannerEssayUniverse.attributedPlaceholder = [[NSAttributedString alloc] initWithString:YMLocalizedString(@"YUMI_Across_Room_PK_View_Controller_12") attributes:@{NSFontAttributeName : [UIFont systemFontOfSize:15], NSForegroundColorAttributeName: UIColorFromRGB(0xC6C6E9)}]; + [_combateDisportMannerEssayUniverse addTarget:self action:@selector(essayUniverseDidDiversifictowardsiond:) forControlEvents:UIControlEventEditingChanged]; + } + return _combateDisportMannerEssayUniverse; +} + +- (UIButton *)doneBtuton { + if (!_doneBtuton) { + _doneBtuton = [[UIButton alloc] init]; + [_doneBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[UIColorFromRGB(0xFF9813), UIColorFromRGB(0xFFB22B)] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + [_doneBtuton setBackgroundImage:[UIImage imageWithColor:UIColorFromRGB(0x4C4C6A)] forState:UIControlStateDisabled]; + [_doneBtuton setTitle:YMLocalizedString(@"YUMI_Across_Room_PK_View_Controller_13") forState:UIControlStateNormal]; + _doneBtuton.layer.masksToBounds = YES; + _doneBtuton.layer.cornerRadius = 20; + _doneBtuton.titleLabel.font = [UIFont systemFontOfSize:18 weight:UIFontWeightMedium]; + [_doneBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + [_doneBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateDisabled]; + [_doneBtuton addTarget:self action:@selector(doneBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + _doneBtuton.enabled = NO; + } + return _doneBtuton; +} + +- (UIView *)chosenChamberSatisfperformanceRegard { + if (!_chosenChamberSatisfperformanceRegard) { + _chosenChamberSatisfperformanceRegard = [[UIView alloc] init]; + _chosenChamberSatisfperformanceRegard.hidden = YES; + } + return _chosenChamberSatisfperformanceRegard; +} + +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _intelligenceportraitIndicateRegard.layer.cornerRadius = 60 / 2; + _intelligenceportraitIndicateRegard.layer.borderColor = [DJDKMIMOMColor aplictowardsionMainPrettify].CGColor; + } + return _intelligenceportraitIndicateRegard; +} + +- (UILabel *)chamberChampionSequencignation { + if (!_chamberChampionSequencignation) { + _chamberChampionSequencignation = [[UILabel alloc] init]; + _chamberChampionSequencignation.textColor = [UIColor whiteColor]; + _chamberChampionSequencignation.font = [UIFont systemFontOfSize:14 weight:UIFontWeightMedium]; + } + return _chamberChampionSequencignation; +} + +- (UILabel *)idSequencignation { + if (!_idSequencignation) { + _idSequencignation = [[UILabel alloc] init]; + _idSequencignation.textColor = [UIColor whiteColor]; + _idSequencignation.font = [UIFont systemFontOfSize:14 weight:UIFontWeightMedium]; + } + return _idSequencignation; +} + +- (UIButton *)revocationBtuton { + if (!_revocationBtuton) { + _revocationBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_revocationBtuton setImage:[UIImage imageNamed:@"yumi_scope_across_delete_pk_room"] forState:UIControlStateNormal]; + [_revocationBtuton addTarget:self action:@selector(revoctowardsionBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _revocationBtuton; +} + +- (UIView *)contentView { + if (!_contentView) { + _contentView = [[UIView alloc] init]; + _contentView.backgroundColor = UIColorFromRGB(0x2A2A39); + CAShapeLayer * layer = [CAShapeLayer layer]; + layer.path = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, KScreenWidth,kContentHeight) byRoundingCorners:UIRectCornerTopLeft | UIRectCornerTopRight cornerRadii:CGSizeMake(12, 12)].CGPath; + _contentView.layer.mask = layer; + } + return _contentView; +} + +- (UIView *)apexRegard { + if (!_apexRegard) { + _apexRegard = [[UIView alloc] init]; + _apexRegard.backgroundColor = UIColor.blackColor; + _apexRegard.alpha = 0.3; + UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(onDigitalDirectortowardseResign:)]; + [_apexRegard addGestureRecognizer:tap]; + } + return _apexRegard; +} + +- (YUMIThroughoutChamberCombatChosenChamberRegard *)chosenRegard { + if (!_chosenRegard) { + _chosenRegard = [[YUMIThroughoutChamberCombatChosenChamberRegard alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth, kContentHeight)]; + _chosenRegard.delegate = self; + } + return _chosenRegard; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/ActivityContainerView/YUMIChamberImportpriseAccommodatedRegard.h b/YuMi/Modules/YMRoom/View/ActivityContainerView/YUMIChamberImportpriseAccommodatedRegard.h new file mode 100644 index 00000000..0e6d6a38 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/ActivityContainerView/YUMIChamberImportpriseAccommodatedRegard.h @@ -0,0 +1,17 @@ +// +// YMRoomActivityView.h +// YUMI +// +// Created by YUMI on 2021/10/12. +// + +#import +#import "ChamberHostRepresendtation.h" +#import "ChamberGuestRepresendtation.h" +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIChamberImportpriseAccommodatedRegard : UIView +- (instancetype)initAboutdelegtowardse:(id)delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/ActivityContainerView/YUMIChamberImportpriseAccommodatedRegard.m b/YuMi/Modules/YMRoom/View/ActivityContainerView/YUMIChamberImportpriseAccommodatedRegard.m new file mode 100644 index 00000000..922c8f00 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/ActivityContainerView/YUMIChamberImportpriseAccommodatedRegard.m @@ -0,0 +1,455 @@ +// +// XPRoomActivityView.m +// YuMi +// +// Created by YuMi on 2021/10/12. +// + +#import "YUMIChamberImportpriseAccommodatedRegard.h" +#import +#import +#import "AccountAbstractStorage.h" +#import "Api+Room.h" +#import "ClientDisposition.h" +#import "NetIndicateRegard.h" +#import "MKJPopup.h" +#import "XNDJTBWGLoadingTool.h" +#import "YUMIMacroUitls.h" +#import "ConsumerAbstractMatrix.h" +#import "ChamberAbstractMatrix.h" +#import "ImportpriseAbstractMatrix.h" +#import "AttachmentMatrix.h" +#import "ThresholdReindictMatrix.h" +#import "YUMIChamberHalfTissueRegard.h" +#import "YUMIConfectioneryTimberRegardGovernancer.h" +#import "YUMITissueRegardGovernancer.h" +#import "YUMIChamberRegardGovernancer.h" +#import "YUMIThresholdReindictSuccessRegard.h" +#import "YUMIScheduleLoudspeakerRegardGovernancer.h" +#import "YUMIMarchingRegardGovernancer.h" +#import "XCCurrentVCStackExecutive.h" +UIKIT_EXTERN NSString *kShowFirstRechargeView; +@interface YUMIChamberImportpriseAccommodatedRegard () +@property (nonatomic,strong) UIStackView *stackView; +@property (nonatomic,strong) SDCycleScrollView *cycleTrundleRegard; +@property (nonatomic,strong) UIView * deparatmentMaintainrietaryRegard; +@property (nonatomic,strong) NetIndicateRegard *lookLoveIndicateRegard; +@property (nonatomic,strong) UIImageView *thresholdReindictIndicateRegard; +@property (nonatomic,strong) UIImageView *joinEngagementRegard; +@property (nonatomic,weak) idhostRepresedtation; +@property (nonatomic,copy) NSMutableArray *importpriseStatement; +@property (nonatomic,assign) BOOL isChamberImportprise; +@property (nonatomic,strong) ImportpriseAbstractMatrix *fairyImportpriseMatrix; +@property (nonatomic,strong) ImportpriseAbstractMatrix * thresholdReindictMatrix; +@property (nonatomic,strong) ImportpriseAbstractMatrix * lookLoveMatrix; +@end + +@implementation YUMIChamberImportpriseAccommodatedRegard + +- (instancetype)initAboutdelegtowardse:(id)delegate { + self = [super init]; + if (self) { + self.hostRepresedtation = delegate; + [self initSubViews]; + [self initChildLyRestrictions]; + [self requisitionImportpriseSttowardsement]; + [self prohibitipositionConsiderLove]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.stackView]; + [self.stackView addArrangedSubview:self.cycleTrundleRegard]; + [self.stackView addArrangedSubview:self.deparatmentMaintainrietaryRegard]; + [self.stackView addArrangedSubview:self.thresholdReindictIndicateRegard]; + [self.stackView addArrangedSubview:self.lookLoveIndicateRegard]; + [self.stackView addArrangedSubview:self.joinEngagementRegard]; +} + +- (void)initChildLyRestrictions { + [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self); + }]; + + CGFloat itemWidth = KScreenHeight > 667 ? 65 : 55 * kScreenHeightScale; + [self.cycleTrundleRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(itemWidth , itemWidth)); + }]; + + [self.thresholdReindictIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(itemWidth, itemWidth)); + }]; + + [self.lookLoveIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(itemWidth, itemWidth)); + }]; + + [self.joinEngagementRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(35* kScreenHeightScale); + }]; + +} + +- (void)requisitionImportpriseSttowardsement { + + dispatch_group_t group =dispatch_group_create(); + + dispatch_queue_t queue =dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0); + + dispatch_group_enter(group); + dispatch_group_async(group, queue, ^{ + + NSString * roomId = [NSString stringWithFormat:@"%ld", self.hostRepresedtation.acquireChamberAbstract.roomId]; + [Api chamberImportpriseSttowardsement:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + NSArray * array = [ImportpriseAbstractMatrix mtowardsrixsAboutGarment:data.data]; + [self.importpriseStatement addObjectsFromArray:array]; + } + dispatch_group_leave(group); + } roomId:roomId type:@"2"]; + + }); + + + dispatch_group_notify(group,dispatch_get_main_queue(), ^{ + self.isChamberImportprise = YES; + self.cycleTrundleRegard.hidden = NO; + + [self prohibitipositionthresholdReindict]; + NSMutableArray *picArray = [NSMutableArray array]; + for (ImportpriseAbstractMatrix *model in self.importpriseStatement) { + [picArray addObject:model.bannerPic]; + } + self.cycleTrundleRegard.imageURLStringsGroup = picArray; + if (self.importpriseStatement.count > 1) { + [self.cycleTrundleRegard setAutoScroll:YES]; + self.cycleTrundleRegard.autoScrollTimeInterval = 3; + } else { + [self.cycleTrundleRegard setAutoScroll:NO]; + } + }); + +} +-(void)prohibitipositionthresholdReindict{ + ConsumerAbstractMatrix * userInfo = self.hostRepresedtation.getUserInfo; + if (userInfo.isFirstCharge == YES) { + if(![self.importpriseStatement containsObject:self.thresholdReindictMatrix]){ + [self.importpriseStatement insertObject:self.thresholdReindictMatrix atIndex:0]; + } + }else{ + if([self.importpriseStatement containsObject:self.thresholdReindictMatrix]){ + [self.importpriseStatement removeObject:self.thresholdReindictMatrix]; + } + + } +} +- (void)prohibitipositionConsiderLove { + ConsumerAbstractMatrix * userInfo = self.hostRepresedtation.getUserInfo; + ChamberAbstractMatrix * roomInfo = self.hostRepresedtation.acquireChamberAbstract; + if (userInfo.userLevelVo.experLevelSeq >= roomInfo.findLoveDrawSwitchVo.openLevel && roomInfo.findLoveDrawSwitchVo.open == YES) { + self.lookLoveIndicateRegard.hidden = NO; + self.lookLoveIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_candy_tree_enter"]; + } else { + self.lookLoveIndicateRegard.hidden = YES; + } +} + +#pragma mark - RoomGuestDelegat +- (void)onChamberRefurbish { + ChamberAbstractMatrix * roomInfo = self.hostRepresedtation.acquireChamberAbstract; + if (roomInfo.type == ChamberGenre_MiniGame) { + self.thresholdReindictIndicateRegard.hidden = YES; + self.lookLoveIndicateRegard.hidden = YES; + + [self requisitionImportpriseSttowardsement]; + } else { + if([self.importpriseStatement containsObject:self.lookLoveMatrix]){ + [self.importpriseStatement removeObject:self.lookLoveMatrix]; + } + [self prohibitipositionConsiderLove]; + self.thresholdReindictIndicateRegard.hidden = YES; + [self prohibitipositionthresholdReindict]; + NSMutableArray *picArray = [NSMutableArray array]; + for (ImportpriseAbstractMatrix *model in self.importpriseStatement) { + [picArray addObject:model.bannerPic]; + } + self.cycleTrundleRegard.imageURLStringsGroup = picArray; + if (self.importpriseStatement.count > 1) { + [self.cycleTrundleRegard setAutoScroll:YES]; + self.cycleTrundleRegard.autoScrollTimeInterval = 3; + } else { + [self.cycleTrundleRegard setAutoScroll:NO]; + } + if (roomInfo.roomModeType == ChamberModeGenre_Open_Blind || roomInfo.roomModeType == ChamberModeGenre_Open_PK_Mode || roomInfo.roomModeType == ChamberModeGenre_Open_Micro_Mode) { + if (roomInfo.roomModeType == ChamberModeGenre_Open_PK_Mode ) { + self.joinEngagementRegard.image = [UIImage imageNamed:@"yumi_scope_pk_normal_member_enter"]; + } else { + self.joinEngagementRegard.image = [UIImage imageNamed:@"yumi_scope_mode_dating_enter"]; + } + NIMChatroomMembersByIdsRequest *request = [[NIMChatroomMembersByIdsRequest alloc]init]; + request.roomId = [NSString stringWithFormat:@"%ld", roomInfo.roomId]; + request.userIds = @[[AccountAbstractStorage instance].acquireCid]; + [[NIMSDK sharedSDK].chatroomManager fetchChatroomMembersByIds:request completion:^(NSError * _Nullable error, NSArray * _Nullable members) { + if (error == nil) { + NIMChatroomMember * member = members.firstObject; + if (member.type == NIMTeamMemberTypeOwner || member.type == NIMTeamMemberTypeManager) { + self.joinEngagementRegard.hidden = YES; + return; + } + } + self.joinEngagementRegard.hidden = NO; + }]; + } else { + self.joinEngagementRegard.hidden = YES; + } + } +} + +- (void)onChamberImported { + [self onChamberRefurbish]; +} + +- (void)shankNEMCIndividualityCommunictowardsion:(NIMMessage *)message { + NIMCustomObject *obj = (NIMCustomObject *)message.messageObject; + if (obj.attachment != nil && [obj.attachment isKindOfClass:[AttachmentMatrix class]]) { + AttachmentMatrix *attachment = (AttachmentMatrix *)obj.attachment; + if (attachment.first == IndividualityCommunicationGenre_First_Recharge_Reward && attachment.second == Custom_Message_Sub_Room_First_Recharge_Reward) { + ThresholdReindictMatrix *model = [ThresholdReindictMatrix mtowardsrixAboutJSON:attachment.data]; + YUMIThresholdReindictSuccessRegard * thresholdReindictRegard= [[YUMIThresholdReindictSuccessRegard alloc] init]; + thresholdReindictRegard.reindictAbstract = model; + [MKJPopup popupRegard:thresholdReindictRegard style:MKJPopupStyleAlert]; + } + } +} + +- (void)shankNEMCCircularCommunictowardsion:(NIMMessage *)message { + NIMNotificationObject *notiMsg = (NIMNotificationObject *)message.messageObject; + NIMChatroomNotificationContent *content = (NIMChatroomNotificationContent *)notiMsg.content; + switch (content.eventType) { + case NIMChatroomEventTypeAddManager: + { + if (self.hostRepresedtation.acquireChamberAbstract.roomModeType == ChamberModeGenre_Open_Blind || self.hostRepresedtation.acquireChamberAbstract.roomModeType == ChamberModeGenre_Open_PK_Mode) { + for (NIMChatroomNotificationMember * member in content.targets) { + if (member.userId.intValue == [AccountAbstractStorage instance].acquireCid.integerValue) { + self.joinEngagementRegard.hidden = YES; + break; + } + } + } + } + break; + case NIMChatroomEventTypeRemoveManager: + { + if (self.hostRepresedtation.acquireChamberAbstract.roomModeType == ChamberModeGenre_Open_Blind || self.hostRepresedtation.acquireChamberAbstract.roomModeType == ChamberModeGenre_Open_PK_Mode) { + for (NIMChatroomNotificationMember * member in content.targets) { + if (member.userId.intValue == [AccountAbstractStorage instance].acquireCid.integerValue) { + self.joinEngagementRegard.hidden = NO; + break; + } + } + } + } + break; + default: + break; + } +} + +#pragma mark - SDCycleScrollViewDelegate +- (void)cycleScrollView:(SDCycleScrollView *)cycleScrollView didSelectItemAtIndex:(NSInteger)index { + NSArray *imageUrlList = cycleScrollView.imageURLStringsGroup; + if (imageUrlList.count > index) { + NSString *pic = imageUrlList[index]; + ImportpriseAbstractMatrix * info; + for (ImportpriseAbstractMatrix * getInfo in self.importpriseStatement) { + if([getInfo.bannerPic isEqualToString:pic]){ + info = getInfo; + break;; + } + } + if(info == nil)return; + if (info.activityType == ActivityGenre_Love) { + [self lookLoveBetowardsRecognition]; + } else if(info.activityType == ActivityGenre_First) { + [self thresholdReindictBetowardsRecognition]; + }else { + if (info.skipType == ActivitySkipGenre_Room) { + [self.hostRepresedtation exitRoom]; + [YUMIChamberRegardGovernancer unfoildChamber:info.skipUri viewController:self.hostRepresedtation.acquireUniversalNev]; + } else if(info.skipType == ActivitySkipGenre_Web) { + if (info.showType == ActivityShowGenre_Half) { + YUMIChamberHalfTissueRegard * webView = [[YUMIChamberHalfTissueRegard alloc] init]; + webView.roomUid = [NSString stringWithFormat:@"%ld", self.hostRepresedtation.acquireChamberAbstract.uid]; + webView.url = info.skipUri; + [MKJPopup popupRegard:webView style:MKJPopupStyleActionSheet]; + return; + } + YUMITissueRegardGovernancer * webVewC = [[YUMITissueRegardGovernancer alloc] init]; + webVewC.roomUid = [NSString stringWithFormat:@"%ld", self.hostRepresedtation.acquireChamberAbstract.uid]; + webVewC.url = info.skipUri; + [self.hostRepresedtation.acquireUniversalNev pushViewController:webVewC animated:YES]; + } + } + } +} + +#pragma mark - Event Response +- (void)lookLoveBetowardsRecognition { + YUMIConfectioneryTimberRegardGovernancer * candyTreeVC = [[YUMIConfectioneryTimberRegardGovernancer alloc] initWithDelegate:self.hostRepresedtation]; + candyTreeVC.view.frame = CGRectMake(0, 0, KScreenWidth, KScreenHeight); + + [[XCCurrentVCStackExecutive shareManager].getCurrentVC addChildViewController:candyTreeVC]; + [candyTreeVC.navigationController setNavigationBarHidden:YES animated:NO]; + [[XCCurrentVCStackExecutive shareManager].getCurrentVC.view addSubview:candyTreeVC.view]; +} + +- (void)thresholdReindictBetowardsRecognition { + [[NSNotificationCenter defaultCenter]postNotificationName:kShowFirstRechargeView object:nil]; +} + +- (void)didBetowardsJoinEngagementRecognition { + if (self.hostRepresedtation.acquireChamberAbstract.roomModeType == ChamberModeGenre_Open_PK_Mode && self.hostRepresedtation.isChamberCombatDisporting) { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:YMLocalizedString(@"YUMI_Room_Activity_Container_View_2")]; + return; + } + NIMChatroomMembersByIdsRequest *request = [[NIMChatroomMembersByIdsRequest alloc]init]; + request.roomId = [NSString stringWithFormat:@"%ld", self.hostRepresedtation.acquireChamberAbstract.roomId]; + request.userIds = @[[AccountAbstractStorage instance].acquireCid]; + [[NIMSDK sharedSDK].chatroomManager fetchChatroomMembersByIds:request completion:^(NSError * _Nullable error, NSArray * _Nullable members) { + NIMChatroomMember * member; + if (error == nil) { + member = members.firstObject; + } + ChamberAbstractMatrix * roomInfo = self.hostRepresedtation.acquireChamberAbstract; + YUMIScheduleLoudspeakerAbstractMatrix * info = [[YUMIScheduleLoudspeakerAbstractMatrix alloc] init]; + info.roomUid = [NSString stringWithFormat:@"%ld", roomInfo.uid]; + info.roomId = [NSString stringWithFormat:@"%ld", roomInfo.roomId]; + info.nick = roomInfo.nick; + info.roomAvatar = roomInfo.avatar; + info.roomTitle = roomInfo.title; + info.micQueue = [self.hostRepresedtation acquireMiecreoscoopeInthecaseofmtowardsion]; + info.isManager = (member.type == NIMChatroomMemberTypeCreator || member.type == NIMChatroomMemberTypeManager); + info.type = roomInfo.roomModeType == ChamberModeGenre_Open_Blind ? ArrangeLoudspeakerGenre_Dating : roomInfo.roomModeType == ChamberModeGenre_Open_PK_Mode ? ArrangeLoudspeakerGenre_Room_PK : ArrangeLoudspeakerGenre_Normal; + YUMIScheduleLoudspeakerRegardGovernancer * arrangeMicVC = [[YUMIScheduleLoudspeakerRegardGovernancer alloc] initAboutAbstract:info]; + [self.hostRepresedtation.acquireUniversalNev presentViewController:arrangeMicVC animated:YES completion:nil]; + }]; +} + +- (void)sailBetowardsRecognition { + NSString * roomUid = [NSString stringWithFormat:@"%ld", self.hostRepresedtation.acquireChamberAbstract.uid]; + YUMIMarchingRegardGovernancer * sailingVC = [[YUMIMarchingRegardGovernancer alloc] initAboutChamberCid:roomUid]; + [self.hostRepresedtation.acquireUniversalNev presentViewController:sailingVC animated:YES completion:nil]; +} + +#pragma mark - Getters And Setters +- (SDCycleScrollView *)cycleTrundleRegard { + if (!_cycleTrundleRegard) { + _cycleTrundleRegard = [SDCycleScrollView cycleScrollViewWithFrame:CGRectZero delegate:self placeholderImage:nil]; + _cycleTrundleRegard.pageControlAliment = SDCycleScrollViewPageContolAlimentCenter; + _cycleTrundleRegard.currentPageDotColor = [UIColor whiteColor]; + _cycleTrundleRegard.pageDotColor = [UIColor colorWithWhite:1 alpha:0.2]; + + _cycleTrundleRegard.pageControlDotSize = CGSizeMake(5, 2); + _cycleTrundleRegard.pageControlStyle = SDCycleScrollViewPageContolStyleClassic; + _cycleTrundleRegard.currentPageDotImage = [UIImage imageNamed:@"yumi_scope_activity_banner_select"]; + _cycleTrundleRegard.pageDotImage = [UIImage imageNamed:@"yumi_scope_activity_banner_normal"]; + _cycleTrundleRegard.backgroundColor = [UIColor colorWithWhite:1 alpha:0.00]; + _cycleTrundleRegard.bannerImageViewContentMode = UIViewContentModeScaleAspectFit; + _cycleTrundleRegard.pageControlBottomOffset = -10; + _cycleTrundleRegard.hidden = YES; + + } + return _cycleTrundleRegard; +} + +- (UIView *)deparatmentMaintainrietaryRegard { + if (!_deparatmentMaintainrietaryRegard) { + _deparatmentMaintainrietaryRegard = [[UIView alloc] init]; + _deparatmentMaintainrietaryRegard.backgroundColor = [UIColor clearColor]; + [_deparatmentMaintainrietaryRegard setContentHuggingPriority:UILayoutPriorityDragThatCanResizeScene forAxis:UILayoutConstraintAxisHorizontal]; + [_deparatmentMaintainrietaryRegard setContentCompressionResistancePriority:UILayoutPriorityFittingSizeLevel forAxis:UILayoutConstraintAxisHorizontal]; + } + return _deparatmentMaintainrietaryRegard; +} + + +- (UIStackView *)stackView { + if (!_stackView) { + _stackView = [[UIStackView alloc] init]; + _stackView.axis = UILayoutConstraintAxisVertical; + _stackView.distribution = UIStackViewDistributionFill; + _stackView.alignment = UIStackViewAlignmentCenter; + _stackView.spacing = 5; + } + return _stackView; +} + +- (UIImageView *)lookLoveIndicateRegard { + if (!_lookLoveIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc] init]; + config.deparatmentMaintainrietary = [UIImage imageNamed:@"yumi_scope_candy_tree_enter"]; + config.imageType = ImageGenreUserIcon; + _lookLoveIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _lookLoveIndicateRegard.userInteractionEnabled = YES; + _lookLoveIndicateRegard.hidden = YES; + _lookLoveIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_candy_tree_enter"]; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(lookLoveBetowardsRecognition)]; + [_lookLoveIndicateRegard addGestureRecognizer:tap]; + } + return _lookLoveIndicateRegard; +} + +- (UIImageView *)thresholdReindictIndicateRegard { + if (!_thresholdReindictIndicateRegard) { + _thresholdReindictIndicateRegard = [[UIImageView alloc] init]; + _thresholdReindictIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_first_recharge_enter"]; + _thresholdReindictIndicateRegard.userInteractionEnabled = YES; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(thresholdReindictBetowardsRecognition)]; + [_thresholdReindictIndicateRegard addGestureRecognizer:tap]; + } + return _thresholdReindictIndicateRegard; +} + +- (UIImageView *)joinEngagementRegard { + if (!_joinEngagementRegard) { + _joinEngagementRegard = [[UIImageView alloc] init]; + _joinEngagementRegard.image = [UIImage imageNamed:@"yumi_scope_mode_dating_enter"]; + _joinEngagementRegard.userInteractionEnabled = YES; + _joinEngagementRegard.hidden = YES; + _joinEngagementRegard.contentMode = UIViewContentModeScaleAspectFit; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didBetowardsJoinEngagementRecognition)]; + [_joinEngagementRegard addGestureRecognizer:tap]; + } + return _joinEngagementRegard; +} + +- (NSMutableArray *)importpriseStatement { + if (!_importpriseStatement) { + _importpriseStatement = [NSMutableArray array]; + } + return _importpriseStatement; +} + +- (ImportpriseAbstractMatrix *)thresholdReindictMatrix{ + if (!_thresholdReindictMatrix){ + ImportpriseAbstractMatrix * activityInfo = [[ImportpriseAbstractMatrix alloc] init]; + activityInfo.bannerPic = @"room_first_recharge_enter"; + activityInfo.bannerName = YMLocalizedString(@"YUMI_Room_Activity_Container_View_0"); + _thresholdReindictMatrix = activityInfo; + _thresholdReindictMatrix.activityType = ActivityGenre_First; + } + return _thresholdReindictMatrix; +} +-(ImportpriseAbstractMatrix *)lookLoveMatrix{ + if (!_lookLoveMatrix){ + ImportpriseAbstractMatrix * activityInfo = [[ImportpriseAbstractMatrix alloc] init]; + activityInfo.bannerName = YMLocalizedString(@"YUMI_Room_Activity_Container_View_1"); + _lookLoveMatrix = activityInfo; + _lookLoveMatrix.activityType = ActivityGenre_Love; + } + return _lookLoveMatrix; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/ActivityContainerView/YUMIChamberImportpriseDisportRegard.h b/YuMi/Modules/YMRoom/View/ActivityContainerView/YUMIChamberImportpriseDisportRegard.h new file mode 100644 index 00000000..2e6238af --- /dev/null +++ b/YuMi/Modules/YMRoom/View/ActivityContainerView/YUMIChamberImportpriseDisportRegard.h @@ -0,0 +1,29 @@ +// +// YMRoomActivityPlayView.h +// YUMI +// +// Created by YUMI on 2022/9/30. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class YUMIChamberImportpriseDisportMatrix; +@protocol FBCChamberActivityPlayRegardRepresendtation + +- (void)yUMIChamberImportpriseDisportRegardExhibitFurthaerDisport; +- (void)yUMIChamberImportpriseDisportRegardBrakeFurthaerDisport; +- (void)yUMIChamberImportpriseDisportRegardDidTicktackDisport:(YUMIChamberImportpriseDisportMatrix *)model; + +@end + +@interface YUMIChamberImportpriseDisportRegard : UIView + +@property (nonatomic, strong) NSMutableArray *disportGarment; + +@property (nonatomic, weak) id delegate; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/ActivityContainerView/YUMIChamberImportpriseDisportRegard.m b/YuMi/Modules/YMRoom/View/ActivityContainerView/YUMIChamberImportpriseDisportRegard.m new file mode 100644 index 00000000..127f993b --- /dev/null +++ b/YuMi/Modules/YMRoom/View/ActivityContainerView/YUMIChamberImportpriseDisportRegard.m @@ -0,0 +1,124 @@ +// +// YMRoomActivityPlayView.m +// YUMI +// +// Created by YUMI on 2022/9/30. +// + +#import "YUMIChamberImportpriseDisportRegard.h" +#import +#import "YUMIMacroUitls.h" +#import "DJDKMIMOMColor.h" +#import "UIImage+Utils.h" +#import "YUMIChamberImportpriseDisportMatrix.h" +#import "NetIndicateRegard.h" + +@interface YUMIChamberImportpriseDisportRegard() + +@property (nonatomic, strong) UIButton *furthaerBtuton; + +@end + +@implementation YUMIChamberImportpriseDisportRegard + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +- (void)layoutSubviews { + [super layoutSubviews]; + + UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:self.furthaerBtuton.bounds byRoundingCorners:UIRectCornerTopLeft | UIRectCornerBottomLeft cornerRadii:CGSizeMake(8, 8)]; + CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init]; + maskLayer.frame = self.furthaerBtuton.bounds; + maskLayer.path = maskPath.CGPath; + self.furthaerBtuton.layer.mask = maskLayer; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.furthaerBtuton]; +} + +- (void)initChildLyRestrictions { + [self.furthaerBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.top.bottom.mas_equalTo(self); + make.width.mas_equalTo(18); + }]; +} + + +- (void)furthaerBtutonPerformance:(UIButton *)sender { + if (self.frame.size.width > 18) { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIChamberImportpriseDisportRegardBrakeFurthaerDisport)]) { + [self.delegate yUMIChamberImportpriseDisportRegardBrakeFurthaerDisport]; + } + } else { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIChamberImportpriseDisportRegardExhibitFurthaerDisport)]) { + [self.delegate yUMIChamberImportpriseDisportRegardExhibitFurthaerDisport]; + } + } +} + +- (void)indictowardseBetowardsRecognition:(UITapGestureRecognizer *)ges { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIChamberImportpriseDisportRegardDidTicktackDisport:)]) { + YUMIChamberImportpriseDisportMatrix *model = self.disportGarment[ges.view.tag]; + [self.delegate yUMIChamberImportpriseDisportRegardDidTicktackDisport:model]; + } +} + +- (void)setDisportGarment:(NSMutableArray *)disportGarment { + _disportGarment = disportGarment; + if (disportGarment.count) { + CGFloat itemWidth = 45; + for (int i = 0; i +#import "NetIndicateRegard.h" +#import "ChamberHostRepresendtation.h" +@class KellegChamberScrollRegard; + +@protocol KellegChamberScrollRegardRepresendtation +- (void)kellegTrundleRegardTrundleToPrevious:(KellegChamberScrollRegard *)kellegTrundleRegard; +- (void)kellegTrundleRegardTrundleToLtowardster:(KellegChamberScrollRegard *)kellegTrundleRegard; +- (void)kellegTrundleVieInititowardseTrundle:(KellegChamberScrollRegard *)kellegTrundleRegard; +- (void)kellegTrundleVieConcludeTrundle:(KellegChamberScrollRegard *)kellegTrundleRegard; + +@end + +@interface KellegChamberScrollRegard : UIScrollView +@property (nonatomic,weak) idhostRepresedtation; + +- (instancetype)initAboutdelegtowardse:(id)delegate; + +@property (nonatomic, assign) id kellegTrundleRepresedtation; +@property (nonatomic, strong) UIView *middleIndicateRegard; +@property (nonatomic,assign) BOOL isCanTrundleApex; + +- (instancetype)initWithFrame:(CGRect)frame; + + +@end + diff --git a/YuMi/Modules/YMRoom/View/AnchorCycleView/KellegChamberScrollRegard.m b/YuMi/Modules/YMRoom/View/AnchorCycleView/KellegChamberScrollRegard.m new file mode 100644 index 00000000..2175b238 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnchorCycleView/KellegChamberScrollRegard.m @@ -0,0 +1,231 @@ +// +// KellegChamberScrollRegard.m +// YUMI +// +// Created by YUMI on 2022/7/11. +// + +#import "KellegChamberScrollRegard.h" +#import "YUMIMacroUitls.h" +#import "ChamberAbstractMatrix.h" +#import "MiecreoscoopeMHTueueMatrix.h" +#import "AccountAbstractStorage.h" +#import "ConsumerAbstractMatrix.h" + +#import "SVGAAnatomiserExecutive.h" +#import + +@interface KellegChamberScrollRegard() + +@property (nonatomic, strong) SVGAImageView *middleExhibitionRegard; +@property (nonatomic, strong) SVGAAnatomiserExecutive *anatomiserExecutive; + +@property (nonatomic, strong) SVGAImageView *apexExhibitionRegard; + +@property (nonatomic, strong) SVGAImageView *pubescenceExhibitionRegard; + +@property (nonatomic, assign) BOOL animateDisport; + +@end + +@implementation KellegChamberScrollRegard + + +- (instancetype)initWithFrame:(CGRect)frame +{ + self = [super initWithFrame:frame]; + if(self) + { + self.backgroundColor = [UIColor clearColor]; + self.pagingEnabled = YES; + self.showsHorizontalScrollIndicator = NO; + self.showsVerticalScrollIndicator = NO; + self.delegate = self; + self.alwaysBounceVertical = NO; + self.bounces = NO; + self.delaysContentTouches = NO; + self.scrollsToTop = NO; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(chamberCommunictowardsionTarbselRegardSapexTrundle) name:@"roomMessageTabelViewStopScroll" object:nil]; + self.isCanTrundleApex = NO; + [self addSubview:self.apexExhibitionRegard]; + [self addSubview:self.middleExhibitionRegard]; + [self addSubview:self.pubescenceExhibitionRegard]; + + } + return self; +} + +- (void)inititowardseAnimtowardse:(SVGAImageView *)displayView { + self.animateDisport = YES; + NSString * bgString = [NSString stringWithFormat:@"%@/anchor_room_bg.svga", API_Image_URL]; + NSURL *bgUrl = [NSURL fileURLWithPath:bgString]; + [self.anatomiserExecutive chamberSvgaAboutWEEBSITE:bgUrl completionBlock:^(SVGAVideoEntity * _Nullable videoItem) { + if (videoItem != nil) { + CGFloat width = videoItem.videoSize.width; + CGFloat height = videoItem.videoSize.height; + if (width > height) { + displayView.contentMode = UIViewContentModeScaleAspectFit; + } else { + CGFloat resizeH = KScreenWidth * height / width; + if (resizeH > KScreenHeight) { + displayView.contentMode = UIViewContentModeScaleAspectFill; + } else { + displayView.contentMode = UIViewContentModeScaleAspectFit; + } + } + displayView.loops = INT_MAX; + displayView.clearsAfterStop = NO; + displayView.videoItem = videoItem; + [displayView startAnimation]; + } + } failureBlock:^(NSError * _Nullable error) { + }]; +} + +- (void)suspeindAnimtowardse { + [self.middleExhibitionRegard stopAnimation]; + [self.apexExhibitionRegard stopAnimation]; + [self.pubescenceExhibitionRegard stopAnimation]; + self.animateDisport = NO; +} + +- (void)chamberCommunictowardsionTarbselRegardSapexTrundle { + BOOL isOnMic = false; + + for (MiecreoscoopeMHTueueMatrix * info in self.hostRepresedtation.acquireMiecreoscoopeInthecaseofmtowardsion.allValues) { + if (info.userInfo.uid > 0 && [AccountAbstractStorage instance].acquireCid.integerValue == info.userInfo.uid) { + isOnMic = YES; + break; + } + } + if (isOnMic) { + self.scrollEnabled = NO; + } else { + self.scrollEnabled = YES; + } +} + +- (void)swopDisporter:(UIScrollView*)scrollView { + CGFloat offset = scrollView.contentOffset.y; + if (offset >= self.frame.size.height * 2) + { + if (self.kellegTrundleRepresedtation && [self.kellegTrundleRepresedtation respondsToSelector:@selector(kellegTrundleRegardTrundleToLtowardster:)]) { + [self.kellegTrundleRepresedtation kellegTrundleRegardTrundleToLtowardster:self]; + } + [self suspeindAnimtowardse]; + } else if (offset <= 0) { + if (self.kellegTrundleRepresedtation && [self.kellegTrundleRepresedtation respondsToSelector:@selector(kellegTrundleRegardTrundleToPrevious:)]) { + [self.kellegTrundleRepresedtation kellegTrundleRegardTrundleToPrevious:self]; + } + [self suspeindAnimtowardse]; + } +} + +-(void)scrollViewDidScroll:(UIScrollView *)scrollView { + if (scrollView.contentOffset.y > KScreenHeight) { + if (!self.animateDisport) { + [self inititowardseAnimtowardse:self.pubescenceExhibitionRegard]; + } + } else { + if (self.isCanTrundleApex) { + if (!self.animateDisport) { + [self inititowardseAnimtowardse:self.apexExhibitionRegard]; + } + } else { + + if (!self.animateDisport) { + [self inititowardseAnimtowardse:self.pubescenceExhibitionRegard]; + } + } + } +} + +- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView { + if (self.isCanTrundleApex) { + if (scrollView.contentOffset.y >= KScreenHeight * 2) { + if (self.kellegTrundleRepresedtation && [self.kellegTrundleRepresedtation respondsToSelector:@selector(kellegTrundleRegardTrundleToLtowardster:)]) { + [self.kellegTrundleRepresedtation kellegTrundleRegardTrundleToLtowardster:self]; + } + } else if(scrollView.contentOffset.y <= 0) { + if (self.kellegTrundleRepresedtation && [self.kellegTrundleRepresedtation respondsToSelector:@selector(kellegTrundleRegardTrundleToPrevious:)]) { + [self.kellegTrundleRepresedtation kellegTrundleRegardTrundleToPrevious:self]; + } + } + } else { + if (scrollView.contentOffset.y >= KScreenHeight) { + if (self.kellegTrundleRepresedtation && [self.kellegTrundleRepresedtation respondsToSelector:@selector(kellegTrundleRegardTrundleToLtowardster:)]) { + [self.kellegTrundleRepresedtation kellegTrundleRegardTrundleToLtowardster:self]; + } + } + } + [self suspeindAnimtowardse]; +} + + +- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer { + + if (otherGestureRecognizer.view.tag == 666 || otherGestureRecognizer.view.tag == 8888 || otherGestureRecognizer.view.tag == 888) { + self.scrollEnabled = NO; + return NO; + } + self.scrollEnabled = YES; + return YES; +} + +- (void)setIsCanTrundleApex:(BOOL)isCanTrundleApex { + _isCanTrundleApex = isCanTrundleApex; + CGRect frame = self.frame; + if (_isCanTrundleApex) { + self.contentSize = CGSizeMake(0, frame.size.height * 3); + self.apexExhibitionRegard.frame = CGRectMake(0, 0, frame.size.width, frame.size.height); + self.middleExhibitionRegard.frame = CGRectMake(0, frame.size.height, frame.size.width, frame.size.height); + self.pubescenceExhibitionRegard.frame = CGRectMake(0, frame.size.height * 2, frame.size.width, frame.size.height); + self.middleIndicateRegard = self.middleExhibitionRegard; + } else { + self.contentSize = CGSizeMake(0, frame.size.height * 2); + self.apexExhibitionRegard.frame = CGRectMake(0, 0, frame.size.width, frame.size.height); + self.middleExhibitionRegard.frame = CGRectMake(0, 0, frame.size.width, frame.size.height); + self.pubescenceExhibitionRegard.frame = CGRectMake(0, frame.size.height, frame.size.width, frame.size.height); + self.middleIndicateRegard = self.middleExhibitionRegard; + } +} + +- (SVGAImageView *)middleExhibitionRegard { + if (_middleExhibitionRegard == nil) { + _middleExhibitionRegard = [[SVGAImageView alloc] init]; + _middleExhibitionRegard.contentMode = UIViewContentModeScaleToFill; + _middleExhibitionRegard.userInteractionEnabled = NO; + _middleExhibitionRegard.backgroundColor = [UIColor clearColor]; + } + return _middleExhibitionRegard; +} + +- (SVGAImageView *)apexExhibitionRegard { + if (_apexExhibitionRegard == nil) { + _apexExhibitionRegard = [[SVGAImageView alloc] init]; + _apexExhibitionRegard.contentMode = UIViewContentModeScaleToFill; + _apexExhibitionRegard.userInteractionEnabled = NO; + _apexExhibitionRegard.backgroundColor = [UIColor clearColor]; + } + return _apexExhibitionRegard; +} + + +- (SVGAImageView *)pubescenceExhibitionRegard { + if (_pubescenceExhibitionRegard == nil) { + _pubescenceExhibitionRegard = [[SVGAImageView alloc] init]; + _pubescenceExhibitionRegard.contentMode = UIViewContentModeScaleToFill; + _pubescenceExhibitionRegard.userInteractionEnabled = NO; + _pubescenceExhibitionRegard.backgroundColor = [UIColor clearColor]; + } + return _pubescenceExhibitionRegard; +} + +- (SVGAAnatomiserExecutive *)anatomiserExecutive { + if (!_anatomiserExecutive) { + _anatomiserExecutive = [[SVGAAnatomiserExecutive alloc] init]; + } + return _anatomiserExecutive; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/AnchorCycleView/KellegChamberSrollTipRegard.h b/YuMi/Modules/YMRoom/View/AnchorCycleView/KellegChamberSrollTipRegard.h new file mode 100644 index 00000000..67bf90e0 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnchorCycleView/KellegChamberSrollTipRegard.h @@ -0,0 +1,16 @@ +// +// KellegChamberSrollTipRegard.h +// YUMI +// +// Created by YUMI on 2022/7/14. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface KellegChamberSrollTipRegard : UIView + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AnchorCycleView/KellegChamberSrollTipRegard.m b/YuMi/Modules/YMRoom/View/AnchorCycleView/KellegChamberSrollTipRegard.m new file mode 100644 index 00000000..61ff6d07 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnchorCycleView/KellegChamberSrollTipRegard.m @@ -0,0 +1,96 @@ +// +// KellegChamberSrollTipRegard.m +// YUMI +// +// Created by YUMI on 2022/7/14. +// + +#import "KellegChamberSrollTipRegard.h" +#import +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" + +@interface KellegChamberSrollTipRegard() + +@property (nonatomic, strong) UIView *backgroundRegard; + +@property (nonatomic, strong) UIImageView *promptIndicateRegard; + +@property (nonatomic, strong) UILabel *titleLabel; + +@end + +@implementation KellegChamberSrollTipRegard + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Response +- (void)dwellBetowardsCommunictowardsionPrompt:(UITapGestureRecognizer *)ges { + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + [defaults setObject:@"isShow" forKey:@"kHadShowAnchorRoomTipKey"]; + [defaults synchronize]; + [self removeFromSuperview]; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.backgroundRegard]; + [self addSubview:self.promptIndicateRegard]; + [self addSubview:self.titleLabel]; + UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(dwellBetowardsCommunictowardsionPrompt:)]; + [self addGestureRecognizer:tap]; +} + +- (void)initChildLyRestrictions { + [self.backgroundRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(0); + }]; + + [self.promptIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self); + make.centerY.mas_equalTo(self).mas_offset(-40); + make.size.mas_equalTo(CGSizeMake(87, 92)); + }]; + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self); + make.top.mas_equalTo(self.promptIndicateRegard.mas_bottom).mas_offset(46); + make.left.right.mas_equalTo(0); + }]; +} + +- (UIView *)backgroundRegard { + if (!_backgroundRegard) { + _backgroundRegard = [[UIView alloc] init]; + _backgroundRegard.backgroundColor = UIColorRGBAlpha(0x000000, 0.6); + } + return _backgroundRegard; +} + +- (UIImageView *)promptIndicateRegard { + if (!_promptIndicateRegard) { + _promptIndicateRegard = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"yumi_anchor_scroll_tip"]]; + _promptIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + _promptIndicateRegard.userInteractionEnabled = YES; + } + return _promptIndicateRegard; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.text = YMLocalizedString(@"Anchor_Room_Sroll_Tip_View_0"); + _titleLabel.font = [UIFont systemFontOfSize:20]; + _titleLabel.textColor = [UIColor whiteColor]; + _titleLabel.textAlignment = NSTextAlignmentCenter; + } + return _titleLabel; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/AnchorPK/Api/Api+AnchorPk.h b/YuMi/Modules/YMRoom/View/AnchorPK/Api/Api+AnchorPk.h new file mode 100644 index 00000000..0e2c605e --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnchorPK/Api/Api+AnchorPk.h @@ -0,0 +1,43 @@ +// +// Api+AnchorPk.h +// YUMI +// +// Created by YUMI on 2022/4/8. +// + +#import "Api.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface Api (AnchorPk) + ++ (void)huntforKellegCombatChamberSttowardsement:(HttpRequestHelperCompletion)completion + erbanNo:(NSString *)erbanNo + roomUid:(NSString *)roomUid + pageNum:(NSString *)pageNum + pageSize:(NSString *)pageSize + pkType:(NSString *)pkType; + ++ (void)acquireKellegCombatChamberSttowardsement:(HttpRequestHelperCompletion)completion + roomUid:(NSString *)roomUid + pageNum:(NSString *)pageNum + pageSize:(NSString *)pageSize + pkType:(NSString *)pkType; + ++ (void)instituteKellegCombat:(HttpRequestHelperCompletion)completion + acceptUid:(NSString *)acceptUid + duration:(NSString *)duration + inviteUid:(NSString *)inviteUid + operateUid:(NSString *)operateUid + playDesc:(NSString *)playDesc + pkType:(NSString *)pkType; + ++ (void)adapttowardsionArbitraryCombat:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid; + ++ (void)revoctowardsionDirectoryapttowardsionArbitraryCombat:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid; + ++ (void)kellegCombatBretowardshaedOtherLoudspeaker:(HttpRequestHelperCompletion)completion micStatus:(NSString *)micStatus roundId:(NSString *)roundId roomUid:(NSString *)roomUid; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AnchorPK/Api/Api+AnchorPk.m b/YuMi/Modules/YMRoom/View/AnchorPK/Api/Api+AnchorPk.m new file mode 100644 index 00000000..a9250631 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnchorPK/Api/Api+AnchorPk.m @@ -0,0 +1,42 @@ +// +// Api+AnchorPk.m +// YUMI +// +// Created by YUMI on 2022/4/8. +// + +#import "Api+AnchorPk.h" +#import +@implementation Api (AnchorPk) + ++ (void)huntforKellegCombatChamberSttowardsement:(HttpRequestHelperCompletion)completion erbanNo:(NSString *)erbanNo roomUid:(NSString *)roomUid pageNum:(NSString *)pageNum pageSize:(NSString *)pageSize pkType:(NSString *)pkType { + NSString * fang = [NSString stringFromBase64String:@"c2VhcmNoL3NpbmdsZVJvb20="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion,__FUNCTION__, erbanNo, roomUid, pageNum, pageSize, pkType, nil]; +} + ++ (void)acquireKellegCombatChamberSttowardsement:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid pageNum:(NSString *)pageNum pageSize:(NSString *)pageSize pkType:(NSString *)pkType { + NSString * fang = [NSString stringFromBase64String:@"c2VhcmNoL3NpbmdsZVJvb20="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion,__FUNCTION__, roomUid, pageNum, pageSize, pkType, nil]; +} + ++ (void)instituteKellegCombat:(HttpRequestHelperCompletion)completion acceptUid:(NSString *)acceptUid duration:(NSString *)duration inviteUid:(NSString *)inviteUid operateUid:(NSString *)operateUid playDesc:(NSString *)playDesc pkType:(NSString *)pkType{ + NSString * fang = [NSString stringFromBase64String:@"Y3Jvc3Nyb29tcGtyb3VuZC9pbml0aWF0ZUNoYWxsZW5nZQ=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, acceptUid, duration, inviteUid, operateUid, playDesc, pkType, nil]; +} + ++ (void)adapttowardsionArbitraryCombat:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid { + NSString * fang = [NSString stringFromBase64String:@"Y3Jvc3Nyb29tcGtyb3VuZC9tYXRjaC9pbml0"]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, roomUid, nil]; +} + ++ (void)revoctowardsionDirectoryapttowardsionArbitraryCombat:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid { + NSString * fang = [NSString stringFromBase64String:@"Y3Jvc3Nyb29tcGtyb3VuZC9tYXRjaC9jYW5jZWw="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, roomUid, nil]; +} + ++ (void)kellegCombatBretowardshaedOtherLoudspeaker:(HttpRequestHelperCompletion)completion micStatus:(NSString *)micStatus roundId:(NSString *)roundId roomUid:(NSString *)roomUid { + NSString * fang = [NSString stringFromBase64String:@"Y3Jvc3Nyb29tcGtyb3VuZC9vdGhlck1pYw=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, micStatus, roundId, roomUid, nil]; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/AnchorPK/Presenter/XCombatellegCombatExternalizer.h b/YuMi/Modules/YMRoom/View/AnchorPK/Presenter/XCombatellegCombatExternalizer.h new file mode 100644 index 00000000..87e0f60e --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnchorPK/Presenter/XCombatellegCombatExternalizer.h @@ -0,0 +1,20 @@ +// +// YMAnchorPKPresenter.h +// YUMI +// +// Created by YUMI on 2022/4/8. +// + +#import "BaseMvpExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface XCombatellegCombatExternalizer : BaseMvpExternalizer + +- (void)instituteKellegCombat:(NSString *)roomUid duration:(NSInteger)duration acceptUid:(NSString *)acceptUid playDesc:(NSString *)playDesc pkType:(NSString *)pkType; + +- (void)adapttowardsionArbitraryCombat:(NSString *)roomUid; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AnchorPK/Presenter/XCombatellegCombatExternalizer.m b/YuMi/Modules/YMRoom/View/AnchorPK/Presenter/XCombatellegCombatExternalizer.m new file mode 100644 index 00000000..3ccd026f --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnchorPK/Presenter/XCombatellegCombatExternalizer.m @@ -0,0 +1,32 @@ +// +// YMAnchorPKPresenter.m +// YUMI +// +// Created by YUMI on 2022/4/8. +// + +#import "XCombatellegCombatExternalizer.h" +#import "Api+AnchorPk.h" +#import "AccountAbstractStorage.h" +#import "XCombatellegCombatCeremony.h" + +@implementation XCombatellegCombatExternalizer + +- (void)instituteKellegCombat:(NSString *)roomUid duration:(NSInteger)duration acceptUid:(NSString *)acceptUid playDesc:(NSString *)playDesc pkType:(NSString *)pkType { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NSString * time = [NSString stringWithFormat:@"%ld", duration]; + [Api instituteKellegCombat:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] instituteKellegCombatAccomplishment]; + }fail:^(NSInteger code, NSString * _Nullable msg) { + [[self acquireRegard] instituteKellegCombatFlunk:msg]; + } EvidenceChambering:YES errorToast:NO] acceptUid:acceptUid duration:time inviteUid:roomUid operateUid:uid playDesc:playDesc pkType:pkType]; +} + +- (void)adapttowardsionArbitraryCombat:(NSString *)roomUid { + [Api adapttowardsionArbitraryCombat:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + long long number = [data.data longLongValue]; + [[self acquireRegard] adapttowardsionArbitraryCombatAccomplishment:number]; + }] roomUid:roomUid]; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/AnchorPK/Protocol/XCombatellegCombatCeremony.h b/YuMi/Modules/YMRoom/View/AnchorPK/Protocol/XCombatellegCombatCeremony.h new file mode 100644 index 00000000..10ba935d --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnchorPK/Protocol/XCombatellegCombatCeremony.h @@ -0,0 +1,21 @@ +// +// YMAnchorPKProtocol.h +// YUMI +// +// Created by YUMI on 2022/4/8. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol XCombatellegCombatCeremony + +- (void)instituteKellegCombatAccomplishment; +- (void)instituteKellegCombatFlunk:(NSString *)message; + +- (void)adapttowardsionArbitraryCombatAccomplishment:(long long)matchPkStartTime; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AnchorPK/View/Cell/XCombatellegCombatTabulationRegardElement.h b/YuMi/Modules/YMRoom/View/AnchorPK/View/Cell/XCombatellegCombatTabulationRegardElement.h new file mode 100644 index 00000000..8166a0fe --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnchorPK/View/Cell/XCombatellegCombatTabulationRegardElement.h @@ -0,0 +1,24 @@ +// +// YMAnchorPKTableViewCell.h +// YUMI +// +// Created by YUMI on 2022/4/8. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class ThroughoutChamberCombatAbstractMatrix, XCombatellegCombatTabulationRegardElement; +@protocol XCombatellegCombatTabulationViweElementRepresendtation +- (void)xCombatellegCombatTarbsultowardsionViweElement:(XCombatellegCombatTabulationRegardElement *)view didChooseRoom:(ThroughoutChamberCombatAbstractMatrix *)roomInfo; +@end + +@interface XCombatellegCombatTabulationRegardElement : UITableViewCell + +@property (nonatomic,strong) ThroughoutChamberCombatAbstractMatrix *chamberCombatAbstract; +@property (nonatomic,weak) id delegate; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AnchorPK/View/Cell/XCombatellegCombatTabulationRegardElement.m b/YuMi/Modules/YMRoom/View/AnchorPK/View/Cell/XCombatellegCombatTabulationRegardElement.m new file mode 100644 index 00000000..d56680d0 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnchorPK/View/Cell/XCombatellegCombatTabulationRegardElement.m @@ -0,0 +1,148 @@ +// +// YMAnchorPKTableViewCell.m +// YUMI +// +// Created by YUMI on 2022/4/8. +// + +#import "XCombatellegCombatTabulationRegardElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "NetIndicateRegard.h" +#import "UIImage+Utils.h" +#import "ThroughoutChamberCombatAbstractMatrix.h" + +@interface XCombatellegCombatTabulationRegardElement() + +@property (nonatomic, strong) NetIndicateRegard *intelligenceportraitIndicateRegard; +@property (nonatomic, strong) UIButton *chosenBtuton; +@property (nonatomic, strong) UILabel *constituteSequencignation; +@property (nonatomic, strong) UILabel *idSequencignation; + +@end + +@implementation XCombatellegCombatTabulationRegardElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; + if (self) { + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self initSubViews]; + [self initChildLyRestrictions]; + + } + return self; +} +#pragma mark - Private Method + +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor]; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.intelligenceportraitIndicateRegard]; + [self.contentView addSubview:self.constituteSequencignation]; + [self.contentView addSubview:self.idSequencignation]; + [self.contentView addSubview:self.chosenBtuton]; +} + +- (void)initChildLyRestrictions { + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(13); + make.width.height.mas_equalTo(60); + make.centerY.mas_equalTo(self.contentView); + }]; + [self.constituteSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_right).mas_offset(6); + make.bottom.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_centerY); + make.height.mas_equalTo(14); + make.right.mas_equalTo(self.chosenBtuton.mas_left).mas_offset(-5); + }]; + [self.idSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.constituteSequencignation); + make.top.mas_equalTo(self.constituteSequencignation.mas_bottom).mas_offset(7); + }]; + + [self.chosenBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(-15); + make.centerY.mas_equalTo(self.intelligenceportraitIndicateRegard); + make.width.mas_equalTo(64); + make.height.mas_equalTo(24); + }]; +} + +#pragma mark - Event Response +- (void)chosenBtutonPerformance:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(xCombatellegCombatTarbsultowardsionViweElement:didChooseRoom:)]) { + [self.delegate xCombatellegCombatTarbsultowardsionViweElement:self didChooseRoom:self.chamberCombatAbstract]; + } +} + +#pragma mark - Getters And Setters +- (void)setChamberCombatAbstract:(ThroughoutChamberCombatAbstractMatrix *)chamberCombatAbstract { + _chamberCombatAbstract = chamberCombatAbstract; + self.intelligenceportraitIndicateRegard.imageUrl = _chamberCombatAbstract.avatar; + self.constituteSequencignation.text = _chamberCombatAbstract.nick; + self.idSequencignation.text = [NSString stringWithFormat:@"ID:%@", _chamberCombatAbstract.erbanNo]; + self.chosenBtuton.userInteractionEnabled = !chamberCombatAbstract.crossPking; + if (chamberCombatAbstract.crossPking) { + [_chosenBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[UIColorFromRGB(0x4C4C6A), UIColorFromRGB(0x4C4C6A)] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + [_chosenBtuton setTitle:YMLocalizedString(@"YUMI_Anchor_PK_Table_View_Cell_0") forState:UIControlStateNormal]; + [_chosenBtuton setTitleColor:UIColorFromRGB(0xC6C6E9) forState:UIControlStateNormal]; + } else if(!chamberCombatAbstract.valid) { + [_chosenBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[UIColorFromRGB(0x4C4C6A), UIColorFromRGB(0x4C4C6A)] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + [_chosenBtuton setTitle:YMLocalizedString(@"YUMI_Anchor_PK_Table_View_Cell_1") forState:UIControlStateNormal]; + [_chosenBtuton setTitleColor:UIColorFromRGB(0xC6C6E9) forState:UIControlStateNormal]; + } else { + [_chosenBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[UIColorFromRGB(0x1CD7FD), UIColorFromRGB(0x9377FF), UIColorFromRGB(0xFF6BA3)] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + [_chosenBtuton setTitle:YMLocalizedString(@"YUMI_Anchor_PK_Table_View_Cell_2") forState:UIControlStateNormal]; + [_chosenBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + } +} + +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _intelligenceportraitIndicateRegard.layer.cornerRadius = 60/2; + _intelligenceportraitIndicateRegard.layer.borderWidth = 1; + _intelligenceportraitIndicateRegard.layer.borderColor = [UIColor whiteColor].CGColor; + } + return _intelligenceportraitIndicateRegard; +} + +- (UIButton *)chosenBtuton { + if (!_chosenBtuton) { + _chosenBtuton = [[UIButton alloc] init]; + [_chosenBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[UIColorFromRGB(0x1CD7FD), UIColorFromRGB(0x9377FF), UIColorFromRGB(0xFF6BA3)] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + [_chosenBtuton addTarget:self action:@selector(chosenBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + _chosenBtuton.userInteractionEnabled = YES; + _chosenBtuton.layer.cornerRadius = 12; + _chosenBtuton.layer.masksToBounds = YES; + [_chosenBtuton setTitle:YMLocalizedString(@"YUMI_Anchor_PK_Table_View_Cell_3") forState:UIControlStateNormal]; + _chosenBtuton.titleLabel.font = [UIFont systemFontOfSize:12]; + [_chosenBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + } + return _chosenBtuton; +} + +- (UILabel *)constituteSequencignation { + if (!_constituteSequencignation) { + _constituteSequencignation = [[UILabel alloc] init]; + _constituteSequencignation.textColor = [UIColor whiteColor]; + _constituteSequencignation.font = [UIFont systemFontOfSize:14 weight:UIFontWeightMedium]; + } + return _constituteSequencignation; +} + +- (UILabel *)idSequencignation { + if (!_idSequencignation) { + _idSequencignation = [[UILabel alloc] init]; + _idSequencignation.textColor = [UIColor whiteColor]; + _idSequencignation.font = [UIFont systemFontOfSize:14 weight:UIFontWeightMedium]; + } + return _idSequencignation; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/AnchorPK/View/SubViews/XCombatellegCombatCallforRegard.h b/YuMi/Modules/YMRoom/View/AnchorPK/View/SubViews/XCombatellegCombatCallforRegard.h new file mode 100644 index 00000000..87e364b9 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnchorPK/View/SubViews/XCombatellegCombatCallforRegard.h @@ -0,0 +1,19 @@ +// +// YMAnchorPKInviteView.h +// YUMI +// +// Created by YUMI on 2022/4/12. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface XCombatellegCombatCallforRegard : UIView + +@property (nonatomic,copy) NSString *roomUid; +@property (nonatomic,copy) NSDictionary *atoloudspeakerPackbask; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AnchorPK/View/SubViews/XCombatellegCombatCallforRegard.m b/YuMi/Modules/YMRoom/View/AnchorPK/View/SubViews/XCombatellegCombatCallforRegard.m new file mode 100644 index 00000000..db72bb1b --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnchorPK/View/SubViews/XCombatellegCombatCallforRegard.m @@ -0,0 +1,344 @@ +// +// YMAnchorPKInviteView.m +// YUMI +// +// Created by YUMI on 2022/4/12. +// + +#import "XCombatellegCombatCallforRegard.h" +#import +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" +#import "UIImage+Utils.h" +#import "Api+Room.h" +#import "XNDJTBWGLoadingTool.h" +#import "MKJPopup.h" + +@interface XCombatellegCombatCallforMetroRegard : UIView +@property (nonatomic,strong) UILabel *titleLabel; +@property (nonatomic,strong) UILabel *satisfperformanceSequencignation; +@end + +@implementation XCombatellegCombatCallforMetroRegard + +- (instancetype)initWithFrame:(CGRect)frame +{ + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.titleLabel]; + [self addSubview:self.satisfperformanceSequencignation]; +} + +- (void)initChildLyRestrictions { + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(17); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(55); + make.left.centerY.mas_equalTo(self); + }]; + + [self.satisfperformanceSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.titleLabel.mas_right).offset(15); + make.centerY.mas_equalTo(self); + make.right.mas_lessThanOrEqualTo(self).offset(-5); + }]; +} + +#pragma mark - Getters And Setters + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _titleLabel.font = [UIFont systemFontOfSize:14]; + _titleLabel.text = YMLocalizedString(@"YUMI_Anchor_PK_Invite_View_0"); + _titleLabel.textAlignment = NSTextAlignmentRight; + } + return _titleLabel; +} + +- (UILabel *)satisfperformanceSequencignation { + if (!_satisfperformanceSequencignation) { + _satisfperformanceSequencignation = [[UILabel alloc] init]; + _satisfperformanceSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _satisfperformanceSequencignation.font = [UIFont systemFontOfSize:14 weight:UIFontWeightMedium]; + } + return _satisfperformanceSequencignation; +} + +@end + +@interface XCombatellegCombatCallforRegard () +@property (nonatomic, strong) UILabel *titleLabel; +@property (nonatomic,strong) UIStackView *stackView; +@property (nonatomic,strong) XCombatellegCombatCallforMetroRegard *centiretyforRegard; +@property (nonatomic,strong) XCombatellegCombatCallforMetroRegard *intratemporalRegard; +@property (nonatomic,strong) XCombatellegCombatCallforMetroRegard *sequenceRegard; +@property (nonatomic,strong) UIStackView *operaHierarchyRegard; +@property (nonatomic, strong) UIButton *rejectBtuton; +@property (nonatomic, strong) UIButton *acceptBtuton; +@property (nonatomic, strong) UIImageView *encourageIndicateRegard; +@property (nonatomic, strong) UIButton *computationPubescenceBtuton; +@property (strong, nonatomic) dispatch_source_t centiretyforIntratemper; + +@end + +@implementation XCombatellegCombatCallforRegard + +- (void)dealloc { + if (self.centiretyforIntratemper != nil) { + dispatch_source_cancel(self.centiretyforIntratemper); + self.centiretyforIntratemper = nil; + } +} + +- (instancetype)initWithFrame:(CGRect)frame { + if (self = [super initWithFrame:frame]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +- (void)initSubViews { + [self addSubview:self.encourageIndicateRegard]; + + [self.encourageIndicateRegard addSubview:self.titleLabel]; + [self.encourageIndicateRegard addSubview:self.stackView]; + [self.encourageIndicateRegard addSubview:self.operaHierarchyRegard]; + [self.encourageIndicateRegard addSubview:self.computationPubescenceBtuton]; + + [self.stackView addArrangedSubview:self.centiretyforRegard]; + [self.stackView addArrangedSubview:self.intratemporalRegard]; + [self.stackView addArrangedSubview:self.sequenceRegard]; + + [self.operaHierarchyRegard addArrangedSubview:self.rejectBtuton]; + [self.operaHierarchyRegard addArrangedSubview:self.acceptBtuton]; +} + +- (void)initChildLyRestrictions { + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(300); + make.height.mas_equalTo(324); + make.bottom.mas_equalTo(self.encourageIndicateRegard.mas_bottom); + }]; + + [self.encourageIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self); + make.top.mas_equalTo(self.encourageIndicateRegard).mas_offset(82); + make.height.mas_equalTo(21); + }]; + + [self.computationPubescenceBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.top.mas_equalTo(0); + make.width.mas_equalTo(36); + make.height.mas_equalTo(26); + }]; + + [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.encourageIndicateRegard).offset(26); + make.top.mas_equalTo(self.titleLabel.mas_bottom).offset(32); + make.right.mas_equalTo(self.encourageIndicateRegard); + }]; + + [self.operaHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.encourageIndicateRegard).inset(20); + make.height.mas_equalTo(40); + make.bottom.mas_equalTo(-25); + }]; +} + +#pragma mark - Event Response +- (void)acceptBtutonPerformance:(UIButton *)sender { + NSString *roundId = self.atoloudspeakerPackbask[@"roundId"]; + [Api shankThroughoutChamberCombatCentiretyfor:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + if (self.centiretyforIntratemper != nil) { + dispatch_source_cancel(self.centiretyforIntratemper); + self.centiretyforIntratemper = nil; + } + [MKJPopup dismiss]; + } else { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:msg]; + } + } roomUid:self.roomUid roundId:roundId isRecognize:@"1"]; +} + +- (void)rejectBtutonPerformance:(UIButton *)sender { + NSString *roundId = self.atoloudspeakerPackbask[@"roundId"]; + [Api shankThroughoutChamberCombatCentiretyfor:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + if (self.centiretyforIntratemper != nil) { + dispatch_source_cancel(self.centiretyforIntratemper); + self.centiretyforIntratemper = nil; + } + [MKJPopup dismiss]; + } else { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:msg]; + } + } roomUid:self.roomUid roundId:roundId isRecognize:@"0"]; +} + +#pragma mark - getter +- (void)setAtoloudspeakerPackbask:(NSDictionary *)atoloudspeakerPackbask { + _atoloudspeakerPackbask = atoloudspeakerPackbask; + if (_atoloudspeakerPackbask.allKeys.count > 0) { + self.centiretyforRegard.satisfperformanceSequencignation.text = _atoloudspeakerPackbask[@"inviteNick"]; + self.intratemporalRegard.satisfperformanceSequencignation.text = [NSString stringWithFormat:YMLocalizedString(@"YUMI_Anchor_PK_Invite_View_1"), _atoloudspeakerPackbask[@"pkDuration"]]; + NSString *desc = _atoloudspeakerPackbask[@"pkDesc"]; + if (desc.length > 0) { + self.sequenceRegard.hidden = NO; + self.sequenceRegard.satisfperformanceSequencignation.text = desc; + } else { + self.sequenceRegard.hidden = YES; + } + + if (_centiretyforIntratemper != nil) { + dispatch_source_cancel(_centiretyforIntratemper); + } + __block NSInteger time = 10; + dispatch_queue_t queue = dispatch_get_global_queue(0, 0); + _centiretyforIntratemper = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, queue); + @kWeakify(self); + dispatch_source_set_timer(_centiretyforIntratemper,dispatch_walltime(NULL, 0),1.0*NSEC_PER_SEC, 0); + dispatch_source_set_event_handler(_centiretyforIntratemper, ^{ + if(time <= 0){ + dispatch_source_cancel(self.centiretyforIntratemper); + self.centiretyforIntratemper = nil; + dispatch_async(dispatch_get_main_queue(), ^{ + @kStrongify(self); + [self removeFromSuperview]; + + }); + }else{ + dispatch_async(dispatch_get_main_queue(), ^{ + @kStrongify(self); + [self.computationPubescenceBtuton setTitle:[NSString stringWithFormat:@"%02lds", time] forState:UIControlStateNormal]; + }); + time--; + } + }); + dispatch_resume(_centiretyforIntratemper); + } +} + +- (UIImageView *)encourageIndicateRegard { + if (!_encourageIndicateRegard) { + _encourageIndicateRegard = [[UIImageView alloc] init]; + _encourageIndicateRegard.userInteractionEnabled = YES; + _encourageIndicateRegard.image = [UIImage imageNamed:@"yumi_anchorPK_invite_background"]; + } + return _encourageIndicateRegard; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.textColor = [UIColor whiteColor]; + _titleLabel.font = [UIFont systemFontOfSize:15]; + _titleLabel.text = YMLocalizedString(@"YUMI_Anchor_PK_Invite_View_2"); + } + return _titleLabel; +} + +- (UIStackView *)stackView { + if (!_stackView) { + _stackView = [[UIStackView alloc] init]; + _stackView.axis = UILayoutConstraintAxisVertical; + _stackView.distribution = UIStackViewDistributionFill; + _stackView.alignment = UIStackViewAlignmentFill; + _stackView.spacing = 16; + } + return _stackView; +} + +- (XCombatellegCombatCallforMetroRegard *)centiretyforRegard { + if (!_centiretyforRegard) { + _centiretyforRegard = [[XCombatellegCombatCallforMetroRegard alloc] init]; + _centiretyforRegard.titleLabel.text = @"邀请方:"; + } + return _centiretyforRegard; +} + +- (XCombatellegCombatCallforMetroRegard *)intratemporalRegard { + if (!_intratemporalRegard) { + _intratemporalRegard = [[XCombatellegCombatCallforMetroRegard alloc] init]; + _intratemporalRegard.titleLabel.text = @"PK时长:"; + } + return _intratemporalRegard; +} + +- (XCombatellegCombatCallforMetroRegard *)sequenceRegard { + if (!_sequenceRegard) { + _sequenceRegard = [[XCombatellegCombatCallforMetroRegard alloc] init]; + _sequenceRegard.titleLabel.text = @"PK玩法:"; + } + return _sequenceRegard; +} + +- (UIButton *)computationPubescenceBtuton { + if (!_computationPubescenceBtuton) { + _computationPubescenceBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_computationPubescenceBtuton setTitleColor:UIColorFromRGB(0xFFFFFF) forState:UIControlStateNormal]; + _computationPubescenceBtuton.titleLabel.font = [UIFont systemFontOfSize:12]; + [_computationPubescenceBtuton setBackgroundImage:[UIImage imageWithColor:UIColorRGBAlpha(0xFFFFFF, 0.4)] forState:UIControlStateNormal]; + _computationPubescenceBtuton.layer.masksToBounds = YES; + _computationPubescenceBtuton.layer.cornerRadius = 13; + } + return _computationPubescenceBtuton; +} + +- (UIStackView *)operaHierarchyRegard { + if (!_operaHierarchyRegard) { + _operaHierarchyRegard = [[UIStackView alloc] init]; + _operaHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _operaHierarchyRegard.distribution = UIStackViewDistributionFillEqually; + _operaHierarchyRegard.alignment = UIStackViewAlignmentFill; + _operaHierarchyRegard.spacing = 12; + } + return _operaHierarchyRegard; +} + +- (UIButton *)rejectBtuton { + if (!_rejectBtuton) {\ + _rejectBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + _rejectBtuton.layer.masksToBounds = YES; + _rejectBtuton.layer.cornerRadius = 40 / 2; + [_rejectBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[UIColorFromRGB(0xF4E0FF), UIColorFromRGB(0xF4E0FF)] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + [_rejectBtuton setTitleColor:UIColorFromRGB(0x5486FD) forState:UIControlStateNormal]; + [_rejectBtuton setTitle:YMLocalizedString(@"YUMI_Anchor_PK_Invite_View_6") forState:UIControlStateNormal]; + _rejectBtuton.titleLabel.font = [UIFont systemFontOfSize:14 weight:UIFontWeightMedium]; + [_rejectBtuton addTarget:self action:@selector(rejectBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _rejectBtuton; +} + +- (UIButton *)acceptBtuton { + if (!_acceptBtuton) { + _acceptBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_acceptBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[UIColorFromRGB(0x1CD7FD), UIColorFromRGB(0x9377FF), UIColorFromRGB(0xFF6BA3)] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + [_acceptBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + [_acceptBtuton setTitle:YMLocalizedString(@"YUMI_Anchor_PK_Invite_View_7") forState:UIControlStateNormal]; + _acceptBtuton.titleLabel.font = [UIFont systemFontOfSize:14 weight:UIFontWeightMedium]; + [_acceptBtuton addTarget:self action:@selector(acceptBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + _acceptBtuton.layer.masksToBounds = YES; + _acceptBtuton.layer.cornerRadius = 40 / 2; + } + return _acceptBtuton; + } + +@end diff --git a/YuMi/Modules/YMRoom/View/AnchorPK/View/SubViews/XCombatellegCombatConsequentRegard.h b/YuMi/Modules/YMRoom/View/AnchorPK/View/SubViews/XCombatellegCombatConsequentRegard.h new file mode 100644 index 00000000..6a94c00c --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnchorPK/View/SubViews/XCombatellegCombatConsequentRegard.h @@ -0,0 +1,19 @@ +// +// YMAnchorPKResultView.h +// YUMI +// +// Created by YUMI on 2022/4/13. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class ThroughoutChamberCombatFasciaboardMatrix; +@interface XCombatellegCombatConsequentRegard : UIView + +@property (nonatomic, strong) ThroughoutChamberCombatFasciaboardMatrix *data; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AnchorPK/View/SubViews/XCombatellegCombatConsequentRegard.m b/YuMi/Modules/YMRoom/View/AnchorPK/View/SubViews/XCombatellegCombatConsequentRegard.m new file mode 100644 index 00000000..aadb079d --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnchorPK/View/SubViews/XCombatellegCombatConsequentRegard.m @@ -0,0 +1,420 @@ +// +// YMAnchorPKResultView.m +// YUMI +// +// Created by YUMI on 2022/4/13. +// + +#import "XCombatellegCombatConsequentRegard.h" +#import +#import "DJDKMIMOMColor.h" +#import "NetIndicateRegard.h" +#import "MKJPopup.h" +#import "YUMIMacroUitls.h" +#import "NSArray+Safe.h" +#import "ThroughoutChamberCombatFasciaboardMatrix.h" + +@interface XCombatellegCombatConsequentContributeRegard : UIView + +@property (nonatomic, strong) UIImageView *backgroundIndicateRegard; +@property (nonatomic, strong) UIImageView *mvpFigureRegard; +@property (nonatomic, strong) NetIndicateRegard *intelligenceIndicateRegard; +@property (nonatomic,strong) UILabel *titleLabel; +@property (nonatomic,strong) UILabel *satisfperformanceSequencignation; + +@property (nonatomic, strong) ThroughoutChamberPkRateMatrix *data; + +@end + +@implementation XCombatellegCombatConsequentContributeRegard + +- (instancetype)initWithFrame:(CGRect)frame +{ + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.backgroundIndicateRegard]; + [self addSubview:self.intelligenceIndicateRegard]; + [self addSubview:self.mvpFigureRegard]; + [self addSubview:self.titleLabel]; + [self addSubview:self.satisfperformanceSequencignation]; +} + +- (void)initChildLyRestrictions { + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(40); + make.width.mas_equalTo(159); + }]; + [self.backgroundIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(0); + }]; + + [self.intelligenceIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self); + make.left.mas_equalTo(16); + make.width.height.mas_equalTo(34); + }]; + [self.mvpFigureRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(32); + make.height.mas_equalTo(12); + make.centerX.mas_equalTo(self.intelligenceIndicateRegard); + make.bottom.mas_equalTo(self.intelligenceIndicateRegard).mas_offset(1); + }]; + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.intelligenceIndicateRegard).mas_offset(2); + make.left.mas_equalTo(self.intelligenceIndicateRegard.mas_right).mas_offset(8); + make.height.mas_equalTo(13); + make.right.mas_equalTo(0); + }]; + + [self.satisfperformanceSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.titleLabel); + make.top.mas_equalTo(self.titleLabel.mas_bottom).mas_offset(4); + make.height.mas_equalTo(11); + }]; +} + +#pragma mark - Getters And Setters +- (void)setData:(ThroughoutChamberPkRateMatrix *)data { + + self.titleLabel.text = data.nick ? data.nick : @""; + self.satisfperformanceSequencignation.text = [NSString stringWithFormat:@"PK值:%@", data.amount? data.amount : @""]; + self.intelligenceIndicateRegard.imageUrl = data.avatar; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.textColor = [UIColor whiteColor]; + _titleLabel.font = [UIFont systemFontOfSize:12]; + _titleLabel.text = @""; + } + return _titleLabel; +} + +- (UILabel *)satisfperformanceSequencignation { + if (!_satisfperformanceSequencignation) { + _satisfperformanceSequencignation = [[UILabel alloc] init]; + _satisfperformanceSequencignation.textColor = [UIColor whiteColor]; + _satisfperformanceSequencignation.font = [UIFont systemFontOfSize:10]; + } + return _satisfperformanceSequencignation; +} + +- (UIImageView *)backgroundIndicateRegard { + if (!_backgroundIndicateRegard) { + _backgroundIndicateRegard = [[UIImageView alloc] init]; + _backgroundIndicateRegard.image = [UIImage imageNamed:@"yumi_anchorPK_result_contribute_background"]; + } + return _backgroundIndicateRegard; +} + +- (UIImageView *)mvpFigureRegard { + if (!_mvpFigureRegard) { + _mvpFigureRegard = [[UIImageView alloc] init]; + _mvpFigureRegard.image = [UIImage imageNamed:@"yumi_anchorPK_result_mvp_pic"]; + _mvpFigureRegard.hidden = YES; + } + return _mvpFigureRegard; +} + +- (NetIndicateRegard *)intelligenceIndicateRegard { + if (!_intelligenceIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceIndicateRegard.layer.masksToBounds = YES; + _intelligenceIndicateRegard.layer.cornerRadius = 17; + _intelligenceIndicateRegard.layer.borderColor = [UIColor whiteColor].CGColor; + _intelligenceIndicateRegard.layer.borderWidth = 0.5; + } + return _intelligenceIndicateRegard; +} + +@end + +@interface XCombatellegCombatConsequentRegard() + + +@property (nonatomic, strong) UIImageView *backgroundIndicateRegard; +@property (nonatomic, strong) UIButton *concludeBtuton; +@property (nonatomic, strong) UIView *mainView; +@property (nonatomic, strong) UIImageView *intelligencePenetrateIndicateRegard; +@property (nonatomic, strong) NetIndicateRegard *intelligenceportraitIndicateRegard; +@property (nonatomic, strong) UILabel *chamberChampionSequencignation; +@property (nonatomic, strong) UILabel *combateBWSttessSequencignation; +@property (nonatomic, strong) UIImageView *efficacyChampionBackgroundIndicateRegard; +@property (nonatomic, strong) UILabel *efficacyChampionSequencignation; +@property (nonatomic, strong) UILabel *noneContrbuteSequencignation; +@property (strong, nonatomic) dispatch_source_t timer; + +@end + +@implementation XCombatellegCombatConsequentRegard + +- (void)dealloc { + NSLog(@"销毁了"); + if (self.timer) { + dispatch_source_cancel(self.timer); + self.timer = nil; + } +} + +#pragma mark - life cycle + +- (instancetype)initWithFrame:(CGRect)frame { + if (self = [super initWithFrame:frame]) { + [self initRegard]; + [self initConstrtowardsions]; + } + return self; +} + +- (void)initRegard { + [self addSubview:self.backgroundIndicateRegard]; + [self addSubview:self.concludeBtuton]; + [self addSubview:self.mainView]; + [self addSubview:self.intelligenceportraitIndicateRegard]; + [self addSubview:self.intelligencePenetrateIndicateRegard]; + + [self.mainView addSubview:self.chamberChampionSequencignation]; + [self.mainView addSubview:self.combateBWSttessSequencignation]; + [self.mainView addSubview:self.efficacyChampionBackgroundIndicateRegard]; + [self.mainView addSubview:self.efficacyChampionSequencignation]; + [self.mainView addSubview:self.noneContrbuteSequencignation]; +} + +- (void)initConstrtowardsions { + [self.backgroundIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(0); + make.top.mas_equalTo(47); + make.height.mas_equalTo(370); + }]; + [self.concludeBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self); + make.top.mas_equalTo(self.backgroundIndicateRegard.mas_bottom).mas_offset(23); + make.width.mas_equalTo(72); + make.height.mas_equalTo(32); + }]; + [self.mainView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.backgroundIndicateRegard); + }]; + [self.intelligencePenetrateIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(0); + make.centerX.mas_equalTo(self); + make.width.mas_equalTo(148); + make.height.mas_equalTo(114); + }]; + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(27); + make.width.height.mas_equalTo(64); + make.centerX.mas_equalTo(self); + }]; + [self.chamberChampionSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.intelligencePenetrateIndicateRegard.mas_bottom).mas_offset(15); + make.centerX.mas_equalTo(self.intelligenceportraitIndicateRegard); + make.height.mas_equalTo(15); + }]; + [self.combateBWSttessSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.intelligenceportraitIndicateRegard); + make.top.mas_equalTo(self.chamberChampionSequencignation.mas_bottom).offset(8); + make.height.mas_equalTo(13); + }]; + [self.efficacyChampionBackgroundIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.combateBWSttessSequencignation.mas_bottom).mas_offset(17); + make.centerX.mas_equalTo(self.mainView); + make.width.mas_equalTo(160); + make.height.mas_equalTo(24); + }]; + [self.efficacyChampionSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.centerY.mas_equalTo(self.efficacyChampionBackgroundIndicateRegard); + }]; + [self.noneContrbuteSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.combateBWSttessSequencignation.mas_bottom).mas_offset(92); + make.centerX.mas_equalTo(self); + }]; +} + + +- (void)setData:(ThroughoutChamberCombatFasciaboardMatrix *)data { + if (data.winUid == data.cUid) { + self.backgroundIndicateRegard.image = [UIImage imageNamed:@"yumi_anchorPK_result_win_background"]; + self.intelligencePenetrateIndicateRegard.image = [UIImage imageNamed:@"yumi_anchorPK_result_win_headWear"]; + self.efficacyChampionBackgroundIndicateRegard.image = [UIImage imageNamed:@"yumi_anchorPK_result_win_title_background"]; + } else if (data.winUid == data.aUid) { + self.backgroundIndicateRegard.image = [UIImage imageNamed:@"yumi_anchorPK_result_fail_background"]; + self.intelligencePenetrateIndicateRegard.image = [UIImage imageNamed:@"yumi_anchorPK_result_fail_headWear"]; + self.efficacyChampionBackgroundIndicateRegard.image = [UIImage imageNamed:@"yumi_anchorPK_result_fail_title_background"]; + } else { + self.backgroundIndicateRegard.image = [UIImage imageNamed:@"yumi_anchorPK_result_tie_background"]; + self.intelligencePenetrateIndicateRegard.image = [UIImage imageNamed:@"yumi_anchorPK_result_tie_headWear"]; + self.efficacyChampionBackgroundIndicateRegard.image = [UIImage imageNamed:@"yumi_anchorPK_result_tie_title_background"]; + } + self.intelligenceportraitIndicateRegard.imageUrl = data.cAvatar; + self.chamberChampionSequencignation.text = data.cNick; + self.combateBWSttessSequencignation.text = [NSString stringWithFormat:@"PK值:%lld", data.cAmount]; + if (data.csRank.count > 0) { + self.efficacyChampionBackgroundIndicateRegard.hidden = NO; + self.efficacyChampionSequencignation.hidden = NO; + self.noneContrbuteSequencignation.hidden = YES; + for (int i = 0; i + +NS_ASSUME_NONNULL_BEGIN + +@class ThroughoutChamberPkRateMatrix; +typedef NS_ENUM(NSInteger, KellegCombatPanelConsumerGenre) { + + KellegCombatPanelConsumerGenre_Red_Contribute = 1, + + KellegCombatPanelConsumerGenre_Red_Charm, + + KellegCombatPanelConsumerGenre_Blue_Contribute, + + KellegCombatPanelConsumerGenre_Blue_Charm, +}; + +@interface XCombatellegCombatFasciaboardConsumerRegard : UIView + +@property (nonatomic,assign) KellegCombatPanelConsumerGenre type; + +@property (nonatomic,strong, nullable) ThroughoutChamberPkRateMatrix * fasciadirectorateAbstract; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AnchorPK/View/SubViews/XCombatellegCombatFasciaboardConsumerRegard.m b/YuMi/Modules/YMRoom/View/AnchorPK/View/SubViews/XCombatellegCombatFasciaboardConsumerRegard.m new file mode 100644 index 00000000..77b51de4 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnchorPK/View/SubViews/XCombatellegCombatFasciaboardConsumerRegard.m @@ -0,0 +1,137 @@ +// +// YMAnchorPKPanelUserView.m +// YUMI +// +// Created by YUMI on 2022/4/11. +// + +#import "XCombatellegCombatFasciaboardConsumerRegard.h" + +#import +#import "NetIndicateRegard.h" +#import "DJDKMIMOMColor.h" +#import "UIImage+Utils.h" +#import "ThroughoutChamberCombatFasciaboardMatrix.h" + +@interface XCombatellegCombatFasciaboardConsumerRegard () +@property (nonatomic, strong) UIImageView *mvpIndicateRegard; +@property (nonatomic, strong) NetIndicateRegard *intelligenceportraitIndicateRegard; +@property (nonatomic,strong) UIButton *tangerineBtuton; + +@end + +@implementation XCombatellegCombatFasciaboardConsumerRegard + +#pragma mark - Life Style +- (instancetype)initWithFrame:(CGRect)frame { + if (self = [super initWithFrame:frame]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.intelligenceportraitIndicateRegard]; + [self addSubview:self.mvpIndicateRegard]; + [self addSubview:self.tangerineBtuton]; +} + +- (void)initChildLyRestrictions { + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(36); + make.height.mas_equalTo(42); + }]; + + [self.mvpIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.bottom.right.mas_equalTo(self.intelligenceportraitIndicateRegard); + make.height.mas_equalTo(11); + }]; + + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self); + make.width.height.mas_equalTo(24); + make.centerX.mas_equalTo(self); + }]; + + [self.tangerineBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(self); + make.height.mas_equalTo(11); + make.centerX.mas_equalTo(self); + make.top.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_bottom).mas_offset(4); + }]; +} + + +#pragma mark - getters and setters +- (void)setType:(KellegCombatPanelConsumerGenre)type { + _type = type; + NSString * avatarPlaceName; + switch (type) { + case KellegCombatPanelConsumerGenre_Red_Contribute: + case KellegCombatPanelConsumerGenre_Red_Charm: + avatarPlaceName = @"anchorPK_panel_red_micState"; + break; + case KellegCombatPanelConsumerGenre_Blue_Contribute: + case KellegCombatPanelConsumerGenre_Blue_Charm: + avatarPlaceName = @"anchorPK_panel_blue_micState"; + break; + + default: + break; + } + self.intelligenceportraitIndicateRegard.image = [UIImage imageNamed:avatarPlaceName]; +} + +- (void)setFasciadirectorateAbstract:(ThroughoutChamberPkRateMatrix *)fasciadirectorateAbstract { + _fasciadirectorateAbstract = fasciadirectorateAbstract; + if (_fasciadirectorateAbstract) { + self.intelligenceportraitIndicateRegard.imageUrl = _fasciadirectorateAbstract.avatar; + [self.tangerineBtuton setTitle:fasciadirectorateAbstract.amount forState:UIControlStateNormal]; + self.tangerineBtuton.hidden = !fasciadirectorateAbstract.amount; + } else { + if (self.type == KellegCombatPanelConsumerGenre_Red_Contribute || self.type == KellegCombatPanelConsumerGenre_Red_Charm) { + self.intelligenceportraitIndicateRegard.image = [UIImage imageNamed:@"yumi_anchorPK_panel_red_micState"]; + } else { + self.intelligenceportraitIndicateRegard.image = [UIImage imageNamed:@"yumi_anchorPK_panel_red_micState"]; + } + [self.tangerineBtuton setTitle:@"0" forState:UIControlStateNormal]; + self.tangerineBtuton.hidden = YES; + } + if (self.tag == 1000) { + self.mvpIndicateRegard.hidden = NO; + } +} + +- (UIImageView *)mvpIndicateRegard { + if (!_mvpIndicateRegard) { + _mvpIndicateRegard = [[UIImageView alloc] init]; + _mvpIndicateRegard.image = [UIImage imageNamed:@"yumi_anchorPK_panel_MVP"]; + _mvpIndicateRegard.hidden = YES; + } + return _mvpIndicateRegard; +} + +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _intelligenceportraitIndicateRegard.layer.cornerRadius = 24 / 2; + } + return _intelligenceportraitIndicateRegard; +} + +- (UIButton *)tangerineBtuton { + if (!_tangerineBtuton) { + _tangerineBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_tangerineBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + _tangerineBtuton.titleLabel.font = [UIFont systemFontOfSize:10]; + } + return _tangerineBtuton; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/AnchorPK/View/SubViews/XCombatellegCombatFinishRegard.h b/YuMi/Modules/YMRoom/View/AnchorPK/View/SubViews/XCombatellegCombatFinishRegard.h new file mode 100644 index 00000000..e6f32840 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnchorPK/View/SubViews/XCombatellegCombatFinishRegard.h @@ -0,0 +1,19 @@ +// +// YMAnchorPKFinishView.h +// YUMI +// +// Created by YUMI on 2022/4/13. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class ThroughoutChamberCombatFasciaboardMatrix; +@interface XCombatellegCombatFinishRegard : UIView + +@property (nonatomic, strong) ThroughoutChamberCombatFasciaboardMatrix *data; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AnchorPK/View/SubViews/XCombatellegCombatFinishRegard.m b/YuMi/Modules/YMRoom/View/AnchorPK/View/SubViews/XCombatellegCombatFinishRegard.m new file mode 100644 index 00000000..a79d6419 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnchorPK/View/SubViews/XCombatellegCombatFinishRegard.m @@ -0,0 +1,223 @@ +// +// YMAnchorPKFinishView.m +// YUMI +// +// Created by YUMI on 2022/4/13. +// + +#import "XCombatellegCombatFinishRegard.h" +#import +#import +#import "DJDKMIMOMColor.h" +#import "NetIndicateRegard.h" +#import "YUMIMacroUitls.h" +#import "UIImage+Utils.h" +#import "MKJPopup.h" +#import "ThroughoutChamberCombatFasciaboardMatrix.h" + +@interface XCombatellegCombatFinishRegard () + +@property (nonatomic, strong) UILabel *titleLabel; +@property (nonatomic, strong) UIImageView *backgroundImageView; +@property (nonatomic, strong) NetIndicateRegard *deficitIntelligenceportraitIndicateRegard; +@property (nonatomic, strong) NetIndicateRegard *disappointedIntelligenceportraitIndicateRegard; +@property (nonatomic, strong) UIImageView *vsIndicateRegard; +@property (nonatomic, strong) UIImageView *deficitBWSttessBackgroundIndicateRegard; +@property (nonatomic, strong) UIImageView *disappointedBWSttessBackgroundIndicateRegard; +@property (nonatomic, strong) UILabel *deficitBWSttessSequencignation; +@property (nonatomic, strong) UILabel *disappointedBWSttessSequencignation; +@property (nonatomic, strong) UIButton *concludeBtuton; + +@end + +@implementation XCombatellegCombatFinishRegard + +- (instancetype)initWithFrame:(CGRect)frame { + if (self = [super initWithFrame:frame]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.backgroundImageView]; + [self addSubview:self.titleLabel]; + [self addSubview:self.deficitIntelligenceportraitIndicateRegard]; + [self addSubview:self.disappointedIntelligenceportraitIndicateRegard]; + [self addSubview:self.vsIndicateRegard]; + [self addSubview:self.deficitBWSttessBackgroundIndicateRegard]; + [self addSubview:self.disappointedBWSttessBackgroundIndicateRegard]; + [self addSubview:self.deficitBWSttessSequencignation]; + [self addSubview:self.disappointedBWSttessSequencignation]; + [self addSubview:self.concludeBtuton]; +} + +- (void)initChildLyRestrictions { + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(300); + make.height.mas_equalTo(324); + make.bottom.mas_equalTo(self.backgroundImageView.mas_bottom); + }]; + [self.backgroundImageView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(0); + }]; + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self); + make.top.mas_equalTo(self.backgroundImageView).mas_offset(82); + make.height.mas_equalTo(21); + }]; + [self.deficitIntelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.titleLabel.mas_bottom).mas_offset(52); + make.width.height.mas_equalTo(80); + make.left.mas_equalTo(24); + }]; + [self.vsIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self); + make.centerY.mas_equalTo(self.deficitIntelligenceportraitIndicateRegard); + make.width.mas_equalTo(64); + make.height.mas_equalTo(74); + }]; + [self.disappointedIntelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.deficitIntelligenceportraitIndicateRegard); + make.width.height.mas_equalTo(80); + make.right.mas_equalTo(-24); + }]; + [self.deficitBWSttessBackgroundIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.deficitIntelligenceportraitIndicateRegard.mas_bottom).mas_offset(6); + make.height.mas_equalTo(26); + make.width.mas_equalTo(110); + make.centerX.mas_equalTo(self.deficitIntelligenceportraitIndicateRegard); + }]; + [self.disappointedBWSttessBackgroundIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.deficitBWSttessBackgroundIndicateRegard); + make.height.mas_equalTo(26); + make.width.mas_equalTo(110); + make.centerX.mas_equalTo(self.disappointedIntelligenceportraitIndicateRegard); + }]; + [self.deficitBWSttessSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.centerY.mas_equalTo(self.deficitBWSttessBackgroundIndicateRegard); + }]; + [self.disappointedBWSttessSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.centerY.mas_equalTo(self.disappointedBWSttessBackgroundIndicateRegard); + }]; + [self.concludeBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.top.mas_equalTo(self.backgroundImageView); + make.width.height.mas_equalTo(32); + }]; +} + +#pragma mark - Event Response +- (void)onConcludeBtutonTicktack:(UIButton *)button { + [MKJPopup dismiss]; +} + +- (void)setData:(ThroughoutChamberCombatFasciaboardMatrix *)data { + self.deficitBWSttessSequencignation.text = [NSString stringWithFormat:@"%lld", data.cAmount]; + self.disappointedBWSttessSequencignation.text = [NSString stringWithFormat:@"%lld", data.aAmount]; + self.deficitIntelligenceportraitIndicateRegard.imageUrl = data.cAvatar; + self.disappointedIntelligenceportraitIndicateRegard.imageUrl = data.aAvatar; +} + +#pragma mark - Getters And Setters +- (UIImageView *)backgroundImageView { + if (!_backgroundImageView) { + _backgroundImageView = [[UIImageView alloc] init]; + _backgroundImageView.image = [UIImage imageNamed:@"yumi_anchorPK_invite_background"]; + } + return _backgroundImageView; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.text = YMLocalizedString(@"YUMI_Anchor_PK_Finish_View_0"); + _titleLabel.textColor = [UIColor whiteColor]; + _titleLabel.font = [UIFont systemFontOfSize:15]; + } + return _titleLabel; +} + +- (UIButton *)concludeBtuton { + if (!_concludeBtuton) { + _concludeBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_concludeBtuton addTarget:self action:@selector(onConcludeBtutonTicktack:) forControlEvents:UIControlEventTouchUpInside]; + [_concludeBtuton setBackgroundImage:[UIImage imageNamed:@"yumi_anchorPk_result_close"] forState:UIControlStateNormal]; + } + return _concludeBtuton; +} + +- (NetIndicateRegard *)deficitIntelligenceportraitIndicateRegard { + if (!_deficitIntelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _deficitIntelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _deficitIntelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _deficitIntelligenceportraitIndicateRegard.layer.cornerRadius = 80 / 2; + _deficitIntelligenceportraitIndicateRegard.layer.borderWidth = 2; + _deficitIntelligenceportraitIndicateRegard.layer.borderColor = UIColorFromRGB(0xFE6464).CGColor; + } + return _deficitIntelligenceportraitIndicateRegard; +} + +- (NetIndicateRegard *)disappointedIntelligenceportraitIndicateRegard { + if (!_disappointedIntelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _disappointedIntelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _disappointedIntelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _disappointedIntelligenceportraitIndicateRegard.layer.cornerRadius = 80 / 2; + _disappointedIntelligenceportraitIndicateRegard.layer.borderWidth = 2; + _disappointedIntelligenceportraitIndicateRegard.layer.borderColor = UIColorFromRGB(0x3794FE).CGColor; + } + return _disappointedIntelligenceportraitIndicateRegard; +} + +- (UIImageView *)deficitBWSttessBackgroundIndicateRegard { + if (!_deficitBWSttessBackgroundIndicateRegard) { + _deficitBWSttessBackgroundIndicateRegard = [[UIImageView alloc] init]; + _deficitBWSttessBackgroundIndicateRegard.image = [UIImage imageNamed:@"yumi_anchorPK_result_redValue_background"]; + } + return _deficitBWSttessBackgroundIndicateRegard; +} + +- (UIImageView *)disappointedBWSttessBackgroundIndicateRegard { + if (!_disappointedBWSttessBackgroundIndicateRegard) { + _disappointedBWSttessBackgroundIndicateRegard = [[UIImageView alloc] init]; + _disappointedBWSttessBackgroundIndicateRegard.image = [UIImage imageNamed:@"yumi_anchorPK_result_blueValue_background"]; + } + return _disappointedBWSttessBackgroundIndicateRegard; +} + +- (UILabel *)deficitBWSttessSequencignation { + if (!_deficitBWSttessSequencignation) { + _deficitBWSttessSequencignation = [[UILabel alloc] init]; + _deficitBWSttessSequencignation.font = [UIFont systemFontOfSize:12]; + _deficitBWSttessSequencignation.textColor = UIColorFromRGB(0xFF0000); + _deficitBWSttessSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _deficitBWSttessSequencignation; +} + +- (UILabel *)disappointedBWSttessSequencignation { + if (!_disappointedBWSttessSequencignation) { + _disappointedBWSttessSequencignation = [[UILabel alloc] init]; + _disappointedBWSttessSequencignation.font = [UIFont systemFontOfSize:12]; + _disappointedBWSttessSequencignation.textColor = UIColorFromRGB(0x0060D1); + _disappointedBWSttessSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _disappointedBWSttessSequencignation; +} + +- (UIImageView *)vsIndicateRegard { + if (!_vsIndicateRegard) { + _vsIndicateRegard = [[UIImageView alloc] init]; + _vsIndicateRegard.image = [UIImage imageNamed:@"yumi_anchorPk_panel_vs"]; + } + return _vsIndicateRegard; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/AnchorPK/View/SubViews/XCombatellegCombatPreadominantRegard.h b/YuMi/Modules/YMRoom/View/AnchorPK/View/SubViews/XCombatellegCombatPreadominantRegard.h new file mode 100644 index 00000000..6527de2a --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnchorPK/View/SubViews/XCombatellegCombatPreadominantRegard.h @@ -0,0 +1,18 @@ +// +// YMAnchorPKRuleView.h +// YUMI +// +// Created by YUMI on 2022/4/8. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface XCombatellegCombatPreadominantRegard : UIView + +@property (nonatomic, copy) NSString *preadominantBWSttr; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AnchorPK/View/SubViews/XCombatellegCombatPreadominantRegard.m b/YuMi/Modules/YMRoom/View/AnchorPK/View/SubViews/XCombatellegCombatPreadominantRegard.m new file mode 100644 index 00000000..ede109bd --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnchorPK/View/SubViews/XCombatellegCombatPreadominantRegard.m @@ -0,0 +1,120 @@ +// +// YMAnchorPKRuleView.m +// YUMI +// +// Created by YUMI on 2022/4/8. +// + +#import "XCombatellegCombatPreadominantRegard.h" +#import +#import "DJDKMIMOMColor.h" +#import "MKJPopup.h" +#import "UIImage+Utils.h" + +@interface XCombatellegCombatPreadominantRegard () +@property (nonatomic, strong) UILabel *titleLabel; +@property (nonatomic, strong) UIImageView *backgroundImageView; +@property (nonatomic, strong) UITextView *preadominantEssayRegard; +@property (nonatomic, strong) UIButton *concludeBtuton; + +@end + + +@implementation XCombatellegCombatPreadominantRegard + +- (instancetype)initWithFrame:(CGRect)frame { + if (self = [super initWithFrame:frame]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.backgroundImageView]; + [self addSubview:self.titleLabel]; + [self addSubview:self.preadominantEssayRegard]; + [self addSubview:self.concludeBtuton]; +} + +- (void)initChildLyRestrictions { + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(300); + make.height.mas_equalTo(324); + make.bottom.mas_equalTo(self.backgroundImageView.mas_bottom); + }]; + [self.backgroundImageView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(0); + }]; + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self); + make.top.mas_equalTo(self.backgroundImageView).mas_offset(82); + make.height.mas_equalTo(21); + }]; + [self.preadominantEssayRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.titleLabel.mas_bottom).mas_offset(30); + make.left.mas_equalTo(18); + make.right.mas_equalTo(-18); + make.bottom.mas_equalTo(-20); + }]; + [self.concludeBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.top.mas_equalTo(self.backgroundImageView); + make.width.height.mas_equalTo(32); + }]; +} + +#pragma mark - Event Response +- (void)onConcludeBtutonTicktack:(UIButton *)button { + [MKJPopup dismiss]; +} + +- (void)setPreadominantBWSttr:(NSString *)preadominantBWSttr { + if ([preadominantBWSttr containsString:@"\\n"]) { + preadominantBWSttr = [preadominantBWSttr stringByReplacingOccurrencesOfString:@"\\n" withString:@"\n"]; + } + self.preadominantEssayRegard.text = preadominantBWSttr; +} + +#pragma mark - Getters And Setters +- (UIImageView *)backgroundImageView { + if (!_backgroundImageView) { + _backgroundImageView = [[UIImageView alloc] init]; + _backgroundImageView.image = [UIImage imageNamed:@"yumi_anchorPK_invite_background"]; + } + return _backgroundImageView; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.text = YMLocalizedString(@"YUMI_Anchor_PK_Rule_View_0"); + _titleLabel.textColor = [UIColor whiteColor]; + _titleLabel.font = [UIFont systemFontOfSize:15]; + } + return _titleLabel; +} + +- (UITextView *)preadominantEssayRegard { + if (!_preadominantEssayRegard) { + _preadominantEssayRegard = [[UITextView alloc] init]; + _preadominantEssayRegard.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _preadominantEssayRegard.backgroundColor = [UIColor clearColor]; + _preadominantEssayRegard.font = [UIFont systemFontOfSize:12]; + _preadominantEssayRegard.scrollEnabled = NO; + _preadominantEssayRegard.editable = NO; + _preadominantEssayRegard.text = @""; + } + return _preadominantEssayRegard; +} + +- (UIButton *)concludeBtuton { + if (!_concludeBtuton) { + _concludeBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_concludeBtuton addTarget:self action:@selector(onConcludeBtutonTicktack:) forControlEvents:UIControlEventTouchUpInside]; + [_concludeBtuton setBackgroundImage:[UIImage imageNamed:@"yumi_anchorPk_result_close"] forState:UIControlStateNormal]; + } + return _concludeBtuton; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/AnchorPK/View/SubViews/XCombatellegPkFasciaboardRegard.h b/YuMi/Modules/YMRoom/View/AnchorPK/View/SubViews/XCombatellegPkFasciaboardRegard.h new file mode 100644 index 00000000..34919aa0 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnchorPK/View/SubViews/XCombatellegPkFasciaboardRegard.h @@ -0,0 +1,32 @@ +// +// YMAnchorPkPanelView.h +// YUMI +// +// Created by YUMI on 2022/4/11. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class XCombatellegPkFasciaboardRegard, ThroughoutChamberCombatFasciaboardMatrix, AttachmentMatrix; +@protocol XCombatellegPkPanelRegardRepresendtation + +- (void)xCombatellegCombatFasciaboardRegard:(XCombatellegPkFasciaboardRegard *)view EvidenceConsumerSolitaire:(NSString *)uid; + +- (void)xCombatellegCombatFasciaboardRegard:(XCombatellegPkFasciaboardRegard *)view onlookRoom:(NSString *)roomUid; +- (void)xCombatellegCombatFasciaboardRegardConsidertowardsionAccomplishment; +- (void)xCombatellegCombatFasciaboardRegardPenaltyComputtowardsionPubescenceConclude; + +@end + +@interface XCombatellegPkFasciaboardRegard : UIView + +- (void)unfoildComputtowardsiondownAboutIntrtowardsemporal:(long)time; +@property (nonatomic,strong, nullable) ThroughoutChamberCombatFasciaboardMatrix *combatFasciadirectorateAbstract; +@property (nonatomic,weak) id delegate; +- (void)replacementThroughoutCombatRegardTowardsoloudspeaker; +- (void)refurbishOtherLoudspeakerPosition:(AttachmentMatrix *)attachment; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AnchorPK/View/SubViews/XCombatellegPkFasciaboardRegard.m b/YuMi/Modules/YMRoom/View/AnchorPK/View/SubViews/XCombatellegPkFasciaboardRegard.m new file mode 100644 index 00000000..4fedbe44 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnchorPK/View/SubViews/XCombatellegPkFasciaboardRegard.m @@ -0,0 +1,783 @@ +// +// YMAnchorPkPanelView.m +// YUMI +// +// Created by YUMI on 2022/4/11. +// + +#import "XCombatellegPkFasciaboardRegard.h" +#import +#import +#import "DJDKMIMOMColor.h" +#import "NetIndicateRegard.h" +#import "YUMIMacroUitls.h" +#import "UIImage+Utils.h" +#import "UIButton+EnlargeTouchArea.h" +#import "Intratemporalstamp.h" +#import "Api+UserCard.h" +#import "XNDJTBWGLoadingTool.h" +#import "AccountAbstractStorage.h" +#import "NSArray+Safe.h" +#import "RealtimackExecutive.h" +#import "ConsumerAbstractMatrix.h" +#import "ThroughoutChamberCombatFasciaboardMatrix.h" +#import "AttachmentMatrix.h" +#import "XCombatellegCombatFasciaboardConsumerRegard.h" +#import "Api+AnchorPk.h" + +@interface XCombatellegPkFasciaboardRegard () + +@property (nonatomic, strong) UIImageView *encourageIndicateRegard; +#pragma mark - 规则的view +@property (nonatomic, strong) UIImageView *deficitSatelliteIndicateRegard; +@property (nonatomic, strong) UIImageView *disappointedSatelliteIndicateRegard; +@property (nonatomic, strong) UILabel *combateDeclareSequencignation; +@property (nonatomic, strong) UILabel *intratemporalSequencignation; +@property (nonatomic,strong) UIStackView *stackView; +#pragma mark -进度条内容 +@property (nonatomic, strong) UIView *progressView; +@property (nonatomic, strong) UIView *growthSatisfperformanceRegard; +@property (nonatomic, strong) UIImageView *deficitComputationIndicateRegard; +@property (nonatomic, strong) UILabel *deficitComputationSequencignation; +@property (nonatomic, strong) UIImageView *disappointedComputationIndicateRegard; +@property (nonatomic, strong) UILabel *disappointedComputationSequencignation; +@property (strong, nonatomic) SVGAParser *anatomiser; +@property (nonatomic, strong) SVGAImageView *svgExhibitionRegard; +#pragma mark - 队伍的队友的view +@property (nonatomic,strong) UIStackView *deficitEfficacyHierarchyRegard; +@property (nonatomic,strong) UIStackView *disappointedEfficacyHierarchyRegard; +@property (strong, nonatomic) dispatch_source_t timer; +@property (nonatomic, strong) UIImageView *deficitConsequentIndicateRegard; +@property (nonatomic, strong) NetIndicateRegard *separateIntelligenceportraitIndicateRegard; +@property (nonatomic, strong) UIImageView *separateConsequentIndicateRegard; +@property (nonatomic, strong) UIStackView *deficitMonicerHierarchyRegard; +@property (nonatomic, strong) UILabel *deficitMonicerSequencignation; +@property (nonatomic, strong) UIButton *considerationBtuton; +@property (nonatomic, strong) UIStackView *separateHierarchyRegard; +@property (nonatomic, strong) UILabel *separateMonicerSequencignation; +@property (nonatomic, strong) UIButton *followBtuton; +@property (nonatomic, strong) UIButton *separateLoudspeakerBtuton; +@property (nonatomic, assign) BOOL isPossessExhibit; + +@end + +@implementation XCombatellegPkFasciaboardRegard + +#pragma mark - life cycle + +- (void)dealloc { + NSLog(@"销毁了"); + [self replacementThroughoutCombatRegardTowardsoloudspeaker]; +} + +- (instancetype)initWithFrame:(CGRect)frame { + if (self = [super initWithFrame:frame]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Public Method +- (void)replacementThroughoutCombatRegardTowardsoloudspeaker { + if (self.timer) { + dispatch_source_cancel(self.timer); + self.timer = nil; + } + self.combatFasciadirectorateAbstract = nil; +} + +- (void)refurbishOtherLoudspeakerPosition:(AttachmentMatrix *)attachment { + NSNumber *micStatus = attachment.data[@"aMicStatus"]; + NSNumber *aUid = attachment.data[@"aUid"]; + self.separateLoudspeakerBtuton.selected = !micStatus.boolValue; + [[RealtimackExecutive instance] muteSole:!micStatus.boolValue userId:[NSString stringWithFormat:@"%@", aUid]]; + if (!micStatus.boolValue) { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:YMLocalizedString(@"YUMI_Anchor_Pk_Panel_View_0")]; + self.separateLoudspeakerBtuton.hidden = NO; + } else { + self.separateLoudspeakerBtuton.hidden = YES; + } + if ([self.combatFasciadirectorateAbstract.cUid isEqualToString:[AccountAbstractStorage instance].acquireCid]) { + self.separateLoudspeakerBtuton.hidden = NO; + } +} + +- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event { + UIView *view = [super hitTest:point withEvent:event]; + return view == self?nil:view; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.encourageIndicateRegard]; + [self.encourageIndicateRegard addSubview:self.stackView]; + [self.stackView addArrangedSubview:self.combateDeclareSequencignation]; + [self.stackView addArrangedSubview:self.intratemporalSequencignation]; + + [self.encourageIndicateRegard addSubview:self.progressView]; + [self.progressView addSubview:self.growthSatisfperformanceRegard]; + [self.growthSatisfperformanceRegard addSubview:self.deficitComputationIndicateRegard]; + [self.growthSatisfperformanceRegard addSubview:self.disappointedComputationIndicateRegard]; + [self.growthSatisfperformanceRegard addSubview:self.deficitSatelliteIndicateRegard]; + [self.growthSatisfperformanceRegard addSubview:self.disappointedSatelliteIndicateRegard]; + [self.growthSatisfperformanceRegard addSubview:self.svgExhibitionRegard]; + + [self.encourageIndicateRegard addSubview:self.deficitEfficacyHierarchyRegard]; + [self.encourageIndicateRegard addSubview:self.disappointedEfficacyHierarchyRegard]; + [self.growthSatisfperformanceRegard addSubview:self.deficitComputationSequencignation]; + [self.growthSatisfperformanceRegard addSubview:self.disappointedComputationSequencignation]; + + [self addSubview:self.deficitConsequentIndicateRegard]; + [self addSubview:self.separateIntelligenceportraitIndicateRegard]; + [self addSubview:self.separateConsequentIndicateRegard]; + [self addSubview:self.deficitMonicerHierarchyRegard]; + [self addSubview:self.separateLoudspeakerBtuton]; + [self.deficitMonicerHierarchyRegard addArrangedSubview:self.deficitMonicerSequencignation]; + [self.deficitMonicerHierarchyRegard addArrangedSubview:self.considerationBtuton]; + [self addSubview:self.separateHierarchyRegard]; + [self.separateHierarchyRegard addArrangedSubview:self.separateMonicerSequencignation]; + [self.separateHierarchyRegard addArrangedSubview:self.followBtuton]; + [self initConsumerChildLys]; + NSString * anatomiser1Name = [NSString stringWithFormat:@"%@/anchorPK_progress.svga", API_Image_URL]; + [self.anatomiser parseWithURL:[NSURL URLWithString:anatomiser1Name] completionBlock:^(SVGAVideoEntity * _Nonnull videoItem) { + self.svgExhibitionRegard.loops = INT_MAX; + self.svgExhibitionRegard.clearsAfterStop = NO; + self.svgExhibitionRegard.videoItem = videoItem; + [self.svgExhibitionRegard startAnimation]; + } failureBlock:^(NSError * _Nonnull error) { + + }]; +} + +- (void)initConsumerChildLys { + for (int i = 0; i < 3; i++) { + XCombatellegCombatFasciaboardConsumerRegard * consumerRegard = [[XCombatellegCombatFasciaboardConsumerRegard alloc] init]; + consumerRegard.tag = (1000 + i); + consumerRegard.type = KellegCombatPanelConsumerGenre_Red_Contribute; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(betowardsConsumerRecognition:)]; + [consumerRegard addGestureRecognizer:tap]; + [self.deficitEfficacyHierarchyRegard addArrangedSubview:consumerRegard]; + } + + for (int i = 0; i < 3; i++) { + XCombatellegCombatFasciaboardConsumerRegard * consumerRegard = [[XCombatellegCombatFasciaboardConsumerRegard alloc] init]; + consumerRegard.tag = (1000 + i); + consumerRegard.type = KellegCombatPanelConsumerGenre_Blue_Contribute; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(betowardsConsumerRecognition:)]; + [consumerRegard addGestureRecognizer:tap]; + [self.disappointedEfficacyHierarchyRegard addArrangedSubview:consumerRegard]; + } +} + +- (void)initChildLyRestrictions { + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(KScreenWidth); + make.height.mas_equalTo(330 - 87); + }]; + + [self.encourageIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.bottom.mas_equalTo(-16); + make.width.mas_equalTo(284); + make.height.mas_equalTo(84); + make.centerX.mas_equalTo(self); + }]; + [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.encourageIndicateRegard); + make.centerX.mas_equalTo(self); + make.height.mas_equalTo(21); + }]; + + [self.deficitSatelliteIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.encourageIndicateRegard).mas_offset(15); + make.left.mas_equalTo(self.encourageIndicateRegard.mas_left).mas_offset(-30); + make.width.height.mas_equalTo(26); + }]; + [self.disappointedSatelliteIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.deficitSatelliteIndicateRegard); + make.left.mas_equalTo(self.encourageIndicateRegard.mas_right).mas_offset(4); + make.width.height.mas_equalTo(26); + }]; + + + [self.progressView mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.encourageIndicateRegard); + make.width.mas_equalTo(305); + make.height.mas_equalTo(16); + make.centerY.mas_equalTo(self.deficitSatelliteIndicateRegard); + }]; + + [self.growthSatisfperformanceRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.progressView); + }]; + + [self.deficitComputationIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(0); + make.height.mas_equalTo(16); + make.top.mas_equalTo(0); + make.right.mas_equalTo(self.disappointedComputationIndicateRegard.mas_left); + }]; + + [self.deficitComputationSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.growthSatisfperformanceRegard.mas_left).offset(17); + make.centerY.mas_equalTo(self.growthSatisfperformanceRegard); + }]; + + [self.disappointedComputationIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(0); + make.height.mas_equalTo(self.deficitComputationIndicateRegard); + make.centerY.mas_equalTo(self.deficitComputationIndicateRegard); + make.width.mas_equalTo(305 * 0.5); + }]; + + [self.disappointedComputationSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self.growthSatisfperformanceRegard.mas_right).offset(-17); + make.centerY.mas_equalTo(self.growthSatisfperformanceRegard); + }]; + + [self.svgExhibitionRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.disappointedComputationIndicateRegard.mas_left); + make.centerY.mas_equalTo(self.deficitComputationIndicateRegard); + make.height.mas_equalTo(26); + make.width.mas_equalTo(25); + }]; + + [self.deficitEfficacyHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.bottom.mas_equalTo(self.encourageIndicateRegard); + make.left.mas_equalTo(self.encourageIndicateRegard).mas_offset(12); + make.height.mas_equalTo(42); + }]; + [self.disappointedEfficacyHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(self.deficitEfficacyHierarchyRegard); + make.right.mas_equalTo(self.encourageIndicateRegard).mas_offset(-12); + make.bottom.mas_equalTo(self.deficitEfficacyHierarchyRegard); + }]; + + [self.deficitConsequentIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo((KScreenWidth - 64) * 0.5 - 26 - 85 * 0.5 - 66 * 0.5); + make.bottom.mas_equalTo(self.separateConsequentIndicateRegard); + make.width.mas_equalTo(66); + make.height.mas_equalTo(48); + }]; + + + [self.separateIntelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo((KScreenWidth + 64) * 0.5 + 26 - 2.5); + make.top.mas_equalTo(0); + make.width.height.mas_equalTo(90); + }]; + [self.separateConsequentIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.separateIntelligenceportraitIndicateRegard); + make.bottom.mas_equalTo(self.separateIntelligenceportraitIndicateRegard).mas_offset(12); + make.width.mas_equalTo(66); + make.height.mas_equalTo(48); + }]; + [self.separateLoudspeakerBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.bottom.right.mas_equalTo(self.separateIntelligenceportraitIndicateRegard); + make.width.height.mas_equalTo(24); + }]; + [self.deficitMonicerHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.separateHierarchyRegard); + make.centerX.mas_equalTo(self.deficitConsequentIndicateRegard); + make.height.mas_equalTo(20); + }]; + [self.considerationBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(30, 20)); + }]; + + [self.separateHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.separateIntelligenceportraitIndicateRegard.mas_bottom).mas_offset(17); + make.centerX.mas_equalTo(self.separateIntelligenceportraitIndicateRegard); + make.height.mas_equalTo(20); + }]; + [self.followBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(30, 20)); + }]; +} + +#pragma mark - 倒计时 +- (void)unfoildComputtowardsiondownAboutIntrtowardsemporal:(long)time { + __block long tempTime = time; + if (self.timer == nil) { + @kWeakify(self); + dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); + self.timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, queue); + dispatch_source_set_timer(self.timer,dispatch_walltime(NULL, 0),1.0*NSEC_PER_SEC, 0); + dispatch_source_set_event_handler(self.timer, ^{ + @kStrongify(self); + if(tempTime <= 0){ + dispatch_source_cancel(self.timer); + self.timer = nil; + dispatch_async(dispatch_get_main_queue(), ^{ + if (self.combatFasciadirectorateAbstract.pkState == ThroughoutChamberPkDeclareGenrePking) { + self.intratemporalSequencignation.text = YMLocalizedString(@"YUMI_Anchor_Pk_Panel_View_1"); + } else { + self.intratemporalSequencignation.text = @"00:00"; + if (self.delegate && [self.delegate respondsToSelector:@selector(xCombatellegCombatFasciaboardRegardPenaltyComputtowardsionPubescenceConclude)]) { + [self.delegate xCombatellegCombatFasciaboardRegardPenaltyComputtowardsionPubescenceConclude]; + } + } + }); + } else { + dispatch_async(dispatch_get_main_queue(), ^{ + + [self KellegCombatDeficituceddownUnfoild:tempTime]; + }); + tempTime--; + } + }); + dispatch_resume(self.timer); + } +} + +- (void)KellegCombatDeficituceddownUnfoild:(NSInteger)time { + NSInteger minute = time / 60; + NSInteger second = (time % 60); + NSInteger hour = time/3600; + NSString *timeStr; + if (hour > 0) { + minute = minute % 60; + timeStr = [NSString stringWithFormat:@"%02zd:%02zd:%02zd", hour, minute, second]; + } else { + timeStr = [NSString stringWithFormat:@"%02zd:%02zd", minute, second]; + } + self.intratemporalSequencignation.text = timeStr; + if (time <= 30) { + self.intratemporalSequencignation.textColor = UIColorFromRGB(0xFF87A1); + } else { + self.intratemporalSequencignation.textColor = UIColorFromRGB(0xFFFFFF); + } +} + +- (void)betowardsConsumerRecognition:(UITapGestureRecognizer *)tap { + XCombatellegCombatFasciaboardConsumerRegard * consumerRegard= (XCombatellegCombatFasciaboardConsumerRegard *)tap.view; + if (consumerRegard.fasciadirectorateAbstract && consumerRegard.fasciadirectorateAbstract.uid.length > 0 && self.delegate && [self.delegate respondsToSelector:@selector(xCombatellegCombatFasciaboardRegard:EvidenceConsumerSolitaire:)]) { + [self.delegate xCombatellegCombatFasciaboardRegard:self EvidenceConsumerSolitaire:consumerRegard.fasciadirectorateAbstract.uid]; + } +} + +- (void)onBWSttralongBtutonTicktack:(UIButton *)button { + if (self.delegate && [self.delegate respondsToSelector:@selector(xCombatellegCombatFasciaboardRegard:onlookRoom:)]) { + [self.delegate xCombatellegCombatFasciaboardRegard:self onlookRoom:self.combatFasciadirectorateAbstract.aUid]; + } +} + +- (void)onConsidertowardsionBtutonTicktack:(UIButton *)button { + NSString * uid = [[AccountAbstractStorage instance] acquireCid]; + NSString * ticket = [[AccountAbstractStorage instance] acquireTicket]; + [Api considertowardsionImplementtowardsion:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + self.considerationBtuton.hidden = YES; + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:YMLocalizedString(@"YUMI_Anchor_Pk_Panel_View_2")]; + if (self.delegate && [self.delegate respondsToSelector:@selector(xCombatellegCombatFasciaboardRegardConsidertowardsionAccomplishment)]) { + [self.delegate xCombatellegCombatFasciaboardRegardConsidertowardsionAccomplishment]; + } + } else { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:msg]; + } + } uid:uid likedUid:self.combatFasciadirectorateAbstract.cUid ticket:ticket type:@"1"]; +} + +- (void)onExhibitConsumerSolitaire:(UITapGestureRecognizer *)ges { + if (self.delegate && [self.delegate respondsToSelector:@selector(xCombatellegCombatFasciaboardRegard:EvidenceConsumerSolitaire:)]) { + [self.delegate xCombatellegCombatFasciaboardRegard:self EvidenceConsumerSolitaire:self.combatFasciadirectorateAbstract.aUid]; + } +} + +#pragma mark - getters and setters +- (void)setCombatFasciadirectorateAbstract:(ThroughoutChamberCombatFasciaboardMatrix *)combatFasciadirectorateAbstract { + _combatFasciadirectorateAbstract = combatFasciadirectorateAbstract; + if (_combatFasciadirectorateAbstract) { + if (!self.isPossessExhibit) { + self.isPossessExhibit = YES; + NSString * uid = [[AccountAbstractStorage instance] acquireCid]; + if ([uid isEqualToString:combatFasciadirectorateAbstract.cUid]) { + self.considerationBtuton.hidden = YES; + } else if(combatFasciadirectorateAbstract.cUid){ + [Api considertowardsionPositionImplementtowardsion:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + BOOL isLike = ((NSNumber *)data.data).boolValue; + self.considerationBtuton.hidden = isLike; + } uid:uid isLikeUid:combatFasciadirectorateAbstract.cUid]; + } + } + if (combatFasciadirectorateAbstract.pkState == ThroughoutChamberPkDeclareGenrePenalty) { + self.combateDeclareSequencignation.text = YMLocalizedString(@"YUMI_Anchor_Pk_Panel_View_3"); + if (self.timer) { + dispatch_source_cancel(self.timer); + self.timer = nil; + } + [Intratemporalstamp acquireInternetEngagementAboutAccomplishment:^(NSTimeInterval timeInterval) { + timeInterval = timeInterval * 1000; + long aTime = (combatFasciadirectorateAbstract.penaltyEndTime - timeInterval) / 1000; + [self unfoildComputtowardsiondownAboutIntrtowardsemporal:aTime]; + } failure:^(NSError * _Nonnull error) { + NSDate *datenow = [NSDate date]; + long time2 = (long)([datenow timeIntervalSince1970]*1000); + long aTime = (combatFasciadirectorateAbstract.penaltyEndTime - time2) / 1000; + [self unfoildComputtowardsiondownAboutIntrtowardsemporal:aTime]; + }]; + self.deficitConsequentIndicateRegard.hidden = NO; + self.separateConsequentIndicateRegard.hidden = NO; + if ([combatFasciadirectorateAbstract.winUid isEqualToString:combatFasciadirectorateAbstract.cUid]) { + self.deficitConsequentIndicateRegard.image = [UIImage imageNamed:@"yumi_anchorPk_micro_result_win"]; + self.separateConsequentIndicateRegard.image = [UIImage imageNamed:@"yumi_anchorPk_micro_result_fail"]; + } else if ([combatFasciadirectorateAbstract.winUid isEqualToString:combatFasciadirectorateAbstract.aUid]) { + self.deficitConsequentIndicateRegard.image = [UIImage imageNamed:@"yumi_anchorPk_micro_result_fail"]; + self.separateConsequentIndicateRegard.image = [UIImage imageNamed:@"yumi_anchorPk_micro_result_win"]; + } else { + self.deficitConsequentIndicateRegard.image = [UIImage imageNamed:@"yumi_anchorPk_micro_result_tie"]; + self.separateConsequentIndicateRegard.image = [UIImage imageNamed:@"yumi_anchorPk_micro_result_tie"]; + } + } else { + self.deficitConsequentIndicateRegard.hidden = YES; + self.separateConsequentIndicateRegard.hidden = YES; + self.combateDeclareSequencignation.text = @"PK"; + [Intratemporalstamp acquireInternetEngagementAboutAccomplishment:^(NSTimeInterval timeInterval) { + timeInterval = timeInterval * 1000; + long aTime = (combatFasciadirectorateAbstract.endTime - timeInterval) / 1000; + [self unfoildComputtowardsiondownAboutIntrtowardsemporal:aTime]; + } failure:^(NSError * _Nonnull error) { + NSDate *datenow = [NSDate date]; + long time2 = (long)([datenow timeIntervalSince1970]*1000); + long aTime = (combatFasciadirectorateAbstract.endTime - time2) / 1000; + [self unfoildComputtowardsiondownAboutIntrtowardsemporal:aTime]; + }]; + } + if (_combatFasciadirectorateAbstract.cNick.length > 7) { + _combatFasciadirectorateAbstract.cNick = [NSString stringWithFormat:@"%@…", [_combatFasciadirectorateAbstract.cNick substringToIndex:7]]; + } + + if (_combatFasciadirectorateAbstract.aNick.length > 7) { + _combatFasciadirectorateAbstract.aNick = [NSString stringWithFormat:@"%@…", [_combatFasciadirectorateAbstract.aNick substringToIndex:7]]; + } + + self.deficitComputationSequencignation.text = [NSString stringWithFormat:@"%lld", _combatFasciadirectorateAbstract.cAmount]; + self.disappointedComputationSequencignation.text = [NSString stringWithFormat:@"%lld", _combatFasciadirectorateAbstract.aAmount]; + for (int i = 0; i<_combatFasciadirectorateAbstract.csRank.count; i++) { + ThroughoutChamberPkRateMatrix * rankModel = [_combatFasciadirectorateAbstract.csRank secureGroalTowardsIndictowardsrix1:i]; + if (i >= self.deficitEfficacyHierarchyRegard.subviews.count) { + break; + } + XCombatellegCombatFasciaboardConsumerRegard *consumerRegard = self.deficitEfficacyHierarchyRegard.subviews[i]; + consumerRegard.fasciadirectorateAbstract = rankModel; + } + + for (int i = 0; i<_combatFasciadirectorateAbstract.asRank.count; i++) { + ThroughoutChamberPkRateMatrix * rankModel = [_combatFasciadirectorateAbstract.asRank secureGroalTowardsIndictowardsrix1:i]; + if (i >= self.disappointedEfficacyHierarchyRegard.subviews.count) { + break; + } + XCombatellegCombatFasciaboardConsumerRegard *consumerRegard = self.disappointedEfficacyHierarchyRegard.subviews[i]; + consumerRegard.fasciadirectorateAbstract = rankModel; + } + + if (_combatFasciadirectorateAbstract.aPercent > 1) { + _combatFasciadirectorateAbstract.aPercent = 1; + } + CGFloat width = 305 * _combatFasciadirectorateAbstract.aPercent; + if (width <= 6.5) { + width = 6.5; + } else if (width >= 305 - 5.5) { + width = 305 - 5.5; + } + [self.disappointedComputationIndicateRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(width); + }]; + self.separateIntelligenceportraitIndicateRegard.imageUrl = combatFasciadirectorateAbstract.aAvatar; + self.separateMonicerSequencignation.text = combatFasciadirectorateAbstract.aNick; + self.deficitMonicerSequencignation.text = combatFasciadirectorateAbstract.cNick; + self.followBtuton.hidden = [combatFasciadirectorateAbstract.cUid isEqualToString:[AccountAbstractStorage instance].acquireCid]; + if (combatFasciadirectorateAbstract.aMicStatus == KellegCombatOtherLoudspeakerPosition_Close) { + self.separateLoudspeakerBtuton.hidden = NO; + } else { + self.separateLoudspeakerBtuton.hidden = ![combatFasciadirectorateAbstract.cUid isEqualToString:[AccountAbstractStorage instance].acquireCid]; + } + self.separateLoudspeakerBtuton.selected = combatFasciadirectorateAbstract.aMicStatus == KellegCombatOtherLoudspeakerPosition_Close; + [[RealtimackExecutive instance] muteSole:combatFasciadirectorateAbstract.aMicStatus == KellegCombatOtherLoudspeakerPosition_Close userId:combatFasciadirectorateAbstract.aUid]; + } else { + self.deficitComputationSequencignation.text = @"0"; + self.disappointedComputationSequencignation.text = @"0"; + for (int i = 0; i + +NS_ASSUME_NONNULL_BEGIN + +@interface XCombatellegRandomCombatPreadominantRegard : UIView +@property (nonatomic,copy) NSString *preadominantBWSttr; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AnchorPK/View/SubViews/XCombatellegRandomCombatPreadominantRegard.m b/YuMi/Modules/YMRoom/View/AnchorPK/View/SubViews/XCombatellegRandomCombatPreadominantRegard.m new file mode 100644 index 00000000..a1ebd1f8 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnchorPK/View/SubViews/XCombatellegRandomCombatPreadominantRegard.m @@ -0,0 +1,266 @@ +// +// YMAnchorRandomPKRuleView.m +// YUMI +// +// Created by YUMI on 2022/12/23. +// + +#import "XCombatellegRandomCombatPreadominantRegard.h" +#import +#import "DJDKMIMOMColor.h" +#import "MKJPopup.h" +#import "UIImage+Utils.h" + +@interface XCombatellegRandomCombatPreadominantRegard () +@property (nonatomic, strong) UILabel *titleLabel; +@property (nonatomic, strong) UIImageView *backgroundImageView; + +@property (nonatomic,strong) UIScrollView *scrollView; +@property (nonatomic,strong) UILabel *preadominantSequencignation; +@property (nonatomic,strong) UILabel *arbitrarySequencignation; +@property (nonatomic,strong) UIImageView *arbitraryIndicateRegard; +@property (nonatomic,strong) UILabel *arbitrarySatisfperformanceGbs; + +@property (nonatomic,strong) UILabel *centiretyforSequencignation; +@property (nonatomic,strong) UIImageView *centiretyforIndicateRegard; +@property (nonatomic,strong) UILabel *centiretyforSatisfperformanceGbs; +@property (nonatomic, strong) UIButton *concludeBtuton; + +@end + + +@implementation XCombatellegRandomCombatPreadominantRegard + +- (instancetype)initWithFrame:(CGRect)frame { + if (self = [super initWithFrame:frame]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.backgroundImageView]; + [self addSubview:self.titleLabel]; + [self addSubview:self.concludeBtuton]; + [self.backgroundImageView addSubview:self.scrollView]; + + [self.scrollView addSubview:self.preadominantSequencignation]; + + [self.scrollView addSubview:self.arbitraryIndicateRegard]; + [self.scrollView addSubview:self.arbitrarySequencignation]; + [self.scrollView addSubview:self.arbitrarySatisfperformanceGbs]; + + [self.scrollView addSubview:self.centiretyforIndicateRegard]; + [self.scrollView addSubview:self.centiretyforSequencignation]; + [self.scrollView addSubview:self.centiretyforSatisfperformanceGbs]; + + +} + +- (void)initChildLyRestrictions { + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(300); + make.height.mas_equalTo(324); + make.bottom.mas_equalTo(self.backgroundImageView.mas_bottom); + }]; + [self.backgroundImageView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(0); + }]; + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self); + make.top.mas_equalTo(self.backgroundImageView).mas_offset(82); + make.height.mas_equalTo(21); + }]; + + + [self.scrollView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.backgroundImageView).offset(120); + make.left.right.mas_equalTo(self.backgroundImageView).inset(18); + make.bottom.mas_equalTo(self.backgroundImageView).offset(-15); + }]; + + [self.preadominantSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.scrollView); + make.left.right.mas_equalTo(self.backgroundImageView).inset(18); + }]; + + [self.arbitrarySequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.preadominantSequencignation.mas_bottom).offset(16); + make.centerX.mas_equalTo(self.scrollView); + }]; + + [self.arbitraryIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(88, 8)); + make.top.mas_equalTo(self.arbitrarySequencignation.mas_bottom).offset(-6); + make.centerX.mas_equalTo(self.arbitrarySequencignation); + }]; + + [self.arbitrarySatisfperformanceGbs mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.backgroundImageView).inset(18); + make.top.mas_equalTo(self.arbitraryIndicateRegard.mas_bottom).offset(8); + }]; + + [self.centiretyforSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.arbitrarySatisfperformanceGbs.mas_bottom).offset(16); + make.centerX.mas_equalTo(self.scrollView); + }]; + + [self.centiretyforIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(88, 8)); + make.top.mas_equalTo(self.centiretyforSequencignation.mas_bottom).offset(-6); + make.centerX.mas_equalTo(self.centiretyforSequencignation); + }]; + + [self.centiretyforSatisfperformanceGbs mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.backgroundImageView).inset(18); + make.top.mas_equalTo(self.centiretyforIndicateRegard.mas_bottom).offset(8); + }]; + + [self.concludeBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.top.mas_equalTo(self.backgroundImageView); + make.width.height.mas_equalTo(32); + }]; +} + +#pragma mark - Event Response +- (void)onConcludeBtutonTicktack:(UIButton *)button { + [MKJPopup dismiss]; +} + +- (void)setPreadominantBWSttr:(NSString *)preadominantBWSttr { + if ([preadominantBWSttr containsString:@"\\n"]) { + preadominantBWSttr = [preadominantBWSttr stringByReplacingOccurrencesOfString:@"\\n" withString:@"\n"]; + } + NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init]; + paragraphStyle.lineSpacing = 5; + NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] initWithString:preadominantBWSttr attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:12], NSForegroundColorAttributeName:[DJDKMIMOMColor mainEssayPrettify]}]; + [attribute addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, preadominantBWSttr.length)]; + self.preadominantSequencignation.attributedText = attribute; +CGSize size = [self.preadominantSequencignation sizeThatFits:CGSizeMake(300 -36, CGFLOAT_MAX)]; + self.scrollView.contentSize = CGSizeMake(0, size.height + 70 * 2 + 20); +} + +#pragma mark - Getters And Setters +- (UIImageView *)backgroundImageView { + if (!_backgroundImageView) { + _backgroundImageView = [[UIImageView alloc] init]; + _backgroundImageView.userInteractionEnabled = YES; + _backgroundImageView.image = [UIImage imageNamed:@"yumi_anchorPK_invite_background"]; + } + return _backgroundImageView; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.text = YMLocalizedString(@"YUMI_Anchor_Random_PK_Rule_View_0"); + _titleLabel.textColor = [UIColor whiteColor]; + _titleLabel.font = [UIFont systemFontOfSize:15]; + } + return _titleLabel; +} + + +- (UIImageView *)arbitraryIndicateRegard { + if (!_arbitraryIndicateRegard) { + _arbitraryIndicateRegard = [[UIImageView alloc] init]; + _arbitraryIndicateRegard.userInteractionEnabled = YES; + _arbitraryIndicateRegard.image = [UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor colorAboutHexBWSttr:@"#1CD7FD"], [DJDKMIMOMColor colorAboutHexBWSttr:@"#9277FF"], [DJDKMIMOMColor colorAboutHexBWSttr:@"FF6BA3"]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)]; + _arbitraryIndicateRegard.contentMode = UIViewContentModeScaleAspectFill; + _arbitraryIndicateRegard.layer.masksToBounds = YES; + _arbitraryIndicateRegard.layer.cornerRadius = 4; + } + return _arbitraryIndicateRegard; +} + +- (UILabel *)arbitrarySequencignation { + if (!_arbitrarySequencignation) { + _arbitrarySequencignation = [[UILabel alloc] init]; + _arbitrarySequencignation.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium]; + _arbitrarySequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _arbitrarySequencignation.text= @"随机PK"; + } + return _arbitrarySequencignation; +} + +- (UILabel *)preadominantSequencignation { + if (!_preadominantSequencignation) { + _preadominantSequencignation = [[UILabel alloc] init]; + _preadominantSequencignation.font = [UIFont systemFontOfSize:12]; + _preadominantSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _preadominantSequencignation.numberOfLines = 0; + } + return _preadominantSequencignation; +} + +- (UIScrollView *)scrollView { + if (!_scrollView) { + _scrollView = [[UIScrollView alloc] init]; + _scrollView.backgroundColor = [UIColor clearColor]; + _scrollView.showsHorizontalScrollIndicator = NO; + } + return _scrollView; +} + + +- (UILabel *)arbitrarySatisfperformanceGbs { + if (!_arbitrarySatisfperformanceGbs) { + _arbitrarySatisfperformanceGbs = [[UILabel alloc] init]; + NSString * title = YMLocalizedString(@"YUMI_Anchor_Random_PK_Rule_View_2"); + NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] initWithString:title attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:12], NSForegroundColorAttributeName:[DJDKMIMOMColor mainEssayPrettify]}]; + NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init]; + paragraphStyle.lineSpacing = 5; + [attribute addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, title.length)]; + _arbitrarySatisfperformanceGbs.attributedText = attribute; + _arbitrarySatisfperformanceGbs.numberOfLines = 0; + } + return _arbitrarySatisfperformanceGbs; +} + +- (UIImageView *)centiretyforIndicateRegard { + if (!_centiretyforIndicateRegard) { + _centiretyforIndicateRegard = [[UIImageView alloc] init]; + _centiretyforIndicateRegard.userInteractionEnabled = YES; + _centiretyforIndicateRegard.image = [UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor colorAboutHexBWSttr:@"#1CD7FD"], [DJDKMIMOMColor colorAboutHexBWSttr:@"#9277FF"], [DJDKMIMOMColor colorAboutHexBWSttr:@"FF6BA3"]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)]; + _centiretyforIndicateRegard.contentMode = UIViewContentModeScaleAspectFill; + _centiretyforIndicateRegard.layer.masksToBounds = YES; + _centiretyforIndicateRegard.layer.cornerRadius = 4; + } + return _centiretyforIndicateRegard; +} + +- (UILabel *)centiretyforSequencignation { + if (!_centiretyforSequencignation) { + _centiretyforSequencignation = [[UILabel alloc] init]; + _centiretyforSequencignation.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium]; + _centiretyforSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _centiretyforSequencignation.text= @"邀请PK"; + } + return _centiretyforSequencignation; +} + +- (UILabel *)centiretyforSatisfperformanceGbs { + if (!_centiretyforSatisfperformanceGbs) { + _centiretyforSatisfperformanceGbs = [[UILabel alloc] init]; + NSString * title = @"指定一个主播房主播,邀请其进行PK,对方接受后开启PK"; + NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] initWithString:title attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:12], NSForegroundColorAttributeName:[DJDKMIMOMColor mainEssayPrettify]}]; + NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init]; + paragraphStyle.lineSpacing = 5; + [attribute addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, title.length)]; + _centiretyforSatisfperformanceGbs.attributedText = attribute; + _centiretyforSatisfperformanceGbs.numberOfLines = 0; + } + return _centiretyforSatisfperformanceGbs; +} + +- (UIButton *)concludeBtuton { + if (!_concludeBtuton) { + _concludeBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_concludeBtuton addTarget:self action:@selector(onConcludeBtutonTicktack:) forControlEvents:UIControlEventTouchUpInside]; + [_concludeBtuton setBackgroundImage:[UIImage imageNamed:@"yumi_anchorPk_result_close"] forState:UIControlStateNormal]; + } + return _concludeBtuton; +} +@end diff --git a/YuMi/Modules/YMRoom/View/AnchorPK/View/XCombatellegCombatChosenChamberRegard.h b/YuMi/Modules/YMRoom/View/AnchorPK/View/XCombatellegCombatChosenChamberRegard.h new file mode 100644 index 00000000..7fc8cbab --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnchorPK/View/XCombatellegCombatChosenChamberRegard.h @@ -0,0 +1,26 @@ +// +// YMAnchorPKSelectRoomView.h +// YUMI +// +// Created by YUMI on 2022/4/8. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class XCombatellegCombatChosenChamberRegard, ThroughoutChamberCombatAbstractMatrix; +@protocol XCombatellegCombatChosenChamberRegardRepresendtation + +- (void)XCombatellegCombatChosenChamberRegard:(XCombatellegCombatChosenChamberRegard *)view didChoosePKRoom:(ThroughoutChamberCombatAbstractMatrix *)pkRoomInfo; + +@end + +@interface XCombatellegCombatChosenChamberRegard : UIView + +@property (nonatomic,weak) id delegate; +@property (nonatomic,copy) NSString *roomUid; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AnchorPK/View/XCombatellegCombatChosenChamberRegard.m b/YuMi/Modules/YMRoom/View/AnchorPK/View/XCombatellegCombatChosenChamberRegard.m new file mode 100644 index 00000000..d7ed04e9 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnchorPK/View/XCombatellegCombatChosenChamberRegard.m @@ -0,0 +1,318 @@ +// +// YMAnchorPKSelectRoomView.m +// YUMI +// +// Created by YUMI on 2022/4/8. +// + +#import "XCombatellegCombatChosenChamberRegard.h" +#import +#import +#import "DJDKMIMOMColor.h" +#import "XNDJTBWGLoadingTool.h" +#import "UIImage+Utils.h" +#import "Api+AnchorPk.h" +#import "YUMIMacroUitls.h" +#import "NSArray+Safe.h" +#import "ThroughoutChamberCombatAbstractMatrix.h" +#import "YUMIThroughoutChamberCombatDispossessTabulationRegardElement.h" +#import "XCombatellegCombatTabulationRegardElement.h" + +@interface XCombatellegCombatChosenChamberRegard () + +@property (nonatomic, strong) UIButton *backButton; +@property (nonatomic, strong) UITableView *tableView; +@property (nonatomic,strong) UIView * introjectionEncourageRegard; +@property (nonatomic,strong) UIButton *huntforBtuton; +@property (nonatomic,strong) UITextField *searchTextField; +@property (nonatomic, strong) NSMutableArray *datasource; +@property (nonatomic, assign) NSInteger page; +@property (nonatomic,assign) BOOL hasNoFurthaerAtoloudspeaker; +@property (nonatomic, strong) ThroughoutChamberCombatAbstractMatrix *chosenChamberAbstract; + +@end + +@implementation XCombatellegCombatChosenChamberRegard + +- (instancetype)initWithFrame:(CGRect)frame { + if (self = [super initWithFrame:frame]) { + [self initSubViews]; + [self initChildLyRestrictions]; + [self initIntelligencerGrantedTerminalerRrfresh]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = UIColorFromRGB(0x2A2A39); + [self addSubview:self.backButton]; + [self addSubview:self.introjectionEncourageRegard]; + [self addSubview:self.tableView]; + + [self.introjectionEncourageRegard addSubview:self.huntforBtuton]; + [self.introjectionEncourageRegard addSubview:self.searchTextField]; + + UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(onDigitalDirectortowardseResign:)]; + [self addGestureRecognizer:tap]; +} + +- (void)initChildLyRestrictions { + [self.backButton mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(12); + make.width.mas_equalTo(22); + make.height.mas_equalTo(22); + make.top.mas_equalTo(27); + }]; + + + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.introjectionEncourageRegard.mas_bottom).mas_offset(5); + make.left.right.mas_equalTo(0); + make.bottom.mas_equalTo(self.mas_bottom); + }]; + [self.introjectionEncourageRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(30); + make.left.mas_equalTo(self.backButton.mas_right).offset(5); + make.right.mas_equalTo(self.mas_right).offset(-15); + make.centerY.mas_equalTo(self.backButton); + }]; + + [self.huntforBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(18, 18)); + make.centerY.mas_equalTo(self.introjectionEncourageRegard); + make.right.mas_equalTo(self.introjectionEncourageRegard).offset(-12); + }]; + + [self.searchTextField mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.introjectionEncourageRegard).offset(25); + make.top.bottom.mas_equalTo(self.introjectionEncourageRegard); + make.right.mas_equalTo(self.huntforBtuton.mas_left).offset(-5); + }]; +} + +- (void)initIntelligencerGrantedTerminalerRrfresh { + MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(intelligenceerRenovtowardseh)]; + header.stateLabel.font = [UIFont systemFontOfSize:10.0]; + header.lastUpdatedTimeLabel.font = [UIFont systemFontOfSize:10.0]; + header.stateLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + header.lastUpdatedTimeLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + self.tableView.mj_header = header; + + MJRefreshBackNormalFooter *footer = [MJRefreshBackNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(footerRenovtowardseh)]; + footer.stateLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + footer.stateLabel.font = [UIFont systemFontOfSize:10.0]; + self.tableView.mj_footer = footer; +} + +#pragma mark - 刷新的fangfa +- (void)intelligenceerRenovtowardseh { + self.page = 1; + [Api acquireKellegCombatChamberSttowardsement:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + NSArray * array = [ThroughoutChamberCombatAbstractMatrix mtowardsrixsAboutGarment:data.data]; + [self acquireThroughoutChamberCombatSttowardsementAccomplishment:array state:0]; + } else { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:msg]; + } + } roomUid:self.roomUid pageNum:[NSString stringWithFormat:@"%ld", self.page] pageSize:@"20" pkType:@"2"]; +} + +- (void)footerRenovtowardseh { + if (self.hasNoFurthaerAtoloudspeaker) { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:YMLocalizedString(@"YUMI_Anchor_PK_Select_Room_View_0")]; + return; + } + self.page++; + [Api acquireKellegCombatChamberSttowardsement:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + NSArray * array = [ThroughoutChamberCombatAbstractMatrix mtowardsrixsAboutGarment:data.data]; + [self acquireThroughoutChamberCombatSttowardsementAccomplishment:array state:1]; + } else { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:msg]; + } + } roomUid:self.roomUid pageNum:[NSString stringWithFormat:@"%ld", self.page] pageSize:@"20" pkType:@"2"]; +} + +- (void)acquireThroughoutChamberCombatSttowardsementAccomplishment:(NSArray *)list state:(int)state { + if (state == 0) { + self.chosenChamberAbstract = nil; + [self.datasource removeAllObjects]; + [self.tableView.mj_header endRefreshing]; + } else { + [self.tableView.mj_footer endRefreshing]; + } + if (list.count > 0) { + self.hasNoFurthaerAtoloudspeaker = NO; + [self.datasource addObjectsFromArray:list]; + } else { + self.hasNoFurthaerAtoloudspeaker = YES; + [self.tableView.mj_footer endRefreshingWithNoMoreData]; + } + [self.tableView reloadData]; +} + +- (void)onDigitalDirectortowardseResign:(UITapGestureRecognizer *)ges { + [self.searchTextField resignFirstResponder]; +} +#pragma mark - tableviewDelegate +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.datasource.count > 0 ? self.datasource.count : 1; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + if (self.datasource.count > 0) { + XCombatellegCombatTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([XCombatellegCombatTabulationRegardElement class])]; + if (cell == nil) { + cell = [[XCombatellegCombatTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([XCombatellegCombatTabulationRegardElement class])]; + } + cell.delegate = self; + ThroughoutChamberCombatAbstractMatrix * pkRoomInfo = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + if (pkRoomInfo.uid.integerValue == self.chosenChamberAbstract.uid.integerValue) { + pkRoomInfo.hadSelected = YES; + } else { + pkRoomInfo.hadSelected = NO; + } + cell.chamberCombatAbstract = pkRoomInfo; + return cell; + } + + YUMIThroughoutChamberCombatDispossessTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIThroughoutChamberCombatDispossessTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIThroughoutChamberCombatDispossessTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIThroughoutChamberCombatDispossessTabulationRegardElement class])]; + } + return cell; + +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + if (self.datasource.count > 0) { + return 75; + } + return (370 + kSafeAreaBottomHeight); +} + +#pragma mark - XCombatellegCombatTabulationViweElementRepresendtation +- (void)xCombatellegCombatTarbsultowardsionViweElement:(XCombatellegCombatTabulationRegardElement *)view didChooseRoom:(ThroughoutChamberCombatAbstractMatrix *)roomInfo { + + self.chosenChamberAbstract = roomInfo; + [self.searchTextField resignFirstResponder]; + if (self.delegate && [self.delegate respondsToSelector:@selector(XCombatellegCombatChosenChamberRegard:didChoosePKRoom:)]) { + [self.delegate XCombatellegCombatChosenChamberRegard:self didChoosePKRoom:self.chosenChamberAbstract]; + } + CATransition *transition = [CATransition animation]; + transition.duration = 0.3f; + transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; + transition.type = kCATransitionPush; + transition.subtype = kCATransitionFromLeft; + [self.layer addAnimation:transition forKey:nil]; + [self removeFromSuperview]; +} + +#pragma mark - Event Response +- (void)huntforBtutonPerformance:(UIButton *)sender { + if (self.searchTextField.text.length > 0) { + [Api huntforKellegCombatChamberSttowardsement:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + NSArray * array = [ThroughoutChamberCombatAbstractMatrix mtowardsrixsAboutGarment:data.data]; + [self acquireThroughoutChamberCombatSttowardsementAccomplishment:array state:0]; + } else { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:msg]; + } + } erbanNo:self.searchTextField.text roomUid:@"" pageNum:@"1" pageSize:@"50" pkType:@"2"]; + } else { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:@"请输入要搜索的厅ID"]; + } +} + +- (void)encourageBtutonPerformance:(UIButton *)sender { + [self.searchTextField resignFirstResponder]; + CATransition *transition = [CATransition animation]; + transition.duration = 0.3f; + transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; + transition.type = kCATransitionPush; + transition.subtype = kCATransitionFromLeft; + [self.layer addAnimation:transition forKey:nil]; + [self removeFromSuperview]; +} + +#pragma mark - Getters And Setters +- (void)setRoomUid:(NSString *)roomUid { + _roomUid = roomUid; + [self.datasource removeAllObjects]; + [self.tableView reloadData]; + if (_roomUid.length > 0) { + [self intelligenceerRenovtowardseh]; + } +} +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.tableFooterView = [UIView new]; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.backgroundColor = [UIColor clearColor]; + if (@available(iOS 11.0, *)) { + _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + [_tableView registerClass:[XCombatellegCombatTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([XCombatellegCombatTabulationRegardElement class])]; + [_tableView registerClass:[YUMIThroughoutChamberCombatDispossessTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIThroughoutChamberCombatDispossessTabulationRegardElement class])]; + } + return _tableView; +} + + +- (UIView *)introjectionEncourageRegard { + if (!_introjectionEncourageRegard) { + _introjectionEncourageRegard = [[UIView alloc] init]; + _introjectionEncourageRegard.backgroundColor = UIColorFromRGB(0x4C4C6A); + _introjectionEncourageRegard.layer.masksToBounds = YES; + _introjectionEncourageRegard.layer.cornerRadius = 15; + } + return _introjectionEncourageRegard; +} + +- (UIButton *)huntforBtuton { + if (!_huntforBtuton) { + _huntforBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_huntforBtuton setImage:[UIImage imageNamed:@"yumi_main_search_input_search"] forState:UIControlStateNormal]; + [_huntforBtuton setImage:[UIImage imageNamed:@"yumi_main_search_input_search"] forState:UIControlStateSelected]; + [_huntforBtuton addTarget:self action:@selector(huntforBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _huntforBtuton; +} + +- (UITextField *)searchTextField { + if (!_searchTextField) { + _searchTextField = [[UITextField alloc] init]; + _searchTextField.layer.cornerRadius = 15; + _searchTextField.layer.masksToBounds = YES; + _searchTextField.tintColor = [UIColor whiteColor]; + _searchTextField.textColor = [UIColor whiteColor]; + _searchTextField.backgroundColor = [UIColor clearColor]; + _searchTextField.font = [UIFont systemFontOfSize:13]; + NSString *placeholder = [NSString stringWithFormat:@"请输入厅的ID"]; + _searchTextField.attributedPlaceholder = [[NSAttributedString alloc] initWithString:placeholder attributes:@{NSFontAttributeName : [UIFont systemFontOfSize:13], NSForegroundColorAttributeName : [UIColor colorWithWhite:1 alpha:0.4]}]; + } + return _searchTextField; +} + +- (UIButton *)backButton { + if (!_backButton) { + _backButton = [[UIButton alloc] init]; + [_backButton setImage:[UIImage imageNamed:@"yumi_main_search_white_back"] forState:UIControlStateNormal]; + _backButton.imageView.contentMode = UIViewContentModeScaleAspectFit; + [_backButton addTarget:self action:@selector(encourageBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _backButton; +} + +- (NSMutableArray *)datasource { + if (!_datasource) { + _datasource = [NSMutableArray array]; + } + return _datasource; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/AnchorPK/View/XCombatellegCombatChosenGenreGovernancer.h b/YuMi/Modules/YMRoom/View/AnchorPK/View/XCombatellegCombatChosenGenreGovernancer.h new file mode 100644 index 00000000..7459dfe4 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnchorPK/View/XCombatellegCombatChosenGenreGovernancer.h @@ -0,0 +1,18 @@ +// +// YMAnchorSelectTypeViewController.h +// YUMI +// +// Created by YUMI on 2022/11/17. +// + +#import "MvpRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface XCombatellegCombatChosenGenreGovernancer : MvpRegardGovernancer + +- (instancetype)initAboutChamberCid:(NSString *)roomUid; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AnchorPK/View/XCombatellegCombatChosenGenreGovernancer.m b/YuMi/Modules/YMRoom/View/AnchorPK/View/XCombatellegCombatChosenGenreGovernancer.m new file mode 100644 index 00000000..0b265158 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnchorPK/View/XCombatellegCombatChosenGenreGovernancer.m @@ -0,0 +1,203 @@ +// +// YMAnchorSelectTypeViewController.m +// YUMI +// +// Created by YUMI on 2022/11/17. +// + +#import "XCombatellegCombatChosenGenreGovernancer.h" +#import "DJDKMIMOMColor.h" +#import +#import "YUMIMacroUitls.h" +#import "MKJPopup.h" +#import "XCombatellegCombatPreadominantRegard.h" +#import "XCombatellegCombatRegardGovernancer.h" +#import "StatsticsticsServingFacilitater.h" +#import "XCCurrentVCStackExecutive.h" +#import "Api+Room.h" +#import "XCombatellegRandomCombatPreadominantRegard.h" +#import "XCombatellegCombatExternalizer.h" +#import "XCombatellegCombatCeremony.h" + +@interface XCombatellegCombatChosenGenreGovernancer () + +@property (nonatomic, copy) NSString *roomUid; + +@property (nonatomic, strong) UIView *gesRegard; +@property (nonatomic, strong) UIView *backgroundRegard; +@property (nonatomic, strong) UILabel *titleLabel; +@property (nonatomic, strong) UIButton *preadominantBtuton; +@property (nonatomic, strong) UIView *burlywoodRegard; +@property (nonatomic, strong) UIButton *arbitraryCombatBtuton; +@property (nonatomic, strong) UIButton *centiretyforCombatBtuton; + +@end + +@implementation XCombatellegCombatChosenGenreGovernancer + +- (XCombatellegCombatExternalizer *)producePresimport { + return [[XCombatellegCombatExternalizer alloc] init];; +} + +- (instancetype)initAboutChamberCid:(NSString *)roomUid { + if (self = [super init]) { + self.roomUid = roomUid; + self.modalPresentationStyle = UIModalPresentationOverFullScreen; + } + return self; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self accelertowardseChildLy]; + [self setupContraints]; + self.view.backgroundColor = [UIColor clearColor]; +} + +- (void)accelertowardseChildLy { + [self.view addSubview:self.gesRegard]; + [self.view addSubview:self.backgroundRegard]; + [self.backgroundRegard addSubview:self.titleLabel]; + [self.backgroundRegard addSubview:self.preadominantBtuton]; + [self.backgroundRegard addSubview:self.burlywoodRegard]; + [self.backgroundRegard addSubview:self.arbitraryCombatBtuton]; + [self.backgroundRegard addSubview:self.centiretyforCombatBtuton]; +} + +- (void)setupContraints { + [self.gesRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(0); + make.bottom.mas_equalTo(self.backgroundRegard.mas_top); + }]; + [self.backgroundRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.mas_equalTo(0); + make.height.mas_equalTo(250); + }]; + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(16); + make.centerX.mas_equalTo(self.backgroundRegard); + make.height.mas_equalTo(18); + }]; + [self.preadominantBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(-16); + make.centerY.mas_equalTo(self.titleLabel); + make.width.height.mas_equalTo(21); + }]; + [self.burlywoodRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.titleLabel.mas_bottom).mas_offset(8); + make.left.right.mas_equalTo(0); + make.height.mas_equalTo(0.5); + }]; + [self.arbitraryCombatBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self.backgroundRegard.mas_centerX).mas_offset(-22); + make.size.mas_equalTo(CGSizeMake(100, 135)); + make.top.mas_equalTo(self.burlywoodRegard.mas_bottom).mas_offset(16); + }]; + [self.centiretyforCombatBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.arbitraryCombatBtuton.mas_right).mas_offset(44); + make.size.mas_equalTo(CGSizeMake(100, 135)); + make.top.mas_equalTo(self.arbitraryCombatBtuton); + }]; +} + +- (void)preadominantBtutonPerformance:(UIButton *)sender { + [Api requisitionKellegCombatePreadominant:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + XCombatellegRandomCombatPreadominantRegard *view = [[XCombatellegRandomCombatPreadominantRegard alloc] init]; + view.preadominantBWSttr = data.data; + [MKJPopup popupRegard:view style:MKJPopupStyleAlert]; + } + }]; + +} + +- (void)arbitraryBtutonPerformance:(UIButton *)sender { + [self.presimport adapttowardsionArbitraryCombat:self.roomUid]; +} + +- (void)centiretyforBtutonPerformance:(UIButton *)sender { + [self dismissViewControllerAnimated:YES completion:^{ + XCombatellegCombatRegardGovernancer * acrossRoomPKVC = [[XCombatellegCombatRegardGovernancer alloc] initAboutChamberCid:self.roomUid]; + [[XCCurrentVCStackExecutive shareManager].getCurrentVC.navigationController presentViewController:acrossRoomPKVC animated:YES completion:nil]; + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventroom_more_tool_click eventAttributes:@{@"roomMoreMenuType" : @"openAnchorPk"}]; + + }]; +} + +- (void)dismiss:(UITapGestureRecognizer *)ges { + [self dismissViewControllerAnimated:YES completion:nil]; +} + +#pragma mark - XCombatellegCombatCeremony +- (void)adapttowardsionArbitraryCombatAccomplishment:(long long)matchPkStartTime { + [[NSNotificationCenter defaultCenter] postNotificationName:@"anchorPKMatchBegin" object:@{@"matchPkStartTime" : @(matchPkStartTime)}]; + [self dismissViewControllerAnimated:YES completion:nil]; +} + +#pragma mark - getter +- (UIView *)gesRegard { + if (!_gesRegard) { + _gesRegard = [[UIView alloc] init]; + UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(dismiss:)]; + [_gesRegard addGestureRecognizer:tap]; + } + return _gesRegard; +} + +- (UIView *)backgroundRegard { + if (!_backgroundRegard) { + _backgroundRegard = [[UIView alloc] init]; + _backgroundRegard.backgroundColor = UIColorFromRGB(0x0D0E2C); + CAShapeLayer * layer = [CAShapeLayer layer]; + layer.path = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, KScreenWidth, 250) byRoundingCorners:UIRectCornerTopLeft | UIRectCornerTopRight cornerRadii:CGSizeMake(8, 8)].CGPath; + _backgroundRegard.layer.mask = layer; + } + return _backgroundRegard; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.text = YMLocalizedString(@"YUMI_Anchor_PK_Select_Type_Controller_0"); + _titleLabel.textColor = [UIColor whiteColor]; + _titleLabel.font = [UIFont systemFontOfSize:14]; + } + return _titleLabel; +} + +- (UIButton *)preadominantBtuton { + if (!_preadominantBtuton) { + _preadominantBtuton = [[UIButton alloc] init]; + [_preadominantBtuton setImage:[UIImage imageNamed:@"yumi_scope_across_pk_help"] forState:UIControlStateNormal]; + [_preadominantBtuton addTarget:self action:@selector(preadominantBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _preadominantBtuton; +} + +- (UIView *)burlywoodRegard { + if (!_burlywoodRegard) { + _burlywoodRegard = [[UIView alloc] init]; + _burlywoodRegard.backgroundColor = UIColorRGBAlpha(0xffffff, 0.1); + } + return _burlywoodRegard; +} + +- (UIButton *)arbitraryCombatBtuton { + if (!_arbitraryCombatBtuton) { + _arbitraryCombatBtuton = [[UIButton alloc] init]; + [_arbitraryCombatBtuton setImage:[UIImage imageNamed:@"yumi_anchor_pk_random_pic"] forState:UIControlStateNormal]; + [_arbitraryCombatBtuton addTarget:self action:@selector(arbitraryBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _arbitraryCombatBtuton; +} + +- (UIButton *)centiretyforCombatBtuton { + if (!_centiretyforCombatBtuton) { + _centiretyforCombatBtuton = [[UIButton alloc] init]; + [_centiretyforCombatBtuton setImage:[UIImage imageNamed:@"yumi_anchor_pk_invite_pic"] forState:UIControlStateNormal]; + [_centiretyforCombatBtuton addTarget:self action:@selector(centiretyforBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _centiretyforCombatBtuton; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/AnchorPK/View/XCombatellegCombatRegardGovernancer.h b/YuMi/Modules/YMRoom/View/AnchorPK/View/XCombatellegCombatRegardGovernancer.h new file mode 100644 index 00000000..213407db --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnchorPK/View/XCombatellegCombatRegardGovernancer.h @@ -0,0 +1,18 @@ +// +// YMAnchorPKViewController.h +// YUMI +// +// Created by YUMI on 2022/4/8. +// + +#import "MvpRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface XCombatellegCombatRegardGovernancer : MvpRegardGovernancer + +- (instancetype)initAboutChamberCid:(NSString *)roomUid; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AnchorPK/View/XCombatellegCombatRegardGovernancer.m b/YuMi/Modules/YMRoom/View/AnchorPK/View/XCombatellegCombatRegardGovernancer.m new file mode 100644 index 00000000..38959472 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnchorPK/View/XCombatellegCombatRegardGovernancer.m @@ -0,0 +1,618 @@ +// +// YMAnchorPKViewController.m +// YUMI +// +// Created by YUMI on 2022/4/8. +// + +#import "XCombatellegCombatRegardGovernancer.h" +#import +#import +#import "DJDKMIMOMColor.h" +#import "NetIndicateRegard.h" +#import "YUMIMacroUitls.h" +#import "UIImage+Utils.h" +#import "MKJPopup.h" +#import "ThroughoutChamberCombatAbstractMatrix.h" +#import "XCombatellegCombatChosenChamberRegard.h" +#import "XCombatellegCombatExternalizer.h" +#import "XCombatellegCombatCeremony.h" + +#define kContentHeight (404 + kSafeAreaBottomHeight) + +@interface XCombatellegCombatRegardGovernancer () +@property (nonatomic, strong) UIView *apexRegard; +@property (nonatomic, strong) UIView *contentView; +@property (nonatomic, strong) UILabel *titleLabel; +@property (nonatomic,strong) UIStackView *consumerHierarchyRegard; +@property (nonatomic, strong) UILabel *chosenCombatSequencignation; +@property (nonatomic, strong) UIButton *chosenCombatBtuton; +@property (nonatomic,strong) UIStackView *intratemporalHierarchyRegard; +@property (nonatomic, strong) UILabel *chosenCombatIntratemporalSequencignation; +@property (nonatomic,strong) UIStackView *concludeIntratemporalHierarchyRegard; +@property (nonatomic, strong) UIButton *tenPennyBtuton; +@property (nonatomic, strong) UIButton *twentyPennyBtuton; +@property (nonatomic, strong) UIButton *thirtyPennyBtuton; +@property (nonatomic, strong) UITextField *customIntratemporalEssayUniverse; +@property (nonatomic,strong) UIStackView *disportHierarchyRegard; +@property (nonatomic, strong) UILabel *combateDisportMannerSequencignation; +@property (nonatomic, strong) UITextField *combateDisportMannerEssayUniverse; +@property (nonatomic, strong) UIButton *doneBtuton; +@property (nonatomic, strong) UIView *chosenChamberSatisfperformanceRegard; +@property (nonatomic, strong) NetIndicateRegard *intelligenceportraitIndicateRegard; +@property (nonatomic, strong) UILabel *chamberChampionSequencignation; +@property (nonatomic, strong) UILabel *idSequencignation; +@property (nonatomic, strong) UIButton *revocationBtuton; +@property (nonatomic, strong) ThroughoutChamberCombatAbstractMatrix *chosenChamberAbstract; +@property (nonatomic, assign) NSInteger combatContinuance; +@property (nonatomic, strong) XCombatellegCombatChosenChamberRegard *chosenRegard; +@property (nonatomic,strong) NSString *roomUid; +@end + +@implementation XCombatellegCombatRegardGovernancer + +- (instancetype)initAboutChamberCid:(NSString *)roomUid { + if (self = [super init]) { + self.roomUid = roomUid; + self.modalPresentationStyle = UIModalPresentationOverFullScreen; + } + return self; +} + +- (XCombatellegCombatExternalizer *)producePresimport { + return [[XCombatellegCombatExternalizer alloc] init];; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initSubViews]; + [self initChildLyRestrictions]; + self.combatContinuance = 10; +} + +- (void)viewWillAppear:(BOOL)animated { + [super viewWillAppear:animated]; + [IQKeyboardManager sharedManager].enable = YES; +} + +- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { + [self.view endEditing:YES]; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.view.backgroundColor = [UIColor clearColor]; + [self.view addSubview:self.apexRegard]; + [self.view addSubview:self.contentView]; + + [self.contentView addSubview:self.titleLabel]; + [self.contentView addSubview:self.consumerHierarchyRegard]; + [self.contentView addSubview:self.intratemporalHierarchyRegard]; + [self.contentView addSubview:self.disportHierarchyRegard]; + [self.contentView addSubview:self.customIntratemporalEssayUniverse]; + [self.contentView addSubview:self.doneBtuton]; + + [self.consumerHierarchyRegard addArrangedSubview:self.chosenCombatSequencignation]; + [self.consumerHierarchyRegard addArrangedSubview:self.chosenCombatBtuton]; + [self.consumerHierarchyRegard addArrangedSubview:self.chosenChamberSatisfperformanceRegard]; + + [self.intratemporalHierarchyRegard addArrangedSubview:self.chosenCombatIntratemporalSequencignation]; + [self.intratemporalHierarchyRegard addArrangedSubview:self.concludeIntratemporalHierarchyRegard]; + + [self.concludeIntratemporalHierarchyRegard addArrangedSubview:self.tenPennyBtuton]; + [self.concludeIntratemporalHierarchyRegard addArrangedSubview:self.twentyPennyBtuton]; + [self.concludeIntratemporalHierarchyRegard addArrangedSubview:self.thirtyPennyBtuton]; + + [self.disportHierarchyRegard addArrangedSubview:self.combateDisportMannerSequencignation]; + [self.disportHierarchyRegard addArrangedSubview:self.combateDisportMannerEssayUniverse]; + + [self.chosenChamberSatisfperformanceRegard addSubview:self.intelligenceportraitIndicateRegard]; + [self.chosenChamberSatisfperformanceRegard addSubview:self.chamberChampionSequencignation]; + [self.chosenChamberSatisfperformanceRegard addSubview:self.idSequencignation]; + [self.chosenChamberSatisfperformanceRegard addSubview:self.revocationBtuton]; +} + +- (void)initChildLyRestrictions { + + [self.apexRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self.view); + make.bottom.mas_equalTo(self.contentView.mas_top); + }]; + + [self.contentView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.mas_equalTo(self.view); + make.height.mas_equalTo(kContentHeight); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.contentView); + make.top.mas_equalTo(18); + }]; + [self.consumerHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(32); + make.left.mas_equalTo(self.contentView).offset(22); + make.top.mas_equalTo(self.titleLabel.mas_bottom).offset(20); + }]; + + [self.chosenCombatSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(90); + }]; + + [self.chosenCombatBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(22); + }]; + + [self.chosenChamberSatisfperformanceRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(KScreenWidth - 85 - 12 * 2 - 16); + }]; + + [self.intratemporalHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(32); + make.left.right.mas_equalTo(self.contentView).inset(22); + make.top.mas_equalTo(self.consumerHierarchyRegard.mas_bottom).offset(30); + }]; + + [self.chosenCombatIntratemporalSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(self.chosenCombatSequencignation); + }]; + + [self.customIntratemporalEssayUniverse mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(32); + make.width.mas_equalTo(170); + make.top.mas_equalTo(self.intratemporalHierarchyRegard.mas_bottom).offset(16); + make.left.mas_equalTo(self.tenPennyBtuton); + }]; + + [self.disportHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.height.mas_equalTo(self.intratemporalHierarchyRegard); + make.top.mas_equalTo(self.customIntratemporalEssayUniverse.mas_bottom).offset(30); + }]; + + [self.combateDisportMannerSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(self.chosenCombatSequencignation); + }]; + + [self.doneBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(40); + make.left.right.mas_equalTo(self.contentView).inset(40); + make.bottom.mas_equalTo(self.contentView.mas_bottom).offset(-34 - kSafeAreaBottomHeight); + }]; + + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.chosenChamberSatisfperformanceRegard); + make.left.mas_equalTo(self.chosenChamberSatisfperformanceRegard); + make.height.width.mas_equalTo(60); + }]; + [self.chamberChampionSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.bottom.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_centerY).offset(-3); + make.left.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_right).mas_offset(6); + make.right.mas_lessThanOrEqualTo(self.revocationBtuton.mas_left); + }]; + [self.idSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_centerY).mas_offset(3); + make.left.right.mas_equalTo(self.chamberChampionSequencignation); + }]; + + [self.revocationBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.intelligenceportraitIndicateRegard); + make.right.mas_equalTo(self.chosenChamberSatisfperformanceRegard).offset(-12); + make.height.width.mas_equalTo(22); + }]; +} + +- (void)refurbishDoneBtutonDeclare { + if (self.chosenChamberAbstract && self.combatContinuance >= 5 && self.combatContinuance <= 30) { + self.doneBtuton.enabled = YES; + } else { + self.doneBtuton.enabled = NO; + } +} +#pragma mark - XCombatellegCombatCeremony +- (void)instituteKellegCombatAccomplishment { + [self EvidenceAccomplishmentToast:YMLocalizedString(@"YUMI_Anchor_PK_View_Controller_0")]; + [self dismissViewControllerAnimated:YES completion:nil]; +} + +- (void)instituteKellegCombatFlunk:(NSString *)message { + if (message.length >0) { + MKJPrecautiousDisposition * config = [[MKJPrecautiousDisposition alloc] init]; + config.performanceStyle = TTAlertActionConfirmStyle; + config.revocationBtutonDisposition.title = YMLocalizedString(@"YUMI_Anchor_PK_View_Controller_1"); + config.message = message; + [MKJPopup precautiousAboutDisposition:config acknowledgementHandler:^{ + + } cancelHandler:^{ + + }]; + } +} + +#pragma mark - XCombatellegCombatChosenChamberRegardRepresendtation +- (void)XCombatellegCombatChosenChamberRegard:(XCombatellegCombatChosenChamberRegard *)view didChoosePKRoom:(ThroughoutChamberCombatAbstractMatrix *)pkRoomInfo { + if (pkRoomInfo) { + [self.consumerHierarchyRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(60); + }]; + self.chosenChamberSatisfperformanceRegard.hidden = NO; + self.chosenCombatBtuton.hidden= YES; + self.intelligenceportraitIndicateRegard.imageUrl = pkRoomInfo.avatar; + self.chamberChampionSequencignation.text = pkRoomInfo.title; + self.idSequencignation.text = [NSString stringWithFormat:@"ID:%@", pkRoomInfo.erbanNo]; + self.chosenChamberAbstract = pkRoomInfo; + [self refurbishDoneBtutonDeclare]; + } +} + +#pragma mark - UITextFieldDelegate +- (void)essayUniverseDidDiversifictowardsiond:(UITextField *)essayUniverse { + if (essayUniverse == self.customIntratemporalEssayUniverse) { + self.tenPennyBtuton.selected = YES; + self.twentyPennyBtuton.selected = YES; + self.thirtyPennyBtuton.selected = YES; + NSString *countStr = [self.customIntratemporalEssayUniverse.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]; + NSInteger count = [countStr integerValue]; + if (count > 30) { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_Anchor_PK_View_Controller_2")]; + essayUniverse.text = @"30"; + } else if(count < 5) { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_Anchor_PK_View_Controller_3")]; + } + self.combatContinuance = essayUniverse.text.integerValue; + [self refurbishDoneBtutonDeclare]; + } else if(essayUniverse == self.combateDisportMannerEssayUniverse) { + if (self.combateDisportMannerEssayUniverse.text.length > 10) { + self.combateDisportMannerEssayUniverse.text = [self.combateDisportMannerEssayUniverse.text substringToIndex:10]; + } + } +} + +- (BOOL)essayUniverse:(UITextField *)essayUniverse shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { + if (essayUniverse == self.customIntratemporalEssayUniverse) { + NSString *regex =@"[0-9]*"; + NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex]; + if ([pred evaluateWithObject:string]) { + return YES; + } + return NO; + } + return YES; +} + +#pragma mark - Event Response +- (void)chosenCombatBtutonPerformance:(UIButton *)sender { + [self.customIntratemporalEssayUniverse resignFirstResponder]; + [self.combateDisportMannerEssayUniverse resignFirstResponder]; + self.chosenRegard.roomUid = self.roomUid; + CATransition *transition = [CATransition animation]; + transition.duration = 0.3f; + transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; + transition.type = kCATransitionPush; + transition.subtype = kCATransitionFromRight; + [self.chosenRegard.layer addAnimation:transition forKey:nil]; + [self.contentView addSubview:self.chosenRegard]; +} + +- (void)concludeIntrtowardsemporalBtutonPerformance:(UIButton *)sender { + [self.customIntratemporalEssayUniverse resignFirstResponder]; + [self.combateDisportMannerEssayUniverse resignFirstResponder]; + self.tenPennyBtuton.selected = YES; + self.twentyPennyBtuton.selected = YES; + self.thirtyPennyBtuton.selected = YES; + sender.selected = NO; + self.combatContinuance = sender.tag; + self.customIntratemporalEssayUniverse.text = nil; +} + +- (void)doneBtutonPerformance:(UIButton *)sender { + [self.customIntratemporalEssayUniverse resignFirstResponder]; + [self.combateDisportMannerEssayUniverse resignFirstResponder]; + NSString * pkDes = self.combateDisportMannerEssayUniverse.text.length > 0 ? self.combateDisportMannerEssayUniverse.text : @""; + [self.presimport instituteKellegCombat:self.roomUid duration:self.combatContinuance acceptUid:self.chosenChamberAbstract.uid playDesc:pkDes pkType:@"2"]; +} + +- (void)revoctowardsionBtutonPerformance:(UIButton *)sender { + self.chosenChamberSatisfperformanceRegard.hidden = YES; + self.chosenCombatBtuton.hidden = NO; + self.chosenChamberAbstract = nil; + [self refurbishDoneBtutonDeclare]; + self.intelligenceportraitIndicateRegard.image = nil; + self.chamberChampionSequencignation.text = nil; + self.idSequencignation.text = nil; + [self.consumerHierarchyRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(32); + }]; +} + +- (void)onDigitalDirectortowardseResign:(UITapGestureRecognizer *)ges { + [self.customIntratemporalEssayUniverse resignFirstResponder]; + [self.combateDisportMannerEssayUniverse resignFirstResponder]; + if (self.chosenRegard.superview) { + CATransition *transition = [CATransition animation]; + transition.duration = 0.3f; + transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; + transition.type = kCATransitionPush; + transition.subtype = kCATransitionFromLeft; + [self.chosenRegard.layer addAnimation:transition forKey:nil]; + [self.chosenRegard removeFromSuperview]; + } else { + [self dismissViewControllerAnimated:YES completion:nil]; + } +} + +#pragma mark - Getters And Setters +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.textColor = UIColor.whiteColor; + _titleLabel.font = [UIFont boldSystemFontOfSize:18]; + _titleLabel.text = @"主播PK"; + } + return _titleLabel; +} + +- (UIStackView *)consumerHierarchyRegard { + if (!_consumerHierarchyRegard) { + _consumerHierarchyRegard = [[UIStackView alloc] init]; + _consumerHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _consumerHierarchyRegard.distribution = UIStackViewDistributionFill; + _consumerHierarchyRegard.alignment = UIStackViewAlignmentFill; + _consumerHierarchyRegard.spacing = 16; + } + return _consumerHierarchyRegard; +} +- (UILabel *)chosenCombatSequencignation { + if (!_chosenCombatSequencignation) { + _chosenCombatSequencignation = [[UILabel alloc] init]; + _chosenCombatSequencignation.textColor = [UIColor whiteColor]; + _chosenCombatSequencignation.font = [UIFont systemFontOfSize:16 weight:UIFontWeightMedium]; + _chosenCombatSequencignation.text = YMLocalizedString(@"YUMI_Anchor_PK_View_Controller_5"); + [_chosenCombatSequencignation setContentCompressionResistancePriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal]; + } + return _chosenCombatSequencignation; +} +- (UIButton *)chosenCombatBtuton { + if (!_chosenCombatBtuton) { + _chosenCombatBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_chosenCombatBtuton setImage:[UIImage imageNamed:@"yumi_scope_across_pk_add_room"] forState:UIControlStateNormal]; + [_chosenCombatBtuton addTarget:self action:@selector(chosenCombatBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _chosenCombatBtuton; +} + +- (UIStackView *)intratemporalHierarchyRegard { + if (!_intratemporalHierarchyRegard) { + _intratemporalHierarchyRegard = [[UIStackView alloc] init]; + _intratemporalHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _intratemporalHierarchyRegard.distribution = UIStackViewDistributionFill; + _intratemporalHierarchyRegard.alignment = UIStackViewAlignmentFill; + _intratemporalHierarchyRegard.spacing = 16; + } + return _intratemporalHierarchyRegard; +} +- (UILabel *)chosenCombatIntratemporalSequencignation { + if (!_chosenCombatIntratemporalSequencignation) { + _chosenCombatIntratemporalSequencignation = [[UILabel alloc] init]; + _chosenCombatIntratemporalSequencignation.textColor =[UIColor whiteColor]; + _chosenCombatIntratemporalSequencignation.font = [UIFont systemFontOfSize:16 weight:UIFontWeightMedium]; + _chosenCombatIntratemporalSequencignation.text = YMLocalizedString(@"YUMI_Anchor_PK_View_Controller_6"); + } + return _chosenCombatIntratemporalSequencignation; +} + +- (UIStackView *)concludeIntratemporalHierarchyRegard { + if (!_concludeIntratemporalHierarchyRegard) { + _concludeIntratemporalHierarchyRegard = [[UIStackView alloc] init]; + _concludeIntratemporalHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _concludeIntratemporalHierarchyRegard.distribution = UIStackViewDistributionFillEqually; + _concludeIntratemporalHierarchyRegard.alignment = UIStackViewAlignmentFill; + _concludeIntratemporalHierarchyRegard.spacing = 5; + } + return _concludeIntratemporalHierarchyRegard; +} + +- (UIButton *)tenPennyBtuton { + if (!_tenPennyBtuton) { + _tenPennyBtuton = [[UIButton alloc] init]; + [_tenPennyBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[UIColorFromRGB(0x1CD7FD), UIColorFromRGB(0x9377FF), UIColorFromRGB(0xFF6BA3)] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + [_tenPennyBtuton setBackgroundImage:[UIImage imageWithColor:UIColorFromRGB(0x4C4C6A)] forState:UIControlStateSelected]; + [_tenPennyBtuton setTitle:YMLocalizedString(@"YUMI_Anchor_PK_View_Controller_7") forState:UIControlStateNormal]; + _tenPennyBtuton.titleLabel.font = [UIFont systemFontOfSize:15 weight:UIFontWeightMedium]; + [_tenPennyBtuton setTitleColor:[DJDKMIMOMColor acknowledgementBtutonEssayPrettify] forState:UIControlStateNormal]; + [_tenPennyBtuton setTitleColor:[DJDKMIMOMColor prohibitionBtutonEssayPrettify] forState:UIControlStateSelected]; + _tenPennyBtuton.tag = 10; + [_tenPennyBtuton addTarget:self action:@selector(concludeIntrtowardsemporalBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + _tenPennyBtuton.selected = NO; + _tenPennyBtuton.layer.masksToBounds = YES; + _tenPennyBtuton.layer.cornerRadius = 32 / 2; + } + return _tenPennyBtuton; +} + +- (UIButton *)twentyPennyBtuton { + if (!_twentyPennyBtuton) { + _twentyPennyBtuton = [[UIButton alloc] init]; + [_twentyPennyBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[UIColorFromRGB(0x1CD7FD), UIColorFromRGB(0x9377FF), UIColorFromRGB(0xFF6BA3)] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + [_twentyPennyBtuton setBackgroundImage:[UIImage imageWithColor:UIColorFromRGB(0x4C4C6A)] forState:UIControlStateSelected]; + [_twentyPennyBtuton setTitle:YMLocalizedString(@"YUMI_Anchor_PK_View_Controller_8") forState:UIControlStateNormal]; + _twentyPennyBtuton.titleLabel.font = [UIFont systemFontOfSize:15 weight:UIFontWeightMedium]; + [_twentyPennyBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + [_twentyPennyBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateSelected]; + _twentyPennyBtuton.tag = 20; + [_twentyPennyBtuton addTarget:self action:@selector(concludeIntrtowardsemporalBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + _twentyPennyBtuton.selected = YES; + _twentyPennyBtuton.layer.masksToBounds = YES; + _twentyPennyBtuton.layer.cornerRadius = 32 / 2; + } + return _twentyPennyBtuton; +} + +- (UIButton *)thirtyPennyBtuton { + if (!_thirtyPennyBtuton) { + _thirtyPennyBtuton = [[UIButton alloc] init]; + [_thirtyPennyBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[UIColorFromRGB(0x1CD7FD), UIColorFromRGB(0x9377FF), UIColorFromRGB(0xFF6BA3)] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + [_thirtyPennyBtuton setBackgroundImage:[UIImage imageWithColor:UIColorFromRGB(0x4C4C6A)] forState:UIControlStateSelected]; + [_thirtyPennyBtuton setTitle:YMLocalizedString(@"YUMI_Anchor_PK_View_Controller_9") forState:UIControlStateNormal]; + _thirtyPennyBtuton.titleLabel.font = [UIFont systemFontOfSize:15 weight:UIFontWeightMedium]; + [_thirtyPennyBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + [_thirtyPennyBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateSelected]; + _thirtyPennyBtuton.tag = 30; + _thirtyPennyBtuton.layer.masksToBounds = YES; + _thirtyPennyBtuton.layer.cornerRadius = 32 / 2; + [_thirtyPennyBtuton addTarget:self action:@selector(concludeIntrtowardsemporalBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + _thirtyPennyBtuton.selected = YES; + } + return _thirtyPennyBtuton; +} +- (UITextField *)customIntratemporalEssayUniverse { + if (!_customIntratemporalEssayUniverse) { + _customIntratemporalEssayUniverse = [[UITextField alloc] init]; + _customIntratemporalEssayUniverse.layer.cornerRadius = 15; + _customIntratemporalEssayUniverse.layer.masksToBounds = YES; + _customIntratemporalEssayUniverse.backgroundColor = UIColorFromRGB(0x4C4C6A); + _customIntratemporalEssayUniverse.textColor = UIColorFromRGB(0x43BDFF); + _customIntratemporalEssayUniverse.leftView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 19, 0)]; + _customIntratemporalEssayUniverse.leftViewMode = UITextFieldViewModeAlways; + _customIntratemporalEssayUniverse.delegate = self; + _customIntratemporalEssayUniverse.keyboardType = UIKeyboardTypeNumberPad; + _customIntratemporalEssayUniverse.tintColor = [UIColor whiteColor]; + _customIntratemporalEssayUniverse.attributedPlaceholder = [[NSAttributedString alloc] initWithString:YMLocalizedString(@"YUMI_Anchor_PK_View_Controller_10") attributes:@{NSFontAttributeName : [UIFont systemFontOfSize:15], NSForegroundColorAttributeName: UIColorFromRGB(0xC6C6E9)}]; + [_customIntratemporalEssayUniverse addTarget:self action:@selector(essayUniverseDidDiversifictowardsiond:) forControlEvents:UIControlEventEditingChanged]; + + } + return _customIntratemporalEssayUniverse; +} +- (UIStackView *)disportHierarchyRegard { + if (!_disportHierarchyRegard) { + _disportHierarchyRegard = [[UIStackView alloc] init]; + _disportHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _disportHierarchyRegard.distribution = UIStackViewDistributionFill; + _disportHierarchyRegard.alignment = UIStackViewAlignmentFill; + _disportHierarchyRegard.spacing = 16; + } + return _disportHierarchyRegard; +} + +- (UILabel *)combateDisportMannerSequencignation { + if (!_combateDisportMannerSequencignation) { + _combateDisportMannerSequencignation = [[UILabel alloc] init]; + _combateDisportMannerSequencignation.textColor = [UIColor whiteColor]; + _combateDisportMannerSequencignation.textAlignment = NSTextAlignmentRight; + _combateDisportMannerSequencignation.font = [UIFont systemFontOfSize:16 weight:UIFontWeightMedium]; + _combateDisportMannerSequencignation.text = YMLocalizedString(@"YUMI_Anchor_PK_View_Controller_11"); + } + return _combateDisportMannerSequencignation; +} + +- (UITextField *)combateDisportMannerEssayUniverse { + if (!_combateDisportMannerEssayUniverse) { + _combateDisportMannerEssayUniverse = [[UITextField alloc] init]; + _combateDisportMannerEssayUniverse.layer.cornerRadius = 15; + _combateDisportMannerEssayUniverse.layer.masksToBounds = YES; + _combateDisportMannerEssayUniverse.backgroundColor = UIColorFromRGB(0x4C4C6A); + _combateDisportMannerEssayUniverse.textColor = [UIColor whiteColor]; + _combateDisportMannerEssayUniverse.leftView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 19, 0)]; + _combateDisportMannerEssayUniverse.leftViewMode = UITextFieldViewModeAlways; + _combateDisportMannerEssayUniverse.delegate = self; + _combateDisportMannerEssayUniverse.attributedPlaceholder = [[NSAttributedString alloc] initWithString:YMLocalizedString(@"YUMI_Anchor_PK_View_Controller_12") attributes:@{NSFontAttributeName : [UIFont systemFontOfSize:15], NSForegroundColorAttributeName: UIColorFromRGB(0xC6C6E9)}]; + [_combateDisportMannerEssayUniverse addTarget:self action:@selector(essayUniverseDidDiversifictowardsiond:) forControlEvents:UIControlEventEditingChanged]; + } + return _combateDisportMannerEssayUniverse; +} + +- (UIButton *)doneBtuton { + if (!_doneBtuton) { + _doneBtuton = [[UIButton alloc] init]; + [_doneBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[UIColorFromRGB(0x1CD7FD), UIColorFromRGB(0x9377FF), UIColorFromRGB(0xFF6BA3)] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + [_doneBtuton setBackgroundImage:[UIImage imageWithColor:UIColorFromRGB(0x4C4C6A)] forState:UIControlStateDisabled]; + [_doneBtuton setTitle:YMLocalizedString(@"YUMI_Anchor_PK_View_Controller_13") forState:UIControlStateNormal]; + _doneBtuton.layer.masksToBounds = YES; + _doneBtuton.layer.cornerRadius = 20; + _doneBtuton.titleLabel.font = [UIFont systemFontOfSize:18 weight:UIFontWeightMedium]; + [_doneBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + [_doneBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateDisabled]; + [_doneBtuton addTarget:self action:@selector(doneBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + _doneBtuton.enabled = NO; + } + return _doneBtuton; +} + +- (UIView *)chosenChamberSatisfperformanceRegard { + if (!_chosenChamberSatisfperformanceRegard) { + _chosenChamberSatisfperformanceRegard = [[UIView alloc] init]; + _chosenChamberSatisfperformanceRegard.hidden = YES; + } + return _chosenChamberSatisfperformanceRegard; +} + +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _intelligenceportraitIndicateRegard.layer.cornerRadius = 60 / 2; + _intelligenceportraitIndicateRegard.layer.borderColor = [UIColor whiteColor].CGColor; + _intelligenceportraitIndicateRegard.layer.borderWidth = 1; + } + return _intelligenceportraitIndicateRegard; +} + +- (UILabel *)chamberChampionSequencignation { + if (!_chamberChampionSequencignation) { + _chamberChampionSequencignation = [[UILabel alloc] init]; + _chamberChampionSequencignation.textColor = [UIColor whiteColor]; + _chamberChampionSequencignation.font = [UIFont systemFontOfSize:14 weight:UIFontWeightMedium]; + } + return _chamberChampionSequencignation; +} + +- (UILabel *)idSequencignation { + if (!_idSequencignation) { + _idSequencignation = [[UILabel alloc] init]; + _idSequencignation.textColor = [UIColor whiteColor]; + _idSequencignation.font = [UIFont systemFontOfSize:14 weight:UIFontWeightMedium]; + } + return _idSequencignation; +} + +- (UIButton *)revocationBtuton { + if (!_revocationBtuton) { + _revocationBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_revocationBtuton setImage:[UIImage imageNamed:@"yumi_scope_across_delete_pk_room"] forState:UIControlStateNormal]; + [_revocationBtuton addTarget:self action:@selector(revoctowardsionBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _revocationBtuton; +} + +- (UIView *)contentView { + if (!_contentView) { + _contentView = [[UIView alloc] init]; + _contentView.backgroundColor = UIColorFromRGB(0x2A2A39); + CAShapeLayer * layer = [CAShapeLayer layer]; + layer.path = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, KScreenWidth,kContentHeight) byRoundingCorners:UIRectCornerTopLeft | UIRectCornerTopRight cornerRadii:CGSizeMake(12, 12)].CGPath; + _contentView.layer.mask = layer; + } + return _contentView; +} + +- (UIView *)apexRegard { + if (!_apexRegard) { + _apexRegard = [[UIView alloc] init]; + _apexRegard.backgroundColor = UIColor.blackColor; + _apexRegard.alpha = 0.3; + UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(onDigitalDirectortowardseResign:)]; + [_apexRegard addGestureRecognizer:tap]; + } + return _apexRegard; +} + +- (XCombatellegCombatChosenChamberRegard *)chosenRegard { + if (!_chosenRegard) { + _chosenRegard = [[XCombatellegCombatChosenChamberRegard alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth, kContentHeight)]; + _chosenRegard.delegate = self; + } + return _chosenRegard; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/AnchorView/FansTeam/Api/Api+FansTeam.h b/YuMi/Modules/YMRoom/View/AnchorView/FansTeam/Api/Api+FansTeam.h new file mode 100644 index 00000000..0aab6d92 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnchorView/FansTeam/Api/Api+FansTeam.h @@ -0,0 +1,18 @@ +// +// Api+FansTeam.h +// YUMI +// +// Created by YUMI on 2022/4/8. +// + +#import "Api.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface Api (FansTeam) + ++ (void)requisitionOptowardssideFantowardsicsSquad:(HttpRequestHelperCompletion)completion teamUid:(NSString *)teamUid; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AnchorView/FansTeam/Api/Api+FansTeam.m b/YuMi/Modules/YMRoom/View/AnchorView/FansTeam/Api/Api+FansTeam.m new file mode 100644 index 00000000..cad644aa --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnchorView/FansTeam/Api/Api+FansTeam.m @@ -0,0 +1,17 @@ +// +// Api+FansTeam.m +// YUMI +// +// Created by YUMI on 2022/4/8. +// + +#import "Api+FansTeam.h" +#import +@implementation Api (FansTeam) + ++ (void)requisitionOptowardssideFantowardsicsSquad:(HttpRequestHelperCompletion)completion teamUid:(NSString *)teamUid { + NSString * fang = [NSString stringFromBase64String:@"YW5jaG9yRmFuc1RlYW0vb3V0QW5jaG9yRmFuc1RlYW0="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, teamUid, nil]; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/AnchorView/FansTeam/Model/XCombatellegFanaticsJoinMatrix.h b/YuMi/Modules/YMRoom/View/AnchorView/FansTeam/Model/XCombatellegFanaticsJoinMatrix.h new file mode 100644 index 00000000..3ccdf59d --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnchorView/FansTeam/Model/XCombatellegFanaticsJoinMatrix.h @@ -0,0 +1,26 @@ +// +// YMAnchorFansJoinModel.h +// YUMI +// +// Created by YUMI on 2022/4/7. +// + +#import +#import "XCombatellegFanaticsPrivilegeMatrix.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface XCombatellegFanaticsJoinMatrix : NSObject + +@property (nonatomic, assign) long long teamId; +@property (nonatomic, assign) long long teamUid; +@property (nonatomic, copy) NSString *anchorAvatar; +@property (nonatomic, copy) NSString *anchorNick; +@property (nonatomic, assign) NSInteger teamNum; +@property (nonatomic, strong) NSArray *avatarList; +@property (nonatomic, assign) BOOL isJoinLimit; +@property (nonatomic, strong) NSArray *privilegeConfigVos; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AnchorView/FansTeam/Model/XCombatellegFanaticsJoinMatrix.m b/YuMi/Modules/YMRoom/View/AnchorView/FansTeam/Model/XCombatellegFanaticsJoinMatrix.m new file mode 100644 index 00000000..ddb7b002 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnchorView/FansTeam/Model/XCombatellegFanaticsJoinMatrix.m @@ -0,0 +1,18 @@ +// +// YMAnchorFansJoinModel.m +// YUMI +// +// Created by YUMI on 2022/4/7. +// + +#import "XCombatellegFanaticsJoinMatrix.h" + +@implementation XCombatellegFanaticsJoinMatrix + ++ (NSDictionary *)objectCtowardsegorizeInGarment { + return @{ + @"privilegeConfigVos":XCombatellegFanaticsPrivilegeMatrix.class + }; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/AnchorView/FansTeam/Model/XCombatellegFanaticsPrivilegeMatrix.h b/YuMi/Modules/YMRoom/View/AnchorView/FansTeam/Model/XCombatellegFanaticsPrivilegeMatrix.h new file mode 100644 index 00000000..ec10a94a --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnchorView/FansTeam/Model/XCombatellegFanaticsPrivilegeMatrix.h @@ -0,0 +1,30 @@ +// +// YMAnchorFansJoinModel.h +// YUMI +// +// Created by YUMI on 2022/4/7. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSUInteger, KellegFansTeamPrivilegeGenre) { + KellegFansTeamPrivilegeGenreNameplate = 1, + KellegFansTeamPrivilegeGenreGift = 2, + KellegFansTeamPrivilegeGenreTeamGift, +}; + +@interface XCombatellegFanaticsPrivilegeMatrix : NSObject + +@property (nonatomic, assign) NSInteger privilegeId; +@property (nonatomic, copy) NSString *name; +@property (nonatomic, assign) NSInteger normalId; +@property (nonatomic, copy) NSString *desc; +@property (nonatomic, assign) KellegFansTeamPrivilegeGenre type; +@property (nonatomic, copy) NSString *icon; +@property (nonatomic, assign) NSInteger status; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AnchorView/FansTeam/Model/XCombatellegFanaticsPrivilegeMatrix.m b/YuMi/Modules/YMRoom/View/AnchorView/FansTeam/Model/XCombatellegFanaticsPrivilegeMatrix.m new file mode 100644 index 00000000..7adb8368 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnchorView/FansTeam/Model/XCombatellegFanaticsPrivilegeMatrix.m @@ -0,0 +1,17 @@ +// +// YMAnchorFansJoinModel.m +// YUMI +// +// Created by YUMI on 2022/4/7. +// + +#import "XCombatellegFanaticsPrivilegeMatrix.h" + +@implementation XCombatellegFanaticsPrivilegeMatrix + ++ (NSDictionary *)replacedDigitalByvirtueofMaintainertyConstitute { + return @{@"desc": @"description" + }; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/AnchorView/FansTeam/Model/XCombatellegFanaticsRelationMatrix.h b/YuMi/Modules/YMRoom/View/AnchorView/FansTeam/Model/XCombatellegFanaticsRelationMatrix.h new file mode 100644 index 00000000..de3fa3b7 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnchorView/FansTeam/Model/XCombatellegFanaticsRelationMatrix.h @@ -0,0 +1,23 @@ +// +// YMAnchorFansRelationModel.h +// YUMI +// +// Created by YUMI on 2022/4/7. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface XCombatellegFanaticsRelationMatrix : NSObject + +@property (nonatomic, assign) BOOL hasFansTeamCurrentRoom; +@property (nonatomic, assign) BOOL isAnchorFans; +@property (nonatomic, assign) BOOL isCurrentRoomAnchor; +@property (nonatomic, assign) BOOL isRedPop; +@property (nonatomic, assign) NSInteger anchorFansNum; +@property (nonatomic, assign) NSInteger fansLevelSeq; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AnchorView/FansTeam/Model/XCombatellegFanaticsRelationMatrix.m b/YuMi/Modules/YMRoom/View/AnchorView/FansTeam/Model/XCombatellegFanaticsRelationMatrix.m new file mode 100644 index 00000000..4cddb2a3 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnchorView/FansTeam/Model/XCombatellegFanaticsRelationMatrix.m @@ -0,0 +1,12 @@ +// +// YMAnchorFansRelationModel.m +// YUMI +// +// Created by YUMI on 2022/4/7. +// + +#import "XCombatellegFanaticsRelationMatrix.h" + +@implementation XCombatellegFanaticsRelationMatrix + +@end diff --git a/YuMi/Modules/YMRoom/View/AnchorView/FansTeam/Model/XCombatellegFanaticsmissionMatrix.h b/YuMi/Modules/YMRoom/View/AnchorView/FansTeam/Model/XCombatellegFanaticsmissionMatrix.h new file mode 100644 index 00000000..40a575a0 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnchorView/FansTeam/Model/XCombatellegFanaticsmissionMatrix.h @@ -0,0 +1,29 @@ +// +// YMAnchorFansTaskModel.h +// YUMI +// +// Created by YUMI on 2022/4/7. +// + +#import +#import "XCombatellegFanaticsmissionSpecificMatrix.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface XCombatellegFanaticsmissionMatrix : NSObject + +@property (nonatomic, copy) NSString *teamUid; +@property (nonatomic, copy) NSString *anchorAvatar; +@property (nonatomic, copy) NSString *anchorNick; +@property (nonatomic, assign) NSInteger teamNum; +@property (nonatomic, assign) NSInteger memberUid; +@property (nonatomic, copy) NSString *memberAvatar; +@property (nonatomic, strong) NSArray *avatarList; +@property (nonatomic, strong) NSArray *taskVos; +@property (nonatomic, assign) NSInteger levelSeq; +@property (nonatomic, assign) NSInteger levelExper; +@property (nonatomic, assign) NSInteger nextLevelExper; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AnchorView/FansTeam/Model/XCombatellegFanaticsmissionMatrix.m b/YuMi/Modules/YMRoom/View/AnchorView/FansTeam/Model/XCombatellegFanaticsmissionMatrix.m new file mode 100644 index 00000000..08a671e3 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnchorView/FansTeam/Model/XCombatellegFanaticsmissionMatrix.m @@ -0,0 +1,18 @@ +// +// YMAnchorFansTaskModel.m +// YUMI +// +// Created by YUMI on 2022/4/7. +// + +#import "XCombatellegFanaticsmissionMatrix.h" + +@implementation XCombatellegFanaticsmissionMatrix + ++ (NSDictionary *)objectCtowardsegorizeInGarment { + return @{ + @"taskVos":XCombatellegFanaticsmissionSpecificMatrix.class + }; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/AnchorView/FansTeam/Model/XCombatellegFanaticsmissionSpecificMatrix.h b/YuMi/Modules/YMRoom/View/AnchorView/FansTeam/Model/XCombatellegFanaticsmissionSpecificMatrix.h new file mode 100644 index 00000000..e7943f3f --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnchorView/FansTeam/Model/XCombatellegFanaticsmissionSpecificMatrix.h @@ -0,0 +1,25 @@ +// +// YMAnchorFansTaskDetailModel.h +// YUMI +// +// Created by YUMI on 2022/4/7. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface XCombatellegFanaticsmissionSpecificMatrix : NSObject + +@property (nonatomic, assign) NSInteger taskId; +@property (nonatomic, copy) NSString *taskCode; +@property (nonatomic, copy) NSString *taskName; +@property (nonatomic, copy) NSString *icon; +@property (nonatomic, copy) NSString *taskDesc; +@property (nonatomic, assign) NSInteger awardVal; +@property (nonatomic, assign) NSInteger totalNum; +@property (nonatomic, assign) BOOL isFinished; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AnchorView/FansTeam/Model/XCombatellegFanaticsmissionSpecificMatrix.m b/YuMi/Modules/YMRoom/View/AnchorView/FansTeam/Model/XCombatellegFanaticsmissionSpecificMatrix.m new file mode 100644 index 00000000..01465a66 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnchorView/FansTeam/Model/XCombatellegFanaticsmissionSpecificMatrix.m @@ -0,0 +1,12 @@ +// +// YMAnchorFansTaskDetailModel.m +// YUMI +// +// Created by YUMI on 2022/4/7. +// + +#import "XCombatellegFanaticsmissionSpecificMatrix.h" + +@implementation XCombatellegFanaticsmissionSpecificMatrix + +@end diff --git a/YuMi/Modules/YMRoom/View/AnchorView/FansTeam/Presenter/XCombatellegFanaticsSquadExternalizer.h b/YuMi/Modules/YMRoom/View/AnchorView/FansTeam/Presenter/XCombatellegFanaticsSquadExternalizer.h new file mode 100644 index 00000000..0583ae17 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnchorView/FansTeam/Presenter/XCombatellegFanaticsSquadExternalizer.h @@ -0,0 +1,18 @@ +// +// YMAnchorFansTeamPresenter.h +// YUMI +// +// Created by YUMI on 2022/4/6. +// + +#import "BaseMvpExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface XCombatellegFanaticsSquadExternalizer : BaseMvpExternalizer + +- (void)outKellegFantowardsicsSquad:(NSString *)teamUid; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AnchorView/FansTeam/Presenter/XCombatellegFanaticsSquadExternalizer.m b/YuMi/Modules/YMRoom/View/AnchorView/FansTeam/Presenter/XCombatellegFanaticsSquadExternalizer.m new file mode 100644 index 00000000..73ece290 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnchorView/FansTeam/Presenter/XCombatellegFanaticsSquadExternalizer.m @@ -0,0 +1,20 @@ +// +// YMAnchorFansTeamPresenter.m +// YUMI +// +// Created by YUMI on 2022/4/6. +// + +#import "XCombatellegFanaticsSquadExternalizer.h" +#import "Api+FansTeam.h" +#import "XCombatellegFanaticsTeamCeremony.h" + +@implementation XCombatellegFanaticsSquadExternalizer + +- (void)outKellegFantowardsicsSquad:(NSString *)teamUid { + [Api requisitionOptowardssideFantowardsicsSquad:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] outFantowardsicsSquadAccomplishment]; + }] teamUid:teamUid]; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/AnchorView/FansTeam/Protocol/XCombatellegFanaticsTeamCeremony.h b/YuMi/Modules/YMRoom/View/AnchorView/FansTeam/Protocol/XCombatellegFanaticsTeamCeremony.h new file mode 100644 index 00000000..a91b04ce --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnchorView/FansTeam/Protocol/XCombatellegFanaticsTeamCeremony.h @@ -0,0 +1,13 @@ +// +// YMAnchorFansTeamProtocol.h +// YUMI +// +// Created by YUMI on 2022/4/6. +// + +@protocol XCombatellegFanaticsTeamCeremony + +- (void)outFantowardsicsSquadAccomplishment; + +@end + diff --git a/YuMi/Modules/YMRoom/View/AnchorView/FansTeam/View/XCombatellegFanaticsSquadEntranceRegard.h b/YuMi/Modules/YMRoom/View/AnchorView/FansTeam/View/XCombatellegFanaticsSquadEntranceRegard.h new file mode 100644 index 00000000..f735f03a --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnchorView/FansTeam/View/XCombatellegFanaticsSquadEntranceRegard.h @@ -0,0 +1,21 @@ +// +// YMAnchorFansTeamEntranceView.h +// YUMI +// +// Created by YUMI on 2022/4/6. +// + +#import +#import "XCombatellegFanaticsRelationMatrix.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface XCombatellegFanaticsSquadEntranceRegard : UIView + +@property (nonatomic, copy) NSString *title; + +@property (nonatomic, strong) XCombatellegFanaticsRelationMatrix *model; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AnchorView/FansTeam/View/XCombatellegFanaticsSquadEntranceRegard.m b/YuMi/Modules/YMRoom/View/AnchorView/FansTeam/View/XCombatellegFanaticsSquadEntranceRegard.m new file mode 100644 index 00000000..7ad76ff9 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnchorView/FansTeam/View/XCombatellegFanaticsSquadEntranceRegard.m @@ -0,0 +1,153 @@ +// +// YMAnchorFansTeamEntranceView.m +// YUMI +// +// Created by YUMI on 2022/4/6. +// + +#import "XCombatellegFanaticsSquadEntranceRegard.h" +#import +#import "UIImage+Utils.h" +#import "DJDKMIMOMColor.h" + +@interface XCombatellegFanaticsSquadEntranceRegard() + +@property (nonatomic, strong) UIImageView *backgroundIndicateRegard; +@property (nonatomic, strong) UIImageView *figureIndicateRegard; +@property (nonatomic, strong) UILabel *titleLabel; + +@end + +@implementation XCombatellegFanaticsSquadEntranceRegard + +- (instancetype)initWithFrame:(CGRect)frame { + if (self = [super initWithFrame:frame]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.backgroundIndicateRegard]; + [self addSubview:self.figureIndicateRegard]; + [self addSubview:self.titleLabel]; +} + +- (void)initChildLyRestrictions { + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self.figureIndicateRegard); + }]; + + [self.backgroundIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.bottom.mas_equalTo(self); + make.left.mas_equalTo(-11); + make.right.mas_equalTo(self.figureIndicateRegard.mas_right).mas_offset(-8); + make.height.mas_equalTo(22); + }]; + [self.figureIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.backgroundIndicateRegard.mas_centerY); + make.width.height.mas_equalTo(22); + }]; + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.backgroundIndicateRegard); + make.right.mas_equalTo(self.figureIndicateRegard.mas_left); + make.left.mas_equalTo(8); + }]; + +} +#pragma mark - Getters And Setters +- (void)setTitle:(NSString *)title { + self.titleLabel.text = title; +} + +- (void)setModel:(XCombatellegFanaticsRelationMatrix *)model { + _model = model; + if (model.isCurrentRoomAnchor) { + self.figureIndicateRegard.image = [UIImage imageNamed:@"yumi_anchor_fansTeam_entrance_hadOpen"]; + [self.figureIndicateRegard mas_remakeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(20); + make.height.mas_equalTo(14); + make.centerY.mas_equalTo(self.backgroundIndicateRegard); + }]; + [self.backgroundIndicateRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self.figureIndicateRegard).mas_offset(8); + }]; + if (model.hasFansTeamCurrentRoom) { + self.titleLabel.text = [NSString stringWithFormat:@"粉丝团(%ld)", model.anchorFansNum]; + } else { + self.titleLabel.text = YMLocalizedString(@"YUMI_Anchor_Fans_Team_Entrance_View_1"); + } + } else { + if (model.hasFansTeamCurrentRoom) { + if (model.isAnchorFans) { + self.titleLabel.text = [NSString stringWithFormat:@"粉丝LV.%zd ", model.fansLevelSeq]; + self.figureIndicateRegard.image = [UIImage imageNamed:@"yumi_anchor_fansTeam_entrance_hadOpen"]; + [self.figureIndicateRegard mas_remakeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(20); + make.height.mas_equalTo(14); + make.centerY.mas_equalTo(self.titleLabel); + }]; + [self.backgroundIndicateRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self.figureIndicateRegard).mas_offset(8); + make.height.mas_equalTo(22); + }]; + } else { + self.titleLabel.text = YMLocalizedString(@"YUMI_Anchor_Fans_Team_Entrance_View_3"); + self.figureIndicateRegard.image = [UIImage imageNamed:@"yumi_anchor_fansTeam_entrance_pic"]; + [self.figureIndicateRegard mas_remakeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.backgroundIndicateRegard); + make.width.height.mas_equalTo(25); + }]; + [self.backgroundIndicateRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self.figureIndicateRegard.mas_right).mas_offset(8); + }]; + } + } else { + self.titleLabel.text = YMLocalizedString(@"YUMI_Anchor_Fans_Team_Entrance_View_4"); + [self.figureIndicateRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.width.height.mas_equalTo(0); + }]; + [self.backgroundIndicateRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self.titleLabel).mas_offset(8); + }]; + } + } +} + +- (UIImageView *)backgroundIndicateRegard { + if (_backgroundIndicateRegard == nil) { + _backgroundIndicateRegard = [[UIImageView alloc] init]; + _backgroundIndicateRegard.image = [UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[UIColorFromRGB(0xFC37D6), UIColorFromRGB(0xFC7FDC)] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(92, 22)]; + _backgroundIndicateRegard.userInteractionEnabled = YES; + _backgroundIndicateRegard.layer.cornerRadius = 11; + _backgroundIndicateRegard.layer.masksToBounds = YES; + _backgroundIndicateRegard.layer.borderWidth = 1; + _backgroundIndicateRegard.layer.borderColor = [UIColor colorWithWhite:1 alpha:0.35].CGColor; + } + return _backgroundIndicateRegard; +} + +- (UIImageView *)figureIndicateRegard { + if (_figureIndicateRegard == nil) { + _figureIndicateRegard = [[UIImageView alloc] init]; + _figureIndicateRegard.userInteractionEnabled = YES; + _figureIndicateRegard.image = [UIImage imageNamed:@"yumi_anchor_fansTeam_entrance_pic"]; + _figureIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _figureIndicateRegard; +} + +- (UILabel *)titleLabel { + if (_titleLabel == nil) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.textColor = UIColor.whiteColor; + _titleLabel.font = [UIFont systemFontOfSize:10 weight:UIFontWeightMedium]; + _titleLabel.text = @"0"; + } + return _titleLabel; +} + + +@end diff --git a/YuMi/Modules/YMRoom/View/AnchorView/FansTeam/View/XCombatellegFanaticsSquadRegardGovernancer.h b/YuMi/Modules/YMRoom/View/AnchorView/FansTeam/View/XCombatellegFanaticsSquadRegardGovernancer.h new file mode 100644 index 00000000..414c8fcb --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnchorView/FansTeam/View/XCombatellegFanaticsSquadRegardGovernancer.h @@ -0,0 +1,21 @@ +// +// YMAnchorFansTeamViewController.h +// YUMI +// +// Created by YUMI on 2022/4/6. +// + +#import "MvpRegardGovernancer.h" +#import "XCombatellegFanaticsJoinMatrix.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface XCombatellegFanaticsSquadRegardGovernancer : MvpRegardGovernancer + +- (instancetype)initAboutChamberCid:(NSString *)roomUid; + +@property (nonatomic, strong) XCombatellegFanaticsJoinMatrix *model; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AnchorView/FansTeam/View/XCombatellegFanaticsSquadRegardGovernancer.m b/YuMi/Modules/YMRoom/View/AnchorView/FansTeam/View/XCombatellegFanaticsSquadRegardGovernancer.m new file mode 100644 index 00000000..be6e3822 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnchorView/FansTeam/View/XCombatellegFanaticsSquadRegardGovernancer.m @@ -0,0 +1,549 @@ +// +// YMAnchorFansTeamViewController.m +// YUMI +// +// Created by YUMI on 2022/4/6. +// + +#import "XCombatellegFanaticsSquadRegardGovernancer.h" +#import "XCombatellegFanaticsSquadExternalizer.h" +#import "XCombatellegFanaticsTeamCeremony.h" +#import "NetIndicateRegard.h" +#import +#import "YUMIMacroUitls.h" +#import "UIImage+Utils.h" +#import "DJDKMIMOMColor.h" +#import "YUMIChamberHalfTissueRegard.h" +#import "MKJPopup.h" +#import "YUMIHtmlUrl.h" +#import "Api+Gift.h" +#import "AccountAbstractStorage.h" +#import "UIButton+EnlargeTouchArea.h" + +@interface XCombatellegFanaticsSquadRegardGovernancer() + +@property (nonatomic, strong) NSString *roomUid; +@property (nonatomic, strong) UIView *apexRegard; +@property (nonatomic, strong) UIView *contentView; +@property (nonatomic, strong) UIImageView *backgroundIndicateRegard; +@property (nonatomic, strong) UIButton *facilitateBtuton; +@property (nonatomic, strong) NetIndicateRegard *intelligenceportraitIndicateRegard; +@property (nonatomic, strong) UILabel *constituteSequencignation; +@property (nonatomic, strong) UIView *computationSatisfperformanceRegard; +@property (nonatomic, strong) UILabel *computationSequencignation; + +@property (nonatomic, strong) UIView *stackView; +@property (nonatomic, strong) UIImageView *rateIndicateRegard; +@property (nonatomic, strong) UIImageView *privilegeChampionIndicateRegard; +@property (nonatomic, strong) UIView *materialBackgroundRegard; +@property (nonatomic, strong) NetIndicateRegard *materialIndicateRegard; +@property (nonatomic, strong) UILabel *materialSequencignation; +@property (nonatomic, strong) UILabel *materialSequenceSequencignation; +@property (nonatomic, strong) UIView *presentBackgroundRegard; +@property (nonatomic, strong) NetIndicateRegard *presentIndicateRegard; +@property (nonatomic, strong) UILabel *presentSequencignation; +@property (nonatomic, strong) UILabel *presentSequenceSequencignation; +@property (nonatomic, strong) NetIndicateRegard *figureIndicateRegard; +@property (nonatomic, strong) UIButton *joinBtuton; +@property (nonatomic, strong) UILabel *joinSequencignation; + +@end + +@implementation XCombatellegFanaticsSquadRegardGovernancer + +- (instancetype)initAboutChamberCid:(NSString *)roomUid { + if (self = [super init]) { + self.roomUid = roomUid; + self.modalPresentationStyle = UIModalPresentationOverFullScreen; + } + return self; +} + +- (XCombatellegFanaticsSquadExternalizer *)producePresimport { + return [[XCombatellegFanaticsSquadExternalizer alloc] init];; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initSubViews]; + [self initChildLyRestrictions]; + [self setupAbstract]; +} + +- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { + [self.view endEditing:YES]; +} + + +#pragma mark - Private Method +- (void)initSubViews { + self.view.backgroundColor = [UIColor clearColor]; + [self.view addSubview:self.apexRegard]; + [self.view addSubview:self.contentView]; + + [self.contentView addSubview:self.backgroundIndicateRegard]; + [self.contentView addSubview:self.facilitateBtuton]; + [self.contentView addSubview:self.intelligenceportraitIndicateRegard]; + [self.contentView addSubview:self.constituteSequencignation]; + [self.contentView addSubview:self.computationSatisfperformanceRegard]; + [self.computationSatisfperformanceRegard addSubview:self.computationSequencignation]; + [self.contentView addSubview:self.stackView]; + [self.stackView addSubview:self.rateIndicateRegard]; + + [self.contentView addSubview:self.privilegeChampionIndicateRegard]; + [self.contentView addSubview:self.materialBackgroundRegard]; + + [self.materialBackgroundRegard addSubview:self.materialIndicateRegard]; + [self.materialBackgroundRegard addSubview:self.materialSequencignation]; + [self.materialBackgroundRegard addSubview:self.materialSequenceSequencignation]; + + [self.contentView addSubview:self.presentBackgroundRegard]; + [self.presentBackgroundRegard addSubview:self.presentIndicateRegard]; + [self.presentBackgroundRegard addSubview:self.presentSequencignation]; + [self.presentBackgroundRegard addSubview:self.presentSequenceSequencignation]; + + [self.contentView addSubview:self.joinBtuton]; + [self.contentView addSubview:self.figureIndicateRegard]; + [self.contentView addSubview:self.joinSequencignation]; +} + +- (void)initChildLyRestrictions { + [self.apexRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self.view); + make.bottom.mas_equalTo(self.contentView.mas_top); + }]; + + [self.contentView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.mas_equalTo(self.view); + make.height.mas_equalTo(416); + }]; + + [self.backgroundIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make){ + make.edges.mas_equalTo(0); + }]; + + [self.facilitateBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(-10); + make.top.mas_equalTo(10); + make.width.height.mas_equalTo(30); + }]; + + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(15); + make.width.height.mas_equalTo(64); + make.top.mas_equalTo(36); + }]; + + [self.constituteSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(21); + make.left.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_right).mas_offset(8); + make.top.mas_equalTo(self.intelligenceportraitIndicateRegard).offset(6); + make.right.mas_equalTo(self.computationSatisfperformanceRegard.mas_left).mas_offset(-4); + }]; + + [self.computationSatisfperformanceRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.constituteSequencignation); + make.right.mas_lessThanOrEqualTo(-26); + make.height.mas_equalTo(15); + make.left.mas_equalTo(self.constituteSequencignation.mas_right).mas_offset(4); + }]; + [self.computationSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.bottom.mas_equalTo(self.computationSatisfperformanceRegard); + make.left.mas_equalTo(self.computationSatisfperformanceRegard).mas_offset(5); + make.right.mas_equalTo(self.computationSatisfperformanceRegard).mas_offset(-5); + }]; + + [self.computationSequencignation setContentHuggingPriority:UILayoutPriorityDefaultHigh forAxis:UILayoutConstraintAxisHorizontal]; + [self.constituteSequencignation setContentCompressionResistancePriority:UILayoutPriorityDefaultLow forAxis:UILayoutConstraintAxisHorizontal]; + + [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_right).mas_offset(8); + make.bottom.mas_equalTo(self.intelligenceportraitIndicateRegard).mas_offset(-3); + make.height.mas_equalTo(28); + make.width.mas_equalTo(3 * (20 + 8) + 34); + }]; + + [self.rateIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.stackView); + make.left.mas_equalTo(9); + make.width.mas_equalTo(16); + make.height.mas_equalTo(18); + }]; + [self.privilegeChampionIndicateRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_bottom).mas_offset(15); + make.centerX.mas_equalTo(self.contentView); + make.width.mas_equalTo(103); + make.height.mas_equalTo(38); + }]; + + [self.materialBackgroundRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.contentView).inset(15); + make.top.mas_equalTo(self.privilegeChampionIndicateRegard.mas_bottom).offset(7); + make.height.mas_equalTo(58); + }]; + + [self.materialIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(10); + make.centerY.mas_equalTo(self.materialBackgroundRegard); + make.width.height.mas_equalTo(38); + }]; + + [self.materialSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.materialIndicateRegard.mas_right).mas_offset(8); + make.top.mas_equalTo(self.materialIndicateRegard).mas_offset(1); + make.height.mas_equalTo(21); + }]; + [self.materialSequenceSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.materialSequencignation.mas_bottom); + make.left.mas_equalTo(self.materialSequencignation); + make.height.mas_equalTo(15); + }]; + + [self.presentBackgroundRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.contentView).inset(15); + make.top.mas_equalTo(self.materialBackgroundRegard.mas_bottom).offset(12); + make.height.mas_equalTo(58); + }]; + + [self.presentIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(10); + make.centerY.mas_equalTo(self.presentBackgroundRegard); + make.width.height.mas_equalTo(38); + }]; + + [self.presentSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.presentIndicateRegard.mas_right).mas_offset(8); + make.top.mas_equalTo(self.presentIndicateRegard).mas_offset(1); + make.height.mas_equalTo(21); + }]; + [self.presentSequenceSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.presentSequencignation.mas_bottom); + make.left.mas_equalTo(self.presentSequencignation); + make.height.mas_equalTo(15); + }]; + + [self.figureIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.bottom.mas_equalTo(self.joinBtuton); + make.left.mas_equalTo(self.joinBtuton).mas_offset(15); + make.width.height.mas_equalTo(75); + }]; + [self.joinBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.contentView).inset(15); + make.height.mas_equalTo(48); + make.bottom.mas_equalTo(-kSafeAreaBottomHeight - 14); + }]; + [self.joinSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.figureIndicateRegard.mas_right); + make.centerY.mas_equalTo(self.joinBtuton); + }]; +} + +- (void)setModel:(XCombatellegFanaticsJoinMatrix *)model { + _model = model; +} + +- (void)setupAbstract { + if (self.model) { + self.intelligenceportraitIndicateRegard.imageUrl = self.model.anchorAvatar; + self.constituteSequencignation.text = self.model.anchorNick; + self.computationSequencignation.text = [NSString stringWithFormat:YMLocalizedString(@"YUMI_Anchor_Fans_Team_View_Controller_0"), self.model.teamNum]; + + XCombatellegFanaticsPrivilegeMatrix *materialMatrix = self.model.privilegeConfigVos[0]; + self.materialIndicateRegard.imageUrl = materialMatrix.icon; + self.materialSequencignation.text = materialMatrix.name; + self.materialSequenceSequencignation.text = materialMatrix.desc; + XCombatellegFanaticsPrivilegeMatrix *presentMatrix = self.model.privilegeConfigVos[1]; + self.presentIndicateRegard.imageUrl = presentMatrix.icon; + self.presentSequencignation.text = presentMatrix.name; + self.presentSequenceSequencignation.text = presentMatrix.desc; + + XCombatellegFanaticsPrivilegeMatrix *joinModel = self.model.privilegeConfigVos[2]; + self.joinSequencignation.text = joinModel.name; + self.figureIndicateRegard.imageUrl = joinModel.icon; + + CGFloat margin = 8; + for (int i = 0; i < 3; i++) { + NSString *str; + if (self.model.avatarList.count > i) { + str = self.model.avatarList[i]; + } + NetIndicateDisposition *config = [[NetIndicateDisposition alloc] init]; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyDispossessIntelligenceportraitDepapossessor]; + NetIndicateRegard *imageView = [[NetIndicateRegard alloc] initWithConfig:config]; + imageView.layer.cornerRadius = 10; + imageView.layer.masksToBounds = YES; + if (str) { + imageView.imageUrl = str; + } + [self.stackView addSubview:imageView]; + [imageView mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.stackView); + make.width.height.mas_equalTo(20); + make.left.mas_equalTo(i * 27 + 25 + margin); + }]; + } + } +} + +#pragma mark - private +- (void)onDismiss:(UITapGestureRecognizer *)ges { + [self dismissViewControllerAnimated:YES completion:nil]; +} + +- (void)helpBtutonPerformance:(UIButton *)button { + YUMIChamberHalfTissueRegard * webView = [[YUMIChamberHalfTissueRegard alloc] init]; + webView.url = [NSString stringWithFormat:@"%@?roomUid=%@", URLWithType(kAnchorFansRuleURL), self.roomUid]; + [MKJPopup popupRegard:webView style:MKJPopupStyleActionSheet]; +} + +- (void)combintowardsionBtutonPerformance:(UIButton *)button { + button.userInteractionEnabled = NO; + XCombatellegFanaticsPrivilegeMatrix *joinModel = self.model.privilegeConfigVos[2]; + [Api requisitionDischargeKellegFantowardsicsPresent:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + [self EvidenceAccomplishmentToast:YMLocalizedString(@"YUMI_Anchor_Fans_Team_View_Controller_1")]; + [self dismissViewControllerAnimated:YES completion:nil]; + } else { + [self EvidenceMistakeToast:msg]; + button.userInteractionEnabled = YES; + } + } targetUids:[NSString stringWithFormat:@"%lld", self.model.teamUid] giftNum:@"1" sendType:@"1" giftId:[NSString stringWithFormat:@"%ld", joinModel.normalId] giftSource:@"1" giftType:@"" roomUid:self.roomUid msg:@"" uid:[[AccountAbstractStorage instance] acquireCid]]; +} + +- (void)passtoFantowardsicsRtowardse:(UITapGestureRecognizer *)ges { + YUMIChamberHalfTissueRegard * webView = [[YUMIChamberHalfTissueRegard alloc] init]; + webView.url = [NSString stringWithFormat:@"%@?roomUid=%@", URLWithType(kAnchorFansRankURL), self.roomUid]; + [MKJPopup popupRegard:webView style:MKJPopupStyleActionSheet]; +} + +#pragma mark - getter +- (UIView *)apexRegard { + if (!_apexRegard) { + _apexRegard = [[UIView alloc] init]; + _apexRegard.backgroundColor = UIColor.blackColor; + _apexRegard.alpha = 0.3; + UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(onDismiss:)]; + [_apexRegard addGestureRecognizer:tap]; + } + return _apexRegard; +} + +- (UIView *)contentView { + if (!_contentView) { + _contentView = [[UIView alloc] init]; + CAShapeLayer * layer = [CAShapeLayer layer]; + layer.path = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, KScreenWidth,416) byRoundingCorners:UIRectCornerTopLeft | UIRectCornerTopRight cornerRadii:CGSizeMake(12, 12)].CGPath; + _contentView.layer.mask = layer; + } + return _contentView; +} + +- (UIImageView *)backgroundIndicateRegard { + if (!_backgroundIndicateRegard) { + _backgroundIndicateRegard = [[UIImageView alloc] init]; + _backgroundIndicateRegard.image = [UIImage imageNamed:@"yumi_join_anchor_fansTeam_background"]; + _backgroundIndicateRegard.contentMode = UIViewContentModeScaleAspectFill; + } + return _backgroundIndicateRegard; +} + +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc] init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _intelligenceportraitIndicateRegard.layer.cornerRadius = 64 / 2; + } + return _intelligenceportraitIndicateRegard; +} + +- (UILabel *)constituteSequencignation { + if (!_constituteSequencignation) { + UILabel *label = [[UILabel alloc] init]; + label.textColor = [DJDKMIMOMColor mainEssayPrettify]; + label.font = [UIFont systemFontOfSize:14 weight:UIFontWeightBold]; + _constituteSequencignation = label; + } + return _constituteSequencignation; +} + +- (UIView *)computationSatisfperformanceRegard { + if (!_computationSatisfperformanceRegard) { + _computationSatisfperformanceRegard = [[UIView alloc] init]; + _computationSatisfperformanceRegard.backgroundColor = [UIColor whiteColor]; + _computationSatisfperformanceRegard.layer.cornerRadius = 7.5; + _computationSatisfperformanceRegard.layer.masksToBounds = YES; + } + return _computationSatisfperformanceRegard; +} + +- (UILabel *)computationSequencignation { + if (!_computationSequencignation) { + _computationSequencignation = [[UILabel alloc] init]; + _computationSequencignation.textColor = UIColorFromRGB(0xFE3478); + _computationSequencignation.font = [UIFont systemFontOfSize:10 weight:UIFontWeightMedium]; + } + return _computationSequencignation; +} + +- (UIView *)stackView { + if (!_stackView) { + _stackView = [[UIView alloc] init]; + _stackView.backgroundColor = [UIColor whiteColor]; + _stackView.layer.cornerRadius = 14; + _stackView.layer.masksToBounds = YES; + UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(passtoFantowardsicsRtowardse:)]; + [_stackView addGestureRecognizer:tap]; + } + return _stackView; +} + +- (UIImageView *)rateIndicateRegard { + if (!_rateIndicateRegard) { + _rateIndicateRegard = [[UIImageView alloc] init]; + _rateIndicateRegard.image = [UIImage imageNamed:@"yumi_anchor_fansTeam_rank"]; + } + return _rateIndicateRegard; +} + +- (UIImageView *)privilegeChampionIndicateRegard { + if (!_privilegeChampionIndicateRegard) { + _privilegeChampionIndicateRegard = [[UIImageView alloc] init]; + _privilegeChampionIndicateRegard.image = [UIImage imageNamed:@"yumi_anchor_fansTeam_nameplate"]; + _privilegeChampionIndicateRegard.contentMode = UIViewContentModeScaleAspectFill; + } + return _privilegeChampionIndicateRegard; +} + +- (UIView *)materialBackgroundRegard { + if (!_materialBackgroundRegard) { + _materialBackgroundRegard = [[UIView alloc] init]; + _materialBackgroundRegard.backgroundColor = [UIColor whiteColor]; + _materialBackgroundRegard.layer.cornerRadius = 8; + _materialBackgroundRegard.layer.masksToBounds = YES; + } + return _materialBackgroundRegard; +} + +- (NetIndicateRegard *)materialIndicateRegard { + if (!_materialIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc] init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _materialIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _materialIndicateRegard.layer.masksToBounds = YES; + _materialIndicateRegard.layer.cornerRadius = 8; + _materialIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + _materialIndicateRegard.backgroundColor = [DJDKMIMOMColor aplictowardsionEncouragegroundPrettify]; + } + return _materialIndicateRegard; +} + +- (UILabel *)materialSequencignation; { + if (!_materialSequencignation) { + UILabel *label = [[UILabel alloc] init]; + label.textColor = [DJDKMIMOMColor mainEssayPrettify]; + label.font = [UIFont systemFontOfSize:14 weight:UIFontWeightBold]; + _materialSequencignation = label; + } + return _materialSequencignation; +} + +- (UILabel *)materialSequenceSequencignation; { + if (!_materialSequenceSequencignation) { + UILabel *label = [[UILabel alloc] init]; + label.textColor = [DJDKMIMOMColor essayTertiusPrettify]; + label.font = [UIFont systemFontOfSize:10 weight:UIFontWeightMedium]; + _materialSequenceSequencignation = label; + } + return _materialSequenceSequencignation; +} + +- (UIView *)presentBackgroundRegard { + if (!_presentBackgroundRegard) { + _presentBackgroundRegard = [[UIView alloc] init]; + _presentBackgroundRegard.backgroundColor = [UIColor whiteColor]; + _presentBackgroundRegard.layer.cornerRadius = 8; + _presentBackgroundRegard.layer.masksToBounds = YES; + } + return _presentBackgroundRegard; +} + +- (NetIndicateRegard *)presentIndicateRegard { + if (!_presentIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc] init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _presentIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _presentIndicateRegard.layer.masksToBounds = YES; + _presentIndicateRegard.layer.cornerRadius = 8; + _presentIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + _presentIndicateRegard.backgroundColor = [DJDKMIMOMColor aplictowardsionEncouragegroundPrettify]; + } + return _presentIndicateRegard; +} + +- (UILabel *)presentSequencignation; { + if (!_presentSequencignation) { + UILabel *label = [[UILabel alloc] init]; + label.textColor = [DJDKMIMOMColor mainEssayPrettify]; + label.font = [UIFont systemFontOfSize:14 weight:UIFontWeightBold]; + _presentSequencignation = label; + } + return _presentSequencignation; +} + +- (UILabel *)presentSequenceSequencignation; { + if (!_presentSequenceSequencignation) { + UILabel *label = [[UILabel alloc] init]; + label.textColor = [DJDKMIMOMColor essayTertiusPrettify]; + label.font = [UIFont systemFontOfSize:10 weight:UIFontWeightMedium]; + _presentSequenceSequencignation = label; + } + return _presentSequenceSequencignation; +} + +- (NetIndicateRegard *)figureIndicateRegard { + if (!_figureIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc] init]; + config.imageType = ImageGenreUserIcon; + _figureIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _figureIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _figureIndicateRegard; +} + +- (UIButton *)joinBtuton { + if (!_joinBtuton) { + _joinBtuton = [[UIButton alloc] init]; + [_joinBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[UIColorFromRGB(0xFF49A3), UIColorFromRGB(0xFF2B4C)] gradientType:GradientGenreTopToBottom imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + _joinBtuton.layer.masksToBounds = YES; + _joinBtuton.layer.cornerRadius = 24; + [_joinBtuton addTarget:self action:@selector(combintowardsionBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _joinBtuton; +} + +- (UILabel *)joinSequencignation { + if (!_joinSequencignation) { + UILabel *label = [[UILabel alloc] init]; + label.textColor = [UIColor whiteColor]; + label.font = [UIFont systemFontOfSize:14 weight:UIFontWeightMedium]; + _joinSequencignation = label; + } + return _joinSequencignation; +} + +- (UIButton *)facilitateBtuton { + if (!_facilitateBtuton) { + _facilitateBtuton = [[UIButton alloc] init]; + [_facilitateBtuton addTarget:self action:@selector(helpBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + [_facilitateBtuton setImage:[UIImage imageNamed:@"yumi_anchor_fansTeam_help"] forState:UIControlStateNormal]; + [_facilitateBtuton setEnlargeEdgeAboutApex:5 right:5 bottom:5 left:5]; + } + return _facilitateBtuton; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/AnchorView/FansTeam/View/XCombatellegFanaticsmissionRegardGovernancer.h b/YuMi/Modules/YMRoom/View/AnchorView/FansTeam/View/XCombatellegFanaticsmissionRegardGovernancer.h new file mode 100644 index 00000000..2626be8d --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnchorView/FansTeam/View/XCombatellegFanaticsmissionRegardGovernancer.h @@ -0,0 +1,21 @@ +// +// YMAnchorFansTaskViewController.h +// YUMI +// +// Created by YUMI on 2022/4/7. +// + +#import "MvpRegardGovernancer.h" +#import "XCombatellegFanaticsmissionMatrix.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface XCombatellegFanaticsmissionRegardGovernancer : MvpRegardGovernancer + +- (instancetype)initAboutChamberCid:(NSString *)roomUid; + +@property (nonatomic, strong) XCombatellegFanaticsmissionMatrix *model; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AnchorView/FansTeam/View/XCombatellegFanaticsmissionRegardGovernancer.m b/YuMi/Modules/YMRoom/View/AnchorView/FansTeam/View/XCombatellegFanaticsmissionRegardGovernancer.m new file mode 100644 index 00000000..0d26b111 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnchorView/FansTeam/View/XCombatellegFanaticsmissionRegardGovernancer.m @@ -0,0 +1,575 @@ +// +// YMAnchorFansTaskViewController.m +// YUMI +// +// Created by YUMI on 2022/4/7. +// + +#import "XCombatellegFanaticsmissionRegardGovernancer.h" +#import "XCombatellegFanaticsSquadExternalizer.h" +#import "XCombatellegFanaticsTeamCeremony.h" +#import "NetIndicateRegard.h" +#import +#import "YUMIMacroUitls.h" +#import "UIImage+Utils.h" +#import "DJDKMIMOMColor.h" +#import "MKJPopup.h" +#import "YUMIHtmlUrl.h" +#import "UIButton+EnlargeTouchArea.h" +#import "NSArray+Safe.h" +#import "XCombatellegFanaticsmissionTabulationRegardElement.h" +#import "YUMIChamberHalfTissueRegard.h" + +@interface XCombatellegFanaticsmissionRegardGovernancer() + +@property (nonatomic, strong) NSString *roomUid; +@property (nonatomic, strong) UIView *apexRegard; +@property (nonatomic, strong) UIView *contentView; +@property (nonatomic, strong) UIImageView *backgroundIndicateRegard; +@property (nonatomic, strong) UIButton *facilitateBtuton; +@property (nonatomic, strong) NetIndicateRegard *intelligenceportraitIndicateRegard; +@property (nonatomic, strong) UILabel *constituteSequencignation; +@property (nonatomic, strong) UIView *computationSatisfperformanceRegard; +@property (nonatomic, strong) UILabel *computationSequencignation; + +@property (nonatomic, strong) UIView *stackView; +@property (nonatomic, strong) UIImageView *rateIndicateRegard; +@property (nonatomic, strong) UIImageView *privilegeChampionIndicateRegard; + +@property (nonatomic, strong) UITableView *tableView; + +@property (nonatomic, strong) UIView *bottomView; +@property (nonatomic, strong) NetIndicateRegard *mieyIntelligenceportraitIndicateRegard; +@property (nonatomic, strong) UILabel *intimateSequencignation; +@property (nonatomic, strong) UIView *growthBackgroundRegard; +@property (nonatomic, strong) UIImageView *progressView; +@property (nonatomic, strong) UILabel *growthSequencignation; +@property (nonatomic, strong) UIImageView *explainBackgroundIndicateRegard; +@property (nonatomic, strong) UIButton *explainBtuton; +@property (nonatomic, strong) UIView *devideRegard; +@property (nonatomic, strong) UIButton *exitBtuton; + +@end + +@implementation XCombatellegFanaticsmissionRegardGovernancer + +- (instancetype)initAboutChamberCid:(NSString *)roomUid { + if (self = [super init]) { + self.roomUid = roomUid; + self.modalPresentationStyle = UIModalPresentationOverFullScreen; + } + return self; +} + +- (XCombatellegFanaticsSquadExternalizer *)producePresimport { + return [[XCombatellegFanaticsSquadExternalizer alloc] init];; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initSubViews]; + [self initChildLyRestrictions]; + [self setupAbstract]; +} + +- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { + [self.view endEditing:YES]; +} + + +#pragma mark - Private Method +- (void)initSubViews { + self.view.backgroundColor = [UIColor clearColor]; + [self.view addSubview:self.apexRegard]; + [self.view addSubview:self.contentView]; + + [self.contentView addSubview:self.backgroundIndicateRegard]; + [self.contentView addSubview:self.facilitateBtuton]; + [self.contentView addSubview:self.intelligenceportraitIndicateRegard]; + [self.contentView addSubview:self.constituteSequencignation]; + [self.contentView addSubview:self.computationSatisfperformanceRegard]; + [self.computationSatisfperformanceRegard addSubview:self.computationSequencignation]; + [self.contentView addSubview:self.stackView]; + [self.stackView addSubview:self.rateIndicateRegard]; + [self.contentView addSubview:self.privilegeChampionIndicateRegard]; + [self.contentView addSubview:self.tableView]; + + [self.contentView addSubview:self.bottomView]; + [self.bottomView addSubview:self.mieyIntelligenceportraitIndicateRegard]; + [self.bottomView addSubview:self.intimateSequencignation]; + [self.bottomView addSubview:self.growthBackgroundRegard]; + [self.growthBackgroundRegard addSubview:self.progressView]; + [self.growthBackgroundRegard addSubview:self.growthSequencignation]; + + [self.contentView addSubview:self.explainBackgroundIndicateRegard]; + [self.explainBackgroundIndicateRegard addSubview:self.explainBtuton]; + [self.explainBackgroundIndicateRegard addSubview:self.devideRegard]; + [self.explainBackgroundIndicateRegard addSubview:self.exitBtuton]; +} + +- (void)initChildLyRestrictions { + [self.apexRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self.view); + make.bottom.mas_equalTo(self.contentView.mas_top); + }]; + + [self.contentView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.mas_equalTo(self.view); + make.height.mas_equalTo(454); + }]; + + [self.backgroundIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make){ + make.top.right.left.bottom.mas_equalTo(0); + }]; + + [self.facilitateBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(-10); + make.top.mas_equalTo(10); + make.width.height.mas_equalTo(30); + }]; + + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(15); + make.width.height.mas_equalTo(64); + make.top.mas_equalTo(36); + }]; + + [self.constituteSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(21); + make.left.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_right).mas_offset(8); + make.top.mas_equalTo(self.intelligenceportraitIndicateRegard).offset(6); + make.right.mas_equalTo(self.computationSatisfperformanceRegard.mas_left).mas_offset(-4); + }]; + + [self.computationSatisfperformanceRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.constituteSequencignation); + make.right.mas_lessThanOrEqualTo(-26); + make.height.mas_equalTo(15); + make.left.mas_equalTo(self.constituteSequencignation.mas_right).mas_offset(4); + }]; + [self.computationSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.bottom.mas_equalTo(self.computationSatisfperformanceRegard); + make.left.mas_equalTo(self.computationSatisfperformanceRegard).mas_offset(5); + make.right.mas_equalTo(self.computationSatisfperformanceRegard).mas_offset(-5); + }]; + + [self.computationSequencignation setContentHuggingPriority:UILayoutPriorityDefaultHigh forAxis:UILayoutConstraintAxisHorizontal]; + [self.constituteSequencignation setContentCompressionResistancePriority:UILayoutPriorityDefaultLow forAxis:UILayoutConstraintAxisHorizontal]; + + + [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_right).mas_offset(8); + make.bottom.mas_equalTo(self.intelligenceportraitIndicateRegard).mas_offset(-3); + make.height.mas_equalTo(28); + make.width.mas_equalTo(3 * (20 + 8) + 34); + }]; + + [self.rateIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.stackView); + make.left.mas_equalTo(9); + make.width.mas_equalTo(16); + make.height.mas_equalTo(18); + }]; + + [self.privilegeChampionIndicateRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_bottom).mas_offset(21); + make.centerX.mas_equalTo(self.contentView); + make.width.mas_equalTo(88); + make.height.mas_equalTo(34); + }]; + + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.contentView).inset(25); + make.top.mas_equalTo(self.privilegeChampionIndicateRegard.mas_bottom).offset(12); + make.height.mas_equalTo(200); + }]; + + [self.bottomView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.mas_equalTo(0); + make.height.mas_equalTo(88); + }]; + [self.mieyIntelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(24); + make.top.mas_equalTo(10); + make.width.height.mas_equalTo(40); + }]; + + [self.intimateSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.mieyIntelligenceportraitIndicateRegard.mas_right).mas_offset(8); + make.top.mas_equalTo(self.mieyIntelligenceportraitIndicateRegard).mas_offset(4); + make.height.mas_equalTo(15); + }]; + + [self.growthBackgroundRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.intimateSequencignation); + make.right.mas_equalTo(-24); + make.height.mas_equalTo(16); + make.top.mas_equalTo(self.intimateSequencignation.mas_bottom).mas_offset(2); + }]; + + [self.progressView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.left.bottom.mas_equalTo(self.growthBackgroundRegard); + make.width.mas_equalTo(0); + }]; + [self.growthSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.centerY.mas_equalTo(self.growthBackgroundRegard); + }]; + + [self.explainBackgroundIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(-13); + make.top.mas_equalTo(29); + make.width.mas_equalTo(111); + make.height.mas_equalTo(98); + }]; + [self.explainBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(0); + make.height.mas_equalTo(43); + make.top.mas_equalTo(12); + }]; + + [self.devideRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(7); + make.right.mas_equalTo(-12); + make.height.mas_equalTo(1); + make.top.mas_equalTo(self.explainBtuton.mas_bottom); + }]; + [self.exitBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(0); + make.height.mas_equalTo(43); + make.top.mas_equalTo(self.devideRegard.mas_bottom); + }]; +} + +#pragma mark - tableviewDelegate +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.model.taskVos.count; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + XCombatellegFanaticsmissionTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([XCombatellegFanaticsmissionTabulationRegardElement class])]; + XCombatellegFanaticsmissionSpecificMatrix *model = [self.model.taskVos secureGroalTowardsIndictowardsrix1:indexPath.row]; + cell.model = model; + + return cell; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + return 66; +} + +#pragma mark - private +- (void)onDismiss:(UITapGestureRecognizer *)ges { + [self dismissViewControllerAnimated:YES completion:nil]; +} + +- (void)setModel:(XCombatellegFanaticsmissionMatrix *)model { + _model = model; +} + +- (void)setupAbstract { + if (self.model) { + self.intelligenceportraitIndicateRegard.imageUrl = self.model.anchorAvatar; + self.constituteSequencignation.text = self.model.anchorNick; + self.computationSequencignation.text = [NSString stringWithFormat:YMLocalizedString(@"YUMI_Anchor_Fans_Task_View_Controller_0"), self.model.teamNum]; + + CGFloat margin = 8; + for (int i = 0; i < 3; i++) { + NSString *str; + if (self.model.avatarList.count > i) { + str = self.model.avatarList[i]; + } + NetIndicateDisposition *config = [[NetIndicateDisposition alloc] init]; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyDispossessIntelligenceportraitDepapossessor]; + NetIndicateRegard *imageView = [[NetIndicateRegard alloc] initWithConfig:config]; + if (str) { + imageView.imageUrl = str; + } + imageView.layer.cornerRadius = 10; + imageView.layer.masksToBounds = YES; + [self.stackView addSubview:imageView]; + [imageView mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.stackView); + make.width.height.mas_equalTo(20); + make.left.mas_equalTo(i * 27 + 25 + margin); + }]; + } + + float progress = self.model.levelExper * 1.0 / self.model.nextLevelExper; + [self.progressView mas_remakeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(self.growthBackgroundRegard.mas_width).multipliedBy(progress); + make.top.left.bottom.mas_equalTo(self.growthBackgroundRegard); + }]; + + self.mieyIntelligenceportraitIndicateRegard.imageUrl = self.model.memberAvatar; + self.intimateSequencignation.text = [NSString stringWithFormat:@"亲密值LV%ld", self.model.levelSeq]; + self.growthSequencignation.text = [NSString stringWithFormat:@"%ld/%ld", self.model.levelExper, self.model.nextLevelExper]; + + [self.tableView reloadData]; + } +} + +- (void)passtoFantowardsicsRtowardse:(UITapGestureRecognizer *)ges { + YUMIChamberHalfTissueRegard * webView = [[YUMIChamberHalfTissueRegard alloc] init]; + webView.roomUid = self.roomUid; + webView.url = [NSString stringWithFormat:@"%@?roomUid=%@", URLWithType(kAnchorFansRankURL), self.roomUid]; + [MKJPopup popupRegard:webView style:MKJPopupStyleActionSheet]; +} + +- (void)furthaerBtutonPerformance:(UIButton *)button { + self.explainBackgroundIndicateRegard.hidden = NO; +} + +- (void)eyumilainBtutonPerformance:(UIButton *)button { + self.explainBackgroundIndicateRegard.hidden = YES; + YUMIChamberHalfTissueRegard * webView = [[YUMIChamberHalfTissueRegard alloc] init]; + webView.url = [NSString stringWithFormat:@"%@?roomUid=%@", URLWithType(kAnchorFansRuleURL), self.roomUid]; + [MKJPopup popupRegard:webView style:MKJPopupStyleActionSheet]; +} + +- (void)routeBtutonPerformance:(UIButton *)button { + self.explainBackgroundIndicateRegard.hidden = YES; + [MKJPopup precautiousAboutCommunictowardsion:@"退出粉丝团后24小时内不能再次加入,确定退出吗?" acknowledgementHandler:^{ + [self.presimport outKellegFantowardsicsSquad:self.roomUid]; + } cancelHandler:^{ + + }]; +} + +- (void)brakePreadominantRegard:(UITapGestureRecognizer *)ges { + self.explainBackgroundIndicateRegard.hidden = YES; +} + +#pragma mark - XCombatellegFanaticsTeamCeremony +- (void)outFantowardsicsSquadAccomplishment { + [self dismissViewControllerAnimated:YES completion:nil]; +} + +#pragma mark - getter +- (UIView *)apexRegard { + if (!_apexRegard) { + _apexRegard = [[UIView alloc] init]; + _apexRegard.backgroundColor = UIColor.blackColor; + _apexRegard.alpha = 0.3; + UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(onDismiss:)]; + [_apexRegard addGestureRecognizer:tap]; + } + return _apexRegard; +} + +- (UIView *)contentView { + if (!_contentView) { + _contentView = [[UIView alloc] init]; + CAShapeLayer * layer = [CAShapeLayer layer]; + layer.path = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, KScreenWidth,454) byRoundingCorners:UIRectCornerTopLeft | UIRectCornerTopRight cornerRadii:CGSizeMake(12, 12)].CGPath; + _contentView.layer.mask = layer; + UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(brakePreadominantRegard:)]; + [_contentView addGestureRecognizer:tap]; + } + return _contentView; +} + +- (UIImageView *)backgroundIndicateRegard { + if (!_backgroundIndicateRegard) { + _backgroundIndicateRegard = [[UIImageView alloc] init]; + _backgroundIndicateRegard.image = [UIImage imageNamed:@"yumi_anchor_fansTeam_Task_background"]; + _backgroundIndicateRegard.contentMode = UIViewContentModeScaleToFill; + } + return _backgroundIndicateRegard; +} + +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc] init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _intelligenceportraitIndicateRegard.layer.cornerRadius = 64 / 2; + } + return _intelligenceportraitIndicateRegard; +} + +- (UILabel *)constituteSequencignation { + if (!_constituteSequencignation) { + UILabel *label = [[UILabel alloc] init]; + label.textColor = [DJDKMIMOMColor mainEssayPrettify]; + label.font = [UIFont systemFontOfSize:14 weight:UIFontWeightBold]; + _constituteSequencignation = label; + [_constituteSequencignation setContentHuggingPriority:UILayoutPriorityDefaultLow forAxis:UILayoutConstraintAxisHorizontal]; + [_constituteSequencignation setContentCompressionResistancePriority:UILayoutPriorityDefaultLow forAxis:UILayoutConstraintAxisHorizontal]; + } + return _constituteSequencignation; +} + +- (UIView *)computationSatisfperformanceRegard { + if (!_computationSatisfperformanceRegard) { + _computationSatisfperformanceRegard = [[UIView alloc] init]; + _computationSatisfperformanceRegard.backgroundColor = [UIColor whiteColor]; + _computationSatisfperformanceRegard.layer.cornerRadius = 7.5; + _computationSatisfperformanceRegard.layer.masksToBounds = YES; + } + return _computationSatisfperformanceRegard; +} + +- (UILabel *)computationSequencignation { + if (!_computationSequencignation) { + _computationSequencignation = [[UILabel alloc] init]; + _computationSequencignation.textColor = UIColorFromRGB(0xFE3478); + _computationSequencignation.font = [UIFont systemFontOfSize:10 weight:UIFontWeightMedium]; + } + return _computationSequencignation; +} + +- (UIView *)stackView { + if (!_stackView) { + _stackView = [[UIView alloc] init]; + _stackView.backgroundColor = [UIColor whiteColor]; + _stackView.layer.cornerRadius = 14; + _stackView.layer.masksToBounds = YES; + UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(passtoFantowardsicsRtowardse:)]; + [_stackView addGestureRecognizer:tap]; + } + return _stackView; +} + +- (UIImageView *)rateIndicateRegard { + if (!_rateIndicateRegard) { + _rateIndicateRegard = [[UIImageView alloc] init]; + _rateIndicateRegard.image = [UIImage imageNamed:@"yumi_anchor_fansTeam_rank"]; + } + return _rateIndicateRegard; +} + +- (UIImageView *)privilegeChampionIndicateRegard { + if (!_privilegeChampionIndicateRegard) { + _privilegeChampionIndicateRegard = [[UIImageView alloc] init]; + _privilegeChampionIndicateRegard.image = [UIImage imageNamed:@"yumi_anchor_fansTeam_task"]; + _privilegeChampionIndicateRegard.contentMode = UIViewContentModeScaleAspectFill; + } + return _privilegeChampionIndicateRegard; +} + +- (UIButton *)facilitateBtuton { + if (!_facilitateBtuton) { + _facilitateBtuton = [[UIButton alloc] init]; + [_facilitateBtuton addTarget:self action:@selector(furthaerBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + [_facilitateBtuton setImage:[UIImage imageNamed:@"yumi_anchor_fansTeam_more"] forState:UIControlStateNormal]; + [_facilitateBtuton setEnlargeEdgeAboutApex:5 right:5 bottom:5 left:5]; + } + return _facilitateBtuton; +} + +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] init]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.backgroundColor = [UIColor clearColor]; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + [_tableView registerClass:[XCombatellegFanaticsmissionTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([XCombatellegFanaticsmissionTabulationRegardElement class])]; + _tableView.scrollEnabled = NO; + } + return _tableView; +} + +- (UIView *)bottomView { + if (!_bottomView) { + _bottomView = [[UIView alloc] init]; + _bottomView.backgroundColor = [UIColor whiteColor]; + } + return _bottomView; +} + +- (NetIndicateRegard *)mieyIntelligenceportraitIndicateRegard { + if (!_mieyIntelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc] init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _mieyIntelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _mieyIntelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _mieyIntelligenceportraitIndicateRegard.layer.cornerRadius = 40 / 2; + } + return _mieyIntelligenceportraitIndicateRegard; +} + +- (UILabel *)growthSequencignation { + if (!_growthSequencignation) { + UILabel *label = [[UILabel alloc] init]; + label.textColor = [UIColor whiteColor]; + label.font = [UIFont systemFontOfSize:10 weight:UIFontWeightMedium]; + _growthSequencignation = label; + } + return _growthSequencignation; +} + +- (UILabel *)intimateSequencignation { + if (!_intimateSequencignation) { + UILabel *label = [[UILabel alloc] init]; + label.textColor = [DJDKMIMOMColor mainEssayPrettify]; + label.font = [UIFont systemFontOfSize:10 weight:UIFontWeightMedium]; + _intimateSequencignation = label; + } + return _intimateSequencignation; +} + +- (UIView *)growthBackgroundRegard { + if (!_growthBackgroundRegard) { + _growthBackgroundRegard = [[UIView alloc] init]; + _growthBackgroundRegard.backgroundColor = UIColorFromRGB(0xE4E4E4); + _growthBackgroundRegard.layer.cornerRadius = 8; + _growthBackgroundRegard.layer.masksToBounds = YES; + } + return _growthBackgroundRegard; +} + +- (UIImageView *)progressView { + if (!_progressView) { + _progressView = [[UIImageView alloc] init]; + [_progressView setImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[UIColorFromRGB(0xFF49A3), UIColorFromRGB(0xFF2B4C)] gradientType:GradientGenreTopToBottom imgSize:CGSizeMake(10, 10)]]; + _progressView.layer.cornerRadius = 8; + _progressView.layer.masksToBounds = YES; + } + return _progressView; +} + +- (UIImageView *)explainBackgroundIndicateRegard { + if (!_explainBackgroundIndicateRegard) { + _explainBackgroundIndicateRegard = [[UIImageView alloc] init]; + _explainBackgroundIndicateRegard.image = [UIImage imageNamed:@"yumi_anchor_fansTeam_ruleBg"]; + _explainBackgroundIndicateRegard.userInteractionEnabled = YES; + _explainBackgroundIndicateRegard.hidden = YES; + } + return _explainBackgroundIndicateRegard; +} + +- (UIButton *)explainBtuton { + if (!_explainBtuton) { + _explainBtuton = [[UIButton alloc] init]; + [_explainBtuton setTitle:YMLocalizedString(@"YUMI_Anchor_Fans_Task_View_Controller_3") forState:UIControlStateNormal]; + _explainBtuton.titleLabel.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium]; + [_explainBtuton setTitleColor:[DJDKMIMOMColor mainEssayPrettify] forState:UIControlStateNormal]; + [_explainBtuton addTarget:self action:@selector(eyumilainBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _explainBtuton; +} + +- (UIButton *)exitBtuton { + if (!_exitBtuton) { + _exitBtuton = [[UIButton alloc] init]; + [_exitBtuton setTitle:YMLocalizedString(@"YUMI_Anchor_Fans_Task_View_Controller_4") forState:UIControlStateNormal]; + _exitBtuton.titleLabel.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium]; + [_exitBtuton setTitleColor:UIColorFromRGB(0xFE3478) forState:UIControlStateNormal]; + [_exitBtuton addTarget:self action:@selector(routeBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _exitBtuton; +} + +- (UIView *)devideRegard { + if (!_devideRegard) { + _devideRegard = [[UIView alloc] init]; + _devideRegard.backgroundColor = [DJDKMIMOMColor aplictowardsionEncouragegroundPrettify]; + } + return _devideRegard; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/AnchorView/FansTeam/View/XCombatellegFanaticsmissionTabulationRegardElement.h b/YuMi/Modules/YMRoom/View/AnchorView/FansTeam/View/XCombatellegFanaticsmissionTabulationRegardElement.h new file mode 100644 index 00000000..d59696a3 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnchorView/FansTeam/View/XCombatellegFanaticsmissionTabulationRegardElement.h @@ -0,0 +1,19 @@ +// +// YMAnchorFansTaskTableViewCell.h +// YUMI +// +// Created by YUMI on 2022/4/7. +// + +#import +#import "XCombatellegFanaticsmissionSpecificMatrix.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface XCombatellegFanaticsmissionTabulationRegardElement : UITableViewCell + +@property (nonatomic, strong) XCombatellegFanaticsmissionSpecificMatrix *model; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AnchorView/FansTeam/View/XCombatellegFanaticsmissionTabulationRegardElement.m b/YuMi/Modules/YMRoom/View/AnchorView/FansTeam/View/XCombatellegFanaticsmissionTabulationRegardElement.m new file mode 100644 index 00000000..b4d82d4c --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnchorView/FansTeam/View/XCombatellegFanaticsmissionTabulationRegardElement.m @@ -0,0 +1,148 @@ +// +// YMAnchorFansTaskTableViewCell.m +// YUMI +// +// Created by YUMI on 2022/4/7. +// + +#import "XCombatellegFanaticsmissionTabulationRegardElement.h" +#import +#import +#import "ResidenceOriflammeAbstractMatrix.h" +#import "NetIndicateRegard.h" +#import "DJDKMIMOMColor.h" + +@interface XCombatellegFanaticsmissionTabulationRegardElement () + +@property (nonatomic, strong) UIView *materialBackgroundRegard; +@property (nonatomic, strong) NetIndicateRegard *materialIndicateRegard; +@property (nonatomic, strong) UILabel *materialSequencignation; +@property (nonatomic, strong) UILabel *materialSequenceSequencignation; +@property (nonatomic, strong) UIButton *doneBtuton; + +@end + +@implementation XCombatellegFanaticsmissionTabulationRegardElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor]; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.materialBackgroundRegard]; + [self.materialBackgroundRegard addSubview:self.materialIndicateRegard]; + [self.materialBackgroundRegard addSubview:self.materialSequencignation]; + [self.materialBackgroundRegard addSubview:self.materialSequenceSequencignation]; + [self.materialBackgroundRegard addSubview:self.doneBtuton]; +} + +- (void)initChildLyRestrictions { + [self.materialBackgroundRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.contentView); + make.bottom.mas_equalTo(self.contentView).offset(-8); + make.left.right.mas_equalTo(0); + }]; + + [self.materialIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(10); + make.centerY.mas_equalTo(self.materialBackgroundRegard); + make.width.height.mas_equalTo(38); + }]; + + [self.materialSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.materialIndicateRegard.mas_right).mas_offset(8); + make.top.mas_equalTo(self.materialIndicateRegard).mas_offset(1); + make.height.mas_equalTo(21); + }]; + [self.materialSequenceSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.materialSequencignation.mas_bottom); + make.left.mas_equalTo(self.materialSequencignation); + make.height.mas_equalTo(15); + }]; + [self.doneBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.materialBackgroundRegard); + make.height.mas_equalTo(20); + make.right.mas_equalTo(-10); + make.width.mas_equalTo(48); + }]; +} + +- (void)setModel:(XCombatellegFanaticsmissionSpecificMatrix *)model { + self.materialIndicateRegard.imageUrl = model.icon; + self.materialSequencignation.text = model.taskName; + self.materialSequenceSequencignation.text = model.taskDesc; + if (model.isFinished) { + [self.doneBtuton setTitle:YMLocalizedString(@"YUMI_Anchor_Fans_Task_Table_View_Cell_0") forState:UIControlStateNormal]; + [self.doneBtuton setBackgroundColor:[DJDKMIMOMColor aplictowardsionEncouragegroundPrettify]]; + [self.doneBtuton setTitleColor:[DJDKMIMOMColor essayTertiusPrettify] forState:UIControlStateNormal]; + } else if(model.awardVal > 0){ + [self.doneBtuton setTitle:[NSString stringWithFormat:@"%ld/%ld", model.awardVal, model.totalNum] forState:UIControlStateNormal]; + [self.doneBtuton setBackgroundColor:UIColorFromRGB(0xFF4E7F)]; + [self.doneBtuton setTitleColor:[DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify] forState:UIControlStateNormal]; + } else { + [self.doneBtuton setTitle:[NSString stringWithFormat:@"%ld/%ld", model.awardVal, model.totalNum] forState:UIControlStateNormal]; + [self.doneBtuton setBackgroundColor:[DJDKMIMOMColor aplictowardsionEncouragegroundPrettify]]; + [self.doneBtuton setTitleColor:[DJDKMIMOMColor essayTertiusPrettify] forState:UIControlStateNormal]; + } +} + +- (UIView *)materialBackgroundRegard { + if (!_materialBackgroundRegard) { + _materialBackgroundRegard = [[UIView alloc] init]; + _materialBackgroundRegard.backgroundColor = [UIColor whiteColor]; + _materialBackgroundRegard.layer.cornerRadius = 8; + _materialBackgroundRegard.layer.masksToBounds = YES; + } + return _materialBackgroundRegard; +} + +- (NetIndicateRegard *)materialIndicateRegard { + if (!_materialIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc] init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _materialIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _materialIndicateRegard.layer.masksToBounds = YES; + _materialIndicateRegard.layer.cornerRadius = 8; + } + return _materialIndicateRegard; +} + +- (UILabel *)materialSequencignation; { + if (!_materialSequencignation) { + UILabel *label = [[UILabel alloc] init]; + label.textColor = [DJDKMIMOMColor mainEssayPrettify]; + label.font = [UIFont systemFontOfSize:14 weight:UIFontWeightBold]; + _materialSequencignation = label; + } + return _materialSequencignation; +} + +- (UILabel *)materialSequenceSequencignation; { + if (!_materialSequenceSequencignation) { + UILabel *label = [[UILabel alloc] init]; + label.textColor = [DJDKMIMOMColor essayTertiusPrettify]; + label.font = [UIFont systemFontOfSize:10 weight:UIFontWeightMedium]; + _materialSequenceSequencignation = label; + } + return _materialSequenceSequencignation; +} + +- (UIButton *)doneBtuton { + if (!_doneBtuton) { + _doneBtuton = [[UIButton alloc] init]; + _doneBtuton.titleLabel.font = [UIFont systemFontOfSize:10 weight:UIFontWeightMedium]; + _doneBtuton.layer.cornerRadius = 4; + _doneBtuton.layer.masksToBounds = YES; + } + return _doneBtuton; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/AnchorView/Model/XCombatellegAttentDischargeAbstract.h b/YuMi/Modules/YMRoom/View/AnchorView/Model/XCombatellegAttentDischargeAbstract.h new file mode 100644 index 00000000..0f00001d --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnchorView/Model/XCombatellegAttentDischargeAbstract.h @@ -0,0 +1,22 @@ +// +// YMAnchorAttentSendInfo.h +// YUMI +// +// Created by YUMI on 2022/2/15. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface XCombatellegAttentDischargeAbstract : NSObject + +@property (assign, nonatomic) NSInteger uid; +@property (copy, nonatomic) NSString *nick; +@property (assign, nonatomic) NSInteger targetUid; +@property (copy, nonatomic) NSString *targetNick; +@property(nonatomic, strong)NSDictionary *encodeAttachemt; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AnchorView/Model/XCombatellegAttentDischargeAbstract.m b/YuMi/Modules/YMRoom/View/AnchorView/Model/XCombatellegAttentDischargeAbstract.m new file mode 100644 index 00000000..91e57c78 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnchorView/Model/XCombatellegAttentDischargeAbstract.m @@ -0,0 +1,25 @@ +// +// YMAnchorAttentSendInfo.m +// YUMI +// +// Created by YUMI on 2022/2/15. +// + +#import "XCombatellegAttentDischargeAbstract.h" +#import "NSMutableDictionary+Saft.h" +@implementation XCombatellegAttentDischargeAbstract + +- (NSDictionary *)encodeAttachemt { + + NSMutableDictionary * info = [NSMutableDictionary dictionary]; + [info secureSetGroal:self.nick forKey:@"nick"]; + [info secureSetGroal:@(self.targetUid) forKey:@"targetUid"]; + [info secureSetGroal:self.targetNick forKey:@"targetNick"]; + + NSMutableDictionary * dic = [NSMutableDictionary dictionary]; + [dic secureSetGroal:@(self.uid) forKey:@"uid"]; + [dic secureSetGroal:info forKey:@"data"]; + return info; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/AnchorView/XCombatellegAudienceUpwardsLoudspeakerRegard.h b/YuMi/Modules/YMRoom/View/AnchorView/XCombatellegAudienceUpwardsLoudspeakerRegard.h new file mode 100644 index 00000000..178b14a0 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnchorView/XCombatellegAudienceUpwardsLoudspeakerRegard.h @@ -0,0 +1,24 @@ +// +// TTAnchorAudienceUpMicView.h +// PlanetStar +// +// Created by YUMI on 2021/12/29. +// Copyright © 2021 WUJIE INTERACTIVE. All rights reserved. +// + +#import +#import "ChamberHostRepresendtation.h" + +NS_ASSUME_NONNULL_BEGIN +@class ConsumerAbstractMatrix; +@interface XCombatellegAudienceUpwardsLoudspeakerRegard : UIView + +- (instancetype)initWithFrame:(CGRect)frame delegate:(id)delegate; + +@property (nonatomic, strong) ConsumerAbstractMatrix *info; + +@property (nonatomic, weak, readonly) id hostRepresedtation; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AnchorView/XCombatellegAudienceUpwardsLoudspeakerRegard.m b/YuMi/Modules/YMRoom/View/AnchorView/XCombatellegAudienceUpwardsLoudspeakerRegard.m new file mode 100644 index 00000000..df9ab747 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnchorView/XCombatellegAudienceUpwardsLoudspeakerRegard.m @@ -0,0 +1,212 @@ +// +// TTAnchorAudienceUpMicView.m +// PlanetStar +// +// Created by YUMI on 2021/12/29. +// Copyright © 2021 WUJIE INTERACTIVE. All rights reserved. +// + +#import "XCombatellegAudienceUpwardsLoudspeakerRegard.h" +#import +#import +#import +#import "MKJPopup.h" +#import "DJDKMIMOMColor.h" +#import "UIImage+Utils.h" +#import "NetIndicateRegard.h" +#import "MiecreoscoopeMHTueueMatrix.h" +#import "AttachmentMatrix.h" +#import "ChamberAbstractMatrix.h" +#import "ConsumerAbstractMatrix.h" + +@interface XCombatellegAudienceUpwardsLoudspeakerRegard() + +@property (nonatomic, strong) NetIndicateRegard *intelligenceportraitIndicateRegard; +@property (nonatomic, strong) UILabel *monicerSequencignation; +@property (nonatomic, strong) UILabel *sequenceripSequencignation; +@property (nonatomic, strong) UIButton *revocationBtuton; +@property (nonatomic, strong) UIButton *acknowledgementBtuton; + +@property (nonatomic, weak) id hostRepresedtation; + +@end + +@implementation XCombatellegAudienceUpwardsLoudspeakerRegard + +- (instancetype)initWithFrame:(CGRect)frame delegate:(nonnull id)delegate{ + if (self = [super initWithFrame:frame]) { + self.hostRepresedtation = delegate; + [self setUpwardsUI]; + [self setupRestrictions]; + [self setEvents]; + } + return self; +} + + +- (void)setUpwardsUI { + self.backgroundColor = [UIColor whiteColor]; + self.layer.cornerRadius = 12; + self.layer.masksToBounds = YES; + [self addSubview:self.intelligenceportraitIndicateRegard]; + [self addSubview:self.monicerSequencignation]; + [self addSubview:self.sequenceripSequencignation]; + [self addSubview:self.revocationBtuton]; + [self addSubview:self.acknowledgementBtuton]; +} + +- (void)setupRestrictions { + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self); + make.top.mas_equalTo(16); + make.width.height.mas_equalTo(80); + }]; + [self.monicerSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_bottom).mas_offset(4); + make.centerX.mas_equalTo(self.mas_centerX); + make.height.mas_equalTo(18); + }]; + [self.sequenceripSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.mas_centerX); + make.height.mas_equalTo(40); + make.top.mas_equalTo(self.monicerSequencignation.mas_bottom).mas_offset(6); + make.left.mas_equalTo(20); + }]; + [self.revocationBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.sequenceripSequencignation.mas_bottom).offset(12); + make.width.mas_equalTo(126); + make.right.mas_equalTo(self.mas_centerX).mas_offset(-8); + make.height.mas_equalTo(38); + }]; + [self.acknowledgementBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.revocationBtuton); + make.width.mas_equalTo(126); + make.left.mas_equalTo(self.revocationBtuton.mas_right).mas_offset(16); + make.height.mas_equalTo(38); + }]; +} + +- (void)setEvents { + @weakify(self); + [[self.acknowledgementBtuton rac_signalForControlEvents:UIControlEventTouchUpInside] subscribeNext:^(__kindof UIControl * _Nullable x) { + @strongify(self); + NSDictionary *micQueue = [self.hostRepresedtation acquireMiecreoscoopeInthecaseofmtowardsion]; + NSString *position = [self prohibiticoveryFreePolariztowardsionAboutLoudspeaker:micQueue]; + NIMChatroomMembersByIdsRequest *request = [[NIMChatroomMembersByIdsRequest alloc]init]; + ChamberAbstractMatrix *roomInfo = [self.hostRepresedtation acquireChamberAbstract]; + NSString *roomId = [NSString stringWithFormat:@"%zd", roomInfo.roomId]; + request.roomId = roomId; + NSString* uid = [NSString stringWithFormat:@"%ld", self.info.uid]; + request.userIds = @[uid]; + [[NIMSDK sharedSDK].chatroomManager fetchChatroomMembersByIds:request completion:^(NSError * _Nullable error, NSArray * _Nullable members) { + NIMChatroomMember * member = members.firstObject; + [self dismiss]; + if (!member) return; + NSMutableDictionary * dic = [NSMutableDictionary dictionary]; + [dic setValue:@(position.integerValue) forKey:@"micPosition"]; + [dic setValue:@(member.userId.integerValue) forKey:@"uid"]; + AttachmentMatrix *attachement = [[AttachmentMatrix alloc]init]; + attachement.first = IndividualityCommunicationGenre_Queue; + attachement.second = Custom_Message_Sub_Queue_Invite; + attachement.data = dic; + + NIMMessage *message = [[NIMMessage alloc]init]; + NIMCustomObject *object = [[NIMCustomObject alloc] init]; + object.attachment = attachement; + message.messageObject = object; + + NIMSession *session = [NIMSession session:roomId type:NIMSessionTypeChatroom]; + [[NIMSDK sharedSDK].chatManager sendMessage:message toSession:session error:nil]; + }]; + }]; + [[self.revocationBtuton rac_signalForControlEvents:UIControlEventTouchUpInside] subscribeNext:^(__kindof UIControl * _Nullable x) { + [self dismiss]; + }]; +} + +- (void)setInfo:(ConsumerAbstractMatrix *)info { + _info = info; + self.intelligenceportraitIndicateRegard.imageUrl = info.avatar; + self.monicerSequencignation.text = info.nick; +} + +- (void)dismiss { + [MKJPopup dismiss]; +} + +- (NSString *)prohibiticoveryFreePolariztowardsionAboutLoudspeaker:(NSDictionary *)micQueue { + if (micQueue != nil && micQueue.allKeys.count > 0) { + NSArray *keys = [micQueue allKeys]; + if (keys.count > 0) { + for (NSString *key in keys) { + MiecreoscoopeMHTueueMatrix* model = [micQueue objectForKey:key]; + if (!model.userInfo) { + return key; + } + } + } + } + return nil; +} + +#pragma mark - views +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc] init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceportraitIndicateRegard.layer.cornerRadius = 40; + _intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + } + return _intelligenceportraitIndicateRegard; +} + +- (UILabel *)monicerSequencignation { + if (!_monicerSequencignation) { + _monicerSequencignation = [[UILabel alloc] init]; + _monicerSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _monicerSequencignation.font = [UIFont systemFontOfSize:13 weight:UIFontWeightBold]; + } + return _monicerSequencignation; +} + +- (UILabel *)sequenceripSequencignation { + if (!_sequenceripSequencignation) { + _sequenceripSequencignation = [[UILabel alloc] init]; + _sequenceripSequencignation.text = @"TA悄悄点击了嘉宾位置\n需要邀请TA上麦互动吗?"; + _sequenceripSequencignation.textColor = [DJDKMIMOMColor essayTertiusPrettify]; + _sequenceripSequencignation.textAlignment = NSTextAlignmentCenter; + _sequenceripSequencignation.font = [UIFont systemFontOfSize:12]; + _sequenceripSequencignation.numberOfLines = 0; + } + return _sequenceripSequencignation; +} + +- (UIButton *)revocationBtuton { + if (!_revocationBtuton) { + _revocationBtuton = [[UIButton alloc] init]; + [_revocationBtuton setTitle:YMLocalizedString(@"YUMI_Anchor_Audience_Up_Mic_View_1") forState:UIControlStateNormal]; + _revocationBtuton.layer.cornerRadius = 19; + _revocationBtuton.layer.masksToBounds = YES; + _revocationBtuton.titleLabel.font = [UIFont systemFontOfSize:14]; + [_revocationBtuton setTitleColor:[DJDKMIMOMColor revoctowardsionBtutonEssayPrettify] forState:UIControlStateNormal]; + [_revocationBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor revoctowardsionBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor revoctowardsionBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + } + return _revocationBtuton; +} + +- (UIButton *)acknowledgementBtuton { + if (!_acknowledgementBtuton) { + _acknowledgementBtuton = [[UIButton alloc] init]; + [_acknowledgementBtuton setTitle:YMLocalizedString(@"YUMI_Anchor_Audience_Up_Mic_View_2") forState:UIControlStateNormal]; + _acknowledgementBtuton.layer.cornerRadius = 19; + _acknowledgementBtuton.layer.masksToBounds = YES; + _acknowledgementBtuton.titleLabel.font = [UIFont systemFontOfSize:14]; + [_acknowledgementBtuton setTitleColor:UIColorFromRGB(0xffffff) forState:UIControlStateNormal]; + [_acknowledgementBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + } + return _acknowledgementBtuton; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/AnchorView/YUMIChamberKellegAbstractSolitaireRegard.h b/YuMi/Modules/YMRoom/View/AnchorView/YUMIChamberKellegAbstractSolitaireRegard.h new file mode 100644 index 00000000..87677c49 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnchorView/YUMIChamberKellegAbstractSolitaireRegard.h @@ -0,0 +1,24 @@ +// +// TTRoomAnchorInfoCardView.h +// PlanetStar +// +// Created by YUMI on 2021/6/28. +// Copyright © 2021 WUJIE INTERACTIVE. All rights reserved. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class ConsumerAbstractMatrix; +@interface YUMIChamberKellegAbstractSolitaireRegard : UIView + +@property (nonatomic, strong) ConsumerAbstractMatrix *userInfo; + +@property (nonatomic, strong) ConsumerAbstractMatrix *targetConsumerAbstract; + +@property (nonatomic, assign) NSInteger roomId; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AnchorView/YUMIChamberKellegAbstractSolitaireRegard.m b/YuMi/Modules/YMRoom/View/AnchorView/YUMIChamberKellegAbstractSolitaireRegard.m new file mode 100644 index 00000000..badd4d38 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnchorView/YUMIChamberKellegAbstractSolitaireRegard.m @@ -0,0 +1,203 @@ +// +// TTRoomAnchorInfoCardView.m +// PlanetStar +// +// Created by YUMI on 2021/6/28. +// Copyright © 2021 WUJIE INTERACTIVE. All rights reserved. +// + +#import "YUMIChamberKellegAbstractSolitaireRegard.h" +#import +#import "MKJPopup.h" +#import "XNDJTBWGLoadingTool.h" +#import +#import "YUMIMacroUitls.h" +#import "DJDKMIMOMColor.h" +#import "UIImage+Utils.h" +#import "Api+UserCard.h" +#import "AccountAbstractStorage.h" +#import "NetIndicateRegard.h" +#import "ConsumerAbstractMatrix.h" +#import "XCombatellegAttentDischargeAbstract.h" +#import "AttachmentMatrix.h" + +@interface YUMIChamberKellegAbstractSolitaireRegard() + +@property (nonatomic, strong) UIButton *concludeBtuton; +@property (nonatomic, strong) NetIndicateRegard *intelligenceportraitIndicateRegard; +@property (nonatomic, strong) UILabel *constituteSequencignation; +@property (nonatomic, strong) UILabel *sequenceSequencignation; +@property (nonatomic, strong) UIButton *followBtuton; + +@end + +@implementation YUMIChamberKellegAbstractSolitaireRegard + +- (instancetype)initWithFrame:(CGRect)frame { + if (self = [super initWithFrame:frame]) { + [self initRegard]; + [self initConstraint]; + } + return self; +} + +- (void)initRegard { + self.backgroundColor = [UIColor whiteColor]; + [self addSubview:self.concludeBtuton]; + [self addSubview:self.intelligenceportraitIndicateRegard]; + [self addSubview:self.constituteSequencignation]; + [self addSubview:self.sequenceSequencignation]; + [self addSubview:self.followBtuton]; +} + +- (void)initConstraint { + CGFloat margin = 16; + [self.concludeBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(margin); + make.top.mas_equalTo(margin); + make.width.height.mas_equalTo(30); + }]; + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.mas_centerX); + make.width.height.mas_equalTo(80); + make.top.mas_equalTo(55); + }]; + [self.constituteSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_bottom).mas_offset(10); + make.centerX.mas_equalTo(self.mas_centerX); + make.left.mas_equalTo(margin); + }]; + [self.sequenceSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.constituteSequencignation.mas_bottom).mas_offset(30); + make.centerX.mas_equalTo(self.mas_centerX); + }]; + [self.followBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.bottom.mas_equalTo(kSafeAreaBottomHeight > 0 ? -kSafeAreaBottomHeight : -20); + make.centerX.mas_equalTo(self.mas_centerX); + make.width.mas_equalTo(225); + make.height.mas_equalTo(30); + }]; +} + +- (void)setUserInfo:(ConsumerAbstractMatrix *)userInfo { + _userInfo = userInfo; +} + +- (void)setTargetConsumerAbstract:(ConsumerAbstractMatrix *)targetConsumerAbstract { + _targetConsumerAbstract = targetConsumerAbstract; + self.intelligenceportraitIndicateRegard.imageUrl = targetConsumerAbstract.avatar; + self.constituteSequencignation.text = targetConsumerAbstract.nick; +} + +- (void)drawRect:(CGRect)rect { + UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:self.bounds byRoundingCorners:UIRectCornerTopLeft | UIRectCornerTopRight cornerRadii:CGSizeMake(15, 15)]; + CAShapeLayer *maskLayer = [CAShapeLayer layer]; + maskLayer.path = path.CGPath; + self.layer.mask = maskLayer; +} + +- (void)layoutSubviews { + [super layoutSubviews]; + CGFloat imageWidth = _followBtuton.imageView.frame.size.width; + CGFloat vacuum = 5.f; + _followBtuton.titleEdgeInsets = UIEdgeInsetsMake(0, imageWidth + vacuum,0,imageWidth + vacuum); +} + +- (void)followBtutonTicktack:(UIButton *)btn { + NSString * uid = [[AccountAbstractStorage instance] acquireCid]; + NSString * ticket = [[AccountAbstractStorage instance] acquireTicket]; + NSString * type = @"1"; + [Api considertowardsionImplementtowardsion:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + [self.followBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor revoctowardsionBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor revoctowardsionBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + [self.followBtuton setTitle:YMLocalizedString(@"YUMI_Room_Anchor_Info_Card_View_0") forState:UIControlStateNormal]; + [self.followBtuton setTitleColor:[DJDKMIMOMColor revoctowardsionBtutonEssayPrettify] forState:UIControlStateNormal]; + + XCombatellegAttentDischargeAbstract *info = [[XCombatellegAttentDischargeAbstract alloc] init]; + info.uid = self.userInfo.uid; + info.targetNick = self.targetConsumerAbstract.nick; + info.targetUid = self.targetConsumerAbstract.uid; + info.nick = self.userInfo.nick; + + AttachmentMatrix *attachment = [[AttachmentMatrix alloc]init]; + attachment.first = IndividualityCommunicationGenre_Room_Tip; + attachment.second = Custom_Message_Sub_Room_Tip_Attention_Owner; + attachment.data = info.encodeAttachemt; + + NIMMessage *message = [[NIMMessage alloc]init]; + NIMCustomObject *object = [[NIMCustomObject alloc] init]; + object.attachment = attachment; + message.messageObject = object; + + NIMSession *session = [NIMSession session:[NSString stringWithFormat:@"%zd", self.roomId] type:NIMSessionTypeChatroom]; + [[NIMSDK sharedSDK].chatManager sendMessage:message toSession:session error:nil]; + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + [MKJPopup dismiss]; + }); + } + } uid:uid likedUid:[NSString stringWithFormat:@"%zd", self.targetConsumerAbstract.uid] ticket:ticket type:type]; +} + +- (void)close:(UIButton *)btn { + [MKJPopup dismiss]; +} + +#pragma mark - lazy +- (UIButton *)concludeBtuton { + if (!_concludeBtuton) { + _concludeBtuton = [UIButton buttonWithType:UIButtonTypeCustom] ; + [_concludeBtuton setImage:[UIImage imageNamed:@"messageChat_popup_game_close_slices"] forState:UIControlStateNormal]; + [_concludeBtuton addTarget:self action:@selector(close:) forControlEvents:UIControlEventTouchUpInside]; + } + return _concludeBtuton; +} + +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc] init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceportraitIndicateRegard.layer.cornerRadius = 40; + _intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + } + return _intelligenceportraitIndicateRegard; +} + +- (UILabel *)constituteSequencignation { + if (!_constituteSequencignation) { + _constituteSequencignation = [[UILabel alloc] init]; + _constituteSequencignation.font = [UIFont boldSystemFontOfSize:14]; + _constituteSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _constituteSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _constituteSequencignation; +} + +- (UILabel *)sequenceSequencignation { + if (!_sequenceSequencignation) { + _sequenceSequencignation = [[UILabel alloc] init]; + _sequenceSequencignation.font = [UIFont boldSystemFontOfSize:14]; + _sequenceSequencignation.textColor = [DJDKMIMOMColor essayTertiusPrettify]; + _sequenceSequencignation.textAlignment = NSTextAlignmentCenter; + _sequenceSequencignation.text = @"点击加关注,下次直播不迷路~"; + } + return _sequenceSequencignation; +} + +- (UIButton *)followBtuton { + if (!_followBtuton) { + _followBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_followBtuton setImage:[UIImage imageNamed:@"personalAnchor_add"] forState:UIControlStateNormal]; + [_followBtuton setTitle:YMLocalizedString(@"YUMI_Room_Anchor_Info_Card_View_2") forState:UIControlStateNormal]; + [_followBtuton.titleLabel setFont:[UIFont boldSystemFontOfSize:15]]; + [_followBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + _followBtuton.layer.cornerRadius = 15; + _followBtuton.layer.masksToBounds = YES; + [_followBtuton addTarget:self action:@selector(followBtutonTicktack:) forControlEvents:UIControlEventTouchUpInside]; + [_followBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + } + return _followBtuton; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/AnimationView/Model/ChamberHalfHourRateMatrix.h b/YuMi/Modules/YMRoom/View/AnimationView/Model/ChamberHalfHourRateMatrix.h new file mode 100644 index 00000000..eb55fe63 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnimationView/Model/ChamberHalfHourRateMatrix.h @@ -0,0 +1,21 @@ +// +// ChamberHalfHourRateMatrix.h +// YUMI +// +// Created by YUMI on 2022/6/7. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface ChamberHalfHourRateMatrix : NSObject +@property (nonatomic,copy) NSString *uid; +@property (nonatomic,copy) NSString *nick; +@property (nonatomic,copy) NSString *avatar; +@property (nonatomic,copy) NSString *desc; + +@property (nonatomic,copy) NSString *title; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AnimationView/Model/ChamberHalfHourRateMatrix.m b/YuMi/Modules/YMRoom/View/AnimationView/Model/ChamberHalfHourRateMatrix.m new file mode 100644 index 00000000..6bd6c36a --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnimationView/Model/ChamberHalfHourRateMatrix.m @@ -0,0 +1,12 @@ +// +// ChamberHalfHourRateMatrix.m +// YUMI +// +// Created by YUMI on 2022/6/7. +// + +#import "ChamberHalfHourRateMatrix.h" + +@implementation ChamberHalfHourRateMatrix + +@end diff --git a/YuMi/Modules/YMRoom/View/AnimationView/Model/YUMIChamberPresentBroadCastMatrix.h b/YuMi/Modules/YMRoom/View/AnimationView/Model/YUMIChamberPresentBroadCastMatrix.h new file mode 100644 index 00000000..d6e4f607 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnimationView/Model/YUMIChamberPresentBroadCastMatrix.h @@ -0,0 +1,35 @@ +// +// YMRoomGiftBroadCastModel.h +// YUMI +// +// Created by YUMI on 2021/11/18. +// 广播礼物的model + +#import + +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSInteger, BroadCastPrototype) { + BroadCastPrototype_Normal = 1, + BroadCastPrototype_Middle = 2, + + BroadCastPrototype_High = 3, +}; + +@interface YUMIChamberPresentBroadCastMatrix : NSObject +@property (nonatomic,assign) NSInteger giftNum; +@property (nonatomic,copy) NSString *giftName; +@property (nonatomic,copy) NSString *giftUrl; +@property (nonatomic,assign) BOOL isSkipRoom; +@property (nonatomic,assign) BroadCastPrototype levelNum; +@property (nonatomic,assign) CGFloat notifyStaySecond; +@property (nonatomic,copy) NSString *recvUserAvatar; +@property (nonatomic,copy) NSString *recvUserNick; +@property (nonatomic, copy) NSString *sendUserAvatar; +@property (nonatomic, copy) NSString *sendUserNick; +@property (nonatomic,assign) NSInteger roomUid; +@property (nonatomic,copy) NSString *roomErbanNo; +@property (nonatomic, assign) BOOL ceremonyGift; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AnimationView/Model/YUMIChamberPresentBroadCastMatrix.m b/YuMi/Modules/YMRoom/View/AnimationView/Model/YUMIChamberPresentBroadCastMatrix.m new file mode 100644 index 00000000..d1a20808 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnimationView/Model/YUMIChamberPresentBroadCastMatrix.m @@ -0,0 +1,15 @@ +// +// YMRoomGiftBroadCastModel.m +// YUMI +// +// Created by YUMI on 2021/11/18. +// + +#import "YUMIChamberPresentBroadCastMatrix.h" + + + +@implementation YUMIChamberPresentBroadCastMatrix + + +@end diff --git a/YuMi/Modules/YMRoom/View/AnimationView/Model/YUMIChamberSatelliteKitchenMatrix.h b/YuMi/Modules/YMRoom/View/AnimationView/Model/YUMIChamberSatelliteKitchenMatrix.h new file mode 100644 index 00000000..fbf2bdba --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnimationView/Model/YUMIChamberSatelliteKitchenMatrix.h @@ -0,0 +1,23 @@ +// +// YUMIChamberSatelliteKitchenMatrix.h +// YuMi +// +// Created by YuMi on 2023/6/21. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIChamberSatelliteKitchenMatrix : NSObject +@property (nonatomic,copy) NSString *skipUrl; +@property (nonatomic,copy) NSString *uid; +@property (nonatomic,copy) NSString *nick; +@property (nonatomic,copy) NSString *roomUid; +@property (nonatomic,copy) NSString *itemId; +@property (nonatomic,copy) NSString *itemMultiple; +@property (nonatomic,copy) NSString *diamonds; +@property (nonatomic,copy) NSString * bannerId; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AnimationView/Model/YUMIChamberSatelliteKitchenMatrix.m b/YuMi/Modules/YMRoom/View/AnimationView/Model/YUMIChamberSatelliteKitchenMatrix.m new file mode 100644 index 00000000..19f93d98 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnimationView/Model/YUMIChamberSatelliteKitchenMatrix.m @@ -0,0 +1,12 @@ +// +// YUMIChamberSatelliteKitchenMatrix.m +// YuMi +// +// Created by YuMi on 2023/6/21. +// + +#import "YUMIChamberSatelliteKitchenMatrix.h" + +@implementation YUMIChamberSatelliteKitchenMatrix + +@end diff --git a/YuMi/Modules/YMRoom/View/AnimationView/Model/YUMIPresentBigCaptureMatrix.h b/YuMi/Modules/YMRoom/View/AnimationView/Model/YUMIPresentBigCaptureMatrix.h new file mode 100644 index 00000000..5380f597 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnimationView/Model/YUMIPresentBigCaptureMatrix.h @@ -0,0 +1,23 @@ +// +// YMGiftBigPrizeModel.h +// YUMI +// +// Created by YUMI on 2021/11/18. +// +///四级礼物的模型 +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIPresentBigCaptureMatrix : NSObject +@property(nonatomic, copy)NSString *nick; +@property(nonatomic, copy)NSString *giftName; +@property (nonatomic,copy) NSString *luckyBagName; +@property (nonatomic,copy) NSString *roomTitle; +@property (nonatomic,copy) NSString *uid; +@property (nonatomic,copy) NSString *roomUid; +@property (nonatomic,copy) NSString *goldPrice; +@property (nonatomic,assign) BOOL isInRoomVisiable; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AnimationView/Model/YUMIPresentBigCaptureMatrix.m b/YuMi/Modules/YMRoom/View/AnimationView/Model/YUMIPresentBigCaptureMatrix.m new file mode 100644 index 00000000..35582624 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnimationView/Model/YUMIPresentBigCaptureMatrix.m @@ -0,0 +1,12 @@ +// +// YMGiftBigPrizeModel.m +// YUMI +// +// Created by YUMI on 2021/11/18. +// + +#import "YUMIPresentBigCaptureMatrix.h" + +@implementation YUMIPresentBigCaptureMatrix + +@end diff --git a/YuMi/Modules/YMRoom/View/AnimationView/Model/YUMIPresentCompoundMatrix.h b/YuMi/Modules/YMRoom/View/AnimationView/Model/YUMIPresentCompoundMatrix.h new file mode 100644 index 00000000..e048bfe0 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnimationView/Model/YUMIPresentCompoundMatrix.h @@ -0,0 +1,22 @@ +// +// YMGiftCompoundModel.h +// YUMI +// +// Created by YUMI on 2022/8/5. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIPresentCompoundMatrix : NSObject + +@property(nonatomic, copy)NSString *nick; +@property(nonatomic, copy)NSString *giftName; +@property (nonatomic,copy) NSString *giftId; +@property (nonatomic,copy) NSString *uid; +@property (nonatomic,copy) NSString *msg; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AnimationView/Model/YUMIPresentCompoundMatrix.m b/YuMi/Modules/YMRoom/View/AnimationView/Model/YUMIPresentCompoundMatrix.m new file mode 100644 index 00000000..55ae4cba --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnimationView/Model/YUMIPresentCompoundMatrix.m @@ -0,0 +1,12 @@ +// +// YMGiftCompoundModel.m +// YUMI +// +// Created by YUMI on 2022/8/5. +// + +#import "YUMIPresentCompoundMatrix.h" + +@implementation YUMIPresentCompoundMatrix + +@end diff --git a/YuMi/Modules/YMRoom/View/AnimationView/Model/YUMIPresentOriflammeConsumerAbstractMatrix.h b/YuMi/Modules/YMRoom/View/AnimationView/Model/YUMIPresentOriflammeConsumerAbstractMatrix.h new file mode 100644 index 00000000..a6d9d67f --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnimationView/Model/YUMIPresentOriflammeConsumerAbstractMatrix.h @@ -0,0 +1,17 @@ +// +// YMGiftBannerUserInfoModel.h +// YUMI +// +// Created by YUMI on 2021/11/18. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIPresentOriflammeConsumerAbstractMatrix : NSObject +@property (nonatomic,assign) int position; +@property (nonatomic,assign) NSInteger uid; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AnimationView/Model/YUMIPresentOriflammeConsumerAbstractMatrix.m b/YuMi/Modules/YMRoom/View/AnimationView/Model/YUMIPresentOriflammeConsumerAbstractMatrix.m new file mode 100644 index 00000000..98bb35fd --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnimationView/Model/YUMIPresentOriflammeConsumerAbstractMatrix.m @@ -0,0 +1,12 @@ +// +// YMGiftBannerUserInfoModel.m +// YUMI +// +// Created by YUMI on 2021/11/18. +// + +#import "YUMIPresentOriflammeConsumerAbstractMatrix.h" + +@implementation YUMIPresentOriflammeConsumerAbstractMatrix + +@end diff --git a/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberBrightnessHitRegard.h b/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberBrightnessHitRegard.h new file mode 100644 index 00000000..0aadf7a1 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberBrightnessHitRegard.h @@ -0,0 +1,16 @@ +// +// YMRoomAnimationBaseView.h +// YUMI +// +// Created by YUMI on 2021/11/22. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIChamberBrightnessHitRegard : UIView + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberBrightnessHitRegard.m b/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberBrightnessHitRegard.m new file mode 100644 index 00000000..cb980203 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberBrightnessHitRegard.m @@ -0,0 +1,25 @@ +// +// YMRoomAnimationBaseView.m +// YUMI +// +// Created by YUMI on 2021/11/22. +// + +#import "YUMIChamberBrightnessHitRegard.h" +#import "NSArray+Safe.h" +@implementation YUMIChamberBrightnessHitRegard + + +- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event { + for (NSInteger i = (self.subviews.count - 1) ; i >= 0 ; i--) { + UIView * subView = [self.subviews secureGroalTowardsIndictowardsrix1:i]; + CGPoint convertPoint = [subView convertPoint:point fromView:self]; + if (CGRectContainsPoint(subView.bounds, convertPoint)) { + return [subView hitTest:convertPoint withEvent:event]; + } + } + return nil; +} + + +@end diff --git a/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberBrightnessRegard.h b/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberBrightnessRegard.h new file mode 100644 index 00000000..0e727c0f --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberBrightnessRegard.h @@ -0,0 +1,18 @@ +// +// YMRoomAnimationView.h +// YUMI +// +// Created by YUMI on 2021/12/6. +// + +#import +#import "YUMIChamberBrightnessHitRegard.h" +#import "ChamberHostRepresendtation.h" +#import "ChamberGuestRepresendtation.h" +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIChamberBrightnessRegard : YUMIChamberBrightnessHitRegard +- (instancetype)initWithDelegate:(id)delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberBrightnessRegard.m b/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberBrightnessRegard.m new file mode 100644 index 00000000..f7817880 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberBrightnessRegard.m @@ -0,0 +1,1987 @@ +// +// YMRoomAnimationView.m +// YUMI +// +// Created by YUMI on 2021/12/6. +// + +#import "YUMIChamberBrightnessRegard.h" +#import +#import +#import +#import +#import "QGVAPConfigModel.h" +#import "UIView+VAP.h" +#import +#import +#import "YUMIPresentStorage.h" +#import "YUMIMacroUitls.h" +#import "ThemeColor+Room.h" +#import "NetIndicateRegard.h" +#import "YUMIChamberPresentBrightnessAnatomiser.h" +#import "XCCurrentVCStackExecutive.h" +#import "AccountAbstractStorage.h" +#import "ClientDisposition.h" +#import "MiecreoscoopeMHTueueMatrix.h" +#import "MiecreoscoopeStateMatrix.h" +#import "ConsumerAbstractMatrix.h" +#import "PresentAchieveAbstractMatrix.h" +#import "PresentAbstractMatrix.h" +#import "ChamberAbstractMatrix.h" +#import "AttachmentMatrix.h" +#import "YUMIPresentBigCaptureMatrix.h" +#import "YUMIPresentOriflammeConsumerAbstractMatrix.h" +#import "YUMIChamberPresentBroadCastMatrix.h" +#import "YUMICommunicationRemoteExtMatrix.h" +#import "EngagementAbstractMatrix.h" +#import "ThroughoutChamberCombatCaptureMatrix.h" +#import "ChamberHalfHourRateMatrix.h" +#import "ClientDisposition.h" +#import "YUMIChamberPresentOriflammeRegard.h" +#import "YUMIChamberPresentPingbackRegard.h" +#import "YUMIChamberConfectioneryPresentRegard.h" +#import "YUMIChamberEngagementBrightnessRegard.h" +#import "YUMIChamberMagnificentPrototypeUpwardsRegard.h" +#import "QGVAPWrapView.h" +#import "YUMIThroughoutChamberCombatCaptureRegard.h" +#import "YUMIChamberRegardGovernancer.h" +#import "YUMIChamberKellegRateOriflammeRegard.h" +#import "YUMIChamberImportHideTipRegard.h" +#import "YUMIChamberLicneseHourRateRegard.h" +#import "YUMIChamberFortunateBigCaptureRegard.h" +#import "YUMIChamberPresentCompoundRegard.h" +#import "YUMIMarchingBrightnessRegard.h" +#import "YUMIChamberGraffitiPresentBrightnessRegard.h" +#import "YUMIChamberSatelliteKitchenOriflammeRegard.h" +#import "YUMITissueRegardGovernancer.h" +@interface YUMIChamberBrightnessRegard () +@property (nonatomic,strong) YUMIChamberBrightnessHitRegard * lowPrototypeRegard; +@property (nonatomic,strong) YUMIChamberBrightnessHitRegard * middlePrototypeRegard; +@property (nonatomic,strong) YUMIChamberBrightnessHitRegard * highProttypeRegard; +@property (strong, nonatomic) SVGAParser *anatomiser; +@property (nonatomic, strong) YUMIChamberPresentBrightnessAnatomiser *vepporAnatomiser; +@property (nonatomic,strong) SVGAImageView *presentImpressionRegard; +@property (nonatomic, strong) VAPView *vepporPresentImpressionRegard; +@property (nonatomic,strong) SVGAImageView *fortunatePresentImpressionRegard; +@property (nonatomic, strong) VAPView *fortunateVepporPresentImpressionRegard; +@property (nonatomic,weak) iddelegate; +@property (nonatomic,strong) NSMutableArray *presentImpressionFormation; +@property (strong,nonatomic)NSMutableSet * oriflammeDequePond; +@property (strong,nonatomic)NSMutableSet * oriflammeVisiablePond; +@property (nonatomic,strong)dispatch_source_t presentImpressionIntratemper; + +@property (nonatomic,strong) NSMutableArray *bigCapturePresentFormation; +@property (nonatomic,strong)dispatch_source_t fortunatecaptureIntratemper; + +@property (nonatomic,strong) NSMutableArray *presentPingencourageFormation; +#pragma mark - 送礼物的动画的 +@property (nonatomic,strong) NSMutableArray *presentFormation; +@property (nonatomic ,strong)dispatch_source_t presentIntratemper; +@property (nonatomic,strong) NSMutableSet * presentReuseGarment; +@property (nonatomic,strong) NSMutableSet * presentVisibleGarment; +@property (nonatomic,strong) NSMutableArray *confectioneryTimberpresentFormation; +@property (nonatomic,strong) NSMutableArray *compoundPresentFormation; +@property (nonatomic, strong) NSMutableArray *magnificentPrototypeUpwardsFormation; +@property (nonatomic,assign) BOOL isBignessPresentAnimating; +#pragma mark - 进房座驾动画的 +@property (nonatomic, strong) NSMutableArray *automobileImpressionFormation; +@property (nonatomic,strong) SVGAImageView *automobileImpressionRegard; +@property (nonatomic, strong) VAPView *automobileVepporImpressionRegard; +#pragma mark - 进房动画的 +@property (nonatomic, strong) NSMutableArray *importImpressionFormation; +@property (nonatomic,strong) SVGAImageView *importImpressionRegard; +#pragma mark - 相亲动画的 +@property (nonatomic, strong) NSMutableArray *engagementImpressionFormation; +@property (nonatomic,strong) SVGAImageView *engagementImpressionRegard; +#pragma mark - 跨房PK +@property (nonatomic, strong) NSMutableArray *throughoutChamberCombatFormation; +#pragma mark - 航海 +@property (nonatomic, strong) NSMutableArray *marchingFormation; +#pragma mark - 涂鸦礼物 +@property (nonatomic, strong) NSMutableArray *doodlePresentFormation; +@property (nonatomic,assign) BOOL isFortunatePresentBrectifyness; +#pragma mark - 心愿礼物 +@property (nonatomic,strong) SVGAImageView *sequencirePresentImpressionRegard; +@property (nonatomic,strong) NSMutableArray *satelliteKitchenFormation; +@end + +@implementation YUMIChamberBrightnessRegard + +- (void)dealloc { + [NSObject cancelPreviousPerformRequestsWithTarget:self]; + [[NIMSDK sharedSDK].broadcastManager removeDelegate:self]; +} + +- (instancetype)initWithDelegate:(id)delegate { + self = [super init]; + if (self) { + [[NIMSDK sharedSDK].broadcastManager addDelegate:self]; + self.delegate = delegate; + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.lowPrototypeRegard]; + [self addSubview:self.middlePrototypeRegard]; + [self addSubview:self.highProttypeRegard]; +} + +- (void)initChildLyRestrictions { + [self.lowPrototypeRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self); + }]; + + [self.middlePrototypeRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self); + }]; + + [self.highProttypeRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self); + }]; +} + +- (BOOL)isInYoudCompetition { + BOOL isGamePlaying = NO; + if (self.delegate.acquireChamberAbstract.type == ChamberGenre_MiniGame) { + for (int i = -1; i<5; i++) { + NSMutableDictionary * micQueue = self.delegate.acquireMiecreoscoopeInthecaseofmtowardsion; + MiecreoscoopeMHTueueMatrix *micSequence = [micQueue objectForKey:[NSString stringWithFormat:@"%d", i]]; + if (micSequence == nil || micSequence.userInfo == nil) { + continue; + } + if (micSequence.userInfo.uid == [AccountAbstractStorage instance].acquireCid.integerValue && micSequence.userInfo.gameStatus == LittleGameDisportPosition_Plying) { + isGamePlaying = YES; + break; + } + } + } + return isGamePlaying; +} +#pragma mark - NIMBroadcastDelegate +- (void)onReceiveBroadcastMessage:(NIMBroadcastMessage *)broadcastMessage{ + if (![ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + return; + } + if (broadcastMessage.content) { + NSDictionary *msgDictionary = [broadcastMessage.content toJSONGroal]; + AttachmentMatrix *attachment = [AttachmentMatrix mtowardsrixAboutJSON:msgDictionary[@"body"]]; + if (attachment.first == IndividualityCommunicationGenre_Gift && attachment.second == Custom_Message_Sub_Gift_ChannelNotify){ + [self achieveBroadcastPresent:attachment]; + } else if (attachment.first == IndividualityCommunicationGenre_Noble_VIP && attachment.second == Custom_Message_Sub_Room_Noble_LevelUp_Suspend) { + [self achieveMagnificentPrototypeUpwards:attachment]; + } + } +} + +#pragma mark - ChamberGuestRepresendtation +- (void)shankNEMCIndividualityCommunictowardsion:(NIMMessage *)message { + NIMCustomObject *obj = (NIMCustomObject *)message.messageObject; + if (obj.attachment != nil && [obj.attachment isKindOfClass:[AttachmentMatrix class]]) { + if (![ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + AttachmentMatrix *attachment = (AttachmentMatrix *)obj.attachment; + if (attachment.first == IndividualityCommunicationGenre_Gift) { + PresentAchieveAbstractMatrix * receiveInfo = [PresentAchieveAbstractMatrix mtowardsrixAboutJSON:attachment.data]; + receiveInfo.isLuckyBagGift = attachment.second == Custom_Message_Sub_Gift_LuckySend; + receiveInfo.isBatch = YES; + [self achievePresentShankDischargePresentBrectifyness:attachment]; + } else if (attachment.first == IndividualityCommunicationGenre_AllMicroSend) { + PresentAchieveAbstractMatrix * receiveInfo = [PresentAchieveAbstractMatrix mtowardsrixAboutJSON:attachment.data]; + receiveInfo.isLuckyBagGift = (attachment.second == Custom_Message_Sub_AllMicroLuckySend || attachment.second == Custom_Message_Sub_AllBatchMicroLuckySend); + receiveInfo.isBatch = (attachment.second == Custom_Message_Sub_AllBatchSend || attachment.second == Custom_Message_Sub_AllBatchMicroLuckySend); + [self achievePresentShankDischargePresentBrectifyness:attachment]; + } + return; + } + AttachmentMatrix *attachment = (AttachmentMatrix *)obj.attachment; + if (attachment.first == IndividualityCommunicationGenre_Gift) { + PresentAchieveAbstractMatrix * receiveInfo = [PresentAchieveAbstractMatrix mtowardsrixAboutJSON:attachment.data]; + receiveInfo.isLuckyBagGift = attachment.second == Custom_Message_Sub_Gift_LuckySend; + receiveInfo.isBatch = YES; + [self achievePresentShankDischargePresentBrectifyness:attachment]; + if (receiveInfo.isLuckyBagGift) { + if (!self.delegate.acquireChamberAbstract.hasAnimationEffect) {return;} + if (receiveInfo.viewUrl.length > 0) { + [self prohibitiportInthecaseoftuntowardsePresentImpressionAboutVepporWeebsite:receiveInfo.viewUrl]; + } else { + NSString * svgaString = receiveInfo.luckyGiftSvgaUrl.length > 0 ? receiveInfo.luckyGiftSvgaUrl : receiveInfo.gift.luckyGiftSvgaUrl; + NSURL * luckyGiftSvgaUrl = [NSURL URLWithString:svgaString]; + if (luckyGiftSvgaUrl.absoluteString.length <= 0) { + luckyGiftSvgaUrl = [NSURL URLWithString:[NSString stringWithFormat:@"%@/room_lucky_gift_bg.svga", API_Image_URL]]; + } + [self prohibitiportInthecaseoftuntowardsePresentImpression:luckyGiftSvgaUrl]; + } + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + [self achievePresent:receiveInfo]; + }); + } else { + [self achievePresent:receiveInfo]; + } + } else if (attachment.first == IndividualityCommunicationGenre_AllMicroSend) { + PresentAchieveAbstractMatrix * receiveInfo = [PresentAchieveAbstractMatrix mtowardsrixAboutJSON:attachment.data]; + receiveInfo.isLuckyBagGift = (attachment.second == Custom_Message_Sub_AllMicroLuckySend || attachment.second == Custom_Message_Sub_AllBatchMicroLuckySend); + receiveInfo.isBatch = (attachment.second == Custom_Message_Sub_AllBatchSend || attachment.second == Custom_Message_Sub_AllBatchMicroLuckySend); + [self achievePresentShankDischargePresentBrectifyness:attachment]; + if (receiveInfo.isLuckyBagGift) { + if (!self.delegate.acquireChamberAbstract.hasAnimationEffect) {return;} + if (receiveInfo.viewUrl.length > 0) { + [self prohibitiportInthecaseoftuntowardsePresentImpressionAboutVepporWeebsite:receiveInfo.viewUrl]; + } else { + NSString * svgaString = receiveInfo.luckyGiftSvgaUrl.length > 0 ? receiveInfo.luckyGiftSvgaUrl : receiveInfo.gift.luckyGiftSvgaUrl; + NSURL * luckyGiftSvgaUrl = [NSURL URLWithString:svgaString]; + if (luckyGiftSvgaUrl.absoluteString.length <= 0) { + luckyGiftSvgaUrl = [NSURL URLWithString:[NSString stringWithFormat:@"%@/room_lucky_gift_bg.svga", API_Image_URL]];; + } + [self prohibitiportInthecaseoftuntowardsePresentImpression:luckyGiftSvgaUrl]; + } + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + [self achievePresent:receiveInfo]; + }); + } else { + [self achievePresent:receiveInfo]; + } + } else if (attachment.first == IndividualityCommunicationGenre_LuckyBag) { + [self achieveInthecaseoftuntowardsePresentConsiderableCapture:attachment]; + } else if (attachment.first == IndividualityCommunicationGenre_Look_Love && (attachment.second == Custom_Message_Sub_Look_Love_InRoom_NeedAllMicSend || attachment.second == Custom_Message_Sub_Look_Love_AllRoom_Notify) ) { + [self achieveConfectioneryTimberPresentHighProttype:attachment]; + } else if (attachment.first == IndividualityCommunicationGenre_Car_Notify && attachment.second == Custom_Message_Sub_Car_EnterRoom ) { + [self achieveDriveAutomobileImportChamber:attachment]; + } else if(attachment.first == IndividualityCommunicationGenre_RoomPlay_Dating && attachment.second == Custom_Message_Sub_Room_Play_Dating_Public_Result) { + [self chamberEngagementPublicConsequent:attachment]; + } else if(attachment.first == IndividualityCommunicationGenre_Across_Room_PK && attachment.second == Custom_Message_Sub_AcrossRoomPK_Result) { + [self throughoutChamberCombatOriflammeBrectifyness:attachment]; + } else if (attachment.first == IndividualityCommunicationGenre_Anchor_FansTeam && attachment.second == Custom_Message_Sub_FansTeam_Join_Success) { + PresentAchieveAbstractMatrix *receiveInfo = [[PresentAchieveAbstractMatrix alloc] init]; + PresentAbstractMatrix *giftInfo = [PresentAbstractMatrix mtowardsrixAboutJSON:attachment.data[@"giftVo"]]; + receiveInfo.gift = giftInfo; + receiveInfo.giftInfo = giftInfo; + [self achieveFantowardsicsSquadPresentShankDischargePresentBrectifyness:attachment]; + [self achievePresent:receiveInfo]; + } else if (attachment.first == IndividualityCommunicationGenre_Across_Room_PK && attachment.second == Custom_Message_Sub_AnchorPK_Result) { + [self throughoutChamberCombatOriflammeBrectifyness:attachment]; + } else if (attachment.first == IndividualityCommunicationGenre_Anchor_Hour_Rank && attachment.second == Custom_Message_Sub_Anchor_Hour_Rank) { + [self achieveKellegStundeRtowardse:attachment]; + } else if (attachment.first == IndividualityCommunicationGenre_Licnese_Hour_Rank && attachment.second == Custom_Message_Sub_Licnese_Hour_Rank) { + [self achieveLicneseStundeRtowardse:attachment]; + } else if (attachment.first == IndividualityCommunicationGenre_Gift_Compound && attachment.second == Custom_Message_Sub_Gift_Compound) { + [self achievePresentSynthetise:attachment]; + } else if(attachment.first == IndividualityCommunicationGenre_Room_Sailing && (attachment.second == Custom_Message_Sub_Sailing_AllRoom_Notify || attachment.second == Custom_Message_Sub_Sailing_InRoom_NeedAllMicSend)) { + [self achieveChamberMarching:attachment]; + } else if(attachment.first == IndividualityCommunicationGenre_Graffiti_Gift) { + [self achieveChamberDoodlePresent:attachment]; + } else if(attachment.first == IndividualityCommunicationGenre_Graffiti_Star_Kitchen){ + [self achieveChamberDoodleStowardselliteKitchen:attachment]; + } + } +} + +- (void)shankNEMCCircularCommunictowardsion:(NIMMessage *)message { + NIMNotificationObject *notiMsg = (NIMNotificationObject *)message.messageObject; + NIMChatroomNotificationContent *content = (NIMChatroomNotificationContent *)notiMsg.content; + if (content.eventType == NIMChatroomEventTypeEnter) { + NIMMessageChatroomExtension * messageExt = (NIMMessageChatroomExtension *)message.messageExt; + NSDictionary * dic = [(NSDictionary *)messageExt.roomExt.toJSONGroal objectForKey:message.from]; + YUMICommunicationRemoteExtMatrix * extModel = [YUMICommunicationRemoteExtMatrix mtowardsrixAboutJSON:dic]; + if (extModel.enterHide) { + if ([message.from isEqualToString:[AccountAbstractStorage instance].acquireCid]) { + [self produceImportBrakeBrectifyness:dic]; + } + return; + } + + [self consumerImportChamber:content ext:extModel]; + } +} + +#pragma mark - 收到星级厨房飘屏 +-(void)achieveChamberDoodleStowardselliteKitchen:(AttachmentMatrix *)attacment{ + if(self.satelliteKitchenFormation.count == 0){ + [self produceStowardselliteKitchenOriflammeBrectifyness:attacment]; + } + [self.satelliteKitchenFormation addObject:attacment]; +} + +- (void)produceStowardselliteKitchenOriflammeBrectifyness:(AttachmentMatrix *)attacment{ + YUMIChamberSatelliteKitchenOriflammeRegard *starKitchenView = [[YUMIChamberSatelliteKitchenOriflammeRegard alloc]initWithFrame:CGRectMake(0, kNavigationHeight + 15, KScreenWidth, kGetScaleWidth(60))]; + starKitchenView.isSvga = attacment.second == Custom_Message_Sub_Star_Kitchen_Server; + YUMIChamberSatelliteKitchenMatrix *starMatrix = [YUMIChamberSatelliteKitchenMatrix mtowardsrixAboutImpactbasket:attacment.data]; + starKitchenView.delegate = self; + starKitchenView.starMatrix = starMatrix; + [self.highProttypeRegard addSubview:starKitchenView]; + POPSpringAnimation *springAnimation = [POPSpringAnimation animationWithPropertyNamed:kPOPViewCenter]; + springAnimation.springSpeed = 12; + springAnimation.springBounciness = 10.f; + springAnimation.fromValue = [NSValue valueWithCGPoint:starKitchenView.center]; + springAnimation.toValue = [NSValue valueWithCGPoint:CGPointMake(starKitchenView.frame.size.width / 2, starKitchenView.center.y)]; + [springAnimation setCompletionBlock:^(POPAnimation *anim, BOOL finished) { + if (finished) { + POPBasicAnimation *moveAnimation = [POPBasicAnimation animationWithPropertyNamed:kPOPViewCenter]; + moveAnimation.fromValue = [NSValue valueWithCGPoint:CGPointMake(0, starKitchenView.center.y)]; + moveAnimation.toValue = [NSValue valueWithCGPoint:CGPointMake(-KScreenWidth/2, starKitchenView.center.y)]; + moveAnimation.beginTime = CACurrentMediaTime() + 3; + moveAnimation.duration = 0.5; + moveAnimation.repeatCount = 1; + moveAnimation.removedOnCompletion = YES; + @kWeakify(self); + [moveAnimation setCompletionBlock:^(POPAnimation *anim, BOOL finished) { + @kStrongify(self); + if (finished) { + [starKitchenView removeFromSuperview]; + [self.satelliteKitchenFormation removeObjectAtIndex:0]; + if (self.satelliteKitchenFormation.count > 0) { + [self produceStowardselliteKitchenOriflammeBrectifyness:self.satelliteKitchenFormation.firstObject]; + } + } + }]; + [starKitchenView pop_addAnimation:moveAnimation forKey:@"moveOutAnimation"]; + } + }]; + [starKitchenView pop_addAnimation:springAnimation forKey:@"starKitchenOutAnimation"]; +} + +#pragma mark - FBCChamberStarKitchenBannerRegardRepresendtation +- (void)yUMIChamberStowardselliteKitchenOriflammeRegard:(YUMIChamberSatelliteKitchenOriflammeRegard *)view didClick:(YUMIChamberSatelliteKitchenMatrix *)starMatrix{ + if(starMatrix.skipUrl == nil || starMatrix.skipUrl.length == 0)return; + YUMITissueRegardGovernancer * webVewC = [[YUMITissueRegardGovernancer alloc] init]; + webVewC.isPush = YES; + webVewC.roomUid = starMatrix.roomUid; + webVewC.url = starMatrix.skipUrl; + [self.delegate.acquireUniversalNev pushViewController:webVewC animated:YES]; + +} +#pragma mark - 涂鸦礼物动画 +- (void)achieveChamberDoodlePresent:(AttachmentMatrix *)attacment { + if (self.doodlePresentFormation.count == 0) { + [self inititowardseDoodlePresentBrectifyness:attacment]; + } + [self.doodlePresentFormation addObject:attacment]; +} + +- (void)inititowardseDoodlePresentBrectifyness:(AttachmentMatrix *)model { + NSDictionary * dic = model.data; + NSNumber * giftId = dic[@"giftId"]; + PresentAbstractMatrix * giftInfo = [[YUMIPresentStorage partowardsiciptowardsionStorage] prohibiticoveryPresentAbstract:giftId.stringValue]; + NSArray * array = dic[@"drawFixedArray"]; + if (giftInfo.giftUrl.length > 0 && array.count > 0) { + [[SDWebImageManager sharedManager] loadImageWithURL:[NSURL URLWithString:giftInfo.giftUrl] options:SDWebImageProgressiveLoad progress:nil completed:^(UIImage * _Nullable image, NSData * _Nullable data, NSError * _Nullable error, SDImageCacheType cacheType, BOOL finished, NSURL * _Nullable imageURL) { + if (error == nil && image) { + YUMIChamberGraffitiPresentBrightnessRegard *doodleRegard = [[YUMIChamberGraffitiPresentBrightnessRegard alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth, KScreenHeight)]; + doodleRegard.presentIndicate = image; + doodleRegard.delegate = self; + doodleRegard.model = model; + doodleRegard.speckGarment = array; + [doodleRegard institutePaletteBrectifyness]; + [self.highProttypeRegard addSubview:doodleRegard]; + } else { + [self.doodlePresentFormation removeObject:model]; + if (self.doodlePresentFormation.count > 0) { + [self inititowardseDoodlePresentBrectifyness:self.doodlePresentFormation.firstObject]; + } + } + }]; + } else { + [self.doodlePresentFormation removeObject:model]; + if (self.doodlePresentFormation.count > 0) { + [self inititowardseDoodlePresentBrectifyness:self.doodlePresentFormation.firstObject]; + } + } +} + + + +- (void)yUMIChamberDoodlePresentBrectifynessRegardImplementtowardsion:(YUMIChamberGraffitiPresentBrightnessRegard *)view attachment:(nonnull AttachmentMatrix *)attachment{ + [view removeFromSuperview]; + if ([self.doodlePresentFormation containsObject:attachment]) { + [self.doodlePresentFormation removeObject:attachment]; + } + if (self.doodlePresentFormation.count > 0) { + [self inititowardseDoodlePresentBrectifyness:self.doodlePresentFormation.firstObject]; + } +} + +#pragma mark - 跨房PK横幅动画 +- (void)throughoutChamberCombatOriflammeBrectifyness:(AttachmentMatrix *)attacment { + ThroughoutChamberCombatCaptureMatrix * captureMatrix = [ThroughoutChamberCombatCaptureMatrix mtowardsrixAboutJSON:attacment.data]; + if (attacment.second == Custom_Message_Sub_AnchorPK_Result) { + captureMatrix.pkType = 1; + } else { + captureMatrix.pkType = 0; + } + [self.throughoutChamberCombatFormation addObject:captureMatrix]; + if (self.throughoutChamberCombatFormation.count == 1 ) { + [self inititowardseThroughoutChamberCombatBrectifyness:self.throughoutChamberCombatFormation.firstObject]; + } +} + +- (void)inititowardseThroughoutChamberCombatBrectifyness:(ThroughoutChamberCombatCaptureMatrix *)model { + YUMIThroughoutChamberCombatCaptureRegard *wishEffectView = [[YUMIThroughoutChamberCombatCaptureRegard alloc] initWithFrame:CGRectMake(KScreenWidth, kNavigationHeight+40, KScreenWidth, 87)]; + wishEffectView.data = model; + UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(passtoCombateWinChamber:)]; + [wishEffectView addGestureRecognizer:tap]; + [self.highProttypeRegard addSubview:wishEffectView]; + [UIView animateWithDuration:0.5 animations:^{ + wishEffectView.frame = CGRectMake(0, kNavigationHeight+40, KScreenWidth, 87); + } completion:^(BOOL finished) { + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + [UIView animateWithDuration:0.5 animations:^{ + wishEffectView.hidden = YES; + } completion:^(BOOL finished) { + [wishEffectView removeFromSuperview]; + [self.throughoutChamberCombatFormation removeObject:model]; + if (self.throughoutChamberCombatFormation.count > 0) { + [self inititowardseThroughoutChamberCombatBrectifyness:self.throughoutChamberCombatFormation.firstObject]; + } + }]; + }); + }]; +} + +- (void)passtoCombateWinChamber:(UITapGestureRecognizer *)tap { + YUMIThroughoutChamberCombatCaptureRegard * view = (YUMIThroughoutChamberCombatCaptureRegard *)tap.view; + if (view.data.winUid.length > 0) { + [self.delegate exitRoom]; + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + [YUMIChamberRegardGovernancer unfoildChamber:view.data.winUid viewController:[XCCurrentVCStackExecutive shareManager].getCurrentVC]; + }); + + } +} + +#pragma mark - 相亲 动画 +- (void)chamberEngagementPublicConsequent:(AttachmentMatrix *)attachment { + self.engagementImpressionFormation = [NSMutableArray array]; + + NSArray * results = [EngagementAbstractMatrix mtowardsrixsAboutGarment:attachment.data[@"list"]]; + [self.engagementImpressionFormation addObjectsFromArray:results]; + if (self.engagementImpressionFormation.count > 0) { + [self inititowardseEngagementBrectifyness:self.engagementImpressionFormation.firstObject]; + } +} + +- (void)inititowardseEngagementBrectifyness:(EngagementAbstractMatrix *)datingModel { + [[NSNotificationCenter defaultCenter] postNotificationName:@"message" object:[self produceChamberEngagementConsequentCommunictowardsion:datingModel]]; + NSString * targetUid= [NSString stringWithFormat:@"%ld", datingModel.targetUid]; + NSString * uid= [NSString stringWithFormat:@"%ld", datingModel.uid]; + if (datingModel.hasHeart || datingModel.hasSelectUser) { + datingModel.originPoint = [self.delegate brectifynessSpeckTowardsPhaseRegardByCid:uid]; + datingModel.targetPoint = [self.delegate brectifynessSpeckTowardsPhaseRegardByCid:targetUid]; + } + YUMIChamberEngagementBrightnessRegard * datingView = [[YUMIChamberEngagementBrightnessRegard alloc] init]; + [self.highProttypeRegard addSubview:datingView]; + [datingView inititowardseBrectifynessAboutMtowardsrix:datingModel finishBlock:^(BOOL finish) { + [datingView removeFromSuperview]; + [self.engagementImpressionFormation removeObject:datingModel]; + if (self.engagementImpressionFormation.count > 0) { + EngagementAbstractMatrix * datingModel = [self.engagementImpressionFormation firstObject]; + [self inititowardseEngagementBrectifyness:datingModel]; + } + }]; +} + +- (NIMMessage *)produceChamberEngagementConsequentCommunictowardsion:(EngagementAbstractMatrix *)datingModel { + NIMMessage * message = [[NIMMessage alloc] init]; + NIMSession * session = [NIMSession session:[NSString stringWithFormat:@"%ld", self.delegate.acquireChamberAbstract.roomId] type:NIMSessionTypeChatroom]; + [message setValue:session forKey:@"session"]; + AttachmentMatrix * attach = [[AttachmentMatrix alloc] init]; + attach.first = IndividualityCommunicationGenre_RoomPlay_Dating; + if (datingModel.hasHeart) { + attach.second = Custom_Message_Sub_Room_Play_Dating_Result_Mutual; + } else { + attach.second = Custom_Message_Sub_Room_Play_Dating_Result_Not_Mutual; + } + attach.data = [datingModel mtowardsrix2dictionary]; + NIMCustomObject * object = [[NIMCustomObject alloc] init]; + object.attachment = attach; + message.messageObject = object; + return message; +} + +#pragma mark - 进房动画 XXX来了 +- (void)consumerImportChamber:(NIMChatroomNotificationContent *)content ext:(YUMICommunicationRemoteExtMatrix *)extModel { + if (extModel.experLevelSeq < 30) return; + NSString * title = [NSString stringWithFormat:YMLocalizedString(@"YUMI_Room_Animation_View_0"), content.source.nick]; + if (self.importImpressionFormation.count ==0) { + [self prohibitiportConsumerImportChamberBrectifyness:title experLevelSeq:extModel.experLevelSeq effectPath:extModel.enterRoomEffects]; + } + NSDictionary * dic= @{@"title":title, @"experLevelSeq":[NSString stringWithFormat:@"%ld", extModel.experLevelSeq], @"effectPath" : extModel.enterRoomEffects.length ? extModel.enterRoomEffects : @""}; + [self.importImpressionFormation addObject:dic]; +} + +- (void)prohibitiportConsumerImportChamberBrectifyness:(NSString *)title experLevelSeq:(NSInteger)experLevelSeq effectPath:(NSString *)effectPath { + NSString * path; + if (experLevelSeq >= 30 && experLevelSeq <= 39) { + path = @"svga_member_in_lv30"; + } else if (experLevelSeq >= 40 && experLevelSeq <= 49) { + path = @"svga_member_in_lv40"; + } else if (experLevelSeq >= 50 && experLevelSeq <= 59) { + path = @"svga_member_in_lv50"; + } else if (experLevelSeq >= 60 && experLevelSeq <= 69) { + path = @"svga_member_in_lv60"; + } else if (experLevelSeq >= 70 && experLevelSeq <= 79) { + path = @"svga_member_in_lv70"; + } else if (experLevelSeq >= 80 && experLevelSeq <= 89) { + path = @"svga_member_in_lv80"; + } else { + path = @"svga_member_in_lv90"; + } + NSString * anatomiser1Name = [NSString stringWithFormat:@"%@/%@.svga", API_Image_URL, path]; + + if (self.importImpressionRegard.superview == nil) { + self.importImpressionRegard.frame = CGRectMake(KScreenWidth, 339 + kSafeAreaTopHeight, KScreenWidth, effectPath.length ? 75 : 40); + [self.lowPrototypeRegard addSubview:self.importImpressionRegard]; + } + + NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] initWithString:title attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:26], NSForegroundColorAttributeName:[UIColor whiteColor]}]; + [attribute setYy_alignment:NSTextAlignmentLeft]; + if (effectPath.length > 0) { + @kWeakify(self); + [self.anatomiser parseWithURL:[NSURL URLWithString:effectPath] completionBlock:^(SVGAVideoEntity * _Nonnull videoItem) { + @kStrongify(self); + self.importImpressionRegard.loops = 1; + self.importImpressionRegard.hidden = NO; + self.importImpressionRegard.clearsAfterStop = NO; + self.importImpressionRegard.alpha = 1; + self.importImpressionRegard.videoItem = videoItem; + [self.importImpressionRegard setAttributedText:attribute forKey:@"room_text"]; + [self.importImpressionRegard startAnimation]; + } failureBlock:^(NSError * _Nonnull error) { + }]; + } else { + @kWeakify(self); + [self.anatomiser parseWithURL:[NSURL URLWithString:anatomiser1Name] completionBlock:^(SVGAVideoEntity * _Nonnull videoItem) { + @kStrongify(self); + self.importImpressionRegard.loops = 1; + self.importImpressionRegard.hidden = NO; + self.importImpressionRegard.clearsAfterStop = NO; + self.importImpressionRegard.alpha = 1; + self.importImpressionRegard.videoItem = videoItem; + [self.importImpressionRegard setAttributedText:attribute forKey:@"room_text"]; + [self.importImpressionRegard startAnimation]; + } failureBlock:^(NSError * _Nonnull error) { + }]; + } + [UIView animateWithDuration:0.5 animations:^{ + self.importImpressionRegard.frame = CGRectMake(0, 339 + kSafeAreaTopHeight, KScreenWidth, effectPath.length ? 75 : 40); + } completion:^(BOOL finished) { + }]; +} + +- (void)produceImportBrakeBrectifyness:(NSDictionary *)dic { + YUMIChamberImportHideTipRegard *enterHideTipView = [[YUMIChamberImportHideTipRegard alloc] initWithFrame:CGRectMake(KScreenWidth, (KScreenHeight - 48) * 0.5, KScreenWidth, 48)]; + [self.highProttypeRegard addSubview:enterHideTipView]; + POPSpringAnimation *springAnimation = [POPSpringAnimation animationWithPropertyNamed:kPOPViewCenter]; + springAnimation.springSpeed = 12; + springAnimation.springBounciness = 10.f; + springAnimation.fromValue = [NSValue valueWithCGPoint:enterHideTipView.center]; + springAnimation.toValue = [NSValue valueWithCGPoint:CGPointMake(enterHideTipView.frame.size.width / 2, enterHideTipView.center.y)]; + [springAnimation setCompletionBlock:^(POPAnimation *anim, BOOL finished) { + if (finished) { + POPBasicAnimation *moveAnimation = [POPBasicAnimation animationWithPropertyNamed:kPOPViewCenter]; + moveAnimation.fromValue = [NSValue valueWithCGPoint:CGPointMake(0, enterHideTipView.center.y)]; + moveAnimation.toValue = [NSValue valueWithCGPoint:CGPointMake(-KScreenWidth/2, enterHideTipView.center.y)]; + moveAnimation.beginTime = CACurrentMediaTime() + 3; + moveAnimation.duration = 0.5; + moveAnimation.repeatCount = 1; + moveAnimation.removedOnCompletion = YES; + [moveAnimation setCompletionBlock:^(POPAnimation *anim, BOOL finished) { + if (finished) { + [enterHideTipView removeFromSuperview]; + } + }]; + [enterHideTipView pop_addAnimation:moveAnimation forKey:@"moveOutAnimation"]; + } + }]; + [enterHideTipView pop_addAnimation:springAnimation forKey:@"roomEnterTipUpspingOutAnimation"]; +} + +#pragma mark - 座驾的动画 +- (void)achieveDriveAutomobileImportChamber:(AttachmentMatrix *)attatchment { + if (self.isBignessPresentAnimating) {return;} + if ([self isInYoudCompetition]) {return;} + if (!self.delegate.acquireChamberAbstract.hasAnimationEffect) {return;} + NSInteger otherViewType = [attatchment.data[@"otherViewType"] integerValue]; + NSString *viewUrl = attatchment.data[@"viewUrl"]; + NSString * effect = attatchment.data[@"effect"]; + if (viewUrl.length) { + NSDictionary * dic = @{@"otherViewType":@(otherViewType), @"viewUrl":viewUrl}; + if (self.automobileImpressionFormation.count == 0) { + [self prohibitiportAutomobileImpression:dic]; + } + [self.automobileImpressionFormation addObject:dic]; + } else if(effect.length) { + NSDictionary * dic = @{@"effect":effect}; + if (self.automobileImpressionFormation.count == 0) { + [self prohibitiportAutomobileImpression:dic]; + } + [self.automobileImpressionFormation addObject:dic]; + } +} + + +- (void)prohibitiportAutomobileImpression:(NSDictionary *)effectDict { + NSString *viewUrl = [effectDict objectForKey:@"viewUrl"]; + NSString *carEffect = [effectDict objectForKey:@"effect"]; + if (viewUrl.length) { + self.automobileVepporImpressionRegard.hidden = NO; + if (self.automobileVepporImpressionRegard.superview == nil) { + [self.middlePrototypeRegard addSubview:self.automobileVepporImpressionRegard]; + [self.automobileVepporImpressionRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.center.mas_equalTo(self.middlePrototypeRegard); + make.width.mas_equalTo(KScreenWidth); + make.height.mas_equalTo(KScreenHeight); + }]; + } + [self.vepporAnatomiser parseWithURL:viewUrl completionBlock:^(NSString * _Nullable videoUrl) { + if (videoUrl.length) { + [self.automobileVepporImpressionRegard setMute:YES]; + [self.automobileVepporImpressionRegard playHWDMP4:videoUrl repeatCount:1 delegate:self]; + } + } failureBlock:^(NSError * _Nullable error) { + + }]; + } else if (carEffect.length) { + if (self.automobileImpressionRegard.superview == nil) { + [self.middlePrototypeRegard addSubview:self.automobileImpressionRegard]; + [self.automobileImpressionRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.center.mas_equalTo(self.middlePrototypeRegard); + make.width.mas_equalTo(KScreenWidth); + make.height.mas_equalTo(KScreenHeight); + }]; + } + [self.anatomiser parseWithURL:[NSURL URLWithString:carEffect] completionBlock:^(SVGAVideoEntity * _Nullable videoItem) { + if (videoItem != nil) { + CGFloat width = videoItem.videoSize.width; + CGFloat height = videoItem.videoSize.height; + if (width > height) { + self.automobileImpressionRegard.contentMode = UIViewContentModeScaleAspectFit; + } else { + CGFloat resizeH = KScreenWidth * height / width; + if (resizeH > KScreenHeight) { + self.automobileImpressionRegard.contentMode = UIViewContentModeScaleAspectFill; + } else { + self.automobileImpressionRegard.contentMode = UIViewContentModeScaleAspectFit; + } + } + self.automobileImpressionRegard.hidden = NO; + self.automobileImpressionRegard.alpha = 1; + self.automobileImpressionRegard.loops = 1; + self.automobileImpressionRegard.clearsAfterStop = YES; + self.automobileImpressionRegard.videoItem = videoItem; + [self.automobileImpressionRegard startAnimation]; + } + } failureBlock:^(NSError * _Nullable error) { + + }]; + } +} + +#pragma mark - 糖果树横幅动画 +- (void)achieveConfectioneryTimberPresentHighProttype:(AttachmentMatrix *)attatchment { + if ([self isInYoudCompetition]) {return;} + if (self.confectioneryTimberpresentFormation.count == 0) { + [self produceConfectioneryTimberOriflammeBrectifyness:attatchment]; + } + [self.confectioneryTimberpresentFormation addObject:attatchment]; +} + +- (void)produceConfectioneryTimberOriflammeBrectifyness:(AttachmentMatrix *)attatchment { + CGFloat kscale = (CGFloat)60 / (CGFloat)375; + YUMIChamberConfectioneryPresentRegard *confectioneryTimberRegard = [[YUMIChamberConfectioneryPresentRegard alloc] initWithFrame:CGRectMake(KScreenWidth, kNavigationHeight + 15, KScreenWidth , KScreenWidth * kscale)]; + confectioneryTimberRegard.isLargestBignessPresent = attatchment.second == Custom_Message_Sub_Candy_Tree_InRoom_NeedAllMicSend; + confectioneryTimberRegard.confectioneryAbstract = attatchment.data; + [self.middlePrototypeRegard addSubview:confectioneryTimberRegard]; + POPSpringAnimation *springAnimation = [POPSpringAnimation animationWithPropertyNamed:kPOPViewCenter]; + springAnimation.springSpeed = 12; + springAnimation.springBounciness = 10.f; + springAnimation.fromValue = [NSValue valueWithCGPoint:confectioneryTimberRegard.center]; + springAnimation.toValue = [NSValue valueWithCGPoint:CGPointMake(confectioneryTimberRegard.frame.size.width / 2, confectioneryTimberRegard.center.y)]; + [springAnimation setCompletionBlock:^(POPAnimation *anim, BOOL finished) { + if (finished) { + POPBasicAnimation *moveAnimation = [POPBasicAnimation animationWithPropertyNamed:kPOPViewCenter]; + moveAnimation.fromValue = [NSValue valueWithCGPoint:CGPointMake(0, confectioneryTimberRegard.center.y)]; + moveAnimation.toValue = [NSValue valueWithCGPoint:CGPointMake(-KScreenWidth/2, confectioneryTimberRegard.center.y)]; + moveAnimation.beginTime = CACurrentMediaTime() + 3; + moveAnimation.duration = 0.5; + moveAnimation.repeatCount = 1; + moveAnimation.removedOnCompletion = YES; + @kWeakify(self); + [moveAnimation setCompletionBlock:^(POPAnimation *anim, BOOL finished) { + @kStrongify(self); + if (finished) { + [confectioneryTimberRegard removeFromSuperview]; + if (self.confectioneryTimberpresentFormation.count > 0) { + [self.confectioneryTimberpresentFormation removeObjectAtIndex:0]; + } + if (self.confectioneryTimberpresentFormation.count > 0) { + [self produceConfectioneryTimberOriflammeBrectifyness:self.confectioneryTimberpresentFormation.firstObject]; + } + } + }]; + [confectioneryTimberRegard pop_addAnimation:moveAnimation forKey:@"moveOutAnimation"]; + } + }]; + [confectioneryTimberRegard pop_addAnimation:springAnimation forKey:@"candyTreespingOutAnimation"]; +} + +#pragma mark - 航海横幅 +- (void)achieveChamberMarching:(AttachmentMatrix *)attachment { + if ([self isInYoudCompetition]) {return;} + if (self.marchingFormation.count == 0) { + [self produceMarchingOriflammeBrectifyness:attachment]; + } + [self.marchingFormation addObject:attachment]; +} + +- (void)produceMarchingOriflammeBrectifyness:(AttachmentMatrix *)attatchment { + CGFloat kscale = (CGFloat)60 / (CGFloat)375; + YUMIMarchingBrightnessRegard *marchingRegard = [[YUMIMarchingBrightnessRegard alloc] initWithFrame:CGRectMake(KScreenWidth, kNavigationHeight + 15, KScreenWidth, KScreenWidth * kscale)]; + marchingRegard.captureAbstract = attatchment.data; + [self.middlePrototypeRegard addSubview:marchingRegard]; + POPSpringAnimation *springAnimation = [POPSpringAnimation animationWithPropertyNamed:kPOPViewCenter]; + springAnimation.springSpeed = 12; + springAnimation.springBounciness = 10.f; + springAnimation.fromValue = [NSValue valueWithCGPoint:marchingRegard.center]; + springAnimation.toValue = [NSValue valueWithCGPoint:CGPointMake(marchingRegard.frame.size.width / 2, marchingRegard.center.y)]; + [springAnimation setCompletionBlock:^(POPAnimation *anim, BOOL finished) { + if (finished) { + POPBasicAnimation *moveAnimation = [POPBasicAnimation animationWithPropertyNamed:kPOPViewCenter]; + moveAnimation.fromValue = [NSValue valueWithCGPoint:CGPointMake(0, marchingRegard.center.y)]; + moveAnimation.toValue = [NSValue valueWithCGPoint:CGPointMake(-KScreenWidth/2, marchingRegard.center.y)]; + moveAnimation.beginTime = CACurrentMediaTime() + 3; + moveAnimation.duration = 0.5; + moveAnimation.repeatCount = 1; + moveAnimation.removedOnCompletion = YES; + @kWeakify(self); + [moveAnimation setCompletionBlock:^(POPAnimation *anim, BOOL finished) { + @kStrongify(self); + if (finished) { + [marchingRegard removeFromSuperview]; + if (self.marchingFormation.count > 0) { + [self.marchingFormation removeObjectAtIndex:0]; + } + if (self.marchingFormation.count > 0) { + [self produceMarchingOriflammeBrectifyness:self.marchingFormation.firstObject]; + } + } + }]; + [marchingRegard pop_addAnimation:moveAnimation forKey:@"moveOutAnimation"]; + } + }]; + [marchingRegard pop_addAnimation:springAnimation forKey:@"candyTreespingOutAnimation"]; +} + +#pragma mark - 贵族升级 +- (void)achieveMagnificentPrototypeUpwards:(AttachmentMatrix *)attachment { + if (self.magnificentPrototypeUpwardsFormation.count == 0) { + [self produceMagnificentPrototypeUpwardsOriflammeBrectifyness:attachment.data]; + } + [self.magnificentPrototypeUpwardsFormation addObject:attachment.data]; +} + +- (void)produceMagnificentPrototypeUpwardsOriflammeBrectifyness:(NSDictionary *)dic { + YUMIChamberMagnificentPrototypeUpwardsRegard *nobleLevelUpView = [[YUMIChamberMagnificentPrototypeUpwardsRegard alloc] initWithFrame:CGRectMake(KScreenWidth, kNavigationHeight + 15, KScreenWidth, 90)]; + nobleLevelUpView.magnificentAbstract = dic; + [self.highProttypeRegard addSubview:nobleLevelUpView]; + POPSpringAnimation *springAnimation = [POPSpringAnimation animationWithPropertyNamed:kPOPViewCenter]; + springAnimation.springSpeed = 12; + springAnimation.springBounciness = 10.f; + springAnimation.fromValue = [NSValue valueWithCGPoint:nobleLevelUpView.center]; + springAnimation.toValue = [NSValue valueWithCGPoint:CGPointMake(nobleLevelUpView.frame.size.width / 2, nobleLevelUpView.center.y)]; + [springAnimation setCompletionBlock:^(POPAnimation *anim, BOOL finished) { + if (finished) { + POPBasicAnimation *moveAnimation = [POPBasicAnimation animationWithPropertyNamed:kPOPViewCenter]; + moveAnimation.fromValue = [NSValue valueWithCGPoint:CGPointMake(0, nobleLevelUpView.center.y)]; + moveAnimation.toValue = [NSValue valueWithCGPoint:CGPointMake(-KScreenWidth/2, nobleLevelUpView.center.y)]; + moveAnimation.beginTime = CACurrentMediaTime() + 3; + moveAnimation.duration = 0.5; + moveAnimation.repeatCount = 1; + moveAnimation.removedOnCompletion = YES; + @kWeakify(self); + [moveAnimation setCompletionBlock:^(POPAnimation *anim, BOOL finished) { + @kStrongify(self); + if (finished) { + [nobleLevelUpView removeFromSuperview]; + if (self.magnificentPrototypeUpwardsFormation > 0) { + [self.magnificentPrototypeUpwardsFormation removeObjectAtIndex:0]; + } + if (self.magnificentPrototypeUpwardsFormation.count > 0) { + [self produceMagnificentPrototypeUpwardsOriflammeBrectifyness:self.magnificentPrototypeUpwardsFormation.firstObject]; + } + } + }]; + [nobleLevelUpView pop_addAnimation:moveAnimation forKey:@"moveOutAnimation"]; + } + }]; + [nobleLevelUpView pop_addAnimation:springAnimation forKey:@"nobleLevelUpspingOutAnimation"]; +} + +#pragma mark - 魔法小屋礼物合成 +- (void)achievePresentSynthetise:(AttachmentMatrix *)attachment { + if ([self isInYoudCompetition]) {return;} + if (self.compoundPresentFormation.count == 0) { + [self producePresentSynthetiseOriflammeBrectifyness:attachment]; + } + [self.compoundPresentFormation addObject:attachment]; +} + +- (void)producePresentSynthetiseOriflammeBrectifyness:(AttachmentMatrix *)attachment { + YUMIChamberPresentCompoundRegard *compoundPresentRegard = [[YUMIChamberPresentCompoundRegard alloc] initWithFrame:CGRectMake(KScreenWidth, kNavigationHeight + 15, KScreenWidth, 45)]; + compoundPresentRegard.compoundPresentAbstract = attachment.data; + [self.middlePrototypeRegard addSubview:compoundPresentRegard]; + POPSpringAnimation *springAnimation = [POPSpringAnimation animationWithPropertyNamed:kPOPViewCenter]; + springAnimation.springSpeed = 12; + springAnimation.springBounciness = 10.f; + springAnimation.fromValue = [NSValue valueWithCGPoint:compoundPresentRegard.center]; + springAnimation.toValue = [NSValue valueWithCGPoint:CGPointMake(compoundPresentRegard.frame.size.width / 2, compoundPresentRegard.center.y)]; + [springAnimation setCompletionBlock:^(POPAnimation *anim, BOOL finished) { + if (finished) { + POPBasicAnimation *moveAnimation = [POPBasicAnimation animationWithPropertyNamed:kPOPViewCenter]; + moveAnimation.fromValue = [NSValue valueWithCGPoint:CGPointMake(0, compoundPresentRegard.center.y)]; + moveAnimation.toValue = [NSValue valueWithCGPoint:CGPointMake(-KScreenWidth/2, compoundPresentRegard.center.y)]; + moveAnimation.beginTime = CACurrentMediaTime() + 3; + moveAnimation.duration = 0.5; + moveAnimation.repeatCount = 1; + moveAnimation.removedOnCompletion = YES; + @kWeakify(self); + [moveAnimation setCompletionBlock:^(POPAnimation *anim, BOOL finished) { + @kStrongify(self); + if (finished) { + [compoundPresentRegard removeFromSuperview]; + if (self.compoundPresentFormation.count > 0) { + [self.compoundPresentFormation removeObjectAtIndex:0]; + } + + if (self.compoundPresentFormation.count > 0) { + [self producePresentSynthetiseOriflammeBrectifyness:self.compoundPresentFormation.firstObject]; + } + } + }]; + [compoundPresentRegard pop_addAnimation:moveAnimation forKey:@"moveOutAnimation"]; + } + }]; + [compoundPresentRegard pop_addAnimation:springAnimation forKey:@"compoundGiftSpingOutAnimation"]; +} + +#pragma mark - 牌照房小时榜飘屏 +- (void)achieveLicneseStundeRtowardse:(AttachmentMatrix *)attachment { + YUMIChamberLicneseHourRateRegard *anchorRankView = [[YUMIChamberLicneseHourRateRegard alloc] initWithFrame:CGRectMake(KScreenWidth, kNavigationHeight + 15, 375, 60)]; + anchorRankView.delegate = self; + anchorRankView.licneseRateAbstract = [ChamberHalfHourRateMatrix mtowardsrixAboutImpactbasket:attachment.data]; + [self.highProttypeRegard addSubview:anchorRankView]; + POPSpringAnimation *springAnimation = [POPSpringAnimation animationWithPropertyNamed:kPOPViewCenter]; + springAnimation.springSpeed = 12; + springAnimation.springBounciness = 10.f; + springAnimation.fromValue = [NSValue valueWithCGPoint:anchorRankView.center]; + springAnimation.toValue = [NSValue valueWithCGPoint:CGPointMake(KScreenWidth / 2, anchorRankView.center.y)]; + [springAnimation setCompletionBlock:^(POPAnimation *anim, BOOL finished) { + if (finished) { + POPBasicAnimation *moveAnimation = [POPBasicAnimation animationWithPropertyNamed:kPOPViewCenter]; + moveAnimation.fromValue = [NSValue valueWithCGPoint:CGPointMake(KScreenWidth / 2, anchorRankView.center.y)]; + moveAnimation.toValue = [NSValue valueWithCGPoint:CGPointMake(-KScreenWidth, anchorRankView.center.y)]; + moveAnimation.beginTime = CACurrentMediaTime() + 3; + moveAnimation.duration = 0.5; + moveAnimation.repeatCount = 1; + moveAnimation.removedOnCompletion = YES; + [moveAnimation setCompletionBlock:^(POPAnimation *anim, BOOL finished) { + [anchorRankView removeFromSuperview]; + }]; + [anchorRankView pop_addAnimation:moveAnimation forKey:@"moveOutAnimation"]; + } + }]; + [anchorRankView pop_addAnimation:springAnimation forKey:@"nobleLevelUpspingOutAnimation"]; +} + +- (void)yUMIChamberLicneseStundeRtowardseRegard:(YUMIChamberLicneseHourRateRegard *)view rateAbstract:(ChamberHalfHourRateMatrix *)rateAbstract { + if (rateAbstract.uid.integerValue > 0 && self.delegate.acquireChamberAbstract.uid != rateAbstract.uid.integerValue) { + [self.delegate exitRoom]; + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + [YUMIChamberRegardGovernancer unfoildChamber:rateAbstract.uid viewController:[XCCurrentVCStackExecutive shareManager].getCurrentVC]; + }); + } +} + +#pragma mark - 个播小时榜飘屏 +- (void)achieveKellegStundeRtowardse:(AttachmentMatrix *)attachment { + YUMIChamberKellegRateOriflammeRegard *anchorRankView = [[YUMIChamberKellegRateOriflammeRegard alloc] initWithFrame:CGRectMake(KScreenWidth, kNavigationHeight + 15, KScreenWidth, 60)]; + anchorRankView.kellegRateAbstract = [ChamberHalfHourRateMatrix mtowardsrixAboutImpactbasket:attachment.data]; + UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(passtoApexRtowardseKellegChamber:)]; + [anchorRankView addGestureRecognizer:tap]; + [self.highProttypeRegard addSubview:anchorRankView]; + POPSpringAnimation *springAnimation = [POPSpringAnimation animationWithPropertyNamed:kPOPViewCenter]; + springAnimation.springSpeed = 12; + springAnimation.springBounciness = 10.f; + springAnimation.fromValue = [NSValue valueWithCGPoint:anchorRankView.center]; + springAnimation.toValue = [NSValue valueWithCGPoint:CGPointMake(anchorRankView.frame.size.width / 2, anchorRankView.center.y)]; + [springAnimation setCompletionBlock:^(POPAnimation *anim, BOOL finished) { + if (finished) { + POPBasicAnimation *moveAnimation = [POPBasicAnimation animationWithPropertyNamed:kPOPViewCenter]; + moveAnimation.fromValue = [NSValue valueWithCGPoint:CGPointMake(0, anchorRankView.center.y)]; + moveAnimation.toValue = [NSValue valueWithCGPoint:CGPointMake(-KScreenWidth/2, anchorRankView.center.y)]; + moveAnimation.beginTime = CACurrentMediaTime() + 3; + moveAnimation.duration = 0.5; + moveAnimation.repeatCount = 1; + moveAnimation.removedOnCompletion = YES; + [anchorRankView pop_addAnimation:moveAnimation forKey:@"moveOutAnimation"]; + } + }]; + [anchorRankView pop_addAnimation:springAnimation forKey:@"nobleLevelUpspingOutAnimation"]; +} + +- (void)passtoApexRtowardseKellegChamber:(UITapGestureRecognizer *)tap { + YUMIChamberKellegRateOriflammeRegard * view = (YUMIChamberKellegRateOriflammeRegard *)tap.view; + if (view.kellegRateAbstract.uid.integerValue > 0) { + [self.delegate exitRoom]; + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + [YUMIChamberRegardGovernancer unfoildChamber:view.kellegRateAbstract.uid viewController:[XCCurrentVCStackExecutive shareManager].getCurrentVC]; + }); + } +} + +#pragma mark - 展示加入粉丝团送礼动画 +- (void)achieveFantowardsicsSquadPresentShankDischargePresentBrectifyness:(AttachmentMatrix *)attachment { + if ([self isInYoudCompetition]) {return;} + if (!self.delegate.acquireChamberAbstract.hasAnimationEffect) {return;} + PresentAchieveAbstractMatrix *receiveInfo = [[PresentAchieveAbstractMatrix alloc] init]; + PresentAbstractMatrix *gift = [PresentAbstractMatrix mtowardsrixAboutJSON:attachment.data[@"giftVo"]]; + receiveInfo.gift = gift; + receiveInfo.giftInfo = gift; + receiveInfo.targetUid = [NSString stringWithFormat:@"%ld", self.delegate.acquireChamberAbstract.uid]; + PresentAbstractMatrix * giftInfo = receiveInfo.gift ? receiveInfo.gift : receiveInfo.giftInfo; + if (attachment.second == Custom_Message_Sub_AllMicroLuckySend || attachment.second == Custom_Message_Sub_AllBatchMicroLuckySend || attachment.second == Custom_Message_Sub_Gift_LuckySend) { + NSString * giftId = [NSString stringWithFormat:@"%ld", receiveInfo.luckyGiftList.giftList.firstObject.giftId]; + giftInfo = [[YUMIPresentStorage partowardsiciptowardsionStorage] prohibiticoveryPresentAbstract:giftId]; + } + if (giftInfo == nil) { + giftInfo = [[YUMIPresentStorage partowardsiciptowardsionStorage] prohibiticoveryPresentAbstract:receiveInfo.giftId]; + } + + + receiveInfo.gift = giftInfo; + receiveInfo.isLuckyBagGift = (attachment.second == Custom_Message_Sub_AllMicroLuckySend || attachment.second == Custom_Message_Sub_AllBatchMicroLuckySend || attachment.second == Custom_Message_Sub_Gift_LuckySend); + [self.presentFormation addObject:receiveInfo]; + if (self.presentIntratemper == nil && self.presentFormation > 0) { + [self inititowardsePresentInthecaseofmtowardsionIntrtowardsemper]; + } +} + +#pragma mark - 收到礼物展示动画 +- (void)achievePresentShankDischargePresentBrectifyness:(AttachmentMatrix *)attachment { + if ([self isInYoudCompetition]) {return;} + if (!self.delegate.acquireChamberAbstract.hasAnimationEffect) {return;} + PresentAchieveAbstractMatrix * receiveInfo = [PresentAchieveAbstractMatrix mtowardsrixAboutJSON:attachment.data]; + PresentAbstractMatrix * giftInfo = receiveInfo.gift ? receiveInfo.gift : receiveInfo.giftInfo; + if (attachment.second == Custom_Message_Sub_AllMicroLuckySend || attachment.second == Custom_Message_Sub_AllBatchMicroLuckySend || attachment.second == Custom_Message_Sub_Gift_LuckySend) { + NSString * giftId = [NSString stringWithFormat:@"%ld", receiveInfo.luckyGiftList.giftList.firstObject.giftId]; + giftInfo = [[YUMIPresentStorage partowardsiciptowardsionStorage] prohibiticoveryPresentAbstract:giftId]; + } + if (giftInfo == nil) { + giftInfo = [[YUMIPresentStorage partowardsiciptowardsionStorage] prohibiticoveryPresentAbstract:receiveInfo.giftId]; + } + + + receiveInfo.gift = giftInfo; + receiveInfo.isLuckyBagGift = (attachment.second == Custom_Message_Sub_AllMicroLuckySend || attachment.second == Custom_Message_Sub_AllBatchMicroLuckySend || attachment.second == Custom_Message_Sub_Gift_LuckySend); + [self.presentFormation addObject:receiveInfo]; + if (self.presentIntratemper == nil && self.presentFormation > 0) { + [self inititowardsePresentInthecaseofmtowardsionIntrtowardsemper]; + } +} + +- (void)inititowardsePresentInthecaseofmtowardsionIntrtowardsemper { + NSTimeInterval period = 0.5; + dispatch_source_t _timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, dispatch_get_global_queue(0, 0)); + dispatch_source_set_timer(_timer, DISPATCH_TIME_NOW, period * NSEC_PER_SEC, 0 * NSEC_PER_SEC); + dispatch_source_set_event_handler(_timer, ^{ + dispatch_async(dispatch_get_main_queue(), ^{ + if (self.presentFormation.count) { + PresentAchieveAbstractMatrix * receiveInfo = self.presentFormation.firstObject; + [self handoutPresentDistributeBrectifyness:receiveInfo]; + [self.presentFormation removeObject:receiveInfo]; + }else { + dispatch_source_cancel(_timer); + self.presentIntratemper = nil; + } + }); + }); + dispatch_resume(_timer); + self.presentIntratemper = _timer; +} + +- (void)handoutPresentDistributeBrectifyness:(PresentAchieveAbstractMatrix *)receiveInfo { + PresentAbstractMatrix * giftInfo = receiveInfo.gift; + NSString * sendUid = receiveInfo.uid; + CGPoint starPoint = [self acquirePresentBrectifynessSpeck:sendUid isEnd:NO]; + CGPoint endPoint; + NSArray * targetUids; + if (receiveInfo.isLuckyBagGift) { + targetUids = @[receiveInfo.targetUid]; + } else { + targetUids = receiveInfo.targetUids; + if (targetUids.count <= 0) { + targetUids = [receiveInfo.targetUsers valueForKeyPath:@"uid"]; + if (targetUids.count <=0) { + targetUids = @[receiveInfo.targetUid]; + } + } + } + + for (NSString *targetUid in targetUids) { + NSString * userId = targetUid; + if ([userId isKindOfClass:[NSNumber class]]) { + userId = ((NSNumber *)userId).stringValue; + } + endPoint = [self acquirePresentBrectifynessSpeck:userId isEnd:YES]; + dispatch_time_t timer = dispatch_time(DISPATCH_TIME_NOW, 0.5 * NSEC_PER_SEC); + dispatch_after(timer, dispatch_get_main_queue(), ^{ + [self institutePresentBrectifyness:giftInfo.giftUrl startPoint:starPoint endPoint:endPoint]; + }); + } +} + +- (CGPoint)acquirePresentBrectifynessSpeck:(NSString *)uid isEnd:(BOOL)isEnd{ + CGPoint point = [self.delegate brectifynessSpeckTowardsPhaseRegardByCid:uid]; + + if (point.x <= 0 || point.y <= 0) { + if (isEnd) { + point = CGPointMake([UIScreen mainScreen].bounds.size.width /2 + 30, 44 + kSafeAreaTopHeight); + } else { + point = CGPointMake([UIScreen mainScreen].bounds.size.width / 2, 44 + kSafeAreaTopHeight); + } + } + return point; +} + +- (void)institutePresentBrectifyness:(NSString *)giftUrl startPoint:(CGPoint)startPoint endPoint:(CGPoint)endPoint { + NetIndicateRegard * presentIndicateRegard = [self.presentReuseGarment anyObject]; + if (presentIndicateRegard == nil) { + presentIndicateRegard = [[NetIndicateRegard alloc]initWithFrame:CGRectMake(0, 0 , 55, 55)]; + presentIndicateRegard.center = startPoint; + presentIndicateRegard.alpha = 1; + presentIndicateRegard.layer.anchorPoint = CGPointMake(0.5, 0.5); + presentIndicateRegard.imageUrl = giftUrl; + [self.presentVisibleGarment addObject:presentIndicateRegard]; + }else { + [self.presentReuseGarment removeObject:presentIndicateRegard]; + } + presentIndicateRegard.hidden = NO; + presentIndicateRegard.imageUrl = giftUrl; + [self.lowPrototypeRegard addSubview:presentIndicateRegard]; + CAAnimationGroup *group = [self producePresentBrectifynessInititowardseSpeck:startPoint endPoint:endPoint]; + [presentIndicateRegard.layer addAnimation:group forKey:@"giftDisplayViewAnimation"]; + [self performSelector:@selector(anitowardsionDidAccomplish:) withObject:presentIndicateRegard afterDelay:(3.2+0.25)]; +} + +- (CAAnimationGroup *)producePresentBrectifynessInititowardseSpeck:(CGPoint)startPoint endPoint:(CGPoint)endPoint{ + CGPoint centerPoint = CGPointMake(KScreenWidth / 2, KScreenHeight / 2); + CAKeyframeAnimation *animation0 = [CAKeyframeAnimation animation]; + animation0.duration = 0.8; + animation0.keyPath = @"transform.scale"; + animation0.values = @[@1.0,@1.5,@2.0,@1.5]; + animation0.repeatCount = 1; + animation0.calculationMode = kCAAnimationCubic; + animation0.removedOnCompletion = NO; + animation0.fillMode = kCAFillModeForwards; + + CAKeyframeAnimation *animation1 = [CAKeyframeAnimation animation]; + animation1.duration = 0.8; + animation1.beginTime = 0.8; + animation1.keyPath = @"transform.scale"; + animation1.values = @[@1.5,@2.0,@2.5,@3.0]; + animation1.repeatCount = 1; + animation1.calculationMode = kCAAnimationCubic; + animation1.removedOnCompletion = NO; + animation1.fillMode = kCAFillModeForwards; + + + CAKeyframeAnimation *animation2 = [CAKeyframeAnimation animation]; + animation2.duration = 0.8; + animation2.beginTime = 0.8; + animation2.keyPath = @"position"; + animation2.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut];; + animation2.values = @[[NSValue valueWithCGPoint:startPoint],[NSValue valueWithCGPoint:CGPointMake(centerPoint.x ,centerPoint.y)]]; + animation2.repeatCount = 1; + animation2.removedOnCompletion = NO; + animation2.fillMode = kCAFillModeForwards; + + CAKeyframeAnimation *animation3 = [CAKeyframeAnimation animation]; + animation3.duration = 0.8; + animation3.beginTime = 2.6; + animation3.keyPath = @"transform.scale"; + animation3.values = @[@3,@2.5,@2,@1.5,@1]; + animation3.repeatCount = 1; + + CAKeyframeAnimation *animation4 = [CAKeyframeAnimation animation]; + animation4.duration = 0.8; + animation4.beginTime = 2.6; + animation4.keyPath = @"position"; + animation4.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut]; + animation4.values = @[[NSValue valueWithCGPoint:CGPointMake(centerPoint.x ,centerPoint.y)],[NSValue valueWithCGPoint:endPoint]]; + animation4.repeatCount = 1; + + CAAnimationGroup *group = [CAAnimationGroup animation]; + group.duration = 3.2; + group.animations = @[animation0,animation1,animation2, animation3,animation4]; + group.repeatCount = 1; + group.removedOnCompletion = NO; + group.fillMode = kCAFillModeForwards; + + return group; +} + +- (void)anitowardsionDidAccomplish:(NetIndicateRegard *)presentIndicateRegard{ + [presentIndicateRegard removeFromSuperview]; + presentIndicateRegard.image = nil; + presentIndicateRegard.hidden = YES; + [self.presentVisibleGarment removeObject:presentIndicateRegard]; + [self.presentReuseGarment addObject:presentIndicateRegard]; +} + +#pragma mark - 全服礼物 飘屏 +- (void)achieveBroadcastPresent:(AttachmentMatrix *)attachment { + if ([self isInYoudCompetition]) {return;} + YUMIChamberPresentBroadCastMatrix *giftNotifyInfo = [YUMIChamberPresentBroadCastMatrix mtowardsrixAboutJSON:attachment.data]; + + if (giftNotifyInfo.ceremonyGift) { + return; + } + if (self.presentPingencourageFormation.count == 0) { + [self producePresentBroadcastRegardBrectifyness:giftNotifyInfo]; + } + [self.presentPingencourageFormation addObject:giftNotifyInfo]; +} + +- (void)producePresentBroadcastRegardBrectifyness:(YUMIChamberPresentBroadCastMatrix *)presentMatrix { + YUMIChamberPresentPingbackRegard * view = [[YUMIChamberPresentPingbackRegard alloc] init]; + view.delegate = self; + view.frame = CGRectMake(KScreenWidth, 35 + statusbarHeight, KScreenWidth, 150); + view.pingencourageMatrix = presentMatrix; + [self.highProttypeRegard addSubview:view]; + [self institutePresentBraodcastRegardBrectifyness:view notifyStaySecond:presentMatrix.notifyStaySecond]; +} + +- (void)institutePresentBraodcastRegardBrectifyness:(YUMIChamberPresentPingbackRegard *)view notifyStaySecond:(int)notifyStaySecond{ + CGFloat startTime = notifyStaySecond > 0 ? notifyStaySecond : 3.0; + POPSpringAnimation *springAnimation = [POPSpringAnimation animationWithPropertyNamed:kPOPViewCenter]; + springAnimation.springSpeed = 12; + springAnimation.springBounciness = 10.f; + springAnimation.fromValue = [NSValue valueWithCGPoint:view.center]; + springAnimation.toValue = [NSValue valueWithCGPoint:CGPointMake(0 + view.frame.size.width / 2, view.center.y)]; + [springAnimation setCompletionBlock:^(POPAnimation *anim, BOOL finished) { + if (finished) { + [self transltowardsePresentBroadcastOptowardssideBrectifyness:view stayTime:startTime]; + } + }]; + [view pop_addAnimation:springAnimation forKey:@"spingOutAnimation"]; +} + +- (void)transltowardsePresentBroadcastOptowardssideBrectifyness:(YUMIChamberPresentPingbackRegard *)view stayTime:(CGFloat)stayTime{ + POPBasicAnimation *moveAnimation = [POPBasicAnimation animationWithPropertyNamed:kPOPViewCenter]; + moveAnimation.fromValue = [NSValue valueWithCGPoint:view.center]; + moveAnimation.toValue = [NSValue valueWithCGPoint:CGPointMake(-KScreenWidth/2, view.center.y)]; + moveAnimation.beginTime = CACurrentMediaTime() + stayTime; + moveAnimation.duration = 0.5; + moveAnimation.repeatCount = 1; + moveAnimation.removedOnCompletion = YES; + @kWeakify(self); + [moveAnimation setCompletionBlock:^(POPAnimation *anim, BOOL finished) { + @kStrongify(self); + if (finished) { + [view removeFromSuperview]; + if (self.presentPingencourageFormation.count > 0) { + [self.presentPingencourageFormation removeObjectAtIndex:0]; + } + + if (self.presentPingencourageFormation.count > 0) { + [self producePresentBroadcastRegardBrectifyness:self.presentPingencourageFormation.firstObject]; + } + } + }]; + + [view pop_addAnimation:moveAnimation forKey:@"moveOutAnimation"]; +} + +#pragma mark - FBCChamberPresentPingbackRegardRepresendtation +- (void)yUMIChamberPresentBroadcastRegard:(YUMIChamberPresentPingbackRegard *)view enterRoom:(NSString *)roomUid { + if (roomUid.length > 0 && self.delegate.acquireChamberAbstract.uid != roomUid.integerValue) { + [self.delegate exitRoom]; + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.7 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + [YUMIChamberRegardGovernancer unfoildChamber:roomUid viewController:[XCCurrentVCStackExecutive shareManager].getCurrentVC]; + }); + } +} + +- (void)yUMIChamberPresentBroadcastRegard:(YUMIChamberPresentPingbackRegard *)view didClickClose:(YUMIChamberPresentBroadCastMatrix *)pingencourageMatrix { + [view removeFromSuperview]; + [view pop_removeAllAnimations]; + if ([self.presentPingencourageFormation containsObject:pingencourageMatrix]) { + [self.presentPingencourageFormation removeObject:pingencourageMatrix]; + } + if (self.presentPingencourageFormation.count > 0) { + [self producePresentBroadcastRegardBrectifyness:self.presentPingencourageFormation.firstObject]; + } +} + +#pragma mark - 福袋中 四级奖品 +- (void)achieveInthecaseoftuntowardsePresentConsiderableCapture:(AttachmentMatrix *)attachment { + if ([self isInYoudCompetition]) {return;} + if (attachment.second == Custom_Message_Sub_Room_Gift_LuckBag || attachment.second == Custom_Message_Sub_Room_Gift_LuckBag_Server) { + YUMIPresentBigCaptureMatrix * captureMatrix = [YUMIPresentBigCaptureMatrix mtowardsrixAboutImpactbasket:attachment.data]; + captureMatrix.isInRoomVisiable = attachment.second == Custom_Message_Sub_Room_Gift_LuckBag; + [self.bigCapturePresentFormation addObject:captureMatrix]; + if (self.fortunatecaptureIntratemper == nil) { + [self inititowardseShankConsiderableCapturePresentIntrtowardsemper]; + } + } +} + +- (void)inititowardseShankConsiderableCapturePresentIntrtowardsemper { + NSTimeInterval period = 1.0; + dispatch_queue_t queue = dispatch_get_global_queue(0, 0); + dispatch_source_t _timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, queue); + dispatch_source_set_timer(_timer, dispatch_walltime(NULL, 0), period * NSEC_PER_SEC, 0); + @kWeakify(self); + dispatch_source_set_event_handler(_timer, ^{ + @kStrongify(self) + if (self.bigCapturePresentFormation.count > 0) { + dispatch_sync(dispatch_get_main_queue(), ^{ + if (self.isFortunatePresentBrectifyness) { + return; + } + YUMIPresentBigCaptureMatrix * captureMatrix = [self.bigCapturePresentFormation firstObject]; + [self produceConsiderableCaptureBrectifyness:captureMatrix]; + [self.bigCapturePresentFormation removeObject:captureMatrix]; + }); + }else { + dispatch_source_cancel(_timer); + self.fortunatecaptureIntratemper = nil; + } + }); + dispatch_resume(_timer); + self.fortunatecaptureIntratemper = _timer; +} + +- (void)produceConsiderableCaptureBrectifyness:(YUMIPresentBigCaptureMatrix *)captureMatrix { + self.isFortunatePresentBrectifyness = YES; + YUMIChamberFortunateBigCaptureRegard * fortunatePresentImpressionRegard = [[YUMIChamberFortunateBigCaptureRegard alloc] init]; + fortunatePresentImpressionRegard.delegate = self; + [self.highProttypeRegard addSubview:fortunatePresentImpressionRegard]; + [fortunatePresentImpressionRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self); + make.top.mas_equalTo(self).offset(kNavigationHeight + 15); + make.size.mas_equalTo(CGSizeMake(375, 60)); + }]; + fortunatePresentImpressionRegard.giftInfo = captureMatrix; + [self performSelector:@selector(InthecaseoftuntowardseConsiderableCaptureBrectifynessAccomplish:) withObject:fortunatePresentImpressionRegard afterDelay:6]; +} + +- (void)InthecaseoftuntowardseConsiderableCaptureBrectifynessAccomplish:(YUMIChamberFortunateBigCaptureRegard *)player { + [player removeFromSuperview]; + player.hidden = YES; + self.isFortunatePresentBrectifyness = NO; +} + +#pragma mark - FBCChamberLuckyBigPrizeRegardRepresendtation +- (void)yUMIChamberInthecaseoftuntowardseConsiderableCaptureRegard:(YUMIChamberFortunateBigCaptureRegard *)view luckyGiftInfo:(YUMIPresentBigCaptureMatrix *)giftInfo { + if (!giftInfo.isInRoomVisiable && giftInfo.roomUid.length > 0 && giftInfo.roomUid.integerValue != self.delegate.acquireChamberAbstract.uid) { + [self.delegate exitRoom]; + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + [YUMIChamberRegardGovernancer unfoildChamber:giftInfo.roomUid viewController:[XCCurrentVCStackExecutive shareManager].getCurrentVC]; + }); + } +} + +#pragma mark - 普通礼物 +- (void)achievePresent:(PresentAchieveAbstractMatrix *)receiveInfo { + if ([self isInYoudCompetition]) {return;} + + ChamberAbstractMatrix * roomInfor = [self.delegate acquireChamberAbstract]; + if (receiveInfo.isLuckyBagGift) { + if (receiveInfo.isShowAnimation) { + + if (receiveInfo.displayGift.count > 0) { + [receiveInfo.displayGift enumerateObjectsUsingBlock:^(PresentAbstractMatrix * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if (obj.otherViewType == PresentOtherRegardGenreMp4 && obj.viewUrl && obj.viewUrl.length > 0 && roomInfor.hasAnimationEffect) { + PresentAchieveAbstractMatrix * model = [[PresentAchieveAbstractMatrix alloc] init]; + model.viewUrl = obj.viewUrl; + [self.presentImpressionFormation addObject:model]; + } else if (obj.hasVggPic && roomInfor.hasAnimationEffect) { + PresentAchieveAbstractMatrix * model = [[PresentAchieveAbstractMatrix alloc] init]; + model.vggUrl = obj.vggUrl; + [self.presentImpressionFormation addObject:model]; + } + }]; + } + } else { + + } + } else { + PresentAbstractMatrix *giftInfo = receiveInfo.gift != nil ? receiveInfo.gift : receiveInfo.giftInfo; + if (!giftInfo) { + giftInfo = [[YUMIPresentStorage partowardsiciptowardsionStorage] prohibiticoveryPresentAbstract: receiveInfo.giftId]; + } + + if (giftInfo) { + receiveInfo.gift = giftInfo; + } + if (receiveInfo.targetUsers.count > 0 && receiveInfo.targetUids.count <= 0) { + receiveInfo.targetUids = [receiveInfo.targetUsers valueForKeyPath:@"uid"]; + } + + NSInteger giftTotal = 0; + if (receiveInfo.targetUids.count > 0) { + giftTotal = receiveInfo.giftNum * giftInfo.goldPrice * receiveInfo.targetUids.count; + } else { + giftTotal = receiveInfo.giftNum * giftInfo.goldPrice; + } + + if (giftInfo.otherViewType == PresentOtherRegardGenreMp4 && giftInfo.viewUrl.length > 0 && roomInfor.hasAnimationEffect) { + receiveInfo.viewUrl = giftInfo.viewUrl; + [self.presentImpressionFormation addObject:receiveInfo]; + } else if (giftInfo.hasVggPic && giftInfo.vggUrl.length > 0 && roomInfor.hasAnimationEffect) { + receiveInfo.vggUrl = giftInfo.vggUrl; + [self.presentImpressionFormation addObject:receiveInfo]; + } + } + + if (self.presentImpressionIntratemper == nil && self.presentImpressionFormation.count > 0) { + [self inititowardseShankPresentImpressionIntrtowardsemper]; + } +} + +- (void)inititowardseShankPresentImpressionIntrtowardsemper { + NSTimeInterval period = 6.0; + dispatch_queue_t queue = dispatch_get_global_queue(0, 0); + dispatch_source_t _timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, queue); + dispatch_source_set_timer(_timer, dispatch_walltime(NULL, 0), period * NSEC_PER_SEC, 0); + @kWeakify(self); + dispatch_source_set_event_handler(_timer, ^{ + @kStrongify(self) + if (self.presentImpressionFormation.count > 0) { + dispatch_sync(dispatch_get_main_queue(), ^{ + PresentAchieveAbstractMatrix * achieveMatrix = [self.presentImpressionFormation firstObject]; + [self producePresentOriflammeRegardBrectifyness:achieveMatrix]; + [self.presentImpressionFormation removeObject:achieveMatrix]; + }); + }else { + dispatch_source_cancel(_timer); + self.presentImpressionIntratemper = nil; + } + }); + dispatch_resume(_timer); + self.presentImpressionIntratemper = _timer; +} + +- (void)producePresentOriflammeRegardBrectifyness:(PresentAchieveAbstractMatrix *)receiveInfo { + PresentAbstractMatrix *giftInfo = receiveInfo.gift != nil ? receiveInfo.gift : receiveInfo.giftInfo; + if (!giftInfo) { + giftInfo = [[YUMIPresentStorage partowardsiciptowardsionStorage] prohibiticoveryPresentAbstract: receiveInfo.giftId]; + } + NSInteger giftTotal = 0; + if (receiveInfo.targetUids.count > 0) { + giftTotal = receiveInfo.giftNum * giftInfo.goldPrice * receiveInfo.targetUids.count; + } else { + giftTotal = receiveInfo.giftNum * giftInfo.goldPrice; + } + if (giftTotal >= 520) { + __block YUMIChamberPresentOriflammeRegard *view = [self.oriflammeDequePond anyObject]; + if (view == nil) { + view = [[YUMIChamberPresentOriflammeRegard alloc] init]; + [self.oriflammeVisiablePond addObject:view]; + }else{ + [self.oriflammeDequePond removeObject:view]; + } + [self transltowardsePresentOriflammeRegard:view]; + [view prohibitipositionPresentOriflamme:receiveInfo users:[self manufactureOriflammeConsumers]]; + view.frame = CGRectMake(KScreenWidth, 100, KScreenWidth, 153); + [self.lowPrototypeRegard addSubview:view]; + POPSpringAnimation *springAnimation = [POPSpringAnimation animationWithPropertyNamed:kPOPViewCenter]; + springAnimation.springSpeed = 12; + springAnimation.springBounciness = 10.f; + springAnimation.fromValue = [NSValue valueWithCGPoint:view.center]; + springAnimation.toValue = [NSValue valueWithCGPoint:CGPointMake(view.frame.size.width / 2, view.center.y)]; + @kWeakify(self); + [springAnimation setCompletionBlock:^(POPAnimation *anim, BOOL finished) { + @kStrongify(self); + if (finished) { + [self transltowardseBrectifyness:view]; + } + }]; + + [springAnimation setAnimationDidStartBlock:^(POPAnimation *anim) { + @kStrongify(self); + + if (giftInfo.otherViewType == PresentOtherRegardGenreMp4 && giftInfo.viewUrl.length > 0 && [self.delegate acquireChamberAbstract].hasAnimationEffect) { + [self largePresentSapexAutomobileImpression:giftInfo.goldPrice]; + [self prohibitiportPresentImpressionAboutVepporWeebsite:giftInfo.viewUrl]; + } else if (giftInfo.hasVggPic && giftInfo.vggUrl.length > 0 && [self.delegate acquireChamberAbstract].hasAnimationEffect) { + [self largePresentSapexAutomobileImpression:giftInfo.goldPrice]; + [self prohibitiportPresentImpression:giftInfo.vggUrl]; + } + }]; + + [view pop_addAnimation:springAnimation forKey:@"spingOutAnimation"]; + } else { + if (giftInfo.otherViewType == PresentOtherRegardGenreMp4 && receiveInfo.viewUrl.length > 0) { + [self largePresentSapexAutomobileImpression:giftInfo.goldPrice]; + [self prohibitiportPresentImpressionAboutVepporWeebsite:receiveInfo.viewUrl]; + } else if (receiveInfo.vggUrl.length > 0) { + [self largePresentSapexAutomobileImpression:giftInfo.goldPrice]; + [self prohibitiportPresentImpression:receiveInfo.vggUrl]; + } + } +} + +- (void)largePresentSapexAutomobileImpression:(double)goldPrice { + if ([ClientDisposition partowardsiciptowardsionDisposition].dispositionAbstract.hideCarEffectGiftPrice <= goldPrice) { + self.isBignessPresentAnimating = YES; + [self.automobileImpressionRegard stopAnimation]; + [self.automobileVepporImpressionRegard stopHWDMP4]; + [self.automobileImpressionFormation removeAllObjects]; + } +} + +- (void)transltowardseBrectifyness:(YUMIChamberPresentOriflammeRegard *)view{ + POPBasicAnimation *moveAnimation = [POPBasicAnimation animationWithPropertyNamed:kPOPViewCenter]; + moveAnimation.fromValue = [NSValue valueWithCGPoint:view.center]; + moveAnimation.toValue = [NSValue valueWithCGPoint:CGPointMake(view.center.x - KScreenWidth, view.center.y)]; + moveAnimation.beginTime = CACurrentMediaTime() +5; + moveAnimation.duration = 0.5; + moveAnimation.repeatCount = 1; + moveAnimation.removedOnCompletion = YES; + [view pop_addAnimation:moveAnimation forKey:@"moveOutAnimation"]; +} + +- (NSArray *)manufactureOriflammeConsumers { + NSArray * microArray = [self.delegate acquireMiecreoscoopeInthecaseofmtowardsion].allValues; + NSMutableArray * array = [NSMutableArray array]; + [microArray enumerateObjectsUsingBlock:^(MiecreoscoopeMHTueueMatrix * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + YUMIPresentOriflammeConsumerAbstractMatrix * bannserUser = [[YUMIPresentOriflammeConsumerAbstractMatrix alloc] init]; + bannserUser.position = obj.microState.position; + bannserUser.uid = obj.userInfo.uid; + [array addObject:bannserUser]; + }]; + return array; +} + + +- (void)prohibitiportPresentImpression:(NSString *)vggUrl { + if ([self isInYoudCompetition]) {return;} + self.presentImpressionRegard.hidden = NO; + if (self.presentImpressionRegard.superview == nil) { + [self.middlePrototypeRegard addSubview:self.presentImpressionRegard]; + [self.presentImpressionRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.center.mas_equalTo(self.middlePrototypeRegard); + make.width.mas_equalTo(KScreenWidth); + make.height.mas_equalTo(KScreenHeight); + }]; + } + [self.anatomiser parseWithURL:[NSURL URLWithString:vggUrl] completionBlock:^(SVGAVideoEntity * _Nullable videoItem) { + if (videoItem != nil) { + CGFloat width = videoItem.videoSize.width; + CGFloat height = videoItem.videoSize.height; + if (width > height) { + self.presentImpressionRegard.contentMode = UIViewContentModeScaleAspectFit; + } else { + CGFloat resizeH = KScreenWidth * height / width; + if (resizeH > KScreenHeight) { + self.presentImpressionRegard.contentMode = UIViewContentModeScaleAspectFill; + } else { + self.presentImpressionRegard.contentMode = UIViewContentModeScaleAspectFit; + } + } + self.presentImpressionRegard.alpha = 1; + self.presentImpressionRegard.loops = 1; + self.presentImpressionRegard.clearsAfterStop = YES; + self.presentImpressionRegard.videoItem = videoItem; + [self.presentImpressionRegard startAnimation]; + } + } failureBlock:^(NSError * _Nullable error) { + + }]; +} + +- (void)prohibitiportPresentImpressionAboutVepporWeebsite:(NSString *)vapUrl { + self.vepporPresentImpressionRegard.hidden = NO; + if (self.vepporPresentImpressionRegard.superview == nil) { + [self.middlePrototypeRegard addSubview:self.vepporPresentImpressionRegard]; + [self.vepporPresentImpressionRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.center.mas_equalTo(self.middlePrototypeRegard); + make.width.mas_equalTo(KScreenWidth); + make.height.mas_equalTo(KScreenHeight); + }]; + } + [self.vepporAnatomiser parseWithURL:vapUrl completionBlock:^(NSString * _Nullable videoUrl) { + if (videoUrl.length) { + [self.vepporPresentImpressionRegard setMute:YES]; + [self.vepporPresentImpressionRegard playHWDMP4:videoUrl repeatCount:1 delegate:self]; + } + } failureBlock:^(NSError * _Nullable error) { + + }]; +} + +- (void)prohibitiportInthecaseoftuntowardsePresentImpression:(NSURL *)vggUrl { + if ([self isInYoudCompetition]) {return;} + self.fortunatePresentImpressionRegard.hidden = NO; + if (self.fortunatePresentImpressionRegard.superview == nil) { + [self.middlePrototypeRegard addSubview:self.fortunatePresentImpressionRegard]; + [self.fortunatePresentImpressionRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.center.mas_equalTo(self.middlePrototypeRegard); + make.width.mas_equalTo(KScreenWidth); + make.height.mas_equalTo(KScreenHeight); + }]; + } + [self.anatomiser parseWithURL:vggUrl completionBlock:^(SVGAVideoEntity * _Nullable videoItem) { + if (videoItem != nil) { + CGFloat width = videoItem.videoSize.width; + CGFloat height = videoItem.videoSize.height; + if (width > height) { + self.fortunatePresentImpressionRegard.contentMode = UIViewContentModeScaleAspectFit; + } else { + CGFloat resizeH = KScreenWidth * height / width; + if (resizeH > KScreenHeight) { + self.fortunatePresentImpressionRegard.contentMode = UIViewContentModeScaleAspectFill; + } else { + self.fortunatePresentImpressionRegard.contentMode = UIViewContentModeScaleAspectFit; + } + } + self.fortunatePresentImpressionRegard.alpha = 1; + self.fortunatePresentImpressionRegard.loops = 1; + self.fortunatePresentImpressionRegard.clearsAfterStop = YES; + self.fortunatePresentImpressionRegard.videoItem = videoItem; + [self.fortunatePresentImpressionRegard startAnimation]; + } + } failureBlock:^(NSError * _Nullable error) { + + }]; +} + +- (void)prohibitiportInthecaseoftuntowardsePresentImpressionAboutVepporWeebsite:(NSString *)vapUrl { + self.fortunateVepporPresentImpressionRegard.hidden = NO; + if (self.fortunateVepporPresentImpressionRegard.superview == nil) { + [self.middlePrototypeRegard addSubview:self.fortunateVepporPresentImpressionRegard]; + [self.fortunateVepporPresentImpressionRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.center.mas_equalTo(self.middlePrototypeRegard); + make.width.mas_equalTo(KScreenWidth); + make.height.mas_equalTo(KScreenHeight); + }]; + } + [self.vepporAnatomiser parseWithURL:vapUrl completionBlock:^(NSString * _Nullable videoUrl) { + if (videoUrl.length) { + [self.fortunateVepporPresentImpressionRegard setMute:YES]; + [self.fortunateVepporPresentImpressionRegard playHWDMP4:videoUrl repeatCount:1 delegate:self]; + } + } failureBlock:^(NSError * _Nullable error) { + + }]; +} + + +- (void)transltowardsePresentOriflammeRegard:(YUMIChamberPresentOriflammeRegard *)view { + [view removeFromSuperview]; + [view resetData]; + [self.oriflammeVisiablePond removeObject:view]; + [self.oriflammeDequePond addObject:view]; + + [self.presentImpressionRegard stopAnimation]; + self.presentImpressionRegard.hidden = YES; +} +#pragma mark - +- (void)svgaPlayerDidFinishedAnimation:(SVGAPlayer *)player { + if (player == self.presentImpressionRegard) { + self.presentImpressionRegard.hidden = YES; + if (self.isBignessPresentAnimating) { + self.isBignessPresentAnimating = NO; + } + } else if (player == self.fortunatePresentImpressionRegard) { + self.fortunatePresentImpressionRegard.hidden = YES; + } else if(player == self.automobileImpressionRegard) { + self.automobileImpressionRegard.hidden = YES; + [self.automobileImpressionRegard removeFromSuperview]; + if (self.automobileImpressionFormation.count > 0) { + [self.automobileImpressionFormation removeObjectAtIndex:0]; + } + if (self.automobileImpressionFormation.count > 0) { + [self prohibitiportAutomobileImpression:self.automobileImpressionFormation.firstObject]; + } + } else if(player == self.importImpressionRegard) { + self.importImpressionRegard.hidden = YES; + [self.importImpressionRegard removeFromSuperview]; + if (self.importImpressionFormation.count > 0) { + [self.importImpressionFormation removeObjectAtIndex:0]; + } + if (self.importImpressionFormation.count > 0) { + NSString * title = [self.importImpressionFormation.firstObject objectForKey:@"title"]; + NSInteger experLevelSeq = [(NSString *)[self.importImpressionFormation.firstObject objectForKey:@"experLevelSeq"] integerValue]; + NSString *effectPath = [self.importImpressionFormation.firstObject objectForKey:@"effectPath"]; + [self prohibitiportConsumerImportChamberBrectifyness:title experLevelSeq:experLevelSeq effectPath:effectPath]; + } + } +} + +#pragma mark - 心愿礼物 +- (void)achieveChamberSequencirePresentCelebrtowardse:(AttachmentMatrix *)attachment { + CGFloat x = random() % (int)(KScreenWidth - 200); + CGFloat y= random() % 40 + kNavigationHeight; + if (self.sequencirePresentImpressionRegard.superview == nil) { + [self.lowPrototypeRegard addSubview:self.sequencirePresentImpressionRegard]; + + [self.sequencirePresentImpressionRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(x); + make.top.mas_equalTo(y); + make.width.mas_equalTo(200); + make.height.mas_equalTo(167); + }]; + } + + + [self.sequencirePresentImpressionRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(x); + make.top.mas_equalTo(y); + }]; + NSString * anatomiser1Name = [NSString stringWithFormat:@"%@/room_wish_gift_sendCelebrate.svga", API_Image_URL]; + [self.anatomiser parseWithURL:[NSURL URLWithString:anatomiser1Name] completionBlock:^(SVGAVideoEntity * _Nonnull videoItem) { + self.sequencirePresentImpressionRegard.alpha = 1; + self.sequencirePresentImpressionRegard.loops = 1; + self.sequencirePresentImpressionRegard.clearsAfterStop = YES; + self.sequencirePresentImpressionRegard.videoItem = videoItem; + [self.sequencirePresentImpressionRegard startAnimation]; + } failureBlock:^(NSError * _Nonnull error) { + + }]; +} + +#pragma mark - HWDMP4PlayDelegate +- (BOOL)shouldStartPlayMP4:(VAPView *)container config:(QGVAPConfigModel *)config { + CGFloat width = config.info.size.width; + CGFloat height = config.info.size.height; + + container.center = self.center; + [container mas_updateConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(KScreenWidth); + make.height.mas_equalTo(KScreenWidth * height / width); + }]; + return YES; +} + +- (void)viewDidFinishPlayMP4:(NSInteger)totalFrameCount view:(VAPView *)container { + dispatch_async(dispatch_get_main_queue(), ^{ + container.hidden = YES; + if (container == self.automobileVepporImpressionRegard) { + [self.automobileVepporImpressionRegard removeFromSuperview]; + self.automobileVepporImpressionRegard = nil; + if (self.automobileImpressionFormation.count > 0) { + [self.automobileImpressionFormation removeObjectAtIndex:0]; + } + if (self.automobileImpressionFormation.count > 0) { + [self prohibitiportAutomobileImpression:self.automobileImpressionFormation.firstObject]; + } + } else if (container == self.vepporPresentImpressionRegard) { + if (self.isBignessPresentAnimating) { + self.isBignessPresentAnimating = NO; + } + [self.vepporPresentImpressionRegard removeFromSuperview]; + self.vepporPresentImpressionRegard = nil; + } else if(container == self.fortunateVepporPresentImpressionRegard) { + [self.fortunateVepporPresentImpressionRegard removeFromSuperview]; + self.fortunateVepporPresentImpressionRegard = nil; + } + }); +} + +- (void)viewDidStopPlayMP4:(NSInteger)lastFrameIndex view:(VAPView *)container { + dispatch_async(dispatch_get_main_queue(), ^{ + container.hidden = YES; + if (container == self.automobileVepporImpressionRegard) { + [self.automobileVepporImpressionRegard removeFromSuperview]; + self.automobileVepporImpressionRegard = nil; + if (self.automobileImpressionFormation.count > 0) { + [self.automobileImpressionFormation removeObjectAtIndex:0]; + } + if (self.automobileImpressionFormation.count > 0) { + [self prohibitiportAutomobileImpression:self.automobileImpressionFormation.firstObject]; + } + } else if (container == self.vepporPresentImpressionRegard) { + [self.vepporPresentImpressionRegard removeFromSuperview]; + self.vepporPresentImpressionRegard = nil; + } else if(container == self.fortunateVepporPresentImpressionRegard) { + [self.fortunateVepporPresentImpressionRegard removeFromSuperview]; + self.fortunateVepporPresentImpressionRegard = nil; + } else if(container == self.sequencirePresentImpressionRegard) { + [self.sequencirePresentImpressionRegard removeFromSuperview]; + self.sequencirePresentImpressionRegard = nil; + } + }); +} + +#pragma mark - Getters And Setters +- (SVGAImageView *)presentImpressionRegard { + if (!_presentImpressionRegard) { + _presentImpressionRegard = [[SVGAImageView alloc]init]; + _presentImpressionRegard.backgroundColor = [UIColor colorWithWhite:0 alpha:0.5]; + _presentImpressionRegard.userInteractionEnabled = NO; + _presentImpressionRegard.delegate = self; + _presentImpressionRegard.hidden = YES; + } + return _presentImpressionRegard; +} + +- (VAPView *)vepporPresentImpressionRegard { + if (!_vepporPresentImpressionRegard) { + _vepporPresentImpressionRegard = [[VAPView alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth, KScreenHeight)]; + _vepporPresentImpressionRegard.backgroundColor = [UIColor colorWithWhite:0 alpha:0.5]; + _vepporPresentImpressionRegard.contentMode = UIViewContentModeScaleAspectFill; + _vepporPresentImpressionRegard.hidden = YES; + } + return _vepporPresentImpressionRegard; +} + +- (SVGAImageView *)fortunatePresentImpressionRegard { + if (!_fortunatePresentImpressionRegard) { + _fortunatePresentImpressionRegard = [[SVGAImageView alloc]init]; + _fortunatePresentImpressionRegard.backgroundColor = [UIColor colorWithWhite:0 alpha:0.5]; + _fortunatePresentImpressionRegard.userInteractionEnabled = NO; + _fortunatePresentImpressionRegard.delegate = self; + _fortunatePresentImpressionRegard.hidden = YES; + } + return _fortunatePresentImpressionRegard; +} + +- (VAPView *)fortunateVepporPresentImpressionRegard { + if (!_fortunateVepporPresentImpressionRegard) { + _fortunateVepporPresentImpressionRegard = [[VAPView alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth, KScreenHeight)]; + _fortunateVepporPresentImpressionRegard.backgroundColor = [UIColor colorWithWhite:0 alpha:0.5]; + _fortunateVepporPresentImpressionRegard.contentMode = UIViewContentModeScaleAspectFill; + _fortunateVepporPresentImpressionRegard.hidden = YES; + } + return _fortunateVepporPresentImpressionRegard; +} + +- (VAPView *)automobileVepporImpressionRegard { + if (!_automobileVepporImpressionRegard) { + _automobileVepporImpressionRegard = [[VAPView alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth, KScreenHeight)]; + _automobileVepporImpressionRegard.backgroundColor = [UIColor colorWithWhite:0 alpha:0.3]; + _automobileVepporImpressionRegard.contentMode = UIViewContentModeScaleAspectFill; + _automobileVepporImpressionRegard.hidden = YES; + } + return _automobileVepporImpressionRegard; +} + +- (YUMIChamberPresentBrightnessAnatomiser *)vepporAnatomiser { + if (!_vepporAnatomiser) { + _vepporAnatomiser = [[YUMIChamberPresentBrightnessAnatomiser alloc] init]; + } + return _vepporAnatomiser; +} + +- (SVGAParser *)anatomiser { + if (!_anatomiser) { + _anatomiser = [[SVGAParser alloc]init]; + } + return _anatomiser; +} + +- (NSMutableArray *)presentImpressionFormation { + if (!_presentImpressionFormation) { + _presentImpressionFormation = [NSMutableArray array]; + } + return _presentImpressionFormation; +} + +- (NSMutableArray *)bigCapturePresentFormation { + if (!_bigCapturePresentFormation) { + _bigCapturePresentFormation = [NSMutableArray array]; + } + return _bigCapturePresentFormation; +} + +- (NSMutableArray *)presentPingencourageFormation { + if (!_presentPingencourageFormation) { + _presentPingencourageFormation = [NSMutableArray array]; + } + return _presentPingencourageFormation; +} + +- (NSMutableSet *)oriflammeDequePond { + if (!_oriflammeDequePond) { + _oriflammeDequePond = [NSMutableSet set]; + } + return _oriflammeDequePond; +} +- (NSMutableSet *)oriflammeVisiablePond { + if (!_oriflammeVisiablePond) { + _oriflammeVisiablePond = [NSMutableSet set]; + } + return _oriflammeVisiablePond; +} + +- (YUMIChamberBrightnessHitRegard *)lowPrototypeRegard { + if (!_lowPrototypeRegard) { + _lowPrototypeRegard = [[YUMIChamberBrightnessHitRegard alloc] init]; + _lowPrototypeRegard.backgroundColor = [UIColor clearColor]; + _lowPrototypeRegard.userInteractionEnabled = YES; + } + return _lowPrototypeRegard; +} + +- (YUMIChamberBrightnessHitRegard *)middlePrototypeRegard { + if (!_middlePrototypeRegard) { + _middlePrototypeRegard = [[YUMIChamberBrightnessHitRegard alloc] init]; + _middlePrototypeRegard.backgroundColor = [UIColor clearColor]; + _middlePrototypeRegard.userInteractionEnabled = YES; + } + return _middlePrototypeRegard; +} + +- (YUMIChamberBrightnessHitRegard *)highProttypeRegard { + if (!_highProttypeRegard) { + _highProttypeRegard = [[YUMIChamberBrightnessHitRegard alloc] init]; + _highProttypeRegard.backgroundColor = [UIColor clearColor]; + _highProttypeRegard.userInteractionEnabled = YES; + } + return _highProttypeRegard; +} + +- (NSMutableArray *)presentFormation { + if (!_presentFormation) { + _presentFormation = [NSMutableArray array]; + } + return _presentFormation; +} + +- (NSMutableSet *)presentReuseGarment { + if (!_presentReuseGarment) { + _presentReuseGarment = [NSMutableSet set]; + } + return _presentReuseGarment; +} + +- (NSMutableSet *)presentVisibleGarment { + if (!_presentVisibleGarment) { + _presentVisibleGarment = [NSMutableSet set]; + } + return _presentVisibleGarment; +} + +- (NSMutableArray *)confectioneryTimberpresentFormation { + if (!_confectioneryTimberpresentFormation) { + _confectioneryTimberpresentFormation = [NSMutableArray array]; + } + return _confectioneryTimberpresentFormation; +} + +- (NSMutableArray *)compoundPresentFormation { + if (!_compoundPresentFormation) { + _compoundPresentFormation = [NSMutableArray array]; + } + return _compoundPresentFormation; +} + +- (NSMutableArray *)magnificentPrototypeUpwardsFormation { + if (!_magnificentPrototypeUpwardsFormation) { + _magnificentPrototypeUpwardsFormation = [NSMutableArray array]; + } + return _magnificentPrototypeUpwardsFormation; +} + +- (NSMutableArray *)automobileImpressionFormation { + if (_automobileImpressionFormation == nil) { + _automobileImpressionFormation = [NSMutableArray array]; + } + return _automobileImpressionFormation; +} + +- (SVGAImageView *)automobileImpressionRegard { + if (_automobileImpressionRegard == nil) { + _automobileImpressionRegard = [[SVGAImageView alloc]init]; + _automobileImpressionRegard.delegate = self; + _automobileImpressionRegard.contentMode = UIViewContentModeScaleAspectFit; + _automobileImpressionRegard.frame = CGRectMake(0, 0, KScreenWidth, KScreenHeight); + _automobileImpressionRegard.backgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:0.3]; + _automobileImpressionRegard.alpha = 0; + _automobileImpressionRegard.userInteractionEnabled = NO; + } + return _automobileImpressionRegard; +} + +- (NSMutableArray *)importImpressionFormation { + if (_importImpressionFormation == nil) { + _importImpressionFormation = [NSMutableArray array]; + } + return _importImpressionFormation; +} + +- (SVGAImageView *)importImpressionRegard { + if (_importImpressionRegard == nil) { + _importImpressionRegard = [[SVGAImageView alloc]init]; + _importImpressionRegard.delegate = self; + _importImpressionRegard.contentMode = UIViewContentModeScaleAspectFit; + _importImpressionRegard.frame = CGRectMake(0, 0, KScreenWidth, 40); + _importImpressionRegard.backgroundColor = [UIColor clearColor]; + _importImpressionRegard.alpha = 0; + _importImpressionRegard.userInteractionEnabled = NO; + } + return _importImpressionRegard; +} + + +- (SVGAImageView *)engagementImpressionRegard { + if (_engagementImpressionRegard == nil) { + _engagementImpressionRegard = [[SVGAImageView alloc]init]; + _engagementImpressionRegard.delegate = self; + _engagementImpressionRegard.contentMode = UIViewContentModeScaleAspectFit; + _engagementImpressionRegard.frame = CGRectMake(0, 0, KScreenWidth, KScreenHeight); + _engagementImpressionRegard.backgroundColor = [UIColor clearColor]; + _engagementImpressionRegard.alpha = 0; + _engagementImpressionRegard.userInteractionEnabled = NO; + } + return _engagementImpressionRegard; +} + + +- (NSMutableArray *)throughoutChamberCombatFormation { + if (!_throughoutChamberCombatFormation) { + _throughoutChamberCombatFormation = [NSMutableArray array]; + } + return _throughoutChamberCombatFormation; +} + +- (NSMutableArray *)marchingFormation { + if (!_marchingFormation) { + _marchingFormation = [NSMutableArray array]; + } + return _marchingFormation; +} + +- (NSMutableArray *)doodlePresentFormation { + if (!_doodlePresentFormation) { + _doodlePresentFormation = [NSMutableArray array]; + } + return _doodlePresentFormation; +} + + +- (SVGAImageView *)sequencirePresentImpressionRegard { + if (_sequencirePresentImpressionRegard == nil) { + _sequencirePresentImpressionRegard = [[SVGAImageView alloc]init]; + _sequencirePresentImpressionRegard.delegate = self; + _sequencirePresentImpressionRegard.contentMode = UIViewContentModeScaleAspectFit; + _sequencirePresentImpressionRegard.frame = CGRectMake(0, 0, 210, 183); + _sequencirePresentImpressionRegard.backgroundColor = [UIColor clearColor]; + _sequencirePresentImpressionRegard.alpha = 1; + _sequencirePresentImpressionRegard.userInteractionEnabled = NO; + } + return _sequencirePresentImpressionRegard; +} + +- (NSMutableArray *)satelliteKitchenFormation{ + if (!_satelliteKitchenFormation){ + _satelliteKitchenFormation = [NSMutableArray array]; + } + return _satelliteKitchenFormation; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberConfectioneryPresentRegard.h b/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberConfectioneryPresentRegard.h new file mode 100644 index 00000000..0e18cd92 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberConfectioneryPresentRegard.h @@ -0,0 +1,17 @@ +// +// YMRoomCandyGiftView.h +// YUMI +// +// Created by YUMI on 2021/12/10. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIChamberConfectioneryPresentRegard : UIView +@property (nonatomic,assign) BOOL isLargestBignessPresent; +@property (nonatomic,copy) NSDictionary * confectioneryAbstract; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberConfectioneryPresentRegard.m b/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberConfectioneryPresentRegard.m new file mode 100644 index 00000000..511a00e2 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberConfectioneryPresentRegard.m @@ -0,0 +1,157 @@ +// +// YMRoomCandyGiftView.m +// YUMI +// +// Created by YUMI on 2021/12/10. +// + +#import "YUMIChamberConfectioneryPresentRegard.h" +#import +#import +#import "YUMISVGADisporter.h" +#import "YUMIMacroUitls.h" +#import "ThemeColor+Room.h" +#import "ConfectioneryTimberConsequentMatrix.h" +#import "NSObject+MJExtension.h" +@interface YUMIChamberConfectioneryPresentRegard () +@property (strong, nonatomic) SVGAParser *anatomiser; +@property (nonatomic,strong) YUMISVGADisporter *confectioneryTimberRegard; +@property (nonatomic,strong) UIImageView *encourageIndicateRegard; +@property (nonatomic,strong) UIView *titleView; +@property (nonatomic,strong) UILabel *titleLabel; +@end + +@implementation YUMIChamberConfectioneryPresentRegard + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.confectioneryTimberRegard]; + [self addSubview:self.encourageIndicateRegard]; + [self.encourageIndicateRegard addSubview:self.titleView]; + + [self.titleView addSubview:self.titleLabel]; +} + +- (void)initChildLyRestrictions { + [self.confectioneryTimberRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.equalTo(self); + }]; + + [self.encourageIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.equalTo(self); + }]; + + [self.titleView mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(260); + make.height.mas_equalTo(28); + make.top.mas_equalTo(self.encourageIndicateRegard).offset(23); + make.centerX.mas_equalTo(self.encourageIndicateRegard); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.titleView); + make.centerY.mas_equalTo(self.titleView); + }]; +} + +- (NSAttributedString *)produceIdiosyncracy:(NSString * )text color:(UIColor *)color fontSize:(CGFloat)fonSize { + NSDictionary * attribute = @{NSFontAttributeName:[UIFont systemFontOfSize:fonSize], NSForegroundColorAttributeName:color}; + NSMutableAttributedString *attr = [[NSMutableAttributedString alloc] initWithString:text attributes:attribute]; + return attr; +} + +#pragma mark - Getters And Setters +- (void)setConfectioneryAbstract:(NSDictionary *)confectioneryAbstract { + if (confectioneryAbstract) { + ConfectioneryTimberPresentAbstractMatrix * giftInfo = [ConfectioneryTimberPresentAbstractMatrix mtowardsrixAboutImpactbasket:confectioneryAbstract]; + NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] init]; + CGFloat fontSize = self.isLargestBignessPresent ? 22 : 13; + [attribute appendAttributedString:[self produceIdiosyncracy:@"厉害了! " color:[UIColor whiteColor] fontSize:fontSize]]; + [attribute appendAttributedString:[self produceIdiosyncracy:giftInfo.nick color:[DJDKMIMOMColor colorAboutHexBWSttr:@"#FEF23E"] fontSize:fontSize]]; + [attribute appendAttributedString:[self produceIdiosyncracy:@"摘下糖果得 " color:[UIColor whiteColor] fontSize:fontSize]]; + [attribute appendAttributedString:[self produceIdiosyncracy:giftInfo.prizeName color:[DJDKMIMOMColor colorAboutHexBWSttr:@"#FEF23E"] fontSize:fontSize]]; + if (giftInfo.prizeNum > 1) { + [attribute appendAttributedString:[self produceIdiosyncracy:[NSString stringWithFormat:@" X%d", giftInfo.prizeNum] color:[UIColor whiteColor] fontSize:fontSize]]; + } + + NSMutableParagraphStyle *paragraphStyle = [NSMutableParagraphStyle new]; + paragraphStyle.lineBreakMode = NSLineBreakByCharWrapping; + paragraphStyle.lineSpacing = 4.0f; + paragraphStyle.alignment = NSTextAlignmentCenter; + paragraphStyle.baseWritingDirection = NSWritingDirectionLeftToRight; + [attribute addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, attribute.length)]; + [self.confectioneryTimberRegard setAttributedText:attribute forKey:@"tgs_copywriting"]; + if (self.isLargestBignessPresent) { + self.encourageIndicateRegard.hidden = YES; + self.confectioneryTimberRegard.hidden = NO; + @kWeakify(self); + NSString * anatomiser1Name = [NSString stringWithFormat:@"%@/candyTree_banner.svga", API_Image_URL]; + [self.anatomiser parseWithURL:[NSURL URLWithString:anatomiser1Name] completionBlock:^(SVGAVideoEntity * _Nonnull videoItem) { + @kStrongify(self); + self.confectioneryTimberRegard.loops = 1; + self.confectioneryTimberRegard.clearsAfterStop = NO; + self.confectioneryTimberRegard.videoItem = videoItem; + + [self.confectioneryTimberRegard startAnimation]; + } failureBlock:^(NSError * _Nonnull error) { + + }]; + } else { + self.encourageIndicateRegard.hidden = NO; + self.confectioneryTimberRegard.hidden = YES; + self.titleLabel.attributedText = attribute; + self.titleLabel.textAlignment = NSTextAlignmentCenter; + } + } +} + +- (YUMISVGADisporter *)confectioneryTimberRegard { + if (!_confectioneryTimberRegard) { + _confectioneryTimberRegard = [[YUMISVGADisporter alloc]init]; + _confectioneryTimberRegard.backgroundColor = [UIColor clearColor]; + _confectioneryTimberRegard.userInteractionEnabled = NO; + } + return _confectioneryTimberRegard; +} + +- (SVGAParser *)anatomiser { + if (!_anatomiser) { + _anatomiser = [[SVGAParser alloc]init]; + } + return _anatomiser; +} + +- (UIView *)titleView { + if (!_titleView) { + _titleView = [[UIView alloc] init]; + _titleView.backgroundColor = [UIColor clearColor]; + } + return _titleView; +} + +- (UIImageView *)encourageIndicateRegard { + if (!_encourageIndicateRegard) { + _encourageIndicateRegard = [[UIImageView alloc] init]; + _encourageIndicateRegard.userInteractionEnabled = YES; + _encourageIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_candytree_large_present_background"]; + } + return _encourageIndicateRegard; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.numberOfLines = 2; + } + return _titleLabel; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberEngagementBrightnessRegard.h b/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberEngagementBrightnessRegard.h new file mode 100644 index 00000000..0dec6f5f --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberEngagementBrightnessRegard.h @@ -0,0 +1,16 @@ +// +// YMRoomDatingAnimationView.h +// YUMI +// +// Created by YUMI on 2022/1/5. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class EngagementAbstractMatrix; +@interface YUMIChamberEngagementBrightnessRegard : UIView +- (void)inititowardseBrectifynessAboutMtowardsrix:(EngagementAbstractMatrix *)model finishBlock:(void (^)(BOOL))finishBlock; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberEngagementBrightnessRegard.m b/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberEngagementBrightnessRegard.m new file mode 100644 index 00000000..5043a198 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberEngagementBrightnessRegard.m @@ -0,0 +1,356 @@ +// +// YMRoomDatingAnimationView.m +// YUMI +// +// Created by YUMI on 2022/1/5. +// + +#import "YUMIChamberEngagementBrightnessRegard.h" +#import +#import +#import +#import "YUMIMacroUitls.h" +#import "DJDKMIMOMColor.h" +#import "UIButton+EnlargeTouchArea.h" +#import "EngagementAbstractMatrix.h" + +@interface YUMIChamberEngagementBrightnessRegard () +@property (nonatomic,strong) UIView *encourageRegard; +@property (strong, nonatomic) SVGAParser *anatomiser; +@property (nonatomic, strong) SVGAImageView *engagementSvgaIndicateRegard; +@property (nonatomic,strong) UIView *cutIntratemporalEncourageRegard; +@property (nonatomic,strong) UILabel *intratemporalSequencignation; +@property (nonatomic,strong) UIView *burlywoodRegard; +@property (nonatomic,strong) UIButton *concludeBtuton; +@property (nonatomic,strong) UIImageView *courageIndicateRegard; +@property (nonatomic,copy) void(^FinishBlock)(BOOL result); +@property (nonatomic,strong) id timer; +@end + +@implementation YUMIChamberEngagementBrightnessRegard + +- (instancetype)initWithFrame:(CGRect)frame { + if (self = [super initWithFrame:frame]) { + [self addSubview:self.encourageRegard]; + [self addSubview:self.engagementSvgaIndicateRegard]; + [self addSubview:self.cutIntratemporalEncourageRegard]; + [self addSubview:self.courageIndicateRegard]; + [self.cutIntratemporalEncourageRegard addSubview:self.intratemporalSequencignation]; + [self.cutIntratemporalEncourageRegard addSubview:self.burlywoodRegard]; + [self.cutIntratemporalEncourageRegard addSubview:self.concludeBtuton]; + [self initContrtowardsions]; + } + return self; +} +#pragma mark - Resonse +- (void)concludetBtutonPerformance:(UIButton *)sender { + if (self.FinishBlock) { + [NSObject cancelPreviousPerformRequestsWithTarget:self]; + self.FinishBlock(YES); + } +} + +#pragma mark - Pirvate Method +- (void)initContrtowardsions { + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(KScreenWidth); + make.height.mas_equalTo(KScreenHeight); + }]; + + [self.encourageRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self); + }]; + + [self.engagementSvgaIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self); + }]; + + [self.cutIntratemporalEncourageRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(70, 25)); + make.right.mas_equalTo(self).offset(-12); + make.top.mas_equalTo(self).offset(41 + kSafeAreaTopHeight); + }]; + + [self.intratemporalSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.cutIntratemporalEncourageRegard).offset(13); + make.centerY.mas_equalTo(self.cutIntratemporalEncourageRegard); + }]; + + [self.burlywoodRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.center.mas_equalTo(self.cutIntratemporalEncourageRegard); + make.size.mas_equalTo(CGSizeMake(0.5, 13)); + }]; + + [self.concludeBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(14, 14)); + make.centerY.mas_equalTo(self.cutIntratemporalEncourageRegard); + make.left.mas_equalTo(self.burlywoodRegard.mas_right).offset(8); + }]; +} + +- (void)stopAnimation { + if (self.FinishBlock) { + [NSObject cancelPreviousPerformRequestsWithTarget:self]; + self.FinishBlock(YES); + } +} + +- (UIImage *)setMonopolizeAboutRestrictions:(CGFloat)radius andSize:(CGSize)size image:(UIImage *)image { + + UIGraphicsBeginImageContext(size); + + CGRect rect = CGRectMake(0, 0, size.width, size.height); + UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:rect byRoundingCorners:UIRectCornerAllCorners cornerRadii:CGSizeMake(radius, radius)]; + + CGContextAddPath(UIGraphicsGetCurrentContext(), path.CGPath); + + CGContextClip(UIGraphicsGetCurrentContext()); + + [image drawInRect:rect]; + + CGContextDrawPath(UIGraphicsGetCurrentContext(), kCGPathStroke); + + UIImage *output = UIGraphicsGetImageFromCurrentImageContext(); + + UIGraphicsEndImageContext(); + + return output; +} + +- (CAAnimationGroup *)produceChamberEngagementExtractAnimtowardsioDerivtowardsionSpeck:(CGPoint)orginPoint destinationPoint:(CGPoint)destinationPoint { + + CAKeyframeAnimation * scaleAnimation = [CAKeyframeAnimation animationWithKeyPath:@"transform.scale"]; + scaleAnimation.duration = 0.5; + scaleAnimation.repeatCount = 1; + scaleAnimation.values = @[@(0),@(0.2),@(0.4), @(0.6), @(0.8), @(0.9), @(1)]; + scaleAnimation.calculationMode = kCAAnimationCubic; + scaleAnimation.removedOnCompletion = NO; + scaleAnimation.fillMode = kCAFillModeForwards; + + CAKeyframeAnimation * transformAnimation = [CAKeyframeAnimation animationWithKeyPath:@"position"]; + transformAnimation.beginTime = 0.5; + transformAnimation.duration = 1; + transformAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut];; + transformAnimation.values = @[[NSValue valueWithCGPoint:orginPoint],[NSValue valueWithCGPoint:destinationPoint]]; + transformAnimation.repeatCount = 1; + transformAnimation.removedOnCompletion = NO; + transformAnimation.fillMode = kCAFillModeForwards; + + CAKeyframeAnimation * desScaleformAnimation = [CAKeyframeAnimation animationWithKeyPath:@"transform.scale"]; + desScaleformAnimation.beginTime = 1.5; + desScaleformAnimation.duration = 0.5; + desScaleformAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut];; + desScaleformAnimation.values = @[@(1), @(1.2), @(1.4), @(1.6)]; + desScaleformAnimation.repeatCount = 1; + desScaleformAnimation.removedOnCompletion = NO; + desScaleformAnimation.fillMode = kCAFillModeForwards; + + + CAKeyframeAnimation * opacityAnimation = [CAKeyframeAnimation animationWithKeyPath:@"opacity"]; + opacityAnimation.beginTime = 1.5; + opacityAnimation.duration = 0.5; + opacityAnimation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut];; + opacityAnimation.values = @[@(1),@(0.8),@(0.6),@(0)]; + opacityAnimation.repeatCount = 1; + opacityAnimation.removedOnCompletion = NO; + opacityAnimation.fillMode = kCAFillModeForwards; + + + CAAnimationGroup * group = [CAAnimationGroup animation]; + group.animations = @[scaleAnimation, transformAnimation, desScaleformAnimation, opacityAnimation]; + group.duration = 2; + group.removedOnCompletion = NO; + group.fillMode = kCAFillModeForwards; + return group;; +} + +- (void)inititowardseBeginDeficitucedComputtowardsionAboutGeneralIntrtowardsemporal:(int)time { + __block int totalTime = time; + dispatch_source_t times = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, dispatch_get_global_queue(0, 0)); + _timer = times; + dispatch_source_set_timer(times, DISPATCH_TIME_NOW, 1* NSEC_PER_SEC, 0 * NSEC_PER_SEC); + dispatch_source_set_event_handler(times, ^{ + dispatch_async(dispatch_get_main_queue(), ^{ + if (totalTime <= 5 && totalTime >= 0) { + + self.cutIntratemporalEncourageRegard.hidden = NO; + self.intratemporalSequencignation.text = [NSString stringWithFormat:@"%ds", totalTime]; + } + if (totalTime <= 0) { + dispatch_source_cancel(times); + self.cutIntratemporalEncourageRegard.hidden = YES; + } + totalTime--; + }); + }); + dispatch_resume(times); +} + +- (void)inititowardseExtractCourageFetowardsureBrectifynessDerivtowardsionSpeck:(CGPoint)originPoint targetPoint:(CGPoint)targetPoint { + if (originPoint.x > 0 && targetPoint.x > 0) { + self.courageIndicateRegard.frame = CGRectMake(0, 0, 55, 55); + self.courageIndicateRegard.hidden = YES; + self.encourageRegard.hidden = YES; + self.courageIndicateRegard.hidden = NO; + self.courageIndicateRegard.center = originPoint; + CAAnimationGroup * group = [self produceChamberEngagementExtractAnimtowardsioDerivtowardsionSpeck:originPoint destinationPoint:targetPoint]; + [self.courageIndicateRegard.layer addAnimation:group forKey:nil]; + [self performSelector:@selector(anitowardsionDidAccomplish:) withObject:self.courageIndicateRegard afterDelay:(2)]; + } +} + +- (void)anitowardsionDidAccomplish:(UIImageView *)presentIndicateRegard{ + [presentIndicateRegard.layer removeAllAnimations]; + presentIndicateRegard.hidden = YES; +} + +#pragma mark - Public Method + +- (void)inititowardseBrectifynessAboutMtowardsrix:(EngagementAbstractMatrix *)model finishBlock:(void (^)(BOOL))finishBlock { + self.FinishBlock = finishBlock; + if (model.hasHeart) { + if (model.svgaUrl) { + [self inititowardsePalySVGAAboutWeebsite:model]; + } else { + + + if (self.FinishBlock) { + self.FinishBlock(YES); + } + } + } else { + + [self inititowardseExtractCourageFetowardsureBrectifynessDerivtowardsionSpeck:model.originPoint targetPoint:model.targetPoint]; + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + + if (self.FinishBlock) { + self.FinishBlock(YES); + } + }); + } + +} + +- (void)inititowardsePalySVGAAboutWeebsite:(EngagementAbstractMatrix *)model { + if (model.svgaUrl) { + self.encourageRegard.hidden = NO; + [[SDWebImageManager sharedManager] loadImageWithURL:[NSURL URLWithString:model.avatar] options:SDWebImageRetryFailed progress:nil completed:^(UIImage * _Nullable image, NSData * _Nullable data, NSError * _Nullable error, SDImageCacheType cacheType, BOOL finished, NSURL * _Nullable imageURL) { + if (image) { + image = [self setMonopolizeAboutRestrictions:200 andSize:CGSizeMake(400, 400) image:image]; + [self.engagementSvgaIndicateRegard setImage:image forKey:@"z_tx"]; + } + }]; + + NSString * title = model.nickname ? model.nickname : @""; + if (title.length >= 5) { + title = [NSString stringWithFormat:@"%@…", [title substringToIndex:5]]; + } + NSMutableAttributedString * rightAttribut = [[NSMutableAttributedString alloc] initWithString:title]; + [rightAttribut addAttributes:@{NSFontAttributeName:[UIFont systemFontOfSize:28], NSForegroundColorAttributeName:[UIColor whiteColor]} range:NSMakeRange(0, title.length)]; + [self.engagementSvgaIndicateRegard setAttributedText:rightAttribut forKey:@"z_yhname"]; + + [[SDWebImageManager sharedManager] loadImageWithURL:[NSURL URLWithString:model.targetAvatar] options:SDWebImageRetryFailed progress:nil completed:^(UIImage * _Nullable image, NSData * _Nullable data, NSError * _Nullable error, SDImageCacheType cacheType, BOOL finished, NSURL * _Nullable imageURL) { + if (image) { + image = [self setMonopolizeAboutRestrictions:200 andSize:CGSizeMake(400, 400) image:image]; + [self.engagementSvgaIndicateRegard setImage:image forKey:@"y_tx"]; + } + }]; + NSString * leftTitle = model.targetNickname ? model.targetNickname : @""; + if (leftTitle.length >= 5) { + leftTitle = [NSString stringWithFormat:@"%@…", [leftTitle substringToIndex:5]]; + } + NSMutableAttributedString * leftAttribut = [[NSMutableAttributedString alloc] initWithString:leftTitle]; + [leftAttribut addAttributes:@{NSFontAttributeName:[UIFont systemFontOfSize:28], NSForegroundColorAttributeName:[UIColor whiteColor]} range:NSMakeRange(0, leftTitle.length)]; + [self.engagementSvgaIndicateRegard setAttributedText:leftAttribut forKey:@"y_yhname"]; + @kWeakify(self); + [self.anatomiser parseWithURL:[NSURL URLWithString:model.svgaUrl] completionBlock:^(SVGAVideoEntity * _Nonnull videoItem) { + @kStrongify(self); + self.engagementSvgaIndicateRegard.hidden = NO; + self.engagementSvgaIndicateRegard.videoItem = videoItem; + self.engagementSvgaIndicateRegard.loops = 1; + self.engagementSvgaIndicateRegard.alpha = 1; + self.engagementSvgaIndicateRegard.clearsAfterStop = YES; + [ self.engagementSvgaIndicateRegard startAnimation]; + [self inititowardseBeginDeficitucedComputtowardsionAboutGeneralIntrtowardsemporal:model.svgaSecond]; + } failureBlock:^(NSError * _Nonnull error) { + + }]; + [self performSelector:@selector(stopAnimation) withObject:nil afterDelay:model.svgaSecond]; + } +} + +- (UIImageView *)courageIndicateRegard { + if (!_courageIndicateRegard) { + _courageIndicateRegard = [[UIImageView alloc] init]; + _courageIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_mode_dating_pick_heart"]; + _courageIndicateRegard.hidden = YES; + } + return _courageIndicateRegard; +} + +- (UIView *)encourageRegard { + if (!_encourageRegard) { + _encourageRegard = [[UIView alloc] init]; + _encourageRegard.backgroundColor = UIColorRGBAlpha(0x000000, 0.3); + _encourageRegard.hidden = YES; + } + return _encourageRegard; +} + +- (UILabel *)intratemporalSequencignation { + if (!_intratemporalSequencignation) { + _intratemporalSequencignation = [[UILabel alloc] init]; + _intratemporalSequencignation.text = @"5S"; + _intratemporalSequencignation.font = [UIFont systemFontOfSize:15]; + _intratemporalSequencignation.textColor = UIColorFromRGB(0xFFFEFE); + } + return _intratemporalSequencignation; +} + +- (UIView *)cutIntratemporalEncourageRegard { + if (!_cutIntratemporalEncourageRegard) { + _cutIntratemporalEncourageRegard = [[UIView alloc] init]; + _cutIntratemporalEncourageRegard.backgroundColor = UIColorRGBAlpha(0x000000, 0.3); + _cutIntratemporalEncourageRegard.layer.masksToBounds = YES; + _cutIntratemporalEncourageRegard.layer.cornerRadius = 25/2; + _cutIntratemporalEncourageRegard.hidden = YES; + } + return _cutIntratemporalEncourageRegard; +} + +- (UIButton *)concludeBtuton { + if (!_concludeBtuton) { + _concludeBtuton = [UIButton buttonWithType: UIButtonTypeCustom]; + [_concludeBtuton setImage:[UIImage imageNamed:@"yumi_same_close_white"] forState:UIControlStateNormal]; + [_concludeBtuton addTarget:self action:@selector(concludetBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + [_concludeBtuton setEnlargeEdgeAboutApex:10 right:10 bottom:10 left:10]; + } + return _concludeBtuton; +} + +- (UIView *)burlywoodRegard { + if (!_burlywoodRegard) { + _burlywoodRegard = [[UIView alloc] init]; + _burlywoodRegard.backgroundColor = UIColor.whiteColor; + } + return _burlywoodRegard; +} + +- (SVGAParser *)anatomiser { + if (!_anatomiser) { + _anatomiser = [[SVGAParser alloc]init]; + } + return _anatomiser; +} + +- (SVGAImageView *)engagementSvgaIndicateRegard { + if (!_engagementSvgaIndicateRegard) { + _engagementSvgaIndicateRegard = [[SVGAImageView alloc]init]; + _engagementSvgaIndicateRegard.backgroundColor = [UIColor clearColor]; + _engagementSvgaIndicateRegard.frame = self.bounds; + _engagementSvgaIndicateRegard.userInteractionEnabled = YES; + } + return _engagementSvgaIndicateRegard; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberFortunateBigCaptureRegard.h b/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberFortunateBigCaptureRegard.h new file mode 100644 index 00000000..0cb6ce68 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberFortunateBigCaptureRegard.h @@ -0,0 +1,23 @@ +// +// YMRoomLuckyBigPrizeView.h +// YUMI +// +// Created by YUMI on 2022/6/15. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class YUMIPresentBigCaptureMatrix, YUMIChamberFortunateBigCaptureRegard; +@protocol FBCChamberLuckyBigPrizeRegardRepresendtation + +- (void)yUMIChamberInthecaseoftuntowardseConsiderableCaptureRegard:(YUMIChamberFortunateBigCaptureRegard *)view luckyGiftInfo:(YUMIPresentBigCaptureMatrix *)giftInfo; + +@end + +@interface YUMIChamberFortunateBigCaptureRegard : UIView +@property (nonatomic,strong) YUMIPresentBigCaptureMatrix *giftInfo; +@property (nonatomic,weak) id delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberFortunateBigCaptureRegard.m b/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberFortunateBigCaptureRegard.m new file mode 100644 index 00000000..9c049a9c --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberFortunateBigCaptureRegard.m @@ -0,0 +1,121 @@ +// +// YMRoomLuckyBigPrizeView.m +// YUMI +// +// Created by YUMI on 2022/6/15. +// + +#import "YUMIChamberFortunateBigCaptureRegard.h" +#import +#import "SVGAParser.h" +#import "SVGA.h" +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" +#import "YUMIPresentBigCaptureMatrix.h" +#import "YUMISVGADisporter.h" + + +@interface YUMIChamberFortunateBigCaptureRegard () +@property (strong, nonatomic) SVGAParser *anatomiser; +@property (nonatomic, strong) YUMISVGADisporter *presentIndicateRegard; +@end + +@implementation YUMIChamberFortunateBigCaptureRegard + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.presentIndicateRegard]; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapRecognizer:)]; + [self addGestureRecognizer:tap]; +} + +- (void)initChildLyRestrictions { + [self.presentIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self); + }]; +} + +#pragma mark - Event Response +- (void)tapRecognizer:(UITapGestureRecognizer *)tap { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIChamberInthecaseoftuntowardseConsiderableCaptureRegard:luckyGiftInfo:)]) { + [self.delegate yUMIChamberInthecaseoftuntowardseConsiderableCaptureRegard:self luckyGiftInfo:self.giftInfo]; + } +} + +#pragma mark - Getters And Setters +- (void)setGiftInfo:(YUMIPresentBigCaptureMatrix *)giftInfo { + _giftInfo = giftInfo; + if (_giftInfo) { + NSString * nick = _giftInfo.nick; + if (nick.length > 6) { + nick = [nick substringToIndex:6]; + } + CGFloat fontSize = 22; + NSDictionary * dic = @{NSFontAttributeName:[UIFont systemFontOfSize:fontSize], NSForegroundColorAttributeName:[UIColor whiteColor]}; + NSDictionary * mainDic = @{NSFontAttributeName:[UIFont systemFontOfSize:fontSize], NSForegroundColorAttributeName:[DJDKMIMOMColor aplictowardsionMainPrettify]}; + NSMutableAttributedString *attributedString = [[NSMutableAttributedString alloc] init]; + [attributedString appendAttributedString:[[NSMutableAttributedString alloc] initWithString:@"恭喜 " attributes:dic]]; + if (nick) { + [attributedString appendAttributedString:[[NSMutableAttributedString alloc] initWithString:nick attributes:mainDic]]; + } + + [attributedString appendAttributedString:[[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:YMLocalizedString(@"YUMI_Room_Lucky_Big_Prize_View_1"),_giftInfo.luckyBagName] attributes:dic]]; + if (giftInfo.goldPrice) { + [attributedString appendAttributedString:[[NSMutableAttributedString alloc] initWithString:giftInfo.goldPrice attributes:mainDic]]; + } + [attributedString appendAttributedString:[[NSMutableAttributedString alloc] initWithString:giftInfo.giftName attributes:mainDic]]; + NSMutableParagraphStyle *paragraphStyle = [NSMutableParagraphStyle new]; + paragraphStyle.lineBreakMode = NSLineBreakByCharWrapping; + paragraphStyle.alignment = NSTextAlignmentLeft; + paragraphStyle.lineSpacing = 4.0f; + + paragraphStyle.alignment = NSTextAlignmentLeft; + paragraphStyle.baseWritingDirection = NSWritingDirectionLeftToRight; + [attributedString addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, attributedString.length)]; + if (_giftInfo.isInRoomVisiable) { + [self.presentIndicateRegard setHidden:YES forKey:@"img_206"]; + } else { + [self.presentIndicateRegard setHidden:NO forKey:@"img_206"]; + } + @kWeakify(self); + [self.presentIndicateRegard setAttributedText:attributedString forKey:@"fdpp_copywriting"]; + NSString * anatomiser1Name = [NSString stringWithFormat:@"%@/lucky_gift_streamer.svga", API_Image_URL]; + [self.anatomiser parseWithURL:[NSURL URLWithString:anatomiser1Name] completionBlock:^(SVGAVideoEntity * _Nonnull videoItem) { + @kStrongify(self); + self.hidden = NO; + self.presentIndicateRegard.hidden = NO; + self.presentIndicateRegard.videoItem = videoItem; + self.presentIndicateRegard.loops = 1; + self.presentIndicateRegard.clearsAfterStop = YES; + [self.presentIndicateRegard startAnimation]; + } failureBlock:^(NSError * _Nonnull error) { + + }]; + } +} + +- (YUMISVGADisporter *)presentIndicateRegard { + if (!_presentIndicateRegard) { + _presentIndicateRegard = [[YUMISVGADisporter alloc]init]; + _presentIndicateRegard.backgroundColor = [UIColor clearColor]; + _presentIndicateRegard.userInteractionEnabled = NO; + } + return _presentIndicateRegard; +} + +- (SVGAParser *)anatomiser { + if (!_anatomiser) { + _anatomiser = [[SVGAParser alloc]init]; + } + return _anatomiser; +} +@end diff --git a/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberGraffitiPresentBrightnessRegard.h b/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberGraffitiPresentBrightnessRegard.h new file mode 100644 index 00000000..9fc33893 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberGraffitiPresentBrightnessRegard.h @@ -0,0 +1,27 @@ +// +// YMRoomGraffitiGiftAnimationView.h +// YUMI +// +// Created by YUMI on 2022/8/23. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class YUMIChamberGraffitiPresentBrightnessRegard, AttachmentMatrix; +@protocol FBCChamberGraffitiPresentAnimationRegardRepresendtation + +- (void)yUMIChamberDoodlePresentBrectifynessRegardImplementtowardsion:(YUMIChamberGraffitiPresentBrightnessRegard *)view attachment:(AttachmentMatrix *)attachment; + +@end + +@interface YUMIChamberGraffitiPresentBrightnessRegard : UIView +@property (nonatomic,strong) UIImage *presentIndicate; +@property (nonatomic,weak) id delegate; +@property (nonatomic,strong) NSArray *speckGarment; +@property (nonatomic,strong) AttachmentMatrix *model; +- (void)institutePaletteBrectifyness; +- (void)concludePaletteBrectifyness; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberGraffitiPresentBrightnessRegard.m b/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberGraffitiPresentBrightnessRegard.m new file mode 100644 index 00000000..b7f28b78 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberGraffitiPresentBrightnessRegard.m @@ -0,0 +1,85 @@ +// +// YMRoomGraffitiGiftAnimationView.m +// YUMI +// +// Created by YUMI on 2022/8/23. +// + +#import "YUMIChamberGraffitiPresentBrightnessRegard.h" +#import "YUMIWeakIntratemporalr.h" +#import "YUMIMacroUitls.h" +#import "NSArray+Safe.h" + +@interface YUMIChamberGraffitiPresentBrightnessRegard () +@property (nonatomic,strong) NSTimer *timer; +@property (nonatomic,assign) int index; +@property (nonatomic,strong) NSMutableArray *datasource; +@end + +@implementation YUMIChamberGraffitiPresentBrightnessRegard + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + self.userInteractionEnabled = NO; + self.timer = [YUMIWeakIntratemporalr scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(dramDoodleBrectifynessRegard) userInfo:@"" repeats:YES]; + } + return self; +} + +- (void)institutePaletteBrectifyness { + self.index = 0; + for (int i = 0; i < self.speckGarment.count; i++) { + NSArray * speckGarment = self.speckGarment[i]; + NSNumber * first = [speckGarment firstObject]; + NSNumber * second = [speckGarment lastObject]; + CGFloat x = first.floatValue / 1000.0 * KScreenWidth; + CGFloat y = second.floatValue / 1000.0 * KScreenHeight; + if (x <= 0 || x >= KScreenWidth || y <= 0 || y >= KScreenHeight) { + continue; + } + CGPoint point = CGPointMake(x, y); + [self.datasource addObject:[NSValue valueWithCGPoint:point]]; + } + self.timer.fireDate = NSDate.distantPast; +} + +- (void)concludePaletteBrectifyness { + self.timer.fireDate = NSDate.distantFuture; + [self.datasource removeAllObjects]; + self.index = 0; +} + + +- (void)dramDoodleBrectifynessRegard { + if (self.index >= (self.datasource.count -1)) { + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + self.timer.fireDate = NSDate.distantFuture; + [self.datasource removeAllObjects]; + self.index = 0; + [self.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)]; + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIChamberDoodlePresentBrectifynessRegardImplementtowardsion:attachment:)]) { + [self.delegate yUMIChamberDoodlePresentBrectifynessRegardImplementtowardsion:self attachment:self.model]; + } + }); + return; + } + NSValue * valeu= [self.datasource secureGroalTowardsIndictowardsrix1:self.index]; + CGPoint point = valeu.CGPointValue; + UIImageView * imageView = [[UIImageView alloc] init]; + imageView.layer.masksToBounds = YES; + imageView.contentMode = UIViewContentModeScaleAspectFill; + imageView.image = self.presentIndicate; + imageView.frame = CGRectMake(point.x, point.y, 20, 20); + [self addSubview:imageView]; + self.index++; +} + +- (NSMutableArray *)datasource { + if (!_datasource) { + _datasource = [NSMutableArray array]; + } + return _datasource; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberImportHideTipRegard.h b/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberImportHideTipRegard.h new file mode 100644 index 00000000..9e55e530 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberImportHideTipRegard.h @@ -0,0 +1,16 @@ +// +// YMRoomEnterHideTipView.h +// YUMI +// +// Created by YUMI on 2022/4/26. +// 隐身进房提示 + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIChamberImportHideTipRegard : UIView + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberImportHideTipRegard.m b/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberImportHideTipRegard.m new file mode 100644 index 00000000..6803ad03 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberImportHideTipRegard.m @@ -0,0 +1,89 @@ +// +// YMRoomEnterHideTipView.m +// YUMI +// +// Created by YUMI on 2022/4/26. +// + +#import "YUMIChamberImportHideTipRegard.h" +#import +#import "ThemeColor+Room.h" +#import "DJDKMIMOMColor.h" + +@interface YUMIChamberImportHideTipRegard() + +@property (nonatomic,strong) UIView *backgroundRegard; +@property (nonatomic,strong) UIImageView *figureIndicateRegard; +@property (nonatomic, strong) UILabel *sequenceSequencignation; + +@end + +@implementation YUMIChamberImportHideTipRegard + +- (instancetype)initWithFrame:(CGRect)frame { + if (self = [super initWithFrame:frame]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +- (void)layoutSubviews { + [super layoutSubviews]; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.backgroundRegard]; + [self.backgroundRegard addSubview:self.figureIndicateRegard]; + [self.backgroundRegard addSubview:self.sequenceSequencignation]; +} + +- (void)initChildLyRestrictions { + [self.backgroundRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.centerY.mas_equalTo(self); + make.width.mas_equalTo(190); + make.height.mas_equalTo(48); + }]; + [self.figureIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.backgroundRegard).mas_offset(12); + make.centerY.mas_equalTo(self.backgroundRegard); + make.width.height.mas_equalTo(32); + }]; + [self.sequenceSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.figureIndicateRegard.mas_right).mas_offset(8); + make.centerY.mas_equalTo(self.backgroundRegard); + }]; +} + +#pragma mark - Getters And Setters +- (UIView *)backgroundRegard { + if (!_backgroundRegard) { + _backgroundRegard = [[UIView alloc] init]; + _backgroundRegard.backgroundColor = UIColorRGBAlpha(0x000000, 0.5); + _backgroundRegard.layer.cornerRadius = 24; + _backgroundRegard.layer.masksToBounds = YES; + } + return _backgroundRegard; +} + +- (UIImageView *)figureIndicateRegard { + if (!_figureIndicateRegard) { + _figureIndicateRegard = [[UIImageView alloc] init]; + _figureIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_enterRoom_hide"]; + } + return _figureIndicateRegard; +} + +- (UILabel *)sequenceSequencignation { + if (!_sequenceSequencignation) { + UILabel *label = [[UILabel alloc] init]; + label.font = [UIFont systemFontOfSize:14]; + label.textColor = [UIColor whiteColor]; + label.text = @"你已隐身进入房间~"; + _sequenceSequencignation = label; + } + return _sequenceSequencignation; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberKellegRateOriflammeRegard.h b/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberKellegRateOriflammeRegard.h new file mode 100644 index 00000000..2dc017a4 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberKellegRateOriflammeRegard.h @@ -0,0 +1,17 @@ +// +// YMRoomAnchorRankBannerView.h +// YUMI +// +// Created by YUMI on 2022/4/15. +// 个播小时榜飘屏 + +#import + +NS_ASSUME_NONNULL_BEGIN +@class ChamberHalfHourRateMatrix; +@interface YUMIChamberKellegRateOriflammeRegard : UIView + +@property (nonatomic,copy) ChamberHalfHourRateMatrix * kellegRateAbstract; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberKellegRateOriflammeRegard.m b/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberKellegRateOriflammeRegard.m new file mode 100644 index 00000000..03afcc0e --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberKellegRateOriflammeRegard.m @@ -0,0 +1,169 @@ +// +// YMRoomAnchorRankBannerView.m +// YUMI +// +// Created by YUMI on 2022/4/15. +// + +#import "YUMIChamberKellegRateOriflammeRegard.h" +#import +#import "ThemeColor+Room.h" +#import "DJDKMIMOMColor.h" +#import "ChamberHalfHourRateMatrix.h" +#import "NetIndicateRegard.h" + +@interface YUMIChamberKellegRateOriflammeRegard() + +@property (nonatomic,strong) UIImageView *backgroundIndicateRegard; +@property (nonatomic,strong) UIImageView *figureIndicateRegard; +@property (nonatomic,strong) NetIndicateRegard *avatIndicateRegard; +@property (nonatomic,strong) UILabel *titleLabel; +@property (nonatomic,strong) UILabel *monicerSequencignation; +@property (nonatomic, strong) UILabel *sequenceSequencignation; +@property (nonatomic, strong) UILabel *rateSequencignation; + +@end + +@implementation YUMIChamberKellegRateOriflammeRegard + +- (instancetype)initWithFrame:(CGRect)frame { + if (self = [super initWithFrame:frame]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +- (void)layoutSubviews { + [super layoutSubviews]; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.backgroundIndicateRegard]; + [self addSubview:self.figureIndicateRegard]; + [self addSubview:self.titleLabel]; + [self addSubview:self.avatIndicateRegard]; + [self addSubview:self.monicerSequencignation]; + [self addSubview:self.sequenceSequencignation]; + [self addSubview:self.rateSequencignation]; +} + +- (void)initChildLyRestrictions { + [self.backgroundIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.centerY.mas_equalTo(self); + make.width.mas_equalTo(360); + make.height.mas_equalTo(50); + }]; + [self.figureIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.backgroundIndicateRegard).mas_offset(-14); + make.centerY.mas_equalTo(self); + make.width.mas_equalTo(61); + make.height.mas_equalTo(60); + }]; + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.figureIndicateRegard.mas_right).mas_offset(3); + make.centerY.mas_equalTo(self.backgroundIndicateRegard).mas_offset(2); + }]; + [self.avatIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.titleLabel.mas_right).mas_offset(3); + make.centerY.mas_equalTo(self.titleLabel); + make.width.height.mas_equalTo(22); + }]; + [self.monicerSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.avatIndicateRegard.mas_right).mas_offset(3); + make.centerY.mas_equalTo(self.titleLabel); + }]; + [self.sequenceSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.monicerSequencignation.mas_right).mas_offset(3); + make.centerY.mas_equalTo(self.titleLabel); + }]; + [self.rateSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.sequenceSequencignation.mas_right); + make.centerY.mas_equalTo(self.titleLabel); + }]; +} + +- (void)setKellegRateAbstract:(ChamberHalfHourRateMatrix *)kellegRateAbstract { + _kellegRateAbstract = kellegRateAbstract; + if (kellegRateAbstract) { + self.avatIndicateRegard.imageUrl = _kellegRateAbstract.avatar; + NSString *nick = _kellegRateAbstract.nick; + if(nick.length > 4) { + nick = [NSString stringWithFormat:@"%@…", [nick substringToIndex:4]]; + } + self.monicerSequencignation.text = nick; + self.sequenceSequencignation.text = _kellegRateAbstract.desc; + } +} +#pragma mark - Getters And Setters +- (UIImageView *)backgroundIndicateRegard { + if (!_backgroundIndicateRegard) { + _backgroundIndicateRegard = [[UIImageView alloc] init]; + _backgroundIndicateRegard.image = [UIImage imageNamed:@"yumi_anchor_hour_order_background"]; + } + return _backgroundIndicateRegard; +} + +- (UIImageView *)figureIndicateRegard { + if (!_figureIndicateRegard) { + _figureIndicateRegard = [[UIImageView alloc] init]; + _figureIndicateRegard.image = [UIImage imageNamed:@"yumi_anchor_hour_order_pic"]; + } + return _figureIndicateRegard; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + UILabel *label = [[UILabel alloc] init]; + label.font = [UIFont systemFontOfSize:13 weight:UIFontWeightBold]; + label.textColor = [UIColor whiteColor]; + label.text = YMLocalizedString(@"YUMI_Room_Anchor_Rank_Banner_View_0"); + _titleLabel = label; + } + return _titleLabel; +} + +- (NetIndicateRegard *)avatIndicateRegard { + if (!_avatIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + _avatIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _avatIndicateRegard.layer.masksToBounds = YES; + _avatIndicateRegard.layer.cornerRadius = 11; + } + return _avatIndicateRegard; +} + +- (UILabel *)monicerSequencignation { + if (!_monicerSequencignation) { + UILabel *label = [[UILabel alloc] init]; + label.font = [UIFont systemFontOfSize:13 weight:UIFontWeightBold]; + label.textColor = UIColorFromRGB(0xFFFC2C); + _monicerSequencignation = label; + } + return _monicerSequencignation; +} + +- (UILabel *)sequenceSequencignation { + if (!_sequenceSequencignation) { + UILabel *label = [[UILabel alloc] init]; + label.font = [UIFont systemFontOfSize:13 weight:UIFontWeightHeavy]; + label.textColor = [UIColor whiteColor]; + _sequenceSequencignation = label; + } + return _sequenceSequencignation; +} + +- (UILabel *)rateSequencignation { + if (!_rateSequencignation) { + UILabel *label = [[UILabel alloc] init]; + label.font = [UIFont systemFontOfSize:13 weight:UIFontWeightHeavy]; + label.textColor = UIColorFromRGB(0xFFFC2C); + label.text = @"TOP1"; + _rateSequencignation = label; + } + return _rateSequencignation; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberLicneseHourRateRegard.h b/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberLicneseHourRateRegard.h new file mode 100644 index 00000000..b9aa84af --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberLicneseHourRateRegard.h @@ -0,0 +1,22 @@ +// +// YMRoomLicneseHourRankView.h +// YUMI +// +// Created by YUMI on 2022/6/13. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class ChamberHalfHourRateMatrix, YUMIChamberLicneseHourRateRegard; +@protocol FBCChamberLicneseHourRankRegardRepresendtation + +- (void)yUMIChamberLicneseStundeRtowardseRegard:(YUMIChamberLicneseHourRateRegard *)view rateAbstract:(ChamberHalfHourRateMatrix *)rateAbstract; + +@end +@interface YUMIChamberLicneseHourRateRegard : UIView +@property (nonatomic,copy) ChamberHalfHourRateMatrix * licneseRateAbstract; +@property (nonatomic,weak) id delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberLicneseHourRateRegard.m b/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberLicneseHourRateRegard.m new file mode 100644 index 00000000..aa85e3c8 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberLicneseHourRateRegard.m @@ -0,0 +1,126 @@ +// +// YMRoomLicneseHourRankView.m +// YUMI +// +// Created by YUMI on 2022/6/13. +// + +#import "YUMIChamberLicneseHourRateRegard.h" +#import +#import "DJDKMIMOMColor.h" +#import "UIImage+Utils.h" +#import "ChamberHalfHourRateMatrix.h" + +@interface YUMIChamberLicneseHourRateRegard () + +@property (nonatomic,strong) UIImageView *encourageIndicateRegard; +@property (nonatomic,strong) UILabel *titleLabel; +@property (nonatomic,strong) UIButton *importBtuton; + +@end + +@implementation YUMIChamberLicneseHourRateRegard + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.encourageIndicateRegard]; + [self addSubview:self.titleLabel]; + [self addSubview:self.importBtuton]; +} + +- (void)initChildLyRestrictions { + [self.encourageIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self).offset(64); + make.right.mas_equalTo(self.importBtuton.mas_left).offset(-5); + make.centerY.mas_equalTo(self); + }]; + + [self.importBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(44, 20)); + make.centerY.mas_equalTo(self); + make.right.mas_equalTo(self).offset(-6); + }]; +} + +#pragma mark - Event Response +- (void)encourageBetowardsRecognition { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIChamberLicneseStundeRtowardseRegard:rateAbstract:)]) { + [self.delegate yUMIChamberLicneseStundeRtowardseRegard:self rateAbstract:self.licneseRateAbstract]; + } +} + +#pragma mark - Getters And Setters +- (void)setLicneseRateAbstract:(ChamberHalfHourRateMatrix *)licneseRateAbstract { + _licneseRateAbstract = licneseRateAbstract; + if (_licneseRateAbstract) { + NSString *nick = _licneseRateAbstract.title; + if(nick.length > 6) { + nick = [NSString stringWithFormat:@"%@", [nick substringToIndex:6]]; + } + NSDictionary * dic = @{NSFontAttributeName:[UIFont systemFontOfSize:12], NSForegroundColorAttributeName:[UIColor whiteColor]}; + NSDictionary * hightDic = @{NSFontAttributeName:[UIFont systemFontOfSize:12], NSForegroundColorAttributeName:[DJDKMIMOMColor aplictowardsionMainPrettify]}; + NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] init]; + [attribute appendAttributedString:[[NSMutableAttributedString alloc] initWithString:YMLocalizedString(@"YUMI_Room_Licnese_Hour_Rank_View_0") attributes:dic]]; + if (nick.length > 0) { + [attribute appendAttributedString:[[NSMutableAttributedString alloc] initWithString:nick attributes:hightDic]]; + } + + if (licneseRateAbstract.desc.length > 0) { + [attribute appendAttributedString:[[NSMutableAttributedString alloc] initWithString:licneseRateAbstract.desc attributes:dic]]; + } + [attribute appendAttributedString:[[NSMutableAttributedString alloc] initWithString:@"TOP1" attributes:hightDic]]; + self.titleLabel.attributedText = attribute; + self.titleLabel.textAlignment = NSTextAlignmentCenter; + } +} + +- (UIImageView *)encourageIndicateRegard { + if (!_encourageIndicateRegard) { + _encourageIndicateRegard = [[UIImageView alloc] init]; + _encourageIndicateRegard.userInteractionEnabled = YES; + _encourageIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_licnese_hour_order_background"]; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(encourageBetowardsRecognition)]; + [_encourageIndicateRegard addGestureRecognizer:tap]; + } + return _encourageIndicateRegard; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.numberOfLines = 2; + } + return _titleLabel; +} + +- (UIButton *)importBtuton { + if (!_importBtuton) { + _importBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_importBtuton setTitle:YMLocalizedString(@"YUMI_Room_Licnese_Hour_Rank_View_1") forState:UIControlStateNormal]; + [_importBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + _importBtuton.titleLabel.font = [UIFont systemFontOfSize:10]; + [_importBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[UIColorFromRGB(0xd93d5f), UIColorFromRGB(0xfff494)] gradientType:GradientGenreTopToBottom imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + _importBtuton.layer.masksToBounds = YES; + _importBtuton.layer.cornerRadius = 10; + _importBtuton.layer.borderColor = [UIColor whiteColor].CGColor; + _importBtuton.layer.borderWidth = 0.5; + _importBtuton.userInteractionEnabled = NO; + } + return _importBtuton; +} + + +@end diff --git a/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberMagnificentPrototypeUpwardsRegard.h b/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberMagnificentPrototypeUpwardsRegard.h new file mode 100644 index 00000000..be0d66b8 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberMagnificentPrototypeUpwardsRegard.h @@ -0,0 +1,18 @@ +// +// YMRoomNobleLevelUpView.h +// YUMI +// +// Created by YUMI on 2022/1/10. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIChamberMagnificentPrototypeUpwardsRegard : UIView + +@property (nonatomic,copy) NSDictionary * magnificentAbstract; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberMagnificentPrototypeUpwardsRegard.m b/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberMagnificentPrototypeUpwardsRegard.m new file mode 100644 index 00000000..a9a6d5c3 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberMagnificentPrototypeUpwardsRegard.m @@ -0,0 +1,156 @@ +// +// YMRoomNobleLevelUpView.m +// YUMI +// +// Created by YUMI on 2022/1/10. +// + +#import "YUMIChamberMagnificentPrototypeUpwardsRegard.h" +#import +#import +#import "YUMIMacroUitls.h" +#import "ThemeColor+Room.h" +#import "NetIndicateRegard.h" +#import + +@interface YUMIChamberMagnificentPrototypeUpwardsRegard () +@property (strong, nonatomic) SVGAParser *anatomiser; + +@property (nonatomic,strong) SVGAImageView *magnificentRegard; + +@property (nonatomic, strong) UILabel *thresholdSequencignation; +@property (nonatomic, strong) NetIndicateRegard *imageView; +@property (nonatomic, strong) UILabel *instantSequencignation; + +@end + + +@implementation YUMIChamberMagnificentPrototypeUpwardsRegard + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.magnificentRegard]; +} + +- (void)initChildLyRestrictions { + [self.magnificentRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self); + make.height.mas_equalTo(90); + }]; +} + +- (NSMutableAttributedString *)produceIdiosyncracy:(NSString * )text color:(UIColor *)color { + NSDictionary * attribute = @{NSFontAttributeName:[UIFont systemFontOfSize:22], NSForegroundColorAttributeName:color}; + NSMutableAttributedString *attr = [[NSMutableAttributedString alloc] initWithString:text attributes:attribute]; + return attr; +} + +#pragma mark - Getters And Setters +- (void)setMagnificentAbstract:(NSDictionary *)magnificentAbstract { + _magnificentAbstract = magnificentAbstract; + self.imageView.imageUrl = magnificentAbstract[@"avatar"]; + + if (magnificentAbstract) { + @kWeakify(self); + [self.anatomiser parseWithURL:[NSURL URLWithString:magnificentAbstract[@"floatPic"]] completionBlock:^(SVGAVideoEntity * _Nullable videoItem) { + @kStrongify(self); + self.magnificentRegard.loops = 1; + self.magnificentRegard.clearsAfterStop = NO; + self.magnificentRegard.videoItem = videoItem; + [self.magnificentRegard startAnimation]; + } failureBlock:^(NSError * _Nullable error) { + + }]; + + [self.magnificentRegard setDrawingBlock:^(CALayer *contentLayer, NSInteger frameIndex) { + @kStrongify(self); + CGFloat height = contentLayer.bounds.size.height; + CGFloat totalWidth = 0; + + NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] init]; + [attribute appendAttributedString:[self produceIdiosyncracy:@"引爆全场!恭喜 " color:[UIColor whiteColor]]]; + CGFloat width1 = [attribute.string boundingRectWithSize:CGSizeMake(CGFLOAT_MAX, height) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName : [UIFont systemFontOfSize:22]} context:nil].size.width; + self.thresholdSequencignation.attributedText = attribute; + + NSMutableAttributedString * attribute1 = [[NSMutableAttributedString alloc] init]; + [attribute1 appendAttributedString:[self produceIdiosyncracy:@" " color:[DJDKMIMOMColor presentBroadcastDigitalPrettify]]]; + [attribute1 appendAttributedString:[self produceIdiosyncracy:magnificentAbstract[@"nick"] color:[DJDKMIMOMColor presentBroadcastDigitalPrettify]]]; + [attribute1 appendAttributedString:[self produceIdiosyncracy:@" " color:[DJDKMIMOMColor presentBroadcastDigitalPrettify]]]; + [attribute1 appendAttributedString:[self produceIdiosyncracy:[NSString stringWithFormat:@"贵族身份升级为%@!", magnificentAbstract[@"currVipName"]] color:[UIColor whiteColor]]]; + CGFloat width2 = [attribute1.string boundingRectWithSize:CGSizeMake(CGFLOAT_MAX, height) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName : [UIFont systemFontOfSize:22]} context:nil].size.width; + self.instantSequencignation.attributedText = attribute1; + + totalWidth += ((width1 + width2) * 12/22 + 50); + CGFloat originL = (KScreenWidth - (totalWidth > KScreenWidth ? KScreenWidth : totalWidth)) * 0.5; + if (KScreenHeight != 667) { + self.thresholdSequencignation.layer.frame = CGRectMake(originL, 0, width1, height); + [contentLayer addSublayer:self.thresholdSequencignation.layer]; + UIImageView *imageView = [[UIImageView alloc] initWithImage:self.imageView.image]; + imageView.layer.frame = CGRectMake(originL + width1, (height - 50) * 0.5, 50, 50); + imageView.layer.cornerRadius = 25.0f; + imageView.layer.masksToBounds = YES; + [contentLayer addSublayer:imageView.layer]; + self.instantSequencignation.layer.frame = CGRectMake(originL + width1 + 50, 0, width2, height); + [contentLayer addSublayer:self.instantSequencignation.layer]; + } else { + totalWidth -= 50; + CGFloat originL = (KScreenWidth - (totalWidth > KScreenWidth ? KScreenWidth : totalWidth)) * 0.5; + self.thresholdSequencignation.layer.frame = CGRectMake(originL, 0, width1, height); + [contentLayer addSublayer:self.thresholdSequencignation.layer]; + self.instantSequencignation.layer.frame = CGRectMake(originL + width1, 0, width2, height); + [contentLayer addSublayer:self.instantSequencignation.layer]; + } + } forKey:@"noble_text_tx"]; + } +} + +- (SVGAImageView *)magnificentRegard { + if (!_magnificentRegard) { + _magnificentRegard = [[SVGAImageView alloc]init]; + _magnificentRegard.backgroundColor = [UIColor clearColor]; + _magnificentRegard.userInteractionEnabled = NO; + } + return _magnificentRegard; +} + +- (SVGAParser *)anatomiser { + if (!_anatomiser) { + _anatomiser = [[SVGAParser alloc]init]; + } + return _anatomiser; +} + +- (UILabel *)thresholdSequencignation { + if (!_thresholdSequencignation) { + _thresholdSequencignation = [[UILabel alloc] init]; + } + return _thresholdSequencignation; +} + +- (UILabel *)instantSequencignation{ + if (!_instantSequencignation) { + _instantSequencignation = [[UILabel alloc] init]; + } + return _instantSequencignation; +} + +- (NetIndicateRegard *)imageView { + if (!_imageView) { + NetIndicateDisposition *config = [[NetIndicateDisposition alloc]init]; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + config.autoChamber = YES; + _imageView = [[NetIndicateRegard alloc] initWithConfig:config]; + } + return _imageView; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberPresentBrightnessAnatomiser.h b/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberPresentBrightnessAnatomiser.h new file mode 100644 index 00000000..23bc8179 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberPresentBrightnessAnatomiser.h @@ -0,0 +1,20 @@ +// +// YMRoomGiftAnimationParser.h +// YUMI +// +// Created by YUMI on 2022/3/17. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIChamberPresentBrightnessAnatomiser : NSObject + +- (void)parseWithURL:(nonnull NSString *)URL + completionBlock:(void ( ^ _Nonnull )(NSString * _Nullable videoUrl))completionBlock + failureBlock:(void ( ^ _Nullable)(NSError * _Nullable error))failureBlock; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberPresentBrightnessAnatomiser.m b/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberPresentBrightnessAnatomiser.m new file mode 100644 index 00000000..d14ddd81 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberPresentBrightnessAnatomiser.m @@ -0,0 +1,98 @@ +// +// YMRoomGiftAnimationParser.m +// YUMI +// +// Created by YUMI on 2022/3/17. +// + +#import "YUMIChamberPresentBrightnessAnatomiser.h" +#import +#import +#import +#import +#import "GCDHelper.h" + +@implementation YUMIChamberPresentBrightnessAnatomiser + +static NSOperationQueue *parseQueue; + ++ (void)load { + parseQueue = [NSOperationQueue new]; + parseQueue.maxConcurrentOperationCount = 8; +} + +- (void)parseWithURL:(nonnull NSString *)URL + completionBlock:(void ( ^ _Nonnull )(NSString * _Nullable videoUrl))completionBlock + failureBlock:(void ( ^ _Nullable)(NSError * _Nullable error))failureBlock { + [self parseWithURLRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:URL] cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:20.0] + completionBlock:completionBlock + failureBlock:failureBlock]; +} + +- (void)parseWithURLRequest:(NSURLRequest *)URLRequest completionBlock:(void (^)(NSString * _Nullable))completionBlock failureBlock:(void (^)(NSError * _Nullable))failureBlock { + if (URLRequest.URL == nil) { + if (failureBlock) { + [[NSOperationQueue mainQueue] addOperationWithBlock:^{ + failureBlock([NSError errorWithDomain:@"vapParser" code:411 userInfo:@{NSLocalizedDescriptionKey: @"URL cannot be nil."}]); + }]; + } + return; + } + if ([[NSFileManager defaultManager] fileExistsAtPath:[self cacheDirectory:[self cacheKey:URLRequest.URL]]]) { + if (completionBlock) { + [[NSOperationQueue mainQueue] addOperationWithBlock:^{ + completionBlock([self cacheDirectory:[self cacheKey:URLRequest.URL]]); + }]; + } + return; + } + [[[AFHTTPSessionManager manager] downloadTaskWithRequest:URLRequest progress:^(NSProgress * _Nonnull downloadProgress) { + } destination:^NSURL * _Nonnull(NSURL * _Nonnull targetPath, NSURLResponse * _Nonnull response) { + return [NSURL fileURLWithPath:[self cacheDirectory:[self cacheKey:URLRequest.URL]]]; + } completionHandler:^(NSURLResponse * _Nonnull response, NSURL * _Nullable filePath, NSError * _Nullable error) { + if (!error) { + [[NSOperationQueue mainQueue] addOperationWithBlock:^{ + NSString *str; + if ([filePath.absoluteString hasPrefix:@"file:///"]) { + str = [filePath.absoluteString stringByReplacingOccurrencesOfString:@"file://" withString:@""]; + } else { + str = filePath.absoluteString; + } + completionBlock(str); + }]; + } else { + [[NSOperationQueue mainQueue] addOperationWithBlock:^{ + completionBlock(nil); + }]; + } + }] resume]; +} + +- (void)clearCache:(nonnull NSString *)cacheKey { + NSString *cacheDir = [self cacheDirectory:cacheKey]; + [[NSFileManager defaultManager] removeItemAtPath:cacheDir error:NULL]; +} + +- (nonnull NSString *)cacheKey:(NSURL *)URL { + return [self MD5String:URL.absoluteString]; +} + +- (nullable NSString *)cacheDirectory:(NSString *)cacheKey { + NSString *cacheDir = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) firstObject]; + return [cacheDir stringByAppendingFormat:@"/%@.mp4", cacheKey]; +} + +- (NSString *)MD5String:(NSString *)str { + const char *cstr = [str UTF8String]; + unsigned char result[16]; + CC_MD5(cstr, (CC_LONG)strlen(cstr), result); + return [NSString stringWithFormat: + @"%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X", + result[0], result[1], result[2], result[3], + result[4], result[5], result[6], result[7], + result[8], result[9], result[10], result[11], + result[12], result[13], result[14], result[15] + ]; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberPresentCompoundRegard.h b/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberPresentCompoundRegard.h new file mode 100644 index 00000000..b80ca5e2 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberPresentCompoundRegard.h @@ -0,0 +1,18 @@ +// +// YMRoomGiftCompoundView.h +// YUMI +// +// Created by YUMI on 2022/8/5. +// 魔法小屋礼物合成 + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIChamberPresentCompoundRegard : UIView + +@property (nonatomic,copy) NSDictionary * compoundPresentAbstract; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberPresentCompoundRegard.m b/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberPresentCompoundRegard.m new file mode 100644 index 00000000..fe9bb7fe --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberPresentCompoundRegard.m @@ -0,0 +1,109 @@ +// +// YMRoomGiftCompoundView.m +// YUMI +// +// Created by YUMI on 2022/8/5. +// + +#import "YUMIChamberPresentCompoundRegard.h" +#import +#import +#import "YUMIMacroUitls.h" +#import "ThemeColor+Room.h" +#import "YUMIPresentCompoundMatrix.h" +#import "NSObject+MJExtension.h" + +@interface YUMIChamberPresentCompoundRegard () + +@property (strong, nonatomic) SVGAParser *anatomiser; +@property (nonatomic,strong) SVGAImageView *compoundPresentRegard; +@property (nonatomic,strong) UILabel *titleLabel; + +@end + +@implementation YUMIChamberPresentCompoundRegard + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.compoundPresentRegard]; + [self addSubview:self.titleLabel]; +} + +- (void)initChildLyRestrictions { + [self.compoundPresentRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self); + make.height.mas_equalTo(45); + }]; + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.compoundPresentRegard); + }]; +} + +- (NSAttributedString *)produceIdiosyncracy:(NSString * )text color:(UIColor *)color fontSize:(CGFloat)fonSize { + NSDictionary * attribute = @{NSFontAttributeName:[UIFont systemFontOfSize:fonSize], NSForegroundColorAttributeName:color}; + NSMutableAttributedString *attr = [[NSMutableAttributedString alloc] initWithString:text attributes:attribute]; + return attr; +} + +#pragma mark - Getters And Setters +- (void)setCompoundPresentAbstract:(NSDictionary *)compoundPresentAbstract { + if (compoundPresentAbstract) { + YUMIPresentCompoundMatrix * giftInfo = [YUMIPresentCompoundMatrix mtowardsrixAboutImpactbasket:compoundPresentAbstract]; + NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] init]; + CGFloat fontSize = 22; + NSString *nickStr = giftInfo.nick; + if (nickStr.length > 6) { + nickStr = [NSString stringWithFormat:@"%@…", [giftInfo.nick substringToIndex:6]]; + } + [attribute appendAttributedString:[self produceIdiosyncracy:YMLocalizedString(@"YUMI_Room_Gift_Compound_View_0") color:[UIColor whiteColor] fontSize:fontSize]]; + [attribute appendAttributedString:[self produceIdiosyncracy:nickStr color:[DJDKMIMOMColor communictowardsionMonicerPrettify] fontSize:fontSize]]; + [attribute appendAttributedString:[self produceIdiosyncracy:giftInfo.msg color:[UIColor whiteColor] fontSize:fontSize]]; + [attribute appendAttributedString:[self produceIdiosyncracy:giftInfo.giftName color:[DJDKMIMOMColor communictowardsionMonicerPrettify] fontSize:fontSize]]; + + @kWeakify(self); + NSString * anatomiser1Name = [NSString stringWithFormat:@"%@/compound_gift_banner.svga", API_Image_URL]; + [self.anatomiser parseWithURL:[NSURL URLWithString:anatomiser1Name] completionBlock:^(SVGAVideoEntity * _Nonnull videoItem) { + @kStrongify(self); + self.compoundPresentRegard.loops = 1; + self.compoundPresentRegard.clearsAfterStop = NO; + self.compoundPresentRegard.videoItem = videoItem; + [self.compoundPresentRegard setAttributedText:attribute forKey:@"noble_text_tx"]; + [self.compoundPresentRegard startAnimation]; + } failureBlock:^(NSError * _Nonnull error) { + + }]; + } +} + +- (SVGAImageView *)compoundPresentRegard { + if (!_compoundPresentRegard) { + _compoundPresentRegard = [[SVGAImageView alloc]init]; + _compoundPresentRegard.backgroundColor = [UIColor clearColor]; + _compoundPresentRegard.userInteractionEnabled = NO; + } + return _compoundPresentRegard; +} + +- (SVGAParser *)anatomiser { + if (!_anatomiser) { + _anatomiser = [[SVGAParser alloc]init]; + } + return _anatomiser; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + } + return _titleLabel; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberPresentOriflammeRegard.h b/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberPresentOriflammeRegard.h new file mode 100644 index 00000000..11e42590 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberPresentOriflammeRegard.h @@ -0,0 +1,18 @@ +// +// YMRoomGiftBannerView.h +// YUMI +// +// Created by YUMI on 2021/11/18. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class PresentAchieveAbstractMatrix, YUMIPresentOriflammeConsumerAbstractMatrix; +@interface YUMIChamberPresentOriflammeRegard : UIView +- (void)prohibitipositionPresentOriflamme:(PresentAchieveAbstractMatrix *)receiveInfo users:(NSArray *)users; +- (void)resetData; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberPresentOriflammeRegard.m b/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberPresentOriflammeRegard.m new file mode 100644 index 00000000..986d9d5c --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberPresentOriflammeRegard.m @@ -0,0 +1,337 @@ +// +// YMRoomGiftBannerView.m +// YUMI +// +// Created by YUMI on 2021/11/18. +// + +#import "YUMIChamberPresentOriflammeRegard.h" +#import +#import "ThemeColor+Room.h" +#import "PresentAchieveAbstractMatrix.h" +#import "PresentAbstractMatrix.h" +#import "YUMIPresentOriflammeConsumerAbstractMatrix.h" +#import "NetIndicateRegard.h" + +@interface YUMIChamberAvatarNickRegard : UIView +@property (nonatomic,strong) NetIndicateRegard *avatIndicateRegard; +@property (nonatomic,strong) UILabel *monicerSequencignation; +@end + +@implementation YUMIChamberAvatarNickRegard + +- (instancetype)initWithFrame:(CGRect)frame { + if (self = [super initWithFrame:frame]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +- (void)layoutSubviews { + [super layoutSubviews]; + self.avatIndicateRegard.layer.cornerRadius = self.avatIndicateRegard.bounds.size.width / 2; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.avatIndicateRegard]; + [self addSubview:self.monicerSequencignation]; +} + +- (void)initChildLyRestrictions { + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.bottom.mas_equalTo(self.monicerSequencignation.mas_bottom); + }]; + + [self.avatIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self); + make.height.mas_equalTo(self.avatIndicateRegard.mas_width); + }]; + + [self.monicerSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self); + make.top.mas_equalTo(self.avatIndicateRegard.mas_bottom).offset(2); + make.width.mas_lessThanOrEqualTo(80); + }]; +} + +#pragma mark - Getters And Setters +- (NetIndicateRegard *)avatIndicateRegard { + if (!_avatIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + _avatIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _avatIndicateRegard.userInteractionEnabled = YES; + _avatIndicateRegard.layer.masksToBounds = YES; + } + return _avatIndicateRegard; +} + +- (UILabel *)monicerSequencignation { + if (!_monicerSequencignation) { + _monicerSequencignation = [[UILabel alloc] init]; + _monicerSequencignation.font = [UIFont systemFontOfSize:12]; + _monicerSequencignation.textColor = [UIColor whiteColor]; + _monicerSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _monicerSequencignation; +} +@end + + + +@interface YUMIChamberPresentOriflammeRegard () +@property (nonatomic,strong) UIImageView *encourageIndicateRegard; +@property (nonatomic,strong) YUMIChamberAvatarNickRegard *dischargeRegard; +@property (nonatomic,strong) YUMIChamberAvatarNickRegard *achieveRegard; +@property (nonatomic,strong) YUMIChamberAvatarNickRegard *presentRegard; +@property (nonatomic,strong) UIImageView *lightIndicateRegard; +@property (nonatomic,strong) UILabel *presentComputationSequencignation; +@property (nonatomic,strong) UILabel *dischargeSequencignation; +@end + + +@implementation YUMIChamberPresentOriflammeRegard + +- (instancetype)initWithFrame:(CGRect)frame +{ + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.encourageIndicateRegard]; + + [self.encourageIndicateRegard addSubview:self.dischargeRegard]; + [self.encourageIndicateRegard addSubview:self.dischargeSequencignation]; + [self.encourageIndicateRegard addSubview:self.achieveRegard]; + [self.encourageIndicateRegard addSubview:self.lightIndicateRegard]; + [self.encourageIndicateRegard addSubview:self.presentRegard]; + [self.encourageIndicateRegard addSubview:self.presentComputationSequencignation]; +} + +- (void)initChildLyRestrictions { + [self.encourageIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.equalTo(self); + }]; + + [self.dischargeRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.equalTo(self.encourageIndicateRegard).offset(49); + make.top.equalTo(self).offset(49); + make.width.mas_equalTo(40); + }]; + + [self.dischargeSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.equalTo(self.dischargeRegard.mas_right).offset(24); + make.centerY.equalTo(self.dischargeRegard); + }]; + + [self.achieveRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.equalTo(self.dischargeSequencignation.mas_right).offset(24); + make.centerY.width.equalTo(self.dischargeRegard); + }]; + + [self.lightIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.equalTo(self.achieveRegard.mas_right).offset(4); + make.centerY.equalTo(self.dischargeRegard); + make.width.height.equalTo(@100); + }]; + + [self.presentRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.equalTo(self.dischargeRegard); + make.center.equalTo(self.lightIndicateRegard); + }]; + + + [self.presentComputationSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.equalTo(self.presentRegard); + make.right.equalTo(self.encourageIndicateRegard).offset(-36); + }]; +} + +- (void)inititowardseShiningCircleBrectifyness { + CABasicAnimation * animation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"]; + animation.toValue = [NSNumber numberWithFloat: M_PI * 2.0 ]; + animation.duration = 1; + animation.cumulative = YES; + animation.repeatCount = MAXFLOAT; + [self.lightIndicateRegard.layer addAnimation:animation forKey:@"rotationAnimation"]; +} + +#pragma mark - Public Method +- (void)resetData { + self.dischargeRegard.avatIndicateRegard.image = nil; + self.dischargeRegard.monicerSequencignation.text = nil; + self.achieveRegard.avatIndicateRegard.image = nil; + self.achieveRegard.monicerSequencignation.text = nil; + self.presentRegard.avatIndicateRegard.image = nil; + self.presentRegard.monicerSequencignation.text = nil; + self.presentComputationSequencignation.text = nil; + [self.lightIndicateRegard stopAnimating]; +} + +- (void)prohibitipositionPresentOriflamme:(PresentAchieveAbstractMatrix *)receiveInfo users:(NSArray *)users { + if (receiveInfo) { + [self inititowardseShiningCircleBrectifyness]; + NSInteger giftTotal = 0; + PresentAbstractMatrix *giftInfo = receiveInfo.gift; + self.dischargeRegard.avatIndicateRegard.imageUrl = receiveInfo.avatar; + self.dischargeRegard.monicerSequencignation.text = receiveInfo.nick; + + self.presentRegard.avatIndicateRegard.imageUrl = giftInfo.giftUrl; + self.presentRegard.monicerSequencignation.text = giftInfo.giftName; + + self.presentComputationSequencignation.text = [NSString stringWithFormat:@" x %ld",receiveInfo.giftNum]; + + if (receiveInfo.targetUsers.count > 0) { + if (receiveInfo.isBatch) { + NSString *subTitle = @""; + NSArray *targetUids = receiveInfo.targetUsers; + for (PresentAchieveConsumerAbstractMatrix *targetUid in targetUids) { + NSInteger position = [self prohibiticoveryPolariztowardsionByCid:targetUid.uid users:users]; + if (position == 0) { + continue; + } + position += 1; + if (subTitle.length > 0) { + subTitle = [subTitle stringByAppendingFormat:YMLocalizedString(@"YUMI_Room_Gift_Banner_View_0"), position]; + } else { + subTitle = [subTitle stringByAppendingFormat:YMLocalizedString(@"YUMI_Room_Gift_Banner_View_1"), position]; + } + } + if (receiveInfo.targetUsers.count == 1) { + self.achieveRegard.monicerSequencignation.text = [receiveInfo.targetUsers firstObject].nick; + self.achieveRegard.avatIndicateRegard.imageUrl = [receiveInfo.targetUsers firstObject].avatar; + } else { + self.achieveRegard.avatIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_present_all_mic"]; + self.achieveRegard.monicerSequencignation.text = subTitle; + } + + giftTotal = receiveInfo.giftNum * giftInfo.goldPrice * receiveInfo.targetUsers.count; + } else { + self.achieveRegard.avatIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_present_all_mic"]; + self.achieveRegard.monicerSequencignation.text = YMLocalizedString(@"YUMI_Room_Gift_Banner_View_2"); + giftTotal = receiveInfo.giftNum * giftInfo.goldPrice * receiveInfo.targetUsers.count; + } + }else if (receiveInfo.targetUids.count > 0) { + if (receiveInfo.isBatch) { + NSString *subTitle = @""; + NSArray *targetUids = receiveInfo.targetUids; + for (NSString * targetUid in targetUids) { + NSInteger position = [self prohibiticoveryPolariztowardsionByCid:targetUid.integerValue users:users]; + if (position == 0) { + continue; + } + position+= 1; + if (subTitle.length > 0) { + subTitle = [subTitle stringByAppendingFormat:YMLocalizedString(@"YUMI_Room_Gift_Banner_View_3"), position]; + } else { + subTitle = [subTitle stringByAppendingFormat:YMLocalizedString(@"YUMI_Room_Gift_Banner_View_4"), position]; + } + } + self.achieveRegard.avatIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_present_all_mic"]; + self.achieveRegard.monicerSequencignation.text = subTitle; + giftTotal = receiveInfo.giftNum * giftInfo.goldPrice * receiveInfo.targetUids.count; + } else { + self.achieveRegard.avatIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_present_all_mic"]; + self.achieveRegard.monicerSequencignation.text = YMLocalizedString(@"YUMI_Room_Gift_Banner_View_5"); + giftTotal = receiveInfo.giftNum * giftInfo.goldPrice * receiveInfo.targetUids.count; + } + }else { + self.achieveRegard.avatIndicateRegard.imageUrl = receiveInfo.targetAvatar; + self.achieveRegard.monicerSequencignation.text = receiveInfo.targetNick; + giftTotal = receiveInfo.giftNum * giftInfo.goldPrice; + } + [self prohibitipositionAnimtowardseIndictowardseByPresentGeneral:giftTotal]; + } +} + +- (void)prohibitipositionAnimtowardseIndictowardseByPresentGeneral:(NSInteger)giftTotal { + if (giftTotal >= 520 && giftTotal < 4999) { + self.encourageIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_present_banner_low_background"]; + }else if (giftTotal >= 4999 && giftTotal < 9999) { + self.encourageIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_present_banner_middle_background"]; + }else if (giftTotal >= 9999) { + self.encourageIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_present_banner_high_background"]; + } +} + + +- (int)prohibiticoveryPolariztowardsionByCid:(NSInteger)uid users:(NSArray *)users{ + if (uid > 0) { + for (YUMIPresentOriflammeConsumerAbstractMatrix *userInfo in users) { + if (userInfo.uid == uid) { + return userInfo.position; + } + } + } + return 0; +} +#pragma mark - Getters And Setters + + +- (UIImageView *)encourageIndicateRegard { + if (!_encourageIndicateRegard) { + _encourageIndicateRegard = [[UIImageView alloc] init]; + _encourageIndicateRegard.userInteractionEnabled = YES; + } + return _encourageIndicateRegard; +} + +- (YUMIChamberAvatarNickRegard *)dischargeRegard { + if (!_dischargeRegard) { + _dischargeRegard = [[YUMIChamberAvatarNickRegard alloc] init]; + } + return _dischargeRegard; +} + +- (YUMIChamberAvatarNickRegard *)achieveRegard { + if (!_achieveRegard) { + _achieveRegard = [[YUMIChamberAvatarNickRegard alloc] init]; + } + return _achieveRegard; +} + +- (YUMIChamberAvatarNickRegard *)presentRegard { + if (!_presentRegard) { + _presentRegard = [[YUMIChamberAvatarNickRegard alloc] init]; + } + return _presentRegard; +} + +- (UILabel *)dischargeSequencignation { + if (!_dischargeSequencignation) { + _dischargeSequencignation = [[UILabel alloc] init]; + _dischargeSequencignation.text = YMLocalizedString(@"YUMI_Room_Gift_Banner_View_6"); + _dischargeSequencignation.font = [UIFont systemFontOfSize:12]; + _dischargeSequencignation.textColor = [UIColor whiteColor]; + } + return _dischargeSequencignation; +} + +- (UIImageView *)lightIndicateRegard { + if (!_lightIndicateRegard) { + _lightIndicateRegard = [[UIImageView alloc] init]; + _lightIndicateRegard.userInteractionEnabled = YES; + _lightIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_present_banner_light"]; + } + return _lightIndicateRegard; +} + +- (UILabel *)presentComputationSequencignation { + if (!_presentComputationSequencignation) { + _presentComputationSequencignation = [[UILabel alloc] init]; + _presentComputationSequencignation.font = [UIFont systemFontOfSize:20.f weight:UIFontWeightBold]; + _presentComputationSequencignation.textColor = [DJDKMIMOMColor brectifynessPresentDigitalPrettify]; + } + return _presentComputationSequencignation; +} + + +@end diff --git a/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberPresentPingbackRegard.h b/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberPresentPingbackRegard.h new file mode 100644 index 00000000..bdea4526 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberPresentPingbackRegard.h @@ -0,0 +1,25 @@ +// +// YMRoomGiftBroadcastView.h +// YUMI +// +// Created by YUMI on 2021/11/18. +// 广播横幅 + +#import + +NS_ASSUME_NONNULL_BEGIN +@class YUMIChamberPresentBroadCastMatrix, YUMIChamberPresentPingbackRegard; + +@protocol FBCChamberPresentPingbackRegardRepresendtation +- (void)yUMIChamberPresentBroadcastRegard:(YUMIChamberPresentPingbackRegard *)view didClickClose:(YUMIChamberPresentBroadCastMatrix *)pingencourageMatrix; +- (void)yUMIChamberPresentBroadcastRegard:(YUMIChamberPresentPingbackRegard *)view enterRoom:(NSString *)roomUid; + +@end + +@interface YUMIChamberPresentPingbackRegard : UIView +@property (nonatomic,strong) YUMIChamberPresentBroadCastMatrix *pingencourageMatrix; + +@property (nonatomic,weak) id delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberPresentPingbackRegard.m b/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberPresentPingbackRegard.m new file mode 100644 index 00000000..6016ec46 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberPresentPingbackRegard.m @@ -0,0 +1,401 @@ +// +// YMRoomGiftBroadcastView.m +// YUMI +// +// Created by YUMI on 2021/11/18. +// + +#import "YUMIChamberPresentPingbackRegard.h" +#import +#import "ThemeColor+Room.h" +#import "YUMIMacroUitls.h" +#import "YUMIChamberPresentBroadCastMatrix.h" +#import "NetIndicateRegard.h" +#import "YUMIChamberYearImportpriseRegard.h" + +#define kScreenScale (CGFloat)KScreenWidth / (CGFloat)375 + +@interface YUMIChamberExternalizeConsumerRegard : UIView + +@property (nonatomic,strong) NetIndicateRegard *intelligenceportraitIndicateRegard; +@property (nonatomic,strong) UIImageView *boraderIndicateRegard; +@property (nonatomic,strong) UIButton *monicerBtuton; + +@end + +@implementation YUMIChamberExternalizeConsumerRegard + +- (instancetype)initWithFrame:(CGRect)frame { + if (self = [super initWithFrame:frame]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.intelligenceportraitIndicateRegard]; + [self addSubview:self.boraderIndicateRegard]; + [self addSubview:self.monicerBtuton]; +} + +- (void)initChildLyRestrictions { + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.bottom.mas_equalTo(self.monicerBtuton.mas_bottom); + }]; + + + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.top.mas_equalTo(self); + make.height.width.mas_equalTo(44 * kScreenScale); + }]; + + [self.boraderIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(51 * kScreenScale, 51 * kScreenScale)); + make.center.mas_equalTo(self.intelligenceportraitIndicateRegard); + }]; + + [self.monicerBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self); + make.top.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_bottom).offset(-8 * kScreenScale); + make.size.mas_equalTo(CGSizeMake(66 * kScreenScale, 16 * kScreenScale)); + }]; +} + +#pragma mark - Getters And Setters +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceportraitIndicateRegard.userInteractionEnabled = YES; + _intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _intelligenceportraitIndicateRegard.layer.cornerRadius = 44 * kScreenScale/2; + } + return _intelligenceportraitIndicateRegard; +} + +- (UIImageView *)boraderIndicateRegard { + if (!_boraderIndicateRegard) { + _boraderIndicateRegard = [[UIImageView alloc] init]; + _boraderIndicateRegard.userInteractionEnabled = YES; + } + return _boraderIndicateRegard; +} + +- (UIButton *)monicerBtuton { + if (!_monicerBtuton) { + _monicerBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_monicerBtuton setTitleColor:[DJDKMIMOMColor presentBroadcastMonicerPrettify] forState:UIControlStateNormal]; + _monicerBtuton.titleLabel.font = [UIFont systemFontOfSize:10]; + [_monicerBtuton setBackgroundImage:[UIImage imageNamed:@"yumi_scope_present_broadcast_avatar_board"] forState:UIControlStateNormal]; + } + return _monicerBtuton; +} + +@end + + +@interface YUMIChamberPresentPingbackRegard () +@property (nonatomic,strong) UIImageView *encourageIndicateRegard; +@property (nonatomic,strong) YUMIChamberExternalizeConsumerRegard *dischargeRegard; +@property (nonatomic,strong) UIImageView *dischargeIndicateRegard; +@property (nonatomic,strong) YUMIChamberExternalizeConsumerRegard *achieveRegard; +@property (nonatomic,strong) NetIndicateRegard *presentIndicateRegard; +@property (nonatomic,strong) UILabel *computationSequencignation; +@property (nonatomic,strong) UIButton *concludeBtuton; +@property (nonatomic,strong) UILabel *chamberIdSequencignation; +@property (nonatomic, strong) YUMIChamberYearImportpriseRegard *ceremonyRegard; +@end + +@implementation YUMIChamberPresentPingbackRegard + +- (instancetype)initWithFrame:(CGRect)frame +{ + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + [self initOccurrences]; + } + return self; +} +#pragma mark - Response +- (void)concludeBtutonPerformance:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIChamberPresentBroadcastRegard:didClickClose:)]) { + [self.delegate yUMIChamberPresentBroadcastRegard:self didClickClose:self.pingencourageMatrix]; + } +} + +- (void)didTicktackImportChamber { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIChamberPresentBroadcastRegard:enterRoom:)]) { + [self.delegate yUMIChamberPresentBroadcastRegard:self enterRoom:[NSString stringWithFormat:@"%ld", self.pingencourageMatrix.roomUid]]; + } +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.encourageIndicateRegard]; + + [self.encourageIndicateRegard addSubview:self.concludeBtuton]; + [self.encourageIndicateRegard addSubview:self.dischargeRegard]; + [self.encourageIndicateRegard addSubview:self.dischargeIndicateRegard]; + [self.encourageIndicateRegard addSubview:self.achieveRegard]; + [self.encourageIndicateRegard addSubview:self.presentIndicateRegard]; + [self.encourageIndicateRegard addSubview:self.computationSequencignation]; + [self.encourageIndicateRegard addSubview:self.chamberIdSequencignation]; +} + +- (void)initChildLyRestrictions { + CGFloat kscale = (CGFloat)125/ (CGFloat)345; + CGFloat width = KScreenWidth - 30; + + [self.encourageIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self).inset(15); + make.top.mas_equalTo(self); + make.height.mas_equalTo(width * kscale); + }]; + + [self.dischargeRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.encourageIndicateRegard).offset(41 * kScreenScale); + make.width.mas_equalTo(66 * kScreenScale); + make.left.mas_equalTo(self.encourageIndicateRegard).offset(13 * kScreenScale); + }]; + + [self.dischargeIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(30 * kScreenScale, 15 * kScreenScale)); + make.centerY.mas_equalTo(self.dischargeRegard); + make.left.mas_equalTo(self.dischargeRegard.mas_right).offset(13 * kScreenScale); + }]; + + [self.achieveRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.width.mas_equalTo(self.dischargeRegard); + make.left.mas_equalTo(self.dischargeIndicateRegard.mas_right).offset(13 * kScreenScale); + }]; + + [self.presentIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(60 * kScreenScale, 60 * kScreenScale)); + make.centerY.mas_equalTo(self.dischargeRegard); + make.left.mas_equalTo(self.achieveRegard.mas_right).offset(13 * kScreenScale); + }]; + + [self.computationSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.presentIndicateRegard.mas_right).offset(13 * kScreenScale); + make.centerY.mas_equalTo(self.dischargeRegard); + }]; + + [self.concludeBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self.encourageIndicateRegard).offset(-3); + make.top.mas_equalTo(13); + make.size.mas_equalTo(CGSizeMake(28, 22)); + }]; + + [self.chamberIdSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.encourageIndicateRegard); + make.top.mas_equalTo(self.encourageIndicateRegard).offset(10); + }]; +} + +- (void)initOccurrences { + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didTicktackImportChamber)]; + [self.encourageIndicateRegard addGestureRecognizer:tap]; +} + +- (void)refurbishMetroviews:(BroadCastPrototype)level { + NSString * nickBackImageName; + UIColor * nickColor; + NSString * bgImageName; + switch (level) { + case BroadCastPrototype_Normal: + { + CGFloat kscale = (CGFloat)124/ (CGFloat)345; + CGFloat width = KScreenWidth - 30; + [self.encourageIndicateRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(width * kscale); + }]; + + [self.concludeBtuton mas_updateConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(14 * kScreenScale); + }]; + nickBackImageName = @"room_gift_broadcast_normal_nick_bg"; + nickColor = [DJDKMIMOMColor mainEssayPrettify]; + bgImageName = @"room_gift_broadcast_low_bg"; + self.chamberIdSequencignation.hidden = YES; + } + break; + case BroadCastPrototype_Middle: + { + CGFloat kscale = (CGFloat)120/ (CGFloat)345; + CGFloat width = KScreenWidth - 30; + [self.encourageIndicateRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(width * kscale); + }];; + + [self.concludeBtuton mas_updateConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(11 * kScreenScale); + }]; + + nickBackImageName = @"room_gift_broadcast_higher_nick_bg"; + nickColor = [DJDKMIMOMColor presentBroadcastMonicerPrettify]; + bgImageName = @"room_gift_broadcast_middle_bg"; + self.chamberIdSequencignation.hidden = YES; + } + break; + case BroadCastPrototype_High: + { + CGFloat kscale = (CGFloat)143/ (CGFloat)345; + CGFloat width = KScreenWidth - 30; + [self.encourageIndicateRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(width * kscale); + }]; + + [self.concludeBtuton mas_updateConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(33 * kScreenScale); + }]; + + nickBackImageName = @"room_gift_broadcast_higher_nick_bg"; + nickColor = [DJDKMIMOMColor presentBroadcastMonicerPrettify]; + bgImageName = @"room_gift_broadcast_high_bg"; + self.chamberIdSequencignation.hidden = NO; + } + break; + default: + break; + } + + if (nickBackImageName.length > 0) { + [self.dischargeRegard.monicerBtuton setBackgroundImage:[UIImage imageNamed:nickBackImageName] forState:UIControlStateNormal]; + [self.achieveRegard.monicerBtuton setBackgroundImage:[UIImage imageNamed:nickBackImageName] forState:UIControlStateNormal]; + } + + if (nickColor) { + [self.dischargeRegard.monicerBtuton setTitleColor:nickColor forState:UIControlStateNormal]; + [self.achieveRegard.monicerBtuton setTitleColor:nickColor forState:UIControlStateNormal]; + } + + self.encourageIndicateRegard.image = [UIImage imageNamed:bgImageName]; +} + +#pragma mark - FBCChamberYearActivityRegardRepresendtation +- (void)yUMIChamberAnnmuImportpriseRegardImportChamber:(NSString *)roomUid { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIChamberPresentBroadcastRegard:enterRoom:)]) { + [self.delegate yUMIChamberPresentBroadcastRegard:self enterRoom:roomUid]; + } +} + +#pragma mark - Getters And Setters +- (void)setPingencourageMatrix:(YUMIChamberPresentBroadCastMatrix *)pingencourageMatrix { + _pingencourageMatrix = pingencourageMatrix; + if (_pingencourageMatrix) { + if (pingencourageMatrix.sendUserNick.length > 6) { + pingencourageMatrix.sendUserNick = [pingencourageMatrix.sendUserNick substringToIndex:6]; + } + if(pingencourageMatrix.ceremonyGift) { + for (UIView *subView in self.subviews) { + [subView removeFromSuperview]; + } + [self addSubview:self.ceremonyRegard]; + CGFloat kscale = (CGFloat)90/ (CGFloat)375; + CGFloat width = KScreenWidth; + [self.ceremonyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.top.right.mas_equalTo(self); + make.height.mas_equalTo(width * kscale); + }]; + self.ceremonyRegard.model = pingencourageMatrix; + return; + } + self.dischargeRegard.intelligenceportraitIndicateRegard.imageUrl = pingencourageMatrix.sendUserAvatar; + [self.dischargeRegard.monicerBtuton setTitle:pingencourageMatrix.sendUserNick forState:UIControlStateNormal]; + + if (pingencourageMatrix.recvUserNick.length > 6) { + pingencourageMatrix.recvUserNick = [pingencourageMatrix.recvUserNick substringToIndex:6]; + } + self.achieveRegard.intelligenceportraitIndicateRegard.imageUrl = pingencourageMatrix.recvUserAvatar; + [self.achieveRegard.monicerBtuton setTitle:pingencourageMatrix.recvUserNick forState:UIControlStateNormal]; + + self.presentIndicateRegard.imageUrl = pingencourageMatrix.giftUrl; + self.computationSequencignation.text = [NSString stringWithFormat:@"x%ld", pingencourageMatrix.giftNum]; + self.chamberIdSequencignation.text = [NSString stringWithFormat:@"ID:%@", pingencourageMatrix.roomErbanNo]; + [self refurbishMetroviews:pingencourageMatrix.levelNum]; + } +} + + +- (UIImageView *)encourageIndicateRegard { + if (!_encourageIndicateRegard) { + _encourageIndicateRegard = [[UIImageView alloc] init]; + _encourageIndicateRegard.userInteractionEnabled = YES; + } + return _encourageIndicateRegard; +} + +- (YUMIChamberExternalizeConsumerRegard *)dischargeRegard { + if (!_dischargeRegard) { + _dischargeRegard = [[YUMIChamberExternalizeConsumerRegard alloc] init]; + } + return _dischargeRegard; +} + +- (UIImageView *)dischargeIndicateRegard { + if (!_dischargeIndicateRegard) { + _dischargeIndicateRegard = [[UIImageView alloc] init]; + _dischargeIndicateRegard.userInteractionEnabled = YES; + _dischargeIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_present_broadcast_send"]; + } + return _dischargeIndicateRegard; +} + +- (YUMIChamberExternalizeConsumerRegard *)achieveRegard { + if (!_achieveRegard) { + _achieveRegard = [[YUMIChamberExternalizeConsumerRegard alloc] init]; + } + return _achieveRegard; +} +- (NetIndicateRegard *)presentIndicateRegard { + if (!_presentIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + _presentIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + } + return _presentIndicateRegard; +} + +- (UILabel *)computationSequencignation { + if (!_computationSequencignation) { + _computationSequencignation = [[UILabel alloc] init]; + _computationSequencignation.font = [UIFont fontWithName:@"PingFang-SC-Heavy" size:20]; + _computationSequencignation.textColor = [DJDKMIMOMColor presentBroadcastDigitalPrettify]; + } + return _computationSequencignation; +} + +- (UIButton *)concludeBtuton { + if (!_concludeBtuton) { + _concludeBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_concludeBtuton setImage:[UIImage imageNamed:@"yumi_scope_present_broadcast_close"] forState:UIControlStateNormal]; + [_concludeBtuton setImage:[UIImage imageNamed:@"yumi_scope_present_broadcast_close"] forState:UIControlStateSelected]; + [_concludeBtuton addTarget:self action:@selector(concludeBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _concludeBtuton; +} + + +- (UILabel *)chamberIdSequencignation { + if (!_chamberIdSequencignation) { + _chamberIdSequencignation = [[UILabel alloc] init]; + _chamberIdSequencignation.font = [UIFont systemFontOfSize:12]; + _chamberIdSequencignation.textColor = [DJDKMIMOMColor presentBroadcastMonicerPrettify]; + } + return _chamberIdSequencignation; +} + +- (YUMIChamberYearImportpriseRegard *)ceremonyRegard { + if(!_ceremonyRegard) { + _ceremonyRegard = [[YUMIChamberYearImportpriseRegard alloc] init]; + _ceremonyRegard.delegate = self; + } + return _ceremonyRegard; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberSatelliteKitchenOriflammeRegard.h b/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberSatelliteKitchenOriflammeRegard.h new file mode 100644 index 00000000..fb12eb97 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberSatelliteKitchenOriflammeRegard.h @@ -0,0 +1,26 @@ +// +// YUMIChamberSatelliteKitchenOriflammeRegard.h +// YuMi +// +// Created by YuMi on 2022/12/7. +// + +#import +#import "YUMIChamberSatelliteKitchenMatrix.h" + +NS_ASSUME_NONNULL_BEGIN +@class YUMIChamberSatelliteKitchenOriflammeRegard; +@protocol FBCChamberStarKitchenBannerRegardRepresendtation + +- (void)yUMIChamberStowardselliteKitchenOriflammeRegard:(YUMIChamberSatelliteKitchenOriflammeRegard *)view didClick:(YUMIChamberSatelliteKitchenMatrix *)starMatrix; + +@end + + +@interface YUMIChamberSatelliteKitchenOriflammeRegard : UIView +@property (nonatomic,assign) BOOL isSvga; +@property (nonatomic,strong) YUMIChamberSatelliteKitchenMatrix *starMatrix; +@property (nonatomic,weak) id delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberSatelliteKitchenOriflammeRegard.m b/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberSatelliteKitchenOriflammeRegard.m new file mode 100644 index 00000000..2064ec8d --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberSatelliteKitchenOriflammeRegard.m @@ -0,0 +1,137 @@ +// +// YUMIChamberSatelliteKitchenOriflammeRegard.m +// YuMi +// +// Created by YuMi on 2022/12/7. +// +#import +#import "YUMIChamberSatelliteKitchenOriflammeRegard.h" +#import +#import "YUMIMacroUitls.h" +#import "DJDKMIMOMColor.h" +@interface YUMIChamberSatelliteKitchenOriflammeRegard() + +@property (strong, nonatomic) SVGAParser *anatomiser; +@property (nonatomic,strong) SVGAImageView *svgaRegard; +@property (nonatomic,strong) UIImageView *backgroundIndicateRegard; +@property (nonatomic,strong) UILabel *titleView; +@property (nonatomic,strong) UIButton *ticktackBtuton; + +@end +@implementation YUMIChamberSatelliteKitchenOriflammeRegard + +-(instancetype)initWithFrame:(CGRect)frame{ + self = [super initWithFrame:frame]; + if(self){ + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.backgroundIndicateRegard]; + [self addSubview:self.svgaRegard]; + [self addSubview:self.titleView]; + [self addSubview:self.ticktackBtuton]; + +} +- (void)initChildLyRestrictions { + [self.backgroundIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.equalTo(self); + }]; + [self.svgaRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.equalTo(self); + }]; + [self.titleView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(kGetScaleWidth(21)); + make.left.mas_equalTo(kGetScaleWidth(85)); + make.bottom.equalTo(self.mas_bottom).mas_offset(-kGetScaleWidth(13.5)); + make.right.mas_equalTo(-kGetScaleWidth(53.5)); + }]; + + [self.ticktackBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.equalTo(self); + }]; + +} +-(void)setStarMatrix:(YUMIChamberSatelliteKitchenMatrix *)starMatrix{ + _starMatrix = starMatrix; + NSString *name = _starMatrix.nick.length < 7 ? _starMatrix.nick : [NSString stringWithFormat:@"%@...",[_starMatrix.nick substringWithRange:NSMakeRange(0, 6)]]; + NSString *title = [NSString stringWithFormat:YMLocalizedString(@"XPRoomStarKitchenBannerView0"),name,_starMatrix.itemMultiple,_starMatrix.diamonds]; + [self.titleView mas_updateConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(kGetScaleWidth(_isSvga == YES && KScreenWidth == 320 ? 18 : 21)); + }]; + NSMutableAttributedString *att = [[NSMutableAttributedString alloc]initWithString:title attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:10],NSForegroundColorAttributeName:[UIColor whiteColor]}]; + [att addAttributes:@{NSForegroundColorAttributeName:UIColorFromRGB(0xFEF23E)} range:[title rangeOfString:name]]; + [att addAttributes:@{NSForegroundColorAttributeName:UIColorFromRGB(0x00EAFF)} range:[title rangeOfString:[NSString stringWithFormat:@" %@",_starMatrix.itemMultiple]]]; + [att addAttributes:@{NSForegroundColorAttributeName:UIColorFromRGB(0x00EAFF)} range:[title rangeOfString:[NSString stringWithFormat:@" %@",_starMatrix.diamonds]]]; + if(_isSvga == YES){ + self.backgroundIndicateRegard.hidden = YES; + self.svgaRegard.hidden = NO; + self.titleView.hidden = NO; + self.titleView.attributedText = att; + @kWeakify(self); + [self.anatomiser parseWithNamed:@"Star_kitchen" inBundle:[NSBundle mainBundle] completionBlock:^(SVGAVideoEntity * _Nonnull videoItem) { + @kStrongify(self); + self.svgaRegard.loops = 1; + self.svgaRegard.clearsAfterStop = NO; + self.svgaRegard.videoItem = videoItem; + + [self.svgaRegard startAnimation]; + } failureBlock:^(NSError * _Nonnull error) { + + }]; + }else{ + self.backgroundIndicateRegard.hidden = NO; + self.titleView.hidden = NO; + self.svgaRegard.hidden = YES; + self.titleView.attributedText = att; + } +} +-(void)ticktackPerformance{ + if(self.delegate && [self.delegate respondsToSelector:@selector(yUMIChamberStowardselliteKitchenOriflammeRegard:didClick:)]){ + [self.delegate yUMIChamberStowardselliteKitchenOriflammeRegard:self didClick:self.starMatrix]; + } +} +#pragma mark -懒加载 +- (UIImageView *)backgroundIndicateRegard{ + if (!_backgroundIndicateRegard){ + _backgroundIndicateRegard = [UIImageView new]; + _backgroundIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_star_kitchen"]; + _backgroundIndicateRegard.userInteractionEnabled = YES; + } + return _backgroundIndicateRegard; +} +-(UILabel *)titleView{ + if (!_titleView){ + _titleView = [UILabel new]; + _titleView.textAlignment = NSTextAlignmentCenter; + _titleView.numberOfLines = 2; + } + return _titleView; +} +- (SVGAParser *)anatomiser { + if (!_anatomiser) { + _anatomiser = [[SVGAParser alloc]init]; + } + return _anatomiser; +} +- (SVGAImageView *)svgaRegard { + if (!_svgaRegard) { + _svgaRegard= [[SVGAImageView alloc]init]; + _svgaRegard.backgroundColor = [UIColor clearColor]; + _svgaRegard.userInteractionEnabled = YES; + } + return _svgaRegard; +} +-(UIButton *)ticktackBtuton{ + if (!_ticktackBtuton){ + _ticktackBtuton = [UIButton new]; + [_ticktackBtuton addTarget:self action:@selector(ticktackPerformance) forControlEvents:UIControlEventTouchUpInside]; + + } + return _ticktackBtuton; +} +@end diff --git a/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberYearImportpriseRegard.h b/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberYearImportpriseRegard.h new file mode 100644 index 00000000..eebc6d46 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberYearImportpriseRegard.h @@ -0,0 +1,27 @@ +// +// YMRoomYearActivityView.h +// YUMI +// +// Created by GLEN on 2022/11/26. +// 年度活动 + +#import +#import "YUMIChamberPresentBroadCastMatrix.h" + +NS_ASSUME_NONNULL_BEGIN + +@protocol FBCChamberYearActivityRegardRepresendtation + +- (void)yUMIChamberAnnmuImportpriseRegardImportChamber:(NSString *)roomUid; + +@end + +@interface YUMIChamberYearImportpriseRegard : UIView + +@property (nonatomic, strong) YUMIChamberPresentBroadCastMatrix *model; +@property (nonatomic,weak) id delegate; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberYearImportpriseRegard.m b/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberYearImportpriseRegard.m new file mode 100644 index 00000000..6b01d2cb --- /dev/null +++ b/YuMi/Modules/YMRoom/View/AnimationView/YUMIChamberYearImportpriseRegard.m @@ -0,0 +1,202 @@ +// +// YMRoomYearActivityView.m +// YUMI +// +// Created by GLEN on 2022/11/26. +// + +#import "YUMIChamberYearImportpriseRegard.h" +#import +#import "ThemeColor+Room.h" +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" +#import "ChamberHalfHourRateMatrix.h" +#import "NetIndicateRegard.h" + +@interface YUMIChamberYearImportpriseRegard() + +@property (nonatomic,strong) UIImageView *backgroundIndicateRegard; +@property (nonatomic,strong) NetIndicateRegard *dischargeIntelligenceportrait; +@property (nonatomic,strong) NetIndicateRegard *achieveIntelligenceportrait; +@property (nonatomic,strong) UILabel *dischargeMonicer; +@property (nonatomic,strong) UILabel *achieveMonicer; +@property (nonatomic, strong) UILabel *sequenceSequencignation; +@property (nonatomic,strong) UILabel *computationSequencignation; +@property (nonatomic, strong) UIButton *gotoBtuton; + +@end + +@implementation YUMIChamberYearImportpriseRegard + +- (instancetype)initWithFrame:(CGRect)frame { + if (self = [super initWithFrame:frame]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +- (void)layoutSubviews { + [super layoutSubviews]; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.backgroundIndicateRegard]; + [self addSubview:self.dischargeMonicer]; + [self addSubview:self.dischargeIntelligenceportrait]; + [self addSubview:self.sequenceSequencignation]; + [self addSubview:self.achieveMonicer]; + [self addSubview:self.achieveIntelligenceportrait]; + [self addSubview:self.computationSequencignation]; + [self addSubview:self.gotoBtuton]; +} + +- (void)initChildLyRestrictions { + [self.backgroundIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(0); + }]; + [self.dischargeMonicer mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(35*KScreenWidth/375); + make.centerY.mas_equalTo(self.backgroundIndicateRegard); + }]; + [self.dischargeIntelligenceportrait mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.dischargeMonicer.mas_right).mas_offset(3); + make.centerY.mas_equalTo(self); + make.width.height.mas_equalTo(20); + }]; + [self.sequenceSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.dischargeIntelligenceportrait.mas_right).mas_offset(3); + make.centerY.mas_equalTo(self); + }]; + [self.achieveMonicer mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.sequenceSequencignation.mas_right).mas_offset(3); + make.centerY.mas_equalTo(self); + }]; + [self.achieveIntelligenceportrait mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.achieveMonicer.mas_right).mas_offset(3); + make.centerY.mas_equalTo(self); + make.width.height.mas_equalTo(20); + }]; + [self.computationSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.achieveIntelligenceportrait.mas_right).mas_offset(3); + make.centerY.mas_equalTo(self); + }]; + [self.gotoBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(-31*KScreenWidth / 375); + make.centerY.mas_equalTo(self); + make.size.mas_equalTo(CGSizeMake(40, 18)); + }]; +} + +- (void)setModel:(YUMIChamberPresentBroadCastMatrix *)model { + _model = model; + if (model) { + self.achieveIntelligenceportrait.imageUrl = model.recvUserAvatar; + self.dischargeIntelligenceportrait.imageUrl = model.sendUserAvatar; + if (model.recvUserNick.length > 4) { + model.recvUserNick = [NSString stringWithFormat:@"%@...", [model.recvUserNick substringToIndex:4]]; + } + if (model.sendUserNick.length > 4) { + model.sendUserNick = [NSString stringWithFormat:@"%@...", [model.sendUserNick substringToIndex:4]]; + } + if (model.giftName.length > 6) { + model.giftName = [model.giftName substringToIndex:6]; + } + self.dischargeMonicer.text = model.sendUserNick; + self.achieveMonicer.text = model.recvUserNick; + self.computationSequencignation.text = [NSString stringWithFormat:@"%@ x%ld", model.giftName, model.giftNum]; + } +} + +- (void)onGotoBtutonTicktack:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIChamberAnnmuImportpriseRegardImportChamber:)]) { + [self.delegate yUMIChamberAnnmuImportpriseRegardImportChamber:[NSString stringWithFormat:@"%ld", self.model.roomUid]]; + } +} + +#pragma mark - Getters And Setters +- (UIImageView *)backgroundIndicateRegard { + if (!_backgroundIndicateRegard) { + _backgroundIndicateRegard = [[UIImageView alloc] init]; + _backgroundIndicateRegard.image = [UIImage imageNamed:@"yumi_YearActivity_background"]; + _backgroundIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _backgroundIndicateRegard; +} + +- (NetIndicateRegard *)dischargeIntelligenceportrait { + if (!_dischargeIntelligenceportrait) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + _dischargeIntelligenceportrait = [[NetIndicateRegard alloc] initWithConfig:config]; + _dischargeIntelligenceportrait.layer.masksToBounds = YES; + _dischargeIntelligenceportrait.layer.cornerRadius = 10; + _dischargeIntelligenceportrait.layer.borderColor = UIColorFromRGB(0xFBC200).CGColor; + _dischargeIntelligenceportrait.layer.borderWidth = 1; + } + return _dischargeIntelligenceportrait; +} + +- (UILabel *)dischargeMonicer { + if (!_dischargeMonicer) { + UILabel *label = [[UILabel alloc] init]; + label.font = [UIFont systemFontOfSize:12]; + label.textColor = UIColorFromRGB(0xFBC200); + _dischargeMonicer = label; + } + return _dischargeMonicer; +} + +- (NetIndicateRegard *)achieveIntelligenceportrait { + if (!_achieveIntelligenceportrait) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + _achieveIntelligenceportrait = [[NetIndicateRegard alloc] initWithConfig:config]; + _achieveIntelligenceportrait.layer.masksToBounds = YES; + _achieveIntelligenceportrait.layer.cornerRadius = 10; + _achieveIntelligenceportrait.layer.borderColor = UIColorFromRGB(0xFBC200).CGColor; + _achieveIntelligenceportrait.layer.borderWidth = 1; + } + return _achieveIntelligenceportrait; +} + +- (UILabel *)achieveMonicer { + if (!_achieveMonicer) { + UILabel *label = [[UILabel alloc] init]; + label.font = [UIFont systemFontOfSize:12]; + label.textColor = UIColorFromRGB(0xFBC200); + _achieveMonicer = label; + } + return _achieveMonicer; +} + +- (UILabel *)sequenceSequencignation { + if (!_sequenceSequencignation) { + UILabel *label = [[UILabel alloc] init]; + label.font = [UIFont systemFontOfSize:12]; + label.textColor = [UIColor whiteColor]; + label.text = YMLocalizedString(@"YUMI_Room_Year_Activity_View_0"); + _sequenceSequencignation = label; + } + return _sequenceSequencignation; +} + +- (UILabel *)computationSequencignation { + if (!_computationSequencignation) { + _computationSequencignation = [[UILabel alloc] init]; + _computationSequencignation.font = [UIFont systemFontOfSize:12 weight:UIFontWeightBold]; + _computationSequencignation.textColor = UIColorFromRGB(0x80F9FF); + } + return _computationSequencignation; +} +- (UIButton *)gotoBtuton { + if (!_gotoBtuton) { + _gotoBtuton = [[UIButton alloc] init]; + [_gotoBtuton setBackgroundImage:[UIImage imageNamed:@"yumi_YearActivity_goto"] forState:UIControlStateNormal]; + [_gotoBtuton addTarget:self action:@selector(onGotoBtutonTicktack:) forControlEvents:UIControlEventTouchUpInside]; + } + return _gotoBtuton; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/ArrangeMic/Api/Api+ArrangeMic.h b/YuMi/Modules/YMRoom/View/ArrangeMic/Api/Api+ArrangeMic.h new file mode 100644 index 00000000..014b51f3 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/ArrangeMic/Api/Api+ArrangeMic.h @@ -0,0 +1,29 @@ +// +// Api+ArrangeMic.h +// YUMI +// +// Created by YUMI on 2021/12/20. +// + +#import "Api.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface Api (ArrangeMic) + ++ (void)acquireChamberScheduleLoudspeakerSttowardsement:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid operUid:(NSString *)operUid page:(NSString *)page pageSize:(NSString *)pageSize; + ++ (void)demandScheduleLoudspeaker:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid operUid:(NSString *)operUid groupType:(NSString *)groupType; ++ (void)revoctowardsionScheduleLoudspeaker:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid operUid:(NSString *)operUid groupType:(NSString *)groupType; + ++ (void)acquireChamberCombatConsumerSttowardsement:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid operUid:(NSString *)operUid page:(NSString *)page pageSize:(NSString *)pageSize; + ++ (void)acquireChamberCombatDimension:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid; + ++ (void)demandChamberCombatScheduleLoudspeaker:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid operUid:(NSString *)operUid groupType:(NSString *)groupType; + ++ (void)revoctowardsionChamberCombatScheduleLoudspeaker:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid operUid:(NSString *)operUid groupType:(NSString *)groupType; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/ArrangeMic/Api/Api+ArrangeMic.m b/YuMi/Modules/YMRoom/View/ArrangeMic/Api/Api+ArrangeMic.m new file mode 100644 index 00000000..974aba79 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/ArrangeMic/Api/Api+ArrangeMic.m @@ -0,0 +1,45 @@ +// +// Api+ArrangeMic.m +// YUMI +// +// Created by YUMI on 2021/12/20. +// + +#import "Api+ArrangeMic.h" +#import +@implementation Api (ArrangeMic) + + ++ (void)acquireChamberScheduleLoudspeakerSttowardsement:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid operUid:(NSString *)operUid page:(NSString *)page pageSize:(NSString *)pageSize { + NSString * fang = [NSString stringFromBase64String:@"cm9vbS9xdWV1ZS9saXN0"]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, roomUid, operUid,page, pageSize, nil]; +} + + ++ (void)demandScheduleLoudspeaker:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid operUid:(NSString *)operUid groupType:(NSString *)groupType { + NSString * fang = [NSString stringFromBase64String:@"cm9vbS9xdWV1ZQ=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, roomUid, operUid, groupType, nil]; +} + ++ (void)revoctowardsionScheduleLoudspeaker:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid operUid:(NSString *)operUid groupType:(NSString *)groupType { + NSString * fang = [NSString stringFromBase64String:@"cm9vbS9xdWV1ZQ=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodDELETE completion:completion, __FUNCTION__, roomUid, operUid, groupType, nil]; +} + + ++ (void)acquireChamberCombatConsumerSttowardsement:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid operUid:(NSString *)operUid page:(NSString *)page pageSize:(NSString *)pageSize { + NSString * fang = [NSString stringFromBase64String:@"cm9vbS9way9xdWV1ZS9saXN0"]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__,roomUid, operUid, page, pageSize, nil]; +} + ++ (void)demandChamberCombatScheduleLoudspeaker:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid operUid:(NSString *)operUid groupType:(NSString *)groupType { + NSString * fang = [NSString stringFromBase64String:@"cm9vbS9way9qb2lu"]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, roomUid, operUid, groupType, nil]; +} + ++ (void)revoctowardsionChamberCombatScheduleLoudspeaker:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid operUid:(NSString *)operUid groupType:(NSString *)groupType { + NSString * fang = [NSString stringFromBase64String:@"cm9vbS9way9qb2lu"]; + [self manufactureDemand:fang method:HttpRequestHelperMethodDELETE completion:completion, __FUNCTION__, roomUid, operUid, groupType, nil]; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/ArrangeMic/Model/ScheduleLoudspeakerMatrix.h b/YuMi/Modules/YMRoom/View/ArrangeMic/Model/ScheduleLoudspeakerMatrix.h new file mode 100644 index 00000000..3aad6e7c --- /dev/null +++ b/YuMi/Modules/YMRoom/View/ArrangeMic/Model/ScheduleLoudspeakerMatrix.h @@ -0,0 +1,29 @@ +// +// ScheduleLoudspeakerMatrix.h +// YUMI +// +// Created by YUMI on 2021/12/20. +// + +#import +#import "YUMINNNN.h" +#import "YUMIScheduleLoudspeakerAbstractMatrix.h" +NS_ASSUME_NONNULL_BEGIN +@class ScheduleLoudspeakerConsumerMatrix; +@interface ScheduleLoudspeakerMatrix : NSObject +@property (nonatomic, strong) NSString * count; +@property (nonatomic, strong) NSString * myPos; +@property (nonatomic,copy) NSArray *queue; +@end + +@interface ScheduleLoudspeakerConsumerMatrix : NSObject +@property (nonatomic,copy) NSString * uid; +@property (nonatomic,assign) GenderGenre gender; +@property (nonatomic,copy) NSString *avatar; +@property (nonatomic,copy) NSString *nick; +@property (nonatomic,assign) NSInteger number; +@property (nonatomic,assign) GroupGenre groupType; +@property (nonatomic,assign) ArrangeLoudspeakerGenre arrangeMicType; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/ArrangeMic/Model/ScheduleLoudspeakerMatrix.m b/YuMi/Modules/YMRoom/View/ArrangeMic/Model/ScheduleLoudspeakerMatrix.m new file mode 100644 index 00000000..eed29b7e --- /dev/null +++ b/YuMi/Modules/YMRoom/View/ArrangeMic/Model/ScheduleLoudspeakerMatrix.m @@ -0,0 +1,23 @@ +// +// ScheduleLoudspeakerMatrix.m +// YUMI +// +// Created by YUMI on 2021/12/20. +// + +#import "ScheduleLoudspeakerMatrix.h" + +@implementation ScheduleLoudspeakerMatrix + ++ (NSDictionary *)objectCtowardsegorizeInGarment { + return @{@"queue":ScheduleLoudspeakerConsumerMatrix.class}; +} + +@end + + +@implementation ScheduleLoudspeakerConsumerMatrix + + + +@end diff --git a/YuMi/Modules/YMRoom/View/ArrangeMic/Model/YUMIScheduleLoudspeakerAbstractMatrix.h b/YuMi/Modules/YMRoom/View/ArrangeMic/Model/YUMIScheduleLoudspeakerAbstractMatrix.h new file mode 100644 index 00000000..31f7346e --- /dev/null +++ b/YuMi/Modules/YMRoom/View/ArrangeMic/Model/YUMIScheduleLoudspeakerAbstractMatrix.h @@ -0,0 +1,33 @@ +// +// YMArrangeMicInfoModel.h +// YUMI +// +// Created by YUMI on 2021/12/20. +// + +#import +#import "MiecreoscoopeMHTueueMatrix.h" +#import "MiecreoscoopeStateMatrix.h" +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSInteger, ArrangeLoudspeakerGenre) { + + ArrangeLoudspeakerGenre_Normal = 0, + + ArrangeLoudspeakerGenre_Dating, + + ArrangeLoudspeakerGenre_Room_PK, +}; + +@interface YUMIScheduleLoudspeakerAbstractMatrix : NSObject +@property (nonatomic,copy) NSString *roomId; +@property (nonatomic,copy) NSString *roomUid; +@property (nonatomic, strong) NSMutableDictionary *micQueue; +@property (nonatomic,assign) BOOL isManager; +@property (nonatomic,copy) NSString *roomTitle; +@property (nonatomic,copy) NSString *roomAvatar; +@property (nonatomic,copy) NSString * nick; +@property (nonatomic,assign) ArrangeLoudspeakerGenre type; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/ArrangeMic/Model/YUMIScheduleLoudspeakerAbstractMatrix.m b/YuMi/Modules/YMRoom/View/ArrangeMic/Model/YUMIScheduleLoudspeakerAbstractMatrix.m new file mode 100644 index 00000000..a81cbfbe --- /dev/null +++ b/YuMi/Modules/YMRoom/View/ArrangeMic/Model/YUMIScheduleLoudspeakerAbstractMatrix.m @@ -0,0 +1,12 @@ +// +// YMArrangeMicInfoModel.m +// YUMI +// +// Created by YUMI on 2021/12/20. +// + +#import "YUMIScheduleLoudspeakerAbstractMatrix.h" + +@implementation YUMIScheduleLoudspeakerAbstractMatrix + +@end diff --git a/YuMi/Modules/YMRoom/View/ArrangeMic/Presenter/YUMIScheduleLoudspeakerExternalizer.h b/YuMi/Modules/YMRoom/View/ArrangeMic/Presenter/YUMIScheduleLoudspeakerExternalizer.h new file mode 100644 index 00000000..9c9ef6cc --- /dev/null +++ b/YuMi/Modules/YMRoom/View/ArrangeMic/Presenter/YUMIScheduleLoudspeakerExternalizer.h @@ -0,0 +1,27 @@ +// +// YMArrangeMicPresenter.h +// YUMI +// +// Created by YUMI on 2021/12/20. +// + +#import "BaseMvpExternalizer.h" +#import "YUMINNNN.h" +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIScheduleLoudspeakerExternalizer : BaseMvpExternalizer + +- (void)acquireChamberScheduleLoudspeakerSttowardsement:(NSString *)roomUid page:(int)page pageSize:(int)pageSize state:(int)state; + +- (void)demandChamberScheduleLoudspeaker:(NSString *)roomUid groupType:(GroupGenre)groupType; + +- (void)revoctowardsionChamberScheduleLoudspeaker:(NSString *)roomUid groupType:(GroupGenre)groupType; + +- (void)acquireChamberCombatComponentSttowardsement:(NSString *)roomUid page:(int)page pageSize:(int)pageSize state:(int)state; + +- (void)demandChamberCombatScheduleLoudspeaker:(NSString *)roomUid groupType:(GroupGenre)groupType; + +- (void)revoctowardsionChamberCombatScheduleLoudspeaker:(NSString *)roomUid groupType:(GroupGenre)groupType; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/ArrangeMic/Presenter/YUMIScheduleLoudspeakerExternalizer.m b/YuMi/Modules/YMRoom/View/ArrangeMic/Presenter/YUMIScheduleLoudspeakerExternalizer.m new file mode 100644 index 00000000..30c8580b --- /dev/null +++ b/YuMi/Modules/YMRoom/View/ArrangeMic/Presenter/YUMIScheduleLoudspeakerExternalizer.m @@ -0,0 +1,73 @@ +// +// YMArrangeMicPresenter.m +// YUMI +// +// Created by YUMI on 2021/12/20. +// + +#import "YUMIScheduleLoudspeakerExternalizer.h" +#import "Api+ArrangeMic.h" +#import "AccountAbstractStorage.h" +#import "ScheduleLoudspeakerMatrix.h" +#import "FBCArrangeMicCeremony.h" + +@implementation YUMIScheduleLoudspeakerExternalizer + + +- (void)acquireChamberScheduleLoudspeakerSttowardsement:(NSString *)roomUid page:(int)page pageSize:(int)pageSize state:(int)state { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NSString * pageStr = [NSString stringWithFormat:@"%d", page]; + NSString * pageSizeStr = [NSString stringWithFormat:@"%d", pageSize]; + [Api acquireChamberScheduleLoudspeakerSttowardsement:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + ScheduleLoudspeakerMatrix * model = [ScheduleLoudspeakerMatrix mtowardsrixAboutImpactbasket:data.data]; + [[self acquireRegard] acquireChamberScheduleLoudspeakerSttowardsementAccomplishment:model state:state]; + } fail:^(NSInteger code, NSString * _Nullable msg) { + [[self acquireRegard] acquireChamberScheduleLoudspeakerSttowardsementFlunk:msg state:state]; + } EvidenceChambering:YES] roomUid:roomUid operUid:uid page:pageStr pageSize:pageSizeStr]; +} + +- (void)demandChamberScheduleLoudspeaker:(NSString *)roomUid groupType:(GroupGenre)groupType { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NSString * groupTypeStr = [NSString stringWithFormat:@"%ld", groupType]; + [Api demandScheduleLoudspeaker:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] demandScheduleLoudspeakerAccomplishment]; + } EvidenceChambering:YES] roomUid:roomUid operUid:uid groupType:groupTypeStr]; +} + +- (void)revoctowardsionChamberScheduleLoudspeaker:(NSString *)roomUid groupType:(GroupGenre)groupType { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NSString * groupTypeStr = [NSString stringWithFormat:@"%ld", groupType]; + [Api revoctowardsionScheduleLoudspeaker:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] revoctowardsionScheduleLoudspeakerAccomplishment]; + } EvidenceChambering:YES] roomUid:roomUid operUid:uid groupType:groupTypeStr]; +} + +- (void)acquireChamberCombatComponentSttowardsement:(NSString *)roomUid page:(int)page pageSize:(int)pageSize state:(int)state { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NSString * pageStr = [NSString stringWithFormat:@"%d", page]; + NSString * pageSizeStr = [NSString stringWithFormat:@"%d", pageSize]; + [Api acquireChamberCombatConsumerSttowardsement:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + ScheduleLoudspeakerMatrix * model = [ScheduleLoudspeakerMatrix mtowardsrixAboutImpactbasket:data.data]; + [[self acquireRegard] acquireChamberCombatComponentSttowardsementAccomplishment:model state:state]; + }fail:^(NSInteger code, NSString * _Nullable msg) { + [[self acquireRegard] acquireChamberCombatComponentSttowardsementFlunk:msg state:state]; + } EvidenceChambering:YES] roomUid:roomUid operUid:uid page:pageStr pageSize:pageSizeStr]; +} + +- (void)demandChamberCombatScheduleLoudspeaker:(NSString *)roomUid groupType:(GroupGenre)groupType { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NSString * groupTypeStr = [NSString stringWithFormat:@"%ld", groupType]; + [Api demandChamberCombatScheduleLoudspeaker:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] demandScheduleLoudspeakerAccomplishment]; + } EvidenceChambering:YES] roomUid:roomUid operUid:uid groupType:groupTypeStr]; +} + +- (void)revoctowardsionChamberCombatScheduleLoudspeaker:(NSString *)roomUid groupType:(GroupGenre)groupType { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NSString * groupTypeStr = [NSString stringWithFormat:@"%ld", groupType]; + [Api revoctowardsionChamberCombatScheduleLoudspeaker:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] revoctowardsionScheduleLoudspeakerAccomplishment]; + } EvidenceChambering:YES] roomUid:roomUid operUid:uid groupType:groupTypeStr]; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/ArrangeMic/Protocol/FBCArrangeMicCeremony.h b/YuMi/Modules/YMRoom/View/ArrangeMic/Protocol/FBCArrangeMicCeremony.h new file mode 100644 index 00000000..3fca5d80 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/ArrangeMic/Protocol/FBCArrangeMicCeremony.h @@ -0,0 +1,22 @@ +// +// YMArrangeMicProtocol.h +// YUMI +// +// Created by YUMI on 2021/12/20. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class ScheduleLoudspeakerMatrix; +@protocol FBCArrangeMicCeremony +- (void)acquireChamberScheduleLoudspeakerSttowardsementAccomplishment:(ScheduleLoudspeakerMatrix *)listMatrix state:(int)state; +- (void)acquireChamberScheduleLoudspeakerSttowardsementFlunk:(NSString *)msg state:(int)state; +- (void)demandScheduleLoudspeakerAccomplishment; +- (void)revoctowardsionScheduleLoudspeakerAccomplishment; +- (void)acquireChamberCombatComponentSttowardsementAccomplishment:(ScheduleLoudspeakerMatrix *)listMatrix state:(int)state; +- (void)acquireChamberCombatComponentSttowardsementFlunk:(NSString *)msg state:(int)state; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/ArrangeMic/View/Cell/YUMIScheduleLoudspeakerDispossessTabulationRegardElement.h b/YuMi/Modules/YMRoom/View/ArrangeMic/View/Cell/YUMIScheduleLoudspeakerDispossessTabulationRegardElement.h new file mode 100644 index 00000000..2f38a858 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/ArrangeMic/View/Cell/YUMIScheduleLoudspeakerDispossessTabulationRegardElement.h @@ -0,0 +1,16 @@ +// +// YMArrangeMicEmptyTableViewCell.h +// YUMI +// +// Created by YUMI on 2021/12/20. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIScheduleLoudspeakerDispossessTabulationRegardElement : UITableViewCell +@property (nonatomic,copy) NSString *emptyTitle; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/ArrangeMic/View/Cell/YUMIScheduleLoudspeakerDispossessTabulationRegardElement.m b/YuMi/Modules/YMRoom/View/ArrangeMic/View/Cell/YUMIScheduleLoudspeakerDispossessTabulationRegardElement.m new file mode 100644 index 00000000..7e16418f --- /dev/null +++ b/YuMi/Modules/YMRoom/View/ArrangeMic/View/Cell/YUMIScheduleLoudspeakerDispossessTabulationRegardElement.m @@ -0,0 +1,79 @@ +// +// YMArrangeMicEmptyTableViewCell.m +// YUMI +// +// Created by YUMI on 2021/12/20. +// + +#import "YUMIScheduleLoudspeakerDispossessTabulationRegardElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "UIIndicateConstant.h" + +@interface YUMIScheduleLoudspeakerDispossessTabulationRegardElement () +@property (nonatomic,strong) UIImageView *dispossessIndicateRegard; +@property (nonatomic,strong) UILabel *titleLabel; +@end + +@implementation YUMIScheduleLoudspeakerDispossessTabulationRegardElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify]; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.dispossessIndicateRegard]; + [self.contentView addSubview:self.titleLabel]; +} + +- (void)initChildLyRestrictions { + [self.dispossessIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.contentView); + make.top.mas_equalTo(self.contentView).offset(50); + make.size.mas_equalTo(CGSizeMake(100, 100)); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.dispossessIndicateRegard.mas_bottom).offset(20); + make.left.right.mas_equalTo(self.contentView); + }]; +} +#pragma mark - Getters And Setters +- (void)setEmptyTitle:(NSString *)emptyTitle { + _emptyTitle = emptyTitle; + if (_emptyTitle.length > 0) { + self.titleLabel.text = _emptyTitle; + } +} + +- (UIImageView *)dispossessIndicateRegard { + if (!_dispossessIndicateRegard) { + _dispossessIndicateRegard = [[UIImageView alloc] init]; + _dispossessIndicateRegard.userInteractionEnabled = YES; + _dispossessIndicateRegard.image = [UIIndicateConstant defalutDispossessDepapossessor]; + _dispossessIndicateRegard.layer.masksToBounds = YES; + _dispossessIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _dispossessIndicateRegard; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.text = YMLocalizedString(@"YUMI_Arrange_Mic_Empty_Table_View_Cell_0"); + _titleLabel.numberOfLines = 2; + _titleLabel.font = [UIFont systemFontOfSize:16]; + _titleLabel.textAlignment = NSTextAlignmentCenter; + _titleLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + } + return _titleLabel; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/ArrangeMic/View/Cell/YUMIScheduleLoudspeakerTabulationRegardElement.h b/YuMi/Modules/YMRoom/View/ArrangeMic/View/Cell/YUMIScheduleLoudspeakerTabulationRegardElement.h new file mode 100644 index 00000000..0bfc7ce2 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/ArrangeMic/View/Cell/YUMIScheduleLoudspeakerTabulationRegardElement.h @@ -0,0 +1,23 @@ +// +// YMArrangeMicTableViewCell.h +// YUMI +// +// Created by YUMI on 2021/12/20. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class YUMIScheduleLoudspeakerTabulationRegardElement, ScheduleLoudspeakerConsumerMatrix; +@protocol FBCArrangeMicTabulationViweElementRepresendtation + +- (void)yUMIScheduleLoudspeakerTarbsultowardsionViweElement:(YUMIScheduleLoudspeakerTabulationRegardElement *)view inviteUser:(ScheduleLoudspeakerConsumerMatrix *)userInfo; + +@end +@interface YUMIScheduleLoudspeakerTabulationRegardElement : UITableViewCell +@property (nonatomic,assign) BOOL isManager; +@property (nonatomic,weak) id delegate; +@property (nonatomic,strong) ScheduleLoudspeakerConsumerMatrix *userInfo; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/ArrangeMic/View/Cell/YUMIScheduleLoudspeakerTabulationRegardElement.m b/YuMi/Modules/YMRoom/View/ArrangeMic/View/Cell/YUMIScheduleLoudspeakerTabulationRegardElement.m new file mode 100644 index 00000000..05695b32 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/ArrangeMic/View/Cell/YUMIScheduleLoudspeakerTabulationRegardElement.m @@ -0,0 +1,189 @@ +// +// YMArrangeMicTableViewCell.m +// YUMI +// +// Created by YUMI on 2021/12/20. +// + +#import "YUMIScheduleLoudspeakerTabulationRegardElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "NetIndicateRegard.h" +#import "UIImage+Utils.h" +#import "ScheduleLoudspeakerMatrix.h" +@interface YUMIScheduleLoudspeakerTabulationRegardElement() +@property (nonatomic, strong) UILabel * rateSequencignation; +@property (nonatomic, strong) NetIndicateRegard * avaratIndicateRegard; +@property (nonatomic, strong) UILabel * constituteSequencignation; +@property (nonatomic,strong) UIImageView *seaxualityIndicateRegard; +@property (nonatomic, strong) UIButton * arrangeLoudspeakerBtuton; +@end + +@implementation YUMIScheduleLoudspeakerTabulationRegardElement +#pragma mark - life cycle +- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier{ + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initRegard]; + [self initConstrtowardsions]; + } + return self; +} + +#pragma mark - private method +- (void)initRegard{ + self.backgroundColor = [UIColor clearColor]; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.rateSequencignation]; + [self.contentView addSubview:self.avaratIndicateRegard]; + [self.contentView addSubview:self.constituteSequencignation]; + [self.contentView addSubview:self.seaxualityIndicateRegard]; + [self.contentView addSubview:self.arrangeLoudspeakerBtuton]; +} + +- (void)initConstrtowardsions{ + [self.rateSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.contentView); + make.left.mas_equalTo(self.contentView).offset(15); + make.width.height.mas_equalTo(20); + }]; + + [self.avaratIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.width.mas_equalTo(46); + make.centerY.mas_equalTo(self.contentView); + make.left.mas_equalTo(self.rateSequencignation.mas_right).offset(13); + }]; + + [self.constituteSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.avaratIndicateRegard.mas_right).offset(10); + make.centerY.mas_equalTo(self.contentView); + }]; + + [self.seaxualityIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(12, 12)); + make.left.mas_equalTo(self.constituteSequencignation.mas_right).offset(2); + make.centerY.mas_equalTo(self.constituteSequencignation); + }]; + + [self.arrangeLoudspeakerBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(75); + make.height.mas_equalTo(25); + make.right.mas_equalTo(self.contentView).offset(-15); + make.centerY.mas_equalTo(self.contentView); + }]; +} + +#pragma mark - Event Response +- (void)arrangeLoudspeakerBtutonPerformance:(UIButton *)sender { + if (self.isManager && self.delegate && [self.delegate respondsToSelector:@selector(yUMIScheduleLoudspeakerTarbsultowardsionViweElement:inviteUser:)]) { + [self.delegate yUMIScheduleLoudspeakerTarbsultowardsionViweElement:self inviteUser:self.userInfo]; + } +} + +#pragma mark - setters and getters +- (void)setUserInfo:(ScheduleLoudspeakerConsumerMatrix *)userInfo { + _userInfo = userInfo; + if (_userInfo) { + NSString * nick = _userInfo.nick; + if (nick.length > 6) { + nick = [nick substringToIndex:6]; + } + self.constituteSequencignation.text= nick; + self.avaratIndicateRegard.imageUrl = _userInfo.avatar; + self.seaxualityIndicateRegard.image = _userInfo.gender == GenderGenre_Female ? [UIImage imageNamed:@"yumi_same_female"] : [UIImage imageNamed:@"yumi_same_male"]; + self.rateSequencignation.text = [NSString stringWithFormat:@"%ld", _userInfo.number]; + if (self.isManager) { + if (_userInfo.arrangeMicType == ArrangeLoudspeakerGenre_Dating) { + NSString * title = _userInfo.groupType == GroupGenre_Blue ? @"抱上男神" : YMLocalizedString(@"YUMI_Arrange_Mic_Table_View_Cell_1"); + UIColor * color = _userInfo.groupType == GroupGenre_Blue ? UIColorFromRGB(0x518EFF) : UIColorFromRGB(0xFF6B77); + [self.arrangeLoudspeakerBtuton setTitle:title forState:UIControlStateNormal]; + [self.arrangeLoudspeakerBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + [self.arrangeLoudspeakerBtuton setBackgroundColor:color]; + }if (_userInfo.arrangeMicType == ArrangeLoudspeakerGenre_Room_PK) { + NSString * title = _userInfo.groupType == GroupGenre_Blue ? @"抱上蓝队" : YMLocalizedString(@"YUMI_Arrange_Mic_Table_View_Cell_3"); + UIColor * color = _userInfo.groupType == GroupGenre_Blue ? UIColorFromRGB(0x518EFF) : UIColorFromRGB(0xFF6B77); + [self.arrangeLoudspeakerBtuton setTitle:title forState:UIControlStateNormal]; + [self.arrangeLoudspeakerBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + [self.arrangeLoudspeakerBtuton setBackgroundColor:color]; + } else { + [self.arrangeLoudspeakerBtuton setTitle:YMLocalizedString(@"YUMI_Arrange_Mic_Table_View_Cell_4") forState:UIControlStateNormal]; + [self.arrangeLoudspeakerBtuton setTitleColor:[DJDKMIMOMColor acknowledgementBtutonEssayPrettify] forState:UIControlStateNormal]; + [self.arrangeLoudspeakerBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + } + }else { + if (_userInfo.arrangeMicType == ArrangeLoudspeakerGenre_Dating) { + NSString * title = _userInfo.groupType == GroupGenre_Blue ? @"已选男神" : YMLocalizedString(@"YUMI_Arrange_Mic_Table_View_Cell_6"); + UIColor * color = _userInfo.groupType == GroupGenre_Blue ? UIColorFromRGB(0x518EFF) : UIColorFromRGB(0xFF6B77); + [self.arrangeLoudspeakerBtuton setTitle:title forState:UIControlStateNormal]; + [self.arrangeLoudspeakerBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + [self.arrangeLoudspeakerBtuton setBackgroundColor:color]; + } else if(_userInfo.arrangeMicType == ArrangeLoudspeakerGenre_Room_PK) { + NSString * title = _userInfo.groupType == GroupGenre_Blue ? @"已选蓝队" : YMLocalizedString(@"YUMI_Arrange_Mic_Table_View_Cell_8"); + UIColor * color = _userInfo.groupType == GroupGenre_Blue ? UIColorFromRGB(0x518EFF) : UIColorFromRGB(0xFF6B77); + [self.arrangeLoudspeakerBtuton setTitle:title forState:UIControlStateNormal]; + [self.arrangeLoudspeakerBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + [self.arrangeLoudspeakerBtuton setBackgroundColor:color]; + } else { + [self.arrangeLoudspeakerBtuton setTitle:YMLocalizedString(@"YUMI_Arrange_Mic_Table_View_Cell_9") forState:UIControlStateNormal]; + [self.arrangeLoudspeakerBtuton setTitleColor:[DJDKMIMOMColor prohibitionBtutonEssayPrettify] forState:UIControlStateNormal]; + [self.arrangeLoudspeakerBtuton setBackgroundImage:[UIImage imageWithColor:[DJDKMIMOMColor prohibitionBtutonPrettify]] forState:UIControlStateNormal]; + } + } + } +} + +- (UILabel *)rateSequencignation{ + if (!_rateSequencignation) { + _rateSequencignation = [[UILabel alloc] init]; + _rateSequencignation.textColor = [UIColor whiteColor]; + _rateSequencignation.font = [UIFont systemFontOfSize:13]; + _rateSequencignation.backgroundColor = [DJDKMIMOMColor aplictowardsionMainPrettify]; + _rateSequencignation.textAlignment = NSTextAlignmentCenter; + _rateSequencignation.layer.masksToBounds = YES; + _rateSequencignation.layer.cornerRadius = 10; + } + return _rateSequencignation; +} + + +- (UILabel *)constituteSequencignation{ + if (!_constituteSequencignation) { + _constituteSequencignation = [[UILabel alloc] init]; + _constituteSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _constituteSequencignation.font = [UIFont systemFontOfSize:15]; + _constituteSequencignation.textAlignment = NSTextAlignmentLeft; + } + return _constituteSequencignation; +} + +- (UIButton *)arrangeLoudspeakerBtuton{ + if (!_arrangeLoudspeakerBtuton) { + _arrangeLoudspeakerBtuton = [UIButton buttonWithType:UIButtonTypeCustom];; + _arrangeLoudspeakerBtuton.titleLabel.font = [UIFont systemFontOfSize:13]; + _arrangeLoudspeakerBtuton.layer.masksToBounds = YES; + _arrangeLoudspeakerBtuton.layer.cornerRadius = 25/ 2; + [_arrangeLoudspeakerBtuton addTarget:self action:@selector(arrangeLoudspeakerBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _arrangeLoudspeakerBtuton; +} + +- (NetIndicateRegard *)avaratIndicateRegard{ + if (!_avaratIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc] init]; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + config.imageType = ImageGenreUserIcon; + _avaratIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _avaratIndicateRegard.layer.masksToBounds = YES; + _avaratIndicateRegard.layer.cornerRadius = 23; + } + return _avaratIndicateRegard; +} + +- (UIImageView *)seaxualityIndicateRegard { + if (!_seaxualityIndicateRegard) { + _seaxualityIndicateRegard = [[UIImageView alloc] init]; + _seaxualityIndicateRegard.userInteractionEnabled = YES; + } + return _seaxualityIndicateRegard; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/ArrangeMic/View/YUMIScheduleLoudspeakerRegardGovernancer.h b/YuMi/Modules/YMRoom/View/ArrangeMic/View/YUMIScheduleLoudspeakerRegardGovernancer.h new file mode 100644 index 00000000..a1e47c9f --- /dev/null +++ b/YuMi/Modules/YMRoom/View/ArrangeMic/View/YUMIScheduleLoudspeakerRegardGovernancer.h @@ -0,0 +1,16 @@ +// +// YMArrangeMicViewController.h +// YUMI +// +// Created by YUMI on 2021/12/20. +// + +#import "MvpRegardGovernancer.h" +#import "YUMIScheduleLoudspeakerAbstractMatrix.h" +#import "ScheduleLoudspeakerMatrix.h" +NS_ASSUME_NONNULL_BEGIN +@interface YUMIScheduleLoudspeakerRegardGovernancer : MvpRegardGovernancer +- (instancetype)initAboutAbstract:(YUMIScheduleLoudspeakerAbstractMatrix *)info; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/ArrangeMic/View/YUMIScheduleLoudspeakerRegardGovernancer.m b/YuMi/Modules/YMRoom/View/ArrangeMic/View/YUMIScheduleLoudspeakerRegardGovernancer.m new file mode 100644 index 00000000..cc76d7b1 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/ArrangeMic/View/YUMIScheduleLoudspeakerRegardGovernancer.m @@ -0,0 +1,832 @@ +// +// YMArrangeMicViewController.m +// YUMI +// +// Created by YUMI on 2021/12/20. +// + +#import "YUMIScheduleLoudspeakerRegardGovernancer.h" +#import +#import +#import +#import "MKJPopup.h" +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" +#import "AccountAbstractStorage.h" +#import "YUMIHtmlUrl.h" +#import "UIImage+Utils.h" +#import "NSArray+Safe.h" +#import "NSMutableDictionary+Saft.h" +#import "ScheduleLoudspeakerMatrix.h" +#import "AttachmentMatrix.h" +#import "ConsumerAbstractMatrix.h" +#import "YUMIScheduleLoudspeakerDispossessTabulationRegardElement.h" +#import "YUMIScheduleLoudspeakerTabulationRegardElement.h" +#import "YUMIParaticipationRegard.h" +#import "YUMIScheduleLoudspeakerExternalizer.h" +#import "FBCArrangeMicCeremony.h" + +@interface YUMIScheduleLoudspeakerRegardGovernancer () +@property (nonatomic,strong) UIView * apexRegard; +@property (nonatomic,strong) UIView * contentView; +@property (nonatomic,strong) UILabel *titleLabel; +@property (nonatomic,strong) UIView * burlywoodRegard; +@property (nonatomic,strong) UITableView *tableView; +@property (nonatomic,strong) UIStackView *applyHierarchyRegard; +@property (nonatomic,strong) UIButton *applyBtuton; +@property (nonatomic,strong) UIButton *maleBtuton; +@property (nonatomic,strong) UIButton *femaleBtuton; +@property (nonatomic,strong) NSMutableArray *datasource; +@property (nonatomic,assign) int page; +@property (nonatomic,assign) BOOL hasNoFurthaerAtoloudspeaker; +@property (nonatomic,strong) YUMIScheduleLoudspeakerAbstractMatrix *userInfo; +@property (nonatomic,strong) ScheduleLoudspeakerMatrix *arrangeLoudspeakerAbstract; +@property (nonatomic, strong) NSMutableDictionary *micQueue; +@end + +@implementation YUMIScheduleLoudspeakerRegardGovernancer + +- (void)dealloc { + [[NIMSDK sharedSDK].chatManager removeDelegate:self]; +} + +- (YUMIScheduleLoudspeakerExternalizer *)producePresimport { + return [[YUMIScheduleLoudspeakerExternalizer alloc] init]; +} + +- (instancetype)initAboutAbstract:(YUMIScheduleLoudspeakerAbstractMatrix *)info { + if (self = [super init]) { + self.modalPresentationStyle = UIModalPresentationOverFullScreen; + self.userInfo = info; + self.micQueue = info.micQueue; + } + return self; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [[NIMSDK sharedSDK].chatManager addDelegate:self]; + [self initIntelligencerGrantedTerminalerRrfresh]; + [self initSubViews]; + [self initChildLyRestrictions]; + [self prohibitipositionDeficiencyTowardsoloudspeaker]; + [self intelligenceerRenovtowardseh]; + +} +#pragma mark - 下拉刷新 +- (void)initIntelligencerGrantedTerminalerRrfresh { + MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(intelligenceerRenovtowardseh)]; + header.stateLabel.font = [UIFont systemFontOfSize:10.0]; + header.lastUpdatedTimeLabel.font = [UIFont systemFontOfSize:10.0]; + header.stateLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + header.lastUpdatedTimeLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + self.tableView.mj_header = header; + + MJRefreshBackNormalFooter *footer = [MJRefreshBackNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(footerRenovtowardseh)]; + footer.stateLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + footer.stateLabel.font = [UIFont systemFontOfSize:10.0]; + self.tableView.mj_footer = footer; +} + +#pragma mark - 刷新的fangfa +- (void)intelligenceerRenovtowardseh { + self.page = 1; + if (self.userInfo.type == ArrangeLoudspeakerGenre_Room_PK) { + [self.presimport acquireChamberCombatComponentSttowardsement:self.userInfo.roomUid page:self.page pageSize:20 state:0]; + } else { + [self.presimport acquireChamberScheduleLoudspeakerSttowardsement:self.userInfo.roomUid page:self.page pageSize:20 state:0]; + } + +} + +- (void)footerRenovtowardseh { + if (self.hasNoFurthaerAtoloudspeaker) { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_Arrange_Mic_View_Controller_0")]; + return; + } + self.page++; + if (self.userInfo.type == ArrangeLoudspeakerGenre_Room_PK) { + [self.presimport acquireChamberCombatComponentSttowardsement:self.userInfo.roomUid page:self.page pageSize:20 state:1]; + } else { + [self.presimport acquireChamberScheduleLoudspeakerSttowardsement:self.userInfo.roomUid page:self.page pageSize:20 state:1];; + } +} + + +#pragma mark - Private Method +- (void)prohibitipositionDeficiencyTowardsoloudspeaker { + if (self.userInfo.isManager) { + [self.applyBtuton setTitle:YMLocalizedString(@"YUMI_Arrange_Mic_View_Controller_1") forState:UIControlStateNormal]; + } else { + [self.applyBtuton setTitle:YMLocalizedString(@"YUMI_Arrange_Mic_View_Controller_2") forState:UIControlStateNormal]; + } + + if (self.userInfo.type == ArrangeLoudspeakerGenre_Dating) { + self.femaleBtuton.hidden = self.userInfo.isManager; + self.maleBtuton.hidden = self.userInfo.isManager; + self.applyBtuton.hidden = !self.userInfo.isManager; + } else if(self.userInfo.type == ArrangeLoudspeakerGenre_Room_PK) { + self.femaleBtuton.hidden = self.userInfo.isManager; + self.maleBtuton.hidden = self.userInfo.isManager; + self.applyBtuton.hidden = !self.userInfo.isManager; + [self.maleBtuton setTitle:YMLocalizedString(@"YUMI_Arrange_Mic_View_Controller_3") forState:UIControlStateNormal]; + [self.femaleBtuton setTitle:YMLocalizedString(@"YUMI_Arrange_Mic_View_Controller_4") forState:UIControlStateNormal]; + } else { + self.femaleBtuton.hidden = YES; + self.maleBtuton.hidden = YES; + self.applyBtuton.hidden = NO; + } +} + +- (void)initSubViews { + self.view.backgroundColor = [UIColor clearColor]; + [self.view addSubview:self.apexRegard]; + [self.view addSubview:self.contentView]; + + [self.contentView addSubview:self.titleLabel]; + [self.contentView addSubview:self.burlywoodRegard]; + [self.contentView addSubview:self.tableView]; + [self.contentView addSubview:self.applyHierarchyRegard]; + + [self.applyHierarchyRegard addArrangedSubview:self.maleBtuton]; + [self.applyHierarchyRegard addArrangedSubview:self.applyBtuton]; + [self.applyHierarchyRegard addArrangedSubview:self.femaleBtuton]; +} + +- (void)initChildLyRestrictions { + [self.apexRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self.view); + make.bottom.mas_equalTo(self.contentView.mas_top); + }]; + + [self.contentView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.mas_equalTo(self.view); + make.height.mas_equalTo(450); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self.contentView); + make.height.mas_equalTo(44); + }]; + + [self.burlywoodRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.view); + make.top.mas_equalTo(self.titleLabel.mas_bottom); + make.height.mas_equalTo(1); + }]; + + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.mas_equalTo(self.contentView); + make.top.mas_equalTo(self.burlywoodRegard.mas_bottom); + }]; + + [self.applyHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.view).inset(45); + make.height.mas_equalTo(38); + make.bottom.mas_equalTo(self.view).offset(-kSafeAreaBottomHeight - 20); + }]; + +} + +- (NSMutableAttributedString *)produceScheduleLoudspeakerNevChampionAbout:(NSString *)count{ + if (self.datasource.count == 0) { + if (self.userInfo.isManager) { + NSMutableAttributedString *attributString = [[NSMutableAttributedString alloc] initWithString:YMLocalizedString(@"YUMI_Arrange_Mic_View_Controller_5") attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:16], NSForegroundColorAttributeName:[DJDKMIMOMColor mainEssayPrettify]}]; + return attributString; + }else{ + NSMutableAttributedString *attributString = [[NSMutableAttributedString alloc] initWithString:@"报名才能排麦哦~" attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:16], NSForegroundColorAttributeName:[DJDKMIMOMColor mainEssayPrettify]}]; + return attributString; + } + }else{ + if (self.userInfo.isManager) { + NSString * str = [NSString stringWithFormat:@"当前排麦的人数:%@", count]; + + NSMutableAttributedString *attributString = [[NSMutableAttributedString alloc] initWithString:str attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:16], NSForegroundColorAttributeName:[DJDKMIMOMColor mainEssayPrettify]}]; + [attributString addAttribute:NSForegroundColorAttributeName value:[DJDKMIMOMColor aplictowardsionUnderlinePrettify] range:[str rangeOfString:count]]; + return attributString; + }else{ + if ([count intValue] > 0) { + count = count.length > 0 ? count : @"0"; + NSString * str = [NSString stringWithFormat:@"我在队列中排列位置:%ld", [count integerValue]]; + NSMutableAttributedString *attributString = [[NSMutableAttributedString alloc] initWithString:str attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:16], NSForegroundColorAttributeName:[DJDKMIMOMColor mainEssayPrettify]}]; + [attributString addAttribute:NSForegroundColorAttributeName value:[DJDKMIMOMColor aplictowardsionUnderlinePrettify] range:[str rangeOfString:count]]; + return attributString; + }else{ + NSMutableAttributedString *attributString = [[NSMutableAttributedString alloc] initWithString:@"报名才能排麦哦~" attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:16], NSForegroundColorAttributeName:[DJDKMIMOMColor mainEssayPrettify]}]; + return attributString; + } + + } + } +} + +#pragma mark - 上麦操作 +- (NSString *)prohibiticoverySpokePolariztowardsion { + if (self.micQueue != nil && self.micQueue.allKeys.count > 0) { + NSArray *keys = [self.micQueue allKeys]; + NSArray *result = [keys sortedArrayUsingComparator:^NSComparisonResult(id _Nonnull obj1, id _Nonnull obj2) { + return [obj1 compare:obj2]; + }]; + if (result.count > 0) { + for (NSString *key in result) { + MiecreoscoopeMHTueueMatrix *microQueue = [self.micQueue objectForKey:key]; + MiecreoscoopeStateMatrix * micstatus= microQueue.microState; + if (![key isEqualToString:@"-1"] && !microQueue.userInfo && micstatus.posState == MiecreoscoopePosDeclareGenre_Lock) { + return key; + break; + } + } + } + } + return nil; +} + +- (NSString *)prohibiticoverySpokeBlindPolariztowardsion:(GroupGenre)groupType { + if (self.micQueue != nil && self.micQueue.allKeys.count > 0) { + NSArray *keys = [self.micQueue allKeys]; + NSArray *result = [keys sortedArrayUsingComparator:^NSComparisonResult(id _Nonnull obj1, id _Nonnull obj2) { + return [obj1 compare:obj2]; + }]; + if (result.count > 0) { + if (groupType == GroupGenre_Red) { + for (NSString *key in result) { + MiecreoscoopeMHTueueMatrix *microQueue = [self.micQueue objectForKey:key]; + ConsumerAbstractMatrix *userInfo = microQueue.userInfo; + MiecreoscoopeStateMatrix * micstatus= microQueue.microState; + if (![key isEqualToString:@"-1"] && + !userInfo && + micstatus.posState == MiecreoscoopePosDeclareGenre_Lock && + ([key isEqualToString:@"2"] || + [key isEqualToString:@"3"] || + [key isEqualToString:@"6"] || + [key isEqualToString:@"7"])) { + return key; + break; + } + } + }else { + for (NSString *key in result) { + MiecreoscoopeMHTueueMatrix *microQueue = [self.micQueue objectForKey:key]; + ConsumerAbstractMatrix *userInfo = microQueue.userInfo; + MiecreoscoopeStateMatrix * micstatus= microQueue.microState; + if (![key isEqualToString:@"-1"] && + !userInfo && + micstatus.posState == MiecreoscoopePosDeclareGenre_Lock && + ([key isEqualToString:@"0"] || + [key isEqualToString:@"1"] || + [key isEqualToString:@"4"] || + [key isEqualToString:@"5"])) { + return key; + break; + } + } + } + } + } + return nil; +} + +- (BOOL)isOnMicro:(NSString *)uid{ + NSArray *chatRoomMicSequences = [self.micQueue allValues] ; + if (chatRoomMicSequences != nil && chatRoomMicSequences.count > 0) { + for (int i = 0; i < chatRoomMicSequences.count; i ++) { + MiecreoscoopeMHTueueMatrix *microQueue = chatRoomMicSequences[i]; + if (microQueue.userInfo.uid == uid.integerValue) { + return YES; + } + } + } + return NO; +} + +#pragma mark - NIMChatManagerDelegate +- (void)onRecvMessages:(NSArray *)messages { + for (NIMMessage * message in messages) { + + if (message.session.sessionType != NIMSessionTypeChatroom) { + continue; + } + + if (![message.session.sessionId isEqualToString:self.userInfo.roomId]) { + continue; + } + if (message.messageType == NIMMessageTypeCustom) { + NIMCustomObject *obj = (NIMCustomObject *)message.messageObject; + if (obj.attachment != nil && [obj.attachment isKindOfClass:[AttachmentMatrix class]]) { + AttachmentMatrix * attachment = obj.attachment; + if (attachment.first == IndividualityCommunicationGenre_Arrange_Mic) { + switch (attachment.second) { + case Custom_Message_Sub_Room_PK_Empty: + case Custom_Message_Sub_Room_PK_Non_Empty: + case Custom_Message_Sub_Arrange_Mic_Non_Empty: + case Custom_Message_Sub_Arrange_Mic_Empty: + [self intelligenceerRenovtowardseh]; + break; + case Custom_Message_Sub_Room_PK_Mode_Close: + case Custom_Message_Sub_Arrange_Mic_Mode_Close: + [self dismissViewControllerAnimated:YES completion:nil]; + break; + + default: + break; + } + } else if(attachment.first == IndividualityCommunicationGenre_Queue && attachment.second == Custom_Message_Sub_Queue_Invite) { + ScheduleLoudspeakerConsumerMatrix * userInfo = [ScheduleLoudspeakerConsumerMatrix mtowardsrixAboutImpactbasket:attachment.data]; + if (userInfo.uid.integerValue == [AccountAbstractStorage instance].acquireCid.integerValue) { + [self intelligenceerRenovtowardseh]; + } + } else if(attachment.first == IndividualityCommunicationGenre_Room_PK && attachment.second == Custom_Message_Sub_Room_PK_Manager_Up_Mic) { + ScheduleLoudspeakerConsumerMatrix * userInfo = [ScheduleLoudspeakerConsumerMatrix mtowardsrixAboutImpactbasket:[attachment.data objectForKey:[AccountAbstractStorage instance].acquireCid]]; + if (userInfo.uid.integerValue == [AccountAbstractStorage instance].acquireCid.integerValue) { + [self intelligenceerRenovtowardseh]; + } + } + } + } else if(message.messageType == NIMMessageTypeNotification) { + [self shankNEMCCircularCommunictowardsion:message]; + } + } +} + +- (void)shankNEMCCircularCommunictowardsion:(NIMMessage *)message { + NIMNotificationObject *notiMsg = (NIMNotificationObject *)message.messageObject; + NIMChatroomNotificationContent *content = (NIMChatroomNotificationContent *)notiMsg.content; + switch (content.eventType) { + case NIMChatroomEventTypeInfoUpdated: + { + NSDictionary *data = [content.notifyExt toJSONGroal]; + int type = [data[@"type"] intValue]; + NSArray* microStates; + switch (type) { + case 2: + microStates = @[[MiecreoscoopeStateMatrix mtowardsrixAboutJSON:data[@"micInfo"]]]; + break; + case 3: + microStates = [MiecreoscoopeStateMatrix mtowardsrixsAboutGarment:data[@"micInfo"]]; + break; + } + if (microStates && microStates.count > 0) { + for (MiecreoscoopeStateMatrix *microState in microStates) { + MiecreoscoopeMHTueueMatrix *micSequence = [self.micQueue objectForKey:[NSString stringWithFormat:@"%d", microState.position]]; + micSequence.microState = microState; + } + } + } + break; + + case NIMChatroomEventTypeQueueChange: + { + NSDictionary* data = (NSDictionary *)content.ext; + NSString* position = [data objectForKey:NIMChatroomEventInfoQueueChangeItemKey]; + ConsumerAbstractMatrix* userInfo = [ConsumerAbstractMatrix mtowardsrixAboutJSON:[data objectForKey:NIMChatroomEventInfoQueueChangeItemValueKey]]; + NSInteger changeType = [data[NIMChatroomEventInfoQueueChangeTypeKey] integerValue]; + + + for (MiecreoscoopeMHTueueMatrix *sequence in self.micQueue.allValues) { + if (userInfo.uid == sequence.userInfo.uid) { + sequence.userInfo = nil; + } + } + + if (changeType == 1) { + MiecreoscoopeMHTueueMatrix *sequence = [self.micQueue objectForKey:position]; + sequence.userInfo = userInfo; + } + } + break; + case NIMChatroomEventTypeExit: + case NIMChatroomEventTypeKicked: + { + for (NIMChatroomNotificationMember *member in content.targets) { + for (MiecreoscoopeMHTueueMatrix *sequence in self.micQueue.allValues) { + if (member.userId.integerValue == sequence.userInfo.uid) { + sequence.userInfo = nil; + } + } + } + } + break; + default: + break; + } +} + +#pragma mark - FBCArrangeMicCeremony +- (void)acquireChamberScheduleLoudspeakerSttowardsementAccomplishment:(ScheduleLoudspeakerMatrix *)listMatrix state:(int)state{ + self.arrangeLoudspeakerAbstract = listMatrix; + if (state == 0) { + [self.datasource removeAllObjects]; + [self.tableView.mj_header endRefreshing]; + } else { + [self.tableView.mj_footer endRefreshing]; + } + if (listMatrix.queue.count > 0) { + self.hasNoFurthaerAtoloudspeaker = NO; + [self.datasource addObjectsFromArray:listMatrix.queue]; + } else { + self.hasNoFurthaerAtoloudspeaker = YES; + [self.tableView.mj_footer endRefreshingWithNoMoreData]; + } + [self.tableView reloadData]; + + if (self.userInfo.isManager) { + self.applyBtuton.hidden = listMatrix.queue.count > 0; + } else { + if (listMatrix.myPos.intValue > 0) { + self.applyBtuton.hidden = NO; + self.maleBtuton.hidden = YES; + self.femaleBtuton.hidden = YES; + [self.applyBtuton setTitle:YMLocalizedString(@"YUMI_Arrange_Mic_View_Controller_10") forState:UIControlStateNormal]; + } else { + if (self.userInfo.type == ArrangeLoudspeakerGenre_Dating) { + self.femaleBtuton.hidden = NO; + self.maleBtuton.hidden = NO; + self.applyBtuton.hidden = YES; + } else { + self.femaleBtuton.hidden = YES; + self.maleBtuton.hidden = YES; + self.applyBtuton.hidden = NO; + } + } + } + self.titleLabel.attributedText = [self produceScheduleLoudspeakerNevChampionAbout:listMatrix.count]; + self.titleLabel.textAlignment = NSTextAlignmentCenter; +} + +- (void)acquireChamberScheduleLoudspeakerSttowardsementFlunk:(NSString *)msg state:(int)state { + if (state == 0) { + [self.tableView.mj_header endRefreshing]; + } else { + [self.tableView.mj_header endRefreshing]; + } +} + +- (void)demandScheduleLoudspeakerAccomplishment { + [self intelligenceerRenovtowardseh]; +} + +- (void)revoctowardsionScheduleLoudspeakerAccomplishment { + [self intelligenceerRenovtowardseh]; +} + +- (void)acquireChamberCombatComponentSttowardsementFlunk:(NSString *)msg state:(int)state { + if (state == 0) { + [self.tableView.mj_header endRefreshing]; + } else { + [self.tableView.mj_header endRefreshing]; + } +} + +- (void)acquireChamberCombatComponentSttowardsementAccomplishment:(ScheduleLoudspeakerMatrix *)listMatrix state:(int)state { + self.arrangeLoudspeakerAbstract = listMatrix; + if (state == 0) { + [self.datasource removeAllObjects]; + [self.tableView.mj_header endRefreshing]; + } else { + [self.tableView.mj_footer endRefreshing]; + } + if (listMatrix.queue.count > 0) { + self.hasNoFurthaerAtoloudspeaker = NO; + [self.datasource addObjectsFromArray:listMatrix.queue]; + } else { + self.hasNoFurthaerAtoloudspeaker = YES; + [self.tableView.mj_footer endRefreshingWithNoMoreData]; + } + [self.tableView reloadData]; + + if (self.userInfo.isManager) { + self.applyBtuton.hidden = listMatrix.queue.count > 0; + } else { + if (listMatrix.myPos.intValue > 0) { + self.applyBtuton.hidden = NO; + self.maleBtuton.hidden = YES; + self.femaleBtuton.hidden = YES; + [self.applyBtuton setTitle:YMLocalizedString(@"YUMI_Arrange_Mic_View_Controller_11") forState:UIControlStateNormal]; + } else { + self.femaleBtuton.hidden = NO; + self.maleBtuton.hidden = NO; + self.applyBtuton.hidden = YES; + } + } + self.titleLabel.attributedText = [self produceScheduleLoudspeakerNevChampionAbout:listMatrix.count]; + self.titleLabel.textAlignment = NSTextAlignmentCenter; +} + +#pragma mark - XCShareRegardRepresendtation +- (void)partowardsiciptowardsionRegard:(YUMIParaticipationRegard *)partowardsiciptowardsionRegard shareFail:(NSString *)message { + [MKJPopup dismiss]; + [self EvidenceMistakeToast:message]; +} + +- (void)partowardsiciptowardsionRegard:(YUMIParaticipationRegard *)partowardsiciptowardsionRegard didSuccess:(YUMIParaticipationAbstractMatrix *)shareInfo{ + [MKJPopup dismiss]; +} + +- (void)partowardsiciptowardsionRegardDidTicktackRevoctowardsion:(YUMIParaticipationRegard *)partowardsiciptowardsionRegard { + [MKJPopup dismiss]; +} + +#pragma mark - FBCArrangeMicTabulationViweElementRepresendtation +- (void)yUMIScheduleLoudspeakerTarbsultowardsionViweElement:(YUMIScheduleLoudspeakerTabulationRegardElement *)view inviteUser:(ScheduleLoudspeakerConsumerMatrix *)userInfo { + NSString *position; + if (self.userInfo.type == ArrangeLoudspeakerGenre_Dating) { + position = [self prohibiticoverySpokeBlindPolariztowardsion:userInfo.groupType]; + }else { + position = [self prohibiticoverySpokePolariztowardsion]; + } + NSString * uid = userInfo.uid; + if (position.length > 0) { + if (self.userInfo.type == ArrangeLoudspeakerGenre_Room_PK) { + NSMutableDictionary * dic = [NSMutableDictionary dictionary]; + [dic secureSetGroal:position forKey:@"position"]; + [dic secureSetGroal:uid forKey:@"uid"]; + [dic secureSetGroal:@(userInfo.groupType) forKey:@"groupType"]; + [dic secureSetGroal:userInfo.nick forKey:@"nick"]; + AttachmentMatrix * attachment = [[AttachmentMatrix alloc] init]; + attachment.first = IndividualityCommunicationGenre_Room_PK; + attachment.second = Custom_Message_Sub_Room_PK_Manager_Up_Mic; + attachment.data = @{uid:dic}; + NIMMessage *message = [[NIMMessage alloc]init]; + NIMCustomObject *object = [[NIMCustomObject alloc] init]; + object.attachment = attachment; + message.messageObject = object; + + NIMSession *session = [NIMSession session:self.userInfo.roomId type:NIMSessionTypeChatroom]; + [[NIMSDK sharedSDK].chatManager sendMessage:message toSession:session error:nil]; + } else { + NSMutableDictionary * dic = [NSMutableDictionary dictionary]; + [dic secureSetGroal:@(position.integerValue) forKey:@"micPosition"]; + [dic secureSetGroal:@(uid.integerValue) forKey:@"uid"]; + AttachmentMatrix *attachement = [[AttachmentMatrix alloc]init]; + attachement.first = IndividualityCommunicationGenre_Queue; + attachement.second = Custom_Message_Sub_Queue_Invite; + attachement.data = dic; + + NIMMessage *message = [[NIMMessage alloc]init]; + NIMCustomObject *object = [[NIMCustomObject alloc] init]; + object.attachment = attachement; + message.messageObject = object; + + NIMSession *session = [NIMSession session:self.userInfo.roomId type:NIMSessionTypeChatroom]; + [[NIMSDK sharedSDK].chatManager sendMessage:message toSession:session error:nil]; + [self dismissViewControllerAnimated:YES completion:nil]; + } + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + [self intelligenceerRenovtowardseh]; + }); + } else { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_Arrange_Mic_View_Controller_12")]; + } +} +#pragma mark - UITableViewDelegate And UITableViewDataSource +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.datasource.count > 0 ? self.datasource.count : 1; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + if (self.datasource.count > 0) { + YUMIScheduleLoudspeakerTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIScheduleLoudspeakerTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIScheduleLoudspeakerTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIScheduleLoudspeakerTabulationRegardElement class])]; + } + ScheduleLoudspeakerConsumerMatrix * userInfo = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + userInfo.arrangeMicType = self.userInfo.type; + cell.isManager = self.userInfo.isManager; + userInfo.number = indexPath.row + 1; + cell.userInfo = userInfo; + cell.delegate = self; + return cell; + } + + YUMIScheduleLoudspeakerDispossessTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIScheduleLoudspeakerDispossessTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIScheduleLoudspeakerDispossessTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIScheduleLoudspeakerDispossessTabulationRegardElement class])]; + } + cell.emptyTitle = self.userInfo.isManager ? @"冷冷清清的无人排麦哦~\n分享房间邀请好友加入一起嗨" : @"立即报名,你就是排麦第一人啦!"; + return cell; +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + [tableView deselectRowAtIndexPath:indexPath animated:YES]; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + if (self.datasource.count > 0) { + return 65; + } + return 400; +} + +#pragma mark - Event Response +- (void)demandBtutonPerformance:(UIButton *)sender { + if (self.userInfo.isManager) { + return; + YUMIParaticipationProvision *cycle = [YUMIParaticipationProvision itemWitCouple:XPShareItemTagMoments title:YMLocalizedString(@"YUMI_Arrange_Mic_View_Controller_15") imageName:@"share_wechat_circle_normal" disableImageName:@"share_wechat_circle_disable"]; + YUMIParaticipationProvision *wechat = [YUMIParaticipationProvision itemWitCouple:XPShareItemTagWeChat title:YMLocalizedString(@"YUMI_Arrange_Mic_View_Controller_16") imageName:@"share_wechat_normal" disableImageName:@"share_wechat_disable"]; + YUMIParaticipationProvision *qq = [YUMIParaticipationProvision itemWitCouple:XPShareItemTagQQ title:YMLocalizedString(@"YUMI_Arrange_Mic_View_Controller_17") imageName:@"share_qq_normal" disableImageName:@"share_qq_disable"]; + YUMIParaticipationProvision *qqzone = [YUMIParaticipationProvision itemWitCouple:XPShareItemTagQQZone title:YMLocalizedString(@"YUMI_Arrange_Mic_View_Controller_18") imageName:@"share_qqzone_normal" disableImageName:@"share_qqzone_disable"]; + NSArray * items = @[wechat,cycle, qq, qqzone]; + YUMIParaticipationAbstractMatrix * shareInfo = [[YUMIParaticipationAbstractMatrix alloc] init]; + shareInfo.shareTitle = self.userInfo.roomTitle; + shareInfo.shareContent = self.userInfo.nick; + shareInfo.shareImageUrl = self.userInfo.roomAvatar; + shareInfo.type = ShareGenre_Room; + shareInfo.roomUid = self.userInfo.roomUid.integerValue; + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NSString * urlString = [NSString stringWithFormat:@"%@/%@?shareUid=%@&uid=%@&room_name=%@&room_id=%@&room_avatar=%@&share_name=%@",API_HOST_URL,URLWithType(kShareRoomURL),uid,self.userInfo.roomUid,self.userInfo.nick,self.userInfo.roomId,self.userInfo.roomAvatar,self.userInfo.nick]; + shareInfo.shareUrl = urlString; + CGFloat margin = 15; + CGSize itemSize = CGSizeMake((KScreenWidth-2*margin)/4, 65); + YUMIParaticipationRegard *partowardsiciptowardsionRegard = [[YUMIParaticipationRegard alloc] initWithItems:items itemSize:itemSize shareInfo:shareInfo]; + partowardsiciptowardsionRegard.delegate = self; + [MKJPopup popupRegard:partowardsiciptowardsionRegard style:MKJPopupStyleActionSheet]; + + } else { + if (self.arrangeLoudspeakerAbstract.myPos.integerValue > 0) { + [MKJPopup precautiousAboutCommunictowardsion:@"取消报名后再次报名需要重新排麦哦!确认取消报名吗?" acknowledgementHandler:^{ + if (self.userInfo.type == ArrangeLoudspeakerGenre_Dating) { + __block GroupGenre grouptype = GroupGenre_default; + [self.arrangeLoudspeakerAbstract.queue enumerateObjectsUsingBlock:^(ScheduleLoudspeakerConsumerMatrix * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if (obj.uid.integerValue == [AccountAbstractStorage instance].acquireCid.integerValue) { + grouptype = obj.groupType; + *stop = YES; + } + }]; + [self.presimport revoctowardsionChamberScheduleLoudspeaker:self.userInfo.roomUid groupType:grouptype]; + } else if(self.userInfo.type == ArrangeLoudspeakerGenre_Room_PK) { + __block GroupGenre grouptype = GroupGenre_default; + [self.arrangeLoudspeakerAbstract.queue enumerateObjectsUsingBlock:^(ScheduleLoudspeakerConsumerMatrix * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if (obj.uid.integerValue == [AccountAbstractStorage instance].acquireCid.integerValue) { + grouptype = obj.groupType; + *stop = YES; + } + }]; + [self.presimport revoctowardsionChamberCombatScheduleLoudspeaker:self.userInfo.roomUid groupType:grouptype]; + } else { + [self.presimport revoctowardsionChamberScheduleLoudspeaker:self.userInfo.roomUid groupType:0]; + } + } cancelHandler:^{ + }]; + } else { + if ([self isOnMicro:[AccountAbstractStorage instance].acquireCid]) { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_Arrange_Mic_View_Controller_20")]; + } else { + if (self.userInfo.type== ArrangeLoudspeakerGenre_Room_PK) { + [self.presimport demandChamberCombatScheduleLoudspeaker:self.userInfo.roomUid groupType:0]; + } else { + [self.presimport demandChamberScheduleLoudspeaker:self.userInfo.roomUid groupType:0]; + } + } + } + } +} + +- (void)prohibitiaplictowardsionarScheduleLoudspeakerRecognition { + [self dismissViewControllerAnimated:YES completion:nil]; +} + +- (void)maleBtutonPerformance:(UIButton *)sender { + if ([self isOnMicro:[AccountAbstractStorage instance].acquireCid]) { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_Arrange_Mic_View_Controller_21")]; + } else { + if (self.userInfo.type == ArrangeLoudspeakerGenre_Room_PK) { + [self.presimport demandChamberCombatScheduleLoudspeaker:self.userInfo.roomUid groupType:GroupGenre_Blue]; + } else { + [self.presimport demandChamberScheduleLoudspeaker:self.userInfo.roomUid groupType:GroupGenre_Blue]; + } + + } +} + +- (void)femaleBtutonPerformance:(UIButton *)sender { + if ([self isOnMicro:[AccountAbstractStorage instance].acquireCid]) { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_Arrange_Mic_View_Controller_22")]; + } else { + if (self.userInfo.type == ArrangeLoudspeakerGenre_Room_PK) { + [self.presimport demandChamberCombatScheduleLoudspeaker:self.userInfo.roomUid groupType:GroupGenre_Red]; + } else{ + [self.presimport demandChamberScheduleLoudspeaker:self.userInfo.roomUid groupType:GroupGenre_Red]; + } + } +} + +#pragma mark - Getters And Setters +- (void)setType:(ArrangeLoudspeakerGenre)type { + +} + +- (UIView *)apexRegard { + if (!_apexRegard) { + _apexRegard = [[UIView alloc] init]; + _apexRegard.backgroundColor = [UIColor clearColor]; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(prohibitiaplictowardsionarScheduleLoudspeakerRecognition)]; + [_apexRegard addGestureRecognizer:tap]; + } + return _apexRegard; +} +- (UIView *)contentView { + if (!_contentView) { + _contentView = [[UIView alloc] init]; + _contentView.backgroundColor = [UIColor whiteColor]; + CAShapeLayer * layer = [CAShapeLayer layer]; + UIBezierPath * path = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, KScreenWidth, 450) byRoundingCorners:UIRectCornerTopLeft | UIRectCornerTopRight cornerRadii:CGSizeMake(12, 12)]; + layer.path = path.CGPath; + _contentView.layer.mask = layer; + } + return _contentView; +} + +- (UIButton *)maleBtuton{ + if (!_maleBtuton) { + _maleBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_maleBtuton setBackgroundColor:UIColorFromRGB(0x518EFF)]; + [_maleBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + [_maleBtuton setTitle:YMLocalizedString(@"YUMI_Arrange_Mic_View_Controller_23") forState:UIControlStateNormal]; + _maleBtuton.titleLabel.font = [UIFont systemFontOfSize:16]; + _maleBtuton.layer.masksToBounds = YES; + _maleBtuton.layer.cornerRadius = 38 / 2; + [_maleBtuton addTarget:self action:@selector(maleBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _maleBtuton; +} + +- (UIButton *)femaleBtuton{ + if (!_femaleBtuton) { + _femaleBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_femaleBtuton setBackgroundColor:UIColorFromRGB(0xFF6B77)]; + [_femaleBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + [_femaleBtuton setTitle:YMLocalizedString(@"YUMI_Arrange_Mic_View_Controller_24") forState:UIControlStateNormal]; + _femaleBtuton.titleLabel.font = [UIFont systemFontOfSize:16]; + _femaleBtuton.layer.masksToBounds = YES; + _femaleBtuton.layer.cornerRadius = 38 / 2; + [_femaleBtuton addTarget:self action:@selector(femaleBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _femaleBtuton; +} + +- (UIButton *)applyBtuton{ + if (!_applyBtuton) { + _applyBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_applyBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + [_applyBtuton setTitle:YMLocalizedString(@"YUMI_Arrange_Mic_View_Controller_25") forState:UIControlStateNormal]; + _applyBtuton.titleLabel.font = [UIFont systemFontOfSize:16]; + _applyBtuton.layer.masksToBounds = YES; + _applyBtuton.layer.cornerRadius = 38 / 2; + [_applyBtuton addTarget:self action:@selector(demandBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _applyBtuton; +} + +- (UIStackView *)applyHierarchyRegard { + if (!_applyHierarchyRegard) { + _applyHierarchyRegard = [[UIStackView alloc] init]; + _applyHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _applyHierarchyRegard.distribution = UIStackViewDistributionFillEqually; + _applyHierarchyRegard.alignment = UIStackViewAlignmentFill; + _applyHierarchyRegard.spacing = 20; + } + return _applyHierarchyRegard; +} + +- (UILabel *)titleLabel{ + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + } + return _titleLabel; +} + +- (UIView *)burlywoodRegard{ + if (!_burlywoodRegard) { + _burlywoodRegard = [[UIView alloc] init]; + _burlywoodRegard.backgroundColor = [DJDKMIMOMColor dividerPrettify]; + } + return _burlywoodRegard; +} + +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.rowHeight = 65; + _tableView.tableFooterView = [UIView new]; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.backgroundColor = [UIColor clearColor]; + if (@available(iOS 11.0, *)) { + _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + [_tableView registerClass:[YUMIScheduleLoudspeakerTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIScheduleLoudspeakerTabulationRegardElement class])]; + [_tableView registerClass:[YUMIScheduleLoudspeakerDispossessTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIScheduleLoudspeakerDispossessTabulationRegardElement class])]; + } + return _tableView; +} + +- (NSMutableArray *)datasource { + if (!_datasource) { + _datasource = [NSMutableArray array]; + } + return _datasource; +} + + +@end diff --git a/YuMi/Modules/YMRoom/View/BackMusic/Model/Manual+CoreDataClass.h b/YuMi/Modules/YMRoom/View/BackMusic/Model/Manual+CoreDataClass.h new file mode 100644 index 00000000..178e83a1 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/BackMusic/Model/Manual+CoreDataClass.h @@ -0,0 +1,20 @@ +// +// Manual+CoreDataClass.h +// +// +// Created by YUMI on 2022/5/9. +// +// + +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface Manual : NSManagedObject + +@end + +NS_ASSUME_NONNULL_END + +#import "Manual+CoreDataProperties.h" diff --git a/YuMi/Modules/YMRoom/View/BackMusic/Model/Manual+CoreDataClass.m b/YuMi/Modules/YMRoom/View/BackMusic/Model/Manual+CoreDataClass.m new file mode 100644 index 00000000..82beddce --- /dev/null +++ b/YuMi/Modules/YMRoom/View/BackMusic/Model/Manual+CoreDataClass.m @@ -0,0 +1,13 @@ +// +// Manual+CoreDataClass.m +// +// +// Created by YUMI on 2022/5/9. +// +// + +#import "Manual+CoreDataClass.h" + +@implementation Manual + +@end diff --git a/YuMi/Modules/YMRoom/View/BackMusic/Model/Manual+CoreDataProperties.h b/YuMi/Modules/YMRoom/View/BackMusic/Model/Manual+CoreDataProperties.h new file mode 100644 index 00000000..e2ecaf0b --- /dev/null +++ b/YuMi/Modules/YMRoom/View/BackMusic/Model/Manual+CoreDataProperties.h @@ -0,0 +1,28 @@ +// +// Manual+CoreDataProperties.h +// +// +// Created by YUMI on 2022/5/9. +// +// + +#import "Manual+CoreDataClass.h" + + +NS_ASSUME_NONNULL_BEGIN + +@interface Manual (CoreDataProperties) + ++ (NSFetchRequest *)fetchRequest NS_SWIFT_NAME(fetchRequest()); + +@property (nullable, nonatomic, copy) NSString *author; +@property (nullable, nonatomic, copy) NSString *filePath; +@property (nullable, nonatomic, copy) NSString *musicArtists; +@property (nullable, nonatomic, copy) NSString *musicId; +@property (nullable, nonatomic, copy) NSString *musicName; +@property (nullable, nonatomic, retain) NSData *songAlbum; +@property (nullable, nonatomic, copy) NSString *songName; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/BackMusic/Model/Manual+CoreDataProperties.m b/YuMi/Modules/YMRoom/View/BackMusic/Model/Manual+CoreDataProperties.m new file mode 100644 index 00000000..e3dfb841 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/BackMusic/Model/Manual+CoreDataProperties.m @@ -0,0 +1,25 @@ +// +// Manual+CoreDataProperties.m +// +// +// Created by YUMI on 2022/5/9. +// +// + +#import "Manual+CoreDataProperties.h" + +@implementation Manual (CoreDataProperties) + ++ (NSFetchRequest *)fetchRequest { + return [NSFetchRequest fetchRequestWithEntityName:@"Manual"]; +} + +@dynamic author; +@dynamic filePath; +@dynamic musicArtists; +@dynamic musicId; +@dynamic musicName; +@dynamic songAlbum; +@dynamic songName; + +@end diff --git a/YuMi/Modules/YMRoom/View/BackMusic/Presenter/YUMICoreAtomicExecutive.h b/YuMi/Modules/YMRoom/View/BackMusic/Presenter/YUMICoreAtomicExecutive.h new file mode 100644 index 00000000..12153f07 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/BackMusic/Presenter/YUMICoreAtomicExecutive.h @@ -0,0 +1,25 @@ +// +// YMCoreDataManager.h +// YUMI +// +// Created by YUMI on 2022/5/9. +// + +#import +#import +NS_ASSUME_NONNULL_BEGIN + +@interface YUMICoreAtomicExecutive : NSObject ++(YUMICoreAtomicExecutive *)partowardsiciptowardsionInstance; + +@property(nonatomic,strong)NSManagedObjectContext *managedObjectContext; + +@property(nonatomic,strong)NSManagedObjectModel *managedObjectModel; + +@property(nonatomic,strong)NSPersistentStoreCoordinator *persistentStoreCoordinator; + + +-(void)save; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/BackMusic/Presenter/YUMICoreAtomicExecutive.m b/YuMi/Modules/YMRoom/View/BackMusic/Presenter/YUMICoreAtomicExecutive.m new file mode 100644 index 00000000..bbbd7460 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/BackMusic/Presenter/YUMICoreAtomicExecutive.m @@ -0,0 +1,58 @@ +// +// YMCoreDataManager.m +// YUMI +// +// Created by YUMI on 2022/5/9. +// + +#import "YUMICoreAtomicExecutive.h" + +@implementation YUMICoreAtomicExecutive +static YUMICoreAtomicExecutive *manager = nil; ++(YUMICoreAtomicExecutive *)partowardsiciptowardsionInstance{ + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + manager = [[YUMICoreAtomicExecutive alloc]init]; + }); + return manager; +} + +-(NSURL *)acquireDocumnetWeebsiteptowardsh{ + return [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject]; +} + +-(NSManagedObjectContext *)managedObjectContext{ + if (!_managedObjectContext) { + + _managedObjectContext = [[NSManagedObjectContext alloc]initWithConcurrencyType:NSMainQueueConcurrencyType]; + + _managedObjectContext.persistentStoreCoordinator = self.persistentStoreCoordinator; + } + return _managedObjectContext; +} + +-(NSManagedObjectModel *)managedObjectModel{ + if (!_managedObjectModel) { + + _managedObjectModel = [NSManagedObjectModel mergedModelFromBundles:nil]; + } + return _managedObjectModel; +} + +-(NSPersistentStoreCoordinator *)persistentStoreCoordinator{ + if (!_persistentStoreCoordinator) { + + _persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc]initWithManagedObjectModel:self.managedObjectModel]; + + + NSURL *url = [[self acquireDocumnetWeebsiteptowardsh] URLByAppendingPathComponent:@"sqlit.db" isDirectory:true]; + [_persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:url options:nil error:nil]; + } + return _persistentStoreCoordinator; +} + +-(void)save{ + [self.managedObjectContext save:nil]; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/BackMusic/Presenter/YuMi.xcdatamodeld/xplan-ios.xcdatamodel/contents b/YuMi/Modules/YMRoom/View/BackMusic/Presenter/YuMi.xcdatamodeld/xplan-ios.xcdatamodel/contents new file mode 100644 index 00000000..217702cf --- /dev/null +++ b/YuMi/Modules/YMRoom/View/BackMusic/Presenter/YuMi.xcdatamodeld/xplan-ios.xcdatamodel/contents @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/YuMi/Modules/YMRoom/View/BackMusic/View/Cell/YUMIChamberManualBibliothecaDispossessTabulationRegardElement.h b/YuMi/Modules/YMRoom/View/BackMusic/View/Cell/YUMIChamberManualBibliothecaDispossessTabulationRegardElement.h new file mode 100644 index 00000000..c840f15a --- /dev/null +++ b/YuMi/Modules/YMRoom/View/BackMusic/View/Cell/YUMIChamberManualBibliothecaDispossessTabulationRegardElement.h @@ -0,0 +1,21 @@ +// +// YMRoomMusicLibraryEmptyTableViewCell.h +// YUMI +// +// Created by YUMI on 2022/5/9. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class YUMIChamberManualBibliothecaDispossessTabulationRegardElement; +@protocol FBCChamberManualLibraryEmptyTabulationViweElementRepresendtation + +- (void)yUMIChamberManualLibraryDispossessTarbsultowardsionViweElement:(YUMIChamberManualBibliothecaDispossessTabulationRegardElement *)cell didClickAdd:(UIButton *)sender; + +@end +@interface YUMIChamberManualBibliothecaDispossessTabulationRegardElement : UITableViewCell +@property (nonatomic,weak) id delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/BackMusic/View/Cell/YUMIChamberManualBibliothecaDispossessTabulationRegardElement.m b/YuMi/Modules/YMRoom/View/BackMusic/View/Cell/YUMIChamberManualBibliothecaDispossessTabulationRegardElement.m new file mode 100644 index 00000000..30263b37 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/BackMusic/View/Cell/YUMIChamberManualBibliothecaDispossessTabulationRegardElement.m @@ -0,0 +1,96 @@ +// +// YMRoomMusicLibraryEmptyTableViewCell.m +// YUMI +// +// Created by YUMI on 2022/5/9. +// + +#import "YUMIChamberManualBibliothecaDispossessTabulationRegardElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "UIIndicateConstant.h" + +@interface YUMIChamberManualBibliothecaDispossessTabulationRegardElement () +@property (nonatomic,strong) UIImageView *dispossessIndicateRegard; +@property (nonatomic,strong) UILabel *titleLabel; +@property (nonatomic,strong) UIButton *accelerateBtuton; +@end + +@implementation YUMIChamberManualBibliothecaDispossessTabulationRegardElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} +#pragma mark - Private Method +- (void)initSubViews { + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.dispossessIndicateRegard]; + [self.contentView addSubview:self.titleLabel]; + [self.contentView addSubview:self.accelerateBtuton]; +} + +- (void)initChildLyRestrictions { + [self.dispossessIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.contentView).offset(150); + make.centerX.mas_equalTo(self.contentView); + make.size.mas_equalTo(CGSizeMake(200, 200)); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.dispossessIndicateRegard.mas_bottom).offset(20); + make.left.right.mas_equalTo(self.contentView); + }]; + + [self.accelerateBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(100, 30)); + make.centerX.mas_equalTo(self.contentView); + make.top.mas_equalTo(self.titleLabel.mas_bottom).offset(20); + }]; +} +#pragma mark - Event Response +- (void)accelertowardseBtutonPerformance:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIChamberManualLibraryDispossessTarbsultowardsionViweElement:didClickAdd:)]) { + [self.delegate yUMIChamberManualLibraryDispossessTarbsultowardsionViweElement:self didClickAdd:sender]; + } +} + +#pragma mark - Getters And Setters +- (UIImageView *)dispossessIndicateRegard { + if (!_dispossessIndicateRegard) { + _dispossessIndicateRegard = [[UIImageView alloc] init]; + _dispossessIndicateRegard.userInteractionEnabled = YES; + _dispossessIndicateRegard.image = [UIIndicateConstant defalutDispossessDepapossessor]; + _dispossessIndicateRegard.layer.masksToBounds = YES; + _dispossessIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _dispossessIndicateRegard; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.text = YMLocalizedString(@"YUMI_Room_Music_Library_Empty_Table_View_Cell_0"); + _titleLabel.font = [UIFont systemFontOfSize:16]; + _titleLabel.textAlignment = NSTextAlignmentCenter; + _titleLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + } + return _titleLabel; +} + +- (UIButton *)accelerateBtuton { + if (!_accelerateBtuton) { + _accelerateBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_accelerateBtuton setTitle:YMLocalizedString(@"YUMI_Room_Music_Library_Empty_Table_View_Cell_1") forState:UIControlStateNormal]; + [_accelerateBtuton setTitleColor:[DJDKMIMOMColor mainEssayPrettify] forState:UIControlStateNormal]; + _accelerateBtuton.titleLabel.font = [UIFont systemFontOfSize:15]; + [_accelerateBtuton addTarget:self action:@selector(accelertowardseBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _accelerateBtuton; +} + + +@end diff --git a/YuMi/Modules/YMRoom/View/BackMusic/View/Cell/YUMIChamberManualBibliothecaTabulationRegardElement.h b/YuMi/Modules/YMRoom/View/BackMusic/View/Cell/YUMIChamberManualBibliothecaTabulationRegardElement.h new file mode 100644 index 00000000..c13167d3 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/BackMusic/View/Cell/YUMIChamberManualBibliothecaTabulationRegardElement.h @@ -0,0 +1,17 @@ +// +// YMRoomMusicLibraryTableViewCell.h +// YUMI +// +// Created by YUMI on 2022/5/9. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class Manual; +@interface YUMIChamberManualBibliothecaTabulationRegardElement : UITableViewCell +@property (nonatomic,strong) Manual *manualAbstract; +@property (nonatomic,assign) BOOL isSelect; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/BackMusic/View/Cell/YUMIChamberManualBibliothecaTabulationRegardElement.m b/YuMi/Modules/YMRoom/View/BackMusic/View/Cell/YUMIChamberManualBibliothecaTabulationRegardElement.m new file mode 100644 index 00000000..e3b67dd4 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/BackMusic/View/Cell/YUMIChamberManualBibliothecaTabulationRegardElement.m @@ -0,0 +1,126 @@ +// +// YMRoomMusicLibraryTableViewCell.m +// YUMI +// +// Created by YUMI on 2022/5/9. +// + +#import "YUMIChamberManualBibliothecaTabulationRegardElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "Manual+CoreDataClass.h" +@interface YUMIChamberManualBibliothecaTabulationRegardElement () +@property (nonatomic,strong) UIView * encourageRegard; +@property (nonatomic,strong) UIImageView *manualAlbumIndicateRegard; +@property (nonatomic,strong) UILabel * songConstituteSequencignation; +@property (nonatomic,strong) UILabel *attestationorSequencignation; +@property (nonatomic,strong) UIView * burlywoodRegard; +@end + +@implementation YUMIChamberManualBibliothecaTabulationRegardElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor]; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.encourageRegard]; + + [self.encourageRegard addSubview:self.manualAlbumIndicateRegard]; + [self.encourageRegard addSubview:self.songConstituteSequencignation]; + [self.encourageRegard addSubview:self.attestationorSequencignation]; +} + +- (void)initChildLyRestrictions { + [self.encourageRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.contentView); + }]; + + [self.manualAlbumIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.encourageRegard).offset(15); + make.centerY.mas_equalTo(self.encourageRegard); + make.size.mas_equalTo(CGSizeMake(45, 45)); + }]; + + [self.songConstituteSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.manualAlbumIndicateRegard.mas_right).offset(10); + make.bottom.mas_equalTo(self.manualAlbumIndicateRegard.mas_centerY).offset(-3); + }]; + + [self.attestationorSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.songConstituteSequencignation); + make.top.mas_equalTo(self.manualAlbumIndicateRegard.mas_centerY).offset(3); + }]; +} +#pragma mark - Getters And Setters +- (void)setManualAbstract:(Manual *)manualAbstract { + _manualAbstract = manualAbstract; + if (_manualAbstract) { + self.manualAlbumIndicateRegard.image = [UIImage imageWithData:_manualAbstract.songAlbum]; + self.songConstituteSequencignation.text = _manualAbstract.songName; + self.attestationorSequencignation.text = _manualAbstract.author; + } +} + +- (void)setIsSelect:(BOOL)isSelect { + _isSelect = isSelect; + if (_isSelect) { + self.songConstituteSequencignation.textColor = [DJDKMIMOMColor aplictowardsionMainPrettify]; + self.attestationorSequencignation.textColor = [DJDKMIMOMColor aplictowardsionMainPrettify]; + } else { + self.songConstituteSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + self.attestationorSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } +} + +- (UIView *)encourageRegard { + if (!_encourageRegard) { + _encourageRegard = [[UIView alloc] init]; + _encourageRegard.backgroundColor = [UIColor clearColor]; + } + return _encourageRegard; +} + +- (UIImageView *)manualAlbumIndicateRegard { + if (!_manualAlbumIndicateRegard) { + _manualAlbumIndicateRegard = [[UIImageView alloc] init]; + _manualAlbumIndicateRegard.userInteractionEnabled = YES; + _manualAlbumIndicateRegard.layer.masksToBounds = YES; + _manualAlbumIndicateRegard.layer.cornerRadius = 8; + } + return _manualAlbumIndicateRegard; +} + +- (UILabel *)songConstituteSequencignation { + if (!_songConstituteSequencignation) { + _songConstituteSequencignation = [[UILabel alloc] init]; + _songConstituteSequencignation.font = [UIFont systemFontOfSize:15]; + _songConstituteSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _songConstituteSequencignation; +} + +- (UILabel *)attestationorSequencignation { + if (!_attestationorSequencignation) { + _attestationorSequencignation = [[UILabel alloc] init]; + _attestationorSequencignation.font = [UIFont systemFontOfSize:12]; + _attestationorSequencignation.textColor = [DJDKMIMOMColor instantEssayPrettify]; + } + return _attestationorSequencignation; +} + +- (UIView *)burlywoodRegard { + if (!_burlywoodRegard) { + _burlywoodRegard = [[UIView alloc] init]; + _burlywoodRegard.backgroundColor = [DJDKMIMOMColor dividerPrettify]; + } + return _burlywoodRegard; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/BackMusic/View/SubViews/YUMIChamberBackManualDisporterRegard.h b/YuMi/Modules/YMRoom/View/BackMusic/View/SubViews/YUMIChamberBackManualDisporterRegard.h new file mode 100644 index 00000000..f6f17009 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/BackMusic/View/SubViews/YUMIChamberBackManualDisporterRegard.h @@ -0,0 +1,26 @@ +// +// YMRoomBackMusicPlayerView.h +// YUMI +// +// Created by YUMI on 2022/5/9. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class Manual, YUMIChamberBackManualDisporterRegard; + +@protocol FBCChamberBackManualPlayerRegardRepresendtation +- (void)yUMIChamberEncourageManualDisporterRegard:(YUMIChamberBackManualDisporterRegard *)view manualDisporting:(BOOL)manualDisporting; + +@end + +@interface YUMIChamberBackManualDisporterRegard : UIView +@property (nonatomic,assign, readonly) BOOL isPlaying; +@property (nonatomic,strong, readonly) Manual *universalManual; +@property (nonatomic,weak) id delegate; +- (void)resetData; +- (void)prohibitipositionUniversalDisportingManual:(Manual *)manual isPlaying:(BOOL)isPlaying; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/BackMusic/View/SubViews/YUMIChamberBackManualDisporterRegard.m b/YuMi/Modules/YMRoom/View/BackMusic/View/SubViews/YUMIChamberBackManualDisporterRegard.m new file mode 100644 index 00000000..854126e5 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/BackMusic/View/SubViews/YUMIChamberBackManualDisporterRegard.m @@ -0,0 +1,400 @@ +// +// YMRoomBackMusicPlayerView.m +// YUMI +// +// Created by YUMI on 2022/5/9. +// + +#import "YUMIChamberBackManualDisporterRegard.h" +#import +#import "DJDKMIMOMColor.h" +#import "UIImage+Utils.h" +#import "XCCurrentVCStackExecutive.h" +#import "YUMICoreAtomicExecutive.h" +#import "RealtimackExecutive.h" +#import "YUMIConstant.h" +#import "XNDJTBWGLoadingTool.h" +#import "NSArray+Safe.h" +#import "Manual+CoreDataClass.h" +#import "YUMIChamberManualBibliothecaRegardGovernancer.h" + +UIKIT_EXTERN NSString * kRoomBackMusicAudioMixingVolumeKey; +UIKIT_EXTERN NSString * kRoomBackMusicCaptureVolumeKey; +UIKIT_EXTERN NSString * kRoomBackMusicPlayMusicOrderKey; + +@interface YUMIChamberBackManualDisporterRegard () + +@property (nonatomic,strong) UILabel *titleLabel; +@property (nonatomic,strong) UIImageView *reputationIndicateRegard; +@property (nonatomic,strong) UISlider *reputationSlideRegard; +@property (nonatomic,strong) UIButton *playButton; +@property (nonatomic,strong) UIButton *nextBtuton; +@property (nonatomic,strong) UIButton *disportOrderBtuton; +@property (nonatomic,strong) UIButton *furthaerBtuton; +@property (nonatomic,assign) BOOL isPlaying; +@property (nonatomic,strong) Manual *universalManual; +@property (nonatomic,assign) NSInteger currentIndex; +@property (nonatomic,strong) YUMIChamberManualBibliothecaRegardGovernancer *manualLibraryVewC; +@property (nonatomic,strong) NSFetchRequest *request; +@end + +@implementation YUMIChamberBackManualDisporterRegard + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} +#pragma mark - Public Method +- (void)resetData { + self.isPlaying = NO; + self.universalManual = nil; +} + +- (void)prohibitipositionUniversalDisportingManual:(Manual *)manual isPlaying:(BOOL)isPlaying { + self.universalManual = manual; + self.isPlaying = isPlaying; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor colorWithWhite:0 alpha:0.8]; + self.layer.masksToBounds = YES; + self.layer.cornerRadius = 40.f; + [self addSubview:self.titleLabel]; + [self addSubview:self.reputationIndicateRegard]; + [self addSubview:self.reputationSlideRegard]; + [self addSubview:self.playButton]; + [self addSubview:self.disportOrderBtuton]; + [self addSubview:self.nextBtuton]; + [self addSubview:self.furthaerBtuton]; +} + +- (void)initChildLyRestrictions { + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self).inset(30); + make.top.mas_equalTo(self).offset(17); + }]; + + [self.reputationIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(12, 15)); + make.left.mas_equalTo(self.titleLabel); + make.top.mas_equalTo(self.titleLabel.mas_bottom).offset(18); + }]; + + [self.reputationSlideRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.reputationIndicateRegard.mas_right).offset(5); + make.right.mas_equalTo(self.playButton.mas_left).offset(-10); + make.centerY.mas_equalTo(self.reputationIndicateRegard); + }]; + + [self.playButton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(22, 22)); + make.centerY.mas_equalTo(self.reputationIndicateRegard); + make.right.mas_equalTo(self.nextBtuton.mas_left).offset(-15); + }]; + + [self.nextBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.centerY.mas_equalTo(self.playButton); + make.right.mas_equalTo(self.disportOrderBtuton.mas_left).offset(-15); + }]; + + [self.disportOrderBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.centerY.mas_equalTo(self.playButton);; + make.right.mas_equalTo(self.furthaerBtuton.mas_left).offset(-15); + }]; + + [self.furthaerBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.centerY.mas_equalTo(self.playButton); + make.right.mas_equalTo(self).offset(-30); + }]; +} + +- (void)prohibitiportLtowardsterManual:(NSInteger)index { + NSArray * array = [[YUMICoreAtomicExecutive partowardsiciptowardsionInstance].managedObjectContext executeFetchRequest:self.request error:nil]; + if (index >= array.count) { + index = 0; + if (!self.isPlaying && self.universalManual) { + self.isPlaying = [[RealtimackExecutive instance] diversifictowardsionDisportDeclare:BackMusicDisportDeclare_Resume]; + } else { + Manual * manual = [array secureGroalTowardsIndictowardsrix1:index]; + [self prohibitiportUniversalManual:manual index:index]; + } + } else { + Manual * manual = [array secureGroalTowardsIndictowardsrix1:index]; + [self prohibitiportUniversalManual:manual index:index]; + } +} + +- (void)prohibitiportUniversalManual:(Manual *)manual index:(NSInteger)index { + NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults]; + int manualQuantm = (int)[defaults integerForKey:kRoomBackMusicAudioMixingVolumeKey]; + manualQuantm = manualQuantm > 0 ? manualQuantm : 50; + + int captureQuantm = (int)[defaults integerForKey:kRoomBackMusicCaptureVolumeKey]; + captureQuantm = captureQuantm > 0 ? captureQuantm : 50; + + self.universalManual = manual; + self.currentIndex = index; + NSString * documentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject]; + documentsPath = [NSString stringWithFormat:@"%@/music/",documentsPath]; + NSString * musicPath; + if (manual.musicName) { + musicPath = [documentsPath stringByAppendingString:manual.musicName]; + } else { + return; + } + self.isPlaying =[[RealtimackExecutive instance] prohibitiportEncourageManual:musicPath musicId:0 completion:^(NSString * filePath) { + NSInteger order = [[NSUserDefaults standardUserDefaults] integerForKey:kRoomBackMusicPlayMusicOrderKey]; + NSLog(@"当前的顺序%ld", order); + if (order == 0) { + NSInteger index = self.currentIndex + 1; + [self prohibitiportLtowardsterManual:index]; + } else { + NSInteger index= self.currentIndex; + [self prohibitiportLtowardsterManual:index]; + } + }]; + [[RealtimackExecutive instance] refurbishConsumerSound:captureQuantm]; + [[RealtimackExecutive instance] refurbishManualSound:manualQuantm]; +} + +#pragma mark - Event Response +- (void)ReputtowardsionSlideRegardBWSttessDiversifictowardsion:(UISlider *)slider { + [[NSUserDefaults standardUserDefaults] setInteger:slider.value forKey:kRoomBackMusicAudioMixingVolumeKey]; + [[NSUserDefaults standardUserDefaults] synchronize]; + [[RealtimackExecutive instance] refurbishManualSound:(int)slider.value]; +} + +- (void)furthaerBtutonPerformance:(UIButton *)sender { + YUMIChamberManualBibliothecaRegardGovernancer * manualLibraryVewC = [[YUMIChamberManualBibliothecaRegardGovernancer alloc] init]; + manualLibraryVewC.isPlaying = self.isPlaying; + manualLibraryVewC.universalManual = self.universalManual; + manualLibraryVewC.delegate = self; + self.manualLibraryVewC = manualLibraryVewC; + [[XCCurrentVCStackExecutive shareManager].getCurrentVC.navigationController pushViewController:manualLibraryVewC animated:YES]; +} + +- (void)prohibitiportBtutonPerformance:(UIButton *)sender { + NSArray * array = [[YUMICoreAtomicExecutive partowardsiciptowardsionInstance].managedObjectContext executeFetchRequest:self.request error:nil]; + if (array.count <=0) { + YUMIChamberManualBibliothecaRegardGovernancer * manualLibraryVewC = [[YUMIChamberManualBibliothecaRegardGovernancer alloc] init]; + manualLibraryVewC.delegate = self; + self.manualLibraryVewC = manualLibraryVewC; + [[XCCurrentVCStackExecutive shareManager].getCurrentVC.navigationController pushViewController:manualLibraryVewC animated:YES]; + } else { + NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults]; + int manualQuantm = (int)[defaults integerForKey:kRoomBackMusicAudioMixingVolumeKey]; + manualQuantm = manualQuantm > 0 ? manualQuantm : 50; + + int captureQuantm = (int)[defaults integerForKey:kRoomBackMusicCaptureVolumeKey]; + captureQuantm = captureQuantm > 0 ? captureQuantm : 50; + + switch (sender.tag) { + case 1000: + { + if (self.isPlaying == NO && self.universalManual == nil) { + NSArray * array = [[YUMICoreAtomicExecutive partowardsiciptowardsionInstance].managedObjectContext executeFetchRequest:self.request error:nil]; + Manual * manual = [array secureGroalTowardsIndictowardsrix1:0]; + [self prohibitiportUniversalManual:manual index:0]; + } else { + if (self.isPlaying) { + self.isPlaying = [[RealtimackExecutive instance] diversifictowardsionDisportDeclare:BackMusicDisportDeclare_Pause]; + } else { + self.isPlaying = [[RealtimackExecutive instance] diversifictowardsionDisportDeclare:BackMusicDisportDeclare_Resume]; + } + } + } + break; + case 1001: + { + NSArray * array = [[YUMICoreAtomicExecutive partowardsiciptowardsionInstance].managedObjectContext executeFetchRequest:self.request error:nil]; + if (self.isPlaying == NO && self.universalManual == nil) { + Manual * manual = [array secureGroalTowardsIndictowardsrix1:0]; + [self prohibitiportUniversalManual:manual index:0]; + } else { + NSInteger index = self.currentIndex + 1; + [self prohibitiportLtowardsterManual:index]; + } + } + break; + case 1002: + + break; + + default: + break; + } + } +} + +- (void)prohibitiportTellingBtutonPerformance:(UIButton *)sender { + sender.selected = !sender.selected; + NSString * title = sender.selected ? @"单曲循环" : YMLocalizedString(@"YUMI_Room_Back_Music_Player_View_1"); + [XNDJTBWGLoadingTool EvidenceAccomplishmentAboutCommunictowardsion:title]; + NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults]; + NSInteger type = sender.selected ? 1 : 0; + [defaults setInteger:type forKey:kRoomBackMusicPlayMusicOrderKey]; + [defaults synchronize]; +} + +#pragma mark - FBCChamberManualLibraryRegardGovernancerRepresendtation +- (void)yUMIChamberManualLibraryRegardGovernancer:(YUMIChamberManualBibliothecaRegardGovernancer *)view manualAbstract:(Manual *)manualAbstract { + if (manualAbstract) { + NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults]; + int manualQuantm = (int)[defaults integerForKey:kRoomBackMusicAudioMixingVolumeKey]; + manualQuantm = manualQuantm > 0 ? manualQuantm : 50; + + int captureQuantm = (int)[defaults integerForKey:kRoomBackMusicCaptureVolumeKey]; + captureQuantm = captureQuantm > 0 ? captureQuantm : 50; + NSArray * array = [[YUMICoreAtomicExecutive partowardsiciptowardsionInstance].managedObjectContext executeFetchRequest:self.request error:nil]; + __block NSInteger currentIndex = 0; + if (array.count > 0) { + [array enumerateObjectsUsingBlock:^(Manual * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if ([obj.musicId isEqualToString:manualAbstract.musicId]) { + currentIndex = idx; + } + }]; + + if (self.isPlaying == NO && self.universalManual == nil) { + [self prohibitiportUniversalManual:manualAbstract index:currentIndex]; + } else { + if (self.isPlaying) { + if ([self.universalManual.musicId isEqualToString:manualAbstract.musicId]) { + self.isPlaying = [[RealtimackExecutive instance] diversifictowardsionDisportDeclare:BackMusicDisportDeclare_Pause]; + } else { + [self prohibitiportUniversalManual:manualAbstract index:currentIndex]; + } + } else { + [self prohibitiportUniversalManual:manualAbstract index:currentIndex]; + } + } + } + } else { + self.titleLabel.text = YMLocalizedString(@"YUMI_Room_Back_Music_Player_View_2"); + } +} + +- (void)yUMIChamberManualLibraryRegardGovernancer:(YUMIChamberManualBibliothecaRegardGovernancer *)view isPlaying:(BOOL)isPlaying { + self.isPlaying = isPlaying; +} + +- (void)yUMIChamberManualLibraryRegardGovernancer:(YUMIChamberManualBibliothecaRegardGovernancer *)view backMusicVolum:(NSInteger)backMusicVolum { + self.reputationSlideRegard.value = backMusicVolum; +} + +#pragma mark - Getters And Setters +- (void)setIsPlaying:(BOOL)isPlaying { + _isPlaying = isPlaying; + self.playButton.selected = _isPlaying; + self.manualLibraryVewC.isPlaying = _isPlaying; + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIChamberEncourageManualDisporterRegard:manualDisporting:)]) { + [self.delegate yUMIChamberEncourageManualDisporterRegard:self manualDisporting:_isPlaying]; + } +} + +- (void)setUniversalManual:(Manual *)universalManual { + _universalManual = universalManual; + if (_universalManual) { + self.titleLabel.text = _universalManual.songName; + } else { + self.titleLabel.text = YMLocalizedString(@"YUMI_Room_Back_Music_Player_View_3"); + } + self.manualLibraryVewC.universalManual = _universalManual; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.font = [UIFont systemFontOfSize:13]; + _titleLabel.textColor = UIColor.whiteColor; + _titleLabel.text = YMLocalizedString(@"YUMI_Room_Back_Music_Player_View_4"); + } + return _titleLabel; +} + +- (UIImageView *)reputationIndicateRegard { + if (!_reputationIndicateRegard) { + _reputationIndicateRegard = [[UIImageView alloc] init]; + _reputationIndicateRegard.userInteractionEnabled = YES; + _reputationIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_musimage_small_player_voice"]; + } + return _reputationIndicateRegard; +} + +- (UISlider *)reputationSlideRegard { + if (!_reputationSlideRegard) { + _reputationSlideRegard = [[UISlider alloc]init]; + _reputationSlideRegard.minimumValue = 0; + _reputationSlideRegard.maximumValue = 100; + NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults]; + int captureQuantm = (int)[defaults integerForKey:kRoomBackMusicAudioMixingVolumeKey]; + captureQuantm = captureQuantm > 0 ? captureQuantm : 50; + _reputationSlideRegard.value = captureQuantm; + _reputationSlideRegard.minimumTrackTintColor = [UIColor whiteColor]; + _reputationSlideRegard.maximumTrackTintColor = UIColorFromRGB(0x999999); + [_reputationSlideRegard setThumbImage:[UIImage imageNamed:@"yumi_scope_musimage_small_player_white_dot"] forState:UIControlStateNormal]; + [_reputationSlideRegard addTarget:self action:@selector(ReputtowardsionSlideRegardBWSttessDiversifictowardsion:) forControlEvents:UIControlEventValueChanged]; + + } + return _reputationSlideRegard; +} + +- (UIButton *)playButton { + if (!_playButton) { + _playButton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_playButton setImage:[UIImage imageNamed:@"yumi_scope_musimage_small_player_play"] forState:UIControlStateNormal]; + [_playButton setImage:[UIImage imageNamed:@"yumi_scope_musimage_small_player_pause"] forState:UIControlStateSelected]; + _playButton.tag = 1000; + [_playButton addTarget:self action:@selector(prohibitiportBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _playButton; +} + +- (UIButton *)furthaerBtuton { + if (!_furthaerBtuton) { + _furthaerBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_furthaerBtuton setImage:[UIImage imageNamed:@"yumi_scope_musimage_small_player_more"] forState:UIControlStateNormal]; + [_furthaerBtuton setImage:[UIImage imageNamed:@"yumi_scope_musimage_small_player_more"] forState:UIControlStateSelected]; + [_furthaerBtuton addTarget:self action:@selector(furthaerBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + _furthaerBtuton.transform = CGAffineTransformMakeRotation(-M_PI /2); + } + return _furthaerBtuton; +} + +- (UIButton *)nextBtuton { + if (!_nextBtuton) { + _nextBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_nextBtuton setImage:[UIImage imageNamed:@"yumi_scope_musimage_small_player_next"] forState:UIControlStateNormal]; + [_nextBtuton setImage:[UIImage imageNamed:@"yumi_scope_musimage_small_player_next"] forState:UIControlStateSelected]; + _nextBtuton.tag = 1001; + [_nextBtuton addTarget:self action:@selector(prohibitiportBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _nextBtuton; +} + +- (UIButton *)disportOrderBtuton { + if (!_disportOrderBtuton) { + _disportOrderBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_disportOrderBtuton setImage:[UIImage imageNamed:@"yumi_scope_musimage_small_player_order"] forState:UIControlStateNormal]; + [_disportOrderBtuton setImage:[UIImage imageNamed:@"yumi_scope_musimage_small_player_single"] forState:UIControlStateSelected]; + NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults]; + NSInteger type = [defaults integerForKey:kRoomBackMusicPlayMusicOrderKey]; + _disportOrderBtuton.selected = type == 1; + [_disportOrderBtuton addTarget:self action:@selector(prohibitiportTellingBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _disportOrderBtuton; +} + +- (NSFetchRequest *)request { + if (!_request) { + _request = [NSFetchRequest fetchRequestWithEntityName:@"Manual"]; + } + return _request; +} + + +@end diff --git a/YuMi/Modules/YMRoom/View/BackMusic/View/SubViews/YUMIChamberManualReputationInstanllingRegard.h b/YuMi/Modules/YMRoom/View/BackMusic/View/SubViews/YUMIChamberManualReputationInstanllingRegard.h new file mode 100644 index 00000000..4f7295bc --- /dev/null +++ b/YuMi/Modules/YMRoom/View/BackMusic/View/SubViews/YUMIChamberManualReputationInstanllingRegard.h @@ -0,0 +1,32 @@ +// +// YMRoomMusicVoiceSettingView.h +// YUMI +// +// Created by YUMI on 2022/5/9. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSInteger, MusicVoiceInstanllingGenre) { + + MusicVoiceInstanllingGenre_User, + + MusicVoiceInstanllingGenre_Music, +}; +@class YUMIChamberManualReputationInstanllingRegard; +@protocol FBCChamberManualVoiceInstanllingRegardRepresendtation + +- (void)yUMIChamberManualReputtowardsionInstanllingRegard:(YUMIChamberManualReputationInstanllingRegard *)view didSliderValueChange:(UISlider *)slider; + +@end + +@interface YUMIChamberManualReputationInstanllingRegard : UIView + +@property (nonatomic,weak) id delegate; +@property (nonatomic,assign) NSInteger manualQuantm; +@property (nonatomic,assign) NSInteger captureQuantm; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/BackMusic/View/SubViews/YUMIChamberManualReputationInstanllingRegard.m b/YuMi/Modules/YMRoom/View/BackMusic/View/SubViews/YUMIChamberManualReputationInstanllingRegard.m new file mode 100644 index 00000000..7e04af07 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/BackMusic/View/SubViews/YUMIChamberManualReputationInstanllingRegard.m @@ -0,0 +1,213 @@ +// +// YMRoomMusicVoiceSettingView.m +// YUMI +// +// Created by YUMI on 2022/5/9. +// + +#import "YUMIChamberManualReputationInstanllingRegard.h" +#import +#import "DJDKMIMOMColor.h" + +@interface YUMIChamberManualReputationInstanllingRegard () +@property (nonatomic,strong) UIStackView *stackView; +@property (nonatomic,strong) UIStackView *consumerHierarchyRegard; +@property (nonatomic,strong) UILabel *consumerChampionSequencignation; +@property (strong, nonatomic) UISlider *consumerQuantumSlide; +@property (nonatomic,strong) UILabel *consumerReputationSequencignation; +@property (nonatomic,strong) UIStackView *manualHierarchyRegard; +@property (nonatomic,strong) UILabel *manualChampionSequencignation; +@property (strong, nonatomic) UISlider *manualQuantumSlide; +@property (nonatomic,strong) UILabel *manualReputationSequencignation; +@end + + +@implementation YUMIChamberManualReputationInstanllingRegard + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = UIColorRGBAlpha(0x000000, 0.2); + [self addSubview:self.stackView]; + + [self.stackView addArrangedSubview:self.consumerHierarchyRegard]; + [self.stackView addArrangedSubview:self.manualHierarchyRegard]; + + [self.consumerHierarchyRegard addArrangedSubview:self.consumerChampionSequencignation]; + [self.consumerHierarchyRegard addArrangedSubview:self.consumerQuantumSlide]; + [self.consumerHierarchyRegard addArrangedSubview:self.consumerReputationSequencignation]; + + [self.manualHierarchyRegard addArrangedSubview:self.manualChampionSequencignation]; + [self.manualHierarchyRegard addArrangedSubview:self.manualQuantumSlide]; + [self.manualHierarchyRegard addArrangedSubview:self.manualReputationSequencignation]; +} + +- (void)initChildLyRestrictions { + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(60); + }]; + + [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self).inset(15); + make.top.bottom.mas_equalTo(self); + + }]; + + [self.consumerHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(35); + }]; + + [self.consumerChampionSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(35); + }]; + + [self.consumerReputationSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(35); + }]; + + [self.manualChampionSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(35); + }]; + + [self.manualReputationSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(35); + }]; +} +#pragma mark - Event Response +- (void)consumerVolumeSlideBWSttessDiversifictowardsion:(UISlider *)slider { + if (slider == self.consumerQuantumSlide) { + self.consumerReputationSequencignation.text = [[NSString stringWithFormat:@"%ld",(NSInteger)slider.value] stringByAppendingString:@"%"]; + } else { + self.manualReputationSequencignation.text = [[NSString stringWithFormat:@"%ld",(NSInteger)slider.value] stringByAppendingString:@"%"]; + } + + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIChamberManualReputtowardsionInstanllingRegard:didSliderValueChange:)]) { + [self.delegate yUMIChamberManualReputtowardsionInstanllingRegard:self didSliderValueChange:slider]; + } +} + +#pragma mark - Getters And Setters +- (void)setManualQuantm:(NSInteger)manualQuantm { + _manualQuantm = manualQuantm; + self.manualQuantumSlide.value = manualQuantm; +} + +- (void)setCaptureQuantm:(NSInteger)captureQuantm { + _captureQuantm = captureQuantm; + self.consumerQuantumSlide.value = captureQuantm; +} + +- (UIStackView *)stackView { + if (!_stackView) { + _stackView = [[UIStackView alloc] init]; + _stackView.axis = UILayoutConstraintAxisVertical; + _stackView.distribution = UIStackViewDistributionFill; + _stackView.alignment = UIStackViewAlignmentFill; + _stackView.spacing = 5; + } + return _stackView; +} + +- (UIStackView *)consumerHierarchyRegard { + if (!_consumerHierarchyRegard) { + _consumerHierarchyRegard = [[UIStackView alloc] init]; + _consumerHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _consumerHierarchyRegard.distribution = UIStackViewDistributionFill; + _consumerHierarchyRegard.alignment = UIStackViewAlignmentCenter; + _consumerHierarchyRegard.spacing = 5; + } + return _consumerHierarchyRegard; +} + +- (UILabel *)consumerChampionSequencignation { + if (!_consumerChampionSequencignation) { + _consumerChampionSequencignation = [[UILabel alloc] init]; + _consumerChampionSequencignation.font = [UIFont systemFontOfSize:13]; + _consumerChampionSequencignation.textColor = UIColorFromRGB(0x999999); + _consumerChampionSequencignation.text = YMLocalizedString(@"YUMI_Room_Music_Voice_Setting_View_0"); + } + return _consumerChampionSequencignation; +} + +- (UISlider *)consumerQuantumSlide { + if (!_consumerQuantumSlide) { + _consumerQuantumSlide = [[UISlider alloc]init]; + _consumerQuantumSlide.minimumValue = 0; + _consumerQuantumSlide.maximumValue = 100; + _consumerQuantumSlide.value = 50; + _consumerQuantumSlide.minimumTrackTintColor = [DJDKMIMOMColor aplictowardsionMainPrettify]; + _consumerQuantumSlide.maximumTrackTintColor = UIColor.whiteColor; + _consumerQuantumSlide.tag = MusicVoiceInstanllingGenre_User; + [_consumerQuantumSlide setThumbImage:[UIImage imageNamed:@"yumi_scope_musimage_voice_setting_dot"] forState:UIControlStateNormal]; + [_consumerQuantumSlide addTarget:self action:@selector(consumerVolumeSlideBWSttessDiversifictowardsion:) forControlEvents:UIControlEventValueChanged]; + + } + return _consumerQuantumSlide; +} + +- (UILabel *)consumerReputationSequencignation { + if (!_consumerReputationSequencignation) { + _consumerReputationSequencignation = [[UILabel alloc] init]; + _consumerReputationSequencignation.font = [UIFont systemFontOfSize:13]; + _consumerReputationSequencignation.textColor = UIColorFromRGB(0x999999); + _consumerReputationSequencignation.text = @"50%"; + } + return _consumerReputationSequencignation; +} + +- (UIStackView *)manualHierarchyRegard { + if (!_manualHierarchyRegard) { + _manualHierarchyRegard = [[UIStackView alloc] init]; + _manualHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _manualHierarchyRegard.distribution = UIStackViewDistributionFill; + _manualHierarchyRegard.alignment = UIStackViewAlignmentFill; + _manualHierarchyRegard.spacing = 5; + } + return _manualHierarchyRegard; +} + +- (UILabel *)manualChampionSequencignation { + if (!_manualChampionSequencignation) { + _manualChampionSequencignation = [[UILabel alloc] init]; + _manualChampionSequencignation.font = [UIFont systemFontOfSize:13]; + _manualChampionSequencignation.textColor = UIColorFromRGB(0x999999); + _manualChampionSequencignation.text = YMLocalizedString(@"YUMI_Room_Music_Voice_Setting_View_1"); + } + return _manualChampionSequencignation; +} + +- (UISlider *)manualQuantumSlide { + if (!_manualQuantumSlide) { + _manualQuantumSlide = [[UISlider alloc]init]; + _manualQuantumSlide.minimumValue = 0; + _manualQuantumSlide.maximumValue = 100; + _manualQuantumSlide.value = 50; + _manualQuantumSlide.minimumTrackTintColor = [DJDKMIMOMColor aplictowardsionMainPrettify]; + _manualQuantumSlide.maximumTrackTintColor = UIColor.whiteColor; + _manualQuantumSlide.tag = MusicVoiceInstanllingGenre_Music; + [_manualQuantumSlide setThumbImage:[UIImage imageNamed:@"yumi_scope_musimage_voice_setting_dot"] forState:UIControlStateNormal]; + [_manualQuantumSlide addTarget:self action:@selector(consumerVolumeSlideBWSttessDiversifictowardsion:) forControlEvents:UIControlEventValueChanged]; + + } + return _manualQuantumSlide; +} + +- (UILabel *)manualReputationSequencignation { + if (!_manualReputationSequencignation) { + _manualReputationSequencignation = [[UILabel alloc] init]; + _manualReputationSequencignation.font = [UIFont systemFontOfSize:13]; + _manualReputationSequencignation.textColor = UIColorFromRGB(0x999999); + _manualReputationSequencignation.text = @"50%"; + } + return _manualReputationSequencignation; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/BackMusic/View/SubViews/YUMIManualBibliothecaDisportRegard.h b/YuMi/Modules/YMRoom/View/BackMusic/View/SubViews/YUMIManualBibliothecaDisportRegard.h new file mode 100644 index 00000000..4cd8bdbc --- /dev/null +++ b/YuMi/Modules/YMRoom/View/BackMusic/View/SubViews/YUMIManualBibliothecaDisportRegard.h @@ -0,0 +1,23 @@ +// +// YMMusicLibraryPlayView.h +// YUMI +// +// Created by YUMI on 2022/5/9. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class Manual; +@class YUMIManualBibliothecaDisportRegard; +@protocol FBCManualLibraryPlayRegardRepresendtation +- (void)yUMIManualLibraryDisportRegard:(YUMIManualBibliothecaDisportRegard *)view didClickVoiceSetting:(UIButton *)sender; +- (void)yUMIManualLibraryDisportRegard:(YUMIManualBibliothecaDisportRegard *)view didClickPlayButton:(UIButton *)sender; +@end +@interface YUMIManualBibliothecaDisportRegard : UIView +@property (nonatomic,strong, nullable) Manual *manual; +@property (nonatomic,assign) BOOL isPlaying; +@property (nonatomic,weak) id delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/BackMusic/View/SubViews/YUMIManualBibliothecaDisportRegard.m b/YuMi/Modules/YMRoom/View/BackMusic/View/SubViews/YUMIManualBibliothecaDisportRegard.m new file mode 100644 index 00000000..8abebc51 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/BackMusic/View/SubViews/YUMIManualBibliothecaDisportRegard.m @@ -0,0 +1,116 @@ +// +// YMMusicLibraryPlayView.m +// YUMI +// +// Created by YUMI on 2022/5/9. +// + +#import "YUMIManualBibliothecaDisportRegard.h" +#import +#import "DJDKMIMOMColor.h" +#import "RealtimackExecutive.h" +#import "Manual+CoreDataClass.h" + +@interface YUMIManualBibliothecaDisportRegard () +@property (nonatomic,strong) UIButton *playButton; +@property (nonatomic,strong) UILabel *titleLabel; +@property (nonatomic,strong) UIButton *instanllingBtuton; +@end + +@implementation YUMIManualBibliothecaDisportRegard +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = UIColorRGBAlpha(0x000000, 0.2); + + [self addSubview:self.playButton]; + [self addSubview:self.titleLabel]; + [self addSubview:self.instanllingBtuton]; +} + +- (void)initChildLyRestrictions { + [self.playButton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(44, 44)); + make.centerY.mas_equalTo(self); + make.left.mas_equalTo(self).offset(15); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.playButton.mas_right).offset(5); + make.centerY.mas_equalTo(self.playButton); + }]; + + [self.instanllingBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(22, 22)); + make.centerY.mas_equalTo(self); + make.right.mas_equalTo(self).offset(-15); + }]; +} +#pragma mark - Event Response +- (void)prohibitiportBtutonPerformance:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIManualLibraryDisportRegard:didClickPlayButton:)]) { + [self.delegate yUMIManualLibraryDisportRegard:self didClickPlayButton:sender]; + } +} + +- (void)settingBtutonPerformance:(UIButton *)sender { + sender.selected = !sender.selected; + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIManualLibraryDisportRegard:didClickVoiceSetting:)]) { + [self.delegate yUMIManualLibraryDisportRegard:self didClickVoiceSetting:sender]; + } +} + +#pragma mark - Getters And Setters +- (void)setManual:(Manual *)manual { + _manual = manual; + if (_manual) { + self.titleLabel.text = _manual.musicName; + } else { + self.titleLabel.text = YMLocalizedString(@"YUMI_Music_Library_Play_View_0"); + } +} + +- (void)setIsPlaying:(BOOL)isPlaying { + _isPlaying = isPlaying; + self.playButton.selected = _isPlaying; +} + +- (UIButton *)playButton { + if (!_playButton) { + _playButton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_playButton setImage:[UIImage imageNamed:@"yumi_scope_musimage_library_play"] forState:UIControlStateNormal]; + [_playButton setImage:[UIImage imageNamed:@"yumi_scope_musimage_library_pause"] forState:UIControlStateSelected]; + [_playButton addTarget:self action:@selector(prohibitiportBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _playButton; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.font = [UIFont systemFontOfSize:14]; + _titleLabel.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _titleLabel.text = YMLocalizedString(@"YUMI_Music_Library_Play_View_1"); + } + return _titleLabel; +} + +- (UIButton *)instanllingBtuton { + if (!_instanllingBtuton) { + _instanllingBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_instanllingBtuton setImage:[UIImage imageNamed:@"yumi_scope_musimage_library_volum_setting"] forState:UIControlStateNormal]; + [_instanllingBtuton setImage:[UIImage imageNamed:@"yumi_scope_musimage_library_volum_setting"] forState:UIControlStateSelected]; + [_instanllingBtuton addTarget:self action:@selector(settingBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _instanllingBtuton; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/BackMusic/View/YUMIChamberManualBibliothecaRegardGovernancer.h b/YuMi/Modules/YMRoom/View/BackMusic/View/YUMIChamberManualBibliothecaRegardGovernancer.h new file mode 100644 index 00000000..2ec528c4 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/BackMusic/View/YUMIChamberManualBibliothecaRegardGovernancer.h @@ -0,0 +1,25 @@ +// +// YMRoomMusicLibraryViewController.h +// YUMI +// +// Created by YUMI on 2022/5/9. +// + +#import "BaseRegardGovernancer.h" +#import "ChamberHostRepresendtation.h" +NS_ASSUME_NONNULL_BEGIN +@class Manual, YUMIChamberManualBibliothecaRegardGovernancer; + +@protocol FBCChamberManualLibraryRegardGovernancerRepresendtation +- (void)yUMIChamberManualLibraryRegardGovernancer:(YUMIChamberManualBibliothecaRegardGovernancer *)view manualAbstract:(Manual *)manualAbstract; +- (void)yUMIChamberManualLibraryRegardGovernancer:(YUMIChamberManualBibliothecaRegardGovernancer *)view isPlaying:(BOOL)isPlaying; +- (void)yUMIChamberManualLibraryRegardGovernancer:(YUMIChamberManualBibliothecaRegardGovernancer *)view backMusicVolum:(NSInteger)backMusicVolum; +@end +@interface YUMIChamberManualBibliothecaRegardGovernancer : BaseRegardGovernancer +@property (nonatomic,assign) BOOL isPlaying; +@property (nonatomic,strong) Manual *universalManual; +@property (nonatomic,weak) id delegate; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/BackMusic/View/YUMIChamberManualBibliothecaRegardGovernancer.m b/YuMi/Modules/YMRoom/View/BackMusic/View/YUMIChamberManualBibliothecaRegardGovernancer.m new file mode 100644 index 00000000..adcedafb --- /dev/null +++ b/YuMi/Modules/YMRoom/View/BackMusic/View/YUMIChamberManualBibliothecaRegardGovernancer.m @@ -0,0 +1,345 @@ +// +// YMRoomMusicLibraryViewController.m +// YUMI +// +// Created by YUMI on 2022/5/9. +// + +#import "YUMIChamberManualBibliothecaRegardGovernancer.h" +#import +#import "YUMICoreAtomicExecutive.h" +#import "YUMIConstant.h" +#import "RealtimackExecutive.h" +#import "YUMIMacroUitls.h" +#import "YUMICoreAtomicExecutive.h" +#import "DJDKMIMOMColor.h" +#import "NSArray+Safe.h" +#import "Manual+CoreDataClass.h" +#import "YUMIChamberManualBibliothecaTabulationRegardElement.h" +#import "YUMIChamberManualBibliothecaDispossessTabulationRegardElement.h" +#import "YUMIManualBibliothecaDisportRegard.h" +#import "YUMIChamberManualReputationInstanllingRegard.h" +#import "YUMIChamberTransferManualRegardGovernancer.h" + +UIKIT_EXTERN NSString * kRoomBackMusicAudioMixingVolumeKey; +UIKIT_EXTERN NSString * kRoomBackMusicCaptureVolumeKey; + +@interface YUMIChamberManualBibliothecaRegardGovernancer () +@property (nonatomic,strong) UITableView *tableView; +@property (nonatomic,strong) YUMIManualBibliothecaDisportRegard *disportRegard; +@property (nonatomic,strong) YUMIChamberManualReputationInstanllingRegard *reputationInstanllingRegard; +@property(nonatomic,strong)NSFetchedResultsController *fetchedConsequentGovernancer; +@property (nonatomic,strong, nullable) Manual *chosenManual; +@property (nonatomic,strong) NSArray *datasource; +@property (nonatomic,strong) NSFetchRequest *request; +@property (nonatomic,strong) UIView * intelligenceerRegard; +@property (nonatomic,strong) UILabel *digitalManualSequencignation; +@end + +@implementation YUMIChamberManualBibliothecaRegardGovernancer +- (void)viewWillAppear:(BOOL)animated { + [super viewWillAppear:animated]; + NSArray *data = [[YUMICoreAtomicExecutive partowardsiciptowardsionInstance].managedObjectContext executeFetchRequest:self.request error:nil]; + self.datasource = data; + [self.tableView reloadData]; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + self.title = YMLocalizedString(@"YUMI_Room_Music_Library_View_Controller_0"); + [self initData]; + [self initSubViews]; + [self initChildLyRestrictions]; +} + +#pragma mark - Private Method +- (void)initData { + self.disportRegard.manual = self.universalManual; + self.disportRegard.isPlaying = self.isPlaying; + + NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults]; + NSInteger manualQuantm = [defaults integerForKey:kRoomBackMusicAudioMixingVolumeKey]; + manualQuantm = manualQuantm > 0 ? manualQuantm : 50; + self.reputationInstanllingRegard.manualQuantm = manualQuantm; + + NSInteger captureQuantm = [defaults integerForKey:kRoomBackMusicCaptureVolumeKey]; + captureQuantm = captureQuantm > 0 ? captureQuantm : 50; + self.reputationInstanllingRegard.captureQuantm = captureQuantm; +} + +- (void)initSubViews { + [self accelertowardseBreeadcrumbProvisionAboutIndictowardseSaluttowardsion:@[@"room_music_library_nav_add"] isContrary:NO target:self action:@selector(accelertowardseManualPerformance:) tags:nil]; + [self.view addSubview:self.tableView]; + [self.view addSubview:self.disportRegard]; + [self.view addSubview:self.reputationInstanllingRegard]; +} + +- (void)initChildLyRestrictions { + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.top.right.mas_equalTo(self.view); + make.bottom.mas_equalTo(self.disportRegard.mas_top); + }]; + + [self.disportRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(55); + make.bottom.left.right.mas_equalTo(self.view); + }]; + + [self.reputationInstanllingRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.bottom.mas_equalTo(self.disportRegard.mas_top); + make.left.right.mas_equalTo(self.view); + }]; +} +#pragma mark - UITableViewDelegate And UITableViewDataSource +- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { + return 1; +} + +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.datasource.count > 0 ? self.datasource.count : 1; +} +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + if (self.datasource.count > 0) { + YUMIChamberManualBibliothecaTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIChamberManualBibliothecaTabulationRegardElement class])]; + Manual * manualAbstract = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + if (manualAbstract.musicId == self.chosenManual.musicId) { + cell.isSelect = YES; + } else { + cell.isSelect = NO; + } + cell.manualAbstract = manualAbstract; + return cell; + } + + YUMIChamberManualBibliothecaDispossessTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIChamberManualBibliothecaDispossessTabulationRegardElement class])]; + cell.delegate = self; + return cell; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + return self.datasource.count > 0 ? 60 : (KScreenHeight - kNavigationHeight); +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + if (self.datasource.count > 0) { + Manual * manualAbstract = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + self.chosenManual = manualAbstract; + self.disportRegard.manual = manualAbstract; + [self.tableView reloadData]; + + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIChamberManualLibraryRegardGovernancer:manualAbstract:)]) { + [self.delegate yUMIChamberManualLibraryRegardGovernancer:self manualAbstract:self.chosenManual]; + } + } + if (!self.reputationInstanllingRegard.hidden) { + self.reputationInstanllingRegard.hidden = YES; + } +} + +- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { + if (self.datasource.count > 0) { + return 20; + } + return 0.01f; +} + +- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { + if (self.datasource.count > 0) { + self.intelligenceerRegard.frame = CGRectMake(0, 0, KScreenWidth, 20); + if (!self.digitalManualSequencignation.superview) { + [self.intelligenceerRegard addSubview:self.digitalManualSequencignation]; + [self.digitalManualSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.intelligenceerRegard).offset(15); + make.centerY.mas_equalTo(self.intelligenceerRegard); + }]; + } + + self.digitalManualSequencignation.text = [NSString stringWithFormat:YMLocalizedString(@"YUMI_Room_Music_Library_View_Controller_1"), self.datasource.count]; + return self.intelligenceerRegard; + } + return [UIView new]; +} + +- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath { + if (self.datasource.count > 0) { + return YES; + } + return NO; +} + +- (NSString *)tableView:(UITableView *)tableView titleForDeleteConfirmationButtonForRowAtIndexPath:(NSIndexPath *)indexPath { + return YMLocalizedString(@"YUMI_Room_Music_Library_View_Controller_2"); +} + +- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { + if (editingStyle == UITableViewCellEditingStyleDelete) { + Manual * manual = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + [self EvidenceChambering]; + if ([manual.musicId isEqualToString:self.universalManual.musicId]) { + self.disportRegard.manual = nil; + self.disportRegard.isPlaying = NO; + self.chosenManual = nil; + self.isPlaying = NO; + [[RealtimackExecutive instance] diversifictowardsionDisportDeclare:BackMusicDisportDeclare_Stop]; + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIChamberManualLibraryRegardGovernancer:isPlaying:)]) { + [self.delegate yUMIChamberManualLibraryRegardGovernancer:self isPlaying:self.isPlaying]; + } + + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIChamberManualLibraryRegardGovernancer:manualAbstract:)]) { + [self.delegate yUMIChamberManualLibraryRegardGovernancer:self manualAbstract:self.chosenManual]; + } + } + + if (manual.musicName) { + NSString * documentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject]; + documentsPath = [NSString stringWithFormat:@"%@/music/",documentsPath]; + NSString * musicPath = [documentsPath stringByAppendingString:manual.musicName]; + NSFileManager *fileManager = [NSFileManager defaultManager]; + if ([fileManager fileExistsAtPath:musicPath]) { + NSError * error; + [fileManager removeItemAtPath:musicPath error:&error]; + } + } + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + [[YUMICoreAtomicExecutive partowardsiciptowardsionInstance].managedObjectContext deleteObject:manual]; + [[YUMICoreAtomicExecutive partowardsiciptowardsionInstance] save]; + NSArray *data = [[YUMICoreAtomicExecutive partowardsiciptowardsionInstance].managedObjectContext executeFetchRequest:self.request error:nil]; + self.datasource = data; + [self.tableView reloadData]; + [self brakeHUD]; + }); + } +} + +#pragma mark - FBCChamberManualLibraryEmptyTabulationViweElementRepresendtation +- (void)yUMIChamberManualLibraryDispossessTarbsultowardsionViweElement:(YUMIChamberManualBibliothecaDispossessTabulationRegardElement *)cell didClickAdd:(UIButton *)sender { + YUMIChamberTransferManualRegardGovernancer * transferVC = [[YUMIChamberTransferManualRegardGovernancer alloc] init]; + [self.navigationController pushViewController:transferVC animated:YES]; +} +#pragma mark - FBCManualLibraryPlayRegardRepresendtation +- (void)yUMIManualLibraryDisportRegard:(YUMIManualBibliothecaDisportRegard *)view didClickVoiceSetting:(UIButton *)sender { + self.reputationInstanllingRegard.hidden = !sender.selected; +} + +- (void)yUMIManualLibraryDisportRegard:(YUMIManualBibliothecaDisportRegard *)view didClickPlayButton:(UIButton *)sender { + if (self.universalManual) { + sender.selected = !sender.selected; + if (self.isPlaying) { + [[RealtimackExecutive instance] diversifictowardsionDisportDeclare:BackMusicDisportDeclare_Pause]; + sender.selected = NO; + self.isPlaying = NO; + } else { + [[RealtimackExecutive instance] diversifictowardsionDisportDeclare:BackMusicDisportDeclare_Resume]; + sender.selected = YES; + self.isPlaying = YES; + } + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIChamberManualLibraryRegardGovernancer:isPlaying:)]) { + [self.delegate yUMIChamberManualLibraryRegardGovernancer:self isPlaying:self.isPlaying]; + } + } +} + +#pragma mark - FBCChamberManualVoiceInstanllingRegardRepresendtation +- (void)yUMIChamberManualReputtowardsionInstanllingRegard:(YUMIChamberManualReputationInstanllingRegard *)view didSliderValueChange:(UISlider *)slider { + switch (slider.tag) { + case MusicVoiceInstanllingGenre_User: + { + [[NSUserDefaults standardUserDefaults] setInteger:slider.value forKey:kRoomBackMusicCaptureVolumeKey]; + [[NSUserDefaults standardUserDefaults] synchronize]; + [[RealtimackExecutive instance] refurbishConsumerSound:(int)slider.value]; + } + break; + case MusicVoiceInstanllingGenre_Music: + { + [[NSUserDefaults standardUserDefaults] setInteger:slider.value forKey:kRoomBackMusicAudioMixingVolumeKey]; + [[NSUserDefaults standardUserDefaults] synchronize]; + [[RealtimackExecutive instance] refurbishManualSound:(int)slider.value]; + + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIChamberManualLibraryRegardGovernancer:backMusicVolum:)]) { + [self.delegate yUMIChamberManualLibraryRegardGovernancer:self backMusicVolum:slider.value]; + } + } + break; + default: + break; + } +} + +#pragma mark - Event Response +- (void)accelertowardseManualPerformance:(UIButton *)sender { + YUMIChamberTransferManualRegardGovernancer * transferVC = [[YUMIChamberTransferManualRegardGovernancer alloc] init]; + [self.navigationController pushViewController:transferVC animated:YES]; +} +#pragma mark - Getters And Setters +- (void)setIsPlaying:(BOOL)isPlaying { + _isPlaying = isPlaying; + self.disportRegard.isPlaying = _isPlaying; +} + +- (void)setUniversalManual:(Manual *)universalManual { + _universalManual = universalManual; + self.disportRegard.manual = _universalManual; + self.chosenManual = _universalManual; + [self.tableView reloadData]; +} + +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.tableFooterView = [UIView new]; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.backgroundColor = [UIColor clearColor]; + if (@available(iOS 11.0, *)) { + _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + [_tableView registerClass:[YUMIChamberManualBibliothecaTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIChamberManualBibliothecaTabulationRegardElement class])]; + [_tableView registerClass:[YUMIChamberManualBibliothecaDispossessTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIChamberManualBibliothecaDispossessTabulationRegardElement class])]; + } + return _tableView; +} + +- (YUMIManualBibliothecaDisportRegard *)disportRegard { + if (!_disportRegard) { + _disportRegard = [[YUMIManualBibliothecaDisportRegard alloc] init]; + _disportRegard.delegate = self; + } + return _disportRegard; +} + +- (YUMIChamberManualReputationInstanllingRegard *)reputationInstanllingRegard { +if (!_reputationInstanllingRegard) { + _reputationInstanllingRegard = [[YUMIChamberManualReputationInstanllingRegard alloc] init]; + _reputationInstanllingRegard.delegate = self; + _reputationInstanllingRegard.hidden = YES; + } + return _reputationInstanllingRegard; +} + +- (NSFetchRequest *)request { + if (!_request) { + _request = [NSFetchRequest fetchRequestWithEntityName:@"Manual"]; + } + return _request; +} + +- (UIView *)intelligenceerRegard { + if (!_intelligenceerRegard) { + _intelligenceerRegard = [[UIView alloc] init]; + _intelligenceerRegard.backgroundColor = [UIColor clearColor]; + } + return _intelligenceerRegard; +} + +- (UILabel *)digitalManualSequencignation { + if (!_digitalManualSequencignation) { + _digitalManualSequencignation = [[UILabel alloc] init]; + _digitalManualSequencignation.font = [UIFont systemFontOfSize:10]; + _digitalManualSequencignation.textColor = [DJDKMIMOMColor instantEssayPrettify]; + } + return _digitalManualSequencignation; +} + + +@end diff --git a/YuMi/Modules/YMRoom/View/BackMusic/View/YUMIChamberTransferManualRegardGovernancer.h b/YuMi/Modules/YMRoom/View/BackMusic/View/YUMIChamberTransferManualRegardGovernancer.h new file mode 100644 index 00000000..ae723ae8 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/BackMusic/View/YUMIChamberTransferManualRegardGovernancer.h @@ -0,0 +1,16 @@ +// +// YMRoomTransferMusicViewController.h +// YUMI +// +// Created by YUMI on 2022/5/7. +// + +#import "BaseRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIChamberTransferManualRegardGovernancer : BaseRegardGovernancer + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/BackMusic/View/YUMIChamberTransferManualRegardGovernancer.m b/YuMi/Modules/YMRoom/View/BackMusic/View/YUMIChamberTransferManualRegardGovernancer.m new file mode 100644 index 00000000..d64530ed --- /dev/null +++ b/YuMi/Modules/YMRoom/View/BackMusic/View/YUMIChamberTransferManualRegardGovernancer.m @@ -0,0 +1,350 @@ +// +// YMRoomTransferMusicViewController.m +// YUMI +// +// Created by YUMI on 2022/5/7. +// + +#import "YUMIChamberTransferManualRegardGovernancer.h" +#import +#import +#import +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" +#import "UIImage+Utils.h" +#import "HyperTextServer.h" +#import "MyHyperTextConnection.h" +#import "SJXCSMIPFacilitater.h" +#import "YUMICoreAtomicExecutive.h" +#import "GCDHelper.h" +#import "NSArray+Safe.h" +#import "Manual+CoreDataClass.h" +@interface YUMIChamberTransferManualRegardGovernancer () +@property (nonatomic,strong) UIStackView *stackView; +@property (nonatomic,strong) UIView * wifiRegard; +@property (nonatomic,strong) UIImageView *wifiIndicteRegard; +@property (nonatomic,strong) UILabel *wifiSequencignation; +@property (nonatomic,strong) UILabel *ipSequencignation; +@property (nonatomic,strong) UILabel *singleGenreSequencignation; +@property (nonatomic,strong) UIImageView *computerIndicateRegard; +@property (nonatomic,strong) UILabel *sequenceriptionSequencignation; +@property (nonatomic,strong) UIButton *manualeComputationBtuton; +@property (nonatomic,strong) UIButton *preserveBtuton; +@property (nonatomic,strong) HyperTextServer *httpWeeblogic; +@property (strong, nonatomic) NSString *ipAccelerateress; +@property (nonatomic,assign) NSInteger digitalSong; +@property (nonatomic,strong) Manual * universalManual; +@end + +@implementation YUMIChamberTransferManualRegardGovernancer +- (void)viewDidLoad { + [super viewDidLoad]; + [self connectHyperessayWeeblogic]; + [self monitorNet]; + [self initSubViews]; + [self initChildLyRestrictions]; +} + + +#pragma mark - Private Method +- (void)initSubViews { + self.title = YMLocalizedString(@"YUMI_Room_Transfer_Music_View_Controller_0"); + self.digitalSong = 0; + [self.view addSubview:self.stackView]; + [self.stackView addArrangedSubview:self.wifiRegard]; + [self.stackView addArrangedSubview:self.ipSequencignation]; + [self.stackView addArrangedSubview:self.singleGenreSequencignation]; + [self.stackView addArrangedSubview:self.computerIndicateRegard]; + [self.stackView addArrangedSubview:self.sequenceriptionSequencignation]; + [self.stackView addArrangedSubview:self.manualeComputationBtuton]; + [self.stackView addArrangedSubview:self.preserveBtuton]; + + [self.wifiRegard addSubview:self.wifiIndicteRegard]; + [self.wifiRegard addSubview:self.wifiSequencignation]; +} + +- (void)initChildLyRestrictions { + [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.view); + make.top.mas_equalTo(self.view).offset(15); + }]; + + [self.wifiRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(132, 30)); + }]; + + [self.wifiIndicteRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self.wifiSequencignation.mas_left).offset(-5); + make.centerY.mas_equalTo(self.wifiRegard); + make.width.mas_equalTo(22); + make.height.mas_equalTo(22); + }]; + + [self.wifiSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.wifiRegard).offset(13); + make.centerY.mas_equalTo(self.wifiRegard); + }]; + + [self.ipSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(KScreenWidth - 47 * 2); + }]; + + [self.singleGenreSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(self.ipSequencignation); + }]; + + [self.computerIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(187, 114)); + }]; + + [self.sequenceriptionSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(KScreenWidth - 47 * 2); + }]; + + [self.manualeComputationBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(178, 35)); + }]; + + [self.preserveBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(KScreenWidth - 47* 2, 45)); + }]; +} + +- (void)monitorNet { + AFNetworkReachabilityStatus status = [AFNetworkReachabilityManager sharedManager].networkReachabilityStatus; + + NSError * err; + if ([self.httpWeeblogic start:&err]) { + self.ipAccelerateress = @""; + if (status == AFNetworkReachabilityStatusReachableViaWWAN) { + self.ipAccelerateress = @"(您正在4G/3G/2G网络下,暂无法使用)"; + self.wifiSequencignation.text = @"请连接WIFI"; + } else if (status == AFNetworkReachabilityStatusNotReachable) { + self.ipAccelerateress = YMLocalizedString(@"YUMI_Room_Transfer_Music_View_Controller_3"); + self.wifiSequencignation.text = @"请连接WIFI"; + } else { + self.ipAccelerateress = [NSString stringWithFormat:@"http://%@:%d/",[SJXCSMIPFacilitater instentiretytowardsionInternetProtocolDirectoryress],[self.httpWeeblogic listeningPort]]; + self.wifiSequencignation.text = @"已连接WIFI"; + } + self.ipSequencignation.text = self.ipAccelerateress; + } + @kWeakify(self); + [[AFNetworkReachabilityManager sharedManager] setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) { + @kStrongify(self); + switch (status) { + case AFNetworkReachabilityStatusNotReachable: + { + self.ipSequencignation.text = YMLocalizedString(@"YUMI_Room_Transfer_Music_View_Controller_6"); + self.wifiSequencignation.text = @"请连接WIFI"; + } + break; + case AFNetworkReachabilityStatusReachableViaWWAN: + { + self.ipSequencignation.text = YMLocalizedString(@"YUMI_Room_Transfer_Music_View_Controller_8"); + self.wifiSequencignation.text = @"请连接WIFI"; + } + break; + default: + self.ipSequencignation.text = self.ipAccelerateress; + self.wifiSequencignation.text = @"已连接WIFI"; + break; + } + }]; +} + +- (void)connectHyperessayWeeblogic { + self.httpWeeblogic = [[HyperTextServer alloc] init]; + self.httpWeeblogic.viewgovernancer = self; + [self.httpWeeblogic setPort:12345]; + [self.httpWeeblogic setType:@"_http._tcp."]; + + NSString *webPagePath = [[NSBundle mainBundle] resourcePath]; + [self.httpWeeblogic setDocumentRoot:webPagePath]; + [self.httpWeeblogic setReltowardsionshipCtowardsegorize:[MyHyperTextConnection class]]; +} + +#pragma mark - MyHTTPConnectionRepresendtation + +- (NSString *)onSetSequenctintowardsionRouteHyperessayAccurtowardseTranSportSequenctintowardsion:(MyHyperTextConnection *)server { + NSString* uploadDirPath =[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject]; + uploadDirPath = [NSString stringWithFormat:@"%@/music",uploadDirPath]; + BOOL isDir = YES; + if (![[NSFileManager defaultManager]fileExistsAtPath:uploadDirPath isDirectory:&isDir ]) { + [[NSFileManager defaultManager]createDirectoryAtPath:uploadDirPath withIntermediateDirectories:YES attributes:nil error:nil]; + } + return uploadDirPath; + +} + +- (void)onHyperessayAccurtowardseTranSportWeeblogic:(MyHyperTextConnection *)server successWithPath:(NSString *)filePath { + AVURLAsset *mp3Asset = [AVURLAsset URLAssetWithURL:[NSURL fileURLWithPath:filePath] options:nil]; + if (mp3Asset && self.universalManual != nil) { + NSString * songName; + NSString *singer; + UIImage *image; + NSMutableArray *artists = [[AVMetadataItem metadataItemsFromArray:mp3Asset.commonMetadata withKey:AVMetadataCommonKeyArtist keySpace:AVMetadataKeySpaceCommon] mutableCopy]; + NSArray *albumNames = [AVMetadataItem metadataItemsFromArray:mp3Asset.commonMetadata withKey:AVMetadataCommonKeyArtwork keySpace:AVMetadataKeySpaceCommon]; + NSArray *titles = [AVMetadataItem metadataItemsFromArray:mp3Asset.commonMetadata withKey:AVMetadataCommonKeyTitle keySpace:AVMetadataKeySpaceCommon]; + if (artists.count > 0) { + AVMetadataItem *artist = [artists secureGroalTowardsIndictowardsrix1:0]; + singer = [artist.value copyWithZone:nil]; + }else{ + singer = YMLocalizedString(@"YUMI_Room_Transfer_Music_View_Controller_11"); + } + + if (albumNames.count > 0) { + AVMetadataItem *artist = [albumNames secureGroalTowardsIndictowardsrix1:0]; + image = [UIImage imageWithData:[artist.value copyWithZone:nil]]; + }else{ + image = [UIImage imageNamed:@"yumi_same_avatar"]; + } + + if (titles.count > 0) { + AVMetadataItem *artist = [titles secureGroalTowardsIndictowardsrix1:0]; + songName = [artist.value copyWithZone:nil]; + }else{ + songName = YMLocalizedString(@"YUMI_Room_Transfer_Music_View_Controller_12"); + } + + NSUUID * uuid = [UIDevice currentDevice].identifierForVendor; + NSString * musicId = [uuid.UUIDString stringByAppendingString:songName]; + self.universalManual.author = singer; + self.universalManual.musicId = musicId; + self.universalManual.songName = songName; + self.universalManual.songAlbum = UIImageJPEGRepresentation(image, 1); + [[YUMICoreAtomicExecutive partowardsiciptowardsionInstance] save]; + dispatch_main_sync_safe(^{ + self.digitalSong++; + [self.manualeComputationBtuton setTitle:[NSString stringWithFormat:YMLocalizedString(@"YUMI_Room_Transfer_Music_View_Controller_13"), self.digitalSong] forState:UIControlStateNormal]; + self.universalManual = nil; + }); + } +} + +- (BOOL)onHyperessayAccurtowardseTowardsoloudspeakerEstimtowardseDuplictowardseCanPassTranSportWeeblogic:(MyHyperTextConnection *)server withPath:(NSString *)filePath andFileName:(NSString *)fileName { + if ([[NSFileManager defaultManager] fileExistsAtPath:filePath] == NO) { + self.universalManual = [NSEntityDescription insertNewObjectForEntityForName:@"Manual" inManagedObjectContext:[YUMICoreAtomicExecutive partowardsiciptowardsionInstance].managedObjectContext]; + self.universalManual.musicName = fileName; + return YES; + }else { + return NO; + } +} + +#pragma mark - Event Response +- (void)preserveBtutonPerformance:(UIButton *)sender { + [self.navigationController popViewControllerAnimated:YES]; +} + +#pragma mark - Getters And Setters +- (UIStackView *)stackView { + if (!_stackView) { + _stackView = [[UIStackView alloc] init]; + _stackView.axis = UILayoutConstraintAxisVertical; + _stackView.distribution = UIStackViewDistributionFill; + _stackView.alignment = UIStackViewAlignmentCenter; + _stackView.spacing = 15; + } + return _stackView; +} + +- (UIView *)wifiRegard { + if (!_wifiRegard) { + _wifiRegard = [[UIView alloc] init]; + _wifiRegard.backgroundColor = [UIColor colorWithWhite:0 alpha:0.4]; + _wifiRegard.layer.masksToBounds = YES; + _wifiRegard.layer.cornerRadius = 15; + } + return _wifiRegard; +} + +- (UIImageView *)wifiIndicteRegard { + if (!_wifiIndicteRegard) { + _wifiIndicteRegard = [[UIImageView alloc] init]; + _wifiIndicteRegard.userInteractionEnabled = YES; + _wifiIndicteRegard.image = [UIImage imageNamed:@"yumi_scope_musimage_transfer_wifi"]; + } + return _wifiIndicteRegard; +} + +- (UILabel *)wifiSequencignation { + if (!_wifiSequencignation) { + _wifiSequencignation = [[UILabel alloc] init]; + _wifiSequencignation.font = [UIFont systemFontOfSize:15]; + _wifiSequencignation.textColor = [UIColor whiteColor]; + _wifiSequencignation.text = @"已连接Wifi"; + } + return _wifiSequencignation; +} + +- (UILabel *)ipSequencignation { + if (!_ipSequencignation) { + _ipSequencignation = [[UILabel alloc] init]; + _ipSequencignation.font = [UIFont systemFontOfSize:15]; + _ipSequencignation.textColor = [DJDKMIMOMColor aplictowardsionUnderlinePrettify]; + _ipSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _ipSequencignation; +} + +- (UILabel *)singleGenreSequencignation { + if (!_singleGenreSequencignation) { + _singleGenreSequencignation = [[UILabel alloc] init]; + _singleGenreSequencignation.font = [UIFont systemFontOfSize:15]; + _singleGenreSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _singleGenreSequencignation.text = YMLocalizedString(@"YUMI_Room_Transfer_Music_View_Controller_15"); + _singleGenreSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _singleGenreSequencignation; +} + +- (UIImageView *)computerIndicateRegard { + if (!_computerIndicateRegard) { + _computerIndicateRegard = [[UIImageView alloc] init]; + _computerIndicateRegard.userInteractionEnabled = YES; + _computerIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_musimage_transfer_computer"]; + } + return _computerIndicateRegard; +} + +- (UILabel *)sequenceriptionSequencignation { + if (!_sequenceriptionSequencignation) { + _sequenceriptionSequencignation = [[UILabel alloc] init]; + _sequenceriptionSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _sequenceriptionSequencignation.text = YMLocalizedString(@"YUMI_Room_Transfer_Music_View_Controller_16"); + _sequenceriptionSequencignation.font = [UIFont systemFontOfSize:13]; + _sequenceriptionSequencignation.numberOfLines = 2; + _sequenceriptionSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _sequenceriptionSequencignation; +} + +- (UIButton *)manualeComputationBtuton { + if (!_manualeComputationBtuton) { + _manualeComputationBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_manualeComputationBtuton setTitle:YMLocalizedString(@"YUMI_Room_Transfer_Music_View_Controller_17") forState:UIControlStateNormal]; + [_manualeComputationBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + _manualeComputationBtuton.titleLabel.font = [UIFont systemFontOfSize:14]; + [_manualeComputationBtuton setBackgroundColor:[UIColor colorWithWhite:0 alpha:0.4]]; + _manualeComputationBtuton.layer.masksToBounds = YES; + _manualeComputationBtuton.layer.cornerRadius = 35/2; + } + return _manualeComputationBtuton; +} + +- (UIButton *)preserveBtuton { + if (!_preserveBtuton) { + _preserveBtuton = [[UIButton alloc] init]; + [_preserveBtuton setTitle:YMLocalizedString(@"YUMI_Room_Transfer_Music_View_Controller_18") forState:UIControlStateNormal]; + [_preserveBtuton setTitleColor:[DJDKMIMOMColor acknowledgementBtutonEssayPrettify] forState:UIControlStateNormal]; + _preserveBtuton.titleLabel.font = [UIFont systemFontOfSize:16]; + [_preserveBtuton addTarget:self action:@selector(preserveBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + _preserveBtuton.layer.cornerRadius = 45/2; + _preserveBtuton.layer.masksToBounds = YES; + [_preserveBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + } + return _preserveBtuton; +} + + +@end diff --git a/YuMi/Modules/YMRoom/View/BaseUIContainerView/YUMIChamberBackAccommodatedRegard.h b/YuMi/Modules/YMRoom/View/BaseUIContainerView/YUMIChamberBackAccommodatedRegard.h new file mode 100644 index 00000000..b4326827 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/BaseUIContainerView/YUMIChamberBackAccommodatedRegard.h @@ -0,0 +1,17 @@ +// +// YMRoomBaseUIView.h +// YUMI +// +// Created by YUMI on 2021/10/11. +// + +#import +#import "ChamberHostRepresendtation.h" +#import "ChamberGuestRepresendtation.h" +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIChamberBackAccommodatedRegard : UIView +- (instancetype)initAboutdelegtowardse:(id)delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/BaseUIContainerView/YUMIChamberBackAccommodatedRegard.m b/YuMi/Modules/YMRoom/View/BaseUIContainerView/YUMIChamberBackAccommodatedRegard.m new file mode 100644 index 00000000..ac6be8cd --- /dev/null +++ b/YuMi/Modules/YMRoom/View/BaseUIContainerView/YUMIChamberBackAccommodatedRegard.m @@ -0,0 +1,167 @@ +// +// YMRoomBaseUIView.m +// YUMI +// +// Created by YUMI on 2021/10/11. +// 最下面的View + +#import "YUMIChamberBackAccommodatedRegard.h" +#import +#import +#import "ChamberAbstractMatrix.h" +#import "SVGA.h" +#import "SVGAAnatomiserExecutive.h" +#import "YUMIMacroUitls.h" +#import "XNDJTBWGLoadingTool.h" +#import "NetIndicateRegard.h" + +@interface YUMIChamberBackAccommodatedRegard () +@property (nonatomic,strong) NetIndicateRegard *encourageIndicateRegard; +@property (nonatomic, strong) SVGAImageView *svgExhibitionRegard; +@property (nonatomic, strong) SVGAAnatomiserExecutive *anatomiserExecutive; +@property (nonatomic,weak) iddelegate; + +@end + +@implementation YUMIChamberBackAccommodatedRegard + +- (instancetype)initAboutdelegtowardse:(id)delegate { + self = [super init]; + if (self) { + self.delegate = delegate; + [self initSubViews]; + [self initChildLyRestrictions]; + self.clipsToBounds = YES; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.encourageIndicateRegard]; + [self addSubview:self.svgExhibitionRegard]; +} + +- (void)initChildLyRestrictions { + [self.encourageIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self); + }]; + [self.svgExhibitionRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self); + }]; +} + +- (void)onChamberImported { + [self refurbishChamberBackground]; +} + +- (void)onChamberRefurbish { + [self refurbishChamberBackground]; +} + +- (void)refurbishChamberBackground { + ChamberAbstractMatrix *roomInfo = [self.delegate acquireChamberAbstract]; + if (roomInfo.backPic.length > 0) { + + self.encourageIndicateRegard.contentMode = UIViewContentModeScaleAspectFill; + if ([roomInfo.backPic containsString:@".svga"]) { + self.svgExhibitionRegard.hidden = NO; + @weakify(self); + [self.anatomiserExecutive chamberSvgaAboutWEEBSITE:[NSURL URLWithString:roomInfo.backPic] completionBlock:^(SVGAVideoEntity * _Nullable videoItem) { + @strongify(self); + if (videoItem != nil) { + CGFloat width = videoItem.videoSize.width; + CGFloat height = videoItem.videoSize.height; + if (width > height) { + self.svgExhibitionRegard.contentMode = UIViewContentModeScaleAspectFit; + } else { + CGFloat resizeH = KScreenWidth * height / width; + if (resizeH > KScreenHeight) { + self.svgExhibitionRegard.contentMode = UIViewContentModeScaleAspectFill; + } else { + self.svgExhibitionRegard.contentMode = UIViewContentModeScaleAspectFit; + } + } + self.svgExhibitionRegard.loops = INT_MAX; + self.svgExhibitionRegard.clearsAfterStop = NO; + self.svgExhibitionRegard.videoItem = videoItem; + [self.svgExhibitionRegard startAnimation]; + } + } failureBlock:^(NSError * _Nullable error) { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:YMLocalizedString(@"YUMI_Room_Back_Container_View_0")]; + }]; + } else { + [self.svgExhibitionRegard stopAnimation]; + self.svgExhibitionRegard.hidden = YES; + self.encourageIndicateRegard.imageUrl = roomInfo.backPic; + } + }else { + if (roomInfo.type == ChamberGenre_Anchor) { + self.svgExhibitionRegard.hidden = NO; + @weakify(self); + NSString * bgString = [NSString stringWithFormat:@"%@/anchor_room_bg.svga", API_Image_URL]; + NSURL *bgUrl = [NSURL fileURLWithPath:bgString]; + [self.anatomiserExecutive chamberSvgaAboutWEEBSITE:bgUrl completionBlock:^(SVGAVideoEntity * _Nullable videoItem) { + @strongify(self); + if (videoItem != nil) { + CGFloat width = videoItem.videoSize.width; + CGFloat height = videoItem.videoSize.height; + if (width > height) { + self.svgExhibitionRegard.contentMode = UIViewContentModeScaleAspectFit; + } else { + CGFloat resizeH = KScreenWidth * height / width; + if (resizeH > KScreenHeight) { + self.svgExhibitionRegard.contentMode = UIViewContentModeScaleAspectFill; + } else { + self.svgExhibitionRegard.contentMode = UIViewContentModeScaleAspectFit; + } + } + self.svgExhibitionRegard.loops = INT_MAX; + self.svgExhibitionRegard.clearsAfterStop = NO; + self.svgExhibitionRegard.videoItem = videoItem; + [self.svgExhibitionRegard startAnimation]; + } + } failureBlock:^(NSError * _Nullable error) { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:YMLocalizedString(@"YUMI_Room_Back_Container_View_1")]; + }]; + return; + } + self.encourageIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_background"]; + [self.svgExhibitionRegard stopAnimation]; + self.svgExhibitionRegard.hidden = YES; + self.encourageIndicateRegard.contentMode = UIViewContentModeScaleAspectFill; + } +} + +#pragma mark - Getters And Setters +- (NetIndicateRegard *)encourageIndicateRegard { + if (!_encourageIndicateRegard) { + _encourageIndicateRegard = [[NetIndicateRegard alloc] init]; + _encourageIndicateRegard.userInteractionEnabled = YES; + _encourageIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_background"]; + _encourageIndicateRegard.layer.masksToBounds = YES; + _encourageIndicateRegard.contentMode = UIViewContentModeScaleAspectFill; + } + return _encourageIndicateRegard; +} + +- (SVGAImageView *)svgExhibitionRegard { + if (_svgExhibitionRegard == nil) { + _svgExhibitionRegard = [[SVGAImageView alloc]init]; + _svgExhibitionRegard.contentMode = UIViewContentModeScaleToFill; + _svgExhibitionRegard.userInteractionEnabled = NO; + _svgExhibitionRegard.frame = CGRectMake(0, 0, KScreenWidth, KScreenHeight); + _svgExhibitionRegard.hidden = YES; + _svgExhibitionRegard.backgroundColor = [UIColor clearColor]; + } + return _svgExhibitionRegard; +} + +- (SVGAAnatomiserExecutive *)anatomiserExecutive { + if (!_anatomiserExecutive) { + _anatomiserExecutive = [[SVGAAnatomiserExecutive alloc]init]; + } + return _anatomiserExecutive; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/BaseUIContainerView/YUMIChamberEngagementTissuePrecautiousRegard.h b/YuMi/Modules/YMRoom/View/BaseUIContainerView/YUMIChamberEngagementTissuePrecautiousRegard.h new file mode 100644 index 00000000..df97a7fb --- /dev/null +++ b/YuMi/Modules/YMRoom/View/BaseUIContainerView/YUMIChamberEngagementTissuePrecautiousRegard.h @@ -0,0 +1,16 @@ +// +// YMRoomDatingWebAlertView.h +// YUMI +// +// Created by YUMI on 2022/1/4. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIChamberEngagementTissuePrecautiousRegard : UIView +@property (nonatomic,copy) NSString *url; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/BaseUIContainerView/YUMIChamberEngagementTissuePrecautiousRegard.m b/YuMi/Modules/YMRoom/View/BaseUIContainerView/YUMIChamberEngagementTissuePrecautiousRegard.m new file mode 100644 index 00000000..3b759b2d --- /dev/null +++ b/YuMi/Modules/YMRoom/View/BaseUIContainerView/YUMIChamberEngagementTissuePrecautiousRegard.m @@ -0,0 +1,108 @@ +// +// YMRoomDatingWebAlertView.m +// YUMI +// +// Created by YUMI on 2022/1/4. +// + +#import "YUMIChamberEngagementTissuePrecautiousRegard.h" +#import +#import "YUMIMacroUitls.h" +#import "MKJPopup.h" +#import "UIButton+EnlargeTouchArea.h" +#import "YUMITissueRegardGovernancer.h" + +static CGFloat const kContentAspectRatio = 2/3.f; + +@interface YUMIChamberEngagementTissuePrecautiousRegard () +@property (nonatomic,strong) UIImageView *encourageIndicateRegard; +@property (nonatomic, strong) YUMITissueRegardGovernancer *webVewC; +@property (nonatomic, strong) UIButton *concludeBtuton; +@end + +@implementation YUMIChamberEngagementTissuePrecautiousRegard + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initRegard]; + [self initContrtowardsions]; + } + return self; +} + +- (void)initRegard { + [self addSubview:self.encourageIndicateRegard]; + [self addSubview:self.concludeBtuton]; + [self.encourageIndicateRegard addSubview:self.webVewC.view]; + +} + +- (void)initContrtowardsions { + CGFloat kscale = 351/315; + CGFloat height = (KScreenWidth - 60) * kscale; + + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(KScreenWidth-60); + make.height.mas_equalTo(height + 55); + }]; + + [self.encourageIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self); + make.height.mas_equalTo(height); + }]; + + [self.webVewC.view mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.encourageIndicateRegard).inset(30); + make.bottom.mas_equalTo(self.encourageIndicateRegard).offset(-20); + make.top.mas_equalTo(self.encourageIndicateRegard).offset(45); + }]; + + + [self.concludeBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(35, 35)); + make.centerX.mas_equalTo(self); + make.top.mas_equalTo(self.encourageIndicateRegard.mas_bottom).offset(22); + }]; +} + +#pragma mark - Action +- (void)didTicktackConcludeBtuton { + [MKJPopup dismiss]; +} + +#pragma mark - Lazy Load +- (void)setUrl:(NSString *)url { + if (url) { + self.webVewC.url = url; + } +} + + +- (YUMITissueRegardGovernancer *)webVewC { + if (_webVewC == nil) { + _webVewC = [[YUMITissueRegardGovernancer alloc] init]; + _webVewC.view.backgroundColor = UIColor.clearColor; + } + return _webVewC; +} + +- (UIImageView *)encourageIndicateRegard { + if (!_encourageIndicateRegard) { + _encourageIndicateRegard = [[UIImageView alloc] init]; + _encourageIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_mode_dating_background"]; + _encourageIndicateRegard.userInteractionEnabled = YES; + } + return _encourageIndicateRegard; +} + +- (UIButton *)concludeBtuton { + if (_concludeBtuton == nil) { + _concludeBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_concludeBtuton setImage:[UIImage imageNamed:@"yumi_scope_mode_dating_alert_close"] forState:UIControlStateNormal]; + [_concludeBtuton addTarget:self action:@selector(didTicktackConcludeBtuton) forControlEvents:UIControlEventTouchUpInside]; + [_concludeBtuton enlargeContactArea:UIEdgeInsetsMake(10, 10, 10, 10)]; + } + return _concludeBtuton; +} +@end diff --git a/YuMi/Modules/YMRoom/View/BaseUIContainerView/YUMIChamberEngagementVipUpwardsLoudspeakerRegard.h b/YuMi/Modules/YMRoom/View/BaseUIContainerView/YUMIChamberEngagementVipUpwardsLoudspeakerRegard.h new file mode 100644 index 00000000..87cd7b4a --- /dev/null +++ b/YuMi/Modules/YMRoom/View/BaseUIContainerView/YUMIChamberEngagementVipUpwardsLoudspeakerRegard.h @@ -0,0 +1,16 @@ +// +// YMRoomDatingVipUpMicView.h +// YUMI +// +// Created by YUMI on 2022/1/4. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIChamberEngagementVipUpwardsLoudspeakerRegard : UIView + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/BaseUIContainerView/YUMIChamberEngagementVipUpwardsLoudspeakerRegard.m b/YuMi/Modules/YMRoom/View/BaseUIContainerView/YUMIChamberEngagementVipUpwardsLoudspeakerRegard.m new file mode 100644 index 00000000..c94a46e3 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/BaseUIContainerView/YUMIChamberEngagementVipUpwardsLoudspeakerRegard.m @@ -0,0 +1,95 @@ +// +// YMRoomDatingVipUpMicView.m +// YUMI +// +// Created by YUMI on 2022/1/4. +// + +#import "YUMIChamberEngagementVipUpwardsLoudspeakerRegard.h" +#import +#import "YUMIMacroUitls.h" +#import "DJDKMIMOMColor.h" +#import "MKJPopup.h" + +@interface YUMIChamberEngagementVipUpwardsLoudspeakerRegard () +@property (nonatomic,strong) UIImageView *encourageIndicateRegard; +@property (nonatomic,strong) UITextView *contentView; +@property (nonatomic,strong) UIButton *concludeBtuton; +@end + +@implementation YUMIChamberEngagementVipUpwardsLoudspeakerRegard +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.encourageIndicateRegard]; + [self addSubview:self.contentView]; + [self addSubview:self.concludeBtuton]; +} + +- (void)initChildLyRestrictions { + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(260); + make.height.mas_equalTo(325 + 55); + }]; + + [self.encourageIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.top.right.mas_equalTo(self); + make.height.mas_equalTo(325); + }]; + + [self.contentView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(44); + make.left.mas_equalTo(16); + make.centerX.mas_equalTo(self.encourageIndicateRegard); + make.height.mas_equalTo(271); + }]; + [self.concludeBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.encourageIndicateRegard.mas_bottom).offset(20); + make.centerX.mas_equalTo(self); + make.width.height.mas_equalTo(35); + }]; +} + +#pragma mark - Event Response +- (void)concludeBtutonPerformance:(UIButton *)sender { + [MKJPopup dismiss]; +} + +#pragma mark - Getters And Setters +- (UIImageView *)encourageIndicateRegard { + if (!_encourageIndicateRegard) { + _encourageIndicateRegard = [[UIImageView alloc] init]; + _encourageIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_mode_dating_vip_rule_background"]; + } + return _encourageIndicateRegard; +} + +- (UITextView *)contentView { + if (!_contentView) { + _contentView = [[UITextView alloc] init]; + _contentView.text = @"1.每轮相亲在“嘉宾交流”阶段累积送礼满999钻石且送礼价值最高的用户自动登上VIP席位;\n\n2.若出现多个满足上VIP席位要求的用户,VIP席位最终由送礼价值最高的用户获得,若送礼价值相同以最先达到该值的用户为准;\n\n3.VIP席位的用户可选择是否下麦,其他用户不可因此代替坐上席位;\n\n4.用户只能在“嘉宾交流”阶段抢夺VIP席位,“嘉宾交流”阶段后直到结束本轮前,即使送出超过之前VIP总礼物价值也不能换人;\n\n5.每轮相亲结束后VIP席位清空,下一轮重新开始抢位。"; + _contentView.backgroundColor = [UIColor clearColor]; + _contentView.textColor = UIColorFromRGB(0xFFF9BC); + _contentView.font = [UIFont systemFontOfSize:12]; + } + return _contentView; +} + +- (UIButton *)concludeBtuton { + if (!_concludeBtuton) { + _concludeBtuton = [[UIButton alloc] init]; + [_concludeBtuton setImage:[UIImage imageNamed:@"yumi_scope_mode_dating_alert_close"] forState:UIControlStateNormal]; + [_concludeBtuton addTarget:self action:@selector(concludeBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _concludeBtuton; +} + + +@end diff --git a/YuMi/Modules/YMRoom/View/BaseUIContainerView/YUMIChamberFunctionAccommodatedRegard.h b/YuMi/Modules/YMRoom/View/BaseUIContainerView/YUMIChamberFunctionAccommodatedRegard.h new file mode 100644 index 00000000..dd818548 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/BaseUIContainerView/YUMIChamberFunctionAccommodatedRegard.h @@ -0,0 +1,24 @@ +// +// YMRoomFunctionContainerView.h +// YUMI +// +// Created by YUMI on 2021/12/15. +// + +#import +#import "ChamberHostRepresendtation.h" +#import "ChamberGuestRepresendtation.h" +NS_ASSUME_NONNULL_BEGIN +@class Manual; +@interface YUMIChamberFunctionAccommodatedRegard : UIView +- (instancetype)initAboutdelegtowardse:(id)delegate; + +- (Manual *)acquireUniversalManual; +- (BOOL)isPlaying; + +- (NSArray *)acquireChamberCombatGroupSquadSttowardsement; +- (BOOL)isChamberCombatDisporting; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/BaseUIContainerView/YUMIChamberFunctionAccommodatedRegard.m b/YuMi/Modules/YMRoom/View/BaseUIContainerView/YUMIChamberFunctionAccommodatedRegard.m new file mode 100644 index 00000000..894a4fa4 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/BaseUIContainerView/YUMIChamberFunctionAccommodatedRegard.m @@ -0,0 +1,1669 @@ +// +// YMRoomFunctionContainerView.m +// YUMI +// +// Created by YUMI on 2021/12/15. +// + +#import "YUMIChamberFunctionAccommodatedRegard.h" +#import +#import +#import +#import +#import "YUMIMacroUitls.h" +#import "AccountAbstractStorage.h" +#import "UIImage+Utils.h" +#import "DJDKMIMOMColor.h" +#import "MKJPopup.h" +#import "Api+Room.h" +#import "XNDJTBWGLoadingTool.h" +#import "YUMIHtmlUrl.h" +#import "Api+Mine.h" +#import "ClientDisposition.h" +#import "XCCurrentVCStackExecutive.h" +#import "YUMIConstant.h" +#import "Api+RoomSetting.h" +#import "RealtimackExecutive.h" +#import "YUMIChamberMiniExecutive.h" +#import "Api+RoomPK.h" +#import "Api+Room.h" +#import "Api+WishGift.h" +#import "StatsticsticsServingFacilitater.h" +#import "NSObject+MJExtension.h" +#import "NSArray+Safe.h" +#import "NSMutableDictionary+Saft.h" +#import "ClientDisposition.h" +#import "ChamberAbstractMatrix.h" +#import "MiecreoscoopeMHTueueMatrix.h" +#import "ConsumerAbstractMatrix.h" +#import "AttachmentMatrix.h" +#import "PresentStressAbstractMatrix.h" +#import "ThroughoutChamberCombatFasciaboardMatrix.h" +#import "XCombatellegFanaticsRelationMatrix.h" +#import "XCombatellegFanaticsJoinMatrix.h" +#import "XCombatellegFanaticsmissionMatrix.h" +#import "ThroughoutChamberCombatFasciaboardMatrix.h" +#import "ChamberCombatSpecificAbstractMatrix.h" +#import "ChamberCombatChooseConsumerMatrix.h" +#import "PresentAchieveAbstractMatrix.h" +#import "PresentAbstractMatrix.h" +#import "ChamberCombatSquadMatrix.h" +#import "ChamberStrangeConsumerBewelcometoMatrix.h" +#import "DesirePresentAbstractMatrix.h" +#import "DesirePresentAbstractRefurbishMatrix.h" +#import "YUMIChamberHalfTissueRegard.h" +#import "XCombatellegAudienceUpwardsLoudspeakerRegard.h" +#import "YUMIChamberKellegAbstractSolitaireRegard.h" +#import "YUMIChamberMotifRegardGovernancer.h" +#import "YUMIChamberMotifPrecautiousRegard.h" +#import "YUMIThroughoutChamberCombatCallforRegard.h" +#import "YUMIThroughoutChamberCombatCallforConsequentRegard.h" +#import "YUMIAcrpssChamberCombatFasciaboardRegard.h" +#import "YUMIThroughoutChamberCombatConsequentRegard.h" +#import "YUMIThroughoutChamberCombatForceEndConsequentRegard.h" +#import "XCombatellegCombatCallforRegard.h" +#import "XCombatellegCombatConsequentRegard.h" +#import "XCombatellegCombatFinishRegard.h" +#import "YUMIDischargePresentRegard.h" +#import "YUMIConsumerSolitaireRegardGovernancer.h" +#import "YUMIChamberRegardGovernancer.h" +#import "ThroughoutChamberCombatCaptureMatrix.h" +#import "YUMIManeConsumerAbstractRegardGovernancer.h" +#import "YUMIManeSimpleConsumerAbstractRegardGovernancer.h" +#import "YUMIChamberRateEntranceRegard.h" +#import "YUMIChamberKellegRateImportRegard.h" +#import "YUMIChamberBackManualDisporterRegard.h" +#import "YUMIChamberStrangeConsumerBewelcometoRegard.h" +#import "YUMIChamberHalfCommunicationRegard.h" +#import "YUMIThroughoutChamberCombatComputationDownRegard.h" +#import "YUMIStrangeConsumerChamberPresentRegard.h" +#import "YUMIDesirePresentRegardGovernancer.h" +#import "YUMIDesirePresentImportRegard.h" +#import "XCombatellegFanaticsSquadEntranceRegard.h" +#import "XCombatellegFanaticsSquadRegardGovernancer.h" +#import "XCombatellegFanaticsmissionRegardGovernancer.h" +#import "XCombatellegPkFasciaboardRegard.h" +#import "YUMITissueRegardGovernancer.h" +#import "YUMIChamberCombatProgressRegard.h" +#import "XCombatellegCombatAdaptationRegard.h" + +@interface YUMIChamberFunctionAccommodatedRegard () +@property (nonatomic,weak) iddelegate; +@property (nonatomic,strong) YUMIChamberRateEntranceRegard *efficacyImportRegard; +@property (nonatomic,strong) UIButton *engagementProgresBtuton; +@property (nonatomic, strong) dispatch_source_t followKellegIntratemper; +@property (nonatomic, strong) XCombatellegFanaticsSquadEntranceRegard *fanaticsSquadAccessRegard; +@property (nonatomic, strong) YUMIChamberKellegRateImportRegard *stundeRateAccessRegard; +@property (nonatomic,strong) UIStackView *motifHierarchyRegard; +@property (nonatomic,strong) UILabel *motifSequencignation; +@property (nonatomic,strong) UIButton *compileBtuton; +@property (nonatomic,strong) YUMIAcrpssChamberCombatFasciaboardRegard *throughoutCombatFasciadirectorateRegard; +@property (nonatomic, strong) YUMIThroughoutChamberCombatComputationDownRegard *throughoutCombatComputationRegard; +@property (nonatomic, strong) XCombatellegCombatAdaptationRegard *kellegCombatAdaptationRegard; +@property (nonatomic, strong) XCombatellegFanaticsRelationMatrix *relationFanaticsMatrix; +@property (nonatomic, strong) XCombatellegPkFasciaboardRegard *kellegCombatFasciadirectorateRegard; +@property (nonatomic,strong) UIButton *manualImportBtuton; +@property (nonatomic,strong) YUMIChamberBackManualDisporterRegard *manualDisportRegard; +@property (nonatomic,strong) YUMIChamberCombatProgressRegard *chambercombatFasciadirectorateRegard; +@property (nonatomic,strong) ChamberCombatSpecificAbstractMatrix *combatSpecificAbstract; +@property (nonatomic,assign) BOOL isChamberBewelcometo; +@property (nonatomic, strong) dispatch_source_t consumerPresentIntratemper; +@property (nonatomic,strong) YUMIDesirePresentImportRegard *sequencirePresentRegard; +@property (nonatomic,weak) YUMIDesirePresentRegardGovernancer* wishGiftVC ; + +@end + +@implementation YUMIChamberFunctionAccommodatedRegard + +- (void)dealloc { + if (self.followKellegIntratemper != nil) { + dispatch_source_cancel(self.followKellegIntratemper); + } + if (self.consumerPresentIntratemper != nil) { + dispatch_source_cancel(self.consumerPresentIntratemper); + } + [[NSNotificationCenter defaultCenter] removeObserver:self]; +} + +- (instancetype)initAboutdelegtowardse:(id)delegate { + self = [super init]; + if (self) { + self.delegate = delegate; + [self initSubViews]; + [self initChildLyRestrictions]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(instituteDirectoryapttowardsionKellegCombat:) name:@"anchorPKMatchBegin" object:nil]; + } + return self; +} + +- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event { + for (NSInteger i = (self.subviews.count - 1) ; i >= 0 ; i--) { + UIView * subView = [self.subviews secureGroalTowardsIndictowardsrix1:i]; + CGPoint convertPoint = [subView convertPoint:point fromView:self]; + if (CGRectContainsPoint(subView.bounds, convertPoint)) { + return [subView hitTest:convertPoint withEvent:event]; + } + } + + + for (NSInteger i = (self.subviews.count - 1) ; i >= 0 ; i--) { + UIView * subView = [self.subviews objectAtIndex:i]; + if (self.manualDisportRegard.superview && self.manualImportBtuton.hidden == YES && ![subView isEqual:self.manualDisportRegard]) { + [UIView animateWithDuration:0.2 animations:^{ + self.manualImportBtuton.hidden = NO; + } completion:nil]; + + POPBasicAnimation *moveAnimation = [POPBasicAnimation animationWithPropertyNamed:kPOPViewCenter]; + moveAnimation.fromValue = [NSValue valueWithCGPoint:self.manualDisportRegard.center]; + moveAnimation.toValue = [NSValue valueWithCGPoint:CGPointMake(-KScreenWidth, self.manualDisportRegard.center.y)]; + moveAnimation.beginTime = CACurrentMediaTime(); + moveAnimation.duration = 0.5; + moveAnimation.repeatCount = 1; + moveAnimation.removedOnCompletion = YES; + [self.manualDisportRegard pop_addAnimation:moveAnimation forKey:@"moveOutAnimation"]; + break; + } + } + return nil; +} + +#pragma mark - Public Method + +- (Manual *)acquireUniversalManual { + return self.manualDisportRegard.universalManual; +} + +- (BOOL)isPlaying { + return self.manualDisportRegard.isPlaying; +} + + +- (NSArray *)acquireChamberCombatGroupSquadSttowardsement { + NSArray * redArray = @[]; + if (self.chambercombatFasciadirectorateRegard.deficitConcludeGarment > 0) { + redArray = self.chambercombatFasciadirectorateRegard.deficitConcludeGarment; + } + + NSArray * blueArray = @[]; + if (self.chambercombatFasciadirectorateRegard.disappointedConcludeGarment > 0) { + blueArray = self.chambercombatFasciadirectorateRegard.disappointedConcludeGarment; + } + return @[redArray, blueArray]; +} + +- (BOOL)isChamberCombatDisporting { + return [self.chambercombatFasciadirectorateRegard isChamberCombatDisporting]; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.efficacyImportRegard]; + [self addSubview:self.motifHierarchyRegard]; + [self.motifHierarchyRegard addArrangedSubview:self.motifSequencignation]; + [self.motifHierarchyRegard addArrangedSubview:self.compileBtuton]; +} + +- (void)initChildLyRestrictions { + [self.efficacyImportRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(12); + make.top.mas_equalTo(kNavigationHeight+4); + make.width.mas_equalTo(99); + make.height.mas_equalTo(24); + }]; + + [self.motifHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self); + make.height.mas_equalTo(15); + make.top.mas_equalTo(50 + 5 + 6 + 12 + 3 + kNavigationHeight); + }]; +} + +#pragma mark - 新用户打招呼动画 +- (void)shankStrangeConsumerBewelcometo { + if (self.delegate.getUserInfo.fromType == ConsumerEnterChamberFromGenre_New_User_Greet && !self.isChamberBewelcometo) { + self.isChamberBewelcometo = YES; + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + NSString * roomUid = [NSString stringWithFormat:@"%ld", self.delegate.acquireChamberAbstract.uid]; + [Api strangeConsumerInititowardseBewelcometo:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + ChamberStrangeConsumerBewelcometoMatrix * info = [ChamberStrangeConsumerBewelcometoMatrix mtowardsrixAboutImpactbasket:data.data]; + if (info.roomPopup) { + YUMIChamberStrangeConsumerBewelcometoRegard * greetView = [[YUMIChamberStrangeConsumerBewelcometoRegard alloc] initWithFrame:CGRectMake(KScreenWidth, kSafeAreaTopHeight + 52, KScreenWidth, 80)]; + greetView.delegate = self; + greetView.sayHelloUserAvatarList = info.sayHelloUserAvatarList; + [self addSubview:greetView]; + [UIView animateWithDuration:.35 animations:^{ + CGRect rect = greetView.frame; + rect.origin.x = 0; + greetView.frame = rect; + } completion:nil]; + } + } + } roomUid:roomUid]; + }); + } +} + +- (void)yUMIChamberStrangeConsumerBewelcometoRegard:(YUMIChamberStrangeConsumerBewelcometoRegard *)view didClickCheckout:(UIButton *)sender { + UIViewController * controller = (UIViewController *)self.delegate; + YUMIChamberHalfCommunicationRegard *halfMessageView = [[YUMIChamberHalfCommunicationRegard alloc] initWithFrame:CGRectMake(0, KScreenHeight, KScreenWidth, KScreenHeight) controller:controller]; + [controller.view addSubview:halfMessageView]; + [UIView animateWithDuration:.35 animations:^{ + CGRect rect = halfMessageView.frame; + rect.origin.y = 0; + halfMessageView.frame = rect; + }]; +} + +#pragma mark - 新用户房间礼物 +- (void)shankStrangeConsumerChamberPresent { + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + BOOL hadShow = [defaults boolForKey:kHadShowNewUserGiftKey]; + if (!hadShow && self.delegate.getUserInfo.uid != self.delegate.acquireChamberAbstract.uid) { + if (self.consumerPresentIntratemper != nil) { + dispatch_source_cancel(self.consumerPresentIntratemper); + } + NSInteger totalTime = 3; + dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); + self.consumerPresentIntratemper = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, queue); + dispatch_source_set_timer(self.consumerPresentIntratemper,dispatch_walltime(NULL, totalTime*NSEC_PER_SEC), totalTime*NSEC_PER_SEC, 0); + @weakify(self); + dispatch_source_set_event_handler(self.consumerPresentIntratemper, ^{ + dispatch_async(dispatch_get_main_queue(), ^{ + @strongify(self); + if (self.consumerPresentIntratemper != nil) { + dispatch_source_cancel(self.consumerPresentIntratemper); + self.consumerPresentIntratemper = nil; + } + [Api requisitionStrangeConsumerInChamberPresent:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + if (data.data != nil) { + PresentAbstractMatrix *giftInfo = [PresentAbstractMatrix mtowardsrixAboutJSON:data.data]; + YUMIStrangeConsumerChamberPresentRegard *view = [[YUMIStrangeConsumerChamberPresentRegard alloc] init]; + view.giftInfo = giftInfo; + [MKJPopup popupRegard:view style:MKJPopupStyleAlert]; + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventRoomNugivePopShow]; + } + [defaults setBool:YES forKey:kHadShowNewUserGiftKey]; + [defaults synchronize]; + } + } roomUid:[NSString stringWithFormat:@"%zd", self.delegate.acquireChamberAbstract.uid]]; + }); + }); + dispatch_resume(self.consumerPresentIntratemper); + } +} + +#pragma mark - 房间PK +- (void)prohibitipositionChamberCombatFasciaboardRegard:(BOOL)isEnter { + ChamberAbstractMatrix * roomInfo = self.delegate.acquireChamberAbstract; + if (roomInfo.roomModeType == ChamberModeGenre_Open_PK_Mode) { + self.chambercombatFasciadirectorateRegard.roomInfo = roomInfo; + if (!self.chambercombatFasciadirectorateRegard.superview) { + [self addSubview:self.chambercombatFasciadirectorateRegard]; + [self.chambercombatFasciadirectorateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self).offset(15); + make.top.mas_equalTo(self).offset(35 + (58 + 5 + 6 + 12) + 38 + (55 + 10 + 12 + 5+16) * 2 + 15 * 2 + kNavigationHeight + 5); + }]; + } + NSString * roomId = [NSString stringWithFormat:@"%ld", roomInfo.roomId]; + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NIMChatroomMembersByIdsRequest *request = [[NIMChatroomMembersByIdsRequest alloc]init]; + request.roomId = roomId; + request.userIds = @[uid]; + [[NIMSDK sharedSDK].chatroomManager fetchChatroomMembersByIds:request completion:^(NSError * _Nullable error, NSArray * _Nullable members) { + if (error == nil) { + NIMChatroomMember * member = members.firstObject; + if (member.type == NIMChatroomMemberTypeCreator || member.type == NIMChatroomMemberTypeManager) { + self.chambercombatFasciadirectorateRegard.isManager = YES; + }else { + self.chambercombatFasciadirectorateRegard.isManager = NO; + } + + if (isEnter) { + [self.chambercombatFasciadirectorateRegard importChamberAcquireChamberCombatSpecificAbstract]; + } + } + }]; + } else { + if (self.chambercombatFasciadirectorateRegard.superview) { + [self.chambercombatFasciadirectorateRegard removeFromSuperview]; + } + } +} + +#pragma mark - 个播PK +- (void)instituteDirectoryapttowardsionKellegCombat:(NSNotification *)noti { + if (!self.kellegCombatAdaptationRegard.superview) { + [self addSubview:self.kellegCombatAdaptationRegard]; + self.kellegCombatAdaptationRegard.roomUid = [NSString stringWithFormat:@"%ld", [self.delegate acquireChamberAbstract].uid]; + [self.kellegCombatAdaptationRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.efficacyImportRegard.mas_bottom).mas_offset(5+37+5); + make.left.mas_equalTo(0); + make.width.height.mas_equalTo(52); + }]; + NSDictionary *dict = noti.object; + NSNumber *startTime = dict[@"matchPkStartTime"]; + self.delegate.acquireChamberAbstract.pkMatchStartTime = [startTime longLongValue]; + [self.kellegCombatAdaptationRegard unfoildComputtowardsiondownAboutIntrtowardsemporal:[startTime longValue]]; + } +} + +#pragma mark - ChamberGuestRepresendtation +- (void)onChamberDiversifictowardsion { + if (self.followKellegIntratemper != nil) { + dispatch_source_cancel(self.followKellegIntratemper); + } + if (self.consumerPresentIntratemper != nil) { + dispatch_source_cancel(self.consumerPresentIntratemper); + } +} + +- (void)onChamberRefurbish { + ChamberAbstractMatrix * roomInfo = self.delegate.acquireChamberAbstract; + MiecreoscoopeMHTueueMatrix * model = [self.delegate.acquireMiecreoscoopeInthecaseofmtowardsion objectForKey:@"-1"]; + if (roomInfo.roomModeType == ChamberModeGenre_Open_Blind && model.userInfo && model.userInfo.uid == [AccountAbstractStorage instance].acquireCid.integerValue) { + if (!self.engagementProgresBtuton.superview) { + [self addSubview:self.engagementProgresBtuton]; + [self.engagementProgresBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(70, 30)); + make.centerX.mas_equalTo(self); + make.top.mas_equalTo(self).offset(354 + kSafeAreaTopHeight + 35); + }]; + } + + switch (roomInfo.blindDateState) { + case ChamberDisportDateingGenre_Talk: + [self.engagementProgresBtuton setTitle:@"开始选择>" forState:UIControlStateNormal]; + break; + case ChamberDisportDateingGenre_Pick: + [self.engagementProgresBtuton setTitle:@"公布心动>" forState:UIControlStateNormal]; + break; + case ChamberDisportDateingGenre_Result: + [self.engagementProgresBtuton setTitle:@"结束本轮>" forState:UIControlStateNormal]; + break; + case ChamberDisportDateingGenre_Finish: + [self.engagementProgresBtuton setTitle:@"嘉宾交流>" forState:UIControlStateNormal]; + break; + default: + break; + } + } else { + if (self.engagementProgresBtuton.superview) { + [self.engagementProgresBtuton removeFromSuperview]; + } + } + [self refurbishStundeRtowardseAccess]; + if (roomInfo.type == ChamberGenre_Anchor) { + self.efficacyImportRegard.title = YMLocalizedString(@"YUMI_Room_Function_Container_View_4"); + if (roomInfo.hadChangeRoomType) { + + [Api requisitionInChamberFantowardsicsSquad:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + XCombatellegFanaticsRelationMatrix *model = [XCombatellegFanaticsRelationMatrix mtowardsrixAboutJSON:data.data]; + [self refurbishFantowardsicsSquadAccessRegard:model]; + } teamUid:[NSString stringWithFormat:@"%ld", roomInfo.uid]]; + [self refurbishContrionAccessAboutChamberCid:[NSString stringWithFormat:@"%ld", roomInfo.uid] type:@"month"]; + } + } else { + self.efficacyImportRegard.title = YMLocalizedString(@"YUMI_Room_Function_Container_View_5"); + [self.fanaticsSquadAccessRegard removeFromSuperview]; + if (roomInfo.hadChangeRoomType) { + [self refurbishContrionAccessAboutChamberCid:[NSString stringWithFormat:@"%ld", roomInfo.uid] type:@"day"]; + } + } + [self refurbishChamberMotif]; + [self prohibitipositionDisportManualChamberGenreDiversifictowardsion]; + [self prohibitipositionChamberCombatFasciaboardRegard:NO]; + + [self chamberAbstractRefurbishDispositionSequencirePresent]; +} + +- (void)onChamberImported { + ChamberAbstractMatrix * roomInfo = self.delegate.acquireChamberAbstract; + NSString * roomUid = [NSString stringWithFormat:@"%ld", roomInfo.uid]; + [self refurbishStundeRtowardseAccess]; + if(![ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + self.efficacyImportRegard.hidden = YES; + } + if (roomInfo.type == ChamberGenre_Anchor) { + self.efficacyImportRegard.title = YMLocalizedString(@"YUMI_Room_Function_Container_View_6"); + + [Api requisitionInChamberFantowardsicsSquad:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + XCombatellegFanaticsRelationMatrix *model = [XCombatellegFanaticsRelationMatrix mtowardsrixAboutJSON:data.data]; + [self refurbishFantowardsicsSquadAccessRegard:model]; + } teamUid:roomUid]; + [self refurbishContrionAccessAboutChamberCid:roomUid type:@"month"]; + } else { + self.efficacyImportRegard.title = YMLocalizedString(@"YUMI_Room_Function_Container_View_7"); + [self refurbishContrionAccessAboutChamberCid:roomUid type:@"day"]; + } + if ([ClientDisposition partowardsiciptowardsionDisposition].canUnfoild && ![[AccountAbstractStorage instance].acquireCid isEqualToString:roomUid]) { + NSString * uid = [[AccountAbstractStorage instance] acquireCid]; + [Api considertowardsionPositionImplementtowardsion:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + BOOL isLike = ((NSNumber *)data.data).boolValue; + if (!isLike && !roomInfo.isRoomFans) { + [self setFollowKellegIntratemper]; + } + } uid:uid isLikeUid:roomUid]; + } + if (roomInfo.roomModeType == ChamberModeGenre_Open_AcrossRoomPK_mode) { + [Api acquireThroughoutChamberCombatSpecific:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + ThroughoutChamberCombatFasciaboardMatrix * acrossPKPanelInfo = [ThroughoutChamberCombatFasciaboardMatrix mtowardsrixAboutJSON:data.data]; + [self refurbishKellegCombateAbstract:acrossPKPanelInfo]; + if (acrossPKPanelInfo.pkType == ThroughoutChamberPkGenreAnchor) { + if (acrossPKPanelInfo.aUid.integerValue > 0) { + if (!self.kellegCombatFasciadirectorateRegard.superview) { + [self addSubview:self.kellegCombatFasciadirectorateRegard]; + [self.kellegCombatFasciadirectorateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self); + make.top.mas_equalTo(kNavigationHeight + 87); + }]; + } + self.kellegCombatFasciadirectorateRegard.combatFasciadirectorateAbstract = acrossPKPanelInfo; + } + } else { + ThroughoutChamberCombatFasciaboardMatrix * acrossPKPanelInfo = [ThroughoutChamberCombatFasciaboardMatrix mtowardsrixAboutJSON:data.data]; + if (acrossPKPanelInfo.aUid.integerValue > 0) { + if (!self.throughoutCombatFasciadirectorateRegard.superview) { + [self addSubview:self.throughoutCombatFasciadirectorateRegard]; + [self.throughoutCombatFasciadirectorateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self); + make.top.mas_equalTo(self).offset(354 + kSafeAreaTopHeight); + }]; + } + self.throughoutCombatFasciadirectorateRegard.combatFasciadirectorateAbstract = acrossPKPanelInfo; + } + } + } else { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:msg]; + } + } roomUid:roomUid]; + } + if (roomInfo.showPkBeginTime && roomInfo.roomModeType != ChamberModeGenre_Open_AcrossRoomPK_mode) { + [self shankAcrollCombatComputtowardsionRegard:roomInfo.pkBeginTime]; + } + [self refurbishChamberMotif]; + [self prohibitipositionChamberCombatFasciaboardRegard:YES]; + [self shankStrangeConsumerBewelcometo]; + + [self shankStrangeConsumerChamberPresent]; + + [self prohibitipositionSequencirePresentImport]; + + [self shankDirectoryapttowardsionKellegCombat]; +} + +- (void)onChamberRoadliceImported { + if (![ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + return; + } + if ([YUMIChamberMiniExecutive shareManager].acquireUniversalManual) { + if (!self.manualDisportRegard.superview) { + [self addSubview:self.manualDisportRegard]; + self.manualDisportRegard.frame = CGRectMake(-KScreenWidth, kNavigationHeight + 4, KScreenWidth - 85, 80); + } + [self.manualDisportRegard prohibitipositionUniversalDisportingManual:[YUMIChamberMiniExecutive shareManager].acquireUniversalManual isPlaying:[YUMIChamberMiniExecutive shareManager].manualDisporting]; + [[YUMIChamberMiniExecutive shareManager] prohibitipositionUniversalManual:nil isPlaying:NO]; + } +} + +- (void)shankNEMCIndividualityCommunictowardsion:(NIMMessage *)message { + ChamberAbstractMatrix * roomInfo = self.delegate.acquireChamberAbstract; + NIMCustomObject *obj = (NIMCustomObject *)message.messageObject; + if (obj.attachment != nil && [obj.attachment isKindOfClass:[AttachmentMatrix class]]) { + AttachmentMatrix *attachment = (AttachmentMatrix *)obj.attachment; + if (attachment.first == IndividualityCommunicationGenre_AnchorRoom_AudienceUpMic) { + [self EvidenceAskInthecaseofupburdenLoudspeaker:attachment.data]; + } else if(attachment.first == IndividualityCommunicationGenre_Gift && (attachment.second == Custom_Message_Sub_Gift_Send || attachment.second == Custom_Message_Sub_Gift_LuckySend || attachment.second == Custom_Message_Sub_Gift_ChannelNotify)) { + if (roomInfo.roomModeType == ChamberModeGenre_Open_PK_Mode) { + [self.chambercombatFasciadirectorateRegard chamberCombatReceivePresent:attachment]; + } + }else if(attachment.first == IndividualityCommunicationGenre_AllMicroSend && (attachment.second == Custom_Message_Sub_AllMicroSend || attachment.second == Custom_Message_Sub_AllBatchSend || attachment.second == Custom_Message_Sub_AllMicroLuckySend || attachment.second == Custom_Message_Sub_AllBatchMicroLuckySend)) { + if (roomInfo.roomModeType == ChamberModeGenre_Open_PK_Mode) { + [self.chambercombatFasciadirectorateRegard chamberCombatReceivePresent:attachment]; + } + } else if(attachment.first == IndividualityCommunicationGenre_Room_PK) { + [self.chambercombatFasciadirectorateRegard shankChamberCombatIndividualityCommunictowardsion:attachment]; + } else if (attachment.first == IndividualityCommunicationGenre_Across_Room_PK) { + + BOOL meIsSensationalManagement = NO; + for (UnionSensationalManagementAbstractMatrix *executiveAbstract in self.delegate.acquireChamberSenstowardsionalManagementSttowardsement) { + if ([executiveAbstract.uid isEqualToString:[AccountAbstractStorage instance].acquireCid]) { + meIsSensationalManagement = YES; + break; + } + } + switch (attachment.second) { + case Custom_Message_Sub_AcrossRoomPK_Invite: + { + [self.throughoutCombatComputationRegard removeFromSuperview]; + self.throughoutCombatComputationRegard = nil; + NIMChatroomMembersByIdsRequest *request = [[NIMChatroomMembersByIdsRequest alloc]init]; + request.roomId = [NSString stringWithFormat:@"%ld", self.delegate.acquireChamberAbstract.roomId]; + request.userIds = @[[AccountAbstractStorage instance].acquireCid]; + [[NIMSDK sharedSDK].chatroomManager fetchChatroomMembersByIds:request completion:^(NSError * _Nullable error, NSArray * _Nullable members) { + if (error == nil) { + NIMChatroomMember * member = [members firstObject]; + if (member.type == NIMChatroomMemberTypeCreator || meIsSensationalManagement) { + YUMIThroughoutChamberCombatCallforRegard * centiretyforRegard = [[YUMIThroughoutChamberCombatCallforRegard alloc] init]; + centiretyforRegard.roomUid = [NSString stringWithFormat:@"%ld", self.delegate.acquireChamberAbstract.uid]; + centiretyforRegard.atoloudspeakerPackbask = attachment.data; + [self addSubview:centiretyforRegard]; + [centiretyforRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.center.mas_equalTo(self); + }]; + } + } + }]; + + } + break; + case Custom_Message_Sub_AcrossRoomPK_Accept: + { + [self.throughoutCombatComputationRegard removeFromSuperview]; + self.throughoutCombatComputationRegard = nil; + NIMChatroomMembersByIdsRequest *request = [[NIMChatroomMembersByIdsRequest alloc]init]; + request.roomId = [NSString stringWithFormat:@"%ld", self.delegate.acquireChamberAbstract.roomId]; + request.userIds = @[[AccountAbstractStorage instance].acquireCid]; + [[NIMSDK sharedSDK].chatroomManager fetchChatroomMembersByIds:request completion:^(NSError * _Nullable error, NSArray * _Nullable members) { + if (error == nil) { + NIMChatroomMember * member = [members firstObject]; + if (member.type == NIMChatroomMemberTypeCreator || meIsSensationalManagement) { + YUMIThroughoutChamberCombatCallforConsequentRegard * inviteResutView = [[YUMIThroughoutChamberCombatCallforConsequentRegard alloc] init]; + inviteResutView.isRecognize = YES; + [self addSubview:inviteResutView]; + [inviteResutView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self).offset(114 + kSafeAreaTopHeight); + make.centerX.mas_equalTo(self); + make.size.mas_equalTo(CGSizeMake(281, 42)); + }]; + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + [inviteResutView removeFromSuperview]; + }); + } + } + }]; + } + break; + case Custom_Message_Sub_AcrossRoomPK_Reject: + { + [self.throughoutCombatComputationRegard removeFromSuperview]; + self.throughoutCombatComputationRegard = nil; + NIMChatroomMembersByIdsRequest *request = [[NIMChatroomMembersByIdsRequest alloc]init]; + request.roomId = [NSString stringWithFormat:@"%ld", self.delegate.acquireChamberAbstract.roomId]; + request.userIds = @[[AccountAbstractStorage instance].acquireCid]; + [[NIMSDK sharedSDK].chatroomManager fetchChatroomMembersByIds:request completion:^(NSError * _Nullable error, NSArray * _Nullable members) { + if (error == nil) { + NIMChatroomMember * member = [members firstObject]; + if (member.type == NIMChatroomMemberTypeCreator || meIsSensationalManagement) { + YUMIThroughoutChamberCombatCallforConsequentRegard * inviteResutView = [[YUMIThroughoutChamberCombatCallforConsequentRegard alloc] init]; + inviteResutView.isRecognize = NO; + [self addSubview:inviteResutView]; + [inviteResutView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self).offset(114 + kSafeAreaTopHeight); + make.centerX.mas_equalTo(self); + make.size.mas_equalTo(CGSizeMake(201, 42)); + }]; + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + [inviteResutView removeFromSuperview]; + }); + } + } + }]; + } + break; + case Custom_Message_Sub_AcrossRoomPK_Panel: + { + [self.throughoutCombatComputationRegard removeFromSuperview]; + self.throughoutCombatComputationRegard = nil; + if (!self.throughoutCombatFasciadirectorateRegard.superview) { + [self addSubview:self.throughoutCombatFasciadirectorateRegard]; + [self.throughoutCombatFasciadirectorateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self).offset(354 + kSafeAreaTopHeight); + make.centerX.mas_equalTo(self); + }]; + } + ThroughoutChamberCombatFasciaboardMatrix * acrossPKPanelInfo = [ThroughoutChamberCombatFasciaboardMatrix mtowardsrixAboutJSON:attachment.data]; + self.throughoutCombatFasciadirectorateRegard.combatFasciadirectorateAbstract = acrossPKPanelInfo; + } + break; + case Custom_Message_Sub_AcrossRoomPK_End: + { + [self.throughoutCombatComputationRegard removeFromSuperview]; + self.throughoutCombatComputationRegard = nil; + [self.throughoutCombatFasciadirectorateRegard replacementThroughoutCombatRegardTowardsoloudspeaker]; + [self.throughoutCombatFasciadirectorateRegard removeFromSuperview]; + ThroughoutChamberCombatFasciaboardMatrix * model = [ThroughoutChamberCombatFasciaboardMatrix mtowardsrixAboutJSON:attachment.data]; + if (model.isForce) { + YUMIThroughoutChamberCombatForceEndConsequentRegard *view = [[YUMIThroughoutChamberCombatForceEndConsequentRegard alloc] initWithFrame:CGRectMake(0, 0, 281, 208)]; + view.data = model; + [MKJPopup popupRegard:view style:MKJPopupStyleAlert]; + } else { + YUMIThroughoutChamberCombatConsequentRegard *view = [[YUMIThroughoutChamberCombatConsequentRegard alloc] initWithFrame:CGRectMake(0, 0, 320, 453)]; + view.data = model; + [MKJPopup popupRegard:view style:MKJPopupStyleAlert]; + } + } + break; + + case Custom_Message_Sub_AnchorPK_Invite: + { + NIMChatroomMembersByIdsRequest *request = [[NIMChatroomMembersByIdsRequest alloc]init]; + request.roomId = [NSString stringWithFormat:@"%ld", self.delegate.acquireChamberAbstract.roomId]; + request.userIds = @[[AccountAbstractStorage instance].acquireCid]; + [[NIMSDK sharedSDK].chatroomManager fetchChatroomMembersByIds:request completion:^(NSError * _Nullable error, NSArray * _Nullable members) { + if (error == nil) { + NIMChatroomMember * member = [members firstObject]; + if (member.type == NIMTeamMemberTypeOwner) { + XCombatellegCombatCallforRegard * centiretyforRegard = [[XCombatellegCombatCallforRegard alloc] init]; + centiretyforRegard.roomUid = [NSString stringWithFormat:@"%ld", self.delegate.acquireChamberAbstract.uid]; + centiretyforRegard.atoloudspeakerPackbask = attachment.data; + [MKJPopup popupRegard:centiretyforRegard style:MKJPopupStyleAlert]; + } + } + }]; + } + break; + case Custom_Message_Sub_AnchorPK_Accept: + { + [self.kellegCombatAdaptationRegard removeFromSuperview]; + NIMChatroomMembersByIdsRequest *request = [[NIMChatroomMembersByIdsRequest alloc]init]; + request.roomId = [NSString stringWithFormat:@"%ld", self.delegate.acquireChamberAbstract.roomId]; + request.userIds = @[[AccountAbstractStorage instance].acquireCid]; + [[NIMSDK sharedSDK].chatroomManager fetchChatroomMembersByIds:request completion:^(NSError * _Nullable error, NSArray * _Nullable members) { + if (error == nil) { + NIMChatroomMember * member = [members firstObject]; + if (member.type == NIMTeamMemberTypeOwner) { + ThroughoutChamberCombatFasciaboardMatrix * acrossPKPanelInfo = [ThroughoutChamberCombatFasciaboardMatrix mtowardsrixAboutJSON:attachment.data]; + [[RealtimackExecutive instance] connectOtherRoom:acrossPKPanelInfo.aRoomId userId:acrossPKPanelInfo.aUid]; + [self refurbishKellegCombateAbstract:acrossPKPanelInfo]; + } + } + }]; + } + break; + case Custom_Message_Sub_AnchorPK_Reject: + { + NIMChatroomMembersByIdsRequest *request = [[NIMChatroomMembersByIdsRequest alloc]init]; + request.roomId = [NSString stringWithFormat:@"%ld", self.delegate.acquireChamberAbstract.roomId]; + request.userIds = @[[AccountAbstractStorage instance].acquireCid]; + [[NIMSDK sharedSDK].chatroomManager fetchChatroomMembersByIds:request completion:^(NSError * _Nullable error, NSArray * _Nullable members) { + if (error == nil) { + NIMChatroomMember * member = [members firstObject]; + if (member.type == NIMTeamMemberTypeOwner) { + YUMIThroughoutChamberCombatCallforConsequentRegard * inviteResutView = [[YUMIThroughoutChamberCombatCallforConsequentRegard alloc] init]; + inviteResutView.isRecognize = NO; + [self addSubview:inviteResutView]; + [inviteResutView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self).offset(114 + kSafeAreaTopHeight); + make.centerX.mas_equalTo(self); + make.size.mas_equalTo(CGSizeMake(201, 42)); + }]; + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + [inviteResutView removeFromSuperview]; + }); + } + } + }]; + } + break; + case Custom_Message_Sub_AnchorPK_Panel: + { + [self.kellegCombatAdaptationRegard removeFromSuperview]; + self.delegate.acquireChamberAbstract.pkMatchStartTime = nil; + if (!self.kellegCombatFasciadirectorateRegard.superview) { + [self addSubview:self.kellegCombatFasciadirectorateRegard]; + [self.kellegCombatFasciadirectorateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self); + make.top.mas_equalTo(kNavigationHeight + 87); + }]; + } + ThroughoutChamberCombatFasciaboardMatrix * acrossPKPanelInfo = [ThroughoutChamberCombatFasciaboardMatrix mtowardsrixAboutJSON:attachment.data]; + self.kellegCombatFasciadirectorateRegard.combatFasciadirectorateAbstract = acrossPKPanelInfo; + [self refurbishKellegCombateAbstract:acrossPKPanelInfo]; + } + break; + case Custom_Message_Sub_AnchorPK_End: + { + if (!self.kellegCombatFasciadirectorateRegard.superview) { + [self addSubview:self.kellegCombatFasciadirectorateRegard]; + [self.kellegCombatFasciadirectorateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self); + make.top.mas_equalTo(kNavigationHeight + 87); + }]; + } + ThroughoutChamberCombatFasciaboardMatrix * acrossPKPanelInfo = [ThroughoutChamberCombatFasciaboardMatrix mtowardsrixAboutJSON:attachment.data]; + self.kellegCombatFasciadirectorateRegard.combatFasciadirectorateAbstract = acrossPKPanelInfo; + [self refurbishKellegCombateAbstract:acrossPKPanelInfo]; + if (acrossPKPanelInfo.isForce) { + XCombatellegCombatFinishRegard *view = [[XCombatellegCombatFinishRegard alloc] init]; + view.data = acrossPKPanelInfo; + [MKJPopup popupRegard:view style:MKJPopupStyleAlert]; + } else { + XCombatellegCombatConsequentRegard *view = [[XCombatellegCombatConsequentRegard alloc] initWithFrame:CGRectMake(0, 0, 300, 472)]; + view.data = acrossPKPanelInfo; + [MKJPopup popupRegard:view style:MKJPopupStyleAlert]; + } + } + break; + case Custom_Message_Sub_AnchorPK_Finish: + { + [self.kellegCombatFasciadirectorateRegard replacementThroughoutCombatRegardTowardsoloudspeaker]; + [self.kellegCombatFasciadirectorateRegard removeFromSuperview]; + self.kellegCombatFasciadirectorateRegard = nil; + [self replacementKellegCombateAbstract]; + [[RealtimackExecutive instance] disconnectOtherRoom]; + } + break; + case Custom_Message_Sub_PK_BeginTime:{ + long long time = [attachment.data[@"beginTime"] longLongValue]; + [self EvidenceThroughoutCombateComputtowardsionPubescenceRegardAboutIntrtowardsemporal:time]; + } + break; + case Custom_Message_Sub_AnchorPK_Match_TimeOut: + { + self.delegate.acquireChamberAbstract.pkMatchStartTime = nil; + self.kellegCombatAdaptationRegard.roomUid = [NSString stringWithFormat:@"%ld", [self.delegate acquireChamberAbstract].uid]; + [self.kellegCombatAdaptationRegard shankDirectoryapttowardsionIntrtowardsemporalOptowardssideCommunictowardsion]; + } + break; + case Custom_Message_Sub_AnchorPK_MuteOtherMic: + { + [self.kellegCombatFasciadirectorateRegard refurbishOtherLoudspeakerPosition:attachment]; + } + break; + default: + break; + } + } else if (attachment.first == IndividualityCommunicationGenre_Anchor_FansTeam) { + [self shankKellegFantowardsicsSquad:attachment]; + } + } +} + +- (void)shankNEMCCircularCommunictowardsion:(NIMMessage *)message { + NIMNotificationObject *notiMsg = (NIMNotificationObject *)message.messageObject; + NIMChatroomNotificationContent *content = (NIMChatroomNotificationContent *)notiMsg.content; + switch (content.eventType) { + case NIMChatroomEventTypeAddManager: + { + for (NIMChatroomNotificationMember * member in content.targets) { + if (member.userId.intValue == [AccountAbstractStorage instance].acquireCid.integerValue) { + self.compileBtuton.hidden = NO; + self.chambercombatFasciadirectorateRegard.isManager = YES; + break; + } + } + } + break; + case NIMChatroomEventTypeRemoveManager: + { + for (NIMChatroomNotificationMember * member in content.targets) { + if (member.userId.intValue == [AccountAbstractStorage instance].acquireCid.integerValue) { + self.compileBtuton.hidden = YES; + self.chambercombatFasciadirectorateRegard.isManager = NO; + break; + } + } + } + break; + default: + break; + + } +} + +- (void)onMiecreoscoopeInthecaseofmtowardsionRefurbish:(NSMutableDictionary *)queue { + if(self.delegate.acquireChamberAbstract.roomModeType == ChamberModeGenre_Open_PK_Mode) { + self.chambercombatFasciadirectorateRegard.micQueue = queue; + }else { + + if (![ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + return; + } + MiecreoscoopeMHTueueMatrix * currentUserModel; + NSString * uid = [AccountAbstractStorage instance].acquireCid; + for (MiecreoscoopeMHTueueMatrix * miecreoscoopeMatrix in queue.allValues) { + if (miecreoscoopeMatrix.userInfo && miecreoscoopeMatrix.userInfo.uid == uid.integerValue) { + currentUserModel = miecreoscoopeMatrix; + } + } + if (currentUserModel) { + if (!self.manualImportBtuton.superview) { + [self addSubview:self.manualImportBtuton]; + CGFloat topOffY = self.delegate.acquireChamberAbstract.type == ChamberGenre_Anchor || self.delegate.acquireChamberAbstract.isPermitRoom == PermitChamberGenre_Licnese ? (kNavigationHeight+ 4 + 22 + 18) : (kNavigationHeight+ 4); + if (self.delegate.acquireChamberAbstract.roomModeType == ChamberModeGenre_Open_Blind) { + [self.manualImportBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(16); + make.centerY.mas_equalTo(self.efficacyImportRegard); + make.width.mas_equalTo(22); + make.height.mas_equalTo(22); + }]; + } else { + if (self.stundeRateAccessRegard.superview) { + [self.manualImportBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.stundeRateAccessRegard.mas_right).mas_offset(4); + make.centerY.mas_equalTo(self.efficacyImportRegard); + make.width.mas_equalTo(22); + make.height.mas_equalTo(22); + }]; + } else { + [self.manualImportBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(16); + make.centerY.mas_equalTo(self.efficacyImportRegard); + make.width.mas_equalTo(22); + make.height.mas_equalTo(22); + }]; + } + } + } + } else { + [[RealtimackExecutive instance] diversifictowardsionDisportDeclare:BackMusicDisportDeclare_Stop]; + if (self.manualImportBtuton) { + [self.manualImportBtuton removeFromSuperview]; + } + POPBasicAnimation *moveAnimation = [POPBasicAnimation animationWithPropertyNamed:kPOPViewCenter]; + moveAnimation.fromValue = [NSValue valueWithCGPoint:self.manualDisportRegard.center]; + moveAnimation.toValue = [NSValue valueWithCGPoint:CGPointMake(-KScreenWidth, self.manualDisportRegard.center.y)]; + moveAnimation.beginTime = CACurrentMediaTime(); + moveAnimation.duration = 0.5; + moveAnimation.repeatCount = 1; + moveAnimation.removedOnCompletion = YES; + [self.manualDisportRegard pop_addAnimation:moveAnimation forKey:@"moveOutAnimation"]; + [self.manualDisportRegard resetData]; + [self.manualDisportRegard removeFromSuperview]; + } + } +} +#pragma mark - FBCAcrpssChamberCombatPanelRegardRepresendtation +- (void)yUMIAcrpssChamberCombatFasciaboardRegard:(YUMIAcrpssChamberCombatFasciaboardRegard *)view onlookRoom:(NSString *)roomUid { + [self.delegate exitRoom]; + + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + [YUMIChamberRegardGovernancer unfoildChamber:roomUid viewController:[XCCurrentVCStackExecutive shareManager].getCurrentVC]; + }); +} + +- (void)yUMIAcrpssChamberCombatFasciaboardRegard:(YUMIAcrpssChamberCombatFasciaboardRegard *)view sendGiftToUser:(NSString *)uid { + NSString * roomUid = [NSString stringWithFormat:@"%ld", [self.delegate acquireChamberAbstract].uid]; + YUMIDischargePresentRegard * presentRegard = [[YUMIDischargePresentRegard alloc] initWithType:DischargePresentGenre_Room uid:roomUid]; + presentRegard.delegate = self.delegate; + NSArray * giftUses = [self prohibitipositionPresentConsumers:[self.delegate acquireMiecreoscoopeInthecaseofmtowardsion]]; + [presentRegard prohibitipositionPresentConsumers:giftUses]; + [self.delegate.acquireUniversalNev presentViewController:presentRegard animated:YES completion:nil]; +} + +- (NSArray *)prohibitipositionPresentConsumers:(NSMutableDictionary *)queue { + NSMutableArray * array = [NSMutableArray array]; + for (MiecreoscoopeMHTueueMatrix * miecreoscoopeMatrix in queue.allValues) { + if (miecreoscoopeMatrix.userInfo && miecreoscoopeMatrix.userInfo.uid >0) { + ConsumerAbstractMatrix * userInfo = miecreoscoopeMatrix.userInfo; + YUMIExternalizeConsumerAbstractMatrix * userModel = [[YUMIExternalizeConsumerAbstractMatrix alloc] init]; + userModel.avatar = userInfo.avatar; + userModel.vipMic = userInfo.vipMic; + userModel.position = [NSString stringWithFormat:@"%d", miecreoscoopeMatrix.microState.position]; + userModel.uid = userInfo.uid; + if (self.delegate.acquireChamberAbstract.type == ChamberGenre_Anchor && miecreoscoopeMatrix.microState.position == -1) { + continue; + } + [array addObject:userModel]; + } + } + + if (self.delegate.acquireChamberAbstract.leaveMode) { + ChamberAbstractMatrix * roomInfo= self.delegate.acquireChamberAbstract; + YUMIExternalizeConsumerAbstractMatrix * userModel = [[YUMIExternalizeConsumerAbstractMatrix alloc] init]; + userModel.avatar = roomInfo.avatar; + userModel.position = @"-1"; + userModel.uid = roomInfo.uid; + [array addObject:userModel]; + } else if (self.delegate.acquireChamberAbstract.type == ChamberGenre_Anchor) { + ChamberAbstractMatrix * roomInfo= self.delegate.acquireChamberAbstract; + BOOL hadContainerOwner = NO; + for (ConsumerAbstractMatrix *userModel in array) { + if (userModel.uid == roomInfo.uid) { + hadContainerOwner = YES; + break; + } + } + if (!hadContainerOwner) { + YUMIExternalizeConsumerAbstractMatrix * userModel = [[YUMIExternalizeConsumerAbstractMatrix alloc] init]; + userModel.avatar = roomInfo.avatar; + userModel.position = @"-1"; + userModel.uid = roomInfo.uid; + [array addObject:userModel]; + } + } + return array; +} + +- (void)yUMIAcrpssChamberCombatFasciaboardRegard:(YUMIAcrpssChamberCombatFasciaboardRegard *)view EvidenceConsumerSolitaire:(NSString *)uid { + ChamberAbstractMatrix * roomInfo = self.delegate.acquireChamberAbstract; + NSString * targetUid = uid; + YUMIConsumerSolitaireAbstractMatrix * model = [[YUMIConsumerSolitaireAbstractMatrix alloc] init]; + [[self.delegate.acquireMiecreoscoopeInthecaseofmtowardsion allValues] enumerateObjectsUsingBlock:^(MiecreoscoopeMHTueueMatrix * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if (targetUid.integerValue == obj.userInfo.uid) { + model.position = [NSString stringWithFormat:@"%d", obj.microState.position]; + model.posState = obj.microState.posState; + model.micState = obj.microState.micState; + *stop = YES; + } + }]; + model.nick = self.delegate.getUserInfo.nick; + model.uid = targetUid; + model.delegate = self.delegate; + model.roomInfo = roomInfo; + model.micQueue = self.delegate.acquireMiecreoscoopeInthecaseofmtowardsion; + model.superMangerList = self.delegate.acquireChamberSenstowardsionalManagementSttowardsement; + YUMIConsumerSolitaireRegardGovernancer * userCardVC = [[YUMIConsumerSolitaireRegardGovernancer alloc] initWithUser:model]; + [self.delegate.acquireUniversalNev presentViewController:userCardVC animated:YES completion:nil]; +} + +#pragma mark - XCombatellegPkPanelRegardRepresendtation +- (void)xCombatellegCombatFasciaboardRegard:(XCombatellegPkFasciaboardRegard *)view EvidenceConsumerSolitaire:(NSString *)uid { + if ([ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + YUMIManeConsumerAbstractRegardGovernancer * userInfoVC = [[YUMIManeConsumerAbstractRegardGovernancer alloc] init]; + userInfoVC.uid = uid.integerValue; + [self.delegate.acquireUniversalNev pushViewController:userInfoVC animated:YES]; + }else{ + YUMIManeSimpleConsumerAbstractRegardGovernancer * userInfoVC = [[YUMIManeSimpleConsumerAbstractRegardGovernancer alloc] init]; + userInfoVC.uid = uid.integerValue; + [self.delegate.acquireUniversalNev pushViewController:userInfoVC animated:YES]; + } +} + +- (void)xCombatellegCombatFasciaboardRegard:(XCombatellegPkFasciaboardRegard *)view onlookRoom:(NSString *)roomUid { + [self.delegate exitRoom]; + + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + [YUMIChamberRegardGovernancer unfoildChamber:roomUid viewController:[XCCurrentVCStackExecutive shareManager].getCurrentVC]; + }); +} + +- (void)xCombatellegCombatFasciaboardRegardConsidertowardsionAccomplishment { + if (self.followKellegIntratemper != nil) { + dispatch_source_cancel(self.followKellegIntratemper); + self.followKellegIntratemper = nil; + } +} + +- (void)xCombatellegCombatFasciaboardRegardPenaltyComputtowardsionPubescenceConclude { + self.delegate.acquireChamberAbstract.pkState = ThroughoutChamberPkDeclareGenrePenaltyEnd; +} + +#pragma mark - FBCChamberBackManualPlayerRegardRepresendtation +- (void)yUMIChamberEncourageManualDisporterRegard:(YUMIChamberBackManualDisporterRegard *)view manualDisporting:(BOOL)manualDisporting { + if (manualDisporting) { + [self resumeThickness:self.manualImportBtuton.imageView.layer]; + } else { + [self pautilizeThickness:self.manualImportBtuton.imageView.layer]; + } +} + +#pragma mark - Event Response +- (void)contributionBtutonPerformance:(UITapGestureRecognizer *)tap { + NSString * roomUid = [NSString stringWithFormat:@"%ld", self.delegate.acquireChamberAbstract.uid]; + YUMIChamberHalfTissueRegard * webView = [[YUMIChamberHalfTissueRegard alloc] init]; + webView.url = [NSString stringWithFormat:@"%@?roomUid=%@", URLWithType(kRoomRankURL), roomUid]; + [MKJPopup popupRegard:webView style:MKJPopupStyleActionSheet]; + if (self.delegate.acquireChamberAbstract.type == ChamberGenre_Anchor) { + [self refurbishContrionAccessAboutChamberCid:roomUid type:@"month"]; + } else { + [self refurbishContrionAccessAboutChamberCid:roomUid type:@"day"]; + } + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventroom_giftlist_click eventAttributes:@{@"roomUid" : roomUid}]; +} + +- (void)onKellegStundeRtowardseBtutonPerformance:(UITapGestureRecognizer *)ges { + NSString * roomUid = [NSString stringWithFormat:@"%ld", self.delegate.acquireChamberAbstract.uid]; + NSString * url = self.delegate.acquireChamberAbstract.type == ChamberGenre_Anchor ? URLWithType(kRoomHourRankURL) : URLWithType(kLicenseHourRankURL); + YUMIChamberHalfTissueRegard * webView = [[YUMIChamberHalfTissueRegard alloc] init]; + webView.url = [NSString stringWithFormat:@"%@?roomUid=%@", url, roomUid]; + [MKJPopup popupRegard:webView style:MKJPopupStyleActionSheet]; + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventroom_ranklist_click eventAttributes:@{@"roomUid" : roomUid}]; +} + +- (void)engagementProgresBtutonPerformance:(UIButton *)sender { + [MKJPopup dismiss]; + ChamberAbstractMatrix * roomInfo = self.delegate.acquireChamberAbstract; + NSString * message = @""; + if (roomInfo.blindDateState == ChamberDisportDateingGenre_Talk) { + message = @"进入心动选人环节?"; + } else if(roomInfo.blindDateState == ChamberDisportDateingGenre_Pick) { + message = @"进入心动公布环节?"; + } else if(roomInfo.blindDateState == ChamberDisportDateingGenre_Result) { + message = @"结束本轮,同时清空魅力值?"; + } else if (roomInfo.blindDateState == ChamberDisportDateingGenre_Finish) { + message = @"进入嘉宾交流环节?"; + } + MKJPrecautiousDisposition * config = [[MKJPrecautiousDisposition alloc] init]; + config.message = message; + [MKJPopup precautiousAboutDisposition:config acknowledgementHandler:^{ + NSString * roomUid = [NSString stringWithFormat:@"%ld", self.delegate.acquireChamberAbstract.uid]; + NSString * roundId = [NSString stringWithFormat:@"%ld", self.delegate.acquireChamberAbstract.blindDateState]; + [Api diversifictowardsionChamberEngagementDeclare:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + + } else { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:msg]; + } + } roomUserId:roomUid roundId:roundId]; + } cancelHandler:^{ + + }]; +} + +- (void)foldBtutonPerformance:(UIButton *)sender { + sender.selected = !sender.selected; +} + +- (void)betowardsFantowardsicsSquadRecognition { + NSString *roomUid = [NSString stringWithFormat:@"%zd", self.delegate.acquireChamberAbstract.uid]; + if (self.relationFanaticsMatrix.isCurrentRoomAnchor) { + if (self.relationFanaticsMatrix.hasFansTeamCurrentRoom) { + YUMIChamberHalfTissueRegard * webView = [[YUMIChamberHalfTissueRegard alloc] init]; + webView.url = [NSString stringWithFormat:@"%@?roomUid=%@", URLWithType(kAnchorFansListURL), roomUid]; + [MKJPopup popupRegard:webView style:MKJPopupStyleActionSheet]; + } else { + YUMITissueRegardGovernancer * webVewC =[[YUMITissueRegardGovernancer alloc] init]; + webVewC.roomUid = roomUid; + webVewC.url = URLWithType(kAnchorFansOpenURL); + [self.delegate.acquireUniversalNev pushViewController:webVewC animated:YES]; + } + } else { + if (self.relationFanaticsMatrix.hasFansTeamCurrentRoom) { + if (self.relationFanaticsMatrix.isAnchorFans) { + [Api requisitionFantowardsicsSquadTask:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code != 200) { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:msg]; + return; + } + XCombatellegFanaticsmissionMatrix *model = [XCombatellegFanaticsmissionMatrix mtowardsrixAboutJSON:data.data]; + XCombatellegFanaticsmissionRegardGovernancer *fansTaskVc = [[XCombatellegFanaticsmissionRegardGovernancer alloc] initAboutChamberCid:roomUid]; + fansTaskVc.model = model; + [self.delegate.acquireUniversalNev presentViewController:fansTaskVc animated:YES completion:nil]; + } teamUid:roomUid]; + } else { + [Api requisitionJoinFantowardsicsSquad:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code != 200) { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:msg]; + return; + } + XCombatellegFanaticsJoinMatrix *model = [XCombatellegFanaticsJoinMatrix mtowardsrixAboutJSON:data.data]; + XCombatellegFanaticsSquadRegardGovernancer *fansTeamVc = [[XCombatellegFanaticsSquadRegardGovernancer alloc] initAboutChamberCid:roomUid]; + fansTeamVc.model = model; + [self.delegate.acquireUniversalNev presentViewController:fansTeamVc animated:YES completion:nil]; + } teamUid:roomUid]; + } + } + } +} + +- (void)manualImportBtutonPerformance:(UIButton *)sender { + if (!self.manualDisportRegard.superview) { + [self addSubview:self.manualDisportRegard]; + self.manualDisportRegard.frame = CGRectMake(-KScreenWidth, kNavigationHeight + 4, KScreenWidth - 85, 80); + } + + POPBasicAnimation *moveAnimation = [POPBasicAnimation animationWithPropertyNamed:kPOPViewCenter]; + moveAnimation.fromValue = [NSValue valueWithCGPoint:CGPointMake(-KScreenWidth, self.manualDisportRegard.center.y)]; + moveAnimation.toValue = [NSValue valueWithCGPoint:CGPointMake(KScreenWidth/ 2, self.manualDisportRegard.center.y)]; + moveAnimation.beginTime = CACurrentMediaTime(); + moveAnimation.duration = 0.5; + moveAnimation.repeatCount = 1; + moveAnimation.removedOnCompletion = YES; + [self.manualDisportRegard pop_addAnimation:moveAnimation forKey:@"moveOutAnimation"]; + + [UIView animateWithDuration:0.2 animations:^{ + self.manualImportBtuton.hidden = YES; + } completion:nil]; + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventroom_manual_click]; +} + +#pragma mark - 房间话题 +- (void)refurbishChamberMotifRegardConstraint { + ChamberAbstractMatrix * roomInfo = self.delegate.acquireChamberAbstract; + CGFloat offsetY = kNavigationHeight; + if (roomInfo.roomModeType == ChamberModeGenre_Open_Blind) { + offsetY += ((50 + 5) * kScreenScale + 10 + 12 + 3 + 40); + } else if (roomInfo.type == ChamberGenre_Anchor) { + offsetY += (120 + 5 + 6 + 20 +60 + 3); + } else { + offsetY += (50 + 5 + 10 + 12 + 3 + 40); + } + + [self.motifHierarchyRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(offsetY); + }]; +} + +- (void)refurbishChamberMotif { + if(![ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + self.motifHierarchyRegard.hidden = YES; + return; + } + if (self.delegate.acquireChamberAbstract.type == ChamberGenre_Anchor && self.delegate.acquireChamberAbstract.roomModeType == ChamberModeGenre_Open_AcrossRoomPK_mode) { + self.motifHierarchyRegard.hidden = YES; + } else { + self.motifHierarchyRegard.hidden = ([ClientDisposition partowardsiciptowardsionDisposition].dispositionAbstract.appStoreAuditNoticeVersion || self.delegate.acquireChamberAbstract.type == ChamberGenre_MiniGame) == YES; + } + [self refurbishChamberMotifRegardConstraint]; + if ([AccountAbstractStorage instance].acquireCid.length > 0) { + NIMChatroomMembersByIdsRequest *request = [[NIMChatroomMembersByIdsRequest alloc]init]; + request.roomId = [NSString stringWithFormat:@"%ld", self.delegate.acquireChamberAbstract.roomId]; + request.userIds = @[[AccountAbstractStorage instance].acquireCid]; + [[NIMSDK sharedSDK].chatroomManager fetchChatroomMembersByIds:request completion:^(NSError * _Nullable error, NSArray * _Nullable members) { + if (error== nil) { + NIMChatroomMember* member = members.firstObject; + if (member.type == NIMChatroomMemberTypeCreator || member.type == NIMChatroomMemberTypeManager) { + self.compileBtuton.hidden = NO; + } else { + self.compileBtuton.hidden = YES; + } + } + }]; + } + self.motifSequencignation.text = self.delegate.acquireChamberAbstract.roomDesc.length > 0 ? self.delegate.acquireChamberAbstract.roomDesc : YMLocalizedString(@"YUMI_Room_Function_Container_View_12"); +} + +- (void)motifMotionRecognition:(UITapGestureRecognizer *)tap { + NIMChatroomMembersByIdsRequest *request = [[NIMChatroomMembersByIdsRequest alloc]init]; + request.roomId = [NSString stringWithFormat:@"%ld", self.delegate.acquireChamberAbstract.roomId]; + request.userIds = @[[AccountAbstractStorage instance].acquireCid]; + [[NIMSDK sharedSDK].chatroomManager fetchChatroomMembersByIds:request completion:^(NSError * _Nullable error, NSArray * _Nullable members) { + if (error== nil) { + NIMChatroomMember* member = members.firstObject; + ChamberAbstractMatrix * roomInfo= self.delegate.acquireChamberAbstract; + if (member.type == NIMChatroomMemberTypeCreator || member.type == NIMChatroomMemberTypeManager) { + YUMIChamberMotifRegardGovernancer * editTopicVC = [[YUMIChamberMotifRegardGovernancer alloc] init]; + editTopicVC.roomInfo = roomInfo; + [self.delegate.acquireUniversalNev pushViewController:editTopicVC animated:YES]; + } else { + MKJPopupServing * config = [[MKJPopupServing alloc] init]; + YUMIChamberMotifPrecautiousRegard * alertView = [[YUMIChamberMotifPrecautiousRegard alloc] init]; + alertView.title = roomInfo.roomDesc; + alertView.message = roomInfo.introduction; + config.contentView = alertView; + [MKJPopup popupAboutDisposition:config]; + } + } + }]; +} + +#pragma mark - 弹窗关注房主 +- (void)setFollowKellegIntratemper { + if (self.followKellegIntratemper != nil) { + dispatch_source_cancel(self.followKellegIntratemper); + } +#ifdef DEBUG + NSInteger totalTime = 5; +#else + NSInteger totalTime = 420; +#endif + dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); + self.followKellegIntratemper = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, queue); + dispatch_source_set_timer(self.followKellegIntratemper,dispatch_walltime(NULL, totalTime*NSEC_PER_SEC), totalTime*NSEC_PER_SEC, 0); + @weakify(self); + dispatch_source_set_event_handler(self.followKellegIntratemper, ^{ + dispatch_async(dispatch_get_main_queue(), ^{ + @strongify(self); + if (self.followKellegIntratemper != nil) { + dispatch_source_cancel(self.followKellegIntratemper); + self.followKellegIntratemper = nil; + } + ChamberAbstractMatrix* roomInfo = self.delegate.acquireChamberAbstract; + NSString *roomUid = [NSString stringWithFormat:@"%zd", roomInfo.uid]; + NSString * uid = [[AccountAbstractStorage instance] acquireCid]; + [Api considertowardsionPositionImplementtowardsion:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + BOOL isLike = ((NSNumber *)data.data).boolValue; + if (!isLike && !roomInfo.isRoomFans && self.window) { + [self EvidenceBWSttralongKellegRegard]; + } + } uid:uid isLikeUid:roomUid]; + }); + }); + dispatch_resume(self.followKellegIntratemper); +} + +- (void)EvidenceBWSttralongKellegRegard { + ChamberAbstractMatrix* roomInfo = self.delegate.acquireChamberAbstract; + NSString *roomUid = [NSString stringWithFormat:@"%zd", roomInfo.uid]; + [Api getUserInfo:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + ConsumerAbstractMatrix *userInfo = [ConsumerAbstractMatrix mtowardsrixAboutImpactbasket:data.data]; + YUMIChamberKellegAbstractSolitaireRegard *view = [[YUMIChamberKellegAbstractSolitaireRegard alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth, 300)]; + view.userInfo = self.delegate.getUserInfo; + view.targetConsumerAbstract = userInfo; + view.roomId =roomInfo.roomId; + [MKJPopup popupRegard:view style:MKJPopupStyleActionSheet]; + } uid:roomUid]; +} + +- (void)EvidenceAskInthecaseofupburdenLoudspeaker:(NSDictionary *)dict { + NSString *roomUid = [NSString stringWithFormat:@"%zd", self.delegate.acquireChamberAbstract.uid]; + if (![roomUid isEqualToString:[AccountAbstractStorage instance].acquireCid]) { + return; + } + ConsumerAbstractMatrix *model = [ConsumerAbstractMatrix mtowardsrixAboutJSON:dict]; + XCombatellegAudienceUpwardsLoudspeakerRegard *upMicView = [[XCombatellegAudienceUpwardsLoudspeakerRegard alloc] initWithFrame:CGRectMake(0, 0, 300, 226) delegate:self.delegate]; + upMicView.info = model; + TTPopupConfig *config = [[TTPopupConfig alloc] init]; + config.filterIdentifier = @"audienceRequestUpMic"; + config.shouldFilterSpringforth = YES; + config.contentView = upMicView; + config.style = MKJPopupStyleAlert; + [MKJPopup popupAboutDisposition:config]; +} + +#pragma mark - 个播粉丝团 +- (void)refurbishFantowardsicsSquadAccessRegard:(XCombatellegFanaticsRelationMatrix *)model { + if (!self.fanaticsSquadAccessRegard.superview) { + [self insertSubview:self.fanaticsSquadAccessRegard atIndex:0]; + [self.fanaticsSquadAccessRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.efficacyImportRegard.mas_bottom).mas_offset(5); + make.left.mas_equalTo(0); + make.height.mas_equalTo(37); + }]; + } + self.fanaticsSquadAccessRegard.model = model; + self.relationFanaticsMatrix = model; +} + +- (void)shankKellegFantowardsicsSquad:(AttachmentMatrix *)attachment { + if (attachment.second == Custom_Message_Sub_FansTeam_Open_Success || attachment.second == Custom_Message_Sub_FansTeam_Join_Success || attachment.second == Custom_Message_Sub_FansTeam_Out_Success) { + NSString *roomUid = [NSString stringWithFormat:@"%ld", self.delegate.acquireChamberAbstract.uid]; + NSString *uid; + if ([attachment.data[@"uid"] isKindOfClass:[NSNumber class]]) { + uid = [NSString stringWithFormat:@"%@", attachment.data[@"uid"]]; + } else if ([attachment.data[@"uid"] isKindOfClass:[NSString class]]) { + uid = attachment.data[@"uid"]; + } + if ([uid isEqualToString:[AccountAbstractStorage instance].acquireCid] || [[AccountAbstractStorage instance].acquireCid isEqualToString:roomUid]) { + [Api requisitionInChamberFantowardsicsSquad:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + XCombatellegFanaticsRelationMatrix *model = [XCombatellegFanaticsRelationMatrix mtowardsrixAboutJSON:data.data]; + [self refurbishFantowardsicsSquadAccessRegard:model]; + } teamUid:roomUid]; + } + } else if (attachment.second == Custom_Message_Sub_FansTeam_Open_Fail) { + + } +} + +- (void)refurbishKellegCombateAbstract:(ThroughoutChamberCombatFasciaboardMatrix *)acrossPKPanelInfo { + self.delegate.acquireChamberAbstract.roundId = acrossPKPanelInfo.roundId; + self.delegate.acquireChamberAbstract.pkUid = acrossPKPanelInfo.aUid; + self.delegate.acquireChamberAbstract.pkRoomId = acrossPKPanelInfo.aRoomId; + self.delegate.acquireChamberAbstract.pkState = acrossPKPanelInfo.pkState; + self.delegate.acquireChamberAbstract.winUid = acrossPKPanelInfo.winUid; +} + +- (void)replacementKellegCombateAbstract { + self.delegate.acquireChamberAbstract.roundId = nil; + self.delegate.acquireChamberAbstract.pkUid = nil; + self.delegate.acquireChamberAbstract.pkRoomId = nil; + self.delegate.acquireChamberAbstract.pkState = nil; + self.delegate.acquireChamberAbstract.winUid = nil; + self.delegate.acquireChamberAbstract.pkMatchStartTime = nil; +} +#pragma mark - 房间榜入口榜单 +- (void)refurbishContrionAccessAboutChamberCid:(NSString *)roomUid type:(NSString *)type { + [Api requisitionChamberRtowardseings:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + NSMutableArray *array = [NSMutableArray array]; + for (NSDictionary *dict in data.data[@"rankings"]) { + NSString *str = dict[@"avatar"]; + if (str) { + [array addObject:str]; + } + } + self.efficacyImportRegard.array = array; + } + } roomUid:roomUid type:type page:@"1" pageSize:@"20"]; +} + +#pragma mark - 个播小时榜入口 +- (void)refurbishStundeRtowardseAccess { + if(![ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + return; + } + if (self.delegate.acquireChamberAbstract.type == ChamberGenre_Anchor || self.delegate.acquireChamberAbstract.isPermitRoom == PermitChamberGenre_Licnese) { + if (!self.stundeRateAccessRegard.superview) { + [self insertSubview:self.stundeRateAccessRegard atIndex:0]; + [self.stundeRateAccessRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(15); + make.centerY.mas_equalTo(self.efficacyImportRegard); + make.width.mas_equalTo(61); + make.height.mas_equalTo(22); + }]; + } + } else { + if (self.stundeRateAccessRegard.superview) {[self.stundeRateAccessRegard removeFromSuperview];} + } +} + +#pragma mark - 房间背景音乐 +-(void)pautilizeThickness:(CALayer*)layer { + CFTimeInterval pausedTime = [layer convertTime:CACurrentMediaTime() fromLayer:nil]; + layer.speed = 0.0; + layer.timeOffset = pausedTime; +} + +-(void)resumeThickness:(CALayer*)layer { + CFTimeInterval pausedTime = [layer timeOffset]; + layer.speed = 1.0; + layer.timeOffset = 0.0; + layer.beginTime = 0.0; + CFTimeInterval timeSincePause = [layer convertTime:CACurrentMediaTime() fromLayer:nil] - pausedTime; + layer.beginTime = timeSincePause; +} + +- (void)prohibitipositionDisportManualChamberGenreDiversifictowardsion { + if (![ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + return; + } + ChamberAbstractMatrix * roomInfo = self.delegate.acquireChamberAbstract; + if (roomInfo.type == ChamberGenre_MiniGame) { + [self pautilizeThickness:self.manualImportBtuton.imageView.layer]; + [self.manualImportBtuton removeFromSuperview]; + [self.manualDisportRegard resetData]; + [self.manualDisportRegard removeFromSuperview]; + [[RealtimackExecutive instance] diversifictowardsionDisportDeclare:BackMusicDisportDeclare_Stop]; + } else { + MiecreoscoopeMHTueueMatrix * currentUserModel; + NSString * uid = [AccountAbstractStorage instance].acquireCid; + for (MiecreoscoopeMHTueueMatrix * miecreoscoopeMatrix in self.delegate.acquireMiecreoscoopeInthecaseofmtowardsion.allValues) { + if (miecreoscoopeMatrix.userInfo && miecreoscoopeMatrix.userInfo.uid == uid.integerValue) { + currentUserModel = miecreoscoopeMatrix; + } + } + if (currentUserModel) { + if (!self.manualImportBtuton.superview) { + [self addSubview:self.manualImportBtuton]; + CGFloat topOffY = (self.delegate.acquireChamberAbstract.type == ChamberGenre_Anchor || self.delegate.acquireChamberAbstract.isPermitRoom == PermitChamberGenre_Licnese) ? (kNavigationHeight+ 4 + 22 + 18) : (kNavigationHeight+ 4); + if (self.delegate.acquireChamberAbstract.roomModeType == ChamberModeGenre_Open_Blind) { + [self.manualImportBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(16); + make.centerY.mas_equalTo(self.efficacyImportRegard); + make.width.mas_equalTo(22); + make.height.mas_equalTo(22); + }]; + } else { + if (self.stundeRateAccessRegard.superview) { + [self.manualImportBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.stundeRateAccessRegard.mas_right).mas_offset(4); + make.centerY.mas_equalTo(self.efficacyImportRegard); + make.width.mas_equalTo(22); + make.height.mas_equalTo(22); + }]; + } else { + [self.manualImportBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(16); + make.centerY.mas_equalTo(self.efficacyImportRegard); + make.width.mas_equalTo(22); + make.height.mas_equalTo(22); + }]; + } + } + } + } + } +} + +- (void)EvidenceThroughoutCombateComputtowardsionPubescenceRegardAboutIntrtowardsemporal:(long long)time { + if (self.throughoutCombatComputationRegard.superview) { + return; + } + if (self.throughoutCombatFasciadirectorateRegard.superview) { + return; + } + if ([self.delegate acquireChamberAbstract].roomModeType == ChamberModeGenre_Open_AcrossRoomPK_mode) { + return; + } + [self shankAcrollCombatComputtowardsionRegard:time]; +} + +- (void)shankAcrollCombatComputtowardsionRegard:(long long)time { + ChamberAbstractMatrix * roomInfo = self.delegate.acquireChamberAbstract; + if (!self.throughoutCombatComputationRegard.superview) { + [self addSubview:self.throughoutCombatComputationRegard]; + [self bringSubviewToFront:self.throughoutCombatComputationRegard]; + self.throughoutCombatComputationRegard.startTime = time ? time : roomInfo.pkBeginTime; + self.throughoutCombatComputationRegard.encourageIndicateRegard.image = [UIImage imageNamed:@"yumi_acrossPK_countDown_left_background"]; + [self.throughoutCombatComputationRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(kNavigationHeight+4+24+4); + make.left.mas_equalTo(0); + make.width.height.mas_equalTo(52); + }]; + } +} + +#pragma mark - 心愿礼物 +- (void)betowardsSequencirePresent { + NSString * roomUid = [NSString stringWithFormat:@"%ld", self.delegate.acquireChamberAbstract.uid]; + YUMIDesirePresentRegardGovernancer * vc = [[YUMIDesirePresentRegardGovernancer alloc] initAboutChamberCid:roomUid]; + self.wishGiftVC = vc; + vc.delegate = self; + vc.modalPresentationStyle = UIModalPresentationOverFullScreen; + [self.delegate.acquireUniversalNev presentViewController:vc animated:YES completion:nil]; + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventRoom_wishlist_pop_click]; +} + +- (void)prohibitipositionSequencirePresentImport { + ChamberAbstractMatrix * roomInfo = self.delegate.acquireChamberAbstract; + NSString * roomUid = [NSString stringWithFormat:@"%ld", roomInfo.uid]; + if (roomInfo.hasOpenWishGift) { + [Api desirePresentSttowardsement:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + NSArray * array = [DesirePresentAbstractMatrix mtowardsrixsAboutGarment:data.data]; + self.sequencirePresentRegard.giftList = array; + self.sequencirePresentRegard.hidden = NO; + } else { + self.sequencirePresentRegard.hidden = YES; + } + + if (!self.sequencirePresentRegard.superview) { + [self addSubview:self.sequencirePresentRegard]; + [self.sequencirePresentRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self).offset(kNavigationHeight + 47); + make.right.mas_equalTo(self.mas_right).offset(0); + make.size.mas_equalTo(CGSizeMake(81, 30)); + }]; + } + + if (self.delegate.acquireChamberAbstract.roomModeType == ChamberModeGenre_Open_Blind) { + self.sequencirePresentRegard.hidden = YES; + } + + } roomUid:roomUid]; + } else { + if (self.sequencirePresentRegard.superview) { + [self.sequencirePresentRegard removeFromSuperview]; + } + } +} + +- (void)chamberAbstractRefurbishDispositionSequencirePresent { + ChamberAbstractMatrix * roomInfo = self.delegate.acquireChamberAbstract; + if (roomInfo.datingState == ChamberDatingDeclareChangeGenre_Close) { + if (self.sequencirePresentRegard.superview) { + self.sequencirePresentRegard.hidden = NO; + } + } else if(roomInfo.datingState == ChamberDatingDeclareChangeGenre_Open){ + if (self.sequencirePresentRegard.superview) { + self.sequencirePresentRegard.hidden = YES; + } + } +} + +- (void)fBCHopePresentRegardGovernancerDischargeTicktack:(NSString *)giftId { + NSString * roomUid = [NSString stringWithFormat:@"%ld", [self.delegate acquireChamberAbstract].uid]; + YUMIDischargePresentRegard * presentRegard = [[YUMIDischargePresentRegard alloc] initWithType:DischargePresentGenre_Room uid:roomUid]; + presentRegard.delegate = self.delegate; + NSArray * giftUses = [self prohibitipositionPresentConsumers:[self.delegate acquireMiecreoscoopeInthecaseofmtowardsion]]; + [presentRegard prohibitipositionPresentConsumers:giftUses]; + presentRegard.chosenPresentId = giftId; + [self.delegate.acquireUniversalNev presentViewController:presentRegard animated:YES completion:nil]; +} + +#pragma mark - 随机PK匹配 +- (void)shankDirectoryapttowardsionKellegCombat { + if (self.delegate.acquireChamberAbstract.pkMatchStartTime) { + [self addSubview:self.kellegCombatAdaptationRegard]; + self.kellegCombatAdaptationRegard.roomUid = [NSString stringWithFormat:@"%ld", [self.delegate acquireChamberAbstract].uid]; + [self.kellegCombatAdaptationRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.efficacyImportRegard.mas_bottom).mas_offset(5+37+5); + make.left.mas_equalTo(0); + make.width.height.mas_equalTo(52); + }]; + [self.kellegCombatAdaptationRegard unfoildComputtowardsiondownAboutIntrtowardsemporal:self.delegate.acquireChamberAbstract.pkMatchStartTime]; + } +} + +#pragma mark - Getters And Setters +- (YUMIChamberRateEntranceRegard *)efficacyImportRegard { + if (!_efficacyImportRegard) { + _efficacyImportRegard = [[YUMIChamberRateEntranceRegard alloc] init]; + UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(contributionBtutonPerformance:)]; + [_efficacyImportRegard addGestureRecognizer:tap]; + } + return _efficacyImportRegard; +} + +- (YUMIChamberKellegRateImportRegard *)stundeRateAccessRegard { + if (!_stundeRateAccessRegard) { + _stundeRateAccessRegard = [[YUMIChamberKellegRateImportRegard alloc] init]; + UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(onKellegStundeRtowardseBtutonPerformance:)]; + [_stundeRateAccessRegard addGestureRecognizer:tap]; + } + return _stundeRateAccessRegard; +} + +- (UIButton *)engagementProgresBtuton { + if (!_engagementProgresBtuton) { + _engagementProgresBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_engagementProgresBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[UIColorFromRGB(0xFA7186), UIColorFromRGB(0xFA4972)] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(65, 30)] forState:UIControlStateNormal]; + [_engagementProgresBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + _engagementProgresBtuton.titleLabel.font = [UIFont systemFontOfSize:13]; + [_engagementProgresBtuton setTitle:@"开始选择>" forState:UIControlStateNormal]; + [_engagementProgresBtuton addTarget:self action:@selector(engagementProgresBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + _engagementProgresBtuton.layer.masksToBounds = YES; + _engagementProgresBtuton.layer.cornerRadius = 15; + } + return _engagementProgresBtuton; +} + +- (XCombatellegFanaticsSquadEntranceRegard *)fanaticsSquadAccessRegard { + if (!_fanaticsSquadAccessRegard) { + _fanaticsSquadAccessRegard = [[XCombatellegFanaticsSquadEntranceRegard alloc]init]; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(betowardsFantowardsicsSquadRecognition)]; + [_fanaticsSquadAccessRegard addGestureRecognizer:tap]; + } + return _fanaticsSquadAccessRegard; +} + +- (UIStackView *)motifHierarchyRegard { + if (!_motifHierarchyRegard) { + _motifHierarchyRegard = [[UIStackView alloc] init]; + _motifHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _motifHierarchyRegard.distribution = UIStackViewDistributionFill; + _motifHierarchyRegard.alignment = UIStackViewAlignmentFill; + _motifHierarchyRegard.spacing = 3; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(motifMotionRecognition:)]; + [_motifHierarchyRegard addGestureRecognizer:tap]; + } + return _motifHierarchyRegard; +} + +- (UILabel *)motifSequencignation { + if (!_motifSequencignation) { + _motifSequencignation = [[UILabel alloc] init]; + _motifSequencignation.font = [UIFont systemFontOfSize:12]; + _motifSequencignation.textColor = [UIColor whiteColor]; + } + return _motifSequencignation; +} + +- (UIButton *)compileBtuton { + if (!_compileBtuton) { + _compileBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_compileBtuton setImage:[UIImage imageNamed:@"yumi_scope_postion_topimage_edit"] forState:UIControlStateNormal]; + [_compileBtuton setImage:[UIImage imageNamed:@"yumi_scope_postion_topimage_edit"] forState:UIControlStateSelected]; + _compileBtuton.hidden = YES; + } + return _compileBtuton; +} + +- (YUMIAcrpssChamberCombatFasciaboardRegard *)throughoutCombatFasciadirectorateRegard { + if (!_throughoutCombatFasciadirectorateRegard) { + _throughoutCombatFasciadirectorateRegard = [[YUMIAcrpssChamberCombatFasciaboardRegard alloc] init]; + _throughoutCombatFasciadirectorateRegard.delegate = self; + } + return _throughoutCombatFasciadirectorateRegard; +} +- (XCombatellegPkFasciaboardRegard *)kellegCombatFasciadirectorateRegard { + if (!_kellegCombatFasciadirectorateRegard) { + _kellegCombatFasciadirectorateRegard = [[XCombatellegPkFasciaboardRegard alloc] init]; + _kellegCombatFasciadirectorateRegard.delegate = self; + } + return _kellegCombatFasciadirectorateRegard; +} + +- (UIButton *)manualImportBtuton { + if (!_manualImportBtuton) { + _manualImportBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_manualImportBtuton setImage:[UIImage imageNamed:@"yumi_scope_musimage_player_enter"] forState:UIControlStateNormal]; + _manualImportBtuton.layer.masksToBounds = YES; + _manualImportBtuton.layer.cornerRadius = 11; + _manualImportBtuton.backgroundColor = UIColorRGBAlpha(0xffffff, 0.2); + [_manualImportBtuton addTarget:self action:@selector(manualImportBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + CAKeyframeAnimation *lAni = [CAKeyframeAnimation animationWithKeyPath:@"transform.rotation.z"]; + lAni.duration = 1.5; + lAni.repeatCount = HUGE; + lAni.values=@[@0,@(M_PI*2)]; + + lAni.removedOnCompletion = NO; + lAni.fillMode = kCAFillModeForwards; + [_manualImportBtuton.imageView.layer addAnimation:lAni forKey:nil]; + } + return _manualImportBtuton; +} + +- (YUMIChamberBackManualDisporterRegard *)manualDisportRegard { + if (!_manualDisportRegard) { + _manualDisportRegard = [[YUMIChamberBackManualDisporterRegard alloc] init]; + _manualDisportRegard.delegate = self; + } + return _manualDisportRegard; +} + +- (YUMIChamberCombatProgressRegard *)chambercombatFasciadirectorateRegard { + if (!_chambercombatFasciadirectorateRegard) { + _chambercombatFasciadirectorateRegard = [[YUMIChamberCombatProgressRegard alloc] init]; + } + return _chambercombatFasciadirectorateRegard; +} + +- (YUMIThroughoutChamberCombatComputationDownRegard *)throughoutCombatComputationRegard { + if (!_throughoutCombatComputationRegard) { + _throughoutCombatComputationRegard = [[YUMIThroughoutChamberCombatComputationDownRegard alloc] initWithFrame:CGRectMake(-52, kNavigationHeight+4+24+4, 52, 52)]; + } + return _throughoutCombatComputationRegard; +} + +- (XCombatellegCombatAdaptationRegard *)kellegCombatAdaptationRegard { + if (!_kellegCombatAdaptationRegard) { + _kellegCombatAdaptationRegard = [[XCombatellegCombatAdaptationRegard alloc] initWithDelegate:self.delegate]; + } + return _kellegCombatAdaptationRegard; +} + +- (YUMIDesirePresentImportRegard *)sequencirePresentRegard { + if (!_sequencirePresentRegard) { + _sequencirePresentRegard = [[YUMIDesirePresentImportRegard alloc] init]; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(betowardsSequencirePresent)]; + [_sequencirePresentRegard addGestureRecognizer:tap]; + } + return _sequencirePresentRegard; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/BaseUIContainerView/YUMIChamberKellegRateImportRegard.h b/YuMi/Modules/YMRoom/View/BaseUIContainerView/YUMIChamberKellegRateImportRegard.h new file mode 100644 index 00000000..7a5e5936 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/BaseUIContainerView/YUMIChamberKellegRateImportRegard.h @@ -0,0 +1,16 @@ +// +// YMRoomAnchorRankEnterView.h +// YUMI +// +// Created by YUMI on 2022/5/12. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIChamberKellegRateImportRegard : UIView + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/BaseUIContainerView/YUMIChamberKellegRateImportRegard.m b/YuMi/Modules/YMRoom/View/BaseUIContainerView/YUMIChamberKellegRateImportRegard.m new file mode 100644 index 00000000..8049b5a6 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/BaseUIContainerView/YUMIChamberKellegRateImportRegard.m @@ -0,0 +1,92 @@ +// +// YMRoomAnchorRankEnterView.m +// YUMI +// +// Created by YUMI on 2022/5/12. +// + +#import "YUMIChamberKellegRateImportRegard.h" +#import +#import "DJDKMIMOMColor.h" +#import "NetIndicateRegard.h" + +@interface YUMIChamberKellegRateImportRegard () + +@property (nonatomic, strong) UIImageView *backgroundIndicateRegard; +@property (nonatomic, strong) UILabel *titleLabel; +@property (nonatomic, strong) UIImageView *figureIndicateRegard; + +@end + + +@implementation YUMIChamberKellegRateImportRegard + +- (instancetype)initWithFrame:(CGRect)frame { + if (self = [super initWithFrame:frame]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} +- (void)layoutSubviews { + [super layoutSubviews]; + CAGradientLayer *layer = [CAGradientLayer new]; + layer.colors=@[(__bridge id)UIColorRGBAlpha(0x2B00CA, 0.55).CGColor,(__bridge id)UIColorRGBAlpha(0x170ACD, 0.2).CGColor]; + layer.startPoint = CGPointMake(0, 0); + layer.endPoint = CGPointMake(1, 0); + layer.frame = self.bounds; + [self.backgroundIndicateRegard.layer addSublayer:layer]; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.backgroundIndicateRegard]; + [self addSubview:self.titleLabel]; + [self addSubview:self.figureIndicateRegard]; +} + +- (void)initChildLyRestrictions { + [self.backgroundIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.bottom.left.right.mas_equalTo(0); + }]; + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self); + make.left.mas_equalTo(self.figureIndicateRegard.mas_right).mas_offset(4); + }]; + [self.figureIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.mas_equalTo(22); + make.centerY.mas_equalTo(self); + make.left.mas_equalTo(0); + }]; +} + +#pragma mark - Getters And Setters +- (UIImageView *)backgroundIndicateRegard { + if (_backgroundIndicateRegard == nil) { + _backgroundIndicateRegard = [[UIImageView alloc] init]; + _backgroundIndicateRegard.layer.cornerRadius = 11; + _backgroundIndicateRegard.layer.masksToBounds = YES; + } + return _backgroundIndicateRegard; +} + +- (UIImageView *)figureIndicateRegard { + if (_figureIndicateRegard == nil) { + _figureIndicateRegard = [[UIImageView alloc] init]; + _figureIndicateRegard.image = [UIImage imageNamed:@"yumi_anchor_hourRank_btn"]; + _figureIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _figureIndicateRegard; +} + +- (UILabel *)titleLabel { + if (_titleLabel == nil) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.textColor = UIColor.whiteColor; + _titleLabel.font = [UIFont systemFontOfSize:10 weight:UIFontWeightMedium]; + _titleLabel.text = YMLocalizedString(@"YUMI_Room_Anchor_Rank_Enter_View_0"); + } + return _titleLabel; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/BaseUIContainerView/YUMIChamberRateEntranceRegard.h b/YuMi/Modules/YMRoom/View/BaseUIContainerView/YUMIChamberRateEntranceRegard.h new file mode 100644 index 00000000..15036dd5 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/BaseUIContainerView/YUMIChamberRateEntranceRegard.h @@ -0,0 +1,20 @@ +// +// YMRoomRankEntranceView.h +// YUMI +// +// Created by YUMI on 2022/4/27. +// 房间榜入口 + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIChamberRateEntranceRegard : UIView + +@property (nonatomic, copy) NSString *title; + +@property (nonatomic, strong) NSArray *array; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/BaseUIContainerView/YUMIChamberRateEntranceRegard.m b/YuMi/Modules/YMRoom/View/BaseUIContainerView/YUMIChamberRateEntranceRegard.m new file mode 100644 index 00000000..00f06412 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/BaseUIContainerView/YUMIChamberRateEntranceRegard.m @@ -0,0 +1,127 @@ +// +// YMRoomRankEntranceView.m +// YUMI +// +// Created by YUMI on 2022/4/27. +// + +#import "YUMIChamberRateEntranceRegard.h" +#import +#import "DJDKMIMOMColor.h" +#import "NetIndicateRegard.h" + +@interface YUMIChamberRateEntranceRegard () + +@property (nonatomic, strong) UIView *backgroundRegard; +@property (nonatomic, strong) UIView *rateSatisfperformanceRegard; +@property (nonatomic, strong) UILabel *titleLabel; +@property (nonatomic, strong) UIImageView *figureIndicateRegard; + +@end + +@implementation YUMIChamberRateEntranceRegard + +- (instancetype)initWithFrame:(CGRect)frame { + if (self = [super initWithFrame:frame]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.backgroundRegard]; + [self addSubview:self.rateSatisfperformanceRegard]; + [self addSubview:self.titleLabel]; + [self addSubview:self.figureIndicateRegard]; + for (int i = 0; i < 3; i++) { + NetIndicateDisposition *config = [[NetIndicateDisposition alloc] init]; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyDispossessIntelligenceportraitDepapossessor]; + NetIndicateRegard *imageView = [[NetIndicateRegard alloc] initWithConfig:config]; + imageView.layer.cornerRadius = 10; + imageView.layer.masksToBounds = YES; + [self.rateSatisfperformanceRegard addSubview:imageView]; + [imageView mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.rateSatisfperformanceRegard); + make.width.height.mas_equalTo(20); + make.left.mas_equalTo(i*8); + }]; + } +} + +- (void)initChildLyRestrictions { + [self.backgroundRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.bottom.right.left.mas_equalTo(0); + }]; + [self.rateSatisfperformanceRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self); + make.width.mas_equalTo(36); + make.height.mas_equalTo(20); + make.left.mas_equalTo(4); + }]; + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self); + make.left.mas_equalTo(self.rateSatisfperformanceRegard.mas_right).mas_offset(4); + }]; + [self.figureIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.mas_equalTo(9); + make.centerY.mas_equalTo(self); + make.left.mas_equalTo(self.titleLabel.mas_right).mas_offset(2); + }]; +} + +#pragma mark - Getters And Setters +- (void)setTitle:(NSString *)title { + self.titleLabel.text = title; +} + +- (void)setArray:(NSArray *)array { + for (int i = 0; i < self.rateSatisfperformanceRegard.subviews.count; i++) { + NSString *str; + if (array.count > i) { + str = array[i]; + } + NetIndicateRegard *imageView = self.rateSatisfperformanceRegard.subviews[self.rateSatisfperformanceRegard.subviews.count-1-i]; + imageView.imageUrl = str.length ? str : @""; + } +} + +- (UIView *)backgroundRegard { + if (_backgroundRegard == nil) { + _backgroundRegard = [[UIView alloc] init]; + _backgroundRegard.backgroundColor = UIColorRGBAlpha(0xFFFFFF, 0.1); + _backgroundRegard.layer.cornerRadius = 12; + _backgroundRegard.layer.masksToBounds = YES; + } + return _backgroundRegard; +} + +- (UIView *)rateSatisfperformanceRegard { + if (!_rateSatisfperformanceRegard) { + _rateSatisfperformanceRegard = [[UIView alloc] init]; + } + return _rateSatisfperformanceRegard; +} + +- (UIImageView *)figureIndicateRegard { + if (_figureIndicateRegard == nil) { + _figureIndicateRegard = [[UIImageView alloc] init]; + _figureIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_position_little_game_right_arrow"]; + _figureIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _figureIndicateRegard; +} + +- (UILabel *)titleLabel { + if (_titleLabel == nil) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.textColor = UIColor.whiteColor; + _titleLabel.font = [UIFont systemFontOfSize:10 weight:UIFontWeightMedium]; + _titleLabel.text = YMLocalizedString(@"YUMI_Room_Rank_Entrance_View_0"); + } + return _titleLabel; +} + + +@end diff --git a/YuMi/Modules/YMRoom/View/CandyTree/Api/Api+CandyTree.h b/YuMi/Modules/YMRoom/View/CandyTree/Api/Api+CandyTree.h new file mode 100644 index 00000000..a799c216 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/CandyTree/Api/Api+CandyTree.h @@ -0,0 +1,26 @@ +// +// Api+CandyTree.h +// YuMi +// +// Created by YuMi on 2021/12/9. +// + +#import "Api.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface Api (CandyTree) ++ (void)confectioneryTimberDigitalimplementtion:(HttpRequestHelperCompletion)complection uid:(NSString *)uid; + ++ (void)extractConfectioneryimplementtion:(HttpRequestHelperCompletion)complection + sendMessage:(NSString *)sendMessage + num:(NSString *)num + roomUid:(NSString *)roomUid + uid:(NSString *)uid; ++ (void)confectioneryTimberRtowardseSttowardsementimplementtion:(HttpRequestHelperCompletion)complection + page:(NSString *)page + pageSize:(NSString *)pageSize + type:(NSString *)type; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/CandyTree/Api/Api+CandyTree.m b/YuMi/Modules/YMRoom/View/CandyTree/Api/Api+CandyTree.m new file mode 100644 index 00000000..257261f0 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/CandyTree/Api/Api+CandyTree.m @@ -0,0 +1,26 @@ +// +// Api+CandyTree.m +// YuMi +// +// Created by YuMi on 2021/12/9. +// + +#import "Api+CandyTree.h" + +@implementation Api (CandyTree) + + ++ (void)confectioneryTimberDigitalimplementtion:(HttpRequestHelperCompletion)complection uid:(NSString *)uid { + [self manufactureDemand:@"box/userkey" method:HttpRequestHelperMethodGET completion:complection, __FUNCTION__, uid, nil]; +} + ++ (void)extractConfectioneryimplementtion:(HttpRequestHelperCompletion)complection sendMessage:(NSString *)sendMessage num:(NSString *)num roomUid:(NSString *)roomUid uid:(NSString *)uid{ + [self manufactureDemand:@"findLove/draw" method:HttpRequestHelperMethodPOST completion:complection, __FUNCTION__, sendMessage, num, roomUid, uid, nil]; +} + + ++ (void)confectioneryTimberRtowardseSttowardsementimplementtion:(HttpRequestHelperCompletion)complection page:(NSString *)page pageSize:(NSString *)pageSize type:(NSString *)type { + [self manufactureDemand:@"findLove/rank" method:HttpRequestHelperMethodGET completion:complection, __FUNCTION__, page, pageSize, type, nil]; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/CandyTree/Model/ConfectioneryTimberAbstractMatrix.h b/YuMi/Modules/YMRoom/View/CandyTree/Model/ConfectioneryTimberAbstractMatrix.h new file mode 100644 index 00000000..21b119fb --- /dev/null +++ b/YuMi/Modules/YMRoom/View/CandyTree/Model/ConfectioneryTimberAbstractMatrix.h @@ -0,0 +1,18 @@ +// +// ConfectioneryTimberAbstractMatrix.h +// YuMi +// +// Created by YuMi on 2021/12/9. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface ConfectioneryTimberAbstractMatrix : NSObject +@property (nonatomic, assign) NSInteger keyNum; +@property (nonatomic, assign) NSInteger sendMessageSwitchLevel; +@property (nonatomic,copy) NSString *goldNum; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/CandyTree/Model/ConfectioneryTimberAbstractMatrix.m b/YuMi/Modules/YMRoom/View/CandyTree/Model/ConfectioneryTimberAbstractMatrix.m new file mode 100644 index 00000000..21bc01c0 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/CandyTree/Model/ConfectioneryTimberAbstractMatrix.m @@ -0,0 +1,12 @@ +// +// ConfectioneryTimberAbstractMatrix.m +// YuMi +// +// Created by YuMi on 2021/12/9. +// + +#import "ConfectioneryTimberAbstractMatrix.h" + +@implementation ConfectioneryTimberAbstractMatrix + +@end diff --git a/YuMi/Modules/YMRoom/View/CandyTree/Model/ConfectioneryTimberConsequentMatrix.h b/YuMi/Modules/YMRoom/View/CandyTree/Model/ConfectioneryTimberConsequentMatrix.h new file mode 100644 index 00000000..1a74af73 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/CandyTree/Model/ConfectioneryTimberConsequentMatrix.h @@ -0,0 +1,50 @@ +// +// ConfectioneryTimberConsequentMatrix.h +// YuMi +// +// Created by YuMi on 2021/12/10. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSInteger, CandyTreePresentPrototype) { + CandyTreePresentPrototype_First = 1, + CandyTreePresentPrototype_Second, + CandyTreePresentPrototype_Third, + CandyTreePresentPrototype_Fourth, + CandyTreePresentPrototype_Fifth, +}; + +@interface ConfectioneryTimberPresentAbstractMatrix : NSObject +@property (nonatomic, assign) int prizeNum; +@property (nonatomic, assign) int num; +@property (nonatomic, assign) NSInteger referenceId; +@property (nonatomic, assign) NSInteger rewardId; + +@property (nonatomic, assign) CandyTreePresentPrototype prizeLevel; +@property (nonatomic, assign) CandyTreePresentPrototype level; + +@property (nonatomic, copy) NSString *prizeName; +@property (nonatomic, copy) NSString *rewardName; + + +@property (nonatomic, copy) NSString *prizeImgUrl; + +@property (nonatomic, copy) NSString *picUrl; + +@property (nonatomic, assign) NSInteger prizeId; +@property (nonatomic, assign) CGFloat platformValue; +@property (nonatomic,copy) NSString *uid; +@property (nonatomic,copy) NSString *roomUid; +@property (nonatomic,copy) NSString *nick; +@end + +@interface ConfectioneryTimberConsequentMatrix : NSObject + + + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/CandyTree/Model/ConfectioneryTimberConsequentMatrix.m b/YuMi/Modules/YMRoom/View/CandyTree/Model/ConfectioneryTimberConsequentMatrix.m new file mode 100644 index 00000000..fefcab9a --- /dev/null +++ b/YuMi/Modules/YMRoom/View/CandyTree/Model/ConfectioneryTimberConsequentMatrix.m @@ -0,0 +1,22 @@ +// +// ConfectioneryTimberConsequentMatrix.m +// YuMi +// +// Created by YuMi on 2021/12/10. +// + +#import "ConfectioneryTimberConsequentMatrix.h" + +@implementation ConfectioneryTimberPresentAbstractMatrix + + + +@end + +@implementation ConfectioneryTimberConsequentMatrix + ++ (NSDictionary *)objectCtowardsegorizeInGarment { + return @{@"prizeItemList": ConfectioneryTimberPresentAbstractMatrix.class}; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/CandyTree/Model/ConfectioneryTimberReflectionMatrix.h b/YuMi/Modules/YMRoom/View/CandyTree/Model/ConfectioneryTimberReflectionMatrix.h new file mode 100644 index 00000000..f015de53 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/CandyTree/Model/ConfectioneryTimberReflectionMatrix.h @@ -0,0 +1,22 @@ +// +// ConfectioneryTimberReflectionMatrix.h +// YuMi +// +// Created by YuMi on 2021/12/10. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface ConfectioneryTimberReflectionMatrix : NSObject + +@property (nonatomic,assign) NSInteger uid; + +@property (copy, nonatomic) NSString *nick; +@property (copy, nonatomic) NSString *avatar; +@property (nonatomic,copy) NSString *ranking; +@property (nonatomic,copy) NSString *diamonds; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/CandyTree/Model/ConfectioneryTimberReflectionMatrix.m b/YuMi/Modules/YMRoom/View/CandyTree/Model/ConfectioneryTimberReflectionMatrix.m new file mode 100644 index 00000000..bc1e455a --- /dev/null +++ b/YuMi/Modules/YMRoom/View/CandyTree/Model/ConfectioneryTimberReflectionMatrix.m @@ -0,0 +1,12 @@ +// +// ConfectioneryTimberReflectionMatrix.m +// YuMi +// +// Created by YuMi on 2021/12/10. +// + +#import "ConfectioneryTimberReflectionMatrix.h" + +@implementation ConfectioneryTimberReflectionMatrix + +@end diff --git a/YuMi/Modules/YMRoom/View/CandyTree/Model/YUMIConfectioneryTimberBrightnessMatrix.h b/YuMi/Modules/YMRoom/View/CandyTree/Model/YUMIConfectioneryTimberBrightnessMatrix.h new file mode 100644 index 00000000..6daf34b0 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/CandyTree/Model/YUMIConfectioneryTimberBrightnessMatrix.h @@ -0,0 +1,24 @@ +// +// YUMIConfectioneryTimberBrightnessMatrix.h +// YuMi +// +// Created by YuMi on 2021/12/11. +// +///当前的view 需要进行什么样式的动画 +#import +#import +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIConfectioneryTimberBrightnessMatrix : NSObject +@property (nonatomic,assign) CGFloat removeTime; +@property (nonatomic,assign) BOOL isRemoveAnimation; +@property (nonatomic,assign) CGFloat beginTime; +@property (nonatomic,strong) NSString *animationKey; +@property (nonatomic,assign) CGFloat alphaFromValue; +@property (nonatomic,assign) CGFloat alphaToValue; +@property (nonatomic,assign) CGFloat durationTime; +@property (nonatomic,assign) CGFloat offsetFromY; +@property (nonatomic,assign) CGFloat offsetToY; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/CandyTree/Model/YUMIConfectioneryTimberBrightnessMatrix.m b/YuMi/Modules/YMRoom/View/CandyTree/Model/YUMIConfectioneryTimberBrightnessMatrix.m new file mode 100644 index 00000000..23e5ac89 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/CandyTree/Model/YUMIConfectioneryTimberBrightnessMatrix.m @@ -0,0 +1,12 @@ +// +// YUMIConfectioneryTimberBrightnessMatrix.m +// YuMi +// +// Created by YuMi on 2021/12/11. +// + +#import "YUMIConfectioneryTimberBrightnessMatrix.h" + +@implementation YUMIConfectioneryTimberBrightnessMatrix + +@end diff --git a/YuMi/Modules/YMRoom/View/CandyTree/Presenter/YUMIConfectioneryTimberExternalizer.h b/YuMi/Modules/YMRoom/View/CandyTree/Presenter/YUMIConfectioneryTimberExternalizer.h new file mode 100644 index 00000000..2af65c1d --- /dev/null +++ b/YuMi/Modules/YMRoom/View/CandyTree/Presenter/YUMIConfectioneryTimberExternalizer.h @@ -0,0 +1,18 @@ +// +// YUMIConfectioneryTimberExternalizer.h +// YuMi +// +// Created by YuMi on 2021/12/9. +// + +#import "BaseMvpExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIConfectioneryTimberExternalizer : BaseMvpExternalizer +- (void)acquireConfectioneryTimberAbstract; + +- (void)extractConfectionery:(NSString *)keyNum roomUid:(NSString *)roomUid isSendMessage:(BOOL)isSendMessage; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/CandyTree/Presenter/YUMIConfectioneryTimberExternalizer.m b/YuMi/Modules/YMRoom/View/CandyTree/Presenter/YUMIConfectioneryTimberExternalizer.m new file mode 100644 index 00000000..add85c34 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/CandyTree/Presenter/YUMIConfectioneryTimberExternalizer.m @@ -0,0 +1,49 @@ +// +// YUMIConfectioneryTimberExternalizer.m +// YuMi +// +// Created by YuMi on 2021/12/9. +// + +#import "YUMIConfectioneryTimberExternalizer.h" +#import "Api+CandyTree.h" +#import "AccountAbstractStorage.h" +#import "FBCCandyTreeCeremony.h" +#import "ConfectioneryTimberAbstractMatrix.h" +#import "ConfectioneryTimberConsequentMatrix.h" + +@implementation YUMIConfectioneryTimberExternalizer + + +- (void)acquireConfectioneryTimberAbstract { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [Api confectioneryTimberDigitalimplementtion:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + ConfectioneryTimberAbstractMatrix * infor = [ConfectioneryTimberAbstractMatrix mtowardsrixAboutJSON:data.data]; + [[self acquireRegard] acquireConfectioneryTimberAbstractAccomplishment:infor]; + } EvidenceChambering:YES] uid:uid]; +} + + +- (void)extractConfectionery:(NSString *)keyNum roomUid:(NSString *)roomUid isSendMessage:(BOOL)isSendMessage{ + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NSString *showSwitch = [[NSUserDefaults standardUserDefaults] objectForKey:@"kCandyTreeHideMessage"]; + NSString *sendMessage; + if(showSwitch != nil){ + sendMessage = @"0"; + }else{ + sendMessage = isSendMessage == YES ? @"1":@"0"; + } + + [Api extractConfectioneryimplementtion:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + NSArray *resultModel = [ConfectioneryTimberPresentAbstractMatrix mtowardsrixsAboutGarment:data.data]; + [[self acquireRegard] extractConfectioneryAccomplishment:resultModel]; + }fail:^(NSInteger code, NSString * _Nullable msg) { + if(code == 31005){ + [[self acquireRegard]extractConfectioneryIntersect]; + return; + } + [[self acquireRegard] extractConfectioneryFlunk]; + }] sendMessage:sendMessage num:keyNum roomUid:roomUid uid:uid]; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/CandyTree/Protocol/FBCCandyTreeCeremony.h b/YuMi/Modules/YMRoom/View/CandyTree/Protocol/FBCCandyTreeCeremony.h new file mode 100644 index 00000000..2f06a7b9 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/CandyTree/Protocol/FBCCandyTreeCeremony.h @@ -0,0 +1,19 @@ +// +// FBCCandyTreeCeremony.h +// YuMi +// +// Created by YuMi on 2021/12/9. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class ConfectioneryTimberAbstractMatrix, ConfectioneryTimberPresentAbstractMatrix; +@protocol FBCCandyTreeCeremony +- (void)acquireConfectioneryTimberAbstractAccomplishment:(ConfectioneryTimberAbstractMatrix *)info; +- (void)extractConfectioneryAccomplishment:(NSArray * )result; +- (void)extractConfectioneryFlunk; +-(void)extractConfectioneryIntersect; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/CandyTree/View/Cell/YUMIConfectioneryTimberDispossessableRegardElement.h b/YuMi/Modules/YMRoom/View/CandyTree/View/Cell/YUMIConfectioneryTimberDispossessableRegardElement.h new file mode 100644 index 00000000..75eb8ced --- /dev/null +++ b/YuMi/Modules/YMRoom/View/CandyTree/View/Cell/YUMIConfectioneryTimberDispossessableRegardElement.h @@ -0,0 +1,16 @@ +// +// YUMIConfectioneryTimberDispossessableRegardElement.h +// YuMi +// +// Created by YuMi on 2021/12/10. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIConfectioneryTimberDispossessableRegardElement : UITableViewCell + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/CandyTree/View/Cell/YUMIConfectioneryTimberDispossessableRegardElement.m b/YuMi/Modules/YMRoom/View/CandyTree/View/Cell/YUMIConfectioneryTimberDispossessableRegardElement.m new file mode 100644 index 00000000..cbd0ef05 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/CandyTree/View/Cell/YUMIConfectioneryTimberDispossessableRegardElement.m @@ -0,0 +1,71 @@ +// +// YUMIConfectioneryTimberDispossessableRegardElement.m +// YuMi +// +// Created by YuMi on 2021/12/10. +// + +#import "YUMIConfectioneryTimberDispossessableRegardElement.h" +#import +#import "UIIndicateConstant.h" +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" + +@interface YUMIConfectioneryTimberDispossessableRegardElement () +@property (nonatomic,strong) UIImageView *dispossessIndicateRegard; +@property (nonatomic,strong) UILabel *titleLabel; +@end + +@implementation YUMIConfectioneryTimberDispossessableRegardElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor]; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.dispossessIndicateRegard]; + [self.contentView addSubview:self.titleLabel]; +} + +- (void)initChildLyRestrictions { + [self.dispossessIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.contentView); + make.top.mas_equalTo(self.contentView).offset(50); + make.size.mas_equalTo(CGSizeMake(100, 100)); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.dispossessIndicateRegard.mas_bottom).offset(20); + make.left.right.mas_equalTo(self.contentView); + }]; +} +#pragma mark - Getters And Setters +- (UIImageView *)dispossessIndicateRegard { + if (!_dispossessIndicateRegard) { + _dispossessIndicateRegard = [[UIImageView alloc] init]; + _dispossessIndicateRegard.userInteractionEnabled = YES; + _dispossessIndicateRegard.image = [UIIndicateConstant defalutDispossessDepapossessor]; + _dispossessIndicateRegard.layer.masksToBounds = YES; + _dispossessIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _dispossessIndicateRegard; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.text = YMLocalizedString(@"YUMI_Candy_Tree_Emptyable_View_Cell_0"); + _titleLabel.font = [UIFont systemFontOfSize:16]; + _titleLabel.textAlignment = NSTextAlignmentCenter; + _titleLabel.textColor = [UIColor whiteColor]; + } + return _titleLabel; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/CandyTree/View/Cell/YUMIConfectioneryTimberFurthaerPreadominantElement.h b/YuMi/Modules/YMRoom/View/CandyTree/View/Cell/YUMIConfectioneryTimberFurthaerPreadominantElement.h new file mode 100644 index 00000000..f5ae2b5f --- /dev/null +++ b/YuMi/Modules/YMRoom/View/CandyTree/View/Cell/YUMIConfectioneryTimberFurthaerPreadominantElement.h @@ -0,0 +1,29 @@ +// +// YUMIConfectioneryTimberFurthaerPreadominantElement.h +// YuMi +// +// Created by GreenLand on 2022/4/29. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class YUMIConfectioneryTimberFurthaerPreadominantElement; +@protocol FBCCandyTreeFurthaerRuleElementRepresendtation + +- (void)yUMIConfectioneryTimberFurthaerPreadominantElement:(YUMIConfectioneryTimberFurthaerPreadominantElement *)cell switchChange:(UISwitch *)change; + +@end + +@interface YUMIConfectioneryTimberFurthaerPreadominantElement : UITableViewCell +@property (nonatomic, copy) NSString *title; +@property (nonatomic, assign) BOOL isExhibit; +@property (nonatomic,assign) BOOL isSwopCapacitate; +@property (nonatomic,assign) NSInteger sendMessageSwitchLevel; + +@property (nonatomic, weak) id delegate; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/CandyTree/View/Cell/YUMIConfectioneryTimberFurthaerPreadominantElement.m b/YuMi/Modules/YMRoom/View/CandyTree/View/Cell/YUMIConfectioneryTimberFurthaerPreadominantElement.m new file mode 100644 index 00000000..da0ecd7f --- /dev/null +++ b/YuMi/Modules/YMRoom/View/CandyTree/View/Cell/YUMIConfectioneryTimberFurthaerPreadominantElement.m @@ -0,0 +1,116 @@ +// +// YUMIConfectioneryTimberFurthaerPreadominantElement.m +// YuMi +// +// Created by GreenLand on 2022/4/29. +// + +#import "YUMIConfectioneryTimberFurthaerPreadominantElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "XNDJTBWGLoadingTool.h" +#import "YUMIMacroUitls.h" + +@interface YUMIConfectioneryTimberFurthaerPreadominantElement () + +@property (nonatomic,strong) UILabel *titleLabel; +@property (nonatomic, strong) UISwitch *swopBtuton; +@property (nonatomic,strong) UIButton *disableBtuton; + +@end + + +@implementation YUMIConfectioneryTimberFurthaerPreadominantElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor whiteColor]; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.titleLabel]; + [self.contentView addSubview:self.swopBtuton]; + [self.contentView addSubview:self.disableBtuton]; +} + +- (void)initChildLyRestrictions { + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.contentView); + make.left.mas_equalTo(16); + }]; + [self.swopBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.contentView); + make.right.mas_equalTo(-16); + }]; + + [self.disableBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.swopBtuton); + }]; +} + +- (void)swopDidDiversifictowardsion:(UISwitch *)swopBtuton { + if (self.isSwopCapacitate && self.delegate && [self.delegate respondsToSelector:@selector(yUMIConfectioneryTimberFurthaerPreadominantElement:switchChange:)]) { + [self.delegate yUMIConfectioneryTimberFurthaerPreadominantElement:self switchChange:swopBtuton]; + } +} + +- (void)prohibitionBtutonPerformance:(UIButton *)sender { + if (!self.isSwopCapacitate && self.sendMessageSwitchLevel > 0) { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:[NSString stringWithFormat:YMLocalizedString(@"YUMI_Candy_Tree_More_Rule_Cell_0"), self.sendMessageSwitchLevel]]; + } +} + +#pragma mark - Getters And Setters +- (void)setTitle:(NSString *)title { + self.titleLabel.text = title; +} + +- (void)setIsExhibit:(BOOL)isExhibit { + self.swopBtuton.on = isExhibit; +} + +- (void)setIsSwopCapacitate:(BOOL)isSwopCapacitate { + _isSwopCapacitate = isSwopCapacitate; + if (_isSwopCapacitate) { + [self.swopBtuton setOnTintColor:[DJDKMIMOMColor aplictowardsionMainPrettify]]; + self.disableBtuton.hidden = YES; + } else { + [self.swopBtuton setOnTintColor:[DJDKMIMOMColor prohibitionBtutonPrettify]]; + self.swopBtuton.on = NO; + self.disableBtuton.hidden = NO; + } +} + +- (UISwitch *)swopBtuton { + if (!_swopBtuton) { + _swopBtuton = [[UISwitch alloc] init]; + [_swopBtuton addTarget:self action:@selector(swopDidDiversifictowardsion:) forControlEvents:UIControlEventValueChanged]; + + } + return _swopBtuton; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.font = [UIFont systemFontOfSize:15]; + _titleLabel.textAlignment = NSTextAlignmentCenter; + _titleLabel.textColor = [DJDKMIMOMColor precautiousChampionPrettify]; + } + return _titleLabel; +} + +- (UIButton *)disableBtuton { + if (!_disableBtuton) { + _disableBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_disableBtuton addTarget:self action:@selector(prohibitionBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _disableBtuton; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/CandyTree/View/Cell/YUMIConfectioneryTimberRateTabulationRegardElement.h b/YuMi/Modules/YMRoom/View/CandyTree/View/Cell/YUMIConfectioneryTimberRateTabulationRegardElement.h new file mode 100644 index 00000000..1506c836 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/CandyTree/View/Cell/YUMIConfectioneryTimberRateTabulationRegardElement.h @@ -0,0 +1,16 @@ +// +// YUMIConfectioneryTimberRateTabulationRegardElement.h +// YuMi +// +// Created by YuMi on 2021/12/10. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class ConfectioneryTimberReflectionMatrix; +@interface YUMIConfectioneryTimberRateTabulationRegardElement : UITableViewCell +@property (nonatomic,strong) ConfectioneryTimberReflectionMatrix *chamberRateMatrix; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/CandyTree/View/Cell/YUMIConfectioneryTimberRateTabulationRegardElement.m b/YuMi/Modules/YMRoom/View/CandyTree/View/Cell/YUMIConfectioneryTimberRateTabulationRegardElement.m new file mode 100644 index 00000000..718b760b --- /dev/null +++ b/YuMi/Modules/YMRoom/View/CandyTree/View/Cell/YUMIConfectioneryTimberRateTabulationRegardElement.m @@ -0,0 +1,177 @@ +// +// YUMIConfectioneryTimberRateTabulationRegardElement.m +// YuMi +// +// Created by YuMi on 2021/12/10. +// + +#import "YUMIConfectioneryTimberRateTabulationRegardElement.h" +#import +#import "ThemeColor+Room.h" +#import "NetIndicateRegard.h" +#import "YUMIMacroUitls.h" +#import "ConfectioneryTimberReflectionMatrix.h" +@interface YUMIConfectioneryTimberRateTabulationRegardElement () +@property (nonatomic, strong) UIImageView *rateIndicateRegard; +@property (nonatomic, strong) UILabel *rateSequencignation; +@property (nonatomic, strong) NetIndicateRegard *intelligenceportraitIndicateRegard; +@property (nonatomic, strong) UIImageView *genderIndicateRegard; +@property (nonatomic, strong) UILabel *monicerConstituteSequencignation; +@property (nonatomic, strong) UILabel *tangerineDigitalSequencignation; +@property (nonatomic, strong) UIImageView *tangerineIndicateRegard; + +@end + +@implementation YUMIConfectioneryTimberRateTabulationRegardElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor]; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.rateIndicateRegard]; + [self.contentView addSubview:self.rateSequencignation]; + [self.contentView addSubview:self.intelligenceportraitIndicateRegard]; + [self.contentView addSubview:self.monicerConstituteSequencignation]; + [self.contentView addSubview:self.tangerineDigitalSequencignation]; + [self.contentView addSubview:self.tangerineIndicateRegard]; +} + +- (void)initChildLyRestrictions { + [self.rateSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(round(23 * kScreenScale)); + make.centerY.mas_equalTo(self); + }]; + + [self.rateIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.center.mas_equalTo(self.rateSequencignation); + make.width.height.mas_equalTo(round(22 * kScreenScale)); + }]; + + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.contentView); + make.width.height.mas_equalTo(round(50 * kScreenScale)); + make.left.mas_equalTo(self.rateIndicateRegard.mas_right).offset(round(12 * kScreenScale)); + }]; + + [self.monicerConstituteSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_right).offset(round(15 * kScreenScale)); + make.centerY.mas_equalTo(self.intelligenceportraitIndicateRegard); + make.right.mas_lessThanOrEqualTo(self.tangerineDigitalSequencignation.mas_left).offset(-round(5 * kScreenScale)); + }]; + + [self.tangerineIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(-round(15 * kScreenScale)); + make.centerY.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_centerY); + make.width.mas_equalTo(round(14 * kScreenScale)); + make.height.mas_equalTo(round(14 * kScreenScale)); + }]; + + [self.tangerineDigitalSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self.tangerineIndicateRegard.mas_left).offset(-round(3 * kScreenScale)); + make.centerY.mas_equalTo(self.intelligenceportraitIndicateRegard); + make.width.mas_greaterThanOrEqualTo(10); + }]; + + +} + +#pragma mark - Getters And Setters +- (void)setChamberRateMatrix:(ConfectioneryTimberReflectionMatrix *)chamberRateMatrix { + _chamberRateMatrix = chamberRateMatrix; + NSString *rankImage = [NSString stringWithFormat:@"room_candytree_wish_num%d", _chamberRateMatrix.ranking.intValue]; + if (chamberRateMatrix.ranking.intValue <= 3) { + self.rateIndicateRegard.image = [UIImage imageNamed:rankImage]; + self.rateIndicateRegard.hidden = NO; + self.rateSequencignation.hidden = YES; + }else { + self.rateSequencignation.text = _chamberRateMatrix.ranking; + self.rateIndicateRegard.hidden = YES; + self.rateSequencignation.hidden = NO; + } + self.tangerineDigitalSequencignation.text = chamberRateMatrix.diamonds; + self.intelligenceportraitIndicateRegard.imageUrl = _chamberRateMatrix.avatar; + self.monicerConstituteSequencignation.text = _chamberRateMatrix.nick;; +} + +- (UIImageView *)rateIndicateRegard { + if (!_rateIndicateRegard) { + _rateIndicateRegard = [[UIImageView alloc] init]; + } + return _rateIndicateRegard; +} + + +- (UILabel *)rateSequencignation { + if (!_rateSequencignation) { + _rateSequencignation = [[UILabel alloc] init]; + _rateSequencignation.font = [UIFont boldSystemFontOfSize:18]; + _rateSequencignation.textAlignment = NSTextAlignmentCenter; + _rateSequencignation.textColor = [UIColor whiteColor]; + } + return _rateSequencignation; +} + +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc] init]; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + config.imageType = ImageGenreUserIcon; + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _intelligenceportraitIndicateRegard.layer.cornerRadius = round(50 * kScreenScale)/2; + _intelligenceportraitIndicateRegard.layer.borderWidth = 1; + _intelligenceportraitIndicateRegard.layer.borderColor = [UIColor whiteColor].CGColor; + } + return _intelligenceportraitIndicateRegard; +} + + +- (UIImageView *)genderIndicateRegard { + if (!_genderIndicateRegard) { + _genderIndicateRegard = [[UIImageView alloc] init]; + _genderIndicateRegard.hidden = YES; + [_genderIndicateRegard setContentCompressionResistancePriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal]; + } + return _genderIndicateRegard; +} + +- (UILabel *)monicerConstituteSequencignation { + if (!_monicerConstituteSequencignation) { + _monicerConstituteSequencignation = [[UILabel alloc] init]; + _monicerConstituteSequencignation.font = [UIFont systemFontOfSize:14]; + _monicerConstituteSequencignation.textColor = [UIColor whiteColor]; + } + return _monicerConstituteSequencignation; +} + + +- (UILabel *)tangerineDigitalSequencignation{ + if (!_tangerineDigitalSequencignation) { + _tangerineDigitalSequencignation = [[UILabel alloc] init]; + _tangerineDigitalSequencignation.font = [UIFont systemFontOfSize:14 weight:UIFontWeightMedium]; + _tangerineDigitalSequencignation.textColor = UIColorFromRGB(0xF8FF7B); + _tangerineDigitalSequencignation.textAlignment = NSTextAlignmentRight; + [_tangerineDigitalSequencignation setContentCompressionResistancePriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal]; + } + return _tangerineDigitalSequencignation; +} + +- (UIImageView *)tangerineIndicateRegard { + if (!_tangerineIndicateRegard) { + _tangerineIndicateRegard = [[UIImageView alloc] init]; + _tangerineIndicateRegard.image = [UIImage imageNamed:@"yumi_candy_tree_diamond"]; + } + return _tangerineIndicateRegard; +} + + + +@end diff --git a/YuMi/Modules/YMRoom/View/CandyTree/View/YUMIChamberHalfTissueRegard.h b/YuMi/Modules/YMRoom/View/CandyTree/View/YUMIChamberHalfTissueRegard.h new file mode 100644 index 00000000..55db11ee --- /dev/null +++ b/YuMi/Modules/YMRoom/View/CandyTree/View/YUMIChamberHalfTissueRegard.h @@ -0,0 +1,18 @@ +// +// YUMIChamberHalfTissueRegard.h +// YuMi +// +// Created by YuMi on 2021/12/9. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@interface YUMIChamberHalfTissueRegard : UIView +@property (nonatomic,copy) NSString *url; +@property (nonatomic,copy) NSString *roomUid; + +@property (nonatomic,assign) BOOL isMarching; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/CandyTree/View/YUMIChamberHalfTissueRegard.m b/YuMi/Modules/YMRoom/View/CandyTree/View/YUMIChamberHalfTissueRegard.m new file mode 100644 index 00000000..3353dcf5 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/CandyTree/View/YUMIChamberHalfTissueRegard.m @@ -0,0 +1,187 @@ +// +// YUMIChamberHalfTissueRegard.m +// YuMi +// +// Created by YuMi on 2021/12/9. +// + +#import "YUMIChamberHalfTissueRegard.h" +#import +#import "YUMITissueRegardGovernancer.h" +#import "YUMICommunicationSolitaireDisporterExecutive.h" +#import "YUMIMacroUitls.h" +#import "DJDKMIMOMColor.h" +#import "MKJPopup.h" +@interface YUMIChamberHalfTissueRegard () +@property (nonatomic,strong) UIStackView *stackView; +@property (nonatomic,strong) UIView * apexRegard; +@property (nonatomic,strong) UIView * utensilRegard; +@property (nonatomic,strong) UIButton *backButton; +@property (nonatomic,strong) UIButton *concludeBtuton; +@property (nonatomic,strong) UILabel *titleLabel; +@property (nonatomic, strong) YUMITissueRegardGovernancer *webVewC; +@end + +@implementation YUMIChamberHalfTissueRegard +- (void)dealloc { + +} + +- (instancetype)initWithFrame:(CGRect)frame +{ + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + + [self addSubview:self.apexRegard]; + [self addSubview:self.stackView]; + + [self.stackView addArrangedSubview:self.utensilRegard]; + [self.stackView addArrangedSubview:self.webVewC.view]; + + [self.utensilRegard addSubview:self.backButton]; + [self.utensilRegard addSubview:self.titleLabel]; + @kWeakify(self); + self.webVewC.InitShowNavBlock = ^(BOOL show) { + @kStrongify(self); + self.utensilRegard.hidden = YES; + }; + + self.webVewC.CloseWebViewBlock = ^(BOOL result) { + [MKJPopup dismiss]; + }; +} + +- (void)initChildLyRestrictions { + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(KScreenWidth); + make.height.mas_equalTo(KScreenHeight); + }]; + + [self.apexRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self); + make.bottom.mas_equalTo(self.utensilRegard.mas_top); + }]; + + [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.mas_equalTo(self); + make.height.mas_equalTo(kHalfScreenHeight); + }]; + + + [self.utensilRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(44); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.utensilRegard); + make.centerY.mas_equalTo(self.utensilRegard); + }]; + + [self.backButton mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(6); + make.width.mas_equalTo(40); + make.top.bottom.mas_equalTo(self.utensilRegard); + }]; +} +#pragma mark - Event Response +- (void)didTicktackConcludeBtuton:(UIButton *)sender { + [MKJPopup dismiss]; +} + +- (void)apexRegardRecognition { + [MKJPopup dismiss]; +} + +#pragma mark - Getters And Setters +- (void)setUrl:(NSString *)url { + _url = url; + if (_url.length > 0) { + self.webVewC.roomUid = self.roomUid; + self.webVewC.url = _url; + } +} + +- (void)setIsMarching:(BOOL)isMarching { + _isMarching = isMarching; + if (_isMarching) { + self.webVewC.webview.scrollView.backgroundColor = [UIColor clearColor]; + self.webVewC.webview.opaque = NO; + } +} + +- (UIStackView *)stackView { + if (!_stackView) { + _stackView = [[UIStackView alloc] init]; + _stackView.axis = UILayoutConstraintAxisVertical; + _stackView.distribution = UIStackViewDistributionFill; + _stackView.alignment = UIStackViewAlignmentFill; + _stackView.spacing = 0; + _stackView.layer.cornerRadius = 10; + _stackView.layer.masksToBounds = YES; + } + return _stackView; +} + +- (UIView *)apexRegard { + if (!_apexRegard) { + _apexRegard = [[UIView alloc] init]; + _apexRegard.backgroundColor = [UIColor clearColor]; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(apexRegardRecognition)]; + [_apexRegard addGestureRecognizer:tap]; + } + return _apexRegard; +} + +- (UIView *)utensilRegard { + if (!_utensilRegard) { + _utensilRegard = [[UIView alloc] init]; + _utensilRegard.backgroundColor = [UIColor whiteColor]; + CAShapeLayer * layer = [CAShapeLayer layer]; + UIBezierPath * path = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, KScreenWidth, 44) byRoundingCorners:UIRectCornerTopLeft | UIRectCornerTopRight cornerRadii:CGSizeMake(12, 12)]; + layer.path = path.CGPath; + _utensilRegard.layer.mask = layer; + } + return _utensilRegard; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.textAlignment = NSTextAlignmentCenter; + _titleLabel.textColor = [UIColor blackColor]; + _titleLabel.font = [UIFont systemFontOfSize:17]; + } + return _titleLabel; +} + +- (UIButton *)backButton { + if (!_backButton) { + _backButton = [[UIButton alloc] init]; + [_backButton setImage:[UIImage imageNamed:@"yumi_same_title_back"] forState:UIControlStateNormal]; + [_backButton addTarget:self action:@selector(didTicktackConcludeBtuton:) forControlEvents:UIControlEventTouchUpInside]; + } + return _backButton; +} + +- (YUMITissueRegardGovernancer *)webVewC { + if (_webVewC == nil) { + _webVewC = [[YUMITissueRegardGovernancer alloc] init]; + _webVewC.view.backgroundColor = [UIColor clearColor]; + __weak typeof(self) weakSelf = self; + _webVewC.urlLoadCompleted = ^(BOOL result, NSError *error) { + weakSelf.titleLabel.text = weakSelf.webVewC.navigationItem.title; + }; + } + return _webVewC; +} + + +@end diff --git a/YuMi/Modules/YMRoom/View/CandyTree/View/YUMIConfectioneryRateAccommodatedRegard.h b/YuMi/Modules/YMRoom/View/CandyTree/View/YUMIConfectioneryRateAccommodatedRegard.h new file mode 100644 index 00000000..8fbf475a --- /dev/null +++ b/YuMi/Modules/YMRoom/View/CandyTree/View/YUMIConfectioneryRateAccommodatedRegard.h @@ -0,0 +1,24 @@ +// +// YUMIConfectioneryRateAccommodatedRegard.h +// YuMi +// +// Created by YuMi on 2021/12/10. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + + +@protocol FBCCandyRankContainerRegardRepresendtation + +-(void)didTicktackIntelligenceShank:(NSInteger)uid; + +@end + + +@interface YUMIConfectioneryRateAccommodatedRegard : UIView +@property (nonatomic,weak) id delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/CandyTree/View/YUMIConfectioneryRateAccommodatedRegard.m b/YuMi/Modules/YMRoom/View/CandyTree/View/YUMIConfectioneryRateAccommodatedRegard.m new file mode 100644 index 00000000..e7bc5360 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/CandyTree/View/YUMIConfectioneryRateAccommodatedRegard.m @@ -0,0 +1,172 @@ +// +// YUMIConfectioneryRateAccommodatedRegard.m +// YuMi +// +// Created by YuMi on 2021/12/10. +// + +#import "YUMIConfectioneryRateAccommodatedRegard.h" +#import +#import +#import +#import "ThemeColor+Room.h" +#import "YUMIMacroUitls.h" +#import "UIButton+EnlargeTouchArea.h" +#import "UIImage+Utils.h" +#import "YUMIConfectioneryTimberRateRegard.h" +@interface YUMIConfectioneryRateAccommodatedRegard () +@property (nonatomic, strong) NSArray *titles; +@property (nonatomic, strong) JXCategoryTitleView *titleView; +@property (nonatomic, strong) JXCategoryListContainerView *contentView; +@property (nonatomic,strong) UIButton *refreshBtuton; +@property (nonatomic,strong) YUMIConfectioneryTimberRateRegard *todayStatementRegard; +@property (nonatomic,strong) YUMIConfectioneryTimberRateRegard *yesterdayStatementRegard; +@end + +@implementation YUMIConfectioneryRateAccommodatedRegard +- (instancetype)initWithFrame:(CGRect)frame +{ + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + UIImage *image = [UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[UIColorFromRGB(0x83BBFF),UIColorFromRGB(0x927DFF)] gradientType:GradientGenreTopToBottom imgSize:CGSizeMake(KScreenWidth, kGetScaleWidth(390))]; + self.backgroundColor = [UIColor colorWithPatternImage:image]; + [self addSubview:self.titleView]; + [self addSubview:self.self.refreshBtuton]; + [self addSubview:self.contentView]; + + CAShapeLayer * layer = [CAShapeLayer layer]; + UIBezierPath * path = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, KScreenWidth,kGetScaleWidth(390)) byRoundingCorners:UIRectCornerTopLeft | UIRectCornerTopRight cornerRadii:CGSizeMake(kGetScaleWidth(20), kGetScaleWidth(20))]; + layer.path = path.CGPath; + self.layer.mask = layer; +} + +- (void)initChildLyRestrictions { + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(KScreenWidth); + make.height.mas_equalTo(kGetScaleWidth(390)); + }]; + + [self.titleView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self); + make.height.mas_equalTo(kGetScaleWidth(45)); + }]; + + [self.contentView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.mas_equalTo(self); + make.top.mas_equalTo(self.titleView.mas_bottom); + }]; + + [self.refreshBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(-kGetScaleWidth(23)); + make.centerY.mas_equalTo(self.titleView.mas_centerY); + make.width.height.mas_equalTo(kGetScaleWidth(15)); + }]; +} + +#pragma mark - JXCategoryViewDelegate +- (NSInteger)numberOfListsInlistContainerView:(JXCategoryListContainerView *)listContainerView { + return self.titles.count; +} + +- (id)listContainerView:(JXCategoryListContainerView *)listContainerView initListForIndex:(NSInteger)index { + if (index == 0) { + return self.todayStatementRegard; + } + return self.yesterdayStatementRegard; +} + +#pragma mark - Event Response +- (void)renovtowardseBtutonPerformance:(UIButton *)sender { + self.todayStatementRegard.type = CandyTreeRecordGenre_Today; + self.yesterdayStatementRegard.type = CandyTreeRecordGenre_Yesterday; +} + +#pragma mark - Getters And Setters +- (JXCategoryTitleView *)titleView { + if (!_titleView) { + _titleView = [[JXCategoryTitleView alloc] init]; + _titleView.delegate = self; + _titleView.titles = self.titles; + _titleView.titleColor = [UIColor colorWithWhite:1 alpha:0.5]; + _titleView.titleSelectedColor = [UIColor whiteColor]; + _titleView.titleFont = [UIFont systemFontOfSize:16 weight:UIFontWeightSemibold]; + _titleView.titleSelectedFont = [UIFont systemFontOfSize:16 weight:UIFontWeightSemibold]; + _titleView.titleLabelAnchorPointStyle = JXCategoryTitleLabelAnchorPointStyleCenter; + _titleView.contentScrollViewClickTransitionAnimationEnabled = NO; + _titleView.defaultSelectedIndex = 0; + _titleView.listContainer = self.contentView; + + JXCategoryIndicatorLineView *burlywoodRegard = [[JXCategoryIndicatorLineView alloc] init]; + burlywoodRegard.indicatorColor = [UIColor whiteColor]; + burlywoodRegard.indicatorWidth = kGetScaleWidth(13); + burlywoodRegard.indicatorHeight = kGetScaleWidth(4); + burlywoodRegard.verticalMargin = kGetScaleWidth(5); + burlywoodRegard.indicatorCornerRadius = kGetScaleWidth(2); + _titleView.indicators = @[burlywoodRegard]; + } + return _titleView; +} + +- (JXCategoryListContainerView *)contentView { + if (!_contentView) { + _contentView = [[JXCategoryListContainerView alloc] initWithType:JXCategoryListContainerType_ScrollView delegate:self]; + _contentView.defaultSelectedIndex = 0; + } + return _contentView; +} + +- (NSArray *)titles { + return @[YMLocalizedString(@"YUMI_Candy_Rank_Container_View_0"), YMLocalizedString(@"YUMI_Candy_Rank_Container_View_1")]; +} + +- (UIButton *)refreshBtuton { + if (!_refreshBtuton) { + _refreshBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_refreshBtuton setImage:[UIImage imageNamed:@"yumi_scope_candy_tree_record_refresh"] forState:UIControlStateNormal]; + [_refreshBtuton setImage:[UIImage imageNamed:@"yumi_scope_candy_tree_record_refresh"] forState:UIControlStateSelected]; + [_refreshBtuton addTarget:self action:@selector(renovtowardseBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + [_refreshBtuton setEnlargeEdgeAboutApex:10 right:10 bottom:10 left:10]; + } + return _refreshBtuton; +} + +- (YUMIConfectioneryTimberRateRegard *)todayStatementRegard { + if (!_todayStatementRegard) { + _todayStatementRegard = [[YUMIConfectioneryTimberRateRegard alloc] init]; + _todayStatementRegard.type = CandyTreeRecordGenre_Today; + @kWeakify(self) + _todayStatementRegard.didTicktackHandle = ^(NSInteger uid) { + @kStrongify(self) + if(self.delegate && [self.delegate respondsToSelector:@selector(didTicktackIntelligenceShank:)]){ + [self.delegate didTicktackIntelligenceShank:uid]; + } + }; + } + return _todayStatementRegard; +} + +- (YUMIConfectioneryTimberRateRegard *)yesterdayStatementRegard { + if (!_yesterdayStatementRegard) { + _yesterdayStatementRegard = [[YUMIConfectioneryTimberRateRegard alloc] init]; + _yesterdayStatementRegard.type = CandyTreeRecordGenre_Yesterday; + @kWeakify(self) + _yesterdayStatementRegard.didTicktackHandle = ^(NSInteger uid) { + @kStrongify(self) + if(self.delegate && [self.delegate respondsToSelector:@selector(didTicktackIntelligenceShank:)]){ + [self.delegate didTicktackIntelligenceShank:uid]; + } + }; + } + return _yesterdayStatementRegard; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/CandyTree/View/YUMIConfectioneryTimberFurthaerRegard.h b/YuMi/Modules/YMRoom/View/CandyTree/View/YUMIConfectioneryTimberFurthaerRegard.h new file mode 100644 index 00000000..a2c78b0a --- /dev/null +++ b/YuMi/Modules/YMRoom/View/CandyTree/View/YUMIConfectioneryTimberFurthaerRegard.h @@ -0,0 +1,17 @@ +// +// YUMIConfectioneryTimberFurthaerRegard.h +// YuMi +// +// Created by YuMi on 2021/12/10. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIConfectioneryTimberFurthaerRegard : UIView +@property (nonatomic,assign) NSInteger sendMessageSwitchLevel; +@property (nonatomic, assign) BOOL showCommunicationSwop; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/CandyTree/View/YUMIConfectioneryTimberFurthaerRegard.m b/YuMi/Modules/YMRoom/View/CandyTree/View/YUMIConfectioneryTimberFurthaerRegard.m new file mode 100644 index 00000000..d2c7bfbf --- /dev/null +++ b/YuMi/Modules/YMRoom/View/CandyTree/View/YUMIConfectioneryTimberFurthaerRegard.m @@ -0,0 +1,169 @@ +// +// YUMIConfectioneryTimberFurthaerRegard.m +// YuMi +// +// Created by YuMi on 2021/12/10. +// + +#import "YUMIConfectioneryTimberFurthaerRegard.h" +#import +#import "YUMIMacroUitls.h" +#import "DJDKMIMOMColor.h" +#import "YUMIHtmlUrl.h" +#import "MKJPopup.h" +#import "XNDJTBWGLoadingTool.h" +#import "NSArray+Safe.h" +#import "YUMIChamberHalfTissueRegard.h" +#import "YUMIConfectioneryTimberFurthaerPreadominantElement.h" + +NSString * const kCandyTreeHideMessage = @"kCandyTreeHideMessage"; + +@interface YUMIConfectioneryTimberFurthaerRegard () +@property (nonatomic,strong) UILabel *titleLabel; +@property (nonatomic,strong) UITableView *tableView; +@property (nonatomic,strong) NSMutableArray *datasource; +@end + +@implementation YUMIConfectioneryTimberFurthaerRegard + +- (instancetype)initWithFrame:(CGRect)frame +{ + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor whiteColor]; + [self addSubview:self.titleLabel]; + [self addSubview:self.tableView]; + CAShapeLayer * layer = [CAShapeLayer layer]; + UIBezierPath * path = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, KScreenWidth, 256+44) byRoundingCorners:UIRectCornerTopLeft | UIRectCornerTopRight cornerRadii:CGSizeMake(12, 12)]; + layer.path = path.CGPath; + self.layer.mask = layer; +} + +- (void)initChildLyRestrictions { + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(KScreenWidth); + make.height.mas_equalTo(256+44); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self); + make.height.mas_equalTo(44); + }]; + + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.mas_equalTo(self); + make.top.mas_equalTo(self.titleLabel.mas_bottom); + }]; +} + +#pragma mark - UITableViewDelegate And UITableViewDataSource +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + return 50; +} + +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.datasource.count; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + if (indexPath.row != self.datasource.count - 1) { + UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([UITableViewCell class])]; + if (cell == nil) { + cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([UITableViewCell class])]; + } + cell.backgroundColor = [UIColor whiteColor]; + cell.textLabel.text = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + cell.textLabel.textColor = [DJDKMIMOMColor precautiousChampionPrettify]; + cell.textLabel.font = [UIFont systemFontOfSize:15]; + return cell; + } + YUMIConfectioneryTimberFurthaerPreadominantElement *cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIConfectioneryTimberFurthaerPreadominantElement class])]; + cell.title = self.datasource[indexPath.row]; + cell.delegate = self; + NSString *showSwitch = [[NSUserDefaults standardUserDefaults] objectForKey:kCandyTreeHideMessage]; + cell.isExhibit = !showSwitch.length; + cell.isSwopCapacitate = self.showCommunicationSwop; + cell.sendMessageSwitchLevel = self.sendMessageSwitchLevel; + return cell; +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + [tableView deselectRowAtIndexPath:indexPath animated:YES]; + [MKJPopup dismiss]; + switch (indexPath.row) { + + case 0: + { + YUMIChamberHalfTissueRegard * webView = [[YUMIChamberHalfTissueRegard alloc] init]; + webView.url = URLWithType(kCandyTreeRecordURL); + [MKJPopup popupRegard:webView style:MKJPopupStyleActionSheet]; + } + break; + case 1: + { + YUMIChamberHalfTissueRegard * webView = [[YUMIChamberHalfTissueRegard alloc] init]; + webView.url = URLWithType(kCandyTreeRuleURL); + [MKJPopup popupRegard:webView style:MKJPopupStyleActionSheet]; + } + break; + + default: + break; + } +} + +#pragma mark - FBCCandyTreeFurthaerRuleElementRepresendtation +- (void)yUMIConfectioneryTimberFurthaerPreadominantElement:(YUMIConfectioneryTimberFurthaerPreadominantElement *)cell switchChange:(UISwitch *)change { + if (change.on) { + [[NSUserDefaults standardUserDefaults] setObject:nil forKey:kCandyTreeHideMessage]; + } else { + [[NSUserDefaults standardUserDefaults] setObject:@"1" forKey:kCandyTreeHideMessage]; + } + [[NSUserDefaults standardUserDefaults] synchronize]; +} + +#pragma mark - Getters And Setters +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.text = YMLocalizedString(@"YUMI_Candy_Tree_More_View_0"); + _titleLabel.font = [UIFont fontWithName:@"PingFang-SC-Medium" size:18]; + _titleLabel.textAlignment = NSTextAlignmentCenter; + _titleLabel.textColor = [DJDKMIMOMColor precautiousChampionPrettify]; + } + return _titleLabel; +} +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.tableFooterView = [UIView new]; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.backgroundColor = [UIColor clearColor]; + if (@available(iOS 11.0, *)) { + _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + [_tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:NSStringFromClass([UITableViewCell class])]; + [_tableView registerClass:[YUMIConfectioneryTimberFurthaerPreadominantElement class] forCellReuseIdentifier:NSStringFromClass([YUMIConfectioneryTimberFurthaerPreadominantElement class])]; + } + return _tableView; +} + +- (NSMutableArray *)datasource { + if (!_datasource) { + _datasource = [NSMutableArray arrayWithObjects:YMLocalizedString(@"YUMI_Candy_Tree_More_View_2"), YMLocalizedString(@"YUMI_Candy_Tree_More_View_3"),YMLocalizedString(@"YUMI_Candy_Tree_More_View_4") ,nil]; + } + return _datasource; +} + + +@end diff --git a/YuMi/Modules/YMRoom/View/CandyTree/View/YUMIConfectioneryTimberInsufficientBalanceRegard.h b/YuMi/Modules/YMRoom/View/CandyTree/View/YUMIConfectioneryTimberInsufficientBalanceRegard.h new file mode 100644 index 00000000..36de0098 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/CandyTree/View/YUMIConfectioneryTimberInsufficientBalanceRegard.h @@ -0,0 +1,23 @@ +// +// YUMIConfectioneryTimberInsufficientBalanceRegard.h +// YuMi +// +// Created by YuMi on 2023/3/23. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol FBCCandyTreeInsufficientBalanceRegardRepresendtation + +-(void)payBalancePerformance; + +@end + + +@interface YUMIConfectioneryTimberInsufficientBalanceRegard : UIView +@property (nonatomic,weak) id delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/CandyTree/View/YUMIConfectioneryTimberInsufficientBalanceRegard.m b/YuMi/Modules/YMRoom/View/CandyTree/View/YUMIConfectioneryTimberInsufficientBalanceRegard.m new file mode 100644 index 00000000..12d09268 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/CandyTree/View/YUMIConfectioneryTimberInsufficientBalanceRegard.m @@ -0,0 +1,142 @@ +// +// YUMIConfectioneryTimberInsufficientBalanceRegard.m +// YuMi +// +// Created by YuMi on 2023/3/23. +// + +#import "YUMIConfectioneryTimberInsufficientBalanceRegard.h" +#import +#import "YUMIMacroUitls.h" +#import "UIView+Corner.h" +#import "DJDKMIMOMColor.h" +#import "UIImage+Utils.h" + +@interface YUMIConfectioneryTimberInsufficientBalanceRegard() +@property (nonatomic,strong) UIButton *encourageRegard; +@property (nonatomic,strong) UIView *backgroundRegard; +@property (nonatomic,strong) UILabel *titleView; +@property (nonatomic,strong) UIImageView *figureRegard; +@property (nonatomic,strong) UILabel *contentView; +@property (nonatomic,strong) UIButton *payBtuton; +@end +@implementation YUMIConfectioneryTimberInsufficientBalanceRegard + +-(instancetype)initWithFrame:(CGRect)frame{ + self = [super initWithFrame:frame]; + if(self){ + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor colorWithWhite:0 alpha:0.6]; + [self addSubview:self.encourageRegard]; + [self addSubview:self.backgroundRegard]; + [self.backgroundRegard addSubview:self.titleView]; + [self.backgroundRegard addSubview:self.figureRegard]; + [self.backgroundRegard addSubview:self.contentView]; + [self.backgroundRegard addSubview:self.payBtuton]; +} +- (void)initChildLyRestrictions { + [self.encourageRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.equalTo(self); + }]; + [self.backgroundRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.center.equalTo(self); + make.width.mas_equalTo(kGetScaleWidth(306)); + make.height.mas_equalTo(kGetScaleWidth(202)); + }]; + [self.titleView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(kGetScaleWidth(20)); + make.height.mas_equalTo(kGetScaleWidth(16)); + make.centerX.equalTo(self.backgroundRegard); + }]; + [self.figureRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(kGetScaleWidth(52)); + make.width.height.mas_equalTo(kGetScaleWidth(43)); + make.centerX.equalTo(self.backgroundRegard); + }]; + + [self.contentView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(kGetScaleWidth(108)); + make.centerX.equalTo(self.backgroundRegard); + make.height.mas_equalTo(kGetScaleWidth(15)); + }]; + [self.payBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(kGetScaleWidth(142)); + make.width.mas_equalTo(kGetScaleWidth(137)); + make.height.mas_equalTo(kGetScaleWidth(39)); + make.centerX.equalTo(self.backgroundRegard); + }]; + +} +-(void)backAction{ + [self removeFromSuperview]; +} +-(void)payPerformance{ + [self removeFromSuperview]; + if(self.delegate && [self.delegate respondsToSelector:@selector(payBalancePerformance)]){ + [self.delegate payBalancePerformance]; + } +} +#pragma mark -懒加载 +- (UIView *)backgroundRegard{ + if (!_backgroundRegard){ + _backgroundRegard = [UIView new]; + _backgroundRegard.backgroundColor = [UIColor whiteColor]; + [_backgroundRegard setMonopolizeAboutContraryApexMonopolize:kGetScaleWidth(26) rightTopCorner:kGetScaleWidth(26) bottomLeftCorner:kGetScaleWidth(26) bottomRightCorner:kGetScaleWidth(26) size:CGSizeMake(kGetScaleWidth(308), kGetScaleWidth(202))]; + } + return _backgroundRegard; +} + +- (UILabel *)titleView { + if (!_titleView) { + _titleView = [[UILabel alloc] init]; + _titleView.font = [UIFont systemFontOfSize:16 weight:UIFontWeightSemibold]; + _titleView.textColor = [DJDKMIMOMColor precautiousChampionPrettify]; + _titleView.text = YMLocalizedString(@"YUMI_Candy_Tree_Insufficient_Balance_View_0"); + } + return _titleView; +} + +- (UIImageView *)figureRegard{ + if (!_figureRegard){ + _figureRegard = [UIImageView new]; + _figureRegard.image = [UIImage imageNamed:@"yumi_scope_candytree_prompt"]; + } + return _figureRegard; +} +- (UILabel *)contentView{ + if (!_contentView){ + _contentView = [[UILabel alloc] init]; + _contentView.font = [UIFont systemFontOfSize:14 weight:UIFontWeightMedium]; + _contentView.textColor = [DJDKMIMOMColor precautiousChampionPrettify]; + _contentView.text = YMLocalizedString(@"YUMI_Candy_Tree_Insufficient_Balance_View_1"); + } + return _contentView; +} +-(UIButton *)payBtuton{ + if (!_payBtuton){ + _payBtuton = [UIButton new]; + UIImage *image = [UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify],[DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(kGetScaleWidth(137), kGetScaleWidth(39))]; + [_payBtuton setBackgroundImage:image forState:UIControlStateNormal]; + _payBtuton.layer.cornerRadius = kGetScaleWidth(39)/2; + _payBtuton.layer.masksToBounds = YES; + [_payBtuton setTitle:YMLocalizedString(@"YUMI_Candy_Tree_Insufficient_Balance_View_2") forState:UIControlStateNormal]; + [_payBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + [_payBtuton addTarget:self action:@selector(payPerformance) forControlEvents:UIControlEventTouchUpInside]; + } + return _payBtuton; +} +- (UIButton *)encourageRegard{ + if (!_encourageRegard){ + _encourageRegard = [UIButton new]; + [_encourageRegard addTarget:self action:@selector(backAction) forControlEvents:UIControlEventTouchUpInside]; + } + return _encourageRegard; +} +@end diff --git a/YuMi/Modules/YMRoom/View/CandyTree/View/YUMIConfectioneryTimberPresentRegard.h b/YuMi/Modules/YMRoom/View/CandyTree/View/YUMIConfectioneryTimberPresentRegard.h new file mode 100644 index 00000000..ba838073 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/CandyTree/View/YUMIConfectioneryTimberPresentRegard.h @@ -0,0 +1,16 @@ +// +// YUMIConfectioneryTimberPresentRegard.h +// YuMi +// +// Created by YuMi on 2021/12/10. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class ConfectioneryTimberPresentAbstractMatrix, YUMIConfectioneryTimberBrightnessMatrix; +@interface YUMIConfectioneryTimberPresentRegard : UIView +@property (nonatomic,strong) ConfectioneryTimberPresentAbstractMatrix *giftInfo; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/CandyTree/View/YUMIConfectioneryTimberPresentRegard.m b/YuMi/Modules/YMRoom/View/CandyTree/View/YUMIConfectioneryTimberPresentRegard.m new file mode 100644 index 00000000..41a0e8fc --- /dev/null +++ b/YuMi/Modules/YMRoom/View/CandyTree/View/YUMIConfectioneryTimberPresentRegard.m @@ -0,0 +1,87 @@ +// +// YUMIConfectioneryTimberPresentRegard.m +// YuMi +// +// Created by YuMi on 2021/12/10. +// + +#import "YUMIConfectioneryTimberPresentRegard.h" +#import +#import +#import "ConfectioneryTimberConsequentMatrix.h" +#import "YUMIConfectioneryTimberBrightnessMatrix.h" +#import "DJDKMIMOMColor.h" +#import "UIImage+Utils.h" + +@interface YUMIConfectioneryTimberPresentRegard () +@property (nonatomic,strong) UIImageView *encourageIndicateRegard; +@property (nonatomic,strong) UILabel *titleLabel; +@property (nonatomic,copy) void(^FinishBlock)(BOOL finish); +@end + +@implementation YUMIConfectioneryTimberPresentRegard + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.encourageIndicateRegard]; + [self addSubview:self.titleLabel]; +} + +- (void)initChildLyRestrictions { + [self.encourageIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self); + make.height.mas_equalTo(18); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.encourageIndicateRegard.mas_left).offset(6); + make.right.mas_equalTo(self.encourageIndicateRegard.mas_right).offset(-6); + make.centerY.mas_equalTo(self.encourageIndicateRegard); + }]; +} +#pragma mark - Getters And Setters +- (void)setGiftInfo:(ConfectioneryTimberPresentAbstractMatrix *)giftInfo { + _giftInfo = giftInfo; + if (_giftInfo) { + UIImage *backImage = [UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[UIColorFromRGB(0xF7D377),UIColorFromRGB(0xEE8833)] gradientType:GradientGenreTopToBottom imgSize:CGSizeMake(68, 18)]; + self.encourageIndicateRegard.image = backImage; + if (_giftInfo.rewardName.length > 7) { + _giftInfo.rewardName = [_giftInfo.rewardName substringToIndex:7]; + } + NSString * giftTitle = [NSString stringWithFormat:@"%@ x %d", _giftInfo.rewardName, _giftInfo.num]; + self.titleLabel.text = giftTitle; + } + [self layoutIfNeeded]; +} + +- (UIImageView *)encourageIndicateRegard { + if (!_encourageIndicateRegard) { + _encourageIndicateRegard = [[UIImageView alloc] init]; + _encourageIndicateRegard.userInteractionEnabled = YES; + _encourageIndicateRegard.layer.cornerRadius = 9; + _encourageIndicateRegard.layer.masksToBounds = YES; + _encourageIndicateRegard.layer.borderWidth = 1; + _encourageIndicateRegard.layer.borderColor = UIColorFromRGB(0xFFF0CE).CGColor; + } + return _encourageIndicateRegard; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.font = [UIFont systemFontOfSize:10 weight:UIFontWeightRegular]; + _titleLabel.textAlignment = NSTextAlignmentCenter; + _titleLabel.textColor = [UIColor whiteColor]; + } + return _titleLabel; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/CandyTree/View/YUMIConfectioneryTimberRateRegard.h b/YuMi/Modules/YMRoom/View/CandyTree/View/YUMIConfectioneryTimberRateRegard.h new file mode 100644 index 00000000..c6a8dfa2 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/CandyTree/View/YUMIConfectioneryTimberRateRegard.h @@ -0,0 +1,28 @@ +// +// YUMIConfectioneryTimberRateRegard.h +// YuMi +// +// Created by YuMi on 2021/12/10. +// + +#import +#import +NS_ASSUME_NONNULL_BEGIN + + +typedef void(^CandyTreeRankViewDidClickHandle)(NSInteger uid); + + +typedef NS_ENUM(NSInteger, CandyTreeRecordGenre) { + + CandyTreeRecordGenre_Today = 1, + + CandyTreeRecordGenre_Yesterday = 2, +}; + +@interface YUMIConfectioneryTimberRateRegard : UIView +@property (nonatomic,assign) CandyTreeRecordGenre type; +@property (nonatomic,copy) CandyTreeRankViewDidClickHandle didTicktackHandle; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/CandyTree/View/YUMIConfectioneryTimberRateRegard.m b/YuMi/Modules/YMRoom/View/CandyTree/View/YUMIConfectioneryTimberRateRegard.m new file mode 100644 index 00000000..dc8fe207 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/CandyTree/View/YUMIConfectioneryTimberRateRegard.m @@ -0,0 +1,190 @@ +// +// YUMIConfectioneryTimberRateRegard.m +// YuMi +// +// Created by YuMi on 2021/12/10. +// + +#import "YUMIConfectioneryTimberRateRegard.h" +#import +#import +#import "DJDKMIMOMColor.h" +#import "XNDJTBWGLoadingTool.h" +#import "Api+CandyTree.h" +#import "YUMIMacroUitls.h" +#import "NSArray+Safe.h" +#import "ConfectioneryTimberReflectionMatrix.h" +#import "YUMIConfectioneryTimberRateTabulationRegardElement.h" +#import "YUMIConfectioneryTimberDispossessableRegardElement.h" +#import "YUMIManeConsumerAbstractRegardGovernancer.h" +#import "XCCurrentVCStackExecutive.h" +@interface YUMIConfectioneryTimberRateRegard () +@property (nonatomic,strong) UITableView *tableView; +@property (nonatomic,strong) NSMutableArray *datasource; +@property (nonatomic,assign) int page; +@property (nonatomic,assign) BOOL hasNoFurthaerAtoloudspeaker; +@end + +@implementation YUMIConfectioneryTimberRateRegard + +- (instancetype)initWithFrame:(CGRect)frame +{ + self = [super initWithFrame:frame]; + if (self) { + [self initIntelligencerGrantedTerminalerRrfresh]; + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} +#pragma mark - Public Method +- (void)rechamberStrangeTowardsoloudspeaker { + [self.tableView.mj_header beginRefreshing]; + [self intelligenceerRenovtowardseh]; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.tableView]; +} + +- (void)initChildLyRestrictions { + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self); + }]; +} + +- (void)initIntelligencerGrantedTerminalerRrfresh { + MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(intelligenceerRenovtowardseh)]; + header.stateLabel.font = [UIFont systemFontOfSize:10.0]; + header.lastUpdatedTimeLabel.font = [UIFont systemFontOfSize:10.0]; + header.stateLabel.textColor = [UIColor colorWithWhite:1 alpha:0.7]; + header.lastUpdatedTimeLabel.textColor = [UIColor colorWithWhite:1 alpha:0.7]; + self.tableView.mj_header = header; + + MJRefreshBackNormalFooter *footer = [MJRefreshBackNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(footerRenovtowardseh)]; + footer.stateLabel.textColor = [UIColor colorWithWhite:1 alpha:0.7]; + footer.stateLabel.font = [UIFont systemFontOfSize:10.0]; + self.tableView.mj_footer = footer; +} + +#pragma mark - 刷新的方法 +- (void)intelligenceerRenovtowardseh { + self.page = 1; + NSString * page = [NSString stringWithFormat:@"%d", self.page]; + NSString * datetype = [NSString stringWithFormat:@"%ld", self.type]; + [Api confectioneryTimberRtowardseSttowardsementimplementtion:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + NSArray * array = [ConfectioneryTimberReflectionMatrix mtowardsrixsAboutGarment:data.data]; + [self acquireCandtyTimberRtowardseSttowardsementAccomplishment:array state:0]; + } else { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:msg]; + } + } page:page pageSize:@"20" type:datetype]; +} + +- (void)footerRenovtowardseh { + if (self.hasNoFurthaerAtoloudspeaker) { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:YMLocalizedString(@"YUMI_Candy_Tree_Rank_View_0")]; + return; + } + self.page++; + NSString * page = [NSString stringWithFormat:@"%d", self.page]; + NSString * datetype = [NSString stringWithFormat:@"%ld", self.type]; + [Api confectioneryTimberRtowardseSttowardsementimplementtion:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + NSArray * array = [ConfectioneryTimberReflectionMatrix mtowardsrixsAboutGarment:data.data]; + [self acquireCandtyTimberRtowardseSttowardsementAccomplishment:array state:1]; + } else { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:msg]; + [self.tableView.mj_header endRefreshing]; + [self.tableView.mj_footer endRefreshing]; + } + } page:page pageSize:@"20" type:datetype]; +} + +- (void)acquireCandtyTimberRtowardseSttowardsementAccomplishment:(NSArray *)array state:(BOOL)state { + if (state == 0) { + [self.datasource removeAllObjects]; + [self.tableView.mj_header endRefreshing]; + } else { + [self.tableView.mj_footer endRefreshing]; + } + if (array.count > 0) { + self.hasNoFurthaerAtoloudspeaker = NO; + [self.datasource addObjectsFromArray:array]; + } else { + self.hasNoFurthaerAtoloudspeaker = YES; + [self.tableView.mj_footer endRefreshingWithNoMoreData]; + } + [self.tableView reloadData]; +} + +#pragma mark - UITableViewDelegate And UITableViewDataSource +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.datasource.count > 0 ? self.datasource.count : 1; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + return self.datasource.count > 0 ? kGetScaleWidth(75) : kGetScaleWidth(300); +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + if (self.datasource.count <= 0) { + YUMIConfectioneryTimberDispossessableRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIConfectioneryTimberDispossessableRegardElement class])]; + if (cell == nil) { + cell = [[YUMIConfectioneryTimberDispossessableRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIConfectioneryTimberDispossessableRegardElement class])]; + } + return cell; + } + YUMIConfectioneryTimberRateTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIConfectioneryTimberRateTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIConfectioneryTimberRateTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIConfectioneryTimberRateTabulationRegardElement class])]; + } + cell.chamberRateMatrix = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + return cell; +} +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{if (self.datasource.count <= 0) {return;} + ConfectioneryTimberReflectionMatrix *model = self.datasource[indexPath.row]; + if(self.didTicktackHandle){ + self.didTicktackHandle(model.uid); + } +} +#pragma mark - JXCategoryListContentViewDelegate +- (UIView *)listView { + return self; +} + +#pragma mark - Getters And Setters +- (void)setType:(CandyTreeRecordGenre)type { + _type = type; + [self.tableView.mj_header beginRefreshing]; + [self intelligenceerRenovtowardseh]; +} + +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.tableFooterView = [UIView new]; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.backgroundColor = [UIColor clearColor]; + if (@available(iOS 11.0, *)) { + _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + [_tableView registerClass:[YUMIConfectioneryTimberRateTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIConfectioneryTimberRateTabulationRegardElement class])]; + [_tableView registerClass:[YUMIConfectioneryTimberDispossessableRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIConfectioneryTimberDispossessableRegardElement class])]; + } + return _tableView; +} + +- (NSMutableArray *)datasource { + if (!_datasource) { + _datasource= [NSMutableArray array]; + } + return _datasource; +} + + +@end diff --git a/YuMi/Modules/YMRoom/View/CandyTree/View/YUMIConfectioneryTimberRegardGovernancer.h b/YuMi/Modules/YMRoom/View/CandyTree/View/YUMIConfectioneryTimberRegardGovernancer.h new file mode 100644 index 00000000..4cfbe777 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/CandyTree/View/YUMIConfectioneryTimberRegardGovernancer.h @@ -0,0 +1,16 @@ +// +// YUMIConfectioneryTimberRegardGovernancer.h +// YuMi +// +// Created by YuMi on 2021/12/9. +// + +#import "MvpRegardGovernancer.h" +#import "ChamberHostRepresendtation.h" +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIConfectioneryTimberRegardGovernancer : MvpRegardGovernancer +- (instancetype)initWithDelegate:(id)delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/CandyTree/View/YUMIConfectioneryTimberRegardGovernancer.m b/YuMi/Modules/YMRoom/View/CandyTree/View/YUMIConfectioneryTimberRegardGovernancer.m new file mode 100644 index 00000000..aa0d4afb --- /dev/null +++ b/YuMi/Modules/YMRoom/View/CandyTree/View/YUMIConfectioneryTimberRegardGovernancer.m @@ -0,0 +1,644 @@ +// +// YUMIConfectioneryTimberRegardGovernancer.m +// YuMi +// +// Created by YuMi on 2021/12/9. +// + +#import "YUMIConfectioneryTimberRegardGovernancer.h" +#import +#import +#import +#import "YUMIMacroUitls.h" +#import "DJDKMIMOMColor.h" +#import "MKJPopup.h" +#import "YUMIHtmlUrl.h" +#import "NSArray+Safe.h" +#import "YYUtility.h" +#import "ChamberAbstractMatrix.h" +#import "AttachmentMatrix.h" +#import "ConfectioneryTimberAbstractMatrix.h" +#import "ConfectioneryTimberConsequentMatrix.h" +#import "ConsumerAbstractMatrix.h" +#import "YUMIChamberHalfTissueRegard.h" +#import "YUMIConfectioneryTimberFurthaerRegard.h" +#import "YUMIConfectioneryRateAccommodatedRegard.h" +#import "YUMIConfectioneryTimberPresentRegard.h" +#import "YUMIManeConsumerAbstractRegardGovernancer.h" +#import "XCCurrentVCStackExecutive.h" +#import "YUMIConfectioneryTimberInsufficientBalanceRegard.h" +#import "YUMITissueRegardGovernancer.h" +#import "YUMIIAPReindictRegardGovernancer.h" +#import "YUMIConfectioneryTimberExternalizer.h" +#import "FBCCandyTreeCeremony.h" +#define KitemHeight (20 + 5) + +UIKIT_EXTERN NSString * const kRoomReceivedCandyNotificationKey; +@interface YUMIConfectioneryTimberRegardGovernancer () +@property (nonatomic,strong) UIView *apexBeatRegard; +@property (nonatomic,strong) UIView *extremeBeatRegard; +@property (nonatomic,strong) UIView * contentView; + +@property (nonatomic,strong) UIImageView * encourageRegard; +@property (nonatomic,strong) UIStackView *rateHierarchyRegard; +@property (nonatomic,strong) UIImageView * rateIndicateRegard; + +@property (nonatomic,strong) UIImageView *furthaerIndicateRegard; + + +@property (strong, nonatomic) SVGAParser *anatomiser; +@property (nonatomic,strong) UIImageView *confectioneryTimberRegard; +@property (nonatomic,strong) SVGAImageView *confectioneryTimberLightRegard; +@property (nonatomic,strong) SVGAImageView *confectioneryTimberUnfoildRegard; +@property (nonatomic,strong) SVGAImageView *confectioneryTimberTransRegard; + +@property (nonatomic,strong) UIImageView *extractEncourageIndicateRegard; + +@property (nonatomic,strong) UIButton *accelerateBtuton; +@property (nonatomic,strong) UITextField *essayAccurated; +@property (nonatomic,strong) UIButton *subtractBtuton; +@property (nonatomic,strong) UIButton *extractBtuton; +@property (nonatomic,strong) UIView * animationView; +@property (nonatomic,assign) NSInteger digitalConfectionery; +@property (nonatomic,strong) ConfectioneryTimberAbstractMatrix *confectioneryAbstract; +@property (nonatomic,weak) idhostRepresedtation; +@property (nonatomic,assign) BOOL isExtracting; +@end + +@implementation YUMIConfectioneryTimberRegardGovernancer + +- (void)dealloc { + [[NIMSDK sharedSDK].systemNotificationManager removeDelegate:self]; + [[NSNotificationCenter defaultCenter]postNotificationName:kRoomReceivedCandyNotificationKey object:nil userInfo:@{@"isHidden":@(YES)}]; +} + +- (instancetype)initWithDelegate:(id)delegate { + if (self = [super init]) { + self.hostRepresedtation = delegate; + [[NIMSDK sharedSDK].systemNotificationManager addDelegate:self]; + } + return self; +} + +- (YUMIConfectioneryTimberExternalizer *)producePresimport { + return [[YUMIConfectioneryTimberExternalizer alloc] init]; +} + +- (BOOL)isVeiledNevObstacle { + return YES; +} +- (void)viewDidLoad { + [super viewDidLoad]; + [self initSubViews]; + [self initChildLyRestrictions]; + self.digitalConfectionery = 1; + [self.presimport acquireConfectioneryTimberAbstract]; +} + +- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { + [self.view endEditing:YES]; +} +#pragma mark -FBCCandyRankContainerRegardRepresendtation +- (void)didTicktackIntelligenceShank:(NSInteger)uid{ + [MKJPopup dismiss]; + YUMIManeConsumerAbstractRegardGovernancer * userInfoVC = [[YUMIManeConsumerAbstractRegardGovernancer alloc] init]; + userInfoVC.uid = uid; + [self.hostRepresedtation.acquireUniversalNev pushViewController:userInfoVC animated:YES]; +} +#pragma mark - FBCCandyTreeCeremony +- (void)acquireConfectioneryTimberAbstractAccomplishment:(ConfectioneryTimberAbstractMatrix *)info { + [self brakeHUD]; + self.confectioneryAbstract = info; + +} + +- (void)extractConfectioneryFlunk { + [self brakeHUD]; + self.isExtracting = NO; +} +-(void)extractConfectioneryIntersect{ + [self brakeHUD]; + self.isExtracting = NO; + YUMIConfectioneryTimberInsufficientBalanceRegard *balanceView = [[YUMIConfectioneryTimberInsufficientBalanceRegard alloc]initWithFrame:CGRectMake(0, 0, KScreenWidth, KScreenHeight)]; + balanceView.delegate = self; + [self.view addSubview:balanceView]; +} +- (void)extractConfectioneryAccomplishment:(NSArray *)result { + [self brakeHUD]; + self.isExtracting = NO; + [result enumerateObjectsUsingBlock:^(ConfectioneryTimberPresentAbstractMatrix * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if (obj.level > 2) { + + [NSObject cancelPreviousPerformRequestsWithTarget:self]; + + YUMIConfectioneryTimberPresentRegard * newAnimaView = [[YUMIConfectioneryTimberPresentRegard alloc] init]; + newAnimaView.giftInfo = obj; + NSString * giftTitle = [NSString stringWithFormat:@"%@ x %d", obj.rewardName, obj.num]; + CGFloat widht = [giftTitle boundingRectWithSize:CGSizeMake(200, CGFLOAT_MAX) options:NSStringDrawingUsesFontLeading | NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:10]} context:nil].size.width + 10; + newAnimaView.frame = CGRectMake(0, 4 * (KitemHeight), widht + 12, KitemHeight); + [self.animationView addSubview:newAnimaView]; + + if (self.animationView.subviews.count > 5) { + [self.animationView.subviews.firstObject removeFromSuperview]; + } + for (int i=0; i < self.animationView.subviews.count; i++) { + YUMIConfectioneryTimberPresentRegard * view = [self.animationView.subviews secureGroalTowardsIndictowardsrix1:i]; + NSInteger offsetY= (self.animationView.subviews.count - i) * KitemHeight; + [UIView animateWithDuration:0.1 animations:^{ + CGRect rect = view.frame; + rect.origin.y = KitemHeight * 5 - offsetY; + view.frame = rect; + } completion:^(BOOL finished) { + if (i == (self.animationView.subviews.count -1)) { + [self.animationView.subviews enumerateObjectsUsingBlock:^(__kindof UIView * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + [self performSelector:@selector(presentRegardTransltowardseByvirtueofSenstowardsionalRegard:) withObject:obj afterDelay:3]; + }]; + } + }]; + } + + + } + }]; + @kWeakify(self); + NSString * anatomiser1Name = [NSString stringWithFormat:@"%@/candyTree_light.svga", API_Image_URL]; + [self.anatomiser parseWithURL:[NSURL URLWithString:anatomiser1Name] completionBlock:^(SVGAVideoEntity * _Nonnull videoItem) { + @kStrongify(self); + self.confectioneryTimberLightRegard.loops = 1; + self.confectioneryTimberLightRegard.clearsAfterStop = YES; + self.confectioneryTimberLightRegard.videoItem = videoItem; + [self.confectioneryTimberLightRegard startAnimation]; + } failureBlock:^(NSError * _Nonnull error) { + + }]; + + + NSString * candyTree_open = [NSString stringWithFormat:@"%@/candyTree_open.svga", API_Image_URL]; + [self.anatomiser parseWithURL:[NSURL URLWithString:candyTree_open] completionBlock:^(SVGAVideoEntity * _Nonnull videoItem) { + @kStrongify(self); + self.confectioneryTimberUnfoildRegard.loops = 1; + self.confectioneryTimberUnfoildRegard.clearsAfterStop = YES; + self.confectioneryTimberUnfoildRegard.videoItem = videoItem; + [self.confectioneryTimberUnfoildRegard startAnimation]; + } failureBlock:^(NSError * _Nonnull error) { + + }]; + + NSString * candyTree_transform = [NSString stringWithFormat:@"%@/candyTree_transform.svga", API_Image_URL]; + [self.anatomiser parseWithURL:[NSURL URLWithString:candyTree_transform] completionBlock:^(SVGAVideoEntity * _Nonnull videoItem) { + @kStrongify(self); + self.confectioneryTimberTransRegard.loops = 1; + self.confectioneryTimberTransRegard.clearsAfterStop = YES; + self.confectioneryTimberTransRegard.videoItem = videoItem; + [self.confectioneryTimberTransRegard startAnimation]; + } failureBlock:^(NSError * _Nonnull error) { + + }]; + +} + +#pragma mark - NIMSystemNotificationManagerDelegate +- (void)onReceiveCustomSystemNotification:(NIMCustomSystemNotification *)notification { + if (notification.receiverType == NIMSessionTypeP2P) { + AttachmentMatrix *attachment = [AttachmentMatrix mtowardsrixAboutJSON:notification.content]; + if (attachment.first == IndividualityCommunicationGenre_Account && attachment.second == Custom_Message_Sub_Account_Changed){ + if (attachment.second == Custom_Message_Sub_Account_Changed) { + [self.presimport acquireConfectioneryTimberAbstract]; + } + } + } +} +#pragma mark - Private Method +- (void)initSubViews { + [[NSNotificationCenter defaultCenter]postNotificationName:kRoomReceivedCandyNotificationKey object:nil userInfo:@{@"isHidden":@(NO)}]; + self.view.backgroundColor = [UIColor clearColor]; + [self.view addSubview:self.apexBeatRegard]; + [self.view addSubview:self.contentView]; + [self.view addSubview:self.extremeBeatRegard]; + + [self.contentView addSubview:self.encourageRegard]; + + + [self.encourageRegard addSubview:self.rateHierarchyRegard]; + [self.encourageRegard addSubview:self.furthaerIndicateRegard]; + [self.encourageRegard addSubview:self.confectioneryTimberRegard]; + [self.encourageRegard addSubview:self.confectioneryTimberLightRegard]; + [self.encourageRegard addSubview:self.confectioneryTimberUnfoildRegard]; + + [self.encourageRegard addSubview:self.extractEncourageIndicateRegard]; + + [self.encourageRegard addSubview:self.extractBtuton]; + [self.encourageRegard addSubview:self.confectioneryTimberTransRegard]; + [self.encourageRegard addSubview:self.animationView]; + + [self.encourageRegard addSubview:self.subtractBtuton]; + [self.encourageRegard addSubview:self.essayAccurated]; + [self.encourageRegard addSubview:self.accelerateBtuton]; + + + + [self.rateHierarchyRegard addArrangedSubview:self.rateIndicateRegard]; + + +} + +- (void)initChildLyRestrictions { + [self.apexBeatRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.left.right.mas_equalTo(self.view); + make.bottom.mas_equalTo(self.contentView.mas_top); + }]; + [self.contentView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.view).inset(45); + make.centerY.mas_equalTo(self.view); + make.bottom.mas_equalTo(self.encourageRegard.mas_bottom); + }]; + + [self.extremeBeatRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.view); + make.top.mas_equalTo(self.contentView.mas_bottom); + make.bottom.mas_equalTo(self.view); + }]; + + + + [self.encourageRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(285); + make.height.mas_equalTo(434); + make.centerX.mas_equalTo(self.contentView); + make.top.mas_equalTo(self.contentView).offset(0); + }]; + + [self.rateHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.encourageRegard).offset(45); + make.left.mas_equalTo(self.encourageRegard).offset(9); + make.height.mas_equalTo(37); + make.width.mas_equalTo(36); + }]; + + + + + [self.furthaerIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(30, 30)); + make.top.mas_equalTo(44); + make.right.mas_equalTo(self.encourageRegard).offset(-12); + }]; + + + + [self.confectioneryTimberRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.encourageRegard).offset(63); + make.centerX.mas_equalTo(self.encourageRegard); + make.size.mas_equalTo(CGSizeMake(285, 363)); + }]; + + [self.confectioneryTimberLightRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.confectioneryTimberRegard); + }]; + + [self.confectioneryTimberUnfoildRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.confectioneryTimberRegard); + }]; + + + + [self.extractEncourageIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(150, 29)); + make.centerX.mas_equalTo(self.encourageRegard); + make.top.mas_equalTo(340); + }]; + + + [self.subtractBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.equalTo(self.extractEncourageIndicateRegard.mas_left).mas_offset(5);; + make.top.equalTo(self.extractEncourageIndicateRegard.mas_top).mas_offset(2.25); + make.width.mas_equalTo(40); + make.height.mas_equalTo(21); + }]; + + [self.accelerateBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.top.height.equalTo(self.subtractBtuton); + make.right.equalTo(self.extractEncourageIndicateRegard.mas_right).mas_offset(-5);; + }]; + [self.essayAccurated mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.height.equalTo(self.subtractBtuton); + make.width.mas_equalTo(62); + make.left.equalTo(self.subtractBtuton.mas_right); + + }]; + [self.extractBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(121, 45)); + make.centerX.mas_equalTo(self.encourageRegard); + make.top.mas_equalTo(367); + }]; + + CGFloat kscale = (CGFloat)350 / (CGFloat)755; + [self.confectioneryTimberTransRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.confectioneryTimberRegard); + make.bottom.right.mas_equalTo(self.view); + make.width.mas_equalTo(self.confectioneryTimberTransRegard.mas_height).multipliedBy(kscale); + }]; + + [self.animationView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.encourageRegard).offset(7); + make.bottom.mas_equalTo(self.encourageRegard).offset(-106); + make.width.mas_equalTo(150); + make.height.mas_equalTo(KitemHeight * 5); + }]; +} + +- (void)presentRegardTransltowardseByvirtueofSenstowardsionalRegard:(UIView *)view { + [view removeFromSuperview]; +} + +#pragma mark - Event Response +- (void)furthaerBetowardsRecognition:(UITapGestureRecognizer *)tap { + ConsumerAbstractMatrix * userInfo = self.hostRepresedtation.getUserInfo; + ChamberAbstractMatrix * roomInfo = self.hostRepresedtation.acquireChamberAbstract; + YUMIConfectioneryTimberFurthaerRegard * moreView = [[YUMIConfectioneryTimberFurthaerRegard alloc] init]; + moreView.sendMessageSwitchLevel = roomInfo.findLoveDrawSwitchVo.sendMsgLevel; + moreView.showCommunicationSwop = userInfo.userLevelVo.experLevelSeq >= roomInfo.findLoveDrawSwitchVo.sendMsgLevel; + [MKJPopup popupRegard:moreView style:MKJPopupStyleActionSheet]; +} + +- (void)rtowardseBetowardsRecognition:(UITapGestureRecognizer *)tap { + YUMIConfectioneryRateAccommodatedRegard * rateRegard = [[YUMIConfectioneryRateAccommodatedRegard alloc] init]; + rateRegard.delegate = self; + [MKJPopup popupRegard:rateRegard style:MKJPopupStyleActionSheet]; +} + +- (void)accelertowardseBtutonPerformance:(UIButton *)sender { + self.digitalConfectionery += 1; + self.essayAccurated.text = [NSString stringWithFormat:@"%ld", self.digitalConfectionery]; + +} + +- (void)subtractBtutonPerformance:(UIButton *)sender { + if (self.digitalConfectionery <= 1) return; + self.digitalConfectionery -= 1; + self.essayAccurated.text = [NSString stringWithFormat:@"%ld", self.digitalConfectionery]; + +} +#pragma mark -FBCCandyTreeInsufficientBalanceRegardRepresendtation +- (void)payBalancePerformance{ + @kWeakify(self); + [self dismissViewControllerAnimated:YES completion:^{ + @kStrongify(self); + YUMIIAPReindictRegardGovernancer *rechargeVC = [[YUMIIAPReindictRegardGovernancer alloc] init]; + [self.hostRepresedtation.acquireUniversalNev pushViewController:rechargeVC animated:YES]; + }]; + +} +- (void)extractBtutonPerformance:(UIButton *)sender { + if (self.digitalConfectionery <= 0) { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_Candy_Tree_View_Controller_2")]; + return; + } + if (self.isExtracting) return; + self.isExtracting = YES; + + ChamberAbstractMatrix * roomInfo = self.hostRepresedtation.acquireChamberAbstract; + NSString * roomUid = [NSString stringWithFormat:@"%ld", self.hostRepresedtation.acquireChamberAbstract.uid]; + NSString * candyNumber = [NSString stringWithFormat:@"%ld", self.digitalConfectionery]; + BOOL showCommunicationSwop = self.hostRepresedtation.getUserInfo.userLevelVo.experLevelSeq >= roomInfo.findLoveDrawSwitchVo.sendMsgLevel; + [self.presimport extractConfectionery:candyNumber roomUid:roomUid isSendMessage:showCommunicationSwop]; + +} + +- (void)prohibitiaplictowardsionearBetowardsRecognition:(UITapGestureRecognizer *)tap { + [[NSNotificationCenter defaultCenter]postNotificationName:kRoomReceivedCandyNotificationKey object:nil userInfo:@{@"isHidden":@(YES)}]; + [self.view removeFromSuperview]; +} +#pragma mark -UITextFieldDelegate +- (void)essayUniverseDidDiversifictowardsiond:(UITextField *)essayUniverse { + if (essayUniverse.text.integerValue > 200) { + essayUniverse.text = @"200"; + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_Candy_Tree_View_Controller_5")]; + } + self.digitalConfectionery = essayUniverse.text.intValue; + +} +- (void)textFieldDidEndEditing:(UITextField *)essayUniverse{ + if(essayUniverse.text.length <= 0){ + essayUniverse.text = @"1"; + } + +} +- (BOOL)essayUniverse:(UITextField *)essayUniverse shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { + return [self valiengagementDigital:string]; +} + +- (BOOL)valiengagementDigital:(NSString*)number { + BOOL res = YES; + NSCharacterSet* tmpSet = [NSCharacterSet characterSetWithCharactersInString:@"0123456789"]; + int i = 0; + while (i < number.length) { + NSString * string = [number substringWithRange:NSMakeRange(i, 1)]; + NSRange range = [string rangeOfCharacterFromSet:tmpSet]; + if (range.length == 0) { + res = NO; + break; + } + i++; + } + return res; +} +#pragma mark - Getters And Setters +- (void)setIsExtracting:(BOOL)isExtracting { + _isExtracting = isExtracting; + self.extractBtuton.enabled = !_isExtracting; +} + +- (UIView *)apexBeatRegard { + if (!_apexBeatRegard) { + _apexBeatRegard = [[UIView alloc] init]; + _apexBeatRegard.backgroundColor = [UIColor clearColor]; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(prohibitiaplictowardsionearBetowardsRecognition:)]; + [_apexBeatRegard addGestureRecognizer:tap]; + } + return _apexBeatRegard; +} +- (UIView *)extremeBeatRegard { + if (!_extremeBeatRegard) { + _extremeBeatRegard = [[UIView alloc] init]; + _extremeBeatRegard.backgroundColor = [UIColor clearColor]; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(prohibitiaplictowardsionearBetowardsRecognition:)]; + [_extremeBeatRegard addGestureRecognizer:tap]; + } + return _extremeBeatRegard; +} + +- (UIView *)contentView { + if (!_contentView) { + _contentView = [[UIView alloc] init]; + _contentView.backgroundColor = [UIColor clearColor]; + } + return _contentView; +} + + + +- (UIImageView *)encourageRegard { + if (!_encourageRegard) { + _encourageRegard = [[UIImageView alloc] init]; + _encourageRegard.userInteractionEnabled = YES; + _encourageRegard.image = [UIImage imageNamed:@"yumi_scope_candy_tree_back"]; + + } + return _encourageRegard; +} + +- (UIStackView *)rateHierarchyRegard { + if (!_rateHierarchyRegard) { + _rateHierarchyRegard = [[UIStackView alloc] init]; + _rateHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _rateHierarchyRegard.distribution = UIStackViewDistributionFill; + _rateHierarchyRegard.alignment = UIStackViewAlignmentCenter; + _rateHierarchyRegard.spacing = 0; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(rtowardseBetowardsRecognition:)]; + [_rateHierarchyRegard addGestureRecognizer:tap]; + } + return _rateHierarchyRegard; +} + +- (UIImageView *)rateIndicateRegard { + if (!_rateIndicateRegard) { + _rateIndicateRegard = [[UIImageView alloc] init]; + _rateIndicateRegard.userInteractionEnabled = YES; + _rateIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_candy_tree_rank"]; + } + return _rateIndicateRegard; +} + + + +- (UIImageView *)furthaerIndicateRegard { + if (!_furthaerIndicateRegard) { + _furthaerIndicateRegard = [[UIImageView alloc] init]; + _furthaerIndicateRegard.userInteractionEnabled = YES; + _furthaerIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_candy_tree_more"]; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(furthaerBetowardsRecognition:)]; + [_furthaerIndicateRegard addGestureRecognizer:tap]; + } + return _furthaerIndicateRegard; +} + + + + + + +- (UIImageView *)confectioneryTimberRegard { + if (!_confectioneryTimberRegard) { + _confectioneryTimberRegard = [[UIImageView alloc]init]; + _confectioneryTimberRegard.backgroundColor = [UIColor clearColor]; + _confectioneryTimberRegard.userInteractionEnabled = NO; + _confectioneryTimberRegard.image = [UIImage imageNamed:@"yumi_scope_candy_tree_background"]; + } + return _confectioneryTimberRegard; +} + +- (SVGAImageView *)confectioneryTimberLightRegard { + if (!_confectioneryTimberLightRegard) { + _confectioneryTimberLightRegard = [[SVGAImageView alloc]init]; + _confectioneryTimberLightRegard.backgroundColor = [UIColor clearColor]; + _confectioneryTimberLightRegard.userInteractionEnabled = NO; + } + return _confectioneryTimberLightRegard; +} + +- (SVGAImageView *)confectioneryTimberUnfoildRegard { + if (!_confectioneryTimberUnfoildRegard) { + _confectioneryTimberUnfoildRegard = [[SVGAImageView alloc]init]; + _confectioneryTimberUnfoildRegard.backgroundColor = [UIColor clearColor]; + _confectioneryTimberUnfoildRegard.userInteractionEnabled = NO; + } + return _confectioneryTimberUnfoildRegard; +} + +- (SVGAImageView *)confectioneryTimberTransRegard { + if (!_confectioneryTimberTransRegard) { + _confectioneryTimberTransRegard = [[SVGAImageView alloc]init]; + _confectioneryTimberTransRegard.backgroundColor = [UIColor clearColor]; + _confectioneryTimberTransRegard.userInteractionEnabled = NO; + } + return _confectioneryTimberTransRegard; +} + +- (SVGAParser *)anatomiser { + if (!_anatomiser) { + _anatomiser = [[SVGAParser alloc]init]; + } + return _anatomiser; +} + + +- (UIImageView *)extractEncourageIndicateRegard { + if (!_extractEncourageIndicateRegard) { + _extractEncourageIndicateRegard = [[UIImageView alloc] init]; + _extractEncourageIndicateRegard.userInteractionEnabled = YES; + _extractEncourageIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_candy_tree_pick_background"]; + } + return _extractEncourageIndicateRegard; +} + + + +- (UIButton *)accelerateBtuton { + if (!_accelerateBtuton) { + _accelerateBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_accelerateBtuton setImage:[UIImage imageNamed:@"yumi_scope_candy_tree_add"] forState:UIControlStateNormal]; + [_accelerateBtuton setImage:[UIImage imageNamed:@"yumi_scope_candy_tree_add"] forState:UIControlStateSelected]; + [_accelerateBtuton addTarget:self action:@selector(accelertowardseBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + [_accelerateBtuton setContentCompressionResistancePriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal]; + } + return _accelerateBtuton; +} + +- (UIButton *)subtractBtuton { + if (!_subtractBtuton) { + _subtractBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_subtractBtuton setImage:[UIImage imageNamed:@"yumi_scope_candy_tree_subtract"] forState:UIControlStateNormal]; + [_subtractBtuton setImage:[UIImage imageNamed:@"yumi_scope_candy_tree_subtract"] forState:UIControlStateSelected]; + [_subtractBtuton addTarget:self action:@selector(subtractBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + [_subtractBtuton setContentHuggingPriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal]; + } + return _subtractBtuton; +} + +- (UITextField *)essayAccurated { + if (!_essayAccurated) { + _essayAccurated = [[UITextField alloc] init]; + _essayAccurated.tintColor = [UIColor whiteColor]; + _essayAccurated.textColor = [UIColor whiteColor]; + _essayAccurated.backgroundColor = [UIColor clearColor]; + _essayAccurated.textAlignment = NSTextAlignmentCenter; + _essayAccurated.font = [UIFont fontWithName:@"PingFangSC-Medium" size:12]; + _essayAccurated.text = @"1"; + _essayAccurated.delegate = self; + [_essayAccurated addTarget:self action:@selector(essayUniverseDidDiversifictowardsiond:) forControlEvents:UIControlEventEditingChanged]; + _essayAccurated.keyboardType = UIKeyboardTypeNumberPad; + } + return _essayAccurated; +} + +- (UIButton *)extractBtuton { + if (!_extractBtuton) { + _extractBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_extractBtuton setImage:[UIImage imageNamed:@"yumi_scope_candy_tree_pick_normal"] forState:UIControlStateNormal]; + [_extractBtuton setImage:[UIImage imageNamed:@"yumi_scope_candy_tree_pick_disable"] forState:UIControlStateDisabled]; + [_extractBtuton addTarget:self action:@selector(extractBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _extractBtuton; +} + +- (UIView *)animationView { + if (!_animationView) { + _animationView = [[UIView alloc] init]; + _animationView.backgroundColor = [UIColor clearColor]; + } + return _animationView; +} + + +@end diff --git a/YuMi/Modules/YMRoom/View/ChamberAnimationCeremony.h b/YuMi/Modules/YMRoom/View/ChamberAnimationCeremony.h new file mode 100644 index 00000000..404a06c8 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/ChamberAnimationCeremony.h @@ -0,0 +1,21 @@ +// +// ChamberAnimationCeremony.h +// YUMI +// +// Created by zu on 2022/1/13. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + + +@protocol ChamberAnimationCeremony + +@optional + +- (CGPoint)brectifynessSpeckTowardsPhaseRegardByCid:(NSString *)uid; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/ChamberGuestRepresendtation.h b/YuMi/Modules/YMRoom/View/ChamberGuestRepresendtation.h new file mode 100644 index 00000000..30170b2b --- /dev/null +++ b/YuMi/Modules/YMRoom/View/ChamberGuestRepresendtation.h @@ -0,0 +1,34 @@ +// +// ChamberGuestRepresendtation.h +// YUMI +// +// Created by zu on 2021/10/27. +// + +#import +#import "MicroQueueCeremony.h" +#import "ChamberAnimationCeremony.h" + +@class NIMMessage, NIMRecentSession; +@class AttachmentMatrix; + +NS_ASSUME_NONNULL_BEGIN + + +@protocol ChamberGuestRepresendtation + +@optional + +- (void)onChamberRefurbish; +- (void)onUserUpdate; +- (void)onChamberImported; +- (void)onChamberDiversifictowardsion; +- (void)onChamberRoadliceImported; +- (void)shankNEMCCircularCommunictowardsion:(NIMMessage *)message; +- (void)shankNEMCIndividualityCommunictowardsion:(NIMMessage *)message; +- (void)shankNEMCEssayCommunictowardsion:(NIMMessage *)message; +- (void)accelertowardseNEMCLtowardsterdaInterlocution:(NIMRecentSession *)session; +- (void)transltowardseNEMCLtowardsterdaInterlocution:(NIMRecentSession *)session; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/ChamberHostRepresendtation.h b/YuMi/Modules/YMRoom/View/ChamberHostRepresendtation.h new file mode 100644 index 00000000..892bcd32 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/ChamberHostRepresendtation.h @@ -0,0 +1,30 @@ +// +// RoomDelegate.h +// YUMI +// +// Created by zu on 2021/10/26. +// + +#import +#import "MicroQueueCeremony.h" +#import "ChamberAnimationCeremony.h" + +NS_ASSUME_NONNULL_BEGIN + +@class ChamberAbstractMatrix; +@class ConsumerAbstractMatrix; + + +@protocol ChamberHostRepresendtation + +- (ChamberAbstractMatrix*)acquireChamberAbstract; +- (ConsumerAbstractMatrix*)getUserInfo; +- (void)exitRoom; +- (void)miniChamber; +- (UINavigationController *)acquireUniversalNev; +- (NSArray *)acquireChamberSenstowardsionalManagementSttowardsement; +- (NSArray *)acquireChamberCombatGroupSquadSttowardsement; +- (BOOL)isChamberCombatDisporting; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/ChamberIntelligencerRegard/ChamberIntelligencerRegard.h b/YuMi/Modules/YMRoom/View/ChamberIntelligencerRegard/ChamberIntelligencerRegard.h new file mode 100644 index 00000000..37a2220a --- /dev/null +++ b/YuMi/Modules/YMRoom/View/ChamberIntelligencerRegard/ChamberIntelligencerRegard.h @@ -0,0 +1,20 @@ +// +// YMRoomInfoView.h +// YUMI +// +// Created by YUMI on 2021/10/11. +// + +#import +#import "ChamberHostRepresendtation.h" +#import "ChamberGuestRepresendtation.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface ChamberIntelligencerRegard : UIView + +- (instancetype)initWithDelegate:(id)delegate; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/ChamberIntelligencerRegard/ChamberIntelligencerRegard.m b/YuMi/Modules/YMRoom/View/ChamberIntelligencerRegard/ChamberIntelligencerRegard.m new file mode 100644 index 00000000..7fd20d33 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/ChamberIntelligencerRegard/ChamberIntelligencerRegard.m @@ -0,0 +1,523 @@ +// +// YMRoomInfoView.m +// YUMI +// +// Created by YUMI on 2021/10/11. +// + +#import "ChamberIntelligencerRegard.h" +#import +#import +#import +#import +#import "MKJPopup.h" +#import +#import "UIImage+Utils.h" +#import "UIButton+EnlargeTouchArea.h" +#import "YUMIMacroUitls.h" +#import "ThemeColor+Room.h" +#import "MKJPopup.h" +#import "XNDJTBWGLoadingTool.h" +#import "YUMIHtmlUrl.h" +#import "AccountAbstractStorage.h" +#import "HttpRequestFacilitater.h" +#import "Api+Room.h" +#import "XCCurrentVCStackExecutive.h" +#import "StatsticsticsServingFacilitater.h" +#import "NSMutableDictionary+Saft.h" +#import "ClientDisposition.h" +#import "ChamberAbstractMatrix.h" +#import "ConsumerAbstractMatrix.h" +#import "AttachmentMatrix.h" +#import "MiecreoscoopeMHTueueMatrix.h" +#import "YUMIChamberEncourageMatrix.h" +#import "YUMIParaticipationRegard.h" +#import "YUMIChamberEncourageRegard.h" +#import "YUMITissueRegardGovernancer.h" +#import "YUMIChamberOnLineRegardGovernancer.h" +#import "YUMIChamberRegardGovernancer.h" + +@interface ChamberIntelligencerRegard () + +@property (nonatomic, strong) UIButton *backButton; +@property (nonatomic,strong) UIStackView *monicerHierarchyRegard; +@property (nonatomic,strong) UIStackView *championHierarchyRegard; +@property (nonatomic,strong) MarqueeLabel *titleLabel; +@property (nonatomic,strong) UIImageView *presentImpressionIndicateRegard; +@property (nonatomic,strong) UIImageView *spokeChamberIndicateRegard; +@property (nonatomic,strong) UIStackView *onlineHierarchyRegard; +@property (nonatomic,strong) UIView * greenPointRegard; +@property (nonatomic,strong) YYLabel *idSequencignation; +@property (nonatomic,strong) UIButton *assembleBtuton; +@property (nonatomic,strong) UIButton *instanllingBtuton; +@property (nonatomic, weak) id hostRepresedtation; +@property (nonatomic, strong) YUMIChamberEncourageRegard *encourageChamberRegard; + +@property (nonatomic, assign) BOOL possessExhibitAssembleInScreen; + +@end + +@implementation ChamberIntelligencerRegard + +- (instancetype)initWithDelegate:(id)delegate { + self = [super init]; + if (self) { + _hostRepresedtation = delegate; + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Event Response +- (void)encourageBtutonPerformance:(UIButton *)sender { + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventroom_return_click eventAttributes:@{@"roomUid" : @(self.hostRepresedtation.acquireChamberAbstract.uid)}]; + [self.hostRepresedtation miniChamber]; +} + +- (void)partowardsiciptowardsionBtutonPerformance:(UIButton *)sender{ + [self EvidencePartowardsiciptowardsionFasciaboard]; +} + +- (void)settingBtutonPerformance:(UIButton *)sender { + + if (![ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + MKJActionSheetDisposition *exit = [MKJActionSheetDisposition normalTitle:YMLocalizedString(@"Room_Header_View_0") ticktackPerformance:^{ + [self.hostRepresedtation exitRoom]; + }]; + + MKJActionSheetDisposition *report = [MKJActionSheetDisposition normalTitle:YMLocalizedString(@"Room_Header_View_1") ticktackPerformance:^{ + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:YMLocalizedString(@"Room_Header_View_2")]; + }); + }]; + + [MKJPopup performanceSheetAboutProvisions:@[exit, report]]; + return; + } + + self.encourageChamberRegard.frame = CGRectMake(KScreenWidth, 0, 250, KScreenHeight); + FFPopup *popup = [FFPopup popupWithContentView:self.encourageChamberRegard]; + popup.showType = FFPopupShowType_SlideInFromRight; + popup.dismissType = FFPopupDismissType_SlideOutToRight; + popup.maskType = FFPopupMaskType_Dimmed; + popup.dimmedMaskAlpha = 0.0; + popup.shouldDismissOnBackgroundTouch = YES; + FFPopupHorizontalLayout horizontalLayout = FFPopupHorizontalLayout_Right; + FFPopupVerticalLayout verticalLayout = FFPopupVerticalLayout_Center; + [popup showWithLayout:FFPopupLayoutMake(horizontalLayout, verticalLayout) duration:0.0]; + popup.didFinishDismissingBlock = ^{ + [self.encourageChamberRegard removeFromSuperview]; + }; + popup.didFinishShowingBlock = ^{ + + }; + [Api reqeustEncourageChamber:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + NSArray *array = [YUMIChamberEncourageMatrix mtowardsrixsAboutGarment:data.data]; + self.encourageChamberRegard.roomList = [NSMutableArray arrayWithArray:array]; + } + } roomId:[NSString stringWithFormat:@"%ld", self.hostRepresedtation.acquireChamberAbstract.roomId]]; +} + +- (void)onlineBetowardsRecognition { + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventroom_online_list_click eventAttributes:@{@"roomUid" : @(self.hostRepresedtation.acquireChamberAbstract.uid)}]; + YUMIChamberOnLineRegardGovernancer * onlineVC = [[YUMIChamberOnLineRegardGovernancer alloc] initWithDelegate:self.hostRepresedtation]; + [self.hostRepresedtation.acquireUniversalNev pushViewController:onlineVC animated:YES]; +} +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.backButton]; + [self addSubview:self.monicerHierarchyRegard]; + [self addSubview:self.assembleBtuton]; + [self addSubview:self.instanllingBtuton]; + + [self.monicerHierarchyRegard addArrangedSubview:self.championHierarchyRegard]; + [self.monicerHierarchyRegard addArrangedSubview:self.onlineHierarchyRegard]; + + [self.onlineHierarchyRegard addArrangedSubview:self.greenPointRegard]; + [self.onlineHierarchyRegard addArrangedSubview:self.idSequencignation]; + + [self.championHierarchyRegard addArrangedSubview:self.titleLabel]; + [self.championHierarchyRegard addArrangedSubview:self.presentImpressionIndicateRegard]; + [self.championHierarchyRegard addArrangedSubview:self.spokeChamberIndicateRegard]; +} + +- (void)initChildLyRestrictions { + [self.backButton mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.equalTo(self).offset(14); + make.height.width.equalTo(@22); + make.centerY.mas_equalTo(self.instanllingBtuton); + }]; + + [self.instanllingBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(-15); + make.bottom.mas_equalTo(-11); + make.width.height.mas_equalTo(22); + }]; + + [self.assembleBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.equalTo(self.instanllingBtuton); + make.right.equalTo(self.instanllingBtuton.mas_left).offset(-8); + make.width.height.mas_equalTo(22); + }]; + + [self.monicerHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.instanllingBtuton); + make.left.mas_equalTo(self.backButton.mas_right).offset(10); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_lessThanOrEqualTo(100); + make.height.mas_equalTo(21); + }]; + [self.greenPointRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(3,3)); + }]; + [self.idSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(14); + }]; + + [self.presentImpressionIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(10,10)); + }]; + + [self.spokeChamberIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(10,10)); + }]; +} +#pragma mark - ChamberGuestRepresendtation +- (void)onChamberImported { + ChamberAbstractMatrix* roomInfo = self.hostRepresedtation.acquireChamberAbstract; + + [[[NIMSDK sharedSDK] chatroomManager] fetchChatroomInfo:[NSString stringWithFormat:@"%ld", (long)self.hostRepresedtation.acquireChamberAbstract.roomId] completion:^(NSError * _Nullable error, NIMChatroom * _Nullable chatroom) { + if (error == nil) { + self.idSequencignation.text = [NSString stringWithFormat:@"在线:%ld ID:%ld", (long)(chatroom.onlineUserCount > 0 ? chatroom.onlineUserCount : 0), (long)roomInfo.erbanNo]; + } else { + self.idSequencignation.text = [NSString stringWithFormat:@"在线:%ld ID:%ld", (long)(roomInfo.onlineNum > 0 ? roomInfo.onlineNum : 0), (long)roomInfo.erbanNo]; + } + }]; + + if (roomInfo) { + self.titleLabel.text = roomInfo.title; + self.presentImpressionIndicateRegard.hidden = roomInfo.hasAnimationEffect; + if (roomInfo.uid == [AccountAbstractStorage instance].acquireCid.integerValue) { + self.assembleBtuton.hidden = YES; + } else { + self.assembleBtuton.hidden = NO; + self.assembleBtuton.selected = roomInfo.isRoomFans; + } + self.spokeChamberIndicateRegard.hidden = roomInfo.roomPwd.length <= 0; + } + + if (![ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + self.onlineHierarchyRegard.hidden = YES; + } +} + +- (void)onChamberRefurbish { + ChamberAbstractMatrix* roomInfo = self.hostRepresedtation.acquireChamberAbstract; + self.titleLabel.text = roomInfo.title; + self.idSequencignation.text = [NSString stringWithFormat:@"在线:%ld ID:%ld", (long)(roomInfo.onlineNum > 0 ? roomInfo.onlineNum : 0), (long)roomInfo.erbanNo]; + self.presentImpressionIndicateRegard.hidden = roomInfo.hasAnimationEffect; + if (roomInfo.uid == [AccountAbstractStorage instance].acquireCid.integerValue) { + self.assembleBtuton.hidden = YES; + } else { + self.assembleBtuton.hidden = NO; + self.assembleBtuton.selected = roomInfo.isRoomFans; + } + self.spokeChamberIndicateRegard.hidden = roomInfo.roomPwd.length <= 0; + if (![ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + self.onlineHierarchyRegard.hidden = YES; + } +} +#pragma mark - Event Response +- (void)EvidencePartowardsiciptowardsionFasciaboard { + YUMIParaticipationProvision *cycle = [YUMIParaticipationProvision itemWitCouple:XPShareItemTagMoments title:YMLocalizedString(@"Room_Header_View_6") imageName:@"share_wechat_circle_normal" disableImageName:@"share_wechat_circle_disable"]; + YUMIParaticipationProvision *wechat = [YUMIParaticipationProvision itemWitCouple:XPShareItemTagWeChat title:YMLocalizedString(@"Room_Header_View_7") imageName:@"share_wechat_normal" disableImageName:@"share_wechat_disable"]; + YUMIParaticipationProvision *qq = [YUMIParaticipationProvision itemWitCouple:XPShareItemTagQQ title:YMLocalizedString(@"Room_Header_View_8") imageName:@"share_qq_normal" disableImageName:@"share_qq_disable"]; + YUMIParaticipationProvision *qqzone = [YUMIParaticipationProvision itemWitCouple:XPShareItemTagQQZone title:YMLocalizedString(@"Room_Header_View_9") imageName:@"share_qqzone_normal" disableImageName:@"share_qqzone_disable"]; + NSArray * items = @[wechat,cycle, qq, qqzone]; + ChamberAbstractMatrix * roomInfo = [self.hostRepresedtation acquireChamberAbstract]; + YUMIParaticipationAbstractMatrix * shareInfo = [[YUMIParaticipationAbstractMatrix alloc] init]; + shareInfo.shareTitle = YMLocalizedString(@"Room_Header_View_10"); + shareInfo.shareContent = [NSString stringWithFormat:@"%@ 这个房间很好玩,推荐给你,快来和我一起玩吧~", roomInfo.title]; + shareInfo.shareImageUrl = [self.hostRepresedtation acquireChamberAbstract].avatar; + shareInfo.type = ShareGenre_Room; + shareInfo.roomUid = roomInfo.uid; + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NSString * urlString = [NSString stringWithFormat:@"%@/%@?shareUid=%@&uid=%ld&room_name=%@&room_id=%ld&room_avatar=%@&share_name=%@",API_HOST_URL,URLWithType(kShareRoomURL),uid,roomInfo.uid,roomInfo.title,roomInfo.erbanNo,roomInfo.avatar,roomInfo.nick]; + shareInfo.shareUrl = urlString; + CGFloat margin = 15; + CGSize itemSize = CGSizeMake((KScreenWidth-2*margin)/4, 65); + YUMIParaticipationRegard *partowardsiciptowardsionRegard = [[YUMIParaticipationRegard alloc] initWithItems:items itemSize:itemSize shareInfo:shareInfo]; + partowardsiciptowardsionRegard.delegate = self; + [MKJPopup popupRegard:partowardsiciptowardsionRegard style:MKJPopupStyleActionSheet]; +} + +- (void)preservePartowardsiciptowardsion:(YUMIParaticipationAbstractMatrix *)shareInfo { + NSMutableDictionary *params = [NSMutableDictionary dictionary]; + NSString *uid = [AccountAbstractStorage instance].acquireCid; + NSString *ticket = [AccountAbstractStorage instance].acquireTicket; + [params secureSetGroal:uid forKey:@"uid"]; + [params secureSetGroal:@(shareInfo.shareType) forKey:@"shareType"]; + [params secureSetGroal:ticket forKey:@"ticket"]; + [params secureSetGroal:@(shareInfo.type) forKey:@"sharePageId"]; + if (shareInfo.shareUrl.length > 0) { + [params secureSetGroal:shareInfo.shareUrl forKey:@"shareUrl"]; + } + if (shareInfo.roomUid > 0) { + [params secureSetGroal:@(shareInfo.roomUid) forKey:@"targetUid"]; + } + [HttpRequestFacilitater POST:@"usershare/save" params:params success:^(BaseMatrix * _Nonnull data) { + + } failure:^(NSInteger resCode, NSString * _Nonnull message) { + + }]; +} + +- (void)assembleBtutonPerformance:(UIButton *)sender { + NSString * type = sender.selected ? @"2" : @"1"; + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NSString * roomUid = [NSString stringWithFormat:@"%ld", self.hostRepresedtation.acquireChamberAbstract.uid]; + [Api assembleChamber:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + sender.selected= !sender.selected; + if ([type isEqualToString:@"1"]) { + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventroom_collect_icon_click eventAttributes:@{@"roomUid" : @(self.hostRepresedtation.acquireChamberAbstract.uid)}]; + [XNDJTBWGLoadingTool EvidenceAccomplishmentAboutCommunictowardsion:YMLocalizedString(@"Room_Header_View_12")]; + if (self.possessExhibitAssembleInScreen) { + return; + } + self.possessExhibitAssembleInScreen = YES; + NSMutableDictionary * dic = [NSMutableDictionary dictionary]; + [dic secureSetGroal:[AccountAbstractStorage instance].acquireCid forKey:@"uid"]; + [dic secureSetGroal:self.hostRepresedtation.getUserInfo.nick forKey:@"nick"]; + [dic secureSetGroal:[NSString stringWithFormat:@"%ld", self.hostRepresedtation.acquireChamberAbstract.uid] forKey:@"targetUid"]; + [dic secureSetGroal:self.hostRepresedtation.acquireChamberAbstract.nick forKey:@"targetNick"]; + NSDictionary * data = @{@"data":dic}; + AttachmentMatrix *attachment = [[AttachmentMatrix alloc]init]; + attachment.first = IndividualityCommunicationGenre_Collection_Room; + attachment.second = Custom_Message_Sub_Collect_Room_Tips; + attachment.data = data; + NIMMessage *message = [[NIMMessage alloc]init]; + NIMCustomObject *object = [[NIMCustomObject alloc] init]; + object.attachment = attachment; + message.messageObject = object; + NSString *sessionId = [NSString stringWithFormat:@"%ld",self.hostRepresedtation.acquireChamberAbstract.roomId]; + + NIMSession *session = [NIMSession session:sessionId type:NIMSessionTypeChatroom]; + [[NIMSDK sharedSDK].chatManager sendMessage:message toSession:session error:nil]; + } + } else { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:msg]; + } + } roomUid:roomUid uid:uid type:type roomUids:NULL]; +} + +#pragma mark - XCShareRegardRepresendtation +- (void)partowardsiciptowardsionRegard:(YUMIParaticipationRegard *)partowardsiciptowardsionRegard shareFail:(NSString *)message { + [MKJPopup dismiss]; + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:message]; +} + +- (void)partowardsiciptowardsionRegard:(YUMIParaticipationRegard *)partowardsiciptowardsionRegard didSuccess:(YUMIParaticipationAbstractMatrix *)shareInfo{ + [MKJPopup dismiss]; + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:YMLocalizedString(@"Room_Header_View_13")]; + AttachmentMatrix * attachMent = [[AttachmentMatrix alloc] init]; + attachMent.first = IndividualityCommunicationGenre_Room_Tip; + attachMent.second = Custom_Message_Sub_Room_Tip_ShareRoom; + NSMutableDictionary * dic = [NSMutableDictionary dictionary]; + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [dic secureSetGroal:uid forKey:@"uid"]; + NSMutableDictionary * userDic = [NSMutableDictionary dictionary]; + ConsumerAbstractMatrix * userInfo = [self.hostRepresedtation getUserInfo]; + ChamberAbstractMatrix * roomInfo = [self.hostRepresedtation acquireChamberAbstract]; + [userDic secureSetGroal:roomInfo.nick.length > 0 ? roomInfo.nick : @"" forKey:@"targetNick"]; + [userDic secureSetGroal:@(roomInfo.uid) forKey:@"targetUid"]; + [userDic secureSetGroal:userInfo.nick.length > 0 ? userInfo.nick : @"" forKey:@"nick"]; + [dic secureSetGroal:userDic forKey:@"data"]; + attachMent.data = dic; + NSString *sessionID = [NSString stringWithFormat:@"%ld", [self.hostRepresedtation acquireChamberAbstract].roomId]; + + NIMMessage *message = [[NIMMessage alloc]init]; + NIMCustomObject *object = [[NIMCustomObject alloc] init]; + object.attachment = attachMent; + message.messageObject = object; + + NIMSession *session = [NIMSession session:sessionID type:NIMSessionTypeChatroom]; + [[NIMSDK sharedSDK].chatManager sendMessage:message toSession:session error:nil]; + + [self preservePartowardsiciptowardsion:shareInfo]; +} + +- (void)partowardsiciptowardsionRegardDidTicktackRevoctowardsion:(YUMIParaticipationRegard *)partowardsiciptowardsionRegard { + [MKJPopup dismiss]; +} + +#pragma mark - FBCChamberEncourageRegardRepresendtation +- (void)yUMIChamberEncourageRegardReport { + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventroom_more_icon_click eventAttributes:@{@"reportRoom" : @(self.hostRepresedtation.acquireChamberAbstract.uid)}]; + [FFPopup dismissPopupForView:self.encourageChamberRegard animated:NO]; + YUMITissueRegardGovernancer * webVewC = [[YUMITissueRegardGovernancer alloc] init]; + NSString *urlstr = [NSString stringWithFormat:@"%@?reportUid=%ld&source=ROOM", URLWithType(kReportRoomURL),self.hostRepresedtation.acquireChamberAbstract.uid]; + webVewC.url = urlstr; + [[self.hostRepresedtation acquireUniversalNev] pushViewController:webVewC animated:YES]; +} + +- (void)yUMIChamberEncourageRegardRoadliceChamber { + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventroom_more_icon_click eventAttributes:@{@"miniRoom" : @(self.hostRepresedtation.acquireChamberAbstract.uid)}]; + [FFPopup dismissPopupForView:self.encourageChamberRegard animated:NO]; + [self.hostRepresedtation miniChamber]; +} + +- (void)yUMIChamberEncourageRegardExitChamber { + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventroom_more_icon_click eventAttributes:@{@"exitRoom" : @(self.hostRepresedtation.acquireChamberAbstract.uid)}]; + [FFPopup dismissPopupForView:self.encourageChamberRegard animated:NO]; + [self.hostRepresedtation exitRoom]; +} + +- (void)yUMIChamberEncourageRegardPartowardsiciptowardsion { + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventroom_more_icon_click eventAttributes:@{@"shareRoom" : @(self.hostRepresedtation.acquireChamberAbstract.uid)}]; + [FFPopup dismissPopupForView:self.encourageChamberRegard animated:NO]; + [self EvidencePartowardsiciptowardsionFasciaboard]; +} + +- (void)yUMIChamberEncourageRegardJumpToChamber:(NSString *)roomUid { + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventroom_more_icon_click eventAttributes:@{@"jumpToRoom" : roomUid}]; + [FFPopup dismissPopupForView:self.encourageChamberRegard animated:NO]; + [self.hostRepresedtation exitRoom]; + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + [YUMIChamberRegardGovernancer unfoildChamber:roomUid viewController:[XCCurrentVCStackExecutive shareManager].getCurrentVC]; + }); +} + +#pragma mark - Getters And Setters +- (UIButton *)backButton{ + if (!_backButton) { + _backButton = [[UIButton alloc] init]; + [_backButton setImage:[UIImage imageNamed:@"yumi_scope_gen_back"] forState:UIControlStateNormal]; + [_backButton addTarget:self action:@selector(encourageBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + [_backButton setEnlargeEdgeAboutApex:15 right:15 bottom:15 left:15]; + } + return _backButton; +} + +- (UIButton *)instanllingBtuton { + if (!_instanllingBtuton) { + _instanllingBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_instanllingBtuton setImage:[UIImage imageNamed:@"yumi_scope_gen_setting"] forState:UIControlStateNormal]; + [_instanllingBtuton addTarget:self action:@selector(settingBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + [_instanllingBtuton setEnlargeEdgeAboutApex:8 right:8 bottom:8 left:8]; + } + return _instanllingBtuton; +} + +- (UIButton *)assembleBtuton { + if (!_assembleBtuton) { + _assembleBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_assembleBtuton setImage:[UIImage imageNamed:@"yumi_scope_collect_normal"] forState:UIControlStateNormal]; + [_assembleBtuton setImage:[UIImage imageNamed:@"yumi_scope_collect_selected"] forState:UIControlStateSelected]; + [_assembleBtuton addTarget:self action:@selector(assembleBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + [_assembleBtuton setEnlargeEdgeAboutApex:8 right:8 bottom:8 left:8]; + _assembleBtuton.adjustsImageWhenHighlighted = NO; + _assembleBtuton.hidden = YES; + } + return _assembleBtuton; +} + +- (UIStackView *)monicerHierarchyRegard { + if (!_monicerHierarchyRegard) { + _monicerHierarchyRegard = [[UIStackView alloc] init]; + _monicerHierarchyRegard.axis = UILayoutConstraintAxisVertical; + _monicerHierarchyRegard.distribution = UIStackViewDistributionFill; + _monicerHierarchyRegard.alignment = UIStackViewAlignmentLeading; + } + return _monicerHierarchyRegard; +} + +- (UIStackView *)championHierarchyRegard { + if (!_championHierarchyRegard) { + _championHierarchyRegard = [[UIStackView alloc] init]; + _championHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _championHierarchyRegard.distribution = UIStackViewDistributionFill; + _championHierarchyRegard.alignment = UIStackViewAlignmentCenter; + _championHierarchyRegard.spacing = 5; + } + return _championHierarchyRegard; +} + +- (MarqueeLabel *)titleLabel{ + if (!_titleLabel) { + _titleLabel = [[MarqueeLabel alloc] init]; + _titleLabel.scrollDuration = 8.0; + _titleLabel.fadeLength = 6.0f; + _titleLabel.font = [UIFont fontWithName:@"PingFang-SC-Bold" size:15]; + _titleLabel.textColor = [DJDKMIMOMColor chamberOwnerMonicerPrettify]; + _titleLabel.userInteractionEnabled = YES; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(onlineBetowardsRecognition)]; + [_titleLabel addGestureRecognizer:tap]; + } + return _titleLabel; +} + +- (UIImageView *)presentImpressionIndicateRegard { + if (!_presentImpressionIndicateRegard) { + _presentImpressionIndicateRegard = [[UIImageView alloc] init]; + _presentImpressionIndicateRegard.userInteractionEnabled = YES; + _presentImpressionIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_gen_present_effect"]; + } + return _presentImpressionIndicateRegard; +} + +- (UIImageView *)spokeChamberIndicateRegard { + if (!_spokeChamberIndicateRegard) { + _spokeChamberIndicateRegard = [[UIImageView alloc] init]; + _spokeChamberIndicateRegard.userInteractionEnabled = YES; + _spokeChamberIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_gen_lock_room"]; + _spokeChamberIndicateRegard.hidden = YES; + } + return _spokeChamberIndicateRegard; +} + +- (UIStackView *)onlineHierarchyRegard { + if (!_onlineHierarchyRegard) { + _onlineHierarchyRegard = [[UIStackView alloc] init]; + _onlineHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _onlineHierarchyRegard.distribution = UIStackViewDistributionFill; + _onlineHierarchyRegard.alignment = UIStackViewAlignmentCenter; + _onlineHierarchyRegard.spacing = 2; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(onlineBetowardsRecognition)]; + [_onlineHierarchyRegard addGestureRecognizer:tap]; + } + return _onlineHierarchyRegard; +} + +- (UIView *)greenPointRegard { + if (!_greenPointRegard) { + _greenPointRegard = [[UIView alloc] init]; + _greenPointRegard.backgroundColor = [DJDKMIMOMColor chamberOnBurlywoodIdenPrettify]; + _greenPointRegard.layer.masksToBounds = YES; + _greenPointRegard.layer.cornerRadius = 1.5; + } + return _greenPointRegard; +} + +- (YYLabel *)idSequencignation { + if (!_idSequencignation) { + _idSequencignation = [[YYLabel alloc] init]; + _idSequencignation.textColor = [DJDKMIMOMColor chamberOwnerMonicerPrettify]; + _idSequencignation.font = [UIFont systemFontOfSize:10]; + } + return _idSequencignation; +} + +- (YUMIChamberEncourageRegard *)encourageChamberRegard { + if (!_encourageChamberRegard) { + _encourageChamberRegard = [[YUMIChamberEncourageRegard alloc] init]; + self.encourageChamberRegard.delegate = self; + } + return _encourageChamberRegard; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/FaceView/Model/ChamberAcceptAbstractMatrix.h b/YuMi/Modules/YMRoom/View/FaceView/Model/ChamberAcceptAbstractMatrix.h new file mode 100644 index 00000000..30d00e8f --- /dev/null +++ b/YuMi/Modules/YMRoom/View/FaceView/Model/ChamberAcceptAbstractMatrix.h @@ -0,0 +1,48 @@ +// +// ChamberAcceptAbstractMatrix.h +// YUMI +// +// Created by YUMI on 2022/3/9. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +typedef NS_ENUM(NSInteger, FaceDisplayGenre) { + FaceDisplayGenre_OnlyOne = 0, + FaceDisplayGenre_Flow = 1, + FaceDisplayGenre_OverLay = 2, + FaceDisplayGenre_OnlyOneLine = 3, +}; + + +@class ChamberVipAcceptAbstractMatrix; +@interface ChamberAcceptAbstractMatrix : NSObject +@property (nonatomic,assign) NSInteger fid; +@property (nonatomic, assign) NSInteger animDuration; +@property (nonatomic, assign) NSInteger animStartPos; +@property (nonatomic, assign) NSInteger animEndPos; +@property (nonatomic, assign) NSInteger animRepeatCount; +@property (nonatomic,assign) BOOL canResultRepeat; +@property (nonatomic, assign) FaceDisplayGenre displayType; +@property (nonatomic,assign) NSInteger faceType; +@property (nonatomic, assign) NSInteger iconPos; +@property (nonatomic,assign) BOOL isLuckFace; +@property (nonatomic,assign) BOOL isNobleFace; +@property (nonatomic,copy) NSString *name; +@property (nonatomic,copy) NSString *pinyin; +@property (nonatomic, assign) NSInteger resultCount; +@property (nonatomic, assign) NSInteger resultDuration; +@property (nonatomic, assign) NSInteger resultEndPos; +@property (nonatomic, assign) NSInteger resultStartPos; +@property (nonatomic,strong) ChamberVipAcceptAbstractMatrix *faceVipInfo; +@property (nonatomic,strong) UIImage *faceImage; +@end + +@interface ChamberVipAcceptAbstractMatrix : NSObject +@property (nonatomic,copy) NSString *vipIcon; +@property (nonatomic,assign) NSInteger vipLevel; +@property (nonatomic,copy) NSString *vipName; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/FaceView/Model/ChamberAcceptAbstractMatrix.m b/YuMi/Modules/YMRoom/View/FaceView/Model/ChamberAcceptAbstractMatrix.m new file mode 100644 index 00000000..d412e8a9 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/FaceView/Model/ChamberAcceptAbstractMatrix.m @@ -0,0 +1,20 @@ +// +// ChamberAcceptAbstractMatrix.m +// YUMI +// +// Created by YUMI on 2022/3/9. +// + +#import "ChamberAcceptAbstractMatrix.h" + +@implementation ChamberAcceptAbstractMatrix ++ (NSDictionary *)replacedDigitalByvirtueofMaintainertyConstitute { + return @{@"fid":@"id"}; +} +@end + +@implementation ChamberVipAcceptAbstractMatrix + + + +@end diff --git a/YuMi/Modules/YMRoom/View/FaceView/Model/ChamberAcceptChampionProvisionMatrix.h b/YuMi/Modules/YMRoom/View/FaceView/Model/ChamberAcceptChampionProvisionMatrix.h new file mode 100644 index 00000000..db29d2c5 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/FaceView/Model/ChamberAcceptChampionProvisionMatrix.h @@ -0,0 +1,24 @@ +// +// ChamberAcceptChampionProvisionMatrix.h +// YUMI +// +// Created by YUMI on 2022/3/9. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +typedef NS_ENUM(NSInteger, ChamberFaceTitleProvisionGenre) { + + ChamberFaceTitleProvisionGenre_Normal = 1, + + ChamberFaceTitleProvisionGenre_Nobel, +}; + +@interface ChamberAcceptChampionProvisionMatrix : NSObject +@property (nonatomic,copy) NSString *title; +@property (nonatomic,assign) BOOL isSelect; +@property (nonatomic,assign) ChamberFaceTitleProvisionGenre faceType; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/FaceView/Model/ChamberAcceptChampionProvisionMatrix.m b/YuMi/Modules/YMRoom/View/FaceView/Model/ChamberAcceptChampionProvisionMatrix.m new file mode 100644 index 00000000..6ee9cd94 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/FaceView/Model/ChamberAcceptChampionProvisionMatrix.m @@ -0,0 +1,12 @@ +// +// ChamberAcceptChampionProvisionMatrix.m +// YUMI +// +// Created by YUMI on 2022/3/9. +// + +#import "ChamberAcceptChampionProvisionMatrix.h" + +@implementation ChamberAcceptChampionProvisionMatrix + +@end diff --git a/YuMi/Modules/YMRoom/View/FaceView/Model/ChamberAcceptDischargeAbstractMatrix.h b/YuMi/Modules/YMRoom/View/FaceView/Model/ChamberAcceptDischargeAbstractMatrix.h new file mode 100644 index 00000000..6fc1c21c --- /dev/null +++ b/YuMi/Modules/YMRoom/View/FaceView/Model/ChamberAcceptDischargeAbstractMatrix.h @@ -0,0 +1,20 @@ +// +// RoomSendFaceInfoModel.h +// YUMI +// +// Created by YUMI on 2022/3/10. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface ChamberAcceptDischargeAbstractMatrix : NSObject +@property (assign, nonatomic) NSInteger uid; +@property (copy, nonatomic) NSString *nick; +@property (assign, nonatomic) NSInteger faceId; +@property (strong, nonatomic) UIImage *resultImage; +@property (strong, nonatomic) NSMutableArray *resultIndexes; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/FaceView/Model/ChamberAcceptDischargeAbstractMatrix.m b/YuMi/Modules/YMRoom/View/FaceView/Model/ChamberAcceptDischargeAbstractMatrix.m new file mode 100644 index 00000000..7674c19f --- /dev/null +++ b/YuMi/Modules/YMRoom/View/FaceView/Model/ChamberAcceptDischargeAbstractMatrix.m @@ -0,0 +1,12 @@ +// +// RoomSendFaceInfoModel.m +// YUMI +// +// Created by YUMI on 2022/3/10. +// + +#import "ChamberAcceptDischargeAbstractMatrix.h" + +@implementation ChamberAcceptDischargeAbstractMatrix + +@end diff --git a/YuMi/Modules/YMRoom/View/FaceView/Presenter/YUMIChamberAcceptExternalizer.h b/YuMi/Modules/YMRoom/View/FaceView/Presenter/YUMIChamberAcceptExternalizer.h new file mode 100644 index 00000000..86fe463e --- /dev/null +++ b/YuMi/Modules/YMRoom/View/FaceView/Presenter/YUMIChamberAcceptExternalizer.h @@ -0,0 +1,18 @@ +// +// YMRoomFacePresenter.h +// YUMI +// +// Created by YUMI on 2022/3/9. +// + +#import "BaseMvpExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIChamberAcceptExternalizer : BaseMvpExternalizer +- (void)getUserInfo; +- (void)acquireChamberOrdinaryAccept; +- (void)acquireChamberNobelAccept; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/FaceView/Presenter/YUMIChamberAcceptExternalizer.m b/YuMi/Modules/YMRoom/View/FaceView/Presenter/YUMIChamberAcceptExternalizer.m new file mode 100644 index 00000000..74432a7b --- /dev/null +++ b/YuMi/Modules/YMRoom/View/FaceView/Presenter/YUMIChamberAcceptExternalizer.m @@ -0,0 +1,89 @@ +// +// YMRoomFacePresenter.m +// YUMI +// +// Created by YUMI on 2022/3/9. +// + +#import "YUMIChamberAcceptExternalizer.h" +#import "Api.h" +#import "AccountAbstractStorage.h" +#import "YUMIChamberAcceptTool.h" +#import "ClientDisposition.h" +#import "ChamberAcceptAbstractMatrix.h" +#import "ConsumerAbstractMatrix.h" +#import "FBCChamberFaceCeremony.h" +#import "NSArray+Safe.h" + +@implementation YUMIChamberAcceptExternalizer + +- (void)getUserInfo { + NSString * uid = [[AccountAbstractStorage instance] acquireCid]; + [Api getUserInfo:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + ConsumerAbstractMatrix * userInfo = [ConsumerAbstractMatrix mtowardsrixAboutImpactbasket:data.data]; + [[self acquireRegard] acquireConsumerAbstractAccomplishment:userInfo]; + }EvidenceChambering:YES] uid:uid]; +} + +- (void)acquireChamberOrdinaryAccept { + NSDictionary * dic = [ClientDisposition partowardsiciptowardsionDisposition].dispositionAbstract.faceInitData; + NSArray * derivationGarment = [ChamberAcceptAbstractMatrix mtowardsrixsAboutGarment:dic[@"faces"]]; + NSArray * sortGarment = [self sortAcceptAbstractsAboutacceptAbstractArr:derivationGarment]; + NSString * faceFile = [YUMIChamberAcceptTool partowardsiciptowardsionAcceptUtensil].acceptDirectory; + NSMutableArray * faceArray = [NSMutableArray array]; + for (int i = 0; i< sortGarment.count; i++) { + ChamberAcceptAbstractMatrix * acceptAbstract = [sortGarment secureGroalTowardsIndictowardsrix1:i]; + if (!acceptAbstract.isNobleFace && acceptAbstract.faceType == 1) { + NSString *faceName = [NSString stringWithFormat:@"%@_%ld_%ld",acceptAbstract.pinyin,acceptAbstract.fid,acceptAbstract.iconPos]; + NSString *dirName = [NSString stringWithFormat:@"%@_%ld",acceptAbstract.pinyin,acceptAbstract.fid]; + NSString *targetPath = [NSString stringWithFormat:@"%@/%@/%@",faceFile,dirName,faceName]; + UIImage * faceImage = [UIImage imageWithContentsOfFile:targetPath]; + if (faceImage) { + acceptAbstract.faceImage = faceImage; + } + [faceArray addObject:acceptAbstract]; + } + } + [[self acquireRegard] acquireChamberOrdinaryAcceptSttowardsementAccomplishment:faceArray]; +} + + +- (void)acquireChamberNobelAccept { + NSDictionary * dic = [ClientDisposition partowardsiciptowardsionDisposition].dispositionAbstract.faceInitData; + NSArray * derivationGarment = [ChamberAcceptAbstractMatrix mtowardsrixsAboutGarment:dic[@"vipFaces"]]; + NSArray * sortGarment = [self sortAcceptAbstractsAboutacceptAbstractArr:derivationGarment]; + NSString * faceFile = [YUMIChamberAcceptTool partowardsiciptowardsionAcceptUtensil].acceptDirectory; + NSMutableArray * faceArray = [NSMutableArray array]; + for (int i = 0; i< sortGarment.count; i++) { + ChamberAcceptAbstractMatrix * acceptAbstract = [sortGarment secureGroalTowardsIndictowardsrix1:i]; + if (acceptAbstract.faceType == 1) { + NSString *faceName = [NSString stringWithFormat:@"%@_%ld_%ld",acceptAbstract.pinyin,acceptAbstract.fid,acceptAbstract.iconPos]; + NSString *dirName = [NSString stringWithFormat:@"%@_%ld",acceptAbstract.pinyin,acceptAbstract.fid]; + NSString *targetPath = [NSString stringWithFormat:@"%@/%@/%@",faceFile,dirName,faceName]; + UIImage * faceImage = [UIImage imageWithContentsOfFile:targetPath]; + if (faceImage) { + acceptAbstract.faceImage = faceImage; + } + [faceArray addObject:acceptAbstract]; + } + } + [[self acquireRegard] acquireChamberGuruAcceptSttowardsementAccomplishment:faceArray]; + +} + +#pragma mark - Private Method +- (NSArray *)sortAcceptAbstractsAboutacceptAbstractArr:(NSArray *)faceInfoArr { + NSMutableArray *temp = [NSMutableArray array]; + NSMutableArray *temp2 = [NSMutableArray array]; + for (ChamberAcceptAbstractMatrix *item in faceInfoArr) { + if (item.resultCount <= 0) { + [temp addObject:item]; + }else { + [temp2 addObject:item]; + } + } + [temp addObjectsFromArray:temp2]; + return temp; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/FaceView/Presenter/YUMIChamberAcceptTool.h b/YuMi/Modules/YMRoom/View/FaceView/Presenter/YUMIChamberAcceptTool.h new file mode 100644 index 00000000..047d9ff6 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/FaceView/Presenter/YUMIChamberAcceptTool.h @@ -0,0 +1,26 @@ +// +// YMRoomFaceTool.h +// YUMI +// +// Created by YUMI on 2022/3/9. +// 下载表情的工具 只是下载 不做其他的任何处理 + +#import + +NS_ASSUME_NONNULL_BEGIN +@class ChamberAcceptAbstractMatrix; +@interface YUMIChamberAcceptTool : NSObject ++ (instancetype)partowardsiciptowardsionAcceptUtensil; +@property (nonatomic,copy) NSString *version; +@property (nonatomic,copy) NSString *zipMd5; +@property (nonatomic,copy) NSString *zipUrl; +@property (nonatomic,copy,readonly) NSString *acceptDirectory; +- (void)downAcceptTowardsoloudspeaker; +- (void)downAcceptTowardsoloudspeakerImplementtowardsion:(nullable void(^)(NSString * path))completion; +- (void)preserveAcceptAbstractSttowardsement:(NSDictionary *)faceDic; + +- (UIImage *)prohibiticoveryAcceptIndictowardseById:(NSInteger)faceId index:(NSInteger)index; +- (ChamberAcceptAbstractMatrix *)prohibiticoveryAcceptAbstractById:(NSInteger)faceId; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/FaceView/Presenter/YUMIChamberAcceptTool.m b/YuMi/Modules/YMRoom/View/FaceView/Presenter/YUMIChamberAcceptTool.m new file mode 100644 index 00000000..e3b8db0e --- /dev/null +++ b/YuMi/Modules/YMRoom/View/FaceView/Presenter/YUMIChamberAcceptTool.m @@ -0,0 +1,249 @@ +// +// YMRoomFaceTool.m +// YUMI +// +// Created by YUMI on 2022/3/9. +// + +#import "YUMIChamberAcceptTool.h" +#import +#import +#import +#import "NSObject+MJExtension.h" +#import "ChamberAcceptAbstractMatrix.h" +#import "NSArray+Safe.h" +#define FileHashDefaultChunkSizeForReadingData 1024*8 + +NSString * const kRoomFaceVersion = @"kRoomFaceVersion"; + +@interface YUMIChamberAcceptTool () +@property (nonatomic,copy) NSString *acceptDirectory; +@property (nonatomic,assign) NSInteger retryCount; +@property (nonatomic,strong) NSArray *acceptAbstractStatement; +@end + +@implementation YUMIChamberAcceptTool + ++ (instancetype)partowardsiciptowardsionAcceptUtensil { + static dispatch_once_t onceToken; + static YUMIChamberAcceptTool * tool; + dispatch_once(&onceToken, ^{ + tool = [[YUMIChamberAcceptTool alloc] init]; + tool.retryCount = 0; + }); + return tool; +} + +- (void)downAcceptTowardsoloudspeaker { + [self downAcceptTowardsoloudspeakerImplementtowardsion:nil]; +} + +- (void)downAcceptTowardsoloudspeakerImplementtowardsion:(nullable void (^)(NSString * nullable))completion { + + NSArray*pathsss =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES); + NSString *documentsDirectory = [pathsss secureGroalTowardsIndictowardsrix1:0]; + NSString*acceptDirectory = [documentsDirectory stringByAppendingPathComponent:@"Face"]; + + NSString *version = [[NSUserDefaults standardUserDefaults]objectForKey: kRoomFaceVersion]; + if (version == nil || version.integerValue < self.version.integerValue) { + if (self.zipUrl.length > 0 && [self.zipUrl hasPrefix:@"http"]) { + NSURL *URL = [NSURL URLWithString:self.zipUrl]; + NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessionConfiguration]; + AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:configuration]; + + NSURLRequest *request = [NSURLRequest requestWithURL:URL]; + + [[manager downloadTaskWithRequest:request progress:^(NSProgress * _Nonnull downloadProgress) { + + } destination:^NSURL * _Nonnull(NSURL * _Nonnull targetPath, NSURLResponse * _Nonnull response) { + + NSString *cachesPath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject]; + NSString *path = [cachesPath stringByAppendingPathComponent:response.suggestedFilename]; + return [NSURL fileURLWithPath:path]; + } completionHandler:^(NSURLResponse * _Nonnull response, NSURL * _Nullable filePath, NSError * _Nullable error) { + if (error == nil) { + NSString *filePathStr = [filePath path]; + NSString *fileMD5Str = [self acquireAccurtowardseMD5AboutRoute:filePathStr]; + fileMD5Str = [fileMD5Str uppercaseString]; + if (![self.zipMd5 isEqualToString:fileMD5Str]) { + [self performSelector:@selector(downAcceptTowardsoloudspeaker) withObject:nil afterDelay:3]; + }else { + + NSString *imgFilePath = [filePath path]; + NSLog(@"img == %@", imgFilePath); + NSString *zipPath = imgFilePath; + NSFileManager *fileManager = [NSFileManager defaultManager]; + + [[NSFileManager defaultManager] removeItemAtPath:acceptDirectory error:nil]; + [fileManager createDirectoryAtPath:acceptDirectory withIntermediateDirectories:YES attributes:nil error:nil]; + NSLog(@"test == %@",acceptDirectory); + dispatch_async(dispatch_get_global_queue(0, 0), ^{ + + [SSZipArchive unzipFileAtPath:zipPath toDestination:acceptDirectory overwrite:YES password:nil progressHandler:^(NSString * _Nonnull entry, unz_file_info zipInfo, long entryNumber, long total) { + + } completionHandler:^(NSString * _Nonnull path, BOOL succeeded, NSError * _Nullable error) { + if (error == nil) { + self.retryCount = 0; + + [[NSUserDefaults standardUserDefaults]setObject:self.version forKey:kRoomFaceVersion]; + self.acceptDirectory = acceptDirectory; + if (completion) { + completion(acceptDirectory); + } + } else { + self.retryCount ++; + if (self.retryCount <=10) { + [self downAcceptTowardsoloudspeaker]; + } + if (completion) { + completion(nil); + } + } + }]; + }); + } + } else { + self.retryCount ++; + if (self.retryCount <=10) { + [self downAcceptTowardsoloudspeaker]; + } + if (completion) { + completion(nil); + } + } + + }] resume]; + } else { + if (completion) { + completion(nil); + } + } + } else { + self.acceptDirectory = acceptDirectory; + if (completion) { + completion(acceptDirectory); + } + } +} + + +- (void)preserveAcceptAbstractSttowardsement:(NSDictionary *)faceDic { + self.acceptAbstractStatement = nil; + NSArray * normalArray = [ChamberAcceptAbstractMatrix mtowardsrixsAboutGarment:faceDic[@"faces"]]; + NSArray * vipFaceArray = [ChamberAcceptAbstractMatrix mtowardsrixsAboutGarment:faceDic[@"vipFaces"]]; + NSMutableArray * array = [NSMutableArray array]; + [array addObjectsFromArray:normalArray]; + [array addObjectsFromArray:vipFaceArray]; + self.acceptAbstractStatement = array.copy; +} + + +- (ChamberAcceptAbstractMatrix *)prohibiticoveryAcceptAbstractById:(NSInteger)faceId{ + for (int i = 0; i < self.acceptAbstractStatement.count; i++) { + ChamberAcceptAbstractMatrix *acceptAbstract = self.acceptAbstractStatement[i]; + if (acceptAbstract.fid == faceId) { + return acceptAbstract; + } + } + return nil; +} + +- (UIImage *)prohibiticoveryAcceptIndictowardseById:(NSInteger)faceId index:(NSInteger)index { + if (self.acceptDirectory) { + ChamberAcceptAbstractMatrix * acceptAbstract =[self prohibiticoveryAcceptAbstractById:faceId]; + NSString *faceName = [NSString stringWithFormat:@"%@_%ld_%ld",acceptAbstract.pinyin,acceptAbstract.fid,index]; + NSString *dirName = [NSString stringWithFormat:@"%@_%ld",acceptAbstract.pinyin,acceptAbstract.fid]; + NSString *targetPath = [NSString stringWithFormat:@"%@/%@/%@",self.acceptDirectory,dirName,faceName]; + UIImage * faceImage = [UIImage imageWithContentsOfFile:targetPath]; + return faceImage; + } + return nil; +} + + +- (NSString*)acquireAccurtowardseMD5AboutRoute:(NSString*)path { + return (__bridge NSString *)FileMD5HashCreateWithPath((__bridge CFStringRef)path,FileHashDefaultChunkSizeForReadingData); +} + +CFStringRef FileMD5HashCreateWithPath(CFStringRef filePath, + size_t chunkSizeForReadingData) { + + + CFStringRef result = NULL; + CFReadStreamRef readStream = NULL; + + + CFURLRef fileURL = + CFURLCreateWithFileSystemPath(kCFAllocatorDefault, + (CFStringRef)filePath, + kCFURLPOSIXPathStyle, + (Boolean)false); + + CC_MD5_CTX hashObject; + bool hasFurthaerAtoloudspeaker = true; + bool didSucceed; + + if (!fileURL) goto done; + + + readStream = CFReadStreamCreateWithFile(kCFAllocatorDefault, + (CFURLRef)fileURL); + if (!readStream) goto done; + didSucceed = (bool)CFReadStreamOpen(readStream); + if (!didSucceed) goto done; + + + CC_MD5_Init(&hashObject); + + + if (!chunkSizeForReadingData) { + chunkSizeForReadingData = FileHashDefaultChunkSizeForReadingData; + } + + + while (hasFurthaerAtoloudspeaker) { + uint8_t buffer[chunkSizeForReadingData]; + CFIndex readBytesCount = CFReadStreamRead(readStream, + (UInt8 *)buffer, + (CFIndex)sizeof(buffer)); + if (readBytesCount == -1)break; + if (readBytesCount == 0) { + hasFurthaerAtoloudspeaker =false; + continue; + } + CC_MD5_Update(&hashObject,(const void *)buffer,(CC_LONG)readBytesCount); + } + + + didSucceed = !hasFurthaerAtoloudspeaker; + + + unsigned char digest[CC_MD5_DIGEST_LENGTH]; + CC_MD5_Final(digest, &hashObject); + + + if (!didSucceed) goto done; + + + char hash[2 *sizeof(digest) + 1]; + for (size_t i =0; i < sizeof(digest); ++i) { + snprintf(hash + (2 * i),3, "%02x", (int)(digest[i])); + } + result = CFStringCreateWithCString(kCFAllocatorDefault, + (const char *)hash, + kCFStringEncodingUTF8); + +done: + + if (readStream) { + CFReadStreamClose(readStream); + CFRelease(readStream); + } + if (fileURL) { + CFRelease(fileURL); + } + return result; +} + + +@end diff --git a/YuMi/Modules/YMRoom/View/FaceView/Protocol/FBCChamberFaceCeremony.h b/YuMi/Modules/YMRoom/View/FaceView/Protocol/FBCChamberFaceCeremony.h new file mode 100644 index 00000000..2661e769 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/FaceView/Protocol/FBCChamberFaceCeremony.h @@ -0,0 +1,19 @@ +// +// YMRoomFaceProtocol.h +// YUMI +// +// Created by YUMI on 2022/3/9. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class ConsumerAbstractMatrix; +@protocol FBCChamberFaceCeremony + +- (void)acquireChamberOrdinaryAcceptSttowardsementAccomplishment:(NSArray *)list; +- (void)acquireChamberGuruAcceptSttowardsementAccomplishment:(NSArray *)list; +- (void)acquireConsumerAbstractAccomplishment:(ConsumerAbstractMatrix *)userInfo; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/FaceView/View/Cell/YUMIChamberAcceptAssembletionFlowProgramming.h b/YuMi/Modules/YMRoom/View/FaceView/View/Cell/YUMIChamberAcceptAssembletionFlowProgramming.h new file mode 100644 index 00000000..0a9c2179 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/FaceView/View/Cell/YUMIChamberAcceptAssembletionFlowProgramming.h @@ -0,0 +1,16 @@ +// +// YMRoomFaceCollectionFlowLayout.h +// YUMI +// +// Created by YUMI on 2022/3/10. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIChamberAcceptAssembletionFlowProgramming : UICollectionViewFlowLayout + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/FaceView/View/Cell/YUMIChamberAcceptAssembletionFlowProgramming.m b/YuMi/Modules/YMRoom/View/FaceView/View/Cell/YUMIChamberAcceptAssembletionFlowProgramming.m new file mode 100644 index 00000000..75b34987 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/FaceView/View/Cell/YUMIChamberAcceptAssembletionFlowProgramming.m @@ -0,0 +1,150 @@ +// +// YMRoomFaceCollectionFlowLayout.m +// YUMI +// +// Created by YUMI on 2022/3/10. +// + +#import "YUMIChamberAcceptAssembletionFlowProgramming.h" + +@interface YUMIChamberAcceptAssembletionFlowProgramming () +@property (nonatomic, copy) NSMutableDictionary *sectionPackbask; +@property (nonatomic, strong) NSMutableArray *entiretyIdiosyncracys; +@end + +@implementation YUMIChamberAcceptAssembletionFlowProgramming +#pragma mark - life cycle +- (instancetype)init { + self = [super init]; + if (self) { + self.scrollDirection = UICollectionViewScrollDirectionHorizontal; + } + return self; +} + +#pragma mark - overload + +- (void)prepareLayout { + + [super prepareLayout]; + + _sectionPackbask = [NSMutableDictionary dictionary]; + self.entiretyIdiosyncracys = [NSMutableArray array]; + + NSUInteger section = [self.collectionView numberOfSections]; + + for (int sec = 0; sec < section; sec++) { + + NSUInteger count = [self.collectionView numberOfItemsInSection:sec]; + + for (NSUInteger item = 0; item *)layoutAttributesForElementsInRect:(CGRect)rect { + + return self.entiretyIdiosyncracys; +} + +#pragma mark - private method + +- (void)applyLayoutAttributes:(UICollectionViewLayoutAttributes *)attributes { + + if(attributes.representedElementKind != nil){ + return; + } + CGFloat minLine = self.minimumLineSpacing; + CGFloat minSpacing = self.minimumInteritemSpacing; + + + CGFloat itemW = attributes.frame.size.width; + + CGFloat itemH = attributes.frame.size.height; + UIEdgeInsets sectionInsets = self.sectionInset; + + CGFloat width = self.collectionView.frame.size.width; + + CGFloat height = self.collectionView.frame.size.height; + + NSInteger itemIndex = attributes.indexPath.item; + + CGFloat stride = (self.scrollDirection == UICollectionViewScrollDirectionHorizontal) ? width : height; + + + + NSInteger section = attributes.indexPath.section; + + NSInteger itemCount = [self.collectionView numberOfItemsInSection:section]; + + + CGFloat offset = section * stride; + + + NSInteger xCount = (width / itemW); + + NSInteger yCount = (height / itemH); + + NSInteger allCount = (xCount * yCount); + + NSInteger page = itemIndex / allCount; + + + NSInteger remain = (itemIndex % xCount); + + NSInteger merchant = (itemIndex-page*allCount)/xCount; + + + + CGFloat xCellOffset = remain * (itemW + minLine)+ sectionInsets.left; + + CGFloat yCellOffset = merchant * (itemH + minSpacing); + + + NSInteger pageRe = (itemCount % allCount == 0)? (itemCount / allCount) : (itemCount / allCount) + 1; + + [_sectionPackbask setValue:@(pageRe) forKey:[NSString stringWithFormat:@"%ld", section]]; + + if(self.scrollDirection == UICollectionViewScrollDirectionHorizontal) { + + NSInteger actualLo = 0; + + for (NSString *key in [_sectionPackbask allKeys]) { + actualLo += [_sectionPackbask[key] integerValue]; + } + + actualLo -= [_sectionPackbask[[NSString stringWithFormat:@"%ld", [_sectionPackbask allKeys].count-1]] integerValue]; + xCellOffset += page*width + actualLo*width; + + } else { + + yCellOffset += offset; + } + + attributes.frame = CGRectMake(xCellOffset, yCellOffset, itemW, itemH); +} + +@end diff --git a/YuMi/Modules/YMRoom/View/FaceView/View/Cell/YUMIChamberAcceptAssembletionRegardElement.h b/YuMi/Modules/YMRoom/View/FaceView/View/Cell/YUMIChamberAcceptAssembletionRegardElement.h new file mode 100644 index 00000000..472a8a4c --- /dev/null +++ b/YuMi/Modules/YMRoom/View/FaceView/View/Cell/YUMIChamberAcceptAssembletionRegardElement.h @@ -0,0 +1,17 @@ +// +// YMRoomFaceCollectionViewCell.h +// YUMI +// +// Created by YUMI on 2022/3/9. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class ChamberAcceptAbstractMatrix; +@interface YUMIChamberAcceptAssembletionRegardElement : UICollectionViewCell +@property (nonatomic,assign) NSInteger vipLevel; +@property (nonatomic,strong) ChamberAcceptAbstractMatrix *acceptAbstract; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/FaceView/View/Cell/YUMIChamberAcceptAssembletionRegardElement.m b/YuMi/Modules/YMRoom/View/FaceView/View/Cell/YUMIChamberAcceptAssembletionRegardElement.m new file mode 100644 index 00000000..260643d5 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/FaceView/View/Cell/YUMIChamberAcceptAssembletionRegardElement.m @@ -0,0 +1,135 @@ +// +// YMRoomFaceCollectionViewCell.m +// YUMI +// +// Created by YUMI on 2022/3/9. +// + +#import "YUMIChamberAcceptAssembletionRegardElement.h" +#import +#import "NetIndicateRegard.h" +#import "DJDKMIMOMColor.h" +#import "ChamberAcceptAbstractMatrix.h" + +@interface YUMIChamberAcceptAssembletionRegardElement () +@property (nonatomic,strong) UIImageView *acceptIndicateRegard; +@property (nonatomic,strong) UILabel *acceptChampionSequencignation; +@property (nonatomic,strong) NetIndicateRegard *magnificentGenreIndicateRegard; +@property (nonatomic,strong) UIImageView *magnificentSpokeIndicateRegard; +@property (nonatomic,strong) UIView * coverView; +@end + +@implementation YUMIChamberAcceptAssembletionRegardElement + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self.contentView addSubview:self.acceptIndicateRegard]; + [self.contentView addSubview:self.coverView]; + [self.contentView addSubview:self.magnificentGenreIndicateRegard]; + [self.contentView addSubview:self.acceptChampionSequencignation]; + [self.contentView addSubview:self.magnificentSpokeIndicateRegard]; +} + +- (void)initChildLyRestrictions { + [self.acceptIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(60, 60)); + make.centerX.mas_equalTo(self.contentView); + make.top.mas_equalTo(self.contentView); + }]; + + [self.coverView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.acceptIndicateRegard); + }]; + + [self.magnificentGenreIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(12 * 1.4); + make.height.mas_equalTo(10 * 1.4); + make.left.top.mas_equalTo(self.contentView); + }]; + + [self.acceptChampionSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.contentView); + make.top.mas_equalTo(self.acceptIndicateRegard.mas_bottom).offset(4); + }]; + + [self.magnificentSpokeIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(11, 11)); + make.bottom.right.mas_equalTo(self.acceptIndicateRegard); + }]; +} +#pragma mark - Getters And Setters +- (void)setAcceptAbstract:(ChamberAcceptAbstractMatrix *)acceptAbstract { + _acceptAbstract = acceptAbstract; + if (_acceptAbstract) { + self.acceptIndicateRegard.image = _acceptAbstract.faceImage; + self.acceptChampionSequencignation.text = _acceptAbstract.name; + if (_acceptAbstract.faceVipInfo) { + self.magnificentGenreIndicateRegard.imageUrl = _acceptAbstract.faceVipInfo.vipIcon; + self.magnificentGenreIndicateRegard.hidden = NO; + if (_acceptAbstract.faceVipInfo.vipLevel > self.vipLevel) { + self.magnificentSpokeIndicateRegard.hidden = NO; + } else { + self.magnificentSpokeIndicateRegard.hidden = YES; + } + } else { + self.magnificentGenreIndicateRegard.hidden = YES; + self.magnificentSpokeIndicateRegard.hidden = YES; + } + } +} + +- (UIImageView *)acceptIndicateRegard { + if (!_acceptIndicateRegard) { + _acceptIndicateRegard = [[UIImageView alloc] init]; + _acceptIndicateRegard.userInteractionEnabled = YES; + } + return _acceptIndicateRegard; +} + +- (NetIndicateRegard *)magnificentGenreIndicateRegard { + if (!_magnificentGenreIndicateRegard) { + _magnificentGenreIndicateRegard = [[NetIndicateRegard alloc] init]; + _magnificentGenreIndicateRegard.layer.masksToBounds = YES; + _magnificentGenreIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _magnificentGenreIndicateRegard; +} + +- (UIImageView *)magnificentSpokeIndicateRegard { + if (!_magnificentSpokeIndicateRegard) { + _magnificentSpokeIndicateRegard = [[UIImageView alloc] init]; + _magnificentSpokeIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_face_nobel_lock"]; + } + return _magnificentSpokeIndicateRegard; +} + +- (UILabel *)acceptChampionSequencignation { + if (!_acceptChampionSequencignation) { + _acceptChampionSequencignation = [[UILabel alloc] init]; + _acceptChampionSequencignation.font = [UIFont systemFontOfSize:10]; + _acceptChampionSequencignation.textColor = [UIColor whiteColor]; + _acceptChampionSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _acceptChampionSequencignation; +} + +- (UIView *)coverView { + if (!_coverView) { + _coverView = [[UIView alloc] init]; + _coverView.backgroundColor = UIColorRGBAlpha(0x000000, 0.3); + } + return _coverView; +} + + + +@end diff --git a/YuMi/Modules/YMRoom/View/FaceView/View/Cell/YUMIChamberAcceptChampionAssembletionRegardElement.h b/YuMi/Modules/YMRoom/View/FaceView/View/Cell/YUMIChamberAcceptChampionAssembletionRegardElement.h new file mode 100644 index 00000000..c1902f76 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/FaceView/View/Cell/YUMIChamberAcceptChampionAssembletionRegardElement.h @@ -0,0 +1,16 @@ +// +// YMRoomFaceTitleCollectionViewCell.h +// YUMI +// +// Created by YUMI on 2022/3/9. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class ChamberAcceptChampionProvisionMatrix; +@interface YUMIChamberAcceptChampionAssembletionRegardElement : UICollectionViewCell +@property (nonatomic,strong) ChamberAcceptChampionProvisionMatrix *championMatrix; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/FaceView/View/Cell/YUMIChamberAcceptChampionAssembletionRegardElement.m b/YuMi/Modules/YMRoom/View/FaceView/View/Cell/YUMIChamberAcceptChampionAssembletionRegardElement.m new file mode 100644 index 00000000..e9492ec4 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/FaceView/View/Cell/YUMIChamberAcceptChampionAssembletionRegardElement.m @@ -0,0 +1,57 @@ +// +// YMRoomFaceTitleCollectionViewCell.m +// YUMI +// +// Created by YUMI on 2022/3/9. +// + +#import "YUMIChamberAcceptChampionAssembletionRegardElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "ChamberAcceptChampionProvisionMatrix.h" + +@interface YUMIChamberAcceptChampionAssembletionRegardElement () +@property (nonatomic,strong) UILabel *titleLabel; +@end + +@implementation YUMIChamberAcceptChampionAssembletionRegardElement + +- (instancetype)initWithFrame:(CGRect)frame +{ + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self.contentView addSubview:self.titleLabel]; +} + +- (void)initChildLyRestrictions { + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.contentView); + }]; +} +#pragma mark - Getters And Setters +- (void)setChampionMatrix:(ChamberAcceptChampionProvisionMatrix *)championMatrix { + _championMatrix = championMatrix; + if (_titleLabel) { + self.titleLabel.text = _championMatrix.title; + self.titleLabel.textColor = _championMatrix.isSelect ? [DJDKMIMOMColor aplictowardsionMainPrettify] : [UIColor whiteColor]; + } +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.font = [UIFont systemFontOfSize:14]; + _titleLabel.textAlignment = NSTextAlignmentCenter; + } + return _titleLabel; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/FaceView/View/YUMIChamberAcceptRegardGovernancer.h b/YuMi/Modules/YMRoom/View/FaceView/View/YUMIChamberAcceptRegardGovernancer.h new file mode 100644 index 00000000..ee34eafd --- /dev/null +++ b/YuMi/Modules/YMRoom/View/FaceView/View/YUMIChamberAcceptRegardGovernancer.h @@ -0,0 +1,15 @@ +// +// YMRoomFaceViewController.h +// YUMI +// +// Created by YUMI on 2022/3/9. +// + +#import "MvpRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN +@interface YUMIChamberAcceptRegardGovernancer : MvpRegardGovernancer +@property (nonatomic,copy) NSString *roomId; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/FaceView/View/YUMIChamberAcceptRegardGovernancer.m b/YuMi/Modules/YMRoom/View/FaceView/View/YUMIChamberAcceptRegardGovernancer.m new file mode 100644 index 00000000..ba8c7ff1 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/FaceView/View/YUMIChamberAcceptRegardGovernancer.m @@ -0,0 +1,443 @@ +// +// YMRoomFaceViewController.m +// YUMI +// +// Created by YUMI on 2022/3/9. +// + +#import "YUMIChamberAcceptRegardGovernancer.h" +#import +#import "YUMIMacroUitls.h" +#import "DJDKMIMOMColor.h" +#import "YUMIChamberAcceptTool.h" +#import "MKJPopup.h" +#import "NSArray+Safe.h" +#import "ChamberAcceptChampionProvisionMatrix.h" +#import "ChamberAcceptAbstractMatrix.h" +#import "ConsumerAbstractMatrix.h" +#import "ChamberAcceptDischargeAbstractMatrix.h" +#import "AttachmentMatrix.h" +#import "YUMIChamberAcceptAssembletionRegardElement.h" +#import "YUMIChamberAcceptChampionAssembletionRegardElement.h" +#import "YUMIChamberAcceptAssembletionFlowProgramming.h" +#import "YUMIChamberAcceptExternalizer.h" +#import "FBCChamberFaceCeremony.h" + +@interface YUMIChamberAcceptRegardGovernancer () +@property (nonatomic,strong) UIView * apexRegard; +@property (nonatomic,strong) UIView * contentView; +@property (nonatomic,strong) UIVisualEffectView *impressionRegard; +@property (nonatomic,strong) UIStackView *stackView; +@property (nonatomic,strong) UIStackView *championHierarchyRegard; +@property (nonatomic,strong) UICollectionView *championAssembletionRegard; +@property (nonatomic,strong) UIButton *magnificentPrivilBtuton; +@property (nonatomic,strong) UICollectionView *acceptAssembletionRegard; +@property (nonatomic, strong) UIPageControl *periodRegard; +@property (nonatomic,strong) NSArray *championStatement; +@property (nonatomic,strong) ChamberAcceptChampionProvisionMatrix *chosenChampionProvision; +@property (nonatomic,strong) NSArray *acceptStatement; +@property (nonatomic,strong) NSArray *nobelAcceptStatement; +@property (nonatomic,strong) ConsumerAbstractMatrix *userInfo; +@end + +@implementation YUMIChamberAcceptRegardGovernancer + +- (YUMIChamberAcceptExternalizer *)producePresimport { + return [[YUMIChamberAcceptExternalizer alloc] init]; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initData]; + [self initSubViews]; + [self initChildLyRestrictions]; +} + +#pragma mark - Private Method +- (void)initData { + [self.presimport getUserInfo]; + if ([YUMIChamberAcceptTool partowardsiciptowardsionAcceptUtensil].acceptDirectory) { + [self.presimport acquireChamberOrdinaryAccept]; + [self.presimport acquireChamberNobelAccept]; + } else { + [self EvidenceChambering]; + [[YUMIChamberAcceptTool partowardsiciptowardsionAcceptUtensil] downAcceptTowardsoloudspeakerImplementtowardsion:^(NSString * _Nonnull path) { + [self brakeHUD]; + if (path.length > 0) { + [self.presimport acquireChamberOrdinaryAccept]; + [self.presimport acquireChamberNobelAccept]; + } else { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_Room_Face_View_Controller_0")]; + } + }]; + } +} + +- (void)initSubViews { + self.view.backgroundColor = [UIColor clearColor]; + [self.view addSubview:self.apexRegard]; + [self.view addSubview:self.contentView]; + + [self.contentView addSubview:self.stackView]; + + [self.stackView addArrangedSubview:self.championHierarchyRegard]; + [self.stackView addArrangedSubview:self.acceptAssembletionRegard]; + [self.stackView addArrangedSubview:self.periodRegard]; + + [self.championHierarchyRegard addArrangedSubview:self.championAssembletionRegard]; + [self.championHierarchyRegard addArrangedSubview:self.magnificentPrivilBtuton]; + self.chosenChampionProvision = [self.championStatement firstObject]; +} + +- (void)initChildLyRestrictions { + [self.apexRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self.view); + make.bottom.mas_equalTo(self.contentView.mas_bottom); + }]; + + [self.contentView mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.left.mas_equalTo(self.view); + make.bottom.mas_equalTo(self.view); + make.height.mas_equalTo(self.stackView).offset(42 + kSafeAreaBottomHeight); + }]; + + [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.contentView).inset(15); + make.top.mas_equalTo(self.contentView); + }]; + + + [self.championHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(53); + }]; + + [self.periodRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(10); + }]; + + CGFloat itemAltitude = (CGFloat)(KScreenWidth - 15 * 2 - 10 * 4) / (CGFloat)5 + 20; + CGFloat collectionViewHeight = itemAltitude * 3 + 10 * 2; + [self.acceptAssembletionRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(collectionViewHeight); + }]; + + + [self.magnificentPrivilBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(84, 26)); + }]; + + [self.championAssembletionRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(28); + }]; +} + +- (void)refurbishPeriodRegardDeclare:(NSArray *)array { + NSInteger page = 0; + if (array.count % 15 == 0) { + page = array.count / 15; + } else { + page = array.count / 15 + 1; + } + [self.periodRegard setNumberOfPages:page]; + self.periodRegard.currentPage = 0; +} + +- (void)prohibitichargeAcceptIndividualityCommunictowardsion:(ChamberAcceptAbstractMatrix *)acceptAbstract { + ChamberAcceptDischargeAbstractMatrix *sendInfo = [[ChamberAcceptDischargeAbstractMatrix alloc]init]; + NSMutableArray *resultIndexs = [NSMutableArray array]; + if (acceptAbstract.resultStartPos > 0 && acceptAbstract.resultEndPos > 0) { + int value; + if (acceptAbstract.canResultRepeat) { + for (int i = 0; i < acceptAbstract.resultCount; i++) { + value = [self acquireArbitraryDigital:(short)acceptAbstract.resultStartPos to:(short)acceptAbstract.resultEndPos]; + [resultIndexs addObject:@(value)]; + sendInfo.resultIndexes = [resultIndexs copy]; + } + + }else { + sendInfo.resultIndexes = [[self arbitraryGarment:(short)acceptAbstract.resultStartPos to:(short)acceptAbstract.resultEndPos count:(short)acceptAbstract.resultCount] mutableCopy]; + } + + } + NSMutableArray *faceRecieveInfos = [NSMutableArray array]; + sendInfo.nick = self.userInfo.nick; + sendInfo.faceId = acceptAbstract.fid; + sendInfo.uid = self.userInfo.uid; + [faceRecieveInfos addObject:sendInfo.mtowardsrix2dictionary]; + + AttachmentMatrix * attachment = [[AttachmentMatrix alloc] init]; + attachment.first = IndividualityCommunicationGenre_Face; + attachment.second = Custom_Message_Sub_Face_Send; + NSDictionary * dic = @{@"data":faceRecieveInfos, @"uid": @(self.userInfo.uid)}; + attachment.data = dic; + NSString *sessionID = self.roomId; + NIMMessage *message = [[NIMMessage alloc]init]; + NIMCustomObject *object = [[NIMCustomObject alloc] init]; + object.attachment = attachment; + message.messageObject = object; + + NIMSession *session = [NIMSession session:sessionID type:NIMSessionTypeChatroom]; + [[NIMSDK sharedSDK].chatManager sendMessage:message toSession:session error:nil]; + [self dismissViewControllerAnimated:YES completion:nil]; +} + +- (int)acquireArbitraryDigital:(int)from to:(int)to { + return (int)(from + (arc4random() % (to - from + 1))); +} + +- (NSArray *)arbitraryGarment:(int)from to:(int)to count:(int)count { + + + NSMutableArray *startArray= [NSMutableArray array]; + for (int i = from; i <= to; i++) { + [startArray addObject:@(i)]; + } + + NSMutableArray *resultArray=[[NSMutableArray alloc] initWithCapacity:0]; + + NSInteger m = count; + for (int i=0; i 0) { + [startArray removeLastObject]; + } + } + return resultArray; +} + + +#pragma mark - scrollviewdelegate +- (void)scrollViewDidScroll:(UIScrollView *)scrollView { + CGFloat offX = scrollView.contentOffset.x; + CGFloat width = CGRectGetWidth(scrollView.frame); + self.periodRegard.currentPage = ceilf(offX/width); +} + +#pragma mark - UICollectionViewDelegate And UICollectionViewDatasource +- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath { + if (collectionView == self.championAssembletionRegard) { + ChamberAcceptChampionProvisionMatrix * itemMatrix = [self.championStatement secureGroalTowardsIndictowardsrix1:indexPath.row]; + CGSize size = [itemMatrix.title boundingRectWithSize:CGSizeMake(100, CGFLOAT_MAX) options:NSStringDrawingUsesFontLeading | NSStringDrawingTruncatesLastVisibleLine + attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:13]} context:nil].size; + return CGSizeMake(size.width + 10, size.height); + } + CGFloat itemWidth = (CGFloat)(KScreenWidth - 15 * 2 - 10 * 4) / (CGFloat)5; + return CGSizeMake(itemWidth, itemWidth + 20); +} + +- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { + if (collectionView == self.championAssembletionRegard) { + return self.championStatement.count; + } + return self.chosenChampionProvision.faceType == ChamberFaceTitleProvisionGenre_Normal? self.acceptStatement.count : self.nobelAcceptStatement.count; +} + +- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { + if (collectionView == self.championAssembletionRegard) { + YUMIChamberAcceptChampionAssembletionRegardElement * cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([YUMIChamberAcceptChampionAssembletionRegardElement class]) forIndexPath:indexPath]; + ChamberAcceptChampionProvisionMatrix * model = [self.championStatement secureGroalTowardsIndictowardsrix1:indexPath.item]; + if (model == self.chosenChampionProvision) { + model.isSelect = YES; + } else { + model.isSelect = NO; + } + cell.championMatrix = model; + return cell; + } + + YUMIChamberAcceptAssembletionRegardElement * cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([YUMIChamberAcceptAssembletionRegardElement class]) forIndexPath:indexPath]; + ChamberAcceptAbstractMatrix * acceptAbstract; + if (self.chosenChampionProvision.faceType == ChamberFaceTitleProvisionGenre_Normal) { + acceptAbstract = [self.acceptStatement secureGroalTowardsIndictowardsrix1:indexPath.row]; + } else { + acceptAbstract = [self.nobelAcceptStatement secureGroalTowardsIndictowardsrix1:indexPath.row]; + } + cell.vipLevel = self.userInfo.userVipInfoVO.vipLevel; + cell.acceptAbstract =acceptAbstract; + return cell; +} + +- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath { + if (collectionView == self.championAssembletionRegard) { + ChamberAcceptChampionProvisionMatrix * championMatrix = [self.championStatement secureGroalTowardsIndictowardsrix1:indexPath.row]; + self.chosenChampionProvision = championMatrix; + [self.championAssembletionRegard reloadData]; + NSArray * list = championMatrix.faceType == ChamberFaceTitleProvisionGenre_Normal ? self.acceptStatement : self.nobelAcceptStatement; + [self refurbishPeriodRegardDeclare:list]; + [self.acceptAssembletionRegard reloadData]; + } else { + if (self.chosenChampionProvision.faceType == ChamberFaceTitleProvisionGenre_Normal) { + ChamberAcceptAbstractMatrix * acceptAbstract = [self.acceptStatement secureGroalTowardsIndictowardsrix1:indexPath.row]; + [self prohibitichargeAcceptIndividualityCommunictowardsion:acceptAbstract]; + } else { + if (indexPath.row < self.nobelAcceptStatement.count) { + ChamberAcceptAbstractMatrix * acceptAbstract = [self.nobelAcceptStatement secureGroalTowardsIndictowardsrix1:indexPath.row]; + if (acceptAbstract.faceVipInfo.vipLevel > self.userInfo.userVipInfoVO.vipLevel) { + MKJPrecautiousDisposition *config = [[MKJPrecautiousDisposition alloc] init]; + config.message = [NSString stringWithFormat:@"尚未达到发送%@所需贵族等级,\n 所需贵族等级:%@", acceptAbstract.name,acceptAbstract.faceVipInfo.vipName]; + config.performanceStyle = TTAlertActionConfirmStyle; + [MKJPopup precautiousAboutDisposition:config acknowledgementHandler:^{ + + } cancelHandler:^{ + + }]; + } else { + [self prohibitichargeAcceptIndividualityCommunictowardsion:acceptAbstract]; + } + } + } + } +} + +#pragma mark - FBCChamberFaceCeremony +- (void)acquireChamberOrdinaryAcceptSttowardsementAccomplishment:(NSArray *)list { + self.acceptStatement = list; + [self refurbishPeriodRegardDeclare:list]; + [self.acceptAssembletionRegard reloadData]; +} + +- (void)acquireChamberGuruAcceptSttowardsementAccomplishment:(NSArray *)list { + self.nobelAcceptStatement = list; + [self.acceptAssembletionRegard reloadData]; +} + +- (void)acquireConsumerAbstractAccomplishment:(ConsumerAbstractMatrix *)userInfo { + self.userInfo = userInfo; + [self.acceptAssembletionRegard reloadData]; +} +#pragma mark - Event Response +- (void)magnificentPrivilBtutonPerformance:(UIButton *)sender { + [self dismissViewControllerAnimated:YES completion:nil]; + return; +} + +- (void)prohibitiaplictowardsionarRegardRecognition { + [self dismissViewControllerAnimated:YES completion:nil]; +} + +#pragma mark - Getters And Setters +- (UIView *)apexRegard { + if (!_apexRegard) { + _apexRegard = [[UIView alloc] init]; + _apexRegard.backgroundColor = [UIColor colorWithWhite:0 alpha:0.3]; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(prohibitiaplictowardsionarRegardRecognition)]; + [_apexRegard addGestureRecognizer:tap]; + } + return _apexRegard; +} + +- (UIView *)contentView { + if (!_contentView) { + _contentView = [[UIView alloc] init]; + _contentView.backgroundColor = UIColorFromRGB(0x0D0C11); + } + return _contentView; +} + +- (UIVisualEffectView *)impressionRegard { + if (!_impressionRegard) { + UIBlurEffect *effect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleDark]; + _impressionRegard = [[UIVisualEffectView alloc]initWithEffect:effect]; + _impressionRegard.alpha = 1; + } + return _impressionRegard; +} + +- (UIStackView *)stackView { + if (!_stackView) { + _stackView = [[UIStackView alloc] init]; + _stackView.axis = UILayoutConstraintAxisVertical; + _stackView.distribution = UIStackViewDistributionFill; + _stackView.alignment = UIStackViewAlignmentFill; + _stackView.spacing =10; + } + return _stackView; +} + +- (UIStackView *)championHierarchyRegard { + if (!_championHierarchyRegard) { + _championHierarchyRegard = [[UIStackView alloc] init]; + _championHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _championHierarchyRegard.distribution = UIStackViewDistributionFill; + _championHierarchyRegard.alignment = UIStackViewAlignmentBottom; + _championHierarchyRegard.spacing = 10; + CAShapeLayer * layer = [CAShapeLayer layer]; + UIBezierPath * path = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, KScreenWidth, 53) byRoundingCorners:UIRectCornerTopLeft | UIRectCornerTopRight cornerRadii:CGSizeMake(12, 12)]; + layer.path = path.CGPath; + _championHierarchyRegard.layer.masksToBounds = YES; + _championHierarchyRegard.layer.mask = layer;; + } + return _championHierarchyRegard; +} + +- (UIButton *)magnificentPrivilBtuton { + if (!_magnificentPrivilBtuton) { + _magnificentPrivilBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_magnificentPrivilBtuton setImage:[UIImage imageNamed:@"yumi_scope_face_nobel_privil"] forState:UIControlStateNormal]; + [_magnificentPrivilBtuton setImage:[UIImage imageNamed:@"yumi_scope_face_nobel_privil"] forState:UIControlStateSelected]; + [_magnificentPrivilBtuton addTarget:self action:@selector(magnificentPrivilBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + _magnificentPrivilBtuton.hidden = YES; + [_magnificentPrivilBtuton setContentHuggingPriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal]; + } + return _magnificentPrivilBtuton; +} + + +- (UICollectionView *)championAssembletionRegard{ + if (!_championAssembletionRegard) { + UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init]; + layout.scrollDirection = UICollectionViewScrollDirectionHorizontal; + layout.minimumLineSpacing = 15; + _championAssembletionRegard = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout]; + _championAssembletionRegard.dataSource = self; + _championAssembletionRegard.delegate = self; + _championAssembletionRegard.backgroundColor = [UIColor clearColor]; + [_championAssembletionRegard registerClass:[YUMIChamberAcceptChampionAssembletionRegardElement class] forCellWithReuseIdentifier:NSStringFromClass([YUMIChamberAcceptChampionAssembletionRegardElement class])]; + } + return _championAssembletionRegard; +} + +- (UICollectionView *)acceptAssembletionRegard{ + if (!_acceptAssembletionRegard) { + YUMIChamberAcceptAssembletionFlowProgramming *layout = [[YUMIChamberAcceptAssembletionFlowProgramming alloc] init]; + layout.minimumLineSpacing = 10; + layout.minimumInteritemSpacing = 10; + layout.sectionInset = UIEdgeInsetsMake(0, 0, 0, 0); + _acceptAssembletionRegard = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout]; + _acceptAssembletionRegard.dataSource = self; + _acceptAssembletionRegard.delegate = self; + _acceptAssembletionRegard.backgroundColor = [UIColor clearColor]; + _acceptAssembletionRegard.pagingEnabled = YES; + [_acceptAssembletionRegard registerClass:[YUMIChamberAcceptAssembletionRegardElement class] forCellWithReuseIdentifier:NSStringFromClass([YUMIChamberAcceptAssembletionRegardElement class])]; + } + return _acceptAssembletionRegard; +} + +- (UIPageControl *)periodRegard { + if (!_periodRegard) { + _periodRegard = [[UIPageControl alloc] init]; + _periodRegard.currentPageIndicatorTintColor = [UIColor whiteColor]; + } + return _periodRegard; +} + +- (NSArray *)championStatement { + if (!_championStatement) { + ChamberAcceptChampionProvisionMatrix * normalItem = [[ChamberAcceptChampionProvisionMatrix alloc] init]; + normalItem.title= YMLocalizedString(@"YUMI_Room_Face_View_Controller_2"); + normalItem.isSelect = YES; + normalItem.faceType = ChamberFaceTitleProvisionGenre_Normal; + + ChamberAcceptChampionProvisionMatrix * nobelItem = [[ChamberAcceptChampionProvisionMatrix alloc] init]; + nobelItem.title= YMLocalizedString(@"YUMI_Room_Face_View_Controller_3"); + nobelItem.isSelect = NO; + nobelItem.faceType = ChamberFaceTitleProvisionGenre_Nobel; + _championStatement = @[normalItem, nobelItem]; + } + return _championStatement; +} + + +@end diff --git a/YuMi/Modules/YMRoom/View/FirstRecharge/Api/Api+FirstRecharge.h b/YuMi/Modules/YMRoom/View/FirstRecharge/Api/Api+FirstRecharge.h new file mode 100644 index 00000000..f241d4df --- /dev/null +++ b/YuMi/Modules/YMRoom/View/FirstRecharge/Api/Api+FirstRecharge.h @@ -0,0 +1,18 @@ +// +// Api+FirstRecharge.h +// YUMI +// +// Created by YUMI on 2021/12/23. +// + +#import "Api.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface Api (FirstRecharge) + ++ (void)thresholdReindictCompenstowardsionSttowardsement:(HttpRequestHelperCompletion)completion channelType:(NSString *)channelType; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/FirstRecharge/Api/Api+FirstRecharge.m b/YuMi/Modules/YMRoom/View/FirstRecharge/Api/Api+FirstRecharge.m new file mode 100644 index 00000000..776acd97 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/FirstRecharge/Api/Api+FirstRecharge.m @@ -0,0 +1,18 @@ +// +// Api+FirstRecharge.m +// YUMI +// +// Created by YUMI on 2021/12/23. +// + +#import "Api+FirstRecharge.h" +#import +@implementation Api (FirstRecharge) + + ++ (void)thresholdReindictCompenstowardsionSttowardsement:(HttpRequestHelperCompletion)completion channelType:(NSString *)channelType { + NSString * fang = [NSString stringFromBase64String:@"Zmlyc3QvY2hhcmdlL2xpc3Q="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, channelType, nil]; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/FirstRecharge/Model/ThresholdChargeChamberWindowMatrix.h b/YuMi/Modules/YMRoom/View/FirstRecharge/Model/ThresholdChargeChamberWindowMatrix.h new file mode 100644 index 00000000..944e6d2e --- /dev/null +++ b/YuMi/Modules/YMRoom/View/FirstRecharge/Model/ThresholdChargeChamberWindowMatrix.h @@ -0,0 +1,18 @@ +// +// ThresholdChargeChamberWindowMatrix.h +// YuMi +// +// Created by YuMi on 2023/6/21. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface ThresholdChargeChamberWindowMatrix : NSObject +@property (nonatomic,assign) BOOL needToShow; +@property (nonatomic,copy) NSString *roomUid; +@property (nonatomic,assign) NSInteger showAfterSecond; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/FirstRecharge/Model/ThresholdChargeChamberWindowMatrix.m b/YuMi/Modules/YMRoom/View/FirstRecharge/Model/ThresholdChargeChamberWindowMatrix.m new file mode 100644 index 00000000..82aebc1b --- /dev/null +++ b/YuMi/Modules/YMRoom/View/FirstRecharge/Model/ThresholdChargeChamberWindowMatrix.m @@ -0,0 +1,12 @@ +// +// ThresholdChargeChamberWindowMatrix.m +// YuMi +// +// Created by YuMi on 2023/6/21. +// + +#import "ThresholdChargeChamberWindowMatrix.h" + +@implementation ThresholdChargeChamberWindowMatrix + +@end diff --git a/YuMi/Modules/YMRoom/View/FirstRecharge/Model/ThresholdReindictMatrix.h b/YuMi/Modules/YMRoom/View/FirstRecharge/Model/ThresholdReindictMatrix.h new file mode 100644 index 00000000..3123136d --- /dev/null +++ b/YuMi/Modules/YMRoom/View/FirstRecharge/Model/ThresholdReindictMatrix.h @@ -0,0 +1,24 @@ +// +// ThresholdReindictMatrix.h +// YUMI +// +// Created by YUMI on 2021/12/23. +// + +#import +#import "ThresholdReindictRewardMatrix.h" +NS_ASSUME_NONNULL_BEGIN + +@interface ThresholdReindictMatrix : NSObject +@property(nonatomic, assign) CGFloat chargeMoney; +@property(nonatomic, strong) NSString *chargeProdId; +@property(nonatomic, strong) NSString *chargeProdDesc; +@property(nonatomic, strong) NSString *chargeProdTitle; +@property(nonatomic, strong) NSArray *firstChargeRewardList; +@property (nonatomic, assign) NSInteger giveMoney; + +@property (nonatomic, assign) BOOL finishCharge; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/FirstRecharge/Model/ThresholdReindictMatrix.m b/YuMi/Modules/YMRoom/View/FirstRecharge/Model/ThresholdReindictMatrix.m new file mode 100644 index 00000000..2676e243 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/FirstRecharge/Model/ThresholdReindictMatrix.m @@ -0,0 +1,16 @@ +// +// ThresholdReindictMatrix.m +// YUMI +// +// Created by YUMI on 2021/12/23. +// + +#import "ThresholdReindictMatrix.h" + +@implementation ThresholdReindictMatrix + ++ (NSDictionary *)objectCtowardsegorizeInGarment { + return @{@"firstChargeRewardList": ThresholdReindictRewardMatrix.class}; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/FirstRecharge/Model/ThresholdReindictRewardMatrix.h b/YuMi/Modules/YMRoom/View/FirstRecharge/Model/ThresholdReindictRewardMatrix.h new file mode 100644 index 00000000..ed9df144 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/FirstRecharge/Model/ThresholdReindictRewardMatrix.h @@ -0,0 +1,20 @@ +// +// ThresholdReindictRewardMatrix.h +// YUMI +// +// Created by YUMI on 2021/12/23. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface ThresholdReindictRewardMatrix : NSObject +@property (nonatomic, assign) long rewardId; +@property(nonatomic, strong) NSString *showPir; +@property(nonatomic, strong) NSString *showText; +@property(nonatomic, copy) NSString * showTime; +@property (nonatomic, strong) NSString *rid; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/FirstRecharge/Model/ThresholdReindictRewardMatrix.m b/YuMi/Modules/YMRoom/View/FirstRecharge/Model/ThresholdReindictRewardMatrix.m new file mode 100644 index 00000000..690291f2 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/FirstRecharge/Model/ThresholdReindictRewardMatrix.m @@ -0,0 +1,16 @@ +// +// ThresholdReindictRewardMatrix.m +// YUMI +// +// Created by YUMI on 2021/12/23. +// + +#import "ThresholdReindictRewardMatrix.h" + +@implementation ThresholdReindictRewardMatrix + ++ (NSDictionary *)replacedDigitalByvirtueofMaintainertyConstitute { + return @{@"id": @"fid"}; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/FirstRecharge/Presenter/YUMIThresholdReindictExternalizer.h b/YuMi/Modules/YMRoom/View/FirstRecharge/Presenter/YUMIThresholdReindictExternalizer.h new file mode 100644 index 00000000..9953a36a --- /dev/null +++ b/YuMi/Modules/YMRoom/View/FirstRecharge/Presenter/YUMIThresholdReindictExternalizer.h @@ -0,0 +1,16 @@ +// +// YMFirstRechargePresenter.h +// YUMI +// +// Created by YUMI on 2021/12/23. +// + +#import "BaseMvpExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIThresholdReindictExternalizer : BaseMvpExternalizer +- (void)acquireThresholdReindictCompenstowardsionSttowardsement; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/FirstRecharge/Presenter/YUMIThresholdReindictExternalizer.m b/YuMi/Modules/YMRoom/View/FirstRecharge/Presenter/YUMIThresholdReindictExternalizer.m new file mode 100644 index 00000000..7dfd7104 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/FirstRecharge/Presenter/YUMIThresholdReindictExternalizer.m @@ -0,0 +1,22 @@ +// +// YMFirstRechargePresenter.m +// YUMI +// +// Created by YUMI on 2021/12/23. +// + +#import "YUMIThresholdReindictExternalizer.h" +#import "Api+FirstRecharge.h" +#import "ThresholdReindictMatrix.h" +#import "FBCFirstReindictCeremony.h" + +@implementation YUMIThresholdReindictExternalizer + +- (void)acquireThresholdReindictCompenstowardsionSttowardsement { + [Api thresholdReindictCompenstowardsionSttowardsement:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + NSArray * array = [ThresholdReindictMatrix mtowardsrixsAboutGarment:data.data]; + [[self acquireRegard] acquireThresholdReindictSttowardsementAccomplishment:array]; + } EvidenceChambering:YES] channelType:@"3"]; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/FirstRecharge/Protocol/FBCFirstReindictCeremony.h b/YuMi/Modules/YMRoom/View/FirstRecharge/Protocol/FBCFirstReindictCeremony.h new file mode 100644 index 00000000..21b276f3 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/FirstRecharge/Protocol/FBCFirstReindictCeremony.h @@ -0,0 +1,18 @@ +// +// YMFirstRechargeProtocol.h +// YUMI +// +// Created by YUMI on 2021/12/23. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol FBCFirstReindictCeremony + +- (void)acquireThresholdReindictSttowardsementAccomplishment:(NSArray *)array; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/FirstRecharge/ThemeColor+FirstRecharge.h b/YuMi/Modules/YMRoom/View/FirstRecharge/ThemeColor+FirstRecharge.h new file mode 100644 index 00000000..e03efb69 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/FirstRecharge/ThemeColor+FirstRecharge.h @@ -0,0 +1,31 @@ +// +// ThemeColor+FirstRecharge.h +// YUMI +// +// Created by YUMI on 2021/12/24. +// + +#import "DJDKMIMOMColor.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface DJDKMIMOMColor (FirstRecharge) ++ (UIColor *)thresholdReindictEssayPrettify; + ++ (UIColor *)compenstowardsionIntrtowardsemporalBtutonObliquityInititowardsePrettify; + ++ (UIColor *)compenstowardsionIntrtowardsemporalBtutonObliquityConcludePrettify; + ++ (UIColor *)compenstowardsionReminderEssayPrettify; + ++ (UIColor *)compenstowardsionMaintainortionEssayPrettify; + ++ (UIColor *)compenstowardsionMaintainortionOrdinaryEssayPrettify; ++ (UIColor *)compenstowardsionMaintainortionOrdinaryBackgroundPrettify; ++ (UIColor *)thresholdReindictEncouragegroundPrettify; + ++ (UIColor *)compenstowardsionEncouragegroundObliquityMiddlePrettify; ++ (UIColor *)compenstowardsionEncouragegroundObliquityApeyUMIrettify; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/FirstRecharge/ThemeColor+FirstRecharge.m b/YuMi/Modules/YMRoom/View/FirstRecharge/ThemeColor+FirstRecharge.m new file mode 100644 index 00000000..a004866e --- /dev/null +++ b/YuMi/Modules/YMRoom/View/FirstRecharge/ThemeColor+FirstRecharge.m @@ -0,0 +1,51 @@ +// +// ThemeColor+FirstRecharge.m +// YUMI +// +// Created by YUMI on 2021/12/24. +// + +#import "ThemeColor+FirstRecharge.h" + +@implementation DJDKMIMOMColor (FirstRecharge) + ++ (UIColor *)thresholdReindictEssayPrettify { + return UIColorFromRGB(0xFFFFFF); +} + ++ (UIColor *)compenstowardsionIntrtowardsemporalBtutonObliquityInititowardsePrettify { + return UIColorFromRGB(0xFFB556); +} ++ (UIColor *)compenstowardsionIntrtowardsemporalBtutonObliquityConcludePrettify { + return UIColorFromRGB(0xFE581E); +} + ++ (UIColor *)compenstowardsionReminderEssayPrettify { + return UIColorFromRGB(0xFB486A); +} + ++ (UIColor *)compenstowardsionMaintainortionEssayPrettify { + return UIColorFromRGB(0xFFFFFF); +} + ++ (UIColor *)compenstowardsionMaintainortionOrdinaryEssayPrettify { + return UIColorFromRGB(0x845DFF); +} + ++ (UIColor *)compenstowardsionMaintainortionOrdinaryBackgroundPrettify { + return UIColorFromRGB(0xE0B4FF); +} + ++ (UIColor *)thresholdReindictEncouragegroundPrettify { + return UIColorRGBAlpha(0x000000, 0.3); +} + ++ (UIColor *)compenstowardsionEncouragegroundObliquityApeyUMIrettify { + return UIColorFromRGB(0x5226AB); +} + ++ (UIColor *)compenstowardsionEncouragegroundObliquityMiddlePrettify { + return UIColorFromRGB(0x5D31B3); +} + +@end diff --git a/YuMi/Modules/YMRoom/View/FirstRecharge/View/Cell/YUMIThresholdReindictAssembletionRegardElement.h b/YuMi/Modules/YMRoom/View/FirstRecharge/View/Cell/YUMIThresholdReindictAssembletionRegardElement.h new file mode 100644 index 00000000..da6d9857 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/FirstRecharge/View/Cell/YUMIThresholdReindictAssembletionRegardElement.h @@ -0,0 +1,16 @@ +// +// YMFirstRechargeCollectionViewCell.h +// YUMI +// +// Created by YUMI on 2021/12/24. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class ThresholdReindictRewardMatrix; +@interface YUMIThresholdReindictAssembletionRegardElement : UICollectionViewCell +@property (nonatomic,strong) ThresholdReindictRewardMatrix *compensationAbstract; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/FirstRecharge/View/Cell/YUMIThresholdReindictAssembletionRegardElement.m b/YuMi/Modules/YMRoom/View/FirstRecharge/View/Cell/YUMIThresholdReindictAssembletionRegardElement.m new file mode 100644 index 00000000..f22836e0 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/FirstRecharge/View/Cell/YUMIThresholdReindictAssembletionRegardElement.m @@ -0,0 +1,110 @@ +// +// YMFirstRechargeCollectionViewCell.m +// YUMI +// +// Created by YUMI on 2021/12/24. +// + +#import "YUMIThresholdReindictAssembletionRegardElement.h" +#import +#import "ThemeColor+FirstRecharge.h" +#import "NetIndicateRegard.h" +#import "UIImage+Utils.h" +#import "ThresholdReindictRewardMatrix.h" + +@interface YUMIThresholdReindictAssembletionRegardElement () +@property (nonatomic, strong) NetIndicateRegard *figureIndicateRegard; +@property (nonatomic, strong) UILabel *titleLabel; +@property (nonatomic, strong) UIButton *intratemporalBtuton; +@end + +@implementation YUMIThresholdReindictAssembletionRegardElement + +- (instancetype)initWithFrame:(CGRect)frame{ + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews{ + [self addSubview:self.figureIndicateRegard]; + [self addSubview:self.titleLabel]; + [self addSubview:self.intratemporalBtuton]; +} + +- (void)initChildLyRestrictions{ + [self.figureIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(0); + make.centerX.mas_equalTo(self.mas_centerX); + make.width.height.mas_equalTo(60); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self); + make.height.mas_equalTo(10); + make.bottom.mas_equalTo(0); + make.left.mas_equalTo(0); + }]; + + [self.intratemporalBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.right.mas_equalTo(self.figureIndicateRegard); + make.height.mas_equalTo(12); + make.width.mas_equalTo(30); + }]; + +} + +#pragma mark - setupData +- (void)setCompensationAbstract:(ThresholdReindictRewardMatrix *)compensationAbstract { + _compensationAbstract = compensationAbstract; + self.intratemporalBtuton.hidden = !(_compensationAbstract.showTime > 0); + [self.intratemporalBtuton setTitle:[NSString stringWithFormat:@"%@", _compensationAbstract.showTime] forState:UIControlStateNormal]; + self.titleLabel.text = _compensationAbstract.showText; + self.figureIndicateRegard.imageUrl = _compensationAbstract.showPir; +} + + +- (UIImageView *)figureIndicateRegard { + if (!_figureIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc] init]; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + config.imageType = ImageGenreUserIcon; + _figureIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _figureIndicateRegard.backgroundColor = UIColorFromRGB(0xE0B4FF); + _figureIndicateRegard.layer.cornerRadius = 4; + _figureIndicateRegard.layer.masksToBounds = YES; + _figureIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _figureIndicateRegard; +} + +- (UILabel *)titleLabel{ + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.textColor = UIColorFromRGB(0x845DFF); + _titleLabel.font = [UIFont systemFontOfSize:10]; + _titleLabel.textAlignment = NSTextAlignmentCenter; + } + return _titleLabel; +} + +- (UIButton *)intratemporalBtuton{ + if (!_intratemporalBtuton) { + _intratemporalBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_intratemporalBtuton setTitleColor:[DJDKMIMOMColor thresholdReindictEssayPrettify] forState:UIControlStateNormal]; + _intratemporalBtuton.titleLabel.font = [UIFont systemFontOfSize:10]; + [_intratemporalBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor compenstowardsionIntrtowardsemporalBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor compenstowardsionIntrtowardsemporalBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + _intratemporalBtuton.hidden = YES; + UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, 30, 12) byRoundingCorners:UIRectCornerBottomLeft | UIRectCornerTopRight cornerRadii:CGSizeMake(4, 4)]; + CAShapeLayer *maskLayer = [CAShapeLayer layer]; + maskLayer.path = path.CGPath; + _intratemporalBtuton.layer.mask = maskLayer; + } + return _intratemporalBtuton; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/FirstRecharge/View/Cell/YUMIThresholdReindictFlowProgramming.h b/YuMi/Modules/YMRoom/View/FirstRecharge/View/Cell/YUMIThresholdReindictFlowProgramming.h new file mode 100644 index 00000000..fe334521 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/FirstRecharge/View/Cell/YUMIThresholdReindictFlowProgramming.h @@ -0,0 +1,16 @@ +// +// YMFirstRechargeFlowLayout.h +// YUMI +// +// Created by YUMI on 2021/12/24. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIThresholdReindictFlowProgramming : UICollectionViewFlowLayout + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/FirstRecharge/View/Cell/YUMIThresholdReindictFlowProgramming.m b/YuMi/Modules/YMRoom/View/FirstRecharge/View/Cell/YUMIThresholdReindictFlowProgramming.m new file mode 100644 index 00000000..6dacaa0c --- /dev/null +++ b/YuMi/Modules/YMRoom/View/FirstRecharge/View/Cell/YUMIThresholdReindictFlowProgramming.m @@ -0,0 +1,92 @@ +// +// YMFirstRechargeFlowLayout.m +// YUMI +// +// Created by YUMI on 2021/12/24. +// + +#import "YUMIThresholdReindictFlowProgramming.h" + +@interface YUMIThresholdReindictFlowProgramming () +@property (nonatomic,assign) CGFloat universalY; +@property (nonatomic,assign) CGFloat universalX; +@property (nonatomic,strong) NSMutableArray *attributeGarment; +@end + +@implementation YUMIThresholdReindictFlowProgramming + + +- (void)prepareLayout { + [super prepareLayout]; + NSInteger count = [self.collectionView numberOfItemsInSection:0]; + _universalX = self.sectionInset.left; + _universalY = self.sectionInset.top; + _attributeGarment = [NSMutableArray array]; + for (int i = 0; i< count; i++) { + NSIndexPath * indexPath = [NSIndexPath indexPathForRow:i inSection:0]; + UICollectionViewLayoutAttributes * attributes = [self layoutAttributesForItemAtIndexPath:indexPath]; + [self.attributeGarment addObject:attributes]; + } + +} + +- (UICollectionViewLayoutAttributes *)layoutAttributesForItemAtIndexPath:(NSIndexPath *)indexPath { + CGFloat contentWidth = self.collectionView.frame.size.width - self.sectionInset.left - self.sectionInset.right; + CGFloat contentHeight = self.collectionView.frame.size.height - self.sectionInset.top - self.sectionInset.bottom; + UICollectionViewLayoutAttributes * temp= [UICollectionViewLayoutAttributes layoutAttributesForCellWithIndexPath:indexPath]; + NSInteger count = [self.collectionView numberOfItemsInSection:0]; + CGFloat itemWidth = self.itemSize.width; + CGFloat itemAltitude = self.itemSize.height; + CGRect frame; + frame.size = self.itemSize; + if (count == 6) { + CGFloat vacuum =(contentWidth - itemWidth * 3) / 2; + CGFloat temIndexRow = indexPath.row % 3; + CGFloat temIndex = indexPath.row / 3; + _universalX = temIndexRow *(itemWidth + vacuum) + self.sectionInset.left; + _universalY = (itemAltitude + self.minimumLineSpacing) * temIndex + self.sectionInset.top; + + } else if(count == 5) { + CGFloat vacuum =(contentWidth - itemWidth * 3) / 2; + CGFloat temIndexRow = indexPath.row % 3; + CGFloat temIndex = indexPath.row / 3; + if (temIndex > 0) { + CGFloat leftSpace = (contentWidth - itemWidth * 2) /3; + _universalX = temIndexRow *itemWidth + leftSpace * (temIndexRow + 1) + self.sectionInset.left; + _universalY = (itemAltitude + self.minimumLineSpacing) * temIndex + self.sectionInset.top; + } else { + _universalX = temIndexRow *(itemWidth + vacuum) + self.sectionInset.left; + _universalY = (itemAltitude + self.minimumLineSpacing) * temIndex + self.sectionInset.top; + } + } else if(count == 4) { + CGFloat vacuum = (contentWidth - itemWidth * 2) / 3; + CGFloat temIndexRow = indexPath.row % 2; + CGFloat temIndex = indexPath.row / 2; + _universalX = temIndexRow *itemWidth + vacuum * (temIndexRow + 1) + self.sectionInset.left; + _universalY = (itemAltitude + self.minimumLineSpacing) * temIndex + self.sectionInset.top; + } else if(count == 3) { + CGFloat vacuum =(contentWidth - itemWidth * 3) / 2; + CGFloat temIndexRow = indexPath.row % 3; + _universalX = temIndexRow *(itemWidth + vacuum) + self.sectionInset.left; + _universalY = (contentHeight - itemAltitude) / 2 + self.sectionInset.top; + } else if(count == 2) { + CGFloat vacuum = (contentWidth - itemWidth * 2) / 3; + CGFloat temIndexRow = indexPath.row % 2; + _universalX = temIndexRow *itemWidth + vacuum * (temIndexRow + 1) + self.sectionInset.left; + _universalY = (contentHeight - itemAltitude) / 2 + self.sectionInset.top; + }else if(count == 1) { + _universalX = (contentWidth - itemWidth) / 2 + self.sectionInset.left; + _universalY = (contentHeight - itemAltitude) / 2 + self.sectionInset.top; + } + frame.origin = CGPointMake(_universalX, _universalY); + temp.frame = frame; + return temp; +} +- (CGSize)collectionViewContentSize { + return CGSizeMake(1, _universalY + self.itemSize.height + self.sectionInset.bottom); +} + +- (NSArray<__kindof UICollectionViewLayoutAttributes *> *)layoutAttributesForElementsInRect:(CGRect)rect { + return _attributeGarment; +} +@end diff --git a/YuMi/Modules/YMRoom/View/FirstRecharge/View/YUMIThresholdReindictAssembletionRegard.h b/YuMi/Modules/YMRoom/View/FirstRecharge/View/YUMIThresholdReindictAssembletionRegard.h new file mode 100644 index 00000000..8beaa4e7 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/FirstRecharge/View/YUMIThresholdReindictAssembletionRegard.h @@ -0,0 +1,17 @@ +// +// YUMIThresholdReindictAssembletionRegard.h +// YuMi +// +// Created by YuMi on 2023/2/21. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class ThresholdReindictRewardMatrix; +@interface YUMIThresholdReindictAssembletionRegard : UIView +@property (nonatomic,strong) ThresholdReindictRewardMatrix *compensationAbstract; +- (instancetype)initWithFrame:(CGRect)frame isThreshold:(BOOL)isThreshold; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/FirstRecharge/View/YUMIThresholdReindictAssembletionRegard.m b/YuMi/Modules/YMRoom/View/FirstRecharge/View/YUMIThresholdReindictAssembletionRegard.m new file mode 100644 index 00000000..faa3fb10 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/FirstRecharge/View/YUMIThresholdReindictAssembletionRegard.m @@ -0,0 +1,131 @@ +// +// YUMIThresholdReindictAssembletionRegard.m +// YuMi +// +// Created by YuMi on 2023/2/21. +// +///Third +#import +#import "ThemeColor+FirstRecharge.h" +#import "NetIndicateRegard.h" +#import "UIImage+Utils.h" +#import "YUMIMacroUitls.h" +#import "UIView+Corner.h" +#import "ThresholdReindictRewardMatrix.h" +#import "YUMIThresholdReindictAssembletionRegard.h" +@interface YUMIThresholdReindictAssembletionRegard() +@property (nonatomic,strong) UIImageView *backgroundIndicateRegard; +@property (nonatomic, strong) NetIndicateRegard *figureIndicateRegard; +@property (nonatomic, strong) UILabel *titleLabel; +@property (nonatomic, strong) UIButton *intratemporalBtuton; +@property (nonatomic,assign) BOOL isThreshold; +@end +@implementation YUMIThresholdReindictAssembletionRegard +- (instancetype)initWithFrame:(CGRect)frame isThreshold:(BOOL)isThreshold{ + self = [super initWithFrame:frame]; + if (self) { + self.isThreshold = isThreshold; + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews{ + [self addSubview:self.backgroundIndicateRegard]; + [self addSubview:self.figureIndicateRegard]; + [self addSubview:self.titleLabel]; + [self addSubview:self.intratemporalBtuton]; +} + +- (void)initChildLyRestrictions{ + CGFloat bgWidth = self.isThreshold == YES ? kGetScaleWidth(100) : kGetScaleWidth(65); + [self.backgroundIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.top.equalTo(self); + make.width.height.mas_equalTo(bgWidth); + }]; + + CGFloat iconWidth = self.isThreshold == YES ? kGetScaleWidth(74) : kGetScaleWidth(48); + [self.figureIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.center.equalTo(self.backgroundIndicateRegard); + make.width.height.mas_equalTo(iconWidth); + }]; + CGFloat titleWidth = self.isThreshold == YES ? kGetScaleWidth(18):kGetScaleWidth(15); + CGFloat top = self.isThreshold == YES ? kGetScaleWidth(8):kGetScaleWidth(4); + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(titleWidth); + make.left.right.equalTo(self); + make.top.equalTo(self.backgroundIndicateRegard.mas_bottom).mas_offset(top); + }]; + CGSize size = self.isThreshold == YES ? CGSizeMake(kGetScaleWidth(40), kGetScaleWidth(12)):CGSizeMake(kGetScaleWidth(29), kGetScaleWidth(11)); + CGFloat timeTop = _isThreshold == YES ? kGetScaleWidth(3) :kGetScaleWidth(2); + [self.intratemporalBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.left.mas_equalTo(self.backgroundIndicateRegard).mas_offset(timeTop); + make.size.mas_equalTo(size); + }]; + +} + +#pragma mark - setupData +- (void)setCompensationAbstract:(ThresholdReindictRewardMatrix *)compensationAbstract { + _compensationAbstract = compensationAbstract; + self.intratemporalBtuton.hidden = !(_compensationAbstract.showTime > 0); + [self.intratemporalBtuton setTitle:[NSString stringWithFormat:@"%@", _compensationAbstract.showTime] forState:UIControlStateNormal]; + self.titleLabel.text = _compensationAbstract.showText; + self.figureIndicateRegard.imageUrl = _compensationAbstract.showPir; +} + +- (UIImageView *)backgroundIndicateRegard{ + if (!_backgroundIndicateRegard){ + CGFloat width = _isThreshold == YES ? kGetScaleWidth(100):kGetScaleWidth(65); + _backgroundIndicateRegard = [UIImageView new]; + _backgroundIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_first_recharge_cell_background"]; + UIImage *bgImage = [UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[UIColorFromRGB(0xF4D2FF),UIColorFromRGB(0xF8E9FD)] gradientType:GradientGenreTopToBottom imgSize:CGSizeMake(width, width)]; + _backgroundIndicateRegard.backgroundColor = [UIColor colorWithPatternImage:bgImage]; + UIImage *lineImage = [UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[UIColorFromRGB(0xF8D6FF),UIColorFromRGB(0xF0BEFF)] gradientType:GradientGenreTopToBottom imgSize:CGSizeMake(width, width)]; + _backgroundIndicateRegard.layer.borderWidth = kGetScaleWidth(2); + _backgroundIndicateRegard.layer.borderColor = [UIColor colorWithPatternImage:lineImage].CGColor; + _backgroundIndicateRegard.layer.cornerRadius = _isThreshold == YES ? kGetScaleWidth(10) : kGetScaleWidth(6); + _backgroundIndicateRegard.layer.masksToBounds = YES; + } + return _backgroundIndicateRegard; +} +- (UIImageView *)figureIndicateRegard { + if (!_figureIndicateRegard) { + CGFloat width = _isThreshold == YES ? kGetScaleWidth(74):kGetScaleWidth(48); + NetIndicateDisposition * config = [[NetIndicateDisposition alloc] init]; + config.imageType = ImageGenreUserIcon; + _figureIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + UIImage *image = [UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[UIColorFromRGB(0xF8D6FF),UIColorFromRGB(0xF0BEFF)] gradientType:GradientGenreTopToBottom imgSize:CGSizeMake(width, width)]; + _figureIndicateRegard.image = image; + _figureIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _figureIndicateRegard; +} + +- (UILabel *)titleLabel{ + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.textColor = UIColorFromRGB(0x7E26B0); + _titleLabel.font = _isThreshold == YES ? [UIFont systemFontOfSize:13] : [UIFont systemFontOfSize:11]; + _titleLabel.textAlignment = NSTextAlignmentCenter; + } + return _titleLabel; +} + +- (UIButton *)intratemporalBtuton{ + if (!_intratemporalBtuton) { + CGSize size = _isThreshold == YES ? CGSizeMake(kGetScaleWidth(40), kGetScaleWidth(12)):CGSizeMake(kGetScaleWidth(29), kGetScaleWidth(11)); + CGFloat corner = _isThreshold == YES ? kGetScaleWidth(7):kGetScaleWidth(4); + _intratemporalBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_intratemporalBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + _intratemporalBtuton.titleLabel.font = [UIFont systemFontOfSize:9]; + _intratemporalBtuton.backgroundColor = [UIColor colorWithPatternImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[UIColorFromRGB(0xE669F7),UIColorFromRGB(0xE98EF4)] gradientType:GradientGenreLeftToRight imgSize:size]]; + _intratemporalBtuton.hidden = YES; + [_intratemporalBtuton setMonopolizeAboutContraryApexMonopolize:corner rightTopCorner:0 bottomLeftCorner:0 bottomRightCorner:corner size:size]; + } + return _intratemporalBtuton; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/FirstRecharge/View/YUMIThresholdReindictRegard.h b/YuMi/Modules/YMRoom/View/FirstRecharge/View/YUMIThresholdReindictRegard.h new file mode 100644 index 00000000..32370de7 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/FirstRecharge/View/YUMIThresholdReindictRegard.h @@ -0,0 +1,25 @@ +// +// YUMIThresholdReindictRegard.h +// YuMi +// +// Created by YuMi on 2023/2/27. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol FBCFirstReindictRegardRepresendtation + +-(void)reindictShank; + +@end + + +@interface YUMIThresholdReindictRegard : UIView +@property (nonatomic,copy) NSString * type; +@property (nonatomic,copy) NSString * diamonds; +@property (nonatomic,weak) iddelegate ; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/FirstRecharge/View/YUMIThresholdReindictRegard.m b/YuMi/Modules/YMRoom/View/FirstRecharge/View/YUMIThresholdReindictRegard.m new file mode 100644 index 00000000..0052f399 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/FirstRecharge/View/YUMIThresholdReindictRegard.m @@ -0,0 +1,521 @@ +// +// YUMIThresholdReindictRegard.m +// YuMi +// +// Created by YuMi on 2023/2/27. +// +///Third +#import +#import +#import "YUMIMacroUitls.h" +#import "ThemeColor+FirstRecharge.h" +#import "UIImage+Utils.h" +#import "YUMIThresholdReindictFlowProgramming.h" +#import "NSArray+Safe.h" +#import "XNDJTBWGLoadingTool.h" +#import "AccountAbstractStorage.h" +#import "YYUtility.h" +#import "Api+Mine.h" +#import "YUMIIAPFacilitater.h" +#import "ReindictStorage.h" +#import "ThresholdReindictMatrix.h" +#import "YUMIThresholdReindictAssembletionRegardElement.h" +#import "YUMIThresholdReindictAssembletionRegard.h" +#import "YUMIThresholdReindictExternalizer.h" +#import "FBCFirstReindictCeremony.h" +#import "YUMIManeReindictRegardGovernancer.h" +#import "YUMITissueRegardGovernancer.h" +#import "YUMIThresholdReindictRegard.h" +#import "Api+FirstRecharge.h" +#import "ThresholdReindictMatrix.h" +#import "YUMICommunicationSolitaireDisporterExecutive.h" +@interface YUMIThresholdReindictRegard () +@property (nonatomic,strong) UIButton *encourageBtuton; +@property (nonatomic,strong) UIImageView *encourageIndicateRegard; +@property (nonatomic,strong) UIImageView * compensationEncourageRegard; +@property (nonatomic,strong) UIImageView *genreArrowRegard; +@property (nonatomic,strong) UIStackView * segmentRegard; +@property (nonatomic,strong) UIButton *extraBtuton; +@property (nonatomic,strong) UICollectionView *collectionView; +@property (nonatomic,strong) UIButton *compensationFacilitateBtuton; +@property (nonatomic, strong) UIImageView *sequenceripBackgroundRegard; +@property (nonatomic, strong) UITextView *sequenceripEssayRegard; +@property (nonatomic, strong) UIButton *reindictBtuton; +@property (nonatomic,strong) NSArray *compensationGarment; +@property (nonatomic,strong) NSArray *derivationGarment; +@property (nonatomic,weak) UINavigationController * universalNev; +@property (nonatomic,strong) YUMIThresholdReindictAssembletionRegard *reindictRegard; +@property (nonatomic,strong) ThresholdReindictMatrix *universalAbstract; +@property (nonatomic,copy) NSString *indentId; +@end +@implementation YUMIThresholdReindictRegard + +- (void)dealloc { + [YUMIIAPFacilitater partowardsiciptowardsionFacilittowardseer].delegate = nil; +} + + +-(instancetype)initWithFrame:(CGRect)frame{ + self = [super initWithFrame:frame]; + if(self){ + [self initSubViews]; + [self initChildLyRestrictions]; + [self acquireThresholdReindictCompenstowardsionSttowardsement]; + [YUMIIAPFacilitater partowardsiciptowardsionFacilittowardseer].delegate = self; + + } + return self; +} + +-(void)acquireThresholdReindictCompenstowardsionSttowardsement{ + [XNDJTBWGLoadingTool EvidenceChambering]; + [Api thresholdReindictCompenstowardsionSttowardsement:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + [XNDJTBWGLoadingTool brakeHUD]; + if(code == 200){ + NSArray * array = [ThresholdReindictMatrix mtowardsrixsAboutGarment:data.data]; + [self acquireThresholdReindictSttowardsementAccomplishment:array]; + return; + } + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:msg]; + } channelType:@"3"]; +} +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor colorWithWhite:0 alpha:0.5]; + [self addSubview:self.encourageBtuton]; + [self addSubview:self.encourageIndicateRegard]; + [self.encourageIndicateRegard addSubview:self.compensationFacilitateBtuton]; + + [self.encourageIndicateRegard addSubview:self.segmentRegard]; + [self.encourageIndicateRegard addSubview:self.compensationEncourageRegard]; + [self.encourageIndicateRegard addSubview:self.genreArrowRegard]; + [self.compensationEncourageRegard addSubview:self.extraBtuton]; + [self.encourageIndicateRegard addSubview:self.reindictBtuton]; + [self.compensationEncourageRegard addSubview:self.collectionView]; + [self.compensationEncourageRegard addSubview:self.reindictRegard]; + [self addSubview:self.sequenceripBackgroundRegard]; + [self.sequenceripBackgroundRegard addSubview:self.sequenceripEssayRegard]; +} + +- (void)initChildLyRestrictions { + [self.encourageBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.equalTo(self); + }]; + [self.encourageIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.center.mas_equalTo(self); + make.height.mas_equalTo(kGetScaleWidth(460)); + make.width.mas_equalTo(kGetScaleWidth(306)); + }]; + [self.compensationFacilitateBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(-kGetScaleWidth(11)); + make.top.mas_equalTo(kGetScaleWidth(121)); + make.width.height.mas_equalTo(kGetScaleWidth(20)); + }]; + [self.segmentRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.compensationFacilitateBtuton.mas_bottom).mas_offset(kGetScaleWidth(12)); + make.height.mas_equalTo(kGetScaleWidth(30)); + make.right.mas_equalTo(-kGetScaleWidth(15)); + make.left.mas_equalTo(kGetScaleWidth(15)); + }]; + [self.compensationEncourageRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.equalTo(self.segmentRegard); + make.top.mas_equalTo(self.segmentRegard.mas_bottom).offset(kGetScaleWidth(12)); + make.height.mas_equalTo(kGetScaleWidth(230)); + }]; + [self.genreArrowRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(kGetScaleWidth(15)); + make.width.mas_equalTo(kGetScaleWidth(13)); + make.height.mas_equalTo(kGetScaleWidth(7)); + make.bottom.equalTo(self.compensationEncourageRegard.mas_top); + }]; + + [self.extraBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(kGetScaleWidth(276), kGetScaleWidth(20))); + make.top.mas_equalTo(kGetScaleWidth(11)); + make.centerX.mas_equalTo(self.compensationEncourageRegard); + }]; + [self.reindictBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(kGetScaleWidth(183), kGetScaleWidth(54))); + make.centerX.mas_equalTo(self.encourageIndicateRegard); + make.centerY.mas_equalTo(self.encourageIndicateRegard.mas_bottom); + }]; + + [self.collectionView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.extraBtuton.mas_bottom); + make.left.right.mas_equalTo(self.compensationEncourageRegard); + make.bottom.mas_equalTo(self.compensationEncourageRegard); + }]; + [self.reindictRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(kGetScaleWidth(127)); + make.center.equalTo(self.collectionView); + make.width.mas_equalTo(kGetScaleWidth(100)); + }]; + [self.sequenceripBackgroundRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.equalTo(self.compensationFacilitateBtuton.mas_bottom).mas_offset(-2); + make.right.equalTo(self.encourageIndicateRegard.mas_right).mas_offset(4); + make.width.mas_equalTo(152); + make.height.mas_equalTo(81); + }]; + [self.sequenceripEssayRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.sequenceripBackgroundRegard).offset(10); + make.right.mas_equalTo(self.sequenceripBackgroundRegard).inset(5); + make.left.mas_equalTo(self.sequenceripBackgroundRegard).inset(10); + make.bottom.mas_equalTo(self.sequenceripBackgroundRegard).mas_offset(-10); + }]; +} + +- (void)produceExtraCompenstowardsionTowardstrebute:(ThresholdReindictMatrix *)model { + self.sequenceripEssayRegard.text = model.chargeProdDesc; + + NSString * title = model.chargeProdTitle; + NSString * giveMoneyStr = [NSString stringWithFormat:@"%ld", model.giveMoney]; + NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] initWithString:title attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:12], NSForegroundColorAttributeName:UIColorFromRGB(0xBE5AF6)}]; + [attribute addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:12 weight:UIFontWeightSemibold] range:[title rangeOfString:giveMoneyStr]]; + [self.extraBtuton setAttributedTitle:attribute forState:UIControlStateNormal]; +} + +#pragma mark - FBCFirstReindictCeremony +- (void)acquireThresholdReindictSttowardsementAccomplishment:(NSArray *)array { + if (array.count <= 0) return; + self.genreArrowRegard.hidden = NO; + self.derivationGarment = array; + self.universalAbstract = [array secureGroalTowardsIndictowardsrix1:0]; + if (self.segmentRegard.arrangedSubviews.count > 0) { + [[self.segmentRegard arrangedSubviews] enumerateObjectsUsingBlock:^(__kindof UIView * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + [obj removeFromSuperview]; + }]; + } + for (int i = 0 ; i < array.count; i++) { + ThresholdReindictMatrix * modelInfo = [array secureGroalTowardsIndictowardsrix1:i]; + NSString * title = [NSString stringWithFormat:@"$%.2f", modelInfo.chargeMoney]; + UIButton * button = [UIButton buttonWithType:UIButtonTypeCustom]; + [button setTitleColor:[UIColor whiteColor] forState:UIControlStateSelected]; + [button setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + button.titleLabel.font = [UIFont systemFontOfSize:15 weight:UIFontWeightMedium]; + [button setTitle:title forState:UIControlStateNormal]; + [button setTitle:title forState:UIControlStateSelected]; + button.tag = i; + + [button addTarget:self action:@selector(buttonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + [button setBackgroundImage:[UIImage imageWithColor:[UIColor clearColor]] forState:UIControlStateNormal]; + [button setBackgroundImage:[UIImage imageNamed:@"yumi_scope_first_recharge_segment_select"] forState:UIControlStateSelected]; + [self.segmentRegard addArrangedSubview:button]; + if (i == 0) { + button.selected = YES; + [self produceExtraCompenstowardsionTowardstrebute:modelInfo]; + self.compensationGarment = modelInfo.firstChargeRewardList; + [self.collectionView reloadData]; + button.layer.cornerRadius = 0; + button.layer.masksToBounds = YES; + button.layer.borderWidth = 0; + }else{ + button.layer.cornerRadius = kGetScaleWidth(8); + button.layer.masksToBounds = YES; + button.layer.borderWidth = kGetScaleWidth(1); + button.layer.borderColor = [UIColor colorWithWhite:1 alpha:0.5].CGColor; + button.backgroundColor = [UIColor colorWithWhite:1 alpha:0.3]; + } + } + [self.segmentRegard layoutIfNeeded]; + CGFloat x = kGetScaleWidth(15) + self.segmentRegard.arrangedSubviews.firstObject.frame.origin.x + self.segmentRegard.arrangedSubviews.firstObject.frame.size.width / 2 - kGetScaleWidth(7)/2; + [self.genreArrowRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(x); + }]; + self.collectionView.hidden = self.compensationGarment.count < 2; + self.reindictRegard.hidden = self.compensationGarment.count != 1; + if(self.compensationGarment.count == 1){ + self.reindictRegard.compensationAbstract = self.compensationGarment.firstObject; + } +} + +#pragma mark - UICollectionViewDelegate And UICollectionViewDatasource +- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { + return self.compensationGarment.count; +} + +- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { + YUMIThresholdReindictAssembletionRegardElement * cell= [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([YUMIThresholdReindictAssembletionRegardElement class]) forIndexPath:indexPath]; + cell.compensationAbstract = [self.compensationGarment secureGroalTowardsIndictowardsrix1:indexPath.row]; + return cell; +} + +#pragma mark - 充值 +- (void)requisitionPCQReindictTellingAboutInstructionProdId:(NSString *)chargeProdId { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NSString * ticket = [AccountAbstractStorage instance].acquireTicket; + NSString * deviceInfo = [YYUtility deviceID]; + NSString * clientIp= [YYUtility ipAccelerateress]; + [Api requisitionPCQReindict:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + NSString *indentId = (NSString *)data.data[@"recordId"]; + [self requisitionPCQReindictTellingAccomplishment:indentId chargeProdId:chargeProdId]; + } else { + [XNDJTBWGLoadingTool brakeHUD]; + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:msg]; + } + } chargeProdId:chargeProdId uid:uid ticket:ticket deviceInfo:deviceInfo clientIp:clientIp]; +} + +- (void)requisitionPCQReindictTellingAccomplishment:(NSString *)indentId chargeProdId:(NSString *)chargeProdId { + if (indentId.length > 0) { + self.indentId = indentId; + [[YUMIIAPFacilitater partowardsiciptowardsionFacilittowardseer] acquireAplictowardsionProductAboutAplictowardsionProductId:chargeProdId]; + } +} +#pragma mark - FBCIAPHelperRepresendtation +- (void)reindictProcessPosition:(PaymentStatus)status { + [XNDJTBWGLoadingTool brakeHUD]; + if (status == PaymentStatus_Purchased) { + [XNDJTBWGLoadingTool EvidenceChambering]; + } else if (status == PaymentStatus_Purchasing) { + [XNDJTBWGLoadingTool EvidenceChambering]; + } else if (status == PaymentStatus_Failed) { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:YMLocalizedString(@"XPIAP_Recharge_View_Controller_0")]; + } else if (status == PaymentStatus_Deferred) { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:YMLocalizedString(@"XPIAP_Recharge_View_Controller_1")]; + } +} + +- (void)reindictAccomplishment:(NSString *)transactionIdentifier { + + [self preserveRechageReciptAboutTransperformanceAplictowardsionraiser:transactionIdentifier]; + NSData *receiptData = [NSData dataWithContentsOfURL:[[NSBundle mainBundle] appStoreReceiptURL]]; + NSString * receipt = [MF_Base64Codec base64StringFromData:receiptData]; + + [self examineReceiptAboutTowardsoloudspeaker:receipt indentId:self.indentId transcationId:transactionIdentifier]; +} + +- (void)preserveRechageReciptAboutTransperformanceAplictowardsionraiser:(NSString *)transactionIdentifier { + NSData *receipt = [NSData dataWithContentsOfURL:[[NSBundle mainBundle] appStoreReceiptURL]]; + NSString *encodeStr = [receipt base64EncodedStringWithOptions:NSDataBase64EncodingEndLineWithLineFeed]; + NSMutableDictionary *dictionary = [NSMutableDictionary dictionary]; + [dictionary setObject:transactionIdentifier forKey:@"transcationId"]; + [dictionary setObject:encodeStr forKey:@"recipt"]; + [dictionary setObject:self.indentId forKey:@"orderId"]; + NSString *reciptJson = [dictionary toJSONBWSttr]; + NSString * uid = [AccountAbstractStorage instance].acquireCid; + BOOL saveSuccess = [ReindictStorage preserveSplconcludeidId:transactionIdentifier recipt:reciptJson uid:uid]; + if (!saveSuccess) { +#warning to do 保存失败 需要埋点 + } +} + +- (void)representtowardsionRechageReciptAboutTransperformanceAplictowardsionraiser:(NSString *)transactionIdentifier { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + BOOL deleteSuccess = [ReindictStorage delegtowardseSplconcludeidId:transactionIdentifier uid:uid]; + if (deleteSuccess) { +#warning to do 保存失败 需要埋点 + } +} + +- (void)examineReceiptAboutTowardsoloudspeaker:(NSString *)receipt indentId:(NSString *)indentId transcationId:(NSString *)transcationId { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NSString * ticket = [AccountAbstractStorage instance].acquireTicket; + [Api checkReceipt:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + [self examineReceiptAccomplishment:transcationId]; + } else { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:msg]; + } + } receipt:receipt chooseEnv:@"true" chargeRecordId:indentId transcationId:transcationId uid:uid ticket:ticket]; +} + +- (void)examineReceiptAccomplishment:(NSString *)transcationId { + [self representtowardsionRechageReciptAboutTransperformanceAplictowardsionraiser:transcationId]; + self.indentId = nil; +} + +#pragma mark - Event Response + + +- (void)compenstowardsionFacilittowardseBtutonPerformance:(UIButton *)sender { + sender.selected = !sender.selected; + self.sequenceripBackgroundRegard.hidden = !sender.selected; +} + +- (void)reindictBtutonPerformance { + if (self.universalAbstract == nil|| self.universalAbstract.chargeProdId == nil) { + return; + } + ThresholdReindictMatrix *model = self.universalAbstract; + if (model.chargeProdId) { + [XNDJTBWGLoadingTool EvidenceChambering]; + [self requisitionPCQReindictTellingAboutInstructionProdId:model.chargeProdId]; + } +} +-(void)backAction{ + [self removeFromSuperview]; +} +- (void)buttonPerformance:(UIButton *)sender { + if (sender.tag <= self.derivationGarment.count) { + ThresholdReindictMatrix * model = [self.derivationGarment secureGroalTowardsIndictowardsrix1:sender.tag]; + self.universalAbstract = model; + [self produceExtraCompenstowardsionTowardstrebute:model]; + self.compensationGarment = model.firstChargeRewardList; + self.collectionView.hidden = self.compensationGarment.count < 2; + self.reindictRegard.hidden = self.compensationGarment.count != 1; + if(self.compensationGarment.count == 1){ + self.reindictRegard.compensationAbstract = self.compensationGarment.firstObject; + } + [self.collectionView reloadData]; + } + CGFloat x = kGetScaleWidth(15) + sender.frame.origin.x + sender.frame.size.width / 2 - kGetScaleWidth(7)/2; + [self.genreArrowRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(x); + }]; + [[self.segmentRegard arrangedSubviews] enumerateObjectsUsingBlock:^(__kindof UIView * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + UIButton * button = obj; + if (button.tag <= self.derivationGarment.count) { + ThresholdReindictMatrix * model = [self.derivationGarment secureGroalTowardsIndictowardsrix1:sender.tag]; + [self produceExtraCompenstowardsionTowardstrebute:model]; + } + button.selected = NO; + if (sender.tag == button.tag) { + button.layer.cornerRadius = 0; + button.layer.borderWidth = 0; + button.backgroundColor = [UIColor clearColor]; + }else{ + button.layer.cornerRadius = kGetScaleWidth(8); + button.layer.masksToBounds = YES; + button.layer.borderWidth = kGetScaleWidth(1); + button.layer.borderColor = [UIColor colorWithWhite:1 alpha:0.5].CGColor; + button.backgroundColor = [UIColor colorWithWhite:1 alpha:0.3]; + } + }]; + sender.selected = !sender.selected; +} + +#pragma mark - Getters And Setters +- (UICollectionView *)collectionView{ + if (!_collectionView) { + YUMIThresholdReindictFlowProgramming *layout = [[YUMIThresholdReindictFlowProgramming alloc] init]; + layout.itemSize = CGSizeMake(kGetScaleWidth(65), kGetScaleWidth(96)); + layout.minimumLineSpacing = kGetScaleWidth(9); + layout.sectionInset = UIEdgeInsetsMake(kGetScaleWidth(11), kGetScaleWidth(18), kGetScaleWidth(12), kGetScaleWidth(17)); + _collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout]; + _collectionView.dataSource = self; + _collectionView.delegate = self; + _collectionView.backgroundColor = [UIColor clearColor]; + [_collectionView registerClass:[YUMIThresholdReindictAssembletionRegardElement class] forCellWithReuseIdentifier:NSStringFromClass([YUMIThresholdReindictAssembletionRegardElement class])]; + } + return _collectionView; +} + + + + +- (UIImageView *)encourageIndicateRegard { + if (!_encourageIndicateRegard) { + _encourageIndicateRegard = [[UIImageView alloc] init]; + _encourageIndicateRegard.userInteractionEnabled = YES; + _encourageIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_first_recharge_background"]; + } + return _encourageIndicateRegard; +} + +- (UIImageView *)compensationEncourageRegard { + if (!_compensationEncourageRegard) { + _compensationEncourageRegard = [[UIImageView alloc] init]; + _compensationEncourageRegard.layer.backgroundColor = [UIColor colorWithRed:255/255.0 green:255/255.0 blue:255/255.0 alpha:1.0].CGColor; + _compensationEncourageRegard.layer.cornerRadius = kGetScaleWidth(16); + _compensationEncourageRegard.layer.masksToBounds = YES; + _compensationEncourageRegard.layer.shadowColor = [UIColor colorWithRed:240/255.0 green:162/255.0 blue:244/255.0 alpha:1.0].CGColor; + _compensationEncourageRegard.layer.shadowOffset = CGSizeMake(0,kGetScaleWidth(2)); + _compensationEncourageRegard.layer.shadowOpacity = kGetScaleWidth(1); + _compensationEncourageRegard.layer.shadowRadius = kGetScaleWidth(4); + _compensationEncourageRegard.userInteractionEnabled = YES; + + _compensationEncourageRegard.backgroundColor = [UIColor whiteColor]; + } + return _compensationEncourageRegard; +} + +- (UIButton *)extraBtuton { + if (!_extraBtuton) { + _extraBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_extraBtuton setBackgroundImage:[UIImage imageNamed:@"yumi_scope_first_recharge_extra"] forState:UIControlStateNormal]; + + } + return _extraBtuton; +} + +- (UIStackView *)segmentRegard { + if (!_segmentRegard) { + _segmentRegard = [[UIStackView alloc] init]; + _segmentRegard.axis = UILayoutConstraintAxisHorizontal; + _segmentRegard.distribution = UIStackViewDistributionFillEqually; + _segmentRegard.alignment = UIStackViewAlignmentFill; + _segmentRegard.spacing = kGetScaleWidth(12); + } + return _segmentRegard; +} + +- (UIImageView *)sequenceripBackgroundRegard { + if (!_sequenceripBackgroundRegard) { + _sequenceripBackgroundRegard = [[UIImageView alloc] init]; + _sequenceripBackgroundRegard.image = [[UIImage imageNamed:@"yumi_scope_first_recharge_descrip_background"] resizableImageWithCapInsets:UIEdgeInsetsMake(35, 120, 35, 20) resizingMode:UIImageResizingModeStretch]; + _sequenceripBackgroundRegard.contentMode = UIViewContentModeScaleToFill; + _sequenceripBackgroundRegard.hidden = YES; + } + return _sequenceripBackgroundRegard; +} + +- (UITextView *)sequenceripEssayRegard { + if (!_sequenceripEssayRegard) { + _sequenceripEssayRegard = [[UITextView alloc] init]; + _sequenceripEssayRegard.text = YMLocalizedString(@"YUMI_First_Recharge_View_Controller_0"); + _sequenceripEssayRegard.textColor = UIColorFromRGB(0x333333); + _sequenceripEssayRegard.backgroundColor = [UIColor clearColor]; + _sequenceripEssayRegard.font = [UIFont systemFontOfSize:11]; + _sequenceripEssayRegard.editable = NO; + } + return _sequenceripEssayRegard; +} + +- (UIButton *)compensationFacilitateBtuton { + if (!_compensationFacilitateBtuton) { + _compensationFacilitateBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_compensationFacilitateBtuton setImage:[UIImage imageNamed:@"yumi_scope_first_recharge_help"] forState:UIControlStateNormal]; + [_compensationFacilitateBtuton setImage:[UIImage imageNamed:@"yumi_scope_first_recharge_help"] forState:UIControlStateSelected]; + [_compensationFacilitateBtuton addTarget:self action:@selector(compenstowardsionFacilittowardseBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _compensationFacilitateBtuton; +} + +- (UIButton *)reindictBtuton { + if (!_reindictBtuton) { + _reindictBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_reindictBtuton setBackgroundImage:[UIImage imageNamed:@"yumi_scope_first_recharge_recharge"] forState:UIControlStateNormal]; + [_reindictBtuton setBackgroundImage:[UIImage imageNamed:@"yumi_scope_first_recharge_recharge"] forState:UIControlStateSelected]; + [_reindictBtuton setTitle:YMLocalizedString(@"YUMI_First_Recharge_View_Controller_1") forState:UIControlStateNormal]; + _reindictBtuton.titleLabel.font = [UIFont systemFontOfSize:18 weight:UIFontWeightSemibold]; + [_reindictBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + [_reindictBtuton addTarget:self action:@selector(reindictBtutonPerformance) forControlEvents:UIControlEventTouchUpInside]; + } + return _reindictBtuton; +} +- (UIImageView *)genreArrowRegard{ + if (!_genreArrowRegard){ + _genreArrowRegard = [UIImageView new]; + _genreArrowRegard.image = [UIImage imageNamed:@"yumi_scope_first_recharge_recharge_arrow"]; + _genreArrowRegard.hidden = YES; + } + return _genreArrowRegard; +} +- (YUMIThresholdReindictAssembletionRegard *)reindictRegard{ + if (!_reindictRegard){ + _reindictRegard = [[YUMIThresholdReindictAssembletionRegard alloc]initWithFrame:CGRectZero isThreshold:YES]; + _reindictRegard.hidden = YES; + } + return _reindictRegard; +} +- (UIButton *)encourageBtuton{ + if (!_encourageBtuton){ + _encourageBtuton = [UIButton new]; + [_encourageBtuton addTarget:self action:@selector(backAction) forControlEvents:UIControlEventTouchUpInside]; + + } + return _encourageBtuton; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/FirstRecharge/View/YUMIThresholdReindictSuccessRegard.h b/YuMi/Modules/YMRoom/View/FirstRecharge/View/YUMIThresholdReindictSuccessRegard.h new file mode 100644 index 00000000..a3c207a1 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/FirstRecharge/View/YUMIThresholdReindictSuccessRegard.h @@ -0,0 +1,17 @@ +// +// YMFirstRechargeSuccessView.h +// YUMI +// +// Created by YUMI on 2021/12/24. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class ThresholdReindictMatrix; +@interface YUMIThresholdReindictSuccessRegard : UIView + +@property (nonatomic,strong) ThresholdReindictMatrix *reindictAbstract; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/FirstRecharge/View/YUMIThresholdReindictSuccessRegard.m b/YuMi/Modules/YMRoom/View/FirstRecharge/View/YUMIThresholdReindictSuccessRegard.m new file mode 100644 index 00000000..07c80708 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/FirstRecharge/View/YUMIThresholdReindictSuccessRegard.m @@ -0,0 +1,190 @@ +// +// YMFirstRechargeSuccessView.m +// YUMI +// +// Created by YUMI on 2021/12/24. +// + +#import "YUMIThresholdReindictSuccessRegard.h" +#import +#import "UIImage+Utils.h" +#import "ThemeColor+FirstRecharge.h" +#import "YUMIThresholdReindictFlowProgramming.h" +#import "MKJPopup.h" +#import "NSArray+Safe.h" +#import "ThresholdReindictMatrix.h" +#import "YUMIThresholdReindictAssembletionRegardElement.h" + +@interface YUMIThresholdReindictSuccessRegard () +@property (nonatomic,strong) UIImageView *encourageIndicateRegard; +@property (nonatomic,strong) UIImageView * compensationEncourageRegard; +@property (nonatomic,strong) UIButton *extraBtuton; +@property (nonatomic,strong) UICollectionView *collectionView; +@property (nonatomic,strong) UILabel *sequenceriptionSequencignation; +@property (nonatomic,strong) UIButton *knownBtuton; +@property (nonatomic,strong) NSArray *datasource; +@end + +@implementation YUMIThresholdReindictSuccessRegard +- (instancetype)initWithFrame:(CGRect)frame +{ + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.encourageIndicateRegard]; + [self addSubview:self.knownBtuton]; + + [self.encourageIndicateRegard addSubview:self.compensationEncourageRegard]; + [self.encourageIndicateRegard addSubview:self.sequenceriptionSequencignation]; + + [self.compensationEncourageRegard addSubview:self.extraBtuton]; + [self.compensationEncourageRegard addSubview:self.collectionView]; +} + +- (void)initChildLyRestrictions { + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(290); + make.bottom.mas_equalTo(self.knownBtuton.mas_bottom); + }]; + + [self.encourageIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.top.mas_equalTo(self); + make.height.mas_equalTo(375); + make.width.mas_equalTo(290); + }]; + + [self.knownBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(185, 45)); + make.centerX.mas_equalTo(self); + make.centerY.mas_equalTo(self.encourageIndicateRegard.mas_bottom); + }]; + + [self.sequenceriptionSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self); + make.top.mas_equalTo(self.collectionView.mas_bottom).offset(21); + }]; + + [self.compensationEncourageRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.encourageIndicateRegard).inset(20); + make.top.mas_equalTo(self.encourageIndicateRegard).offset(70); + make.height.mas_equalTo(235); + }]; + + [self.extraBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(245, 18)); + make.top.mas_equalTo(self.compensationEncourageRegard).offset(10); + make.centerX.mas_equalTo(self.compensationEncourageRegard); + }]; + + [self.collectionView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.extraBtuton.mas_bottom); + make.left.right.mas_equalTo(self.compensationEncourageRegard); + make.bottom.mas_equalTo(self.compensationEncourageRegard); + }]; +} + +#pragma mark - UICollectionViewDelegate And UICollectionViewDatasource +- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { + return self.datasource.count; +} + +- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { + YUMIThresholdReindictAssembletionRegardElement * cell= [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([YUMIThresholdReindictAssembletionRegardElement class]) forIndexPath:indexPath]; + cell.compensationAbstract = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + return cell; +} + +#pragma mark - Event Response +- (void)knowBtutonPerformance:(UIButton *)sender { + [MKJPopup dismiss]; +} + +#pragma mark - Getters And Setters +- (void)setReindictAbstract:(ThresholdReindictMatrix *)reindictAbstract { + _reindictAbstract = reindictAbstract; + self.datasource = _reindictAbstract.firstChargeRewardList; + [self.collectionView reloadData]; + + NSString * title = reindictAbstract.chargeProdTitle; + NSString * chargeMoneyStr = [NSString stringWithFormat:@"%ld", reindictAbstract.chargeMoney]; + NSString * giveMoneyStr = [NSString stringWithFormat:@"%ld", reindictAbstract.giveMoney]; + NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] initWithString:title attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:12], NSForegroundColorAttributeName:[DJDKMIMOMColor compenstowardsionMaintainortionEssayPrettify]}]; + [attribute addAttribute:NSForegroundColorAttributeName value:[DJDKMIMOMColor compenstowardsionReminderEssayPrettify] range:[title rangeOfString:chargeMoneyStr]]; + [attribute addAttribute:NSForegroundColorAttributeName value:[DJDKMIMOMColor compenstowardsionReminderEssayPrettify] range:[title rangeOfString:giveMoneyStr]]; + [self.extraBtuton setAttributedTitle:attribute forState:UIControlStateNormal]; +} + +- (UICollectionView *)collectionView{ + if (!_collectionView) { + YUMIThresholdReindictFlowProgramming *layout = [[YUMIThresholdReindictFlowProgramming alloc] init]; + layout.itemSize = CGSizeMake(70, 70+ 16); + layout.minimumLineSpacing = 12; + layout.sectionInset = UIEdgeInsetsMake(10, 10, 10, 10); + _collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout]; + _collectionView.dataSource = self; + _collectionView.delegate = self; + _collectionView.backgroundColor = [UIColor clearColor]; + [_collectionView registerClass:[YUMIThresholdReindictAssembletionRegardElement class] forCellWithReuseIdentifier:NSStringFromClass([YUMIThresholdReindictAssembletionRegardElement class])]; + } + return _collectionView; +} + + +- (UIImageView *)encourageIndicateRegard { + if (!_encourageIndicateRegard) { + _encourageIndicateRegard = [[UIImageView alloc] init]; + _encourageIndicateRegard.userInteractionEnabled = YES; + _encourageIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_first_recharge_success_background"]; + } + return _encourageIndicateRegard; +} + +- (UILabel *)sequenceriptionSequencignation { + if (!_sequenceriptionSequencignation) { + _sequenceriptionSequencignation = [[UILabel alloc] init]; + _sequenceriptionSequencignation.text = YMLocalizedString(@"YUMI_First_Recharge_Success_View_0"); + _sequenceriptionSequencignation.font = [UIFont fontWithName:@"PingFang-SC-Medium" size:10]; + _sequenceriptionSequencignation.textAlignment = NSTextAlignmentCenter; + _sequenceriptionSequencignation.textColor = [DJDKMIMOMColor thresholdReindictEssayPrettify]; + } + return _sequenceriptionSequencignation; +} + +- (UIButton *)knownBtuton { + if (!_knownBtuton) { + _knownBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_knownBtuton setBackgroundImage:[UIImage imageNamed:@"yumi_scope_first_recharge_recharge"] forState:UIControlStateNormal]; + [_knownBtuton setBackgroundImage:[UIImage imageNamed:@"yumi_scope_first_recharge_recharge"] forState:UIControlStateSelected]; + [_knownBtuton setTitle:YMLocalizedString(@"YUMI_First_Recharge_Success_View_1") forState:UIControlStateNormal]; + _knownBtuton.titleLabel.font = [UIFont fontWithName:@"PingFang-SC-Bold" size:20]; + [_knownBtuton setTitleColor:[DJDKMIMOMColor thresholdReindictEssayPrettify] forState:UIControlStateNormal]; + [_knownBtuton addTarget:self action:@selector(knowBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _knownBtuton; +} + +- (UIButton *)extraBtuton { + if (!_extraBtuton) { + _extraBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_extraBtuton setBackgroundImage:[UIImage imageNamed:@"yumi_scope_first_recharge_reward_extra_background"] forState:UIControlStateNormal]; + } + return _extraBtuton; +} + +- (UIImageView *)compensationEncourageRegard { + if (!_compensationEncourageRegard) { + _compensationEncourageRegard = [[UIImageView alloc] init]; + _compensationEncourageRegard.image = [UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor compenstowardsionEncouragegroundObliquityApeyUMIrettify], [DJDKMIMOMColor compenstowardsionEncouragegroundObliquityMiddlePrettify], [DJDKMIMOMColor compenstowardsionEncouragegroundObliquityApeyUMIrettify]] gradientType:GradientGenreTopToBottom imgSize:CGSizeMake(10, 10)]; + _compensationEncourageRegard.layer.masksToBounds = YES; + _compensationEncourageRegard.layer.cornerRadius = 10; + } + return _compensationEncourageRegard; +} +@end diff --git a/YuMi/Modules/YMRoom/View/MenuContainerView/Model/YUMIChamberParrotProvision.h b/YuMi/Modules/YMRoom/View/MenuContainerView/Model/YUMIChamberParrotProvision.h new file mode 100644 index 00000000..fc8b3fbf --- /dev/null +++ b/YuMi/Modules/YMRoom/View/MenuContainerView/Model/YUMIChamberParrotProvision.h @@ -0,0 +1,29 @@ +// +// YMRoomMenuItem.h +// YUMI +// +// Created by YUMI on 2021/10/14. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSInteger, YUMIChamberParrotProvisionGenre) { + YUMIChamberParrotProvisionGenre_Input = 1, + YUMIChamberParrotProvisionGenre_Mic, + YUMIChamberParrotProvisionGenre_Face, + YUMIChamberParrotProvisionGenre_Message, + YUMIChamberParrotProvisionGenre_More, + YUMIChamberParrotProvisionGenre_ArrangeMic, + YUMIChamberParrotProvisionGenre_Gift, + YUMIChamberParrotProvisionGenre_Noble, + YUMIChamberParrotProvisionGenre_Play, +}; + +@interface YUMIChamberParrotProvision : NSObject + + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/MenuContainerView/Model/YUMIChamberParrotProvision.m b/YuMi/Modules/YMRoom/View/MenuContainerView/Model/YUMIChamberParrotProvision.m new file mode 100644 index 00000000..a813041c --- /dev/null +++ b/YuMi/Modules/YMRoom/View/MenuContainerView/Model/YUMIChamberParrotProvision.m @@ -0,0 +1,12 @@ +// +// YMRoomMenuItem.m +// YUMI +// +// Created by YUMI on 2021/10/14. +// + +#import "YUMIChamberParrotProvision.h" + +@implementation YUMIChamberParrotProvision + +@end diff --git a/YuMi/Modules/YMRoom/View/MenuContainerView/YUMIChamberDischargeEssayRegard.h b/YuMi/Modules/YMRoom/View/MenuContainerView/YUMIChamberDischargeEssayRegard.h new file mode 100644 index 00000000..84c6b9c2 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/MenuContainerView/YUMIChamberDischargeEssayRegard.h @@ -0,0 +1,20 @@ +// +// YMRoomSendTextView.h +// YUMI +// +// Created by YUMI on 2021/10/29. +// + +#import +#import "ChamberHostRepresendtation.h" +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIChamberDischargeEssayRegard : UIView + +- (instancetype) :(id)delegate; +@property (nonatomic, strong, readonly) UITextField *compileEssayAccurated; ++ (instancetype)EvidenceEssayRegard:(UIView *)view delegate:(id)delegate atUid:(NSString *)uid atNick:(NSString *)nick; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/MenuContainerView/YUMIChamberDischargeEssayRegard.m b/YuMi/Modules/YMRoom/View/MenuContainerView/YUMIChamberDischargeEssayRegard.m new file mode 100644 index 00000000..9541a82c --- /dev/null +++ b/YuMi/Modules/YMRoom/View/MenuContainerView/YUMIChamberDischargeEssayRegard.m @@ -0,0 +1,300 @@ +// +// YMRoomSendTextView.m +// YUMI +// +// Created by YUMI on 2021/10/29. +// + +#import "YUMIChamberDischargeEssayRegard.h" +#import +#import +#import "NSObject+MJExtension.h" +#import +#import "ThemeColor+Room.h" +#import "YUMIMacroUitls.h" +#import "UIImage+Utils.h" +#import "YUMIConstant.h" +#import "AccountAbstractStorage.h" +#import "NSMutableDictionary+Saft.h" +#import "YUMICommunicationRemoteExtMatrix.h" +#import "ConsumerAbstractMatrix.h" +#import "ChamberAbstractMatrix.h" +#define MAX_STARWORDS_LENGTH 300 + +@interface YUMIChamberDischargeEssayRegard () +@property (nonatomic,strong) UIStackView *stackView; +@property (nonatomic, strong) UITextField *compileEssayAccurated; +@property (nonatomic, strong) UIButton *dischargeBtuton; +@property (nonatomic,copy) NSString *introjectionCommunication; +@property (nonatomic,weak) id delegate; + +@property (nonatomic, strong) NSMutableArray *atSalutation; +@property (nonatomic, strong) NSMutableArray *atCids; +@end + +@implementation YUMIChamberDischargeEssayRegard + +- (void)dealloc { + [[NSNotificationCenter defaultCenter] removeObserver:self]; +} + +- (instancetype)initWithDelegate:(id)delegate { + self = [super initWithFrame:CGRectMake(0, KScreenHeight - 40, KScreenWidth, 40)]; + if (self) { + self.delegate = delegate; + [self accelertowardseCircular]; + [self initSubViews]; + [self initChildLyRestrictions]; + [IQKeyboardManager sharedManager].enable = NO; + } + return self; +} + +#pragma mark - Response + +- (void)prohibitichargeBtutonDidTicktack:(UIButton *)sender { + ConsumerAbstractMatrix * userInfo = [self.delegate getUserInfo]; + YUMICommunicationRemoteExtMatrix *extModel = [[YUMICommunicationRemoteExtMatrix alloc] init]; + extModel.defUser = userInfo.defUser; + extModel.erbanNo = userInfo.erbanNo; + extModel.carName = userInfo.carName; + extModel.inRoomNameplatePic = userInfo.nameplatePic; + extModel.inRoomNameplateWord = userInfo.nameplateWord; + extModel.charmUrl = userInfo.userLevelVo.charmUrl; + extModel.experLevelSeq = userInfo.userLevelVo.experLevelSeq; + extModel.experUrl = userInfo.userLevelVo.experUrl; + extModel.newUser = userInfo.newUser; + extModel.vipIcon = userInfo.userVipInfoVO.vipIcon; + extModel.androidBubbleUrl = userInfo.androidBubbleUrl; + extModel.iosBubbleUrl = userInfo.iosBubbleUrl; + extModel.fromSayHelloChannel = userInfo.fromSayHelloChannel; + + NIMMessage * message = [[NIMMessage alloc] init]; + message.text = self.introjectionCommunication; + NSMutableDictionary *remoteExt = [NSMutableDictionary dictionaryWithObject:extModel.mtowardsrix2dictionary forKey:[AccountAbstractStorage instance].acquireCid]; + + NSMutableArray *nickArray = [NSMutableArray array]; + NSMutableArray *uidArray = [NSMutableArray array]; + for (int i = 0; i MAX_STARWORDS_LENGTH){ + NSRange rangeIndex = [toBeString rangeOfComposedCharacterSequenceAtIndex:MAX_STARWORDS_LENGTH]; + if (rangeIndex.length == 1){ + + essayUniverse.text = [toBeString substringToIndex:MAX_STARWORDS_LENGTH]; + }else{ + NSRange rangeRange = [toBeString rangeOfComposedCharacterSequencesForRange:NSMakeRange(0, MAX_STARWORDS_LENGTH)]; + essayUniverse.text = [toBeString substringWithRange:rangeRange]; + } + } + } + }else{ + if (toBeString.length > MAX_STARWORDS_LENGTH){ + NSRange rangeIndex = [toBeString rangeOfComposedCharacterSequenceAtIndex:MAX_STARWORDS_LENGTH]; + if (rangeIndex.length == 1){ + + essayUniverse.text = [toBeString substringToIndex:MAX_STARWORDS_LENGTH]; + }else{ + + NSRange rangeRange = [toBeString rangeOfComposedCharacterSequencesForRange:NSMakeRange(0, MAX_STARWORDS_LENGTH)]; + essayUniverse.text = [toBeString substringWithRange:rangeRange]; + } + } + } + self.introjectionCommunication = essayUniverse.text; + if (self.introjectionCommunication.length > 0) { + self.dischargeBtuton.enabled = YES; + } else { + self.dischargeBtuton.enabled = NO; + } +} + +#pragma mark - Public Method ++ (instancetype)EvidenceEssayRegard:(UIView *)view delegate:(id)delegate atUid:(NSString *)uid atNick:(NSString *)nick { + __block YUMIChamberDischargeEssayRegard * textView; + [view.subviews enumerateObjectsUsingBlock:^(__kindof UIView * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if ([obj isKindOfClass:[YUMIChamberDischargeEssayRegard class]]) { + textView = obj; + *stop = YES; + } + }]; + if (textView == nil) { + textView = [[YUMIChamberDischargeEssayRegard alloc] initWithDelegate:delegate]; + [view addSubview:textView]; + } + textView.hidden = NO; + + + [textView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.mas_equalTo(view); + make.height.mas_equalTo(40); + }]; + [textView.compileEssayAccurated becomeFirstResponder]; + if (nick) { + [textView.atCids addObject:uid]; + [textView.atSalutation addObject:[NSString stringWithFormat:@"@%@", nick]]; + textView.compileEssayAccurated.text = [NSString stringWithFormat:@"%@@%@\u2004", textView.compileEssayAccurated.text, nick]; + textView.introjectionCommunication = textView.compileEssayAccurated.text; + textView.dischargeBtuton.enabled = YES; + } + return textView; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [DJDKMIMOMColor aplictowardsionEncouragegroundPrettify]; + [self addSubview:self.stackView]; + [self.stackView addArrangedSubview:self.compileEssayAccurated]; + [self.stackView addArrangedSubview:self.dischargeBtuton]; +} + +- (void)initChildLyRestrictions { + [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self).offset(8); + make.right.mas_equalTo(self).offset(-5); + make.top.bottom.mas_equalTo(self); + }]; + + [self.dischargeBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(50); + make.top.bottom.mas_equalTo(self).inset(5); + }]; +} + +- (void)accelertowardseCircular { + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(digitentiretyibraImmeditowardselyVeiled:) name:UIKeyboardWillHideNotification object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(essayUniverseCompileDiversifictowardsiond:) name:UITextFieldTextDidChangeNotification object:self.compileEssayAccurated]; +} + +#pragma mark - Getters And Setters +- (UITextField *)compileEssayAccurated{ + if (!_compileEssayAccurated) { + _compileEssayAccurated = [[UITextField alloc] init]; + NSAttributedString * attribute = [[NSAttributedString alloc] initWithString:@"请输入消息..." attributes:@{NSFontAttributeName : [UIFont systemFontOfSize:15], NSForegroundColorAttributeName : [DJDKMIMOMColor instantEssayPrettify]}]; + _compileEssayAccurated.attributedPlaceholder = attribute; + _compileEssayAccurated.borderStyle = UITextBorderStyleNone; + _compileEssayAccurated.textColor = [DJDKMIMOMColor precautiousChampionPrettify]; + _compileEssayAccurated.font = [UIFont systemFontOfSize:15]; + [_compileEssayAccurated setContentHuggingPriority:UILayoutPriorityDefaultLow forAxis:UILayoutConstraintAxisHorizontal]; + + } + return _compileEssayAccurated; +} +- (UIButton *)dischargeBtuton{ + if (!_dischargeBtuton) { + _dischargeBtuton = [[UIButton alloc] init]; + [_dischargeBtuton setTitle:YMLocalizedString(@"YUMI_Room_Send_Text_View_1") forState:UIControlStateNormal]; + _dischargeBtuton.titleLabel.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _dischargeBtuton.titleLabel.font = [UIFont systemFontOfSize:15]; + [_dischargeBtuton setBackgroundImage:[UIImage imageWithColor:[DJDKMIMOMColor prohibitionBtutonPrettify] ]forState:UIControlStateDisabled]; + [_dischargeBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + _dischargeBtuton.enabled = NO; + _dischargeBtuton.layer.cornerRadius = 5.0; + _dischargeBtuton.layer.masksToBounds = YES; + [_dischargeBtuton addTarget:self action:@selector(prohibitichargeBtutonDidTicktack:) forControlEvents:UIControlEventTouchUpInside]; + } + return _dischargeBtuton; +} + +- (UIStackView *)stackView { + if (!_stackView) { + _stackView = [[UIStackView alloc] init]; + _stackView.axis = UILayoutConstraintAxisHorizontal; + _stackView.distribution = UIStackViewDistributionFill; + _stackView.alignment = UIStackViewAlignmentCenter; + _stackView.spacing = 10; + } + return _stackView; +} + +- (NSMutableArray *)atSalutation { + if (!_atSalutation) { + _atSalutation = [NSMutableArray array]; + } + return _atSalutation; +} + +- (NSMutableArray *)atCids { + if (!_atCids) { + _atCids = [NSMutableArray array]; + } + return _atCids; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/MenuContainerView/YUMIChamberParrotAccommodatedRegard.h b/YuMi/Modules/YMRoom/View/MenuContainerView/YUMIChamberParrotAccommodatedRegard.h new file mode 100644 index 00000000..34f5e152 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/MenuContainerView/YUMIChamberParrotAccommodatedRegard.h @@ -0,0 +1,21 @@ +// +// YMRoomBottomMenuView.h +// YUMI +// +// Created by YUMI on 2021/10/11. +// + +#import +#import "ChamberHostRepresendtation.h" +#import "ChamberGuestRepresendtation.h" +#import "YUMIScheduleLoudspeakerRegardGovernancer.h" +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIChamberParrotAccommodatedRegard : UIView + +- (instancetype)initWithDelegate:(id)delegate; + +- (void)parrotResignThresholdResponder; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/MenuContainerView/YUMIChamberParrotAccommodatedRegard.m b/YuMi/Modules/YMRoom/View/MenuContainerView/YUMIChamberParrotAccommodatedRegard.m new file mode 100644 index 00000000..6a7d9cf6 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/MenuContainerView/YUMIChamberParrotAccommodatedRegard.m @@ -0,0 +1,550 @@ +// +// YMRoomBottomMenuView.m +// YUMI +// +// Created by YUMI on 2021/10/11. +// + +#import "YUMIChamberParrotAccommodatedRegard.h" +#import +#import "AccountAbstractStorage.h" +#import "MKJPopup.h" +#import "RealtimackExecutive.h" +#import "XNDJTBWGLoadingTool.h" +#import "StatsticsticsServingFacilitater.h" +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" +#import "XCCurrentVCStackExecutive.h" +#import "ClientDisposition.h" +#import "YUMIChamberParrotProvision.h" +#import "MiecreoscoopeMHTueueMatrix.h" +#import "ConsumerAbstractMatrix.h" +#import "MiecreoscoopeStateMatrix.h" +#import "ChamberAbstractMatrix.h" +#import "AttachmentMatrix.h" +#import "YUMIChamberDischargeEssayRegard.h" +#import "YUMIDischargePresentRegard.h" +#import "InterlocutionStatementRegardGovernancer.h" +#import "YUMIChamberFurthaerParrotRegardGovernancer.h" +#import "YUMIChamberAcceptRegardGovernancer.h" +#import "YUMIChamberHalfCommunicationRegard.h" +#import "YUMIChamberCommunicationIntumesceRegard.h" +#import "YUMIChamberFurthaerDisportRegardGovernancer.h" + +NSString * const kRoomPlayEnterKey = @"kRoomPlayEnterKey"; + +@interface YUMIChamberParrotAccommodatedRegard () +@property (nonatomic,strong) UIScrollView *scrollView; +@property (nonatomic,strong) UIStackView *stackView; +@property (nonatomic,strong) UIButton *introjectionBtuton; +@property (nonatomic,strong) UIButton *loudspeakerBtuton; +@property (nonatomic,strong) UIButton *acceptBtuton; +@property (nonatomic,strong) UIButton *communicationBtuton; +@property (nonatomic,strong) UIButton *furthaerBtuton; +@property (nonatomic,strong) UIButton *presentBtuton; +@property (nonatomic,strong) UIButton *arrangeLoudspeakerBtuton; +@property (nonatomic,strong) UIButton *magnificentBtuton; +@property (nonatomic,strong) YUMIChamberDischargeEssayRegard *introjectionEssayRegard; +@property (nonatomic,strong) YUMIChamberCommunicationIntumesceRegard *roadliceCommunicationRegard; +@property (nonatomic,weak) id delegate; +@end + + +@implementation YUMIChamberParrotAccommodatedRegard + +- (instancetype)initWithDelegate:(id)delegate { + self = [super init]; + if (self) { + self.delegate = delegate; + [self initSubViews]; + [self initChildLyRestrictions]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(EvidencePresentRegard:) name:@"kShowGiftView" object:nil]; + } + return self; +} +- (void)parrotResignThresholdResponder { + [self.introjectionEssayRegard.compileEssayAccurated resignFirstResponder]; +} + +#pragma mark - Response +- (void)parrotBtutonPerformance:(UIButton *)sender { + YUMIChamberParrotProvisionGenre type = sender.tag; + switch (type) { + case YUMIChamberParrotProvisionGenre_Input: + { + if (self.delegate.acquireChamberAbstract.isCloseScreen) { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:YMLocalizedString(@"YUMI_Room_Menu_Container_View_0")]; + return; + } + if (self.delegate.acquireChamberAbstract.type == ChamberGenre_Anchor) { + self.introjectionEssayRegard = [YUMIChamberDischargeEssayRegard EvidenceEssayRegard:self.superview.superview delegate:self.delegate atUid:nil atNick:nil]; + } else { + self.introjectionEssayRegard = [YUMIChamberDischargeEssayRegard EvidenceEssayRegard:self.superview delegate:self.delegate atUid:nil atNick:nil]; + } + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventroom_chatbox_click]; + } + break; + + case YUMIChamberParrotProvisionGenre_Mic: { + [RealtimackExecutive instance].localDelicate = !self.loudspeakerBtuton.isSelected; + self.loudspeakerBtuton.selected = [RealtimackExecutive instance].isLocalDelicate; + } + break; + case YUMIChamberParrotProvisionGenre_Face: { + YUMIChamberAcceptRegardGovernancer * faceVC = [[YUMIChamberAcceptRegardGovernancer alloc] init]; + faceVC.modalPresentationStyle = UIModalPresentationOverFullScreen; + faceVC.roomId = [NSString stringWithFormat:@"%ld", self.delegate.acquireChamberAbstract.roomId]; + [self.delegate.acquireUniversalNev presentViewController:faceVC animated:YES completion:nil]; + } + break; + case YUMIChamberParrotProvisionGenre_Gift: { + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventroom_gift_click]; + NSString * roomUid = [NSString stringWithFormat:@"%ld", [self.delegate acquireChamberAbstract].uid]; + YUMIDischargePresentRegard * presentRegard = [[YUMIDischargePresentRegard alloc] initWithType:DischargePresentGenre_Room uid:roomUid]; + presentRegard.delegate = self.delegate; + NSArray * giftUses = [self prohibitipositionPresentConsumers:[self.delegate acquireMiecreoscoopeInthecaseofmtowardsion]]; + [presentRegard prohibitipositionPresentConsumers:giftUses]; + [self.delegate.acquireUniversalNev presentViewController:presentRegard animated:YES completion:nil]; + } + break; + case YUMIChamberParrotProvisionGenre_Message: + { + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventroom_privateletter_click]; + UIViewController * controller = (UIViewController *)self.delegate; + YUMIChamberHalfCommunicationRegard *halfMessageView = [[YUMIChamberHalfCommunicationRegard alloc] initWithFrame:CGRectMake(0, KScreenHeight, KScreenWidth, KScreenHeight) controller:controller]; + [controller.view addSubview:halfMessageView]; + [UIView animateWithDuration:.35 animations:^{ + CGRect rect = halfMessageView.frame; + rect.origin.y = 0; + halfMessageView.frame = rect; + }]; + + } + break; + case YUMIChamberParrotProvisionGenre_More: { + YUMIChamberFurthaerParrotRegardGovernancer * moreMenuVC = [[YUMIChamberFurthaerParrotRegardGovernancer alloc] initWithDelegate:self.delegate]; + [self.delegate.acquireUniversalNev presentViewController:moreMenuVC animated:YES completion:nil]; + } + break; + case YUMIChamberParrotProvisionGenre_ArrangeMic:{ + if (self.delegate.acquireChamberAbstract.roomModeType == ChamberModeGenre_Open_PK_Mode && self.delegate.isChamberCombatDisporting) { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:YMLocalizedString(@"YUMI_Room_Menu_Container_View_1")]; + return; + } + + self.arrangeLoudspeakerBtuton.selected = NO; + NIMChatroomMembersByIdsRequest *request = [[NIMChatroomMembersByIdsRequest alloc]init]; + request.roomId = [NSString stringWithFormat:@"%ld", self.delegate.acquireChamberAbstract.roomId]; + request.userIds = @[[AccountAbstractStorage instance].acquireCid]; + [[NIMSDK sharedSDK].chatroomManager fetchChatroomMembersByIds:request completion:^(NSError * _Nullable error, NSArray * _Nullable members) { + NIMChatroomMember * member; + if (error == nil) { + member = members.firstObject; + } + ChamberAbstractMatrix * roomInfo = self.delegate.acquireChamberAbstract; + YUMIScheduleLoudspeakerAbstractMatrix * info = [[YUMIScheduleLoudspeakerAbstractMatrix alloc] init]; + info.roomUid = [NSString stringWithFormat:@"%ld", roomInfo.uid]; + info.roomId = [NSString stringWithFormat:@"%ld", roomInfo.roomId]; + info.nick = roomInfo.nick; + info.roomAvatar = roomInfo.avatar; + info.roomTitle = roomInfo.title; + info.micQueue = [self.delegate acquireMiecreoscoopeInthecaseofmtowardsion]; + info.isManager = (member.type == NIMChatroomMemberTypeCreator || member.type == NIMChatroomMemberTypeManager); + info.type = roomInfo.roomModeType == ChamberModeGenre_Open_Blind ? ArrangeLoudspeakerGenre_Dating : roomInfo.roomModeType == ChamberModeGenre_Open_PK_Mode ? ArrangeLoudspeakerGenre_Room_PK : ArrangeLoudspeakerGenre_Normal; + YUMIScheduleLoudspeakerRegardGovernancer * arrangeMicVC = [[YUMIScheduleLoudspeakerRegardGovernancer alloc] initAboutAbstract:info]; + [self.delegate.acquireUniversalNev presentViewController:arrangeMicVC animated:YES completion:nil]; + }]; + } + break; + default: + break; + } +} + +#pragma mark - notification +- (void)EvidencePresentRegard:(NSNotification *)noti { + NSDictionary *dict = noti.object; + NSString *giftId = dict[@"giftId"]; + NSString * roomUid = [NSString stringWithFormat:@"%ld", [self.delegate acquireChamberAbstract].uid]; + YUMIDischargePresentRegard * presentRegard = [[YUMIDischargePresentRegard alloc] initWithType:DischargePresentGenre_Room uid:roomUid]; + presentRegard.delegate = self.delegate; + NSArray * giftUses = [self prohibitipositionPresentConsumers:[self.delegate acquireMiecreoscoopeInthecaseofmtowardsion]]; + [presentRegard prohibitipositionPresentConsumers:giftUses]; + presentRegard.chosenPresentId = giftId; + [self.delegate.acquireUniversalNev presentViewController:presentRegard animated:YES completion:nil]; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.scrollView]; + [self addSubview:self.presentBtuton]; + + [self.scrollView addSubview:self.stackView]; + + [self.stackView addArrangedSubview:self.introjectionBtuton]; + [self.stackView addArrangedSubview:self.loudspeakerBtuton]; + [self.stackView addArrangedSubview:self.acceptBtuton]; + [self.stackView addArrangedSubview:self.arrangeLoudspeakerBtuton]; + [self.stackView addArrangedSubview:self.communicationBtuton]; + [self.stackView addArrangedSubview:self.furthaerBtuton]; +} + +- (void)initChildLyRestrictions { + [self.scrollView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self).offset(15); + make.right.mas_equalTo(self.presentBtuton.mas_left).offset(-10); + make.top.bottom.mas_equalTo(self); + }]; + + [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.bottom.leading.trailing.height.mas_equalTo(self.scrollView); + }]; + if ([ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + [self.introjectionBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(100, 30)); + }]; + } else { + [self.introjectionBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(150, 30)); + }]; + } + + [self.presentBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self); + make.right.mas_equalTo(self).offset(-15); + make.size.mas_equalTo(CGSizeMake(38, 38)); + }]; +} + +- (NSArray *)prohibitipositionPresentConsumers:(NSMutableDictionary *)queue { + NSMutableArray * array = [NSMutableArray array]; + for (MiecreoscoopeMHTueueMatrix * miecreoscoopeMatrix in queue.allValues) { + if (miecreoscoopeMatrix.userInfo && miecreoscoopeMatrix.userInfo.uid >0) { + ConsumerAbstractMatrix * userInfo = miecreoscoopeMatrix.userInfo; + YUMIExternalizeConsumerAbstractMatrix * userModel = [[YUMIExternalizeConsumerAbstractMatrix alloc] init]; + userModel.avatar = userInfo.avatar; + userModel.vipMic = userInfo.vipMic; + userModel.position = [NSString stringWithFormat:@"%d", miecreoscoopeMatrix.microState.position]; + userModel.uid = userInfo.uid; + if (self.delegate.acquireChamberAbstract.type == ChamberGenre_Anchor && miecreoscoopeMatrix.microState.position == -1) { + continue; + } + [array addObject:userModel]; + } + } + + if (self.delegate.acquireChamberAbstract.leaveMode) { + ChamberAbstractMatrix * roomInfo= self.delegate.acquireChamberAbstract; + YUMIExternalizeConsumerAbstractMatrix * userModel = [[YUMIExternalizeConsumerAbstractMatrix alloc] init]; + userModel.avatar = roomInfo.avatar; + userModel.position = @"-1"; + userModel.uid = roomInfo.uid; + [array addObject:userModel]; + } else if (self.delegate.acquireChamberAbstract.type == ChamberGenre_Anchor) { + ChamberAbstractMatrix * roomInfo= self.delegate.acquireChamberAbstract; + BOOL hadContainerOwner = NO; + for (ConsumerAbstractMatrix *userModel in array) { + if (userModel.uid == roomInfo.uid) { + hadContainerOwner = YES; + break; + } + } + if (!hadContainerOwner) { + YUMIExternalizeConsumerAbstractMatrix * userModel = [[YUMIExternalizeConsumerAbstractMatrix alloc] init]; + userModel.avatar = roomInfo.avatar; + userModel.position = @"-1"; + userModel.uid = roomInfo.uid; + [array addObject:userModel]; + } + } + return array; +} + +- (MiecreoscoopeMHTueueMatrix *)prohibiticoveryMieySelfMiecreoscoope:(NSMutableDictionary *)queue { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + for (MiecreoscoopeMHTueueMatrix * miecreoscoopeMatrix in queue.allValues) { + if (miecreoscoopeMatrix.userInfo && miecreoscoopeMatrix.userInfo.uid == uid.integerValue) { + return miecreoscoopeMatrix; + } + } + return nil; +} + +#pragma mark - ChamberGuestRepresendtation +- (void)onMiecreoscoopeInthecaseofmtowardsionRefurbish:(NSMutableDictionary *)queue { + MiecreoscoopeMHTueueMatrix * model = [self prohibiticoveryMieySelfMiecreoscoope:queue]; + if (model) { + self.loudspeakerBtuton.hidden = NO; + self.loudspeakerBtuton.selected = model.microState.micState == MiecreoscoopeLoudspeakerDeclareGenre_Close ? YES : [RealtimackExecutive instance].isLocalDelicate; + self.loudspeakerBtuton.enabled = model.microState.micState == MiecreoscoopeLoudspeakerDeclareGenre_Open; + if (![ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + self.acceptBtuton.hidden = YES; + } else { + self.acceptBtuton.hidden = NO; + } + } else { + self.loudspeakerBtuton.hidden = YES; + self.acceptBtuton.hidden = YES; + } + +} + +- (void)onChamberImported { + NSInteger unreadCount = [[NIMSDK sharedSDK].conversationManager allUnreadCount]; + self.communicationBtuton.selected = unreadCount > 0; + [self onChamberRefurbish]; +} + +- (void)onChamberRefurbish { + ChamberAbstractMatrix * roomInfo = self.delegate.acquireChamberAbstract; + ConsumerAbstractMatrix * userInfo = self.delegate.getUserInfo; + + if (userInfo.isFirstCharge) { + [self.presentBtuton setImage:[UIImage imageNamed:@"yumi_scope_menu_present_first_recharge"] forState:UIControlStateNormal]; + [self.presentBtuton setImage:[UIImage imageNamed:@"yumi_scope_menu_present_first_recharge"] forState:UIControlStateSelected]; + } else { + [self.presentBtuton setImage:[UIImage imageNamed:@"yumi_scope_menu_gift"] forState:UIControlStateNormal]; + [self.presentBtuton setImage:[UIImage imageNamed:@"yumi_scope_menu_gift"] forState:UIControlStateSelected]; + } + + if (![ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + [self.presentBtuton setImage:[UIImage imageNamed:@"yumi_scope_menu_gift1"] forState:UIControlStateNormal]; + [self.presentBtuton setImage:[UIImage imageNamed:@"yumi_scope_menu_gift1"] forState:UIControlStateSelected]; + } + + self.arrangeLoudspeakerBtuton.hidden = roomInfo.roomModeType != ChamberModeGenre_Open_Micro_Mode; + if (roomInfo.roomModeType == ChamberModeGenre_Open_Blind || roomInfo.roomModeType == ChamberModeGenre_Open_PK_Mode || roomInfo.roomModeType == ChamberModeGenre_Open_Micro_Mode) { + NIMChatroomMembersByIdsRequest *request = [[NIMChatroomMembersByIdsRequest alloc]init]; + request.roomId = [NSString stringWithFormat:@"%ld", roomInfo.roomId]; + request.userIds = @[[AccountAbstractStorage instance].acquireCid]; + [[NIMSDK sharedSDK].chatroomManager fetchChatroomMembersByIds:request completion:^(NSError * _Nullable error, NSArray * _Nullable members) { + if (error == nil) { + NIMChatroomMember * member = members.firstObject; + if (member.type == NIMChatroomMemberTypeCreator || member.type == NIMChatroomMemberTypeManager) { + self.arrangeLoudspeakerBtuton.hidden = NO; + return; + } + } + self.arrangeLoudspeakerBtuton.hidden = YES; + }]; + } +} + +- (void)shankNEMCIndividualityCommunictowardsion:(NIMMessage *)message { + NIMCustomObject *obj = (NIMCustomObject *)message.messageObject; + if (obj.attachment != nil && [obj.attachment isKindOfClass:[AttachmentMatrix class]]) { + AttachmentMatrix *attachment = (AttachmentMatrix *)obj.attachment; + if (attachment.first == IndividualityCommunicationGenre_Arrange_Mic || attachment.first == IndividualityCommunicationGenre_Room_PK) { + if (attachment.second == Custom_Message_Sub_Arrange_Mic_Non_Empty || attachment.second == Custom_Message_Sub_Arrange_Mic_Empty || attachment.second == Custom_Message_Sub_Room_PK_Empty || attachment.second == Custom_Message_Sub_Room_PK_Non_Empty) { + NIMChatroomMembersByIdsRequest *request = [[NIMChatroomMembersByIdsRequest alloc]init]; + request.roomId = [NSString stringWithFormat:@"%ld", self.delegate.acquireChamberAbstract.roomId]; + request.userIds = @[[AccountAbstractStorage instance].acquireCid]; + [[NIMSDK sharedSDK].chatroomManager fetchChatroomMembersByIds:request completion:^(NSError * _Nullable error, NSArray * _Nullable members) { + NIMChatroomMember * member; + if (error == nil) { + member = members.firstObject; + } + if (member.type == NIMChatroomMemberTypeCreator || member.type == NIMChatroomMemberTypeManager) { + self.arrangeLoudspeakerBtuton.selected = (attachment.second == Custom_Message_Sub_Arrange_Mic_Non_Empty || attachment.second == Custom_Message_Sub_Room_PK_Non_Empty); + }; + }]; + } + } + } +} + +- (void)shankNEMCCircularCommunictowardsion:(NIMMessage *)message { + NIMNotificationObject *notiMsg = (NIMNotificationObject *)message.messageObject; + NIMChatroomNotificationContent *content = (NIMChatroomNotificationContent *)notiMsg.content; + switch (content.eventType) { + case NIMChatroomEventTypeAddManager: + { + if (self.delegate.acquireChamberAbstract.roomModeType == ChamberModeGenre_Open_Blind || self.delegate.acquireChamberAbstract.roomModeType == ChamberModeGenre_Open_PK_Mode) { + for (NIMChatroomNotificationMember * member in content.targets) { + if (member.userId.intValue == [AccountAbstractStorage instance].acquireCid.integerValue) { + self.arrangeLoudspeakerBtuton.hidden = NO; + break; + } + } + } + } + break; + case NIMChatroomEventTypeRemoveManager: + { + if (self.delegate.acquireChamberAbstract.roomModeType == ChamberModeGenre_Open_Blind || self.delegate.acquireChamberAbstract.roomModeType == ChamberModeGenre_Open_PK_Mode) { + for (NIMChatroomNotificationMember * member in content.targets) { + if (member.userId.intValue == [AccountAbstractStorage instance].acquireCid.integerValue) { + self.arrangeLoudspeakerBtuton.hidden = YES; + break; + } + } + } + } + break; + default: + break; + } +} + +- (void)accelertowardseNEMCLtowardsterdaInterlocution:(NIMRecentSession *)session { + if (!self.roadliceCommunicationRegard.superview) { + [self.superview insertSubview:self.roadliceCommunicationRegard aboveSubview:self]; + [self.roadliceCommunicationRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.communicationBtuton); + make.bottom.mas_equalTo(self.communicationBtuton.mas_top).offset(-2); + make.size.mas_equalTo(CGSizeMake(87, 55)); + }]; + } + [self.roadliceCommunicationRegard accelertowardseLtowardsterdaInterlocution:session]; + NSInteger unreadCount = [[NIMSDK sharedSDK].conversationManager allUnreadCount]; + self.communicationBtuton.selected = unreadCount > 0; +} + +- (void)transltowardseNEMCLtowardsterdaInterlocution:(NIMRecentSession *)session { + NSInteger unreadCount = [[NIMSDK sharedSDK].conversationManager allUnreadCount]; + self.communicationBtuton.selected = unreadCount > 0; +} + +#pragma mark - FBCChamberCommunicationBubbleRegardRepresendtation +- (void)yUMIChamberCommunictowardsionIntumesceRegard:(YUMIChamberCommunicationIntumesceRegard *)view didSelectSession:(NIMRecentSession *)session { + UIViewController * controller = (UIViewController *)self.delegate; + YUMIChamberHalfCommunicationRegard *halfMessageView = [[YUMIChamberHalfCommunicationRegard alloc] initWithFrame:CGRectMake(0, KScreenHeight, KScreenWidth, KScreenHeight) controller:controller]; + halfMessageView.chatConsumerId = session.session.sessionId; + [controller.view addSubview:halfMessageView]; + [UIView animateWithDuration:.35 animations:^{ + CGRect rect = halfMessageView.frame; + rect.origin.y = 0; + halfMessageView.frame = rect; + }]; +} + +#pragma mark - Getters And Setters +- (UIButton *)introjectionBtuton { + if (!_introjectionBtuton) { + _introjectionBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + if ([ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + [_introjectionBtuton setTitle:@"说点什么..." forState:UIControlStateNormal]; + } else { + [_introjectionBtuton setTitle:YMLocalizedString(@"YUMI_Room_Menu_Container_View_3") forState:UIControlStateNormal]; + } + + [_introjectionBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + _introjectionBtuton.titleLabel.font = [UIFont systemFontOfSize:15]; + _introjectionBtuton.layer.masksToBounds = YES; + _introjectionBtuton.layer.cornerRadius = 15; + _introjectionBtuton.backgroundColor = UIColorRGBAlpha(0xFFFFFF, 0.3); + _introjectionBtuton.tag = YUMIChamberParrotProvisionGenre_Input; + [_introjectionBtuton addTarget:self action:@selector(parrotBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _introjectionBtuton; +} + +- (UIButton *)loudspeakerBtuton { + if (!_loudspeakerBtuton) { + _loudspeakerBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_loudspeakerBtuton setImage:[UIImage imageNamed:@"yumi_scope_menu_mimage_open"] forState:UIControlStateNormal]; + [_loudspeakerBtuton setImage:[UIImage imageNamed:@"yumi_scope_menu_mimage_close"] forState:UIControlStateSelected]; + [_loudspeakerBtuton setImage:[UIImage imageNamed:@"yumi_scope_menu_mimage_close"] forState:UIControlStateDisabled | UIControlStateSelected]; + _loudspeakerBtuton.tag = YUMIChamberParrotProvisionGenre_Mic; + [_loudspeakerBtuton addTarget:self action:@selector(parrotBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + _loudspeakerBtuton.hidden = YES; + } + return _loudspeakerBtuton; +} + +- (UIButton *)acceptBtuton { + if (!_acceptBtuton) { + _acceptBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_acceptBtuton setImage:[UIImage imageNamed:@"yumi_scope_menu_face"] forState:UIControlStateNormal]; + [_acceptBtuton setImage:[UIImage imageNamed:@"yumi_scope_menu_face"] forState:UIControlStateSelected]; + _acceptBtuton.tag = YUMIChamberParrotProvisionGenre_Face; + [_acceptBtuton addTarget:self action:@selector(parrotBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + _acceptBtuton.hidden = YES; + } + return _acceptBtuton; +} + +- (UIButton *)communicationBtuton { + if (!_communicationBtuton) { + _communicationBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_communicationBtuton setImage:[UIImage imageNamed:@"yumi_scope_menu_message"] forState:UIControlStateNormal]; + [_communicationBtuton setImage:[UIImage imageNamed:@"yumi_scope_menu_new_message"] forState:UIControlStateSelected]; + _communicationBtuton.tag = YUMIChamberParrotProvisionGenre_Message; + [_communicationBtuton addTarget:self action:@selector(parrotBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _communicationBtuton; +} + +- (UIButton *)furthaerBtuton { + if (!_furthaerBtuton) { + _furthaerBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_furthaerBtuton setImage:[UIImage imageNamed:@"yumi_scope_menu_more"] forState:UIControlStateNormal]; + [_furthaerBtuton setImage:[UIImage imageNamed:@"yumi_scope_menu_more"] forState:UIControlStateSelected]; + _furthaerBtuton.tag = YUMIChamberParrotProvisionGenre_More; + [_furthaerBtuton addTarget:self action:@selector(parrotBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _furthaerBtuton; +} + +- (UIButton *)magnificentBtuton { + if (!_magnificentBtuton) { + _magnificentBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_magnificentBtuton setImage:[UIImage imageNamed:@"yumi_scope_menu_noble"] forState:UIControlStateNormal]; + _magnificentBtuton.tag = YUMIChamberParrotProvisionGenre_Noble; + [_magnificentBtuton addTarget:self action:@selector(parrotBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _magnificentBtuton; +} + +- (UIButton *)presentBtuton { + if (!_presentBtuton) { + _presentBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_presentBtuton setImage:[UIImage imageNamed:@"yumi_scope_menu_gift"] forState:UIControlStateNormal]; + [_presentBtuton setImage:[UIImage imageNamed:@"yumi_scope_menu_gift"] forState:UIControlStateSelected]; + _presentBtuton.tag = YUMIChamberParrotProvisionGenre_Gift; + [_presentBtuton addTarget:self action:@selector(parrotBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _presentBtuton; +} + +- (UIStackView *)stackView { + if (!_stackView) { + _stackView = [[UIStackView alloc] init]; + _stackView.axis = UILayoutConstraintAxisHorizontal; + _stackView.distribution = UIStackViewDistributionFill; + _stackView.alignment = UIStackViewAlignmentCenter; + _stackView.spacing = 8; + } + return _stackView; +} + +- (UIButton *)arrangeLoudspeakerBtuton { + if (!_arrangeLoudspeakerBtuton) { + _arrangeLoudspeakerBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_arrangeLoudspeakerBtuton setImage:[UIImage imageNamed:@"yumi_scope_menu_arrange_mic"] forState:UIControlStateNormal]; + [_arrangeLoudspeakerBtuton setImage:[UIImage imageNamed:@"yumi_scope_menu_arrange_mimage_new"] forState:UIControlStateSelected]; + _arrangeLoudspeakerBtuton.tag = YUMIChamberParrotProvisionGenre_ArrangeMic; + [_arrangeLoudspeakerBtuton addTarget:self action:@selector(parrotBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + _arrangeLoudspeakerBtuton.hidden = YES; + } + return _arrangeLoudspeakerBtuton; +} + +- (UIScrollView *)scrollView { + if (!_scrollView) { + _scrollView = [[UIScrollView alloc] init]; + _scrollView.backgroundColor = [UIColor clearColor]; + _scrollView.showsHorizontalScrollIndicator = NO; + } + return _scrollView; +} + +- (YUMIChamberCommunicationIntumesceRegard *)roadliceCommunicationRegard { + if (!_roadliceCommunicationRegard) { + _roadliceCommunicationRegard = [[YUMIChamberCommunicationIntumesceRegard alloc] init]; + _roadliceCommunicationRegard.delegate = self; + } + return _roadliceCommunicationRegard; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/MessageContainerView/Model/YUMICommunicationAbstractMatrix.h b/YuMi/Modules/YMRoom/View/MessageContainerView/Model/YUMICommunicationAbstractMatrix.h new file mode 100644 index 00000000..9786677e --- /dev/null +++ b/YuMi/Modules/YMRoom/View/MessageContainerView/Model/YUMICommunicationAbstractMatrix.h @@ -0,0 +1,25 @@ +// +// YMMessageInfoModel.h +// YUMI +// +// Created by YUMI on 2022/10/21. +// + +#import +NS_ASSUME_NONNULL_BEGIN + +@interface YUMICommunicationAbstractMatrix : NSObject +@property (nonatomic,strong) NSAttributedString *content; +@property (nonatomic,assign) CGFloat rowHeight; +@property (nonatomic,assign) CGFloat contentLeftMargin; +@property (nonatomic,assign) CGFloat contentRightMargin; +@property (nonatomic,assign) CGFloat contentTopMargin; +@property (nonatomic,assign) CGFloat contentBottomMargin; +@property (nonatomic,assign) CGFloat cellBottomMargin; +@property (nonatomic,assign) BOOL isHiddenBubble; +@property (nonatomic,assign) BOOL isUpdateContentFrame; +@property (nonatomic, copy) NSString *bubbleImageUrl; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/MessageContainerView/Model/YUMICommunicationAbstractMatrix.m b/YuMi/Modules/YMRoom/View/MessageContainerView/Model/YUMICommunicationAbstractMatrix.m new file mode 100644 index 00000000..ce261dee --- /dev/null +++ b/YuMi/Modules/YMRoom/View/MessageContainerView/Model/YUMICommunicationAbstractMatrix.m @@ -0,0 +1,38 @@ +// +// YMMessageInfoModel.m +// YUMI +// +// Created by YUMI on 2022/10/21. +// + +#import "YUMICommunicationAbstractMatrix.h" +#import "XPRoomMessageConstant.h" +#import + + +@implementation YUMICommunicationAbstractMatrix + +- (instancetype)init { + if ([super init]) { + self.contentLeftMargin = 12; + self.contentRightMargin = 0; + self.contentTopMargin = 10; + self.contentBottomMargin = 10; + self.cellBottomMargin = 6; + self.isUpdateContentFrame = NO; + self.isHiddenBubble = NO; + } + return self; +} + +- (void)setContent:(NSAttributedString *)content { + _content = content; + CGSize maxSize = CGSizeMake(kRoomMessageMaxWidth - self.contentLeftMargin - self.contentRightMargin - 12, MAXFLOAT); + YYTextContainer *container = [YYTextContainer containerWithSize:maxSize]; + container.maximumNumberOfRows = 0; + YYTextLayout *layout = [YYTextLayout layoutWithContainer:container text:self.content]; + CGFloat rowHeight = layout.textBoundingSize.height + self.contentTopMargin + self.contentBottomMargin + self.cellBottomMargin; + self.rowHeight = rowHeight; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/MessageContainerView/Model/YUMICommunicationRemoteExtMatrix.h b/YuMi/Modules/YMRoom/View/MessageContainerView/Model/YUMICommunicationRemoteExtMatrix.h new file mode 100644 index 00000000..97989fae --- /dev/null +++ b/YuMi/Modules/YMRoom/View/MessageContainerView/Model/YUMICommunicationRemoteExtMatrix.h @@ -0,0 +1,39 @@ +// +// YMMessageRepoteExtModel.h +// YUMI +// +// Created by YUMI on 2021/10/27. +// 解析message 的扩展的模型 + +#import "NSObject+MJExtension.h" +#import "ConsumerPrototypeVo.h" +#import "YUMINNNN.h" +NS_ASSUME_NONNULL_BEGIN + +@interface YUMICommunicationRemoteExtMatrix : NSObject +@property (nonatomic,copy) NSString *charmUrl; +@property (nonatomic,assign) NSInteger erbanNo; +@property (nonatomic,copy) NSString *experUrl; +@property(nonatomic, assign) ConsumerPrototypeGenre defUser; +@property (nonatomic,assign) BOOL newUser; +@property (nonatomic,assign) BOOL hasPrettyErbanNo; +@property (nonatomic,assign) BOOL official; +@property (nonatomic,copy) NSString *carName; +@property (nonatomic,assign) NSInteger experLevelSeq; +@property (nonatomic,copy) NSString *fromNick; +@property (nonatomic,assign) ConsumerEnterChamberFromGenre fromType; +@property (nonatomic,copy) NSString *fromUid; +@property (nonatomic,copy) NSString *inRoomNameplatePic; +@property (nonatomic,copy) NSString *inRoomNameplateWord; +@property (nonatomic, copy) NSString *vipIcon; +@property (nonatomic, copy) NSString *androidBubbleUrl; +@property (nonatomic, copy) NSString *iosBubbleUrl; +@property (nonatomic, assign) BOOL enterHide; +@property (nonatomic, assign) BOOL preventKick; +@property (nonatomic, copy) NSString *enterRoomEffects; +@property (nonatomic, assign) GenderGenre gender; +@property (nonatomic,assign) BOOL fromSayHelloChannel; +@property (nonatomic,assign) NSInteger platformRole; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/MessageContainerView/Model/YUMICommunicationRemoteExtMatrix.m b/YuMi/Modules/YMRoom/View/MessageContainerView/Model/YUMICommunicationRemoteExtMatrix.m new file mode 100644 index 00000000..ebbfd610 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/MessageContainerView/Model/YUMICommunicationRemoteExtMatrix.m @@ -0,0 +1,12 @@ +// +// YMMessageRepoteExtModel.m +// YUMI +// +// Created by YUMI on 2021/10/27. +// + +#import "YUMICommunicationRemoteExtMatrix.h" + +@implementation YUMICommunicationRemoteExtMatrix + +@end diff --git a/YuMi/Modules/YMRoom/View/MessageContainerView/Tool/XPRoomMessageConstant.h b/YuMi/Modules/YMRoom/View/MessageContainerView/Tool/XPRoomMessageConstant.h new file mode 100644 index 00000000..cbeaf287 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/MessageContainerView/Tool/XPRoomMessageConstant.h @@ -0,0 +1,22 @@ +// +// YMRoomMessageConstant.h +// YUMI +// +// Created by YUMI on 2021/10/26. +// +#import +#import "YUMIMacroUitls.h" + +#ifndef XPRoomMessageConstant_h +#define XPRoomMessageConstant_h + +#define kRoomMessageMaxWidth (KScreenWidth - 15 - 90) + +static CGFloat kChamberCommunicationDefalutLetterform = 12; +static CGFloat kChamberCommunicationEssayVacuumAltitude = 10; + +static CGFloat kChamberCommunicationIntumesceMonopolizeRestrictions = 7; +static NSInteger kChamberCommunicationLargestLongness = 1000; + + +#endif diff --git a/YuMi/Modules/YMRoom/View/MessageContainerView/Tool/YUMIChamberCommunicationAnatomiser.h b/YuMi/Modules/YMRoom/View/MessageContainerView/Tool/YUMIChamberCommunicationAnatomiser.h new file mode 100644 index 00000000..430ea35e --- /dev/null +++ b/YuMi/Modules/YMRoom/View/MessageContainerView/Tool/YUMIChamberCommunicationAnatomiser.h @@ -0,0 +1,22 @@ +// +// YMRoomMessageParser.h +// YUMI +// +// Created by YUMI on 2021/10/26. +// + +#import +#import "ChamberHostRepresendtation.h" +NS_ASSUME_NONNULL_BEGIN + +@class NIMMessage, YUMICommunicationAbstractMatrix; + +@interface YUMIChamberCommunicationAnatomiser : NSObject + +- (YUMICommunicationAbstractMatrix*)analyzeCommunictowardsionIdiosyncracy:(NIMMessage *)message; +- (NSString *)analyzeCommunictowardsionIntumesce:(NIMMessage *)message; + +@property (nonatomic,weak) id hostRepresedtation; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/MessageContainerView/Tool/YUMIChamberCommunicationAnatomiser.m b/YuMi/Modules/YMRoom/View/MessageContainerView/Tool/YUMIChamberCommunicationAnatomiser.m new file mode 100644 index 00000000..103ca6a6 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/MessageContainerView/Tool/YUMIChamberCommunicationAnatomiser.m @@ -0,0 +1,1153 @@ +// +// YMRoomMessageParser.m +// YUMI +// +// Created by YUMI on 2021/10/26. +// + +#import "YUMIChamberCommunicationAnatomiser.h" +#import +#import +#import +#import "ThemeColor+Room.h" +#import "XPRoomMessageConstant.h" +#import "AccountAbstractStorage.h" +#import "YUMIMacroUitls.h" +#import "YUMIPresentStorage.h" +#import "YUMIChamberAcceptTool.h" +#import "MKJPopup.h" +#import "Api+WishGift.h" +#import "NSArray+Safe.h" +#import "ClientDisposition.h" +#import "YUMICommunicationRemoteExtMatrix.h" +#import "AttachmentMatrix.h" +#import "PresentAchieveAbstractMatrix.h" +#import "XCombatickConsumerMatrix.h" +#import "MiecreoscoopeMHTueueMatrix.h" +#import "ConsumerAbstractMatrix.h" +#import "MiecreoscoopeStateMatrix.h" +#import "ChamberAbstractMatrix.h" +#import "EngagementAbstractMatrix.h" +#import "ChamberAcceptAbstractMatrix.h" +#import "ChamberAcceptDischargeAbstractMatrix.h" +#import "UnionSensationalManagementAbstractMatrix.h" +#import "ChamberCombatChooseConsumerMatrix.h" +#import "ChamberCombatAbstractMatrix.h" +#import "ConfectioneryTimberConsequentMatrix.h" +#import "YUMIPresentBigCaptureMatrix.h" +#import "YUMIPresentCompoundMatrix.h" +#import "ChamberMarchingCaptureMatrix.h" +#import "YUMIUnfoildDeficitSheatheMatrix.h" +#import "YUMICommunicationAbstractMatrix.h" +#import "YUMIChamberSatelliteKitchenMatrix.h" +#import "NetIndicateRegard.h" + +#import "YUMIConsumerSolitaireRegardGovernancer.h" +#import "YUMIChamberMotifPrecautiousRegard.h" +#import "YUMIChamberDischargeEssayRegard.h" +#import "YUMIChamberCombatConsequentRegard.h" + +@implementation YUMIChamberCommunicationAnatomiser + +- (YUMICommunicationAbstractMatrix*)analyzeCommunictowardsionIdiosyncracy:(NIMMessage *)message { + NIMMessageType messageType = message.messageType; + YUMICommunicationAbstractMatrix * communicationAbstract = [[YUMICommunicationAbstractMatrix alloc] init]; + switch (messageType) { + case NIMMessageTypeText: + return [self manufactureChinwagIdiosyncracy:message communicationAbstract:communicationAbstract]; + + case NIMMessageTypeTip: + return [self manufacturePromptsIdiosyncracy:message communicationAbstract:communicationAbstract]; + + case NIMMessageTypeNotification: + return [self manufactureCircularIdiosyncracy:message communicationAbstract:communicationAbstract]; + + case NIMMessageTypeCustom: + return [self manufactureIndividualityIdiosyncracy:message communicationAbstract:communicationAbstract]; + default: + return nil; + } +} + +- (NSString *)analyzeCommunictowardsionIntumesce:(NIMMessage *)message { + YUMICommunicationRemoteExtMatrix * model = [YUMICommunicationRemoteExtMatrix mtowardsrixAboutJSON:message.remoteExt[message.from]]; + return model.iosBubbleUrl ? model.iosBubbleUrl : @""; +} + +- (YUMICommunicationAbstractMatrix *)manufactureIndividualityIdiosyncracy:(NIMMessage *)message communicationAbstract:(YUMICommunicationAbstractMatrix*)communicationAbstract{ + NIMCustomObject *obj = (NIMCustomObject *)message.messageObject; + AttachmentMatrix *attachment = (AttachmentMatrix *)obj.attachment; + YUMICommunicationRemoteExtMatrix * model = [YUMICommunicationRemoteExtMatrix mtowardsrixAboutJSON:message.remoteExt[message.from]]; + communicationAbstract.bubbleImageUrl = [self analyzeCommunictowardsionIntumesce:message]; + int first = attachment.first; + if (first == IndividualityCommunicationGenre_Gift) { + return [self produceDischargePresentIdiosyncracy:attachment sendInfo:model communicationAbstract:communicationAbstract]; + } else if(first == IndividualityCommunicationGenre_AllMicroSend) { + return [self produceBtowardschMiecreoscoopeDischargePresentIdiosyncracy:attachment sendInfo:model communicationAbstract:communicationAbstract]; + } else if(first == IndividualityCommunicationGenre_Room_Tip) { + return [self producePartowardsiciptowardsionOrConsidertowardsionChamberIdiosyncracy:attachment sendInfo:model uid:message.from communicationAbstract:communicationAbstract]; + } else if(first == IndividualityCommunicationGenre_Kick_User || first == IndividualityCommunicationGenre_Queue) { + XCombatickConsumerMatrix * kickModel = [XCombatickConsumerMatrix mtowardsrixAboutJSON:attachment.data]; + return [self produceAbandonConsumerIdiosyncracy:attachment info:kickModel communicationAbstract:communicationAbstract]; + } else if(first == IndividualityCommunicationGenre_Look_Love) { + return [self produceConfectioneryTimberHighPrototypeIdiosyncracy:attachment communicationAbstract:communicationAbstract]; + } else if(first == IndividualityCommunicationGenre_Arrange_Mic) { + return [self produceScheduleLoudspeakerIdiosyncracy:attachment communicationAbstract:communicationAbstract]; + }else if(first == IndividualityCommunicationGenre_Update_RoomInfo) { + return [self produceChamberAbstractRefurbishIdiosyncracy:attachment communicationAbstract:communicationAbstract]; + } else if(first == IndividualityCommunicationGenre_Collection_Room) { + return [self produceAssembleChamberIdiosyncracy:attachment communicationAbstract:communicationAbstract]; + } else if(first == IndividualityCommunicationGenre_RoomPlay_Dating) { + return [self produceChamberEngagementIdiosyncracy:attachment communicationAbstract:communicationAbstract]; + } else if (first == IndividualityCommunicationGenre_Noble_VIP) { + return [self produceMagnificentPrototypeIdiosyncracy:attachment communicationAbstract:communicationAbstract]; + } else if (first == IndividualityCommunicationGenre_Face) { + return [self produceChamberAcceptIdiosyncracy:attachment communicationAbstract:communicationAbstract]; + } else if (first == IndividualityCommunicationGenre_Tarot) { + return [self produceTarotIdiosyncracy:attachment communicationAbstract:communicationAbstract]; + } else if (first == IndividualityCommunicationGenre_Anchor_FansTeam) { + return [self produceKellegFantowardsicsSquadIdiosyncracy:attachment communicationAbstract:communicationAbstract]; + } else if(first == IndividualityCommunicationGenre_Hall_Super_Admin) { + XCombatickConsumerMatrix * kickModel = [XCombatickConsumerMatrix mtowardsrixAboutJSON:attachment.data]; + return [self produceAbandonConsumerIdiosyncracy:attachment info:kickModel communicationAbstract:communicationAbstract]; + } else if (first == IndividualityCommunicationGenre_Room_PK) { + return [self produceChamberCombatIdiosyncracy:attachment communicationAbstract:communicationAbstract]; + } else if (first == IndividualityCommunicationGenre_LuckyBag) { + return [self produceChamberInthecaseoftuntowardseConsiderableCaptureIdiosyncracy:attachment communicationAbstract:communicationAbstract]; + } else if(first == IndividualityCommunicationGenre_Gift_Compound) { + return [self produceChamberPresentSynthetiseIdiosyncracy:attachment communicationAbstract:communicationAbstract]; + } else if(first == IndividualityCommunicationGenre_Room_Sailing) { + return [self produceChamberMarchingIdiosyncracy:attachment communicationAbstract:communicationAbstract]; + } else if (first == IndividualityCommunicationGenre_RedPacket && attachment.second == Custom_Message_Sub_OpenRedPacketSuccess) { + return [self produceDeficitShetowardsheIdiosyncracy:attachment communicationAbstract:communicationAbstract]; + } else if (first == IndividualityCommunicationGenre_Graffiti_Star_Kitchen){ + return [self produceStowardselliteKitchenIdiosyncracy:attachment]; + } + return nil; +} + +- (YUMICommunicationAbstractMatrix*)manufactureChinwagIdiosyncracy:(NIMMessage *)message communicationAbstract:(YUMICommunicationAbstractMatrix *)communicationAbstract{ + NSString * uid = [AccountAbstractStorage instance].acquireCid; + YUMICommunicationRemoteExtMatrix * model = [YUMICommunicationRemoteExtMatrix mtowardsrixAboutJSON:message.remoteExt[message.from]]; + communicationAbstract.bubbleImageUrl = [self analyzeCommunictowardsionIntumesce:message]; + NSString * nick = [NSString stringWithFormat:@"%@:", ((NIMMessageChatroomExtension *)message.messageExt).roomNickname]; + if ([message.from isEqualToString:uid]) { + nick = @"我:"; + } + + NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] init]; + + if ([ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + + [attribute appendAttributedString:[self produceHLOfficalGrantedStrangeconsumerIdiosyncracy:model.defUser newUser:model.newUser fromSayHelloChannel:model.fromSayHelloChannel]]; + if ([self isUniversalChamberSenstowardsionalManagement:message.from]) { + [attribute appendAttributedString:[self produceProvincialIndictowardseIdiosyncracy:@"common_super_admin"]]; + } + + if (model.vipIcon) { + [attribute appendAttributedString:[self produceWeebsiteIndictowardseIdiosyncracy:model.vipIcon]]; + [attribute appendAttributedString:[self produceSapceIdiosyncracy:2]]; + } + if (model.experUrl) { + [attribute appendAttributedString:[self produceWeebsiteIndictowardseIdiosyncracy:model.experUrl]]; + [attribute appendAttributedString:[self produceSapceIdiosyncracy:2]]; + } + + if (model.inRoomNameplatePic.length > 0 && model.inRoomNameplateWord.length > 0) { + [attribute appendAttributedString:[self produceMtowardserialTowardstibute:model.inRoomNameplateWord image:model.inRoomNameplatePic textFont:[UIFont systemFontOfSize:9]]]; + [attribute appendAttributedString:[self produceSapceIdiosyncracy:2]]; + } else if (model.inRoomNameplatePic.length > 0) { + [attribute appendAttributedString:[self produceWeebsiteIndictowardseIdiosyncracy:model.inRoomNameplatePic]]; + [attribute appendAttributedString:[self produceSapceIdiosyncracy:2]]; + } + } + + [attribute appendAttributedString:[self produceEssayIdiosyncracy:nick color:[DJDKMIMOMColor communictowardsionDeficiencyEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + [attribute appendAttributedString:[self produceSapceIdiosyncracy:2]]; + + id nickNameNifo = message.remoteExt[@"atNames"]; + NSMutableAttributedString *msgStr; + if (message.text) { + msgStr = [[NSMutableAttributedString alloc] initWithString:message.text]; + [msgStr addAttribute:NSForegroundColorAttributeName + value:[DJDKMIMOMColor communictowardsionEssayPrettify] + range:NSMakeRange(0, msgStr.length)]; + if ([nickNameNifo isKindOfClass:[NSArray class]]) { + for (NSString *nick in nickNameNifo) { + NSRange range = [message.text rangeOfString:nick]; + if (range.length) { + [msgStr yy_setTextHighlightRange:range color:UIColorFromRGB(0xFD85C9) backgroundColor:[UIColor clearColor] userInfo:nil]; + } + } + } + [attribute appendAttributedString:msgStr]; + } + [self towardstributeAccelertowardseLongPressHihtShining:attribute uid:message.from nick:((NIMMessageChatroomExtension *)message.messageExt).roomNickname]; + communicationAbstract.content = attribute; + return communicationAbstract; +} + +- (YUMICommunicationAbstractMatrix*)manufacturePromptsIdiosyncracy:(NIMMessage *)message communicationAbstract:(YUMICommunicationAbstractMatrix *)communicationAbstract{ + communicationAbstract.bubbleImageUrl = [self analyzeCommunictowardsionIntumesce:message]; + if ([message.localExt.allKeys containsObject:@"isRoomTopic"]) { + NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] init]; + [attribute appendAttributedString: [self produceEssayIdiosyncracy:message.text color:[UIColor whiteColor] font:kChamberCommunicationDefalutLetterform]]; + if ([[message.localExt objectForKey:@"isRoomTopic"] boolValue] == YES) { + [attribute yy_setTextHighlightRange:NSMakeRange(0, attribute.length) color:nil backgroundColor:nil tapAction:^(UIView * _Nonnull containerView, NSAttributedString * _Nonnull text, NSRange range, CGRect rect) { + ChamberAbstractMatrix * roomInfo = self.hostRepresedtation.acquireChamberAbstract; + MKJPopupServing * config = [[MKJPopupServing alloc] init]; + YUMIChamberMotifPrecautiousRegard * alertView = [[YUMIChamberMotifPrecautiousRegard alloc] init]; + alertView.title = roomInfo.roomDesc; + alertView.message = roomInfo.introduction; + config.contentView = alertView; + [MKJPopup popupAboutDisposition:config]; + }]; + } + communicationAbstract.content = attribute; + } else { + NSAttributedString * attribute = [self produceEssayIdiosyncracy:message.text color:UIColorFromRGB(0xFE5D7F) font:kChamberCommunicationDefalutLetterform]; + communicationAbstract.content = attribute; + } + return communicationAbstract; +} + +- (YUMICommunicationAbstractMatrix*)manufactureCircularIdiosyncracy:(NIMMessage *)message communicationAbstract:(YUMICommunicationAbstractMatrix *)communicationAbstract{ + communicationAbstract.bubbleImageUrl = [self analyzeCommunictowardsionIntumesce:message]; + NIMNotificationObject *notiMsg = (NIMNotificationObject *)message.messageObject; + NIMChatroomNotificationContent *content = (NIMChatroomNotificationContent *)notiMsg.content; + NIMChatroomNotificationMember *member = content.targets[0]; + NIMMessageChatroomExtension * messageExt = (NIMMessageChatroomExtension *)message.messageExt; + switch (content.eventType) { + case NIMChatroomEventTypeEnter: + { + NSString* nick = member.nick.length > 0 ? member.nick : @""; + NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] init]; + NSDictionary * dic = [(NSDictionary *)messageExt.roomExt.toJSONGroal objectForKey:message.from]; + YUMICommunicationRemoteExtMatrix * extModel = [YUMICommunicationRemoteExtMatrix mtowardsrixAboutImpactbasket:dic]; + if ([ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + + [attribute appendAttributedString:[self produceHLOfficalGrantedStrangeconsumerIdiosyncracy:extModel.defUser newUser:extModel.newUser fromSayHelloChannel:extModel.fromSayHelloChannel]]; + + if ([self isUniversalChamberSenstowardsionalManagement:message.from]) { + [attribute appendAttributedString:[self produceProvincialIndictowardseIdiosyncracy:@"common_super_admin"]]; + [attribute appendAttributedString:[self produceSapceIdiosyncracy:2]]; + } + + if (extModel.vipIcon.length > 0) { + [attribute appendAttributedString:[self produceWeebsiteIndictowardseIdiosyncracy:extModel.vipIcon]]; + [attribute appendAttributedString:[self produceSapceIdiosyncracy:2]]; + } + if (extModel.experUrl.length > 0) { + [attribute appendAttributedString:[self produceWeebsiteIndictowardseIdiosyncracy:extModel.experUrl]]; + [attribute appendAttributedString:[self produceSapceIdiosyncracy:2]]; + } + if (extModel.inRoomNameplatePic.length > 0 && extModel.inRoomNameplateWord.length > 0) { + [attribute appendAttributedString:[self produceMtowardserialTowardstibute:extModel.inRoomNameplateWord image:extModel.inRoomNameplatePic textFont:[UIFont systemFontOfSize:9]]]; + [attribute appendAttributedString:[self produceSapceIdiosyncracy:2]]; + } + [attribute appendAttributedString:[self produceMonicerTowardsrribute:nick uid:message.from.integerValue]]; + if (extModel.carName.length > 0) { + [attribute appendAttributedString:[self produceEssayIdiosyncracy:@" 驾着 " color:[DJDKMIMOMColor communictowardsionEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:extModel.carName color:[DJDKMIMOMColor communictowardsionMonicerPrettify] font:kChamberCommunicationDefalutLetterform]]; + [attribute appendAttributedString:[self produceSapceIdiosyncracy:2]]; + } + + if (extModel.fromType > 0) { + if (extModel.fromType == ConsumerEnterChamberFromGenre_Home_Recommend) { + [attribute appendAttributedString:[self produceEssayIdiosyncracy:YMLocalizedString(@"YUMI_Room_Message_Parser_2") color:[DJDKMIMOMColor communictowardsionEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + } else if(extModel.fromType == ConsumerEnterChamberFromGenre_Follow_User || extModel.fromType == ConsumerEnterChamberFromGenre_New_User_Greet) { + [attribute appendAttributedString:[self produceEssayIdiosyncracy:YMLocalizedString(@"YUMI_Room_Message_Parser_3") color:[DJDKMIMOMColor communictowardsionEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + [attribute appendAttributedString:[self produceMonicerTowardsrribute:extModel.fromNick uid:extModel.fromUid.integerValue]]; + } else if(extModel.fromType == ConsumerEnterChamberFromGenre_Follow_Game_Detail) { + [attribute appendAttributedString:[self produceEssayIdiosyncracy:YMLocalizedString(@"YUMI_Room_Message_Parser_4") color:[DJDKMIMOMColor communictowardsionEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + [attribute appendAttributedString:[self produceMonicerTowardsrribute:extModel.fromNick uid:extModel.fromUid.integerValue]]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:YMLocalizedString(@"YUMI_Room_Message_Parser_5") color:[DJDKMIMOMColor communictowardsionEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + } + } + [attribute appendAttributedString:[self produceEssayIdiosyncracy:YMLocalizedString(@"YUMI_Room_Message_Parser_6") color:[DJDKMIMOMColor communictowardsionEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + } else { + [attribute appendAttributedString:[self produceMonicerTowardsrribute:nick uid:message.from.integerValue]]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:YMLocalizedString(@"YUMI_Room_Message_Parser_7") color:[DJDKMIMOMColor communictowardsionEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + } + + communicationAbstract.content = attribute; + return communicationAbstract; + } + break; + case NIMChatroomEventTypeInfoUpdated:{ + NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] init]; + if (self.hostRepresedtation.acquireChamberAbstract.datingState == ChamberDatingDeclareChangeGenre_Open) { + [attribute appendAttributedString:[self produceEssayIdiosyncracy:YMLocalizedString(@"YUMI_Room_Message_Parser_8") color:[DJDKMIMOMColor communictowardsionDeficiencyEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + communicationAbstract.content = attribute; + return communicationAbstract; + } + } + break; + default: + return nil; + } + return nil; +} + +#pragma mark -星级厨房 +- (NSAttributedString *)produceStowardselliteKitchenIdiosyncracy:(AttachmentMatrix *)attachment{ + YUMIChamberSatelliteKitchenMatrix *starMatrix = [YUMIChamberSatelliteKitchenMatrix mtowardsrixAboutImpactbasket:attachment.data]; + NSString *title = [NSString stringWithFormat:YMLocalizedString(@"YUMI_Room_Message_Parser_103"),starMatrix.nick,starMatrix.itemMultiple,starMatrix.diamonds]; + NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] initWithString:title attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:kChamberCommunicationDefalutLetterform],NSForegroundColorAttributeName:[DJDKMIMOMColor communictowardsionDeficiencyEssayPrettify]}]; + [attribute addAttributes:@{NSForegroundColorAttributeName:[DJDKMIMOMColor communictowardsionMonicerPrettify]} range:[title rangeOfString:starMatrix.nick]]; + [attribute addAttributes:@{NSForegroundColorAttributeName:[DJDKMIMOMColor communictowardsionEssayPrettify]} range:[title rangeOfString:[NSString stringWithFormat:@" %@",starMatrix.itemMultiple]]]; + [attribute addAttributes:@{NSForegroundColorAttributeName:[DJDKMIMOMColor communictowardsionEssayPrettify]} range:[title rangeOfString:[NSString stringWithFormat:@" %@",starMatrix.diamonds]]]; + @kWeakify(self) + [attribute yy_setTextHighlightRange:[title rangeOfString:starMatrix.nick] color:nil backgroundColor:nil tapAction:^(UIView * _Nonnull containerView, NSAttributedString * _Nonnull text, NSRange range, CGRect rect) { + @kStrongify(self); + if (starMatrix.uid.integerValue <= 0) {return;} + [self EvidenceConsumerSolitaire:starMatrix.uid.integerValue]; + }]; + + return attribute; +} + +#pragma mark - 红包 +- (YUMICommunicationAbstractMatrix *)produceDeficitShetowardsheIdiosyncracy:(AttachmentMatrix *)attachment communicationAbstract:(YUMICommunicationAbstractMatrix *)communicationAbstract{ + YUMIUnfoildDeficitSheatheMatrix *info = [YUMIUnfoildDeficitSheatheMatrix mtowardsrixAboutImpactbasket:attachment.data]; + NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] init]; + [attribute appendAttributedString:[self produceMonicerTowardsrribute:info.openRedEnvelopeUserNick uid:info.openRedEnvelopeId.integerValue]]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:YMLocalizedString(@"YUMI_Room_Message_Parser_9") color:[DJDKMIMOMColor communictowardsionEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + [attribute appendAttributedString:[self produceMonicerTowardsrribute:info.redEnvelopeMasterNick uid:info.redEnvelopeMasterId.integerValue]]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:YMLocalizedString(@"YUMI_Room_Message_Parser_10") color:[DJDKMIMOMColor communictowardsionEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + if (info.amount.floatValue>0) { + [attribute appendAttributedString:[self produceEssayIdiosyncracy:[NSString stringWithFormat:YMLocalizedString(@"YUMI_Room_Message_Parser_11"), info.amount] color:[DJDKMIMOMColor communictowardsionMonicerPrettify] font:kChamberCommunicationDefalutLetterform]]; + } + communicationAbstract.content = attribute; + return communicationAbstract; +} + +#pragma mark - 航海 +- (YUMICommunicationAbstractMatrix *)produceChamberMarchingIdiosyncracy:(AttachmentMatrix *)attachment communicationAbstract:(YUMICommunicationAbstractMatrix *)communicationAbstract{ + ChamberMarchingCaptureMatrix *info = [ChamberMarchingCaptureMatrix mtowardsrixAboutImpactbasket:attachment.data]; + NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] init]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:@"厉害了! " color:[DJDKMIMOMColor communictowardsionEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:info.nick color:[DJDKMIMOMColor communictowardsionMonicerPrettify] font:kChamberCommunicationDefalutLetterform]]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:YMLocalizedString(@"YUMI_Room_Message_Parser_13") color:[DJDKMIMOMColor communictowardsionEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:info.prizeName color:[DJDKMIMOMColor communictowardsionMonicerPrettify] font:kChamberCommunicationDefalutLetterform]]; + if (info.prizeNum>1) { + [attribute appendAttributedString:[self produceEssayIdiosyncracy:[NSString stringWithFormat:@"x%d", info.prizeNum] color:[DJDKMIMOMColor communictowardsionEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + } + [self towardstributeAccelertowardseHihtShining:attribute uid:info.uid.integerValue]; + communicationAbstract.content = attribute; + return communicationAbstract; +} + +#pragma mark - 礼物合成 +- (YUMICommunicationAbstractMatrix *)produceChamberPresentSynthetiseIdiosyncracy:(AttachmentMatrix *)attachment communicationAbstract:(YUMICommunicationAbstractMatrix *)communicationAbstract{ + YUMIPresentCompoundMatrix *info = [YUMIPresentCompoundMatrix mtowardsrixAboutImpactbasket:attachment.data]; + NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] init]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:YMLocalizedString(@"YUMI_Room_Message_Parser_14") color:[DJDKMIMOMColor communictowardsionEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:info.nick color:[DJDKMIMOMColor communictowardsionMonicerPrettify] font:kChamberCommunicationDefalutLetterform]]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:info.msg color:[DJDKMIMOMColor communictowardsionEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:info.giftName color:[DJDKMIMOMColor communictowardsionMonicerPrettify] font:kChamberCommunicationDefalutLetterform]]; + [self towardstributeAccelertowardseHihtShining:attribute uid:info.uid.integerValue]; + communicationAbstract.content = attribute; + return communicationAbstract; +} + +#pragma mark - 房间内幸运礼物 大价值 +- (YUMICommunicationAbstractMatrix *)produceChamberInthecaseoftuntowardseConsiderableCaptureIdiosyncracy:(AttachmentMatrix *)attachment communicationAbstract:(YUMICommunicationAbstractMatrix *)communicationAbstract{ + YUMIPresentBigCaptureMatrix * info= [YUMIPresentBigCaptureMatrix mtowardsrixAboutImpactbasket:attachment.data]; + NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] init]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:YMLocalizedString(@"YUMI_Room_Message_Parser_15") color:[DJDKMIMOMColor communictowardsionEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:info.nick color:[DJDKMIMOMColor communictowardsionMonicerPrettify] font:kChamberCommunicationDefalutLetterform]]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:YMLocalizedString(@"YUMI_Room_Message_Parser_16") color:[DJDKMIMOMColor communictowardsionEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:info.roomTitle color:[DJDKMIMOMColor communictowardsionEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:[NSString stringWithFormat:@"通过%@", info.luckyBagName] color:[DJDKMIMOMColor communictowardsionEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:[NSString stringWithFormat:@",开出%@", info.giftName] color:[DJDKMIMOMColor communictowardsionEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + communicationAbstract.content = attribute; + return communicationAbstract; +} + +#pragma mark - 房间内PK +- (YUMICommunicationAbstractMatrix *)produceChamberCombatIdiosyncracy:(AttachmentMatrix *)attachment communicationAbstract:(YUMICommunicationAbstractMatrix *)communicationAbstract{ + NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] init]; + if (attachment.second == Custom_Message_Sub_Room_PK_Manager_Up_Mic) { + [attribute appendAttributedString:[self produceEssayIdiosyncracy:YMLocalizedString(@"YUMI_Room_Message_Parser_19") color:[DJDKMIMOMColor communictowardsionEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + for (NSDictionary * selectuUser in [attachment.data allValues]) { + ChamberCombatChooseConsumerMatrix * userInfoModel = [ChamberCombatChooseConsumerMatrix mtowardsrixAboutImpactbasket:selectuUser]; + if (userInfoModel.groupType != GroupGenre_default && userInfoModel.nick.length > 0) { + [attribute appendAttributedString:[self produceMonicerTowardsrribute:userInfoModel.nick uid:userInfoModel.uid.integerValue]]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:YMLocalizedString(@"YUMI_Room_Message_Parser_20") color:[DJDKMIMOMColor communictowardsionEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + NSString * groupTypeStr; + UIColor * groupColor; + if (userInfoModel.groupType == GroupGenre_Red) { + groupTypeStr= YMLocalizedString(@"YUMI_Room_Message_Parser_21"); + groupColor = UIColorFromRGB(0xFB3D74); + }else{ + groupTypeStr = YMLocalizedString(@"YUMI_Room_Message_Parser_22"); + groupColor = UIColorFromRGB(0x3291FC); + } + [attribute appendAttributedString:[self produceEssayIdiosyncracy:groupTypeStr color:groupColor font:kChamberCommunicationDefalutLetterform]]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:@"," color:[DJDKMIMOMColor communictowardsionEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + } + } + [attribute deleteCharactersInRange:NSMakeRange(attribute.string.length - 1, 1)]; + } else { + ChamberCombatAbstractMatrix * model = [ChamberCombatAbstractMatrix mtowardsrixAboutImpactbasket:attachment.data]; + if (attachment.second == Custom_Message_Sub_Room_PK_Mode_Close) { + NSString * title = YMLocalizedString(@"YUMI_Room_Message_Parser_23"); + [attribute appendAttributedString:[self produceEssayIdiosyncracy:title color:[DJDKMIMOMColor communictowardsionEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + NSRange range = [title rangeOfString:YMLocalizedString(@"YUMI_Room_Message_Parser_24")]; + [attribute addAttribute:NSForegroundColorAttributeName value:[DJDKMIMOMColor communictowardsionDeficiencyEssayPrettify] range:range]; + } else if(attachment.second == Custom_Message_Sub_Room_PK_Result) { + NSString * victoryStr; + if (model.result == ChamberCombatResultGenre_Draw) { + ChamberCombatSquadMatrix * blueTeam; + ChamberCombatSquadMatrix * redTeam; + for (int i = 0 ; i < model.teams.count; i++) { + ChamberCombatSquadMatrix * team = [model.teams secureGroalTowardsIndictowardsrix1:i]; + if (team.team == GroupGenre_Red) { + redTeam = team; + }else{ + blueTeam = team; + } + } + ChamberCombatSquadMatrix * team = [model.teams firstObject]; + if (model.voteMode == ChamberCombatVoteModeGenre_NumberPerson) { + victoryStr = YMLocalizedString(@"YUMI_Room_Message_Parser_25"); + NSString * resultScale = [NSString stringWithFormat:@"%@:%@",[NSString stringWithFormat:@"%lld", team.score],[NSString stringWithFormat:@"%lld", team.score]]; + NSString * result = [NSString stringWithFormat:@"本场PK结果:%@!\nPK值:%@",victoryStr, resultScale]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:result color:[DJDKMIMOMColor communictowardsionEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + }else{ + if (team.protecScore > 0) { + NSString * resultScale = [NSString stringWithFormat:@"%@:%@",[NSString stringWithFormat:@"%lld", team.score],[NSString stringWithFormat:@"%lld", team.score]]; + victoryStr = YMLocalizedString(@"YUMI_Room_Message_Parser_27"); + NSString * result = [NSString stringWithFormat:@"本场PK结果:%@!\nPK值%@",victoryStr, resultScale]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:result color:[DJDKMIMOMColor communictowardsionEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + }else{ + victoryStr = YMLocalizedString(@"YUMI_Room_Message_Parser_29"); + NSString * result = [NSString stringWithFormat:@"本场PK结果:%@!\nPK值%@",victoryStr, @"0:0"]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:result color:[DJDKMIMOMColor communictowardsionEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + } + } + if (team.protector > 0) { + [attribute appendAttributedString:[[NSMutableAttributedString alloc] initWithString:@"\n"]]; + NSString * teamStr = [NSString stringWithFormat:@"蓝队守护者:%@ \n 蓝队守护值: %@ \n 红队守护者: %@ \n 红队守护值: %@", blueTeam.protector.nick.length > 0 ? blueTeam.protector.nick : @"", [[NSNumber numberWithLongLong:blueTeam.protecScore] stringValue], redTeam.protector.nick.length > 0 ? redTeam.protector.nick : @"", [[NSNumber numberWithLongLong:redTeam.protecScore] stringValue]]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:teamStr color:[DJDKMIMOMColor communictowardsionEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + } + }else{ + ChamberCombatSquadMatrix * victoryTeam; + ChamberCombatSquadMatrix * failTeam; + for (int i = 0 ; i < model.teams.count; i++) { + ChamberCombatSquadMatrix * team = [model.teams secureGroalTowardsIndictowardsrix1:i]; + if (team.team == (GroupGenre)model.result) { + victoryTeam = team; + }else{ + failTeam = team; + } + } + if (model.result == ChamberCombatResultGenre_Red){ + victoryStr = YMLocalizedString(@"YUMI_Room_Message_Parser_32"); + }else if (model.result == ChamberCombatResultGenre_Blue){ + victoryStr = YMLocalizedString(@"YUMI_Room_Message_Parser_33"); + } + NSString * resultScale = [NSString stringWithFormat:@"%@:%@",[NSString stringWithFormat:@"%lld", victoryTeam.score],[NSString stringWithFormat:@"%lld", failTeam.score]]; + NSString * result; + if (model.voteMode == ChamberCombatVoteModeGenre_NumberPerson) { + result = [NSString stringWithFormat:@"本场PK结果:%@胜利!\nPK值%@ \n 胜利方战斗值:%@",victoryStr, resultScale,[NSNumber numberWithLongLong:victoryTeam.score]]; + }else{ + if (victoryTeam.protector) { + NSString * victoryProteror = victoryTeam.protector.nick.length > 0 ? victoryTeam.protector.nick : @""; + result = [NSString stringWithFormat:@"本场PK结果:%@胜利! \nPK值%@ \n %@守护者:%@ \n %@守护值:%@",victoryStr, resultScale,victoryStr, victoryProteror, victoryStr,[[NSNumber numberWithLongLong:victoryTeam.protecScore] stringValue]]; + }else{ + result = [NSString stringWithFormat:@"本场PK结果:%@胜利! \nPK值%@ \n %@守护值:%@",victoryStr, resultScale,victoryStr,[[NSNumber numberWithLongLong:victoryTeam.protecScore] stringValue]]; + } + } + [attribute appendAttributedString:[self produceEssayIdiosyncracy:result color:[DJDKMIMOMColor communictowardsionEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + } + + @kWeakify(self); + [attribute yy_setTextHighlightRange:NSMakeRange(0, attribute.length) color:nil backgroundColor:nil tapAction:^(UIView * _Nonnull containerView, NSAttributedString * _Nonnull text, NSRange range, CGRect rect) { + @kStrongify(self); + [self EvidenceChamberCombatConsequent:attachment.data]; + }]; + } else if(attachment.second == Custom_Message_Sub_Room_PK_Mode_Open) { + NSString * pkType; + if (model.voteMode == ChamberCombatVoteModeGenre_GiftValue) { + pkType = YMLocalizedString(@"YUMI_Room_Message_Parser_37"); + }else if (model.voteMode == ChamberCombatVoteModeGenre_NumberPerson){ + pkType = YMLocalizedString(@"YUMI_Room_Message_Parser_38"); + } + NSString * title = [NSString stringWithFormat:@"管理发起房间PK,本次PK时间为%.0f秒,%@", model.duration, pkType]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:title color:[DJDKMIMOMColor communictowardsionEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + }else if (attachment.second == Custom_Message_Sub_Room_PK_Start){ + NSString * title = [NSString stringWithFormat:YMLocalizedString(@"YUMI_Room_Message_Parser_40"), model.duration]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:title color:[DJDKMIMOMColor communictowardsionEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + }else if (attachment.second == Custom_Message_Sub_Room_PK_Re_Start){ + NSString * pkType; + if (model.voteMode == ChamberCombatVoteModeGenre_GiftValue) { + pkType = YMLocalizedString(@"YUMI_Room_Message_Parser_41"); + }else if (model.voteMode == ChamberCombatVoteModeGenre_NumberPerson){ + pkType = YMLocalizedString(@"YUMI_Room_Message_Parser_42"); + } + NSString * title = [NSString stringWithFormat:@"管理员重新开始PK,本次PK时间为%.0f秒,%@", model.duration, pkType]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:title color:[DJDKMIMOMColor communictowardsionEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + } + } + communicationAbstract.content = attribute; + return communicationAbstract; +} + +- (void)EvidenceChamberCombatConsequent:(NSDictionary *)dic { + ChamberCombatAbstractMatrix * pkInfo = [ChamberCombatAbstractMatrix mtowardsrixAboutImpactbasket:dic]; + if (pkInfo.pkStatus == ChamberCombatPositionGenre_End || pkInfo.pkStatus == ChamberCombatPositionGenre_ReStart) { + YUMIChamberCombatConsequentRegard * result = [[YUMIChamberCombatConsequentRegard alloc] init]; + result.chamberCombatConsequentAbstractMatrix = pkInfo; + [MKJPopup popupRegard:result style:MKJPopupStyleAlert]; + } +} + +#pragma mark - 表情显示 +- (YUMICommunicationAbstractMatrix*)produceChamberAcceptIdiosyncracy:(AttachmentMatrix *)attachment communicationAbstract:(YUMICommunicationAbstractMatrix *)communicationAbstract{ + NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] init]; + if ([attachment.data[@"data"] isKindOfClass:[NSArray class]]) { + NSArray * array = [ChamberAcceptDischargeAbstractMatrix mtowardsrixsAboutGarment:attachment.data[@"data"]]; + for (int i = 0; i< array.count; i++) { + ChamberAcceptDischargeAbstractMatrix * sendFaceInfo = [array secureGroalTowardsIndictowardsrix1:i]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:sendFaceInfo.nick color:[DJDKMIMOMColor communictowardsionDeficiencyEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:@":" color:[DJDKMIMOMColor communictowardsionDeficiencyEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:@"\n" color:[DJDKMIMOMColor communictowardsionDeficiencyEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + for (int j = 0; j < sendFaceInfo.resultIndexes.count; j++) { + NSNumber *index = sendFaceInfo.resultIndexes[j]; + UIImage *face = [[YUMIChamberAcceptTool partowardsiciptowardsionAcceptUtensil] prohibiticoveryAcceptIndictowardseById:sendFaceInfo.faceId index:[index integerValue]]; + if (face) { + UIImageView *imageView = [[UIImageView alloc]init]; + imageView.image = face; + imageView.contentMode = UIViewContentModeScaleAspectFit; + imageView.bounds = CGRectMake(0, 0, 30, 30); + NSMutableAttributedString * attrString = [NSMutableAttributedString yy_attachmentStringWithContent:imageView contentMode:UIViewContentModeScaleAspectFit attachmentSize:CGSizeMake(imageView.frame.size.width, imageView.frame.size.height) alignToFont:[UIFont systemFontOfSize:15.0] alignment:YYTextVerticalAlignmentCenter]; + [attribute appendAttributedString:[self produceSapceIdiosyncracy:1]]; + [attribute appendAttributedString:attrString]; + } + } + } + } + communicationAbstract.content = attribute; + return communicationAbstract; +} + +#pragma mark - 收藏房间 +- (YUMICommunicationAbstractMatrix*)produceAssembleChamberIdiosyncracy:(AttachmentMatrix *)attachment communicationAbstract:(YUMICommunicationAbstractMatrix *)communicationAbstract{ + NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] init]; + NSDictionary *data = attachment.data[@"data"]; + NSString *nick = [NSString stringWithFormat:@"%@",data[@"nick"]]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:nick color:[DJDKMIMOMColor communictowardsionMonicerPrettify] font:kChamberCommunicationDefalutLetterform]]; + NSString *tipString = @""; + if (attachment.second == Custom_Message_Sub_Collect_Room_Tips) { + tipString = YMLocalizedString(@"YUMI_Room_Message_Parser_44"); + } + [attribute appendAttributedString:[self produceEssayIdiosyncracy:tipString color:[DJDKMIMOMColor communictowardsionDeficiencyEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + communicationAbstract.content = attribute; + return communicationAbstract; +} + +#pragma mark - 房间信息更新 +- (YUMICommunicationAbstractMatrix*)produceChamberAbstractRefurbishIdiosyncracy:(AttachmentMatrix *)attachment communicationAbstract:(YUMICommunicationAbstractMatrix *)communicationAbstract{ + if (attachment.second == Custom_Message_Sub_Update_RoomInfo_MessageState) { + NSDictionary * dic= attachment.data[@"roomInfo"]; + if (dic.allKeys.count <=0) { + dic = attachment.data; + } + ChamberAbstractMatrix * roomInfo = [ChamberAbstractMatrix mtowardsrixAboutImpactbasket:dic]; + NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] init]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:@"消息:" color:[DJDKMIMOMColor communictowardsionMonicerPrettify] font:kChamberCommunicationDefalutLetterform]]; + if (roomInfo.isCloseScreen) { + [attribute appendAttributedString:[self produceEssayIdiosyncracy:YMLocalizedString(@"YUMI_Room_Message_Parser_46") color:[DJDKMIMOMColor communictowardsionDeficiencyEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + } else { + [attribute appendAttributedString:[self produceEssayIdiosyncracy:YMLocalizedString(@"YUMI_Room_Message_Parser_47") color:[DJDKMIMOMColor communictowardsionDeficiencyEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + } + communicationAbstract.content = attribute; + } else if(attachment.second == Custom_Message_Sub_Update_RoomInfo_AnimateEffect) { + NSDictionary * dic = attachment.data[@"roomInfo"]; + if (dic.allKeys.count <=0) { + dic = attachment.data; + } + ChamberAbstractMatrix * roomInfo = [ChamberAbstractMatrix mtowardsrixAboutImpactbasket:dic]; + NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] init]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:@"消息:" color:[DJDKMIMOMColor communictowardsionMonicerPrettify] font:kChamberCommunicationDefalutLetterform]]; + if (roomInfo.hasAnimationEffect) { + [attribute appendAttributedString:[self produceEssayIdiosyncracy:YMLocalizedString(@"YUMI_Room_Message_Parser_49") color:[DJDKMIMOMColor communictowardsionDeficiencyEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + } else { + [attribute appendAttributedString:[self produceEssayIdiosyncracy:YMLocalizedString(@"YUMI_Room_Message_Parser_50") color:[DJDKMIMOMColor communictowardsionDeficiencyEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + [attribute appendAttributedString:[self produceIndictowardseIdiosyncracy:[UIImage imageNamed:@"yumi_scope_menu_more"]]]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:YMLocalizedString(@"YUMI_Room_Message_Parser_51") color:[DJDKMIMOMColor communictowardsionDeficiencyEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + } + communicationAbstract.content = attribute; + } else if (attachment.second == Custom_Message_Sub_Update_RoomInfo_CleanScreen) { + NSNumber *roleType = attachment.data[@"roleType"]; + NSString *nick = attachment.data[@"nick"]; + NSInteger uid = 0; + if ([attachment.data[@"uid"] isKindOfClass:[NSNumber class]]) { + uid = ((NSNumber *)attachment.data[@"uid"]).integerValue; + } else if ([attachment.data[@"uid"] isKindOfClass:[NSString class]]) { + uid = ((NSString *)attachment.data[@"uid"]).integerValue; + } + NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] init]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:@"消息:" color:[DJDKMIMOMColor communictowardsionMonicerPrettify] font:kChamberCommunicationDefalutLetterform]]; + if (roleType.integerValue == 1) { + [attribute appendAttributedString:[self produceEssayIdiosyncracy:YMLocalizedString(@"YUMI_Room_Message_Parser_53") color:[DJDKMIMOMColor communictowardsionDeficiencyEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:nick color:[DJDKMIMOMColor communictowardsionMonicerPrettify] font:kChamberCommunicationDefalutLetterform]]; + } else if (roleType.integerValue == 2) { + [attribute appendAttributedString:[self produceEssayIdiosyncracy:YMLocalizedString(@"YUMI_Room_Message_Parser_54") color:[DJDKMIMOMColor communictowardsionDeficiencyEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:nick color:[DJDKMIMOMColor communictowardsionMonicerPrettify] font:kChamberCommunicationDefalutLetterform]]; + } + [attribute appendAttributedString:[self produceEssayIdiosyncracy:YMLocalizedString(@"YUMI_Room_Message_Parser_55") color:[DJDKMIMOMColor communictowardsionDeficiencyEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + [self towardstributeAccelertowardseHihtShining:attribute uid:uid]; + communicationAbstract.content = attribute; + } + return communicationAbstract; +} + +#pragma mark - 相亲 +- (YUMICommunicationAbstractMatrix *)produceChamberEngagementIdiosyncracy:(AttachmentMatrix *)attachment communicationAbstract:(YUMICommunicationAbstractMatrix *)communicationAbstract{ + NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] init]; + if(attachment.second == Custom_Message_Sub_Room_Play_Dating_Pick_Heart) { + EngagementAbstractMatrix * datingModel = [EngagementAbstractMatrix mtowardsrixAboutImpactbasket:attachment.data]; + NSString * targetGender = datingModel.targetGender == GenderGenre_Male ? @"男" : YMLocalizedString(@"YUMI_Room_Message_Parser_57"); + NSString * pickString = [NSString stringWithFormat:@"%d号%@嘉宾:", (datingModel.targetPosition + 1), targetGender]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:YMLocalizedString(@"YUMI_Room_Message_Parser_59") color:[DJDKMIMOMColor communictowardsionEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:pickString color:[DJDKMIMOMColor communictowardsionEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + NSString * targetNick = datingModel.targetNickname ? datingModel.targetNickname : @""; + [attribute appendAttributedString:[self produceMonicerTowardsrribute:targetNick uid:datingModel.targetUid]]; + NSString * heartContent = YMLocalizedString(@"YUMI_Room_Message_Parser_60"); + [attribute appendAttributedString:[self produceEssayIdiosyncracy:heartContent color:[DJDKMIMOMColor communictowardsionEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + } else if(attachment.second == Custom_Message_Sub_Room_Play_Dating_Result_Mutual) { + EngagementAbstractMatrix * datingModel = [EngagementAbstractMatrix mtowardsrixAboutImpactbasket:attachment.data]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:YMLocalizedString(@"YUMI_Room_Message_Parser_61") color:[DJDKMIMOMColor communictowardsionEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + NSString * nick = datingModel.nickname ? datingModel.nickname : @""; + [attribute appendAttributedString:[self produceMonicerTowardsrribute:nick uid:datingModel.uid]]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:YMLocalizedString(@"YUMI_Room_Message_Parser_62") color:[DJDKMIMOMColor communictowardsionEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + NSString * targetNick = datingModel.targetNickname ? datingModel.targetNickname : @""; + [attribute appendAttributedString:[self produceMonicerTowardsrribute:targetNick uid:datingModel.targetUid]]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:YMLocalizedString(@"YUMI_Room_Message_Parser_63") color:UIColorFromRGB(0xF84C95) font:kChamberCommunicationDefalutLetterform]]; + } else if (attachment.second == Custom_Message_Sub_Room_Play_Dating_Result_Not_Mutual) { + EngagementAbstractMatrix * datingModel = [EngagementAbstractMatrix mtowardsrixAboutImpactbasket:attachment.data]; + NSString * nick = datingModel.nickname ? datingModel.nickname : @""; + [attribute appendAttributedString:[self produceMonicerTowardsrribute:nick uid:datingModel.uid]]; + if (datingModel.hasSelectUser) { + [attribute appendAttributedString:[self produceEssayIdiosyncracy:YMLocalizedString(@"YUMI_Room_Message_Parser_64") color:[DJDKMIMOMColor communictowardsionEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + NSString * targetNick = datingModel.targetNickname ? datingModel.targetNickname : @""; + [attribute appendAttributedString:[self produceMonicerTowardsrribute:targetNick uid:datingModel.targetUid]]; + } else { + [attribute appendAttributedString:[self produceEssayIdiosyncracy:YMLocalizedString(@"YUMI_Room_Message_Parser_65") color:[DJDKMIMOMColor communictowardsionEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + } + } + communicationAbstract.content = attribute; + return communicationAbstract; +} + +#pragma mark - 排麦 +- (YUMICommunicationAbstractMatrix *)produceScheduleLoudspeakerIdiosyncracy:(AttachmentMatrix *)attachment communicationAbstract:(YUMICommunicationAbstractMatrix *)communicationAbstract{ + NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] init]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:YMLocalizedString(@"YUMI_Room_Message_Parser_66") color:[DJDKMIMOMColor communictowardsionEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + if (attachment.second == Custom_Message_Sub_Arrange_Mic_Mode_Open) { + [attribute appendAttributedString:[self produceEssayIdiosyncracy:YMLocalizedString(@"YUMI_Room_Message_Parser_67") color:[DJDKMIMOMColor communictowardsionDeficiencyEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:YMLocalizedString(@"YUMI_Room_Message_Parser_68") color:[DJDKMIMOMColor communictowardsionEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + } else if (attachment.second == Custom_Message_Sub_Arrange_Mic_Mode_Close) { + [attribute appendAttributedString:[self produceEssayIdiosyncracy:YMLocalizedString(@"YUMI_Room_Message_Parser_69") color:[DJDKMIMOMColor communictowardsionDeficiencyEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:YMLocalizedString(@"YUMI_Room_Message_Parser_70") color:[DJDKMIMOMColor communictowardsionEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + } else if (attachment.second == Custom_Message_Sub_Arrange_Mic_Free_Mic_Open) { + NSDictionary * dic = attachment.data; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:YMLocalizedString(@"YUMI_Room_Message_Parser_71") color:[DJDKMIMOMColor communictowardsionEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:[NSString stringWithFormat:YMLocalizedString(@"YUMI_Room_Message_Parser_72"), ((NSNumber *)dic[@"micPos"]).intValue + 1 ] color:[DJDKMIMOMColor communictowardsionDeficiencyEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:YMLocalizedString(@"YUMI_Room_Message_Parser_73") color:[DJDKMIMOMColor communictowardsionEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + } else if (attachment.second == Custom_Message_Sub_Arrange_Mic_Free_Mic_Close) { + NSDictionary * dic = attachment.data; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:YMLocalizedString(@"YUMI_Room_Message_Parser_74") color:[DJDKMIMOMColor communictowardsionEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:[NSString stringWithFormat:YMLocalizedString(@"YUMI_Room_Message_Parser_75"), ((NSNumber *)dic[@"micPos"]).intValue + 1 ] color:[DJDKMIMOMColor communictowardsionDeficiencyEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:YMLocalizedString(@"YUMI_Room_Message_Parser_76") color:[DJDKMIMOMColor communictowardsionEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + } + communicationAbstract.content = attribute; + return communicationAbstract; +} + +#pragma mark - 糖果树公屏消息 +- (YUMICommunicationAbstractMatrix *)produceConfectioneryTimberHighPrototypeIdiosyncracy:(AttachmentMatrix *)attachment communicationAbstract:(YUMICommunicationAbstractMatrix *)communicationAbstract{ + NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] init]; + + [attribute appendAttributedString:[self produceEssayIdiosyncracy:@"厉害了 " color:[DJDKMIMOMColor communictowardsionDeficiencyEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + ConfectioneryTimberPresentAbstractMatrix * giftInfo = [ConfectioneryTimberPresentAbstractMatrix mtowardsrixAboutImpactbasket:attachment.data]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:giftInfo.nick color:[DJDKMIMOMColor communictowardsionMonicerPrettify] font:kChamberCommunicationDefalutLetterform]]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:YMLocalizedString(@"YUMI_Room_Message_Parser_78") color:[DJDKMIMOMColor communictowardsionDeficiencyEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:giftInfo.prizeName color:[DJDKMIMOMColor communictowardsionEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + if (giftInfo.prizeNum > 1) { + [attribute appendAttributedString:[self produceEssayIdiosyncracy:[NSString stringWithFormat:@" X %d", giftInfo.prizeNum] color:[DJDKMIMOMColor communictowardsionEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + } + + if (attachment.second == Custom_Message_Sub_Candy_Tree_Me && giftInfo.uid.integerValue == [AccountAbstractStorage instance].acquireCid.integerValue) { + [attribute appendAttributedString:[self produceEssayIdiosyncracy:@"(仅自己可见)" color:[DJDKMIMOMColor communictowardsionEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + } + + [self towardstributeAccelertowardseHihtShining:attribute uid:giftInfo.uid.integerValue]; + communicationAbstract.content = attribute; + return communicationAbstract; +} + +#pragma mark - 贵族 +- (YUMICommunicationAbstractMatrix *)produceMagnificentPrototypeIdiosyncracy:(AttachmentMatrix *)attachment communicationAbstract:(YUMICommunicationAbstractMatrix *)communicationAbstract{ + NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] init]; + NSInteger uid = 0; + if ([attachment.data[@"uid"] isKindOfClass:[NSNumber class]]) { + uid = ((NSNumber *)attachment.data[@"uid"]).integerValue; + } else if ([attachment.data[@"uid"] isKindOfClass:[NSString class]]) { + uid = ((NSString *)attachment.data[@"uid"]).integerValue; + } + if (attachment.second == Custom_Message_Sub_Room_Open_Noble_VIP) { + [attribute appendAttributedString:[self produceEssayIdiosyncracy:YMLocalizedString(@"YUMI_Room_Message_Parser_80") color:[DJDKMIMOMColor communictowardsionDeficiencyEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:[NSString stringWithFormat:@"%@(%@)", attachment.data[@"nick"], attachment.data[@"erbanNo"]] color:[DJDKMIMOMColor communictowardsionMonicerPrettify] font:kChamberCommunicationDefalutLetterform]]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:YMLocalizedString(@"YUMI_Room_Message_Parser_81") color:[DJDKMIMOMColor communictowardsionDeficiencyEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:attachment.data[@"currVipName"] color:[DJDKMIMOMColor communictowardsionEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:@"贵族身份!" color:[DJDKMIMOMColor communictowardsionDeficiencyEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + } else if (attachment.second == Custom_Message_Sub_Room_Noble_LevelUp || attachment.second == Custom_Message_Sub_AllRoom_Noble_LevelUp_Suspend) { + [attribute appendAttributedString:[self produceEssayIdiosyncracy:YMLocalizedString(@"YUMI_Room_Message_Parser_83") color:[DJDKMIMOMColor communictowardsionDeficiencyEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:attachment.data[@"nick"] color:[DJDKMIMOMColor communictowardsionMonicerPrettify] font:kChamberCommunicationDefalutLetterform]]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:YMLocalizedString(@"YUMI_Room_Message_Parser_84") color:[DJDKMIMOMColor communictowardsionDeficiencyEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:attachment.data[@"currVipName"] color:[DJDKMIMOMColor communictowardsionEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:@"!" color:[DJDKMIMOMColor communictowardsionDeficiencyEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + } + [self towardstributeAccelertowardseHihtShining:attribute uid:uid]; + communicationAbstract.content = attribute; + return communicationAbstract; +} + +#pragma mark - 塔罗 +- (YUMICommunicationAbstractMatrix *)produceTarotIdiosyncracy:(AttachmentMatrix *)attachment communicationAbstract:(YUMICommunicationAbstractMatrix *)communicationAbstract{ + NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] init]; + if (attachment.second == Custom_Message_Sub_Tarot) { + [attribute appendAttributedString:[self produceEssayIdiosyncracy:YMLocalizedString(@"YUMI_Room_Message_Parser_85") color:[DJDKMIMOMColor communictowardsionDeficiencyEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:attachment.data[@"nick"] color:[DJDKMIMOMColor communictowardsionMonicerPrettify] font:kChamberCommunicationDefalutLetterform]]; + NSString *text = [NSString stringWithFormat:@" %@", attachment.data[@"drawMsgText"]]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:text color:[DJDKMIMOMColor communictowardsionDeficiencyEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + if ([attachment.data[@"drawGoldNum"] intValue] > 1) { + [attribute appendAttributedString:[self produceEssayIdiosyncracy:[NSString stringWithFormat:@"%d",[attachment.data[@"drawGoldNum"] intValue]] color:[DJDKMIMOMColor communictowardsionDeficiencyEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + } + [attribute appendAttributedString:[self produceEssayIdiosyncracy:[NSString stringWithFormat:@"%@ ", attachment.data[@"chargeProdName"]] color:[DJDKMIMOMColor communictowardsionDeficiencyEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + } + communicationAbstract.content = attribute; + return communicationAbstract; +} + +#pragma mark - 个播粉丝团 +- (YUMICommunicationAbstractMatrix *)produceKellegFantowardsicsSquadIdiosyncracy:(AttachmentMatrix *)attachment communicationAbstract:(YUMICommunicationAbstractMatrix *)communicationAbstract{ + NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] init]; + NSInteger uid = 0; + if ([attachment.data[@"uid"] isKindOfClass:[NSNumber class]]) { + uid = ((NSNumber *)attachment.data[@"uid"]).integerValue; + } else if ([attachment.data[@"uid"] isKindOfClass:[NSString class]]) { + uid = ((NSString *)attachment.data[@"uid"]).integerValue; + } + NSString *idString = [NSString stringWithFormat:@"%ld", uid]; + NSString *nickName = attachment.data[@"nickname"]; + if ([idString isEqualToString:[[AccountAbstractStorage instance] acquireCid]]) { + nickName = YMLocalizedString(@"YUMI_Room_Message_Parser_86"); + } + if (attachment.second == Custom_Message_Sub_FansTeam_Open_Success) { + [attribute appendAttributedString:[self produceEssayIdiosyncracy:YMLocalizedString(@"YUMI_Room_Message_Parser_87") color:[DJDKMIMOMColor communictowardsionDeficiencyEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:nickName color:[DJDKMIMOMColor communictowardsionMonicerPrettify] font:kChamberCommunicationDefalutLetterform]]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:YMLocalizedString(@"YUMI_Room_Message_Parser_88") color:[DJDKMIMOMColor communictowardsionDeficiencyEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + } else if (attachment.second == Custom_Message_Sub_FansTeam_Join_Success) { + [attribute appendAttributedString:[self produceEssayIdiosyncracy:YMLocalizedString(@"YUMI_Room_Message_Parser_89") color:[DJDKMIMOMColor communictowardsionDeficiencyEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:nickName color:[DJDKMIMOMColor communictowardsionMonicerPrettify] font:kChamberCommunicationDefalutLetterform]]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:YMLocalizedString(@"YUMI_Room_Message_Parser_90") color:[DJDKMIMOMColor communictowardsionDeficiencyEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + } else if (attachment.second == Custom_Message_Sub_FansTeam_Out_Success) { + [attribute appendAttributedString:[self produceEssayIdiosyncracy:nickName color:[DJDKMIMOMColor communictowardsionMonicerPrettify] font:kChamberCommunicationDefalutLetterform]]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:YMLocalizedString(@"YUMI_Room_Message_Parser_91") color:[DJDKMIMOMColor communictowardsionDeficiencyEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + } + [self towardstributeAccelertowardseHihtShining:attribute uid:uid]; + communicationAbstract.content = attribute; + return communicationAbstract; +} + +#pragma mark - 踢出房间/拉黑/下麦 +- (YUMICommunicationAbstractMatrix *)produceAbandonConsumerIdiosyncracy:(AttachmentMatrix *)attachment info:(XCombatickConsumerMatrix *)info communicationAbstract:(YUMICommunicationAbstractMatrix *)communicationAbstract{ + NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] init]; + [attribute appendAttributedString:[self produceMonicerTowardsrribute:info.targetNick uid:info.targetUid]]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:YMLocalizedString(@"YUMI_Room_Message_Parser_92") color:[DJDKMIMOMColor communictowardsionDeficiencyEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + [attribute appendAttributedString:[self produceMonicerTowardsrribute:info.handleNick uid:info.handleUid]]; + NSString * content= @""; + if (attachment.second == Custom_Message_Sub_Kick_BeKicked || attachment.second == Custom_Message_Sub_Hall_Super_Admin_Kick_Manager_Out_Room) { + content = YMLocalizedString(@"YUMI_Room_Message_Parser_93"); + } else if(attachment.second == Custom_Message_Sub_Kick_BlackList) { + content = YMLocalizedString(@"YUMI_Room_Message_Parser_94"); + } else if(attachment.second == Custom_Message_Sub_Queue_Kick) { + content = YMLocalizedString(@"YUMI_Room_Message_Parser_95"); + } + [attribute appendAttributedString:[self produceEssayIdiosyncracy:content color:[DJDKMIMOMColor communictowardsionDeficiencyEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + communicationAbstract.content = attribute; + return communicationAbstract; +} + + +#pragma mark - 分享房间 +- (YUMICommunicationAbstractMatrix *)producePartowardsiciptowardsionOrConsidertowardsionChamberIdiosyncracy:(AttachmentMatrix *)attachment sendInfo:(YUMICommunicationRemoteExtMatrix *)sendInfo uid:(NSString *)uid communicationAbstract:(YUMICommunicationAbstractMatrix *)communicationAbstract{ + NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] init]; + NSDictionary *data = attachment.data[@"data"]; + NSString *nick = [NSString stringWithFormat:@"%@",data[@"nick"]]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:nick color:[DJDKMIMOMColor communictowardsionMonicerPrettify] font:kChamberCommunicationDefalutLetterform]]; + NSString *tipString = @""; + if (attachment.second == Custom_Message_Sub_Room_Tip_ShareRoom) { + tipString = YMLocalizedString(@"YUMI_Room_Message_Parser_96"); + }else if (attachment.second == Custom_Message_Sub_Room_Tip_Attention_Owner) { + tipString = YMLocalizedString(@"YUMI_Room_Message_Parser_97"); + } + [attribute appendAttributedString:[self produceEssayIdiosyncracy:tipString color:[DJDKMIMOMColor communictowardsionDeficiencyEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + [self towardstributeAccelertowardseHihtShining:attribute uid:uid.integerValue]; + communicationAbstract.content = attribute; + return communicationAbstract; +} + +#pragma mark - 送礼物的公屏 +- (YUMICommunicationAbstractMatrix *)produceBtowardschMiecreoscoopeDischargePresentIdiosyncracy:(AttachmentMatrix *)attachment sendInfo:(YUMICommunicationRemoteExtMatrix *)sendInfo communicationAbstract:(YUMICommunicationAbstractMatrix *)communicationAbstract{ + NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] init]; + PresentAchieveAbstractMatrix *info = [PresentAchieveAbstractMatrix mtowardsrixAboutJSON:attachment.data]; + PresentAbstractMatrix *giftInfo = info.gift == nil ? info.giftInfo : info.gift; + if (giftInfo == nil) { + giftInfo = [[YUMIPresentStorage partowardsiciptowardsionStorage] prohibiticoveryPresentAbstract:info.giftId]; + } + + [attribute appendAttributedString:[self produceHLOfficalGrantedStrangeconsumerIdiosyncracy:sendInfo.defUser newUser:sendInfo.newUser fromSayHelloChannel:sendInfo.fromSayHelloChannel]]; + + [attribute appendAttributedString:[self produceMonicerTowardsrribute:info.nick uid:info.uid.integerValue]]; + [attribute appendAttributedString:[self produceSapceIdiosyncracy:2]]; + if (attachment.second == Custom_Message_Sub_AllBatchSend || attachment.second == Custom_Message_Sub_AllMicroSend) { + if (attachment.second == Custom_Message_Sub_AllBatchSend) { + + [attribute appendAttributedString:[self produceEssayIdiosyncracy:@" 打赏 " color:[DJDKMIMOMColor communictowardsionDeficiencyEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + [attribute appendAttributedString:[self produceSapceIdiosyncracy:2]]; + for (int i = 0; i < info.targetUsers.count; i++) { + PresentAchieveConsumerAbstractMatrix *targetInfo = [info.targetUsers secureGroalTowardsIndictowardsrix1:i]; + + [attribute appendAttributedString:[self produceMonicerTowardsrribute:targetInfo.nick uid:targetInfo.uid]]; + [attribute appendAttributedString:[self produceSapceIdiosyncracy:2]]; + if (i < (info.targetUsers.count -1)) { + + [attribute appendAttributedString:[self produceEssayIdiosyncracy:@"," color:[DJDKMIMOMColor communictowardsionMonicerPrettify] font:kChamberCommunicationDefalutLetterform]]; + [attribute appendAttributedString:[self produceSapceIdiosyncracy:2]]; + } + } + } else { + + [attribute appendAttributedString:[self produceEssayIdiosyncracy:@" 全麦打赏 " color:[DJDKMIMOMColor communictowardsionDeficiencyEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + [attribute appendAttributedString:[self produceSapceIdiosyncracy:2]]; + } + + + if (giftInfo.giftUrl) { + [attribute appendAttributedString:[self produceWeebsiteIndictowardseIdiosyncracy:giftInfo.giftUrl]]; + [attribute appendAttributedString:[self produceSapceIdiosyncracy:2]]; + } + + + [attribute appendAttributedString:[self produceEssayIdiosyncracy:[NSString stringWithFormat:@" X%ld",info.giftNum] color:[DJDKMIMOMColor communictowardsionEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + } else if(attachment.second == Custom_Message_Sub_AllMicroLuckySend || attachment.second == Custom_Message_Sub_AllBatchMicroLuckySend) { + + NSString * sendTitle = @" 送出 "; + if (attachment.second == Custom_Message_Sub_AllMicroLuckySend) { + sendTitle = @" 全麦送出 "; + } + + [attribute appendAttributedString:[self produceEssayIdiosyncracy:sendTitle color:[DJDKMIMOMColor communictowardsionDeficiencyEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + [attribute appendAttributedString:[self produceSapceIdiosyncracy:2]]; + + + [attribute appendAttributedString:[self produceEssayIdiosyncracy:info.giftName color:[DJDKMIMOMColor communictowardsionEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + [attribute appendAttributedString:[self produceSapceIdiosyncracy:2]]; + + + [attribute appendAttributedString:[self produceEssayIdiosyncracy:@" 给 " color:[DJDKMIMOMColor communictowardsionDeficiencyEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + [attribute appendAttributedString:[self produceSapceIdiosyncracy:2]]; + if (info.luckyGiftList) { + + [attribute appendAttributedString:[self produceMonicerTowardsrribute:info.luckyGiftList.user.nick uid:info.luckyGiftList.user.uid]]; + [attribute appendAttributedString:[self produceSapceIdiosyncracy:2]]; + + + [attribute appendAttributedString:[self produceEssayIdiosyncracy:@" 爆出了 " color:[DJDKMIMOMColor communictowardsionDeficiencyEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + [attribute appendAttributedString:[self produceSapceIdiosyncracy:2]]; + + [info.luckyGiftList.giftList enumerateObjectsUsingBlock:^(PresentStatementsAbstract * _Nonnull giftListInfo, NSUInteger idx, BOOL * _Nonnull stop) { + PresentAbstractMatrix *luckGiftInfo = [[YUMIPresentStorage partowardsiciptowardsionStorage] prohibiticoveryPresentAbstract:[NSString stringWithFormat:@"%ld", giftListInfo.giftId]]; + + [attribute appendAttributedString:[self produceEssayIdiosyncracy:YMLocalizedString(@"YUMI_Room_Message_Parser_104") color:[DJDKMIMOMColor communictowardsionDeficiencyEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + [attribute appendAttributedString:[self produceSapceIdiosyncracy:2]]; + + [attribute appendAttributedString:[self produceEssayIdiosyncracy:[NSString stringWithFormat:@"%ld",(NSInteger)luckGiftInfo.goldPrice] color:[DJDKMIMOMColor communictowardsionEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + + [attribute appendAttributedString:[self produceEssayIdiosyncracy:YMLocalizedString(@"YUMI_Room_Message_Parser_105") color:[DJDKMIMOMColor communictowardsionDeficiencyEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + + [attribute appendAttributedString:[self produceWeebsiteIndictowardseIdiosyncracy:luckGiftInfo.giftUrl]]; + [attribute appendAttributedString:[self produceSapceIdiosyncracy:2]]; + + + [attribute appendAttributedString:[self produceEssayIdiosyncracy: [NSString stringWithFormat:@" X%ld",giftListInfo.giftNum] color:[DJDKMIMOMColor communictowardsionEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + if (info.luckyGiftList.giftList.count-1 != idx) { + + [attribute appendAttributedString:[self produceEssayIdiosyncracy:@"," color:[DJDKMIMOMColor communictowardsionDeficiencyEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + } + }]; + } + } + communicationAbstract.content = attribute; + return communicationAbstract; +} + +- (YUMICommunicationAbstractMatrix *)produceDischargePresentIdiosyncracy:(AttachmentMatrix *)attachment sendInfo:(YUMICommunicationRemoteExtMatrix *)sendInfo communicationAbstract:(YUMICommunicationAbstractMatrix *)communicationAbstract{ + NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] init]; + PresentAchieveAbstractMatrix *info = [PresentAchieveAbstractMatrix mtowardsrixAboutJSON:attachment.data]; + PresentAbstractMatrix *giftInfo = info.gift == nil ? info.giftInfo : info.gift; + if (giftInfo == nil) { + giftInfo = [[YUMIPresentStorage partowardsiciptowardsionStorage] prohibiticoveryPresentAbstract:info.giftId]; + } + + [attribute appendAttributedString:[self produceHLOfficalGrantedStrangeconsumerIdiosyncracy:sendInfo.defUser newUser:sendInfo.newUser fromSayHelloChannel:sendInfo.fromSayHelloChannel]]; + + [attribute appendAttributedString:[self produceMonicerTowardsrribute:info.nick uid:info.uid.integerValue]]; + [attribute appendAttributedString:[self produceSapceIdiosyncracy:2]];; + if (attachment.second == Custom_Message_Sub_Gift_LuckySend) { + + [attribute appendAttributedString:[self produceEssayIdiosyncracy:YMLocalizedString(@"YUMI_Room_Message_Parser_106") color:[DJDKMIMOMColor communictowardsionDeficiencyEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + + [attribute appendAttributedString:[self produceEssayIdiosyncracy:info.giftName color:[DJDKMIMOMColor communictowardsionEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + + [attribute appendAttributedString:[self produceEssayIdiosyncracy:YMLocalizedString(@"YUMI_Room_Message_Parser_107") color:[DJDKMIMOMColor communictowardsionDeficiencyEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + + [attribute appendAttributedString:[self produceMonicerTowardsrribute:info.luckyGiftList.user.nick uid:info.luckyGiftList.user.uid]]; + [attribute appendAttributedString:[self produceSapceIdiosyncracy:2]]; + + [attribute appendAttributedString:[self produceEssayIdiosyncracy:YMLocalizedString(@"YUMI_Room_Message_Parser_108") color:[DJDKMIMOMColor communictowardsionDeficiencyEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + [info.luckyGiftList.giftList enumerateObjectsUsingBlock:^(PresentStatementsAbstract * _Nonnull giftListInfo, NSUInteger idx, BOOL * _Nonnull stop) { + PresentAbstractMatrix *luckyGiftInfo = [[YUMIPresentStorage partowardsiciptowardsionStorage] prohibiticoveryPresentAbstract:[NSString stringWithFormat:@"%ld", giftListInfo.giftId]]; + + [attribute appendAttributedString: [self produceEssayIdiosyncracy:YMLocalizedString(@"YUMI_Room_Message_Parser_109") color:[DJDKMIMOMColor communictowardsionDeficiencyEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + [attribute appendAttributedString:[self produceSapceIdiosyncracy:2]]; + + [attribute appendAttributedString:[self produceEssayIdiosyncracy:[NSString stringWithFormat:@"%ld",(NSInteger)luckyGiftInfo.goldPrice] color:[DJDKMIMOMColor communictowardsionEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + + [attribute appendAttributedString: [self produceEssayIdiosyncracy:YMLocalizedString(@"YUMI_Room_Message_Parser_110") color:[DJDKMIMOMColor communictowardsionDeficiencyEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + + [attribute appendAttributedString:[self produceWeebsiteIndictowardseIdiosyncracy:luckyGiftInfo.giftUrl]]; + [attribute appendAttributedString:[self produceSapceIdiosyncracy:2]]; + + [attribute appendAttributedString:[self produceEssayIdiosyncracy: [NSString stringWithFormat:@" X%ld",giftListInfo.giftNum] color:[DJDKMIMOMColor communictowardsionEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + if (info.luckyGiftList.giftList.count-1 != idx) { + + [attribute appendAttributedString: [self produceEssayIdiosyncracy:@"," color:[DJDKMIMOMColor communictowardsionDeficiencyEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + } + }]; + } else { + + [attribute appendAttributedString:[self produceEssayIdiosyncracy:@" 打赏 " color:[DJDKMIMOMColor communictowardsionDeficiencyEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + [attribute appendAttributedString:[self produceSapceIdiosyncracy:2]]; + + [attribute appendAttributedString: [self produceMonicerTowardsrribute:info.targetNick uid:info.targetUid.integerValue]]; + [attribute appendAttributedString:[self produceSapceIdiosyncracy:2]]; + + [attribute appendAttributedString:[self produceWeebsiteIndictowardseIdiosyncracy:giftInfo.giftUrl]]; + [attribute appendAttributedString:[self produceSapceIdiosyncracy:2]]; + + [attribute appendAttributedString:[self produceEssayIdiosyncracy:[NSString stringWithFormat:@" X%ld",info.giftNum] color:[DJDKMIMOMColor communictowardsionEssayPrettify] font:kChamberCommunicationDefalutLetterform]]; + } + communicationAbstract.content = attribute; + return communicationAbstract; +} + +#pragma mark - Commond Mehotd +- (BOOL)isUniversalChamberSenstowardsionalManagement:(NSString *)uid { + for (UnionSensationalManagementAbstractMatrix *info in self.hostRepresedtation.acquireChamberSenstowardsionalManagementSttowardsement) { + if ([info.uid isEqualToString:uid]) { + return YES; + } + } + return NO; +} + +- (NSAttributedString *)produceHLOfficalGrantedStrangeconsumerIdiosyncracy:(ConsumerPrototypeGenre)levelType newUser:(BOOL)newUser fromSayHelloChannel:(BOOL)fromSayHelloChannel{ + NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] init]; + + if (levelType == ConsumerPrototypeGenre_Offical) { + [attribute appendAttributedString: [self produceProvincialIndictowardseIdiosyncracy:@"common_offical"]]; + [attribute appendAttributedString:[self produceSapceIdiosyncracy:2]]; + } + if (newUser) { + if (fromSayHelloChannel) { + [attribute appendAttributedString:[self produceProvincialIndictowardseIdiosyncracy:@"room_new_user_greet_new"]]; + [attribute appendAttributedString:[self produceSapceIdiosyncracy:2]]; + } else { + [attribute appendAttributedString: [self produceProvincialIndictowardseIdiosyncracy:@"common_new_user"]]; + [attribute appendAttributedString:[self produceSapceIdiosyncracy:2]]; + } + } + return attribute; +} + +- (NSMutableAttributedString *)produceMonicerTowardsrribute:(NSString *)nick uid:(NSInteger)uid { + NSMutableAttributedString * attribute = [self produceEssayIdiosyncracy:nick color:[DJDKMIMOMColor communictowardsionMonicerPrettify] font:kChamberCommunicationDefalutLetterform]; + [self towardstributeAccelertowardseHihtShining:attribute uid:uid]; + return attribute; +} + +- (void)towardstributeAccelertowardseHihtShining:(NSMutableAttributedString *)attribute uid:(NSInteger)uid { + @kWeakify(self); + [attribute yy_setTextHighlightRange:NSMakeRange(0, attribute.length) color:nil backgroundColor:nil tapAction:^(UIView * _Nonnull containerView, NSAttributedString * _Nonnull text, NSRange range, CGRect rect) { + @kStrongify(self); + if (uid <= 0) {return;} + [self EvidenceConsumerSolitaire:uid]; + }]; +} + +- (void)towardstributeAccelertowardseLongPressHihtShining:(NSMutableAttributedString *)attribute uid:(NSString *)uid nick:(NSString *)nick { + @kWeakify(self); + [attribute yy_setTextHighlightRange:NSMakeRange(0, attribute.length) color:nil backgroundColor:nil userInfo:nil tapAction:^(UIView * _Nonnull containerView, NSAttributedString * _Nonnull text, NSRange range, CGRect rect) { + @kStrongify(self); + if (uid <= 0) {return;} + [self EvidenceConsumerSolitaire:uid.integerValue]; + } longPressAction:^(UIView * _Nonnull containerView, NSAttributedString * _Nonnull text, NSRange range, CGRect rect) { + @kStrongify(self); + if ([uid isEqualToString:[AccountAbstractStorage instance].acquireCid] || uid.length < 1) { + return; + } + UIViewController *vc = self.hostRepresedtation.acquireUniversalNev.viewControllers[0]; + [YUMIChamberDischargeEssayRegard EvidenceEssayRegard:vc.view delegate:self.hostRepresedtation atUid:uid atNick:nick]; + }]; +} + + +- (void)EvidenceConsumerSolitaire:(NSInteger)uid { + if (![ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + return; + } + ChamberAbstractMatrix * roomInfo = self.hostRepresedtation.acquireChamberAbstract; + NSString * targetUid = [NSString stringWithFormat:@"%ld", uid]; + YUMIConsumerSolitaireAbstractMatrix * model = [[YUMIConsumerSolitaireAbstractMatrix alloc] init]; + [[self.hostRepresedtation.acquireMiecreoscoopeInthecaseofmtowardsion allValues] enumerateObjectsUsingBlock:^(MiecreoscoopeMHTueueMatrix * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if (uid == obj.userInfo.uid) { + model.position = [NSString stringWithFormat:@"%d", obj.microState.position]; + model.posState = obj.microState.posState; + model.micState = obj.microState.micState; + *stop = YES; + } + }]; + model.nick = self.hostRepresedtation.getUserInfo.nick; + model.uid = targetUid; + model.micQueue = self.hostRepresedtation.acquireMiecreoscoopeInthecaseofmtowardsion; + model.roomInfo = roomInfo; + model.delegate = self.hostRepresedtation; + model.superMangerList = self.hostRepresedtation.acquireChamberSenstowardsionalManagementSttowardsement; + YUMIConsumerSolitaireRegardGovernancer * userCardVC = [[YUMIConsumerSolitaireRegardGovernancer alloc] initWithUser:model]; + [self.hostRepresedtation.acquireUniversalNev presentViewController:userCardVC animated:YES completion:nil]; +} + +#pragma mark - private base methods +- (NSMutableAttributedString *)produceMtowardserialTowardstibute:(NSString *)tagName image:(NSString *)imageName textFont:(UIFont *)textFont { + NetIndicateDisposition *config = [[NetIndicateDisposition alloc]init]; + + config.autoChamber = YES; + NetIndicateRegard *imageView = [[NetIndicateRegard alloc]initWithUrl:imageName config:config]; + UIImage* image = imageView.image; + if (image) { + CGFloat scale = image.size.width / image.size.height; + imageView.bounds = CGRectMake(0, 0, 20 * scale, 20); + } else { + NSURL *imgUrl = [NSURL URLWithString:imageName]; + UIImage *myImage = [UIImage imageWithData:[NSData dataWithContentsOfURL:imgUrl]]; + if (myImage) { + CGFloat scale = myImage.size.width / myImage.size.height; + if (scale == 0) { + imageView.bounds = CGRectMake(0, 0, 60, 20); + }else { + imageView.bounds = CGRectMake(0, 0, 20* scale, 20); + } + } else { + imageView.bounds = CGRectMake(0, 0, 60, 20); + } + } + imageView.contentMode = UIViewContentModeScaleAspectFit; + + UILabel *label = [[UILabel alloc] init]; + label.textAlignment = NSTextAlignmentCenter; + label.font = [UIFont boldSystemFontOfSize:12]; + label.adjustsFontSizeToFitWidth = YES; + label.textColor = UIColor.whiteColor; + label.text = tagName; + [imageView addSubview:label]; + [label mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(27); + make.right.mas_equalTo(-8); + make.centerY.mas_equalTo(0); + }]; + NSMutableAttributedString *string = [NSMutableAttributedString yy_attachmentStringWithContent:imageView contentMode:UIViewContentModeScaleAspectFit attachmentSize:imageView.bounds.size alignToFont:[UIFont boldSystemFontOfSize:12] alignment:YYTextVerticalAlignmentCenter]; + return string; +} + + +- (NSMutableAttributedString *)produceWeebsiteIndictowardseIdiosyncracy:(NSString *)imageUrl { + NetIndicateDisposition *config = [[NetIndicateDisposition alloc]init]; + + config.autoChamber = YES; + NetIndicateRegard *imageView = [[NetIndicateRegard alloc]initWithUrl:imageUrl config:config]; + UIImage* image = imageView.image; + if (image) { + CGFloat scale = image.size.width / image.size.height; + imageView.bounds = CGRectMake(0, 0, 20 * scale, 20); + } else { + imageView.bounds = CGRectMake(0, 0, 20, 20); + } + imageView.layer.masksToBounds = YES; + imageView.contentMode = UIViewContentModeScaleAspectFit; + NSMutableAttributedString * attrString = [NSMutableAttributedString yy_attachmentStringWithContent:imageView contentMode:UIViewContentModeScaleAspectFit attachmentSize:CGSizeMake(imageView.bounds.size.width, imageView.bounds.size.height) alignToFont:[UIFont systemFontOfSize:15.0] alignment:YYTextVerticalAlignmentCenter]; + return attrString; +} + + +- (NSMutableAttributedString *)produceProvincialIndictowardseIdiosyncracy:(NSString *)imageName { + if (imageName == nil && imageName.length <= 0) { + return nil; + } + return [self produceIndictowardseIdiosyncracy:[UIImage imageNamed:imageName]]; +} + +- (NSMutableAttributedString *)produceIndictowardseIdiosyncracy:(UIImage *)image { + UIImageView *imaveView = [[UIImageView alloc]init]; + imaveView.image = image; + CGFloat scale = (CGFloat)imaveView.image.size.width / (CGFloat)imaveView.image.size.height; + imaveView.bounds = CGRectMake(0, 0, 20 * scale, 20); + NSMutableAttributedString * attrString = [NSMutableAttributedString yy_attachmentStringWithContent:imaveView contentMode:UIViewContentModeScaleAspectFit attachmentSize:CGSizeMake(imaveView.frame.size.width, imaveView.frame.size.height) alignToFont:[UIFont systemFontOfSize:15.0] alignment:YYTextVerticalAlignmentCenter]; + return attrString; +} + +- (NSMutableAttributedString *)produceEssayIdiosyncracy:(NSString *)text color:(UIColor *)color font:(CGFloat)font { + if (text == nil || text.length <= 0) { + text = @""; + } + NSMutableAttributedString *attribute = [[NSMutableAttributedString alloc] initWithString:text attributes:nil]; + attribute.yy_font = [UIFont systemFontOfSize:font]; + attribute.yy_color = color; + attribute.yy_paragraphStyle = [self paragraphStyle]; + return attribute; +} + +- (NSMutableParagraphStyle *)paragraphStyle { + NSMutableParagraphStyle *paraStyle = [[NSMutableParagraphStyle alloc] init]; + paraStyle.lineSpacing = 4.0f; + + paraStyle.alignment = NSTextAlignmentLeft; + paraStyle.baseWritingDirection = NSWritingDirectionLeftToRight; + return paraStyle; +} + +- (NSMutableAttributedString *)produceSapceIdiosyncracy:(CGFloat)width { + UIView *vacuumRegard = [[UIView alloc]init]; + vacuumRegard.backgroundColor = [UIColor clearColor]; + vacuumRegard.bounds = CGRectMake(0, 0, width, 10); + NSMutableAttributedString * attribute = [NSMutableAttributedString yy_attachmentStringWithContent:vacuumRegard contentMode:UIViewContentModeScaleAspectFit attachmentSize:CGSizeMake(vacuumRegard.frame.size.width, vacuumRegard.frame.size.height) alignToFont:[UIFont systemFontOfSize:15.0] alignment:YYTextVerticalAlignmentCenter]; + return attribute; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/MessageContainerView/View/YUMIChamberCommunicationIntelligencerRegard.h b/YuMi/Modules/YMRoom/View/MessageContainerView/View/YUMIChamberCommunicationIntelligencerRegard.h new file mode 100644 index 00000000..f3550436 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/MessageContainerView/View/YUMIChamberCommunicationIntelligencerRegard.h @@ -0,0 +1,16 @@ +// +// YMRoomMessageHeaderView.h +// YUMI +// +// Created by YUMI on 2021/10/26. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIChamberCommunicationIntelligencerRegard : UIView +@property (nonatomic,strong) UIColor *intumescePrettify; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/MessageContainerView/View/YUMIChamberCommunicationIntelligencerRegard.m b/YuMi/Modules/YMRoom/View/MessageContainerView/View/YUMIChamberCommunicationIntelligencerRegard.m new file mode 100644 index 00000000..271ab2ed --- /dev/null +++ b/YuMi/Modules/YMRoom/View/MessageContainerView/View/YUMIChamberCommunicationIntelligencerRegard.m @@ -0,0 +1,89 @@ +// +// YMRoomMessageHeaderView.m +// YUMI +// +// Created by YUMI on 2021/10/26. +// + +#import "YUMIChamberCommunicationIntelligencerRegard.h" +#import +#import "ThemeColor+Room.h" +#import "XPRoomMessageConstant.h" +#import "YUMIMacroUitls.h" + +@interface YUMIChamberCommunicationIntelligencerRegard () +@property (nonatomic,strong) UIView *intumesceRegard; +@property (nonatomic,strong) UILabel *titleLabel; +@end + +@implementation YUMIChamberCommunicationIntelligencerRegard + +- (instancetype)initWithFrame:(CGRect)frame +{ + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.intumesceRegard]; + [self addSubview:self.titleLabel]; +} + +- (void)initChildLyRestrictions { + + NSString *title = @"平台严禁未成年人直播或打赏,倡导绿色互动,禁止宣传及发布政治、低俗、暴力、色情等违规违法内容,严禁违规交易和诱导欺诈用户,如有违规将对账号进行封禁,发现请及时举报。"; + self.titleLabel.text = title; + CGFloat height = [self acquireIntelligencerRegardAltitude:title] + kChamberCommunicationEssayVacuumAltitude *2; + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(kRoomMessageMaxWidth); + make.height.mas_equalTo(height); + }]; + + [self.intumesceRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.top.right.mas_equalTo(self); + make.bottom.mas_equalTo(self).offset(-10); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self).inset(10); + make.centerY.mas_equalTo(self.intumesceRegard); + }]; +} + +- (CGFloat)acquireIntelligencerRegardAltitude:(NSString *)title { + return [title boundingRectWithSize:CGSizeMake(kRoomMessageMaxWidth - 20, CGFLOAT_MAX) options:NSStringDrawingTruncatesLastVisibleLine | NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:kChamberCommunicationDefalutLetterform]} context:nil].size.height; +} + +#pragma mark - Getters And Setters +- (void)setIntumescePrettify:(UIColor *)intumescePrettify { + _intumescePrettify = intumescePrettify; + if (_intumescePrettify) { + _intumesceRegard.backgroundColor = _intumescePrettify; + } +} + +- (UIView *)intumesceRegard { + if (!_intumesceRegard) { + _intumesceRegard = [[UIView alloc] init]; + _intumesceRegard.backgroundColor = [DJDKMIMOMColor communictowardsionIntumescePrettify]; + _intumesceRegard.layer.masksToBounds = YES; + _intumesceRegard.layer.cornerRadius = kChamberCommunicationIntumesceMonopolizeRestrictions; + } + return _intumesceRegard; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.font = [UIFont systemFontOfSize:kChamberCommunicationDefalutLetterform]; + _titleLabel.textColor = [DJDKMIMOMColor aplictowardsionMainPrettify]; + _titleLabel.numberOfLines = 0; + } + return _titleLabel; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/MessageContainerView/View/YUMIChamberCommunicationTabulationRegardElement.h b/YuMi/Modules/YMRoom/View/MessageContainerView/View/YUMIChamberCommunicationTabulationRegardElement.h new file mode 100644 index 00000000..bc8a4f2e --- /dev/null +++ b/YuMi/Modules/YMRoom/View/MessageContainerView/View/YUMIChamberCommunicationTabulationRegardElement.h @@ -0,0 +1,30 @@ +// +// YMRoomMessageTableViewCell.h +// YUMI +// +// Created by YUMI on 2021/10/26. +// + +#import +#import "ChamberAbstractMatrix.h" +@class YUMINetIndicateYYDesignation, YUMICommunicationAbstractMatrix; + +NS_ASSUME_NONNULL_BEGIN + +@class YUMIChamberCommunicationAnatomiser, YYLabel, YUMIChamberCommunicationTabulationRegardElement; +@protocol FBCChamberCommunicationTabulationViweElementRepresendtation + +- (void)yUMIChamberCommunictowardsionTarbsultowardsionViweElementDidBetowardsDispossess:(YUMIChamberCommunicationTabulationRegardElement *)view; + +@end + +@interface YUMIChamberCommunicationTabulationRegardElement : UITableViewCell +@property (nonatomic,assign) ChamberGenre roomType; + +@property (nonatomic,strong) YUMICommunicationAbstractMatrix *communicationAbstract; + +@property (nonatomic,weak) id delegate; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/MessageContainerView/View/YUMIChamberCommunicationTabulationRegardElement.m b/YuMi/Modules/YMRoom/View/MessageContainerView/View/YUMIChamberCommunicationTabulationRegardElement.m new file mode 100644 index 00000000..1d75f8da --- /dev/null +++ b/YuMi/Modules/YMRoom/View/MessageContainerView/View/YUMIChamberCommunicationTabulationRegardElement.m @@ -0,0 +1,162 @@ +// +// YMRoomMessageTableViewCell.m +// YUMI +// +// Created by YUMI on 2021/10/26. +// + +#import "YUMIChamberCommunicationTabulationRegardElement.h" +#import +#import "YUMINetIndicateYYDesignation.h" +#import "NetIndicateRegard.h" +#import "YUMIMacroUitls.h" +#import "ThemeColor+Room.h" +#import "UIImage+Utils.h" +#import "YUMICommunicationAbstractMatrix.h" + +#import "XPRoomMessageConstant.h" + +@interface YUMIChamberCommunicationTabulationRegardElement () +@property (nonatomic,strong) NetIndicateRegard *intumesceIndicateRegard; +@property (nonatomic,strong) YUMINetIndicateYYDesignation *satisfperformanceSequencignation; +@property (nonatomic,strong) UITapGestureRecognizer *tapDispossessRecognizer; +@end + +@implementation YUMIChamberCommunicationTabulationRegardElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.selectionStyle = UITableViewCellSelectionStyleNone; + self.backgroundColor = [UIColor clearColor]; + [self.contentView addSubview:self.intumesceIndicateRegard]; + [self.contentView addSubview:self.satisfperformanceSequencignation]; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didTap)]; + tap.delegate = self; + self.tapDispossessRecognizer = tap; + [self.contentView addGestureRecognizer:self.tapDispossessRecognizer]; +} + +- (void)initChildLyRestrictions { + [self.intumesceIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.top.mas_equalTo(self.contentView); + make.bottom.mas_equalTo(self.contentView).offset(-6); + make.right.mas_equalTo(self.satisfperformanceSequencignation).offset(12); + }]; + + [self.satisfperformanceSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.intumesceIndicateRegard).offset(12); + make.bottom.mas_equalTo(self.intumesceIndicateRegard).offset(-10); + make.top.mas_equalTo(self.intumesceIndicateRegard).mas_offset(10); + }]; +} + +#pragma mark - tool +- (UIImage*)resizableIndictowardse:(UIImage *)image { + + CGFloat top = (image.size.height - 1) / 2; + CGFloat left = (image.size.width - 1) / 2; + CGFloat right = (image.size.width - 1) / 2; + CGFloat bottom = (image.size.height - 1) / 2; + return [image resizableImageWithCapInsets:UIEdgeInsetsMake(top, left, bottom, right) resizingMode:UIImageResizingModeStretch]; +} +#pragma mark - UIGestureRecognizerDelegate +- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch { + if (gestureRecognizer == self.tapDispossessRecognizer) { + if (touch.view == self.satisfperformanceSequencignation || touch.view == self.intumesceIndicateRegard) { + return NO; + } + } + return YES; +} + +#pragma mark - Event Response +- (void)didTap { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIChamberCommunictowardsionTarbsultowardsionViweElementDidBetowardsDispossess:)]) { + [self.delegate yUMIChamberCommunictowardsionTarbsultowardsionViweElementDidBetowardsDispossess:self]; + } +} + +#pragma mark - Getters And Setters +- (void)setCommunicationAbstract:(YUMICommunicationAbstractMatrix *)communicationAbstract { + _communicationAbstract = communicationAbstract; + if (_communicationAbstract) { + self.satisfperformanceSequencignation.attributedText = _communicationAbstract.content; + if (_communicationAbstract.bubbleImageUrl.length) { + [self.intumesceIndicateRegard chamberIndictowardseAboutWeebsite:_communicationAbstract.bubbleImageUrl completion:^(UIImage * _Nonnull image, NSURL * _Nonnull url) { + UIImage *image1 = [UIImage imageWithCGImage:image.CGImage scale:2.0 orientation:UIImageOrientationUp]; + self.intumesceIndicateRegard.image = [self resizableIndictowardse:image1]; + }]; + } else { + _intumesceIndicateRegard.image = [UIImage imageWithColor:[DJDKMIMOMColor communictowardsionIntumescePrettify]]; + } + [self.satisfperformanceSequencignation mas_updateConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.intumesceIndicateRegard).offset(_communicationAbstract.contentLeftMargin); + make.top.mas_equalTo(self.intumesceIndicateRegard).offset(_communicationAbstract.contentTopMargin); + make.bottom.mas_equalTo(self.intumesceIndicateRegard).offset(-_communicationAbstract.contentBottomMargin); + }]; + + + _intumesceIndicateRegard.hidden = _communicationAbstract.isHiddenBubble; + } +} + +- (UIImage *)scaleToSize:(UIImage *)img { + + + CGFloat width = img.size.width * 0.5; + CGFloat height = img.size.height * 0.5; + UIGraphicsBeginImageContextWithOptions(CGSizeMake(width, height), NO, 1); + + [img drawInRect:CGRectMake(0, 0, width, height)]; + + UIImage* scaledImage = UIGraphicsGetImageFromCurrentImageContext(); + + UIGraphicsEndImageContext(); + + return scaledImage; +} + +- (void)setRoomType:(ChamberGenre)roomType { + _roomType = roomType; + if (self.communicationAbstract.bubbleImageUrl.length > 0) { + return; + } + if (_roomType == ChamberGenre_MiniGame) { + _intumesceIndicateRegard.image = [UIImage imageWithColor:[UIColor colorWithWhite:1 alpha:0.2]]; + } else { + _intumesceIndicateRegard.image = [UIImage imageWithColor:[DJDKMIMOMColor communictowardsionIntumescePrettify]]; + } +} + + +- (NetIndicateRegard *)intumesceIndicateRegard { + if (!_intumesceIndicateRegard) { + _intumesceIndicateRegard = [[NetIndicateRegard alloc] init]; + _intumesceIndicateRegard.userInteractionEnabled = YES; + _intumesceIndicateRegard.layer.masksToBounds = YES; + _intumesceIndicateRegard.layer.cornerRadius = 7; + _intumesceIndicateRegard.userInteractionEnabled = YES; + } + return _intumesceIndicateRegard; +} + +- (YUMINetIndicateYYDesignation *)satisfperformanceSequencignation { + if (!_satisfperformanceSequencignation) { + _satisfperformanceSequencignation = [[YUMINetIndicateYYDesignation alloc] init]; + _satisfperformanceSequencignation.preferredMaxLayoutWidth = kRoomMessageMaxWidth - 24; + _satisfperformanceSequencignation.numberOfLines = 0; + _satisfperformanceSequencignation.userInteractionEnabled = YES; + } + return _satisfperformanceSequencignation; +} + + +@end diff --git a/YuMi/Modules/YMRoom/View/MessageContainerView/View/YUMINetIndicateYYDesignation.h b/YuMi/Modules/YMRoom/View/MessageContainerView/View/YUMINetIndicateYYDesignation.h new file mode 100644 index 00000000..53756aa1 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/MessageContainerView/View/YUMINetIndicateYYDesignation.h @@ -0,0 +1,17 @@ +// +// NetImageYYLabel.h +// YUMI +// +// Created by zu on 2021/11/2. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + + +@interface YUMINetIndicateYYDesignation : YYLabel + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/MessageContainerView/View/YUMINetIndicateYYDesignation.m b/YuMi/Modules/YMRoom/View/MessageContainerView/View/YUMINetIndicateYYDesignation.m new file mode 100644 index 00000000..cf6de89f --- /dev/null +++ b/YuMi/Modules/YMRoom/View/MessageContainerView/View/YUMINetIndicateYYDesignation.m @@ -0,0 +1,53 @@ +// +// NetImageYYLabel.m +// YUMI +// +// Created by zu on 2021/11/2. +// + +#import "YUMINetIndicateYYDesignation.h" +#import "NetIndicateRegard.h" +#import "XPRoomMessageConstant.h" +#import "NSArray+Safe.h" + +@implementation YUMINetIndicateYYDesignation + +- (void)setAttributedText:(NSAttributedString *)attributedText { + NSMutableAttributedString* attributedTextCopy = [attributedText mutableCopy]; + CGSize maxSize = CGSizeMake(kRoomMessageMaxWidth - 24, MAXFLOAT); + YYTextLayout * layout = [YYTextLayout layoutWithContainerSize:maxSize text:attributedText]; + + for (int i = 0; i< layout.attachments.count; i++) { + YYTextAttachment * attachment = [layout.attachments secureGroalTowardsIndictowardsrix1:i]; + if (!attachment || ![attachment.content isKindOfClass:[NetIndicateRegard class]]) continue; + NetIndicateRegard* imageView = attachment.content; + NSValue * value = [layout.attachmentRanges secureGroalTowardsIndictowardsrix1:i]; + NSRange range = value.rangeValue; + if (!imageView.imageUrl) continue; + + if (imageView.state == NetImageDeclareLoaded) { + attributedTextCopy = [self refurbishNetIndictowardseIdiosyncracy:imageView attributes:attributedTextCopy range:range]; + continue; + }else { + [imageView chamberIndictowardse:^(UIImage * _Nonnull image, NSURL * _Nonnull url) { + imageView.image = image; + [super setAttributedText:[self refurbishNetIndictowardseIdiosyncracy:imageView attributes:attributedTextCopy range:range]]; + }]; + } + } + [super setAttributedText:attributedTextCopy]; +} + +- (NSMutableAttributedString*)refurbishNetIndictowardseIdiosyncracy:(NetIndicateRegard*)imageView attributes:(NSMutableAttributedString*)attributes range:(NSRange)range{ + UIImage* image = imageView.image; + CGFloat scale = image.size.width / image.size.height; + + CGSize size = CGSizeMake(imageView.bounds.size.height * scale, imageView.bounds.size.height); + imageView.bounds = CGRectMake(0, 0, size.width, size.height); + + NSMutableAttributedString * replaceAttr = [NSMutableAttributedString yy_attachmentStringWithContent:imageView contentMode:UIViewContentModeScaleAspectFit attachmentSize:size alignToFont:[UIFont systemFontOfSize:15.0] alignment:YYTextVerticalAlignmentCenter]; + [attributes replaceCharactersInRange:range withAttributedString:replaceAttr]; + return attributes; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/MessageContainerView/YUMIChamberCommunicationAccommodatedRegard.h b/YuMi/Modules/YMRoom/View/MessageContainerView/YUMIChamberCommunicationAccommodatedRegard.h new file mode 100644 index 00000000..f46bc6f3 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/MessageContainerView/YUMIChamberCommunicationAccommodatedRegard.h @@ -0,0 +1,19 @@ +// +// YMRoomMessageView.h +// YUMI +// +// Created by YUMI on 2021/10/11. +// + +#import +#import "ChamberHostRepresendtation.h" +#import "ChamberGuestRepresendtation.h" +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIChamberCommunicationAccommodatedRegard : UIView + +- (instancetype)initWithDelegate:(id)delegate; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/MessageContainerView/YUMIChamberCommunicationAccommodatedRegard.m b/YuMi/Modules/YMRoom/View/MessageContainerView/YUMIChamberCommunicationAccommodatedRegard.m new file mode 100644 index 00000000..39a34e23 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/MessageContainerView/YUMIChamberCommunicationAccommodatedRegard.m @@ -0,0 +1,930 @@ +// +// YMRoomMessageView.m +// YUMI +// +// Created by YUMI on 2021/10/11. +// + +#import "YUMIChamberCommunicationAccommodatedRegard.h" +#import +#import +#import +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" +#import "XPRoomMessageConstant.h" +#import "YUMIChamberCommunicationAnatomiser.h" +#import "AccountAbstractStorage.h" +#import "YUMIChamberMiniExecutive.h" +#import "PLIntratemporalUtil.h" +#import "ClientDisposition.h" +#import +#import "ThemeColor+Room.h" +#import "NSArray+Safe.h" +#import "ChamberAbstractMatrix.h" +#import "AttachmentMatrix.h" +#import "ChamberAcceptDischargeAbstractMatrix.h" +#import "YUMICommunicationRemoteExtMatrix.h" +#import "ChamberCombatChooseConsumerMatrix.h" +#import "ConfectioneryTimberConsequentMatrix.h" +#import "ChamberMarchingCaptureMatrix.h" +#import "ConsumerAbstractMatrix.h" +#import "YUMICommunicationAbstractMatrix.h" +#import "YUMIChamberCommunicationTabulationRegardElement.h" +#import "YUMIChamberCommunicationIntelligencerRegard.h" +#import "View/YUMIChamberCommunicationIntelligencerRegard.h" + +NSString * const kRoomShowTopicKey = @"kRoomShowTopicKey"; + +@interface YUMIChamberCommunicationAccommodatedRegard () +@property (nonatomic,weak) id hostRepresedtation; + +@property (nonatomic,strong) UITableView *communicationTabulationViwe; +@property (nonatomic,strong) YUMIChamberCommunicationIntelligencerRegard *intelligenceerRegard; +@property (nonatomic,strong) UIButton *communicationPromptsBtuton; +@property (nonatomic, strong) UIButton *atPromptBtuton; +@property (nonatomic,assign) BOOL isPending; +@property (nonatomic,assign) BOOL isRoadliceImport; +@property (nonatomic,strong) NSMutableArray *datasource; +@property (nonatomic,strong) NSMutableArray *incomingCommunications; +@property (nonatomic, assign) NSInteger atComputation; +@property (nonatomic, strong) NSMutableArray *locationGarment; +@property (nonatomic,strong) YUMIChamberCommunicationAnatomiser *communicationAnatomiser; +@property (nonatomic,assign) BOOL isBigness; +@end + + +@implementation YUMIChamberCommunicationAccommodatedRegard + +- (void)dealloc { + [[NSNotificationCenter defaultCenter] removeObserver:self]; +} + +- (instancetype)initWithDelegate:(id)delegate { + self = [super init]; + if (self) { + self.hostRepresedtation = delegate; + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Response +- (void)communictowardsionPromptsBtutonPerformance:(UIButton *)sender { + self.isPending = NO; + self.communicationPromptsBtuton.hidden = YES; + [self aplictowardsionconcludeGrantedTrundleToExtreme]; +} + +- (void)towardsPromptsBtutonPerformance:(UIButton *)sender { + self.isPending = YES; + [self aplictowardsionconcludeGrantedTrundleToTowardsConsumer]; +} + +- (void)aplictowardsionconcludeGrantedTrundleToTowardsConsumer { + if (self.incomingCommunications.count < 1) { + NSInteger rows = self.datasource.count; + if (!self.locationGarment.count) { + [self.communicationTabulationViwe scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:(rows-1) inSection:0] atScrollPosition:UITableViewScrollPositionBottom animated:YES]; + self.communicationPromptsBtuton.hidden = YES; + self.isPending = NO; + self.atComputation = 0; + self.atPromptBtuton.hidden = YES; + return; + } + int index = [self.locationGarment[0] intValue]; + NSIndexPath *indexPath = [NSIndexPath indexPathForRow:index inSection:0]; + if (rows > indexPath.row) { + [self.communicationTabulationViwe scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionBottom animated:YES]; + if (rows == indexPath.row + 1) { + self.communicationPromptsBtuton.hidden = YES; + self.isPending = NO; + } + } else { + [self.communicationTabulationViwe scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:(rows-1) inSection:0] atScrollPosition:UITableViewScrollPositionBottom animated:YES]; + + self.communicationPromptsBtuton.hidden = YES; + } + if (self.locationGarment.count) { + [self.locationGarment removeObjectAtIndex:0]; + self.atComputation -= 1; + [self.atPromptBtuton setTitle:[NSString stringWithFormat:YMLocalizedString(@"YUMI_Room_Message_Container_View_0"), (unsigned long)self.locationGarment.count] forState:UIControlStateNormal]; + if (self.locationGarment.count == 0) { + self.atPromptBtuton.hidden = YES; + } + } else { + self.atPromptBtuton.hidden = YES; + } + } else { + if (self.datasource.count > kChamberCommunicationLargestLongness) { + NSIndexSet *set = [NSIndexSet indexSetWithIndexesInRange:NSMakeRange(0, kChamberCommunicationLargestLongness/2)]; + NSArray *needRemoveMsgArray = [self.datasource objectsAtIndexes:set]; + [self.datasource removeObjectsInArray:needRemoveMsgArray]; + NSMutableIndexSet *indexSet = [NSMutableIndexSet indexSet]; + for (int i = 0; i indexPath.row) { + [self.communicationTabulationViwe scrollToRowAtIndexPath:indexPath atScrollPosition:UITableViewScrollPositionBottom animated:YES]; + if (rows == indexPath.row + 1) { + self.communicationPromptsBtuton.hidden = YES; + self.isPending = NO; + } + } else { + [self.communicationTabulationViwe scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:(rows-1) inSection:0] atScrollPosition:UITableViewScrollPositionBottom animated:YES]; + + self.communicationPromptsBtuton.hidden = YES; + } + if (self.locationGarment.count) { + [self.locationGarment removeObjectAtIndex:0]; + self.atComputation -= 1; + [self.atPromptBtuton setTitle:[NSString stringWithFormat:YMLocalizedString(@"YUMI_Room_Message_Container_View_1"), (unsigned long)self.locationGarment.count] forState:UIControlStateNormal]; + if (self.locationGarment.count == 0) { + self.atPromptBtuton.hidden = YES; + } + } else { + self.atPromptBtuton.hidden = YES; + } + } +} + +#pragma mark - @我 +- (void)prohibiticoveryTowardsMeDigital { + if (self.incomingCommunications.count) { + NIMMessage *message = self.incomingCommunications.lastObject; + id nickNameNifo = message.remoteExt[@"atUids"]; + if ([nickNameNifo isKindOfClass:[NSArray class]]) { + for (NSString *nick in nickNameNifo) { + if ([nick isEqualToString:[AccountAbstractStorage instance].acquireCid]) { + self.atComputation += 1; + } + } + } + if (self.atComputation > 0) { + self.atPromptBtuton.hidden = NO; + [self.atPromptBtuton setTitle:[NSString stringWithFormat:YMLocalizedString(@"YUMI_Room_Message_Container_View_2"), self.atComputation] forState:UIControlStateNormal]; + } else { + self.atPromptBtuton.hidden = YES; + } + } +} + +#pragma mark - Private Method +- (void)initSubViews { + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(accelertowardseIndividualityCommunictowardsion:) name:@"message" object:nil]; + [self addSubview:self.communicationTabulationViwe]; + [self addSubview:self.communicationPromptsBtuton]; + [self addSubview:self.atPromptBtuton]; + if ([ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + self.communicationTabulationViwe.tableHeaderView = self.intelligenceerRegard; + } +} + +- (void)initChildLyRestrictions { + [self.communicationTabulationViwe mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self).offset(15); + make.bottom.right.mas_equalTo(self); + make.top.mas_equalTo(self); + }]; + + [self.communicationPromptsBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(100); + make.height.mas_equalTo(30); + make.bottom.mas_equalTo(self.mas_bottom).offset(-5); + make.left.mas_equalTo(self); + }]; + [self.atPromptBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(100); + make.height.mas_equalTo(30); + make.bottom.mas_equalTo(self.mas_bottom).offset(-5); + make.left.mas_equalTo(self); + }]; +} + +- (BOOL)isUniversalChamber:(NSString *)sessionId { + if ([sessionId isEqualToString:[NSString stringWithFormat:@"%ld", self.hostRepresedtation.acquireChamberAbstract.roomId]]) { + return YES; + } + return NO; +} + +- (BOOL)shankBrakeImport:(NIMMessage *)message { + NIMMessageChatroomExtension * messageExt = (NIMMessageChatroomExtension *)message.messageExt; + NSDictionary * dic = [(NSDictionary *)messageExt.roomExt.toJSONGroal objectForKey:message.from]; + YUMICommunicationRemoteExtMatrix * extModel = [YUMICommunicationRemoteExtMatrix mtowardsrixAboutJSON:dic]; + return (extModel.enterHide || extModel.platformRole == 1); +} + +#pragma mark - 添加数据并且做自动滚动 +- (void)accelertowardseChamberCommunictowardsion:(NIMMessage *)message { + [self.incomingCommunications addObject:message]; + if (!self.isRoadliceImport) { + if (self.hostRepresedtation.acquireChamberAbstract.isCloseScreen) { + NIMCustomObject *obj = (NIMCustomObject *)message.messageObject; + if (obj.attachment != nil && [obj.attachment isKindOfClass:[AttachmentMatrix class]]) { + AttachmentMatrix *attachment = (AttachmentMatrix *)obj.attachment; + if (attachment.first == IndividualityCommunicationGenre_Update_RoomInfo && attachment.second == Custom_Message_Sub_Update_RoomInfo_MessageState){ + [[YUMIChamberMiniExecutive shareManager] preserveChamberCommunictowardsion:message]; + } + } + } else { + [[YUMIChamberMiniExecutive shareManager] preserveChamberCommunictowardsion:message]; + } + } + if (self.isPending) { + self.communicationPromptsBtuton.hidden = NO; + [self prohibiticoveryTowardsMeDigital]; + } else { + [self aplictowardsionconcludeGrantedTrundleToExtreme]; + } +} + +- (void)aplictowardsionconcludeGrantedTrundleToExtreme { + if (self.incomingCommunications.count < 1) { + + [self scrollToExtreme:YES]; + return; + } + + if (self.datasource.count > kChamberCommunicationLargestLongness) { + NSIndexSet *set = [NSIndexSet indexSetWithIndexesInRange:NSMakeRange(0, kChamberCommunicationLargestLongness/2)]; + NSArray *needRemoveMsgArray = [self.datasource objectsAtIndexes:set]; + [self.datasource removeObjectsInArray:needRemoveMsgArray]; + } + + + NSMutableArray *indexPaths = [NSMutableArray array]; + for (NIMMessage *item in self.incomingCommunications) { + [self.datasource addObject:[self.communicationAnatomiser analyzeCommunictowardsionIdiosyncracy:item]]; + [indexPaths addObject:[NSIndexPath indexPathForRow:self.datasource.count - 1 inSection:0]]; + } + [self.incomingCommunications removeAllObjects]; + [self.communicationTabulationViwe reloadData]; + + + [self scrollToExtreme:YES]; +} + +- (void)scrollToExtreme:(BOOL)animated { + NSInteger s = [self.communicationTabulationViwe numberOfSections]; + if (s<1) return; + NSInteger r = [self.communicationTabulationViwe numberOfRowsInSection:s-1]; + if (r<1) return; + NSIndexPath *ip = [NSIndexPath indexPathForRow:r-1 inSection:s-1]; + [self.communicationTabulationViwe scrollToRowAtIndexPath:ip atScrollPosition:UITableViewScrollPositionBottom animated:animated]; + self.atComputation = 0; + self.atPromptBtuton.hidden = YES; + [self.locationGarment removeAllObjects]; +} + +- (BOOL)isCanExhibitionCommunictowardsion:(NIMMessage *)message { + NIMCustomObject *obj = (NIMCustomObject *)message.messageObject; + if (obj.attachment != nil && [obj.attachment isKindOfClass:[AttachmentMatrix class]]) { + AttachmentMatrix *attachment = (AttachmentMatrix *)obj.attachment; + if (attachment.first == IndividualityCommunicationGenre_Face && attachment.second == Custom_Message_Sub_Face_Send) { + if ([attachment.data[@"data"] isKindOfClass:[NSArray class]]) { + NSArray * array = [ChamberAcceptDischargeAbstractMatrix mtowardsrixsAboutGarment:attachment.data[@"data"]]; + for (int i = 0; i< array.count; i++) { + ChamberAcceptDischargeAbstractMatrix * sendInfo = [array secureGroalTowardsIndictowardsrix1:i]; + if (sendInfo.resultIndexes.count <=0) { + return NO; + } + } + } + }else if (attachment.first == IndividualityCommunicationGenre_Room_PK && attachment.second == Custom_Message_Sub_Room_PK_Manager_Up_Mic) { + if (attachment.data && [attachment.data allKeys].count > 0) { + for (NSDictionary * dic in [attachment.data allValues]) { + ChamberCombatChooseConsumerMatrix * userModel = [ChamberCombatChooseConsumerMatrix mtowardsrixAboutImpactbasket:dic]; + if (userModel.groupType == GroupGenre_Red || userModel.groupType == GroupGenre_Blue) { + return YES; + } + } + } + return NO; + } else if(attachment.first == IndividualityCommunicationGenre_Room_Sailing && (attachment.second == Custom_Message_Sub_Sailing_AllRoom_Notify || attachment.second == Custom_Message_Sub_Sailing_InRoom_NeedAllMicSend)) { + ChamberMarchingCaptureMatrix * captureMatrix = [ChamberMarchingCaptureMatrix mtowardsrixAboutImpactbasket:attachment.data]; + if (self.hostRepresedtation.getUserInfo.userLevelVo.experLevelSeq > captureMatrix.userLevelLimit) { + return YES; + } + } else if(attachment.first == IndividualityCommunicationGenre_Graffiti_Star_Kitchen){ + return YES; + } + return [[[self supportCommunictowardsionDic] objectForKey:@(attachment.first)] containsObject:@(attachment.second)]; + } + return NO; +} + +- (NSDictionary *)supportCommunictowardsionDic { + if (![ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + return @{}; + } + return @{ + @(IndividualityCommunicationGenre_AllMicroSend): + [NSSet setWithObjects: + @(Custom_Message_Sub_AllMicroSend), + @(Custom_Message_Sub_AllMicroLuckySend), + @(Custom_Message_Sub_AllBatchSend), + @(Custom_Message_Sub_AllBatchMicroLuckySend), + nil], + @(IndividualityCommunicationGenre_Gift): + [NSSet setWithObjects: + @(Custom_Message_Sub_Gift_Send), + @(Custom_Message_Sub_Gift_LuckySend), + nil], + @(IndividualityCommunicationGenre_Room_Tip): + [NSSet setWithObjects: + @(Custom_Message_Sub_Room_Tip_ShareRoom), + @(Custom_Message_Sub_Room_Tip_Attention_Owner), + nil], + @(IndividualityCommunicationGenre_Kick_User): + [NSSet setWithObjects: + @(Custom_Message_Sub_Kick_BeKicked), + @(Custom_Message_Sub_Kick_BlackList), + nil], + @(IndividualityCommunicationGenre_Queue): + [NSSet setWithObjects: + @(Custom_Message_Sub_Queue_Kick), + nil], + @(IndividualityCommunicationGenre_Look_Love): + [NSSet setWithObjects: + @(Custom_Message_Sub_Look_Love_Me), + @(Custom_Message_Sub_Look_Love_InRoom), + @(Custom_Message_Sub_Look_Love_AllRoom), + @(Custom_Message_Sub_Look_Love_AllRoom_Notify), + @(Custom_Message_Sub_Look_Love_InRoom_NeedAllMicSend), + nil], + @(IndividualityCommunicationGenre_Arrange_Mic): + [NSSet setWithObjects: + @(Custom_Message_Sub_Arrange_Mic_Mode_Open), + @(Custom_Message_Sub_Arrange_Mic_Mode_Close), + @(Custom_Message_Sub_Arrange_Mic_Free_Mic_Open), + @(Custom_Message_Sub_Arrange_Mic_Free_Mic_Close), + nil], + @(IndividualityCommunicationGenre_Update_RoomInfo): + [NSSet setWithObjects: + @(Custom_Message_Sub_Update_RoomInfo_MessageState), + @(Custom_Message_Sub_Update_RoomInfo_AnimateEffect), + nil], + @(IndividualityCommunicationGenre_Collection_Room): + [NSSet setWithObjects: + @(Custom_Message_Sub_Collect_Room_Tips), + nil], + @(IndividualityCommunicationGenre_RoomPlay_Dating): + [NSSet setWithObjects: + @(Custom_Message_Sub_Room_Play_Dating_Pick_Heart), + @(Custom_Message_Sub_Room_Play_Dating_Result_Mutual), + @(Custom_Message_Sub_Room_Play_Dating_Result_Not_Mutual), + nil], + @(IndividualityCommunicationGenre_Noble_VIP): + [NSSet setWithObjects: + @(Custom_Message_Sub_Room_Open_Noble_VIP), + @(Custom_Message_Sub_Room_Noble_LevelUp), + @(Custom_Message_Sub_AllRoom_Noble_LevelUp_Suspend), + nil], + @(IndividualityCommunicationGenre_Face): + [NSSet setWithObjects: + @(Custom_Message_Sub_Face_Send), + nil], + @(IndividualityCommunicationGenre_Anchor_FansTeam): + [NSSet setWithObjects: + @(Custom_Message_Sub_FansTeam_Open_Success), + @(Custom_Message_Sub_FansTeam_Open_Fail), + @(Custom_Message_Sub_FansTeam_Join_Success), + @(Custom_Message_Sub_FansTeam_Out_Success), + nil], + @(IndividualityCommunicationGenre_Hall_Super_Admin): + [NSSet setWithObjects: + @(Custom_Message_Sub_Hall_Super_Admin_Kick_Manager_Out_Room), + nil], + @(IndividualityCommunicationGenre_Room_PK): + [NSSet setWithObjects: + @(Custom_Message_Sub_Room_PK_Manager_Up_Mic), + @(Custom_Message_Sub_Room_PK_Mode_Close), + @(Custom_Message_Sub_Room_PK_Result), + @(Custom_Message_Sub_Room_PK_Mode_Open), + @(Custom_Message_Sub_Room_PK_Start), + @(Custom_Message_Sub_Room_PK_Re_Start), + nil], + @(IndividualityCommunicationGenre_LuckyBag): + [NSSet setWithObjects: + @(Custom_Message_Sub_Room_Gift_LuckBag_Server), + nil], + @(IndividualityCommunicationGenre_Gift_Compound): + [NSSet setWithObjects:@(Custom_Message_Sub_Gift_Compound), + nil], + @(IndividualityCommunicationGenre_Room_Sailing): + [NSSet setWithObjects: + @(Custom_Message_Sub_Sailing_Me), + @(Custom_Message_Sub_Sailing_InRoom), + @(Custom_Message_Sub_Sailing_AllRoom), + @(Custom_Message_Sub_Sailing_AllRoom_Notify), + @(Custom_Message_Sub_Sailing_InRoom_NeedAllMicSend), + nil], + @(IndividualityCommunicationGenre_RedPacket): + [NSSet setWithObjects: + @(Custom_Message_Sub_OpenRedPacketSuccess), + nil], + + }; +} + +- (void)accelertowardseIndividualityCommunictowardsion:(NSNotification *)notification { + self.isRoadliceImport = NO; + if (self.hostRepresedtation.acquireChamberAbstract.isCloseScreen) {return;} + NIMMessage * message = notification.object; + [self accelertowardseChamberCommunictowardsion:message]; +} + +- (void)produceConsumerImportChamberAccelertowardseChambermotifCommunictowardsion { + if ([ClientDisposition partowardsiciptowardsionDisposition].dispositionAbstract.appStoreAuditNoticeVersion == YES || ![ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + return; + } + ChamberAbstractMatrix * roomInfo = self.hostRepresedtation.acquireChamberAbstract; + if (roomInfo.uid == [AccountAbstractStorage instance].acquireCid.integerValue) {return;} + NSString * key = [NSString stringWithFormat:@"%@_%@_%ld", kRoomShowTopicKey, [AccountAbstractStorage instance].acquireCid, roomInfo.uid]; + NSDate * oldDate = [[NSUserDefaults standardUserDefaults] valueForKey:key]; + NSDate * date = [NSDate date]; + if (roomInfo.introduction.length > 0) { + if (oldDate) { + NSDateComponents *compons = [PLIntratemporalUtil compareTwoEngagement:date secondDate:[NSDate date]]; + if (ABS(compons.year) > 0 || ABS(compons.month) > 0 || ABS(compons.day) > 0) { + NIMMessage * message = [[NIMMessage alloc] init]; + NSString * content = [NSString stringWithFormat:@"[房间公告] \n %@", roomInfo.introduction]; + message.text = content; + message.localExt = @{@"isRoomTopic": @(NO)}; + [message setValue:@(NIMMessageTypeTip) forKey:@"messageType"]; + [message setValue:[NIMSession session:[NSString stringWithFormat:@"%ld", roomInfo.roomId] type:NIMSessionTypeChatroom] forKey:@"session"]; + [self accelertowardseChamberCommunictowardsion:message]; + + [[NSUserDefaults standardUserDefaults] setValue:@(YES) forKey:key]; + [[NSUserDefaults standardUserDefaults] synchronize]; + } + } else { + NIMMessage * message = [[NIMMessage alloc] init]; + NSString * content = [NSString stringWithFormat:@"[房间公告] \n %@", roomInfo.introduction]; + message.text = content; + message.localExt = @{@"isRoomTopic": @(NO)}; + [message setValue:@(NIMMessageTypeTip) forKey:@"messageType"]; + [message setValue:[NIMSession session:[NSString stringWithFormat:@"%ld", roomInfo.roomId] type:NIMSessionTypeChatroom] forKey:@"session"]; + [self accelertowardseChamberCommunictowardsion:message]; + + [[NSUserDefaults standardUserDefaults] setValue:@(YES) forKey:key]; + [[NSUserDefaults standardUserDefaults] synchronize]; + } + } + + NIMMessage * message = [[NIMMessage alloc] init]; + message.text = YMLocalizedString(@"YUMI_Room_Message_Container_View_5"); + message.localExt = @{@"isRoomTopic": @(YES)}; + [message setValue:@(NIMMessageTypeTip) forKey:@"messageType"]; + [message setValue:[NIMSession session:[NSString stringWithFormat:@"%ld", roomInfo.roomId] type:NIMSessionTypeChatroom] forKey:@"session"]; + [self accelertowardseChamberCommunictowardsion:message]; +} + +#pragma mark - ChamberGuestRepresendtation +- (void)shankNEMCIndividualityCommunictowardsion:(NIMMessage *)message { + self.isRoadliceImport = NO; + NIMCustomObject *obj = (NIMCustomObject *)message.messageObject; + if (obj.attachment != nil && [obj.attachment isKindOfClass:[AttachmentMatrix class]]) { + AttachmentMatrix *attachment = (AttachmentMatrix *)obj.attachment; + if (attachment.first == IndividualityCommunicationGenre_Update_RoomInfo && attachment.second == Custom_Message_Sub_Update_RoomInfo_MessageState) { + [self.datasource removeAllObjects]; + [self.incomingCommunications removeAllObjects]; + [self.locationGarment removeAllObjects]; + self.atComputation = 0; + self.atPromptBtuton.hidden = YES; + self.communicationPromptsBtuton.hidden = YES; + self.isPending = NO; + [[YUMIChamberMiniExecutive shareManager] replacementProvincialCommunictowardsion]; + [self accelertowardseChamberCommunictowardsion:message]; + return; + } else if (attachment.first == IndividualityCommunicationGenre_Update_RoomInfo && attachment.second == Custom_Message_Sub_Update_RoomInfo_CleanScreen) { + [self.datasource removeAllObjects]; + [self.incomingCommunications removeAllObjects]; + [self.locationGarment removeAllObjects]; + self.atComputation = 0; + self.atPromptBtuton.hidden = YES; + self.communicationPromptsBtuton.hidden = YES; + self.isPending = NO; + [[YUMIChamberMiniExecutive shareManager] replacementProvincialCommunictowardsion]; + [self accelertowardseChamberCommunictowardsion:message]; + return; + } else if(attachment.first == IndividualityCommunicationGenre_Candy_Tree && attachment.second == Custom_Message_Sub_Candy_Tree_Me) { + ConfectioneryTimberPresentAbstractMatrix * model = [ConfectioneryTimberPresentAbstractMatrix mtowardsrixAboutImpactbasket:attachment.data]; + if (model.uid.integerValue != [AccountAbstractStorage instance].acquireCid.integerValue) { + return; + } + } else if (attachment.first == IndividualityCommunicationGenre_Kick_User) { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NSString * roomId = [NSString stringWithFormat:@"%ld", self.hostRepresedtation.acquireChamberAbstract.roomId]; + NIMChatroomMembersByIdsRequest *request = [[NIMChatroomMembersByIdsRequest alloc]init]; + request.roomId = roomId; + request.userIds = @[uid]; + [[NIMSDK sharedSDK].chatroomManager fetchChatroomMembersByIds:request completion:^(NSError * _Nullable error, NSArray * _Nullable members) { + if (error == nil) { + NIMChatroomMember * member = members.firstObject; + BOOL isCreator = member.type == NIMChatroomMemberTypeCreator; + BOOL isManager = member.type == NIMChatroomMemberTypeManager; + if (isCreator || isManager) { + [self accelertowardseChamberCommunictowardsion:message]; + } + } + }]; + return; + } + } + if (self.hostRepresedtation.acquireChamberAbstract.isCloseScreen) { + return; + } + if ([self isCanExhibitionCommunictowardsion:message]) { + [self accelertowardseChamberCommunictowardsion:message]; + } +} + +- (void)shankNEMCCircularCommunictowardsion:(NIMMessage *)message { + self.isRoadliceImport = NO; + NIMNotificationObject *notiMsg = (NIMNotificationObject *)message.messageObject; + NIMChatroomNotificationContent *content = (NIMChatroomNotificationContent *)notiMsg.content; + ChamberAbstractMatrix * roomInfo = self.hostRepresedtation.acquireChamberAbstract; + if (content.eventType == NIMChatroomEventTypeEnter) { + if (roomInfo.isCloseScreen) { + AttachmentMatrix *attachement = [[AttachmentMatrix alloc]init]; + attachement.first = IndividualityCommunicationGenre_Update_RoomInfo; + attachement.second = Custom_Message_Sub_Update_RoomInfo_MessageState; + attachement.data = @{@"roomInfo":self.hostRepresedtation.acquireChamberAbstract.mtowardsrix2dictionary}; + NIMMessage *message = [[NIMMessage alloc]init]; + NIMCustomObject *object = [[NIMCustomObject alloc] init]; + object.attachment = attachement; + message.messageObject = object; + [self accelertowardseChamberCommunictowardsion:message]; + return; + } else { + NIMChatroomNotificationMember *member = content.targets[0]; + if (member.userId.integerValue == [AccountAbstractStorage instance].acquireCid.integerValue) { + + [self shankFetchHerstoryCommunictowardsion:message]; + } else { + BOOL hideEnter = [self shankBrakeImport:message]; + if (!hideEnter) { + + [self accelertowardseChamberCommunictowardsion:message]; + } + } + } + } else if(content.eventType == NIMChatroomEventTypeInfoUpdated) { + if (roomInfo.isCloseScreen) {return;} + if (roomInfo.datingState == ChamberDatingDeclareChangeGenre_Open) { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NSString * roomId = [NSString stringWithFormat:@"%ld", roomInfo.roomId]; + NIMChatroomMembersByIdsRequest *request = [[NIMChatroomMembersByIdsRequest alloc]init]; + request.roomId = roomId; + request.userIds = @[uid]; + [[NIMSDK sharedSDK].chatroomManager fetchChatroomMembersByIds:request completion:^(NSError * _Nullable error, NSArray * _Nullable members) { + if (error == nil) { + NIMChatroomMember * member = members.firstObject; + BOOL isCreator = member.type == NIMChatroomMemberTypeCreator; + BOOL isManager = member.type == NIMChatroomMemberTypeManager; + if (isCreator || isManager) { + [self accelertowardseChamberCommunictowardsion:message]; + } + } + }]; + } + } +} + +- (void)shankFetchHerstoryCommunictowardsion:(NIMMessage *)message { + ChamberAbstractMatrix * roomInfo = self.hostRepresedtation.acquireChamberAbstract; + NSString *roomId = [NSString stringWithFormat:@"%ld", self.hostRepresedtation.acquireChamberAbstract.roomId]; + NIMHistoryMessageSearchOption *option = [[NIMHistoryMessageSearchOption alloc] init]; + option.limit = [ClientDisposition partowardsiciptowardsionDisposition].dispositionAbstract.roomMessageCount; + option.startTime = self.hostRepresedtation.acquireChamberAbstract.clearScreenTime / 1000.0; + option.order = NIMMessageSearchOrderAsc; + option.messageTypes = @[@(NIMMessageTypeText)]; + [[NIMSDK sharedSDK].chatroomManager fetchMessageHistory:roomId option:option result:^(NSError * _Nullable error, NSArray * _Nullable messages) { + if (messages.count) { + + if (messages.count == [ClientDisposition partowardsiciptowardsionDisposition].dispositionAbstract.roomMessageCount) { + NIMHistoryMessageSearchOption *option = [[NIMHistoryMessageSearchOption alloc] init]; + option.limit = [ClientDisposition partowardsiciptowardsionDisposition].dispositionAbstract.roomMessageCount; + option.order = NIMMessageSearchOrderDesc; + option.messageTypes = @[@(NIMMessageTypeText)]; + [[NIMSDK sharedSDK].chatroomManager fetchMessageHistory:roomId option:option result:^(NSError * _Nullable error, NSArray * _Nullable messages) { + if (self.datasource.count > kChamberCommunicationLargestLongness) { + NSIndexSet *set = [NSIndexSet indexSetWithIndexesInRange:NSMakeRange(0, kChamberCommunicationLargestLongness/2)]; + NSArray *needRemoveMsgArray = [self.datasource objectsAtIndexes:set]; + [self.datasource removeObjectsInArray:needRemoveMsgArray]; + } + + for (NIMMessage *item in messages.reverseObjectEnumerator) { + [self.datasource addObject:[self.communicationAnatomiser analyzeCommunictowardsionIdiosyncracy:item]]; + if (!self.isRoadliceImport) { + if (self.hostRepresedtation.acquireChamberAbstract.isCloseScreen) { + NIMCustomObject *obj = (NIMCustomObject *)item.messageObject; + if (obj.attachment != nil && [obj.attachment isKindOfClass:[AttachmentMatrix class]]) { + AttachmentMatrix *attachment = (AttachmentMatrix *)obj.attachment; + if (attachment.first == IndividualityCommunicationGenre_Update_RoomInfo && attachment.second == Custom_Message_Sub_Update_RoomInfo_MessageState){ + [[YUMIChamberMiniExecutive shareManager] preserveChamberCommunictowardsion:item]; + } + } + } else { + [[YUMIChamberMiniExecutive shareManager] preserveChamberCommunictowardsion:item]; + } + } + } + [self.communicationTabulationViwe reloadData]; + + [self scrollToExtreme:YES]; + BOOL hideEnter = [self shankBrakeImport:message]; + if (!hideEnter) { + + [self accelertowardseChamberCommunictowardsion:message]; + } + if (!roomInfo.hasAnimationEffect) { + [self chamberAbstractNoPresentBrectifynessCommunictowardsion:message]; + } + [self produceConsumerImportChamberAccelertowardseChambermotifCommunictowardsion]; + }]; + return; + } + if (self.datasource.count > kChamberCommunicationLargestLongness) { + NSIndexSet *set = [NSIndexSet indexSetWithIndexesInRange:NSMakeRange(0, kChamberCommunicationLargestLongness/2)]; + NSArray *needRemoveMsgArray = [self.datasource objectsAtIndexes:set]; + [self.datasource removeObjectsInArray:needRemoveMsgArray]; + } + + for (NIMMessage *item in messages) { + [self.datasource addObject:[self.communicationAnatomiser analyzeCommunictowardsionIdiosyncracy:item]]; + if (!self.isRoadliceImport) { + if (self.hostRepresedtation.acquireChamberAbstract.isCloseScreen) { + NIMCustomObject *obj = (NIMCustomObject *)item.messageObject; + if (obj.attachment != nil && [obj.attachment isKindOfClass:[AttachmentMatrix class]]) { + AttachmentMatrix *attachment = (AttachmentMatrix *)obj.attachment; + if (attachment.first == IndividualityCommunicationGenre_Update_RoomInfo && attachment.second == Custom_Message_Sub_Update_RoomInfo_MessageState){ + [[YUMIChamberMiniExecutive shareManager] preserveChamberCommunictowardsion:item]; + } + } + } else { + [[YUMIChamberMiniExecutive shareManager] preserveChamberCommunictowardsion:item]; + } + } + } + [self.communicationTabulationViwe reloadData]; + + [self scrollToExtreme:YES]; + } + BOOL hideEnter = [self shankBrakeImport:message]; + if (!hideEnter) { + + [self accelertowardseChamberCommunictowardsion:message]; + } + if (!roomInfo.hasAnimationEffect) { + [self chamberAbstractNoPresentBrectifynessCommunictowardsion:message]; + } + [self produceConsumerImportChamberAccelertowardseChambermotifCommunictowardsion]; + }]; +} + +- (void)shankNEMCEssayCommunictowardsion:(NIMMessage *)message { + self.isRoadliceImport = NO; + if (self.hostRepresedtation.acquireChamberAbstract.isCloseScreen) {return;} + [self accelertowardseChamberCommunictowardsion:message]; +} + +- (void)chamberAbstractNoPresentBrectifynessCommunictowardsion:(NIMMessage *)message { + self.isRoadliceImport = NO; + AttachmentMatrix *attachement = [[AttachmentMatrix alloc]init]; + attachement.first = IndividualityCommunicationGenre_Update_RoomInfo; + attachement.second = Custom_Message_Sub_Update_RoomInfo_AnimateEffect; + NIMMessage *tempMessage = [[NIMMessage alloc]init]; + NIMCustomObject *customObject = [[NIMCustomObject alloc]init]; + customObject.attachment = attachement; + tempMessage.messageObject = customObject; + [self accelertowardseChamberCommunictowardsion:tempMessage]; +} + +- (void)onChamberRoadliceImported { + self.isRoadliceImport = YES; + + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + NSArray * temArray = [YUMIChamberMiniExecutive shareManager].acquireProvincialUniversalChamberCommunictowardsion; + + for (NIMMessage *item in temArray) { + [self.datasource addObject:[self.communicationAnatomiser analyzeCommunictowardsionIdiosyncracy:item]]; + } + [self.communicationTabulationViwe reloadData]; + + [self scrollToExtreme:YES]; + }); +} + +- (void)onChamberImported { + [[YUMIChamberMiniExecutive shareManager] replacementProvincialCommunictowardsion]; + self.intelligenceerRegard.intumescePrettify = self.hostRepresedtation.acquireChamberAbstract.type == ChamberGenre_MiniGame ? [UIColor colorWithWhite:1 alpha:0.2] : [DJDKMIMOMColor communictowardsionIntumescePrettify]; +} + +- (void)onChamberRefurbish { + + if (self.hostRepresedtation.acquireChamberAbstract.hadChangeRoomType) { + self.intelligenceerRegard.intumescePrettify = self.hostRepresedtation.acquireChamberAbstract.type == ChamberGenre_MiniGame ? [UIColor colorWithWhite:1 alpha:0.2] : [DJDKMIMOMColor communictowardsionIntumescePrettify]; + [self.communicationTabulationViwe reloadData]; + } +} + +#pragma mark - ScrollViewDelegate +- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView { + + self.isPending = YES; +} +- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate { + + if (!decelerate) { + [self accomplishDraggingAbout:scrollView]; + } +} +- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView { + + [self accomplishDraggingAbout:scrollView]; +} +- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView { + if (!self.isPending && self.incomingCommunications.count <= 0) { + [self scrollToExtreme:YES]; + } +} + + +- (void)accomplishDraggingAbout:(UIScrollView *)scrollView { + CGFloat contentSizeH = scrollView.contentSize.height; + CGFloat contentOffsetY = scrollView.contentOffset.y; + CGFloat sizeH = scrollView.frame.size.height; + self.isPending = contentSizeH - contentOffsetY - sizeH > 20.0; + if (!self.isPending) { + self.communicationPromptsBtuton.hidden = YES; + self.atPromptBtuton.hidden = YES; + self.atComputation = 0; + [self.locationGarment removeAllObjects]; + if (self.incomingCommunications.count > 0) { + [self aplictowardsionconcludeGrantedTrundleToExtreme]; + } + } + [[NSNotificationCenter defaultCenter] postNotificationName:@"roomMessageTabelViewStopScroll" object:nil]; +} + + +#pragma mark - UITableViewDelegate And UITableViewDataSource +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.datasource.count; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + YUMICommunicationAbstractMatrix* mesageInfo = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + return mesageInfo.rowHeight; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + YUMIChamberCommunicationTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIChamberCommunicationTabulationRegardElement class])]; + cell.delegate = self; + YUMICommunicationAbstractMatrix* attr = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + cell.communicationAbstract = attr; + cell.roomType = self.hostRepresedtation.acquireChamberAbstract.type; + return cell; +} + + +#pragma mark - FBCChamberCommunicationTabulationViweElementRepresendtation +- (void)yUMIChamberCommunictowardsionTarbsultowardsionViweElementDidBetowardsDispossess:(YUMIChamberCommunicationTabulationRegardElement *)view { + if (self.hostRepresedtation.acquireChamberAbstract.type == ChamberGenre_MiniGame) { + self.isBigness = !self.isBigness; + CGFloat height = self.isBigness ? 200 : 80; + [self mas_updateConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(height); + }]; + } +} + +#pragma mark - Getters And Setters +- (UITableView *)communicationTabulationViwe { + if (!_communicationTabulationViwe) { + _communicationTabulationViwe = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; + _communicationTabulationViwe.delegate = self; + _communicationTabulationViwe.dataSource = self; + _communicationTabulationViwe.tableFooterView = [UIView new]; + _communicationTabulationViwe.separatorStyle = UITableViewCellSeparatorStyleNone; + _communicationTabulationViwe.backgroundColor = [UIColor clearColor]; + _communicationTabulationViwe.showsVerticalScrollIndicator = NO; + _communicationTabulationViwe.tag = 666; + if (@available(iOS 11.0, *)) { + _communicationTabulationViwe.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + [_communicationTabulationViwe registerClass:[YUMIChamberCommunicationTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIChamberCommunicationTabulationRegardElement class])]; + } + return _communicationTabulationViwe; +} + +- (YUMIChamberCommunicationIntelligencerRegard *)intelligenceerRegard { + if (!_intelligenceerRegard) { + _intelligenceerRegard = [[YUMIChamberCommunicationIntelligencerRegard alloc] init]; + } + return _intelligenceerRegard; +} + +- (UIButton *)communicationPromptsBtuton { + if (!_communicationPromptsBtuton) { + _communicationPromptsBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_communicationPromptsBtuton setTitle:YMLocalizedString(@"YUMI_Room_Message_Container_View_6") forState:UIControlStateNormal]; + [_communicationPromptsBtuton setTitleColor:[DJDKMIMOMColor aplictowardsionMainPrettify] forState:UIControlStateNormal]; + _communicationPromptsBtuton.layer.cornerRadius = 15.0; + _communicationPromptsBtuton.layer.masksToBounds = YES; + _communicationPromptsBtuton.titleLabel.font = [UIFont systemFontOfSize:12.0]; + _communicationPromptsBtuton.backgroundColor = [UIColor whiteColor]; + [_communicationPromptsBtuton addTarget:self action:@selector(communictowardsionPromptsBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + _communicationPromptsBtuton.hidden = YES; + } + return _communicationPromptsBtuton; +} + +- (UIButton *)atPromptBtuton { + if (!_atPromptBtuton) { + _atPromptBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_atPromptBtuton setTitle:YMLocalizedString(@"YUMI_Room_Message_Container_View_7") forState:UIControlStateNormal]; + [_atPromptBtuton setTitleColor:[DJDKMIMOMColor aplictowardsionMainPrettify] forState:UIControlStateNormal]; + _atPromptBtuton.layer.cornerRadius = 15.0; + _atPromptBtuton.layer.masksToBounds = YES; + _atPromptBtuton.titleLabel.font = [UIFont systemFontOfSize:12.0]; + _atPromptBtuton.backgroundColor = [UIColor whiteColor]; + [_atPromptBtuton addTarget:self action:@selector(towardsPromptsBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + _atPromptBtuton.hidden = YES; + } + return _atPromptBtuton; +} + +- (NSMutableArray *)datasource { + if (!_datasource) { + _datasource = [NSMutableArray array]; + } + return _datasource; +} + +- (NSMutableArray *)incomingCommunications { + if (!_incomingCommunications) { + _incomingCommunications = [NSMutableArray array]; + } + return _incomingCommunications; +} + +- (NSMutableArray *)locationGarment { + if (!_locationGarment) { + _locationGarment = [NSMutableArray array]; + } + return _locationGarment; +} + +- (YUMIChamberCommunicationAnatomiser *)communicationAnatomiser { + if (!_communicationAnatomiser) { + _communicationAnatomiser = [[YUMIChamberCommunicationAnatomiser alloc] init]; + _communicationAnatomiser.hostRepresedtation = self.hostRepresedtation; + } + return _communicationAnatomiser; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/MicroQueueCeremony.h b/YuMi/Modules/YMRoom/View/MicroQueueCeremony.h new file mode 100644 index 00000000..5d224933 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/MicroQueueCeremony.h @@ -0,0 +1,25 @@ +// +// MicroQueueCeremony.h +// YUMI +// +// Created by zu on 2021/11/4. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class MiecreoscoopeMHTueueMatrix; + + +@protocol MicroQueueCeremony + +@optional + +- (NSMutableDictionary*)acquireMiecreoscoopeInthecaseofmtowardsion; + +- (void)onMiecreoscoopeInthecaseofmtowardsionRefurbish:(NSMutableDictionary*)queue; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/MorePlay/Model/YUMIChamberImportpriseDisportMatrix.h b/YuMi/Modules/YMRoom/View/MorePlay/Model/YUMIChamberImportpriseDisportMatrix.h new file mode 100644 index 00000000..33d588be --- /dev/null +++ b/YuMi/Modules/YMRoom/View/MorePlay/Model/YUMIChamberImportpriseDisportMatrix.h @@ -0,0 +1,27 @@ +// +// YMRoomActivityPlayModel.h +// YUMI +// +// Created by YUMI on 2022/9/30. +// + +#import + +typedef NS_ENUM(NSUInteger, ChamberActivityDisportGenre) { + ChamberActivityDisportGenreSailing, + ChamberActivityDisportGenreCandyTree, +}; + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIChamberImportpriseDisportMatrix : NSObject + +@property (nonatomic, copy) NSString *name; + +@property (nonatomic, copy) NSString *imageName; + +@property (nonatomic, assign) ChamberActivityDisportGenre playType; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/MorePlay/Model/YUMIChamberImportpriseDisportMatrix.m b/YuMi/Modules/YMRoom/View/MorePlay/Model/YUMIChamberImportpriseDisportMatrix.m new file mode 100644 index 00000000..55240bce --- /dev/null +++ b/YuMi/Modules/YMRoom/View/MorePlay/Model/YUMIChamberImportpriseDisportMatrix.m @@ -0,0 +1,12 @@ +// +// YMRoomActivityPlayModel.m +// YUMI +// +// Created by YUMI on 2022/9/30. +// + +#import "YUMIChamberImportpriseDisportMatrix.h" + +@implementation YUMIChamberImportpriseDisportMatrix + +@end diff --git a/YuMi/Modules/YMRoom/View/MorePlay/Presenter/YUMIChamberFurthaerDisportExternalizer.h b/YuMi/Modules/YMRoom/View/MorePlay/Presenter/YUMIChamberFurthaerDisportExternalizer.h new file mode 100644 index 00000000..a5c17686 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/MorePlay/Presenter/YUMIChamberFurthaerDisportExternalizer.h @@ -0,0 +1,18 @@ +// +// YMRoomMorePlayPresenter.h +// YUMI +// +// Created by YUMI on 2022/10/24. +// + +#import "BaseMvpExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN +@class ChamberAbstractMatrix, ConsumerAbstractMatrix; +@interface YUMIChamberFurthaerDisportExternalizer : BaseMvpExternalizer + +- (void)acquireChamberFurthaerDisportTowardsoloudspeaker:(ChamberAbstractMatrix *)roomInfo userInfo:(ConsumerAbstractMatrix *)userInfo; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/MorePlay/Presenter/YUMIChamberFurthaerDisportExternalizer.m b/YuMi/Modules/YMRoom/View/MorePlay/Presenter/YUMIChamberFurthaerDisportExternalizer.m new file mode 100644 index 00000000..a585e0ef --- /dev/null +++ b/YuMi/Modules/YMRoom/View/MorePlay/Presenter/YUMIChamberFurthaerDisportExternalizer.m @@ -0,0 +1,31 @@ +// +// YMRoomMorePlayPresenter.m +// YUMI +// +// Created by YUMI on 2022/10/24. +// + +#import "YUMIChamberFurthaerDisportExternalizer.h" +#import "ChamberAbstractMatrix.h" +#import "ConsumerAbstractMatrix.h" +#import "YUMIChamberImportpriseDisportMatrix.h" +#import "ClientDisposition.h" +#import "FBCChamberFurthaerPlayCeremony.h" + +@implementation YUMIChamberFurthaerDisportExternalizer + +- (void)acquireChamberFurthaerDisportTowardsoloudspeaker:(ChamberAbstractMatrix *)roomInfo userInfo:(ConsumerAbstractMatrix *)userInfo { + NSMutableArray * data = [NSMutableArray array]; + + YUMIChamberImportpriseDisportMatrix *sailingModel = [[YUMIChamberImportpriseDisportMatrix alloc] init]; + sailingModel.name = YMLocalizedString(@"YUMI_Room_More_Play_Presenter_0"); + sailingModel.imageName = @"room_sailiing_enter"; + sailingModel.playType = ChamberActivityDisportGenreSailing; + + if ([ClientDisposition partowardsiciptowardsionDisposition].dispositionAbstract.linearlyPoolOpenLevel <= userInfo.userLevelVo.experLevelSeq) { + [data addObject:sailingModel]; + } + [[self acquireRegard] acquireFurthaerDisportsAccomplishment:data]; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/MorePlay/Protocol/FBCChamberFurthaerPlayCeremony.h b/YuMi/Modules/YMRoom/View/MorePlay/Protocol/FBCChamberFurthaerPlayCeremony.h new file mode 100644 index 00000000..dac54a1f --- /dev/null +++ b/YuMi/Modules/YMRoom/View/MorePlay/Protocol/FBCChamberFurthaerPlayCeremony.h @@ -0,0 +1,18 @@ +// +// YMRoomMorePlayProtocol.h +// YUMI +// +// Created by YUMI on 2022/10/24. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol FBCChamberFurthaerPlayCeremony + +- (void)acquireFurthaerDisportsAccomplishment:(NSArray *)list; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/MorePlay/View/Cell/YUMIChamberFurthaerDisportAssembletionRegardElement.h b/YuMi/Modules/YMRoom/View/MorePlay/View/Cell/YUMIChamberFurthaerDisportAssembletionRegardElement.h new file mode 100644 index 00000000..4d9618fb --- /dev/null +++ b/YuMi/Modules/YMRoom/View/MorePlay/View/Cell/YUMIChamberFurthaerDisportAssembletionRegardElement.h @@ -0,0 +1,16 @@ +// +// YMRoomMorePlayCollectionViewCell.h +// YUMI +// +// Created by YUMI on 2022/10/24. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class YUMIChamberImportpriseDisportMatrix; +@interface YUMIChamberFurthaerDisportAssembletionRegardElement : UICollectionViewCell +@property (nonatomic,strong) YUMIChamberImportpriseDisportMatrix *disportMatrix; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/MorePlay/View/Cell/YUMIChamberFurthaerDisportAssembletionRegardElement.m b/YuMi/Modules/YMRoom/View/MorePlay/View/Cell/YUMIChamberFurthaerDisportAssembletionRegardElement.m new file mode 100644 index 00000000..c7c56284 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/MorePlay/View/Cell/YUMIChamberFurthaerDisportAssembletionRegardElement.m @@ -0,0 +1,82 @@ +// +// YMRoomMorePlayCollectionViewCell.m +// YUMI +// +// Created by YUMI on 2022/10/24. +// + +#import "YUMIChamberFurthaerDisportAssembletionRegardElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "NetIndicateRegard.h" +#import "YUMIChamberImportpriseDisportMatrix.h" + +@interface YUMIChamberFurthaerDisportAssembletionRegardElement () +@property (nonatomic,strong) NetIndicateRegard *brandIndicateRegard; +@property (nonatomic,strong) UILabel *titleLabel; + +@end + +@implementation YUMIChamberFurthaerDisportAssembletionRegardElement + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self.contentView addSubview:self.brandIndicateRegard]; + [self.contentView addSubview:self.titleLabel]; +} + +- (void)initChildLyRestrictions { + [self.brandIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(64, 64)); + make.centerX.mas_equalTo(self.contentView); + make.top.mas_equalTo(self.contentView); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.contentView); + make.top.mas_equalTo(self.brandIndicateRegard.mas_bottom).offset(7); + }]; +} + +#pragma mark - Getters And Setters +- (void)setDisportMatrix:(YUMIChamberImportpriseDisportMatrix *)disportMatrix { + _disportMatrix = disportMatrix; + if (_disportMatrix) { + if ([_disportMatrix.imageName hasPrefix:@"http"]) { + self.brandIndicateRegard.imageUrl = _disportMatrix.imageName; + } else { + self.brandIndicateRegard.image = [UIImage imageNamed:_disportMatrix.imageName]; + } + self.titleLabel.text = _disportMatrix.name; + } +} + +- (NetIndicateRegard *)brandIndicateRegard { + if (!_brandIndicateRegard) { + _brandIndicateRegard = [[NetIndicateRegard alloc] init]; + _brandIndicateRegard.userInteractionEnabled = YES; + } + return _brandIndicateRegard; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.font = [UIFont systemFontOfSize:10]; + _titleLabel.textColor = [UIColor whiteColor]; + _titleLabel.textAlignment = NSTextAlignmentCenter; + } + return _titleLabel; +} + + +@end diff --git a/YuMi/Modules/YMRoom/View/MorePlay/View/YUMIChamberFurthaerDisportRegardGovernancer.h b/YuMi/Modules/YMRoom/View/MorePlay/View/YUMIChamberFurthaerDisportRegardGovernancer.h new file mode 100644 index 00000000..577ccd8d --- /dev/null +++ b/YuMi/Modules/YMRoom/View/MorePlay/View/YUMIChamberFurthaerDisportRegardGovernancer.h @@ -0,0 +1,16 @@ +// +// YMRoomMorePlayViewController.h +// YUMI +// +// Created by YUMI on 2022/10/24. +// + +#import "MvpRegardGovernancer.h" +#import "ChamberHostRepresendtation.h" +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIChamberFurthaerDisportRegardGovernancer : MvpRegardGovernancer +- (instancetype)initAboutdelegtowardse:(id)delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/MorePlay/View/YUMIChamberFurthaerDisportRegardGovernancer.m b/YuMi/Modules/YMRoom/View/MorePlay/View/YUMIChamberFurthaerDisportRegardGovernancer.m new file mode 100644 index 00000000..e2edabb7 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/MorePlay/View/YUMIChamberFurthaerDisportRegardGovernancer.m @@ -0,0 +1,186 @@ +// +// YMRoomMorePlayViewController.m +// YUMI +// +// Created by YUMI on 2022/10/24. +// + +#import "YUMIChamberFurthaerDisportRegardGovernancer.h" +#import +#import "YUMIMacroUitls.h" +#import "UIView+Corner.h" +#import "StatsticsticsServingFacilitater.h" +#import "NSArray+Safe.h" +#import "YUMIChamberImportpriseDisportMatrix.h" +#import "ChamberAbstractMatrix.h" +#import "YUMIChamberFurthaerDisportAssembletionRegardElement.h" +#import "YUMIConfectioneryTimberRegardGovernancer.h" +#import "YUMIMarchingRegardGovernancer.h" +#import "YUMIChamberFurthaerDisportExternalizer.h" +#import "FBCChamberFurthaerPlayCeremony.h" + +@interface YUMIChamberFurthaerDisportRegardGovernancer () +@property (nonatomic,strong) UIView *apexRegard; +@property (nonatomic,strong) UICollectionView *collectionView; +@property (nonatomic,strong) NSArray *datasource; +@property (nonatomic,strong) UIVisualEffectView *impressionRegard; +@property (nonatomic,weak) idhostRepresedtation; +@end + +@implementation YUMIChamberFurthaerDisportRegardGovernancer + +- (instancetype)initAboutdelegtowardse:(id)delegate { + if (self = [super init]) { + self.hostRepresedtation = delegate; + self.modalPresentationStyle = UIModalPresentationOverFullScreen; + } + return self; +} + +- (__kindof id)producePresimport { + return [[YUMIChamberFurthaerDisportExternalizer alloc] init]; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initSubViews]; + [self initChildLyRestrictions]; + [self.presimport acquireChamberFurthaerDisportTowardsoloudspeaker:self.hostRepresedtation.acquireChamberAbstract userInfo:self.hostRepresedtation.getUserInfo]; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.view.backgroundColor = [UIColor clearColor]; + [self.view addSubview:self.apexRegard]; + [self.view addSubview:self.impressionRegard]; + [self.view addSubview:self.collectionView]; +} + +- (void)initChildLyRestrictions { + [self.apexRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self.view); + make.bottom.mas_equalTo(self.collectionView.mas_top); + }]; + + [self.impressionRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.collectionView); + }]; + + [self.collectionView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.mas_equalTo(self.view); + make.height.mas_equalTo(81 + 16 + kSafeAreaBottomHeight + 10); + }]; +} + +- (void)prohibitiaplictowardsionearVewC { + [self dismissViewControllerAnimated:YES completion:nil]; +} + +#pragma mark - UITableViewDelegate And UITableViewDataSource +- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { + return self.datasource.count; +} + +- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { + YUMIChamberFurthaerDisportAssembletionRegardElement * cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([YUMIChamberFurthaerDisportAssembletionRegardElement class]) forIndexPath:indexPath]; + cell.disportMatrix = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + return cell; +} + +- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath { + [collectionView deselectItemAtIndexPath:indexPath animated:YES]; + if (self.datasource.count > 0) { + YUMIChamberImportpriseDisportMatrix * info = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + switch (info.playType) { + case ChamberActivityDisportGenreCandyTree: + { + [self prohibitiaplictowardsionearVewC]; + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventroom_pop_click eventAttributes:@{@"bannerName": YMLocalizedString(@"YUMI_Room_More_Play_View_Controller_0")}]; + YUMIConfectioneryTimberRegardGovernancer * candyTreeVC = [[YUMIConfectioneryTimberRegardGovernancer alloc] initWithDelegate:self.hostRepresedtation]; + candyTreeVC.modalPresentationStyle = UIModalPresentationOverFullScreen; + [self.hostRepresedtation.acquireUniversalNev presentViewController:candyTreeVC animated:YES completion:nil]; + } + break; + case ChamberActivityDisportGenreSailing: + { + [self prohibitiaplictowardsionearVewC]; + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventroom_pop_click eventAttributes:@{@"bannerName": YMLocalizedString(@"YUMI_Room_More_Play_View_Controller_1")}]; + NSString * roomUid = [NSString stringWithFormat:@"%ld", self.hostRepresedtation.acquireChamberAbstract.uid]; + YUMIMarchingRegardGovernancer * sailingVC = [[YUMIMarchingRegardGovernancer alloc] initAboutChamberCid:roomUid]; + [self.hostRepresedtation.acquireUniversalNev presentViewController:sailingVC animated:YES completion:nil]; + } + break; + default: + break; + } + } + +} + +#pragma mark - FBCChamberFurthaerPlayCeremony +- (void)acquireFurthaerDisportsAccomplishment:(NSArray *)list { + self.datasource = list; + CGFloat contentHeight= 24 + kSafeAreaBottomHeight + 10; + CGFloat itemAltitude = 81; + int page = list.count % 3; + int scale = (int)list.count / (int)3; + if (page == 0) { + contentHeight += (scale *itemAltitude); + } else { + contentHeight += ((scale+1) *itemAltitude + scale * 12); + } + CAShapeLayer * layer = [CAShapeLayer layer]; + UIBezierPath * path = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, KScreenWidth, contentHeight) byRoundingCorners:UIRectCornerTopLeft | UIRectCornerTopRight cornerRadii:CGSizeMake(8, 8)]; + layer.path = path.CGPath; + self.collectionView.layer.mask = layer; + [self.collectionView mas_updateConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(contentHeight); + }]; + [self.collectionView reloadData]; +} + +#pragma mark - Getters And Setters +- (UIView *)apexRegard { + if (!_apexRegard) { + _apexRegard = [[UIView alloc] init]; + _apexRegard.backgroundColor = [UIColor clearColor]; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(prohibitiaplictowardsionearVewC)]; + [_apexRegard addGestureRecognizer:tap]; + } + return _apexRegard; +} + +- (UICollectionView *)collectionView{ + if (!_collectionView) { + UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init]; + layout.itemSize = CGSizeMake(KScreenWidth / 3.0, 81); + layout.sectionInset = UIEdgeInsetsMake(16, 0, 0, 0); + layout.minimumLineSpacing = 10; + layout.minimumInteritemSpacing = 0; + _collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout]; + _collectionView.dataSource = self; + _collectionView.delegate = self; + _collectionView.backgroundColor = [UIColor clearColor]; + [_collectionView registerClass:[YUMIChamberFurthaerDisportAssembletionRegardElement class] forCellWithReuseIdentifier:NSStringFromClass([YUMIChamberFurthaerDisportAssembletionRegardElement class])]; + + } + return _collectionView; +} + +- (UIVisualEffectView *)impressionRegard { + if (!_impressionRegard) { + UIBlurEffect *beffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleDark]; + _impressionRegard = [[UIVisualEffectView alloc] initWithEffect:beffect]; + + UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, KScreenWidth, KScreenHeight) byRoundingCorners:UIRectCornerTopLeft | UIRectCornerTopRight cornerRadii:CGSizeMake(8, 8)]; + CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init]; + maskLayer.frame = CGRectMake(0, 0, KScreenWidth, KScreenHeight); + maskLayer.path = maskPath.CGPath; + _impressionRegard.layer.mask = maskLayer; + } + return _impressionRegard; +} + + + +@end diff --git a/YuMi/Modules/YMRoom/View/MoreView/Api/Api+MoreMenu.h b/YuMi/Modules/YMRoom/View/MoreView/Api/Api+MoreMenu.h new file mode 100644 index 00000000..7c5232f8 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/MoreView/Api/Api+MoreMenu.h @@ -0,0 +1,36 @@ +// +// Api+MoreMenu.h +// YUMI +// +// Created by YUMI on 2021/12/11. +// + +#import "Api.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface Api (MoreMenu) ++ (void)unfoildChamberPresentBWSttess:(HttpRequestHelperCompletion)completion uid:(NSString *)uid roomUid:(NSString *)roomUid; + ++ (void)concludeChamberPresentBWSttess:(HttpRequestHelperCompletion)completion uid:(NSString *)uid roomUid:(NSString *)roomUid; + ++ (void)refurbishChamberAbstractCommunictowardsionDeclare:(HttpRequestHelperCompletion)complection roomId:(NSString *)roomId isCloseScreen:(NSString *)isCloseScreen ticket:(NSString *)ticket uid:(NSString *)uid; ++ (void)centiretyforChamberFantowardsics:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid; + ++ (void)examineCentiretyforChamberFantowardsics:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid; + ++ (void)unfoildChamberEngagement:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid; + ++ (void)concludeChamberEngagement:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid; + ++ (void)chamberWirelessAcquireMsg:(HttpRequestHelperCompletion)completion roomType:(NSString *)type; + ++ (void)acquireConsumerGuruChamberLoudspeaker:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid; + ++ (void)requisitionConcludeKellegChamberCombate:(HttpRequestHelperCompletion)completion roundId:(NSString *)roundId; + ++ (void)requisitionCleancreen:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid uid:(NSString *)uid; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/MoreView/Api/Api+MoreMenu.m b/YuMi/Modules/YMRoom/View/MoreView/Api/Api+MoreMenu.m new file mode 100644 index 00000000..8918388c --- /dev/null +++ b/YuMi/Modules/YMRoom/View/MoreView/Api/Api+MoreMenu.m @@ -0,0 +1,67 @@ +// +// Api+MoreMenu.m +// YUMI +// +// Created by YUMI on 2021/12/11. +// + +#import "Api+MoreMenu.h" +#import +@implementation Api (MoreMenu) + ++ (void)unfoildChamberPresentBWSttess:(HttpRequestHelperCompletion)completion uid:(NSString *)uid roomUid:(NSString *)roomUid { + NSString * fang = [NSString stringFromBase64String:@"cm9vbS9naWZ0L3ZhbHVlL29wZW4="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, uid, roomUid, nil]; +} + ++ (void)concludeChamberPresentBWSttess:(HttpRequestHelperCompletion)completion uid:(NSString *)uid roomUid:(NSString *)roomUid { + NSString * fang = [NSString stringFromBase64String:@"cm9vbS9naWZ0L3ZhbHVlL2Nsb3Nl"]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, uid, roomUid, nil]; +} + ++ (void)refurbishChamberAbstractCommunictowardsionDeclare:(HttpRequestHelperCompletion)complection roomId:(NSString *)roomId isCloseScreen:(NSString *)isCloseScreen ticket:(NSString *)ticket uid:(NSString *)uid { + NSString * fang = [NSString stringFromBase64String:@"cm9vbS9zZXRDbG9zZVNjcmVlbg=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:complection, __FUNCTION__, roomId, isCloseScreen, ticket, uid, nil]; +} + ++ (void)centiretyforChamberFantowardsics:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid { + NSString * fang = [NSString stringFromBase64String:@"cm9vbS9pbnZpdGVGYW5z"]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, roomUid, nil]; +} + ++ (void)examineCentiretyforChamberFantowardsics:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid { + NSString * fang = [NSString stringFromBase64String:@"cm9vbS9pbnZpdGVGYW5z"]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, roomUid, nil]; +} + ++ (void)unfoildChamberEngagement:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid { + NSString * fang = [NSString stringFromBase64String:@"YmxpbmQtZGF0ZS9lbmFibGU="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, roomUid, nil]; +} + ++ (void)concludeChamberEngagement:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid { + NSString * fang = [NSString stringFromBase64String:@"YmxpbmQtZGF0ZS9kaXNhYmxl"]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, roomUid, nil]; +} + ++ (void)chamberWirelessAcquireMsg:(HttpRequestHelperCompletion)completion roomType:(NSString *)type { + NSString * fang = [NSString stringFromBase64String:@"YnJvYWQvZ2V0TXNn"]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, type, nil]; +} + ++ (void)acquireConsumerGuruChamberLoudspeaker:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid { + NSString * fang = [NSString stringFromBase64String:@"dmlwL2dldFVzZXJWaXBSb29tSG9ybg=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, roomUid, nil]; +} + ++ (void)requisitionConcludeKellegChamberCombate:(HttpRequestHelperCompletion)completion roundId:(NSString *)roundId { + NSString * fang = [NSString stringFromBase64String:@"Y3Jvc3Nyb29tcGtyb3VuZC9lbmRTaW5nbGVSb29tUGs="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, roundId, nil]; +} + ++ (void)requisitionCleancreen:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid uid:(NSString *)uid { + NSString * fang = [NSString stringFromBase64String:@"cm9vbS9jbGVhci9oaXN0b3J5L3JlY3JvZA=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, roomUid, uid, nil]; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/MoreView/Model/CallforFanaticsMatrix.h b/YuMi/Modules/YMRoom/View/MoreView/Model/CallforFanaticsMatrix.h new file mode 100644 index 00000000..3a46f176 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/MoreView/Model/CallforFanaticsMatrix.h @@ -0,0 +1,18 @@ +// +// CallforFanaticsMatrix.h +// YUMI +// +// Created by YUMI on 2021/12/27. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface CallforFanaticsMatrix : NSObject +@property (nonatomic,assign) NSInteger fansNum; +@property (nonatomic,assign) int inviteInterval; +@property (nonatomic,assign) int inviteTimes; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/MoreView/Model/CallforFanaticsMatrix.m b/YuMi/Modules/YMRoom/View/MoreView/Model/CallforFanaticsMatrix.m new file mode 100644 index 00000000..62fed837 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/MoreView/Model/CallforFanaticsMatrix.m @@ -0,0 +1,12 @@ +// +// CallforFanaticsMatrix.m +// YUMI +// +// Created by YUMI on 2021/12/27. +// + +#import "CallforFanaticsMatrix.h" + +@implementation CallforFanaticsMatrix + +@end diff --git a/YuMi/Modules/YMRoom/View/MoreView/Model/YUMIChamberFurthaerProvisionMatrix.h b/YuMi/Modules/YMRoom/View/MoreView/Model/YUMIChamberFurthaerProvisionMatrix.h new file mode 100644 index 00000000..2d9ea265 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/MoreView/Model/YUMIChamberFurthaerProvisionMatrix.h @@ -0,0 +1,70 @@ +// +// YMRoomMoreItemModel.h +// YUMI +// +// Created by YUMI on 2021/12/11. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSInteger, ChamberMoreParrotGenre) { + + ChamberMoreParrotGenre_Gift_Value_Close = 1, + + ChamberMoreParrotGenre_Gift_Value_Open = 2, + + ChamberMoreParrotGenre_Message_Screen_Close = 3, + + ChamberMoreParrotGenre_Message_Screen_Open = 4, + + ChamberMoreParrotGenre_Gift_Effect_Close = 5, + + ChamberMoreParrotGenre_Gift_Effect_Open = 6, + + ChamberMoreParrotGenre_Room_Setting = 7, + + ChamberMoreParrotGenre_Invite_Fans = 8, + + ChamberMoreParrotGenre_Room_Dating_Open = 9, + + ChamberMoreParrotGenre_Room_Dating_Close = 10, + + ChamberMoreParrotGenre_Release_Radio = 11, + + ChamberMoreParrotGenre_Room_trumpet = 12, + + ChamberMoreParrotGenre_Room_Across_PK_Open = 13, + + ChamberMoreParrotGenre_Room_Across_PK_Close = 14, + + ChamberMoreParrotGenre_Room_Anchor_PK_Open = 15, + + ChamberMoreParrotGenre_Room_Anchor_PK_Close = 16, + + ChamberMoreParrotGenre_Message_Screen_Clear = 17, + + ChamberMoreParrotGenre_Room_PK_Open = 18, + + ChamberMoreParrotGenre_Room_PK_Close = 19, + + ChamberMoreParrotGenre_Room_redPacket = 20, + + ChamberMoreParrotGenre_Room_Voice = 21, + + ChamberMoreParrotGenre_Room_Wish_Gift = 22, +}; + +@interface YUMIChamberFurthaerProvisionMatrix : NSObject +@property (nonatomic,copy) NSString *imageName; +@property (nonatomic, assign) BOOL isSelected; +@property (nonatomic,copy) NSString *title; +@property (nonatomic,strong) UIColor *titleColor; +@property (nonatomic,assign) ChamberMoreParrotGenre type; + ++(YUMIChamberFurthaerProvisionMatrix *)initWithTitle:(NSString *)title imageName:(NSString *)imageName type:(ChamberMoreParrotGenre)type titleColor:(UIColor *)titleColor; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/MoreView/Model/YUMIChamberFurthaerProvisionMatrix.m b/YuMi/Modules/YMRoom/View/MoreView/Model/YUMIChamberFurthaerProvisionMatrix.m new file mode 100644 index 00000000..b6a2378d --- /dev/null +++ b/YuMi/Modules/YMRoom/View/MoreView/Model/YUMIChamberFurthaerProvisionMatrix.m @@ -0,0 +1,21 @@ +// +// YMRoomMoreItemModel.m +// YUMI +// +// Created by YUMI on 2021/12/11. +// + +#import "YUMIChamberFurthaerProvisionMatrix.h" + +@implementation YUMIChamberFurthaerProvisionMatrix + ++ (YUMIChamberFurthaerProvisionMatrix *)initWithTitle:(NSString *)title imageName:(NSString *)imageName type:(ChamberMoreParrotGenre)type titleColor:(UIColor *)titleColor { + YUMIChamberFurthaerProvisionMatrix * model = [[self alloc] init]; + model.title = title; + model.imageName = imageName; + model.type = type; + model.titleColor = titleColor; + return model; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/MoreView/Presenter/YUMIFurthaerParrotExternalizer.h b/YuMi/Modules/YMRoom/View/MoreView/Presenter/YUMIFurthaerParrotExternalizer.h new file mode 100644 index 00000000..c5294d9f --- /dev/null +++ b/YuMi/Modules/YMRoom/View/MoreView/Presenter/YUMIFurthaerParrotExternalizer.h @@ -0,0 +1,36 @@ +// +// YMMoreMenuPresenter.h +// YUMI +// +// Created by YUMI on 2021/12/11. +// + +#import "BaseMvpExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN +@class ChamberAbstractMatrix; +@interface YUMIFurthaerParrotExternalizer : BaseMvpExternalizer + +- (void)acquireFurthaerParrotTowardsoloudspeakerProvenience:(ChamberAbstractMatrix *)roomInfo isSuperAdmin:(BOOL)isSuperAdmin; + +- (void)unfoildChamberPresentBWSttess:(NSString *)roomUid; + +- (void)concludeChamberPresentBWSttess:(NSString *)roomUid; + +- (void)refurbishChamberCommunictowardsioncreenDeclare:(BOOL)isCloseScreen roomId:(NSString *)roomId; + +- (void)unfoildChamberEngagement:(NSString *)roomUid; + +- (void)concludeChamberEngagement:(NSString *)roomUid; + +- (void)acquireChamberWirelessCommunictowardsionSttowardsementAboutGenre:(NSString *)type; + +- (void)requisitionAccomplishKellegCombat:(NSString *)roundId; + +- (void)sanitarycreen:(NSString *)roomUid uid:(NSString *)uid; + +- (void)requisitionRevoctowardsionDirectoryapttowardsionArbitraryCombat:(NSString *)roomUid; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/MoreView/Presenter/YUMIFurthaerParrotExternalizer.m b/YuMi/Modules/YMRoom/View/MoreView/Presenter/YUMIFurthaerParrotExternalizer.m new file mode 100644 index 00000000..a6ee49ad --- /dev/null +++ b/YuMi/Modules/YMRoom/View/MoreView/Presenter/YUMIFurthaerParrotExternalizer.m @@ -0,0 +1,254 @@ +// +// YMMoreMenuPresenter.m +// YUMI +// +// Created by YUMI on 2021/12/11. +// + +#import "YUMIFurthaerParrotExternalizer.h" +#import +#import "Api+MoreMenu.h" +#import "ThemeColor+Room.h" +#import "AccountAbstractStorage.h" +#import "ClientDisposition.h" +#import "RealtimackExecutive.h" +#import "Api+AnchorPk.h" +#import "YUMIChamberFurthaerProvisionMatrix.h" +#import "ChamberAbstractMatrix.h" +#import "YUMIReleaseWirelessMatrix.h" +#import "FBCFurthaerMenuCeremony.h" +#import "DJDKMIMOMColor.h" +#import + +@implementation YUMIFurthaerParrotExternalizer + +- (void)acquireFurthaerParrotTowardsoloudspeakerProvenience:(ChamberAbstractMatrix *)roomInfo isSuperAdmin:(BOOL)isSuperAdmin { + YUMIChamberFurthaerProvisionMatrix * roomPK = [[YUMIChamberFurthaerProvisionMatrix alloc] init]; + roomPK.title = roomInfo.roomModeType == ChamberModeGenre_Open_PK_Mode ? @"PK中..." : YMLocalizedString(@"YUMI_More_Menu_Presenter_1"); + roomPK.imageName= @"room_more_menu_room_pk"; + roomPK.type = roomInfo.roomModeType == ChamberModeGenre_Open_PK_Mode ? ChamberMoreParrotGenre_Room_PK_Close : ChamberMoreParrotGenre_Room_PK_Open; + roomPK.titleColor = [DJDKMIMOMColor chamberFurthaerParrotEssayPrettify]; + + YUMIChamberFurthaerProvisionMatrix * giftValue = [[YUMIChamberFurthaerProvisionMatrix alloc] init]; + giftValue.title = roomInfo.showGiftValue ? @"关闭礼物值" : YMLocalizedString(@"YUMI_More_Menu_Presenter_3"); + giftValue.imageName= @"room_more_menu_gift_value"; + giftValue.type = roomInfo.showGiftValue ? ChamberMoreParrotGenre_Gift_Value_Close : ChamberMoreParrotGenre_Gift_Value_Open; + giftValue.titleColor = [DJDKMIMOMColor chamberFurthaerParrotEssayPrettify]; + + YUMIChamberFurthaerProvisionMatrix * giftEffect = [[YUMIChamberFurthaerProvisionMatrix alloc] init]; + giftEffect.title = roomInfo.hasAnimationEffect ? @"关闭我的特效" : YMLocalizedString(@"YUMI_More_Menu_Presenter_5"); + giftEffect.imageName = @"room_more_menu_gift_effect"; + giftEffect.type = roomInfo.hasAnimationEffect ? ChamberMoreParrotGenre_Gift_Effect_Close : ChamberMoreParrotGenre_Gift_Effect_Open; + giftEffect.titleColor = [DJDKMIMOMColor chamberFurthaerParrotEssayPrettify]; + + YUMIChamberFurthaerProvisionMatrix * wishGift = [[YUMIChamberFurthaerProvisionMatrix alloc] init]; + wishGift.title = YMLocalizedString(@"YUMI_More_Menu_Presenter_6"); + wishGift.imageName = @"room_more_menu_wish_gift"; + wishGift.type = ChamberMoreParrotGenre_Room_Wish_Gift; + wishGift.titleColor = [DJDKMIMOMColor chamberFurthaerParrotEssayPrettify]; + + YUMIChamberFurthaerProvisionMatrix * dating = [[YUMIChamberFurthaerProvisionMatrix alloc] init]; + dating.title = roomInfo.roomModeType == ChamberModeGenre_Open_Blind ? @"相亲中.." : YMLocalizedString(@"YUMI_More_Menu_Presenter_8"); + dating.imageName = @"room_more_menu_dating"; + dating.type = roomInfo.roomModeType == ChamberModeGenre_Open_Blind ? ChamberMoreParrotGenre_Room_Dating_Close : ChamberMoreParrotGenre_Room_Dating_Open; + dating.titleColor = [DJDKMIMOMColor chamberFurthaerParrotEssayPrettify]; + + YUMIChamberFurthaerProvisionMatrix * acrossRoomPK = [[YUMIChamberFurthaerProvisionMatrix alloc] init]; + acrossRoomPK.title = roomInfo.roomModeType == ChamberModeGenre_Open_AcrossRoomPK_mode ? @"跨房PK中" : @"跨房PK"; + acrossRoomPK.imageName = @"room_more_menu_cross_pk"; + acrossRoomPK.type = roomInfo.roomModeType == ChamberModeGenre_Open_AcrossRoomPK_mode ? ChamberMoreParrotGenre_Room_Across_PK_Close : ChamberMoreParrotGenre_Room_Across_PK_Open; + acrossRoomPK.titleColor = [DJDKMIMOMColor chamberFurthaerParrotEssayPrettify]; + + YUMIChamberFurthaerProvisionMatrix * anchorRoomPK = [[YUMIChamberFurthaerProvisionMatrix alloc] init]; + anchorRoomPK.title = roomInfo.roomModeType == ChamberModeGenre_Open_AcrossRoomPK_mode ? @"主播PK中" : @"主播PK"; + anchorRoomPK.imageName = @"room_more_menu_anchor_pk"; + anchorRoomPK.type = roomInfo.roomModeType == ChamberModeGenre_Open_AcrossRoomPK_mode ? ChamberMoreParrotGenre_Room_Anchor_PK_Close : ChamberMoreParrotGenre_Room_Anchor_PK_Open; + anchorRoomPK.titleColor = [DJDKMIMOMColor chamberFurthaerParrotEssayPrettify]; + if (roomInfo.pkState == ThroughoutChamberPkDeclareGenrePenalty) { + if ([roomInfo.winUid isEqualToString:[AccountAbstractStorage instance].acquireCid]) { + anchorRoomPK.title = @"结束PK"; + } else if ([roomInfo.winUid isEqualToString:roomInfo.pkUid]) { + anchorRoomPK.title = YMLocalizedString(@"YUMI_More_Menu_Presenter_14"); + } else { + anchorRoomPK.title = @"结束PK"; + } + } else if (roomInfo.pkState == ThroughoutChamberPkDeclareGenrePenaltyEnd) { + anchorRoomPK.title = @"结束PK"; + } + if (roomInfo.pkMatchStartTime) { + anchorRoomPK.title = YMLocalizedString(@"YUMI_More_Menu_Presenter_17"); + } + YUMIChamberFurthaerProvisionMatrix * messageScreen = [[YUMIChamberFurthaerProvisionMatrix alloc] init]; + messageScreen.title = roomInfo.isCloseScreen ? @"开启公屏" : YMLocalizedString(@"YUMI_More_Menu_Presenter_19"); + messageScreen.imageName = @"room_more_menu_message"; + messageScreen.type = roomInfo.isCloseScreen ? ChamberMoreParrotGenre_Message_Screen_Open : ChamberMoreParrotGenre_Message_Screen_Close; + messageScreen.titleColor = [DJDKMIMOMColor chamberFurthaerParrotEssayPrettify]; + + YUMIChamberFurthaerProvisionMatrix * clearScreen = [[YUMIChamberFurthaerProvisionMatrix alloc] init]; + clearScreen.title = YMLocalizedString(@"YUMI_More_Menu_Presenter_20"); + clearScreen.imageName = @"room_more_menu_message_clean"; + clearScreen.type = ChamberMoreParrotGenre_Message_Screen_Clear; + clearScreen.titleColor = [DJDKMIMOMColor chamberFurthaerParrotEssayPrettify]; + + YUMIChamberFurthaerProvisionMatrix * roomSetting = [[YUMIChamberFurthaerProvisionMatrix alloc] init]; + roomSetting.title = YMLocalizedString(@"YUMI_More_Menu_Presenter_21"); + roomSetting.imageName = @"room_more_menu_setting"; + roomSetting.type = ChamberMoreParrotGenre_Room_Setting; + roomSetting.titleColor = [DJDKMIMOMColor chamberFurthaerParrotEssayPrettify]; + + YUMIChamberFurthaerProvisionMatrix * inviteFriend = [[YUMIChamberFurthaerProvisionMatrix alloc] init]; + inviteFriend.title = YMLocalizedString(@"YUMI_More_Menu_Presenter_22"); + inviteFriend.imageName = @"room_more_menu_invite_friend"; + inviteFriend.type = ChamberMoreParrotGenre_Invite_Fans; + inviteFriend.titleColor = [DJDKMIMOMColor chamberFurthaerParrotEssayPrettify]; + + YUMIChamberFurthaerProvisionMatrix * releaseRadio = [[YUMIChamberFurthaerProvisionMatrix alloc] init]; + releaseRadio.title = YMLocalizedString(@"YUMI_More_Menu_Presenter_23"); + releaseRadio.imageName = @"room_more_menu_release_radio"; + releaseRadio.type = ChamberMoreParrotGenre_Release_Radio; + releaseRadio.titleColor = [DJDKMIMOMColor chamberFurthaerParrotEssayPrettify]; + + + YUMIChamberFurthaerProvisionMatrix * redPacket = [[YUMIChamberFurthaerProvisionMatrix alloc] init]; + redPacket.title = YMLocalizedString(@"YUMI_More_Menu_Presenter_24"); + redPacket.imageName = @"redPacket_entrance"; + redPacket.type = ChamberMoreParrotGenre_Room_redPacket; + redPacket.titleColor = [DJDKMIMOMColor chamberFurthaerParrotEssayPrettify]; + + YUMIChamberFurthaerProvisionMatrix * voice = [[YUMIChamberFurthaerProvisionMatrix alloc] init]; + voice.title = YMLocalizedString(@"YUMI_More_Menu_Presenter_25"); + voice.imageName = [RealtimackExecutive instance].isRemoteDelicate ? @"room_more_voice_close" : @"room_more_voice_open"; + voice.type = ChamberMoreParrotGenre_Room_Voice; + voice.titleColor = [DJDKMIMOMColor chamberFurthaerParrotEssayPrettify]; + voice.isSelected = [RealtimackExecutive instance].isRemoteDelicate; + + NSString * uid = [AccountAbstractStorage instance].acquireCid; + if (uid.length <= 0) { + return; + } + NSString * roomId = [NSString stringWithFormat:@"%ld", roomInfo.roomId]; + NIMChatroomMembersByIdsRequest *request = [[NIMChatroomMembersByIdsRequest alloc]init]; + request.roomId = roomId; + request.userIds = @[uid]; + [[NIMSDK sharedSDK].chatroomManager fetchChatroomMembersByIds:request completion:^(NSError * _Nullable error, NSArray * _Nullable members) { + NSMutableArray * array = [NSMutableArray array]; + if (error == nil) { + NIMChatroomMember * member = members.firstObject; + BOOL isCreator = member.type == NIMChatroomMemberTypeCreator; + BOOL isManager = member.type == NIMChatroomMemberTypeManager; + if ((isCreator || isManager || isSuperAdmin) && roomInfo.type != ChamberGenre_MiniGame && roomInfo.type != ChamberGenre_Anchor) { + [array addObject:roomPK]; + } + + if (isCreator && roomInfo.isPermitRoom == PermitChamberGenre_Licnese && roomInfo.type != ChamberGenre_MiniGame) { + [array addObject:acrossRoomPK]; + } + + if (isCreator && roomInfo.type == ChamberGenre_Anchor) { + [array addObject:anchorRoomPK]; + + } + + if ((isCreator || isManager || isSuperAdmin) && roomInfo.hasWishGiftPermit) { + [array addObject:wishGift]; + } + + + if (isCreator || isManager || isSuperAdmin) { + if (roomInfo.canOpenBlindDate && roomInfo.type != ChamberGenre_Anchor && roomInfo.type != ChamberGenre_MiniGame) { + [array insertObject:dating atIndex:0]; + } + [array addObject:inviteFriend]; + if (isCreator && roomInfo.type != ChamberGenre_Anchor && roomInfo.isPermitRoom != PermitChamberGenre_Licnese && roomInfo.isPermitRoom != PermitChamberGenre_YoungerStar) { + [array addObject:releaseRadio]; + } + [array addObject:giftEffect]; + [array addObject:roomSetting]; + [array addObject:messageScreen]; + [array addObject:clearScreen]; + [array addObject:giftValue]; + } else { + [array addObject:giftEffect]; + } + if ([ClientDisposition partowardsiciptowardsionDisposition].dispositionAbstract.redEnvelopeConfig.open && roomInfo.redEnvelopeOpen) { + [array addObject:redPacket]; + } + } else { + [array addObject:giftEffect]; + } + [array addObject:voice]; + + if (![ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + [array removeAllObjects]; + [array addObject:clearScreen]; + [array addObject:roomSetting]; + [array addObject:voice]; + } + + [[self acquireRegard] acquireFurthaerParrotTowardsoloudspeakerAccomplishment:array]; + }]; +} + +- (void)unfoildChamberPresentBWSttess:(NSString *)roomUid { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [Api unfoildChamberPresentBWSttess:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] unfoildChamberPresentBWSttessAccomplishment]; + }] uid:uid roomUid:roomUid]; +} + +- (void)concludeChamberPresentBWSttess:(NSString *)roomUid { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [Api concludeChamberPresentBWSttess:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] concludeChamberPresentBWSttessAccomplishment]; + }] uid:uid roomUid:roomUid]; +} + + +- (void)refurbishChamberCommunictowardsioncreenDeclare:(BOOL)isCloseScreen roomId:(NSString *)roomId { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NSString * ticket = [AccountAbstractStorage instance].acquireTicket; + NSString * isCleScreenStr = isCloseScreen ? @"1" : @"0"; + [Api refurbishChamberAbstractCommunictowardsionDeclare:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + ChamberAbstractMatrix * roomInfo = [ChamberAbstractMatrix mtowardsrixAboutImpactbasket:data.data]; + [[self acquireRegard] refurbishChamberCommunictowardsioncreenDeclareAccomplishment:roomInfo]; + }] roomId:roomId isCloseScreen:isCleScreenStr ticket:ticket uid:uid]; +} + +- (void)unfoildChamberEngagement:(NSString *)roomUid { + [Api unfoildChamberEngagement:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] unfoildChamberEngagementAccomplishment]; + }] roomUid:roomUid]; +} + +- (void)concludeChamberEngagement:(NSString *)roomUid { + [Api concludeChamberEngagement:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] concludeChamberEngagementAccomplishment]; + }] roomUid:roomUid]; +} + +- (void)acquireChamberWirelessCommunictowardsionSttowardsementAboutGenre:(NSString *)type { + [Api chamberWirelessAcquireMsg:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + YUMIReleaseWirelessMatrix * model = [YUMIReleaseWirelessMatrix mtowardsrixAboutJSON:data.data]; + [[self acquireRegard] acquireReleaseWirelessAccomplishment:model]; + }] roomType:type]; +} + +- (void)requisitionAccomplishKellegCombat:(NSString *)roundId { + [Api requisitionConcludeKellegChamberCombate:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + [[self acquireRegard] concludeKellegCombateAccomplishment:code == 200 msg:msg]; + } roundId:roundId]; +} + +- (void)sanitarycreen:(NSString *)roomUid uid:(NSString *)uid { + [Api requisitionCleancreen:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] sanitarycreenAccomplishment]; + }] roomUid:roomUid uid:uid]; +} + +- (void)requisitionRevoctowardsionDirectoryapttowardsionArbitraryCombat:(NSString *)roomUid { + [Api revoctowardsionDirectoryapttowardsionArbitraryCombat:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] revoctowardsionDirectoryapttowardsionArbitraryCombatAccomplishment]; + }] roomUid:roomUid]; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/MoreView/Protocol/FBCFurthaerMenuCeremony.h b/YuMi/Modules/YMRoom/View/MoreView/Protocol/FBCFurthaerMenuCeremony.h new file mode 100644 index 00000000..9aa8b190 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/MoreView/Protocol/FBCFurthaerMenuCeremony.h @@ -0,0 +1,30 @@ +// +// YMMoreMenuProtocol.h +// YUMI +// +// Created by YUMI on 2021/12/11. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class YUMIChamberFurthaerProvisionMatrix, ChamberAbstractMatrix, YUMIReleaseWirelessMatrix, XPNobleTrumpetModel; +@protocol FBCFurthaerMenuCeremony + +- (void)acquireFurthaerParrotTowardsoloudspeakerAccomplishment:(NSArray *)list; +- (void)unfoildChamberPresentBWSttessAccomplishment; +- (void)concludeChamberPresentBWSttessAccomplishment; +- (void)refurbishChamberCommunictowardsioncreenDeclareAccomplishment:(ChamberAbstractMatrix * )roomInfo; +- (void)unfoildChamberEngagementAccomplishment; +- (void)concludeChamberEngagementAccomplishment; +- (void)acquireReleaseWirelessAccomplishment:(YUMIReleaseWirelessMatrix *)model; +- (void)acquireLoudspeakerAccomplishment:(XPNobleTrumpetModel *)model; +- (void)concludeKellegCombateAccomplishment:(BOOL)success msg:(NSString *)msg; +- (void)sanitarycreenAccomplishment; + +- (void)revoctowardsionDirectoryapttowardsionArbitraryCombatAccomplishment; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/MoreView/View/Cell/YUMIChamberFurthaerParrotAssembletionRegardElement.h b/YuMi/Modules/YMRoom/View/MoreView/View/Cell/YUMIChamberFurthaerParrotAssembletionRegardElement.h new file mode 100644 index 00000000..b7b0bbea --- /dev/null +++ b/YuMi/Modules/YMRoom/View/MoreView/View/Cell/YUMIChamberFurthaerParrotAssembletionRegardElement.h @@ -0,0 +1,17 @@ +// +// YMRoomMoreMenuTableViewCell.h +// YUMI +// +// Created by YUMI on 2021/12/11. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class YUMIChamberFurthaerProvisionMatrix; +@interface YUMIChamberFurthaerParrotAssembletionRegardElement : UICollectionViewCell + +@property (nonatomic,strong) YUMIChamberFurthaerProvisionMatrix *itemMatrix; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/MoreView/View/Cell/YUMIChamberFurthaerParrotAssembletionRegardElement.m b/YuMi/Modules/YMRoom/View/MoreView/View/Cell/YUMIChamberFurthaerParrotAssembletionRegardElement.m new file mode 100644 index 00000000..6a12bb00 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/MoreView/View/Cell/YUMIChamberFurthaerParrotAssembletionRegardElement.m @@ -0,0 +1,75 @@ +// +// YMRoomMoreMenuTableViewCell.m +// YUMI +// +// Created by YUMI on 2021/12/11. +// + +#import "YUMIChamberFurthaerParrotAssembletionRegardElement.h" +#import +#import "ThemeColor+Room.h" +#import "YUMIChamberFurthaerProvisionMatrix.h" +@interface YUMIChamberFurthaerParrotAssembletionRegardElement () +@property (nonatomic,strong) UIImageView *brandIndicateRegard; +@property (nonatomic,strong) UILabel *titleLabel; + +@end + +@implementation YUMIChamberFurthaerParrotAssembletionRegardElement + +- (instancetype)initWithFrame:(CGRect)frame +{ + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} +#pragma mark - Private Method +- (void)initSubViews { + [self.contentView addSubview:self.brandIndicateRegard]; + [self.contentView addSubview:self.titleLabel]; +} + +- (void)initChildLyRestrictions { + [self.brandIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(30, 30)); + make.top.centerX.mas_equalTo(self.contentView); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.contentView); + make.top.mas_equalTo(self.brandIndicateRegard.mas_bottom).offset(4); + }]; +} + +#pragma mark - Getters And Setters +- (void)setItemMatrix:(YUMIChamberFurthaerProvisionMatrix *)itemMatrix { + _itemMatrix = itemMatrix; + if (_itemMatrix) { + self.brandIndicateRegard.image = [UIImage imageNamed:_itemMatrix.imageName]; + self.titleLabel.text = _itemMatrix.title; + self.titleLabel.textColor = _itemMatrix.titleColor ? _itemMatrix.titleColor : [DJDKMIMOMColor mainEssayPrettify]; + } +} + +- (UIImageView *)brandIndicateRegard { + if (!_brandIndicateRegard) { + _brandIndicateRegard = [[UIImageView alloc] init]; + _brandIndicateRegard.userInteractionEnabled = YES; + } + return _brandIndicateRegard; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.textAlignment = NSTextAlignmentCenter; + _titleLabel.font = [UIFont systemFontOfSize:10]; + _titleLabel.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _titleLabel; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/MoreView/View/YUMIChamberCallforFanaticsRegard.h b/YuMi/Modules/YMRoom/View/MoreView/View/YUMIChamberCallforFanaticsRegard.h new file mode 100644 index 00000000..b625ba10 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/MoreView/View/YUMIChamberCallforFanaticsRegard.h @@ -0,0 +1,18 @@ +// +// YMRoomInviteFriendView.h +// YUMI +// +// Created by YUMI on 2021/12/27. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIChamberCallforFanaticsRegard : UIView + +- (instancetype)initAboutChamberCid:(NSString *)roomUid; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/MoreView/View/YUMIChamberCallforFanaticsRegard.m b/YuMi/Modules/YMRoom/View/MoreView/View/YUMIChamberCallforFanaticsRegard.m new file mode 100644 index 00000000..8cddb492 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/MoreView/View/YUMIChamberCallforFanaticsRegard.m @@ -0,0 +1,291 @@ +// +// YMRoomInviteFriendView.m +// YUMI +// +// Created by YUMI on 2021/12/27. +// + +#import "YUMIChamberCallforFanaticsRegard.h" +#import +#import "ThemeColor+Room.h" +#import "UIImage+Utils.h" +#import "Api+MoreMenu.h" +#import "XNDJTBWGLoadingTool.h" +#import "YUMIMacroUitls.h" +#import "CallforFanaticsMatrix.h" + +@interface YUMIChamberCallforAssistantChampionRegard : UIView +@property (nonatomic,strong) UIView * circleRegard; +@property (nonatomic,strong) UILabel *titleLabel; +@end + +@implementation YUMIChamberCallforAssistantChampionRegard + +- (instancetype)initWithFrame:(CGRect)frame +{ + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.circleRegard]; + [self addSubview:self.titleLabel]; +} + +- (void)initChildLyRestrictions { + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self.titleLabel.mas_right); + }]; + + [self.circleRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(4, 4)); + make.centerY.left.mas_equalTo(self); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.circleRegard.mas_right).offset(8); + make.centerY.mas_equalTo(self); + }]; +} + +#pragma mark - Getters And Setters +- (UIView *)circleRegard { + if (!_circleRegard) { + _circleRegard = [[UIView alloc] init]; + _circleRegard.backgroundColor = UIColorFromRGB(0xCAC2FF); + _circleRegard.layer.masksToBounds = YES; + _circleRegard.layer.cornerRadius = 2; + } + return _circleRegard; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.font = [UIFont systemFontOfSize:13]; + _titleLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + } + return _titleLabel; +} + +@end + + +@interface YUMIChamberCallforFanaticsRegard () +@property (nonatomic,strong) UILabel *titleLabel; +@property (nonatomic,strong) YUMIChamberCallforAssistantChampionRegard *thresholdRegard; +@property (nonatomic,strong) YUMIChamberCallforAssistantChampionRegard *instantRegard; +@property (nonatomic,strong) YUMIChamberCallforAssistantChampionRegard *tertiusRegard; +@property (nonatomic,strong) UIButton *centiretyforBtuton; +@property (nonatomic,strong) UILabel *residueSequencignation; +@property (nonatomic,copy) NSString *roomUid; +@property (nonatomic,strong) CallforFanaticsMatrix *fanaticsAbstractMatrix; +@property (nonatomic,strong) dispatch_source_t timer; +@end + +@implementation YUMIChamberCallforFanaticsRegard + + +- (instancetype)initAboutChamberCid:(NSString *)roomUid { + self = [super init]; + if (self) { + self.roomUid = roomUid; + [self acquireCentiretyforFantowardsicsDeclare]; + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.titleLabel]; + [self addSubview:self.thresholdRegard]; + [self addSubview:self.instantRegard]; + [self addSubview:self.tertiusRegard]; + [self addSubview:self.centiretyforBtuton]; + [self addSubview:self.residueSequencignation]; + + self.backgroundColor = [UIColor whiteColor]; + CAShapeLayer * layer = [CAShapeLayer layer]; + layer.path = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, KScreenWidth, 273) byRoundingCorners:UIRectCornerTopLeft | UIRectCornerTopRight cornerRadii:CGSizeMake(15, 15)].CGPath; + self.layer.mask = layer; +} + +- (void)initChildLyRestrictions { + self.frame = CGRectMake(0, 0, KScreenWidth, 273); + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(20); + make.right.left.mas_equalTo(self); + }]; + + [self.thresholdRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(16); + make.left.mas_equalTo(self).offset(30); + make.top.mas_equalTo(self.titleLabel.mas_bottom).offset(23); + }]; + + [self.instantRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.left.mas_equalTo(self.thresholdRegard); + make.top.mas_equalTo(self.thresholdRegard.mas_bottom).offset(15); + }]; + + [self.tertiusRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.left.mas_equalTo(self.thresholdRegard); + make.top.mas_equalTo(self.instantRegard.mas_bottom).offset(15); + }]; + + [self.centiretyforBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(160, 38)); + make.centerX.mas_equalTo(self); + make.top.mas_equalTo(self.tertiusRegard.mas_bottom).offset(40); + }]; + + [self.residueSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.left.mas_equalTo(self); + make.top.mas_equalTo(self.centiretyforBtuton.mas_bottom).offset(16); + }]; +} + +- (void)acquireCentiretyforFantowardsicsDeclare { + [Api examineCentiretyforChamberFantowardsics:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + CallforFanaticsMatrix * model = [CallforFanaticsMatrix mtowardsrixAboutImpactbasket:data.data]; + self.fanaticsAbstractMatrix = model; + [self prohibitipositionFantowardsicsRegard:model]; + [self unfoildDeficitucedPubescenceIntrtowardsemper]; + } else { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:msg]; + } + } roomUid:self.roomUid]; +} + +- (void)prohibitipositionFantowardsicsRegard:(CallforFanaticsMatrix *)model { + NSString * residueTitle = [NSString stringWithFormat:YMLocalizedString(@"YUMI_Room_Invite_Fans_View_0"), model.inviteTimes]; + NSMutableAttributedString * residueAttribute = [[NSMutableAttributedString alloc] initWithString:residueTitle attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:13], NSForegroundColorAttributeName:[DJDKMIMOMColor instantEssayPrettify]}]; + NSRange range = [residueTitle rangeOfString:[NSString stringWithFormat:@"%d", model.inviteTimes]]; + [residueAttribute addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:18] range:range]; + [residueAttribute addAttribute:NSForegroundColorAttributeName value:[DJDKMIMOMColor aplictowardsionUnderlinePrettify] range:range]; + self.residueSequencignation.attributedText = residueAttribute; + self.residueSequencignation.textAlignment = NSTextAlignmentCenter; + + self.centiretyforBtuton.enabled = model.inviteInterval <= 0; + if (model.inviteTimes <= 0) { + [self.centiretyforBtuton setTitle:YMLocalizedString(@"YUMI_Room_Invite_Fans_View_1") forState:UIControlStateDisabled]; + self.centiretyforBtuton.enabled = NO; + } + + NSString * fansNumberTitle = [NSString stringWithFormat:YMLocalizedString(@"YUMI_Room_Invite_Fans_View_2"), model.fansNum]; + NSMutableAttributedString * fansAttribute = [[NSMutableAttributedString alloc] initWithString:fansNumberTitle attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:13], NSForegroundColorAttributeName:[DJDKMIMOMColor instantEssayPrettify]}]; + NSRange fansRange = [fansNumberTitle rangeOfString:[NSString stringWithFormat:@"%ld", model.fansNum]]; + [fansAttribute addAttribute:NSForegroundColorAttributeName value:[DJDKMIMOMColor aplictowardsionUnderlinePrettify] range:fansRange]; + self.thresholdRegard.titleLabel.attributedText = fansAttribute; +} + +- (void)unfoildDeficitucedPubescenceIntrtowardsemper { + dispatch_source_t _timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, dispatch_get_global_queue(0, 0)); + dispatch_source_set_timer(_timer, DISPATCH_TIME_NOW, 1 * NSEC_PER_SEC, 0 * NSEC_PER_SEC); + dispatch_source_set_event_handler(_timer, ^{ + dispatch_async(dispatch_get_main_queue(), ^{ + self.fanaticsAbstractMatrix.inviteInterval --; + if (self.fanaticsAbstractMatrix.inviteInterval <= 0) { + dispatch_source_cancel(_timer); + self.timer = nil; + [self.centiretyforBtuton setTitle:YMLocalizedString(@"YUMI_Room_Invite_Fans_View_3") forState:UIControlStateNormal]; + self.centiretyforBtuton.enabled = YES; + } else { + int seconds = self.fanaticsAbstractMatrix.inviteInterval % 60; + int minutes = (self.fanaticsAbstractMatrix.inviteInterval / 60) % 60; + NSString * title = [NSString stringWithFormat:YMLocalizedString(@"YUMI_Room_Invite_Fans_View_4"),minutes, seconds]; + [self.centiretyforBtuton setTitle:title forState:UIControlStateDisabled]; + } + }); + }); + self.timer = _timer; + dispatch_resume(_timer); +} + +#pragma mark - Event Response +- (void)centiretyforBtutonPerformance:(UIButton *)sender { + sender.enabled = NO; + [Api centiretyforChamberFantowardsics:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + CallforFanaticsMatrix * model = [CallforFanaticsMatrix mtowardsrixAboutImpactbasket:data.data]; + self.fanaticsAbstractMatrix = model; + [self prohibitipositionFantowardsicsRegard:model]; + [self unfoildDeficitucedPubescenceIntrtowardsemper]; + } else { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:msg]; + sender.enabled = YES; + } + } roomUid:self.roomUid]; +} + +#pragma mark - Getters And Setters +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.text = YMLocalizedString(@"YUMI_Room_Invite_Fans_View_5"); + _titleLabel.font = [UIFont boldSystemFontOfSize:16]; + _titleLabel.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _titleLabel.textAlignment = NSTextAlignmentCenter; + } + return _titleLabel; +} + +- (YUMIChamberCallforAssistantChampionRegard *)thresholdRegard { + if (!_thresholdRegard) { + _thresholdRegard = [[YUMIChamberCallforAssistantChampionRegard alloc] init]; + } + return _thresholdRegard; +} + +- (YUMIChamberCallforAssistantChampionRegard *)instantRegard { + if (!_instantRegard) { + _instantRegard = [[YUMIChamberCallforAssistantChampionRegard alloc] init]; + _instantRegard.titleLabel.text= YMLocalizedString(@"YUMI_Room_Invite_Fans_View_6"); + } + return _instantRegard; +} + +- (YUMIChamberCallforAssistantChampionRegard *)tertiusRegard { + if (!_tertiusRegard) { + _tertiusRegard = [[YUMIChamberCallforAssistantChampionRegard alloc] init]; + _tertiusRegard.titleLabel.text = YMLocalizedString(@"YUMI_Room_Invite_Fans_View_7"); + } + return _tertiusRegard; +} + + +- (UIButton *)centiretyforBtuton { + if (!_centiretyforBtuton) { + _centiretyforBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_centiretyforBtuton setTitle:YMLocalizedString(@"YUMI_Room_Invite_Fans_View_8") forState:UIControlStateNormal]; + [_centiretyforBtuton setTitleColor:[DJDKMIMOMColor acknowledgementBtutonEssayPrettify] forState:UIControlStateNormal]; + [_centiretyforBtuton setTitleColor:[DJDKMIMOMColor prohibitionBtutonEssayPrettify] forState:UIControlStateDisabled]; + _centiretyforBtuton.titleLabel.font = [UIFont systemFontOfSize:15]; + [_centiretyforBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify],[DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify] ] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + [_centiretyforBtuton setBackgroundImage:[UIImage imageWithColor:[DJDKMIMOMColor prohibitionBtutonPrettify]] forState:UIControlStateDisabled]; + _centiretyforBtuton.layer.masksToBounds = YES; + _centiretyforBtuton.layer.cornerRadius = 38 / 2; + [_centiretyforBtuton addTarget:self action:@selector(centiretyforBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _centiretyforBtuton; +} + +- (UILabel *)residueSequencignation { + if (!_residueSequencignation) { + _residueSequencignation = [[UILabel alloc] init]; + } + return _residueSequencignation; +} + + + +@end diff --git a/YuMi/Modules/YMRoom/View/MoreView/View/YUMIChamberFurthaerParrotRegardGovernancer.h b/YuMi/Modules/YMRoom/View/MoreView/View/YUMIChamberFurthaerParrotRegardGovernancer.h new file mode 100644 index 00000000..51e44baa --- /dev/null +++ b/YuMi/Modules/YMRoom/View/MoreView/View/YUMIChamberFurthaerParrotRegardGovernancer.h @@ -0,0 +1,16 @@ +// +// YMRoomMoreMenuViewController.h +// YUMI +// +// Created by YUMI on 2021/12/11. +// + +#import "MvpRegardGovernancer.h" +#import "ChamberHostRepresendtation.h" +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIChamberFurthaerParrotRegardGovernancer : MvpRegardGovernancer +- (instancetype)initWithDelegate:(id)delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/MoreView/View/YUMIChamberFurthaerParrotRegardGovernancer.m b/YuMi/Modules/YMRoom/View/MoreView/View/YUMIChamberFurthaerParrotRegardGovernancer.m new file mode 100644 index 00000000..377ec843 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/MoreView/View/YUMIChamberFurthaerParrotRegardGovernancer.m @@ -0,0 +1,527 @@ +// +// YMRoomMoreMenuViewController.m +// YUMI +// +// Created by YUMI on 2021/12/11. +// + +#import "YUMIChamberFurthaerParrotRegardGovernancer.h" +#import +#import "YUMIMacroUitls.h" +#import "MKJPopup.h" +#import "YUMIConstant.h" +#import "AccountAbstractStorage.h" +#import "DJDKMIMOMColor.h" +#import "RealtimackExecutive.h" +#import "StatsticsticsServingFacilitater.h" +#import "YUMIChamberFurthaerProvisionMatrix.h" +#import "ChamberAbstractMatrix.h" +#import "AttachmentMatrix.h" +#import "UnionSensationalManagementAbstractMatrix.h" +#import "AccountAbstractStorage.h" +#import "NSArray+Safe.h" +#import "YUMIChamberFurthaerParrotAssembletionRegardElement.h" +#import "YUMIChamberCallforFanaticsRegard.h" +#import "YUMIThroughoutChamberCombatRegardGovernancer.h" +#import "XCombatellegCombatRegardGovernancer.h" +#import "YUMIChamberInstanllingRegardGovernancer.h" +#import "YUMIReleaseWirelessRegardGovernancer.h" +#import "YUMIChamberCombatRegardGovernancer.h" +#import "YUMIChamberDischargeDeficitSheatheRegardGovernancer.h" +#import "BaseNevigationGovernancer.h" +#import "YUMIDesirePresentCreateRegardGovernancer.h" +#import "XCombatellegCombatChosenGenreGovernancer.h" +#import "YUMIFurthaerParrotExternalizer.h" +#import "FBCFurthaerMenuCeremony.h" + +UIKIT_EXTERN NSString * const kRoomGiftEffectUpdateNotificationKey; + +@interface YUMIChamberFurthaerParrotRegardGovernancer () +@property (nonatomic,strong) UIView * apexRegard; +@property (nonatomic, strong) UIVisualEffectView *impressionRegard; +@property (nonatomic,strong) UICollectionView *collectionView; +@property (nonatomic,strong) UIView * bottomView; +@property (nonatomic,strong) NSArray *datasource; +@property (nonatomic,strong) ChamberAbstractMatrix *roomInfo; + +@property (nonatomic,assign) id hostRepresedtation; +@end + +@implementation YUMIChamberFurthaerParrotRegardGovernancer + +- (instancetype)initWithDelegate:(id)delegate{ + if (self = [super init]) { + self.modalPresentationStyle = UIModalPresentationOverFullScreen; + self.roomInfo = delegate.acquireChamberAbstract; + self.hostRepresedtation = delegate; + } + return self; +} + +- (YUMIFurthaerParrotExternalizer *)producePresimport { + return [[YUMIFurthaerParrotExternalizer alloc] init]; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initSubViews]; + [self initChildLyRestrictions]; + + BOOL meIsSensationalManagement = NO; + for (UnionSensationalManagementAbstractMatrix *executiveAbstract in self.hostRepresedtation.acquireChamberSenstowardsionalManagementSttowardsement) { + if ([executiveAbstract.uid isEqualToString:[AccountAbstractStorage instance].acquireCid]) { + meIsSensationalManagement = YES; + break; + } + } + [self.presimport acquireFurthaerParrotTowardsoloudspeakerProvenience:self.roomInfo isSuperAdmin:meIsSensationalManagement]; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.modalPresentationStyle = UIModalPresentationOverFullScreen; + self.view.backgroundColor = [UIColor clearColor]; + [self.view addSubview:self.apexRegard]; + [self.view addSubview:self.impressionRegard]; + [self.view addSubview:self.collectionView]; + [self.view addSubview:self.bottomView]; +} + +- (void)initChildLyRestrictions { + [self.apexRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self.view); + make.bottom.mas_equalTo(self.collectionView.mas_top); + }]; + + [self.impressionRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(0); + make.top.mas_equalTo(self.collectionView); + make.bottom.mas_equalTo(self.bottomView); + }]; + [self.collectionView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.view); + make.height.mas_equalTo(0); + make.bottom.mas_equalTo(self.bottomView.mas_top); + }]; + + [self.bottomView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.mas_equalTo(self.view); + make.height.mas_equalTo(kSafeAreaBottomHeight); + }]; +} + +#pragma mark - FBCFurthaerMenuCeremony +- (void)acquireFurthaerParrotTowardsoloudspeakerAccomplishment:(NSArray *)list { + self.datasource = list; + [self.collectionView reloadData]; + CGFloat contentHeight= 24 + 36; + CGFloat itemAltitude = 50; + int page = list.count % 5; + int scale = (int)list.count / (int)5; + if (page == 0) { + contentHeight += (scale *itemAltitude); + } else { + contentHeight += ((scale+1) *itemAltitude + scale * 12); + } + CAShapeLayer * layer = [CAShapeLayer layer]; + UIBezierPath * path = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, KScreenWidth, contentHeight) byRoundingCorners:UIRectCornerTopLeft | UIRectCornerTopRight cornerRadii:CGSizeMake(8, 8)]; + layer.path = path.CGPath; + self.collectionView.layer.mask = layer; + [self.collectionView mas_updateConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(contentHeight); + }]; +} + +- (void)unfoildChamberPresentBWSttessAccomplishment { + [self EvidenceAccomplishmentToast:YMLocalizedString(@"YUMI_Room_More_Menu_View_Controller_0")]; + [self dismissViewControllerAnimated:YES completion:nil]; +} + +- (void)concludeChamberPresentBWSttessAccomplishment { + [self EvidenceAccomplishmentToast:YMLocalizedString(@"YUMI_Room_More_Menu_View_Controller_1")]; + [self dismissViewControllerAnimated:YES completion:nil]; +} + +- (void)refurbishChamberCommunictowardsioncreenDeclareAccomplishment:(ChamberAbstractMatrix *)roomInfo { + AttachmentMatrix *attachement = [[AttachmentMatrix alloc]init]; + attachement.first = IndividualityCommunicationGenre_Update_RoomInfo; + attachement.second = Custom_Message_Sub_Update_RoomInfo_MessageState; + attachement.data = @{@"roomInfo":roomInfo.mtowardsrix2dictionary}; + NIMMessage *message = [[NIMMessage alloc]init]; + NIMCustomObject *object = [[NIMCustomObject alloc] init]; + object.attachment = attachement; + message.messageObject = object; + + NSString * roomId = [NSString stringWithFormat:@"%ld", roomInfo.roomId]; + NIMSession *session = [NIMSession session:roomId type:NIMSessionTypeChatroom]; + [[NIMSDK sharedSDK].chatManager sendMessage:message toSession:session error:nil]; + [self dismissViewControllerAnimated:YES completion:nil]; +} + +- (void)sanitarycreenAccomplishment { + [self dismissViewControllerAnimated:YES completion:nil]; +} + +- (void)unfoildChamberEngagementAccomplishment { + [self dismissViewControllerAnimated:YES completion:nil]; +} + +- (void)concludeChamberEngagementAccomplishment { + [self dismissViewControllerAnimated:YES completion:nil]; +} + +- (void)acquireReleaseWirelessAccomplishment:(YUMIReleaseWirelessMatrix *)model { + [self dismissViewControllerAnimated:YES completion:nil]; + YUMIReleaseWirelessRegardGovernancer * releaseRadioVC = [[YUMIReleaseWirelessRegardGovernancer alloc] initWithDelegate:self.hostRepresedtation]; + releaseRadioVC.model = model; + releaseRadioVC.modalPresentationStyle = UIModalPresentationOverFullScreen; + [self.hostRepresedtation.acquireUniversalNev presentViewController:releaseRadioVC animated:YES completion:nil]; +} +- (void)acquireLoudspeakerAccomplishment:(XPNobleTrumpetModel *)model { + [self dismissViewControllerAnimated:YES completion:nil]; +} + +- (void)concludeKellegCombateAccomplishment:(BOOL)success msg:(NSString *)msg { + if (!success) { + MKJPrecautiousDisposition *config = [[MKJPrecautiousDisposition alloc] init]; + config.message = msg; + config.performanceStyle = TTAlertActionConfirmStyle; + [MKJPopup precautiousAboutDisposition:config acknowledgementHandler:^{ + } cancelHandler:^{ + }]; + } else { + [self dismissViewControllerAnimated:YES completion:nil]; + } +} + +- (void)revoctowardsionDirectoryapttowardsionArbitraryCombatAccomplishment { + self.hostRepresedtation.acquireChamberAbstract.pkMatchStartTime = nil; + [[NSNotificationCenter defaultCenter] postNotificationName:@"cancelMatchRandomPK" object:nil]; + [self dismissViewControllerAnimated:YES completion:nil]; + NSString * roomUid = [NSString stringWithFormat:@"%ld", self.roomInfo.uid]; + XCombatellegCombatChosenGenreGovernancer *selectVc = [[XCombatellegCombatChosenGenreGovernancer alloc] initAboutChamberCid:roomUid]; + [self.hostRepresedtation.acquireUniversalNev presentViewController:selectVc animated:YES completion:nil]; +} + +#pragma mark - UICollectionViewDelegate And UICollectionViewDatasource +- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { + return self.datasource.count; +} + +- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { + YUMIChamberFurthaerParrotAssembletionRegardElement * cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([YUMIChamberFurthaerParrotAssembletionRegardElement class]) forIndexPath:indexPath]; + cell.itemMatrix = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + return cell; +} + +- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath { + [collectionView deselectItemAtIndexPath:indexPath animated:YES]; + YUMIChamberFurthaerProvisionMatrix * item = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + NSString * roomUid = [NSString stringWithFormat:@"%ld",self.roomInfo.uid]; + NSString * roomId = [NSString stringWithFormat:@"%ld", self.roomInfo.roomId]; + switch (item.type) { + case ChamberMoreParrotGenre_Gift_Value_Close: + { + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventroom_more_tool_click eventAttributes:@{@"roomMoreMenuType" : @"closeGiftValue"}]; + if (self.roomInfo.roomModeType == ChamberModeGenre_Open_Blind) { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_Room_More_Menu_View_Controller_2")]; + return; + } + MKJPrecautiousDisposition * config = [[MKJPrecautiousDisposition alloc] init]; + config.title = @""; + config.message = @"关闭礼物值将会清除当前麦上所有礼物值数据,确认关闭吗?"; + [MKJPopup precautiousAboutDisposition:config acknowledgementHandler:^{ + [self.presimport concludeChamberPresentBWSttess:roomUid]; + } cancelHandler:^{ + + }]; + } + break; + case ChamberMoreParrotGenre_Gift_Value_Open: + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventroom_more_tool_click eventAttributes:@{@"roomMoreMenuType" : @"openGiftValue"}]; + [self.presimport unfoildChamberPresentBWSttess:roomUid]; + break; + case ChamberMoreParrotGenre_Message_Screen_Open: + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventroom_more_tool_click eventAttributes:@{@"roomMoreMenuType" : @"openScreen"}]; + [self.presimport refurbishChamberCommunictowardsioncreenDeclare:NO roomId:roomId]; + break; + case ChamberMoreParrotGenre_Message_Screen_Close: + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventroom_more_tool_click eventAttributes:@{@"roomMoreMenuType" : @"closeScreen"}]; + [self.presimport refurbishChamberCommunictowardsioncreenDeclare:YES roomId:roomId]; + break; + case ChamberMoreParrotGenre_Gift_Effect_Open: + { + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventroom_more_tool_click eventAttributes:@{@"roomMoreMenuType" : @"openGiftEffect"}]; + [self EvidenceAccomplishmentToast:YMLocalizedString(@"YUMI_Room_More_Menu_View_Controller_4")]; + NSDictionary * dic = @{@"hasAnimationEffect": @(1)}; + [[NSNotificationCenter defaultCenter] postNotificationName:kRoomGiftEffectUpdateNotificationKey object:dic]; + [self dismissViewControllerAnimated:YES completion:nil]; + } + break; + case ChamberMoreParrotGenre_Gift_Effect_Close: + { + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventroom_more_tool_click eventAttributes:@{@"roomMoreMenuType" : @"closeGiftEffect"}]; + [self EvidenceAccomplishmentToast:YMLocalizedString(@"YUMI_Room_More_Menu_View_Controller_5")]; + NSDictionary * dic = @{@"hasAnimationEffect": @(0)}; + [[NSNotificationCenter defaultCenter] postNotificationName:kRoomGiftEffectUpdateNotificationKey object:dic]; + [self dismissViewControllerAnimated:YES completion:nil]; + } + break; + case ChamberMoreParrotGenre_Invite_Fans: + { + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventroom_more_tool_click eventAttributes:@{@"roomMoreMenuType" : @"inviteFans"}]; + [self dismissViewControllerAnimated:YES completion:nil]; + NSString * roomUid = [NSString stringWithFormat:@"%ld", self.roomInfo.uid]; + YUMIChamberCallforFanaticsRegard * inviteFansView = [[YUMIChamberCallforFanaticsRegard alloc]initAboutChamberCid:roomUid]; + [MKJPopup popupRegard:inviteFansView style:MKJPopupStyleActionSheet]; + } + break; + case ChamberMoreParrotGenre_Room_Setting: + { + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventroom_more_tool_click eventAttributes:@{@"roomMoreMenuType" : @"roomSetting"}]; + [self dismissViewControllerAnimated:YES completion:nil]; + YUMIChamberInstanllingRegardGovernancer * roomsettingVC = [[YUMIChamberInstanllingRegardGovernancer alloc] initWithDelegate:self.hostRepresedtation]; + [self.hostRepresedtation.acquireUniversalNev pushViewController:roomsettingVC animated:YES]; + } + break; + case ChamberMoreParrotGenre_Room_Dating_Open: + { + if (self.roomInfo.roomModeType == ChamberModeGenre_Open_AcrossRoomPK_mode) { + [self EvidenceMistakeToast:@"跨房PK中不可开启相亲模式!"]; + [self dismissViewControllerAnimated:NO completion:nil]; + return; + } + + if (self.roomInfo.roomModeType == ChamberModeGenre_Open_PK_Mode) { + [self EvidenceMistakeToast:@"房间PK中不可开启相亲模式!"]; + [self dismissViewControllerAnimated:NO completion:nil]; + return; + } + + MKJPrecautiousDisposition *config = [[MKJPrecautiousDisposition alloc] init]; + config.message = YMLocalizedString(@"YUMI_Room_More_Menu_View_Controller_8"); + config.acknowledgementBtutonDisposition.title = YMLocalizedString(@"YUMI_Room_More_Menu_View_Controller_9"); + [MKJPopup precautiousAboutDisposition:config acknowledgementHandler:^{ + [self.presimport unfoildChamberEngagement:roomUid]; + } cancelHandler:^{ + }]; + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventroom_more_tool_click eventAttributes:@{@"roomMoreMenuType" : @"openRoomDating"}]; + } + break; + case ChamberMoreParrotGenre_Room_Dating_Close: + { + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventroom_more_tool_click eventAttributes:@{@"roomMoreMenuType" : @"closeRoomDating"}]; + MKJPrecautiousDisposition * config = [[MKJPrecautiousDisposition alloc] init]; + config.title = YMLocalizedString(@"YUMI_Room_More_Menu_View_Controller_10"); + config.message = @"关闭相亲模式?"; + config.acknowledgementBtutonDisposition.title = YMLocalizedString(@"YUMI_Room_More_Menu_View_Controller_12"); + [MKJPopup precautiousAboutDisposition:config acknowledgementHandler:^{ + [self.presimport concludeChamberEngagement:roomUid]; + } cancelHandler:^{ + + }]; + } + break; + case ChamberMoreParrotGenre_Release_Radio: + { + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventroom_more_tool_click eventAttributes:@{@"roomMoreMenuType" : @"releaseRadio"}]; + [self.presimport acquireChamberWirelessCommunictowardsionSttowardsementAboutGenre:[NSString stringWithFormat:@"%zd", self.roomInfo.type]]; + } + break; + case ChamberMoreParrotGenre_Room_Across_PK_Open: + { + if (self.roomInfo.roomModeType == ChamberModeGenre_Open_Blind) { + [self EvidenceMistakeToast:@"相亲中不可开启跨房PK!"]; + [self dismissViewControllerAnimated:NO completion:nil]; + return; + } + + if (self.roomInfo.roomModeType == ChamberModeGenre_Open_PK_Mode) { + [self EvidenceMistakeToast:@"PK中不可以开启跨房PK!"]; + [self dismissViewControllerAnimated:NO completion:nil]; + return; + } + [self dismissViewControllerAnimated:NO completion:nil]; + YUMIThroughoutChamberCombatRegardGovernancer * acrossRoomPKVC = [[YUMIThroughoutChamberCombatRegardGovernancer alloc] initAboutChamberCid:roomUid]; + [self.hostRepresedtation.acquireUniversalNev presentViewController:acrossRoomPKVC animated:YES completion:nil]; + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventroom_more_tool_click eventAttributes:@{@"roomMoreMenuType" : @"openAcrossPk"}]; + } + break; + case ChamberMoreParrotGenre_Room_Across_PK_Close: + { + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventroom_more_tool_click eventAttributes:@{@"roomMoreMenuType" : @"closeAcrossPk"}]; + [self EvidenceMistakeToast:@"正在跨房PK中!"]; + [self dismissViewControllerAnimated:NO completion:nil]; + } + break; + case ChamberMoreParrotGenre_Room_Anchor_PK_Open: + { + if (self.hostRepresedtation.acquireChamberAbstract.pkMatchStartTime) { + MKJPrecautiousDisposition *config = [[MKJPrecautiousDisposition alloc] init]; + config.message = @"取消匹配?"; + [MKJPopup precautiousAboutDisposition:config acknowledgementHandler:^{ + [self.presimport requisitionRevoctowardsionDirectoryapttowardsionArbitraryCombat:roomUid]; + } cancelHandler:^{ + }]; + } else { + [self dismissViewControllerAnimated:NO completion:nil]; + XCombatellegCombatChosenGenreGovernancer *selectVc = [[XCombatellegCombatChosenGenreGovernancer alloc] initAboutChamberCid:roomUid]; + [self.hostRepresedtation.acquireUniversalNev presentViewController:selectVc animated:YES completion:nil]; + } + } + break; + case ChamberMoreParrotGenre_Room_Anchor_PK_Close: + { + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventroom_more_tool_click eventAttributes:@{@"roomMoreMenuType" : @"closeAnchorPk"}]; + if (self.roomInfo.pkState == ThroughoutChamberPkDeclareGenrePenalty) { + if ([self.roomInfo.winUid isEqualToString:[AccountAbstractStorage instance].acquireCid]) { + if (self.roomInfo.roundId) { + [self.presimport requisitionAccomplishKellegCombat:[NSString stringWithFormat:@"%ld", self.roomInfo.roundId]]; + } + } else if ([self.roomInfo.winUid isEqualToString:self.roomInfo.pkUid]) { + + } else { + if (self.roomInfo.roundId) { + [self.presimport requisitionAccomplishKellegCombat:[NSString stringWithFormat:@"%ld", self.roomInfo.roundId]]; + } + } + } else { + if (self.roomInfo.roundId) { + [self.presimport requisitionAccomplishKellegCombat:[NSString stringWithFormat:@"%ld", self.roomInfo.roundId]]; + } + } + + } + break; + case ChamberMoreParrotGenre_Message_Screen_Clear: + { + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventroom_more_tool_click eventAttributes:@{@"roomMoreMenuType" : @"clearScreen"}]; + MKJPrecautiousDisposition * config = [[MKJPrecautiousDisposition alloc] init]; + config.title = YMLocalizedString(@"YUMI_Room_More_Menu_View_Controller_17"); + config.message = @"确定要清空公屏消息吗?\n(清空后不可恢复哦~)"; + config.acknowledgementBtutonDisposition.title = YMLocalizedString(@"YUMI_Room_More_Menu_View_Controller_19"); + [MKJPopup precautiousAboutDisposition:config acknowledgementHandler:^{ + [self.presimport sanitarycreen:roomUid uid:[AccountAbstractStorage instance].acquireCid]; + } cancelHandler:^{ + }]; + } + break; + + case ChamberMoreParrotGenre_Room_PK_Open: + { + if (self.roomInfo.roomModeType == ChamberModeGenre_Open_Blind) { + [self EvidenceMistakeToast:@"相亲中不可以开启PK模式!"]; + [self dismissViewControllerAnimated:NO completion:nil]; + return; + } + + if (self.roomInfo.roomModeType == ChamberModeGenre_Open_AcrossRoomPK_mode) { + [self EvidenceMistakeToast:@"跨房PK中不可以开启PK模式!"]; + [self dismissViewControllerAnimated:NO completion:nil]; + return; + } + + [self dismissViewControllerAnimated:NO completion:nil]; + YUMIChamberCombatRegardGovernancer * roomPKVC = [[YUMIChamberCombatRegardGovernancer alloc] initWithDelegate:self.hostRepresedtation]; + [self.hostRepresedtation.acquireUniversalNev pushViewController:roomPKVC animated:YES]; + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventroom_more_tool_click eventAttributes:@{@"roomMoreMenuType" : @"openRoomPk"}]; + } + break; + case ChamberMoreParrotGenre_Room_PK_Close: + { + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventroom_more_tool_click eventAttributes:@{@"roomMoreMenuType" : @"closeRoomPk"}]; + [self dismissViewControllerAnimated:NO completion:nil]; + YUMIChamberCombatRegardGovernancer * roomPKVC = [[YUMIChamberCombatRegardGovernancer alloc] initWithDelegate:self.hostRepresedtation]; + [self.hostRepresedtation.acquireUniversalNev pushViewController:roomPKVC animated:YES]; + } + break; + case ChamberMoreParrotGenre_Room_redPacket: + { + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventroom_more_tool_click eventAttributes:@{@"roomMoreMenuType" : @"redPacket"}]; + [self dismissViewControllerAnimated:YES completion:nil]; + YUMIChamberDischargeDeficitSheatheRegardGovernancer *sendRedPacketVC = [[YUMIChamberDischargeDeficitSheatheRegardGovernancer alloc] initWithDelegate:self.hostRepresedtation]; + sendRedPacketVC.roomUid = roomUid; + sendRedPacketVC.modalPresentationStyle = UIModalPresentationOverFullScreen; + BaseNevigationGovernancer *nav = [[BaseNevigationGovernancer alloc] initWithRootViewController:sendRedPacketVC]; + nav.modalPresentationStyle = UIModalPresentationOverFullScreen; + [self.hostRepresedtation.acquireUniversalNev presentViewController:nav animated:YES completion:nil]; + } + break; + case ChamberMoreParrotGenre_Room_Voice: + { + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventroom_more_tool_click eventAttributes:@{@"roomMoreMenuType" : @"voice"}]; + [self dismissViewControllerAnimated:YES completion:nil]; + [RealtimackExecutive instance].remoteDelicate = !item.isSelected; + item.isSelected = [RealtimackExecutive instance].isRemoteDelicate; + } + break; + case ChamberMoreParrotGenre_Room_Wish_Gift: + { + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventroom_more_tool_click eventAttributes:@{@"roomMoreMenuType" : @"redPacket"}]; + [self dismissViewControllerAnimated:YES completion:nil]; + + YUMIDesirePresentCreateRegardGovernancer *wishGiftVC = [[YUMIDesirePresentCreateRegardGovernancer alloc] initWithDelegate:self.hostRepresedtation]; + [self.hostRepresedtation.acquireUniversalNev pushViewController:wishGiftVC animated:YES]; + } + break; + default: + break; + } +} + +#pragma mark - Event Response +- (void)prohibitiaplictowardsionarRecognition { + [self dismissViewControllerAnimated:YES completion:nil]; +} + +#pragma mark - Getters And Setters +- (UICollectionView *)collectionView{ + if (!_collectionView) { + UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init]; + layout.sectionInset = UIEdgeInsetsMake(24, 0, 10, 0); + layout.itemSize = CGSizeMake(KScreenWidth /5, 50); + layout.minimumLineSpacing = 12; + layout.minimumInteritemSpacing = 0; + _collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout]; + _collectionView.dataSource = self; + _collectionView.delegate = self; + _collectionView.backgroundColor = [UIColor clearColor]; + _collectionView.alpha = 0.9; + _collectionView.scrollEnabled = NO; + [_collectionView registerClass:[YUMIChamberFurthaerParrotAssembletionRegardElement class] forCellWithReuseIdentifier:NSStringFromClass([YUMIChamberFurthaerParrotAssembletionRegardElement class])]; + } + return _collectionView; +} + +- (UIView *)apexRegard { + if (!_apexRegard) { + _apexRegard = [[UIView alloc] init]; + _apexRegard.backgroundColor = [UIColor clearColor]; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(prohibitiaplictowardsionarRecognition)]; + [_apexRegard addGestureRecognizer:tap]; + } + return _apexRegard; +} + +- (UIView *)bottomView { + if (!_bottomView) { + _bottomView = [[UIView alloc] init]; + } + return _bottomView; +} + +- (UIVisualEffectView *)impressionRegard { + if (!_impressionRegard) { + UIBlurEffect *beffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleDark]; + _impressionRegard = [[UIVisualEffectView alloc] initWithEffect:beffect]; + + UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, KScreenWidth, KScreenHeight) byRoundingCorners:UIRectCornerTopLeft | UIRectCornerTopRight cornerRadii:CGSizeMake(8, 8)]; + CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init]; + maskLayer.frame = CGRectMake(0, 0, KScreenWidth, KScreenHeight); + maskLayer.path = maskPath.CGPath; + _impressionRegard.layer.mask = maskLayer; + } + return _impressionRegard; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/NewUserGift/YUMIStrangeConsumerChamberPresentRegard.h b/YuMi/Modules/YMRoom/View/NewUserGift/YUMIStrangeConsumerChamberPresentRegard.h new file mode 100644 index 00000000..14d1c23a --- /dev/null +++ b/YuMi/Modules/YMRoom/View/NewUserGift/YUMIStrangeConsumerChamberPresentRegard.h @@ -0,0 +1,19 @@ +// +// YMNewUserRoomGiftView.h +// YUMI +// +// Created by YUMI on 2022/7/26. +// + +#import +#import "PresentAbstractMatrix.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIStrangeConsumerChamberPresentRegard : UIView + +@property (nonatomic, strong) PresentAbstractMatrix *giftInfo; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/NewUserGift/YUMIStrangeConsumerChamberPresentRegard.m b/YuMi/Modules/YMRoom/View/NewUserGift/YUMIStrangeConsumerChamberPresentRegard.m new file mode 100644 index 00000000..cdd36ace --- /dev/null +++ b/YuMi/Modules/YMRoom/View/NewUserGift/YUMIStrangeConsumerChamberPresentRegard.m @@ -0,0 +1,147 @@ +// +// YMNewUserRoomGiftView.m +// YUMI +// +// Created by YUMI on 2022/7/26. +// + +#import "YUMIStrangeConsumerChamberPresentRegard.h" +#import +#import "NetIndicateRegard.h" +#import "DJDKMIMOMColor.h" +#import "UIImage+Utils.h" +#import "MKJPopup.h" +#import "YUMIMacroUitls.h" +#import "StatsticsticsServingFacilitater.h" + +@interface YUMIStrangeConsumerChamberPresentRegard () + +@property (nonatomic, strong) UIImageView *backgroundIndicateRegard; +@property (nonatomic,strong) UILabel *titleLabel; +@property (nonatomic, strong) NetIndicateRegard *figureIndicateRegard; +@property (nonatomic, strong) UILabel *sequenceSequencignation; +@property (nonatomic,strong) UIButton *concludeBtuton; + +@end + + +@implementation YUMIStrangeConsumerChamberPresentRegard + +- (instancetype)initWithFrame:(CGRect)frame +{ + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.layer.masksToBounds = YES; + self.layer.cornerRadius = 15; + self.backgroundColor = [UIColor clearColor]; + [self addSubview:self.backgroundIndicateRegard]; + [self addSubview:self.titleLabel]; + [self addSubview:self.figureIndicateRegard]; + [self addSubview:self.sequenceSequencignation]; + [self addSubview:self.concludeBtuton]; +} + +- (void)initChildLyRestrictions { + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(260); + make.height.mas_equalTo(376); + }]; + [self.backgroundIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.left.right.mas_equalTo(0); + make.height.mas_equalTo(320); + }]; + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(130); + make.left.right.mas_equalTo(self).inset(15); + make.height.mas_equalTo(17); + }]; + + [self.figureIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self); + make.width.height.mas_equalTo(100); + make.top.mas_equalTo(self.titleLabel.mas_bottom).mas_offset(13); + }]; + + [self.sequenceSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.figureIndicateRegard.mas_bottom).mas_offset(19); + make.height.mas_equalTo(17); + make.left.right.mas_equalTo(self).inset(15); + }]; + [self.concludeBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(32, 32)); + make.top.mas_equalTo(self.backgroundIndicateRegard.mas_bottom).offset(24); + make.centerX.mas_equalTo(self); + }]; +} + +#pragma mark - Event Response +- (void)concludeBtutonPerformance:(UIButton *)sender { + [MKJPopup dismiss]; + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventRoomNugivePopClick]; +} + +#pragma mark - Getters And Setters +- (void)setGiftInfo:(PresentAbstractMatrix *)giftInfo { + NSString *giftStr = [NSString stringWithFormat:@"%@*%zd", giftInfo.giftName, giftInfo.count]; + NSMutableAttributedString *str = [[NSMutableAttributedString alloc] initWithString:@"获得新人礼物 " attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:12],NSForegroundColorAttributeName:UIColorFromRGB(0xEEFEEC)}]; + [str appendAttributedString:[[NSMutableAttributedString alloc] initWithString:giftStr attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:12 weight:UIFontWeightHeavy],NSForegroundColorAttributeName:UIColorFromRGB(0xEEFEEC)}]]; + self.titleLabel.attributedText = str; + self.figureIndicateRegard.imageUrl = giftInfo.giftUrl; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.textAlignment = NSTextAlignmentCenter; + _titleLabel.font = [UIFont systemFontOfSize:12]; + _titleLabel.textColor = UIColorFromRGB(0xEEFEEC); + } + return _titleLabel; +} + +- (UILabel *)sequenceSequencignation { + if (!_sequenceSequencignation) { + _sequenceSequencignation = [[UILabel alloc] init]; + _sequenceSequencignation.textAlignment = NSTextAlignmentCenter; + _sequenceSequencignation.font = [UIFont systemFontOfSize:12]; + _sequenceSequencignation.textColor = UIColorFromRGB(0xEEFEEC); + _sequenceSequencignation.text = @"已放入背包,尽快使用吧~"; + } + return _sequenceSequencignation; +} + +- (NetIndicateRegard *)figureIndicateRegard { + if (!_figureIndicateRegard) { + _figureIndicateRegard = [[NetIndicateRegard alloc] init]; + _figureIndicateRegard.layer.cornerRadius = 12; + _figureIndicateRegard.layer.masksToBounds = YES; + } + return _figureIndicateRegard; +} + +- (UIImageView *)backgroundIndicateRegard { + if (!_backgroundIndicateRegard) { + _backgroundIndicateRegard = [[UIImageView alloc] init]; + _backgroundIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_newUser_present_background"]; + } + return _backgroundIndicateRegard; +} + +- (UIButton *)concludeBtuton { + if (!_concludeBtuton) { + _concludeBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_concludeBtuton setImage:[UIImage imageNamed:@"yumi_anchorPk_result_close"] forState:UIControlStateNormal]; + [_concludeBtuton addTarget:self action:@selector(concludeBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _concludeBtuton; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/NewUserGreet/YUMIChamberStrangeConsumerBewelcometoRegard.h b/YuMi/Modules/YMRoom/View/NewUserGreet/YUMIChamberStrangeConsumerBewelcometoRegard.h new file mode 100644 index 00000000..0ff1cf68 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/NewUserGreet/YUMIChamberStrangeConsumerBewelcometoRegard.h @@ -0,0 +1,22 @@ +// +// YMRoomNewUserGreetView.h +// YUMI +// +// Created by YUMI on 2022/6/6. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class YUMIChamberStrangeConsumerBewelcometoRegard; +@protocol FBCChamberStrangeConsumerGreetRegardRepresendtation +- (void)yUMIChamberStrangeConsumerBewelcometoRegard:(YUMIChamberStrangeConsumerBewelcometoRegard *)view didClickCheckout:(UIButton *)sender; + +@end + +@interface YUMIChamberStrangeConsumerBewelcometoRegard : UIView +@property (nonatomic,strong) NSArray *sayHelloUserAvatarList; +@property (nonatomic,weak) id delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/NewUserGreet/YUMIChamberStrangeConsumerBewelcometoRegard.m b/YuMi/Modules/YMRoom/View/NewUserGreet/YUMIChamberStrangeConsumerBewelcometoRegard.m new file mode 100644 index 00000000..16ed5ec0 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/NewUserGreet/YUMIChamberStrangeConsumerBewelcometoRegard.m @@ -0,0 +1,189 @@ +// +// YMRoomNewUserGreetView.m +// YUMI +// +// Created by YUMI on 2022/6/6. +// + +#import "YUMIChamberStrangeConsumerBewelcometoRegard.h" +#import +#import "DJDKMIMOMColor.h" +#import "NetIndicateRegard.h" +#import "YUMIMacroUitls.h" +#import "NSArray+Safe.h" + +@interface YUMIChamberStrangeConsumerBewelcometoRegard () +@property (nonatomic,strong) UIImageView *encourageIndicateRegard; +@property (nonatomic,strong) UIView * contentView; +@property (nonatomic,strong) UILabel *titleLabel; +@property (nonatomic,strong) UIButton *examineBtuton; +@property (nonatomic,strong) UIButton *concludeBtuton; +@property (nonatomic,strong) NSArray *intelligenceportraitRegardStatement; +@end + +@implementation YUMIChamberStrangeConsumerBewelcometoRegard + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.encourageIndicateRegard]; + [self.encourageIndicateRegard addSubview:self.contentView]; + [self.encourageIndicateRegard addSubview:self.concludeBtuton]; + [self.contentView addSubview:self.titleLabel]; + [self.contentView addSubview:self.examineBtuton]; +} + +- (void)initChildLyRestrictions { + [self.encourageIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(345, 80)); + make.centerX.mas_equalTo(self); + make.top.mas_equalTo(self); + }]; + + [self.contentView mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.centerY.mas_equalTo(self.encourageIndicateRegard); + make.height.mas_equalTo(55); + make.left.mas_equalTo(self.titleLabel.mas_left).offset(-12); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self.contentView); + make.bottom.mas_equalTo(self.contentView.mas_centerY).offset(-3); + }]; + + [self.examineBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(80, 20)); + make.top.mas_equalTo(self.contentView.mas_centerY).offset(3); + make.centerX.mas_equalTo(self.titleLabel); + }]; + + [self.concludeBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(22, 22)); + make.top.right.mas_equalTo(self.encourageIndicateRegard); + }]; +} + +#pragma mark - Event Response +- (void)concludeBtutonPerformance:(UIButton *)sender { + [UIView animateWithDuration:.35 animations:^{ + CGRect frame = self.frame; + frame.origin.x = -KScreenWidth; + self.frame= frame; + } completion:^(BOOL finished) { + [self removeFromSuperview]; + }]; +} + +- (void)examineBtutonPerformance:(UIButton *)sender { + [UIView animateWithDuration:.35 animations:^{ + CGRect frame = self.frame; + frame.origin.x = -KScreenWidth; + self.frame= frame; + } completion:^(BOOL finished) { + [self removeFromSuperview]; + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIChamberStrangeConsumerBewelcometoRegard:didClickCheckout:)]) { + [self.delegate yUMIChamberStrangeConsumerBewelcometoRegard:self didClickCheckout:sender]; + } + }]; +} + +#pragma mark - Getters And Setters +- (void)setSayHelloUserAvatarList:(NSArray *)sayHelloUserAvatarList { + if (sayHelloUserAvatarList.count > 0) { + if (sayHelloUserAvatarList.count == 1) { + self.titleLabel.text = @"Ta向你发送了一条消息~"; + }else { + self.titleLabel.text = @"Ta们向你发送了多条消息~"; + } + [self.titleLabel sizeToFit]; + } + + for (int i = 0; i < sayHelloUserAvatarList.count; i++) { + NSString * avatar = [sayHelloUserAvatarList secureGroalTowardsIndictowardsrix1:i]; + NetIndicateRegard * intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] init]; + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + intelligenceportraitIndicateRegard.layer.cornerRadius = 44/2; + intelligenceportraitIndicateRegard.layer.borderColor = [UIColor whiteColor].CGColor; + intelligenceportraitIndicateRegard.layer.borderWidth = 1; + intelligenceportraitIndicateRegard.imageUrl = avatar; + [self.contentView addSubview:intelligenceportraitIndicateRegard]; + [self.contentView sendSubviewToBack:intelligenceportraitIndicateRegard]; + [intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(44, 44)); + make.right.mas_equalTo(self.titleLabel.mas_left).offset(-12 - 44 * i + 12 * i); + make.centerY.mas_equalTo(self.contentView); + }]; + + if (i == (sayHelloUserAvatarList.count -1)) { + [self.contentView mas_updateConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.titleLabel.mas_left).offset(-12 - 44 * (i + 1) + 12 * (i + 1)); + }]; + } + } +} + +- (UIView *)contentView { + if (!_contentView) { + _contentView = [[UIView alloc] init]; + _contentView.backgroundColor = [UIColor clearColor]; + } + return _contentView; +} + +- (UIImageView *)encourageIndicateRegard { + if (!_encourageIndicateRegard) { + _encourageIndicateRegard = [[UIImageView alloc] init]; + _encourageIndicateRegard.userInteractionEnabled = YES; + _encourageIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_new_user_greet_background"]; + } + return _encourageIndicateRegard; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.font = [UIFont systemFontOfSize:13 weight:UIFontWeightMedium]; + _titleLabel.textColor = [UIColor whiteColor]; + _titleLabel.text = @"Ta向你发送了多条消息~"; + } + return _titleLabel; +} + +- (UIButton *)examineBtuton { + if (!_examineBtuton) { + _examineBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_examineBtuton setTitle:YMLocalizedString(@"YUMI_Room_New_User_Greet_View_3") forState:UIControlStateNormal]; + [_examineBtuton setTitleColor:UIColorFromRGB(0x333333) forState:UIControlStateNormal]; + _examineBtuton.titleLabel.font = [UIFont systemFontOfSize:12]; + [_examineBtuton setBackgroundColor:[UIColor whiteColor]]; + _examineBtuton.layer.masksToBounds = YES; + _examineBtuton.layer.cornerRadius = 6; + [_examineBtuton addTarget:self action:@selector(examineBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _examineBtuton; +} + + +- (UIButton *)concludeBtuton { + if (!_concludeBtuton) { + _concludeBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_concludeBtuton setImage:[UIImage imageNamed:@"yumi_scope_setting_labelclose"] forState:UIControlStateNormal]; + [_concludeBtuton setImage:[UIImage imageNamed:@"yumi_scope_setting_labelclose"] forState:UIControlStateSelected]; + [_concludeBtuton addTarget:self action:@selector(concludeBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _concludeBtuton; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/PhaseRegard/EngagementPhaseRegard.h b/YuMi/Modules/YMRoom/View/PhaseRegard/EngagementPhaseRegard.h new file mode 100644 index 00000000..528c94a3 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/PhaseRegard/EngagementPhaseRegard.h @@ -0,0 +1,16 @@ +// +// EngagementPhaseRegard.h +// YUMI +// +// Created by YUMI on 2022/1/4. +// + +#import "PhaseRegard.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface EngagementPhaseRegard : PhaseRegard + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/PhaseRegard/EngagementPhaseRegard.m b/YuMi/Modules/YMRoom/View/PhaseRegard/EngagementPhaseRegard.m new file mode 100644 index 00000000..c5aa789b --- /dev/null +++ b/YuMi/Modules/YMRoom/View/PhaseRegard/EngagementPhaseRegard.m @@ -0,0 +1,264 @@ +// +// EngagementPhaseRegard.m +// YUMI +// +// Created by YUMI on 2022/1/4. +// + +#import "EngagementPhaseRegard.h" +#import +#import +#import "AccountAbstractStorage.h" +#import "YUMIMacroUitls.h" +#import "MKJPopup.h" +#import "XNDJTBWGLoadingTool.h" +#import "Api.h" +#import "ChamberAbstractMatrix.h" +#import "MiecreoscoopeExtMatrix.h" +#import "EngagementMiecreoscoopeRegard.h" +#import "MiecreoscoopeEngagementProgressRegard.h" +#import "YUMIChamberEngagementVipUpwardsLoudspeakerRegard.h" + +#define ownerTopMargin 35 +#define ownerWidth (45 + 5) * kScreenScale +#define ownerHeight (ownerWidth + 10 + 12) +#define mcWidth (45 + 5) * kScreenScale +#define mcHeight (mcWidth + 10 + 12 + 5+16) +#define paddingH 12 * kScreenScale +#define marginV1 38 +#define datingWidth 100 * kScreenScale +#define marginH (KScreenWidth - paddingH * 2 - mcWidth * 4 - datingWidth) / 2 +#define firstRowTop (ownerHeight + marginV1 + ownerTopMargin) +#define marginV2 17 * kScreenScale +#define secondRowTop (firstRowTop + mcHeight + marginV2) +#define marginV3 15 + +@interface EngagementPhaseRegard() +@property (nonatomic,strong) MiecreoscoopeEngagementProgressRegard *engagementGrowthRegard; + +@end + +@implementation EngagementPhaseRegard + +- (instancetype)initWithDelegate:(id)delegate { + if (self = [super initWithDelegate:delegate]) { + [self addSubview:self.engagementGrowthRegard]; + [self.engagementGrowthRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(datingWidth); + make.bottom.mas_equalTo(self); + make.centerX.mas_equalTo(self); + make.top.mas_equalTo(firstRowTop); + }]; + } + return self; +} + +- (NSInteger)computtowardsionHLOfMircoRegard { + return 10; +} + +- (UIView *)prohibiticoveryMiecreoscoopeRegardByIndictowardsrix:(NSInteger)index { + UIView * microView = [super prohibiticoveryMiecreoscoopeRegardByIndictowardsrix:index]; + if (microView) { + if ([self loudspeakerGuruIsOnOrdinaryPolariztowardsion] && index == 9) { + microView.hidden = YES; + } else { + microView.hidden = NO; + } + return microView; + } + return microView; +} + +- (UIView *)miecreoscoopeRegardInthecaseofIndictowardsrix:(NSInteger)index { + UIView * microView = [super miecreoscoopeRegardInthecaseofIndictowardsrix:index]; + if (microView) { + return microView; + } + return [[EngagementMiecreoscoopeRegard alloc]init]; +} + + +- (CGRect)rectInthecaseofRegardTowardsIndictowardsrix:(NSInteger)index { + + if (index == 0) { + return CGRectMake(KScreenWidth / 2 - ownerWidth / 2, ownerTopMargin, ownerWidth, ownerHeight); + } + + + if (index >= 1 && index <= 4) { + CGRect rect = CGRectMake(paddingH + mcWidth * (index - 1) + datingWidth * (index / 3) + marginH * (index / 2), firstRowTop, mcWidth, mcHeight); + return rect; + } + + if (index >= 5 && index <= 8) { + return CGRectMake(paddingH + mcWidth * (index - 4 - 1) + marginH *((index -4)/ 2) + datingWidth * (index / 7), secondRowTop, mcWidth, mcHeight); + } + + if (index == 9) { + return CGRectMake(KScreenWidth- mcWidth - 20, 45, mcWidth, mcHeight); + } + return [super rectInthecaseofRegardTowardsIndictowardsrix:index]; +} + +- (CGFloat)hightInthecaseofPhaseRegard { + return ownerTopMargin + ownerHeight + marginV1 + mcHeight + marginV2 + mcHeight + marginV3; +} + +- (CGPoint)brectifynessSpeckTowardsPhaseRegardByCid:(NSString *)uid { + NSInteger index = [self acquireIndictowardsrixByCid:uid]; + CGPoint point = CGPointZero; + if (index == 0) { + point = CGPointMake(KScreenWidth / 2, ownerWidth / 2 - 10 + ownerTopMargin); + } + + if (index >= 1 && index <= 4) { + point = CGPointMake(paddingH + mcWidth * (index - 1) + datingWidth * (index / 3) + marginH * (index / 2) + mcWidth / 2, firstRowTop + mcWidth / 2- 10); + } + + if (index >= 5 && index <= 8) { + point = CGPointMake(paddingH + mcWidth * (index - 4 - 1) + marginH *((index -4)/ 2) + datingWidth * (index / 7) + mcWidth / 2, secondRowTop + mcWidth / 2 - 10); + } + + if (index == 9) { + point = CGPointMake(KScreenWidth- mcWidth - 20 + mcWidth / 2, 45 + mcWidth / 2); + } + + point = [self convertPoint:point toView:nil]; + return point; +} + + +- (NSDictionary *)consumerAbstractToInthecaseofmtowardsionExt:(ConsumerAbstractMatrix *)userInfo { + MiecreoscoopeExtMatrix * extModel = [[MiecreoscoopeExtMatrix alloc] init]; + extModel.gender = userInfo.gender; + extModel.avatar = userInfo.avatar; + extModel.uid = userInfo.uid; + extModel.nick = userInfo.nick; + extModel.vipMic = userInfo.uid == self.hostRepresedtation.acquireChamberAbstract.blindDateVipUid; + extModel.headWearUrl = userInfo.headwearEffect.length > 0 ? userInfo.headwearEffect : userInfo.headwearPic; + extModel.micCircle = userInfo.micCircle; + extModel.micNickColor = userInfo.micNickColor; + extModel.preventKick = userInfo.userVipInfoVO.preventKick;; + extModel.enterHide = userInfo.userVipInfoVO.enterHide; + return [extModel mtowardsrix2dictionary]; +} + +- (BOOL)loudspeakerGuruIsOnOrdinaryPolariztowardsion { + __block BOOL isHidden = NO; + [self.hostRepresedtation.acquireMiecreoscoopeInthecaseofmtowardsion.allValues enumerateObjectsUsingBlock:^(MiecreoscoopeMHTueueMatrix * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if (obj.microState.position != -1 && obj.microState.position != 999 && obj.userInfo && obj.userInfo.vipMic) { + isHidden = YES; + } + }]; + return isHidden; +} + + +- (void)didChosenTowardsIndictowardsrix:(NSInteger)index { + MiecreoscoopeMHTueueMatrix* micModel = [self.hostRepresedtation.acquireMiecreoscoopeInthecaseofmtowardsion objectForKey:[self indexToPolariztowardsion:index]]; + ChamberAbstractMatrix * roomInfo = self.hostRepresedtation.acquireChamberAbstract; + ConsumerAbstractMatrix * userInfo = self.hostRepresedtation.getUserInfo; + + if (index != 9 && (!micModel.userInfo || micModel.userInfo.uid <= 0)) { + NIMChatroomMembersByIdsRequest *request = [[NIMChatroomMembersByIdsRequest alloc]init]; + request.roomId = [NSString stringWithFormat:@"%ld", roomInfo.roomId]; + request.userIds = @[[AccountAbstractStorage instance].acquireCid]; + [[NIMSDK sharedSDK].chatroomManager fetchChatroomMembersByIds:request completion:^(NSError * _Nullable error, NSArray * _Nullable members) { + NIMChatroomMember * member = members.firstObject; + if (member.type == NIMChatroomMemberTypeManager || member.type == NIMChatroomMemberTypeCreator) { + [super didChosenTowardsIndictowardsrix:index]; + } else { + if (micModel.microState.posState == MiecreoscoopePosDeclareGenre_Lock) { + if ([super acquireIndictowardsrixByCid:[AccountAbstractStorage instance].acquireCid] != -1) { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:YMLocalizedString(@"Dating_Stage_View_0")]; + } else { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:@"需要排麦才可以上麦哦~"]; + } + } else { + [super didChosenTowardsIndictowardsrix:index]; + } + } + }]; + return; + } + + if (index == 9) { + if (micModel.userInfo && micModel.userInfo.uid > 0) { + [super didChosenTowardsIndictowardsrix:index]; + } else { + if (roomInfo.blindDateVipUid == [AccountAbstractStorage instance].acquireCid.integerValue) { + NSString * position = [self indexToPolariztowardsion:index]; + + NSString * muteTitle = micModel.microState.micState == MiecreoscoopeLoudspeakerDeclareGenre_Open ? @"闭麦" : YMLocalizedString(@"Dating_Stage_View_3"); + MKJActionSheetDisposition *muteMic = [MKJActionSheetDisposition normalTitle:muteTitle ticktackPerformance:^{ + NSString * roomUid = [NSString stringWithFormat:@"%ld", self.hostRepresedtation.acquireChamberAbstract.uid]; + NSString * state = micModel.microState.micState == MiecreoscoopeLoudspeakerDeclareGenre_Open ? @"1" : @"0"; + NSString * ticket = [[AccountAbstractStorage instance] acquireTicket]; + NSString * uid = [[AccountAbstractStorage instance] acquireCid]; + [Api miecreoscoopeBretowardshaedImplementtowardsion:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + + } roomUid:roomUid state:state position:position ticket:ticket uid:uid]; + }]; + + + MKJActionSheetDisposition *upMic = [MKJActionSheetDisposition normalTitle:YMLocalizedString(@"Dating_Stage_View_4") ticktackPerformance:^{ + NIMChatroomQueueUpdateRequest *request = [[NIMChatroomQueueUpdateRequest alloc]init]; + request.key = @"999"; + request.value = [[self consumerAbstractToInthecaseofmtowardsionExt:userInfo] toJSONBWSttr]; + request.roomId = [NSString stringWithFormat:@"%ld", roomInfo.roomId]; + request.transient = YES; + [[NIMSDK sharedSDK].chatroomManager updateChatroomQueueObject:request completion:^(NSError * _Nullable error) { + + }]; + }]; + + [MKJPopup performanceSheetAboutProvisions:@[upMic, muteMic]]; + + } else { + YUMIChamberEngagementVipUpwardsLoudspeakerRegard *view = [[YUMIChamberEngagementVipUpwardsLoudspeakerRegard alloc] initWithFrame:CGRectMake(0, 0, 260, 325 + 35 + 20)]; + [MKJPopup popupRegard:view style:MKJPopupStyleAlert]; + } + } + } else { + [super didChosenTowardsIndictowardsrix:index]; + } +} + +- (NSString *)indexToPolariztowardsion:(NSInteger)index { + if (index == 9) { + return @"999"; + } + return [super indexToPolariztowardsion:index]; +} + +- (NSInteger)polariztowardsionToIndictowardsrix:(NSString *)position { + if (position.intValue == 999) { + return 9; + } + return [super polariztowardsionToIndictowardsrix:position]; +} + +- (void)onChamberRefurbish { + [super onChamberRefurbish]; + if (self.hostRepresedtation.acquireChamberAbstract.roomModeType == ChamberModeGenre_Open_Blind) { + self.engagementGrowthRegard.blindDateState = self.hostRepresedtation.acquireChamberAbstract.blindDateState; + } +} + + +- (void)onChamberImported { + [super onChamberImported]; + if (self.hostRepresedtation.acquireChamberAbstract.roomModeType == ChamberModeGenre_Open_Blind) { + self.engagementGrowthRegard.blindDateState = self.hostRepresedtation.acquireChamberAbstract.blindDateState; + } +} + +- (MiecreoscoopeEngagementProgressRegard *)engagementGrowthRegard { + if (!_engagementGrowthRegard) { + _engagementGrowthRegard = [[MiecreoscoopeEngagementProgressRegard alloc] init]; + } + return _engagementGrowthRegard; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/PhaseRegard/KellegCombatPhaseRegard.h b/YuMi/Modules/YMRoom/View/PhaseRegard/KellegCombatPhaseRegard.h new file mode 100644 index 00000000..f57e2482 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/PhaseRegard/KellegCombatPhaseRegard.h @@ -0,0 +1,16 @@ +// +// KellegCombatPhaseRegard.h +// YUMI +// +// Created by YUMI on 2022/4/11. +// + +#import "PhaseRegard.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface KellegCombatPhaseRegard : PhaseRegard + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/PhaseRegard/KellegCombatPhaseRegard.m b/YuMi/Modules/YMRoom/View/PhaseRegard/KellegCombatPhaseRegard.m new file mode 100644 index 00000000..053cbf63 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/PhaseRegard/KellegCombatPhaseRegard.m @@ -0,0 +1,301 @@ +// +// KellegCombatPhaseRegard.m +// YUMI +// +// Created by YUMI on 2022/4/11. +// + +#import "KellegCombatPhaseRegard.h" +#import +#import +#import +#import "AccountAbstractStorage.h" +#import "YUMIMacroUitls.h" +#import "MKJPopup.h" +#import "XNDJTBWGLoadingTool.h" +#import "Api.h" +#import "NetIndicateRegard.h" +#import "Api+Room.h" +#import "RealtimackExecutive.h" +#import "ChamberAbstractMatrix.h" +#import "MiecreoscoopeExtMatrix.h" +#import "YUMIConsumerSolitaireAbstractMatrix.h" +#import "KellegCombatMiecreoscoopeRegard.h" +#import "YUMIConsumerSolitaireRegardGovernancer.h" +#import "XCombatellegRandomCombatPreadominantRegard.h" + +#define ownerWidth (85 + 5) +#define ownerHeight (ownerWidth + 6 + 12) +#define mcWidth (50 + 5) * kScreenScale +#define mcHeight (mcWidth + 6 + 12) +#define paddingH 12 * kScreenScale +#define marginV1 33 +#define marginH (KScreenWidth - paddingH * 2 - mcWidth * 4 - datingWidth) / 2 +#define marginV2 27 * kScreenScale +#define secondRowTop (firstRowTop + mcHeight + marginV2) +#define marginV3 15 + +#define topMargin 87 + +@interface KellegCombatPhaseRegard() + +@property (nonatomic, strong) UIButton *preadominantBtuton; + +@property (strong, nonatomic) SVGAParser *anatomiser; +@property (nonatomic, strong) SVGAImageView *svgExhibitionRegard; + +@end + +@implementation KellegCombatPhaseRegard + +- (instancetype)initWithDelegate:(id)delegate { + if (self = [super initWithDelegate:delegate]) { + [self addSubview:self.svgExhibitionRegard]; + [self addSubview:self.preadominantBtuton]; + [self.svgExhibitionRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(64); + make.height.mas_equalTo(74); + make.centerX.mas_equalTo(self); + make.top.mas_equalTo(82); + }]; + [self.preadominantBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(46); + make.height.mas_equalTo(18); + make.centerX.mas_equalTo(self); + make.top.mas_equalTo(self.svgExhibitionRegard.mas_bottom).mas_offset(7); + }]; + + NSString * anatomiser1Name = [NSString stringWithFormat:@"%@/anchorPK_vs.svga", API_Image_URL]; + [self.anatomiser parseWithURL:[NSURL URLWithString:anatomiser1Name] completionBlock:^(SVGAVideoEntity * _Nonnull videoItem) { + self.svgExhibitionRegard.loops = INT_MAX; + self.svgExhibitionRegard.clearsAfterStop = NO; + self.svgExhibitionRegard.videoItem = videoItem; + [self.svgExhibitionRegard startAnimation]; + } failureBlock:^(NSError * _Nonnull error) { + }]; + } + return self; +} + +- (NSInteger)computtowardsionHLOfMircoRegard { + return 2; +} + +- (UIView *)prohibiticoveryMiecreoscoopeRegardByIndictowardsrix:(NSInteger)index { + UIView * microView = [super prohibiticoveryMiecreoscoopeRegardByIndictowardsrix:index]; + return microView; +} + +- (UIView *)miecreoscoopeRegardInthecaseofIndictowardsrix:(NSInteger)index { + UIView * microView = [super miecreoscoopeRegardInthecaseofIndictowardsrix:index]; + if (microView) { + return microView; + } + return [[KellegCombatMiecreoscoopeRegard alloc]init]; +} + + +- (CGRect)rectInthecaseofRegardTowardsIndictowardsrix:(NSInteger)index { + if (index == 0) { + return CGRectMake((KScreenWidth - 64) * 0.5 - 26 - ownerWidth+2.5, topMargin, ownerWidth, ownerHeight); + } else { + return CGRectMake((KScreenWidth + 64) * 0.5 + 26 - 2.5, topMargin, ownerWidth, ownerHeight); + } + return [super rectInthecaseofRegardTowardsIndictowardsrix:index]; +} + +- (CGFloat)hightInthecaseofPhaseRegard { + return 330; +} + +- (CGPoint)brectifynessSpeckTowardsPhaseRegardByCid:(NSString *)uid { + NSInteger index = [self acquireIndictowardsrixByCid:uid]; + CGPoint point = CGPointZero; + if (index == 0) { + point = CGPointMake(KScreenWidth / 2 - 32 - 26 - ownerWidth * 0.5, topMargin + ownerWidth / 2 - 10); + } + + point = [self convertPoint:point toView:nil]; + return point; +} + +- (void)onChamberImported { + [super onChamberImported]; + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + [self autoupburdenLoudspeakerTowardsIndictowardsrix:-1]; + }); +} + +- (void)shankNEMCCircularCommunictowardsion:(NIMMessage *)message { + [super shankNEMCCircularCommunictowardsion:message]; + + NIMNotificationObject *notiMsg = (NIMNotificationObject *)message.messageObject; + NIMChatroomNotificationContent *content = (NIMChatroomNotificationContent *)notiMsg.content; + switch (content.eventType) { + case NIMChatroomEventTypeQueueChange: + { + NSDictionary* data = (NSDictionary *)content.ext; + ConsumerAbstractMatrix* userInfo = [ConsumerAbstractMatrix mtowardsrixAboutJSON:[data objectForKey:NIMChatroomEventInfoQueueChangeItemValueKey]]; + NSInteger changeType = [data[NIMChatroomEventInfoQueueChangeTypeKey] integerValue]; + + if (changeType == 1) { + if (userInfo.uid == [AccountAbstractStorage instance].acquireCid.integerValue) { + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + if (self.hostRepresedtation.acquireChamberAbstract.pkRoomId && self.hostRepresedtation.acquireChamberAbstract.pkUid) { + [[RealtimackExecutive instance] connectOtherRoom:self.hostRepresedtation.acquireChamberAbstract.pkRoomId userId:self.hostRepresedtation.acquireChamberAbstract.pkUid]; + } else { + [Api acquireThroughoutChamberCombatSpecific:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + ThroughoutChamberCombatFasciaboardMatrix * acrossPKPanelInfo = [ThroughoutChamberCombatFasciaboardMatrix mtowardsrixAboutJSON:data.data]; + if (acrossPKPanelInfo.pkType == ThroughoutChamberPkGenreAnchor) { + self.hostRepresedtation.acquireChamberAbstract.roundId = acrossPKPanelInfo.roundId; + self.hostRepresedtation.acquireChamberAbstract.pkUid = acrossPKPanelInfo.aUid; + self.hostRepresedtation.acquireChamberAbstract.pkRoomId = acrossPKPanelInfo.aRoomId; + self.hostRepresedtation.acquireChamberAbstract.pkState = acrossPKPanelInfo.pkState; + self.hostRepresedtation.acquireChamberAbstract.winUid = acrossPKPanelInfo.winUid; + if (acrossPKPanelInfo.aRoomId && acrossPKPanelInfo.aUid) { + [[RealtimackExecutive instance] connectOtherRoom:acrossPKPanelInfo.aRoomId userId:acrossPKPanelInfo.aUid]; + } + } else { + } + } else { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:msg]; + } + } roomUid:[AccountAbstractStorage instance].acquireCid]; + } + }); + } + } + } + break; + default: + break; + } +} + +- (void)autoupburdenLoudspeakerTowardsIndictowardsrix:(NSInteger)index { + NIMChatroomQueueUpdateRequest *request = [[NIMChatroomQueueUpdateRequest alloc]init]; + request.key = [NSString stringWithFormat:@"%zd", index]; + ConsumerAbstractMatrix* userInfo = self.hostRepresedtation.getUserInfo; + ChamberAbstractMatrix* roomInfo = self.hostRepresedtation.acquireChamberAbstract; + if (roomInfo.uid != [[AccountAbstractStorage instance].acquireCid integerValue]) { + return; + } + NSString* roomId = [NSString stringWithFormat:@"%ld", roomInfo.roomId]; + request.value = [[self consumerAbstractToInthecaseofmtowardsionExt:userInfo] toJSONBWSttr]; + request.roomId = roomId; + request.transient = YES; + [[NIMSDK sharedSDK].chatroomManager updateChatroomQueueObject:request completion:^(NSError * _Nullable error) { + }]; +} + +- (NSDictionary *)consumerAbstractToInthecaseofmtowardsionExt:(ConsumerAbstractMatrix *)userInfo { + MiecreoscoopeExtMatrix * extModel = [[MiecreoscoopeExtMatrix alloc] init]; + extModel.gender = userInfo.gender; + extModel.avatar = userInfo.avatar; + extModel.uid = userInfo.uid; + extModel.nick = userInfo.nick; + extModel.vipMic = userInfo.uid == self.hostRepresedtation.acquireChamberAbstract.blindDateVipUid; + extModel.headWearUrl = userInfo.headwearEffect.length > 0 ? userInfo.headwearEffect : userInfo.headwearPic; + extModel.micCircle = userInfo.micCircle; + extModel.micNickColor = userInfo.micNickColor; + extModel.enterHide = userInfo.userVipInfoVO.enterHide; + return [extModel mtowardsrix2dictionary]; +} + + +- (void)didChosenTowardsIndictowardsrix:(NSInteger)index { + MiecreoscoopeMHTueueMatrix* micModel = [self.acquireMiecreoscoopeInthecaseofmtowardsion objectForKey:[self indexToPolariztowardsion:index]]; + ConsumerAbstractMatrix* userInfo = self.hostRepresedtation.getUserInfo; + ChamberAbstractMatrix* roomInfo = self.hostRepresedtation.acquireChamberAbstract; + NSString* position = [self indexToPolariztowardsion:index]; + NSString* uid = [NSString stringWithFormat:@"%ld", userInfo.uid]; + NSString* roomId = [NSString stringWithFormat:@"%ld", roomInfo.roomId]; + + + NSString * targetUid; + if (roomInfo.leaveMode && [position isEqualToString:@"-1"]) { + targetUid = [NSString stringWithFormat:@"%ld", roomInfo.uid]; + } + if (micModel.userInfo && micModel.userInfo.uid > 0) { + targetUid = [NSString stringWithFormat:@"%ld", micModel.userInfo.uid]; + } + + if (targetUid && targetUid.length > 0) { + YUMIConsumerSolitaireAbstractMatrix * model = [[YUMIConsumerSolitaireAbstractMatrix alloc] init]; + model.uid = targetUid; + model.position = position; + model.posState = micModel.microState.posState; + model.micState = micModel.microState.micState; + model.nick = userInfo.nick; + model.roomInfo = roomInfo; + model.micQueue = self.acquireMiecreoscoopeInthecaseofmtowardsion; + model.delegate = self.hostRepresedtation; + model.superMangerList = self.hostRepresedtation.acquireChamberSenstowardsionalManagementSttowardsement; + YUMIConsumerSolitaireRegardGovernancer * userCardVC = [[YUMIConsumerSolitaireRegardGovernancer alloc] initWithUser:model]; + [self.hostRepresedtation.acquireUniversalNev presentViewController:userCardVC animated:YES completion:nil]; + return; + } +} + +- (NSString *)indexToPolariztowardsion:(NSInteger)index { + if (index == 9) { + return @"999"; + } + return [super indexToPolariztowardsion:index]; +} + +- (NSInteger)polariztowardsionToIndictowardsrix:(NSString *)position { + if (position.intValue == 999) { + return 9; + } + return [super polariztowardsionToIndictowardsrix:position]; +} + +#pragma mark - event +- (void)onPreadominantBtutonTicktack:(UIButton *)button { + [Api requisitionKellegCombatePreadominant:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + XCombatellegRandomCombatPreadominantRegard *view = [[XCombatellegRandomCombatPreadominantRegard alloc] init]; + view.preadominantBWSttr = data.data; + [MKJPopup popupRegard:view style:MKJPopupStyleAlert]; + } + }]; +} + +#pragma mark - RtcRepresendtation - 讲话的波纹回调 +- (void)consumersSpeaking:(NSMutableArray *)uids { + return; +} + +#pragma mark - getter +- (UIButton *)preadominantBtuton { + if (!_preadominantBtuton) { + _preadominantBtuton = [[UIButton alloc] init]; + [_preadominantBtuton setTitle:YMLocalizedString(@"AnchorPKStage_View_0") forState:UIControlStateNormal]; + [_preadominantBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + _preadominantBtuton.titleLabel.font = [UIFont systemFontOfSize:12]; + [_preadominantBtuton setBackgroundImage:[UIImage imageNamed:@"yumi_anchorPk_panel_ruleBg"] forState:UIControlStateNormal]; + [_preadominantBtuton addTarget:self action:@selector(onPreadominantBtutonTicktack:) forControlEvents:UIControlEventTouchUpInside]; + } + return _preadominantBtuton; +} + +- (SVGAImageView *)svgExhibitionRegard { + if (_svgExhibitionRegard == nil) { + _svgExhibitionRegard = [[SVGAImageView alloc]init]; + _svgExhibitionRegard.contentMode = UIViewContentModeScaleToFill; + _svgExhibitionRegard.userInteractionEnabled = NO; + _svgExhibitionRegard.backgroundColor = [UIColor clearColor]; + } + return _svgExhibitionRegard; +} + +- (SVGAParser *)anatomiser { + if (!_anatomiser) { + _anatomiser = [[SVGAParser alloc]init]; + } + return _anatomiser; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/PhaseRegard/KellegPhaseRegard.h b/YuMi/Modules/YMRoom/View/PhaseRegard/KellegPhaseRegard.h new file mode 100644 index 00000000..ebf09ae7 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/PhaseRegard/KellegPhaseRegard.h @@ -0,0 +1,16 @@ +// +// KellegPhaseRegard.h +// YUMI +// +// Created by YUMI on 2022/2/14. +// + +#import "PhaseRegard.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface KellegPhaseRegard : PhaseRegard + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/PhaseRegard/KellegPhaseRegard.m b/YuMi/Modules/YMRoom/View/PhaseRegard/KellegPhaseRegard.m new file mode 100644 index 00000000..40ebfa94 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/PhaseRegard/KellegPhaseRegard.m @@ -0,0 +1,221 @@ +// +// KellegPhaseRegard.m +// YUMI +// +// Created by YUMI on 2022/2/14. +// + +#import "KellegPhaseRegard.h" +#import +#import +#import "AccountAbstractStorage.h" +#import "XNDJTBWGLoadingTool.h" +#import "YUMIMacroUitls.h" +#import "MKJPopup.h" +#import "Api+Room.h" +#import "ChamberAbstractMatrix.h" +#import "MiecreoscoopeExtMatrix.h" +#import "YUMIConsumerSolitaireAbstractMatrix.h" +#import "AttachmentMatrix.h" +#import "KellegMiecreoscoopeRegard.h" +#import "YUMIConsumerSolitaireRegardGovernancer.h" +#import "YUMIChamberCallforConsumerRegardGovernancer.h" + +#define ownerWidth (120 + 5) +#define ownerHeight (ownerWidth + 6 + 20) +#define topMargin 60 +#define mcWidth (40 + 5) +#define mcHeight (mcWidth + 6 + 12) +#define paddingH 35 +#define marginW 50 + +@implementation KellegPhaseRegard + +- (NSInteger)computtowardsionHLOfMircoRegard { + return 4; +} + +- (UIView *)miecreoscoopeRegardInthecaseofIndictowardsrix:(NSInteger)index { + UIView * microView = [super miecreoscoopeRegardInthecaseofIndictowardsrix:index]; + if (microView) { + return microView; + } + return [[KellegMiecreoscoopeRegard alloc]init]; +} + + +- (CGRect)rectInthecaseofRegardTowardsIndictowardsrix:(NSInteger)index { + if (index == 0) { + return CGRectMake((KScreenWidth - ownerWidth) * 0.5, topMargin, ownerWidth, ownerHeight); + } + if (index >= 1 && index <= 3) { + return CGRectMake((KScreenWidth - mcWidth) * 0.5 - marginW - mcWidth + (marginW+mcWidth) * (index-1), topMargin+ownerHeight + paddingH, mcWidth, mcHeight); + } + + return [super rectInthecaseofRegardTowardsIndictowardsrix:index]; +} + +- (CGFloat)hightInthecaseofPhaseRegard { + return topMargin + ownerHeight + paddingH + mcHeight + 10; +} + +- (CGPoint)brectifynessSpeckTowardsPhaseRegardByCid:(NSString *)uid { + NSInteger index = [self acquireIndictowardsrixByCid:uid]; + CGPoint point = CGPointZero; + if (index == 0) { + point = CGPointMake(KScreenWidth / 2, topMargin + ownerWidth / 2 - 10); + } + + if (index >= 1 && index <= 3) { + point = CGPointMake((KScreenWidth - mcWidth) * 0.5 - (marginW+mcWidth*1.5) + (marginW+mcWidth*1.5) * (index-1) + mcWidth * 0.5, topMargin+ownerHeight + paddingH + mcWidth * 0.5 - 10); + } + + point = [self convertPoint:point toView:nil]; + return point; +} + +- (void)onChamberImported { + [super onChamberImported]; + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + [self autoupburdenLoudspeakerTowardsIndictowardsrix:-1]; + }); +} + +- (void)autoupburdenLoudspeakerTowardsIndictowardsrix:(NSInteger)index { + NIMChatroomQueueUpdateRequest *request = [[NIMChatroomQueueUpdateRequest alloc]init]; + request.key = [NSString stringWithFormat:@"%zd", index]; + ConsumerAbstractMatrix* userInfo = self.hostRepresedtation.getUserInfo; + ChamberAbstractMatrix* roomInfo = self.hostRepresedtation.acquireChamberAbstract; + if (roomInfo.uid != [[AccountAbstractStorage instance].acquireCid integerValue]) { + return; + } + NSString* roomId = [NSString stringWithFormat:@"%ld", roomInfo.roomId]; + request.value = [[self consumerAbstractToInthecaseofmtowardsionExt:userInfo] toJSONBWSttr]; + request.roomId = roomId; + request.transient = YES; + [[NIMSDK sharedSDK].chatroomManager updateChatroomQueueObject:request completion:^(NSError * _Nullable error) { + }]; +} + + +- (void)didChosenTowardsIndictowardsrix:(NSInteger)index { + MiecreoscoopeMHTueueMatrix* micModel = [self.acquireMiecreoscoopeInthecaseofmtowardsion objectForKey:[self indexToPolariztowardsion:index]]; + ConsumerAbstractMatrix* userInfo = self.hostRepresedtation.getUserInfo; + ChamberAbstractMatrix* roomInfo = self.hostRepresedtation.acquireChamberAbstract; + NSString* position = [self indexToPolariztowardsion:index]; + NSString* uid = [NSString stringWithFormat:@"%ld", userInfo.uid]; + NSString* roomId = [NSString stringWithFormat:@"%ld", roomInfo.roomId]; + + + NSString * targetUid; + if (roomInfo.leaveMode && [position isEqualToString:@"-1"]) { + targetUid = [NSString stringWithFormat:@"%ld", roomInfo.uid]; + } + if (micModel.userInfo && micModel.userInfo.uid > 0) { + targetUid = [NSString stringWithFormat:@"%ld", micModel.userInfo.uid]; + } + + if (targetUid && targetUid.length > 0) { + YUMIConsumerSolitaireAbstractMatrix * model = [[YUMIConsumerSolitaireAbstractMatrix alloc] init]; + model.uid = targetUid; + model.position = position; + model.posState = micModel.microState.posState; + model.micState = micModel.microState.micState; + model.nick = userInfo.nick; + model.roomInfo = roomInfo; + model.micQueue = self.acquireMiecreoscoopeInthecaseofmtowardsion; + model.delegate = self.hostRepresedtation; + model.superMangerList = self.hostRepresedtation.acquireChamberSenstowardsionalManagementSttowardsement; + YUMIConsumerSolitaireRegardGovernancer * userCardVC = [[YUMIConsumerSolitaireRegardGovernancer alloc] initWithUser:model]; + [self.hostRepresedtation.acquireUniversalNev presentViewController:userCardVC animated:YES completion:nil]; + return; + } + + + NIMChatroomMembersByIdsRequest *request = [[NIMChatroomMembersByIdsRequest alloc]init]; + request.roomId = roomId; + request.userIds = @[uid]; + [[NIMSDK sharedSDK].chatroomManager fetchChatroomMembersByIds:request completion:^(NSError * _Nullable error, NSArray * _Nullable members) { + NIMChatroomMember * member = members.firstObject; + if (!member) return; + + NSString * lockTitle = micModel.microState.posState == MiecreoscoopePosDeclareGenre_Free ? @"锁麦" : YMLocalizedString(@"AnchorStage_View_1"); + MKJActionSheetDisposition *lockMic = [MKJActionSheetDisposition normalTitle:lockTitle ticktackPerformance:^{ + NSString * roomUid = [NSString stringWithFormat:@"%ld", self.hostRepresedtation.acquireChamberAbstract.uid]; + NSString * state = micModel.microState.posState == MiecreoscoopePosDeclareGenre_Free ? @"1" : @"0"; + NSString * ticket = [[AccountAbstractStorage instance] acquireTicket]; + NSString * uid = [[AccountAbstractStorage instance] acquireCid]; + [Api miecreoscoopeSpokeImplementtowardsion:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + + } roomUid:roomUid state:state position:position ticket:ticket uid:uid]; + }]; + + NSString * muteTitle = micModel.microState.micState == MiecreoscoopeLoudspeakerDeclareGenre_Open ? @"闭麦" : YMLocalizedString(@"AnchorStage_View_3"); + MKJActionSheetDisposition *muteMic = [MKJActionSheetDisposition normalTitle:muteTitle ticktackPerformance:^{ + NSString * roomUid = [NSString stringWithFormat:@"%ld", self.hostRepresedtation.acquireChamberAbstract.uid]; + NSString * state = micModel.microState.micState == MiecreoscoopeLoudspeakerDeclareGenre_Open ? @"1" : @"0"; + NSString * ticket = [[AccountAbstractStorage instance] acquireTicket]; + NSString * uid = [[AccountAbstractStorage instance] acquireCid]; + [Api miecreoscoopeBretowardshaedImplementtowardsion:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + + } roomUid:roomUid state:state position:position ticket:ticket uid:uid]; + }]; + + if (member.type == NIMTeamMemberTypeOwner) { + + MKJActionSheetDisposition *inviteMic = [MKJActionSheetDisposition normalTitle:YMLocalizedString(@"AnchorStage_View_4") ticktackPerformance:^{ + YUMIChamberCallforConsumerRegardGovernancer * inviteUserMicVC = [[YUMIChamberCallforConsumerRegardGovernancer alloc] init]; + inviteUserMicVC.roomId = roomId; + inviteUserMicVC.position = position; + inviteUserMicVC.blindDateVipUid = roomInfo.blindDateVipUid; + [self.hostRepresedtation.acquireUniversalNev pushViewController:inviteUserMicVC animated:YES]; + }]; + + [MKJPopup performanceSheetAboutProvisions:@[inviteMic, lockMic, muteMic]]; + } else if (member.type == NIMTeamMemberTypeManager) { + [MKJPopup performanceSheetAboutProvisions:@[lockMic, muteMic]]; + } else { + + NSString* selfUid = [NSString stringWithFormat:@"%ld", (long)self.hostRepresedtation.getUserInfo.uid]; + UIView* microView = [self prohibiticoveryMiecreoscoopeRegardByCid:selfUid]; + if (microView) { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:YMLocalizedString(@"AnchorStage_View_5")]; + } else { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:@"让主播抱你上麦进行更多互动吧~"]; + [self prohibitichargeCommunictowardsionToChamberOwnerAboutConsumerMtowardsrix:self.hostRepresedtation.getUserInfo]; + } + } + }]; +} + +- (void)prohibitichargeCommunictowardsionToChamberOwnerAboutConsumerMtowardsrix:(ConsumerAbstractMatrix *)userInfo { + NIMMessage * message = [[NIMMessage alloc] init]; + AttachmentMatrix * attachMent = [[AttachmentMatrix alloc] init]; + attachMent.first = IndividualityCommunicationGenre_AnchorRoom_AudienceUpMic; + attachMent.data = [userInfo mtowardsrix2dictionary]; + NIMCustomObject *object = [[NIMCustomObject alloc] init]; + object.attachment = attachMent; + message.messageObject = object; + + NSString * sessionId = [NSString stringWithFormat:@"%ld", self.hostRepresedtation.acquireChamberAbstract.roomId]; + NIMSession *session = [NIMSession session:sessionId type:NIMSessionTypeChatroom]; + [[NIMSDK sharedSDK].chatManager sendMessage:message toSession:session error:nil]; +} + +#pragma mark - private utils function + +- (NSDictionary *)consumerAbstractToInthecaseofmtowardsionExt:(ConsumerAbstractMatrix *)userInfo { + MiecreoscoopeExtMatrix * extModel = [[MiecreoscoopeExtMatrix alloc] init]; + extModel.gender = userInfo.gender; + extModel.avatar = userInfo.avatar; + extModel.uid = userInfo.uid; + extModel.nick = userInfo.nick; + extModel.headWearUrl = userInfo.headwearEffect.length > 0 ? userInfo.headwearEffect : userInfo.headwearPic; + extModel.micCircle = userInfo.micCircle; + extModel.micNickColor = userInfo.micNickColor; + extModel.preventKick = userInfo.userVipInfoVO.preventKick; + extModel.enterHide = userInfo.userVipInfoVO.enterHide; + return [extModel mtowardsrix2dictionary]; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/PhaseRegard/MiecreoscoopeRegard/Anchor/KellegCombatMiecreoscoopeRegard.h b/YuMi/Modules/YMRoom/View/PhaseRegard/MiecreoscoopeRegard/Anchor/KellegCombatMiecreoscoopeRegard.h new file mode 100644 index 00000000..88f6a872 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/PhaseRegard/MiecreoscoopeRegard/Anchor/KellegCombatMiecreoscoopeRegard.h @@ -0,0 +1,16 @@ +// +// KellegCombatMiecreoscoopeRegard.h +// YUMI +// +// Created by YUMI on 2022/4/11. +// + +#import "MiecreoscoopeRegard.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface KellegCombatMiecreoscoopeRegard : MiecreoscoopeRegard + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/PhaseRegard/MiecreoscoopeRegard/Anchor/KellegCombatMiecreoscoopeRegard.m b/YuMi/Modules/YMRoom/View/PhaseRegard/MiecreoscoopeRegard/Anchor/KellegCombatMiecreoscoopeRegard.m new file mode 100644 index 00000000..8e33f3a6 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/PhaseRegard/MiecreoscoopeRegard/Anchor/KellegCombatMiecreoscoopeRegard.m @@ -0,0 +1,148 @@ +// +// KellegCombatMiecreoscoopeRegard.m +// YUMI +// +// Created by YUMI on 2022/4/11. +// + +#import "KellegCombatMiecreoscoopeRegard.h" +#import +#import +#import "SVGAAnatomiserExecutive.h" +#import +#import "YUMIMacroUitls.h" +@interface KellegCombatMiecreoscoopeRegard () + +@property (nonatomic, strong) SVGAImageView *svgExhibitionRegard; +@property (nonatomic, strong) SVGAAnatomiserExecutive *anatomiserExecutive; + +@property (nonatomic, assign) NSInteger position; + +@end + +@implementation KellegCombatMiecreoscoopeRegard + +- (void)initSubViews { + [super initSubViews]; + [self insertSubview:self.svgExhibitionRegard belowSubview:self.intelligenceportraitIndicateRegard]; +} + +- (void)initChildLyRestrictions { + [super initChildLyRestrictions]; + [self.svgExhibitionRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.mas_equalTo(85 * 1.5); + make.center.equalTo(self.intelligenceportraitIndicateRegard); + }]; +} + +#pragma mark - MicroRegardCeremony +- (void)EvidencePresentBWSttessManner:(BOOL)isGiftValue { + self.presentBWSttessRegard.hidden = YES; + if (self.position != -1) { + self.presentBWSttessRegard.hidden = YES; + } else { + self.presentBWSttessRegard.hidden = !isGiftValue; + } +} + +- (void)EvidenceDepartureManner:(BOOL)isLeaveMode { +} + +- (void)prohibitipositionMiecreoscoopeRegard:(MiecreoscoopeMHTueueMatrix *)model { + [super prohibitipositionMiecreoscoopeRegard:model]; + ChamberAbstractMatrix * roomInfo = self.acquireChamberAbstract; + ConsumerAbstractMatrix * userInfo = model.userInfo; + int position = model.microState.position; + self.position = position; + if (position != -1 && userInfo == nil) { + self.monicerSequencignation.text = @""; + } + if (roomInfo.type == ChamberGenre_Anchor && roomInfo.roomModeType == ChamberModeGenre_Open_AcrossRoomPK_mode) { + self.stackView.hidden = YES; + } + self.monicerSequencignation.hidden = YES; + self.postionSequencignation.hidden = YES; + self.intelligencePenetrateIndicateRegard.hidden = YES; + + NSString *nickStr = userInfo.nick; + if (userInfo.nick.length > 5) { + nickStr = [NSString stringWithFormat:@"%@…", [userInfo.nick substringToIndex:5]]; + } + + + if (position == -1) { + if (userInfo) { + if ([self.subviews containsObject:self.leaveSequencignation]) { + [self.leaveSequencignation removeFromSuperview]; + } + } else { + if (![self.subviews containsObject:self.leaveSequencignation]) { + [self insertSubview:self.leaveSequencignation belowSubview:self.presentBWSttessRegard]; + [self.leaveSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.intelligenceportraitIndicateRegard); + }]; + self.leaveSequencignation.layer.cornerRadius = self.frame.size.width * 0.5; + self.leaveSequencignation.layer.masksToBounds = YES; + } + } + self.loudspeakerDeclareIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_position_mute_Anchor"]; + [self.loudspeakerDeclareIndicateRegard mas_remakeConstraints:^(MASConstraintMaker *make) { + make.bottom.mas_equalTo(self.intelligenceportraitIndicateRegard).mas_offset(-2); + make.right.mas_equalTo(self.intelligenceportraitIndicateRegard).mas_offset(-(120 / 4) +11); + make.width.height.mas_equalTo(22); + }]; + } + [self.stackView mas_updateConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_bottom).mas_offset(17); + }]; + + + self.svgExhibitionRegard.hidden = NO; + @weakify(self); + NSString * anatomiser1Name = [NSString stringWithFormat:@"%@/anchor_room_speak.svga", API_Image_URL]; + NSURL *bgUrl = [NSURL fileURLWithPath:anatomiser1Name]; + [self.anatomiserExecutive chamberSvgaAboutWEEBSITE:bgUrl completionBlock:^(SVGAVideoEntity * _Nullable videoItem) { + @strongify(self); + self.svgExhibitionRegard.loops = INT_MAX; + self.svgExhibitionRegard.clearsAfterStop = NO; + self.svgExhibitionRegard.videoItem = videoItem; + [self.svgExhibitionRegard startAnimation]; + } failureBlock:^(NSError * _Nullable error) { + }]; + +} + +- (void)prohibitipositionConsumer:(ConsumerAbstractMatrix *)userInfo { + [super prohibitipositionConsumer:userInfo]; + self.seaxualityIndicateRegard.hidden = YES; + if (self.position == -1) { + [self.presentBWSttessRegard removeFromSuperview]; + } + [self addSubview:self.presentBWSttessRegard]; + [self.presentBWSttessRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(16); + make.top.mas_equalTo(self.stackView.mas_bottom).mas_offset(10); + make.centerX.mas_equalTo(self.intelligenceportraitIndicateRegard); + }]; +} + +#pragma mark - getter +- (SVGAAnatomiserExecutive *)anatomiserExecutive { + if (!_anatomiserExecutive) { + _anatomiserExecutive = [[SVGAAnatomiserExecutive alloc]init]; + } + return _anatomiserExecutive; +} + +- (SVGAImageView *)svgExhibitionRegard { + if (_svgExhibitionRegard == nil) { + _svgExhibitionRegard = [[SVGAImageView alloc]init]; + _svgExhibitionRegard.contentMode = UIViewContentModeScaleToFill; + _svgExhibitionRegard.userInteractionEnabled = NO; + _svgExhibitionRegard.frame = CGRectMake(0, 0, 384, 384); + _svgExhibitionRegard.hidden = YES; + _svgExhibitionRegard.backgroundColor = [UIColor clearColor]; + } + return _svgExhibitionRegard; +} +@end diff --git a/YuMi/Modules/YMRoom/View/PhaseRegard/MiecreoscoopeRegard/Anchor/KellegMiecreoscoopeRegard.h b/YuMi/Modules/YMRoom/View/PhaseRegard/MiecreoscoopeRegard/Anchor/KellegMiecreoscoopeRegard.h new file mode 100644 index 00000000..b123ccf2 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/PhaseRegard/MiecreoscoopeRegard/Anchor/KellegMiecreoscoopeRegard.h @@ -0,0 +1,16 @@ +// +// KellegMiecreoscoopeRegard.h +// YUMI +// +// Created by YUMI on 2022/2/14. +// + +#import "MiecreoscoopeRegard.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface KellegMiecreoscoopeRegard : MiecreoscoopeRegard + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/PhaseRegard/MiecreoscoopeRegard/Anchor/KellegMiecreoscoopeRegard.m b/YuMi/Modules/YMRoom/View/PhaseRegard/MiecreoscoopeRegard/Anchor/KellegMiecreoscoopeRegard.m new file mode 100644 index 00000000..7b69e039 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/PhaseRegard/MiecreoscoopeRegard/Anchor/KellegMiecreoscoopeRegard.m @@ -0,0 +1,143 @@ +// +// KellegMiecreoscoopeRegard.m +// YUMI +// +// Created by YUMI on 2022/2/14. +// + +#import "KellegMiecreoscoopeRegard.h" +#import +#import +#import "SVGA.h" +#import "SVGAAnatomiserExecutive.h" +#import "YUMIMacroUitls.h" +#import "MiecreoscoopeWaveRegard.h" + +@interface KellegMiecreoscoopeRegard () + +@property (nonatomic, strong) SVGAImageView *svgExhibitionRegard; +@property (nonatomic, strong) SVGAAnatomiserExecutive *anatomiserExecutive; +@property (nonatomic, assign) NSInteger position; + +@end + +@implementation KellegMiecreoscoopeRegard + +- (void)initSubViews { + [super initSubViews]; + [self insertSubview:self.svgExhibitionRegard belowSubview:self.intelligenceportraitIndicateRegard]; +} + +- (void)initChildLyRestrictions { + [super initChildLyRestrictions]; + [self.svgExhibitionRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.mas_equalTo(180); + make.center.equalTo(self.intelligenceportraitIndicateRegard); + }]; +} + +#pragma mark - MicroRegardCeremony +- (void)EvidencePresentBWSttessManner:(BOOL)isGiftValue { + if (self.position != -1) { + self.presentBWSttessRegard.hidden = YES; + } else { + self.presentBWSttessRegard.hidden = !isGiftValue; + } +} + +- (void)EvidenceDepartureManner:(BOOL)isLeaveMode { +} + +- (void)prohibitipositionMiecreoscoopeRegard:(MiecreoscoopeMHTueueMatrix *)model { + [super prohibitipositionMiecreoscoopeRegard:model]; + ConsumerAbstractMatrix * userInfo = model.userInfo; + int position = model.microState.position; + self.position = position; + if (position != -1 && userInfo == nil) { + self.monicerSequencignation.text = @""; + } + if (position == 0 || position == 1 || position == 2) { + self.intelligencePenetrateIndicateRegard.hidden = NO; + } else { + self.intelligencePenetrateIndicateRegard.hidden = YES; + } + + if (position == -1) { + if (userInfo) { + if ([self.subviews containsObject:self.leaveSequencignation]) { + [self.leaveSequencignation removeFromSuperview]; + } + } else { + if (![self.subviews containsObject:self.leaveSequencignation]) { + [self insertSubview:self.leaveSequencignation belowSubview:self.presentBWSttessRegard]; + [self.leaveSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.intelligenceportraitIndicateRegard); + }]; + self.leaveSequencignation.layer.cornerRadius = self.frame.size.width * 0.5; + self.leaveSequencignation.layer.masksToBounds = YES; + } + } + self.loudspeakerDeclareIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_position_mute_Anchor"]; + [self.loudspeakerDeclareIndicateRegard mas_remakeConstraints:^(MASConstraintMaker *make) { + make.bottom.mas_equalTo(self.intelligenceportraitIndicateRegard).mas_offset(-2); + make.right.mas_equalTo(self.intelligenceportraitIndicateRegard).mas_offset(-(120 / 4) +11); + make.width.height.mas_equalTo(22); + }]; + + self.svgExhibitionRegard.hidden = NO; + @weakify(self); + NSString * anatomiser1Name = [NSString stringWithFormat:@"%@/anchor_room_speak.svga", API_Image_URL]; + NSURL *bgUrl = [NSURL fileURLWithPath:anatomiser1Name]; + [self.anatomiserExecutive chamberSvgaAboutWEEBSITE:bgUrl completionBlock:^(SVGAVideoEntity * _Nullable videoItem) { + @strongify(self); + self.svgExhibitionRegard.loops = INT_MAX; + self.svgExhibitionRegard.clearsAfterStop = NO; + self.svgExhibitionRegard.videoItem = videoItem; + [self.svgExhibitionRegard startAnimation]; + } failureBlock:^(NSError * _Nullable error) { + }]; + } else { + self.svgExhibitionRegard.hidden = YES; + } +} + +- (void)prohibitipositionConsumer:(ConsumerAbstractMatrix *)userInfo { + [super prohibitipositionConsumer:userInfo]; + self.postionSequencignation.hidden = YES; + if (self.position == -1) { + self.monicerSequencignation.font = [UIFont systemFontOfSize:14 weight:UIFontWeightBold]; + NSString *nickStr = userInfo.nick; + if (userInfo.nick.length > 10) { + nickStr = [NSString stringWithFormat:@"%@…", [userInfo.nick substringToIndex:10]]; + } + self.monicerSequencignation.text = nickStr.length > 0 ? nickStr : @""; + } +} + +- (void)consumerSpeaking { + if (self.position != -1) { + [self.animationView inititowardseSurgeBrectifyness]; + } +} + +#pragma mark - setter and getter +- (SVGAAnatomiserExecutive *)anatomiserExecutive { + if (!_anatomiserExecutive) { + _anatomiserExecutive = [[SVGAAnatomiserExecutive alloc]init]; + } + return _anatomiserExecutive; +} + +- (SVGAImageView *)svgExhibitionRegard { + if (_svgExhibitionRegard == nil) { + _svgExhibitionRegard = [[SVGAImageView alloc]init]; + _svgExhibitionRegard.contentMode = UIViewContentModeScaleToFill; + _svgExhibitionRegard.userInteractionEnabled = NO; + _svgExhibitionRegard.frame = CGRectMake(0, 0, 384, 384); + _svgExhibitionRegard.hidden = YES; + _svgExhibitionRegard.backgroundColor = [UIColor clearColor]; + } + return _svgExhibitionRegard; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/PhaseRegard/MiecreoscoopeRegard/Dating/EngagementMiecreoscoopeRegard.h b/YuMi/Modules/YMRoom/View/PhaseRegard/MiecreoscoopeRegard/Dating/EngagementMiecreoscoopeRegard.h new file mode 100644 index 00000000..eb138548 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/PhaseRegard/MiecreoscoopeRegard/Dating/EngagementMiecreoscoopeRegard.h @@ -0,0 +1,16 @@ +// +// EngagementMiecreoscoopeRegard.h +// YUMI +// +// Created by YUMI on 2022/1/5. +// + +#import "MiecreoscoopeRegard.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface EngagementMiecreoscoopeRegard : MiecreoscoopeRegard + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/PhaseRegard/MiecreoscoopeRegard/Dating/EngagementMiecreoscoopeRegard.m b/YuMi/Modules/YMRoom/View/PhaseRegard/MiecreoscoopeRegard/Dating/EngagementMiecreoscoopeRegard.m new file mode 100644 index 00000000..fe16966c --- /dev/null +++ b/YuMi/Modules/YMRoom/View/PhaseRegard/MiecreoscoopeRegard/Dating/EngagementMiecreoscoopeRegard.m @@ -0,0 +1,306 @@ +// +// EngagementMiecreoscoopeRegard.m +// YUMI +// +// Created by YUMI on 2022/1/5. +// + +#import "EngagementMiecreoscoopeRegard.h" +#import +#import "NetIndicateRegard.h" +#import "AccountAbstractStorage.h" + +@interface EngagementMiecreoscoopeRegard () +@property (nonatomic,strong) NetIndicateRegard *capIndicateRegard; +@property (nonatomic,strong) UIButton *extractBtuton; +@property (nonatomic,strong) UIImageView *engagementGenreRegard; +@property (nonatomic,strong) UIImageView *vipIntelligencePenetrateIndicateRegard; +@end + +@implementation EngagementMiecreoscoopeRegard + +- (void)initSubViews { + [super initSubViews]; + [self insertSubview:self.capIndicateRegard aboveSubview:self.intelligencePenetrateIndicateRegard]; + [self insertSubview:self.engagementGenreRegard belowSubview:self.intelligencePenetrateIndicateRegard]; + [self insertSubview:self.vipIntelligencePenetrateIndicateRegard aboveSubview:self.engagementGenreRegard]; + [self addSubview:self.extractBtuton]; + +} + +- (void)initChildLyRestrictions { + [super initChildLyRestrictions]; + [self.capIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.intelligencePenetrateIndicateRegard); + }]; + + [self.extractBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(37, 14)); + make.centerX.mas_equalTo(self.intelligenceportraitIndicateRegard); + make.centerY.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_bottom).mas_offset(-2); + }]; + + [self.engagementGenreRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.intelligenceportraitIndicateRegard); + }]; + + [self.vipIntelligencePenetrateIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.capIndicateRegard); + }]; +} + + +- (void)prohibitipositionMiecreoscoopeRegard:(MiecreoscoopeMHTueueMatrix *)model { + [super prohibitipositionMiecreoscoopeRegard:model]; + ChamberAbstractMatrix * roomInfo = self.acquireChamberAbstract; + ConsumerAbstractMatrix * userInfo = model.userInfo; + NSMutableDictionary * micQueue = [self acquireMiecreoscoopeInthecaseofmtowardsion]; + NSString * typeImageName = @""; + int position = model.microState.position; + + if (userInfo == nil || userInfo.uid <= 0) { + if (position == -1) { + self.postionSequencignation.hidden = YES; + self.monicerSequencignation.text = YMLocalizedString(@"DatingMicro_View_0"); + self.seaxualityIndicateRegard.hidden = YES; + self.monicerSequencignation.hidden = NO; + } else if(position == 999) { + self.postionSequencignation.hidden = YES; + self.monicerSequencignation.hidden = YES; + self.seaxualityIndicateRegard.hidden = YES; + } + } else { + if (position == 999) { + self.postionSequencignation.hidden = YES; + self.monicerSequencignation.hidden = NO; + self.seaxualityIndicateRegard.hidden = YES; + } else { + if (position == -1) { + self.postionSequencignation.hidden = YES; + self.seaxualityIndicateRegard.hidden = NO; + } else { + self.postionSequencignation.hidden = NO; + self.seaxualityIndicateRegard.hidden = YES; + } + self.monicerSequencignation.hidden = NO; + } + } + NSString *nickStr = userInfo.nick; + if (userInfo.nick.length > 5) { + nickStr = [NSString stringWithFormat:@"%@…", [userInfo.nick substringToIndex:5]]; + } + + if (position == 2 || position == 3 || position == 6 || position == 7) { + self.monicerSequencignation.text = nickStr.length > 0 ? nickStr : YMLocalizedString(@"DatingMicro_View_1"); + self.engagementGenreRegard.hidden = NO; + typeImageName = @"room_position_dating_male_bg"; + self.engagementGenreRegard.image = [UIImage imageNamed:typeImageName]; + model.microState.datingMicType = DatingLoudspeakerGenre_Female; + } else if(position == 0 || position == 1 || position == 4 || position == 5){ + self.monicerSequencignation.text = nickStr.length > 0 ? nickStr : YMLocalizedString(@"DatingMicro_View_2"); + self.engagementGenreRegard.hidden = NO; + typeImageName = @"room_position_dating_female_bg"; + self.engagementGenreRegard.image = [UIImage imageNamed:typeImageName]; + model.microState.datingMicType = DatingLoudspeakerGenre_Male; + } else { + self.engagementGenreRegard.hidden = YES; + model.microState.datingMicType = DatingLoudspeakerGenre_Other; + } + + if (userInfo && userInfo.capUrl.length > 0) { + self.capIndicateRegard.imageUrl = userInfo.capUrl; + self.capIndicateRegard.hidden = NO; + } else { + self.capIndicateRegard.hidden = YES; + } + + if (model && position == 999) { + self.vipIntelligencePenetrateIndicateRegard.hidden = NO; + if (roomInfo.blindDateState == ChamberDisportDateingGenre_Talk || roomInfo.blindDateState == ChamberDisportDateingGenre_Finish) { + self.vipIntelligencePenetrateIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_mode_dating_vip_title"]; + } else { + if (userInfo) { + self.vipIntelligencePenetrateIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_mode_dating_vip"]; + } else { + self.vipIntelligencePenetrateIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_mode_dating_vip_title"]; + } + } + } else { + if (position != -1 && userInfo && userInfo.vipMic) { + self.vipIntelligencePenetrateIndicateRegard.hidden = NO; + if (roomInfo.blindDateState == ChamberDisportDateingGenre_Talk || roomInfo.blindDateState == ChamberDisportDateingGenre_Finish) { + self.vipIntelligencePenetrateIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_mode_dating_vip_title"]; + } else { + self.vipIntelligencePenetrateIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_mode_dating_vip"]; + } + } else { + self.vipIntelligencePenetrateIndicateRegard.hidden = YES; + } + } + + self.extractBtuton.hidden = YES; + if (position == -1) {return;} + + if (roomInfo.blindDateState == ChamberDisportDateingGenre_Pick) { + + MiecreoscoopeMHTueueMatrix * presideModel = [self.acquireMiecreoscoopeInthecaseofmtowardsion objectForKey:@"-1"]; + if (presideModel.userInfo && presideModel.userInfo.uid == [AccountAbstractStorage instance].acquireCid.integerValue) { + if (userInfo) { + self.extractBtuton.hidden = NO; + if (userInfo.vipMic || position == 999) { + + if (userInfo.hasSelectUser) { + [self.extractBtuton setTitle:[NSString stringWithFormat:YMLocalizedString(@"DatingMicro_View_3"), (userInfo.selectMicPosition + 1)] forState:UIControlStateNormal]; + [self.extractBtuton setBackgroundImage:nil forState:UIControlStateNormal]; + } else { + [self.extractBtuton setTitle:YMLocalizedString(@"DatingMicro_View_4") forState:UIControlStateNormal]; + [self.extractBtuton setBackgroundImage:nil forState:UIControlStateNormal]; + } + } else { + + if (userInfo.hasSelectUser) { + MiecreoscoopeMHTueueMatrix *sequence = [micQueue objectForKey:[NSString stringWithFormat:@"%d", userInfo.selectMicPosition]]; + NSString *selectNum; + if (sequence.userInfo.vipMic) { + selectNum = @"选VIP"; + } else { + selectNum = [NSString stringWithFormat:YMLocalizedString(@"Dating_Micro_View_6"), (userInfo.selectMicPosition + 1)]; + } + if (model.microState.datingMicType == DatingLoudspeakerGenre_Male) { + [self prohibitipositionExtractChampion:selectNum backmImageName:@"room_mode_dating_male_select"]; + } else { + [self prohibitipositionExtractChampion:selectNum backmImageName:@"room_mode_dating_female_select"]; + } + } else { + [self prohibitipositionExtractChampion:YMLocalizedString(@"Dating_Micro_View_7") backmImageName:@"room_mode_dating_not_select"]; + } + } + } + } else { + + if (userInfo) { + self.extractBtuton.hidden = NO; + if (userInfo.vipMic || position ==999) { + + if (userInfo.hasSelectUser) { + + if (userInfo.uid == [AccountAbstractStorage instance].acquireCid.integerValue) { + [self.extractBtuton setTitle:[NSString stringWithFormat:YMLocalizedString(@"Dating_Micro_View_8"), (userInfo.selectMicPosition + 1)] forState:UIControlStateNormal]; + [self.extractBtuton setBackgroundImage:nil forState:UIControlStateNormal]; + } else { + [self.extractBtuton setTitle:YMLocalizedString(@"Dating_Micro_View_9") forState:UIControlStateNormal]; + [self.extractBtuton setBackgroundImage:nil forState:UIControlStateNormal]; + } + } else { + [self.extractBtuton setTitle:YMLocalizedString(@"DatingMicro_View_10") forState:UIControlStateNormal]; + [self.extractBtuton setBackgroundImage:nil forState:UIControlStateNormal]; + } + } else { + + if (userInfo.hasSelectUser) { + + if (userInfo.uid == [AccountAbstractStorage instance].acquireCid.integerValue) { + MiecreoscoopeMHTueueMatrix *sequence = [micQueue objectForKey:[NSString stringWithFormat:@"%d", userInfo.selectMicPosition]]; + NSString *selectNum; + if (sequence.userInfo.vipMic) { + selectNum = @"选VIP"; + } else { + selectNum = [NSString stringWithFormat:YMLocalizedString(@"DatingMicro_View_12"), (userInfo.selectMicPosition + 1)]; + } + if (model.microState.datingMicType == DatingLoudspeakerGenre_Male) { + [self prohibitipositionExtractChampion:selectNum backmImageName:@"room_mode_dating_male_select"]; + } else { + [self prohibitipositionExtractChampion:selectNum backmImageName:@"room_mode_dating_female_select"]; + } + } else { + if (model.microState.datingMicType == DatingLoudspeakerGenre_Male) { + [self prohibitipositionExtractChampion:YMLocalizedString(@"DatingMicro_View_13") backmImageName:@"room_mode_dating_male_select"]; + } else { + [self prohibitipositionExtractChampion:YMLocalizedString(@"DatingMicro_View_14") backmImageName:@"room_mode_dating_female_select"]; + } + } + } else { + [self prohibitipositionExtractChampion:YMLocalizedString(@"DatingMicro_View_15") backmImageName:@"room_mode_dating_not_select"]; + } + } + } + } + } else if(roomInfo.blindDateState == ChamberDisportDateingGenre_Result || roomInfo.blindDateState == ChamberDisportDateingGenre_Finish) { + + if (userInfo) { + self.extractBtuton.hidden = NO; + if (userInfo.vipMic || position == 999) { + + if (userInfo.hasSelectUser) { + [self.extractBtuton setTitle:[NSString stringWithFormat:YMLocalizedString(@"DatingMicro_View_16"), (userInfo.selectMicPosition + 1)] forState:UIControlStateNormal]; + [self.extractBtuton setBackgroundImage:nil forState:UIControlStateNormal]; + } else { + [self.extractBtuton setTitle:YMLocalizedString(@"DatingMicro_View_17") forState:UIControlStateNormal]; + [self.extractBtuton setBackgroundImage:nil forState:UIControlStateNormal]; + } + } else { + + if (userInfo.hasSelectUser) { + MiecreoscoopeMHTueueMatrix *sequence = [micQueue objectForKey:[NSString stringWithFormat:@"%d", userInfo.selectMicPosition]]; + NSString *selectNum; + if (sequence.userInfo.vipMic) { + selectNum = @"选VIP"; + } else { + selectNum = [NSString stringWithFormat:YMLocalizedString(@"DatingMicro_View_19"), (userInfo.selectMicPosition + 1)]; + } + if (model.microState.datingMicType == DatingLoudspeakerGenre_Male) { + [self prohibitipositionExtractChampion:selectNum backmImageName:@"room_mode_dating_male_select"]; + } else { + [self prohibitipositionExtractChampion:selectNum backmImageName:@"room_mode_dating_female_select"]; + } + } else { + [self prohibitipositionExtractChampion:YMLocalizedString(@"DatingMicro_View_20") backmImageName:@"room_mode_dating_not_select"]; + } + } + } + + } +} + +- (void)prohibitipositionExtractChampion:(NSString *)title backmImageName:(NSString *)backImageName { + [self.extractBtuton setTitle:title forState:UIControlStateNormal]; + [self.extractBtuton setBackgroundImage:[UIImage imageNamed:backImageName] forState:UIControlStateNormal]; +} + + +- (UIImageView *)engagementGenreRegard { + if (!_engagementGenreRegard) { + _engagementGenreRegard = [[UIImageView alloc] init]; + _engagementGenreRegard.userInteractionEnabled = YES; + } + return _engagementGenreRegard; +} + +- (NetIndicateRegard *)capIndicateRegard { + if (!_capIndicateRegard) { + _capIndicateRegard = [[NetIndicateRegard alloc] init]; + } + return _capIndicateRegard; +} + +- (UIButton *)extractBtuton { + if (!_extractBtuton) { + _extractBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_extractBtuton setTitle:YMLocalizedString(@"DatingMicro_View_21") forState:UIControlStateNormal]; + _extractBtuton.titleLabel.font = [UIFont systemFontOfSize:9]; + _extractBtuton.userInteractionEnabled = NO; + _extractBtuton.hidden = YES; + } + return _extractBtuton; +} + +- (UIImageView *)vipIntelligencePenetrateIndicateRegard { + if (!_vipIntelligencePenetrateIndicateRegard) { + _vipIntelligencePenetrateIndicateRegard = [[UIImageView alloc] init]; + _vipIntelligencePenetrateIndicateRegard.userInteractionEnabled = YES; + _vipIntelligencePenetrateIndicateRegard.hidden = YES; + } + return _vipIntelligencePenetrateIndicateRegard; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/PhaseRegard/MiecreoscoopeRegard/Dating/MiecreoscoopeEngagementProgressRegard.h b/YuMi/Modules/YMRoom/View/PhaseRegard/MiecreoscoopeRegard/Dating/MiecreoscoopeEngagementProgressRegard.h new file mode 100644 index 00000000..2e99ebea --- /dev/null +++ b/YuMi/Modules/YMRoom/View/PhaseRegard/MiecreoscoopeRegard/Dating/MiecreoscoopeEngagementProgressRegard.h @@ -0,0 +1,16 @@ +// +// MiecreoscoopeEngagementProgressRegard.h +// YUMI +// +// Created by YUMI on 2022/1/4. +// + +#import +#import "ChamberAbstractMatrix.h" +NS_ASSUME_NONNULL_BEGIN + +@interface MiecreoscoopeEngagementProgressRegard : UIView +@property (nonatomic,assign) ChamberDisportDateingGenre blindDateState; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/PhaseRegard/MiecreoscoopeRegard/Dating/MiecreoscoopeEngagementProgressRegard.m b/YuMi/Modules/YMRoom/View/PhaseRegard/MiecreoscoopeRegard/Dating/MiecreoscoopeEngagementProgressRegard.m new file mode 100644 index 00000000..f89e3878 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/PhaseRegard/MiecreoscoopeRegard/Dating/MiecreoscoopeEngagementProgressRegard.m @@ -0,0 +1,103 @@ +// +// MiecreoscoopeEngagementProgressRegard.m +// YUMI +// +// Created by YUMI on 2022/1/4. +// + +#import "MiecreoscoopeEngagementProgressRegard.h" +#import +#import "DJDKMIMOMColor.h" +#import "MKJPopup.h" +#import "YUMIHtmlUrl.h" +#import "YUMIMacroUitls.h" +#import "YUMIChamberEngagementTissuePrecautiousRegard.h" + +@interface MiecreoscoopeEngagementProgressRegard () +@property (nonatomic,strong) UIImageView *courageSceneIndicateRegard; +@property (nonatomic,strong) UIButton *talkBtuton; + +@end + +@implementation MiecreoscoopeEngagementProgressRegard + +- (instancetype)initWithFrame:(CGRect)frame { + if (self = [super initWithFrame:frame]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.courageSceneIndicateRegard]; + [self addSubview:self.talkBtuton]; +} + +- (void)initChildLyRestrictions { + [self.courageSceneIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(95 * kScreenScale, 84 * kScreenScale)); + make.centerX.mas_equalTo(self); + make.top.mas_equalTo(self).offset(12 * kScreenScale); + }]; + + [self.talkBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.courageSceneIndicateRegard.mas_bottom).offset(8 * kScreenScale); + make.size.mas_equalTo(CGSizeMake(65 *kScreenScale, 21 * kScreenScale)); + make.centerX.mas_equalTo(self.courageSceneIndicateRegard); + }]; +} + +#pragma mark - Event Response +- (void)betowardsEngagementPreadominantRecognition { + [MKJPopup dismiss]; + YUMIChamberEngagementTissuePrecautiousRegard * webView = [[YUMIChamberEngagementTissuePrecautiousRegard alloc] init]; + webView.url = URLWithType(kRoomDatingRule); + [MKJPopup popupRegard:webView style:MKJPopupStyleAlert]; +} + +#pragma mark - Getters And Setters +- (void)setBlindDateState:(ChamberDisportDateingGenre)blindDateState { + _blindDateState = blindDateState; + NSString *talkTitle = YMLocalizedString(@"Micro_Dating_Progress_View_0"); + switch (_blindDateState) { + case ChamberDisportDateingGenre_Talk: + talkTitle = YMLocalizedString(@"Micro_Dating_Progress_View_1"); + break; + case ChamberDisportDateingGenre_Pick: + talkTitle = YMLocalizedString(@"Micro_Dating_Progress_View_2"); + break; + case ChamberDisportDateingGenre_Result: + talkTitle = YMLocalizedString(@"Micro_Dating_Progress_View_3"); + break; + default: + break; + } + [self.talkBtuton setTitle:talkTitle forState:UIControlStateNormal]; +} + +- (UIImageView *)courageSceneIndicateRegard { + if (!_courageSceneIndicateRegard) { + _courageSceneIndicateRegard = [[UIImageView alloc] init]; + _courageSceneIndicateRegard.userInteractionEnabled = YES; + _courageSceneIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_mode_dating_heart_pic"]; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(betowardsEngagementPreadominantRecognition)]; + [_courageSceneIndicateRegard addGestureRecognizer:tap]; + } + return _courageSceneIndicateRegard; +} + +- (UIButton *)talkBtuton { + if (_talkBtuton == nil) { + _talkBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_talkBtuton setTitle:YMLocalizedString(@"Micro_Dating_Progress_View_4") forState:UIControlStateNormal]; + [_talkBtuton setTitleColor:UIColorFromRGB(0xFFE1E8) forState:UIControlStateNormal]; + _talkBtuton.titleLabel.font = [UIFont boldSystemFontOfSize:13]; + _talkBtuton.titleLabel.textAlignment = NSTextAlignmentCenter; + [_talkBtuton setBackgroundImage:[UIImage imageNamed:@"yumi_scope_mode_dating_progress_background"] forState:UIControlStateNormal]; + } + return _talkBtuton; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/PhaseRegard/MiecreoscoopeRegard/LittleGame/TraitCompetitionMiecreoscoopeRegard.h b/YuMi/Modules/YMRoom/View/PhaseRegard/MiecreoscoopeRegard/LittleGame/TraitCompetitionMiecreoscoopeRegard.h new file mode 100644 index 00000000..c954b218 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/PhaseRegard/MiecreoscoopeRegard/LittleGame/TraitCompetitionMiecreoscoopeRegard.h @@ -0,0 +1,16 @@ +// +// TraitCompetitionMiecreoscoopeRegard.h +// YUMI +// +// Created by YUMI on 2022/2/11. +// + +#import "MiecreoscoopeRegard.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface TraitCompetitionMiecreoscoopeRegard : MiecreoscoopeRegard + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/PhaseRegard/MiecreoscoopeRegard/LittleGame/TraitCompetitionMiecreoscoopeRegard.m b/YuMi/Modules/YMRoom/View/PhaseRegard/MiecreoscoopeRegard/LittleGame/TraitCompetitionMiecreoscoopeRegard.m new file mode 100644 index 00000000..8cd4196e --- /dev/null +++ b/YuMi/Modules/YMRoom/View/PhaseRegard/MiecreoscoopeRegard/LittleGame/TraitCompetitionMiecreoscoopeRegard.m @@ -0,0 +1,103 @@ +// +// TraitCompetitionMiecreoscoopeRegard.m +// YUMI +// +// Created by YUMI on 2022/2/11. +// + +#import "TraitCompetitionMiecreoscoopeRegard.h" +#import +#import "DJDKMIMOMColor.h" + +@interface TraitCompetitionMiecreoscoopeRegard () +@property (nonatomic,strong) UIButton *declareBtuton; +@end + +@implementation TraitCompetitionMiecreoscoopeRegard + + +- (void)initSubViews { + [super initSubViews]; + [self insertSubview:self.declareBtuton belowSubview:self.loudspeakerDeclareIndicateRegard]; +} + +- (void)initChildLyRestrictions { + [super initChildLyRestrictions]; + [self.declareBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(40); + make.height.mas_equalTo(16); + make.centerX.mas_equalTo(self); + make.bottom.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_bottom); + }]; +} + +- (void)prohibitipositionMiecreoscoopeRegard:(MiecreoscoopeMHTueueMatrix *)model { + [super prohibitipositionMiecreoscoopeRegard:model]; + ConsumerAbstractMatrix * info = model.userInfo; + self.declareBtuton.hidden = NO; + self.seaxualityIndicateRegard.hidden = YES; + if (info.uid == self.acquireChamberAbstract.uid) { + [self.declareBtuton setTitle:YMLocalizedString(@"Little_Game_Micro_View_0") forState:UIControlStateNormal]; + [self.declareBtuton setBackgroundColor:UIColorFromRGB(0x20AAF5)]; + } else { + if (info.gameStatus == LittleGameDisportPosition_NoIn) { + self.declareBtuton.hidden = YES; + } else if (info.gameStatus == LittleGameDisportPosition_IsIn) { + [self.declareBtuton setTitle:YMLocalizedString(@"Little_Game_Micro_View_1") forState:UIControlStateNormal]; + [self.declareBtuton setBackgroundColor:UIColorFromRGB(0xFC4F6D)]; + } else if (info.gameStatus == LittleGameDisportPosition_Ready) { + [self.declareBtuton setTitle:YMLocalizedString(@"Little_Game_Micro_View_2") forState:UIControlStateNormal]; + [self.declareBtuton setBackgroundColor:UIColorFromRGB(0x56D41A)]; + } else if (info.gameStatus == LittleGameDisportPosition_Plying) { + [self.declareBtuton setTitle:YMLocalizedString(@"Little_Game_Micro_View_3") forState:UIControlStateNormal]; + [self.declareBtuton setBackgroundColor:UIColorFromRGB(0xFFA936)]; + } else { + self.declareBtuton.hidden = YES; + } + } + if (info.nick.length > 0) { + NSString *nickStr = info.nick; + if (nickStr.length > 3) { + nickStr = [NSString stringWithFormat:@"%@…", [nickStr substringToIndex:3]]; + } + self.monicerSequencignation.text = nickStr; + } + + if (model.microState.position == -1) { + self.monicerSequencignation.hidden = NO; + self.postionSequencignation.hidden = NO; + } + + [self.stackView mas_updateConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_bottom).offset(6); + }]; +} + +- (void)prohibitipositionConsumer:(ConsumerAbstractMatrix *)userInfo { + [super prohibitipositionConsumer:userInfo]; + + [self.presentBWSttessRegard removeFromSuperview]; + [self addSubview:self.presentBWSttessRegard]; + [self.presentBWSttessRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(16); + make.top.mas_equalTo(self.stackView.mas_bottom).mas_offset(5); + make.centerX.mas_equalTo(self.intelligenceportraitIndicateRegard); + }]; +} + +#pragma mark - Getters And Setters +- (UIButton *)declareBtuton { + if (!_declareBtuton) { + _declareBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_declareBtuton setTitle:YMLocalizedString(@"Little_Game_Micro_View_4") forState:UIControlStateNormal]; + [_declareBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + _declareBtuton.titleLabel.font = [UIFont systemFontOfSize:10]; + [_declareBtuton setBackgroundColor:UIColorFromRGB(0xFFA936)]; + _declareBtuton.layer.masksToBounds = YES; + _declareBtuton.layer.cornerRadius = 8; + _declareBtuton.layer.borderColor = UIColor.whiteColor.CGColor; + _declareBtuton.layer.borderWidth = 1; + } + return _declareBtuton; +} +@end diff --git a/YuMi/Modules/YMRoom/View/PhaseRegard/MiecreoscoopeRegard/MicroRegardCeremony.h b/YuMi/Modules/YMRoom/View/PhaseRegard/MiecreoscoopeRegard/MicroRegardCeremony.h new file mode 100644 index 00000000..7c2bcb2f --- /dev/null +++ b/YuMi/Modules/YMRoom/View/PhaseRegard/MiecreoscoopeRegard/MicroRegardCeremony.h @@ -0,0 +1,64 @@ +// +// YMRoomPositionDataSourceProtocol.h +// YUMI +// +// Created by zu on 2021/10/27. +// + +#import +#import "MiecreoscoopeMHTueueMatrix.h" +#import "MiecreoscoopeStateMatrix.h" +#import "ConsumerAbstractMatrix.h" +#import "ChamberAbstractMatrix.h" +#import "ChamberAcceptDischargeAbstractMatrix.h" +NS_ASSUME_NONNULL_BEGIN + +@protocol MicroRegardCeremony + +- (void)initSubViews; + + +- (void)initChildLyRestrictions; + + +- (void)EvidenceDepartureManner:(BOOL)isLeaveMode; + + +- (void)prohibitipositionMiecreoscoopeRegard:(MiecreoscoopeMHTueueMatrix *)model; + + +- (void)prohibitipositionConsumer:(ConsumerAbstractMatrix *)userInfo; + + +- (void)consumerSpeaking; + + +- (void)EvidenceingAccept:(ChamberAcceptDischargeAbstractMatrix *)receiveInfo; + + +- (void)prohibitipositionPresentBWSttess:(long long)giftValue; + + +- (void)EvidencePresentBWSttessManner:(BOOL)isGiftValue; + + +- (void)replacementPresentBWSttess; + + +- (void)prohibitipositionChamberAbstract:(ChamberAbstractMatrix *)roomInfo; + + +- (ChamberAbstractMatrix *)acquireChamberAbstract; + + +- (void)prohibitipositionLoudspeakerInthecaseofmtowardsion:(NSMutableDictionary *)micQueue; + +- (void)refurbishPolariztowardsionisHighPrototype:(BOOL)isHighLevel isExhibit:(BOOL)isExhibit; + + +- (void)replacementPositonPrototypeApexknot; + +- (NSMutableDictionary*)acquireMiecreoscoopeInthecaseofmtowardsion; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/PhaseRegard/MiecreoscoopeRegard/MiecreoscoopeMagnificentWaveRegard.h b/YuMi/Modules/YMRoom/View/PhaseRegard/MiecreoscoopeRegard/MiecreoscoopeMagnificentWaveRegard.h new file mode 100644 index 00000000..216d33e5 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/PhaseRegard/MiecreoscoopeRegard/MiecreoscoopeMagnificentWaveRegard.h @@ -0,0 +1,18 @@ +// +// MiecreoscoopeMagnificentWaveRegard.h +// YUMI +// +// Created by YUMI on 2022/1/18. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface MiecreoscoopeMagnificentWaveRegard : UIView + +- (void)inititowardseSurgeBrectifynessAboutWeebsite:(NSString *)url; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/PhaseRegard/MiecreoscoopeRegard/MiecreoscoopeMagnificentWaveRegard.m b/YuMi/Modules/YMRoom/View/PhaseRegard/MiecreoscoopeRegard/MiecreoscoopeMagnificentWaveRegard.m new file mode 100644 index 00000000..471dfa8d --- /dev/null +++ b/YuMi/Modules/YMRoom/View/PhaseRegard/MiecreoscoopeRegard/MiecreoscoopeMagnificentWaveRegard.m @@ -0,0 +1,88 @@ +// +// MiecreoscoopeMagnificentWaveRegard.m +// YUMI +// +// Created by YUMI on 2022/1/18. +// + +#import "MiecreoscoopeMagnificentWaveRegard.h" +#import "SVGA.h" +#import +#import "YUMIMacroUitls.h" + +@interface MiecreoscoopeMagnificentWaveRegard() + +@property (nonatomic, strong) SVGAImageView *svgExhibitionRegard; + +@property (strong, nonatomic) SVGAParser *anatomiser; + +@property (nonatomic,assign) BOOL isBrectifynessing; + +@end + +@implementation MiecreoscoopeMagnificentWaveRegard + +- (instancetype)initWithFrame:(CGRect)frame +{ + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Public Method +- (void)inititowardseSurgeBrectifynessAboutWeebsite:(NSString *)url { + if (self.isBrectifynessing) { + return; + } + @kWeakify(self); + [self.anatomiser parseWithURL:[NSURL URLWithString:url] completionBlock:^(SVGAVideoEntity * _Nullable videoItem) { + @kStrongify(self); + self.svgExhibitionRegard.loops = 1; + self.svgExhibitionRegard.clearsAfterStop = YES; + self.svgExhibitionRegard.videoItem = videoItem; + self.isBrectifynessing = YES; + [self.svgExhibitionRegard startAnimation]; + } failureBlock:^(NSError * _Nullable error) { + }]; +} + +- (void)suspeindSurgeBrectifyness { + self.isBrectifynessing = NO; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.svgExhibitionRegard]; + self.svgExhibitionRegard.delegate = self; +} + +- (void)initChildLyRestrictions { + [self.svgExhibitionRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self); + }]; +} + +#pragma mark - SVGAPlayerDelegate +- (void)svgaPlayerDidFinishedAnimation:(SVGAPlayer *)player { + [self suspeindSurgeBrectifyness]; +} + +- (SVGAImageView *)svgExhibitionRegard { + if (!_svgExhibitionRegard) { + _svgExhibitionRegard = [[SVGAImageView alloc] init]; + _svgExhibitionRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _svgExhibitionRegard; +} + +- (SVGAParser *)anatomiser { + if (!_anatomiser) { + _anatomiser = [[SVGAParser alloc]init]; + } + return _anatomiser; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/PhaseRegard/MiecreoscoopeRegard/MiecreoscoopePresentStressRegard.h b/YuMi/Modules/YMRoom/View/PhaseRegard/MiecreoscoopeRegard/MiecreoscoopePresentStressRegard.h new file mode 100644 index 00000000..f8f5f9d0 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/PhaseRegard/MiecreoscoopeRegard/MiecreoscoopePresentStressRegard.h @@ -0,0 +1,16 @@ +// +// MiecreoscoopePresentStressRegard.h +// YUMI +// +// Created by YUMI on 2021/12/13. +// + +#import "MiecreoscoopeRegard.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface MiecreoscoopePresentStressRegard : UIView +@property (nonatomic,assign) long long giftValue; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/PhaseRegard/MiecreoscoopeRegard/MiecreoscoopePresentStressRegard.m b/YuMi/Modules/YMRoom/View/PhaseRegard/MiecreoscoopeRegard/MiecreoscoopePresentStressRegard.m new file mode 100644 index 00000000..3b798b35 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/PhaseRegard/MiecreoscoopeRegard/MiecreoscoopePresentStressRegard.m @@ -0,0 +1,96 @@ +// +// MiecreoscoopePresentStressRegard.m +// YUMI +// +// Created by YUMI on 2021/12/13. +// + +#import "MiecreoscoopePresentStressRegard.h" +#import + +@interface MiecreoscoopePresentStressRegard () +@property (nonatomic, strong) UIView *backgroundRegard; +@property (nonatomic, strong) UIImageView *figureIndicateRegard; +@property (nonatomic, strong) UILabel *bWSttessSequencignation; +@end + +@implementation MiecreoscoopePresentStressRegard + +- (instancetype)initWithFrame:(CGRect)frame { + if (self = [super initWithFrame:frame]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.backgroundRegard]; + [self.backgroundRegard addSubview:self.figureIndicateRegard]; + [self.backgroundRegard addSubview:self.bWSttessSequencignation]; +} + +- (void)initChildLyRestrictions { + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.backgroundRegard); + }]; + + [self.backgroundRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self.bWSttessSequencignation).mas_offset(4); + }]; + [self.figureIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.backgroundRegard).offset(4); + make.centerY.mas_equalTo(self.backgroundRegard); + make.width.height.mas_equalTo(11); + }]; + [self.bWSttessSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.figureIndicateRegard.mas_right).offset(3); + make.centerY.mas_equalTo(self.backgroundRegard); + }]; + +} +#pragma mark - Getters And Setters +- (void)setGiftValue:(long long)giftValue { + NSString *value; + if (giftValue < 1000000) { + value = @(giftValue).stringValue; + } else if (giftValue >= 100000000) { + value = @"9999万+"; + } else { + value = [NSString stringWithFormat:YMLocalizedString(@"Micro_Gift_Value_View_1"), giftValue/10000]; + } + self.bWSttessSequencignation.text = value; +} + +- (UIView *)backgroundRegard { + if (!_backgroundRegard) { + _backgroundRegard = [[UIView alloc] init]; + _backgroundRegard.backgroundColor = [UIColor colorWithWhite:1.0 alpha:0.3]; + _backgroundRegard.layer.cornerRadius = 8; + _backgroundRegard.layer.masksToBounds = YES; + } + return _backgroundRegard; +} + +- (UIImageView *)figureIndicateRegard { + if (_figureIndicateRegard == nil) { + _figureIndicateRegard = [[UIImageView alloc] init]; + _figureIndicateRegard.userInteractionEnabled = YES; + _figureIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_position_giftValue_heart"]; + } + return _figureIndicateRegard; +} + +- (UILabel *)bWSttessSequencignation { + if (_bWSttessSequencignation == nil) { + _bWSttessSequencignation = [[UILabel alloc] init]; + _bWSttessSequencignation.textColor = UIColor.whiteColor; + _bWSttessSequencignation.font = [UIFont systemFontOfSize:10]; + _bWSttessSequencignation.text = @"0"; + } + return _bWSttessSequencignation; +} + + +@end diff --git a/YuMi/Modules/YMRoom/View/PhaseRegard/MiecreoscoopeRegard/MiecreoscoopeRegard.h b/YuMi/Modules/YMRoom/View/PhaseRegard/MiecreoscoopeRegard/MiecreoscoopeRegard.h new file mode 100644 index 00000000..23156769 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/PhaseRegard/MiecreoscoopeRegard/MiecreoscoopeRegard.h @@ -0,0 +1,30 @@ +// +// MiecreoscoopeRegard.h +// YUMI +// +// Created by YUMI on 2021/10/15. +// + +#import +#import +#import "MicroRegardCeremony.h" +#import "NetIndicateRegard.h" +#import "MiecreoscoopePresentStressRegard.h" + +@class MiecreoscoopePresentStressRegard, MiecreoscoopeWaveRegard; +NS_ASSUME_NONNULL_BEGIN +@interface MiecreoscoopeRegard : UIView +@property (nonatomic,strong, readonly) NetIndicateRegard *intelligenceportraitIndicateRegard; +@property (nonatomic,strong, readonly) UILabel *postionSequencignation; +@property (nonatomic,strong, readonly) UILabel *monicerSequencignation; +@property (nonatomic,strong, readonly) YYAnimatedImageView *intelligencePenetrateIndicateRegard; +@property (nonatomic,strong, readonly) MiecreoscoopePresentStressRegard *presentBWSttessRegard; +@property (nonatomic,strong, readonly) UILabel *leaveSequencignation; +@property (nonatomic,strong, readonly) UIImageView *loudspeakerDeclareIndicateRegard; +@property (nonatomic,strong, readonly) MiecreoscoopeWaveRegard *animationView; +@property (nonatomic,strong, readonly) UIImageView *seaxualityIndicateRegard; +@property (nonatomic, strong, readonly) UIStackView *stackView; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/PhaseRegard/MiecreoscoopeRegard/MiecreoscoopeRegard.m b/YuMi/Modules/YMRoom/View/PhaseRegard/MiecreoscoopeRegard/MiecreoscoopeRegard.m new file mode 100644 index 00000000..930c2437 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/PhaseRegard/MiecreoscoopeRegard/MiecreoscoopeRegard.m @@ -0,0 +1,683 @@ +// +// MiecreoscoopeRegard.m +// YUMI +// +// Created by YUMI on 2021/10/15. +// + +#import "MiecreoscoopeRegard.h" +#import +#import +#import "MiecreoscoopeWaveRegard.h" +#import "NetIndicateRegard.h" +#import "MiecreoscoopeMagnificentWaveRegard.h" +#import "YUMIChamberAcceptTool.h" +#import "YUMIHtmlUrl.h" +#import "ThemeColor+Room.h" +#import "XCCurrentVCStackExecutive.h" +#import "YUMITissueRegardGovernancer.h" +#import "SpriteSheetIndicateExecutive.h" +#import "YUMIMacroUitls.h" +#import "UIImage+Utils.h" +#import "ClientDisposition.h" +#import "ChamberAcceptAbstractMatrix.h" + +#define kScpaces 13 + +@interface MiecreoscoopeRegard () +@property (nonatomic,strong) NetIndicateRegard *intelligenceportraitIndicateRegard; +@property (nonatomic,strong) UIImageView *loudspeakerDeclareIndicateRegard; +@property (nonatomic,strong) UIStackView *stackView; +@property (nonatomic,strong) UILabel *postionSequencignation; +@property (nonatomic,strong) UILabel *monicerSequencignation; +@property (nonatomic,strong) UIImageView *seaxualityIndicateRegard; +@property (nonatomic,strong) MiecreoscoopeWaveRegard *animationView; +@property (nonatomic, strong) MiecreoscoopeMagnificentWaveRegard *magnificentWaveRegard; +@property (nonatomic,strong) UILabel *leaveSequencignation; +@property (nonatomic,strong) MiecreoscoopePresentStressRegard *presentBWSttessRegard; +@property (nonatomic, strong) UIImageView *forbidKickRegard; +@property (nonatomic,strong) MiecreoscoopeMHTueueMatrix *miecreoscoopeMatrix; +@property (nonatomic,strong) ConsumerAbstractMatrix *userInfo; +@property (nonatomic,strong) ChamberAbstractMatrix *roomInfo; +@property (nonatomic,strong) UIImageView *positionFascinationIndiRegard; +@property (nonatomic,strong) YYAnimatedImageView *intelligencePenetrateIndicateRegard; +@property (nonatomic, strong) UIImageView *acceptIndicateRegard; +@property (nonatomic,strong) UIButton *groupGenreBtuton; +@property (nonatomic, strong) SpriteSheetIndicateExecutive *manager; +@property (nonatomic,strong) NSMutableDictionary *micQueue; +@end + + +@implementation MiecreoscoopeRegard + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event { + UIView *view = [super hitTest:point withEvent:event]; + if (!view) { + + CGPoint newPoint = [self.presentBWSttessRegard convertPoint:point fromView:self]; + + if (CGRectContainsPoint(self.presentBWSttessRegard.bounds, newPoint)) { + view = self.presentBWSttessRegard; + } + } + return view; +} + +- (void)layoutSubviews { + self.intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + self.intelligenceportraitIndicateRegard.layer.cornerRadius = self.frame.size.width / 2; +} + +- (void)initSubViews { + [self addSubview:self.magnificentWaveRegard]; + [self addSubview:self.animationView]; + [self addSubview:self.intelligenceportraitIndicateRegard]; + [self addSubview:self.intelligencePenetrateIndicateRegard]; + [self addSubview:self.positionFascinationIndiRegard]; + [self addSubview:self.loudspeakerDeclareIndicateRegard]; + [self addSubview:self.forbidKickRegard]; + [self addSubview:self.presentBWSttessRegard]; + [self addSubview:self.acceptIndicateRegard]; + [self addSubview:self.groupGenreBtuton]; + + [self addSubview:self.stackView]; + [self.stackView addArrangedSubview:self.postionSequencignation]; + [self.stackView addArrangedSubview:self.monicerSequencignation]; + [self.stackView addArrangedSubview:self.seaxualityIndicateRegard]; +} + +- (void)initChildLyRestrictions { + [self.magnificentWaveRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.center.mas_equalTo(self.intelligenceportraitIndicateRegard); + make.width.height.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_width).multipliedBy(1.4); + }]; + [self.animationView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.intelligenceportraitIndicateRegard); + }]; + + [self.intelligencePenetrateIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.center.mas_equalTo(self.intelligenceportraitIndicateRegard); + make.width.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_width).multipliedBy(1.31); + make.height.mas_equalTo(self.intelligencePenetrateIndicateRegard.mas_width); + }]; + + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self); + make.height.mas_equalTo(self.mas_width); + }]; + + [self.loudspeakerDeclareIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.intelligenceportraitIndicateRegard); + }]; + [self.forbidKickRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.bottom.mas_equalTo(self.intelligenceportraitIndicateRegard); + make.width.height.mas_equalTo(18); + }]; + + [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self); + make.top.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_bottom).offset(10); + }]; + + [self.postionSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.mas_equalTo(14); + }]; + + [self.presentBWSttessRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(16); + make.top.mas_equalTo(self.stackView.mas_bottom).mas_offset(5); + make.centerX.mas_equalTo(self.intelligenceportraitIndicateRegard); + }]; + + [self.acceptIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.center.mas_equalTo(self.intelligenceportraitIndicateRegard); + make.width.height.mas_equalTo(80); + }]; + + [self.groupGenreBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(38, 16)); + make.centerX.mas_equalTo(self.intelligenceportraitIndicateRegard); + make.bottom.mas_equalTo(self.intelligenceportraitIndicateRegard); + }]; + + [self.positionFascinationIndiRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.equalTo(self.intelligenceportraitIndicateRegard).multipliedBy(1.4); + make.center.equalTo(self.intelligenceportraitIndicateRegard); + }]; +} + +- (UIView *)acquireIntelligenceportraitRegard { + return self.intelligenceportraitIndicateRegard; +} + +- (UIImage *)combineIndictowardseInSole:(ChamberAcceptDischargeAbstractMatrix *)acceptAbstract { + CGSize size = CGSizeMake(80, 80); + UIImage *result; + NSInteger faceCount = acceptAbstract.resultIndexes.count > 9 ? 9 : acceptAbstract.resultIndexes.count; + CGFloat x = 0; + CGFloat y = 0; + CGFloat width = 60; + CGFloat height = 60; + CGFloat spaceX3 = 0; + CGFloat spaceX2 = (size.width - width * 2) / 2; + CGFloat spaceX1 = (size.width - width) / 2; + CGFloat spaceY3 = 0; + CGFloat spaceY2 = (size.height - height * 2) / 2; + CGFloat spaceY1 = (size.height - height) / 2; + y = faceCount > 6 ? spaceY3 : (faceCount >= 3 ? spaceY2 : spaceY1); + x = faceCount % 3 == 0 && faceCount > 3 ? spaceX3 : (faceCount % 3 == 2 ? spaceX2 : spaceX1); + UIGraphicsBeginImageContextWithOptions(size, NO, [UIScreen mainScreen].scale); + for (int i = 0; i < faceCount; i++) { + NSInteger index = [acceptAbstract.resultIndexes[i] integerValue]; + ChamberAcceptAbstractMatrix *faceModel = [[YUMIChamberAcceptTool partowardsiciptowardsionAcceptUtensil] prohibiticoveryAcceptAbstractById:acceptAbstract.faceId]; + UIImage *singleImage = [[YUMIChamberAcceptTool partowardsiciptowardsionAcceptUtensil] prohibiticoveryAcceptIndictowardseById:acceptAbstract.faceId index:index]; + + if (faceCount == 1) { + return singleImage; + break; + } + + if (faceModel.displayType == FaceDisplayGenre_Flow) { + [singleImage drawInRect:CGRectMake(x, y, width, height)]; + if (i % 3 == 0) { + y += (height + spaceY3); + x = spaceX3; + } + else if (i == 2 && faceCount == 3) { + y += (height + spaceY3); + x = spaceX2; + } + else { + x += (width + spaceX3); + } + }else if (faceModel.displayType == FaceDisplayGenre_OverLay) { + CGFloat whBit = singleImage.size.width / singleImage.size.height; + width = size.width - (acceptAbstract.resultIndexes.count - 1) * kScpaces; + height = width / whBit; + x = 0 + i * kScpaces; + y = size.height / 2 - height / 2; + [singleImage drawInRect:CGRectMake(x, y, width, height)]; + } + } + result = UIGraphicsGetImageFromCurrentImageContext(); + UIGraphicsEndImageContext(); + return result; +} + +#pragma mark - MicroRegardCeremony +- (void)EvidenceDepartureManner:(BOOL)isLeaveMode { + if (isLeaveMode) { + [self insertSubview:self.leaveSequencignation belowSubview:self.presentBWSttessRegard]; + [self.leaveSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.intelligenceportraitIndicateRegard); + }]; + } else { + if ([self.subviews containsObject:self.leaveSequencignation]) { + [self.leaveSequencignation removeFromSuperview]; + } + } +} + +- (void)consumerSpeaking { + ConsumerAbstractMatrix * userInfo = self.miecreoscoopeMatrix.userInfo; + if (!userInfo.micCircle.length) { + [self.animationView inititowardseSurgeBrectifyness]; + return; + } + [self.magnificentWaveRegard inititowardseSurgeBrectifynessAboutWeebsite:userInfo.micCircle]; +} + +- (void)EvidenceingAccept:(ChamberAcceptDischargeAbstractMatrix *)receiveInfo{ + [self.acceptIndicateRegard.layer removeAnimationForKey:@"face"]; + UIImage * result; + if (receiveInfo.resultIndexes.count > 0) { + result = [self combineIndictowardseInSole:receiveInfo]; + receiveInfo.resultImage = result; + } + ChamberAcceptAbstractMatrix *dispositionAbstract = [[YUMIChamberAcceptTool partowardsiciptowardsionAcceptUtensil] prohibiticoveryAcceptAbstractById:receiveInfo.faceId]; + if (receiveInfo.resultIndexes.count > 0) { + + CAKeyframeAnimation *animation = [CAKeyframeAnimation animationWithKeyPath:@"contents"]; + animation.duration = dispositionAbstract.animDuration / 1000.0; + animation.delegate = self; + animation.repeatCount = dispositionAbstract.animRepeatCount; + animation.removedOnCompletion = YES; + animation.calculationMode = kCAAnimationDiscrete; + + + NSMutableArray *faceArray = [NSMutableArray array]; + + for (int i = (short)dispositionAbstract.animStartPos; i <= (short)dispositionAbstract.animEndPos; i ++) { + UIImage *image = [[YUMIChamberAcceptTool partowardsiciptowardsionAcceptUtensil] prohibiticoveryAcceptIndictowardseById:receiveInfo.faceId index:i]; + if (image) { + CGImageRef cgimg = image.CGImage; + [faceArray addObject:(__bridge UIImage *)cgimg]; + }else { + break; + } + + } + if (faceArray.count > 0) { + animation.values = faceArray; + }else { + return; + } + + CAKeyframeAnimation *resultAnimation = [CAKeyframeAnimation animationWithKeyPath:@"contents"]; + resultAnimation.duration = 3; + resultAnimation.delegate = self; + resultAnimation.beginTime = dispositionAbstract.animRepeatCount * dispositionAbstract.animDuration / 1000.0; + + NSMutableArray *resultArray = [NSMutableArray array]; + + if (receiveInfo.resultImage) { + [resultArray addObject:(__bridge UIImage *)receiveInfo.resultImage.CGImage]; + }else { + return; + } + if (resultArray.count > 0) { + resultAnimation.values = resultArray; + }else { + return; + } + + resultAnimation.removedOnCompletion = YES; + + CAAnimationGroup *group = [CAAnimationGroup animation]; + group.animations = @[animation,resultAnimation]; + group.duration = 3 + (dispositionAbstract.animDuration / 1000.0) * dispositionAbstract.animRepeatCount; + group.delegate = self; + [self.acceptIndicateRegard.layer addAnimation:group forKey:@"face"]; + } else { + + + CAKeyframeAnimation *animation = [CAKeyframeAnimation animationWithKeyPath:@"contents"]; + animation.duration = dispositionAbstract.animDuration / 1000.0; + animation.delegate = self; + animation.repeatCount = dispositionAbstract.animRepeatCount; + animation.removedOnCompletion = YES; + animation.calculationMode = kCAAnimationDiscrete; + + NSMutableArray *faceArray = [NSMutableArray array]; + + for (int i = (short)dispositionAbstract.animStartPos; i <= (short)dispositionAbstract.animEndPos; i ++) { + UIImage *image = [[YUMIChamberAcceptTool partowardsiciptowardsionAcceptUtensil] prohibiticoveryAcceptIndictowardseById:receiveInfo.faceId index:i];; + if (image) { + CGImageRef cgimg = image.CGImage; + [faceArray addObject:(__bridge UIImage *)cgimg]; + }else { + break; + } + } + if (faceArray.count > 0) { + animation.values = [faceArray copy]; + [self.acceptIndicateRegard.layer addAnimation:animation forKey:@"face"]; + } + } +} + + +- (void)refurbishPolariztowardsionisHighPrototype:(BOOL)isHighLevel + isExhibit:(BOOL)isExhibit { + self.positionFascinationIndiRegard.hidden = !isExhibit; + if (isHighLevel) { + self.positionFascinationIndiRegard.image = [UIImage imageNamed:@"yumi_scope_game_position_mine"]; + }else { + self.positionFascinationIndiRegard.image = [UIImage imageNamed:@"yumi_scope_game_position_crown"]; + } +} + + +- (void)replacementPositonPrototypeApexknot{ + self.positionFascinationIndiRegard.hidden = YES; +} + + +- (void)prohibitipositionMiecreoscoopeRegard:(MiecreoscoopeMHTueueMatrix *)model { + self.miecreoscoopeMatrix = model; + MiecreoscoopeStateMatrix * micStats = model.microState; + ConsumerAbstractMatrix * userInfo = model.userInfo; + [self prohibitipositionMiecreoscoopeDeclare:micStats]; + [self prohibitipositionConsumer:userInfo]; +} + +- (void)prohibitipositionMiecreoscoopeDeclare:(MiecreoscoopeStateMatrix *)micState { + self.loudspeakerDeclareIndicateRegard.hidden = micState.micState == MiecreoscoopeLoudspeakerDeclareGenre_Open; + UIImage *image; + if (micState.posState == MiecreoscoopePosDeclareGenre_Free) { + if ([ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + image = [UIImage imageNamed:@"yumi_scope_position_normal"]; + }else{ + image = [UIImage imageNamed:@"yumi_scope_position_normal1"]; + } + } else { + if ([ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + image = [UIImage imageNamed:@"yumi_scope_position_lock"]; + }else{ + image = [UIImage imageNamed:@"yumi_scope_position_lock1"]; + } + } + CGSize scaledToSize = CGSizeMake(self.frame.size.width, self.frame.size.width); + UIGraphicsBeginImageContextWithOptions(scaledToSize, false, 0.0); + + [image drawInRect:CGRectMake(1, 1, scaledToSize.width - 2, scaledToSize.height - 2)]; + UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext(); + UIGraphicsEndImageContext(); + self.intelligenceportraitIndicateRegard.backgroundColor = [UIColor colorWithPatternImage:newImage]; + self.postionSequencignation.text = [NSString stringWithFormat:@"%d", micState.position + 1]; + if (self.roomInfo.type == ChamberGenre_Anchor || (self.roomInfo.roomModeType == ChamberModeGenre_Open_AcrossRoomPK_mode && self.roomInfo.roomId > 0) || (self.roomInfo.roomModeType == ChamberModeGenre_Open_Blind && micState.position == 999)) { + self.positionFascinationIndiRegard.hidden = YES; + } +} + +- (void)prohibitipositionConsumer:(ConsumerAbstractMatrix *)userInfo { + self.userInfo = userInfo; + if ([ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + self.monicerSequencignation.text = YMLocalizedString(@"Micro_View_0"); + self.postionSequencignation.hidden = NO; + } else { + self.monicerSequencignation.text = YMLocalizedString(@"Micro_View_1"); + self.postionSequencignation.hidden = YES; + } + self.monicerSequencignation.hidden = NO; + self.seaxualityIndicateRegard.hidden = YES; + self.forbidKickRegard.hidden = YES; + if (userInfo) { + self.intelligenceportraitIndicateRegard.imageUrl = userInfo.avatar; + if (userInfo.gender == GenderGenre_Male) { + [self.postionSequencignation setBackgroundColor:[DJDKMIMOMColor polariztowardsionMaleMonicerEncouragePrettify]]; + } else if(userInfo.gender == GenderGenre_Female){ + [self.postionSequencignation setBackgroundColor:[DJDKMIMOMColor polariztowardsionFemaleMonicerEncouragePrettify]]; + } + NSString *nickStr = userInfo.nick; + if (userInfo.nick.length > 5) { + nickStr = [NSString stringWithFormat:@"%@…", [userInfo.nick substringToIndex:5]]; + } + self.monicerSequencignation.text = nickStr.length > 0 ? nickStr : @""; + if (userInfo.micNickColor.length) { + self.monicerSequencignation.textColor = [self colorAboutHexBWSttr:userInfo.micNickColor]; + } else { + self.monicerSequencignation.textColor = [DJDKMIMOMColor polariztowardsionMonicerPrettify]; + } + if (self.miecreoscoopeMatrix.microState.position == -1) { + self.seaxualityIndicateRegard.hidden = NO; + self.postionSequencignation.hidden = YES; + self.seaxualityIndicateRegard.image = [UIImage imageNamed:userInfo.gender == GenderGenre_Male ? @"yumi_same_male" : @"yumi_same_female"]; + } + self.forbidKickRegard.hidden = !userInfo.preventKick; + } else { + self.monicerSequencignation.textColor = [DJDKMIMOMColor polariztowardsionMonicerPrettify]; + self.intelligenceportraitIndicateRegard.image = nil; + [self.postionSequencignation setBackgroundColor:[DJDKMIMOMColor polariztowardsionOrdinaryMonicerEncouragePrettify]]; + if ([ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + if (self.miecreoscoopeMatrix.microState.position == -1) { + self.monicerSequencignation.hidden = YES; + self.postionSequencignation.hidden = YES; + } + } else { + self.monicerSequencignation.hidden = YES; + } + } + NSString * headWearUrl = userInfo.headwearEffect.length ? userInfo.headwearEffect : userInfo.headWearUrl.length ? userInfo.headWearUrl : userInfo.headwearPic; + if (headWearUrl.length > 0 && !userInfo.vipMic) { + self.intelligencePenetrateIndicateRegard.hidden = NO; + NSURL *url = [NSURL URLWithString:userInfo.headWearUrl]; + @kWeakify(self); + [self.manager chamberSpriteSheetIndictowardseAboutWEEBSITE:url completionBlock:^(YYSpriteSheetImage * _Nullable sprit) { + @kStrongify(self); + self.intelligencePenetrateIndicateRegard.image = sprit; + } failureBlock:^(NSError * _Nullable error) { + }]; + } else { + self.intelligencePenetrateIndicateRegard.hidden = YES; + } + + if (self.miecreoscoopeMatrix.microState.position == -1) { + [self.presentBWSttessRegard removeFromSuperview]; + [self.stackView addArrangedSubview:self.presentBWSttessRegard]; + } + + self.groupGenreBtuton.hidden = YES; + if (self.roomInfo.roomModeType == ChamberModeGenre_Open_PK_Mode) { + if (userInfo.groupType == GroupGenre_Red) { + self.groupGenreBtuton.hidden = NO; + [self.groupGenreBtuton setTitle:YMLocalizedString(@"Micro_View_2") forState:UIControlStateNormal]; + [self.groupGenreBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[UIColorFromRGB(0xFC4A95), UIColorFromRGB(0xFE6075)] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + } else if(userInfo.groupType == GroupGenre_Blue) { + self.groupGenreBtuton.hidden = NO; + [self.groupGenreBtuton setTitle:YMLocalizedString(@"Micro_View_3") forState:UIControlStateNormal]; + [self.groupGenreBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[UIColorFromRGB(0x3571FE), UIColorFromRGB(0x7994FC)] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + } + } +} + +- (void)prohibitipositionPresentBWSttess:(long long)giftValue { + self.presentBWSttessRegard.giftValue = giftValue; +} + +- (void)EvidencePresentBWSttessManner:(BOOL)isGiftValue { + self.presentBWSttessRegard.hidden = !isGiftValue; +} + +- (void)replacementPresentBWSttess { + self.presentBWSttessRegard.giftValue = 0; +} + +- (void)prohibitipositionChamberAbstract:(ChamberAbstractMatrix *)roomInfo { + self.roomInfo = roomInfo; +} + +- (ChamberAbstractMatrix *)acquireChamberAbstract { + return self.roomInfo; +} + +- (void)prohibitipositionLoudspeakerInthecaseofmtowardsion:(NSMutableDictionary *)micQueue { + self.micQueue = micQueue; +} + + +- (NSMutableDictionary*)acquireMiecreoscoopeInthecaseofmtowardsion { + return self.micQueue; +} + + +#pragma mark - Event Response +- (void)betowardsPresentBWSttessRecognition { + if (self.presentBWSttessRegard.hidden) return; + if (self.userInfo && self.userInfo.uid > 0) { + YUMITissueRegardGovernancer * webVewC = [[YUMITissueRegardGovernancer alloc] init]; + webVewC.roomUid = [NSString stringWithFormat:@"%ld", self.roomInfo.uid]; + if (self.roomInfo.leaveMode && self.userInfo.uid == self.roomInfo.uid) { + webVewC.url = [NSString stringWithFormat:@"%@?uid=%ld", URLWithType(kRoomCharmRankURL), self.miecreoscoopeMatrix.userInfo.uid ? self.miecreoscoopeMatrix.userInfo.uid : self.roomInfo.uid]; + } else { + webVewC.url = [NSString stringWithFormat:@"%@?uid=%ld", URLWithType(kRoomCharmRankURL), self.miecreoscoopeMatrix.userInfo.uid]; + } + [[XCCurrentVCStackExecutive shareManager].getCurrentVC.navigationController pushViewController:webVewC animated:YES]; + } +} + +- (UIColor *)colorAboutHexBWSttr: (NSString *) hexString { + NSString *colorString = [[hexString stringByReplacingOccurrencesOfString: @"#" withString: @""] uppercaseString]; + CGFloat alpha, red, blue, green; + alpha = 1.0f; + red = [self colorComponentByvirtueof: colorString start: 0 length: 2]; + green = [self colorComponentByvirtueof: colorString start: 2 length: 2]; + blue = [self colorComponentByvirtueof: colorString start: 4 length: 2]; + return [UIColor colorWithRed: red green: green blue: blue alpha: alpha]; +} + +- (CGFloat) colorComponentByvirtueof: (NSString *) string start: (NSUInteger) start length: (NSUInteger) length { + NSString *substring = [string substringWithRange: NSMakeRange(start, length)]; + NSString *fullHex = length == 2 ? substring : [NSString stringWithFormat: @"%@%@", substring, substring]; + unsigned hexComponent; + [[NSScanner scannerWithString: fullHex] scanHexInt: &hexComponent]; + return hexComponent / 255.0; +} + +#pragma mark - Getters And Setters +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] init]; + _intelligenceportraitIndicateRegard.userInteractionEnabled = YES; + } + return _intelligenceportraitIndicateRegard; +} + +- (UIImageView *)loudspeakerDeclareIndicateRegard { + if (!_loudspeakerDeclareIndicateRegard) { + _loudspeakerDeclareIndicateRegard = [[UIImageView alloc] init]; + _loudspeakerDeclareIndicateRegard.userInteractionEnabled = YES; + _loudspeakerDeclareIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_position_mute"]; + _loudspeakerDeclareIndicateRegard.hidden = YES; + } + return _loudspeakerDeclareIndicateRegard; +} + +- (UIImageView *)forbidKickRegard { + if (!_forbidKickRegard) { + _forbidKickRegard = [[UIImageView alloc] init]; + _forbidKickRegard.image = [UIImage imageNamed:@"yumi_scope_position_forbid_kicked"]; + _forbidKickRegard.hidden = YES; + } + return _forbidKickRegard; +} + +- (MiecreoscoopeWaveRegard *)animationView { + if (!_animationView) { + _animationView = [[MiecreoscoopeWaveRegard alloc] init]; + } + return _animationView; +} + +- (MiecreoscoopeMagnificentWaveRegard *)magnificentWaveRegard { + if (!_magnificentWaveRegard) { + _magnificentWaveRegard = [[MiecreoscoopeMagnificentWaveRegard alloc] init]; + } + return _magnificentWaveRegard; +} + +- (UILabel *)monicerSequencignation { + if (!_monicerSequencignation) { + _monicerSequencignation = [[UILabel alloc] init]; + _monicerSequencignation.font = [UIFont systemFontOfSize:11]; + _monicerSequencignation.textColor = [DJDKMIMOMColor polariztowardsionMonicerPrettify]; + _monicerSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _monicerSequencignation; +} + +- (UIStackView *)stackView { + if (!_stackView) { + _stackView = [[UIStackView alloc] init]; + _stackView.axis = UILayoutConstraintAxisHorizontal; + _stackView.distribution = UIStackViewDistributionFill; + _stackView.alignment = UIStackViewAlignmentCenter; + _stackView.spacing = 2; + } + return _stackView; +} + +- (UILabel *)postionSequencignation { + if (!_postionSequencignation) { + _postionSequencignation = [[UILabel alloc] init]; + _postionSequencignation.font = [UIFont systemFontOfSize:10]; + _postionSequencignation.textAlignment = NSTextAlignmentCenter; + _postionSequencignation.textColor = [UIColor colorWithWhite:1 alpha:1]; + _postionSequencignation.layer.masksToBounds = YES; + _postionSequencignation.layer.cornerRadius = 7; + [_postionSequencignation setBackgroundColor:[DJDKMIMOMColor polariztowardsionOrdinaryMonicerEncouragePrettify]]; + } + return _postionSequencignation; +} + +- (UIImageView *)seaxualityIndicateRegard { + if (!_seaxualityIndicateRegard) { + _seaxualityIndicateRegard = [[UIImageView alloc] init]; + _seaxualityIndicateRegard.userInteractionEnabled = YES; + _seaxualityIndicateRegard.hidden = YES; + } + return _seaxualityIndicateRegard; +} + +- (UILabel *)leaveSequencignation { + if (!_leaveSequencignation) { + _leaveSequencignation = [[UILabel alloc] init]; + _leaveSequencignation .text = YMLocalizedString(@"Micro_View_4"); + _leaveSequencignation .font = [UIFont systemFontOfSize:16]; + _leaveSequencignation .textColor = UIColor.whiteColor; + _leaveSequencignation.textAlignment = NSTextAlignmentCenter; + _leaveSequencignation.backgroundColor = [UIColor colorWithWhite:0 alpha:0.45]; + _leaveSequencignation.layer.cornerRadius = 50 * kScreenScale / 2; + _leaveSequencignation.layer.masksToBounds = YES; + _leaveSequencignation.userInteractionEnabled = YES; + } + return _leaveSequencignation ; +} + +- (MiecreoscoopePresentStressRegard *)presentBWSttessRegard { + if (!_presentBWSttessRegard) { + _presentBWSttessRegard = [[MiecreoscoopePresentStressRegard alloc] init]; + _presentBWSttessRegard.hidden = YES; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(betowardsPresentBWSttessRecognition)]; + [_presentBWSttessRegard addGestureRecognizer:tap]; + } + return _presentBWSttessRegard; +} + +- (SpriteSheetIndicateExecutive *)manager { + if (!_manager) { + _manager = [[SpriteSheetIndicateExecutive alloc] init]; + } + return _manager; +} + +- (YYAnimatedImageView *)intelligencePenetrateIndicateRegard { + if (!_intelligencePenetrateIndicateRegard) { + _intelligencePenetrateIndicateRegard = [[YYAnimatedImageView alloc] init]; + _intelligencePenetrateIndicateRegard.backgroundColor = [UIColor clearColor]; + _intelligencePenetrateIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _intelligencePenetrateIndicateRegard; +} + +- (UIImageView *)acceptIndicateRegard { + if (!_acceptIndicateRegard) { + _acceptIndicateRegard = [[UIImageView alloc] init]; + _acceptIndicateRegard.backgroundColor = [UIColor clearColor]; + _acceptIndicateRegard.userInteractionEnabled = YES; + } + return _acceptIndicateRegard; +} + +- (UIButton *)groupGenreBtuton { + if (!_groupGenreBtuton) { + _groupGenreBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_groupGenreBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + _groupGenreBtuton.titleLabel.font = [UIFont systemFontOfSize:9.0]; + _groupGenreBtuton.layer.masksToBounds = YES; + _groupGenreBtuton.layer.cornerRadius = 8; + } + return _groupGenreBtuton; +} + +- (UIImageView *)positionFascinationIndiRegard { + if (!_positionFascinationIndiRegard) { + _positionFascinationIndiRegard = [[UIImageView alloc] init]; + _positionFascinationIndiRegard.userInteractionEnabled = NO; + _positionFascinationIndiRegard.hidden = YES; + } + return _positionFascinationIndiRegard; +} + + + +@end diff --git a/YuMi/Modules/YMRoom/View/PhaseRegard/MiecreoscoopeRegard/MiecreoscoopeWaveRegard.h b/YuMi/Modules/YMRoom/View/PhaseRegard/MiecreoscoopeRegard/MiecreoscoopeWaveRegard.h new file mode 100644 index 00000000..f5d49699 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/PhaseRegard/MiecreoscoopeRegard/MiecreoscoopeWaveRegard.h @@ -0,0 +1,18 @@ +// +// MiecreoscoopeWaveRegard.h +// YUMI +// +// Created by YUMI on 2021/10/20. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface MiecreoscoopeWaveRegard : UIView +- (void)inititowardseSurgeBrectifyness; + +- (void)suspeindSurgeBrectifyness; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/PhaseRegard/MiecreoscoopeRegard/MiecreoscoopeWaveRegard.m b/YuMi/Modules/YMRoom/View/PhaseRegard/MiecreoscoopeRegard/MiecreoscoopeWaveRegard.m new file mode 100644 index 00000000..fbfab3dc --- /dev/null +++ b/YuMi/Modules/YMRoom/View/PhaseRegard/MiecreoscoopeRegard/MiecreoscoopeWaveRegard.m @@ -0,0 +1,111 @@ +// +// MiecreoscoopeWaveRegard.m +// YUMI +// +// Created by YUMI on 2021/10/20. +// + +#import "MiecreoscoopeWaveRegard.h" +#import +#import + +@interface MiecreoscoopeWaveRegard () +@property (nonatomic,strong) UIView * thresholdRegard; +@property (nonatomic,assign) BOOL isBrectifynessing; + +@end + +@implementation MiecreoscoopeWaveRegard + +- (instancetype)initWithFrame:(CGRect)frame +{ + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +- (void)layoutSubviews { + [super layoutSubviews]; + self.thresholdRegard.layer.cornerRadius = self.frame.size.width / 2; +} + +#pragma mark - Public Method +- (void)inititowardseSurgeBrectifyness { + if (self.isBrectifynessing) { + return; + } + self.isBrectifynessing = YES; + self.thresholdRegard.hidden = NO; + [self brectifynessAboutThickness:self.thresholdRegard]; + +} +- (void)suspeindSurgeBrectifyness { + self.isBrectifynessing = NO; + self.thresholdRegard.hidden = YES; + [self.thresholdRegard.layer removeAllAnimations]; +} + + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.thresholdRegard]; + self.thresholdRegard.hidden = YES; +} + + +- (void)initChildLyRestrictions { + [self.thresholdRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self); + }]; +} + +- (void)brectifynessAboutThickness:(UIView *)view { + int animtionDura = 1; + POPBasicAnimation *animation2 = [POPBasicAnimation animationWithPropertyNamed:kPOPLayerScaleXY]; + animation2.beginTime = CACurrentMediaTime(); + animation2.duration = animtionDura; + animation2.fromValue = [NSValue valueWithCGSize:CGSizeMake(1.f, 1.f)]; + animation2.toValue = [NSValue valueWithCGSize:CGSizeMake(1.4f, 1.4f)]; + + POPBasicAnimation *animation3 = [POPBasicAnimation animationWithPropertyNamed:kPOPLayerOpacity]; + animation3.duration = 0.6 * animtionDura; + animation3.beginTime = CACurrentMediaTime(); + animation3.fromValue = @1.0; + animation3.toValue = @0.8; + animation3.repeatCount = 1; + animation3.removedOnCompletion = YES; + + POPBasicAnimation *animation4 = [POPBasicAnimation animationWithPropertyNamed:kPOPLayerOpacity]; + animation4.duration = 0.4* animtionDura; + animation4.beginTime = CACurrentMediaTime() + 0.6 * animtionDura; + animation4.fromValue = @0.8; + animation4.toValue = @0.0; + animation4.repeatCount = 1; + animation4.removedOnCompletion = YES; + + if (view == self.thresholdRegard) { + [animation4 setCompletionBlock:^(POPAnimation *anim, BOOL finished) { + self.isBrectifynessing = NO; + }]; + } + + [view.layer pop_addAnimation:animation2 forKey:@"animation2"]; + [view.layer pop_addAnimation:animation3 forKey:@"animation3"]; + [view.layer pop_addAnimation:animation4 forKey:@"animation4"]; + + +} +#pragma mark - Getters And Setters +- (UIView *)thresholdRegard { + if (!_thresholdRegard) { + _thresholdRegard = [[UIView alloc] init]; + _thresholdRegard.backgroundColor = [UIColor colorWithWhite:1 alpha:0.3]; + _thresholdRegard.layer.borderWidth = 1; + _thresholdRegard.layer.borderColor = [UIColor whiteColor].CGColor; + } + return _thresholdRegard; +} +@end diff --git a/YuMi/Modules/YMRoom/View/PhaseRegard/MiecreoscoopeRegard/SocialMiecreoscoopeRegard.h b/YuMi/Modules/YMRoom/View/PhaseRegard/MiecreoscoopeRegard/SocialMiecreoscoopeRegard.h new file mode 100644 index 00000000..4d21e228 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/PhaseRegard/MiecreoscoopeRegard/SocialMiecreoscoopeRegard.h @@ -0,0 +1,16 @@ +// +// SocialMiecreoscoopeRegard.h +// YUMI +// +// Created by YUMI on 2022/4/27. +// + +#import "MiecreoscoopeRegard.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface SocialMiecreoscoopeRegard : MiecreoscoopeRegard + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/PhaseRegard/MiecreoscoopeRegard/SocialMiecreoscoopeRegard.m b/YuMi/Modules/YMRoom/View/PhaseRegard/MiecreoscoopeRegard/SocialMiecreoscoopeRegard.m new file mode 100644 index 00000000..d36e2c32 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/PhaseRegard/MiecreoscoopeRegard/SocialMiecreoscoopeRegard.m @@ -0,0 +1,62 @@ +// +// SocialMiecreoscoopeRegard.m +// YUMI +// +// Created by YUMI on 2022/4/27. +// + +#import "SocialMiecreoscoopeRegard.h" +#import "ThemeColor+Room.h" +#import "ClientDisposition.h" +@interface SocialMiecreoscoopeRegard () + +@property (nonatomic, assign) NSInteger position; + +@end + +@implementation SocialMiecreoscoopeRegard + +- (void)prohibitipositionMiecreoscoopeRegard:(MiecreoscoopeMHTueueMatrix *)model { + self.position = model.microState.position; + [super prohibitipositionMiecreoscoopeRegard:model]; + MiecreoscoopeStateMatrix * micState = model.microState; + ConsumerAbstractMatrix * userInfo = model.userInfo; + + if ([ClientDisposition partowardsiciptowardsionDisposition].canUnfoild && userInfo == nil && micState.position == 7) { + self.monicerSequencignation.text = YMLocalizedString(@"Social_Micro_View_0"); + } + UIImage *image; + if (micState.posState == MiecreoscoopePosDeclareGenre_Free) { + if ([ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + image = [UIImage imageNamed:@"yumi_scope_position_normal"]; + }else{ + image = [UIImage imageNamed:@"yumi_scope_position_normal1"]; + } + } else { + if ([ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + image = [UIImage imageNamed:@"yumi_scope_position_lock"]; + }else{ + image = [UIImage imageNamed:@"yumi_scope_position_lock1"]; + } + } + if ([ClientDisposition partowardsiciptowardsionDisposition].canUnfoild && micState.position == 7 && self.acquireChamberAbstract.roomModeType != ChamberModeGenre_Open_PK_Mode) { + image = [UIImage imageNamed:@"yumi_scope_position_boss"]; + } + CGSize scaledToSize = CGSizeMake(self.frame.size.width, self.frame.size.width); + UIGraphicsBeginImageContextWithOptions(scaledToSize, false, 0.0); + + [image drawInRect:CGRectMake(1, 1, scaledToSize.width - 2, scaledToSize.height - 2)]; + UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext(); + UIGraphicsEndImageContext(); + self.intelligenceportraitIndicateRegard.backgroundColor = [UIColor colorWithPatternImage:newImage]; +} + +- (void)prohibitipositionConsumer:(ConsumerAbstractMatrix *)userInfo { + [super prohibitipositionConsumer:userInfo]; + if (self.position == 7) { + [self.postionSequencignation setBackgroundColor:[DJDKMIMOMColor polariztowardsionBossEncourageConcludePrettify]]; + + } +} + +@end diff --git a/YuMi/Modules/YMRoom/View/PhaseRegard/Model/MiecreoscoopeCallforExtMatrix.h b/YuMi/Modules/YMRoom/View/PhaseRegard/Model/MiecreoscoopeCallforExtMatrix.h new file mode 100644 index 00000000..de32c029 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/PhaseRegard/Model/MiecreoscoopeCallforExtMatrix.h @@ -0,0 +1,20 @@ +// +// MiecreoscoopeCallforExtMatrix.h +// YUMI +// +// Created by YUMI on 2022/5/12. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface MiecreoscoopeCallforExtMatrix : NSObject + +@property (nonatomic, copy) NSString *uid; + +@property (nonatomic, copy) NSString *micPosition; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/PhaseRegard/Model/MiecreoscoopeCallforExtMatrix.m b/YuMi/Modules/YMRoom/View/PhaseRegard/Model/MiecreoscoopeCallforExtMatrix.m new file mode 100644 index 00000000..347b42a1 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/PhaseRegard/Model/MiecreoscoopeCallforExtMatrix.m @@ -0,0 +1,12 @@ +// +// MiecreoscoopeCallforExtMatrix.m +// YUMI +// +// Created by YUMI on 2022/5/12. +// + +#import "MiecreoscoopeCallforExtMatrix.h" + +@implementation MiecreoscoopeCallforExtMatrix + +@end diff --git a/YuMi/Modules/YMRoom/View/PhaseRegard/Model/MiecreoscoopeExtMatrix.h b/YuMi/Modules/YMRoom/View/PhaseRegard/Model/MiecreoscoopeExtMatrix.h new file mode 100644 index 00000000..699e16d6 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/PhaseRegard/Model/MiecreoscoopeExtMatrix.h @@ -0,0 +1,29 @@ +// +// MiecreoscoopeExtMatrix.h +// YUMI +// +// Created by YUMI on 2022/1/18. +// + +#import +#import "YUMINNNN.h" +#import "ConsumerVipAbstractVo.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface MiecreoscoopeExtMatrix : NSObject +@property (nonatomic,assign) GenderGenre gender; +@property (nonatomic,copy) NSString *avatar; +@property (nonatomic,assign) NSInteger uid; +@property (nonatomic,copy) NSString *nick; +@property (nonatomic,copy) NSString *headWearUrl; +@property (nonatomic,assign) BOOL vipMic; +@property (nonatomic, copy) NSString *micCircle; +@property (nonatomic, copy) NSString *micNickColor; +@property (nonatomic, assign) LittleGameDisportPosition gameStatus; +@property (nonatomic, assign) BOOL preventKick; +@property (nonatomic, assign) BOOL enterHide; +@property (nonatomic,assign) GroupGenre groupType; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/PhaseRegard/Model/MiecreoscoopeExtMatrix.m b/YuMi/Modules/YMRoom/View/PhaseRegard/Model/MiecreoscoopeExtMatrix.m new file mode 100644 index 00000000..e21ac978 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/PhaseRegard/Model/MiecreoscoopeExtMatrix.m @@ -0,0 +1,12 @@ +// +// MiecreoscoopeExtMatrix.m +// YUMI +// +// Created by YUMI on 2022/1/18. +// + +#import "MiecreoscoopeExtMatrix.h" + +@implementation MiecreoscoopeExtMatrix + +@end diff --git a/YuMi/Modules/YMRoom/View/PhaseRegard/Model/MiecreoscoopeMHTueueMatrix.h b/YuMi/Modules/YMRoom/View/PhaseRegard/Model/MiecreoscoopeMHTueueMatrix.h new file mode 100644 index 00000000..5d2a3da9 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/PhaseRegard/Model/MiecreoscoopeMHTueueMatrix.h @@ -0,0 +1,17 @@ +// +// MiecreoscoopeMHTueueMatrix.h +// YUMI +// +// Created by YUMI on 2021/10/21. +// + +#import "NSObject+MJExtension.h" +#import "MiecreoscoopeStateMatrix.h" +NS_ASSUME_NONNULL_BEGIN +@class ConsumerAbstractMatrix; +@interface MiecreoscoopeMHTueueMatrix : NSObject +@property (nonatomic, strong) MiecreoscoopeStateMatrix *microState; +@property (nonatomic, strong, nullable) ConsumerAbstractMatrix *userInfo; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/PhaseRegard/Model/MiecreoscoopeMHTueueMatrix.m b/YuMi/Modules/YMRoom/View/PhaseRegard/Model/MiecreoscoopeMHTueueMatrix.m new file mode 100644 index 00000000..9d2ecd2d --- /dev/null +++ b/YuMi/Modules/YMRoom/View/PhaseRegard/Model/MiecreoscoopeMHTueueMatrix.m @@ -0,0 +1,12 @@ +// +// MiecreoscoopeMHTueueMatrix.m +// YUMI +// +// Created by YUMI on 2021/10/21. +// + +#import "MiecreoscoopeMHTueueMatrix.h" + +@implementation MiecreoscoopeMHTueueMatrix + +@end diff --git a/YuMi/Modules/YMRoom/View/PhaseRegard/Model/MiecreoscoopeStateMatrix.h b/YuMi/Modules/YMRoom/View/PhaseRegard/Model/MiecreoscoopeStateMatrix.h new file mode 100644 index 00000000..bc43d92f --- /dev/null +++ b/YuMi/Modules/YMRoom/View/PhaseRegard/Model/MiecreoscoopeStateMatrix.h @@ -0,0 +1,37 @@ +// +// MiecreoscoopeStateMatrix.h +// YUMI +// +// Created by YUMI on 2021/10/21. +// + +#import "NSObject+MJExtension.h" + +NS_ASSUME_NONNULL_BEGIN +typedef NS_ENUM(NSInteger, MiecreoscoopePosDeclareGenre) { + MiecreoscoopePosDeclareGenre_Free = 0, + MiecreoscoopePosDeclareGenre_Lock = 1, +}; + +typedef NS_ENUM(NSInteger, MiecreoscoopeLoudspeakerDeclareGenre) { + MiecreoscoopeLoudspeakerDeclareGenre_Open = 0, + MiecreoscoopeLoudspeakerDeclareGenre_Close = 1, +}; + +typedef NS_ENUM(NSUInteger, DatingLoudspeakerGenre) { + + DatingLoudspeakerGenre_Other = 0, + + DatingLoudspeakerGenre_Male = 1, + + DatingLoudspeakerGenre_Female = 2, +}; + +@interface MiecreoscoopeStateMatrix : NSObject +@property (nonatomic, assign) int position; +@property (nonatomic, assign) MiecreoscoopePosDeclareGenre posState; +@property (nonatomic, assign) MiecreoscoopeLoudspeakerDeclareGenre micState; +@property (nonatomic,assign) DatingLoudspeakerGenre datingMicType; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/PhaseRegard/Model/MiecreoscoopeStateMatrix.m b/YuMi/Modules/YMRoom/View/PhaseRegard/Model/MiecreoscoopeStateMatrix.m new file mode 100644 index 00000000..34e77b27 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/PhaseRegard/Model/MiecreoscoopeStateMatrix.m @@ -0,0 +1,21 @@ +// +// MiecreoscoopeStateMatrix.m +// YUMI +// +// Created by YUMI on 2021/10/21. +// + +#import "MiecreoscoopeStateMatrix.h" + +@implementation MiecreoscoopeStateMatrix + +- (instancetype)init { + self = [super init]; + if (self) { + _posState = MiecreoscoopePosDeclareGenre_Free; + _micState = MiecreoscoopeLoudspeakerDeclareGenre_Open; + } + return self; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/PhaseRegard/PhaseRegard.h b/YuMi/Modules/YMRoom/View/PhaseRegard/PhaseRegard.h new file mode 100644 index 00000000..6f9884c1 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/PhaseRegard/PhaseRegard.h @@ -0,0 +1,55 @@ +// +// PhaseRegard.h +// YUMI +// +// Created by zu on 2021/10/25. +// + +#import +#import "ChamberHostRepresendtation.h" +#import "ChamberGuestRepresendtation.h" +#import "MicroRegardCeremony.h" + +NS_ASSUME_NONNULL_BEGIN + +@class MiecreoscoopeMHTueueMatrix; + +@protocol StageRegardRepresendtation + +- (NSInteger)computtowardsionHLOfMircoRegard; + +- (CGFloat)hightInthecaseofPhaseRegard; + +- (UIView *)miecreoscoopeRegardInthecaseofIndictowardsrix:(NSInteger)index; + +- (CGRect)rectInthecaseofRegardTowardsIndictowardsrix:(NSInteger)index; + +- (void)didChosenTowardsIndictowardsrix:(NSInteger)index; +@end + +@protocol StageRegardCeremony + +- (NSInteger)polariztowardsionToIndictowardsrix:(NSString*)position; + +- (NSString *)indexToPolariztowardsion:(NSInteger)index; + +- (NSInteger)acquireIndictowardsrixByCid:(NSString *)uid; + +- (MiecreoscoopeMHTueueMatrix *)prohibiticoveryMiecreoscoopeAbstractByCid:(NSString *)uid; + +- (UIView *)prohibiticoveryMiecreoscoopeRegardByCid:(NSString *)uid; + +- (UIView *)prohibiticoveryMiecreoscoopeRegardByIndictowardsrix:(NSInteger)index; + +- (UIView *)prohibiticoveryMiecreoscoopeRegardByPolariztowardsion:(NSString *)position; +@end + +@interface PhaseRegard : UIView + +@property (nonatomic, weak, readonly) id hostRepresedtation; + +- (instancetype)initWithDelegate:(id)delegate; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/PhaseRegard/PhaseRegard.m b/YuMi/Modules/YMRoom/View/PhaseRegard/PhaseRegard.m new file mode 100644 index 00000000..01650918 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/PhaseRegard/PhaseRegard.m @@ -0,0 +1,853 @@ +// +// PhaseRegard.m +// YUMI +// +// Created by zu on 2021/10/25. +// + +#import "PhaseRegard.h" +#import +#import +#import +#import "RealtimackExecutive.h" +#import "RtcRepresendtation.h" +#import "MKJPopup.h" +#import "YUMIMacroUitls.h" +#import "YUMIPresentStorage.h" +#import "XNDJTBWGLoadingTool.h" +#import "Api+Room.h" +#import "AccountAbstractStorage.h" +#import "YUMIChamberMiniExecutive.h" +#import "StatsticsticsServingFacilitater.h" +#import "NSArray+Safe.h" +#import "ClientDisposition.h" +#import "ChamberAbstractMatrix.h" +#import "ConsumerAbstractMatrix.h" +#import "MiecreoscoopeStateMatrix.h" +#import "MiecreoscoopeMHTueueMatrix.h" +#import "AttachmentMatrix.h" +#import "PresentAchieveAbstractMatrix.h" +#import "PresentStressAbstractMatrix.h" +#import "MiecreoscoopeExtMatrix.h" +#import "ChamberAcceptDischargeAbstractMatrix.h" +#import "MiecreoscoopeCallforExtMatrix.h" +#import "ChamberCombatChooseConsumerMatrix.h" +#import "NetIndicateRegard.h" +#import "YUMIConsumerSolitaireRegardGovernancer.h" +#import "YUMIChamberCallforConsumerRegardGovernancer.h" + +@interface PhaseRegard() + + +@property (nonatomic, strong) NSMutableArray *miecreoscoopeRegards; +@property (nonatomic, strong) NSMutableDictionary *micQueue; + +@property (nonatomic, weak) id hostRepresedtation; + +@property (nonatomic,assign) BOOL isRoadliceImport; + +@property (nonatomic, assign) BOOL isUpwardsingLoudspeaker; +@property (nonatomic, assign) BOOL possessAcquireFormationAbstractSuccess; + +@end + +@implementation PhaseRegard + +- (instancetype)initWithDelegate:(id)delegate { + self = [super init]; + if (self) { + _hostRepresedtation = delegate; + _isRoadliceImport = NO; + NSInteger microCount = self.computtowardsionHLOfMircoRegard; + for (int i = 0; i < microCount; i++) { + UIView* microView = [self miecreoscoopeRegardInthecaseofIndictowardsrix:i]; + if (microView) { + microView.tag = i; + microView.frame = [self rectInthecaseofRegardTowardsIndictowardsrix:i]; + [self addSubview:microView]; + UITapGestureRecognizer* tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(miecreoscoopeRegardBetowardslictowardsioned:)]; + [microView addGestureRecognizer:tap]; + [self.miecreoscoopeRegards insertObject:microView atIndex:i]; + } + } + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(self.hightInthecaseofPhaseRegard); + }]; + + if (_hostRepresedtation.acquireChamberAbstract) { + [self initRtc]; + [self initNEMCMiecreoscoopeInthecaseofmtowardsions]; + } else { + [self miecreoscoopeInthecaseofmtowardsionRefurbishd:NO]; + } + } + return self; +} + +#pragma mark - init functions + +- (void)initRtc { + ChamberAbstractMatrix* roomInfo = self.hostRepresedtation.acquireChamberAbstract; + + RtcEngineType type; + if ([roomInfo.audioSdkType isEqualToString:@"wujie"]) { + type = RtcEngineType_WJ; + } else if ([roomInfo.audioSdkType isEqualToString:@"zego"]) { + type = RtcEngineType_Zego; + } else if ([roomInfo.audioSdkType isEqualToString:@"trtc"]) { + type = RtcEngineType_TRTC; + } else { + type = RtcEngineType_Agora; + } + [RealtimackExecutive initEngineAboutGenre:type delegate:self]; + switch (type) { + + case RtcEngineType_TRTC: + { + NSInteger roomId = roomInfo.roomId > INT_MAX ? roomInfo.uid : roomInfo.roomId; + [[RealtimackExecutive instance] enterRoom:[NSString stringWithFormat:@"%ld", roomId] trtcSign:roomInfo.trtcSig]; + } + break; + + default: + [[RealtimackExecutive instance] enterRoom:[NSString stringWithFormat:@"%ld", (long)roomInfo.roomId]]; + break; + } +} + +- (void)initNEMCMiecreoscoopeInthecaseofmtowardsions { + ChamberAbstractMatrix* roomInfo = self.hostRepresedtation.acquireChamberAbstract; + + [[NIMSDK sharedSDK].chatroomManager fetchChatroomInfo:[NSString stringWithFormat:@"%ld", (long)roomInfo.roomId] completion:^(NSError * _Nullable error, NIMChatroom * _Nullable chatroom) { + if (error) { + return; + } + NSDictionary *info = (NSDictionary *)[chatroom.ext toJSONGroal]; + NSDictionary *micState = [info[@"micQueue"] toJSONGroal]; + for (NSString *position in micState.allKeys) { + MiecreoscoopeStateMatrix *state = [MiecreoscoopeStateMatrix mtowardsrixAboutJSON:micState[position]]; + MiecreoscoopeMHTueueMatrix *sequence = [self.micQueue objectForKey:position]; + sequence.microState = state; + } + [self miecreoscoopeInthecaseofmtowardsionRefurbishd: NO]; + }]; + self.possessAcquireFormationAbstractSuccess = NO; + + [[NIMSDK sharedSDK].chatroomManager fetchChatroomQueue:[NSString stringWithFormat:@"%ld", (long)roomInfo.roomId] completion:^(NSError * _Nullable error, NSArray *> * _Nullable info) { + if (error) return; + BOOL ownerRTCChange = NO; + for (NSDictionary *item in info) { + ConsumerAbstractMatrix *userInfo = [ConsumerAbstractMatrix mtowardsrixAboutJSON:item.allValues.firstObject]; + NSString *position = item.allKeys.firstObject; + MiecreoscoopeMHTueueMatrix *sequence = [self.micQueue objectForKey:position]; + sequence.userInfo = userInfo; + if (userInfo.uid == [AccountAbstractStorage instance].acquireCid.integerValue) { + ownerRTCChange = YES; + } + } + [self miecreoscoopeInthecaseofmtowardsionRefurbishd:ownerRTCChange]; + [self.hostRepresedtation onMiecreoscoopeInthecaseofmtowardsionRefurbish:self.micQueue]; + self.possessAcquireFormationAbstractSuccess = YES; + }]; + + + [self initPresentBWSttess]; +} + +- (void)initPresentBWSttess{ + ChamberAbstractMatrix* roomInfo = self.hostRepresedtation.acquireChamberAbstract; + + [Api chamberMiecreoscoopePresentBWSttess:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + [self presentBWSttessRefurbish:data.data]; + } + } roomUid:[NSString stringWithFormat:@"%ld", roomInfo.uid] uid:[AccountAbstractStorage instance].acquireCid]; +} + +#pragma mark - update views as data changed + +- (void)miecreoscoopeInthecaseofmtowardsionRefurbishd:(BOOL)isHandleRTC { + BOOL selfNeedBroadcast = NO; + ChamberAbstractMatrix * roomInfo = self.hostRepresedtation.acquireChamberAbstract; + if (![ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + roomInfo.showGiftValue = NO; + } + BOOL leaveMode = roomInfo.leaveMode; + NSMutableArray *statisMicArray = [NSMutableArray array]; + for (int i = 0; i < self.computtowardsionHLOfMircoRegard; i++) { + MiecreoscoopeMHTueueMatrix * model = [self.micQueue objectForKey:[self indexToPolariztowardsion:i]]; + + UIView * view = [self prohibiticoveryMiecreoscoopeRegardByIndictowardsrix:i]; + [view prohibitipositionChamberAbstract:roomInfo]; + [view prohibitipositionLoudspeakerInthecaseofmtowardsion:self.micQueue]; + [view prohibitipositionMiecreoscoopeRegard:model]; + [view EvidenceDepartureManner:i == 0 && leaveMode]; + if (leaveMode && i == 0) { + if (!roomInfo.showGiftValue) { + [view replacementPresentBWSttess]; + } + } else { + if (model.userInfo == nil || !roomInfo.showGiftValue) [view replacementPresentBWSttess]; + } + [view EvidencePresentBWSttessManner:roomInfo.showGiftValue]; + if (self.hostRepresedtation.getUserInfo.uid && model.userInfo.uid == self.hostRepresedtation.getUserInfo.uid) { + selfNeedBroadcast = model.microState.micState == MiecreoscoopeLoudspeakerDeclareGenre_Open; + if (model.microState.micState == MiecreoscoopeLoudspeakerDeclareGenre_Close) { + [RealtimackExecutive instance].localDelicate = YES; + } + if (roomInfo.type == ChamberGenre_Anchor && [[AccountAbstractStorage instance].acquireCid isEqualToString:[NSString stringWithFormat:@"%ld", roomInfo.uid]]) { + selfNeedBroadcast = YES; + } + } + if (model.userInfo) { + NSString *str = [NSString stringWithFormat:@"micIndex:%d,uid:%ld", i, model.userInfo.uid]; + [statisMicArray addObject:str]; + } + } + if (statisMicArray.count) { + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventroom_mike_show eventAttributes:@{@"roomMicShow": statisMicArray.toJSONBWSttr}]; + } + if (leaveMode) { + ConsumerAbstractMatrix *owner = [[ConsumerAbstractMatrix alloc] init]; + owner.avatar = roomInfo.avatar; + owner.nick = roomInfo.nick; + owner.uid = roomInfo.uid; + owner.gender = roomInfo.gender; + UIView *ownerView = [self prohibiticoveryMiecreoscoopeRegardByIndictowardsrix:0]; + [ownerView prohibitipositionConsumer:owner]; + } + + if (self.isRoadliceImport || !isHandleRTC) { + return; + } + [[RealtimackExecutive instance] pingencourage:selfNeedBroadcast]; +} + +- (void)presentBWSttessRefurbish:(NSDictionary *)dic { + PresentStressAbstractMatrix * model = [PresentStressAbstractMatrix mtowardsrixAboutImpactbasket:dic]; + for (int i = 0; i < model.giftValueVos.count; i++) { + PresentStressSpecificMatrix * giftValueModel = [model.giftValueVos secureGroalTowardsIndictowardsrix1:i]; + UIView * view = [self prohibiticoveryMiecreoscoopeRegardByCid:giftValueModel.uid]; + if (self.hostRepresedtation.acquireChamberAbstract.leaveMode && giftValueModel.uid.integerValue == self.hostRepresedtation.acquireChamberAbstract.uid) { + view = [self prohibiticoveryMiecreoscoopeRegardByIndictowardsrix:0]; + } + if (view == nil) continue; + [view prohibitipositionPresentBWSttess:giftValueModel.giftValue]; + } + [self refurbishPostionProvisionAboutChamberOnLoudspeakerPresentBWSttess:model]; +} + + +- (void)refurbishPostionProvisionAboutChamberOnLoudspeakerPresentBWSttess:(PresentStressAbstractMatrix *)roomOnMicGiftValue{ + if (self.hostRepresedtation.acquireChamberAbstract.type == ChamberGenre_Anchor || self.hostRepresedtation.acquireChamberAbstract.roomModeType == ChamberModeGenre_Open_Blind) return; + + NSMutableArray *validGifts = [NSMutableArray array]; + for (PresentStressSpecificMatrix *value in roomOnMicGiftValue.giftValueVos) { + if (value.giftValue > 0) { + [validGifts addObject:value]; + } + } + if (validGifts.count == 0) return; + NSMutableArray *newOnMicGifts = [NSMutableArray array]; + + for (PresentStressSpecificMatrix *value in validGifts) { + for (MiecreoscoopeMHTueueMatrix *item in self.micQueue.allValues) { + BOOL isOwnerPosition = item.microState.position == -1; + if (!isOwnerPosition && item.userInfo.uid == value.uid.integerValue) { + [newOnMicGifts addObject:value]; + } + } + } + if (newOnMicGifts.count == 0) return; + + NSSortDescriptor *giftValueSortD = [NSSortDescriptor sortDescriptorWithKey:@"giftValue" ascending:NO]; + NSArray *giftValuesSortArray = [[newOnMicGifts sortedArrayUsingDescriptors:@[giftValueSortD]] mutableCopy]; + NSString *highest = nil; + NSString *lowest = nil; + NSInteger sortArrayCount = giftValuesSortArray.count; + if (sortArrayCount == 1) { + highest = giftValuesSortArray.firstObject.uid; + }else if (sortArrayCount == 2) { + if (giftValuesSortArray.firstObject.giftValue != giftValuesSortArray.lastObject.giftValue) { + highest = giftValuesSortArray.firstObject.uid; + lowest = giftValuesSortArray.lastObject.uid; + } + }else{ + + if (giftValuesSortArray.firstObject.giftValue != giftValuesSortArray.lastObject.giftValue) { + + if (giftValuesSortArray.firstObject.giftValue != giftValuesSortArray[1].giftValue) { + highest = giftValuesSortArray.firstObject.uid; + } + + if (giftValuesSortArray.lastObject.giftValue != giftValuesSortArray[sortArrayCount-2].giftValue) { + lowest = giftValuesSortArray.lastObject.uid; + } + } + } + for (MiecreoscoopeMHTueueMatrix *item in self.micQueue.allValues) { + if (highest && item.userInfo.uid == highest.integerValue) { + UIView * view = [self prohibiticoveryMiecreoscoopeRegardByCid:highest]; + [view refurbishPolariztowardsionisHighPrototype:YES isExhibit:YES]; + continue; + } + if (lowest && item.userInfo.uid == lowest.integerValue) { + UIView * view = [self prohibiticoveryMiecreoscoopeRegardByCid:lowest]; + [view refurbishPolariztowardsionisHighPrototype:NO isExhibit:YES]; + } + } +} + +#pragma mark - ChamberGuestRepresendtation +- (void)onChamberRoadliceImported { + self.isRoadliceImport = YES; + ChamberAbstractMatrix* roomInfo = self.hostRepresedtation.acquireChamberAbstract; + + RtcEngineType type; + if ([roomInfo.audioSdkType isEqualToString:@"wujie"]) { + type = RtcEngineType_WJ; + } else if ([roomInfo.audioSdkType isEqualToString:@"zego"]) { + type = RtcEngineType_Zego; + } else if ([roomInfo.audioSdkType isEqualToString:@"trtc"]) { + type = RtcEngineType_TRTC; + } else { + type = RtcEngineType_Agora; + } + [RealtimackExecutive initEngineAboutGenre:type delegate:self]; + [self miecreoscoopeInthecaseofmtowardsionRefurbishd:NO]; + [self initNEMCMiecreoscoopeInthecaseofmtowardsions]; +} + +- (void)onChamberImported { + self.isRoadliceImport = NO; + + [self miecreoscoopeInthecaseofmtowardsionRefurbishd:NO]; + [self initRtc]; + [self initNEMCMiecreoscoopeInthecaseofmtowardsions]; +} + +- (NSMutableDictionary *)acquireMiecreoscoopeInthecaseofmtowardsion { + return self.micQueue; +} + +- (void)onChamberRefurbish { + self.isRoadliceImport = NO; +} + +- (void)shankNEMCCircularCommunictowardsion:(NIMMessage *)message { + NIMNotificationObject *notiMsg = (NIMNotificationObject *)message.messageObject; + NIMChatroomNotificationContent *content = (NIMChatroomNotificationContent *)notiMsg.content; + BOOL microQueueChanged = NO; + BOOL ownerRTCChanged = NO; + switch (content.eventType) { + case NIMChatroomEventTypeInfoUpdated: + { + NSDictionary *data = [content.notifyExt toJSONGroal]; + int type = [data[@"type"] intValue]; + NSArray* microStates; + switch (type) { + case 2: + microStates = @[[MiecreoscoopeStateMatrix mtowardsrixAboutJSON:data[@"micInfo"]]]; + break; + case 3: + microStates = [MiecreoscoopeStateMatrix mtowardsrixsAboutGarment:data[@"micInfo"]]; + break; + } + if (microStates && microStates.count > 0) { + for (MiecreoscoopeStateMatrix *microState in microStates) { + MiecreoscoopeMHTueueMatrix *micSequence = [self.micQueue objectForKey:[NSString stringWithFormat:@"%d", microState.position]]; + micSequence.microState = microState; + } + microQueueChanged = YES; + } + } + break; + + case NIMChatroomEventTypeQueueChange: + { + NSDictionary* data = (NSDictionary *)content.ext; + NSString* position = [data objectForKey:NIMChatroomEventInfoQueueChangeItemKey]; + ConsumerAbstractMatrix* userInfo = [ConsumerAbstractMatrix mtowardsrixAboutJSON:[data objectForKey:NIMChatroomEventInfoQueueChangeItemValueKey]]; + NSInteger changeType = [data[NIMChatroomEventInfoQueueChangeTypeKey] integerValue]; + if (userInfo.uid == [AccountAbstractStorage instance].acquireCid.integerValue) { + ownerRTCChanged = YES; + } + + for (MiecreoscoopeMHTueueMatrix *sequence in self.micQueue.allValues) { + if (userInfo.uid == sequence.userInfo.uid) { + sequence.userInfo = nil; + } + } + + if (changeType == 1) { + MiecreoscoopeMHTueueMatrix *sequence = [self.micQueue objectForKey:position]; + sequence.userInfo = userInfo; + if (self.hostRepresedtation.acquireChamberAbstract.showGiftValue && userInfo.uid == [AccountAbstractStorage instance].acquireCid.integerValue) { + ChamberAbstractMatrix * roomInfo =self.hostRepresedtation.acquireChamberAbstract; + NSString * roomUid = [NSString stringWithFormat:@"%ld", roomInfo.uid]; + NSString * uid = [NSString stringWithFormat:@"%ld", userInfo.uid]; + [Api chamberPresentBWSttessupburdenLoudspeaker:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + NIMMessage * message = [[NIMMessage alloc] init]; + AttachmentMatrix * attachMent = [[AttachmentMatrix alloc] init]; + attachMent.first = IndividualityCommunicationGenre_Room_GiftValue; + attachMent.second = Custom_Message_Sub_Room_GiftValue_Sync; + attachMent.data = data.data; + NIMCustomObject *object = [[NIMCustomObject alloc] init]; + object.attachment = attachMent; + message.messageObject = object; + + NSString * sessionId = [NSString stringWithFormat:@"%ld", roomInfo.roomId]; + NIMSession *session = [NIMSession session:sessionId type:NIMSessionTypeChatroom]; + [[NIMSDK sharedSDK].chatManager sendMessage:message toSession:session error:nil]; + } + } roomUid:roomUid micUid:uid position:position uid:uid]; + } + + if (sequence && sequence.userInfo.uid == [AccountAbstractStorage instance].acquireCid.integerValue) { + [RealtimackExecutive instance].localDelicate = YES; + } + } + + microQueueChanged = YES; + } + break; + case NIMChatroomEventTypeExit: + case NIMChatroomEventTypeKicked: + { + for (NIMChatroomNotificationMember *member in content.targets) { + for (MiecreoscoopeMHTueueMatrix *sequence in self.micQueue.allValues) { + if (member.userId.integerValue == sequence.userInfo.uid) { + sequence.userInfo = nil; + microQueueChanged = YES; + } + } + } + } + break; + default: + break; + } + + if (microQueueChanged) { + self.isRoadliceImport = NO; + [self miecreoscoopeInthecaseofmtowardsionRefurbishd:ownerRTCChanged]; + [self.hostRepresedtation onMiecreoscoopeInthecaseofmtowardsionRefurbish:self.micQueue]; + } +} + +- (void)shankNEMCIndividualityCommunictowardsion:(NIMMessage *)message { + NIMCustomObject *obj = (NIMCustomObject *)message.messageObject; + if (obj.attachment != nil && [obj.attachment isKindOfClass:[AttachmentMatrix class]]) { + AttachmentMatrix *attachment = (AttachmentMatrix *)obj.attachment; + if(attachment.first == IndividualityCommunicationGenre_Queue && attachment.second == Custom_Message_Sub_Queue_Invite) { + NSDictionary *dic = attachment.data; + MiecreoscoopeCallforExtMatrix *inviteModel = [MiecreoscoopeCallforExtMatrix mtowardsrixAboutImpactbasket:dic]; + if (inviteModel.uid.integerValue == self.hostRepresedtation.getUserInfo.uid) { + NSString *position = inviteModel.micPosition; + + MiecreoscoopeMHTueueMatrix *micro = [self.micQueue objectForKey:position]; + if (!micro || micro.userInfo) return; + + ChamberAbstractMatrix* roomInfo = self.hostRepresedtation.acquireChamberAbstract; + NSString* roomId = [NSString stringWithFormat:@"%ld", roomInfo.roomId]; + ConsumerAbstractMatrix* userInfo = self.hostRepresedtation.getUserInfo; + + NIMChatroomQueueUpdateRequest *request = [[NIMChatroomQueueUpdateRequest alloc]init]; + request.key = position; + request.value = [[self consumerAbstractToInthecaseofmtowardsionExt:userInfo] toJSONBWSttr]; + request.roomId = roomId; + request.transient = YES; + + [[NIMSDK sharedSDK].chatroomManager updateChatroomQueueObject:request completion:^(NSError * _Nullable error) { + if (error) return; + [RealtimackExecutive instance].localDelicate = YES; + MKJPrecautiousDisposition *config = [[MKJPrecautiousDisposition alloc] init]; + config.title = YMLocalizedString(@"Stage_View_0"); + config.message = @"你已被房主或管理员拉上麦,但并未开启麦克风。如需要说话,请打开麦克风。"; + [MKJPopup precautiousAboutDisposition:config acknowledgementHandler:^{ + + } cancelHandler:^{ + + }]; + }]; + } + } else if(attachment.first == IndividualityCommunicationGenre_Room_GiftValue && attachment.second == Custom_Message_Sub_Room_GiftValue_Sync) { + [self presentBWSttessRefurbish:attachment.data]; + } else if(attachment.first == IndividualityCommunicationGenre_Gift && (attachment.second == Custom_Message_Sub_Gift_Send || attachment.second == Custom_Message_Sub_Gift_LuckySend || attachment.second == Custom_Message_Sub_Gift_ChannelNotify)) { + [self presentBWSttessRefurbish:attachment.data]; + }else if(attachment.first == IndividualityCommunicationGenre_AllMicroSend && (attachment.second == Custom_Message_Sub_AllMicroSend || attachment.second == Custom_Message_Sub_AllBatchSend || attachment.second == Custom_Message_Sub_AllMicroLuckySend || attachment.second == Custom_Message_Sub_AllBatchMicroLuckySend)) { + [self presentBWSttessRefurbish:attachment.data]; + } else if (attachment.first == IndividualityCommunicationGenre_Face && attachment.second == Custom_Message_Sub_Face_Send) { + [self EvidenceConsumerAccept:attachment.data]; + }else if (attachment.first == IndividualityCommunicationGenre_Room_PK && attachment.second == Custom_Message_Sub_Room_PK_Manager_Up_Mic) { + NSDictionary * dic = attachment.data; + + NSString * uid = [AccountAbstractStorage instance].acquireCid; + if (dic.allKeys.count > 0 && [dic.allKeys containsObject:uid] && [dic objectForKey:uid]) { + ChamberCombatChooseConsumerMatrix * pkUserInfo = [ChamberCombatChooseConsumerMatrix mtowardsrixAboutImpactbasket:[dic objectForKey:uid]]; + NSString * position = [NSString stringWithFormat:@"%d", pkUserInfo.position]; + NSString* roomId = [NSString stringWithFormat:@"%ld", self.hostRepresedtation.acquireChamberAbstract.roomId]; + MiecreoscoopeMHTueueMatrix *micro = [self.micQueue objectForKey:position]; + if (micro && micro.userInfo && micro.userInfo.uid != pkUserInfo.uid.integerValue) return; + ConsumerAbstractMatrix * userInfo = self.hostRepresedtation.getUserInfo; + userInfo.groupType = pkUserInfo.groupType; + NIMChatroomQueueUpdateRequest *request = [[NIMChatroomQueueUpdateRequest alloc]init]; + request.key = position; + request.value = [[self consumerAbstractToInthecaseofmtowardsionExt:userInfo] toJSONBWSttr]; + request.roomId = roomId; + request.transient = YES; + [[NIMSDK sharedSDK].chatroomManager updateChatroomQueueObject:request completion:^(NSError * _Nullable error) { + if (error) return; + }]; + } + } + } +} + +#pragma mark - RtcRepresendtation - 讲话的波纹回调 +- (void)consumersSpeaking:(NSMutableArray *)uids { + if ([RealtimackExecutive instance].isRemoteDelicate) { + return; + } + for (NSString* uid in uids) { + if ([RealtimackExecutive instance].isLocalDelicate && uid.integerValue == self.hostRepresedtation.getUserInfo.uid) { + continue; + } + UIView* microView = [self prohibiticoveryMiecreoscoopeRegardByCid:uid]; + if (microView) { + [microView consumerSpeaking]; + } + } +} + +#pragma mark - 表情 +- (void)EvidenceConsumerAccept:(NSDictionary *)faceDic { + if ([faceDic[@"data"] isKindOfClass:[NSArray class]]) { + NSArray *arr = faceDic[@"data"]; + for (int i = 0; i < arr.count; i++) { + NSDictionary *dict = [arr secureGroalTowardsIndictowardsrix1:i]; + ChamberAcceptDischargeAbstractMatrix * receiveInfo = [ChamberAcceptDischargeAbstractMatrix mtowardsrixAboutImpactbasket:dict]; + UIView * view = [self prohibiticoveryMiecreoscoopeRegardByCid:[NSString stringWithFormat:@"%ld",receiveInfo.uid]]; + if (view == nil) continue; + [view EvidenceingAccept:receiveInfo]; + } + } + +} + +#pragma mark - StageRegardRepresendtation - 留给子 View 重写的模板方法 +- (void)didChosenTowardsIndictowardsrix:(NSInteger)index { + + MiecreoscoopeMHTueueMatrix* micModel = [self.micQueue objectForKey:[self indexToPolariztowardsion:index]]; + ConsumerAbstractMatrix* userInfo = self.hostRepresedtation.getUserInfo; + ChamberAbstractMatrix* roomInfo = self.hostRepresedtation.acquireChamberAbstract; + NSString* position = [self indexToPolariztowardsion:index]; + NSString* uid = [NSString stringWithFormat:@"%ld", userInfo.uid]; + NSString* roomId = [NSString stringWithFormat:@"%ld", roomInfo.roomId]; + + + NSString * targetUid; + if (roomInfo.leaveMode && [position isEqualToString:@"-1"]) { + targetUid = [NSString stringWithFormat:@"%ld", roomInfo.uid]; + } + if (micModel.userInfo && micModel.userInfo.uid > 0) { + targetUid = [NSString stringWithFormat:@"%ld", micModel.userInfo.uid]; + } + + if (targetUid && targetUid.length > 0) { + if ([ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + YUMIConsumerSolitaireAbstractMatrix * model = [[YUMIConsumerSolitaireAbstractMatrix alloc] init]; + model.uid = targetUid; + model.position = position; + model.posState = micModel.microState.posState; + model.micState = micModel.microState.micState; + model.nick = userInfo.nick; + model.roomInfo = roomInfo; + model.micQueue = self.micQueue; + model.delegate = self.hostRepresedtation; + model.superMangerList = self.hostRepresedtation.acquireChamberSenstowardsionalManagementSttowardsement; + YUMIConsumerSolitaireRegardGovernancer * userCardVC = [[YUMIConsumerSolitaireRegardGovernancer alloc] initWithUser:model]; + [self.hostRepresedtation.acquireUniversalNev presentViewController:userCardVC animated:YES completion:nil]; + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventroom_mike_click eventAttributes:@{@"actionType" : @"userCard"}]; + } else { + + NIMChatroomMembersByIdsRequest *request = [[NIMChatroomMembersByIdsRequest alloc]init]; + request.roomId = roomId; + request.userIds = @[uid]; + [[NIMSDK sharedSDK].chatroomManager fetchChatroomMembersByIds:request completion:^(NSError * _Nullable error, NSArray * _Nullable members) { + NIMChatroomMember * member = members.firstObject; + if (!member) return; + + if (member.type == NIMTeamMemberTypeOwner || member.type == NIMTeamMemberTypeManager) { + MKJActionSheetDisposition *lockMic = [MKJActionSheetDisposition normalTitle:YMLocalizedString(@"Stage_View_2") ticktackPerformance:^{ + NIMChatroomQueueRemoveRequest *request = [[NIMChatroomQueueRemoveRequest alloc]init]; + request.key = position; + request.roomId = roomId; + [[NIMSDK sharedSDK].chatroomManager removeChatroomQueueObject:request completion:^(NSError * _Nullable error, NSDictionary * _Nullable element) { + NSLog(@"%@", error); + }]; + }]; + [MKJPopup performanceSheetAboutProvisions:@[lockMic]]; + } + }]; + } + return; + } + + if (roomInfo.leaveMode && roomInfo.uid == [AccountAbstractStorage instance].acquireCid.integerValue) { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:YMLocalizedString(@"Stage_View_3")]; + return; + } + + + NIMChatroomMembersByIdsRequest *request = [[NIMChatroomMembersByIdsRequest alloc]init]; + request.roomId = roomId; + request.userIds = @[uid]; + [[NIMSDK sharedSDK].chatroomManager fetchChatroomMembersByIds:request completion:^(NSError * _Nullable error, NSArray * _Nullable members) { + NIMChatroomMember * member = members.firstObject; + if (!member) return; + + void(^nimUpQueue)(NSString*, BOOL) = ^ (NSString* up, BOOL isFromDownMic){ + if (!self.possessAcquireFormationAbstractSuccess) { + return; + } + MiecreoscoopeMHTueueMatrix* micModel = [self.micQueue objectForKey:up]; + if (micModel.userInfo) { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:@"该麦位已经有人了哦~"]; + return; + } + NIMChatroomQueueUpdateRequest *request = [[NIMChatroomQueueUpdateRequest alloc]init]; + request.key = up; + request.value = [[self consumerAbstractToInthecaseofmtowardsionExt:userInfo] toJSONBWSttr]; + request.roomId = roomId; + request.transient = YES; + [[NIMSDK sharedSDK].chatroomManager updateChatroomQueueObject:request completion:^(NSError * _Nullable error) { + if (isFromDownMic) { + self.isUpwardsingLoudspeaker = NO; + } + if (error) { + + } + }]; + }; + + + void(^nimDownQueue)(NSString*, NSString*) = ^ (NSString* firstDown, NSString* nextUp){ + NIMChatroomQueueRemoveRequest *request = [[NIMChatroomQueueRemoveRequest alloc]init]; + request.key = firstDown; + request.roomId = roomId; + [[NIMSDK sharedSDK].chatroomManager removeChatroomQueueObject:request completion:^(NSError * _Nullable error, NSDictionary * _Nullable element) { + if (!error && nextUp) { + nimUpQueue(nextUp, YES); + } else { + self.isUpwardsingLoudspeaker = NO; + } + }]; + }; + + + if (member.type == NIMTeamMemberTypeOwner || member.type == NIMTeamMemberTypeManager) { + + NSString * upTitle = YMLocalizedString(@"Stage_View_5"); + if (![ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + upTitle = YMLocalizedString(@"Stage_View_6"); + } + MKJActionSheetDisposition *upMic = [MKJActionSheetDisposition normalTitle:upTitle ticktackPerformance:^{ + NSString* selfUid = [NSString stringWithFormat:@"%ld", (long)self.hostRepresedtation.getUserInfo.uid]; + UIView* microView = [self prohibiticoveryMiecreoscoopeRegardByCid:selfUid]; + if (microView) { + nimDownQueue([self indexToPolariztowardsion:microView.tag], position); + } else { + nimUpQueue(position, NO); + } + }]; + + + NSString * lockTitle; + if (roomInfo.roomModeType == ChamberModeGenre_Open_Micro_Mode) { + lockTitle = micModel.microState.posState == MiecreoscoopePosDeclareGenre_Free ? @"切换为排麦" : YMLocalizedString(@"Stage_View_8"); + }else { + lockTitle = micModel.microState.posState == MiecreoscoopePosDeclareGenre_Free ? @"锁麦" : YMLocalizedString(@"Stage_View_10"); + } + if (![ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + lockTitle = micModel.microState.posState == MiecreoscoopePosDeclareGenre_Free ? @"锁定坑位" : YMLocalizedString(@"Stage_View_12"); + } + MKJActionSheetDisposition *lockMic = [MKJActionSheetDisposition normalTitle:lockTitle ticktackPerformance:^{ + NSString * roomUid = [NSString stringWithFormat:@"%ld", self.hostRepresedtation.acquireChamberAbstract.uid]; + NSString * state = micModel.microState.posState == MiecreoscoopePosDeclareGenre_Free ? @"1" : @"0"; + NSString * ticket = [[AccountAbstractStorage instance] acquireTicket]; + NSString * uid = [[AccountAbstractStorage instance] acquireCid]; + [Api miecreoscoopeSpokeImplementtowardsion:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + + } roomUid:roomUid state:state position:position ticket:ticket uid:uid]; + }]; + + + NSString * muteTitle = micModel.microState.micState == MiecreoscoopeLoudspeakerDeclareGenre_Open ? @"闭麦" : YMLocalizedString(@"Stage_View_14"); + if (![ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + muteTitle = micModel.microState.micState == MiecreoscoopeLoudspeakerDeclareGenre_Open ? @"关闭麦位话筒" : YMLocalizedString(@"Stage_View_16"); + } + MKJActionSheetDisposition *muteMic = [MKJActionSheetDisposition normalTitle:muteTitle ticktackPerformance:^{ + NSString * roomUid = [NSString stringWithFormat:@"%ld", self.hostRepresedtation.acquireChamberAbstract.uid]; + NSString * state = micModel.microState.micState == MiecreoscoopeLoudspeakerDeclareGenre_Open ? @"1" : @"0"; + NSString * ticket = [[AccountAbstractStorage instance] acquireTicket]; + NSString * uid = [[AccountAbstractStorage instance] acquireCid]; + [Api miecreoscoopeBretowardshaedImplementtowardsion:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + + } roomUid:roomUid state:state position:position ticket:ticket uid:uid]; + }]; + + + NSString * inviteTitle = ([position isEqualToString:@"-1"] && roomInfo.roomModeType == ChamberModeGenre_Open_Blind) ? @"抱Ta上麦当主持" : YMLocalizedString(@"Stage_View_18"); + MKJActionSheetDisposition *inviteMic = [MKJActionSheetDisposition normalTitle:inviteTitle ticktackPerformance:^{ + YUMIChamberCallforConsumerRegardGovernancer * inviteUserMicVC = [[YUMIChamberCallforConsumerRegardGovernancer alloc] init]; + inviteUserMicVC.isExecutiveOrMaintainrietary = ([position isEqualToString:@"-1"] && roomInfo.roomModeType == ChamberModeGenre_Open_Blind); + inviteUserMicVC.roomId = roomId; + inviteUserMicVC.position = position; + inviteUserMicVC.blindDateVipUid = roomInfo.blindDateVipUid; + [self.hostRepresedtation.acquireUniversalNev pushViewController:inviteUserMicVC animated:YES]; + }]; + if ([ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + [MKJPopup performanceSheetAboutProvisions:@[upMic,inviteMic, lockMic, muteMic]]; + } else { + [MKJPopup performanceSheetAboutProvisions:@[ muteMic,upMic, lockMic]]; + } + + } else { + + if (micModel.microState.posState == MiecreoscoopePosDeclareGenre_Lock) { + if (roomInfo.roomModeType == ChamberModeGenre_Open_Micro_Mode) { + if ([self acquireIndictowardsrixByCid:[AccountAbstractStorage instance].acquireCid] != -1) { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:YMLocalizedString(@"Stage_View_19")]; + } else { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:@"需要排麦才可以上麦哦~"]; + } + } + return; + }; + + NSString* selfUid = [NSString stringWithFormat:@"%ld", (long)self.hostRepresedtation.getUserInfo.uid]; + UIView* microView = [self prohibiticoveryMiecreoscoopeRegardByCid:selfUid]; + if (microView) { + if (self.isUpwardsingLoudspeaker) { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:YMLocalizedString(@"Stage_View_21")]; + } else { + self.isUpwardsingLoudspeaker = YES; + nimDownQueue([self indexToPolariztowardsion:microView.tag], position); + } + } else { + nimUpQueue(position, NO); + } + } + }]; +} + +- (NSInteger)computtowardsionHLOfMircoRegard { + return 0; +} + +- (CGFloat)hightInthecaseofPhaseRegard { + return 0; +} + +- (nonnull UIView *)miecreoscoopeRegardInthecaseofIndictowardsrix:(NSInteger)index { + return [self prohibiticoveryMiecreoscoopeRegardByIndictowardsrix:index]; +} + +- (CGRect)rectInthecaseofRegardTowardsIndictowardsrix:(NSInteger)index { + return CGRectZero; +} + +#pragma mark - StageRegardCeremony - 基本上都是工具方法 +- (NSInteger)polariztowardsionToIndictowardsrix:(NSString*)position { + return position.intValue + 1; +} + +- (NSString *)indexToPolariztowardsion:(NSInteger)index { + return [NSString stringWithFormat:@"%ld", (long)(index - 1)]; +} + +- (NSInteger)acquireIndictowardsrixByCid:(NSString *)uid { + UIView * view = [self prohibiticoveryMiecreoscoopeRegardByCid:uid]; + if (view) { + return [self.miecreoscoopeRegards indexOfObject:view]; + } + return -1; +} + +- (MiecreoscoopeMHTueueMatrix *)prohibiticoveryMiecreoscoopeAbstractByCid:(NSString *)uid { + for (MiecreoscoopeMHTueueMatrix *model in self.micQueue.allValues) { + if (model.userInfo && model.userInfo.uid == uid.intValue) { + return model; + } + } + return nil; +} + +- (UIView *)prohibiticoveryMiecreoscoopeRegardByCid:(NSString *)uid { + for (int i = 0; i < self.computtowardsionHLOfMircoRegard; i++) { + MiecreoscoopeMHTueueMatrix* model = [self.micQueue objectForKey:[self indexToPolariztowardsion:i]]; + if (model.userInfo && model.userInfo.uid == uid.intValue) { + return [self prohibiticoveryMiecreoscoopeRegardByIndictowardsrix:i]; + } + } + return nil; +} + +- (UIView *)prohibiticoveryMiecreoscoopeRegardByIndictowardsrix:(NSInteger)index { + if (self.miecreoscoopeRegards && self.miecreoscoopeRegards.count > index) { + return [self.miecreoscoopeRegards secureGroalTowardsIndictowardsrix1:index]; + } + return nil; +} + +- (UIView *)prohibiticoveryMiecreoscoopeRegardByPolariztowardsion:(NSString *)position { + return [self prohibiticoveryMiecreoscoopeRegardByIndictowardsrix:[self polariztowardsionToIndictowardsrix:position]]; +} + +#pragma mark - private utils function + +- (NSDictionary *)consumerAbstractToInthecaseofmtowardsionExt:(ConsumerAbstractMatrix *)userInfo { + MiecreoscoopeExtMatrix * extModel = [[MiecreoscoopeExtMatrix alloc] init]; + extModel.gender = userInfo.gender; + extModel.avatar = userInfo.avatar; + extModel.uid = userInfo.uid; + extModel.nick = userInfo.nick; + extModel.headWearUrl = userInfo.headwearEffect.length > 0 ? userInfo.headwearEffect : userInfo.headwearPic; + extModel.micCircle = userInfo.micCircle; + extModel.micNickColor = userInfo.micNickColor; + extModel.preventKick = userInfo.userVipInfoVO.preventKick; + extModel.enterHide = userInfo.userVipInfoVO.enterHide; + extModel.groupType = userInfo.groupType; + return [extModel mtowardsrix2dictionary]; +} + + +- (void)miecreoscoopeRegardBetowardslictowardsioned:(UITapGestureRecognizer *)sender { + [self didChosenTowardsIndictowardsrix:sender.view.tag]; +} + +- (NSMutableArray *)miecreoscoopeRegards { + if (!_miecreoscoopeRegards) { + _miecreoscoopeRegards = [NSMutableArray arrayWithCapacity:self.computtowardsionHLOfMircoRegard]; + } + return _miecreoscoopeRegards; +} + +- (NSMutableDictionary *)micQueue { + if (!_micQueue) { + _micQueue= [NSMutableDictionary dictionary]; + for (int i = 0; i < self.computtowardsionHLOfMircoRegard; i++) { + NSString* position = [self indexToPolariztowardsion:i]; + MiecreoscoopeMHTueueMatrix *micSequence = [[MiecreoscoopeMHTueueMatrix alloc]init]; + micSequence.userInfo = nil; + micSequence.microState = [[MiecreoscoopeStateMatrix alloc]init]; + micSequence.microState.position = [position intValue]; + [self.micQueue setObject:micSequence forKey:position]; + } + } + return _micQueue; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/PhaseRegard/SocialPhaseRegard.h b/YuMi/Modules/YMRoom/View/PhaseRegard/SocialPhaseRegard.h new file mode 100644 index 00000000..9f99983f --- /dev/null +++ b/YuMi/Modules/YMRoom/View/PhaseRegard/SocialPhaseRegard.h @@ -0,0 +1,16 @@ +// +// SocialPhaseRegard.h +// YUMI +// +// Created by zu on 2021/10/26. +// + +#import "PhaseRegard.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface SocialPhaseRegard : PhaseRegard + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/PhaseRegard/SocialPhaseRegard.m b/YuMi/Modules/YMRoom/View/PhaseRegard/SocialPhaseRegard.m new file mode 100644 index 00000000..6d2e0a54 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/PhaseRegard/SocialPhaseRegard.m @@ -0,0 +1,89 @@ +// +// SocialPhaseRegard.m +// YUMI +// +// Created by zu on 2021/10/26. +// + +#import "SocialPhaseRegard.h" +#import "SocialMiecreoscoopeRegard.h" +#import "MiecreoscoopePresentStressRegard.h" +#import "YUMIMacroUitls.h" +#import "ChamberAbstractMatrix.h" +#import "ClientDisposition.h" +#define ownerTopMargin 35 +#define ownerWidth (45 + 5) * kScreenScale +#define ownerHeight (ownerWidth + 10 + 12) +#define mcWidth (45 + 5) * kScreenScale +#define mcHeight (mcWidth + 10 + 12 + 5+16) +#define paddingH 22 * kScreenScale +#define marginV1 38 +#define marginH (KScreenWidth - paddingH * 2 - mcWidth * 4) / 3 +#define firstRowTop ownerHeight + marginV1 + ownerTopMargin +#define marginV2 15 +#define secondRowTop (firstRowTop + mcHeight + marginV2) + +@implementation SocialPhaseRegard + +- (NSInteger)computtowardsionHLOfMircoRegard { + return 9; +} + +- (UIView *)miecreoscoopeRegardInthecaseofIndictowardsrix:(NSInteger)index { + UIView * microView = [super miecreoscoopeRegardInthecaseofIndictowardsrix:index]; + if (microView) { + return microView; + } + return [[SocialMiecreoscoopeRegard alloc]init]; +} + + +- (CGRect)rectInthecaseofRegardTowardsIndictowardsrix:(NSInteger)index { + if (index == 0) { + return CGRectMake(KScreenWidth / 2 - ownerWidth / 2, ownerTopMargin, ownerWidth, ownerHeight); + } + + if (index >= 1 && index <= 4) { + return CGRectMake(paddingH + (mcWidth + marginH) * (index - 1), firstRowTop, mcWidth, mcHeight); + } + + if (index >= 5 && index < 9) { + return CGRectMake(paddingH + (mcWidth + marginH) * (index - 4 - 1), secondRowTop, mcWidth, mcHeight); + } + + return [super rectInthecaseofRegardTowardsIndictowardsrix:index]; +} + +- (CGFloat)hightInthecaseofPhaseRegard { + if ([ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + return ownerTopMargin + ownerHeight + marginV1 + mcHeight + marginV2 + mcHeight + marginV2; + } else { + return ownerTopMargin + ownerHeight + marginV1 + mcHeight + marginV2 + mcHeight + marginV2 - 20; + } + +} + +- (CGPoint)brectifynessSpeckTowardsPhaseRegardByCid:(NSString *)uid { + NSInteger index = [self acquireIndictowardsrixByCid:uid]; + + CGPoint point = CGPointZero; + if (index == -1 && self.hostRepresedtation.acquireChamberAbstract.leaveMode && self.hostRepresedtation.acquireChamberAbstract.uid == uid.integerValue) { + point = CGPointMake(KScreenWidth / 2, ownerWidth / 2 - 10 + ownerTopMargin); + } + + if (index == 0) { + point = CGPointMake(KScreenWidth / 2, ownerWidth / 2 - 10 + ownerTopMargin); + } + + if (index >= 1 && index <= 4) { + point = CGPointMake(paddingH + (mcWidth + marginH) * (index - 1) + mcWidth / 2, firstRowTop + mcWidth / 2- 10); + } + + if (index >= 5 && index <= 9) { + point = CGPointMake(paddingH + (mcWidth + marginH) * (index - 4 - 1) + mcWidth / 2, secondRowTop + mcWidth / 2 - 10); + } + point = [self convertPoint:point toView:nil]; + return point; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/QuickMessageView/YUMIChamberMHTuickCommunicationContainRegard.h b/YuMi/Modules/YMRoom/View/QuickMessageView/YUMIChamberMHTuickCommunicationContainRegard.h new file mode 100644 index 00000000..a80e4d74 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/QuickMessageView/YUMIChamberMHTuickCommunicationContainRegard.h @@ -0,0 +1,21 @@ +// +// YMRoomQuickMessageContainView.h +// YUMI +// +// Created by YUMI on 2022/9/28. +// + +#import +#import "ChamberHostRepresendtation.h" +#import "ChamberGuestRepresendtation.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIChamberMHTuickCommunicationContainRegard : UIView + +- (instancetype)initWithDelegate:(id)delegate; + +@property (nonatomic, strong) NSArray *titleArray; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/QuickMessageView/YUMIChamberMHTuickCommunicationContainRegard.m b/YuMi/Modules/YMRoom/View/QuickMessageView/YUMIChamberMHTuickCommunicationContainRegard.m new file mode 100644 index 00000000..93ed1da3 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/QuickMessageView/YUMIChamberMHTuickCommunicationContainRegard.m @@ -0,0 +1,185 @@ +// +// YMRoomQuickMessageContainView.m +// YUMI +// +// Created by YUMI on 2022/9/28. +// + +#import "YUMIChamberMHTuickCommunicationContainRegard.h" +#import "YUMIChamberMHTuidkCommunicationElement.h" +#import +#import +#import "AccountAbstractStorage.h" +#import "YUMIConstant.h" +#import "XNDJTBWGLoadingTool.h" +#import "NSArray+Safe.h" +#import "ClientDisposition.h" +#import "YUMICommunicationRemoteExtMatrix.h" +#import "ConsumerAbstractMatrix.h" +#import "ChamberAbstractMatrix.h" + +@interface YUMIChamberMHTuickCommunicationContainRegard () + +@property (nonatomic, strong) UICollectionView *collectionView; +@property (nonatomic,strong) UIButton *concludeBtuton; +@property (nonatomic,weak) id delegate; +@property (nonatomic, assign) long long lastDischargeIntratemporal; + +@end + +@implementation YUMIChamberMHTuickCommunicationContainRegard + +- (instancetype)initWithDelegate:(id)delegate { + self = [super init]; + if (self) { + self.delegate = delegate; + self.clipsToBounds = YES; + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.collectionView]; + [self addSubview:self.concludeBtuton]; +} + +- (void)initChildLyRestrictions { + [self.collectionView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self).offset(15); + make.right.mas_equalTo(self.concludeBtuton.mas_left).offset(-8); + make.top.bottom.mas_equalTo(self); + }]; + + [self.concludeBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(-8); + make.width.height.mas_equalTo(30); + make.centerY.mas_equalTo(self); + }]; +} + +#pragma mark - UICollectionViewDataSource +- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { + return self.titleArray.count; +} + +- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { + YUMIChamberMHTuidkCommunicationElement *cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([YUMIChamberMHTuidkCommunicationElement class]) forIndexPath:indexPath]; + if (self.titleArray.count > 0) { + cell.title = [self.titleArray secureGroalTowardsIndictowardsrix1:indexPath.row]; + } + return cell; +} + +- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath { + NSString *str = [self.titleArray secureGroalTowardsIndictowardsrix1:indexPath.row]; + NSDictionary *dic = @{NSFontAttributeName:[UIFont systemFontOfSize:12]}; + CGSize size = [str boundingRectWithSize:CGSizeMake(CGFLOAT_MAX, 25) options:NSStringDrawingUsesLineFragmentOrigin attributes:dic context:nil].size; + return CGSizeMake(size.width + 10, 30); +} + +- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath { + if (self.titleArray.count > 0) { + NSDate *datenow = [NSDate date]; + long time2 = (long)([datenow timeIntervalSince1970]*1000); + long aTime = (time2 - self.lastDischargeIntratemporal) / 1000; + if (aTime < 10) { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:YMLocalizedString(@"YUMI_Room_Quick_Message_Contain_View_0")]; + return; + } + self.lastDischargeIntratemporal = time2; + NSString *str = [self.titleArray secureGroalTowardsIndictowardsrix1:indexPath.row]; + [self sendText:str]; + } +} + +- (void)sendText:(NSString *)text { + if ([self.delegate acquireChamberAbstract].isCloseScreen) { + return; + } + + [[NSUserDefaults standardUserDefaults] removeObjectForKey:kRoomQuickMessageCloseCount]; + [[NSUserDefaults standardUserDefaults] synchronize]; + + ConsumerAbstractMatrix * userInfo = [self.delegate getUserInfo]; + YUMICommunicationRemoteExtMatrix *extModel = [[YUMICommunicationRemoteExtMatrix alloc] init]; + extModel.defUser = userInfo.defUser; + extModel.erbanNo = userInfo.erbanNo; + extModel.carName = userInfo.carName; + extModel.inRoomNameplatePic = userInfo.nameplatePic; + extModel.inRoomNameplateWord = userInfo.nameplateWord; + extModel.charmUrl = userInfo.userLevelVo.charmUrl; + extModel.experLevelSeq = userInfo.userLevelVo.experLevelSeq; + extModel.experUrl = userInfo.userLevelVo.experUrl; + extModel.newUser = userInfo.newUser; + extModel.vipIcon = userInfo.userVipInfoVO.vipIcon; + extModel.androidBubbleUrl = userInfo.androidBubbleUrl; + extModel.iosBubbleUrl = userInfo.iosBubbleUrl; + extModel.fromSayHelloChannel = userInfo.fromSayHelloChannel; + + NIMMessage * message = [[NIMMessage alloc] init]; + message.text = text; + NSMutableDictionary *remoteExt = [NSMutableDictionary dictionaryWithObject:extModel.mtowardsrix2dictionary forKey:[AccountAbstractStorage instance].acquireCid]; + message.remoteExt = remoteExt; + + + NIMAntiSpamOption *option = [[NIMAntiSpamOption alloc]init]; + option.yidunEnabled = YES; + option.businessId = KeyWithType(keyType_YiDunBussinessId); + message.antiSpamOption = option; + NSString * sessionId = [NSString stringWithFormat:@"%ld", [self.delegate acquireChamberAbstract].roomId]; + + NIMSession *session = [NIMSession session:sessionId type:NIMSessionTypeChatroom]; + [[NIMSDK sharedSDK].chatManager sendMessage:message toSession:session completion:^(NSError * _Nullable error) { + }]; +} + +- (void)onConcludeBtutonTicktack:(UIButton *)sender { + [self mas_updateConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(0); + }]; + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + + NSNumber *count = [defaults objectForKey:kRoomQuickMessageCloseCount]; + [defaults setObject:@(count.intValue +1) forKey:kRoomQuickMessageCloseCount]; + [defaults synchronize]; + +} + +#pragma mark - Getters And Setters +- (void)setTitleArray:(NSArray *)titleArray { + if (![ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + self.hidden = YES; + return; + } + _titleArray = titleArray; + [self.collectionView reloadData]; +} + +- (UICollectionView *)collectionView{ + if (!_collectionView) { + UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init]; + layout.scrollDirection = UICollectionViewScrollDirectionHorizontal; + layout.minimumInteritemSpacing = 8; + _collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout]; + _collectionView.showsHorizontalScrollIndicator = NO; + _collectionView.backgroundColor = [UIColor clearColor]; + _collectionView.dataSource = self; + _collectionView.delegate = self; + [_collectionView registerClass:[YUMIChamberMHTuidkCommunicationElement class] forCellWithReuseIdentifier:NSStringFromClass([YUMIChamberMHTuidkCommunicationElement class])]; + } + return _collectionView; +} + +- (UIButton *)concludeBtuton { + if (!_concludeBtuton) { + _concludeBtuton = [[UIButton alloc] init]; + [_concludeBtuton setImage:[UIImage imageNamed:@"yumi_scope_present_graffiti_close"] forState:UIControlStateNormal]; + [_concludeBtuton addTarget:self action:@selector(onConcludeBtutonTicktack:) forControlEvents:UIControlEventTouchUpInside]; + } + return _concludeBtuton; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/QuickMessageView/YUMIChamberMHTuidkCommunicationElement.h b/YuMi/Modules/YMRoom/View/QuickMessageView/YUMIChamberMHTuidkCommunicationElement.h new file mode 100644 index 00000000..f280ad0c --- /dev/null +++ b/YuMi/Modules/YMRoom/View/QuickMessageView/YUMIChamberMHTuidkCommunicationElement.h @@ -0,0 +1,18 @@ +// +// YMRoomQuidkMessageCell.h +// YUMI +// +// Created by YUMI on 2022/9/28. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIChamberMHTuidkCommunicationElement : UICollectionViewCell + +@property (nonatomic, copy) NSString *title; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/QuickMessageView/YUMIChamberMHTuidkCommunicationElement.m b/YuMi/Modules/YMRoom/View/QuickMessageView/YUMIChamberMHTuidkCommunicationElement.m new file mode 100644 index 00000000..6655b154 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/QuickMessageView/YUMIChamberMHTuidkCommunicationElement.m @@ -0,0 +1,66 @@ +// +// YMRoomQuidkMessageCell.m +// YUMI +// +// Created by YUMI on 2022/9/28. +// + +#import "YUMIChamberMHTuidkCommunicationElement.h" +#import +#import "ChamberCoupleMatrix.h" +#import "DJDKMIMOMColor.h" +#import "ChamberClassifyMatrix.h" + +@interface YUMIChamberMHTuidkCommunicationElement () + +@property (nonatomic, strong) UIView *backgroundRegard; + +@property (nonatomic, strong) UILabel *coupleSequencignation; + +@end + +@implementation YUMIChamberMHTuidkCommunicationElement + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self addSubview:self.backgroundRegard]; + [self addSubview:self.coupleSequencignation]; + [self.backgroundRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(22); + make.left.right.mas_equalTo(self.contentView); + make.centerY.mas_equalTo(self.contentView); + }]; + [self.coupleSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.center.mas_equalTo(self); + }]; + } + return self; +} + +- (void)setTitle:(NSString *)title { + self.coupleSequencignation.text = title; +} + +#pragma mark - Getter & Setter +- (UILabel *)coupleSequencignation { + if (!_coupleSequencignation) { + _coupleSequencignation = [[UILabel alloc] init]; + _coupleSequencignation.textColor = UIColor.whiteColor; + _coupleSequencignation.font = [UIFont systemFontOfSize:12]; + _coupleSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _coupleSequencignation; +} + +- (UIView *)backgroundRegard { + if (!_backgroundRegard) { + _backgroundRegard = [[UIView alloc] init]; + _backgroundRegard.backgroundColor = UIColorRGBAlpha(0xffffff, 0.3); + _backgroundRegard.layer.cornerRadius = 11; + _backgroundRegard.layer.masksToBounds = YES; + } + return _backgroundRegard; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/ReleaseRadio/Api/Api+RoomRadio.h b/YuMi/Modules/YMRoom/View/ReleaseRadio/Api/Api+RoomRadio.h new file mode 100644 index 00000000..598f4a62 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/ReleaseRadio/Api/Api+RoomRadio.h @@ -0,0 +1,18 @@ +// +// Api+RoomRadio.h +// YUMI +// +// Created by YUMI on 2021/12/31. +// + +#import "Api.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface Api (RoomRadio) + ++ (void)prohibitichargeChamberWireless:(HttpRequestHelperCompletion)completion roomId:(NSString *)roomId msg:(NSString *)msg; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/ReleaseRadio/Api/Api+RoomRadio.m b/YuMi/Modules/YMRoom/View/ReleaseRadio/Api/Api+RoomRadio.m new file mode 100644 index 00000000..729b92a0 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/ReleaseRadio/Api/Api+RoomRadio.m @@ -0,0 +1,17 @@ +// +// Api+RoomRadio.m +// YUMI +// +// Created by YUMI on 2021/12/31. +// + +#import "Api+RoomRadio.h" +#import +@implementation Api (RoomRadio) + ++ (void)prohibitichargeChamberWireless:(HttpRequestHelperCompletion)completion roomId:(NSString *)roomId msg:(NSString *)msg { + NSString * fang = [NSString stringFromBase64String:@"YnJvYWQvc2VuZA=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, roomId, msg, nil]; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/ReleaseRadio/Model/YUMIReleaseWirelessMatrix.h b/YuMi/Modules/YMRoom/View/ReleaseRadio/Model/YUMIReleaseWirelessMatrix.h new file mode 100644 index 00000000..d5cce61a --- /dev/null +++ b/YuMi/Modules/YMRoom/View/ReleaseRadio/Model/YUMIReleaseWirelessMatrix.h @@ -0,0 +1,25 @@ +// +// YMReleaseRadioModel.h +// YUMI +// +// Created by YUMI on 2021/12/31. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIReleaseWirelessMatrix : NSObject + +@property (nonatomic, assign) NSInteger availableTimes; +@property (nonatomic, assign) NSInteger maxWords; +@property (nonatomic, assign) NSInteger minWords; +@property (nonatomic, assign) NSInteger minutes; +@property (nonatomic, assign) NSInteger seconds; +@property (nonatomic, assign) NSInteger total; +@property (nonatomic, strong) NSArray *recommends; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/ReleaseRadio/Model/YUMIReleaseWirelessMatrix.m b/YuMi/Modules/YMRoom/View/ReleaseRadio/Model/YUMIReleaseWirelessMatrix.m new file mode 100644 index 00000000..94751ceb --- /dev/null +++ b/YuMi/Modules/YMRoom/View/ReleaseRadio/Model/YUMIReleaseWirelessMatrix.m @@ -0,0 +1,12 @@ +// +// YMReleaseRadioModel.m +// YUMI +// +// Created by YUMI on 2021/12/31. +// + +#import "YUMIReleaseWirelessMatrix.h" + +@implementation YUMIReleaseWirelessMatrix + +@end diff --git a/YuMi/Modules/YMRoom/View/ReleaseRadio/Presenter/YUMIReleaseWirelessExternalizer.h b/YuMi/Modules/YMRoom/View/ReleaseRadio/Presenter/YUMIReleaseWirelessExternalizer.h new file mode 100644 index 00000000..7b7ec19e --- /dev/null +++ b/YuMi/Modules/YMRoom/View/ReleaseRadio/Presenter/YUMIReleaseWirelessExternalizer.h @@ -0,0 +1,18 @@ +// +// YMReleaseRadioPresenter.h +// YUMI +// +// Created by YUMI on 2021/12/31. +// + +#import "BaseMvpExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIReleaseWirelessExternalizer : BaseMvpExternalizer + +- (void)releaseChamberWirelessAboutChamberId:(NSString *)roomId message:(NSString *)message; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/ReleaseRadio/Presenter/YUMIReleaseWirelessExternalizer.m b/YuMi/Modules/YMRoom/View/ReleaseRadio/Presenter/YUMIReleaseWirelessExternalizer.m new file mode 100644 index 00000000..da838f1a --- /dev/null +++ b/YuMi/Modules/YMRoom/View/ReleaseRadio/Presenter/YUMIReleaseWirelessExternalizer.m @@ -0,0 +1,22 @@ +// +// YMReleaseRadioPresenter.m +// YUMI +// +// Created by YUMI on 2021/12/31. +// + +#import "YUMIReleaseWirelessExternalizer.h" +#import "Api+RoomRadio.h" +#import "YUMIReleaseWirelessMatrix.h" +#import "FBCReleaseRadioCeremony.h" +#import "AccountAbstractStorage.h" + +@implementation YUMIReleaseWirelessExternalizer + +- (void)releaseChamberWirelessAboutChamberId:(NSString *)roomId message:(NSString *)message { + [Api prohibitichargeChamberWireless:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] releaseChamberWirelessAccomplishment]; + }] roomId:roomId msg:message]; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/ReleaseRadio/Protocol/FBCReleaseRadioCeremony.h b/YuMi/Modules/YMRoom/View/ReleaseRadio/Protocol/FBCReleaseRadioCeremony.h new file mode 100644 index 00000000..f3b1432c --- /dev/null +++ b/YuMi/Modules/YMRoom/View/ReleaseRadio/Protocol/FBCReleaseRadioCeremony.h @@ -0,0 +1,14 @@ +// +// YMReleaseRadioProtocol.h +// YUMI +// +// Created by YUMI on 2021/12/31. +// + +#import + +@protocol FBCReleaseRadioCeremony + +- (void)releaseChamberWirelessAccomplishment; + +@end diff --git a/YuMi/Modules/YMRoom/View/ReleaseRadio/View/Cell/YUMIReleaseWirelessTabulationRegardElement.h b/YuMi/Modules/YMRoom/View/ReleaseRadio/View/Cell/YUMIReleaseWirelessTabulationRegardElement.h new file mode 100644 index 00000000..4e239401 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/ReleaseRadio/View/Cell/YUMIReleaseWirelessTabulationRegardElement.h @@ -0,0 +1,26 @@ +// +// YMReleaseRadioTableViewCell.h +// YUMI +// +// Created by YUMI on 2021/12/30. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class YUMIReleaseWirelessTabulationRegardElement; +@protocol FBCReleaseRadioTabulationViweElementRepresendtation + +- (void)yUMIReleaseWirelessTarbsultowardsionViweElementDidChosenElement:(YUMIReleaseWirelessTabulationRegardElement *)cell; + +@end + +@interface YUMIReleaseWirelessTabulationRegardElement : UITableViewCell + +@property (nonatomic, copy) NSString *title; + +@property (nonatomic, weak) id delegate; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/ReleaseRadio/View/Cell/YUMIReleaseWirelessTabulationRegardElement.m b/YuMi/Modules/YMRoom/View/ReleaseRadio/View/Cell/YUMIReleaseWirelessTabulationRegardElement.m new file mode 100644 index 00000000..9340b49b --- /dev/null +++ b/YuMi/Modules/YMRoom/View/ReleaseRadio/View/Cell/YUMIReleaseWirelessTabulationRegardElement.m @@ -0,0 +1,85 @@ +// +// YMReleaseRadioTableViewCell.m +// YUMI +// +// Created by YUMI on 2021/12/30. +// + +#import "YUMIReleaseWirelessTabulationRegardElement.h" +#import "DJDKMIMOMColor.h" +#import + +@interface YUMIReleaseWirelessTabulationRegardElement() + +@property (nonatomic, strong) UIView *backgroundRegard; +@property (nonatomic, strong) UILabel *titleLabel; + +@end + +@implementation YUMIReleaseWirelessTabulationRegardElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self.contentView addSubview:self.backgroundRegard]; + [self.contentView addSubview:self.titleLabel]; + UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(onBackgroundRegardTicktack:)]; + [self.backgroundRegard addGestureRecognizer:tap]; +} + +- (void)initChildLyRestrictions { + [self.backgroundRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.contentView); + make.centerY.mas_equalTo(self.contentView); + make.height.mas_equalTo(24); + make.right.mas_equalTo(self.titleLabel).mas_offset(8); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.backgroundRegard).mas_offset(8); + make.centerY.mas_equalTo(self.contentView); + make.height.mas_equalTo(18); + }]; +} + +- (void)setTitle:(NSString *)title { + self.titleLabel.text = title; +} + +#pragma mark - event +- (void)onBackgroundRegardTicktack:(UITapGestureRecognizer *)ges { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIReleaseWirelessTarbsultowardsionViweElementDidChosenElement:)]) { + [self.delegate yUMIReleaseWirelessTarbsultowardsionViweElementDidChosenElement:self]; + } +} + +#pragma mark - Getters And Setters +- (UIView *)backgroundRegard { + if (!_backgroundRegard) { + _backgroundRegard = [[UIView alloc] init]; + _backgroundRegard.layer.cornerRadius = 12; + _backgroundRegard.layer.masksToBounds = YES; + _backgroundRegard.layer.borderColor = UIColorFromRGB(0xE9EBEC).CGColor; + _backgroundRegard.layer.borderWidth = 1; + _backgroundRegard.backgroundColor = UIColorFromRGB(0xFAFAFE); + } + return _backgroundRegard; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.font = [UIFont systemFontOfSize:12]; + _titleLabel.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _titleLabel; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/ReleaseRadio/View/YUMIReleaseWirelessRegard.h b/YuMi/Modules/YMRoom/View/ReleaseRadio/View/YUMIReleaseWirelessRegard.h new file mode 100644 index 00000000..66894cfa --- /dev/null +++ b/YuMi/Modules/YMRoom/View/ReleaseRadio/View/YUMIReleaseWirelessRegard.h @@ -0,0 +1,16 @@ +// +// YMReleaseRadioView.h +// YUMI +// +// Created by YUMI on 2021/12/29. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIReleaseWirelessRegard : UIView + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/ReleaseRadio/View/YUMIReleaseWirelessRegard.m b/YuMi/Modules/YMRoom/View/ReleaseRadio/View/YUMIReleaseWirelessRegard.m new file mode 100644 index 00000000..584979f0 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/ReleaseRadio/View/YUMIReleaseWirelessRegard.m @@ -0,0 +1,19 @@ +// +// YMReleaseRadioView.m +// YUMI +// +// Created by YUMI on 2021/12/29. +// + +#import "YUMIReleaseWirelessRegard.h" + +@implementation YUMIReleaseWirelessRegard + +- (instancetype)initWithFrame:(CGRect)frame { + if (self = [super initWithFrame:frame]) { + + } + return self; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/ReleaseRadio/View/YUMIReleaseWirelessRegardGovernancer.h b/YuMi/Modules/YMRoom/View/ReleaseRadio/View/YUMIReleaseWirelessRegardGovernancer.h new file mode 100644 index 00000000..3ddbd6f6 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/ReleaseRadio/View/YUMIReleaseWirelessRegardGovernancer.h @@ -0,0 +1,22 @@ +// +// YMReleaseRadioViewController.h +// YUMI +// +// Created by YUMI on 2021/12/29. +// + +#import "MvpRegardGovernancer.h" +#import "ChamberHostRepresendtation.h" + +NS_ASSUME_NONNULL_BEGIN + +@class YUMIReleaseWirelessMatrix; +@interface YUMIReleaseWirelessRegardGovernancer : MvpRegardGovernancer + +- (instancetype)initWithDelegate:(id)delegate; + +@property (nonatomic, strong) YUMIReleaseWirelessMatrix *model; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/ReleaseRadio/View/YUMIReleaseWirelessRegardGovernancer.m b/YuMi/Modules/YMRoom/View/ReleaseRadio/View/YUMIReleaseWirelessRegardGovernancer.m new file mode 100644 index 00000000..94447aee --- /dev/null +++ b/YuMi/Modules/YMRoom/View/ReleaseRadio/View/YUMIReleaseWirelessRegardGovernancer.m @@ -0,0 +1,491 @@ +// +// YMReleaseRadioViewController.m +// YUMI +// +// Created by YUMI on 2021/12/29. +// + +#import "YUMIReleaseWirelessRegardGovernancer.h" +#import +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" +#import "XNDJTBWGLoadingTool.h" +#import +#import "UIImage+Utils.h" +#import "NSArray+Safe.h" +#import "YUMIReleaseWirelessTabulationRegardElement.h" +#import "YUMIReleaseWirelessExternalizer.h" +#import "FBCReleaseRadioCeremony.h" +#import "ChamberAbstractMatrix.h" +#import "YUMIReleaseWirelessMatrix.h" + +static NSString *const KXPReleaseRadioTableViewCellIdentifier = @"KXPReleaseRadioTableViewCellIdentifier"; + +@interface YUMIReleaseWirelessRegardGovernancer () + +@property (nonatomic,weak) idhostRepresedtation; + +@property (nonatomic,strong) UIView *apexBeatRegard; +@property (nonatomic,strong) UIView *extremeBeatRegard; +@property (nonatomic,strong) UIImageView *encourageRegard; +@property (nonatomic, strong) UIButton *concludeBtuton; +@property (nonatomic,strong) UILabel *intelligenceSequencignation; +@property (nonatomic,strong) UILabel *intelligenceSequenceSequencignation; +@property (nonatomic,strong) UILabel *radioChampionSequencignation; +@property (nonatomic, strong) UIStackView *releaseFigureRegard; +@property (nonatomic, strong) UILabel *releaseFigureChampion; +@property (nonatomic, strong) UILabel *releaseFigureSequencignation; +@property (nonatomic,strong) YYTextView *radioEssayRegard; +@property (nonatomic,strong) UILabel *largestComputationSequencignation; +@property (nonatomic, strong) UITableView *tableView; +@property (nonatomic, strong) UIButton *releaseBtuton; +@property (nonatomic, strong) UILabel *releaseIntratemporalSequenceSequencignation; +@property (nonatomic,strong) UIView *computationPubescenceHierarchyRegard; +@property (nonatomic,strong) UILabel *computationPubescenceSequencignation; +@property (nonatomic, strong) UILabel *computationPubescenceSequenceSequencignation; + +@property (strong, nonatomic) dispatch_source_t timer; + +@end + +@implementation YUMIReleaseWirelessRegardGovernancer + +- (instancetype)initWithDelegate:(id)delegate { + if (self = [super init]) { + self.hostRepresedtation = delegate; + } + return self; +} + +- (YUMIReleaseWirelessExternalizer *)producePresimport { + return [[YUMIReleaseWirelessExternalizer alloc] init]; +} + +- (void)dealloc { + if (self.timer != nil) { + dispatch_source_cancel(self.timer); + } +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initSubViews]; + [self initChildLyRestrictions]; +} + +#pragma mark - FBCReleaseRadioCeremony +- (void)releaseChamberWirelessAccomplishment { + [XNDJTBWGLoadingTool EvidenceAccomplishmentAboutCommunictowardsion:YMLocalizedString(@"YUMI_Release_Radio_View_Controller_0")]; + [self dismissViewControllerAnimated:YES completion:nil]; +} + +- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { + [self.view endEditing:YES]; +} + +#pragma mark - tableViewDelegate +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.model.recommends.count; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + YUMIReleaseWirelessTabulationRegardElement *cell = [tableView dequeueReusableCellWithIdentifier:KXPReleaseRadioTableViewCellIdentifier]; + cell.title = [self.model.recommends secureGroalTowardsIndictowardsrix1:indexPath.row]; + cell.selectionStyle = UITableViewCellSelectionStyleNone; + cell.delegate = self; + return cell; +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + [self.radioEssayRegard resignFirstResponder]; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + return 32; +} + +#pragma mark - FBCReleaseRadioTabulationViweElementRepresendtation +- (void)yUMIReleaseWirelessTarbsultowardsionViweElementDidChosenElement:(YUMIReleaseWirelessTabulationRegardElement *)cell { + NSIndexPath *indexPath = [self.tableView indexPathForCell:cell]; + self.radioEssayRegard.text = [self.model.recommends secureGroalTowardsIndictowardsrix1:indexPath.row]; + [self.radioEssayRegard endEditing:YES]; +} + +- (void)setModel:(YUMIReleaseWirelessMatrix *)model { + _model = model; + [self setupData]; + [self.tableView reloadData]; +} + +- (void)setupData { + self.releaseFigureSequencignation.text = [NSString stringWithFormat:@"%zd/%zd",self.model.availableTimes, self.model.total]; + self.releaseIntratemporalSequenceSequencignation.text = [NSString stringWithFormat:YMLocalizedString(@"YUMI_Release_Radio_View_Controller_1"), self.model.minutes]; + self.radioEssayRegard.placeholderText = [NSString stringWithFormat:@"输入内容不能少于%zd个字,请文明发言哦~", self.model.minWords] ; + self.releaseIntratemporalSequenceSequencignation.hidden = self.model.seconds > 0; + self.computationPubescenceHierarchyRegard.hidden = self.model.seconds <= 0; + if (self.model.seconds > 0) { + [self unfoildComputtowardsiondown:self.model.seconds]; + } +} + +#pragma mark - Private Method +- (void)initSubViews { + self.view.backgroundColor = [UIColor clearColor]; + [self.view addSubview:self.apexBeatRegard]; + [self.view addSubview:self.encourageRegard]; + [self.view addSubview:self.extremeBeatRegard]; + + [self.encourageRegard addSubview:self.concludeBtuton]; + [self.encourageRegard addSubview:self.intelligenceSequencignation]; + [self.encourageRegard addSubview:self.intelligenceSequenceSequencignation]; + [self.encourageRegard addSubview:self.radioChampionSequencignation]; + [self.encourageRegard addSubview:self.releaseFigureRegard]; + [self.releaseFigureRegard addArrangedSubview:self.releaseFigureChampion]; + [self.releaseFigureRegard addArrangedSubview:self.releaseFigureSequencignation]; + + [self.encourageRegard addSubview:self.radioEssayRegard]; + [self.encourageRegard addSubview:self.largestComputationSequencignation]; + [self.encourageRegard addSubview:self.tableView]; + [self.encourageRegard addSubview:self.releaseBtuton]; + [self.encourageRegard addSubview:self.releaseIntratemporalSequenceSequencignation]; + [self.encourageRegard addSubview:self.computationPubescenceHierarchyRegard]; + + [self.computationPubescenceHierarchyRegard addSubview:self.computationPubescenceSequencignation]; + [self.computationPubescenceHierarchyRegard addSubview:self.computationPubescenceSequenceSequencignation]; +} + +- (void)initChildLyRestrictions { + [self.apexBeatRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.left.right.mas_equalTo(self.view); + make.bottom.mas_equalTo(self.encourageRegard.mas_top); + }]; + + [self.encourageRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(300); + make.height.mas_equalTo(398); + make.centerY.centerX.mas_equalTo(self.view); + }]; + + [self.extremeBeatRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.view); + make.top.mas_equalTo(self.encourageRegard.mas_bottom); + make.bottom.mas_equalTo(self.view); + }]; + + [self.concludeBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.mas_equalTo(22); + make.top.mas_equalTo(self.encourageRegard).mas_offset(11); + make.right.mas_equalTo(self.encourageRegard).mas_offset(-15); + }]; + + [self.intelligenceSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.encourageRegard); + make.top.mas_equalTo(self.encourageRegard).offset(24); + make.height.mas_equalTo(24); + }]; + + [self.intelligenceSequenceSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.encourageRegard); + make.top.mas_equalTo(self.intelligenceSequencignation.mas_bottom).offset(12); + make.height.mas_equalTo(14); + }]; + + [self.radioChampionSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.intelligenceSequenceSequencignation.mas_bottom).offset(16); + make.height.mas_equalTo(16); + make.left.mas_equalTo(self.encourageRegard).mas_offset(16); + }]; + + [self.releaseFigureRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.radioChampionSequencignation); + make.left.mas_equalTo(self.radioChampionSequencignation.mas_right).mas_offset(4); + make.height.mas_equalTo(20); + }]; + + [self.radioEssayRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.encourageRegard).inset(16); + make.top.mas_equalTo(self.radioChampionSequencignation.mas_bottom).mas_offset(8); + make.height.mas_equalTo(65); + }]; + + [self.largestComputationSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.bottom.mas_equalTo(self.radioEssayRegard).inset(3); + make.height.mas_equalTo(12); + }]; + + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.radioEssayRegard); + make.top.mas_equalTo(self.radioEssayRegard.mas_bottom).mas_offset(8); + make.height.mas_equalTo(115); + }]; + + [self.releaseBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.tableView.mas_bottom).mas_offset(8); + make.centerX.mas_equalTo(self.encourageRegard); + make.width.mas_equalTo(188); + make.height.mas_equalTo(40); + }]; + + [self.releaseIntratemporalSequenceSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.encourageRegard); + make.top.mas_equalTo(self.releaseBtuton.mas_bottom).mas_offset(10); + make.height.mas_equalTo(14); + }]; + + [self.computationPubescenceHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(15); + make.centerX.mas_equalTo(self.encourageRegard); + make.top.mas_equalTo(self.releaseBtuton.mas_bottom).mas_offset(10); + }]; + [self.computationPubescenceSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.top.bottom.mas_equalTo(self.computationPubescenceHierarchyRegard); + make.right.mas_equalTo(self.computationPubescenceSequenceSequencignation.mas_left); + }]; + [self.computationPubescenceSequenceSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.right.bottom.mas_equalTo(self.computationPubescenceHierarchyRegard); + }]; +} + +- (void)unfoildComputtowardsiondown:(NSInteger)countDown{ + __block NSInteger time = countDown; + if (_timer != nil) { + dispatch_source_cancel(_timer); + } + dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); + _timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, queue); + dispatch_source_set_timer(_timer,dispatch_walltime(NULL, 0),1.0*NSEC_PER_SEC, 0); + dispatch_source_set_event_handler(_timer, ^{ + if(time <= 0){ + @kWeakify(self); + dispatch_source_cancel(self.timer); + dispatch_async(dispatch_get_main_queue(), ^{ + @kStrongify(self); + self.releaseIntratemporalSequenceSequencignation.hidden = NO; + self.computationPubescenceHierarchyRegard.hidden = YES; + if (self.model.availableTimes > 0 && self.radioEssayRegard.text.length >= self.model.minWords) { + self.releaseBtuton.enabled = YES; + } + }); + }else{ + NSInteger seconds = time; + dispatch_async(dispatch_get_main_queue(), ^{ + + self.computationPubescenceSequencignation.text = [NSString stringWithFormat:@"%zds", seconds]; + }); + time--; + } + }); + dispatch_resume(_timer); +} + +- (void)onReleaseBtutonTicktack:(UIButton *)button { + [self.presimport releaseChamberWirelessAboutChamberId:@(self.hostRepresedtation.acquireChamberAbstract.roomId).stringValue message:self.radioEssayRegard.text]; +} + +#pragma mark - Event Response +- (void)prohibitiaplictowardsionearBetowardsRecognition:(UITapGestureRecognizer *)tap { + [self dismissViewControllerAnimated:YES completion:nil]; +} + +- (void)onConcludeBtutonTicktack:(UIButton *)button { + [self dismissViewControllerAnimated:YES completion:nil]; +} + +#pragma mark - YYTextViewDelegate +- (void)textViewDidChange:(YYTextView *)textView { + NSInteger maxLength = self.model.maxWords ? self.model.maxWords : 20; + NSInteger minLength = self.model.minWords ? self.model.minWords : 5; + if (textView.text.length > maxLength) { + textView.text = [textView.text substringToIndex:maxLength]; + } + self.largestComputationSequencignation.text = [NSString stringWithFormat:@"%zd/%ld", textView.text.length, maxLength]; + if (textView.text.length >= minLength) { + if (self.model.availableTimes > 0 && self.computationPubescenceHierarchyRegard.hidden) { + self.releaseBtuton.enabled = YES; + } + } else { + self.releaseBtuton.enabled = NO; + } +} + +#pragma mark - Getters And Setters +- (UIView *)apexBeatRegard { + if (!_apexBeatRegard) { + _apexBeatRegard = [[UIView alloc] init]; + _apexBeatRegard.backgroundColor = [UIColor clearColor]; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(prohibitiaplictowardsionearBetowardsRecognition:)]; + [_apexBeatRegard addGestureRecognizer:tap]; + } + return _apexBeatRegard; +} +- (UIView *)extremeBeatRegard { + if (!_extremeBeatRegard) { + _extremeBeatRegard = [[UIView alloc] init]; + _extremeBeatRegard.backgroundColor = [UIColor clearColor]; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(prohibitiaplictowardsionearBetowardsRecognition:)]; + [_extremeBeatRegard addGestureRecognizer:tap]; + } + return _extremeBeatRegard; +} +- (UIImageView *)encourageRegard { + if (!_encourageRegard) { + _encourageRegard = [[UIImageView alloc] init]; + _encourageRegard.userInteractionEnabled = YES; + _encourageRegard.image = [UIImage imageNamed:@"yumi_scope_radio_back"]; + } + return _encourageRegard; +} +- (UIButton *)concludeBtuton { + if (!_concludeBtuton) { + _concludeBtuton = [[UIButton alloc] init]; + [_concludeBtuton setBackgroundImage:[UIImage imageNamed:@"yumi_scope_radio_release_close"] forState:UIControlStateNormal]; + [_concludeBtuton addTarget:self action:@selector(onConcludeBtutonTicktack:) forControlEvents:UIControlEventTouchUpInside]; + } + return _concludeBtuton; +} +- (UILabel *)intelligenceSequencignation { + if (!_intelligenceSequencignation) { + _intelligenceSequencignation = [[UILabel alloc] init]; + _intelligenceSequencignation.text = YMLocalizedString(@"YUMI_Release_Radio_View_Controller_3"); + _intelligenceSequencignation.font = [UIFont systemFontOfSize:24 weight:UIFontWeightSemibold]; + _intelligenceSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _intelligenceSequencignation; +} +- (UILabel *)intelligenceSequenceSequencignation { + if (!_intelligenceSequenceSequencignation) { + _intelligenceSequenceSequencignation = [[UILabel alloc] init]; + _intelligenceSequenceSequencignation.text = @"你将在首页发布一条广播,邀请其他用户进入当前房间!"; + _intelligenceSequenceSequencignation.font = [UIFont systemFontOfSize:10]; + _intelligenceSequenceSequencignation.textColor = [DJDKMIMOMColor instantEssayPrettify]; + } + return _intelligenceSequenceSequencignation; +} +- (UILabel *)radioChampionSequencignation { + if (!_radioChampionSequencignation) { + UILabel *label = [[UILabel alloc] init]; + label.text = YMLocalizedString(@"YUMI_Release_Radio_View_Controller_5"); + label.font = [UIFont systemFontOfSize:16 weight:UIFontWeightMedium]; + label.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _radioChampionSequencignation = label; + } + return _radioChampionSequencignation; +} +- (UIStackView *)releaseFigureRegard { + if (!_releaseFigureRegard) { + _releaseFigureRegard = [[UIStackView alloc] init]; + _releaseFigureRegard.axis = UILayoutConstraintAxisHorizontal; + _releaseFigureRegard.distribution = UIStackViewDistributionFill; + _releaseFigureRegard.alignment = UIStackViewAlignmentCenter; + _releaseFigureRegard.spacing = 2; + } + return _releaseFigureRegard; +} +- (UILabel *)releaseFigureChampion { + if (!_releaseFigureChampion) { + UILabel *label = [[UILabel alloc] init]; + label.text = YMLocalizedString(@"YUMI_Release_Radio_View_Controller_6"); + label.font = [UIFont systemFontOfSize:12]; + label.textColor = [DJDKMIMOMColor instantEssayPrettify]; + _releaseFigureChampion = label; + } + return _releaseFigureChampion; +} +- (UILabel *)releaseFigureSequencignation { + if (!_releaseFigureSequencignation) { + UILabel *label = [[UILabel alloc] init]; + label.text = @"0/3"; + label.font = [UIFont systemFontOfSize:12]; + label.textColor = UIColorFromRGB(0xFF9F00); + _releaseFigureSequencignation = label; + } + return _releaseFigureSequencignation; +} +- (YYTextView *)radioEssayRegard { + if (!_radioEssayRegard) { + _radioEssayRegard = [[YYTextView alloc] init]; + _radioEssayRegard.backgroundColor = UIColorFromRGB(0xF1F1FA); + _radioEssayRegard.layer.cornerRadius = 8; + _radioEssayRegard.layer.masksToBounds = YES; + _radioEssayRegard.placeholderText = @"输入内容不能少于5个字,请文明发言哦~"; + _radioEssayRegard.placeholderTextColor = [DJDKMIMOMColor essayTertiusPrettify]; + _radioEssayRegard.placeholderFont = [UIFont systemFontOfSize:12]; + _radioEssayRegard.font = [UIFont systemFontOfSize:12]; + _radioEssayRegard.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _radioEssayRegard.delegate = self; + } + return _radioEssayRegard; +} + +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] init]; + _tableView.delegate = self; + _tableView.dataSource = self; + [_tableView registerClass:YUMIReleaseWirelessTabulationRegardElement.class forCellReuseIdentifier:KXPReleaseRadioTableViewCellIdentifier]; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + } + return _tableView; +} +- (UIButton *)releaseBtuton { + if (!_releaseBtuton) { + _releaseBtuton = [[UIButton alloc] init]; + [_releaseBtuton setTitle:YMLocalizedString(@"YUMI_Release_Radio_View_Controller_8") forState:UIControlStateNormal]; + [_releaseBtuton setTitleColor:[DJDKMIMOMColor acknowledgementBtutonEssayPrettify] forState:UIControlStateNormal]; + [_releaseBtuton setBackgroundImage:[UIImage imageWithColor:UIColorFromRGB(0xD2D5D7)] forState:UIControlStateDisabled]; + [_releaseBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[UIColorFromRGB(0xFFA936), UIColorFromRGB(0xFFCB47)] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(188, 40)] forState:UIControlStateNormal]; + _releaseBtuton.enabled = NO; + _releaseBtuton.layer.cornerRadius = 20; + _releaseBtuton.layer.masksToBounds = YES; + [_releaseBtuton addTarget:self action:@selector(onReleaseBtutonTicktack:) forControlEvents:UIControlEventTouchUpInside]; + } + return _releaseBtuton; +} +- (UILabel *)releaseIntratemporalSequenceSequencignation { + if (!_releaseIntratemporalSequenceSequencignation) { + _releaseIntratemporalSequenceSequencignation = [[UILabel alloc] init]; + _releaseIntratemporalSequenceSequencignation.text = YMLocalizedString(@"YUMI_Release_Radio_View_Controller_9"); + _releaseIntratemporalSequenceSequencignation.font = [UIFont systemFontOfSize:10]; + _releaseIntratemporalSequenceSequencignation.textColor = [DJDKMIMOMColor essayTertiusPrettify]; + } + return _releaseIntratemporalSequenceSequencignation; +} +- (UIView *)computationPubescenceHierarchyRegard { + if (!_computationPubescenceHierarchyRegard) { + _computationPubescenceHierarchyRegard = [[UIView alloc] init]; + _computationPubescenceHierarchyRegard.hidden = YES; + } + return _computationPubescenceHierarchyRegard; +} +- (UILabel *)computationPubescenceSequencignation { + if (!_computationPubescenceSequencignation) { + UILabel *label = [[UILabel alloc] init]; + label.text = @"0s"; + label.font = [UIFont systemFontOfSize:10]; + label.textColor = UIColorFromRGB(0xFDA615); + _computationPubescenceSequencignation = label; + } + return _computationPubescenceSequencignation; +} +- (UILabel *)computationPubescenceSequenceSequencignation { + if (!_computationPubescenceSequenceSequencignation) { + UILabel *label = [[UILabel alloc] init]; + label.text = YMLocalizedString(@"YUMI_Release_Radio_View_Controller_10"); + label.font = [UIFont systemFontOfSize:10]; + label.textColor = [DJDKMIMOMColor essayTertiusPrettify]; + _computationPubescenceSequenceSequencignation = label; + } + return _computationPubescenceSequenceSequencignation; +} + +- (UILabel *)largestComputationSequencignation { + if (!_largestComputationSequencignation) { + UILabel *label = [[UILabel alloc] init]; + label.text = @"0/20"; + label.font = [UIFont systemFontOfSize:12]; + label.textColor = [DJDKMIMOMColor essayTertiusPrettify]; + _largestComputationSequencignation = label; + } + return _largestComputationSequencignation; +} +@end diff --git a/YuMi/Modules/YMRoom/View/RoomPK/Api/Api+RoomPK.h b/YuMi/Modules/YMRoom/View/RoomPK/Api/Api+RoomPK.h new file mode 100644 index 00000000..526ea85b --- /dev/null +++ b/YuMi/Modules/YMRoom/View/RoomPK/Api/Api+RoomPK.h @@ -0,0 +1,44 @@ +// +// Api+RoomPK.h +// YUMI +// +// Created by YUMI on 2022/3/17. +// + +#import "Api.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface Api (RoomPK) + ++ (void)acquireChamberCombatReflectionSttowardsement:(HttpRequestHelperCompletion)completion + roomUid:(NSString *)roomUid + pageSize:(NSString *)pageSize + page:(NSString *)page; + ++ (void)acquireChamberCombatSpecific:(HttpRequestHelperCompletion)completion + roomUid:(NSString *)roomUid; + ++ (void)unfoildChamberCombat:(HttpRequestHelperCompletion)completion + roomUid:(NSString *)roomUid + operUid:(NSString *)operUid; + ++ (void)concludeChamberCombat:(HttpRequestHelperCompletion)completion + roomUid:(NSString *)roomUid + operUid:(NSString *)operUid; ++ (void)produceChamberCombat:(HttpRequestHelperCompletion)completion + pkMode:(NSString *)pkMode + voteMode:(NSString *)voteMode + duration:(NSString *)duration + roomUid:(NSString *)roomUid + operUid:(NSString *)operUid; + ++ (void)examineChamberCombatConsequent:(HttpRequestHelperCompletion)completion + roomUid:(NSString *)roomUid + operUid:(NSString *)operUid + pkId:(NSString *)pkId; + ++ (void)begainChamberCombat:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid pkId:(NSString *)pkId joinUsers:(NSString *)joinUsers; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/RoomPK/Api/Api+RoomPK.m b/YuMi/Modules/YMRoom/View/RoomPK/Api/Api+RoomPK.m new file mode 100644 index 00000000..83ea28bd --- /dev/null +++ b/YuMi/Modules/YMRoom/View/RoomPK/Api/Api+RoomPK.m @@ -0,0 +1,49 @@ +// +// Api+RoomPK.m +// YUMI +// +// Created by YUMI on 2022/3/17. +// + +#import "Api+RoomPK.h" +#import +@implementation Api (RoomPK) + + ++ (void)acquireChamberCombatReflectionSttowardsement:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid pageSize:(NSString *)pageSize page:(NSString *)page { + NSString * fang = [NSString stringFromBase64String:@"cm9vbS9way9yZWNvcmVk"]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, roomUid, pageSize, page, nil]; +} + ++ (void)acquireChamberCombatSpecific:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid { + NSString * fang = [NSString stringFromBase64String:@"cm9vbS9way9nZXQ="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, roomUid, nil]; +} + ++ (void)unfoildChamberCombat:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid operUid:(NSString *)operUid { + NSString * fang = [NSString stringFromBase64String:@"cm9vbS9way9lbmFibGU="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, roomUid, operUid, nil]; +} + ++ (void)concludeChamberCombat:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid operUid:(NSString *)operUid { + NSString * fang = [NSString stringFromBase64String:@"cm9vbS9way9lbmFibGU="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodDELETE completion:completion, __FUNCTION__, roomUid, operUid, nil]; +} + ++ (void)produceChamberCombat:(HttpRequestHelperCompletion)completion pkMode:(NSString *)pkMode voteMode:(NSString *)voteMode duration:(NSString *)duration roomUid:(NSString *)roomUid operUid:(NSString *)operUid { + NSString * fang = [NSString stringFromBase64String:@"cm9vbS9way9jcmVhdGU="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion,__FUNCTION__, pkMode, voteMode, duration, roomUid, operUid, nil]; +} + ++ (void)examineChamberCombatConsequent:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid operUid:(NSString *)operUid pkId:(NSString *)pkId { + NSString * fang = [NSString stringFromBase64String:@"cm9vbS9way9xdWVyeQ=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, roomUid, operUid, pkId, nil]; +} + ++ (void)begainChamberCombat:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid pkId:(NSString *)pkId joinUsers:(NSString *)joinUsers { + NSString * fang = [NSString stringFromBase64String:@"cm9vbS9way9iZWdpbg=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, roomUid, pkId, joinUsers, nil]; +} + + +@end diff --git a/YuMi/Modules/YMRoom/View/RoomPK/Model/ChamberCombatAbstractMatrix.h b/YuMi/Modules/YMRoom/View/RoomPK/Model/ChamberCombatAbstractMatrix.h new file mode 100644 index 00000000..2ca85f8d --- /dev/null +++ b/YuMi/Modules/YMRoom/View/RoomPK/Model/ChamberCombatAbstractMatrix.h @@ -0,0 +1,38 @@ +// +// ChamberCombatAbstractMatrix.h +// YUMI +// +// Created by YUMI on 2022/3/21. +// + +#import +#import "YUMINNNN.h" +#import "ChamberCombatSquadMatrix.h" +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSInteger,ChamberCombatPositionGenre){ + + ChamberCombatPositionGenre_NonStart= 1, + + ChamberCombatPositionGenre_Playing = 2, + + ChamberCombatPositionGenre_End = 3, + + ChamberCombatPositionGenre_ReStart = 4, +}; + +@interface ChamberCombatAbstractMatrix : NSObject +@property (nonatomic,assign) CGFloat duration; +@property (nonatomic,copy) NSString *operUid; +@property (nonatomic,copy) NSString * pkId; +@property (nonatomic, assign) ChamberCombatVoteModeGenre voteMode; +@property (nonatomic,copy) NSString *roomUid; +@property (nonatomic,assign) ChamberCombatPositionGenre pkStatus; +@property (nonatomic, assign) long endTime; +@property (nonatomic,assign) NSInteger pkMode; +@property (nonatomic, assign) ChamberCombatResultGenre result; +@property (nonatomic, copy) NSDictionary *> *> *sendGiftUids; +@property (nonatomic, strong) NSArray * teams; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/RoomPK/Model/ChamberCombatAbstractMatrix.m b/YuMi/Modules/YMRoom/View/RoomPK/Model/ChamberCombatAbstractMatrix.m new file mode 100644 index 00000000..1e596ad9 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/RoomPK/Model/ChamberCombatAbstractMatrix.m @@ -0,0 +1,16 @@ +// +// ChamberCombatAbstractMatrix.m +// YUMI +// +// Created by YUMI on 2022/3/21. +// + +#import "ChamberCombatAbstractMatrix.h" + +@implementation ChamberCombatAbstractMatrix ++ (NSDictionary *)objectCtowardsegorizeInGarment { + return @{@"teams":ChamberCombatSquadMatrix.class}; +} + + +@end diff --git a/YuMi/Modules/YMRoom/View/RoomPK/Model/ChamberCombatChooseConsumerMatrix.h b/YuMi/Modules/YMRoom/View/RoomPK/Model/ChamberCombatChooseConsumerMatrix.h new file mode 100644 index 00000000..ee065b58 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/RoomPK/Model/ChamberCombatChooseConsumerMatrix.h @@ -0,0 +1,24 @@ +// +// ChamberCombatChooseConsumerMatrix.h +// YUMI +// +// Created by YUMI on 2022/3/21. +// + +#import +#import "YUMINNNN.h" +NS_ASSUME_NONNULL_BEGIN + +@interface ChamberCombatChooseConsumerMatrix : NSObject +@property (nonatomic,assign) GroupGenre groupType; +@property (nonatomic,copy) NSString *nick; +@property (nonatomic,copy) NSString *uid; +@property (nonatomic,assign) int position; +@property (nonatomic,copy) NSString *title; +@property (nonatomic,copy) NSString *imageName; +@property (nonatomic,copy) NSString *avatar; +@property (nonatomic,assign) BOOL isSelect; +@property (nonatomic,assign) BOOL isEnableChoose; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/RoomPK/Model/ChamberCombatChooseConsumerMatrix.m b/YuMi/Modules/YMRoom/View/RoomPK/Model/ChamberCombatChooseConsumerMatrix.m new file mode 100644 index 00000000..1db5502e --- /dev/null +++ b/YuMi/Modules/YMRoom/View/RoomPK/Model/ChamberCombatChooseConsumerMatrix.m @@ -0,0 +1,12 @@ +// +// ChamberCombatChooseConsumerMatrix.m +// YUMI +// +// Created by YUMI on 2022/3/21. +// + +#import "ChamberCombatChooseConsumerMatrix.h" + +@implementation ChamberCombatChooseConsumerMatrix + +@end diff --git a/YuMi/Modules/YMRoom/View/RoomPK/Model/ChamberCombatIntratemporalProvisionMatrix.h b/YuMi/Modules/YMRoom/View/RoomPK/Model/ChamberCombatIntratemporalProvisionMatrix.h new file mode 100644 index 00000000..574a15f0 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/RoomPK/Model/ChamberCombatIntratemporalProvisionMatrix.h @@ -0,0 +1,17 @@ +// +// ChamberCombatIntratemporalProvisionMatrix.h +// YUMI +// +// Created by YUMI on 2022/3/18. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface ChamberCombatIntratemporalProvisionMatrix : NSObject +@property (nonatomic,copy) NSString *title; +@property (nonatomic,assign) int time; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/RoomPK/Model/ChamberCombatIntratemporalProvisionMatrix.m b/YuMi/Modules/YMRoom/View/RoomPK/Model/ChamberCombatIntratemporalProvisionMatrix.m new file mode 100644 index 00000000..bdd20fbd --- /dev/null +++ b/YuMi/Modules/YMRoom/View/RoomPK/Model/ChamberCombatIntratemporalProvisionMatrix.m @@ -0,0 +1,12 @@ +// +// ChamberCombatIntratemporalProvisionMatrix.m +// YUMI +// +// Created by YUMI on 2022/3/18. +// + +#import "ChamberCombatIntratemporalProvisionMatrix.h" + +@implementation ChamberCombatIntratemporalProvisionMatrix + +@end diff --git a/YuMi/Modules/YMRoom/View/RoomPK/Model/ChamberCombatReflectionMatrix.h b/YuMi/Modules/YMRoom/View/RoomPK/Model/ChamberCombatReflectionMatrix.h new file mode 100644 index 00000000..ada35455 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/RoomPK/Model/ChamberCombatReflectionMatrix.h @@ -0,0 +1,21 @@ +// +// ChamberCombatReflectionMatrix.h +// YUMI +// +// Created by YUMI on 2022/3/17. +// + +#import +#import "YUMINNNN.h" +#import "ChamberCombatSquadMatrix.h" +NS_ASSUME_NONNULL_BEGIN + +@interface ChamberCombatReflectionMatrix : NSObject +@property (nonatomic, copy) NSString * pkId; +@property (nonatomic, assign) ChamberCombatResultGenre result; +@property (nonatomic, assign) ChamberCombatVoteModeGenre voteMode; +@property (nonatomic, strong) NSArray * teams; +@property (nonatomic, assign) long beginTime; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/RoomPK/Model/ChamberCombatReflectionMatrix.m b/YuMi/Modules/YMRoom/View/RoomPK/Model/ChamberCombatReflectionMatrix.m new file mode 100644 index 00000000..dbc59281 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/RoomPK/Model/ChamberCombatReflectionMatrix.m @@ -0,0 +1,14 @@ +// +// ChamberCombatReflectionMatrix.m +// YUMI +// +// Created by YUMI on 2022/3/17. +// + +#import "ChamberCombatReflectionMatrix.h" + +@implementation ChamberCombatReflectionMatrix ++ (NSDictionary *)objectCtowardsegorizeInGarment { + return @{@"teams":ChamberCombatSquadMatrix.class}; +} +@end diff --git a/YuMi/Modules/YMRoom/View/RoomPK/Model/ChamberCombatSpecificAbstractMatrix.h b/YuMi/Modules/YMRoom/View/RoomPK/Model/ChamberCombatSpecificAbstractMatrix.h new file mode 100644 index 00000000..0a709bfc --- /dev/null +++ b/YuMi/Modules/YMRoom/View/RoomPK/Model/ChamberCombatSpecificAbstractMatrix.h @@ -0,0 +1,19 @@ +// +// ChamberCombatSpecificAbstractMatrix.h +// YUMI +// +// Created by YUMI on 2022/3/29. +// + +#import +#import "ChamberCombatAbstractMatrix.h" +NS_ASSUME_NONNULL_BEGIN + +@interface ChamberCombatSpecificAbstractMatrix : NSObject + +@property (nonatomic, assign) long now; + +@property (nonatomic, strong) ChamberCombatAbstractMatrix *roomPK; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/RoomPK/Model/ChamberCombatSpecificAbstractMatrix.m b/YuMi/Modules/YMRoom/View/RoomPK/Model/ChamberCombatSpecificAbstractMatrix.m new file mode 100644 index 00000000..5ab6d724 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/RoomPK/Model/ChamberCombatSpecificAbstractMatrix.m @@ -0,0 +1,12 @@ +// +// ChamberCombatSpecificAbstractMatrix.m +// YUMI +// +// Created by YUMI on 2022/3/29. +// + +#import "ChamberCombatSpecificAbstractMatrix.h" + +@implementation ChamberCombatSpecificAbstractMatrix + +@end diff --git a/YuMi/Modules/YMRoom/View/RoomPK/Model/ChamberCombatSquadMatrix.h b/YuMi/Modules/YMRoom/View/RoomPK/Model/ChamberCombatSquadMatrix.h new file mode 100644 index 00000000..4a07ac5c --- /dev/null +++ b/YuMi/Modules/YMRoom/View/RoomPK/Model/ChamberCombatSquadMatrix.h @@ -0,0 +1,29 @@ +// +// ChamberCombatSquadMatrix.h +// YUMI +// +// Created by YUMI on 2022/3/18. +// + +#import +#import "YUMINNNN.h" +NS_ASSUME_NONNULL_BEGIN +@class ChamberCombatSquadConsumerMatrix; +@interface ChamberCombatSquadMatrix : NSObject +@property (nonatomic, assign) GroupGenre team; +@property (nonatomic, strong) NSArray* teamMembers; +@property (nonatomic, assign) NSInteger mvp; +@property (nonatomic, assign) long long score; +@property (nonatomic, strong) ChamberCombatSquadConsumerMatrix * protector; +@property (nonatomic, assign) long long protecScore; +@end + + +@interface ChamberCombatSquadConsumerMatrix : NSObject +@property (nonatomic,copy) NSString *avatar; +@property (nonatomic,copy) NSString *erbanNo; +@property (nonatomic,copy) NSString *nick; +@property (nonatomic,copy) NSString *uid; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/RoomPK/Model/ChamberCombatSquadMatrix.m b/YuMi/Modules/YMRoom/View/RoomPK/Model/ChamberCombatSquadMatrix.m new file mode 100644 index 00000000..52cb39a0 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/RoomPK/Model/ChamberCombatSquadMatrix.m @@ -0,0 +1,21 @@ +// +// ChamberCombatSquadMatrix.m +// YUMI +// +// Created by YUMI on 2022/3/18. +// + +#import "ChamberCombatSquadMatrix.h" + +@implementation ChamberCombatSquadMatrix ++ (NSDictionary *)objectCtowardsegorizeInGarment { + return @{@"teamMembers":ChamberCombatSquadConsumerMatrix.class}; +} +@end + + +@implementation ChamberCombatSquadConsumerMatrix + + + +@end diff --git a/YuMi/Modules/YMRoom/View/RoomPK/Presenter/YUMIChamberCombatExternalizer.h b/YuMi/Modules/YMRoom/View/RoomPK/Presenter/YUMIChamberCombatExternalizer.h new file mode 100644 index 00000000..b848facd --- /dev/null +++ b/YuMi/Modules/YMRoom/View/RoomPK/Presenter/YUMIChamberCombatExternalizer.h @@ -0,0 +1,20 @@ +// +// YMRoomPKPresenter.h +// YUMI +// +// Created by YUMI on 2022/3/17. +// + +#import "BaseMvpExternalizer.h" +#import "ChamberCombatReflectionMatrix.h" +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIChamberCombatExternalizer : BaseMvpExternalizer +- (void)unfoildChamberCombat:(NSString *)roomUid; + +- (void)concludeChamberCombat:(NSString *)roomUid; + +- (void)produceChamberCombatManner:(NSInteger)pkMode voteMode:(ChamberCombatVoteModeGenre)voteMode duration:(int)duration roomUid:(NSString *)roomUid; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/RoomPK/Presenter/YUMIChamberCombatExternalizer.m b/YuMi/Modules/YMRoom/View/RoomPK/Presenter/YUMIChamberCombatExternalizer.m new file mode 100644 index 00000000..9e4f2d82 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/RoomPK/Presenter/YUMIChamberCombatExternalizer.m @@ -0,0 +1,42 @@ +// +// YMRoomPKPresenter.m +// YUMI +// +// Created by YUMI on 2022/3/17. +// + +#import "YUMIChamberCombatExternalizer.h" +#import "ChamberCombatAbstractMatrix.h" +#import "Api+RoomPK.h" +#import "FBCChamberCombatCeremony.h" +#import "AccountAbstractStorage.h" +@implementation YUMIChamberCombatExternalizer + +- (void)unfoildChamberCombat:(NSString *)roomUid{ + NSString * operUid = [AccountAbstractStorage instance].acquireCid; + [Api unfoildChamberCombat:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] unfoildChamberCombatAccomplishment]; + } EvidenceChambering:YES] roomUid:roomUid operUid:operUid]; +} + + +- (void)concludeChamberCombat:(NSString *)roomUid { + NSString * operUid = [AccountAbstractStorage instance].acquireCid; + [Api concludeChamberCombat:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] concludeChamberCombatAccomplishment]; + }] roomUid:roomUid operUid:operUid]; +} + + +- (void)produceChamberCombatManner:(NSInteger)pkMode voteMode:(ChamberCombatVoteModeGenre)voteMode duration:(int)duration roomUid:(NSString *)roomUid { + NSString *pkModeStr = [NSString stringWithFormat:@"%ld", pkMode]; + NSString *voteModeStr = [NSString stringWithFormat:@"%ld", voteMode]; + NSString *durationStr = [NSString stringWithFormat:@"%d", duration]; + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [Api produceChamberCombat:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + ChamberCombatAbstractMatrix * roomPkInfo = [ChamberCombatAbstractMatrix mtowardsrixAboutImpactbasket:data.data]; + [[self acquireRegard] produceChamberCombatAccomplishment:roomPkInfo]; + } EvidenceChambering:YES] pkMode:pkModeStr voteMode:voteModeStr duration:durationStr roomUid:roomUid operUid:uid]; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/RoomPK/Presenter/YUMIChamberCombatReflectionExternalizer.h b/YuMi/Modules/YMRoom/View/RoomPK/Presenter/YUMIChamberCombatReflectionExternalizer.h new file mode 100644 index 00000000..3147c190 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/RoomPK/Presenter/YUMIChamberCombatReflectionExternalizer.h @@ -0,0 +1,17 @@ +// +// YMRoomPKRecordPresenter.h +// YUMI +// +// Created by YUMI on 2022/3/18. +// + +#import "BaseMvpExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIChamberCombatReflectionExternalizer : BaseMvpExternalizer + +- (void)acquireChamberCombatReflectionSttowardsement:(NSString *)roomUid page:(int)page pageSize:(int)pageSize state:(int)state; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/RoomPK/Presenter/YUMIChamberCombatReflectionExternalizer.m b/YuMi/Modules/YMRoom/View/RoomPK/Presenter/YUMIChamberCombatReflectionExternalizer.m new file mode 100644 index 00000000..ca0790fb --- /dev/null +++ b/YuMi/Modules/YMRoom/View/RoomPK/Presenter/YUMIChamberCombatReflectionExternalizer.m @@ -0,0 +1,26 @@ +// +// YMRoomPKRecordPresenter.m +// YUMI +// +// Created by YUMI on 2022/3/18. +// + +#import "YUMIChamberCombatReflectionExternalizer.h" +#import "Api+RoomPK.h" +#import "ChamberCombatReflectionMatrix.h" +#import "FBCChamberCombatRecordCeremony.h" +#import "AccountAbstractStorage.h" +@implementation YUMIChamberCombatReflectionExternalizer + +- (void)acquireChamberCombatReflectionSttowardsement:(NSString *)roomUid page:(int)page pageSize:(int)pageSize state:(int)state { + NSString * pageStr = [NSString stringWithFormat:@"%d", page]; + NSString * pageSizeStr = [NSString stringWithFormat:@"%d", pageSize]; + [Api acquireChamberCombatReflectionSttowardsement:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + NSArray *list = [ChamberCombatReflectionMatrix mtowardsrixsAboutGarment:data.data[@"records"]]; + [[self acquireRegard] acquireChamberCombatReflectionSttowardsementAccomplishment:list state:state]; + } fail:^(NSInteger code, NSString * _Nullable msg) { + [[self acquireRegard] acquireChamberCombatReflectionSttowardsementFlunk:msg state:state]; + }] roomUid:roomUid pageSize:pageSizeStr page:pageStr]; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/RoomPK/Protocol/FBCChamberCombatCeremony.h b/YuMi/Modules/YMRoom/View/RoomPK/Protocol/FBCChamberCombatCeremony.h new file mode 100644 index 00000000..c979265d --- /dev/null +++ b/YuMi/Modules/YMRoom/View/RoomPK/Protocol/FBCChamberCombatCeremony.h @@ -0,0 +1,22 @@ +// +// YMRoomPKProtocol.h +// YUMI +// +// Created by YUMI on 2022/3/17. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class ChamberCombatAbstractMatrix; +@protocol FBCChamberCombatCeremony + +- (void)unfoildChamberCombatAccomplishment; + +- (void)concludeChamberCombatAccomplishment; + +- (void)produceChamberCombatAccomplishment:(ChamberCombatAbstractMatrix *)roompkInfo; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/RoomPK/Protocol/FBCChamberCombatRecordCeremony.h b/YuMi/Modules/YMRoom/View/RoomPK/Protocol/FBCChamberCombatRecordCeremony.h new file mode 100644 index 00000000..1210dba6 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/RoomPK/Protocol/FBCChamberCombatRecordCeremony.h @@ -0,0 +1,19 @@ +// +// YMRoomPKRecordProtocol.h +// YUMI +// +// Created by YUMI on 2022/3/18. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol FBCChamberCombatRecordCeremony + +- (void)acquireChamberCombatReflectionSttowardsementAccomplishment:(NSArray *)recordList state:(int)state; +- (void)acquireChamberCombatReflectionSttowardsementFlunk:(NSString *)message state:(int)state; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/RoomPK/View/Cell/YUMIChamberCombatConsumerAssembletionRegardElement.h b/YuMi/Modules/YMRoom/View/RoomPK/View/Cell/YUMIChamberCombatConsumerAssembletionRegardElement.h new file mode 100644 index 00000000..62977698 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/RoomPK/View/Cell/YUMIChamberCombatConsumerAssembletionRegardElement.h @@ -0,0 +1,16 @@ +// +// YMRoomPKUserCollectionViewCell.h +// YUMI +// +// Created by YUMI on 2022/3/21. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class ChamberCombatChooseConsumerMatrix; +@interface YUMIChamberCombatConsumerAssembletionRegardElement : UICollectionViewCell +@property (nonatomic,strong) ChamberCombatChooseConsumerMatrix *userInfo; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/RoomPK/View/Cell/YUMIChamberCombatConsumerAssembletionRegardElement.m b/YuMi/Modules/YMRoom/View/RoomPK/View/Cell/YUMIChamberCombatConsumerAssembletionRegardElement.m new file mode 100644 index 00000000..ec07cb32 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/RoomPK/View/Cell/YUMIChamberCombatConsumerAssembletionRegardElement.m @@ -0,0 +1,121 @@ +// +// YMRoomPKUserCollectionViewCell.m +// YUMI +// +// Created by YUMI on 2022/3/21. +// + +#import "YUMIChamberCombatConsumerAssembletionRegardElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "NetIndicateRegard.h" +#import "ChamberCombatChooseConsumerMatrix.h" + +@interface YUMIChamberCombatConsumerAssembletionRegardElement () +@property (nonatomic,strong) NetIndicateRegard *maintainrietaryIntelligenceportraitIndicateRegard; +@property (nonatomic,strong) UILabel *maintainrietarySequencignation; +@property (nonatomic,strong) UIButton *concludeBtuton; +@end + +@implementation YUMIChamberCombatConsumerAssembletionRegardElement +- (instancetype)initWithFrame:(CGRect)frame +{ + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + + +#pragma mark - Private Method +- (void)initSubViews { + [self.contentView addSubview:self.maintainrietaryIntelligenceportraitIndicateRegard]; + [self.contentView addSubview:self.maintainrietarySequencignation]; + [self.contentView addSubview:self.concludeBtuton]; +} + +- (void)initChildLyRestrictions { + [self.maintainrietaryIntelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self.contentView); + make.height.mas_equalTo(self.maintainrietaryIntelligenceportraitIndicateRegard.mas_width); + }]; + + [self.maintainrietarySequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.contentView); + make.top.mas_equalTo(self.maintainrietaryIntelligenceportraitIndicateRegard.mas_bottom).offset(5); + make.height.mas_equalTo(14); + }]; + + [self.concludeBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.bottom.mas_equalTo(self.maintainrietaryIntelligenceportraitIndicateRegard); + make.width.height.mas_equalTo(16); + }]; +} + +#pragma mark - Event Response +- (void)concludeBtutonPerformance:(UIButton *)sender { + sender.selected = !sender.selected; +} +#pragma mark - Getters And Setters +- (void)setUserInfo:(ChamberCombatChooseConsumerMatrix *)userInfo { + _userInfo = userInfo; + if (_userInfo) { + if (_userInfo.imageName) { + _maintainrietaryIntelligenceportraitIndicateRegard.image = [UIImage imageNamed:_userInfo.imageName]; + } + + if (_userInfo.avatar) { + _maintainrietaryIntelligenceportraitIndicateRegard.imageUrl = _userInfo.avatar; + } + self.maintainrietarySequencignation.text = _userInfo.title; + + if (_userInfo.uid.length > 0 && _userInfo.isEnableChoose) { + self.concludeBtuton.hidden = NO; + self.concludeBtuton.selected = _userInfo.isSelect; + } else { + self.concludeBtuton.hidden = YES; + } + } +} + +- (NetIndicateRegard *)maintainrietaryIntelligenceportraitIndicateRegard { + if (!_maintainrietaryIntelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _maintainrietaryIntelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _maintainrietaryIntelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _maintainrietaryIntelligenceportraitIndicateRegard.layer.cornerRadius = 46/2; + _maintainrietaryIntelligenceportraitIndicateRegard.layer.borderColor = [DJDKMIMOMColor aplictowardsionMainPrettify].CGColor; + } + return _maintainrietaryIntelligenceportraitIndicateRegard; +} + +- (UILabel *)maintainrietarySequencignation { + if (!_maintainrietarySequencignation) { + _maintainrietarySequencignation = [[UILabel alloc] init]; + _maintainrietarySequencignation.font = [UIFont systemFontOfSize:10]; + _maintainrietarySequencignation.backgroundColor = [UIColor colorWithRed:(CGFloat)204 / (CGFloat)255 green:(CGFloat)204 / (CGFloat)255 blue:(CGFloat)204 / (CGFloat)255 alpha:1]; + _maintainrietarySequencignation.layer.masksToBounds = YES; + _maintainrietarySequencignation.layer.cornerRadius = 7; + _maintainrietarySequencignation.textColor = [UIColor whiteColor]; + _maintainrietarySequencignation.textAlignment = NSTextAlignmentCenter; + } + return _maintainrietarySequencignation; +} + + +- (UIButton *)concludeBtuton { + if (!_concludeBtuton) { + _concludeBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_concludeBtuton setImage:[UIImage imageNamed:@"yumi_scope_pk_user_unselect"] forState:UIControlStateNormal]; + [_concludeBtuton setImage:[UIImage imageNamed:@"yumi_scope_pk_vote_select"] forState:UIControlStateSelected]; + [_concludeBtuton addTarget:self action:@selector(concludeBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + _concludeBtuton.hidden = YES; + } + return _concludeBtuton; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/RoomPK/View/Cell/YUMIChamberCombatDispossessTabulationRegardElement.h b/YuMi/Modules/YMRoom/View/RoomPK/View/Cell/YUMIChamberCombatDispossessTabulationRegardElement.h new file mode 100644 index 00000000..975fc63b --- /dev/null +++ b/YuMi/Modules/YMRoom/View/RoomPK/View/Cell/YUMIChamberCombatDispossessTabulationRegardElement.h @@ -0,0 +1,16 @@ +// +// YMRoomPKEmptyTableViewCell.h +// YUMI +// +// Created by YUMI on 2022/3/18. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIChamberCombatDispossessTabulationRegardElement : UITableViewCell + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/RoomPK/View/Cell/YUMIChamberCombatDispossessTabulationRegardElement.m b/YuMi/Modules/YMRoom/View/RoomPK/View/Cell/YUMIChamberCombatDispossessTabulationRegardElement.m new file mode 100644 index 00000000..fca042ad --- /dev/null +++ b/YuMi/Modules/YMRoom/View/RoomPK/View/Cell/YUMIChamberCombatDispossessTabulationRegardElement.m @@ -0,0 +1,70 @@ +// +// YMRoomPKEmptyTableViewCell.m +// YUMI +// +// Created by YUMI on 2022/3/18. +// + +#import "YUMIChamberCombatDispossessTabulationRegardElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "UIIndicateConstant.h" + +@interface YUMIChamberCombatDispossessTabulationRegardElement () +@property (nonatomic,strong) UIImageView *dispossessIndicateRegard; +@property (nonatomic,strong) UILabel *titleLabel; +@end + +@implementation YUMIChamberCombatDispossessTabulationRegardElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor]; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.dispossessIndicateRegard]; + [self.contentView addSubview:self.titleLabel]; +} + +- (void)initChildLyRestrictions { + [self.dispossessIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.contentView); + make.top.mas_equalTo(self.contentView).offset(250); + make.size.mas_equalTo(CGSizeMake(100, 100)); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.dispossessIndicateRegard.mas_bottom).offset(20); + make.left.right.mas_equalTo(self.contentView); + }]; +} +#pragma mark - Getters And Setters +- (UIImageView *)dispossessIndicateRegard { + if (!_dispossessIndicateRegard) { + _dispossessIndicateRegard = [[UIImageView alloc] init]; + _dispossessIndicateRegard.userInteractionEnabled = YES; + _dispossessIndicateRegard.image = [UIIndicateConstant defalutDispossessDepapossessor]; + _dispossessIndicateRegard.layer.masksToBounds = YES; + _dispossessIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _dispossessIndicateRegard; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.text = YMLocalizedString(@"YUMI_Room_PK_Empty_Table_View_Cell_0"); + _titleLabel.font = [UIFont systemFontOfSize:16]; + _titleLabel.textAlignment = NSTextAlignmentCenter; + _titleLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + } + return _titleLabel; +} +@end diff --git a/YuMi/Modules/YMRoom/View/RoomPK/View/Cell/YUMIChamberCombatGenreTabulationRegardElement.h b/YuMi/Modules/YMRoom/View/RoomPK/View/Cell/YUMIChamberCombatGenreTabulationRegardElement.h new file mode 100644 index 00000000..6eb83e4d --- /dev/null +++ b/YuMi/Modules/YMRoom/View/RoomPK/View/Cell/YUMIChamberCombatGenreTabulationRegardElement.h @@ -0,0 +1,16 @@ +// +// YMRoomPKTypeTableViewCell.h +// YUMI +// +// Created by YUMI on 2022/3/17. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIChamberCombatGenreTabulationRegardElement : UITableViewCell + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/RoomPK/View/Cell/YUMIChamberCombatGenreTabulationRegardElement.m b/YuMi/Modules/YMRoom/View/RoomPK/View/Cell/YUMIChamberCombatGenreTabulationRegardElement.m new file mode 100644 index 00000000..be38b2cc --- /dev/null +++ b/YuMi/Modules/YMRoom/View/RoomPK/View/Cell/YUMIChamberCombatGenreTabulationRegardElement.m @@ -0,0 +1,83 @@ +// +// YMRoomPKTypeTableViewCell.m +// YUMI +// +// Created by YUMI on 2022/3/17. +// + +#import "YUMIChamberCombatGenreTabulationRegardElement.h" +#import +#import "DJDKMIMOMColor.h" + +@interface YUMIChamberCombatGenreTabulationRegardElement () +@property (nonatomic,strong) UILabel *titleLabel; +@property (nonatomic,strong) UILabel *genreSequencignation; +@property (nonatomic,strong) UIView * burlywoodRegard; +@end + +@implementation YUMIChamberCombatGenreTabulationRegardElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} +#pragma mark - Private Method +- (void)initSubViews { + self.selectionStyle = UITableViewCellSelectionStyleNone; + self.contentView.backgroundColor = [DJDKMIMOMColor aplictowardsionEncouragegroundPrettify]; + [self.contentView addSubview:self.titleLabel]; + [self.contentView addSubview:self.genreSequencignation]; + [self.contentView addSubview:self.burlywoodRegard]; +} + +- (void)initChildLyRestrictions { + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.contentView).offset(15); + make.centerY.mas_equalTo(self.contentView); + }]; + + + [self.genreSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.titleLabel.mas_right).offset(20); + make.centerY.mas_equalTo(self.contentView); + }]; + + [self.burlywoodRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.bottom.mas_equalTo(self.contentView); + make.left.right.mas_equalTo(self.contentView).inset(15); + make.height.mas_equalTo(1); + }]; +} +#pragma mark - Getters And Setters +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.text = YMLocalizedString(@"YUMI_Room_PK_Type_Table_View_Cell_0"); + _titleLabel.font = [UIFont boldSystemFontOfSize:15]; + _titleLabel.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _titleLabel; +} + +- (UILabel *)genreSequencignation { + if (!_genreSequencignation) { + _genreSequencignation = [[UILabel alloc] init]; + _genreSequencignation.text = @"按团队PK"; + _genreSequencignation.font = [UIFont systemFontOfSize:14]; + _genreSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _genreSequencignation; +} + +- (UIView *)burlywoodRegard { + if (!_burlywoodRegard) { + _burlywoodRegard = [[UIView alloc] init]; + _burlywoodRegard.backgroundColor = [DJDKMIMOMColor dividerPrettify]; + } + return _burlywoodRegard; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/RoomPK/View/Cell/YUMIChamberCombatIntratemporalTabulationRegardElement.h b/YuMi/Modules/YMRoom/View/RoomPK/View/Cell/YUMIChamberCombatIntratemporalTabulationRegardElement.h new file mode 100644 index 00000000..03901db7 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/RoomPK/View/Cell/YUMIChamberCombatIntratemporalTabulationRegardElement.h @@ -0,0 +1,18 @@ +// +// YMRoomPKTimeTableViewCell.h +// YUMI +// +// Created by YUMI on 2022/3/17. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIChamberCombatIntratemporalTabulationRegardElement : UITableViewCell + +@property (nonatomic,copy) NSString *time; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/RoomPK/View/Cell/YUMIChamberCombatIntratemporalTabulationRegardElement.m b/YuMi/Modules/YMRoom/View/RoomPK/View/Cell/YUMIChamberCombatIntratemporalTabulationRegardElement.m new file mode 100644 index 00000000..1fba9170 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/RoomPK/View/Cell/YUMIChamberCombatIntratemporalTabulationRegardElement.m @@ -0,0 +1,87 @@ +// +// YMRoomPKTimeTableViewCell.m +// YUMI +// +// Created by YUMI on 2022/3/17. +// + +#import "YUMIChamberCombatIntratemporalTabulationRegardElement.h" +#import +#import "DJDKMIMOMColor.h" + +@interface YUMIChamberCombatIntratemporalTabulationRegardElement () +@property (nonatomic,strong) UILabel *titleLabel; +@property (nonatomic,strong) UILabel *intratemporalSequencignation; +@property (nonatomic,strong) UIImageView *arrowIndicateRegard; +@end + +@implementation YUMIChamberCombatIntratemporalTabulationRegardElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} +#pragma mark - Private Method +- (void)initSubViews { + self.selectionStyle = UITableViewCellSelectionStyleNone; + self.contentView.backgroundColor = [DJDKMIMOMColor aplictowardsionEncouragegroundPrettify]; + [self.contentView addSubview:self.titleLabel]; + [self.contentView addSubview:self.intratemporalSequencignation]; + [self.contentView addSubview:self.arrowIndicateRegard]; +} + +- (void)initChildLyRestrictions { + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.contentView).offset(15); + make.centerY.mas_equalTo(self.contentView); + }]; + + [self.arrowIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self.contentView).offset(-15); + make.size.mas_equalTo(CGSizeMake(6.5, 11)); + make.centerY.mas_equalTo(self.contentView); + }]; + + [self.intratemporalSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self.arrowIndicateRegard.mas_left).offset(-3); + make.centerY.mas_equalTo(self.contentView); + }]; +} +#pragma mark - Getters And Setters +- (void)setTime:(NSString *)time { + _time = time; + self.intratemporalSequencignation.text = _time; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.text = YMLocalizedString(@"YUMI_Room_PK_Time_Table_View_Cell_0"); + _titleLabel.font = [UIFont boldSystemFontOfSize:15]; + _titleLabel.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _titleLabel; +} + +- (UILabel *)intratemporalSequencignation { + if (!_intratemporalSequencignation) { + _intratemporalSequencignation = [[UILabel alloc] init]; + _intratemporalSequencignation.text = YMLocalizedString(@"YUMI_Room_PK_Time_Table_View_Cell_1"); + _intratemporalSequencignation.font = [UIFont systemFontOfSize:14]; + _intratemporalSequencignation.textColor = [DJDKMIMOMColor instantEssayPrettify]; + } + return _intratemporalSequencignation; +} + +- (UIImageView *)arrowIndicateRegard { + if (!_arrowIndicateRegard) { + _arrowIndicateRegard = [[UIImageView alloc] init]; + _arrowIndicateRegard.userInteractionEnabled = YES; + _arrowIndicateRegard.image = [UIImage imageNamed:@"yumi_same_right_arrow"]; + } + return _arrowIndicateRegard; +} +@end diff --git a/YuMi/Modules/YMRoom/View/RoomPK/View/Cell/YUMIChamberCombatReflectionTabulationRegardElement.h b/YuMi/Modules/YMRoom/View/RoomPK/View/Cell/YUMIChamberCombatReflectionTabulationRegardElement.h new file mode 100644 index 00000000..f12119fe --- /dev/null +++ b/YuMi/Modules/YMRoom/View/RoomPK/View/Cell/YUMIChamberCombatReflectionTabulationRegardElement.h @@ -0,0 +1,16 @@ +// +// YMRoomPKRecordTableViewCell.h +// YUMI +// +// Created by YUMI on 2022/3/18. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class ChamberCombatReflectionMatrix; +@interface YUMIChamberCombatReflectionTabulationRegardElement : UITableViewCell +@property (nonatomic,strong) ChamberCombatReflectionMatrix *combatSpecificAbstract; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/RoomPK/View/Cell/YUMIChamberCombatReflectionTabulationRegardElement.m b/YuMi/Modules/YMRoom/View/RoomPK/View/Cell/YUMIChamberCombatReflectionTabulationRegardElement.m new file mode 100644 index 00000000..03937bc9 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/RoomPK/View/Cell/YUMIChamberCombatReflectionTabulationRegardElement.m @@ -0,0 +1,260 @@ +// +// YMRoomPKRecordTableViewCell.m +// YUMI +// +// Created by YUMI on 2022/3/18. +// + +#import "YUMIChamberCombatReflectionTabulationRegardElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "PLIntratemporalUtil.h" +#import "ChamberCombatReflectionMatrix.h" +#import "YUMIChamberCombatReflectionNickRegard.h" + +@interface YUMIChamberCombatReflectionTabulationRegardElement () +@property (nonatomic,strong) YUMIChamberCombatReflectionNickRegard *victoryerConsumerRegard; +@property (nonatomic,strong) YUMIChamberCombatReflectionNickRegard *loseConsumerRegard; +@property (nonatomic,strong) UIImageView *vsIndicateRegard; +@property (nonatomic,strong) UILabel * victoryerEarnSequencignation; +@property (nonatomic,strong) UIButton *victoryerBtuton; +@property (nonatomic,strong) UILabel * loseEarnSequencignation; +@property (nonatomic,strong) UIButton *loseBtuton; +@property (nonatomic,strong) UILabel *combateGenreSequencignation; +@property (nonatomic,strong) UILabel *engagementSequencignation; +@end + +@implementation YUMIChamberCombatReflectionTabulationRegardElement + + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.selectionStyle = UITableViewCellSelectionStyleNone; + self.backgroundColor = [DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify]; + [self.contentView addSubview:self.victoryerConsumerRegard]; + [self.contentView addSubview:self.loseConsumerRegard]; + [self.contentView addSubview:self.vsIndicateRegard]; + [self.contentView addSubview:self.victoryerEarnSequencignation]; + [self.contentView addSubview:self.combateGenreSequencignation]; + [self.contentView addSubview:self.loseEarnSequencignation]; + [self.contentView addSubview:self.victoryerBtuton]; + [self.contentView addSubview:self.engagementSequencignation]; + [self.contentView addSubview:self.loseBtuton]; +} + +- (void)initChildLyRestrictions { + + [self.victoryerConsumerRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.contentView).offset(15); + make.top.mas_equalTo(self.contentView).offset(31); + make.right.mas_equalTo(self.vsIndicateRegard.mas_left).offset(-20); + }]; + + [self.vsIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(29); + make.height.mas_equalTo(43); + make.centerY.mas_equalTo(self.victoryerConsumerRegard); + make.centerX.mas_equalTo(self.contentView); + }]; + + [self.loseConsumerRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.vsIndicateRegard.mas_right).offset(20); + make.width.centerY.mas_equalTo(self.victoryerConsumerRegard); + make.right.mas_equalTo(self.contentView).offset(-15); + }]; + + [self.victoryerEarnSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.width.mas_equalTo(self.victoryerConsumerRegard); + make.top.mas_equalTo(self.victoryerConsumerRegard.mas_bottom).offset(10); + }]; + + [self.combateGenreSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.contentView); + make.centerY.mas_equalTo(self.victoryerEarnSequencignation); + }]; + + [self.loseEarnSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.width.mas_equalTo(self.loseConsumerRegard); + make.centerY.mas_equalTo(self.victoryerEarnSequencignation); + }]; + + [self.victoryerBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.victoryerConsumerRegard); + make.top.mas_equalTo(self.victoryerEarnSequencignation.mas_bottom).offset(7); + make.width.mas_equalTo(85); + make.height.mas_equalTo(19); + }]; + + [self.engagementSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.victoryerBtuton); + make.centerX.mas_equalTo(self.contentView); + make.width.mas_equalTo(71); + }]; + + [self.loseBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.centerY.mas_equalTo(self.victoryerBtuton); + make.centerX.mas_equalTo(self.loseConsumerRegard); + }]; +} + +#pragma mark - Getters And Setters +- (void)setCombatSpecificAbstract:(ChamberCombatReflectionMatrix *)combatSpecificAbstract { + _combatSpecificAbstract = combatSpecificAbstract; + if (_combatSpecificAbstract) { + + ChamberCombatSquadMatrix *redTeam; + ChamberCombatSquadMatrix * blueTeam; + for (ChamberCombatSquadMatrix *team in _combatSpecificAbstract.teams) { + if (team.team == GroupGenre_Red) { + redTeam = team; + }else{ + blueTeam = team; + } + } + + UIColor * winnerMemberViewColor; + UIColor * loseMemberViewColor; + UIImage * winnerImage; + UIImage * loseImage; + NSString * winnerTitle; + NSString * loseString; + + if (_combatSpecificAbstract.result == ChamberCombatResultGenre_Draw) { + winnerMemberViewColor = UIColorFromRGB(0xcccccc); + loseMemberViewColor = UIColorFromRGB(0xcccccc); + winnerImage = [UIImage imageNamed:@"yumi_scope_pk_record_lose"]; + loseImage = [UIImage imageNamed:@"yumi_scope_pk_record_lose"]; + winnerTitle = YMLocalizedString(@"YUMI_Room_PK_Record_Table_View_Cell_0"); + loseString = YMLocalizedString(@"YUMI_Room_PK_Record_Table_View_Cell_1"); + + + }else if (_combatSpecificAbstract.result == ChamberCombatResultGenre_Red){ + winnerMemberViewColor= UIColorFromRGB(0xFC4895); + loseMemberViewColor = UIColorFromRGB(0xcccccc); + winnerImage = [UIImage imageNamed:@"yumi_scope_pk_record_winner"]; + loseImage = [UIImage imageNamed:@"yumi_scope_pk_record_lose"]; + winnerTitle = YMLocalizedString(@"YUMI_Room_PK_Record_Table_View_Cell_2"); + loseString = YMLocalizedString(@"YUMI_Room_PK_Record_Table_View_Cell_3"); + + }else if (_combatSpecificAbstract.result == ChamberCombatResultGenre_Blue){ + winnerMemberViewColor = UIColorFromRGB(0xcccccc); + loseMemberViewColor = UIColorFromRGB(0x3B74FE); + winnerImage = [UIImage imageNamed:@"yumi_scope_pk_record_lose"]; + loseImage = [UIImage imageNamed:@"yumi_scope_pk_result_blue_victory_background"]; + winnerTitle = YMLocalizedString(@"YUMI_Room_PK_Record_Table_View_Cell_4"); + loseString = YMLocalizedString(@"YUMI_Room_PK_Record_Table_View_Cell_5"); + } + + [self.victoryerBtuton setBackgroundImage:winnerImage forState:UIControlStateNormal]; + [self.loseBtuton setBackgroundImage:loseImage forState:UIControlStateNormal]; + [self.victoryerBtuton setTitle:winnerTitle forState:UIControlStateNormal]; + [self.loseBtuton setTitle:loseString forState:UIControlStateNormal]; + + self.victoryerEarnSequencignation.text = [NSString stringWithFormat:@"%lld",redTeam.score]; + self.loseEarnSequencignation.text = [NSString stringWithFormat:@"%lld",blueTeam.score]; + self.victoryerConsumerRegard.backgroundColor = winnerMemberViewColor; + self.loseConsumerRegard.backgroundColor = loseMemberViewColor; + + if (_combatSpecificAbstract.voteMode == ChamberCombatVoteModeGenre_GiftValue) { + self.combateGenreSequencignation.text = YMLocalizedString(@"YUMI_Room_PK_Record_Table_View_Cell_6"); + }else{ + self.combateGenreSequencignation.text = YMLocalizedString(@"YUMI_Room_PK_Record_Table_View_Cell_7"); + } + + self.victoryerConsumerRegard.consumerStatement = redTeam.teamMembers; + self.loseConsumerRegard.consumerStatement = blueTeam.teamMembers; + + self.engagementSequencignation.text = [PLIntratemporalUtil acquireEngagementAboutGeneralIntrtowardsemporalAbout:[NSString stringWithFormat:@"%ld", _combatSpecificAbstract.beginTime]]; + } +} + +- (YUMIChamberCombatReflectionNickRegard *)victoryerConsumerRegard { + if (!_victoryerConsumerRegard) { + _victoryerConsumerRegard = [[YUMIChamberCombatReflectionNickRegard alloc] init]; + } + return _victoryerConsumerRegard; +} + +- (YUMIChamberCombatReflectionNickRegard *)loseConsumerRegard { + if (!_loseConsumerRegard) { + _loseConsumerRegard = [[YUMIChamberCombatReflectionNickRegard alloc] init]; + } + return _loseConsumerRegard; +} + +- (UILabel *)combateGenreSequencignation{ + if (!_combateGenreSequencignation) { + _combateGenreSequencignation = [[UILabel alloc] init]; + _combateGenreSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _combateGenreSequencignation.font = [UIFont systemFontOfSize:13]; + _combateGenreSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _combateGenreSequencignation; +} + +- (UILabel *)engagementSequencignation{ + if (!_engagementSequencignation) { + _engagementSequencignation = [[UILabel alloc] init]; + _engagementSequencignation.textColor = [DJDKMIMOMColor instantEssayPrettify]; + _engagementSequencignation.font = [UIFont systemFontOfSize:12]; + _engagementSequencignation.textAlignment = NSTextAlignmentCenter; + _engagementSequencignation.numberOfLines = 2; + } + return _engagementSequencignation; +} + +- (UIButton *)victoryerBtuton{ + if (!_victoryerBtuton) { + _victoryerBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + _victoryerBtuton.titleLabel.font = [UIFont systemFontOfSize:13]; + [_victoryerBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + } + return _victoryerBtuton; +} + +- (UIButton *)loseBtuton{ + if (!_loseBtuton) { + _loseBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + _loseBtuton.titleLabel.font = [UIFont systemFontOfSize:13]; + [_loseBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + } + return _loseBtuton; +} + +- (UILabel *)loseEarnSequencignation{ + if (!_loseEarnSequencignation) { + _loseEarnSequencignation = [[UILabel alloc] init]; + _loseEarnSequencignation.font = [UIFont systemFontOfSize:18]; + _loseEarnSequencignation.textColor = [DJDKMIMOMColor aplictowardsionUnderlinePrettify]; + _loseEarnSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _loseEarnSequencignation; +} + +- (UILabel *)victoryerEarnSequencignation{ + if (!_victoryerEarnSequencignation) { + _victoryerEarnSequencignation = [[UILabel alloc] init]; + _victoryerEarnSequencignation.font = [UIFont systemFontOfSize:18]; + _victoryerEarnSequencignation.textColor = UIColorFromRGB(0xFE5372); + _victoryerEarnSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _victoryerEarnSequencignation; +} + +- (UIImageView *)vsIndicateRegard{ + if (!_vsIndicateRegard) { + _vsIndicateRegard = [[UIImageView alloc] init]; + _vsIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_pk_vs_logo"]; + } + return _vsIndicateRegard; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/RoomPK/View/Cell/YUMIChamberCombatVoteTabulationRegardElement.h b/YuMi/Modules/YMRoom/View/RoomPK/View/Cell/YUMIChamberCombatVoteTabulationRegardElement.h new file mode 100644 index 00000000..ae578d06 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/RoomPK/View/Cell/YUMIChamberCombatVoteTabulationRegardElement.h @@ -0,0 +1,24 @@ +// +// YMRoomPKVoteTableViewCell.h +// YUMI +// +// Created by YUMI on 2022/3/17. +// + +#import +#import "ChamberCombatReflectionMatrix.h" +NS_ASSUME_NONNULL_BEGIN + +@class YUMIChamberCombatVoteTabulationRegardElement; +@protocol FBCChamberCombatVoteTabulationViweElementRepresendtation + +- (void)yUMIChamberCombatVoteTarbsultowardsionViweElement:(YUMIChamberCombatVoteTabulationRegardElement *)view didChooseVoteType:(ChamberCombatVoteModeGenre)VoteType; + +@end + + +@interface YUMIChamberCombatVoteTabulationRegardElement : UITableViewCell +@property (nonatomic,weak) id delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/RoomPK/View/Cell/YUMIChamberCombatVoteTabulationRegardElement.m b/YuMi/Modules/YMRoom/View/RoomPK/View/Cell/YUMIChamberCombatVoteTabulationRegardElement.m new file mode 100644 index 00000000..c9e9f630 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/RoomPK/View/Cell/YUMIChamberCombatVoteTabulationRegardElement.m @@ -0,0 +1,176 @@ +// +// YMRoomPKVoteTableViewCell.m +// YUMI +// +// Created by YUMI on 2022/3/17. +// + +#import "YUMIChamberCombatVoteTabulationRegardElement.h" +#import +#import "DJDKMIMOMColor.h" + +@interface YUMIChamberCombatVoteTabulationRegardElement () +@property (nonatomic,strong) UILabel *titleLabel; +@property (nonatomic,strong) UIStackView *presentBWSttessHierarchyRegard; +@property (nonatomic,strong) UIButton *presentBWSttessConcludeBtuton; +@property (nonatomic,strong) UILabel *presentBWSttessSequencignation; +@property (nonatomic,strong) UIStackView *presentFigureHierarchyRegard; +@property (nonatomic,strong) UIButton *presentFigureConcludeBtuton; +@property (nonatomic,strong) UILabel *presentFigureSequencignation; +@property (nonatomic,strong) UILabel *genreSequencignation; +@property (nonatomic,strong) UIView * burlywoodRegard; +@end + +@implementation YUMIChamberCombatVoteTabulationRegardElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} +#pragma mark - Private Method +- (void)initSubViews { + self.selectionStyle = UITableViewCellSelectionStyleNone; + self.contentView.backgroundColor = [DJDKMIMOMColor aplictowardsionEncouragegroundPrettify]; + [self.contentView addSubview:self.titleLabel]; + [self.contentView addSubview:self.presentBWSttessHierarchyRegard]; + [self.contentView addSubview:self.presentFigureHierarchyRegard]; + [self.contentView addSubview:self.burlywoodRegard]; + + [self.presentBWSttessHierarchyRegard addArrangedSubview:self.presentBWSttessConcludeBtuton]; + [self.presentBWSttessHierarchyRegard addArrangedSubview:self.presentBWSttessSequencignation]; + + [self.presentFigureHierarchyRegard addArrangedSubview:self.presentFigureConcludeBtuton]; + [self.presentFigureHierarchyRegard addArrangedSubview:self.presentFigureSequencignation]; +} + +- (void)initChildLyRestrictions { + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.contentView).offset(15); + make.centerY.mas_equalTo(self.contentView); + }]; + + + [self.presentBWSttessHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.contentView).offset(92); + make.top.bottom.mas_equalTo(self.contentView); + }]; + + [self.presentBWSttessConcludeBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(15, 15)); + }]; + + [self.presentFigureHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.presentBWSttessHierarchyRegard.mas_right).offset(15); + make.top.bottom.mas_equalTo(self.contentView); + }]; + + [self.presentFigureConcludeBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(15, 15)); + }]; + + [self.burlywoodRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.bottom.mas_equalTo(self.contentView); + make.left.right.mas_equalTo(self.contentView).inset(15); + make.height.mas_equalTo(1); + }]; +} + +#pragma mark - Event Response +- (void)concludeChamberCombatVotePerformance:(UIButton *)sender { + self.presentBWSttessConcludeBtuton.selected = NO; + self.presentFigureConcludeBtuton.selected = NO; + sender.selected = !sender.selected; + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIChamberCombatVoteTarbsultowardsionViweElement:didChooseVoteType:)]) { + [self.delegate yUMIChamberCombatVoteTarbsultowardsionViweElement:self didChooseVoteType:sender.tag]; + } +} + +#pragma mark - Getters And Setters +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.text = YMLocalizedString(@"YUMI_Room_PK_Vote_Table_View_Cell_0"); + _titleLabel.font = [UIFont boldSystemFontOfSize:15]; + _titleLabel.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _titleLabel; +} + +- (UIStackView *)presentBWSttessHierarchyRegard { + if (!_presentBWSttessHierarchyRegard) { + _presentBWSttessHierarchyRegard = [[UIStackView alloc] init]; + _presentBWSttessHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _presentBWSttessHierarchyRegard.distribution = UIStackViewDistributionFill; + _presentBWSttessHierarchyRegard.alignment = UIStackViewAlignmentCenter; + _presentBWSttessHierarchyRegard.spacing = 5; + } + return _presentBWSttessHierarchyRegard; +} + +- (UIButton *)presentBWSttessConcludeBtuton { + if (!_presentBWSttessConcludeBtuton) { + _presentBWSttessConcludeBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_presentBWSttessConcludeBtuton setImage:[UIImage imageNamed:@"yumi_scope_pk_vote_normal"] forState:UIControlStateNormal]; + [_presentBWSttessConcludeBtuton setImage:[UIImage imageNamed:@"yumi_scope_pk_vote_select"] forState:UIControlStateSelected]; + _presentBWSttessConcludeBtuton.tag = ChamberCombatVoteModeGenre_GiftValue; + [_presentBWSttessConcludeBtuton addTarget:self action:@selector(concludeChamberCombatVotePerformance:) forControlEvents:UIControlEventTouchUpInside]; + _presentBWSttessConcludeBtuton.selected = YES; + } + return _presentBWSttessConcludeBtuton; +} + +- (UILabel *)presentBWSttessSequencignation { + if (!_presentBWSttessSequencignation) { + _presentBWSttessSequencignation = [[UILabel alloc] init]; + _presentBWSttessSequencignation.textColor = [DJDKMIMOMColor instantEssayPrettify]; + _presentBWSttessSequencignation.font = [UIFont systemFontOfSize:14]; + _presentBWSttessSequencignation.text = YMLocalizedString(@"YUMI_Room_PK_Vote_Table_View_Cell_1"); + } + return _presentBWSttessSequencignation; +} + +- (UIStackView *)presentFigureHierarchyRegard { + if (!_presentFigureHierarchyRegard) { + _presentFigureHierarchyRegard = [[UIStackView alloc] init]; + _presentFigureHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _presentFigureHierarchyRegard.distribution = UIStackViewDistributionFill; + _presentFigureHierarchyRegard.alignment = UIStackViewAlignmentCenter; + _presentFigureHierarchyRegard.spacing = 5; + } + return _presentFigureHierarchyRegard; +} + +- (UIButton *)presentFigureConcludeBtuton { + if (!_presentFigureConcludeBtuton) { + _presentFigureConcludeBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_presentFigureConcludeBtuton setImage:[UIImage imageNamed:@"yumi_scope_pk_vote_normal"] forState:UIControlStateNormal]; + [_presentFigureConcludeBtuton setImage:[UIImage imageNamed:@"yumi_scope_pk_vote_select"] forState:UIControlStateSelected]; + _presentFigureConcludeBtuton.tag = ChamberCombatVoteModeGenre_NumberPerson; + [_presentFigureConcludeBtuton addTarget:self action:@selector(concludeChamberCombatVotePerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _presentFigureConcludeBtuton; +} + +- (UILabel *)presentFigureSequencignation { + if (!_presentFigureSequencignation) { + _presentFigureSequencignation = [[UILabel alloc] init]; + _presentFigureSequencignation.textColor = [DJDKMIMOMColor instantEssayPrettify]; + _presentFigureSequencignation.font = [UIFont systemFontOfSize:14]; + _presentFigureSequencignation.text = YMLocalizedString(@"YUMI_Room_PK_Vote_Table_View_Cell_2"); + } + return _presentFigureSequencignation; +} + +- (UIView *)burlywoodRegard { + if (!_burlywoodRegard) { + _burlywoodRegard = [[UIView alloc] init]; + _burlywoodRegard.backgroundColor = [DJDKMIMOMColor dividerPrettify]; + } + return _burlywoodRegard; +} + + +@end diff --git a/YuMi/Modules/YMRoom/View/RoomPK/View/SubViews/YUMIChamberCombatChosenConsumerRegard.h b/YuMi/Modules/YMRoom/View/RoomPK/View/SubViews/YUMIChamberCombatChosenConsumerRegard.h new file mode 100644 index 00000000..2fea2e7c --- /dev/null +++ b/YuMi/Modules/YMRoom/View/RoomPK/View/SubViews/YUMIChamberCombatChosenConsumerRegard.h @@ -0,0 +1,28 @@ +// +// YMRoomPKSelectUserView.h +// YUMI +// +// Created by YUMI on 2022/3/21. +// + +#import +#import "YUMINNNN.h" +NS_ASSUME_NONNULL_BEGIN +@class MiecreoscoopeMHTueueMatrix, YUMIChamberCombatChosenConsumerRegard, ChamberCombatChooseConsumerMatrix; + +@protocol FBCChamberCombatChosenConsumerRegardRepresendtation + +- (void)yUMIChamberCombatChosenConsumerRegard:(YUMIChamberCombatChosenConsumerRegard *)view groupType:(GroupGenre)groupType didChooseUserInfos:(NSArray *)userInfos; + +@end + +@interface YUMIChamberCombatChosenConsumerRegard : UIView +@property (nonatomic,copy) NSArray *deficitConsumerGarment; +@property (nonatomic,copy) NSArray *disappointedConsumerGarment; +@property (nonatomic,assign) GroupGenre groupType; +@property (nonatomic,copy) NSArray *miecreoscoopeFormationGarment; +@property (nonatomic,weak) id delegate; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/RoomPK/View/SubViews/YUMIChamberCombatChosenConsumerRegard.m b/YuMi/Modules/YMRoom/View/RoomPK/View/SubViews/YUMIChamberCombatChosenConsumerRegard.m new file mode 100644 index 00000000..cf3d0568 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/RoomPK/View/SubViews/YUMIChamberCombatChosenConsumerRegard.m @@ -0,0 +1,392 @@ +// +// YMRoomPKSelectUserView.m +// YUMI +// +// Created by YUMI on 2022/3/21. +// + +#import "YUMIChamberCombatChosenConsumerRegard.h" +#import +#import "DJDKMIMOMColor.h" +#import "NetIndicateRegard.h" +#import "YUMIMacroUitls.h" +#import "UIImage+Utils.h" +#import "NSArray+Safe.h" +#import "ChamberCombatChooseConsumerMatrix.h" +#import "MiecreoscoopeMHTueueMatrix.h" +#import "ConsumerAbstractMatrix.h" +#import "YUMIChamberCombatConsumerAssembletionRegardElement.h" +@interface YUMIChamberCombatChosenConsumerRegard () +@property (nonatomic,strong) NetIndicateRegard *maintainrietaryIntelligenceportraitIndicateRegard; +@property (nonatomic,strong) UILabel *maintainrietarySequencignation; +@property (nonatomic,strong) UIButton *concludeBtuton; +@property (nonatomic,strong) UICollectionView *collectionView; +@property (nonatomic,strong) UIButton *acknowledgementBtuton; +@property (nonatomic,strong) NSArray * consumerPositionGarment; +@property (nonatomic,strong) ChamberCombatChooseConsumerMatrix *maintainrietaryConsumerAbstract; +@property (nonatomic,strong) NSMutableArray *concludeGarment; + +@end + +@implementation YUMIChamberCombatChosenConsumerRegard + +- (instancetype)initWithFrame:(CGRect)frame +{ + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor whiteColor]; + self.layer.masksToBounds = YES; + self.layer.cornerRadius = 12; + [self addSubview:self.maintainrietaryIntelligenceportraitIndicateRegard]; + [self addSubview:self.maintainrietarySequencignation]; + [self addSubview:self.concludeBtuton]; + [self addSubview:self.collectionView]; + [self addSubview:self.acknowledgementBtuton]; +} + +- (void)initChildLyRestrictions { + [self.maintainrietaryIntelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(22); + make.centerX.mas_equalTo(self); + make.width.mas_equalTo(46); + make.height.mas_equalTo(46); + }]; + + [self.maintainrietarySequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.maintainrietaryIntelligenceportraitIndicateRegard); + make.top.mas_equalTo(self.maintainrietaryIntelligenceportraitIndicateRegard.mas_bottom).offset(5); + make.height.mas_equalTo(14); + }]; + + [self.concludeBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.bottom.mas_equalTo(self.maintainrietaryIntelligenceportraitIndicateRegard); + make.width.height.mas_equalTo(16); + }]; + + [self.collectionView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self); + make.top.mas_equalTo(self.maintainrietarySequencignation.mas_bottom).offset(10); + make.height.mas_equalTo(65 * 2 + 10); + }]; + + [self.acknowledgementBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.collectionView.mas_bottom).offset(15); + make.centerX.mas_equalTo(self); + make.width.mas_equalTo(140); + make.height.mas_equalTo(38); + }]; + + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(KScreenWidth - 40 * 2); + make.bottom.mas_equalTo(self.acknowledgementBtuton.mas_bottom).offset(15); + }]; +} + + +#pragma mark - UICollectionViewDelegate And UICollectionViewDatasource +- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { + return self.consumerPositionGarment.count; +} + +- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section { + return 10; +} + +- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section { + return (KScreenWidth - 40 * 2 - 46 * 4 - 15 * 2)/ 3; +} + +- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath { + return CGSizeMake(46, 65); +} + +- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { + YUMIChamberCombatConsumerAssembletionRegardElement * cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([YUMIChamberCombatConsumerAssembletionRegardElement class]) forIndexPath:indexPath]; + ChamberCombatChooseConsumerMatrix * model = [self.consumerPositionGarment secureGroalTowardsIndictowardsrix1:indexPath.row]; + cell.userInfo = model; + return cell; +} + +- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath { + [collectionView deselectItemAtIndexPath:indexPath animated:YES]; + ChamberCombatChooseConsumerMatrix * model = [self.consumerPositionGarment secureGroalTowardsIndictowardsrix1:indexPath.row]; + if (!model.isEnableChoose) {return;} + if (model.uid.length > 0) { + model.isSelect = !model.isSelect; + __block ChamberCombatChooseConsumerMatrix * chosenMatrix; + [self.concludeGarment enumerateObjectsUsingBlock:^(ChamberCombatChooseConsumerMatrix * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if (obj.uid == model.uid) { + chosenMatrix = obj; + *stop = YES; + } + }]; + if (chosenMatrix && !model.isSelect) { + chosenMatrix.groupType = GroupGenre_default; + } + + if (model.isSelect && chosenMatrix == nil) { + [self.concludeGarment addObject:model]; + } + } + [self.collectionView reloadData]; +} + +#pragma mark - Event Response +- (void)acknowledgementBtutonPerformance:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIChamberCombatChosenConsumerRegard:groupType:didChooseUserInfos:)]) { + [self.delegate yUMIChamberCombatChosenConsumerRegard:self groupType:self.groupType didChooseUserInfos:self.concludeGarment]; + } +} + +- (void)concludeBtutonPerformance:(UIButton *)sender { + if (self.concludeBtuton.hidden) {return;} + sender.selected = !sender.selected; + self.maintainrietaryConsumerAbstract.isSelect = !self.maintainrietaryConsumerAbstract.isSelect; + __block ChamberCombatChooseConsumerMatrix * chosenMatrix; + [self.concludeGarment enumerateObjectsUsingBlock:^(ChamberCombatChooseConsumerMatrix * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if (obj.uid == self.maintainrietaryConsumerAbstract.uid) { + chosenMatrix = obj; + *stop = YES; + } + }]; + if (chosenMatrix && !self.maintainrietaryConsumerAbstract.isSelect) { + chosenMatrix.groupType = GroupGenre_default; + } + + if (self.maintainrietaryConsumerAbstract.isSelect && chosenMatrix == nil) { + [self.concludeGarment addObject:self.maintainrietaryConsumerAbstract]; + } +} + +- (void)didBetowardsRecognition:(UITapGestureRecognizer *)tap { + if (self.concludeBtuton.hidden) {return;} + self.concludeBtuton.selected = !self.concludeBtuton.selected; + self.maintainrietaryConsumerAbstract.isSelect = !self.maintainrietaryConsumerAbstract.isSelect; + __block ChamberCombatChooseConsumerMatrix * chosenMatrix; + [self.concludeGarment enumerateObjectsUsingBlock:^(ChamberCombatChooseConsumerMatrix * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if (obj.uid == self.maintainrietaryConsumerAbstract.uid) { + chosenMatrix = obj; + *stop = YES; + } + }]; + if (chosenMatrix && !self.maintainrietaryConsumerAbstract.isSelect) { + chosenMatrix.groupType = GroupGenre_default; + } + + if (self.maintainrietaryConsumerAbstract.isSelect && chosenMatrix == nil) { + [self.concludeGarment addObject:self.maintainrietaryConsumerAbstract]; + } +} + +#pragma mark - Getters And Setters +- (void)setGroupType:(GroupGenre)groupType { + _groupType = groupType; + if (_groupType == GroupGenre_Red) { + [self.concludeGarment addObjectsFromArray:self.deficitConsumerGarment]; + } else if (_groupType == GroupGenre_Blue) { + [self.concludeGarment addObjectsFromArray:self.disappointedConsumerGarment]; + } +} + +- (void)setMiecreoscoopeFormationGarment:(NSArray *)miecreoscoopeFormationGarment { + _miecreoscoopeFormationGarment = miecreoscoopeFormationGarment; + for (int i = 0; i< miecreoscoopeFormationGarment.count; i++) { + MiecreoscoopeMHTueueMatrix * miecreoscoopeMatrix = [miecreoscoopeFormationGarment secureGroalTowardsIndictowardsrix1:i]; + if (miecreoscoopeMatrix.userInfo && miecreoscoopeMatrix.userInfo.uid > 0) { + int position = miecreoscoopeMatrix.microState.position; + if (position < self.consumerPositionGarment.count) { + + ChamberCombatChooseConsumerMatrix * userInfoModel = [self.consumerPositionGarment secureGroalTowardsIndictowardsrix1:position]; + userInfoModel.title = miecreoscoopeMatrix.userInfo.nick; + userInfoModel.avatar = miecreoscoopeMatrix.userInfo.avatar; + userInfoModel.uid = [NSString stringWithFormat:@"%ld", miecreoscoopeMatrix.userInfo.uid]; + userInfoModel.position = position; + userInfoModel.nick = miecreoscoopeMatrix.userInfo.nick; + userInfoModel.groupType = self.groupType; + userInfoModel.isEnableChoose = YES; + if (self.groupType == GroupGenre_Red) { + for (int i = 0; i *)concludeGarment { + if (!_concludeGarment) { + _concludeGarment = [NSMutableArray array]; + } + return _concludeGarment; +} + +- (ChamberCombatChooseConsumerMatrix *)maintainrietaryConsumerAbstract { + if (!_maintainrietaryConsumerAbstract) { + _maintainrietaryConsumerAbstract = [[ChamberCombatChooseConsumerMatrix alloc] init]; + } + return _maintainrietaryConsumerAbstract; +} + + +@end diff --git a/YuMi/Modules/YMRoom/View/RoomPK/View/SubViews/YUMIChamberCombatConsumerRegard.h b/YuMi/Modules/YMRoom/View/RoomPK/View/SubViews/YUMIChamberCombatConsumerRegard.h new file mode 100644 index 00000000..ce39fda2 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/RoomPK/View/SubViews/YUMIChamberCombatConsumerRegard.h @@ -0,0 +1,22 @@ +// +// YMRoomPKUserView.h +// YUMI +// +// Created by YUMI on 2022/3/17. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +typedef NS_ENUM(NSInteger,ChamberCombatConsumerRegardGenre) { + ChamberCombatConsumerRegardGenre_Red = 1, + ChamberCombatConsumerRegardGenre_Blue +}; +@class ChamberCombatChooseConsumerMatrix; + +@interface YUMIChamberCombatConsumerRegard : UIView +@property (nonatomic,assign) ChamberCombatConsumerRegardGenre type; +@property (nonatomic,strong, nullable) ChamberCombatChooseConsumerMatrix *userInfo; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/RoomPK/View/SubViews/YUMIChamberCombatConsumerRegard.m b/YuMi/Modules/YMRoom/View/RoomPK/View/SubViews/YUMIChamberCombatConsumerRegard.m new file mode 100644 index 00000000..982f7749 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/RoomPK/View/SubViews/YUMIChamberCombatConsumerRegard.m @@ -0,0 +1,119 @@ +// +// YMRoomPKUserView.m +// YUMI +// +// Created by YUMI on 2022/3/17. +// + +#import "YUMIChamberCombatConsumerRegard.h" +#import +#import "NetIndicateRegard.h" +#import "DJDKMIMOMColor.h" +#import "UIImage+Utils.h" +#import "ChamberCombatChooseConsumerMatrix.h" + +@interface YUMIChamberCombatConsumerRegard () +@property (nonatomic,strong) NetIndicateRegard *intelligenceportraitIndicateRegard; +@property (nonatomic,strong) UIButton *monicerBtuton; +@end + +@implementation YUMIChamberCombatConsumerRegard + +- (instancetype)initWithFrame:(CGRect)frame +{ + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.intelligenceportraitIndicateRegard]; + [self addSubview:self.monicerBtuton]; +} + +- (void)initChildLyRestrictions { + + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.top.mas_equalTo(self); + make.height.width.mas_equalTo(50); + }]; + + [self.monicerBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self); + make.top.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_bottom).offset(3); + make.height.mas_equalTo(14); + }]; +} + +#pragma mark - Getters And Setters +- (void)setUserInfo:(ChamberCombatChooseConsumerMatrix *)userInfo { + _userInfo = userInfo; + if (_userInfo) { + if (_userInfo.avatar.length > 0) { + self.intelligenceportraitIndicateRegard.imageUrl = _userInfo.avatar; + } + if (_userInfo.title.length > 0) { + [self.monicerBtuton setTitle:_userInfo.title forState:UIControlStateNormal]; + } + } else { + if (self.type == ChamberCombatConsumerRegardGenre_Red) { + self.intelligenceportraitIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_pk_position_red_background"]; + [self.monicerBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[UIColorFromRGB(0xFC4A95), UIColorFromRGB(0xFE6075)] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + } else if(self.type == ChamberCombatConsumerRegardGenre_Blue) { + self.intelligenceportraitIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_pk_position_blue_background"]; + [self.monicerBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[UIColorFromRGB(0x3571FE), UIColorFromRGB(0x7994FC)] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + } + [self.monicerBtuton setTitle:YMLocalizedString(@"YUMI_Room_PK_User_View_0") forState:UIControlStateNormal]; + } +} + +- (void)setType:(ChamberCombatConsumerRegardGenre)type { + _type = type; + switch (_type) { + case ChamberCombatConsumerRegardGenre_Red: + { + self.intelligenceportraitIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_pk_position_red_background"]; + [self.monicerBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[UIColorFromRGB(0xFC4A95), UIColorFromRGB(0xFE6075)] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + } + break; + case ChamberCombatConsumerRegardGenre_Blue: + { + self.intelligenceportraitIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_pk_position_blue_background"]; + [self.monicerBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[UIColorFromRGB(0x3571FE), UIColorFromRGB(0x7994FC)] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + } + + default: + break; + } +} + +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _intelligenceportraitIndicateRegard.layer.cornerRadius = 50/2; + _intelligenceportraitIndicateRegard.layer.borderColor = [DJDKMIMOMColor aplictowardsionMainPrettify].CGColor; + } + return _intelligenceportraitIndicateRegard; +} + +- (UIButton *)monicerBtuton { + if (!_monicerBtuton) { + _monicerBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_monicerBtuton setTitle:YMLocalizedString(@"YUMI_Room_PK_User_View_1") forState:UIControlStateNormal]; + [_monicerBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + _monicerBtuton.titleLabel.font = [UIFont systemFontOfSize:10]; + _monicerBtuton.layer.masksToBounds = YES; + _monicerBtuton.layer.cornerRadius = 7; + } + return _monicerBtuton; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/RoomPK/View/SubViews/YUMIChamberCombatFasciaboardConsumerRegard.h b/YuMi/Modules/YMRoom/View/RoomPK/View/SubViews/YUMIChamberCombatFasciaboardConsumerRegard.h new file mode 100644 index 00000000..bb21a4e7 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/RoomPK/View/SubViews/YUMIChamberCombatFasciaboardConsumerRegard.h @@ -0,0 +1,24 @@ +// +// YMRoomPKPanelUserView.h +// YUMI +// +// Created by YUMI on 2022/3/28. +// + +#import +#import "YUMINNNN.h" +NS_ASSUME_NONNULL_BEGIN +@class YUMIChamberCombatFasciaboardConsumerRegard, ChamberCombatChooseConsumerMatrix; +@protocol FBCChamberCombatPanelConsumerRegardRepresendtation +- (void)yUMIChamberCombatFasciaboardConsumerRegard:(YUMIChamberCombatFasciaboardConsumerRegard *)view didClickAddButton:(GroupGenre)type; + +@end +@interface YUMIChamberCombatFasciaboardConsumerRegard : UIView +@property (nonatomic,assign) BOOL isExhibitAccelerate; +@property (nonatomic,assign) CGFloat itemAltitude; +@property (nonatomic,assign) GroupGenre type; +@property (nonatomic,strong, nullable) NSArray *consumerGarment; +@property (nonatomic,weak) id delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/RoomPK/View/SubViews/YUMIChamberCombatFasciaboardConsumerRegard.m b/YuMi/Modules/YMRoom/View/RoomPK/View/SubViews/YUMIChamberCombatFasciaboardConsumerRegard.m new file mode 100644 index 00000000..e1eee2ce --- /dev/null +++ b/YuMi/Modules/YMRoom/View/RoomPK/View/SubViews/YUMIChamberCombatFasciaboardConsumerRegard.m @@ -0,0 +1,298 @@ +// +// YMRoomPKPanelUserView.m +// YUMI +// +// Created by YUMI on 2022/3/28. +// + +#import "YUMIChamberCombatFasciaboardConsumerRegard.h" +#import +#import "NetIndicateRegard.h" +#import "DJDKMIMOMColor.h" +#import "NSArray+Safe.h" +#import "ChamberCombatChooseConsumerMatrix.h" + +@interface YUMIChamberCombatFasciaboardConsumerRegard () +@property (nonatomic,strong) UIStackView *stackView; +@property (nonatomic,strong) UIView * consumerRegard; +@property (nonatomic,strong) NetIndicateRegard *thresholdConsumerRegard; +@property (nonatomic,strong) NetIndicateRegard *instantConsumerRegard; +@property (nonatomic,strong) NetIndicateRegard *tertiusConsumerRegard; +@property (nonatomic,strong) NetIndicateRegard *fourthConsumerRegard; +@property (nonatomic,strong) NetIndicateRegard *fifthConsumerRegard; +@property (nonatomic,strong) UIButton *accelerateBtuton; +@property (nonatomic,strong) NSArray *viewGarment; +@end + +@implementation YUMIChamberCombatFasciaboardConsumerRegard + +- (instancetype)initWithFrame:(CGRect)frame +{ + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +- (void)layoutSubviews { + [super layoutSubviews]; + CGFloat itemheight = self.itemAltitude; + self.thresholdConsumerRegard.layer.cornerRadius = itemheight / 2; + self.instantConsumerRegard.layer.cornerRadius = itemheight / 2; + self.tertiusConsumerRegard.layer.cornerRadius = itemheight / 2; + self.fourthConsumerRegard.layer.cornerRadius = itemheight / 2; + self.fifthConsumerRegard.layer.cornerRadius = itemheight / 2; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.isExhibitAccelerate = YES; + [self addSubview:self.stackView]; + [self.stackView addArrangedSubview:self.accelerateBtuton]; + [self.stackView addArrangedSubview:self.consumerRegard]; + [self.consumerRegard addSubview:self.fifthConsumerRegard]; + [self.consumerRegard addSubview:self.fourthConsumerRegard]; + [self.consumerRegard addSubview:self.tertiusConsumerRegard]; + [self.consumerRegard addSubview:self.instantConsumerRegard]; + [self.consumerRegard addSubview:self.thresholdConsumerRegard]; +} + +- (void)initChildLyRestrictions { + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.stackView.mas_left); + }]; + + [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.top.bottom.mas_equalTo(self); + }]; + + [self.accelerateBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(25); + }]; + + [self.consumerRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(0); + }]; +} + +#pragma mark - Event Response +- (void)accelertowardseBtutonPerformance:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIChamberCombatFasciaboardConsumerRegard:didClickAddButton:)]) { + [self.delegate yUMIChamberCombatFasciaboardConsumerRegard:self didClickAddButton:self.type]; + } +} + +- (void)didBetowardsConsumerRegardRecognition { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIChamberCombatFasciaboardConsumerRegard:didClickAddButton:)]) { + [self.delegate yUMIChamberCombatFasciaboardConsumerRegard:self didClickAddButton:self.type]; + } +} + +#pragma mark - Getters And Setters +- (void)setConsumerGarment:(NSArray *)consumerGarment { + _consumerGarment = consumerGarment; + if (_consumerGarment.count > 0) { + self.consumerRegard.hidden = NO; + self.accelerateBtuton.hidden = YES; + for (int i = 0 ; i< self.viewGarment.count; i++) { + NetIndicateRegard * view = [self.viewGarment secureGroalTowardsIndictowardsrix1:i]; + if (i < self.consumerGarment.count) { + ChamberCombatChooseConsumerMatrix * userInfo = [self.consumerGarment secureGroalTowardsIndictowardsrix1:i]; + view.hidden = NO; + view.imageUrl = userInfo.avatar; + } else { + view.hidden = YES; + } + } + CGFloat userViewWidth = (_consumerGarment.count - 1) * 5 + self.itemAltitude; + [self.consumerRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(userViewWidth); + }]; + } else { + self.consumerRegard.hidden = YES; + self.accelerateBtuton.hidden = self.isExhibitAccelerate ? NO : YES; + } +} + +- (void)setType:(GroupGenre)type { + _type = type; + if (_type == GroupGenre_Red) { + CGColorRef color = UIColorFromRGB(0xFFA572).CGColor; + self.thresholdConsumerRegard.layer.borderColor = color; + self.instantConsumerRegard.layer.borderColor = color; + self.tertiusConsumerRegard.layer.borderColor = color; + self.fourthConsumerRegard.layer.borderColor = color; + self.fifthConsumerRegard.layer.borderColor = color; + [self.accelerateBtuton setImage:[UIImage imageNamed:@"yumi_scope_pk_progrss_red_add"] forState:UIControlStateNormal]; + [self.thresholdConsumerRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.mas_equalTo(self.mas_height); + make.right.centerY.mas_equalTo(self.consumerRegard); + }]; + + [self.instantConsumerRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.centerY.mas_equalTo(self.thresholdConsumerRegard); + make.left.mas_equalTo(self.thresholdConsumerRegard.mas_left).offset(-5); + }]; + + [self.tertiusConsumerRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.centerY.mas_equalTo(self.thresholdConsumerRegard); + make.left.mas_equalTo(self.instantConsumerRegard.mas_left).offset(-5); + }]; + + [self.fourthConsumerRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.centerY.mas_equalTo(self.thresholdConsumerRegard); + make.left.mas_equalTo(self.tertiusConsumerRegard.mas_left).offset(-5); + }]; + + [self.fifthConsumerRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.centerY.mas_equalTo(self.thresholdConsumerRegard); + make.left.mas_equalTo(self.fourthConsumerRegard.mas_left).offset(-5); + }]; + self.viewGarment = @[self.thresholdConsumerRegard, self.instantConsumerRegard, self.tertiusConsumerRegard, self.fourthConsumerRegard, self.fifthConsumerRegard]; + } else { + CGColorRef color = UIColorFromRGB(0x3ECAFC).CGColor; + self.thresholdConsumerRegard.layer.borderColor = color; + self.instantConsumerRegard.layer.borderColor = color; + self.tertiusConsumerRegard.layer.borderColor = color; + self.fourthConsumerRegard.layer.borderColor = color; + self.fifthConsumerRegard.layer.borderColor = color; + [self.accelerateBtuton setImage:[UIImage imageNamed:@"yumi_scope_pk_progrss_blue_add"] forState:UIControlStateNormal]; + [self.fifthConsumerRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.mas_equalTo(self.mas_height); + make.left.centerY.mas_equalTo(self.consumerRegard); + }]; + + [self.fourthConsumerRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.centerY.mas_equalTo(self.fifthConsumerRegard); + make.left.mas_equalTo(self.fifthConsumerRegard.mas_left).offset(5); + }]; + + [self.tertiusConsumerRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.centerY.mas_equalTo(self.fifthConsumerRegard); + make.left.mas_equalTo(self.fourthConsumerRegard.mas_left).offset(5); + }]; + + + [self.instantConsumerRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.centerY.mas_equalTo(self.fifthConsumerRegard); + make.left.mas_equalTo(self.tertiusConsumerRegard.mas_left).offset(5); + }]; + + [self.thresholdConsumerRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.centerY.mas_equalTo(self.fifthConsumerRegard); + make.left.mas_equalTo(self.instantConsumerRegard.mas_left).offset(5); + }]; + self.viewGarment = @[self.fifthConsumerRegard, self.fourthConsumerRegard, self.tertiusConsumerRegard, self.instantConsumerRegard, self.thresholdConsumerRegard]; + } +} + +- (void)setIsExhibitAccelerate:(BOOL)isExhibitAccelerate { + _isExhibitAccelerate = isExhibitAccelerate; + self.accelerateBtuton.hidden = !_isExhibitAccelerate; +} + +- (UIStackView *)stackView { + if (!_stackView) { + _stackView = [[UIStackView alloc] init]; + _stackView.axis = UILayoutConstraintAxisHorizontal; + _stackView.distribution = UIStackViewDistributionFill; + _stackView.alignment = UIStackViewAlignmentFill; + _stackView.spacing = 0; + } + return _stackView; +} + +- (UIView *)consumerRegard { + if (!_consumerRegard) { + _consumerRegard = [[UIView alloc] init]; + _consumerRegard.backgroundColor = [UIColor clearColor]; + _consumerRegard.hidden = YES; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didBetowardsConsumerRegardRecognition)]; + [_consumerRegard addGestureRecognizer:tap]; + } + return _consumerRegard; +} + +- (NetIndicateRegard *)thresholdConsumerRegard { + if (!_thresholdConsumerRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _thresholdConsumerRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _thresholdConsumerRegard.layer.masksToBounds = YES; + _thresholdConsumerRegard.layer.cornerRadius = 25/2; + _thresholdConsumerRegard.layer.borderWidth = 1; + _thresholdConsumerRegard.userInteractionEnabled = YES; + } + return _thresholdConsumerRegard; +} + +- (NetIndicateRegard *)instantConsumerRegard { + if (!_instantConsumerRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _instantConsumerRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _instantConsumerRegard.layer.masksToBounds = YES; + _instantConsumerRegard.layer.cornerRadius = 25/2; + _instantConsumerRegard.layer.borderWidth = 1; + _instantConsumerRegard.userInteractionEnabled = YES; + } + return _instantConsumerRegard; +} + + +- (NetIndicateRegard *)tertiusConsumerRegard { + if (!_tertiusConsumerRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _tertiusConsumerRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _tertiusConsumerRegard.layer.masksToBounds = YES; + _tertiusConsumerRegard.layer.cornerRadius = 25/2; + _tertiusConsumerRegard.layer.borderWidth = 1; + _instantConsumerRegard.userInteractionEnabled = YES; + } + return _tertiusConsumerRegard; +} + +- (NetIndicateRegard *)fourthConsumerRegard { + if (!_fourthConsumerRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _fourthConsumerRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _fourthConsumerRegard.layer.masksToBounds = YES; + _fourthConsumerRegard.layer.cornerRadius = 25/2; + _fourthConsumerRegard.layer.borderWidth = 1; + _fourthConsumerRegard.userInteractionEnabled = YES; + } + return _fourthConsumerRegard; +} + +- (NetIndicateRegard *)fifthConsumerRegard { + if (!_fifthConsumerRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _fifthConsumerRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _fifthConsumerRegard.layer.masksToBounds = YES; + _fifthConsumerRegard.layer.cornerRadius = 25/2; + _fifthConsumerRegard.layer.borderWidth = 1; + _fifthConsumerRegard.userInteractionEnabled = YES; + } + return _fifthConsumerRegard; +} + +- (UIButton *)accelerateBtuton { + if (!_accelerateBtuton) { + _accelerateBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_accelerateBtuton addTarget:self action:@selector(accelertowardseBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _accelerateBtuton; +} + + +@end diff --git a/YuMi/Modules/YMRoom/View/RoomPK/View/SubViews/YUMIChamberCombatIntratemporalPickerRegard.h b/YuMi/Modules/YMRoom/View/RoomPK/View/SubViews/YUMIChamberCombatIntratemporalPickerRegard.h new file mode 100644 index 00000000..178d3ed9 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/RoomPK/View/SubViews/YUMIChamberCombatIntratemporalPickerRegard.h @@ -0,0 +1,22 @@ +// +// YMRoomPKTimePickerView.h +// YUMI +// +// Created by YUMI on 2022/3/18. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class ChamberCombatIntratemporalProvisionMatrix, YUMIChamberCombatIntratemporalPickerRegard; +@protocol FBCChamberCombatTimePickerRegardRepresendtation + +- (void)yUMIChamberCombatIntrtowardsemporalExtracterRegard:(YUMIChamberCombatIntratemporalPickerRegard *)view timeModel:(ChamberCombatIntratemporalProvisionMatrix *)model; + +@end + +@interface YUMIChamberCombatIntratemporalPickerRegard : UIView +@property (nonatomic,weak) id delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/RoomPK/View/SubViews/YUMIChamberCombatIntratemporalPickerRegard.m b/YuMi/Modules/YMRoom/View/RoomPK/View/SubViews/YUMIChamberCombatIntratemporalPickerRegard.m new file mode 100644 index 00000000..da442780 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/RoomPK/View/SubViews/YUMIChamberCombatIntratemporalPickerRegard.m @@ -0,0 +1,239 @@ +// +// YMRoomPKTimePickerView.m +// YUMI +// +// Created by YUMI on 2022/3/18. +// + +#import "YUMIChamberCombatIntratemporalPickerRegard.h" +#import +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" +#import "MKJPopup.h" +#import "NSArray+Safe.h" +#import "ChamberCombatIntratemporalProvisionMatrix.h" +@interface YUMIChamberCombatIntratemporalPickerRegard () +@property (nonatomic,strong) UIPickerView *extractRegard; +@property (nonatomic,strong) UIButton *revocationBtuton; +@property (nonatomic,strong) UIButton *acknowledgementBtuton; +@property (nonatomic,strong) NSMutableArray *> *datasource; +@property (nonatomic,strong) ChamberCombatIntratemporalProvisionMatrix *zeroMatrix; +@property (nonatomic,strong) ChamberCombatIntratemporalProvisionMatrix *tertiusMatrix; +@property (nonatomic,strong) ChamberCombatIntratemporalProvisionMatrix *chosenMinMatrix; +@property (nonatomic,strong) ChamberCombatIntratemporalProvisionMatrix *chosenInstantMatrix; +@property (nonatomic,strong) ChamberCombatIntratemporalProvisionMatrix *chosenMatrix; +@end + +@implementation YUMIChamberCombatIntratemporalPickerRegard + +- (instancetype)initWithFrame:(CGRect)frame +{ + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor whiteColor]; + + [self addSubview:self.revocationBtuton]; + [self addSubview:self.acknowledgementBtuton]; + [self addSubview:self.extractRegard]; + + NSMutableArray * minArray = [NSMutableArray array]; + for (int i = 0 ; i < 31; i++) { + ChamberCombatIntratemporalProvisionMatrix * timeModel = [[ChamberCombatIntratemporalProvisionMatrix alloc] init]; + timeModel.title = [NSString stringWithFormat:YMLocalizedString(@"YUMI_Room_PK_Time_Picker_View_0"), i]; + timeModel.time = i; + [minArray addObject:timeModel]; + } + self.chosenMinMatrix = minArray.firstObject; + self.chosenInstantMatrix = self.zeroMatrix; + NSMutableArray * secondArray = [NSMutableArray array]; + [secondArray addObject:self.tertiusMatrix]; + + self.chosenInstantMatrix = self.tertiusMatrix; + + [self.datasource addObject:minArray]; + [self.datasource addObject:secondArray]; + + CAShapeLayer * layer = [CAShapeLayer layer]; + layer.path = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, KScreenWidth, 234+ kSafeAreaBottomHeight) byRoundingCorners:UIRectCornerTopLeft | UIRectCornerTopRight cornerRadii:CGSizeMake(12, 12)].CGPath; + self.layer.masksToBounds = YES; + self.layer.mask = layer; +} + +- (void)initChildLyRestrictions { + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(KScreenWidth); + make.height.mas_equalTo(234 + kSafeAreaBottomHeight); + }]; + + [self.revocationBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(10); + make.top.mas_equalTo(10); + make.width.mas_equalTo(40); + make.height.mas_equalTo(25); + }]; + + [self.acknowledgementBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(-10); + make.top.mas_equalTo(10); + make.width.mas_equalTo(40); + make.height.mas_equalTo(25); + }]; + + [self.extractRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(45); + make.left.right.mas_equalTo(10); + make.bottom.mas_equalTo(-kSafeAreaBottomHeight); + }]; +} + +#pragma mark - UIPickerViewDataSource +- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView { + return self.datasource.count; +} + +- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component { + return self.datasource[component].count; +} + +- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component { + ChamberCombatIntratemporalProvisionMatrix * model = [[self.datasource secureGroalTowardsIndictowardsrix1:component] secureGroalTowardsIndictowardsrix1:row]; + return model.title; +} +#pragma mark - UIPickerViewDelegate +- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component { + if (component == 0) { + ChamberCombatIntratemporalProvisionMatrix * model = [[self.datasource secureGroalTowardsIndictowardsrix1:component] secureGroalTowardsIndictowardsrix1:row]; + self.chosenMinMatrix = model; + if ([model.title isEqualToString:YMLocalizedString(@"YUMI_Room_PK_Time_Picker_View_1")]) { + self.chosenInstantMatrix = self.tertiusMatrix; + NSMutableArray * array = [self.datasource secureGroalTowardsIndictowardsrix1:1]; + if ([array containsObject:self.zeroMatrix]) { + [array removeObject:self.zeroMatrix]; + } + + if (![array containsObject:self.tertiusMatrix]) { + [array addObject:self.tertiusMatrix]; + } + }else if ([model.title isEqualToString:YMLocalizedString(@"YUMI_Room_PK_Time_Picker_View_2")]) { + self.chosenInstantMatrix = self.zeroMatrix; + NSMutableArray * array = [self.datasource secureGroalTowardsIndictowardsrix1:1]; + if ([array containsObject:self.tertiusMatrix]) { + [array removeObject:self.tertiusMatrix]; + } + + if (![array containsObject:self.zeroMatrix]) { + [array insertObject:self.zeroMatrix atIndex:0]; + } + } else { + self.chosenInstantMatrix = self.zeroMatrix; + NSMutableArray * array = [self.datasource secureGroalTowardsIndictowardsrix1:1]; + if (![array containsObject:self.zeroMatrix]) { + [array insertObject:self.zeroMatrix atIndex:0]; + } + + if (![array containsObject:self.tertiusMatrix]) { + [array addObject:self.tertiusMatrix]; + } + } + [pickerView reloadComponent:1]; + } else { + ChamberCombatIntratemporalProvisionMatrix * model = [[self.datasource secureGroalTowardsIndictowardsrix1:component] secureGroalTowardsIndictowardsrix1:row]; + self.chosenInstantMatrix = model; + } +} + +#pragma mark - Event Response +- (void)acknowledgementBtutonPerformance:(UIButton *)sender { + [MKJPopup dismiss]; + NSString * title; + if (self.chosenMinMatrix.time > 0) { + title = [NSString stringWithFormat:YMLocalizedString(@"YUMI_Room_PK_Time_Picker_View_3"), self.chosenMinMatrix.time, self.chosenInstantMatrix.time]; + } else { + title = [NSString stringWithFormat:YMLocalizedString(@"YUMI_Room_PK_Time_Picker_View_4"), self.chosenInstantMatrix.time]; + } + self.chosenMatrix.title = title; + self.chosenMatrix.time = self.chosenMinMatrix.time * 60 + self.chosenInstantMatrix.time; + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIChamberCombatIntrtowardsemporalExtracterRegard:timeModel:)]) { + [self.delegate yUMIChamberCombatIntrtowardsemporalExtracterRegard:self timeModel:self.chosenMatrix]; + } +} + +- (void)revoctowardsionBtutonPerformance:(UIButton *)sender { + [MKJPopup dismiss]; +} + +#pragma mark - Getters And Setters +- (UIButton *)revocationBtuton { + if (!_revocationBtuton) { + _revocationBtuton = [[UIButton alloc] init]; + [_revocationBtuton setTitle:YMLocalizedString(@"YUMI_Room_PK_Time_Picker_View_5") forState:UIControlStateNormal]; + [_revocationBtuton setTitleColor:[DJDKMIMOMColor instantEssayPrettify] forState:UIControlStateNormal]; + _revocationBtuton.titleLabel.font = [UIFont systemFontOfSize:15]; + [_revocationBtuton addTarget:self action:@selector(revoctowardsionBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _revocationBtuton; +} + +- (UIButton *)acknowledgementBtuton { + if (!_acknowledgementBtuton) { + _acknowledgementBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_acknowledgementBtuton setTitle:YMLocalizedString(@"YUMI_Room_PK_Time_Picker_View_6") forState:UIControlStateNormal]; + [_acknowledgementBtuton setTitleColor:[DJDKMIMOMColor aplictowardsionMainPrettify] forState:UIControlStateNormal]; + _acknowledgementBtuton.titleLabel.font = [UIFont systemFontOfSize:15]; + [_acknowledgementBtuton addTarget:self action:@selector(acknowledgementBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _acknowledgementBtuton; +} + +- (UIPickerView *)extractRegard { + if (!_extractRegard) { + _extractRegard = [[UIPickerView alloc] init]; + _extractRegard.backgroundColor = [UIColor whiteColor]; + _extractRegard.delegate = self; + _extractRegard.dataSource = self; + } + return _extractRegard; +} + +- (NSMutableArray *> *)datasource { + if (!_datasource) { + _datasource = [NSMutableArray array]; + } + return _datasource; +} + +- (ChamberCombatIntratemporalProvisionMatrix *)zeroMatrix { + if (!_zeroMatrix) { + ChamberCombatIntratemporalProvisionMatrix * zeroMatrix = [[ChamberCombatIntratemporalProvisionMatrix alloc] init]; + zeroMatrix.title = YMLocalizedString(@"YUMI_Room_PK_Time_Picker_View_7"); + zeroMatrix.time = 0; + _zeroMatrix = zeroMatrix; + } + return _zeroMatrix; +} + +- (ChamberCombatIntratemporalProvisionMatrix *)tertiusMatrix { + if (!_tertiusMatrix) { + _tertiusMatrix = [[ChamberCombatIntratemporalProvisionMatrix alloc] init]; + _tertiusMatrix.title = YMLocalizedString(@"YUMI_Room_PK_Time_Picker_View_8"); + _tertiusMatrix.time = 30; + } + return _tertiusMatrix; +} + +- (ChamberCombatIntratemporalProvisionMatrix *)chosenMatrix { + if (!_chosenMatrix) { + _chosenMatrix = [[ChamberCombatIntratemporalProvisionMatrix alloc] init]; + } + return _chosenMatrix; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/RoomPK/View/SubViews/YUMIChamberCombatReflectionNickRegard.h b/YuMi/Modules/YMRoom/View/RoomPK/View/SubViews/YUMIChamberCombatReflectionNickRegard.h new file mode 100644 index 00000000..e799dd12 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/RoomPK/View/SubViews/YUMIChamberCombatReflectionNickRegard.h @@ -0,0 +1,16 @@ +// +// YMRoomPKRecordNickView.h +// YUMI +// +// Created by YUMI on 2022/3/18. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class ChamberCombatSquadConsumerMatrix; +@interface YUMIChamberCombatReflectionNickRegard : UIView +@property (nonatomic,strong) NSArray *consumerStatement; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/RoomPK/View/SubViews/YUMIChamberCombatReflectionNickRegard.m b/YuMi/Modules/YMRoom/View/RoomPK/View/SubViews/YUMIChamberCombatReflectionNickRegard.m new file mode 100644 index 00000000..60d9735b --- /dev/null +++ b/YuMi/Modules/YMRoom/View/RoomPK/View/SubViews/YUMIChamberCombatReflectionNickRegard.m @@ -0,0 +1,221 @@ +// +// YMRoomPKRecordNickView.m +// YUMI +// +// Created by YUMI on 2022/3/18. +// + +#import "YUMIChamberCombatReflectionNickRegard.h" +#import +#import "ChamberCombatSquadMatrix.h" +#import "NSArray+Safe.h" + +@interface YUMIChamberCombatReflectionNickRegard () +@property (nonatomic,strong) UIStackView *stackView; +@property (nonatomic,strong) UIStackView *contraryHierarchyRegard; +@property (nonatomic,strong) UILabel *thresholdMonicerSequencignation; +@property (nonatomic,strong) UILabel *instantMonicerSequencignation; +@property (nonatomic,strong) UIStackView *rectifyHierarchyRegard; +@property (nonatomic,strong) UILabel *tertiusMonicerSequencignation; +@property (nonatomic,strong) UILabel *fourthMonicerSequencignation; +@property (nonatomic,strong) UIImageView *burlywoodIndicateRegard; +@property (nonatomic,strong) NSArray *viewGarment; +@end + +@implementation YUMIChamberCombatReflectionNickRegard + +- (instancetype)initWithFrame:(CGRect)frame +{ + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.layer.masksToBounds = YES; + self.layer.cornerRadius = 8; + [self addSubview:self.stackView]; + [self addSubview:self.burlywoodIndicateRegard]; + [self.stackView addArrangedSubview:self.contraryHierarchyRegard]; + [self.stackView addArrangedSubview:self.rectifyHierarchyRegard]; + + [self.contraryHierarchyRegard addArrangedSubview:self.thresholdMonicerSequencignation]; + [self.contraryHierarchyRegard addArrangedSubview:self.tertiusMonicerSequencignation]; + + [self.rectifyHierarchyRegard addArrangedSubview:self.instantMonicerSequencignation]; + [self.rectifyHierarchyRegard addArrangedSubview:self.fourthMonicerSequencignation]; + + self.viewGarment = @[self.thresholdMonicerSequencignation, self.instantMonicerSequencignation, self.tertiusMonicerSequencignation, self.fourthMonicerSequencignation]; +} + +- (void)initChildLyRestrictions { + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.bottom.mas_equalTo(self.stackView).offset(10); + }]; + + [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self).offset(10); + make.left.right.mas_equalTo(self); + }]; + + [self.thresholdMonicerSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(15); + }]; + + [self.instantMonicerSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(15); + }]; + + [self.tertiusMonicerSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(15); + }]; + + [self.fourthMonicerSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(15); + }]; + + [self.burlywoodIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self); + make.top.mas_equalTo(self).offset(5); + make.bottom.mas_equalTo(self).offset(-5); + make.width.mas_equalTo(1); + }]; +} + +#pragma mark - Getters And Setters +- (void)setConsumerStatement:(NSArray *)consumerStatement { + _consumerStatement = consumerStatement; + if (_consumerStatement.count > 0) { + self.thresholdMonicerSequencignation.hidden = YES; + self.instantMonicerSequencignation.hidden = YES; + self.tertiusMonicerSequencignation.hidden = YES; + self.fourthMonicerSequencignation.hidden = YES; + self.burlywoodIndicateRegard.hidden = YES; + self.contraryHierarchyRegard.hidden = YES; + self.rectifyHierarchyRegard.hidden = YES; + if (_consumerStatement.count == 1) { + self.thresholdMonicerSequencignation.hidden = NO; + self.contraryHierarchyRegard.hidden = NO; + } else if(_consumerStatement.count ==2) { + self.thresholdMonicerSequencignation.hidden = NO; + self.contraryHierarchyRegard.hidden = NO; + self.rectifyHierarchyRegard.hidden = NO; + self.instantMonicerSequencignation.hidden = NO; + self.burlywoodIndicateRegard.hidden = NO; + } else if(_consumerStatement.count == 3) { + self.thresholdMonicerSequencignation.hidden = NO; + self.contraryHierarchyRegard.hidden = NO; + self.rectifyHierarchyRegard.hidden = NO; + self.instantMonicerSequencignation.hidden = NO; + self.tertiusMonicerSequencignation.hidden = NO; + self.burlywoodIndicateRegard.hidden = NO; + } else { + self.thresholdMonicerSequencignation.hidden = NO; + self.instantMonicerSequencignation.hidden = NO; + self.tertiusMonicerSequencignation.hidden = NO; + self.fourthMonicerSequencignation.hidden = NO; + self.burlywoodIndicateRegard.hidden = NO; + self.contraryHierarchyRegard.hidden = NO; + self.rectifyHierarchyRegard.hidden = NO; + self.burlywoodIndicateRegard.hidden = NO; + } + for (int i = 0; i < _consumerStatement.count; i++) { + ChamberCombatSquadConsumerMatrix * userInfo = [_consumerStatement secureGroalTowardsIndictowardsrix1:i]; + UILabel * label = [self.viewGarment secureGroalTowardsIndictowardsrix1:i]; + label.text = userInfo.nick; + } + } +} + +- (UIStackView *)stackView { + if (!_stackView) { + _stackView = [[UIStackView alloc] init]; + _stackView.axis = UILayoutConstraintAxisHorizontal; + _stackView.distribution = UIStackViewDistributionFillEqually; + _stackView.alignment = UIStackViewAlignmentFill; + _stackView.spacing = 2; + } + return _stackView; +} + + +- (UIStackView *)contraryHierarchyRegard { + if (!_contraryHierarchyRegard) { + _contraryHierarchyRegard = [[UIStackView alloc] init]; + _contraryHierarchyRegard.axis = UILayoutConstraintAxisVertical; + _contraryHierarchyRegard.distribution = UIStackViewDistributionFill; + _contraryHierarchyRegard.alignment = UIStackViewAlignmentFill; + _contraryHierarchyRegard.spacing = 2; + } + return _contraryHierarchyRegard; +} + +- (UILabel *)thresholdMonicerSequencignation { + if (!_thresholdMonicerSequencignation) { + _thresholdMonicerSequencignation = [[UILabel alloc] init]; + _thresholdMonicerSequencignation.font = [UIFont systemFontOfSize:12]; + _thresholdMonicerSequencignation.textColor = [UIColor whiteColor]; + _thresholdMonicerSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _thresholdMonicerSequencignation; +} + +- (UILabel *)instantMonicerSequencignation { + if (!_instantMonicerSequencignation) { + _instantMonicerSequencignation = [[UILabel alloc] init]; + _instantMonicerSequencignation.font = [UIFont systemFontOfSize:12]; + _instantMonicerSequencignation.textColor = [UIColor whiteColor]; + _instantMonicerSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _instantMonicerSequencignation; +} + + +- (UIStackView *)rectifyHierarchyRegard { + if (!_rectifyHierarchyRegard) { + _rectifyHierarchyRegard = [[UIStackView alloc] init]; + _rectifyHierarchyRegard.axis = UILayoutConstraintAxisVertical; + _rectifyHierarchyRegard.distribution =UIStackViewDistributionFill; + _rectifyHierarchyRegard.alignment = UIStackViewAlignmentFill; + _rectifyHierarchyRegard.spacing = 2; + } + return _rectifyHierarchyRegard; +} + +- (UILabel *)tertiusMonicerSequencignation { + if (!_tertiusMonicerSequencignation) { + _tertiusMonicerSequencignation = [[UILabel alloc] init]; + _tertiusMonicerSequencignation.font = [UIFont systemFontOfSize:12]; + _tertiusMonicerSequencignation.textColor = [UIColor whiteColor]; + _tertiusMonicerSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _tertiusMonicerSequencignation; +} + +- (UILabel *)fourthMonicerSequencignation { + if (!_fourthMonicerSequencignation) { + _fourthMonicerSequencignation = [[UILabel alloc] init]; + _fourthMonicerSequencignation.font = [UIFont systemFontOfSize:12]; + _fourthMonicerSequencignation.textColor = [UIColor whiteColor]; + _fourthMonicerSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _fourthMonicerSequencignation; +} + +- (UIImageView *)burlywoodIndicateRegard { + if (!_burlywoodIndicateRegard) { + _burlywoodIndicateRegard = [[UIImageView alloc] init]; + _burlywoodIndicateRegard.userInteractionEnabled = YES; + _burlywoodIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_pk_record_line_background"]; + } + return _burlywoodIndicateRegard; +} + + + + +@end diff --git a/YuMi/Modules/YMRoom/View/RoomPK/View/SubViews/YUMIRomCombatConsequentChampionDesignation.h b/YuMi/Modules/YMRoom/View/RoomPK/View/SubViews/YUMIRomCombatConsequentChampionDesignation.h new file mode 100644 index 00000000..ad21303a --- /dev/null +++ b/YuMi/Modules/YMRoom/View/RoomPK/View/SubViews/YUMIRomCombatConsequentChampionDesignation.h @@ -0,0 +1,18 @@ +// +// YMRomPKResultTitleLabel.h +// YUMI +// +// Created by YUMI on 2022/3/31. +// + +#import +#import "YUMINNNN.h" +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIRomCombatConsequentChampionDesignation : UIView +@property (nonatomic,assign) GroupGenre groupType; +@property (nonatomic,copy) NSString *title; +@property (nonatomic,copy) NSString *content; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/RoomPK/View/SubViews/YUMIRomCombatConsequentChampionDesignation.m b/YuMi/Modules/YMRoom/View/RoomPK/View/SubViews/YUMIRomCombatConsequentChampionDesignation.m new file mode 100644 index 00000000..84885483 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/RoomPK/View/SubViews/YUMIRomCombatConsequentChampionDesignation.m @@ -0,0 +1,89 @@ +// +// YMRomPKResultTitleLabel.m +// YUMI +// +// Created by YUMI on 2022/3/31. +// + +#import "YUMIRomCombatConsequentChampionDesignation.h" +#import +#import "DJDKMIMOMColor.h" + +@interface YUMIRomCombatConsequentChampionDesignation () +@property (nonatomic,strong) UILabel *titleLabel; +@property (nonatomic,strong) UILabel *satisfperformanceSequencignation; +@end + +@implementation YUMIRomCombatConsequentChampionDesignation + +- (instancetype)initWithFrame:(CGRect)frame +{ + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.titleLabel]; + [self addSubview:self.satisfperformanceSequencignation]; +} + +- (void)initChildLyRestrictions { + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self); + make.centerY.mas_equalTo(self); + }]; + + [self.satisfperformanceSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.titleLabel.mas_right).offset(10); + make.centerY.mas_equalTo(self.titleLabel); + }]; +} + +#pragma mark - Getters And Setters +- (void)setGroupType:(GroupGenre)groupType { + _groupType = groupType; + if (_groupType == GroupGenre_Red) { + self.satisfperformanceSequencignation.textColor = UIColorFromRGB(0xfd4d0e); + } else if(_groupType == GroupGenre_Blue) { + self.satisfperformanceSequencignation.textColor = UIColorFromRGB(0x59b9fb); + } +} + +- (void)setContent:(NSString *)content { + _content = content; + if (_content) { + self.satisfperformanceSequencignation.text = _content; + } +} + +- (void)setTitle:(NSString *)title { + _title = title; + if (_title) { + self.titleLabel.text = _title; + } +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.font = [UIFont systemFontOfSize:14]; + _titleLabel.textColor = [UIColor whiteColor]; + } + return _titleLabel; +} + +- (UILabel *)satisfperformanceSequencignation { + if (!_satisfperformanceSequencignation) { + _satisfperformanceSequencignation = [[UILabel alloc] init]; + _satisfperformanceSequencignation.font = [UIFont systemFontOfSize:14]; + } + return _satisfperformanceSequencignation; +} + + +@end diff --git a/YuMi/Modules/YMRoom/View/RoomPK/View/YUMIChamberCombatConsequentRegard.h b/YuMi/Modules/YMRoom/View/RoomPK/View/YUMIChamberCombatConsequentRegard.h new file mode 100644 index 00000000..48495f52 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/RoomPK/View/YUMIChamberCombatConsequentRegard.h @@ -0,0 +1,16 @@ +// +// YMRoomPKResultView.h +// YUMI +// +// Created by YUMI on 2022/3/31. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class ChamberCombatAbstractMatrix; +@interface YUMIChamberCombatConsequentRegard : UIView +@property (nonatomic,strong) ChamberCombatAbstractMatrix *chamberCombatConsequentAbstractMatrix; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/RoomPK/View/YUMIChamberCombatConsequentRegard.m b/YuMi/Modules/YMRoom/View/RoomPK/View/YUMIChamberCombatConsequentRegard.m new file mode 100644 index 00000000..3a971874 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/RoomPK/View/YUMIChamberCombatConsequentRegard.m @@ -0,0 +1,763 @@ +// +// YMRoomPKResultView.m +// YUMI +// +// Created by YUMI on 2022/3/31. +// + +#import "YUMIChamberCombatConsequentRegard.h" +#import +#import "YUMIMacroUitls.h" +#import "NetIndicateRegard.h" +#import "AccountAbstractStorage.h" +#import "DJDKMIMOMColor.h" +#import "NSArray+Safe.h" +#import "ChamberCombatAbstractMatrix.h" +#import "YUMIRomCombatConsequentChampionDesignation.h" + +#define kRedTeamColor UIColorFromRGB(0xfd4d0e) +#define kBlueTeamColor UIColorFromRGB(0x59b9fb) + + +@interface YUMIChamberCombatConsequentRegard () +@property (nonatomic,strong) UIImageView *apexIndicateRegard; +@property (nonatomic,strong) UIImageView *extremeIndicateRegard; +@property (nonatomic,strong) UIImageView *satisfperformanceIndicateRegard; +@property (nonatomic,strong) NetIndicateRegard *thresholdConsumerRegard; +@property (nonatomic,strong) NetIndicateRegard *instantConsumerRegard; +@property (nonatomic,strong) NetIndicateRegard *tertiusConsumerRegard; +@property (nonatomic,strong) NetIndicateRegard *fourthConsumerRegard; +@property (nonatomic,strong) NetIndicateRegard *fifthConsumerRegard; +@property (nonatomic,strong) UIImageView *mvpIndicateRegard; +@property (nonatomic,strong) UIStackView *stackView; +@property (nonatomic,strong) UIView * combateConsumerContaierRegard; +@property (nonatomic,strong) UILabel *combateConsumerSequencignation; +@property (nonatomic,strong) UILabel *failSequencSequencignation; +@property (nonatomic,strong) YUMIRomCombatConsequentChampionDesignation *fightEarnSequencigntion; +@property (nonatomic,strong) YUMIRomCombatConsequentChampionDesignation *guardFeatureSequencigntion; +@property (nonatomic,strong) YUMIRomCombatConsequentChampionDesignation *guardEarnSequencigntion; +@property (nonatomic,strong) UIButton *consequentBtuton; +@property (nonatomic,strong) UIButton *examineBtuton; +@property (nonatomic,strong) NSArray *consumerRegardGarment; +@property (nonatomic,assign) BOOL isChecSeparate; +@end + +@implementation YUMIChamberCombatConsequentRegard + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.satisfperformanceIndicateRegard]; + [self addSubview:self.apexIndicateRegard]; + [self addSubview:self.extremeIndicateRegard]; + + [self.satisfperformanceIndicateRegard addSubview:self.stackView]; + [self.satisfperformanceIndicateRegard addSubview:self.consequentBtuton]; + [self.satisfperformanceIndicateRegard addSubview:self.failSequencSequencignation]; + [self.satisfperformanceIndicateRegard addSubview:self.examineBtuton]; + + [self.stackView addArrangedSubview:self.combateConsumerContaierRegard]; + [self.stackView addArrangedSubview:self.fightEarnSequencigntion]; + [self.stackView addArrangedSubview:self.guardFeatureSequencigntion]; + [self.stackView addArrangedSubview:self.guardEarnSequencigntion]; + + [self.combateConsumerContaierRegard addSubview:self.combateConsumerSequencignation]; + [self.combateConsumerContaierRegard addSubview:self.thresholdConsumerRegard]; + [self.combateConsumerContaierRegard addSubview:self.instantConsumerRegard]; + [self.combateConsumerContaierRegard addSubview:self.tertiusConsumerRegard]; + [self.combateConsumerContaierRegard addSubview:self.fourthConsumerRegard]; + [self.combateConsumerContaierRegard addSubview:self.fifthConsumerRegard]; + [self.combateConsumerContaierRegard addSubview:self.mvpIndicateRegard]; + self.consumerRegardGarment = @[self.thresholdConsumerRegard, self.instantConsumerRegard, self.tertiusConsumerRegard, self.fourthConsumerRegard, self.fifthConsumerRegard]; +} + +- (void)initChildLyRestrictions { + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(KScreenWidth); + make.bottom.mas_equalTo(self.extremeIndicateRegard.mas_bottom); + }]; + + [self.apexIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.top.mas_equalTo(self); + make.width.mas_equalTo(385); + make.height.mas_equalTo(243); + }]; + + [self.satisfperformanceIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.apexIndicateRegard).offset(97); + make.left.right.mas_equalTo(self); + make.height.mas_equalTo(170); + }]; + + [self.extremeIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.satisfperformanceIndicateRegard.mas_bottom).offset(-6); + make.centerX.mas_equalTo(self); + make.width.mas_equalTo(375); + make.height.mas_equalTo(16); + }]; + + [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.satisfperformanceIndicateRegard).offset(48); + make.left.mas_equalTo(self.satisfperformanceIndicateRegard).offset(20); + make.right.mas_equalTo(self.satisfperformanceIndicateRegard); + }]; + + [self.combateConsumerContaierRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(35); + }]; + + [self.fightEarnSequencigntion mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(15); + }]; + + [self.guardEarnSequencigntion mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(15); + }]; + + [self.guardFeatureSequencigntion mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(15); + }]; + + [self.consequentBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self); + make.bottom.mas_equalTo(self.failSequencSequencignation.mas_top).offset(-10); + make.width.mas_equalTo(230); + make.height.mas_equalTo(30); + }]; + + [self.failSequencSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.bottom.mas_equalTo(self.examineBtuton.mas_top).offset(-10); + make.left.right.mas_equalTo(self.satisfperformanceIndicateRegard); + }]; + + [self.examineBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(16); + make.left.right.mas_equalTo(self.satisfperformanceIndicateRegard); + make.bottom.mas_equalTo(self.satisfperformanceIndicateRegard.mas_bottom).offset(-15); + }]; + + [self.combateConsumerSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.centerY.mas_equalTo(self.combateConsumerContaierRegard); + }]; + + [self.thresholdConsumerRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(35, 35)); + make.left.mas_equalTo(self.combateConsumerSequencignation.mas_right).offset(10); + make.centerY.mas_equalTo(self.combateConsumerContaierRegard); + }]; + + [self.instantConsumerRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.centerY.mas_equalTo(self.thresholdConsumerRegard); + make.left.mas_equalTo(self.thresholdConsumerRegard.mas_right).offset(5); + }]; + + [self.tertiusConsumerRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.centerY.mas_equalTo(self.thresholdConsumerRegard); + make.left.mas_equalTo(self.instantConsumerRegard.mas_right).offset(5); + }]; + + [self.fourthConsumerRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.centerY.mas_equalTo(self.thresholdConsumerRegard); + make.left.mas_equalTo(self.tertiusConsumerRegard.mas_right).offset(5); + }]; + + [self.fifthConsumerRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.centerY.mas_equalTo(self.thresholdConsumerRegard); + make.left.mas_equalTo(self.fourthConsumerRegard.mas_right).offset(5); + }]; + + [self.mvpIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.thresholdConsumerRegard); + make.top.mas_equalTo(self.thresholdConsumerRegard.mas_top).offset(-3); + make.width.mas_equalTo(35); + make.height.mas_equalTo(17); + }]; +} + +- (void)chamberSquadComponentConsumerIntelligenceportrait:(NSArray *)members mvpUserId:(NSInteger)mvpUserId{ + self.mvpIndicateRegard.hidden = YES; + for (int i = 0; i< self.consumerRegardGarment.count; i++) { + NetIndicateRegard * imageView = [self.consumerRegardGarment secureGroalTowardsIndictowardsrix1:i]; + if (i < members.count) { + ChamberCombatSquadConsumerMatrix * userInfo = [members secureGroalTowardsIndictowardsrix1:i]; + imageView.imageUrl = userInfo.avatar; + imageView.hidden = NO; + if (mvpUserId == userInfo.uid.integerValue) { + self.mvpIndicateRegard.hidden = NO; + [self.mvpIndicateRegard mas_remakeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(imageView); + make.top.mas_equalTo(self.thresholdConsumerRegard.mas_top).offset(3); + make.width.mas_equalTo(35); + make.height.mas_equalTo(17); + }]; + } + } else { + imageView.hidden = YES; + } + } +} + +#pragma mark - Event Response +- (void)examineBtutonPerformance:(UIButton *)sender { + self.isChecSeparate = !self.isChecSeparate; + if (self.chamberCombatConsequentAbstractMatrix) { + ChamberCombatSquadMatrix * redTeam; + ChamberCombatSquadMatrix * blueTeam; + GroupGenre myType = GroupGenre_default; + for (ChamberCombatSquadMatrix * teamInfo in _chamberCombatConsequentAbstractMatrix.teams) { + if (myType == GroupGenre_default) { + for (ChamberCombatSquadConsumerMatrix * userInfo in teamInfo.teamMembers) { + if (userInfo.uid.integerValue == [AccountAbstractStorage instance].acquireCid.integerValue) { + myType = teamInfo.team; + break; + } + } + } + + if (teamInfo.team == GroupGenre_Red) { + redTeam = teamInfo; + } else if(teamInfo.team == GroupGenre_Blue) { + blueTeam = teamInfo; + } + } + if (myType == GroupGenre_Red) { + [self shankMieyInDeficitCombatSquad:redTeam bluePKTeam:blueTeam]; + } else if(myType == GroupGenre_Blue) { + [self shankMieyInBlueCombatSquad:redTeam bluePKTeam:blueTeam]; + } else { + [self shankMieyInAudienceCombatSquad:redTeam bluePKTeam:blueTeam]; + } + } +} + +#pragma mark - Getters And Setters +- (void)setChamberCombatConsequentAbstractMatrix:(ChamberCombatAbstractMatrix *)chamberCombatConsequentAbstractMatrix { + _chamberCombatConsequentAbstractMatrix = chamberCombatConsequentAbstractMatrix; + if (_chamberCombatConsequentAbstractMatrix) { + ChamberCombatSquadMatrix * redTeam; + ChamberCombatSquadMatrix * blueTeam; + GroupGenre myType = GroupGenre_default; + for (ChamberCombatSquadMatrix * teamInfo in _chamberCombatConsequentAbstractMatrix.teams) { + if (teamInfo.team == GroupGenre_Red) { + redTeam = teamInfo; + } else if(teamInfo.team == GroupGenre_Blue) { + blueTeam = teamInfo; + } + + if (myType == GroupGenre_default) { + for (ChamberCombatSquadConsumerMatrix * userInfo in teamInfo.teamMembers) { + if (userInfo.uid.integerValue == [AccountAbstractStorage instance].acquireCid.integerValue) { + myType = teamInfo.team; + break; + } + } + } + } + self.failSequencSequencignation.hidden = YES; + if (myType == GroupGenre_Red) { + [self shankMieyInDeficitCombatSquad:redTeam bluePKTeam:blueTeam]; + } else if(myType == GroupGenre_Blue) { + [self shankMieyInBlueCombatSquad:redTeam bluePKTeam:blueTeam]; + } else { + [self shankMieyInAudienceCombatSquad:redTeam bluePKTeam:blueTeam]; + } + } +} +- (void)shankMieyInDeficitCombatSquad:(ChamberCombatSquadMatrix *)redPKTeam bluePKTeam:(ChamberCombatSquadMatrix *)bluePKTeam { + if (self.isChecSeparate) { + + if (self.chamberCombatConsequentAbstractMatrix.result == ChamberCombatResultGenre_Draw) { + + self.extremeIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_pk_result_bottom_loser_background"]; + self.apexIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_pk_result_top_draw_background"]; + } else if(self.chamberCombatConsequentAbstractMatrix.result == ChamberCombatResultGenre_Blue) { + + self.apexIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_pk_result_top_win_background"]; + self.extremeIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_pk_result_bottom_win_background"]; + } else { + self.apexIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_pk_result_top_loser_background"]; + self.extremeIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_pk_result_bottom_loser_background"]; + } + + [self.consequentBtuton setTitle:@"· 蓝队战绩 ·" forState:UIControlStateNormal]; + [self.consequentBtuton setTitleColor:kBlueTeamColor forState:UIControlStateNormal]; + [self.examineBtuton setTitle:@"查看我的战绩>" forState:UIControlStateNormal]; + [self.examineBtuton setTitleColor:kRedTeamColor forState:UIControlStateNormal]; + self.fightEarnSequencigntion.groupType = GroupGenre_Blue; + self.guardEarnSequencigntion.groupType = GroupGenre_Blue; + self.guardFeatureSequencigntion.groupType = GroupGenre_Blue; + self.fightEarnSequencigntion.content = [NSString stringWithFormat:@"%lld", bluePKTeam.score]; + if (bluePKTeam.protector.nick.length) { + self.guardFeatureSequencigntion.content = [NSString stringWithFormat:@"%@", bluePKTeam.protector.nick]; + } else { + self.guardFeatureSequencigntion.content = YMLocalizedString(@"YUMI_Room_PK_Result_View_2"); + } + self.guardEarnSequencigntion.content = [NSString stringWithFormat:@"%lld", bluePKTeam.protecScore]; + [self chamberSquadComponentConsumerIntelligenceportrait:bluePKTeam.teamMembers mvpUserId:bluePKTeam.mvp]; + CGFloat bgHeight = 224; + if (self.chamberCombatConsequentAbstractMatrix.result == ChamberCombatResultGenre_Draw || self.chamberCombatConsequentAbstractMatrix.voteMode == ChamberCombatVoteModeGenre_NumberPerson) { + self.guardEarnSequencigntion.hidden = YES; + self.guardFeatureSequencigntion.hidden = YES; + } else { + self.guardEarnSequencigntion.hidden = NO; + self.guardFeatureSequencigntion.hidden = NO; + bgHeight = 264; + } + [self.satisfperformanceIndicateRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(bgHeight); + }]; + + return; + } + + if (self.chamberCombatConsequentAbstractMatrix.result == ChamberCombatResultGenre_Red) { + self.apexIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_pk_result_top_win_background"]; + self.extremeIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_pk_result_bottom_win_background"]; + } else if (self.chamberCombatConsequentAbstractMatrix.result == ChamberCombatResultGenre_Blue) { + self.apexIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_pk_result_top_loser_background"]; + self.extremeIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_pk_result_bottom_loser_background"]; + self.failSequencSequencignation.hidden = NO; + } else { + self.apexIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_pk_result_top_draw_background"]; + self.extremeIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_pk_result_bottom_loser_background"]; + } + [self.consequentBtuton setTitle:@"· 红队战绩 ·" forState:UIControlStateNormal]; + [self.examineBtuton setTitle:@"查看对方战绩>" forState:UIControlStateNormal]; + [self.consequentBtuton setTitleColor:kRedTeamColor forState:UIControlStateNormal]; + [self.examineBtuton setTitleColor:kBlueTeamColor forState:UIControlStateNormal]; + self.fightEarnSequencigntion.groupType = GroupGenre_Red; + self.guardEarnSequencigntion.groupType = GroupGenre_Red; + self.guardFeatureSequencigntion.groupType = GroupGenre_Red; + self.fightEarnSequencigntion.content = [NSString stringWithFormat:@"%lld", redPKTeam.score]; + if (redPKTeam.protector.nick.length) { + self.guardFeatureSequencigntion.content = [NSString stringWithFormat:@"%@", redPKTeam.protector.nick]; + } else { + self.guardFeatureSequencigntion.content = YMLocalizedString(@"YUMI_Room_PK_Result_View_5"); + } + self.guardEarnSequencigntion.content = [NSString stringWithFormat:@"%lld", redPKTeam.protecScore]; + [self chamberSquadComponentConsumerIntelligenceportrait:redPKTeam.teamMembers mvpUserId:redPKTeam.mvp]; + + CGFloat bgHeight = 224; + if (self.chamberCombatConsequentAbstractMatrix.result == ChamberCombatResultGenre_Draw || self.chamberCombatConsequentAbstractMatrix.voteMode == ChamberCombatVoteModeGenre_NumberPerson) { + self.guardEarnSequencigntion.hidden = YES; + self.guardFeatureSequencigntion.hidden = YES; + } else { + self.guardEarnSequencigntion.hidden = NO; + self.guardFeatureSequencigntion.hidden = NO; + bgHeight = 264; + } + [self.satisfperformanceIndicateRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(bgHeight); + }]; +} + +- (void)shankMieyInBlueCombatSquad:(ChamberCombatSquadMatrix *)redPKTeam bluePKTeam:(ChamberCombatSquadMatrix *)bluePKTeam { + if (self.isChecSeparate) { + if (self.chamberCombatConsequentAbstractMatrix.result == ChamberCombatResultGenre_Draw) { + + self.extremeIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_pk_result_bottom_loser_background"]; + self.apexIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_pk_result_top_draw_background"]; + } else if(self.chamberCombatConsequentAbstractMatrix.result == ChamberCombatResultGenre_Blue) { + + self.apexIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_pk_result_top_loser_background"]; + self.extremeIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_pk_result_bottom_loser_background"]; + } else { + self.apexIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_pk_result_top_win_background"]; + self.extremeIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_pk_result_bottom_win_background"]; + } + + [self.consequentBtuton setTitle:@"· 红队战绩 ·" forState:UIControlStateNormal]; + [self.consequentBtuton setTitleColor:kRedTeamColor forState:UIControlStateNormal]; + [self.examineBtuton setTitle:@"查看我的战绩>" forState:UIControlStateNormal]; + [self.examineBtuton setTitleColor:kBlueTeamColor forState:UIControlStateNormal]; + self.fightEarnSequencigntion.groupType = GroupGenre_Red; + self.guardEarnSequencigntion.groupType = GroupGenre_Red; + self.guardFeatureSequencigntion.groupType = GroupGenre_Red; + self.fightEarnSequencigntion.content = [NSString stringWithFormat:@"%lld", redPKTeam.score]; + if (redPKTeam.protector.nick.length) { + self.guardFeatureSequencigntion.content = [NSString stringWithFormat:@"%@", redPKTeam.protector.nick]; + } else { + self.guardFeatureSequencigntion.content = YMLocalizedString(@"YUMI_Room_PK_Result_View_8"); + } + self.guardEarnSequencigntion.content = [NSString stringWithFormat:@"%lld", redPKTeam.protecScore]; + [self chamberSquadComponentConsumerIntelligenceportrait:redPKTeam.teamMembers mvpUserId:redPKTeam.mvp]; + CGFloat bgHeight = 224; + if (self.chamberCombatConsequentAbstractMatrix.result == ChamberCombatResultGenre_Draw || self.chamberCombatConsequentAbstractMatrix.voteMode == ChamberCombatVoteModeGenre_NumberPerson) { + self.guardEarnSequencigntion.hidden = YES; + self.guardFeatureSequencigntion.hidden = YES; + } else { + self.guardEarnSequencigntion.hidden = NO; + self.guardFeatureSequencigntion.hidden = NO; + bgHeight = 264; + } + [self.satisfperformanceIndicateRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(bgHeight); + }]; + return; + } + + if (self.chamberCombatConsequentAbstractMatrix.result == ChamberCombatResultGenre_Blue) { + self.apexIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_pk_result_top_win_background"]; + self.extremeIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_pk_result_bottom_win_background"]; + } else if (self.chamberCombatConsequentAbstractMatrix.result == ChamberCombatResultGenre_Red) { + self.failSequencSequencignation.hidden = NO; + self.apexIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_pk_result_top_loser_background"]; + self.extremeIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_pk_result_bottom_loser_background"]; + } else { + self.extremeIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_pk_result_bottom_loser_background"]; + self.apexIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_pk_result_top_draw_background"]; + } + [self.consequentBtuton setTitle:@"· 蓝队战绩 ·" forState:UIControlStateNormal]; + [self.consequentBtuton setTitleColor:kBlueTeamColor forState:UIControlStateNormal]; + [self.examineBtuton setTitle:@"查看红队战绩>" forState:UIControlStateNormal]; + [self.examineBtuton setTitleColor:kRedTeamColor forState:UIControlStateNormal]; + + self.fightEarnSequencigntion.groupType = GroupGenre_Blue; + self.guardEarnSequencigntion.groupType = GroupGenre_Blue; + self.guardFeatureSequencigntion.groupType = GroupGenre_Blue; + self.fightEarnSequencigntion.content = [NSString stringWithFormat:@"%lld", bluePKTeam.score]; + if (bluePKTeam.protector.nick.length) { + self.guardFeatureSequencigntion.content = [NSString stringWithFormat:@"%@", bluePKTeam.protector.nick]; + } else { + self.guardFeatureSequencigntion.content = YMLocalizedString(@"YUMI_Room_PK_Result_View_11"); + } + self.guardEarnSequencigntion.content = [NSString stringWithFormat:@"%lld", bluePKTeam.protecScore]; + [self chamberSquadComponentConsumerIntelligenceportrait:bluePKTeam.teamMembers mvpUserId:bluePKTeam.mvp]; + CGFloat bgHeight = 204; + if (self.chamberCombatConsequentAbstractMatrix.result == ChamberCombatResultGenre_Draw || self.chamberCombatConsequentAbstractMatrix.voteMode == ChamberCombatVoteModeGenre_NumberPerson) { + self.guardEarnSequencigntion.hidden = YES; + self.guardFeatureSequencigntion.hidden = YES; + } else { + self.guardEarnSequencigntion.hidden = NO; + self.guardFeatureSequencigntion.hidden = NO; + bgHeight = 264; + } + [self.satisfperformanceIndicateRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(bgHeight); + }]; +} + +- (void)shankMieyInAudienceCombatSquad:(ChamberCombatSquadMatrix *)redPKTeam bluePKTeam:(ChamberCombatSquadMatrix *)bluePKTeam { + + if (self.isChecSeparate) { + self.apexIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_pk_result_top_loser_background"]; + self.extremeIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_pk_result_bottom_loser_background"]; + if (self.chamberCombatConsequentAbstractMatrix.result == ChamberCombatResultGenre_Blue) { + [self.consequentBtuton setTitle:@"· 红队战绩 ·" forState:UIControlStateNormal]; + [self.consequentBtuton setTitleColor:kRedTeamColor forState:UIControlStateNormal]; + [self.examineBtuton setTitle:@"查看蓝队战绩>" forState:UIControlStateNormal]; + [self.examineBtuton setTitleColor:kBlueTeamColor forState:UIControlStateNormal]; + self.fightEarnSequencigntion.groupType = GroupGenre_Red; + self.guardEarnSequencigntion.groupType = GroupGenre_Red; + self.guardFeatureSequencigntion.groupType = GroupGenre_Red; + self.fightEarnSequencigntion.content = [NSString stringWithFormat:@"%lld", redPKTeam.score]; + if (redPKTeam.protector.nick.length) { + self.guardFeatureSequencigntion.content = [NSString stringWithFormat:@"%@", redPKTeam.protector.nick]; + } else { + self.guardFeatureSequencigntion.content = YMLocalizedString(@"YUMI_Room_PK_Result_View_14"); + } + self.guardEarnSequencigntion.content = [NSString stringWithFormat:@"%lld", redPKTeam.protecScore]; + } else { + [self.consequentBtuton setTitle:@"· 蓝队战绩 ·" forState:UIControlStateNormal]; + [self.consequentBtuton setTitleColor:kBlueTeamColor forState:UIControlStateNormal]; + [self.examineBtuton setTitle:@"查看红队战绩>" forState:UIControlStateNormal]; + [self.examineBtuton setTitleColor:kRedTeamColor forState:UIControlStateNormal]; + self.fightEarnSequencigntion.groupType = GroupGenre_Blue; + self.guardEarnSequencigntion.groupType = GroupGenre_Blue; + self.guardFeatureSequencigntion.groupType = GroupGenre_Blue; + self.fightEarnSequencigntion.content = [NSString stringWithFormat:@"%lld", bluePKTeam.score]; + if (bluePKTeam.protector.nick.length) { + self.guardFeatureSequencigntion.content = [NSString stringWithFormat:@"%@", bluePKTeam.protector.nick]; + } else { + self.guardFeatureSequencigntion.content = YMLocalizedString(@"YUMI_Room_PK_Result_View_17"); + } + self.guardEarnSequencigntion.content = [NSString stringWithFormat:@"%lld", bluePKTeam.protecScore]; + } + CGFloat bgHeight = 204; + if (self.chamberCombatConsequentAbstractMatrix.voteMode == ChamberCombatVoteModeGenre_GiftValue) { + self.guardEarnSequencigntion.hidden = NO; + self.guardFeatureSequencigntion.hidden = NO; + bgHeight = 264; + } else { + self.guardEarnSequencigntion.hidden = YES; + self.guardFeatureSequencigntion.hidden = YES; + bgHeight = 204; + } + + [self chamberSquadComponentConsumerIntelligenceportrait:bluePKTeam.teamMembers mvpUserId:bluePKTeam.mvp]; + [self.satisfperformanceIndicateRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(bgHeight); + }]; + return; + } + + + if (self.chamberCombatConsequentAbstractMatrix.result == ChamberCombatResultGenre_Blue) { + self.apexIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_pk_result_top_win_background"]; + self.extremeIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_pk_result_bottom_win_background"]; + [self.consequentBtuton setTitle:@"· 蓝队胜利 ·" forState:UIControlStateNormal]; + [self.consequentBtuton setTitleColor:kBlueTeamColor forState:UIControlStateNormal]; + [self.examineBtuton setTitle:@"查看红队战绩>" forState:UIControlStateNormal]; + [self.examineBtuton setTitleColor:kRedTeamColor forState:UIControlStateNormal]; + + self.fightEarnSequencigntion.groupType = GroupGenre_Blue; + self.guardEarnSequencigntion.groupType = GroupGenre_Blue; + self.guardFeatureSequencigntion.groupType = GroupGenre_Blue; + self.fightEarnSequencigntion.content = [NSString stringWithFormat:@"%lld", bluePKTeam.score]; + if (bluePKTeam.protector.nick.length) { + self.guardFeatureSequencigntion.content = [NSString stringWithFormat:@"%@", bluePKTeam.protector.nick]; + } else { + self.guardFeatureSequencigntion.content = YMLocalizedString(@"YUMI_Room_PK_Result_View_20"); + } + self.guardEarnSequencigntion.content = [NSString stringWithFormat:@"%lld", bluePKTeam.protecScore]; + [self chamberSquadComponentConsumerIntelligenceportrait:bluePKTeam.teamMembers mvpUserId:bluePKTeam.mvp]; + } else if (self.chamberCombatConsequentAbstractMatrix.result == ChamberCombatResultGenre_Red) { + self.apexIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_pk_result_top_win_background"]; + self.extremeIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_pk_result_bottom_win_background"]; + [self.consequentBtuton setTitle:@"· 红队胜利 ·" forState:UIControlStateNormal]; + [self.consequentBtuton setTitleColor:kRedTeamColor forState:UIControlStateNormal]; + [self.examineBtuton setTitle:@"查看蓝队战绩>" forState:UIControlStateNormal]; + [self.examineBtuton setTitleColor:kBlueTeamColor forState:UIControlStateNormal]; + + self.fightEarnSequencigntion.groupType = GroupGenre_Red; + self.guardEarnSequencigntion.groupType = GroupGenre_Red; + self.guardFeatureSequencigntion.groupType = GroupGenre_Red; + self.fightEarnSequencigntion.content = [NSString stringWithFormat:@"%lld", redPKTeam.score]; + if (redPKTeam.protector.nick.length) { + self.guardFeatureSequencigntion.content = [NSString stringWithFormat:@"%@", redPKTeam.protector.nick]; + } else { + self.guardFeatureSequencigntion.content = YMLocalizedString(@"YUMI_Room_PK_Result_View_23"); + } + self.guardEarnSequencigntion.content = [NSString stringWithFormat:@"%lld", redPKTeam.protecScore]; + [self chamberSquadComponentConsumerIntelligenceportrait:redPKTeam.teamMembers mvpUserId:redPKTeam.mvp]; + } else { + self.extremeIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_pk_result_bottom_loser_background"]; + self.apexIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_pk_result_top_draw_background"]; + [self.consequentBtuton setTitle:@"· 势均力敌 ·" forState:UIControlStateNormal]; + [self.consequentBtuton setTitleColor:kRedTeamColor forState:UIControlStateNormal]; + self.examineBtuton.hidden = YES; + self.fightEarnSequencigntion.groupType = GroupGenre_Red; + self.combateConsumerContaierRegard.hidden = YES; + self.fightEarnSequencigntion.title = @"本局平局 战斗值:"; + self.fightEarnSequencigntion.content = [NSString stringWithFormat:@"%lld", redPKTeam.score]; + [self chamberSquadComponentConsumerIntelligenceportrait:redPKTeam.teamMembers mvpUserId:redPKTeam.mvp]; + } + + CGFloat bgHeight = 200; + if (self.chamberCombatConsequentAbstractMatrix.result == ChamberCombatResultGenre_Draw || self.chamberCombatConsequentAbstractMatrix.voteMode == ChamberCombatVoteModeGenre_NumberPerson) { + self.guardEarnSequencigntion.hidden = YES; + self.guardFeatureSequencigntion.hidden = YES; + } else { + self.guardEarnSequencigntion.hidden = NO; + self.guardFeatureSequencigntion.hidden = NO; + bgHeight = 264; + } + [self.satisfperformanceIndicateRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(bgHeight); + }]; +} + +- (UIImageView *)apexIndicateRegard { + if (!_apexIndicateRegard) { + _apexIndicateRegard = [[UIImageView alloc] init]; + _apexIndicateRegard.userInteractionEnabled = YES; + } + return _apexIndicateRegard; +} + +- (UIImageView *)satisfperformanceIndicateRegard { + if (!_satisfperformanceIndicateRegard) { + _satisfperformanceIndicateRegard = [[UIImageView alloc] init]; + _satisfperformanceIndicateRegard.userInteractionEnabled = YES; + _satisfperformanceIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_pk_result_matter_background"]; + } + return _satisfperformanceIndicateRegard; +} + +- (UIImageView *)extremeIndicateRegard { + if (!_extremeIndicateRegard) { + _extremeIndicateRegard = [[UIImageView alloc] init]; + _extremeIndicateRegard.userInteractionEnabled = YES; + } + return _extremeIndicateRegard; +} + +- (UIStackView *)stackView { + if (!_stackView) { + _stackView = [[UIStackView alloc] init]; + _stackView.axis = UILayoutConstraintAxisVertical; + _stackView.distribution = UIStackViewDistributionFill; + _stackView.alignment = UIStackViewAlignmentFill; + _stackView.spacing = 10; + } + return _stackView; +} + +- (UIView *)combateConsumerContaierRegard { + if (!_combateConsumerContaierRegard) { + _combateConsumerContaierRegard = [[UIView alloc] init]; + _combateConsumerContaierRegard.backgroundColor = [UIColor clearColor]; + } + return _combateConsumerContaierRegard; +} + +- (UILabel *)combateConsumerSequencignation { + if (!_combateConsumerSequencignation) { + _combateConsumerSequencignation = [[UILabel alloc] init]; + _combateConsumerSequencignation.font = [UIFont systemFontOfSize:14]; + _combateConsumerSequencignation.textColor = [UIColor whiteColor]; + _combateConsumerSequencignation.text = @"PK选手:"; + } + return _combateConsumerSequencignation; +} + +- (YUMIRomCombatConsequentChampionDesignation *)fightEarnSequencigntion { + if (!_fightEarnSequencigntion) { + _fightEarnSequencigntion = [[YUMIRomCombatConsequentChampionDesignation alloc] init]; + _fightEarnSequencigntion.title = @"战斗值:"; + } + return _fightEarnSequencigntion; +} + +- (YUMIRomCombatConsequentChampionDesignation *)guardFeatureSequencigntion { + if (!_guardFeatureSequencigntion) { + _guardFeatureSequencigntion = [[YUMIRomCombatConsequentChampionDesignation alloc] init]; + _guardFeatureSequencigntion.title = @"守护者:"; + } + return _guardFeatureSequencigntion; +} + +- (YUMIRomCombatConsequentChampionDesignation *)guardEarnSequencigntion { + if (!_guardEarnSequencigntion) { + _guardEarnSequencigntion = [[YUMIRomCombatConsequentChampionDesignation alloc] init]; + _guardEarnSequencigntion.title = @"守护值:"; + } + return _guardEarnSequencigntion; +} + +- (UIButton *)consequentBtuton { + if (!_consequentBtuton) { + _consequentBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_consequentBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + _consequentBtuton.titleLabel.font = [UIFont systemFontOfSize:16]; + [_consequentBtuton setBackgroundImage:[UIImage imageNamed:@"yumi_scope_pk_result_loser_result_background"] forState:UIControlStateNormal]; + } + return _consequentBtuton; +} + +- (UIButton *)examineBtuton { + if (!_examineBtuton) { + _examineBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_examineBtuton setTitle:YMLocalizedString(@"YUMI_Room_PK_Result_View_30") forState:UIControlStateNormal]; + [_examineBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + _examineBtuton.titleLabel.font = [UIFont systemFontOfSize:15]; + _examineBtuton.layer.masksToBounds = YES; + _examineBtuton.layer.cornerRadius = 10; + [_examineBtuton addTarget:self action:@selector(examineBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _examineBtuton; +} + +- (NetIndicateRegard *)thresholdConsumerRegard { + if (!_thresholdConsumerRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _thresholdConsumerRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _thresholdConsumerRegard.layer.masksToBounds = YES; + _thresholdConsumerRegard.layer.cornerRadius = 35/2; + _thresholdConsumerRegard.layer.borderWidth = 1; + _thresholdConsumerRegard.userInteractionEnabled = YES; + } + return _thresholdConsumerRegard; +} + +- (NetIndicateRegard *)instantConsumerRegard { + if (!_instantConsumerRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _instantConsumerRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _instantConsumerRegard.layer.masksToBounds = YES; + _instantConsumerRegard.layer.cornerRadius = 35/2; + _instantConsumerRegard.layer.borderWidth = 1; + _instantConsumerRegard.userInteractionEnabled = YES; + } + return _instantConsumerRegard; +} + + +- (NetIndicateRegard *)tertiusConsumerRegard { + if (!_tertiusConsumerRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _tertiusConsumerRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _tertiusConsumerRegard.layer.masksToBounds = YES; + _tertiusConsumerRegard.layer.cornerRadius = 35/2; + _tertiusConsumerRegard.layer.borderWidth = 1; + _tertiusConsumerRegard.userInteractionEnabled = YES; + } + return _tertiusConsumerRegard; +} + +- (NetIndicateRegard *)fourthConsumerRegard { + if (!_fourthConsumerRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _fourthConsumerRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _fourthConsumerRegard.layer.masksToBounds = YES; + _fourthConsumerRegard.layer.cornerRadius = 35/2; + _fourthConsumerRegard.layer.borderWidth = 1; + _fourthConsumerRegard.userInteractionEnabled = YES; + } + return _fourthConsumerRegard; +} + +- (NetIndicateRegard *)fifthConsumerRegard { + if (!_fifthConsumerRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _fifthConsumerRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _fifthConsumerRegard.layer.masksToBounds = YES; + _fifthConsumerRegard.layer.cornerRadius = 35/2; + _fifthConsumerRegard.layer.borderWidth = 1; + _fifthConsumerRegard.userInteractionEnabled = YES; + } + return _fifthConsumerRegard; +} + +- (UIImageView *)mvpIndicateRegard { + if (!_mvpIndicateRegard) { + _mvpIndicateRegard = [[UIImageView alloc] init]; + _mvpIndicateRegard.userInteractionEnabled = YES; + _mvpIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_pk_result_user_mvp"]; + _mvpIndicateRegard.hidden = YES; + } + return _mvpIndicateRegard; +} + +- (UILabel *)failSequencSequencignation { + if (!_failSequencSequencignation) { + _failSequencSequencignation = [[UILabel alloc] init]; + _failSequencSequencignation.font = [UIFont systemFontOfSize:15]; + _failSequencSequencignation.textColor = UIColorFromRGB(0x666666); + _failSequencSequencignation.textAlignment = NSTextAlignmentCenter; + _failSequencSequencignation.text = [NSString stringWithFormat:YMLocalizedString(@"YUMI_Room_PK_Result_View_31"), AppName]; + } + return _failSequencSequencignation; +} + + + +@end diff --git a/YuMi/Modules/YMRoom/View/RoomPK/View/YUMIChamberCombatDisportingRegard.h b/YuMi/Modules/YMRoom/View/RoomPK/View/YUMIChamberCombatDisportingRegard.h new file mode 100644 index 00000000..04e436b5 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/RoomPK/View/YUMIChamberCombatDisportingRegard.h @@ -0,0 +1,29 @@ +// +// YMRoomPKPlayingView.h +// YUMI +// +// Created by YUMI on 2022/3/29. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class ChamberCombatAbstractMatrix, ChamberCombatChooseConsumerMatrix, YUMIChamberCombatDisportingRegard; +@protocol FBCChamberCombatPlayingRegardRepresendtation + +- (void)yUMIChamberCombatDisportingRegard:(YUMIChamberCombatDisportingRegard *)view didClickResetBegin:(UIButton *)sender; + +@end + +@interface YUMIChamberCombatDisportingRegard : UIView +@property (nonatomic,weak) id delegate; +@property (nonatomic,assign) BOOL isManager; +@property (nonatomic,strong) ChamberCombatAbstractMatrix *combatSpecificAbstract; +@property (nonatomic,strong) NSArray *deficitConcludeGarment; +@property (nonatomic,strong) NSArray *disappointedConcludeGarment; +@property (nonatomic,copy) NSString *currentTime; +- (void)prohibitipositionDeficitSquadEarn:(long)deficitSquadEarn disappointedSquadEarn:(long)disappointedSquadEarn; +- (void)prohibititinctChamberCombatTowardsoloudspeaker; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/RoomPK/View/YUMIChamberCombatDisportingRegard.m b/YuMi/Modules/YMRoom/View/RoomPK/View/YUMIChamberCombatDisportingRegard.m new file mode 100644 index 00000000..059bd819 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/RoomPK/View/YUMIChamberCombatDisportingRegard.m @@ -0,0 +1,360 @@ +// +// YMRoomPKPlayingView.m +// YUMI +// +// Created by YUMI on 2022/3/29. +// + +#import "YUMIChamberCombatDisportingRegard.h" +#import +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" +#import "MKJPopup.h" +#import "UIImage+Utils.h" +#import "ChamberCombatSpecificAbstractMatrix.h" +#import "YUMIChamberCombatFasciaboardConsumerRegard.h" + +@interface YUMIChamberCombatDisportingRegard () +@property (nonatomic,strong) UIImageView *encourageIndicateRegard; +@property (nonatomic,strong) UIButton *beginBtuton; +@property (nonatomic,strong) UILabel *intratemporalSequencignation; +@property (nonatomic,strong) YUMIChamberCombatFasciaboardConsumerRegard * deficitSquadRegard; +@property (nonatomic,strong) UILabel *deficitEarnSequencignation; +@property (nonatomic,strong) YUMIChamberCombatFasciaboardConsumerRegard * disappointedSquadRegard; +@property (nonatomic,strong) UILabel *disappointedEarnSequencignation; +@property (nonatomic,strong) UIView * progressView; +@property (nonatomic,strong) UIImageView * deficitGrowthRegard; +@property (nonatomic,strong) UIImageView * disappointedGrowthRegard; +@property (nonatomic,strong) UIImageView *growthBurlywoodRegard; +@property (nonatomic,strong) UIButton *foldBtuton; +@property (nonatomic,strong) UILabel *voteMannerSequencignation; +@property (nonatomic,strong) UILabel *combateSequencignation; +@end + + +@implementation YUMIChamberCombatDisportingRegard +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Public Method +- (void)prohibitipositionDeficitSquadEarn:(long)deficitSquadEarn disappointedSquadEarn:(long)disappointedSquadEarn { + self.deficitEarnSequencignation.text = [NSString stringWithFormat:@"%ld", deficitSquadEarn]; + self.disappointedEarnSequencignation.text = [NSString stringWithFormat:@"%ld", disappointedSquadEarn]; + if (deficitSquadEarn > 0 || disappointedSquadEarn > 0) { + CGFloat redScale = (CGFloat)deficitSquadEarn / (CGFloat)(deficitSquadEarn + disappointedSquadEarn); + if (redScale == 1) { + redScale = 0.99; + } + [self.deficitGrowthRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo((56 + 45) * 2 * redScale); + }]; + } +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.encourageIndicateRegard]; + + [self.encourageIndicateRegard addSubview:self.intratemporalSequencignation]; + [self.encourageIndicateRegard addSubview:self.deficitSquadRegard]; + [self.encourageIndicateRegard addSubview:self.deficitEarnSequencignation]; + [self.encourageIndicateRegard addSubview:self.disappointedSquadRegard]; + [self.encourageIndicateRegard addSubview:self.disappointedEarnSequencignation]; + [self.encourageIndicateRegard addSubview:self.progressView]; + [self.encourageIndicateRegard addSubview:self.beginBtuton]; + [self.encourageIndicateRegard addSubview:self.voteMannerSequencignation]; + [self.encourageIndicateRegard addSubview:self.combateSequencignation]; + [self.encourageIndicateRegard addSubview:self.foldBtuton]; + + [self.progressView addSubview:self.deficitGrowthRegard]; + [self.progressView addSubview:self.disappointedGrowthRegard]; + [self.progressView addSubview:self.growthBurlywoodRegard]; +} + +- (void)initChildLyRestrictions { + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(260); + make.height.mas_equalTo(153); + }]; + + [self.encourageIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self); + }]; + + [self.intratemporalSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.encourageIndicateRegard); + make.top.mas_equalTo(self.encourageIndicateRegard); + }]; + + [self.deficitSquadRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self.encourageIndicateRegard.mas_centerX).offset(-56); + make.top.mas_equalTo(self.encourageIndicateRegard).offset(25); + make.height.mas_equalTo(45); + }]; + + [self.voteMannerSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.encourageIndicateRegard); + make.top.mas_equalTo(self.encourageIndicateRegard).offset(36); + }]; + + [self.combateSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.encourageIndicateRegard); + make.top.mas_equalTo(self.voteMannerSequencignation.mas_bottom).offset(6); + }]; + + [self.disappointedSquadRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.encourageIndicateRegard.mas_centerX).offset(56); + make.centerY.mas_equalTo(self.deficitSquadRegard); + make.height.mas_equalTo(45); + }]; + + [self.progressView mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(56 * 2 + 45 * 2); + make.height.mas_equalTo(7); + make.centerX.mas_equalTo(self.encourageIndicateRegard); + make.top.mas_equalTo(self.deficitSquadRegard.mas_bottom).offset(23); + }]; + + [self.deficitGrowthRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.top.bottom.mas_equalTo(self.progressView); + make.width.mas_equalTo(56 + 45); + }]; + + [self.disappointedGrowthRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.top.bottom.mas_equalTo(self.progressView); + make.left.mas_equalTo(self.deficitGrowthRegard.mas_right); + }]; + + [self.growthBurlywoodRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(2.5, 12.5)); + make.centerX.mas_equalTo(self.disappointedGrowthRegard.mas_left).offset(-1.2); + make.centerY.mas_equalTo(self.progressView); + }]; + + [self.deficitEarnSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.progressView); + make.top.mas_equalTo(self.progressView.mas_bottom).offset(3); + }]; + + [self.disappointedEarnSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.deficitEarnSequencignation); + make.right.mas_equalTo(self.progressView); + }]; + + [self.beginBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(90, 24)); + make.centerX.mas_equalTo(self.encourageIndicateRegard); + make.bottom.mas_equalTo(self.encourageIndicateRegard.mas_bottom).offset(-15); + }]; + + [self.foldBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.bottom.mas_equalTo(0); + make.right.mas_equalTo(0); + make.width.mas_equalTo(30.5); + make.height.mas_equalTo(17.5); + }]; +} + +- (void)prohibititinctChamberCombatTowardsoloudspeaker { + self.deficitEarnSequencignation.text = @"0"; + self.disappointedEarnSequencignation.text = @"0"; + [self.deficitGrowthRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(56 + 45); + }]; +} + +#pragma mark - Event Response +- (void)instituteBtutonPerformance:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIChamberCombatDisportingRegard:didClickResetBegin:)]) { + [self.delegate yUMIChamberCombatDisportingRegard:self didClickResetBegin:sender]; + } +} + +- (void)foldBtutonPerformance:(UIButton *)sender { + [MKJPopup dismiss]; +} + +#pragma mark - Getters And Setters +- (void)setIsManager:(BOOL)isManager { + _isManager = isManager; + self.beginBtuton.hidden = !_isManager; +} + +- (void)setCombatSpecificAbstract:(ChamberCombatAbstractMatrix *)combatSpecificAbstract { + _combatSpecificAbstract = combatSpecificAbstract; + if (_combatSpecificAbstract) { + self.voteMannerSequencignation.text = _combatSpecificAbstract.voteMode == ChamberCombatVoteModeGenre_GiftValue ? @"按礼物价值" : YMLocalizedString(@"YUMI_Room_PK_Playing_View_1"); + } +} + +- (void)setCurrentTime:(NSString *)currentTime { + _currentTime = currentTime; + self.intratemporalSequencignation.text = _currentTime; +} + +- (void)setDeficitConcludeGarment:(NSArray *)deficitConcludeGarment { + _deficitConcludeGarment = deficitConcludeGarment; + self.deficitSquadRegard.consumerGarment = _deficitConcludeGarment; +} + +- (void)setDisappointedConcludeGarment:(NSArray *)disappointedConcludeGarment { + _disappointedConcludeGarment = disappointedConcludeGarment; + self.disappointedSquadRegard.consumerGarment = _disappointedConcludeGarment; +} + +- (UIImageView *)encourageIndicateRegard { + if (!_encourageIndicateRegard) { + _encourageIndicateRegard = [[UIImageView alloc] init]; + _encourageIndicateRegard.userInteractionEnabled = YES; + _encourageIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_pk_playing_background"]; + } + return _encourageIndicateRegard; +} + +- (UILabel *)intratemporalSequencignation { + if (!_intratemporalSequencignation) { + _intratemporalSequencignation = [[UILabel alloc] init]; + _intratemporalSequencignation.font = [UIFont systemFontOfSize:10]; + _intratemporalSequencignation.textColor = UIColorFromRGB(0x602A06); + _intratemporalSequencignation.textAlignment = NSTextAlignmentCenter; + _intratemporalSequencignation.text= @"00:00"; + } + return _intratemporalSequencignation; +} + +- (UILabel *)voteMannerSequencignation { + if (!_voteMannerSequencignation) { + _voteMannerSequencignation = [[UILabel alloc] init]; + _voteMannerSequencignation.font = [UIFont systemFontOfSize:10 weight:UIFontWeightMedium]; + _voteMannerSequencignation.textColor = UIColorFromRGB(0x79674E); + _voteMannerSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _voteMannerSequencignation; +} + +- (UILabel *)combateSequencignation { + if (!_combateSequencignation) { + _combateSequencignation = [[UILabel alloc] init]; + _combateSequencignation.text= @"PK"; + _combateSequencignation.textAlignment = NSTextAlignmentCenter; + _combateSequencignation.font = [UIFont systemFontOfSize:10 weight:UIFontWeightMedium];; + _combateSequencignation.textColor = UIColorFromRGB(0x79674E); + } + return _combateSequencignation; +} + + +- (YUMIChamberCombatFasciaboardConsumerRegard *)deficitSquadRegard { + if (!_deficitSquadRegard) { + _deficitSquadRegard = [[YUMIChamberCombatFasciaboardConsumerRegard alloc] init]; + _deficitSquadRegard.itemAltitude = 45; + _deficitSquadRegard.isExhibitAccelerate = NO; + _deficitSquadRegard.type = GroupGenre_Red; + } + return _deficitSquadRegard; +} + +- (YUMIChamberCombatFasciaboardConsumerRegard *)disappointedSquadRegard { + if (!_disappointedSquadRegard) { + _disappointedSquadRegard = [[YUMIChamberCombatFasciaboardConsumerRegard alloc] init]; + _disappointedSquadRegard.itemAltitude = 45; + _disappointedSquadRegard.isExhibitAccelerate = NO; + _disappointedSquadRegard.type = GroupGenre_Blue; + } + return _disappointedSquadRegard; +} + +- (UIView *)progressView { + if (!_progressView) { + _progressView = [[UIView alloc] init]; + _progressView.backgroundColor = [UIColor clearColor]; + _progressView.layer.masksToBounds = YES; + _progressView.layer.cornerRadius = 3.5; + } + return _progressView; +} + +- (UIImageView *)deficitGrowthRegard { + if (!_deficitGrowthRegard) { + _deficitGrowthRegard = [[UIImageView alloc] init]; + _deficitGrowthRegard.userInteractionEnabled = YES; + _deficitGrowthRegard.image = [UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[UIColorFromRGB(0xFA96AE), UIColorFromRGB(0xE943F8)] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)]; + _deficitGrowthRegard.contentMode = UIViewContentModeScaleAspectFill; + _deficitGrowthRegard.layer.masksToBounds = YES; + } + return _deficitGrowthRegard; +} + +- (UIImageView *)disappointedGrowthRegard { + if (!_disappointedGrowthRegard) { + _disappointedGrowthRegard = [[UIImageView alloc] init]; + _disappointedGrowthRegard.userInteractionEnabled = YES; + _disappointedGrowthRegard.image = [UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[UIColorFromRGB(0x4F7AFF), UIColorFromRGB(0x44C0FE)] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)]; + _disappointedGrowthRegard.contentMode = UIViewContentModeScaleAspectFill; + _disappointedGrowthRegard.layer.masksToBounds = YES; + } + return _disappointedGrowthRegard; +} + +- (UIImageView *)growthBurlywoodRegard { + if (!_growthBurlywoodRegard) { + _growthBurlywoodRegard = [[UIImageView alloc] init]; + _growthBurlywoodRegard.userInteractionEnabled = YES; + _growthBurlywoodRegard.image = [UIImage imageNamed:@"yumi_scope_pk_progrss_line_background"]; + } + return _growthBurlywoodRegard; +} + +- (UILabel *)deficitEarnSequencignation { + if (!_deficitEarnSequencignation) { + _deficitEarnSequencignation = [[UILabel alloc] init]; + _deficitEarnSequencignation.text = @"0"; + _deficitEarnSequencignation.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium]; + _deficitEarnSequencignation.textColor = UIColor.whiteColor; + _deficitEarnSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _deficitEarnSequencignation; +} + +- (UILabel *)disappointedEarnSequencignation { + if (!_disappointedEarnSequencignation) { + _disappointedEarnSequencignation = [[UILabel alloc] init]; + _disappointedEarnSequencignation.text = @"0"; + _disappointedEarnSequencignation.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium]; + _disappointedEarnSequencignation.textColor = UIColor.whiteColor; + _disappointedEarnSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _disappointedEarnSequencignation; +} + +- (UIButton *)beginBtuton { + if (!_beginBtuton) { + _beginBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_beginBtuton setTitle:YMLocalizedString(@"YUMI_Room_PK_Playing_View_2") forState:UIControlStateNormal]; + [_beginBtuton setTitleColor:UIColorFromRGB(0x602A06) forState:UIControlStateNormal]; + _beginBtuton.titleLabel.font = [UIFont systemFontOfSize:15]; + [_beginBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[UIColorFromRGB(0xFFDAA8), UIColorFromRGB(0xFFBD64)] gradientType:GradientGenreUpleftToLowright imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + _beginBtuton.layer.masksToBounds = YES; + _beginBtuton.layer.cornerRadius = 12; + [_beginBtuton addTarget:self action:@selector(instituteBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _beginBtuton; +} + +- (UIButton *)foldBtuton { + if (!_foldBtuton) { + _foldBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_foldBtuton setImage:[UIImage imageNamed:@"yumi_scope_pk_playing_fold"] forState:UIControlStateNormal]; + [_foldBtuton setImage:[UIImage imageNamed:@"yumi_scope_pk_playing_fold"] forState:UIControlStateSelected]; + [_foldBtuton addTarget:self action:@selector(foldBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _foldBtuton; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/RoomPK/View/YUMIChamberCombatProgressRegard.h b/YuMi/Modules/YMRoom/View/RoomPK/View/YUMIChamberCombatProgressRegard.h new file mode 100644 index 00000000..2fdd00a5 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/RoomPK/View/YUMIChamberCombatProgressRegard.h @@ -0,0 +1,24 @@ +// +// YMRoomPKProgressView.h +// YUMI +// +// Created by YUMI on 2022/3/28. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class MiecreoscoopeMHTueueMatrix, AttachmentMatrix, ChamberAbstractMatrix, ChamberCombatChooseConsumerMatrix; +@interface YUMIChamberCombatProgressRegard : UIView +@property (nonatomic, strong) NSMutableDictionary *micQueue; +@property (nonatomic,strong) ChamberAbstractMatrix *roomInfo; +@property (nonatomic,assign) BOOL isManager; +@property (nonatomic,strong, readonly) NSArray *deficitConcludeGarment; +@property (nonatomic,strong, readonly) NSArray *disappointedConcludeGarment; +- (void)chamberCombatReceivePresent:(AttachmentMatrix *)attachment; +- (void)importChamberAcquireChamberCombatSpecificAbstract; +- (void)shankChamberCombatIndividualityCommunictowardsion:(AttachmentMatrix *)attachment; +- (BOOL)isChamberCombatDisporting; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/RoomPK/View/YUMIChamberCombatProgressRegard.m b/YuMi/Modules/YMRoom/View/RoomPK/View/YUMIChamberCombatProgressRegard.m new file mode 100644 index 00000000..784d17d5 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/RoomPK/View/YUMIChamberCombatProgressRegard.m @@ -0,0 +1,1078 @@ +// +// YMRoomPKProgressView.m +// YUMI +// +// Created by YUMI on 2022/3/28. +// + +#import "YUMIChamberCombatProgressRegard.h" +#import +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" +#import "MKJPopup.h" +#import "UIImage+Utils.h" +#import "Api+RoomPK.h" +#import "AccountAbstractStorage.h" +#import "XNDJTBWGLoadingTool.h" +#import "YUMIPresentStorage.h" +#import "PresentAchieveAbstractMatrix.h" +#import "PresentAbstractMatrix.h" +#import "XCCurrentVCStackExecutive.h" +#import "NSArray+Safe.h" +#import "ChamberCombatSpecificAbstractMatrix.h" +#import "MiecreoscoopeMHTueueMatrix.h" +#import "ConsumerAbstractMatrix.h" +#import "ChamberCombatChooseConsumerMatrix.h" +#import "AttachmentMatrix.h" +#import "MiecreoscoopeExtMatrix.h" +#import "YUMIScheduleLoudspeakerAbstractMatrix.h" +#import "ChamberAbstractMatrix.h" +#import "YUMIChamberCombatFasciaboardConsumerRegard.h" +#import "YUMIChamberCombatChosenConsumerRegard.h" +#import "YUMIChamberCombatDisportingRegard.h" +#import "YUMIChamberCombatDisportingRegard.h" +#import "YUMIChamberCombatConsequentRegard.h" +#import "YUMIScheduleLoudspeakerRegardGovernancer.h" + +@interface YUMIChamberCombatProgressRegard () +@property (nonatomic,strong) UIImageView *encourageIndicateRegard; +@property (nonatomic,strong) UIButton *beginBtuton; +@property (nonatomic,strong) UILabel *intratemporalSequencignation; +@property (nonatomic,strong) YUMIChamberCombatFasciaboardConsumerRegard * deficitSquadRegard; +@property (nonatomic,strong) UILabel *deficitEarnSequencignation; +@property (nonatomic,strong) YUMIChamberCombatFasciaboardConsumerRegard * disappointedSquadRegard; +@property (nonatomic,strong) UILabel *disappointedEarnSequencignation; +@property (nonatomic,strong) UIView * progressView; +@property (nonatomic,strong) UIImageView * deficitGrowthRegard; +@property (nonatomic,strong) UIImageView * disappointedGrowthRegard; +@property (nonatomic,strong) UIImageView *growthBurlywoodRegard; +@property (strong, nonatomic) dispatch_source_t timer; +@property (nonatomic,assign) CGFloat currentTime; +@property (nonatomic,assign) int examineConsequentFigure; +@property (nonatomic,strong) YUMIChamberCombatDisportingRegard *chamberCombatDisportingRegard; +@property (nonatomic,assign) long deficitSquadEarn; +@property (nonatomic,assign) long disappointedSquadEarn; +@property (nonatomic, strong) NSMutableDictionary * deficitSquadPresentFeaturePackbask; +@property (nonatomic, strong) NSMutableDictionary * disappointedSquadPresentFeaturePackbask; +@property (nonatomic,strong) NSArray *deficitConcludeGarment; +@property (nonatomic,strong) NSArray *disappointedConcludeGarment; +@property (nonatomic,assign) BOOL isAchieveCombatConsequent; +@property (nonatomic,strong) ChamberCombatAbstractMatrix *chamberCombatAbstract; +@property (nonatomic,assign) BOOL isPlaying; +@end + + +@implementation YUMIChamberCombatProgressRegard + +- (void)dealloc { + [self suspeindChamberCombatComputtowardsionPubescence]; +} + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Public Method +- (void)shankChamberCombatIndividualityCommunictowardsion:(AttachmentMatrix *)attachment { + if (attachment.second == Custom_Message_Sub_Room_PK_Start) { + [XNDJTBWGLoadingTool EvidenceAccomplishmentAboutCommunictowardsion:YMLocalizedString(@"YUMI_Room_PK_Progress_View_0")]; + ChamberCombatAbstractMatrix * pkInfo = [ChamberCombatAbstractMatrix mtowardsrixAboutImpactbasket:attachment.data]; + self.chamberCombatAbstract = pkInfo; + [self inititowardseChamberCombatComputtowardsionPubescence:pkInfo.duration]; + [self shankChamberCombatAbstractDiversifictowardsionDeclare]; + }else if (attachment.second == Custom_Message_Sub_Room_PK_Mode_Open){ + ChamberCombatAbstractMatrix * pkInfo = [ChamberCombatAbstractMatrix mtowardsrixAboutImpactbasket:attachment.data]; + self.chamberCombatAbstract = pkInfo; + [self shankChamberCombatAbstractDiversifictowardsionDeclare]; + } else if(attachment.second == Custom_Message_Sub_Room_PK_Re_Start) { + ChamberCombatAbstractMatrix * pkInfo = [ChamberCombatAbstractMatrix mtowardsrixAboutImpactbasket:attachment.data]; + self.chamberCombatAbstract = pkInfo; + [self shankChamberCombatAbstractDiversifictowardsionDeclare]; + } else if(attachment.second == Custom_Message_Sub_Room_PK_Result) { + [MKJPopup dismiss]; + ChamberCombatAbstractMatrix * pkInfo = [ChamberCombatAbstractMatrix mtowardsrixAboutImpactbasket:attachment.data]; + self.isAchieveCombatConsequent = YES; + [self suspeindChamberCombatComputtowardsionPubescence]; + [self prohibititinctChamberCombatSquadTowardsoloudspeaker]; + self.examineConsequentFigure = 1; + if (pkInfo.pkStatus == ChamberCombatPositionGenre_ReStart) { + self.chamberCombatAbstract = pkInfo; + } else { + if ([pkInfo.pkId isEqualToString:self.chamberCombatAbstract.pkId]) { + [self prohibititinctChamberCombatSquadTowardsoloudspeaker]; + self.chamberCombatAbstract = pkInfo; + [self replacementChamberCombatGroupGenre]; + + } + } + if (pkInfo.pkStatus == ChamberCombatPositionGenre_End) { + YUMIChamberCombatConsequentRegard * result = [[YUMIChamberCombatConsequentRegard alloc] init]; + result.chamberCombatConsequentAbstractMatrix = pkInfo; + [MKJPopup popupRegard:result style:MKJPopupStyleAlert]; + } + [self shankChamberCombatAbstractDiversifictowardsionDeclare]; + } else if(attachment.second == Custom_Message_Sub_Room_PK_Mode_Close) { + [XNDJTBWGLoadingTool EvidenceAccomplishmentAboutCommunictowardsion:YMLocalizedString(@"YUMI_Room_PK_Progress_View_1")]; + [self suspeindChamberCombatComputtowardsionPubescence]; + [self prohibititinctChamberCombatSquadTowardsoloudspeaker]; + [self removeFromSuperview]; + [self replacementChamberCombatGroupGenre]; + } +} + +- (void)chamberCombatReceivePresent:(AttachmentMatrix *)attachment { + if (self.chamberCombatAbstract.pkStatus == ChamberCombatPositionGenre_Playing) { + PresentAchieveAbstractMatrix *giftReceiveInfo = [PresentAchieveAbstractMatrix mtowardsrixAboutJSON:attachment.data]; + PresentAbstractMatrix *giftInfo = giftReceiveInfo.gift == nil ? giftReceiveInfo.giftInfo : giftReceiveInfo.gift; + if (giftInfo == nil) { + giftInfo = [[YUMIPresentStorage partowardsiciptowardsionStorage] prohibiticoveryPresentAbstract:giftReceiveInfo.giftId]; + } + if (attachment.first == IndividualityCommunicationGenre_AllMicroSend) { + if (attachment.second == Custom_Message_Sub_AllBatchSend || attachment.second == Custom_Message_Sub_AllMicroSend) { + NSArray *targetUids = giftReceiveInfo.targetUids; + if (giftReceiveInfo.targetUids.count <=0) { + if (giftReceiveInfo.targetUsers.count > 0) { + targetUids = [giftReceiveInfo.targetUsers valueForKeyPath:@"uid"]; + } else { + targetUids = giftReceiveInfo.targetUid.integerValue > 0? @[giftReceiveInfo.targetUid] : @[]; + } + } + if (self.chamberCombatAbstract.voteMode == ChamberCombatVoteModeGenre_NumberPerson) { + [self canculeChamberCombatDischargePresentFigureFetowardsure:targetUids sendUid:giftReceiveInfo.uid]; + } else { + [self canculeChamberPresentBWSttessReceiveAbstract:targetUids giftPrice:giftInfo.goldPrice * giftReceiveInfo.giftNum]; + } + } else if(attachment.second == Custom_Message_Sub_AllMicroLuckySend || attachment.second == Custom_Message_Sub_AllBatchMicroLuckySend) { + if (giftReceiveInfo.luckyGiftList) { + __block NSInteger goldPrice = 0; + [giftReceiveInfo.luckyGiftList.giftList enumerateObjectsUsingBlock:^(PresentStatementsAbstract * _Nonnull giftListInfo, NSUInteger idx, BOOL * _Nonnull stop) { + PresentAbstractMatrix *giftInfo = [[YUMIPresentStorage partowardsiciptowardsionStorage] prohibiticoveryPresentAbstract:[NSString stringWithFormat:@"%ld", giftListInfo.giftId]]; + goldPrice += giftInfo.goldPrice * giftListInfo.giftNum; + }]; + NSArray *targetUids; + if (giftReceiveInfo.luckyGiftList.user.uid > 0) { + targetUids = @[[NSString stringWithFormat:@"%ld", giftReceiveInfo.luckyGiftList.user.uid]]; + } + if (self.chamberCombatAbstract.voteMode == ChamberCombatVoteModeGenre_NumberPerson) { + [self canculeChamberCombatDischargePresentFigureFetowardsure:targetUids sendUid:giftReceiveInfo.uid]; + } else { + [self canculeChamberPresentBWSttessReceiveAbstract:targetUids giftPrice:goldPrice]; + } + } + } + } else if(attachment.first == IndividualityCommunicationGenre_Gift) { + if (attachment.second == Custom_Message_Sub_Gift_LuckySend) { + __block NSInteger goldPrice = 0; + [giftReceiveInfo.luckyGiftList.giftList enumerateObjectsUsingBlock:^(PresentStatementsAbstract * _Nonnull giftListInfo, NSUInteger idx, BOOL * _Nonnull stop) { + PresentAbstractMatrix *giftInfo = [[YUMIPresentStorage partowardsiciptowardsionStorage] prohibiticoveryPresentAbstract:[NSString stringWithFormat:@"%ld", giftListInfo.giftId]]; + goldPrice += giftInfo.goldPrice * giftListInfo.giftNum; + }]; + NSArray *targetUids; + if (giftReceiveInfo.luckyGiftList.user.uid > 0) { + targetUids = @[[NSString stringWithFormat:@"%ld", giftReceiveInfo.luckyGiftList.user.uid]]; + } + if (self.chamberCombatAbstract.voteMode == ChamberCombatVoteModeGenre_NumberPerson) { + [self canculeChamberCombatDischargePresentFigureFetowardsure:targetUids sendUid:giftReceiveInfo.uid]; + } else { + [self canculeChamberPresentBWSttessReceiveAbstract:targetUids giftPrice:goldPrice]; + } + } else { + NSArray *targetUids = giftReceiveInfo.targetUids; + if (giftReceiveInfo.targetUids.count <=0) { + if (giftReceiveInfo.targetUsers.count > 0) { + targetUids = [giftReceiveInfo.targetUsers valueForKeyPath:@"uid"]; + } else { + targetUids = giftReceiveInfo.targetUid.integerValue > 0? @[giftReceiveInfo.targetUid] : @[]; + } + } + if (self.chamberCombatAbstract.voteMode == ChamberCombatVoteModeGenre_NumberPerson) { + [self canculeChamberCombatDischargePresentFigureFetowardsure:targetUids sendUid:giftReceiveInfo.uid]; + } else { + [self canculeChamberPresentBWSttessReceiveAbstract:targetUids giftPrice:giftInfo.goldPrice * giftReceiveInfo.giftNum]; + } + } + } + + } +} + +- (void)importChamberAcquireChamberCombatSpecificAbstract { + NSString * roomUid = [NSString stringWithFormat:@"%ld", self.roomInfo.uid]; + [Api acquireChamberCombatSpecific:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + ChamberCombatSpecificAbstractMatrix * combatSpecificAbstract = [ChamberCombatSpecificAbstractMatrix mtowardsrixAboutImpactbasket:data.data]; + self.chamberCombatAbstract = combatSpecificAbstract.roomPK; + [self shankChamberCombatAbstractDiversifictowardsionDeclare]; + if (self.chamberCombatAbstract.pkStatus == ChamberCombatPositionGenre_Playing) { + [self inititowardseChamberCombatComputtowardsionPubescence:(self.chamberCombatAbstract.endTime - combatSpecificAbstract.now) / 1000]; + } + NSMutableDictionary * queue = self.micQueue; + + NSMutableArray * redArray = [NSMutableArray array]; + NSMutableArray * blueArray = [NSMutableArray array]; + if (self.chamberCombatAbstract.pkStatus == ChamberCombatPositionGenre_Playing) { + for (int i = 0; i < self.chamberCombatAbstract.teams.count; i++) { + ChamberCombatSquadMatrix * teamInfo = [self.chamberCombatAbstract.teams secureGroalTowardsIndictowardsrix1:i]; + if (teamInfo.team == GroupGenre_Red) { + self.deficitSquadEarn = teamInfo.score; + for (int i = 0; i < teamInfo.teamMembers.count; i++) { + ChamberCombatSquadConsumerMatrix * teamUserModel = [teamInfo.teamMembers secureGroalTowardsIndictowardsrix1:i]; + ChamberCombatChooseConsumerMatrix * redInfo = [[ChamberCombatChooseConsumerMatrix alloc] init]; + redInfo.avatar = teamUserModel.avatar; + redInfo.uid = teamUserModel.uid; + redInfo.groupType = GroupGenre_Red; + redInfo.position = [self prohibiticoveryMiecreoscoopeAbstractByCid:teamUserModel.uid].microState.position; + redInfo.nick = teamUserModel.nick; + [redArray addObject:redInfo]; + } + } else if(teamInfo.team == GroupGenre_Blue) { + self.disappointedSquadEarn = teamInfo.score; + for (int i = 0; i < teamInfo.teamMembers.count; i++) { + ChamberCombatSquadConsumerMatrix * teamUserModel = [teamInfo.teamMembers secureGroalTowardsIndictowardsrix1:i]; + ChamberCombatChooseConsumerMatrix * blueInfo = [[ChamberCombatChooseConsumerMatrix alloc] init]; + blueInfo.avatar = teamUserModel.avatar; + blueInfo.uid = teamUserModel.uid; + blueInfo.groupType = GroupGenre_Blue; + blueInfo.position = [self prohibiticoveryMiecreoscoopeAbstractByCid:teamUserModel.uid].microState.position; + blueInfo.nick = teamUserModel.nick; + [blueArray addObject:blueInfo]; + } + } + } + [self prohibitipositionDeficitSquadEarn:self.deficitSquadEarn disappointedSquadEarn:self.disappointedSquadEarn]; + } else { + for (int i = 0 ; i < queue.allValues.count; i++) { + MiecreoscoopeMHTueueMatrix * micModel = [queue.allValues secureGroalTowardsIndictowardsrix1:i]; + if (micModel.userInfo && micModel.userInfo.uid > 0) { + ConsumerAbstractMatrix * userInfo = micModel.userInfo; + if (userInfo.groupType == GroupGenre_Red) { + ChamberCombatChooseConsumerMatrix * redInfo = [[ChamberCombatChooseConsumerMatrix alloc] init]; + redInfo.avatar = userInfo.avatar; + redInfo.uid = [NSString stringWithFormat:@"%ld", userInfo.uid]; + redInfo.groupType = userInfo.groupType; + redInfo.position = micModel.microState.position; + redInfo.nick = userInfo.nick; + [redArray addObject:redInfo]; + } else if(userInfo.groupType == GroupGenre_Blue) { + ChamberCombatChooseConsumerMatrix * blueInfo = [[ChamberCombatChooseConsumerMatrix alloc] init]; + blueInfo.avatar = userInfo.avatar; + blueInfo.uid = [NSString stringWithFormat:@"%ld", userInfo.uid]; + blueInfo.groupType = userInfo.groupType; + blueInfo.position = micModel.microState.position; + blueInfo.nick = userInfo.nick; + [blueArray addObject:blueInfo]; + } + } + } + + } + self.deficitConcludeGarment = redArray.copy; + self.disappointedConcludeGarment = blueArray.copy; + } else { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:msg]; + } + } roomUid:roomUid]; +} + +- (BOOL)isChamberCombatDisporting { + return self.isPlaying; +} + +#pragma mark - 查询pk结果的 +- (void)examineChamberCombatConsequent{ + if (self.examineConsequentFigure > 2) { + + [self prohibititinctChamberCombatSquadTowardsoloudspeaker]; + [self replacementChamberCombatGroupGenre]; + return; + } + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + if (!self.isAchieveCombatConsequent) { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NSString * roomUid = [NSString stringWithFormat:@"%ld", self.roomInfo.uid]; + if (self.chamberCombatAbstract.pkId.length > 0) { + NSString * pkId = self.chamberCombatAbstract.pkId; + [Api examineChamberCombatConsequent:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + self.examineConsequentFigure = 1; + self.isAchieveCombatConsequent = YES; + } else { + self.examineConsequentFigure++; + [self examineChamberCombatConsequent]; + } + } roomUid:roomUid operUid:uid pkId:pkId]; + } + + } + }); +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.encourageIndicateRegard]; + [self addSubview:self.beginBtuton]; + + [self.encourageIndicateRegard addSubview:self.intratemporalSequencignation]; + [self.encourageIndicateRegard addSubview:self.deficitSquadRegard]; + [self.encourageIndicateRegard addSubview:self.deficitEarnSequencignation]; + [self.encourageIndicateRegard addSubview:self.disappointedSquadRegard]; + [self.encourageIndicateRegard addSubview:self.disappointedEarnSequencignation]; + [self.encourageIndicateRegard addSubview:self.progressView]; + + [self.progressView addSubview:self.deficitGrowthRegard]; + [self.progressView addSubview:self.disappointedGrowthRegard]; + [self.progressView addSubview:self.growthBurlywoodRegard]; +} + +- (void)initChildLyRestrictions { + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(260); + make.bottom.mas_equalTo(self.beginBtuton.mas_bottom); + }]; + + [self.encourageIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(260, 60)); + make.top.left.mas_equalTo(self); + }]; + + [self.beginBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(90, 24)); + make.centerX.mas_equalTo(self.encourageIndicateRegard); + make.centerY.mas_equalTo(self.encourageIndicateRegard.mas_bottom); + }]; + + [self.intratemporalSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.encourageIndicateRegard); + make.top.mas_equalTo(self.encourageIndicateRegard); + }]; + + [self.progressView mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(85 * 2); + make.height.mas_equalTo(7); + make.centerX.mas_equalTo(self.encourageIndicateRegard); + make.top.mas_equalTo(self.encourageIndicateRegard).offset(23); + }]; + + [self.deficitSquadRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self.progressView.mas_left); + make.centerY.mas_equalTo(self.progressView); + make.height.mas_equalTo(25); + make.left.mas_greaterThanOrEqualTo(15); + }]; + + [self.disappointedSquadRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.progressView.mas_right); + make.centerY.mas_equalTo(self.progressView); + make.height.mas_equalTo(25); + make.right.mas_lessThanOrEqualTo(-15); + }]; + + [self.deficitGrowthRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.top.bottom.mas_equalTo(self.progressView); + make.width.mas_equalTo(85); + }]; + + [self.disappointedGrowthRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.top.bottom.mas_equalTo(self.progressView); + make.left.mas_equalTo(self.deficitGrowthRegard.mas_right); + }]; + + [self.growthBurlywoodRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(2.5, 12.5)); + make.centerX.mas_equalTo(self.disappointedGrowthRegard.mas_left).offset(-1.2); + make.centerY.mas_equalTo(self.progressView); + }]; + + + [self.deficitEarnSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.deficitSquadRegard); + make.top.mas_equalTo(self.deficitSquadRegard.mas_bottom).offset(5); + make.left.mas_lessThanOrEqualTo(self.encourageIndicateRegard); + }]; + + [self.disappointedEarnSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.disappointedSquadRegard); + make.centerY.mas_equalTo(self.deficitEarnSequencignation); + make.right.mas_lessThanOrEqualTo(self.encourageIndicateRegard); + }]; +} + +- (BOOL)isOnMicro:(NSString *)uid { + for (int i = 0; i < self.micQueue.allValues.count; i++) { + MiecreoscoopeMHTueueMatrix * micModel = [self.micQueue.allValues secureGroalTowardsIndictowardsrix1:i]; + if (micModel.userInfo && micModel.userInfo.uid > 0 && micModel.userInfo.uid == uid.integerValue) { + return YES; + } + } + return NO; +} + +- (MiecreoscoopeMHTueueMatrix *)prohibiticoveryMiecreoscoopeAbstractByCid:(NSString *)uid { + for (MiecreoscoopeMHTueueMatrix *model in self.micQueue.allValues) { + if (model.userInfo && model.userInfo.uid == uid.intValue) { + return model; + } + } + return nil; +} + +- (void)canculeChamberPresentBWSttessReceiveAbstract:(NSArray *)targetUids giftPrice:(NSInteger)giftPrice{ + for (ChamberCombatChooseConsumerMatrix * userInfo in self.deficitConcludeGarment) { + for (NSString * uid in targetUids) { + NSString * userId = uid; + if ([userId isKindOfClass:[NSNumber class]]) { + userId = ((NSNumber *)userId).stringValue; + } + if (userId.integerValue == userInfo.uid.integerValue) { + self.deficitSquadEarn += giftPrice; + break; + } + } + } + + for (ChamberCombatChooseConsumerMatrix * userInfo in self.disappointedConcludeGarment) { + for (NSString * uid in targetUids) { + NSString * userId = uid; + if ([userId isKindOfClass:[NSNumber class]]) { + userId = ((NSNumber *)userId).stringValue; + } + if (userId.integerValue == userInfo.uid.integerValue) { + self.disappointedSquadEarn += giftPrice; + break; + } + } + } + [self prohibitipositionDeficitSquadEarn:self.deficitSquadEarn disappointedSquadEarn:self.disappointedSquadEarn]; +} + +- (void)canculeChamberCombatDischargePresentFigureFetowardsure:(NSArray *)sendGiftUses sendUid:(NSString *)sendUid{ + + if (!self.deficitSquadPresentFeaturePackbask) { + self.deficitSquadPresentFeaturePackbask = [NSMutableDictionary dictionary]; + + NSDictionary *redDict = self.chamberCombatAbstract.sendGiftUids[@"2"]; + + for (ChamberCombatSquadConsumerMatrix *info in self.deficitConcludeGarment) { + [self.deficitSquadPresentFeaturePackbask setObject:[NSMutableSet set] forKey:info.uid]; + } + for (NSString *key in redDict) { + + NSArray *sendGiftUids = [redDict objectForKey:key]; + NSMutableSet *set = [NSMutableSet set]; + [set addObjectsFromArray:sendGiftUids]; + [self.deficitSquadPresentFeaturePackbask setObject:set forKey:key]; + } + } + + if (!self.disappointedSquadPresentFeaturePackbask) { + self.disappointedSquadPresentFeaturePackbask = [NSMutableDictionary dictionary]; + + NSDictionary *blueDict = self.chamberCombatAbstract.sendGiftUids[@"1"]; + + for (ChamberCombatSquadConsumerMatrix *info in self.disappointedConcludeGarment) { + [self.disappointedSquadPresentFeaturePackbask setObject:[NSMutableSet set] forKey:info.uid]; + } + + for (NSString *key in blueDict) { + + NSArray *sendGiftUids = [blueDict objectForKey:key]; + NSMutableSet *set = [NSMutableSet set]; + [set addObjectsFromArray:sendGiftUids]; + [self.disappointedSquadPresentFeaturePackbask setObject:set forKey:key]; + } + } + + for (ChamberCombatSquadConsumerMatrix *infor in self.deficitConcludeGarment) { + for (NSString *uid in sendGiftUses) { + NSString * userId = uid; + if ([userId isKindOfClass:[NSNumber class]]) { + userId = ((NSNumber *)userId).stringValue; + } + if (userId.integerValue == infor.uid.integerValue) { + NSMutableSet *set = [self.deficitSquadPresentFeaturePackbask objectForKey:infor.uid]; + if ([set containsObject:sendUid]) { + continue; + } else { + [set addObject:sendUid]; + } + } + } + } + + for (ChamberCombatSquadConsumerMatrix *infor in self.disappointedConcludeGarment) { + for (NSString *uid in sendGiftUses) { + NSString * userId = uid; + if ([userId isKindOfClass:[NSNumber class]]) { + userId = ((NSNumber *)userId).stringValue; + } + if (userId.integerValue == infor.uid.integerValue) { + NSMutableSet *set = [self.disappointedSquadPresentFeaturePackbask objectForKey:infor.uid]; + if ([set containsObject:sendUid]) { + continue; + } else { + [set addObject:sendUid]; + } + } + } + } + + + long blueTeamtotal = 0; + long redTeamtotal = 0; + for (NSString *key in self.deficitSquadPresentFeaturePackbask) { + NSMutableSet *set = [self.deficitSquadPresentFeaturePackbask objectForKey:key]; + redTeamtotal = redTeamtotal + set.count; + } + + for (NSString *key in self.disappointedSquadPresentFeaturePackbask) { + NSMutableSet *set = [self.disappointedSquadPresentFeaturePackbask objectForKey:key]; + blueTeamtotal = blueTeamtotal + set.count; + } + [self prohibitipositionDeficitSquadEarn:redTeamtotal disappointedSquadEarn:blueTeamtotal]; +} + +- (void)shankChamberCombatAbstractDiversifictowardsionDeclare { + self.isPlaying = NO; + if (self.chamberCombatAbstract) { + switch (_chamberCombatAbstract.pkStatus) { + case ChamberCombatPositionGenre_End: + [self shankBeginBtutonDeclare]; + break; + case ChamberCombatPositionGenre_Playing: + { + [MKJPopup dismiss]; + [self shankBeginBtutonDeclare]; + self.isPlaying = YES; + self.chamberCombatDisportingRegard.combatSpecificAbstract = self.chamberCombatAbstract; + self.chamberCombatDisportingRegard.deficitConcludeGarment = self.deficitConcludeGarment; + self.chamberCombatDisportingRegard.disappointedConcludeGarment = self.disappointedConcludeGarment; + [self.chamberCombatDisportingRegard prohibitipositionDeficitSquadEarn:self.deficitSquadEarn disappointedSquadEarn:self.disappointedSquadEarn]; + [MKJPopup popupRegard:self.chamberCombatDisportingRegard style:MKJPopupStyleAlert]; + } + break; + case ChamberCombatPositionGenre_ReStart: + case ChamberCombatPositionGenre_NonStart: + { + [self shankBeginBtutonDeclare]; + [self prohibititinctChamberCombatSquadTowardsoloudspeaker]; + [self suspeindChamberCombatComputtowardsionPubescence]; + } + + break; + default: + break; + } + } +} + +- (void)replacementChamberCombatGroupGenre { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + if ([self isOnMicro:uid]) { + MiecreoscoopeMHTueueMatrix * micModel = [self prohibiticoveryMiecreoscoopeAbstractByCid:uid]; + if (micModel.userInfo && micModel.userInfo.uid > 0 && micModel.userInfo.groupType != GroupGenre_default) { + micModel.userInfo.groupType = GroupGenre_default; + NIMChatroomQueueUpdateRequest *request = [[NIMChatroomQueueUpdateRequest alloc]init]; + request.key = [NSString stringWithFormat:@"%d", micModel.microState.position]; + request.value = [[self consumerAbstractToInthecaseofmtowardsionExt:micModel.userInfo] toJSONBWSttr]; + NSString * roomId = [NSString stringWithFormat:@"%ld", self.roomInfo.roomId]; + request.roomId = roomId; + request.transient = YES; + [[NIMSDK sharedSDK].chatroomManager updateChatroomQueueObject:request completion:^(NSError * _Nullable error) { + }]; + } + } +} + +- (NSDictionary *)consumerAbstractToInthecaseofmtowardsionExt:(ConsumerAbstractMatrix *)userInfo { + MiecreoscoopeExtMatrix * extModel = [[MiecreoscoopeExtMatrix alloc] init]; + extModel.gender = userInfo.gender; + extModel.avatar = userInfo.avatar; + extModel.uid = userInfo.uid; + extModel.nick = userInfo.nick; + extModel.headWearUrl = userInfo.headwearEffect.length > 0 ? userInfo.headwearEffect : userInfo.headwearPic; + extModel.micCircle = userInfo.micCircle; + extModel.micNickColor = userInfo.micNickColor; + extModel.groupType = userInfo.groupType; + return [extModel mtowardsrix2dictionary]; +} + +- (NSString *)chamberCombatSquadJsonBWSttr { + NSMutableArray * teamArray = [NSMutableArray array]; + for (int i = 0; i < self.deficitConcludeGarment.count; i++) { + ChamberCombatChooseConsumerMatrix * userInfo = [self.deficitConcludeGarment secureGroalTowardsIndictowardsrix1:i]; + NSMutableDictionary * redDic = [NSMutableDictionary dictionary]; + [redDic setObject:userInfo.uid forKey:@"uid"]; + [redDic setObject:@(userInfo.groupType) forKey:@"type"]; + [teamArray addObject:redDic]; + } + + for (int i = 0; i < self.disappointedConcludeGarment.count; i++) { + ChamberCombatChooseConsumerMatrix * userInfo = [self.disappointedConcludeGarment secureGroalTowardsIndictowardsrix1:i]; + NSMutableDictionary * blueDic = [NSMutableDictionary dictionary]; + [blueDic setObject:userInfo.uid forKey:@"uid"]; + [blueDic setObject:@(userInfo.groupType) forKey:@"type"]; + [teamArray addObject:blueDic]; + } + if (teamArray.count > 0) { + return [teamArray toJSONBWSttr]; + } + return @""; +} + +- (void)inititowardseChamberCombatComputtowardsionPubescence:(CGFloat)time { + __block long tempTime = time; + __weak typeof(self) weakSelf = self; + self.currentTime = tempTime; + if (self.timer != nil) { + dispatch_source_cancel(self.timer); + } + dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); + self.timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, queue); + dispatch_source_set_timer(self.timer,dispatch_walltime(NULL, 0),1.0*NSEC_PER_SEC, 0); + dispatch_source_set_event_handler(self.timer, ^{ + typeof(weakSelf) self = weakSelf; + if(tempTime <= 0){ + self.currentTime = 0; + dispatch_source_cancel(self.timer); + dispatch_async(dispatch_get_main_queue(), ^{ + [self examineChamberCombatConsequent]; + }); + } else { + dispatch_async(dispatch_get_main_queue(), ^{ + + NSInteger minute = tempTime / 60; + NSInteger second = (tempTime % 60); + NSString *timeStr = [NSString stringWithFormat:@"%02zd:%02zd", minute, second]; + self.intratemporalSequencignation.text= timeStr; + self.chamberCombatDisportingRegard.currentTime = timeStr; + }); + tempTime--; + self.currentTime = tempTime; + } + }); + dispatch_resume(self.timer); +} + +- (void)suspeindChamberCombatComputtowardsionPubescence { + if (self.timer) { + dispatch_source_cancel(_timer); + _timer = nil; + } +} + +- (void)prohibititinctChamberCombatSquadTowardsoloudspeaker { + [self.chamberCombatDisportingRegard prohibititinctChamberCombatTowardsoloudspeaker]; + self.deficitEarnSequencignation.text = @"0"; + self.disappointedEarnSequencignation.text = @"0"; + self.deficitSquadEarn = 0; + self.disappointedSquadEarn = 0; + self.deficitSquadPresentFeaturePackbask = nil; + self.disappointedSquadPresentFeaturePackbask = nil; + self.intratemporalSequencignation.text = YMLocalizedString(@"YUMI_Room_PK_Progress_View_2"); + [self.deficitGrowthRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(85); + }]; +} + +- (void)prohibitipositionDeficitSquadEarn:(long)deficitSquadEarn disappointedSquadEarn:(long)disappointedSquadEarn { + self.deficitSquadEarn = deficitSquadEarn; + self.disappointedSquadEarn = disappointedSquadEarn; + self.deficitEarnSequencignation.text = [NSString stringWithFormat:@"%ld", deficitSquadEarn]; + self.disappointedEarnSequencignation.text = [NSString stringWithFormat:@"%ld", disappointedSquadEarn]; + if (deficitSquadEarn > 0 || disappointedSquadEarn > 0) { + CGFloat redScale = (CGFloat)deficitSquadEarn / (CGFloat)(deficitSquadEarn + disappointedSquadEarn); + if (redScale == 1) { + redScale = 0.99; + } + + + [self.deficitGrowthRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(85 * 2 * redScale); + }]; + } + [self.chamberCombatDisportingRegard prohibitipositionDeficitSquadEarn:deficitSquadEarn disappointedSquadEarn:disappointedSquadEarn]; +} + +- (void)shankBeginBtutonDeclare { + if (self.chamberCombatAbstract) { + if (self.chamberCombatAbstract.pkStatus == ChamberCombatPositionGenre_Playing) { + self.beginBtuton.hidden = YES; + } else { + self.beginBtuton.hidden = !self.isManager; + } + } else { + self.beginBtuton.hidden = !self.isManager; + } +} + +#pragma mark - FBCChamberCombatPanelConsumerRegardRepresendtation +- (void)yUMIChamberCombatFasciaboardConsumerRegard:(YUMIChamberCombatFasciaboardConsumerRegard *)view didClickAddButton:(GroupGenre)type { + [MKJPopup dismiss]; + if (self.chamberCombatAbstract.pkStatus == ChamberCombatPositionGenre_Playing) { + self.chamberCombatDisportingRegard.combatSpecificAbstract = self.chamberCombatAbstract; + self.chamberCombatDisportingRegard.deficitConcludeGarment = self.deficitConcludeGarment; + self.chamberCombatDisportingRegard.disappointedConcludeGarment = self.disappointedConcludeGarment; + [self.chamberCombatDisportingRegard prohibitipositionDeficitSquadEarn:self.deficitSquadEarn disappointedSquadEarn:self.disappointedSquadEarn]; + [MKJPopup popupRegard:self.chamberCombatDisportingRegard style:MKJPopupStyleAlert]; + return; + } + + if (self.isManager) { + YUMIChamberCombatChosenConsumerRegard * chooseUserView = [[YUMIChamberCombatChosenConsumerRegard alloc] init]; + chooseUserView.delegate = self; + chooseUserView.deficitConsumerGarment = self.deficitConcludeGarment; + chooseUserView.disappointedConsumerGarment = self.disappointedConcludeGarment; + chooseUserView.groupType = type; + chooseUserView.miecreoscoopeFormationGarment = self.micQueue.allValues; + [MKJPopup popupRegard:chooseUserView style:MKJPopupStyleAlert]; + } else { + YUMIScheduleLoudspeakerAbstractMatrix * info = [[YUMIScheduleLoudspeakerAbstractMatrix alloc] init]; + info.roomUid = [NSString stringWithFormat:@"%ld", self.roomInfo.uid]; + info.roomId = [NSString stringWithFormat:@"%ld", self.roomInfo.roomId]; + info.nick = self.roomInfo.nick; + info.roomAvatar = self.roomInfo.avatar; + info.roomTitle = self.roomInfo.title; + info.micQueue = self.micQueue; + info.isManager = self.isManager; + info.type = ArrangeLoudspeakerGenre_Room_PK; + YUMIScheduleLoudspeakerRegardGovernancer * arrangeMicVC = [[YUMIScheduleLoudspeakerRegardGovernancer alloc] initAboutAbstract:info]; + [[XCCurrentVCStackExecutive shareManager].getCurrentVC.navigationController presentViewController:arrangeMicVC animated:YES completion:nil]; + } +} + +#pragma mark - FBCChamberCombatChosenConsumerRegardRepresendtation +- (void)yUMIChamberCombatChosenConsumerRegard:(YUMIChamberCombatChosenConsumerRegard *)view groupType:(GroupGenre)groupType didChooseUserInfos:(NSArray *)userInfos { + [MKJPopup dismiss]; + if (groupType == GroupGenre_Red) { + self.deficitConcludeGarment = userInfos; + } else { + self.disappointedConcludeGarment = userInfos; + } + if (self.deficitConcludeGarment.count > 0 || self.disappointedConcludeGarment.count > 0) { + NSMutableDictionary * dic = [NSMutableDictionary dictionary]; + for (int i = 0 ; i< self.deficitConcludeGarment.count; i++) { + ChamberCombatChooseConsumerMatrix * model = [self.deficitConcludeGarment secureGroalTowardsIndictowardsrix1:i]; + if (model.uid.integerValue <= 0) { + continue; + } + NSMutableDictionary * data =[[model mtowardsrix2dictionary] mutableCopy]; + [data removeObjectForKey:@"title"]; + [data removeObjectForKey:@"imageName"]; + [data removeObjectForKey:@"userUrl"]; + [data removeObjectForKey:@"isSelect"]; + [data removeObjectForKey:@"isEnableChoose"]; + [dic setValue:data forKey:model.uid]; + } + + for (int i = 0 ; i< self.disappointedConcludeGarment.count; i++) { + ChamberCombatChooseConsumerMatrix * model = [self.disappointedConcludeGarment secureGroalTowardsIndictowardsrix1:i]; + if (model.uid.integerValue <= 0) { + continue; + } + NSMutableDictionary * data =[[model mtowardsrix2dictionary] mutableCopy]; + [data removeObjectForKey:@"title"]; + [data removeObjectForKey:@"imageName"]; + [data removeObjectForKey:@"userUrl"]; + [data removeObjectForKey:@"isSelect"]; + [data removeObjectForKey:@"isEnableChoose"]; + [dic setValue:data forKey:model.uid]; + } + + if (dic.allKeys.count > 0) { + AttachmentMatrix * attachment = [[AttachmentMatrix alloc] init]; + attachment.first = IndividualityCommunicationGenre_Room_PK; + attachment.second = Custom_Message_Sub_Room_PK_Manager_Up_Mic; + attachment.data = dic; + NSString * roomId = [NSString stringWithFormat:@"%ld", self.roomInfo.roomId]; + NSString *sessionID = roomId; + NIMMessage *message = [[NIMMessage alloc]init]; + NIMCustomObject *object = [[NIMCustomObject alloc] init]; + object.attachment = attachment; + message.messageObject = object; + + NIMSession *session = [NIMSession session:sessionID type:NIMSessionTypeChatroom]; + [[NIMSDK sharedSDK].chatManager sendMessage:message toSession:session error:nil]; + } + } +} + +#pragma mark - FBCChamberCombatPlayingRegardRepresendtation +- (void)yUMIChamberCombatDisportingRegard:(YUMIChamberCombatDisportingRegard *)view didClickResetBegin:(UIButton *)sender { + [MKJPopup dismiss]; + [MKJPopup precautiousAboutCommunictowardsion:@"重新开始将会提前结束本次PK\n确认重新开始吗?" acknowledgementHandler:^{ + ChamberCombatAbstractMatrix * roompkInfo = self.chamberCombatAbstract; + NSString * roomUid = [NSString stringWithFormat:@"%ld", self.roomInfo.uid]; + [Api produceChamberCombat:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + ChamberCombatAbstractMatrix * newRoomPKInfo = [ChamberCombatAbstractMatrix mtowardsrixAboutImpactbasket:data.data]; + self.chamberCombatAbstract = newRoomPKInfo; + } else { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:msg]; + } + } pkMode:[NSString stringWithFormat:@"%ld", roompkInfo.pkMode] voteMode:[NSString stringWithFormat:@"%ld", roompkInfo.voteMode] duration:[NSString stringWithFormat:@"%0.f", roompkInfo.duration] roomUid:roomUid operUid:[AccountAbstractStorage instance].acquireCid]; + } cancelHandler:^{ + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + if (self.chamberCombatAbstract.pkStatus == ChamberCombatPositionGenre_Playing) { + self.chamberCombatDisportingRegard.combatSpecificAbstract = self.chamberCombatAbstract; + self.chamberCombatDisportingRegard.deficitConcludeGarment = self.deficitConcludeGarment; + self.chamberCombatDisportingRegard.disappointedConcludeGarment = self.disappointedConcludeGarment; + [self.chamberCombatDisportingRegard prohibitipositionDeficitSquadEarn:self.deficitSquadEarn disappointedSquadEarn:self.disappointedSquadEarn]; + [MKJPopup popupRegard:self.chamberCombatDisportingRegard style:MKJPopupStyleAlert]; + } + }); + }]; +} + +#pragma mark - Event Response +- (void)instituteBtutonPerformance:(UIButton *)sender { + if (self.chamberCombatAbstract != nil) { + ChamberCombatAbstractMatrix * roompkInfo = self.chamberCombatAbstract; + NSString * roomUid = [NSString stringWithFormat:@"%ld", self.roomInfo.uid]; + if (self.deficitConcludeGarment.count > 0 && self.disappointedConcludeGarment.count > 0) { + if (self.chamberCombatAbstract.pkStatus == ChamberCombatPositionGenre_End || self.chamberCombatAbstract.pkStatus == ChamberCombatPositionGenre_ReStart) { + [MKJPopup precautiousAboutCommunictowardsion:@"是否再次开始PK?" acknowledgementHandler:^{ + [Api produceChamberCombat:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + ChamberCombatAbstractMatrix * newRoomPKInfo = [ChamberCombatAbstractMatrix mtowardsrixAboutImpactbasket:data.data]; + self.chamberCombatAbstract = newRoomPKInfo; + NSString * teamJsonStr = [self chamberCombatSquadJsonBWSttr]; + + [Api begainChamberCombat:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + ChamberCombatAbstractMatrix * chamberCombatAbstract = [ChamberCombatAbstractMatrix mtowardsrixAboutImpactbasket:data.data]; + self.chamberCombatAbstract = chamberCombatAbstract; + } else { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:msg]; + } + } roomUid:roomUid pkId:newRoomPKInfo.pkId joinUsers:teamJsonStr]; + } else { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:msg]; + } + } pkMode:[NSString stringWithFormat:@"%ld", roompkInfo.pkMode] voteMode:[NSString stringWithFormat:@"%ld", roompkInfo.voteMode] duration:[NSString stringWithFormat:@"%0.f", roompkInfo.duration] roomUid:roomUid operUid:[AccountAbstractStorage instance].acquireCid]; + } cancelHandler:^{ + + }]; + } else if(self.chamberCombatAbstract.pkStatus == ChamberCombatPositionGenre_Playing) { + [self didBetowardsEncourageIndictowardseRecognition]; + } else if(self.chamberCombatAbstract.pkStatus == ChamberCombatPositionGenre_NonStart) { + [MKJPopup precautiousAboutCommunictowardsion:@"当前正在准备阶段,是否确认准备开始PK?" acknowledgementHandler:^{ + NSString * teamJsonStr = [self chamberCombatSquadJsonBWSttr]; + + [Api begainChamberCombat:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + ChamberCombatAbstractMatrix * chamberCombatAbstract = [ChamberCombatAbstractMatrix mtowardsrixAboutImpactbasket:data.data]; + self.chamberCombatAbstract = chamberCombatAbstract; + } else { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:msg]; + } + } roomUid:roomUid pkId:self.chamberCombatAbstract.pkId joinUsers:teamJsonStr]; + } cancelHandler:^{ + + }]; + } + } else { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:YMLocalizedString(@"YUMI_Room_PK_Progress_View_6")]; + } + }else { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:YMLocalizedString(@"YUMI_Room_PK_Progress_View_7")]; + [self importChamberAcquireChamberCombatSpecificAbstract]; + } +} + +- (void)didBetowardsEncourageIndictowardseRecognition { + if (self.chamberCombatAbstract.pkStatus == ChamberCombatPositionGenre_Playing) { + [MKJPopup dismiss]; + self.chamberCombatDisportingRegard.combatSpecificAbstract = self.chamberCombatAbstract; + self.chamberCombatDisportingRegard.deficitConcludeGarment = self.deficitConcludeGarment; + self.chamberCombatDisportingRegard.disappointedConcludeGarment = self.disappointedConcludeGarment; + [self.chamberCombatDisportingRegard prohibitipositionDeficitSquadEarn:self.deficitSquadEarn disappointedSquadEarn:self.disappointedSquadEarn]; + [MKJPopup popupRegard:self.chamberCombatDisportingRegard style:MKJPopupStyleAlert]; + } +} + +#pragma mark - Getters And Setters +- (void)setMicQueue:(NSMutableDictionary *)micQueue { + _micQueue = micQueue; + if (self.chamberCombatAbstract.pkStatus != ChamberCombatPositionGenre_Playing) { + NSMutableArray * redArray = [NSMutableArray array]; + NSMutableArray * blueArray = [NSMutableArray array]; + for (int i = 0 ; i < _micQueue.allValues.count; i++) { + MiecreoscoopeMHTueueMatrix * micModel = [_micQueue.allValues secureGroalTowardsIndictowardsrix1:i]; + if (micModel.userInfo && micModel.userInfo.uid > 0) { + ConsumerAbstractMatrix * userInfo = micModel.userInfo; + if (userInfo.groupType == GroupGenre_Red) { + ChamberCombatChooseConsumerMatrix * redInfo = [[ChamberCombatChooseConsumerMatrix alloc] init]; + redInfo.avatar = userInfo.avatar; + redInfo.uid = [NSString stringWithFormat:@"%ld", userInfo.uid]; + redInfo.nick = userInfo.nick; + redInfo.groupType = userInfo.groupType; + redInfo.position = micModel.microState.position; + [redArray addObject:redInfo]; + } else if(userInfo.groupType == GroupGenre_Blue) { + ChamberCombatChooseConsumerMatrix * blueInfo = [[ChamberCombatChooseConsumerMatrix alloc] init]; + blueInfo.avatar = userInfo.avatar; + blueInfo.nick = userInfo.nick; + blueInfo.uid = [NSString stringWithFormat:@"%ld", userInfo.uid]; + blueInfo.groupType = userInfo.groupType; + blueInfo.position = micModel.microState.position; + [blueArray addObject:blueInfo]; + } + } + } + self.deficitConcludeGarment = redArray.copy; + self.disappointedConcludeGarment = blueArray.copy; + } +} + + +- (void)setIsManager:(BOOL)isManager { + _isManager = isManager; + [self shankBeginBtutonDeclare]; + self.chamberCombatDisportingRegard.isManager = _isManager; +} + +- (void)setDeficitConcludeGarment:(NSArray *)deficitConcludeGarment { + _deficitConcludeGarment = deficitConcludeGarment; + self.deficitSquadRegard.consumerGarment = _deficitConcludeGarment; + self.chamberCombatDisportingRegard.deficitConcludeGarment = _deficitConcludeGarment; +} + +- (void)setDisappointedConcludeGarment:(NSArray *)disappointedConcludeGarment { + _disappointedConcludeGarment = disappointedConcludeGarment; + self.disappointedSquadRegard.consumerGarment = _disappointedConcludeGarment; + self.chamberCombatDisportingRegard.disappointedConcludeGarment = _disappointedConcludeGarment; +} + +- (UIImageView *)encourageIndicateRegard { + if (!_encourageIndicateRegard) { + _encourageIndicateRegard = [[UIImageView alloc] init]; + _encourageIndicateRegard.userInteractionEnabled = YES; + _encourageIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_pk_progrss_background"]; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didBetowardsEncourageIndictowardseRecognition)]; + [_encourageIndicateRegard addGestureRecognizer:tap]; + } + return _encourageIndicateRegard; +} + +- (UILabel *)intratemporalSequencignation { + if (!_intratemporalSequencignation) { + _intratemporalSequencignation = [[UILabel alloc] init]; + _intratemporalSequencignation.font = [UIFont systemFontOfSize:10]; + _intratemporalSequencignation.textColor = UIColorFromRGB(0x602A06); + _intratemporalSequencignation.textAlignment = NSTextAlignmentCenter; + _intratemporalSequencignation.text= YMLocalizedString(@"YUMI_Room_PK_Progress_View_8"); + } + return _intratemporalSequencignation; +} + +- (YUMIChamberCombatFasciaboardConsumerRegard *)deficitSquadRegard { + if (!_deficitSquadRegard) { + _deficitSquadRegard = [[YUMIChamberCombatFasciaboardConsumerRegard alloc] init]; + _deficitSquadRegard.itemAltitude = 25; + _deficitSquadRegard.type = GroupGenre_Red; + _deficitSquadRegard.delegate = self; + } + return _deficitSquadRegard; +} + +- (YUMIChamberCombatFasciaboardConsumerRegard *)disappointedSquadRegard { + if (!_disappointedSquadRegard) { + _disappointedSquadRegard = [[YUMIChamberCombatFasciaboardConsumerRegard alloc] init]; + _disappointedSquadRegard.itemAltitude = 25; + _disappointedSquadRegard.type = GroupGenre_Blue; + _disappointedSquadRegard.delegate = self; + } + return _disappointedSquadRegard; +} + +- (UIView *)progressView { + if (!_progressView) { + _progressView = [[UIView alloc] init]; + _progressView.backgroundColor = [UIColor clearColor]; + } + return _progressView; +} + +- (UIImageView *)deficitGrowthRegard { + if (!_deficitGrowthRegard) { + _deficitGrowthRegard = [[UIImageView alloc] init]; + _deficitGrowthRegard.userInteractionEnabled = YES; + _deficitGrowthRegard.image = [UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[UIColorFromRGB(0xFA96AE), UIColorFromRGB(0xE943F8)] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)]; + _deficitGrowthRegard.contentMode = UIViewContentModeScaleAspectFill; + _deficitGrowthRegard.layer.masksToBounds = YES; + } + return _deficitGrowthRegard; +} + +- (UIImageView *)disappointedGrowthRegard { + if (!_disappointedGrowthRegard) { + _disappointedGrowthRegard = [[UIImageView alloc] init]; + _disappointedGrowthRegard.userInteractionEnabled = YES; + _disappointedGrowthRegard.image = [UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[UIColorFromRGB(0x4F7AFF), UIColorFromRGB(0x44C0FE)] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)]; + _disappointedGrowthRegard.contentMode = UIViewContentModeScaleAspectFill; + _disappointedGrowthRegard.layer.masksToBounds = YES; + } + return _disappointedGrowthRegard; +} + +- (UIImageView *)growthBurlywoodRegard { + if (!_growthBurlywoodRegard) { + _growthBurlywoodRegard = [[UIImageView alloc] init]; + _growthBurlywoodRegard.userInteractionEnabled = YES; + _growthBurlywoodRegard.image = [UIImage imageNamed:@"yumi_scope_pk_progrss_line_background"]; + } + return _growthBurlywoodRegard; +} + +- (UILabel *)deficitEarnSequencignation { + if (!_deficitEarnSequencignation) { + _deficitEarnSequencignation = [[UILabel alloc] init]; + _deficitEarnSequencignation.text = @"0"; + _deficitEarnSequencignation.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium]; + _deficitEarnSequencignation.textColor = UIColor.whiteColor; + _deficitEarnSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _deficitEarnSequencignation; +} + +- (UILabel *)disappointedEarnSequencignation { + if (!_disappointedEarnSequencignation) { + _disappointedEarnSequencignation = [[UILabel alloc] init]; + _disappointedEarnSequencignation.text = @"0"; + _disappointedEarnSequencignation.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium]; + _disappointedEarnSequencignation.textColor = UIColor.whiteColor; + _disappointedEarnSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _disappointedEarnSequencignation; +} + +- (UIButton *)beginBtuton { + if (!_beginBtuton) { + _beginBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_beginBtuton setTitle:@"开始PK" forState:UIControlStateNormal]; + [_beginBtuton setTitleColor:UIColorFromRGB(0x602A06) forState:UIControlStateNormal]; + _beginBtuton.titleLabel.font = [UIFont systemFontOfSize:15]; + [_beginBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[UIColorFromRGB(0xFFDAA8), UIColorFromRGB(0xFFBD64)] gradientType:GradientGenreUpleftToLowright imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + _beginBtuton.layer.masksToBounds = YES; + _beginBtuton.layer.cornerRadius = 12; + _beginBtuton.hidden = YES; + [_beginBtuton addTarget:self action:@selector(instituteBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _beginBtuton; +} + +- (YUMIChamberCombatDisportingRegard *)chamberCombatDisportingRegard { + if (!_chamberCombatDisportingRegard) { + _chamberCombatDisportingRegard = [[YUMIChamberCombatDisportingRegard alloc] init]; + _chamberCombatDisportingRegard.delegate = self; + } + return _chamberCombatDisportingRegard; +} + + +@end diff --git a/YuMi/Modules/YMRoom/View/RoomPK/View/YUMIChamberCombatReflectionRegardGovernancer.h b/YuMi/Modules/YMRoom/View/RoomPK/View/YUMIChamberCombatReflectionRegardGovernancer.h new file mode 100644 index 00000000..63e2db9d --- /dev/null +++ b/YuMi/Modules/YMRoom/View/RoomPK/View/YUMIChamberCombatReflectionRegardGovernancer.h @@ -0,0 +1,16 @@ +// +// YMRoomPKRecordViewController.h +// YUMI +// +// Created by YUMI on 2022/3/18. +// + +#import "MvpRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIChamberCombatReflectionRegardGovernancer : MvpRegardGovernancer +@property (nonatomic,copy) NSString *roomUid; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/RoomPK/View/YUMIChamberCombatReflectionRegardGovernancer.m b/YuMi/Modules/YMRoom/View/RoomPK/View/YUMIChamberCombatReflectionRegardGovernancer.m new file mode 100644 index 00000000..b10aa360 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/RoomPK/View/YUMIChamberCombatReflectionRegardGovernancer.m @@ -0,0 +1,160 @@ +// +// YMRoomPKRecordViewController.m +// YUMI +// +// Created by YUMI on 2022/3/18. +// + +#import "YUMIChamberCombatReflectionRegardGovernancer.h" +#import +#import +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" +#import "NSArray+Safe.h" +#import "ChamberCombatReflectionMatrix.h" +#import "YUMIChamberCombatReflectionTabulationRegardElement.h" +#import "YUMIChamberCombatDispossessTabulationRegardElement.h" +#import "YUMIChamberCombatReflectionExternalizer.h" +#import "FBCChamberCombatRecordCeremony.h" +@interface YUMIChamberCombatReflectionRegardGovernancer () +@property (nonatomic,strong) UITableView *tableView; +@property (nonatomic,strong) NSMutableArray *datasource; +@property (nonatomic,assign) int page; +@property (nonatomic,assign) BOOL hasFurthaerAtoloudspeaker; +@end + +@implementation YUMIChamberCombatReflectionRegardGovernancer + +- (YUMIChamberCombatReflectionExternalizer *)producePresimport { + return [[YUMIChamberCombatReflectionExternalizer alloc] init];; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initIntelligencerGrantedTerminalerRrfresh]; + [self initSubViews]; + [self initChildLyRestrictions]; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.title = YMLocalizedString(@"YUMI_Room_PK_Record_View_Controller_0"); + [self.view addSubview:self.tableView]; +} + +- (void)initChildLyRestrictions { + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.view); + }]; +} + +- (void)initIntelligencerGrantedTerminalerRrfresh { + self.hasFurthaerAtoloudspeaker = YES; + MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(intelligenceerRenovtowardseh)]; + header.stateLabel.font = [UIFont systemFontOfSize:10.0]; + header.lastUpdatedTimeLabel.font = [UIFont systemFontOfSize:10.0]; + header.stateLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + header.lastUpdatedTimeLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + self.tableView.mj_header = header; + + MJRefreshBackNormalFooter *footer = [MJRefreshBackNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(footerRenovtowardseh)]; + footer.stateLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + footer.stateLabel.font = [UIFont systemFontOfSize:10.0]; + self.tableView.mj_footer = footer; + + [self intelligenceerRenovtowardseh]; +} + +- (void)intelligenceerRenovtowardseh { + self.page = 1; + [self.presimport acquireChamberCombatReflectionSttowardsement:self.roomUid page:self.page pageSize:20 state:0]; +} + +- (void)footerRenovtowardseh { + if (!self.hasFurthaerAtoloudspeaker) { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_Room_PK_Record_View_Controller_1")]; + return; + } + self.page++; + [self.presimport acquireChamberCombatReflectionSttowardsement:self.roomUid page:self.page pageSize:20 state:1]; +} + + +#pragma mark - UITableViewDelegate And UITableViewDataSource +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.datasource.count > 0 ? self.datasource.count : 1; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + if (self.datasource.count > 0) { + return 170; + } + return (KScreenHeight - kNavigationHeight); +} +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + if (self.datasource.count > 0) { + YUMIChamberCombatReflectionTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIChamberCombatReflectionTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIChamberCombatReflectionTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIChamberCombatReflectionTabulationRegardElement class])]; + } + ChamberCombatReflectionMatrix * reflectionMatrix = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + cell.combatSpecificAbstract = reflectionMatrix; + return cell; + } + + YUMIChamberCombatDispossessTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIChamberCombatDispossessTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIChamberCombatDispossessTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIChamberCombatDispossessTabulationRegardElement class])]; + } + return cell; +} + +#pragma mark - FBCChamberCombatRecordCeremony +- (void)acquireChamberCombatReflectionSttowardsementFlunk:(NSString *)message state:(int)state { + if (state == 0) { + [self.tableView.mj_header endRefreshing]; + } else { + [self.tableView.mj_header endRefreshing]; + } +} + +- (void)acquireChamberCombatReflectionSttowardsementAccomplishment:(NSArray *)recordList state:(int)state { + if (state == 0) { + [self.datasource removeAllObjects]; + [self.tableView.mj_header endRefreshing]; + } else { + [self.tableView.mj_footer endRefreshing]; + } + self.hasFurthaerAtoloudspeaker = recordList.count > 0; + if (recordList.count > 0) { + [self.datasource addObjectsFromArray:recordList]; + } + [self.tableView reloadData]; +} +#pragma mark - Getters And Setters +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.tableFooterView = [UIView new]; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.backgroundColor = [UIColor clearColor]; + if (@available(iOS 11.0, *)) { + _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + [_tableView registerClass:[YUMIChamberCombatReflectionTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIChamberCombatReflectionTabulationRegardElement class])]; + [_tableView registerClass:[YUMIChamberCombatDispossessTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIChamberCombatDispossessTabulationRegardElement class])]; + } + return _tableView; +} + +- (NSMutableArray *)datasource { + if (!_datasource) { + _datasource = [NSMutableArray array]; + } + return _datasource; +} + + +@end diff --git a/YuMi/Modules/YMRoom/View/RoomPK/View/YUMIChamberCombatRegardGovernancer.h b/YuMi/Modules/YMRoom/View/RoomPK/View/YUMIChamberCombatRegardGovernancer.h new file mode 100644 index 00000000..c2a720fc --- /dev/null +++ b/YuMi/Modules/YMRoom/View/RoomPK/View/YUMIChamberCombatRegardGovernancer.h @@ -0,0 +1,16 @@ +// +// YMRoomPKViewController.h +// YUMI +// +// Created by YUMI on 2022/3/17. +// + +#import "MvpRegardGovernancer.h" +#import "ChamberHostRepresendtation.h" +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIChamberCombatRegardGovernancer : MvpRegardGovernancer +- (instancetype)initWithDelegate:(id)delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/RoomPK/View/YUMIChamberCombatRegardGovernancer.m b/YuMi/Modules/YMRoom/View/RoomPK/View/YUMIChamberCombatRegardGovernancer.m new file mode 100644 index 00000000..7e313fc8 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/RoomPK/View/YUMIChamberCombatRegardGovernancer.m @@ -0,0 +1,490 @@ +// +// YMRoomPKViewController.m +// YUMI +// +// Created by YUMI on 2022/3/17. +// + +#import "YUMIChamberCombatRegardGovernancer.h" +#import +#import "MKJPopup.h" +#import "YUMIMacroUitls.h" +#import "DJDKMIMOMColor.h" +#import "UIImage+Utils.h" +#import "NSObject+MJExtension.h" +#import "NSArray+Safe.h" +#import "ChamberCombatIntratemporalProvisionMatrix.h" +#import "ChamberAbstractMatrix.h" +#import "ChamberCombatChooseConsumerMatrix.h" +#import "AttachmentMatrix.h" +#import "ChamberCombatChooseConsumerMatrix.h" +#import "YUMIChamberCombatVoteTabulationRegardElement.h" +#import "YUMIChamberCombatGenreTabulationRegardElement.h" +#import "YUMIChamberCombatIntratemporalTabulationRegardElement.h" +#import "YUMIChamberCombatConsumerRegard.h" +#import "YUMIChamberCombatIntratemporalPickerRegard.h" +#import "YUMIChamberCombatReflectionRegardGovernancer.h" +#import "YUMIChamberCombatChosenConsumerRegard.h" +#import "YUMIChamberCombatExternalizer.h" +#import "FBCChamberCombatCeremony.h" +@interface YUMIChamberCombatRegardGovernancer () +@property (nonatomic,strong) UIView * consumerAccommoengagementdRegard; +@property (nonatomic,strong) NSArray *deficitSquadRegards; +@property (nonatomic,strong) NSArray *disappointedSquadRegards; +@property (nonatomic,strong) UIImageView *chamberCombatBrandIndicateRegard; +@property (nonatomic,strong) UITableView *tableView; +@property (nonatomic,strong) UIStackView *produceCombatHierarchyRegard; +@property (nonatomic,strong) UIButton *produceCombatBtuton; +@property (nonatomic,strong) UIButton *onceFurthaeroverCombatBtuton; +@property (nonatomic,strong) UIButton *concludeCombatBtuton; +@property (nonatomic,assign) id hostRepresedtation; +@property (nonatomic,assign) ChamberCombatVoteModeGenre voteGenre; +@property (nonatomic,assign) int duraIntratemporal; +@property (nonatomic,strong) NSMutableArray *deficitConsumerGarment; +@property (nonatomic,strong) NSMutableArray *disappointedConsumerGarment; +@end + +@implementation YUMIChamberCombatRegardGovernancer + +- (YUMIChamberCombatExternalizer *)producePresimport { + return [[YUMIChamberCombatExternalizer alloc] init]; +} + +- (instancetype)initWithDelegate:(id)delegate { + if (self = [super init]) { + self.hostRepresedtation = delegate; + } + return self; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initSubViews]; + [self initChildLyRestrictions]; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.title = @"创建PK"; + self.duraIntratemporal = 30; + self.voteGenre = ChamberCombatVoteModeGenre_GiftValue; + NSArray * array = self.hostRepresedtation.acquireChamberCombatGroupSquadSttowardsement; + self.deficitConsumerGarment = [array secureGroalTowardsIndictowardsrix1:0]; + self.disappointedConsumerGarment = [array secureGroalTowardsIndictowardsrix1:1]; + for (ChamberCombatChooseConsumerMatrix * userInfo in self.deficitConsumerGarment) { + userInfo.groupType = GroupGenre_default; + } + + for (ChamberCombatChooseConsumerMatrix * userInfo in self.disappointedConsumerGarment) { + userInfo.groupType = GroupGenre_default; + } + + [self accelertowardseBreeadcrumbProvisionAboutChampions:@[YMLocalizedString(@"YUMI_Room_PK_View_Controller_1")] titleColor:[DJDKMIMOMColor mainEssayPrettify] isContrary:NO target:self action:@selector(rectifyNevPerformance:) tags:nil]; + [self.view addSubview:self.consumerAccommoengagementdRegard]; + [self.view addSubview:self.tableView]; + [self.view addSubview:self.produceCombatHierarchyRegard]; + + [self.produceCombatHierarchyRegard addArrangedSubview:self.produceCombatBtuton]; + [self.produceCombatHierarchyRegard addArrangedSubview:self.onceFurthaeroverCombatBtuton]; + [self.produceCombatHierarchyRegard addArrangedSubview:self.concludeCombatBtuton]; + + [self.consumerAccommoengagementdRegard addSubview:self.chamberCombatBrandIndicateRegard]; + [self initConsumerAccommoengagementdChildLys]; + + + if (self.hostRepresedtation.acquireChamberAbstract.roomModeType == ChamberModeGenre_Open_PK_Mode) { + self.onceFurthaeroverCombatBtuton.hidden = NO; + self.concludeCombatBtuton.hidden = NO; + self.produceCombatBtuton.hidden = YES; + } else { + self.produceCombatBtuton.hidden = NO; + } +} + +- (void)initChildLyRestrictions { + YUMIChamberCombatConsumerRegard * consumerRegard = [self.deficitSquadRegards lastObject]; + [self.consumerAccommoengagementdRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.view); + make.top.mas_equalTo(self.view).offset(10); + make.bottom.mas_equalTo(consumerRegard.mas_bottom).offset(20); + }]; + + [self.chamberCombatBrandIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.center.mas_equalTo(self.consumerAccommoengagementdRegard); + make.width.mas_equalTo(43); + make.height.mas_equalTo(64); + }]; + + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.mas_equalTo(self.view); + make.top.mas_equalTo(self.consumerAccommoengagementdRegard.mas_bottom); + }]; + + [self.produceCombatHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.view).inset(47); + make.bottom.mas_equalTo(self.view).offset(-kSafeAreaBottomHeight - 20); + }]; + + [self.produceCombatBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(44); + }]; + + [self.onceFurthaeroverCombatBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(44); + }]; + + [self.concludeCombatBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(44); + }]; +} + +- (void)initConsumerAccommoengagementdChildLys { + CGFloat itemWidth = 60; + CGFloat itemAltitude = 67; + CGFloat pkItemWidth = 72; + CGFloat pkItemMargeHeight = 10; + CGFloat itemSpace = (KScreenWidth - itemWidth * 4 - 72 - 13 * 2)/ 2; + NSMutableArray * redArray = [NSMutableArray array]; + for (int i = 0; i< 4; i++) { + YUMIChamberCombatConsumerRegard * redView = [[YUMIChamberCombatConsumerRegard alloc] init]; + [redArray addObject:redView]; + redView.type = ChamberCombatConsumerRegardGenre_Red; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(deficitDidBetowardsRecognition:)]; + [redView addGestureRecognizer:tap]; + [self.consumerAccommoengagementdRegard addSubview:redView]; + [redView mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(itemWidth, itemAltitude)); + make.left.mas_equalTo(self.consumerAccommoengagementdRegard).offset(13+ i % 2 * (itemWidth + itemSpace)); + make.top.mas_equalTo(self.consumerAccommoengagementdRegard).offset(i / 2 *(itemAltitude + pkItemMargeHeight)); + }]; + } + self.deficitSquadRegards = [redArray copy]; + + NSMutableArray * blueArray = [NSMutableArray array]; + for (int i = 0; i< 4; i++) { + YUMIChamberCombatConsumerRegard * blueView = [[YUMIChamberCombatConsumerRegard alloc] init]; + [blueArray addObject:blueView]; + blueView.type = ChamberCombatConsumerRegardGenre_Blue; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(prohibitiaplictowardsionointedDidBetowardsRecognition:)]; + [blueView addGestureRecognizer:tap]; + [self.consumerAccommoengagementdRegard addSubview:blueView]; + [blueView mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(itemWidth, itemAltitude)); + make.left.mas_equalTo(self.consumerAccommoengagementdRegard).offset(13 + itemWidth * 2 + itemSpace + pkItemWidth + i % 2 * (itemWidth + itemSpace)); + make.top.mas_equalTo(self.consumerAccommoengagementdRegard).offset(i / 2 *(itemAltitude + pkItemMargeHeight)); + }]; + } + self.disappointedSquadRegards = [blueArray copy]; +} + +#pragma mark - UITableViewDelegate And UITableViewDataSource +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return 3; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + return 50; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + if (indexPath.row == 0) { + YUMIChamberCombatGenreTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIChamberCombatGenreTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIChamberCombatGenreTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIChamberCombatGenreTabulationRegardElement class])]; + } + return cell; + } else if(indexPath.row == 1) { + YUMIChamberCombatVoteTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIChamberCombatVoteTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIChamberCombatVoteTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIChamberCombatVoteTabulationRegardElement class])]; + } + cell.delegate = self; + return cell; + } else { + YUMIChamberCombatIntratemporalTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIChamberCombatIntratemporalTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIChamberCombatIntratemporalTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIChamberCombatIntratemporalTabulationRegardElement class])]; + } + return cell; + } +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + [tableView deselectRowAtIndexPath:indexPath animated:YES]; + if (indexPath.row == 2) { + YUMIChamberCombatIntratemporalPickerRegard * timePicker = [[YUMIChamberCombatIntratemporalPickerRegard alloc] init]; + timePicker.delegate = self; + [MKJPopup popupRegard:timePicker style:MKJPopupStyleActionSheet]; + } +} +#pragma mark - FBCChamberCombatTimePickerRegardRepresendtation +- (void)yUMIChamberCombatIntrtowardsemporalExtracterRegard:(YUMIChamberCombatIntratemporalPickerRegard *)view timeModel:(ChamberCombatIntratemporalProvisionMatrix *)model { + YUMIChamberCombatIntratemporalTabulationRegardElement * cell = [self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:2 inSection:0]]; + self.duraIntratemporal = model.time; + cell.time = model.title; +} + +#pragma mark - FBCChamberCombatVoteTabulationViweElementRepresendtation +- (void)yUMIChamberCombatVoteTarbsultowardsionViweElement:(YUMIChamberCombatVoteTabulationRegardElement *)view didChooseVoteType:(ChamberCombatVoteModeGenre)VoteType { + self.voteGenre = VoteType; +} + +#pragma mark - FBCChamberCombatChosenConsumerRegardRepresendtation +- (void)yUMIChamberCombatChosenConsumerRegard:(YUMIChamberCombatChosenConsumerRegard *)view groupType:(GroupGenre)groupType didChooseUserInfos:(NSArray *)userInfos { + [MKJPopup dismiss]; + if (groupType == GroupGenre_Red) { + self.deficitConsumerGarment = [NSMutableArray arrayWithArray:userInfos];; + } else { + self.disappointedConsumerGarment = [NSMutableArray arrayWithArray:userInfos]; + } + + if (self.deficitConsumerGarment.count > 0) { + for (int i = 0; i< self.deficitSquadRegards.count; i++) { + YUMIChamberCombatConsumerRegard * consumerRegard = [self.deficitSquadRegards secureGroalTowardsIndictowardsrix1:i]; + consumerRegard.userInfo = nil; + } + } + + if (self.disappointedConsumerGarment.count > 0) { + for (int i = 0; i< self.disappointedSquadRegards.count; i++) { + YUMIChamberCombatConsumerRegard * consumerRegard = [self.disappointedSquadRegards secureGroalTowardsIndictowardsrix1:i]; + consumerRegard.userInfo = nil; + } + } + + + for (int i = 0; i < self.deficitConsumerGarment.count; i++) { + ChamberCombatChooseConsumerMatrix * userInfo = [self.deficitConsumerGarment secureGroalTowardsIndictowardsrix1:i]; + if (i < self.deficitSquadRegards.count) { + YUMIChamberCombatConsumerRegard * consumerRegard = [self.deficitSquadRegards secureGroalTowardsIndictowardsrix1:i]; + if (userInfo.groupType == GroupGenre_Red) { + consumerRegard.userInfo = userInfo; + } else { + consumerRegard.userInfo = nil; + [self.deficitConsumerGarment removeObject:userInfo]; + } + } + } + for (int i = 0; i < self.disappointedConsumerGarment.count; i++) { + ChamberCombatChooseConsumerMatrix * userInfo = [self.disappointedConsumerGarment secureGroalTowardsIndictowardsrix1:i]; + if (i < self.disappointedSquadRegards.count) { + YUMIChamberCombatConsumerRegard * consumerRegard = [self.disappointedSquadRegards secureGroalTowardsIndictowardsrix1:i]; + if (userInfo.groupType == GroupGenre_Blue) { + consumerRegard.userInfo = userInfo; + } else { + consumerRegard.userInfo = nil; + [self.disappointedConsumerGarment removeObject:userInfo]; + } + } + } +} + +#pragma mark - FBCChamberCombatCeremony +- (void)unfoildChamberCombatAccomplishment { + NSString * roomUid = [NSString stringWithFormat:@"%ld", self.hostRepresedtation.acquireChamberAbstract.uid]; + [self.presimport produceChamberCombatManner:2 voteMode:self.voteGenre duration:self.duraIntratemporal roomUid:roomUid]; +} + +- (void)concludeChamberCombatAccomplishment { + [self.navigationController popViewControllerAnimated:YES]; +} + +- (void)produceChamberCombatAccomplishment:(ChamberCombatAbstractMatrix *)roompkInfo { + [self EvidenceAccomplishmentToast:YMLocalizedString(@"YUMI_Room_PK_View_Controller_2")]; + if (self.deficitConsumerGarment.count > 0 || self.disappointedConsumerGarment.count > 0) { + NSMutableDictionary * dic = [NSMutableDictionary dictionary]; + for (int i = 0 ; i< self.deficitConsumerGarment.count; i++) { + ChamberCombatChooseConsumerMatrix * model = [self.deficitConsumerGarment secureGroalTowardsIndictowardsrix1:i]; + if (model.uid.integerValue <= 0) { + continue; + } + NSMutableDictionary * data =[[model mtowardsrix2dictionary] mutableCopy]; + [data removeObjectForKey:@"title"]; + [data removeObjectForKey:@"imageName"]; + [data removeObjectForKey:@"userUrl"]; + [data removeObjectForKey:@"isSelect"]; + [data removeObjectForKey:@"isEnableChoose"]; + [dic setValue:data forKey:model.uid]; + } + + for (int i = 0 ; i< self.disappointedConsumerGarment.count; i++) { + ChamberCombatChooseConsumerMatrix * model = [self.disappointedConsumerGarment secureGroalTowardsIndictowardsrix1:i]; + if (model.uid.integerValue <= 0) { + continue; + } + NSMutableDictionary * data =[[model mtowardsrix2dictionary] mutableCopy]; + [data removeObjectForKey:@"title"]; + [data removeObjectForKey:@"imageName"]; + [data removeObjectForKey:@"userUrl"]; + [data removeObjectForKey:@"isSelect"]; + [data removeObjectForKey:@"isEnableChoose"]; + [dic setValue:data forKey:model.uid]; + } + + if (dic.allKeys.count > 0) { + AttachmentMatrix * attachment = [[AttachmentMatrix alloc] init]; + attachment.first = IndividualityCommunicationGenre_Room_PK; + attachment.second = Custom_Message_Sub_Room_PK_Manager_Up_Mic; + attachment.data = dic; + NSString *sessionID = [NSString stringWithFormat:@"%ld", self.hostRepresedtation.acquireChamberAbstract.roomId]; + NIMMessage *message = [[NIMMessage alloc]init]; + NIMCustomObject *object = [[NIMCustomObject alloc] init]; + object.attachment = attachment; + message.messageObject = object; + + NIMSession *session = [NIMSession session:sessionID type:NIMSessionTypeChatroom]; + [[NIMSDK sharedSDK].chatManager sendMessage:message toSession:session error:nil]; + } + } + [self.navigationController popViewControllerAnimated:YES]; +} + +#pragma mark - Event Response +- (void)produceCombatBtutonPerformance:(UIButton *)sender { + NSString * roomUid = [NSString stringWithFormat:@"%ld", self.hostRepresedtation.acquireChamberAbstract.uid]; + [self.presimport unfoildChamberCombat:roomUid]; +} + +- (void)concludeCombatBtutonPerformance:(UIButton *)sender { + NSString * title = @"结束PK,会关闭现在进行的PK并恢复普通房间模式,确定关闭当前PK吗?"; + [MKJPopup precautiousAboutCommunictowardsion:title acknowledgementHandler:^{ + NSString * roomUid = [NSString stringWithFormat:@"%ld", self.hostRepresedtation.acquireChamberAbstract.uid]; + [self.presimport concludeChamberCombat:roomUid]; + } cancelHandler:^{ + + }]; + +} + +- (void)onceAgainCombatBtutonPerformance:(UIButton *)sender { + NSString * title = @"创建此PK,会覆盖现在进行的PK,\n 确定覆盖当前PK吗?"; + [MKJPopup precautiousAboutCommunictowardsion:title acknowledgementHandler:^{ + NSString * roomUid = [NSString stringWithFormat:@"%ld", self.hostRepresedtation.acquireChamberAbstract.uid]; + [self.presimport produceChamberCombatManner:2 voteMode:self.voteGenre duration:self.duraIntratemporal roomUid:roomUid]; + } cancelHandler:^{ + + }]; +} + +- (void)rectifyNevPerformance:(UIButton *)sender { + YUMIChamberCombatReflectionRegardGovernancer * recordVC = [[YUMIChamberCombatReflectionRegardGovernancer alloc] init]; + recordVC.roomUid = [NSString stringWithFormat:@"%ld", self.hostRepresedtation.acquireChamberAbstract.uid]; + [self.navigationController pushViewController:recordVC animated:YES]; +} + +- (void)deficitDidBetowardsRecognition:(UITapGestureRecognizer *)tap { + YUMIChamberCombatChosenConsumerRegard * chooseUserView = [[YUMIChamberCombatChosenConsumerRegard alloc] init]; + chooseUserView.delegate = self; + chooseUserView.deficitConsumerGarment = self.deficitConsumerGarment; + chooseUserView.disappointedConsumerGarment = self.disappointedConsumerGarment; + chooseUserView.groupType = GroupGenre_Red; + chooseUserView.miecreoscoopeFormationGarment = self.hostRepresedtation.acquireMiecreoscoopeInthecaseofmtowardsion.allValues; + [MKJPopup popupRegard:chooseUserView style:MKJPopupStyleAlert]; +} + +- (void)prohibitiaplictowardsionointedDidBetowardsRecognition:(UITapGestureRecognizer *)tap { + YUMIChamberCombatChosenConsumerRegard * chooseUserView = [[YUMIChamberCombatChosenConsumerRegard alloc] init]; + chooseUserView.delegate = self; + chooseUserView.deficitConsumerGarment = self.deficitConsumerGarment; + chooseUserView.disappointedConsumerGarment = self.disappointedConsumerGarment; + chooseUserView.groupType = GroupGenre_Blue; + chooseUserView.miecreoscoopeFormationGarment = self.hostRepresedtation.acquireMiecreoscoopeInthecaseofmtowardsion.allValues; + [MKJPopup popupRegard:chooseUserView style:MKJPopupStyleAlert]; +} + +#pragma mark - Getters And Setters +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.tableFooterView = [UIView new]; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.backgroundColor = [UIColor clearColor]; + _tableView.scrollEnabled = NO; + if (@available(iOS 11.0, *)) { + _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + [_tableView registerClass:[YUMIChamberCombatVoteTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIChamberCombatVoteTabulationRegardElement class])]; + [_tableView registerClass:[YUMIChamberCombatGenreTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIChamberCombatGenreTabulationRegardElement class])]; + [_tableView registerClass:[YUMIChamberCombatIntratemporalTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIChamberCombatIntratemporalTabulationRegardElement class])]; + } + return _tableView; +} + +- (UIStackView *)produceCombatHierarchyRegard { + if (!_produceCombatHierarchyRegard) { + _produceCombatHierarchyRegard = [[UIStackView alloc] init]; + _produceCombatHierarchyRegard.axis = UILayoutConstraintAxisVertical; + _produceCombatHierarchyRegard.distribution = UIStackViewDistributionFill; + _produceCombatHierarchyRegard.alignment = UIStackViewAlignmentFill; + _produceCombatHierarchyRegard.spacing = 10; + } + return _produceCombatHierarchyRegard; +} + +- (UIButton *)produceCombatBtuton { + if (!_produceCombatBtuton) { + _produceCombatBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_produceCombatBtuton setTitle:YMLocalizedString(@"YUMI_Room_PK_View_Controller_5") forState:UIControlStateNormal]; + [_produceCombatBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + _produceCombatBtuton.titleLabel.font = [UIFont systemFontOfSize:15]; + [_produceCombatBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + _produceCombatBtuton.layer.masksToBounds = YES; + _produceCombatBtuton.layer.cornerRadius = 22; + [_produceCombatBtuton addTarget:self action:@selector(produceCombatBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _produceCombatBtuton; +} + +- (UIButton *)onceFurthaeroverCombatBtuton { + if (!_onceFurthaeroverCombatBtuton) { + _onceFurthaeroverCombatBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_onceFurthaeroverCombatBtuton setTitle:YMLocalizedString(@"YUMI_Room_PK_View_Controller_6") forState:UIControlStateNormal]; + [_onceFurthaeroverCombatBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + _onceFurthaeroverCombatBtuton.titleLabel.font = [UIFont systemFontOfSize:15]; + [_onceFurthaeroverCombatBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + _onceFurthaeroverCombatBtuton.layer.masksToBounds = YES; + _onceFurthaeroverCombatBtuton.layer.cornerRadius = 22; + [_onceFurthaeroverCombatBtuton addTarget:self action:@selector(onceAgainCombatBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + _onceFurthaeroverCombatBtuton.hidden = YES; + } + return _onceFurthaeroverCombatBtuton; +} + +- (UIButton *)concludeCombatBtuton { + if (!_concludeCombatBtuton) { + _concludeCombatBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_concludeCombatBtuton setTitle:YMLocalizedString(@"YUMI_Room_PK_View_Controller_7") forState:UIControlStateNormal]; + [_concludeCombatBtuton setTitleColor:[DJDKMIMOMColor prohibitionBtutonEssayPrettify] forState:UIControlStateNormal]; + _concludeCombatBtuton.titleLabel.font = [UIFont systemFontOfSize:15]; + [_concludeCombatBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor prohibitionBtutonPrettify], [DJDKMIMOMColor prohibitionBtutonPrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + _concludeCombatBtuton.layer.masksToBounds = YES; + _concludeCombatBtuton.layer.cornerRadius = 22; + [_concludeCombatBtuton addTarget:self action:@selector(concludeCombatBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + _concludeCombatBtuton.hidden= YES; + } + return _concludeCombatBtuton; +} + + +- (UIView *)consumerAccommoengagementdRegard { + if (!_consumerAccommoengagementdRegard) { + _consumerAccommoengagementdRegard = [[UIView alloc] init]; + _consumerAccommoengagementdRegard.backgroundColor = [DJDKMIMOMColor aplictowardsionEncouragegroundPrettify]; + } + return _consumerAccommoengagementdRegard; +} + +- (UIImageView *)chamberCombatBrandIndicateRegard { + if (!_chamberCombatBrandIndicateRegard) { + _chamberCombatBrandIndicateRegard = [[UIImageView alloc] init]; + _chamberCombatBrandIndicateRegard.userInteractionEnabled = YES; + _chamberCombatBrandIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_pk_vs_logo"]; + } + return _chamberCombatBrandIndicateRegard; +} + + + +@end diff --git a/YuMi/Modules/YMRoom/View/RoomRank/ThemeColor+RoomRank.h b/YuMi/Modules/YMRoom/View/RoomRank/ThemeColor+RoomRank.h new file mode 100644 index 00000000..dea0f8ba --- /dev/null +++ b/YuMi/Modules/YMRoom/View/RoomRank/ThemeColor+RoomRank.h @@ -0,0 +1,20 @@ +// +// ThemeColor+RoomRank.h +// xplan-ios +// +// Created by 冯硕 on 2021/12/14. +// + +#import "ThemeColor.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface ThemeColor (RoomRank) ++ (UIColor *)chamberRtowardseChampionEncouragePrettify; ++ (UIColor *)chamberRtowardseChosenChampionPrettify; ++ (UIColor *)chamberRtowardseOrdinaryChampionPrettify; ++ (UIColor *)chamberRtowardseIntegralPrettify; ++ (UIColor *)chamberRtowardseMonicerPrettify; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/RoomRank/ThemeColor+RoomRank.m b/YuMi/Modules/YMRoom/View/RoomRank/ThemeColor+RoomRank.m new file mode 100644 index 00000000..b2ebf172 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/RoomRank/ThemeColor+RoomRank.m @@ -0,0 +1,35 @@ +// +// ThemeColor+RoomRank.m +// xplan-ios +// +// Created by 冯硕 on 2021/12/14. +// + +#import "ThemeColor+RoomRank.h" + +@implementation ThemeColor (RoomRank) + + ++ (UIColor *)chamberRtowardseChampionEncouragePrettify { + return UIColorRGBAlpha(0xFFFFFF, 0.2); +} + ++ (UIColor *)chamberRtowardseChosenChampionPrettify { + return UIColorFromRGB(0x7898F3); +} + ++ (UIColor *)chamberRtowardseOrdinaryChampionPrettify { + return UIColorRGBAlpha(0xFFFFFF, 0.6); +} + ++ (UIColor *)chamberRtowardseIntegralPrettify { + return UIColorFromRGB(0xFF7979); +} + ++ (UIColor *)chamberRtowardseMonicerPrettify { + return UIColorFromRGB(0xFFFFFF); +} + + + +@end diff --git a/YuMi/Modules/YMRoom/View/RoomRank/View/Cell/YUMIChamberRateTabulationRegardElement.m b/YuMi/Modules/YMRoom/View/RoomRank/View/Cell/YUMIChamberRateTabulationRegardElement.m new file mode 100644 index 00000000..c8dd6e63 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/RoomRank/View/Cell/YUMIChamberRateTabulationRegardElement.m @@ -0,0 +1,165 @@ +// +// YUMIChamberRateTabulationRegardElement.m +// xplan-ios +// +// Created by 冯硕 on 2021/12/14. +// + +#import "YUMIChamberRateTabulationRegardElement.h" +#import +#import "ThemeColor+RoomRank.h" +#import "NetIndicateRegard.h" +#import "RoomRankModel.h" +@interface YUMIChamberRateTabulationRegardElement () +@property (nonatomic, strong) UILabel *rateSequencignation; +@property (nonatomic, strong) NetIndicateRegard *intelligenceportraitIndicateRegard; +@property (nonatomic, strong) UIImageView *genderIndicateRegard; +@property (nonatomic, strong) UILabel *monicerConstituteSequencignation; +@property (nonatomic, strong) UILabel *idSequencignation; +@property (nonatomic, strong) UILabel *tangerineDigitalSequencignation; +@end + +@implementation YUMIChamberRateTabulationRegardElement + + +#pragma mark - Life Style +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier{ + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + self.autoresizingMask = UIViewAutoresizingNone; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self setupChildLy]; + [self setupRestrictions]; + } + return self; +} + +#pragma mark - Private +- (void)setupChildLy { + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.rateSequencignation]; + [self.contentView addSubview:self.intelligenceportraitIndicateRegard]; + [self.contentView addSubview:self.monicerConstituteSequencignation]; + [self.contentView addSubview:self.genderIndicateRegard]; + [self.contentView addSubview:self.idSequencignation]; + [self.contentView addSubview:self.tangerineDigitalSequencignation]; +} +- (void)setupRestrictions{ + [self.rateSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(15); + make.centerY.mas_equalTo(0); + make.width.mas_equalTo(50); + make.height.mas_equalTo(20); + }]; + + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.equalTo(@50); + make.left.equalTo(self.rateSequencignation.mas_right).offset(10); + make.centerY.equalTo(self.contentView); + }]; + + [self.monicerConstituteSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_right).offset(16); + make.bottom.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_centerY).offset(-1.5); + }]; + + [self.genderIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.monicerConstituteSequencignation.mas_right).offset(3); + make.centerY.mas_equalTo(self.monicerConstituteSequencignation); + make.width.height.mas_equalTo(13); + }]; + + [self.idSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_centerY).offset(1.5); + make.left.mas_equalTo(self.monicerConstituteSequencignation); + make.right.mas_lessThanOrEqualTo(self.tangerineDigitalSequencignation.mas_left).offset(-10); + }]; + + [self.tangerineDigitalSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(0); + make.right.mas_equalTo(-28); + }]; +} + + +- (void)setRtowardseMtowardsrix:(RoomRankModel *)rankModel { + _rankModel = rankModel; + self.idSequencignation.text = [NSString stringWithFormat:@"ID:%@", rankModel.erbanNo]; + + self.rateSequencignation.text = rankModel.ranking; + + NSString *numStr = [NSString stringWithFormat:@"%@",rankModel.goldAmount]; + if (rankModel.goldAmount.doubleValue > 10000) { + CGFloat numF = [rankModel.goldAmount doubleValue] / 10000.0; + numStr = [NSString stringWithFormat:YMLocalizedString(@"YUMI_Room_Rank_Table_View_Cell_0"),numF]; + numStr = [numStr stringByReplacingOccurrencesOfString:@".0" withString:@""]; + } + self.genderIndicateRegard.image = rankModel.gender == GenderGenre_Female ? [UIImage imageNamed:@"yumi_same_female"] : [UIImage imageNamed:@"yumi_same_male"]; + self.tangerineDigitalSequencignation.text = numStr; + self.intelligenceportraitIndicateRegard.imageUrl = rankModel.avatar; + self.monicerConstituteSequencignation.text = rankModel.nick; +} +#pragma mark - Getters And Setters +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] init]; + _intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _intelligenceportraitIndicateRegard.layer.cornerRadius = 25; + _intelligenceportraitIndicateRegard.image = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceportraitIndicateRegard.contentMode = UIViewContentModeScaleAspectFill; + } + return _intelligenceportraitIndicateRegard;; +} + + +- (UILabel *)rateSequencignation { + if (!_rateSequencignation) { + _rateSequencignation = [[UILabel alloc] init]; + _rateSequencignation.font = [UIFont systemFontOfSize:18]; + _rateSequencignation.textAlignment = NSTextAlignmentCenter; + _rateSequencignation.textColor = [ThemeColor instantEssayPrettify]; + } + return _rateSequencignation; +} + +- (UIImageView *)genderIndicateRegard { + if (!_genderIndicateRegard) { + _genderIndicateRegard = [[UIImageView alloc] init]; + _genderIndicateRegard.image = [UIImage imageNamed:@"common_sex_female"]; + _genderIndicateRegard.hidden = YES; + [_genderIndicateRegard setContentCompressionResistancePriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal]; + } + return _genderIndicateRegard; +} + +- (UILabel *)monicerConstituteSequencignation { + if (!_monicerConstituteSequencignation) { + _monicerConstituteSequencignation = [[UILabel alloc] init]; + _monicerConstituteSequencignation.font = [UIFont systemFontOfSize:14]; + _monicerConstituteSequencignation.textColor = [ThemeColor mainEssayPrettify]; + } + return _monicerConstituteSequencignation; +} +- (UILabel *)idSequencignation { + if (!_idSequencignation) { + UILabel *label = [[UILabel alloc] init]; + label.font = [UIFont systemFontOfSize:12]; + label.textColor = [ThemeColor essayTertiusPrettify]; + label.textAlignment = NSTextAlignmentRight; + _idSequencignation = label; + } + return _idSequencignation; +} + +- (UILabel *)tangerineDigitalSequencignation{ + if (!_tangerineDigitalSequencignation) { + _tangerineDigitalSequencignation = [[UILabel alloc] init]; + _tangerineDigitalSequencignation.font = [UIFont systemFontOfSize:16]; + _tangerineDigitalSequencignation.textColor = [ThemeColor chamberRtowardseIntegralPrettify]; + _tangerineDigitalSequencignation.textAlignment = NSTextAlignmentRight; + [_tangerineDigitalSequencignation setContentCompressionResistancePriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal]; + } + return _tangerineDigitalSequencignation; +} + + +@end diff --git a/YuMi/Modules/YMRoom/View/RoomRank/View/SubViews/YUMIChamberRateConsumerAbstractRegard.m b/YuMi/Modules/YMRoom/View/RoomRank/View/SubViews/YUMIChamberRateConsumerAbstractRegard.m new file mode 100644 index 00000000..f53bd163 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/RoomRank/View/SubViews/YUMIChamberRateConsumerAbstractRegard.m @@ -0,0 +1,214 @@ +// +// YUMIChamberRateConsumerAbstractRegard.m +// xplan-ios +// +// Created by 冯硕 on 2021/12/14. +// + +#import "YUMIChamberRateConsumerAbstractRegard.h" +#import +#import "NetIndicateRegard.h" +#import "ThemeColor+RoomRank.h" +#import "RoomRankModel.h" + +@interface YUMIChamberRateConsumerAbstractRegard () +@property (nonatomic,strong) UIImageView *crownIndicateRegard; +@property (nonatomic,strong) NetIndicateRegard *intelligenceportraitIndicateRegard; +@property (nonatomic,strong) UIStackView *stackView; +@property (nonatomic,strong) UILabel *monicerSequencignation; +@property (nonatomic,strong) UIImageView *seaxualityIndicateRegard; +@property (nonatomic,strong) UILabel *idSequencignation; +@property (nonatomic,strong) UILabel *tangerineSequencignation; +@end + +@implementation YUMIChamberRateConsumerAbstractRegard + + +- (instancetype)initWithFrame:(CGRect)frame +{ + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +- (void)layoutSubviews { + [super layoutSubviews]; + self.intelligenceportraitIndicateRegard.layer.cornerRadius = self.intelligenceportraitIndicateRegard.bounds.size.width / 2; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.intelligenceportraitIndicateRegard]; + [self addSubview:self.crownIndicateRegard]; + [self addSubview:self.stackView]; + [self addSubview:self.idSequencignation]; + [self addSubview:self.tangerineSequencignation]; + + [self.stackView addArrangedSubview:self.monicerSequencignation]; + [self.stackView addArrangedSubview:self.seaxualityIndicateRegard]; + + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(recognizer:)]; + [self addGestureRecognizer:tap]; +} + +- (void)initChildLyRestrictions { + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.bottom.mas_equalTo(self.tangerineSequencignation.mas_bottom); + }]; + + [self.crownIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.centerX.mas_equalTo(self); + make.width.mas_equalTo(87); + make.height.mas_equalTo(99); + }]; + + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.crownIndicateRegard).inset(6); + make.bottom.mas_equalTo(self.crownIndicateRegard.mas_bottom).offset(-6); + make.height.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_width); + }]; + + [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self); + make.top.mas_equalTo(self.crownIndicateRegard.mas_bottom).offset(4); + }]; + + [self.idSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self); + make.top.mas_equalTo(self.stackView.mas_bottom).offset(1); + }]; + + [self.tangerineSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.idSequencignation.mas_bottom).offset(2); + make.left.right.mas_equalTo(self); + }]; +} + +#pragma mark - Event Response +- (void)recognizer:(UITapGestureRecognizer *)tap { + if (self.delegate && [self.delegate respondsToSelector:@selector(didTapUserInfo:)]) { + [self.delegate didTapUserInfo:self.rankModel.uid]; + } +} + +#pragma mark - Getters And Setters +- (void)setRtowardseMtowardsrix:(RoomRankModel *)rankModel { + _rankModel = rankModel; + self.idSequencignation.text = [NSString stringWithFormat:@"ID:%@", rankModel.erbanNo]; + NSString *numStr = [NSString stringWithFormat:@"%@",rankModel.goldAmount]; + if (rankModel.goldAmount.doubleValue > 10000) { + CGFloat numF = [rankModel.goldAmount doubleValue] / 10000.0; + numStr = [NSString stringWithFormat:YMLocalizedString(@"YUMI_Room_Rank_User_Info_View_0"),numF]; + numStr = [numStr stringByReplacingOccurrencesOfString:@".0" withString:@""]; + } + self.seaxualityIndicateRegard.hidden = NO; + self.seaxualityIndicateRegard.image = rankModel.gender == GenderGenre_Female ? [UIImage imageNamed:@"yumi_same_female"] : [UIImage imageNamed:@"yumi_same_male"]; + self.tangerineSequencignation.text = numStr; + self.intelligenceportraitIndicateRegard.imageUrl = rankModel.avatar; + self.monicerSequencignation.text = rankModel.nick; +} + + +- (void)setType:(RankUserInfoType)type { + NSString * crownName; + NSString * avatarPlace; + switch (type) { + case RankUserInfoType_First: + crownName = @"room_rank_crown_first"; + avatarPlace = @"room_rank_avatar_first_place"; + break; + case RankUserInfoType_Second: + crownName = @"room_rank_crown_second"; + avatarPlace = @"room_rank_avatar_second_place"; + break; + case RankUserInfoType_Third: + crownName = @"room_rank_crown_third"; + avatarPlace = @"room_rank_avatar_third_place"; + break; + default: + break; + } + + if (crownName.length >0) { + self.crownIndicateRegard.image = [UIImage imageNamed:crownName]; + } + + if (avatarPlace.length > 0) { + self.intelligenceportraitIndicateRegard.image = [UIImage imageNamed:avatarPlace]; + } + self.seaxualityIndicateRegard.hidden = YES; +} + +- (UIImageView *)crownIndicateRegard { + if (!_crownIndicateRegard) { + _crownIndicateRegard = [[UIImageView alloc] init]; + _crownIndicateRegard.userInteractionEnabled = YES; + } + return _crownIndicateRegard; +} + +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] init]; + _intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _intelligenceportraitIndicateRegard.image = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceportraitIndicateRegard.contentMode = UIViewContentModeScaleAspectFill; + } + return _intelligenceportraitIndicateRegard;; +} + +- (UIStackView *)stackView { + if (!_stackView) { + _stackView = [[UIStackView alloc] init]; + _stackView.axis = UILayoutConstraintAxisHorizontal; + _stackView.distribution = UIStackViewDistributionFill; + _stackView.alignment = UIStackViewAlignmentCenter; + _stackView.spacing = 4; + } + return _stackView; +} + +- (UILabel *)monicerSequencignation { + if (!_monicerSequencignation) { + _monicerSequencignation = [[UILabel alloc] init]; + _monicerSequencignation.textAlignment = NSTextAlignmentCenter; + _monicerSequencignation.font = [UIFont systemFontOfSize:14]; + _monicerSequencignation.text = YMLocalizedString(@"YUMI_Room_Rank_User_Info_View_1"); + _monicerSequencignation.textAlignment = NSTextAlignmentCenter; + _monicerSequencignation.textColor = [ThemeColor chamberRtowardseMonicerPrettify]; + } + return _monicerSequencignation; +} + +- (UIImageView *)seaxualityIndicateRegard { + if (!_seaxualityIndicateRegard) { + _seaxualityIndicateRegard = [[UIImageView alloc] init]; + _seaxualityIndicateRegard.userInteractionEnabled = YES; + } + return _seaxualityIndicateRegard; +} + +- (UILabel *)idSequencignation { + if (!_idSequencignation) { + _idSequencignation = [[UILabel alloc] init]; + _idSequencignation.textAlignment = NSTextAlignmentCenter; + _idSequencignation.font = [UIFont systemFontOfSize:10]; + _idSequencignation.textColor = [ThemeColor chamberRtowardseOrdinaryChampionPrettify]; + } + return _idSequencignation; +} + +- (UILabel *)tangerineSequencignation { + if (!_tangerineSequencignation) { + _tangerineSequencignation = [[UILabel alloc] init]; + _tangerineSequencignation.font = [UIFont boldSystemFontOfSize:14]; + _tangerineSequencignation.textColor = [ThemeColor chamberRtowardseIntegralPrettify]; + _tangerineSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _tangerineSequencignation; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/RoomRank/View/YUMIChamberRateRegardGovernancer.m b/YuMi/Modules/YMRoom/View/RoomRank/View/YUMIChamberRateRegardGovernancer.m new file mode 100644 index 00000000..db02fe45 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/RoomRank/View/YUMIChamberRateRegardGovernancer.m @@ -0,0 +1,220 @@ +// +// YUMIChamberRateRegardGovernancer.m +// xplan-ios +// +// Created by 冯硕 on 2021/12/14. +// + +#import "YUMIChamberRateRegardGovernancer.h" +#import +#import +#import +#import "ThemeColor+RoomRank.h" +#import "XPMacro.h" +#import "MiecreoscoopeMHTueueMatrix.h" +#import "ConsumerAbstractMatrix.h" +#import "MiecreoscoopeStateMatrix.h" +#import "ChamberAbstractMatrix.h" +#import "XPRoomDayRankViewController.h" +#import "YUMIConsumerSolitaireRegardGovernancer.h" +@interface YUMIChamberRateRegardGovernancer () +@property (nonatomic,strong) UIView * apexRegard; +@property (nonatomic,strong) UIView * encourageRegard; +@property (nonatomic, strong) NSArray *titles; +@property (nonatomic, strong) JXCategoryTitleView *titleView; +@property (nonatomic, strong) JXCategoryListContainerView *contentView; +@property (nonatomic,strong) UIImageView *intelligenceEncourageIndicateRegard; +@property (nonatomic,strong) XPRoomDayRankViewController *wealthRateVewC; +@property (nonatomic,strong) XPRoomDayRankViewController *fascinationRateVewC; +@property (nonatomic,copy) NSString *roomUid; +@property (nonatomic,weak) idhostRepresedtation; +@end + +@implementation YUMIChamberRateRegardGovernancer + +- (instancetype)initAboutChamberCid:(NSString *)roomUid delegate:(id)delegate; { + if (self = [super init]) { + self.roomUid = roomUid; + self.hostRepresedtation = delegate; + self.modalPresentationStyle = UIModalPresentationOverFullScreen; + } + return self; +} + + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initSubViews]; + [self initChildLyRestrictions]; +} + +#pragma mark - JXCategoryViewDelegate +- (NSInteger)numberOfListsInlistContainerView:(JXCategoryListContainerView *)listContainerView { + return self.titles.count; +} + +- (id)listContainerView:(JXCategoryListContainerView *)listContainerView initListForIndex:(NSInteger)index { + if (index == 0) { + return self.wealthRateVewC; + } + return self.fascinationRateVewC; +} + +#pragma mark - XPRoomRankHostDelegate +- (NSString *)acquireChamberCid { + return self.roomUid; +} + +- (void)didChosenConsumer:(NSString *)uid { + if (uid.integerValue <=0) return; + [self dismissViewControllerAnimated:YES completion:nil]; + ChamberAbstractMatrix * roomInfo = self.hostRepresedtation.acquireChamberAbstract; + NSString * targetUid = uid; + YUMIConsumerSolitaireAbstractMatrix * model = [[YUMIConsumerSolitaireAbstractMatrix alloc] init]; + [[self.hostRepresedtation.acquireMiecreoscoopeInthecaseofmtowardsion allValues] enumerateObjectsUsingBlock:^(MiecreoscoopeMHTueueMatrix * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if (uid.integerValue == obj.userInfo.uid) { + model.position = [NSString stringWithFormat:@"%d", obj.microState.position]; + model.posState = obj.microState.posState; + model.micState = obj.microState.micState; + *stop = YES; + } + }]; + model.nick = self.hostRepresedtation.getUserInfo.nick; + model.uid = targetUid; + model.roomInfo = roomInfo; + model.micQueue = self.hostRepresedtation.acquireMiecreoscoopeInthecaseofmtowardsion; + model.delegate = self.hostRepresedtation; + YUMIConsumerSolitaireRegardGovernancer * userCardVC = [[YUMIConsumerSolitaireRegardGovernancer alloc] initWithUser:model]; + [self.hostRepresedtation.acquireUniversalNev presentViewController:userCardVC animated:YES completion:nil]; +} +#pragma mark - Private Method +- (void)initSubViews { + self.view.backgroundColor = [UIColor clearColor]; + [self.view addSubview:self.apexRegard]; + [self.view addSubview:self.encourageRegard]; + + [self.encourageRegard addSubview:self.intelligenceEncourageIndicateRegard]; + [self.encourageRegard addSubview:self.titleView]; + [self.encourageRegard addSubview:self.contentView]; +} + +- (void)initChildLyRestrictions { + [self.apexRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self.view); + make.bottom.mas_equalTo(self.encourageRegard.mas_top); + }]; + + [self.encourageRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.bottom.right.mas_equalTo(self.view); + make.height.mas_equalTo(550); + }]; + + [self.titleView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.encourageRegard).inset(30); + make.height.mas_equalTo(36); + make.top.mas_equalTo(self.encourageRegard).offset(25); + }]; + + [self.contentView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.mas_equalTo(self.encourageRegard); + make.top.mas_equalTo(self.titleView.mas_bottom); + }]; + + [self.intelligenceEncourageIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.left.top.mas_equalTo(self.encourageRegard); + make.height.mas_equalTo(100); + }]; +} +#pragma mark - Event Response +- (void)prohibitiaplictowardsionarChamberRtowardseCongnizer { + [self dismissViewControllerAnimated:YES completion:nil]; +} + +#pragma mark - Getters And Setters +- (JXCategoryTitleView *)titleView { + if (!_titleView) { + _titleView = [[JXCategoryTitleView alloc] init]; + _titleView.delegate = self; + _titleView.titles = self.titles; + _titleView.layer.masksToBounds= YES; + _titleView.layer.cornerRadius = 36/2; + _titleView.backgroundColor = [ThemeColor chamberRtowardseChampionEncouragePrettify]; + _titleView.titleColor = [ThemeColor chamberRtowardseOrdinaryChampionPrettify]; + _titleView.titleSelectedColor = [ThemeColor chamberRtowardseChosenChampionPrettify]; + _titleView.titleFont = [UIFont fontWithName:@"PingFang-SC-Medium" size:15]; + _titleView.titleSelectedFont = [UIFont fontWithName:@"PingFang-SC-Medium" size:15]; + _titleView.titleLabelAnchorPointStyle = JXCategoryTitleLabelAnchorPointStyleCenter; + _titleView.contentScrollViewClickTransitionAnimationEnabled = NO; + _titleView.defaultSelectedIndex = 0; + _titleView.cellWidth = (KScreenWidth - 30* 2)/2; + _titleView.cellSpacing = 0; + _titleView.averageCellSpacingEnabled = YES; + _titleView.listContainer = self.contentView; + + JXCategoryIndicatorBackgroundView *backgroundView = [[JXCategoryIndicatorBackgroundView alloc] init]; + backgroundView.indicatorHeight = 34; + backgroundView.indicatorColor = [UIColor whiteColor]; + backgroundView.indicatorWidth = (KScreenWidth - 30* 2)/2; + backgroundView.layer.cornerRadius = 17; + backgroundView.layer.masksToBounds = YES; + _titleView.indicators = @[backgroundView]; + } + return _titleView; +} + +- (JXCategoryListContainerView *)contentView { + if (!_contentView) { + _contentView = [[JXCategoryListContainerView alloc] initWithType:JXCategoryListContainerType_ScrollView delegate:self]; + _contentView.defaultSelectedIndex = 0; + } + return _contentView; +} + +- (NSArray *)titles { + return @[@"贡献榜", YMLocalizedString(@"YUMI_Room_Rank_View_Controller_1")]; +} + +- (UIView *)apexRegard { + if (!_apexRegard) { + _apexRegard = [[UIView alloc] init]; + _apexRegard.backgroundColor = [UIColor clearColor]; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(prohibitiaplictowardsionarChamberRtowardseCongnizer)]; + [_apexRegard addGestureRecognizer:tap]; + } + return _apexRegard; +} + +- (UIView *)encourageRegard { + if (!_encourageRegard) { + _encourageRegard = [[UIView alloc] init]; + _encourageRegard.backgroundColor = [UIColor clearColor]; + } + return _encourageRegard; +} + +- (UIImageView *)intelligenceEncourageIndicateRegard { + if (!_intelligenceEncourageIndicateRegard) { + _intelligenceEncourageIndicateRegard = [[UIImageView alloc] init]; + _intelligenceEncourageIndicateRegard.userInteractionEnabled = YES; + _intelligenceEncourageIndicateRegard.image = [UIImage imageNamed:@"room_rank_header_bg"]; + } + return _intelligenceEncourageIndicateRegard; +} + +- (XPRoomDayRankViewController *)fascinationRateVewC { + if (!_fascinationRateVewC) { + _fascinationRateVewC = [[XPRoomDayRankViewController alloc] initWithDelegate:self]; + _fascinationRateVewC.type = RoomRankType_Charm; + } + return _fascinationRateVewC; +} + +- (XPRoomDayRankViewController *)wealthRateVewC { + if (!_wealthRateVewC) { + _wealthRateVewC = [[XPRoomDayRankViewController alloc] initWithDelegate:self]; + _wealthRateVewC.type = RoomRankType_Contribute; + } + return _wealthRateVewC; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/RoomRecommend/Model/YUMIChamberEncourageMatrix.h b/YuMi/Modules/YMRoom/View/RoomRecommend/Model/YUMIChamberEncourageMatrix.h new file mode 100644 index 00000000..8a466bea --- /dev/null +++ b/YuMi/Modules/YMRoom/View/RoomRecommend/Model/YUMIChamberEncourageMatrix.h @@ -0,0 +1,31 @@ +// +// YMRoomRecommendModel.h +// YUMI +// +// Created by YUMI on 2022/4/28. +// + +#import +#import "YUMINNNN.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIChamberEncourageMatrix : NSObject + +@property (nonatomic, assign) NSInteger roomId; +@property (nonatomic, assign) NSInteger uid; +@property (nonatomic, assign) NSInteger isPermitRoom; +@property (nonatomic, copy) NSString *title; +@property (nonatomic, assign) NSInteger onlineNum; +@property (nonatomic, assign) NSInteger micUserCount; +@property (nonatomic, copy) NSString *tagPict; +@property (nonatomic, copy) NSString *roomTag; +@property (nonatomic, copy) NSString *avatar; +@property (nonatomic , assign) GenderGenre gender; +@property (nonatomic, copy) NSString *infoUid; +@property (nonatomic, copy) NSString *nick; +@property (nonatomic, copy) NSString *roomPwd; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/RoomRecommend/Model/YUMIChamberEncourageMatrix.m b/YuMi/Modules/YMRoom/View/RoomRecommend/Model/YUMIChamberEncourageMatrix.m new file mode 100644 index 00000000..8215c59a --- /dev/null +++ b/YuMi/Modules/YMRoom/View/RoomRecommend/Model/YUMIChamberEncourageMatrix.m @@ -0,0 +1,12 @@ +// +// YMRoomRecommendModel.m +// YUMI +// +// Created by YUMI on 2022/4/28. +// + +#import "YUMIChamberEncourageMatrix.h" + +@implementation YUMIChamberEncourageMatrix + +@end diff --git a/YuMi/Modules/YMRoom/View/RoomRecommend/SubViews/YUMIChamberInsideEncourageDispossessElement.h b/YuMi/Modules/YMRoom/View/RoomRecommend/SubViews/YUMIChamberInsideEncourageDispossessElement.h new file mode 100644 index 00000000..fd3f4a9e --- /dev/null +++ b/YuMi/Modules/YMRoom/View/RoomRecommend/SubViews/YUMIChamberInsideEncourageDispossessElement.h @@ -0,0 +1,17 @@ +// +// YMRoomInsideRecommendEmptyCell.h +// YUMI +// +// Created by YUMI on 2022/4/28. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIChamberInsideEncourageDispossessElement : UITableViewCell + +@end + +NS_ASSUME_NONNULL_END + diff --git a/YuMi/Modules/YMRoom/View/RoomRecommend/SubViews/YUMIChamberInsideEncourageDispossessElement.m b/YuMi/Modules/YMRoom/View/RoomRecommend/SubViews/YUMIChamberInsideEncourageDispossessElement.m new file mode 100644 index 00000000..5571fd53 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/RoomRecommend/SubViews/YUMIChamberInsideEncourageDispossessElement.m @@ -0,0 +1,53 @@ +// +// YMRoomInsideRecommendEmptyCell.m +// YUMI +// +// Created by YUMI on 2022/4/28. +// + +#import "YUMIChamberInsideEncourageDispossessElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "UIIndicateConstant.h" + +@interface YUMIChamberInsideEncourageDispossessElement () +@property (nonatomic,strong) UILabel *dispossessSequencignation; +@end + +@implementation YUMIChamberInsideEncourageDispossessElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor]; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.dispossessSequencignation]; +} + +- (void)initChildLyRestrictions { + [self.dispossessSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.contentView); + make.centerY.mas_equalTo(self.contentView); + }]; +} + +#pragma mark - Getters And Setters +- (UILabel *)dispossessSequencignation { + if (!_dispossessSequencignation) { + _dispossessSequencignation = [[UILabel alloc] init]; + _dispossessSequencignation.text = YMLocalizedString(@"YUMIChamberInsideEncourageDispossessElement"); + _dispossessSequencignation.font = [UIFont systemFontOfSize:14]; + _dispossessSequencignation.textAlignment = NSTextAlignmentCenter; + _dispossessSequencignation.textColor = [UIColor whiteColor]; + } + return _dispossessSequencignation; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/RoomRecommend/SubViews/YUMIChamberInsideEncourageElement.h b/YuMi/Modules/YMRoom/View/RoomRecommend/SubViews/YUMIChamberInsideEncourageElement.h new file mode 100644 index 00000000..55d0ed0e --- /dev/null +++ b/YuMi/Modules/YMRoom/View/RoomRecommend/SubViews/YUMIChamberInsideEncourageElement.h @@ -0,0 +1,19 @@ +// +// YMRoomInsideRecommendCell.h +// YUMI +// +// Created by YUMI on 2022/4/28. +// + +#import +#import "YUMIChamberEncourageMatrix.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIChamberInsideEncourageElement : UITableViewCell + +@property (nonatomic, strong) YUMIChamberEncourageMatrix *model; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/RoomRecommend/SubViews/YUMIChamberInsideEncourageElement.m b/YuMi/Modules/YMRoom/View/RoomRecommend/SubViews/YUMIChamberInsideEncourageElement.m new file mode 100644 index 00000000..f654a484 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/RoomRecommend/SubViews/YUMIChamberInsideEncourageElement.m @@ -0,0 +1,131 @@ +// +// YMRoomInsideRecommendCell.m +// YUMI +// +// Created by YUMI on 2022/4/28. +// + +#import "YUMIChamberInsideEncourageElement.h" +#import "NetIndicateRegard.h" +#import +#import "YUMIMacroUitls.h" +#import "DJDKMIMOMColor.h" + +@interface YUMIChamberInsideEncourageElement () + +@property (nonatomic, strong) NetIndicateRegard *intelligenceportraitIndicateRegard; +@property (nonatomic,strong) UILabel *monicerSequencignation; +@property (nonatomic,strong) NetIndicateRegard *coupleIndicateRegard; +@property (nonatomic,strong) UIImageView *thermalIndicateRegard; +@property (nonatomic,strong) UILabel *numberLabel; + +@end + +@implementation YUMIChamberInsideEncourageElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor]; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self addSubview:self.intelligenceportraitIndicateRegard]; + [self addSubview:self.monicerSequencignation]; + [self addSubview:self.coupleIndicateRegard]; + [self addSubview:self.thermalIndicateRegard]; + [self addSubview:self.numberLabel]; +} + +- (void)initChildLyRestrictions { + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(12); + make.left.mas_equalTo(15); + make.width.height.mas_equalTo(72); + }]; + [self.monicerSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.intelligenceportraitIndicateRegard).mas_offset(12); + make.left.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_right).mas_offset(7); + make.height.mas_equalTo(14); + make.right.mas_equalTo(0); + }]; + [self.coupleIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.monicerSequencignation); + make.width.mas_equalTo(43); + make.height.mas_equalTo(18); + make.top.mas_equalTo(self.monicerSequencignation.mas_bottom).mas_offset(12); + }]; + [self.thermalIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.coupleIndicateRegard.mas_right).mas_offset(12); + make.width.height.mas_equalTo(13); + make.centerY.mas_equalTo(self.coupleIndicateRegard); + }]; + [self.numberLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.thermalIndicateRegard.mas_right).mas_offset(3); + make.centerY.mas_equalTo(self.coupleIndicateRegard); + make.right.mas_equalTo(0); + make.height.mas_equalTo(12); + }]; +} +#pragma mark - Getters And Setters +- (void)setModel:(YUMIChamberEncourageMatrix *)model { + _model = model; + self.intelligenceportraitIndicateRegard.imageUrl = model.avatar; + self.monicerSequencignation.text = model.title; + self.coupleIndicateRegard.imageUrl = model.tagPict; + self.numberLabel.text = [NSString stringWithFormat:@"%ld", model.onlineNum]; +} + +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _intelligenceportraitIndicateRegard.layer.cornerRadius = 8; + } + return _intelligenceportraitIndicateRegard; +} + +- (NetIndicateRegard *)coupleIndicateRegard { + if (!_coupleIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _coupleIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + } + return _coupleIndicateRegard; +} + +- (UIImageView *)thermalIndicateRegard { + if (!_thermalIndicateRegard) { + _thermalIndicateRegard = [[UIImageView alloc] init]; + _thermalIndicateRegard.userInteractionEnabled = YES; + _thermalIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_like_collect_scope_hot"]; + } + return _thermalIndicateRegard; +} + +- (UILabel *)monicerSequencignation { + if (!_monicerSequencignation) { + _monicerSequencignation = [[UILabel alloc] init]; + _monicerSequencignation.font = [UIFont boldSystemFontOfSize:14]; + _monicerSequencignation.textColor = [UIColor whiteColor]; + } + return _monicerSequencignation; +} + +- (UILabel *)numberLabel { + if (!_numberLabel) { + _numberLabel = [[UILabel alloc] init]; + _numberLabel.font = [UIFont systemFontOfSize:12]; + _numberLabel.textColor = [UIColor whiteColor]; + } + return _numberLabel; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/RoomRecommend/SubViews/YUMIChamberInsideOperationElement.h b/YuMi/Modules/YMRoom/View/RoomRecommend/SubViews/YUMIChamberInsideOperationElement.h new file mode 100644 index 00000000..b4a1a1d8 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/RoomRecommend/SubViews/YUMIChamberInsideOperationElement.h @@ -0,0 +1,19 @@ +// +// YMRoomInsideOperationCell.h +// YUMI +// +// Created by YUMI on 2022/9/30. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIChamberInsideOperationElement : UICollectionViewCell + +@property (nonatomic, copy) NSString *title; +@property (nonatomic, copy) NSString *imageName; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/RoomRecommend/SubViews/YUMIChamberInsideOperationElement.m b/YuMi/Modules/YMRoom/View/RoomRecommend/SubViews/YUMIChamberInsideOperationElement.m new file mode 100644 index 00000000..c53a106d --- /dev/null +++ b/YuMi/Modules/YMRoom/View/RoomRecommend/SubViews/YUMIChamberInsideOperationElement.m @@ -0,0 +1,69 @@ +// +// YMRoomInsideOperationCell.m +// YUMI +// +// Created by YUMI on 2022/9/30. +// + +#import "YUMIChamberInsideOperationElement.h" +#import + +@interface YUMIChamberInsideOperationElement() + +@property (nonatomic, strong) UIImageView *imageView; +@property (nonatomic, strong) UILabel *titleLabel; + +@end + +@implementation YUMIChamberInsideOperationElement + +- (instancetype)initWithFrame:(CGRect)frame { + if (self = [super initWithFrame:frame]) { + [self initRegard]; + [self initContraints]; + } + return self; +} + +- (void)initRegard { + [self addSubview:self.imageView]; + [self addSubview:self.titleLabel]; +} + +- (void)initContraints { + [self.imageView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.centerX.mas_equalTo(self); + make.width.height.mas_equalTo(52); + }]; + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.imageView.mas_bottom).mas_offset(4); + make.centerX.mas_equalTo(self); + make.height.mas_equalTo(12); + }]; +} + +- (void)setTitle:(NSString *)title { + self.titleLabel.text = title; +} +- (void)setImageName:(NSString *)imageName { + self.imageView.image = [UIImage imageNamed:imageName]; +} + +- (UIImageView *)imageView { + if (!_imageView) { + _imageView = [[UIImageView alloc] init]; + } + return _imageView; +} + +- (UILabel *)titleLabel{ + if (!_titleLabel) { + UILabel *label = [[UILabel alloc] init]; + label.font = [UIFont systemFontOfSize:10]; + label.textColor = [UIColor whiteColor]; + _titleLabel = label; + } + return _titleLabel; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/RoomRecommend/YUMIChamberEncourageRegard.h b/YuMi/Modules/YMRoom/View/RoomRecommend/YUMIChamberEncourageRegard.h new file mode 100644 index 00000000..d041788c --- /dev/null +++ b/YuMi/Modules/YMRoom/View/RoomRecommend/YUMIChamberEncourageRegard.h @@ -0,0 +1,29 @@ +// +// YMRoomRecommendView.h +// YUMI +// +// Created by YUMI on 2022/4/28. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol FBCChamberEncourageRegardRepresendtation + +- (void)yUMIChamberEncourageRegardReport; +- (void)yUMIChamberEncourageRegardRoadliceChamber; +- (void)yUMIChamberEncourageRegardExitChamber; +- (void)yUMIChamberEncourageRegardPartowardsiciptowardsion; +- (void)yUMIChamberEncourageRegardJumpToChamber:(NSString *)roomUid; + +@end + +@interface YUMIChamberEncourageRegard : UIView + +@property (nonatomic, strong) NSMutableArray *roomList; + +@property (nonatomic, weak) id delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/RoomRecommend/YUMIChamberEncourageRegard.m b/YuMi/Modules/YMRoom/View/RoomRecommend/YUMIChamberEncourageRegard.m new file mode 100644 index 00000000..d9f3d5b7 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/RoomRecommend/YUMIChamberEncourageRegard.m @@ -0,0 +1,202 @@ +// +// YMRoomRecommendView.m +// YUMI +// +// Created by YUMI on 2022/4/28. +// + +#import "YUMIChamberEncourageRegard.h" +#import +#import "YUMIMacroUitls.h" +#import "DJDKMIMOMColor.h" +#import "NSArray+Safe.h" +#import "YUMIChamberInsideEncourageElement.h" +#import "YUMIChamberInsideEncourageDispossessElement.h" +#import "YUMIChamberInsideOperationElement.h" + +@interface YUMIChamberEncourageRegard () + +@property (nonatomic, strong) UIToolbar *utensilObstacle; +@property (nonatomic, strong) UITableView *tableView; + +@property (nonatomic, strong) UICollectionView *collectionView; +@property (nonatomic, strong) NSMutableArray *titleArray; +@property (nonatomic, strong) NSMutableArray *indicateGarment; +@property (nonatomic, strong) UILabel *rejudgementSequencignation; + +@end + +@implementation YUMIChamberEncourageRegard + +- (instancetype)initWithFrame:(CGRect)frame { + if (self = [super initWithFrame:frame]) { + [self setUpwardsUI]; + [self setUpwardsRestrictions]; + } + return self; +} + +#pragma mark - lifeCycle +- (void)setUpwardsUI { + [self addSubview:self.utensilObstacle]; + [self addSubview:self.collectionView]; + [self addSubview:self.rejudgementSequencignation]; + [self addSubview:self.tableView]; +} + +- (void)setRoomList:(NSMutableArray *)roomList { + _roomList = roomList; + [self.tableView reloadData]; +} + +#pragma mark - Constraints +- (void)setUpwardsRestrictions { + [self.utensilObstacle mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.left.right.bottom.mas_equalTo(self); + }]; + [self.collectionView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(0); + make.top.mas_equalTo(kStatusBarHeight + 8); + make.height.mas_equalTo(82*2); + }]; + [self.rejudgementSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.collectionView.mas_bottom).mas_offset(16); + make.left.mas_equalTo(11); + }]; + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.mas_equalTo(0); + make.top.mas_equalTo(self.rejudgementSequencignation.mas_bottom); + }]; +} +#pragma mark - UICollectionViewDataSource +- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { + return self.titleArray.count; +} + +- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { + YUMIChamberInsideOperationElement *cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([YUMIChamberInsideOperationElement class]) forIndexPath:indexPath]; + cell.title = [self.titleArray secureGroalTowardsIndictowardsrix1:indexPath.row]; + cell.imageName = [self.indicateGarment secureGroalTowardsIndictowardsrix1:indexPath.row]; + return cell; +} + +- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath { + if (indexPath.row == 0) { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIChamberEncourageRegardRoadliceChamber)]) { + [self.delegate yUMIChamberEncourageRegardRoadliceChamber]; + } + } else if (indexPath.row == 1) { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIChamberEncourageRegardExitChamber)]) { + [self.delegate yUMIChamberEncourageRegardExitChamber]; + } + } else if (indexPath.row == 2) { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIChamberEncourageRegardReport)]) { + [self.delegate yUMIChamberEncourageRegardReport]; + } + } else { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIChamberEncourageRegardPartowardsiciptowardsion)]) { + [self.delegate yUMIChamberEncourageRegardPartowardsiciptowardsion]; + } + + } +} + +#pragma mark - UITableViewDelegate +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.roomList.count ? self.roomList.count : 1; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + if (self.roomList.count > 0) { + YUMIChamberInsideEncourageElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIChamberInsideEncourageElement class])]; + YUMIChamberEncourageMatrix *model = [self.roomList secureGroalTowardsIndictowardsrix1:indexPath.row]; + cell.model = model; + return cell; + } + YUMIChamberInsideEncourageDispossessElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIChamberInsideEncourageDispossessElement class])]; + if (cell == nil) { + cell = [[YUMIChamberInsideEncourageDispossessElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIChamberInsideEncourageDispossessElement class])]; + } + return cell; +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + [tableView deselectRowAtIndexPath:indexPath animated:YES]; + if (self.roomList.count > 0) { + YUMIChamberEncourageMatrix *model = [self.roomList secureGroalTowardsIndictowardsrix1:indexPath.row]; + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIChamberEncourageRegardJumpToChamber:)]) { + [self.delegate yUMIChamberEncourageRegardJumpToChamber:[NSString stringWithFormat:@"%ld", model.uid]]; + } + } +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + return self.roomList.count > 0 ? 84 : KScreenHeight - kStatusBarHeight -8 - 120; +} + +#pragma mark - getter +- (UIToolbar *)utensilObstacle { + if (!_utensilObstacle) { + _utensilObstacle = [[UIToolbar alloc] init]; + _utensilObstacle.barStyle = UIBarStyleBlack; + _utensilObstacle.translucent = YES; + } + return _utensilObstacle; +} + +- (UILabel *)rejudgementSequencignation { + if (!_rejudgementSequencignation) { + _rejudgementSequencignation = [[UILabel alloc] init]; + _rejudgementSequencignation.text = YMLocalizedString(@"YUMI_Room_Recommend_View_0"); + _rejudgementSequencignation.font = [UIFont systemFontOfSize:14 weight:UIFontWeightMedium]; + _rejudgementSequencignation.textColor = [UIColor whiteColor]; + } + return _rejudgementSequencignation; +} + +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.showsVerticalScrollIndicator = NO; + [_tableView registerClass:[YUMIChamberInsideEncourageElement class] forCellReuseIdentifier:NSStringFromClass([YUMIChamberInsideEncourageElement class])]; + [_tableView registerClass:[YUMIChamberInsideEncourageDispossessElement class] forCellReuseIdentifier:NSStringFromClass([YUMIChamberInsideEncourageDispossessElement class])]; + _tableView.backgroundColor = [UIColor clearColor]; + } + return _tableView; +} + +- (UICollectionView *)collectionView { + if (!_collectionView) { + UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init]; + layout.scrollDirection = UICollectionViewScrollDirectionVertical; + layout.minimumLineSpacing = 14; + layout.minimumInteritemSpacing = (250 - 3 * 52) / 4; + layout.itemSize = CGSizeMake(52, 68); + layout.sectionInset = UIEdgeInsetsMake(0, (250 - 3 * 52) / 4, 0, (250 - 3 * 52) / 4); + _collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout]; + [_collectionView registerClass:[YUMIChamberInsideOperationElement class] forCellWithReuseIdentifier:NSStringFromClass([YUMIChamberInsideOperationElement class])]; + _collectionView.delegate = self; + _collectionView.dataSource = self; + _collectionView.backgroundColor = [UIColor clearColor]; + } + return _collectionView; +} + +- (NSMutableArray *)titleArray { + if (!_titleArray) { + _titleArray = [NSMutableArray arrayWithObjects:@"收起房间", @"退出房间", YMLocalizedString(@"YUMI_Room_Recommend_View_3"), nil]; + } + return _titleArray; +} + +- (NSMutableArray *)indicateGarment { + if (!_indicateGarment) { + _indicateGarment = [NSMutableArray arrayWithObjects:@"room_info_mini", @"room_info_exit", @"room_info_report", nil]; + } + return _indicateGarment; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/Sailing/Api/Api+Sailing.h b/YuMi/Modules/YMRoom/View/Sailing/Api/Api+Sailing.h new file mode 100644 index 00000000..506a786e --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Sailing/Api/Api+Sailing.h @@ -0,0 +1,20 @@ +// +// Api+Sailing.h +// YUMI +// +// Created by YUMI on 2022/8/12. +// + +#import "Api.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface Api (Sailing) ++ (void)acquireMarchingRtowardseSttowardsement:(HttpRequestHelperCompletion)compltion page:(NSString *)page pageSize:(NSString *)pageSize datetype:(NSString *)datetype; + ++ (void)acquireMarchingAbstract:(HttpRequestHelperCompletion)completion uid:(NSString *)uid; + ++ (void)unfoildMarching:(HttpRequestHelperCompletion)completion uid:(NSString *)uid keyNum:(NSString *)keyNum sendMessage:(NSString *)sendMessage roomUid:(NSString *)roomUid; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/Sailing/Api/Api+Sailing.m b/YuMi/Modules/YMRoom/View/Sailing/Api/Api+Sailing.m new file mode 100644 index 00000000..1a87273b --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Sailing/Api/Api+Sailing.m @@ -0,0 +1,30 @@ +// +// Api+Sailing.m +// YUMI +// +// Created by YUMI on 2022/8/12. +// + +#import "Api+Sailing.h" +#import +@implementation Api (Sailing) + + ++ (void)acquireMarchingRtowardseSttowardsement:(HttpRequestHelperCompletion)compltion page:(NSString *)page pageSize:(NSString *)pageSize datetype:(NSString *)datetype { + NSString * fang = [NSString stringFromBase64String:@"bGluZWFybHlQb29sL3Jhbmtpbmdz"]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:compltion, __FUNCTION__, page, pageSize, datetype, nil]; +} + + ++ (void)acquireMarchingAbstract:(HttpRequestHelperCompletion)completion uid:(NSString *)uid { + NSString * fang = [NSString stringFromBase64String:@"bGluZWFybHlQb29sL3VzZXJrZXk="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion,__FUNCTION__, uid, nil]; +} + + ++ (void)unfoildMarching:(HttpRequestHelperCompletion)completion uid:(NSString *)uid keyNum:(NSString *)keyNum sendMessage:(NSString *)sendMessage roomUid:(NSString *)roomUid { + NSString * fang = [NSString stringFromBase64String:@"bGluZWFybHlQb29sL2RyYXc="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion,__FUNCTION__, uid, keyNum, sendMessage, roomUid, nil]; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/Sailing/Model/ChamberMarchingAbstractMatrix.h b/YuMi/Modules/YMRoom/View/Sailing/Model/ChamberMarchingAbstractMatrix.h new file mode 100644 index 00000000..3dd392a9 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Sailing/Model/ChamberMarchingAbstractMatrix.h @@ -0,0 +1,16 @@ +// +// ChamberMarchingAbstractMatrix.h +// YUMI +// +// Created by YUMI on 2022/8/12. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface ChamberMarchingAbstractMatrix : NSObject +@property (nonatomic, assign) NSInteger keyNum; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/Sailing/Model/ChamberMarchingAbstractMatrix.m b/YuMi/Modules/YMRoom/View/Sailing/Model/ChamberMarchingAbstractMatrix.m new file mode 100644 index 00000000..94166930 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Sailing/Model/ChamberMarchingAbstractMatrix.m @@ -0,0 +1,12 @@ +// +// ChamberMarchingAbstractMatrix.m +// YUMI +// +// Created by YUMI on 2022/8/12. +// + +#import "ChamberMarchingAbstractMatrix.h" + +@implementation ChamberMarchingAbstractMatrix + +@end diff --git a/YuMi/Modules/YMRoom/View/Sailing/Model/ChamberMarchingCaptureMatrix.h b/YuMi/Modules/YMRoom/View/Sailing/Model/ChamberMarchingCaptureMatrix.h new file mode 100644 index 00000000..2b449738 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Sailing/Model/ChamberMarchingCaptureMatrix.h @@ -0,0 +1,48 @@ +// +// ChamberMarchingCaptureMatrix.h +// YUMI +// +// Created by YUMI on 2022/8/15. +// + +#import + + +typedef enum : NSUInteger { + SailingPrizeLevelOne=1, + SailingPrizeLevelTwo, + SailingPrizeLevelThree, + SailingPrizeLevelFour, + SailingPrizeLevelFive +} SailingPrizeLevel; + +typedef NS_ENUM(NSUInteger, SailingPrizeGenre) { + SailingPrizeGenre_Gold = 1, + SailingPrizeGenre_Gift, + SailingPrizeGenre_Car, + SailingPrizeGenre_Headwear, + SailingPrizeGenre_Background, + SailingPrizeGenre_Matter, + SailingPrizeGenre_Beautif, + SailingPrizeGenre_WholeServer + +}; + +NS_ASSUME_NONNULL_BEGIN + +@interface ChamberMarchingCaptureMatrix : NSObject +@property (nonatomic, copy) NSString *prizeName; +@property (nonatomic, copy) NSString *prizeImgUrl; +@property (nonatomic, assign) SailingPrizeGenre prizeType; +@property (nonatomic, copy) NSString *prizeTypeDesc; +@property (nonatomic, assign) int prizeNum; +@property (nonatomic, assign) CGFloat platformValue; +@property (nonatomic, assign) SailingPrizeLevel prizeLevel; +@property (nonatomic, assign) NSInteger referenceId; +@property (nonatomic, assign) NSInteger prizeId; +@property (nonatomic,copy) NSString *nick; +@property (nonatomic,assign) NSInteger userLevelLimit; +@property (nonatomic,copy) NSString *uid; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/Sailing/Model/ChamberMarchingCaptureMatrix.m b/YuMi/Modules/YMRoom/View/Sailing/Model/ChamberMarchingCaptureMatrix.m new file mode 100644 index 00000000..d91d55ca --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Sailing/Model/ChamberMarchingCaptureMatrix.m @@ -0,0 +1,12 @@ +// +// ChamberMarchingCaptureMatrix.m +// YUMI +// +// Created by YUMI on 2022/8/15. +// + +#import "ChamberMarchingCaptureMatrix.h" + +@implementation ChamberMarchingCaptureMatrix + +@end diff --git a/YuMi/Modules/YMRoom/View/Sailing/Model/ChamberMarchingCaptureStatementMatrix.h b/YuMi/Modules/YMRoom/View/Sailing/Model/ChamberMarchingCaptureStatementMatrix.h new file mode 100644 index 00000000..7c1f1dd7 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Sailing/Model/ChamberMarchingCaptureStatementMatrix.h @@ -0,0 +1,18 @@ +// +// ChamberMarchingCaptureStatementMatrix.h +// YUMI +// +// Created by YUMI on 2022/8/15. +// + +#import +#import "ChamberMarchingCaptureMatrix.h" +NS_ASSUME_NONNULL_BEGIN + +@interface ChamberMarchingCaptureStatementMatrix : NSObject +@property (nonatomic,strong) NSArray *prizeItemList; +@property (nonatomic,assign) NSInteger remainKeyNum; +@property (nonatomic,assign) BOOL specialStatus; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/Sailing/Model/ChamberMarchingCaptureStatementMatrix.m b/YuMi/Modules/YMRoom/View/Sailing/Model/ChamberMarchingCaptureStatementMatrix.m new file mode 100644 index 00000000..805cbe5a --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Sailing/Model/ChamberMarchingCaptureStatementMatrix.m @@ -0,0 +1,15 @@ +// +// ChamberMarchingCaptureStatementMatrix.m +// YUMI +// +// Created by YUMI on 2022/8/15. +// + +#import "ChamberMarchingCaptureStatementMatrix.h" + +@implementation ChamberMarchingCaptureStatementMatrix ++ (NSDictionary *)objectCtowardsegorizeInGarment { + return @{@"prizeItemList": ChamberMarchingCaptureMatrix.class}; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/Sailing/Model/ChamberMarchingRateMatrix.h b/YuMi/Modules/YMRoom/View/Sailing/Model/ChamberMarchingRateMatrix.h new file mode 100644 index 00000000..15f7c391 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Sailing/Model/ChamberMarchingRateMatrix.h @@ -0,0 +1,24 @@ +// +// ChamberMarchingRateMatrix.h +// YUMI +// +// Created by YUMI on 2022/8/12. +// + +#import +#import "YUMINNNN.h" +NS_ASSUME_NONNULL_BEGIN + +@interface ChamberMarchingRateMatrix : NSObject +@property (copy, nonatomic) NSString * uid; +@property (copy, nonatomic) NSString *nick; +@property (copy, nonatomic) NSString *avatar; +@property (nonatomic,strong) NSString *badge; +@property (nonatomic,strong) NSString *micDecorate; +@property (copy, nonatomic) NSString *goldAmount; +@property (strong, nonatomic) NSNumber *amount; +@property (copy, nonatomic) NSString *ranking; +@property (nonatomic,assign) BOOL hide; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/Sailing/Model/ChamberMarchingRateMatrix.m b/YuMi/Modules/YMRoom/View/Sailing/Model/ChamberMarchingRateMatrix.m new file mode 100644 index 00000000..51fb96c5 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Sailing/Model/ChamberMarchingRateMatrix.m @@ -0,0 +1,12 @@ +// +// ChamberMarchingRateMatrix.m +// YUMI +// +// Created by YUMI on 2022/8/12. +// + +#import "ChamberMarchingRateMatrix.h" + +@implementation ChamberMarchingRateMatrix + +@end diff --git a/YuMi/Modules/YMRoom/View/Sailing/Presenter/Protocol/FBCSailingCeremony.h b/YuMi/Modules/YMRoom/View/Sailing/Presenter/Protocol/FBCSailingCeremony.h new file mode 100644 index 00000000..ecf76ab3 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Sailing/Presenter/Protocol/FBCSailingCeremony.h @@ -0,0 +1,18 @@ +// +// YMSailingProtocol.h +// YUMI +// +// Created by YUMI on 2022/8/12. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class ChamberMarchingAbstractMatrix, ChamberMarchingCaptureStatementMatrix; +@protocol FBCSailingCeremony +- (void)acquireMarchingAbstractAccomplishment:(ChamberMarchingAbstractMatrix *)info; +- (void)unfoildMarchingAccomplishment:(ChamberMarchingCaptureStatementMatrix *)model; +- (void)unfoildMarchingFlunk:(NSString *)message; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/Sailing/Presenter/YUMIMarchingExternalizer.h b/YuMi/Modules/YMRoom/View/Sailing/Presenter/YUMIMarchingExternalizer.h new file mode 100644 index 00000000..90c4044f --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Sailing/Presenter/YUMIMarchingExternalizer.h @@ -0,0 +1,18 @@ +// +// YMSailingPresenter.h +// YUMI +// +// Created by YUMI on 2022/8/12. +// + +#import "BaseMvpExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIMarchingExternalizer : BaseMvpExternalizer +- (void)acquireMarchingAbstract; + +- (void)unfoildMarching:(NSString *)roomUid sendMessage:(BOOL)sendMessage keyNum:(NSInteger)keyNum; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/Sailing/Presenter/YUMIMarchingExternalizer.m b/YuMi/Modules/YMRoom/View/Sailing/Presenter/YUMIMarchingExternalizer.m new file mode 100644 index 00000000..c3181d12 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Sailing/Presenter/YUMIMarchingExternalizer.m @@ -0,0 +1,37 @@ +// +// YMSailingPresenter.m +// YUMI +// +// Created by YUMI on 2022/8/12. +// + +#import "YUMIMarchingExternalizer.h" +#import "Api+Sailing.h" +#import "AccountAbstractStorage.h" +#import "ChamberMarchingAbstractMatrix.h" +#import "ChamberMarchingCaptureStatementMatrix.h" +#import "FBCSailingCeremony.h" + +@implementation YUMIMarchingExternalizer + +- (void)acquireMarchingAbstract { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [Api acquireMarchingAbstract:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + ChamberMarchingAbstractMatrix * info = [ChamberMarchingAbstractMatrix mtowardsrixAboutImpactbasket:data.data]; + [[self acquireRegard] acquireMarchingAbstractAccomplishment:info]; + }] uid:uid]; +} + +- (void)unfoildMarching:(NSString *)roomUid sendMessage:(BOOL)sendMessage keyNum:(NSInteger)keyNum { + NSString * keyNumStr = [NSString stringWithFormat:@"%ld", keyNum]; + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NSString * sendMessageStr = [NSString stringWithFormat:@"%d", sendMessage]; + [Api unfoildMarching:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + ChamberMarchingCaptureStatementMatrix * listMatrix = [ChamberMarchingCaptureStatementMatrix mtowardsrixAboutImpactbasket:data.data]; + [[self acquireRegard] unfoildMarchingAccomplishment:listMatrix]; + } fail:^(NSInteger code, NSString * _Nullable msg) { + [[self acquireRegard] unfoildMarchingFlunk:msg]; + } ] uid:uid keyNum:keyNumStr sendMessage:sendMessageStr roomUid:roomUid]; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/Sailing/View/Cell/YUMIMarchingCaptureAssembletionRegardElement.h b/YuMi/Modules/YMRoom/View/Sailing/View/Cell/YUMIMarchingCaptureAssembletionRegardElement.h new file mode 100644 index 00000000..481102ba --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Sailing/View/Cell/YUMIMarchingCaptureAssembletionRegardElement.h @@ -0,0 +1,16 @@ +// +// YMSailingPrizeCollectionViewCell.h +// YUMI +// +// Created by YUMI on 2022/8/18. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class ChamberMarchingCaptureMatrix; +@interface YUMIMarchingCaptureAssembletionRegardElement : UICollectionViewCell +@property (nonatomic,strong) ChamberMarchingCaptureMatrix *captureMatrix; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/Sailing/View/Cell/YUMIMarchingCaptureAssembletionRegardElement.m b/YuMi/Modules/YMRoom/View/Sailing/View/Cell/YUMIMarchingCaptureAssembletionRegardElement.m new file mode 100644 index 00000000..84a5a73e --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Sailing/View/Cell/YUMIMarchingCaptureAssembletionRegardElement.m @@ -0,0 +1,83 @@ +// +// YMSailingPrizeCollectionViewCell.m +// YUMI +// +// Created by YUMI on 2022/8/18. +// + +#import "YUMIMarchingCaptureAssembletionRegardElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "NetIndicateRegard.h" +#import "ChamberMarchingCaptureMatrix.h" + +@interface YUMIMarchingCaptureAssembletionRegardElement () +@property (nonatomic,strong) NetIndicateRegard *brandIndicateRegard; +@property (nonatomic,strong) UILabel *titleLabel; + +@end + +@implementation YUMIMarchingCaptureAssembletionRegardElement + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.contentView.backgroundColor = [UIColor clearColor]; + [self.contentView addSubview:self.brandIndicateRegard]; + [self.contentView addSubview:self.titleLabel]; +} + +- (void)initChildLyRestrictions { + [self.brandIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(42, 42)); + make.top.centerX.mas_equalTo(self.self.contentView); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.brandIndicateRegard); + make.top.mas_equalTo(self.brandIndicateRegard.mas_bottom).offset(5); + }]; +} + +#pragma mark - Getters And Setters +- (void)setCaptureMatrix:(ChamberMarchingCaptureMatrix *)captureMatrix { + _captureMatrix = captureMatrix; + if (_captureMatrix) { + self.brandIndicateRegard.imageUrl = _captureMatrix.prizeImgUrl; + self.titleLabel.text = [NSString stringWithFormat:@"%@*%d", _captureMatrix.prizeName, _captureMatrix.prizeNum]; + } +} + +- (NetIndicateRegard *)brandIndicateRegard { + if (!_brandIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _brandIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _brandIndicateRegard.layer.masksToBounds = YES; + _brandIndicateRegard.layer.cornerRadius = 8; + _brandIndicateRegard.contentMode = UIViewContentModeScaleAspectFill; + } + return _brandIndicateRegard; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.font = [UIFont systemFontOfSize:10]; + _titleLabel.textColor = UIColorFromRGB(0xA08161); + _titleLabel.numberOfLines = 2; + } + return _titleLabel; +} + + +@end diff --git a/YuMi/Modules/YMRoom/View/Sailing/View/Cell/YUMIMarchingDispossessTabulationRegardElement.h b/YuMi/Modules/YMRoom/View/Sailing/View/Cell/YUMIMarchingDispossessTabulationRegardElement.h new file mode 100644 index 00000000..5c432fe5 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Sailing/View/Cell/YUMIMarchingDispossessTabulationRegardElement.h @@ -0,0 +1,16 @@ +// +// YMSailingEmptyTableViewCell.h +// YUMI +// +// Created by YUMI on 2022/8/12. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIMarchingDispossessTabulationRegardElement : UITableViewCell + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/Sailing/View/Cell/YUMIMarchingDispossessTabulationRegardElement.m b/YuMi/Modules/YMRoom/View/Sailing/View/Cell/YUMIMarchingDispossessTabulationRegardElement.m new file mode 100644 index 00000000..06f16e1f --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Sailing/View/Cell/YUMIMarchingDispossessTabulationRegardElement.m @@ -0,0 +1,71 @@ +// +// YMSailingEmptyTableViewCell.m +// YUMI +// +// Created by YUMI on 2022/8/12. +// + +#import "YUMIMarchingDispossessTabulationRegardElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "UIIndicateConstant.h" + +@interface YUMIMarchingDispossessTabulationRegardElement () +@property (nonatomic,strong) UIImageView *dispossessIndicateRegard; +@property (nonatomic,strong) UILabel *titleLabel; +@end + +@implementation YUMIMarchingDispossessTabulationRegardElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor]; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.dispossessIndicateRegard]; + [self.contentView addSubview:self.titleLabel]; +} + +- (void)initChildLyRestrictions { + [self.dispossessIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.contentView); + make.top.mas_equalTo(self.contentView).offset(50); + make.size.mas_equalTo(CGSizeMake(100, 100)); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.dispossessIndicateRegard.mas_bottom).offset(20); + make.left.right.mas_equalTo(self.contentView); + }]; +} +#pragma mark - Getters And Setters +- (UIImageView *)dispossessIndicateRegard { + if (!_dispossessIndicateRegard) { + _dispossessIndicateRegard = [[UIImageView alloc] init]; + _dispossessIndicateRegard.userInteractionEnabled = YES; + _dispossessIndicateRegard.image = [UIIndicateConstant defalutDispossessDepapossessor]; + _dispossessIndicateRegard.layer.masksToBounds = YES; + _dispossessIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _dispossessIndicateRegard; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.text = YMLocalizedString(@"YUMI_Sailing_Empty_Table_View_Cell_0"); + _titleLabel.font = [UIFont systemFontOfSize:16]; + _titleLabel.textAlignment = NSTextAlignmentCenter; + _titleLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + } + return _titleLabel; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/Sailing/View/Cell/YUMIMarchingRateTabulationRegardElement.h b/YuMi/Modules/YMRoom/View/Sailing/View/Cell/YUMIMarchingRateTabulationRegardElement.h new file mode 100644 index 00000000..34635271 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Sailing/View/Cell/YUMIMarchingRateTabulationRegardElement.h @@ -0,0 +1,16 @@ +// +// YMSailingRankTableViewCell.h +// YUMI +// +// Created by YUMI on 2022/8/12. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class ChamberMarchingRateMatrix; +@interface YUMIMarchingRateTabulationRegardElement : UITableViewCell +@property (nonatomic,strong) ChamberMarchingRateMatrix *rateAbstract; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/Sailing/View/Cell/YUMIMarchingRateTabulationRegardElement.m b/YuMi/Modules/YMRoom/View/Sailing/View/Cell/YUMIMarchingRateTabulationRegardElement.m new file mode 100644 index 00000000..5ef62992 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Sailing/View/Cell/YUMIMarchingRateTabulationRegardElement.m @@ -0,0 +1,169 @@ +// +// YMSailingRankTableViewCell.m +// YUMI +// +// Created by YUMI on 2022/8/12. +// + +#import "YUMIMarchingRateTabulationRegardElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "NetIndicateRegard.h" +#import "ChamberMarchingRateMatrix.h" + +@interface YUMIMarchingRateTabulationRegardElement () +@property (nonatomic,strong) UIView * encourageRegard; +@property (nonatomic,strong) UIButton *rateBtuton; +@property (nonatomic,strong) NetIndicateRegard *intelligenceportraitIndicateRegard; +@property (nonatomic,strong) UILabel *monicerSequencignation; +@property (nonatomic,strong) UILabel *tangerineSequencignation; +@property (nonatomic,strong) UIImageView *bWSttawberryIndicateRegard; + +@end + +@implementation YUMIMarchingRateTabulationRegardElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor]; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.encourageRegard]; + [self.encourageRegard addSubview:self.rateBtuton]; + [self.encourageRegard addSubview:self.intelligenceportraitIndicateRegard]; + [self.encourageRegard addSubview:self.monicerSequencignation]; + [self.encourageRegard addSubview:self.bWSttawberryIndicateRegard]; + [self.encourageRegard addSubview:self.tangerineSequencignation]; +} + +- (void)initChildLyRestrictions { + [self.encourageRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.contentView).inset(15); + make.top.mas_equalTo(self.contentView); + make.height.mas_equalTo(60); + }]; + + [self.rateBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(29, 20)); + make.left.mas_equalTo(self.encourageRegard).offset(15); + make.centerY.mas_equalTo(self.encourageRegard); + }]; + + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(50, 50)); + make.centerY.mas_equalTo(self.encourageRegard); + make.left.mas_equalTo(self.rateBtuton.mas_right).offset(24); + }]; + + [self.monicerSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_right).offset(5); + make.centerY.mas_equalTo(self.intelligenceportraitIndicateRegard); + make.right.mas_lessThanOrEqualTo(self.bWSttawberryIndicateRegard.mas_left).offset(-5); + }]; + + + [self.bWSttawberryIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(14, 12)); + make.centerY.mas_equalTo(self.encourageRegard); + make.right.mas_equalTo(self.tangerineSequencignation.mas_left).offset(-2); + }]; + + [self.tangerineSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self.encourageRegard).offset(-10); + make.centerY.mas_equalTo(self.encourageRegard); + make.width.mas_equalTo(80); + }]; + +} + +#pragma mark - Getters And Setters +- (void)setRateAbstract:(ChamberMarchingRateMatrix *)rateAbstract { + _rateAbstract = rateAbstract; + if (_rateAbstract) { + self.intelligenceportraitIndicateRegard.imageUrl = _rateAbstract.avatar; + self.monicerSequencignation.text = _rateAbstract.nick; + self.tangerineSequencignation.text = _rateAbstract.amount.stringValue; + if (_rateAbstract.ranking.integerValue == 1) { + [self.rateBtuton setImage:[UIImage imageNamed:@"yumi_scope_sailing_order_first"] forState:UIControlStateNormal]; + [self.rateBtuton setTitle:@"" forState:UIControlStateNormal]; + } else if(_rateAbstract.ranking.integerValue == 2) { + [self.rateBtuton setImage:[UIImage imageNamed:@"yumi_scope_sailing_order_second"] forState:UIControlStateNormal]; + [self.rateBtuton setTitle:@"" forState:UIControlStateNormal]; + } else if(_rateAbstract.ranking.integerValue == 3) { + [self.rateBtuton setImage:[UIImage imageNamed:@"yumi_scope_sailing_order_third"] forState:UIControlStateNormal]; + [self.rateBtuton setTitle:@"" forState:UIControlStateNormal]; + } else { + [self.rateBtuton setTitle:_rateAbstract.ranking forState:UIControlStateNormal]; + [self.rateBtuton setImage:nil forState:UIControlStateNormal]; + } + } +} + +- (UIView *)encourageRegard { + if (!_encourageRegard) { + _encourageRegard = [[UIView alloc] init]; + _encourageRegard.backgroundColor = [DJDKMIMOMColor colorAboutHexBWSttr:@"#ffeec3"]; + _encourageRegard.layer.masksToBounds = YES; + _encourageRegard.layer.cornerRadius = 6; + } + return _encourageRegard; +} + +- (UIButton *)rateBtuton { + if (!_rateBtuton) { + _rateBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_rateBtuton setTitle:@"1" forState:UIControlStateNormal]; + [_rateBtuton setTitleColor:[DJDKMIMOMColor colorAboutHexBWSttr:@"#CFAD79"] forState:UIControlStateNormal]; + _rateBtuton.titleLabel.font = [UIFont systemFontOfSize:18 weight:UIFontWeightMedium]; + } + return _rateBtuton; +} + +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _intelligenceportraitIndicateRegard.layer.cornerRadius = 50/2; + } + return _intelligenceportraitIndicateRegard; +} + +- (UILabel *)monicerSequencignation { + if (!_monicerSequencignation) { + _monicerSequencignation = [[UILabel alloc] init]; + _monicerSequencignation.font = [UIFont systemFontOfSize:12]; + _monicerSequencignation.textColor = [DJDKMIMOMColor colorAboutHexBWSttr:@"#A08161"]; + } + return _monicerSequencignation; +} + +- (UIImageView *)bWSttawberryIndicateRegard { + if (!_bWSttawberryIndicateRegard) { + _bWSttawberryIndicateRegard = [[UIImageView alloc] init]; + _bWSttawberryIndicateRegard.userInteractionEnabled = YES; + _bWSttawberryIndicateRegard.image = [UIImage imageNamed:@"yumi_same_diamond"]; + } + return _bWSttawberryIndicateRegard; +} + +- (UILabel *)tangerineSequencignation { + if (!_tangerineSequencignation) { + _tangerineSequencignation = [[UILabel alloc] init]; + _tangerineSequencignation.font = [UIFont systemFontOfSize:18 weight:UIFontWeightMedium]; + _tangerineSequencignation.textColor = [DJDKMIMOMColor colorAboutHexBWSttr:@"#64472E"]; + } + return _tangerineSequencignation; +} + + +@end diff --git a/YuMi/Modules/YMRoom/View/Sailing/View/YUMIMarchingBrightnessRegard.h b/YuMi/Modules/YMRoom/View/Sailing/View/YUMIMarchingBrightnessRegard.h new file mode 100644 index 00000000..e1e3abdf --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Sailing/View/YUMIMarchingBrightnessRegard.h @@ -0,0 +1,15 @@ +// +// YMSailingAnimationView.h +// YUMI +// +// Created by YUMI on 2022/8/19. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@interface YUMIMarchingBrightnessRegard : UIView +@property (nonatomic,strong) NSDictionary *captureAbstract; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/Sailing/View/YUMIMarchingBrightnessRegard.m b/YuMi/Modules/YMRoom/View/Sailing/View/YUMIMarchingBrightnessRegard.m new file mode 100644 index 00000000..f88db887 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Sailing/View/YUMIMarchingBrightnessRegard.m @@ -0,0 +1,99 @@ +// +// YMSailingAnimationView.m +// YUMI +// +// Created by YUMI on 2022/8/19. +// + +#import "YUMIMarchingBrightnessRegard.h" +#import +#import "YUMIMacroUitls.h" +#import "DJDKMIMOMColor.h" +#import "ChamberMarchingCaptureMatrix.h" +#import "NSObject+MJExtension.h" +#import + + +@interface YUMIMarchingBrightnessRegard () +@property (nonatomic,strong) UIImageView *encourageIndicateRegard; +@property (nonatomic,strong) MarqueeLabel *titleLabel; +@end + +@implementation YUMIMarchingBrightnessRegard + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.encourageIndicateRegard]; + [self.encourageIndicateRegard addSubview:self.titleLabel]; +} + +- (void)initChildLyRestrictions { + [self.encourageIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.encourageIndicateRegard).offset(89 * kScreenScale); + make.top.mas_equalTo(self.encourageIndicateRegard).offset(29 * kScreenScale); + make.right.mas_lessThanOrEqualTo(self.encourageIndicateRegard); + }]; +} + +- (NSAttributedString *)produceIdiosyncracy:(NSString * )text color:(UIColor *)color fontSize:(CGFloat)fonSize { + NSDictionary * attribute = @{NSFontAttributeName:[UIFont systemFontOfSize:fonSize], NSForegroundColorAttributeName:color}; + NSMutableAttributedString *attr = [[NSMutableAttributedString alloc] initWithString:text attributes:attribute]; + return attr; +} + + + +#pragma mark - Getters And Setters +- (void)setCaptureAbstract:(NSDictionary *)captureAbstract { + _captureAbstract = captureAbstract; + if (_captureAbstract) { + ChamberMarchingCaptureMatrix * info = [ChamberMarchingCaptureMatrix mtowardsrixAboutImpactbasket:_captureAbstract]; + NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] init]; + CGFloat fontSize = 12; + [attribute appendAttributedString:[self produceIdiosyncracy:@"厉害了! " color:[UIColor whiteColor] fontSize:fontSize]]; + NSString * nick = info.nick; + if (nick.length > 6) { + nick = [nick substringToIndex:6]; + } + [attribute appendAttributedString:[self produceIdiosyncracy:nick color:UIColorFromRGB(0xFFFE95) fontSize:fontSize]]; + [attribute appendAttributedString:[self produceIdiosyncracy:@"在航海冒险中获得 " color:[UIColor whiteColor] fontSize:fontSize]]; + [attribute appendAttributedString:[self produceIdiosyncracy:info.prizeName color:UIColorFromRGB(0xFFFE95) fontSize:fontSize]]; + if (info.prizeNum > 1) { + [attribute appendAttributedString:[self produceIdiosyncracy:[NSString stringWithFormat:@" X%d", info.prizeNum] color:[UIColor whiteColor] fontSize:fontSize]]; + } + self.titleLabel.attributedText = attribute; + } +} + +- (UIImageView *)encourageIndicateRegard { + if (!_encourageIndicateRegard) { + _encourageIndicateRegard = [[UIImageView alloc] init]; + _encourageIndicateRegard.userInteractionEnabled = YES; + _encourageIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_sailing_animation_present_background"]; + } + return _encourageIndicateRegard; +} + +- (MarqueeLabel *)titleLabel{ + if (!_titleLabel) { + _titleLabel = [[MarqueeLabel alloc] init]; + _titleLabel.scrollDuration = 4.0; + _titleLabel.fadeLength = 15; + _titleLabel.userInteractionEnabled = YES; + } + return _titleLabel; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/Sailing/View/YUMIMarchingBuyFuelRegard.h b/YuMi/Modules/YMRoom/View/Sailing/View/YUMIMarchingBuyFuelRegard.h new file mode 100644 index 00000000..0ac22072 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Sailing/View/YUMIMarchingBuyFuelRegard.h @@ -0,0 +1,21 @@ +// +// YMSailingBuyFuelView.h +// YUMI +// +// Created by YUMI on 2022/8/23. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class YUMIMarchingBuyFuelRegard; +@protocol FBCSailingBuyFuelRegardRepresendtation +- (void)yUMIMarchingAcquireFuelRegard:(YUMIMarchingBuyFuelRegard *)view didTicktackRevoctowardsion:(UIButton *)sender; +- (void)yUMIMarchingAcquireFuelRegard:(YUMIMarchingBuyFuelRegard *)view didClickBuy:(UIButton *)sender; + +@end +@interface YUMIMarchingBuyFuelRegard : UIView +@property (nonatomic,weak) id delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/Sailing/View/YUMIMarchingBuyFuelRegard.m b/YuMi/Modules/YMRoom/View/Sailing/View/YUMIMarchingBuyFuelRegard.m new file mode 100644 index 00000000..9c6bc49b --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Sailing/View/YUMIMarchingBuyFuelRegard.m @@ -0,0 +1,120 @@ +// +// YMSailingBuyFuelView.m +// YUMI +// +// Created by YUMI on 2022/8/23. +// + +#import "YUMIMarchingBuyFuelRegard.h" +#import +#import "DJDKMIMOMColor.h" + +@interface YUMIMarchingBuyFuelRegard () +@property (nonatomic,strong) UIImageView *encourageIndicateRegard; +@property (nonatomic,strong) UILabel *titleLabel; +@property (nonatomic,strong) UIButton *revocationBtuton; +@property (nonatomic,strong) UIButton *buyBtuton; + +@end + + +@implementation YUMIMarchingBuyFuelRegard + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.encourageIndicateRegard]; + [self.encourageIndicateRegard addSubview:self.titleLabel]; + [self.encourageIndicateRegard addSubview:self.revocationBtuton]; + [self.encourageIndicateRegard addSubview:self.buyBtuton]; +} + +- (void)initChildLyRestrictions { + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(280, 177)); + }]; + + [self.encourageIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.encourageIndicateRegard).offset(54); + make.centerX.mas_equalTo(self.encourageIndicateRegard); + }]; + + [self.revocationBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(85, 24)); + make.right.mas_equalTo(self.encourageIndicateRegard.mas_centerX).offset(-10); + make.bottom.mas_equalTo(self.encourageIndicateRegard).offset(-24); + }]; + + [self.buyBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.centerY.mas_equalTo(self.revocationBtuton); + make.left.mas_equalTo(self.encourageIndicateRegard.mas_centerX).offset(10); + }]; +} + +#pragma mark - Event Response +- (void)revoctowardsionBtutonPerformance:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIMarchingAcquireFuelRegard:didTicktackRevoctowardsion:)]) { + [self.delegate yUMIMarchingAcquireFuelRegard:self didTicktackRevoctowardsion:sender]; + } +} + +- (void)acquireBtutonPerformance:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIMarchingAcquireFuelRegard:didClickBuy:)]) { + [self.delegate yUMIMarchingAcquireFuelRegard:self didClickBuy:sender]; + } +} + +#pragma mark - Getters And Setters +- (UIImageView *)encourageIndicateRegard { + if (!_encourageIndicateRegard) { + _encourageIndicateRegard = [[UIImageView alloc] init]; + _encourageIndicateRegard.userInteractionEnabled = YES; + _encourageIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_sailing_buy_fuel_background"]; + } + return _encourageIndicateRegard; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.font = [UIFont systemFontOfSize:15]; + _titleLabel.textColor = UIColorFromRGB(0x64472E); + _titleLabel.text = @"当前燃油不足 \n 可参与活动获得燃油哦~"; + _titleLabel.textAlignment = NSTextAlignmentCenter; + _titleLabel.numberOfLines = 2; + } + return _titleLabel; +} + +- (UIButton *)revocationBtuton { + if (!_revocationBtuton) { + _revocationBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_revocationBtuton setImage:[UIImage imageNamed:@"yumi_scope_sailing_buy_fuel_cancel"] forState:UIControlStateNormal]; + [_revocationBtuton setImage:[UIImage imageNamed:@"yumi_scope_sailing_buy_fuel_cancel"] forState:UIControlStateSelected]; + [_revocationBtuton addTarget:self action:@selector(revoctowardsionBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _revocationBtuton; +} + +- (UIButton *)buyBtuton { + if (!_buyBtuton) { + _buyBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_buyBtuton setImage:[UIImage imageNamed:@"yumi_scope_sailing_buy_fuel_sure"] forState:UIControlStateNormal]; + [_buyBtuton setImage:[UIImage imageNamed:@"yumi_scope_sailing_buy_fuel_sure"] forState:UIControlStateSelected]; + [_buyBtuton addTarget:self action:@selector(acquireBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _buyBtuton; +} +@end diff --git a/YuMi/Modules/YMRoom/View/Sailing/View/YUMIMarchingCaptureRegard.h b/YuMi/Modules/YMRoom/View/Sailing/View/YUMIMarchingCaptureRegard.h new file mode 100644 index 00000000..4d9520e7 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Sailing/View/YUMIMarchingCaptureRegard.h @@ -0,0 +1,17 @@ +// +// YMSailingPrizeView.h +// YUMI +// +// Created by YUMI on 2022/8/18. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class ChamberMarchingCaptureStatementMatrix; +@interface YUMIMarchingCaptureRegard : UIView +@property (nonatomic,strong) ChamberMarchingCaptureStatementMatrix * captureAbstract; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/Sailing/View/YUMIMarchingCaptureRegard.m b/YuMi/Modules/YMRoom/View/Sailing/View/YUMIMarchingCaptureRegard.m new file mode 100644 index 00000000..e7d329d7 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Sailing/View/YUMIMarchingCaptureRegard.m @@ -0,0 +1,105 @@ +// +// YMSailingPrizeView.m +// YUMI +// +// Created by YUMI on 2022/8/18. +// + +#import "YUMIMarchingCaptureRegard.h" +#import +#import "DJDKMIMOMColor.h" +#import "NSArray+Safe.h" +#import "ChamberMarchingCaptureStatementMatrix.h" +#import "YUMIMarchingCaptureAssembletionRegardElement.h" + +@interface YUMIMarchingCaptureRegard () + +@property (nonatomic,strong) UIImageView *encourageIndicateRegard; +@property (nonatomic,strong) UICollectionView *collectionView; +@end + + +@implementation YUMIMarchingCaptureRegard + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.encourageIndicateRegard]; + [self.encourageIndicateRegard addSubview:self.collectionView]; +} + +- (void)initChildLyRestrictions { + + [self.encourageIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self); + }]; + + [self.collectionView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.encourageIndicateRegard).offset(75); + make.left.right.mas_equalTo(self.encourageIndicateRegard); + make.bottom.mas_equalTo(self).offset(-10); + }]; +} + +- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { + return self.captureAbstract.prizeItemList.count; +} + +- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { + YUMIMarchingCaptureAssembletionRegardElement * cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([YUMIMarchingCaptureAssembletionRegardElement class]) forIndexPath:indexPath]; + cell.captureMatrix = [self.captureAbstract.prizeItemList secureGroalTowardsIndictowardsrix1:indexPath.row]; + return cell; +} +#pragma mark - Getters And Setters +- (void)setCaptureAbstract:(ChamberMarchingCaptureStatementMatrix *)captureAbstract{ + _captureAbstract = captureAbstract; + [self.collectionView reloadData]; + if (_captureAbstract.specialStatus) { + if (_captureAbstract.prizeItemList.count > 5) { + self.encourageIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_sailing_prize_cowry_large"]; + }else { + self.encourageIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_sailing_prize_crowy"]; + } + } else { + if (captureAbstract.prizeItemList.count > 5) { + self.encourageIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_sailing_prize_normal_large"]; + }else { + self.encourageIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_sailing_prize_one"]; + } + } +} + +- (UIImageView *)encourageIndicateRegard { + if (!_encourageIndicateRegard) { + _encourageIndicateRegard = [[UIImageView alloc] init]; + _encourageIndicateRegard.userInteractionEnabled = YES; + } + return _encourageIndicateRegard; +} + +- (UICollectionView *)collectionView{ + if (!_collectionView) { + UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init]; + layout.sectionInset = UIEdgeInsetsMake(0, 21, 0, 21); + layout.itemSize = CGSizeMake(42, 47 + 21); + layout.minimumLineSpacing = 7; + layout.minimumInteritemSpacing = 7; + _collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout]; + _collectionView.dataSource = self; + _collectionView.delegate = self; + _collectionView.backgroundColor = [UIColor clearColor]; + [_collectionView registerClass:[YUMIMarchingCaptureAssembletionRegardElement class] forCellWithReuseIdentifier:NSStringFromClass([YUMIMarchingCaptureAssembletionRegardElement class])]; + + } + return _collectionView; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/Sailing/View/YUMIMarchingPresentRegard.h b/YuMi/Modules/YMRoom/View/Sailing/View/YUMIMarchingPresentRegard.h new file mode 100644 index 00000000..9d38e7d5 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Sailing/View/YUMIMarchingPresentRegard.h @@ -0,0 +1,16 @@ +// +// YMSailingGiftView.h +// YUMI +// +// Created by YUMI on 2022/8/19. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class ChamberMarchingCaptureMatrix; +@interface YUMIMarchingPresentRegard : UIView +@property (nonatomic,strong) ChamberMarchingCaptureMatrix *captureAbstract; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/Sailing/View/YUMIMarchingPresentRegard.m b/YuMi/Modules/YMRoom/View/Sailing/View/YUMIMarchingPresentRegard.m new file mode 100644 index 00000000..18455b21 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Sailing/View/YUMIMarchingPresentRegard.m @@ -0,0 +1,84 @@ +// +// YMSailingGiftView.m +// YUMI +// +// Created by YUMI on 2022/8/19. +// + +#import "YUMIMarchingPresentRegard.h" +#import +#import "ChamberMarchingCaptureMatrix.h" +#import "YUMIConfectioneryTimberBrightnessMatrix.h" + +@interface YUMIMarchingPresentRegard () +@property (nonatomic,strong) UIImageView *encourageIndicateRegard; +@property (nonatomic,strong) UILabel *titleLabel; +@property (nonatomic,copy) void(^FinishBlock)(BOOL finish); +@end + +@implementation YUMIMarchingPresentRegard + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.encourageIndicateRegard]; + [self addSubview:self.titleLabel]; +} + +- (void)initChildLyRestrictions { + [self.encourageIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self); + make.height.mas_equalTo(19); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.encourageIndicateRegard.mas_left).offset(3); + make.centerY.mas_equalTo(self.encourageIndicateRegard); + }]; +} +#pragma mark - Getters And Setters +- (void)setCaptureAbstract:(ChamberMarchingCaptureMatrix *)captureAbstract { + _captureAbstract = captureAbstract; + if (_captureAbstract) { + NSString * backImage= @"candy_tree_levle_third"; + if(_captureAbstract.prizeLevel == SailingPrizeLevelFour) { + backImage = @"candy_tree_levle_fourth"; + } else if(_captureAbstract.prizeLevel == SailingPrizeLevelFive) { + backImage = @"candy_tree_levle_fifth"; + } + self.encourageIndicateRegard.image = [UIImage imageNamed:backImage]; + if (_captureAbstract.prizeName.length > 7) { + _captureAbstract.prizeName = [_captureAbstract.prizeName substringToIndex:7]; + } + NSString * giftTitle = [NSString stringWithFormat:@"%@ x %d", _captureAbstract.prizeName, _captureAbstract.prizeNum]; + self.titleLabel.text = giftTitle; + } + [self layoutIfNeeded]; +} + +- (UIImageView *)encourageIndicateRegard { + if (!_encourageIndicateRegard) { + _encourageIndicateRegard = [[UIImageView alloc] init]; + _encourageIndicateRegard.userInteractionEnabled = YES; + } + return _encourageIndicateRegard; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.font = [UIFont fontWithName:@"PingFang-SC-Medium" size:10]; + _titleLabel.textAlignment = NSTextAlignmentCenter; + _titleLabel.textColor = [UIColor whiteColor]; + } + return _titleLabel; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/Sailing/View/YUMIMarchingRateMetroRegard.h b/YuMi/Modules/YMRoom/View/Sailing/View/YUMIMarchingRateMetroRegard.h new file mode 100644 index 00000000..1fd3a1af --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Sailing/View/YUMIMarchingRateMetroRegard.h @@ -0,0 +1,21 @@ +// +// YMSailingRankSubView.h +// YUMI +// +// Created by YUMI on 2022/8/12. +// + +#import +#import +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSInteger, SailingRankGenre) { + SailingRankGenre_Today = 1, + SailingRankGenre_YesterDay = 2 +}; + +@interface YUMIMarchingRateMetroRegard : UIView +@property (nonatomic,assign) SailingRankGenre type; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/Sailing/View/YUMIMarchingRateMetroRegard.m b/YuMi/Modules/YMRoom/View/Sailing/View/YUMIMarchingRateMetroRegard.m new file mode 100644 index 00000000..5a0a2a1c --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Sailing/View/YUMIMarchingRateMetroRegard.m @@ -0,0 +1,171 @@ +// +// YMSailingRankSubView.m +// YUMI +// +// Created by YUMI on 2022/8/12. +// + +#import "YUMIMarchingRateMetroRegard.h" +#import +#import +#import "DJDKMIMOMColor.h" +#import "Api+Sailing.h" +#import "XNDJTBWGLoadingTool.h" +#import "NSArray+Safe.h" +#import "ChamberMarchingRateMatrix.h" +#import "YUMIMarchingDispossessTabulationRegardElement.h" +#import "YUMIMarchingRateTabulationRegardElement.h" + +@interface YUMIMarchingRateMetroRegard () +@property (nonatomic,strong) UITableView *tableView; +@property (nonatomic,strong) NSMutableArray *datasource; +@property (nonatomic,assign) int page; +@property (nonatomic,assign) BOOL hasNoFurthaerAtoloudspeaker; +@end + +@implementation YUMIMarchingRateMetroRegard + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initIntelligencerGrantedTerminalerRrfresh]; + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +- (void)initIntelligencerGrantedTerminalerRrfresh { + MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(intelligenceerRenovtowardseh)]; + header.stateLabel.font = [UIFont systemFontOfSize:10.0]; + header.lastUpdatedTimeLabel.font = [UIFont systemFontOfSize:10.0]; + header.stateLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + header.lastUpdatedTimeLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + self.tableView.mj_header = header; + + MJRefreshBackNormalFooter *footer = [MJRefreshBackNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(footerRenovtowardseh)]; + footer.stateLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + footer.stateLabel.font = [UIFont systemFontOfSize:10.0]; + self.tableView.mj_footer = footer; + +} + +#pragma mark - 刷新的fangfa +- (void)intelligenceerRenovtowardseh { + self.page = 1; + NSString * page = [NSString stringWithFormat:@"%d", self.page]; + NSString * type = [NSString stringWithFormat:@"%ld", self.type]; + [Api acquireMarchingRtowardseSttowardsement:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + [self.tableView.mj_header endRefreshing]; + if (code == 200) { + [self.datasource removeAllObjects]; + NSArray * array = [ChamberMarchingRateMatrix mtowardsrixsAboutGarment:data.data[@"rankVos"]]; + [self.datasource addObjectsFromArray:array]; + self.hasNoFurthaerAtoloudspeaker = NO; + [self.tableView reloadData]; + } else { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:msg]; + } + } page:page pageSize:@"20" datetype:type]; + +} + +- (void)footerRenovtowardseh { + if (self.hasNoFurthaerAtoloudspeaker) { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:YMLocalizedString(@"YUMI_Sailing_Rank_Sub_View_0")]; + [self.tableView.mj_footer endRefreshing]; + return; + } + self.page++; + NSString * page = [NSString stringWithFormat:@"%d", self.page]; + NSString * type = [NSString stringWithFormat:@"%ld", self.type]; + [Api acquireMarchingRtowardseSttowardsement:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + [self.tableView.mj_footer endRefreshing]; + if (code == 200) { + NSArray * array = [ChamberMarchingRateMatrix mtowardsrixsAboutGarment:data.data[@"rankVos"]]; + if (array.count > 0) { + [self.datasource addObjectsFromArray:array]; + self.hasNoFurthaerAtoloudspeaker = NO; + } else { + self.hasNoFurthaerAtoloudspeaker= YES; + } + [self.tableView reloadData]; + } else { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:msg]; + } + } page:page pageSize:@"20" datetype:type]; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.tableView]; +} + +- (void)initChildLyRestrictions { + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self); + }]; +} + +#pragma mark - UITableViewDelegate And UITableViewDataSource +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.datasource.count > 0 ? self.datasource.count : 1; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + return self.datasource.count > 0 ? 74 : 380; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + if (self.datasource.count > 0 ) { + YUMIMarchingRateTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIMarchingRateTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIMarchingRateTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIMarchingRateTabulationRegardElement class])]; + } + cell.rateAbstract = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + return cell; + } + YUMIMarchingDispossessTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIMarchingDispossessTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIMarchingDispossessTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIMarchingDispossessTabulationRegardElement class])]; + } + return cell; +} + + +#pragma mark - JXCategoryListContentViewDelegate +- (UIView *)listView { + return self; +} + +- (void)setType:(SailingRankGenre)type { + _type = type; + [self intelligenceerRenovtowardseh]; +} + +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.tableFooterView = [UIView new]; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.backgroundColor = [UIColor clearColor]; + if (@available(iOS 11.0, *)) { + _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + [_tableView registerClass:[YUMIMarchingDispossessTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIMarchingDispossessTabulationRegardElement class])]; + [_tableView registerClass:[YUMIMarchingRateTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIMarchingRateTabulationRegardElement class])]; + } + return _tableView; +} + +- (NSMutableArray *)datasource { + if (!_datasource) { + _datasource = [NSMutableArray array]; + } + return _datasource; +} + + +@end diff --git a/YuMi/Modules/YMRoom/View/Sailing/View/YUMIMarchingRateRegard.h b/YuMi/Modules/YMRoom/View/Sailing/View/YUMIMarchingRateRegard.h new file mode 100644 index 00000000..e3bd23be --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Sailing/View/YUMIMarchingRateRegard.h @@ -0,0 +1,16 @@ +// +// YMSailingRankView.h +// YUMI +// +// Created by YUMI on 2022/8/12. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIMarchingRateRegard : UIView + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/Sailing/View/YUMIMarchingRateRegard.m b/YuMi/Modules/YMRoom/View/Sailing/View/YUMIMarchingRateRegard.m new file mode 100644 index 00000000..455c4998 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Sailing/View/YUMIMarchingRateRegard.m @@ -0,0 +1,145 @@ +// +// YMSailingRankView.m +// YUMI +// +// Created by YUMI on 2022/8/12. +// + +#import "YUMIMarchingRateRegard.h" +#import +#import +#import +#import +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" +#import "YUMIMarchingRateMetroRegard.h" + +@interface YUMIMarchingRateRegard () +@property (nonatomic, strong) NSArray *titles; +@property (nonatomic, strong) JXCategoryTitleView *titleView; +@property (nonatomic, strong) JXCategoryListContainerView *contentView; +@property (nonatomic,strong) UIImageView *encourageIndicateRegard; +@property (nonatomic,strong) YUMIMarchingRateMetroRegard *todayRegard; +@property (nonatomic,strong) YUMIMarchingRateMetroRegard *yesterdayRegard; + +@end + +@implementation YUMIMarchingRateRegard + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.encourageIndicateRegard]; + [self addSubview:self.titleView]; + [self addSubview:self.contentView]; +} + +- (void)initChildLyRestrictions { + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(KScreenWidth, 515)); + }]; + + [self.encourageIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self); + }]; + + [self.titleView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self); + make.top.mas_equalTo(self).offset(98); + make.height.mas_equalTo(30); + }]; + + [self.contentView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.mas_equalTo(self); + make.top.mas_equalTo(self.titleView.mas_bottom); + }]; +} + +#pragma mark - JXCategoryViewDelegate +- (NSInteger)numberOfListsInlistContainerView:(JXCategoryListContainerView *)listContainerView { + return self.titles.count; +} + +- (id)listContainerView:(JXCategoryListContainerView *)listContainerView initListForIndex:(NSInteger)index { + if (index == 0) { + return self.todayRegard; + } else { + return self.yesterdayRegard; + } +} + +#pragma mark - Getters And Setters +- (JXCategoryTitleView *)titleView { + if (!_titleView) { + _titleView = [[JXCategoryTitleView alloc] init]; + _titleView.delegate = self; + _titleView.titles = self.titles; + _titleView.backgroundColor = [UIColor clearColor]; + _titleView.titleColor = [DJDKMIMOMColor colorAboutHexBWSttr:@"#825A3A"]; + _titleView.titleSelectedColor = [DJDKMIMOMColor colorAboutHexBWSttr:@"#F4D398"]; + _titleView.titleFont = [UIFont fontWithName:@"PingFang-SC-Medium" size:12]; + _titleView.titleSelectedFont = [UIFont fontWithName:@"PingFang-SC-Medium" size:12]; + _titleView.titleLabelAnchorPointStyle = JXCategoryTitleLabelAnchorPointStyleCenter; + _titleView.contentScrollViewClickTransitionAnimationEnabled = NO; + _titleView.defaultSelectedIndex = 0; + _titleView.cellWidth = KScreenWidth/ 2; + _titleView.cellSpacing = 0; + _titleView.listContainer = self.contentView; + + JXCategoryIndicatorLineView * indocator = [[JXCategoryIndicatorLineView alloc] init]; + indocator.indicatorColor = [DJDKMIMOMColor colorAboutHexBWSttr:@"#F4D398"]; + indocator.indicatorWidth = 12; + indocator.indicatorHeight = 4; + indocator.indicatorCornerRadius = 2; + indocator.lineScrollOffsetX = 4; + _titleView.indicators = @[indocator]; + } + return _titleView; +} + +- (JXCategoryListContainerView *)contentView { + if (!_contentView) { + _contentView = [[JXCategoryListContainerView alloc] initWithType:JXCategoryListContainerType_ScrollView delegate:self]; + _contentView.defaultSelectedIndex = 0; + } + return _contentView; +} + +- (NSArray *)titles { + return @[@"今日榜单", YMLocalizedString(@"YUMI_Sailing_Rank_View_1")]; +} + +- (UIImageView *)encourageIndicateRegard { + if (!_encourageIndicateRegard) { + _encourageIndicateRegard = [[UIImageView alloc] init]; + _encourageIndicateRegard.userInteractionEnabled = YES; + _encourageIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_sailing_order_background"]; + } + return _encourageIndicateRegard; +} + +- (YUMIMarchingRateMetroRegard *)todayRegard { + if (!_todayRegard) { + _todayRegard = [[YUMIMarchingRateMetroRegard alloc] init]; + _todayRegard.type = SailingRankGenre_Today; + } + return _todayRegard; +} + +- (YUMIMarchingRateMetroRegard *)yesterdayRegard { + if (!_yesterdayRegard) { + _yesterdayRegard = [[YUMIMarchingRateMetroRegard alloc] init]; + _yesterdayRegard.type = SailingRankGenre_YesterDay; + } + return _yesterdayRegard; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/Sailing/View/YUMIMarchingRegardGovernancer.h b/YuMi/Modules/YMRoom/View/Sailing/View/YUMIMarchingRegardGovernancer.h new file mode 100644 index 00000000..80acf2ab --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Sailing/View/YUMIMarchingRegardGovernancer.h @@ -0,0 +1,15 @@ +// +// YMSailingViewController.h +// YUMI +// +// Created by YUMI on 2022/8/12. +// + +#import "MvpRegardGovernancer.h" +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIMarchingRegardGovernancer : MvpRegardGovernancer +- (instancetype)initAboutChamberCid:(NSString *)roomUid; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/Sailing/View/YUMIMarchingRegardGovernancer.m b/YuMi/Modules/YMRoom/View/Sailing/View/YUMIMarchingRegardGovernancer.m new file mode 100644 index 00000000..bb23abe4 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Sailing/View/YUMIMarchingRegardGovernancer.m @@ -0,0 +1,700 @@ +// +// YMSailingViewController.m +// YUMI +// +// Created by YUMI on 2022/8/12. +// + +#import "YUMIMarchingRegardGovernancer.h" +#import +#import +#import +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" +#import "MKJPopup.h" +#import "YUMIHtmlUrl.h" +#import "UIButton+EnlargeTouchArea.h" +#import "NSArray+Safe.h" +#import "ChamberMarchingAbstractMatrix.h" +#import "ChamberMarchingCaptureStatementMatrix.h" +#import "AttachmentMatrix.h" +#import "AccountAbstractStorage.h" +#import "YUMIMarchingRateRegard.h" +#import "YUMIChamberHalfTissueRegard.h" +#import "YUMIMarchingCaptureRegard.h" +#import "YUMIMarchingPresentRegard.h" +#import "YUMIMarchingBuyFuelRegard.h" +#import "YUMIMarchingExternalizer.h" +#import "FBCSailingCeremony.h" + +NSString * const kSailingPrizeAlertKey = @"kSailingPrizeAlertKey"; + +#define KitemHeight (20 + 5) +@interface YUMIMarchingRegardGovernancer () +@property (nonatomic,strong) UIView * apexRegard; +@property (nonatomic,strong) UIImageView *encourageIndicateRegard; +@property (nonatomic,strong) UIImageView *marchingIndicateRegard; +@property (strong, nonatomic) SVGAParser *anatomiser; +@property (nonatomic,strong) SVGAImageView *marchingRegard; +@property (strong, nonatomic) SVGAParser *anatomiser1; +@property (nonatomic,strong) SVGAImageView *marchingCowryRegard; +@property (nonatomic,strong) UIButton *rateBtuton; +@property (nonatomic,strong) UIButton *acquireFuleBtuton; +@property (nonatomic,strong) UIButton *reflectionBtuton; +@property (nonatomic,strong) UIImageView *satisfperformanceIndicateRegard; +@property (nonatomic,strong) UIButton *sequenceriptionBtuton; +@property (nonatomic,strong) UIButton *fuleBtuton; +@property (nonatomic,strong) UIStackView * digitalRegard; +@property (nonatomic,strong) UIButton *accelerateBtuton; +@property (nonatomic,strong) UIButton *deficituBtuton; +@property (nonatomic,strong) UITextField *essayUniverse; +@property (nonatomic,strong) UIButton *exploreBtuton; +@property (nonatomic,strong) UILabel *consumSequencignation; +@property (nonatomic,strong) UIStackView *promptsHierarchyRegard; +@property (nonatomic,strong) UIButton *boxBtuton; +@property (nonatomic,strong) UILabel *tipLabel; + +@property (nonatomic,strong) UIView * animationView; +@property (nonatomic,assign) NSInteger exploreComputation; +@property (nonatomic,strong) ChamberMarchingAbstractMatrix *marchingAbstract; +@property (nonatomic,strong) NSString *roomUid; +@property (nonatomic,strong) NSArray *prototypeGarment; +@property (nonatomic,strong) ChamberMarchingCaptureStatementMatrix *captureAbstract; +@end + +@implementation YUMIMarchingRegardGovernancer + +- (void)dealloc { + [[NIMSDK sharedSDK].systemNotificationManager removeDelegate:self]; +} + +- (instancetype)initAboutChamberCid:(NSString *)roomUid { + if (self = [super init]) { + self.roomUid = roomUid; + self.modalPresentationStyle = UIModalPresentationOverFullScreen; + [[NIMSDK sharedSDK].systemNotificationManager addDelegate:self]; + } + return self; +} + +- (__kindof id)producePresimport { + return [[YUMIMarchingExternalizer alloc] init]; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self.presimport acquireMarchingAbstract]; + [self initSubViews]; + [self initChildLyRestrictions]; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.prototypeGarment = @[@"1", @"10", @"50", @"100"]; + self.exploreComputation = 0; + self.view.backgroundColor = [UIColor clearColor]; + [self.view addSubview:self.apexRegard]; + [self.view addSubview:self.encourageIndicateRegard]; + + [self.encourageIndicateRegard addSubview:self.marchingRegard]; + [self.encourageIndicateRegard addSubview:self.marchingCowryRegard]; + [self.encourageIndicateRegard addSubview:self.marchingIndicateRegard]; + [self.encourageIndicateRegard addSubview:self.rateBtuton]; + [self.encourageIndicateRegard addSubview:self.acquireFuleBtuton]; + [self.encourageIndicateRegard addSubview:self.reflectionBtuton]; + [self.encourageIndicateRegard addSubview:self.satisfperformanceIndicateRegard]; + + [self.satisfperformanceIndicateRegard addSubview:self.sequenceriptionBtuton]; + [self.satisfperformanceIndicateRegard addSubview:self.animationView]; + [self.satisfperformanceIndicateRegard addSubview:self.fuleBtuton]; + [self.satisfperformanceIndicateRegard addSubview:self.digitalRegard]; + [self.satisfperformanceIndicateRegard addSubview:self.exploreBtuton]; + [self.satisfperformanceIndicateRegard addSubview:self.promptsHierarchyRegard]; + + [self.exploreBtuton addSubview:self.consumSequencignation]; + + [self.promptsHierarchyRegard addArrangedSubview:self.boxBtuton]; + [self.promptsHierarchyRegard addArrangedSubview:self.tipLabel]; + + [self.digitalRegard addArrangedSubview:self.deficituBtuton]; + [self.digitalRegard addArrangedSubview:self.essayUniverse]; + [self.digitalRegard addArrangedSubview:self.accelerateBtuton]; +} + +- (void)initChildLyRestrictions { + [self.apexRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self.view); + make.bottom.mas_equalTo(self.encourageIndicateRegard.mas_top); + }]; + + [self.encourageIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.mas_equalTo(self.view); + make.height.mas_equalTo(515); + }]; + + [self.marchingRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.encourageIndicateRegard); + }]; + + [self.marchingCowryRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.encourageIndicateRegard); + }]; + + [self.marchingIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.encourageIndicateRegard); + }]; + + [self.rateBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(41, 32)); + make.top.mas_equalTo(self.encourageIndicateRegard).offset(129); + make.right.mas_equalTo(self.encourageIndicateRegard).offset(-12); + }]; + + [self.acquireFuleBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.right.mas_equalTo(self.rateBtuton); + make.top.mas_equalTo(self.rateBtuton.mas_bottom).offset(8); + }]; + + [self.reflectionBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.right.mas_equalTo(self.rateBtuton); + make.top.mas_equalTo(self.acquireFuleBtuton.mas_bottom).offset(8); + }]; + CGFloat kscale = 199.0f / 356.0f; + [self.satisfperformanceIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.encourageIndicateRegard).inset(9); + make.bottom.mas_equalTo(self.encourageIndicateRegard).offset(-34); + make.height.mas_equalTo((KScreenWidth - 18) * kscale); + }]; + + [self.sequenceriptionBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(65, 22)); + make.right.mas_equalTo(self.satisfperformanceIndicateRegard); + make.top.mas_equalTo(self.satisfperformanceIndicateRegard).offset(42); + }]; + + [self.fuleBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.right.mas_equalTo(self.sequenceriptionBtuton); + make.top.mas_equalTo(self.sequenceriptionBtuton.mas_bottom).offset(4); + }]; + + [self.digitalRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.satisfperformanceIndicateRegard); + make.top.mas_equalTo(self.satisfperformanceIndicateRegard).offset(77 * kScreenScale); + make.height.mas_equalTo(30 * kScreenScale); + }]; + + [self.deficituBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(30 * kScreenScale);; + }]; + + [self.accelerateBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(30 * kScreenScale); + }]; + + [self.essayUniverse mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(75 * kScreenScale); + }]; + + [self.exploreBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(150 * kScreenScale, 47 * kScreenScale)); + make.centerX.mas_equalTo(self.satisfperformanceIndicateRegard); + make.top.mas_equalTo(self.digitalRegard.mas_bottom).offset(12 * kScreenScale); + }]; + + [self.consumSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.exploreBtuton); + make.bottom.mas_equalTo(self.exploreBtuton.mas_bottom).offset(-7 * kScreenScale); + }]; + + [self.animationView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.satisfperformanceIndicateRegard).offset(10); + make.bottom.mas_equalTo(self.satisfperformanceIndicateRegard).offset(-50); + make.width.mas_equalTo(150); + make.height.mas_equalTo(KitemHeight * 5); + }]; + + [self.promptsHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.satisfperformanceIndicateRegard); + make.bottom.mas_equalTo(self.satisfperformanceIndicateRegard).offset(-20); + make.height.mas_equalTo(10); + }]; + + [self.boxBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(10); + }]; +} + +- (void)inititowardseMarchingSVGA { + [self.marchingCowryRegard stopAnimation]; + [self.marchingRegard stopAnimation]; + @kWeakify(self); + NSString * anatomiser1Name = [NSString stringWithFormat:@"%@/sailing_prize.svga", API_Image_URL]; + [self.anatomiser parseWithURL:[NSURL URLWithString:anatomiser1Name] completionBlock:^(SVGAVideoEntity * _Nonnull videoItem) { + @kStrongify(self); + self.marchingRegard.layer.masksToBounds = YES; + self.marchingRegard.contentMode = UIViewContentModeScaleAspectFill; + self.marchingRegard.loops = 1; + self.marchingRegard.clearsAfterStop = YES; + self.marchingRegard.videoItem = videoItem; + [self.marchingRegard startAnimation]; + } failureBlock:^(NSError * _Nonnull error) { + + }]; +} + +- (void)inititowardseMarchingCaptureCowrySVGA { + @kWeakify(self); + NSString * anatomiser1Name = [NSString stringWithFormat:@"%@/sailing_prize_cowry.svga", API_Image_URL]; + [self.anatomiser1 parseWithURL:[NSURL URLWithString:anatomiser1Name] completionBlock:^(SVGAVideoEntity * _Nonnull videoItem) { + @kStrongify(self); + self.marchingCowryRegard.layer.masksToBounds = YES; + self.marchingCowryRegard.contentMode = UIViewContentModeScaleAspectFill; + self.marchingCowryRegard.loops = 1; + self.marchingCowryRegard.clearsAfterStop = YES; + self.marchingCowryRegard.videoItem = videoItem; + [self.marchingCowryRegard startAnimation]; + } failureBlock:^(NSError * _Nonnull error) { + + }]; +} + +#pragma mark - FBCSailingCeremony +- (void)acquireMarchingAbstractAccomplishment:(ChamberMarchingAbstractMatrix *)info { + self.marchingAbstract = info; + NSString * fuleStr = [NSString stringWithFormat:@"%ld", info.keyNum]; + [self.fuleBtuton setTitle:fuleStr forState:UIControlStateNormal]; +} + +- (void)unfoildMarchingAccomplishment:(ChamberMarchingCaptureStatementMatrix *)model { + self.captureAbstract = model; + self.marchingAbstract.keyNum = model.remainKeyNum; + NSString * fuleStr = [NSString stringWithFormat:@"%ld", self.marchingAbstract.keyNum]; + [self.fuleBtuton setTitle:fuleStr forState:UIControlStateNormal]; + self.exploreBtuton.userInteractionEnabled = YES; + NSString * key = [NSString stringWithFormat:@"%@_%@", kSailingPrizeAlertKey, [AccountAbstractStorage instance].acquireCid]; + if (![[NSUserDefaults standardUserDefaults] boolForKey:key] && model.prizeItemList.count > 0) { + CGFloat height = 180; + if (model.prizeItemList.count> 5) { + height = 255; + } + YUMIMarchingCaptureRegard * prizeView = [[YUMIMarchingCaptureRegard alloc] initWithFrame:CGRectMake(0, 0, 283, height)]; + prizeView.captureAbstract = model; + [MKJPopup popupRegard:prizeView style:MKJPopupStyleAlert]; + } + + if (model.specialStatus) { + [self inititowardseMarchingCaptureCowrySVGA]; + } + + + [model.prizeItemList enumerateObjectsUsingBlock:^(ChamberMarchingCaptureMatrix * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if (obj.prizeLevel > 2) { + + [NSObject cancelPreviousPerformRequestsWithTarget:self]; + + YUMIMarchingPresentRegard * newAnimaView = [[YUMIMarchingPresentRegard alloc] init]; + newAnimaView.captureAbstract = obj; + NSString * giftTitle = [NSString stringWithFormat:@"%@ x %d", obj.prizeName, obj.prizeNum]; + CGFloat widht = [giftTitle boundingRectWithSize:CGSizeMake(200, CGFLOAT_MAX) options:NSStringDrawingUsesFontLeading | NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:10]} context:nil].size.width + 10; + newAnimaView.frame = CGRectMake(0, 4 * (KitemHeight), widht, KitemHeight); + [self.animationView addSubview:newAnimaView]; + + if (self.animationView.subviews.count > 5) { + [self.animationView.subviews.firstObject removeFromSuperview]; + } + for (int i=0; i < self.animationView.subviews.count; i++) { + YUMIMarchingPresentRegard * view = [self.animationView.subviews secureGroalTowardsIndictowardsrix1:i]; + NSInteger offsetY= (self.animationView.subviews.count - i) * KitemHeight; + [UIView animateWithDuration:0.1 animations:^{ + CGRect rect = view.frame; + rect.origin.y = KitemHeight * 5 - offsetY; + view.frame = rect; + } completion:^(BOOL finished) { + if (i == (self.animationView.subviews.count -1)) { + [self.animationView.subviews enumerateObjectsUsingBlock:^(__kindof UIView * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + [self performSelector:@selector(presentRegardTransltowardseByvirtueofSenstowardsionalRegard:) withObject:obj afterDelay:15]; + }]; + } + }]; + } + } + }]; +} + +- (void)presentRegardTransltowardseByvirtueofSenstowardsionalRegard:(UIView *)view { + [view removeFromSuperview]; +} + +- (void)unfoildMarchingFlunk:(NSString *)message { + [self.marchingRegard stopAnimation]; + self.marchingIndicateRegard.hidden = NO; + self.exploreBtuton.userInteractionEnabled = YES; +} + +#pragma mark - SVGAPlayerDelegate +- (void)svgaPlayerDidFinishedAnimation:(SVGAPlayer *)player { + if (self.captureAbstract.specialStatus) { + if (player == self.marchingRegard) { + self.marchingIndicateRegard.hidden = NO; + } + } else { + self.marchingIndicateRegard.hidden = NO; + } +} + +#pragma mark - Event Response +- (void)disappearRegard { + [self dismissViewControllerAnimated:YES completion:nil]; +} + +- (void)rtowardseBtutonPerformance:(UIButton *)sender { + YUMIMarchingRateRegard * rateRegard = [[YUMIMarchingRateRegard alloc] init]; + [MKJPopup popupRegard:rateRegard style:MKJPopupStyleActionSheet]; +} + +- (void)acquireFuleBtutonPerformance:(UIButton *)sender { + YUMIChamberHalfTissueRegard * webView = [[YUMIChamberHalfTissueRegard alloc] init]; + webView.url = URLWithType(kSailingActivityURL); + webView.isMarching = YES; + MKJPopupServing * config = [[MKJPopupServing alloc] init]; + config.contentView = webView; + config.didFinishDismissHandler = ^(BOOL isDismissOnBackgroundTouch) { + [self.presimport acquireMarchingAbstract]; + }; + [MKJPopup popupAboutDisposition:config]; +} + +- (void)reflectionBtutonPerformance:(UIButton *)sender { + YUMIChamberHalfTissueRegard * webView = [[YUMIChamberHalfTissueRegard alloc] init]; + webView.url = URLWithType(kSailingRecordURL); + webView.isMarching = YES; + [MKJPopup popupRegard:webView style:MKJPopupStyleActionSheet]; +} + +- (void)descriptionBtutonPerformance:(UIButton *)sender { + YUMIChamberHalfTissueRegard * webView = [[YUMIChamberHalfTissueRegard alloc] init]; + webView.isMarching = YES; + webView.url = URLWithType(kSailingPlayDescdURL); + [MKJPopup popupRegard:webView style:MKJPopupStyleActionSheet]; +} + +- (void)accelertowardseBtutonPerformance:(UIButton *)sender { + self.exploreComputation ++; + if (self.exploreComputation >= self.prototypeGarment.count) { + self.exploreComputation = 3; + } +} + +- (void)deficituBtutonPerformance:(UIButton *)sender { + self.exploreComputation --; + if (self.exploreComputation <= 0) { + self.exploreComputation = 0; + } +} + +- (void)eyumiloreBtutonPerformance:(UIButton *)sender { + self.captureAbstract = nil; + if (self.essayUniverse.text.integerValue > self.marchingAbstract.keyNum) { + YUMIMarchingBuyFuelRegard * buyView = [[YUMIMarchingBuyFuelRegard alloc] init]; + buyView.delegate = self; + [MKJPopup popupRegard:buyView style:MKJPopupStyleAlert]; + } else { + self.marchingIndicateRegard.hidden = YES; + [self inititowardseMarchingSVGA]; + NSString * roomUid = self.roomUid; + [self.presimport unfoildMarching:roomUid sendMessage:YES keyNum:self.essayUniverse.text.integerValue]; + self.exploreBtuton.userInteractionEnabled = NO; + } +} + +- (void)boxBtutonPerformance:(UIButton *)sender { + sender.selected = !sender.selected; + if (sender.selected) { + NSString * key = [NSString stringWithFormat:@"%@_%@", kSailingPrizeAlertKey, [AccountAbstractStorage instance].acquireCid]; + [[NSUserDefaults standardUserDefaults] setBool:YES forKey:key]; + } else { + NSString * key = [NSString stringWithFormat:@"%@_%@", kSailingPrizeAlertKey, [AccountAbstractStorage instance].acquireCid]; + [[NSUserDefaults standardUserDefaults] setBool:NO forKey:key]; + } +} +#pragma mark - NIMSystemNotificationManagerDelegate +- (void)onReceiveCustomSystemNotification:(NIMCustomSystemNotification *)notification { + if (notification.receiverType == NIMSessionTypeP2P) { + AttachmentMatrix *attachment = [AttachmentMatrix mtowardsrixAboutJSON:notification.content]; + if (attachment.first == IndividualityCommunicationGenre_Account && attachment.second == Custom_Message_Sub_Account_Changed){ + if (attachment.second == Custom_Message_Sub_Account_Changed) { + [self.presimport acquireMarchingAbstract]; + } + } + } +} + +- (void)yUMIMarchingAcquireFuelRegard:(YUMIMarchingBuyFuelRegard *)view didClickBuy:(UIButton *)sender { + [MKJPopup dismiss]; + [self acquireFuleBtutonPerformance:self.acquireFuleBtuton]; +} + +- (void)yUMIMarchingAcquireFuelRegard:(YUMIMarchingBuyFuelRegard *)view didTicktackRevoctowardsion:(UIButton *)sender { + [MKJPopup dismiss]; +} + +#pragma mark - Getters And Setters +- (void)setExploreComputation:(NSInteger)exploreComputation { + _exploreComputation = exploreComputation; + if (_exploreComputation == 0) { + self.deficituBtuton.enabled = NO; + } else { + self.deficituBtuton.enabled = YES; + } + + if (_exploreComputation == 3) { + self.accelerateBtuton.enabled = NO; + } else { + self.accelerateBtuton.enabled = YES; + } + NSString * count = [self.prototypeGarment secureGroalTowardsIndictowardsrix1:_exploreComputation]; + self.essayUniverse.text = count; + self.consumSequencignation.text = [NSString stringWithFormat:YMLocalizedString(@"YUMI_Sailing_View_Controller_0"), count]; +} + +- (UIView *)apexRegard { + if (!_apexRegard) { + _apexRegard = [[UIView alloc] init]; + _apexRegard.backgroundColor = [UIColor clearColor]; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(disappearRegard)]; + [_apexRegard addGestureRecognizer:tap]; + return _apexRegard; + } + return _apexRegard; +} + +- (UIImageView *)encourageIndicateRegard { + if (!_encourageIndicateRegard) { + _encourageIndicateRegard = [[UIImageView alloc] init]; + _encourageIndicateRegard.userInteractionEnabled = YES; + _encourageIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_sailing_background"]; + _encourageIndicateRegard.contentMode = UIViewContentModeScaleAspectFill; + _encourageIndicateRegard.layer.masksToBounds = YES; + } + return _encourageIndicateRegard; +} + +- (UIButton *)rateBtuton { + if (!_rateBtuton) { + _rateBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_rateBtuton setImage:[UIImage imageNamed:@"yumi_scope_sailing_rank"] forState:UIControlStateNormal]; + [_rateBtuton setImage:[UIImage imageNamed:@"yumi_scope_sailing_rank"] forState:UIControlStateSelected]; + [_rateBtuton addTarget:self action:@selector(rtowardseBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _rateBtuton; +} + +- (UIButton *)acquireFuleBtuton { + if (!_acquireFuleBtuton) { + _acquireFuleBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_acquireFuleBtuton setImage:[UIImage imageNamed:@"yumi_scope_sailing_getfule"] forState:UIControlStateNormal]; + [_acquireFuleBtuton setImage:[UIImage imageNamed:@"yumi_scope_sailing_getfule"] forState:UIControlStateSelected]; + [_acquireFuleBtuton addTarget:self action:@selector(acquireFuleBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _acquireFuleBtuton; +} + +- (UIButton *)reflectionBtuton { + if (!_reflectionBtuton) { + _reflectionBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_reflectionBtuton setImage:[UIImage imageNamed:@"yumi_scope_sailing_record"] forState:UIControlStateNormal]; + [_reflectionBtuton setImage:[UIImage imageNamed:@"yumi_scope_sailing_record"] forState:UIControlStateSelected]; + [_reflectionBtuton addTarget:self action:@selector(reflectionBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _reflectionBtuton; +} + +- (UIImageView *)satisfperformanceIndicateRegard { + if (!_satisfperformanceIndicateRegard) { + _satisfperformanceIndicateRegard = [[UIImageView alloc] init]; + _satisfperformanceIndicateRegard.userInteractionEnabled = YES; + _satisfperformanceIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_sailing_explore_background"]; + } + return _satisfperformanceIndicateRegard; +} + +- (UIButton *)sequenceriptionBtuton { + if (!_sequenceriptionBtuton) { + _sequenceriptionBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_sequenceriptionBtuton setImage:[UIImage imageNamed:@"yumi_scope_sailing_description"] forState:UIControlStateNormal]; + [_sequenceriptionBtuton setImage:[UIImage imageNamed:@"yumi_scope_sailing_description"] forState:UIControlStateSelected]; + [_sequenceriptionBtuton addTarget:self action:@selector(descriptionBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _sequenceriptionBtuton; +} + +- (UIButton *)fuleBtuton { + if (!_fuleBtuton) { + _fuleBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_fuleBtuton setTitle:@"0" forState:UIControlStateNormal]; + [_fuleBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + _fuleBtuton.titleLabel.font = [UIFont systemFontOfSize:10]; + _fuleBtuton.titleEdgeInsets = UIEdgeInsetsMake(0, 15, 0, 0); + [_fuleBtuton setTitleColor:[DJDKMIMOMColor colorAboutHexBWSttr:@"#643B29"] forState:UIControlStateNormal]; + [_fuleBtuton setBackgroundImage:[UIImage imageNamed:@"yumi_scope_sailing_rule_background"] forState:UIControlStateNormal]; + } + return _fuleBtuton; +} + +- (UIStackView *)digitalRegard { + if (!_digitalRegard) { + _digitalRegard = [[UIStackView alloc] init]; + _digitalRegard.axis = UILayoutConstraintAxisHorizontal; + _digitalRegard.distribution = UIStackViewDistributionFill; + _digitalRegard.alignment = UIStackViewAlignmentFill; + _digitalRegard.spacing = 6; + } + return _digitalRegard; +} + +- (UITextField *)essayUniverse { + if (!_essayUniverse) { + _essayUniverse = [[UITextField alloc] init]; + _essayUniverse.textColor = [DJDKMIMOMColor colorAboutHexBWSttr:@"#64472E"]; + _essayUniverse.backgroundColor = [DJDKMIMOMColor colorAboutHexBWSttr:@"#DACBB4"]; + _essayUniverse.font = [UIFont systemFontOfSize:15]; + _essayUniverse.layer.masksToBounds = YES; + _essayUniverse.layer.cornerRadius = 11; + _essayUniverse.text = @"1"; + _essayUniverse.enabled = NO; + _essayUniverse.textAlignment = NSTextAlignmentCenter; + } + return _essayUniverse; +} + + +- (UIButton *)accelerateBtuton { + if (!_accelerateBtuton) { + _accelerateBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_accelerateBtuton setImage:[UIImage imageNamed:@"yumi_scope_sailing_add"] forState:UIControlStateNormal]; + [_accelerateBtuton setImage:[UIImage imageNamed:@"yumi_scope_sailing_add"] forState:UIControlStateSelected]; + [_accelerateBtuton setEnlargeEdgeAboutApex:10 right:10 bottom:10 left:10]; + [_accelerateBtuton addTarget:self action:@selector(accelertowardseBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _accelerateBtuton; +} + +- (UIButton *)deficituBtuton { + if (!_deficituBtuton) { + _deficituBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_deficituBtuton setImage:[UIImage imageNamed:@"yumi_scope_sailing_redu"] forState:UIControlStateNormal]; + [_deficituBtuton setImage:[UIImage imageNamed:@"yumi_scope_sailing_redu"] forState:UIControlStateSelected]; + [_deficituBtuton setEnlargeEdgeAboutApex:10 right:10 bottom:10 left:10]; + [_deficituBtuton addTarget:self action:@selector(deficituBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _deficituBtuton; +} + +- (UIButton *)exploreBtuton { + if (!_exploreBtuton) { + _exploreBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_exploreBtuton setImage:[UIImage imageNamed:@"yumi_scope_sailing_explore"] forState:UIControlStateNormal]; + [_exploreBtuton setImage:[UIImage imageNamed:@"yumi_scope_sailing_explore"] forState:UIControlStateSelected]; + [_exploreBtuton addTarget:self action:@selector(eyumiloreBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _exploreBtuton; +} + +- (UILabel *)consumSequencignation { + if (!_consumSequencignation) { + _consumSequencignation = [[UILabel alloc] init]; + _consumSequencignation.font = [UIFont systemFontOfSize:10]; + _consumSequencignation.textColor = [DJDKMIMOMColor colorAboutHexBWSttr:@"#A08161"]; + _consumSequencignation.textAlignment = NSTextAlignmentCenter; + _consumSequencignation.text = YMLocalizedString(@"YUMI_Sailing_View_Controller_1"); + } + return _consumSequencignation; +} + +- (UIView *)animationView { + if (!_animationView) { + _animationView = [[UIView alloc] init]; + _animationView.backgroundColor = [UIColor clearColor]; + } + return _animationView; +} + +- (SVGAImageView *)marchingRegard { + if (!_marchingRegard) { + _marchingRegard = [[SVGAImageView alloc]init]; + _marchingRegard.backgroundColor = [UIColor clearColor]; + _marchingRegard.userInteractionEnabled = NO; + _marchingRegard.delegate = self; + } + return _marchingRegard; +} + +- (SVGAImageView *)marchingCowryRegard { + if (!_marchingCowryRegard) { + _marchingCowryRegard = [[SVGAImageView alloc]init]; + _marchingCowryRegard.backgroundColor = [UIColor clearColor]; + _marchingCowryRegard.userInteractionEnabled = NO; + _marchingCowryRegard.delegate = self; + } + return _marchingCowryRegard; +} + +- (SVGAParser *)anatomiser { + if (!_anatomiser) { + _anatomiser = [[SVGAParser alloc]init]; + } + return _anatomiser; +} + +- (SVGAParser *)anatomiser1 { + if (!_anatomiser1) { + _anatomiser1 = [[SVGAParser alloc]init]; + } + return _anatomiser1; +} + +- (UIImageView *)marchingIndicateRegard { + if (!_marchingIndicateRegard) { + _marchingIndicateRegard = [[UIImageView alloc] init]; + _marchingIndicateRegard.userInteractionEnabled = YES; + _marchingIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_sailing_sailing"]; + } + return _marchingIndicateRegard; +} + +- (UIStackView *)promptsHierarchyRegard { + if (!_promptsHierarchyRegard) { + _promptsHierarchyRegard = [[UIStackView alloc] init]; + _promptsHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _promptsHierarchyRegard.distribution = UIStackViewDistributionFill; + _promptsHierarchyRegard.alignment = UIStackViewAlignmentFill; + _promptsHierarchyRegard.spacing = 5; + } + return _promptsHierarchyRegard; +} + +- (UIButton *)boxBtuton { + if (!_boxBtuton) { + _boxBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_boxBtuton setImage:[UIImage imageNamed:@"yumi_scope_sailing_tips_normal"] forState:UIControlStateNormal]; + [_boxBtuton setImage:[UIImage imageNamed:@"yumi_scope_sailing_tips_select"] forState:UIControlStateSelected]; + [_boxBtuton addTarget:self action:@selector(boxBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + [_boxBtuton setEnlargeEdgeAboutApex:10 right:10 bottom:10 left:10]; + NSString * key = [NSString stringWithFormat:@"%@_%@", kSailingPrizeAlertKey, [AccountAbstractStorage instance].acquireCid]; + _boxBtuton.selected = [[NSUserDefaults standardUserDefaults] boolForKey:key]; + } + return _boxBtuton; +} + +- (UILabel *)tipLabel { + if (!_tipLabel) { + _tipLabel = [[UILabel alloc] init]; + _tipLabel.font = [UIFont systemFontOfSize:10]; + _tipLabel.textColor = UIColorFromRGB(0xA16A2F); + _tipLabel.text = YMLocalizedString(@"YUMI_Sailing_View_Controller_2"); + } + return _tipLabel; +} + + +@end diff --git a/YuMi/Modules/YMRoom/View/SendGiftView/Api/Api+Gift.h b/YuMi/Modules/YMRoom/View/SendGiftView/Api/Api+Gift.h new file mode 100644 index 00000000..24422c40 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendGiftView/Api/Api+Gift.h @@ -0,0 +1,48 @@ +// +// Api+Gift.h +// YUMI +// +// Created by YUMI on 2021/11/9. +// + +#import "Api.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface Api (Gift) + ++ (void)requisitionImpactPresentSttowardsement:(HttpRequestHelperCompletion)complection + uid:(NSString *)uid + ticket:(NSString *)ticket; + ++ (void)requisitionOrdinaryPresentSttowardsement:(HttpRequestHelperCompletion)complection + roomUid:(NSString *)roomUid; + ++ (void)requisitionDischargePresent:(HttpRequestHelperCompletion)complection + targetUids:(NSString *)targetUids + giftNum:(NSString *)giftNum + sendType:(NSString *)sendType + giftId:(NSString *)giftId + giftSource:(NSString *)giftSource + giftType:(NSString *)giftType + roomUid:(NSString *)roomUid + msg:(NSString *)msg + uid:(NSString *)uid; + ++ (void)requisitionDischargeKellegFantowardsicsPresent:(HttpRequestHelperCompletion)completion + targetUids:(NSString *)targetUids + giftNum:(NSString *)giftNum + sendType:(NSString *)sendType + giftId:(NSString *)giftId + giftSource:(NSString *)giftSource + giftType:(NSString *)giftType + roomUid:(NSString *)roomUid + msg:(NSString *)msg + uid:(NSString *)uid; + ++ (void)requisitionLuckPresentWeeblogicBagReflection:(HttpRequestHelperCompletion)complection; + ++ (void)requisitionDuodenaryStowardselliteThreshold:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/SendGiftView/Api/Api+Gift.m b/YuMi/Modules/YMRoom/View/SendGiftView/Api/Api+Gift.m new file mode 100644 index 00000000..18c6160c --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendGiftView/Api/Api+Gift.m @@ -0,0 +1,66 @@ +// +// Api+Gift.m +// YUMI +// +// Created by YUMI on 2021/11/9. +// + +#import "Api+Gift.h" +#import "NSMutableDictionary+Saft.h" +#import +@implementation Api (Gift) + + ++ (void)requisitionImpactPresentSttowardsement:(HttpRequestHelperCompletion)complection uid:(NSString *)uid ticket:(NSString *)ticket { + NSString * fang = [NSString stringFromBase64String:@"YmFja3BhY2svbGlzdFVzZXJCYWNrcGFja1Yy"]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:complection, __FUNCTION__, uid, ticket, nil]; +} + ++ (void)requisitionOrdinaryPresentSttowardsement:(HttpRequestHelperCompletion)complection roomUid:(NSString *)roomUid { + NSString * fang = [NSString stringFromBase64String:@"Z2lmdC9saXN0VjQ="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:complection, __FUNCTION__, roomUid, nil]; +} + ++ (void)requisitionLuckPresentWeeblogicBagReflection:(HttpRequestHelperCompletion)complection { + NSString * fang = [NSString stringFromBase64String:@"Z2lmdC9sdWNreUJhZy9zZXJ2aWNlTXNnL3JlY29yZA=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:complection, __FUNCTION__, nil]; +} + + ++ (void)requisitionDischargePresent:(HttpRequestHelperCompletion)complection + targetUids:(NSString *)targetUids + giftNum:(NSString *)giftNum + sendType:(NSString *)sendType + giftId:(NSString *)giftId + giftSource:(NSString *)giftSource + giftType:(NSString *)giftType + roomUid:(NSString *)roomUid + msg:(NSString *)msg + uid:(NSString *)uid { + NSString * fang = [NSString stringFromBase64String:@"Z2lmdC9zZW5kVjQ="]; + NSString *method = fang; + [self manufactureDemand:method method:HttpRequestHelperMethodPOST completion:complection, __FUNCTION__, targetUids, giftNum, sendType, giftId, giftSource, giftType, roomUid, msg, uid, nil]; +} + ++ (void)requisitionDischargeKellegFantowardsicsPresent:(HttpRequestHelperCompletion)completion + targetUids:(NSString *)targetUids + giftNum:(NSString *)giftNum + sendType:(NSString *)sendType + giftId:(NSString *)giftId + giftSource:(NSString *)giftSource + giftType:(NSString *)giftType + roomUid:(NSString *)roomUid + msg:(NSString *)msg + uid:(NSString *)uid { + NSString * fang = [NSString stringFromBase64String:@"YW5jaG9yRmFuc1RlYW0vc2VuZEpvaW5UZWFtR2lmdA=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, targetUids, giftNum, sendType, giftId, giftSource, giftType, roomUid, msg, uid, nil]; +} + ++ (void)requisitionDuodenaryStowardselliteThreshold:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid { + NSMutableDictionary * params = [NSMutableDictionary dictionary]; + [params secureSetGroal:roomUid forKey:@"roomUid"]; + NSString * fang = [NSString stringFromBase64String:@"dHdlbHZlU3Rhci9nZXRMYXN0UmFua0ZpcnN0"]; + [HttpRequestFacilitater request:fang method:HttpRequestHelperMethodGET params:params completion:completion]; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/SendGiftView/Model/PresentAbstractMatrix.h b/YuMi/Modules/YMRoom/View/SendGiftView/Model/PresentAbstractMatrix.h new file mode 100644 index 00000000..9d47946d --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendGiftView/Model/PresentAbstractMatrix.h @@ -0,0 +1,83 @@ +// +// YMGiftInfoModel.h +// YUMI +// +// Created by YUMI on 2021/11/11. +// + +#import +#import "PresentMagnificentAbstractMatrix.h" +#import "YUMIWeekSatelliteRateConsumerMatrix.h" + +NS_ASSUME_NONNULL_BEGIN +typedef NS_ENUM(NSUInteger, PresentGenre) { + PresentGenre_Game = 2, + PresentGenre_Lucky = 3, + PresentGenre_LuckyPool = 5, + PresentGenre_Noble = 7, + PresentGenre_WeekStar = 8, + PresentGenre_Graffiti = 10, + PresentGenre_Anchor = 11, + PresentGenre_Punish = 12, + PresentGenre_Twelve_Star = 13, +}; + +typedef NS_ENUM(NSUInteger, PresentSourceGenre) { + PresentSourceGenre_Normal = 1, + PresentSourceGenre_Pack = 2, +}; + +typedef NS_ENUM(NSUInteger, PresentOtherRegardGenre) { + PresentOtherRegardGenreNormal = 0, + PresentOtherRegardGenreMp4 = 1, +}; + + +typedef NS_ENUM(NSUInteger, PresentDischargeGenre) { + PresentDischargeGenre_Room = 1, + PresentDischargeGenre_Chat = 2, + PresentDischargeGenre_OnMic = 3, +}; + + +typedef NS_ENUM(NSUInteger, ChamberDischargePresentGenre) { + ChamberDischargePresentGenre_AllMic, + ChamberDischargePresentGenre_MutableOnMic, + ChamberDischargePresentGenre_ToOne, +}; + +@interface PresentAbstractMatrix : NSObject +@property (nonatomic, assign)NSInteger giftId; +@property (nonatomic, strong)NSString *giftName; +@property (nonatomic, assign)double goldPrice; +@property (nonatomic, copy)NSString *giftUrl; +@property (nonatomic, copy)NSString *luckyGiftSvgaUrl; +@property (nonatomic, copy)NSString *giftExplainUrl; + +@property (nonatomic, assign) PresentGenre giftType; +@property (assign, nonatomic) BOOL hasVggPic; +@property (copy, nonatomic) NSString *vggUrl; +@property (assign, nonatomic) BOOL hasLatest; +@property (assign, nonatomic) BOOL hasTimeLimit; +@property (assign, nonatomic) BOOL hasEffect; +@property (assign, nonatomic) BOOL roomExclude; +@property (nonatomic,assign) BOOL isSendMsg; +@property (nonatomic, assign) PresentOtherRegardGenre otherViewType; +@property (nonatomic, copy) NSString *viewUrl; + + +@property (nonatomic, assign) NSInteger count; +@property (nonatomic, assign) NSInteger reciveCount; + +@property (nonatomic,assign) BOOL isSelected; +@property (nonatomic,assign) PresentSourceGenre sourceType; +@property (nonatomic, strong) PresentMagnificentAbstractMatrix *giftVipInfo; + + +@property (nonatomic, assign) NSInteger lastGiftId; +@property (nonatomic, strong) YUMIWeekSatelliteRateConsumerMatrix *firstCharmRankUser; +@property (nonatomic, strong) YUMIWeekSatelliteRateConsumerMatrix *firstLevelRankUser; +@property (nonatomic,assign) BOOL isEmpty; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/SendGiftView/Model/PresentAbstractMatrix.m b/YuMi/Modules/YMRoom/View/SendGiftView/Model/PresentAbstractMatrix.m new file mode 100644 index 00000000..784405cd --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendGiftView/Model/PresentAbstractMatrix.m @@ -0,0 +1,12 @@ +// +// YMGiftInfoModel.m +// YUMI +// +// Created by YUMI on 2021/11/11. +// + +#import "PresentAbstractMatrix.h" +#import "MJExtension.h" +@implementation PresentAbstractMatrix +MJCodingImplementation +@end diff --git a/YuMi/Modules/YMRoom/View/SendGiftView/Model/PresentAchieveAbstractMatrix.h b/YuMi/Modules/YMRoom/View/SendGiftView/Model/PresentAchieveAbstractMatrix.h new file mode 100644 index 00000000..3638700c --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendGiftView/Model/PresentAchieveAbstractMatrix.h @@ -0,0 +1,64 @@ +// +// PresentAchieveAbstractMatrix.h +// YUMI +// +// Created by YUMI on 2021/11/16. +// +#import +#import "PresentAbstractMatrix.h" +NS_ASSUME_NONNULL_BEGIN +@class PresentStressAbstractMatrix; +@interface PresentAchieveConsumerAbstractMatrix : NSObject +@property(nonatomic, strong)NSString *nick; +@property(nonatomic, strong)NSString *avatar; +@property(nonatomic, assign) NSInteger uid; +@end + +@interface PresentFortunateConsumerAbstract : NSObject +@property(nonatomic, copy) NSString *nick; +@property(nonatomic, assign) NSInteger uid; +@end + + +@interface PresentStatementsAbstract : NSObject +@property (nonatomic, assign) NSInteger giftNum; +@property (nonatomic, assign) NSInteger prizeLevel; +@property (nonatomic, assign) NSInteger giftId; +@end + + + +@interface PresentFortunateBagPresentsAbstract : NSObject +@property (nonatomic, strong) NSArray *giftList; +@property (nonatomic, strong) PresentFortunateConsumerAbstract *user; +@end + +@interface PresentAchieveAbstractMatrix : NSObject +@property(nonatomic,copy)NSString * targetUid; +@property (nonatomic,copy) NSString *targetAvatar; +@property (nonatomic,copy) NSString *targetNick; +@property (nonatomic,strong) NSArray *targetUids; +@property (nonatomic,strong) PresentAbstractMatrix *gift; +@property (nonatomic,strong) PresentAbstractMatrix *giftInfo; +@property(nonatomic, assign)NSString * uid; +@property (nonatomic,copy) NSString *giftId; +@property(nonatomic, strong)NSString *nick; +@property(nonatomic, strong)NSString *avatar; +@property (assign, nonatomic) NSInteger giftNum; +@property (nonatomic,strong)NSString *giftName; +@property (copy,nonatomic) NSString *vggUrl; +@property (nonatomic, copy) NSString *viewUrl; +@property (nonatomic, copy)NSString *luckyGiftSvgaUrl; +@property (nonatomic,strong) NSArray *targetUsers; +@property (nonatomic,strong) NSArray *displayGift; +@property (nonatomic,strong) NSArray *luckyBagGifts; +@property (nonatomic,strong) PresentFortunateBagPresentsAbstract* luckyGiftList; +@property (nonatomic,assign) PresentSourceGenre sourceType; +@property (nonatomic,assign) ChamberDischargePresentGenre roomSendGiftType; +@property (nonatomic, strong) NSArray *giftValueVos; +@property (nonatomic,assign) BOOL isLuckyBagGift; +@property (nonatomic,assign) BOOL isBatch; +@property (nonatomic, assign) BOOL isShowAnimation; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/SendGiftView/Model/PresentAchieveAbstractMatrix.m b/YuMi/Modules/YMRoom/View/SendGiftView/Model/PresentAchieveAbstractMatrix.m new file mode 100644 index 00000000..7c32b71d --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendGiftView/Model/PresentAchieveAbstractMatrix.m @@ -0,0 +1,44 @@ +// +// PresentAchieveAbstractMatrix.m +// YUMI +// +// Created by YUMI on 2021/11/16. +// + +#import "PresentAchieveAbstractMatrix.h" +#import "NSObject+MJExtension.h" + +@implementation PresentAchieveConsumerAbstractMatrix + +@end + +@implementation PresentFortunateConsumerAbstract + + +@end + +@implementation PresentStatementsAbstract + + +@end + +@implementation PresentFortunateBagPresentsAbstract + ++ (NSDictionary *)objectCtowardsegorizeInGarment { + return @{@"giftList":PresentStatementsAbstract.class + }; +} + + +@end + +@implementation PresentAchieveAbstractMatrix + ++ (NSDictionary *)objectCtowardsegorizeInGarment { + return @{@"targetUsers":PresentAchieveConsumerAbstractMatrix.class, + @"displayGift":PresentAbstractMatrix.class, + @"luckyBagGifts":PresentFortunateBagPresentsAbstract.class + }; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/SendGiftView/Model/PresentFortunatePingbackMatrix.h b/YuMi/Modules/YMRoom/View/SendGiftView/Model/PresentFortunatePingbackMatrix.h new file mode 100644 index 00000000..894747b5 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendGiftView/Model/PresentFortunatePingbackMatrix.h @@ -0,0 +1,21 @@ +// +// PresentFortunatePingbackMatrix.h +// YUMI +// +// Created by YUMI on 2022/10/17. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface PresentFortunatePingbackMatrix : NSObject +@property (nonatomic,strong) NSString *giftName; +@property (nonatomic, assign)double goldPrice; +@property (nonatomic,strong) NSString *luckyBagName; +@property (nonatomic,strong) NSString *nick; +@property (nonatomic,strong) NSString *roomTitle; +@property (nonatomic,strong) NSString *roomUid; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/SendGiftView/Model/PresentFortunatePingbackMatrix.m b/YuMi/Modules/YMRoom/View/SendGiftView/Model/PresentFortunatePingbackMatrix.m new file mode 100644 index 00000000..c6551c37 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendGiftView/Model/PresentFortunatePingbackMatrix.m @@ -0,0 +1,14 @@ +// +// PresentFortunatePingbackMatrix.m +// YUMI +// +// Created by YUMI on 2022/10/17. +// + +#import "PresentFortunatePingbackMatrix.h" + +@implementation PresentFortunatePingbackMatrix + + + +@end diff --git a/YuMi/Modules/YMRoom/View/SendGiftView/Model/PresentMagnificentAbstractMatrix.h b/YuMi/Modules/YMRoom/View/SendGiftView/Model/PresentMagnificentAbstractMatrix.h new file mode 100644 index 00000000..a730754e --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendGiftView/Model/PresentMagnificentAbstractMatrix.h @@ -0,0 +1,20 @@ +// +// PresentMagnificentAbstractMatrix.h +// YUMI +// +// Created by YUMI on 2021/12/27. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface PresentMagnificentAbstractMatrix : NSObject + +@property (nonatomic, copy)NSString *vipIcon; +@property (nonatomic, assign) NSInteger vipLevel; +@property (nonatomic, copy) NSString *vipName; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/SendGiftView/Model/PresentMagnificentAbstractMatrix.m b/YuMi/Modules/YMRoom/View/SendGiftView/Model/PresentMagnificentAbstractMatrix.m new file mode 100644 index 00000000..b4a6cb07 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendGiftView/Model/PresentMagnificentAbstractMatrix.m @@ -0,0 +1,12 @@ +// +// PresentMagnificentAbstractMatrix.m +// YUMI +// +// Created by YUMI on 2021/12/27. +// + +#import "PresentMagnificentAbstractMatrix.h" +#import "MJExtension.h" +@implementation PresentMagnificentAbstractMatrix +MJCodingImplementation +@end diff --git a/YuMi/Modules/YMRoom/View/SendGiftView/Model/PresentStressAbstractMatrix.h b/YuMi/Modules/YMRoom/View/SendGiftView/Model/PresentStressAbstractMatrix.h new file mode 100644 index 00000000..54ff50e4 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendGiftView/Model/PresentStressAbstractMatrix.h @@ -0,0 +1,23 @@ +// +// MicroGiftValueModel.h +// YUMI +// +// Created by YUMI on 2021/12/13. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class PresentStressSpecificMatrix; +@interface PresentStressAbstractMatrix : NSObject +@property (nonatomic, copy) NSString *currentTime; +@property (nonatomic, strong) NSArray *giftValueVos; +@end + +@interface PresentStressSpecificMatrix : NSObject +@property (nonatomic, copy) NSString * uid; +@property (nonatomic, assign) long long giftValue; +@end + + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/SendGiftView/Model/PresentStressAbstractMatrix.m b/YuMi/Modules/YMRoom/View/SendGiftView/Model/PresentStressAbstractMatrix.m new file mode 100644 index 00000000..2ca191f1 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendGiftView/Model/PresentStressAbstractMatrix.m @@ -0,0 +1,23 @@ +// +// MicroGiftValueModel.m +// YUMI +// +// Created by YUMI on 2021/12/13. +// + +#import "PresentStressAbstractMatrix.h" + +@implementation PresentStressAbstractMatrix + ++ (NSDictionary *)objectCtowardsegorizeInGarment { + return @{@"giftValueVos":PresentStressSpecificMatrix.class}; +} + +@end + + +@implementation PresentStressSpecificMatrix + + + +@end diff --git a/YuMi/Modules/YMRoom/View/SendGiftView/Model/PresentTwelveSatelliteThresholdMatrix.h b/YuMi/Modules/YMRoom/View/SendGiftView/Model/PresentTwelveSatelliteThresholdMatrix.h new file mode 100644 index 00000000..52634e2d --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendGiftView/Model/PresentTwelveSatelliteThresholdMatrix.h @@ -0,0 +1,23 @@ +// +// PresentTwelveSatelliteThresholdMatrix.h +// YUMI +// +// Created by YUMI on 2022/12/7. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface PresentTwelveSatelliteThresholdMatrix : NSObject +@property (nonatomic, copy) NSString *avatar; +@property (nonatomic, copy) NSString *erbanNo; +@property (nonatomic, copy) NSString *markUrl; +@property (nonatomic, copy) NSString *nick; +@property (nonatomic, copy) NSString *twelveStarName; +@property (nonatomic, copy) NSString *uid; +@property (nonatomic, assign) NSInteger gender; +@property (nonatomic, copy) NSString *twelveId; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/SendGiftView/Model/PresentTwelveSatelliteThresholdMatrix.m b/YuMi/Modules/YMRoom/View/SendGiftView/Model/PresentTwelveSatelliteThresholdMatrix.m new file mode 100644 index 00000000..b544edcb --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendGiftView/Model/PresentTwelveSatelliteThresholdMatrix.m @@ -0,0 +1,12 @@ +// +// PresentTwelveSatelliteThresholdMatrix.m +// YUMI +// +// Created by YUMI on 2022/12/7. +// + +#import "PresentTwelveSatelliteThresholdMatrix.h" + +@implementation PresentTwelveSatelliteThresholdMatrix + +@end diff --git a/YuMi/Modules/YMRoom/View/SendGiftView/Model/YUMIExternalizeConsumerAbstractMatrix.h b/YuMi/Modules/YMRoom/View/SendGiftView/Model/YUMIExternalizeConsumerAbstractMatrix.h new file mode 100644 index 00000000..a64bc568 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendGiftView/Model/YUMIExternalizeConsumerAbstractMatrix.h @@ -0,0 +1,22 @@ +// +// YMGiftUserInfoModel.h +// YUMI +// +// Created by YUMI on 2021/11/17. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIExternalizeConsumerAbstractMatrix : NSObject +@property (nonatomic,copy) NSString * avatar; +@property (nonatomic,copy) NSString *nick; +@property (nonatomic,assign) NSInteger uid; +@property (nonatomic,copy) NSString * position; +@property (nonatomic,assign) BOOL vipMic; +@property (nonatomic,assign) BOOL isSelect; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/SendGiftView/Model/YUMIExternalizeConsumerAbstractMatrix.m b/YuMi/Modules/YMRoom/View/SendGiftView/Model/YUMIExternalizeConsumerAbstractMatrix.m new file mode 100644 index 00000000..400cab4d --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendGiftView/Model/YUMIExternalizeConsumerAbstractMatrix.m @@ -0,0 +1,14 @@ +// +// YMGiftUserInfoModel.m +// YUMI +// +// Created by YUMI on 2021/11/17. +// + +#import "YUMIExternalizeConsumerAbstractMatrix.h" + +@implementation YUMIExternalizeConsumerAbstractMatrix + + + +@end diff --git a/YuMi/Modules/YMRoom/View/SendGiftView/Model/YUMIPresentComputationMatrix.h b/YuMi/Modules/YMRoom/View/SendGiftView/Model/YUMIPresentComputationMatrix.h new file mode 100644 index 00000000..f0967307 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendGiftView/Model/YUMIPresentComputationMatrix.h @@ -0,0 +1,22 @@ +// +// YMGiftCountModel.h +// YUMI +// +// Created by YUMI on 2021/11/11. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIPresentComputationMatrix : NSObject +@property (nonatomic,copy) NSString *title; +@property (nonatomic,copy) NSString *giftNumber; +@property (nonatomic,assign) BOOL isTotal; +@property (nonatomic, assign) BOOL isCustomCount; + ++ (instancetype)initComputtowardsionMtowardsrix:(NSString *)title giftNumber:(NSString *)giftNumber; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/SendGiftView/Model/YUMIPresentComputationMatrix.m b/YuMi/Modules/YMRoom/View/SendGiftView/Model/YUMIPresentComputationMatrix.m new file mode 100644 index 00000000..e128d1a8 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendGiftView/Model/YUMIPresentComputationMatrix.m @@ -0,0 +1,22 @@ +// +// YMGiftCountModel.m +// YUMI +// +// Created by YUMI on 2021/11/11. +// + +#import "YUMIPresentComputationMatrix.h" + +@implementation YUMIPresentComputationMatrix + + ++ (instancetype)initComputtowardsionMtowardsrix:(NSString *)title giftNumber:(NSString *)giftNumber { + YUMIPresentComputationMatrix * model = [[YUMIPresentComputationMatrix alloc] init]; + model.title = title; + model.giftNumber = giftNumber; + model.isTotal = NO; + model.isCustomCount = NO; + return model; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/SendGiftView/Model/YUMIWeekSatelliteRateConsumerMatrix.h b/YuMi/Modules/YMRoom/View/SendGiftView/Model/YUMIWeekSatelliteRateConsumerMatrix.h new file mode 100644 index 00000000..a5a587de --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendGiftView/Model/YUMIWeekSatelliteRateConsumerMatrix.h @@ -0,0 +1,23 @@ +// +// YMCharmRankUserModel.h +// YUMI +// +// Created by YUMI on 2022/5/7. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIWeekSatelliteRateConsumerMatrix : NSObject + +@property (nonatomic, copy) NSString *avatar; +@property (nonatomic, assign) NSInteger amount; +@property (nonatomic, assign) NSInteger uid; +@property (nonatomic, assign) NSInteger erbanNo; +@property (nonatomic, copy) NSString *nick; +@property (nonatomic, assign) NSInteger giftId; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/SendGiftView/Model/YUMIWeekSatelliteRateConsumerMatrix.m b/YuMi/Modules/YMRoom/View/SendGiftView/Model/YUMIWeekSatelliteRateConsumerMatrix.m new file mode 100644 index 00000000..5ac06dc3 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendGiftView/Model/YUMIWeekSatelliteRateConsumerMatrix.m @@ -0,0 +1,12 @@ +// +// YMCharmRankUserModel.m +// YUMI +// +// Created by YUMI on 2022/5/7. +// + +#import "YUMIWeekSatelliteRateConsumerMatrix.h" + +@implementation YUMIWeekSatelliteRateConsumerMatrix + +@end diff --git a/YuMi/Modules/YMRoom/View/SendGiftView/Presenter/YUMIPresentExternalizer.h b/YuMi/Modules/YMRoom/View/SendGiftView/Presenter/YUMIPresentExternalizer.h new file mode 100644 index 00000000..1704d9ae --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendGiftView/Presenter/YUMIPresentExternalizer.h @@ -0,0 +1,33 @@ +// +// YMGiftPresenter.h +// YUMI +// +// Created by YUMI on 2021/11/9. +// + +#import "BaseMvpExternalizer.h" +#import "PresentAbstractMatrix.h" +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIPresentExternalizer : BaseMvpExternalizer +- (void)getUserInfo:(NSString *)uid; +- (void)acquireConsumerRampartowardsAbstract; +- (void)acquireOrdinaryPresentSttowardsement:(NSString *)roomUid; +- (void)acquireImpactPresentSttowardsement; +- (void)prohibitichargePresent:(NSString *)targetUids + giftNum:(NSString *)giftNum + sendType:(PresentDischargeGenre)sendType + giftId:(NSString *)giftId + giftSource:(PresentSourceGenre)giftSource + giftType:(PresentGenre)giftType + roomSendType:(ChamberDischargePresentGenre)roomSendType + roomUid:(NSString *)roomUid + msg:(NSString *)msg; + + +- (void)fortuntowardsePresentBroadcastReflection; + +- (void)acquireDuodenaryStowardselliteRecentRtowardseThreshold:(NSString *)roomUid; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/SendGiftView/Presenter/YUMIPresentExternalizer.m b/YuMi/Modules/YMRoom/View/SendGiftView/Presenter/YUMIPresentExternalizer.m new file mode 100644 index 00000000..be865bde --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendGiftView/Presenter/YUMIPresentExternalizer.m @@ -0,0 +1,136 @@ +// +// YMGiftPresenter.m +// YUMI +// +// Created by YUMI on 2021/11/9. +// + +#import "YUMIPresentExternalizer.h" +#import "AccountAbstractStorage.h" +#import "YUMIPresentStorage.h" +#import "Api+Gift.h" +#import "XNDJTBWGLoadingTool.h" +#import "RamparatetAbstractMatrix.h" +#import "PresentAchieveAbstractMatrix.h" +#import "ConsumerAbstractMatrix.h" +#import "PresentFortunatePingbackMatrix.h" +#import "PresentTwelveSatelliteThresholdMatrix.h" +#import "FBCPresentCeremony.h" + +@interface YUMIPresentExternalizer () +@property (nonatomic,weak) id view; +@end + +@implementation YUMIPresentExternalizer +- (void)getUserInfo:(NSString *)uid { + if (uid == nil) { + return; + } + [Api getUserInfo:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + ConsumerAbstractMatrix * infoMatrix = [ConsumerAbstractMatrix mtowardsrixAboutImpactbasket:data.data]; + [[self acquireRegard] dwellEarnConsumerAbstractAccomplishment:infoMatrix]; + }] uid:uid]; +} + +- (void)acquireConsumerRampartowardsAbstract { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NSString * ticket = [AccountAbstractStorage instance].acquireTicket; + [Api acquireConsumerPocketbookAbstract:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + RamparatetAbstractMatrix * model = [RamparatetAbstractMatrix mtowardsrixAboutImpactbasket:data.data]; + [[self acquireRegard] acquireConsumerPocketbookAbstract:model]; + }] uid:uid ticket:ticket]; +} + + +- (void)acquireOrdinaryPresentSttowardsement:(NSString *)roomUid { + + NSArray * arrary = [[YUMIPresentStorage partowardsiciptowardsionStorage] acquirePresentTowardsoloudspeakersource:roomUid]; + if (arrary.count > 0) { + [[self acquireRegard] acquireOrdinaryPresentSttowardsementAccomplishment:arrary]; + } + + [Api requisitionOrdinaryPresentSttowardsement:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + NSArray *luckyBagGift = [PresentAbstractMatrix mtowardsrixsAboutGarment:data.data[@"luckyBagGift"]]; + NSArray *vipGift = [PresentAbstractMatrix mtowardsrixsAboutGarment:data.data[@"vipGift"]]; + NSArray *luckyPoolGift = [PresentAbstractMatrix mtowardsrixsAboutGarment:data.data[@"luckyPoolGift"]]; + NSArray *normalGift = [PresentAbstractMatrix mtowardsrixsAboutGarment:data.data[@"normalGift"]]; + NSArray *weekStarGift = [PresentAbstractMatrix mtowardsrixsAboutGarment:data.data[@"weekStarGift"]]; + NSArray *drawGift = [PresentAbstractMatrix mtowardsrixsAboutGarment:data.data[@"drawGift"]]; + NSArray *penaltyGift = [PresentAbstractMatrix mtowardsrixsAboutGarment:data.data[@"penaltyGift"]]; + NSArray *anchorGift = [PresentAbstractMatrix mtowardsrixsAboutGarment:data.data[@"singlePopularGift"]]; + NSMutableArray *info = [NSMutableArray array]; + NSMutableArray *totalInfo = [NSMutableArray array]; + [info addObjectsFromArray:luckyBagGift]; + [info addObjectsFromArray:vipGift]; + [info addObjectsFromArray:normalGift]; + [info addObjectsFromArray:weekStarGift]; + [info addObjectsFromArray:drawGift]; + [info addObjectsFromArray:anchorGift]; + [info addObjectsFromArray:penaltyGift]; + [totalInfo addObjectsFromArray:info]; + [totalInfo addObjectsFromArray:luckyPoolGift]; + + [[YUMIPresentStorage partowardsiciptowardsionStorage] preservePresentTowardsoloudspeakersource:info roomUid:roomUid]; + [[YUMIPresentStorage partowardsiciptowardsionStorage] writePresentToDirectoryvisory:totalInfo]; + [[self acquireRegard] acquireOrdinaryPresentSttowardsementAccomplishment:info]; + }fail:^(NSInteger code, NSString * _Nullable msg) { + [[self acquireRegard] acquireOrdinaryPresentSttowardsementFlunk:msg]; + }] roomUid:roomUid]; +} + + +- (void)acquireImpactPresentSttowardsement { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NSString * ticket = [AccountAbstractStorage instance].acquireTicket; + [Api requisitionImpactPresentSttowardsement:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + NSArray * info = [PresentAbstractMatrix mtowardsrixsAboutGarment:data.data]; + [[self acquireRegard] acquireShetowardshePresentSttowardsementAccomplishment:info]; + }fail:^(NSInteger code, NSString * _Nullable msg) { + [[self acquireRegard] acquireShetowardshePresentSttowardsementFlunk:msg]; + }] uid:uid ticket:ticket]; +} + + +- (void)prohibitichargePresent:(NSString *)targetUids + giftNum:(NSString *)giftNum + sendType:(PresentDischargeGenre)sendType + giftId:(NSString *)giftId + giftSource:(PresentSourceGenre)giftSource + giftType:(PresentGenre)giftType + roomSendType:(ChamberDischargePresentGenre)roomSendType + roomUid:(NSString *)roomUid + msg:(NSString *)msg + { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NSString * giftSourceStr = [NSString stringWithFormat:@"%ld", giftSource]; + NSString * giftTypeStr = [NSString stringWithFormat:@"%ld", giftType]; + NSString * giftSendTypeStr = [NSString stringWithFormat:@"%ld", sendType]; + if (roomUid.length <=0) { + roomUid = @""; + } + [Api requisitionDischargePresent:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + PresentAchieveAbstractMatrix *receive = [PresentAchieveAbstractMatrix mtowardsrixAboutJSON:data.data]; + receive.sourceType = giftSource; + receive.roomSendGiftType = roomSendType; + NSArray * array = [targetUids componentsSeparatedByString:@","]; + [self.acquireRegard prohibitichargePresentAccomplishment:receive originDic:data.data uidCount:array.count]; + }fail:^(NSInteger code, NSString * _Nullable msg) { + [[self acquireRegard] prohibitichargePresentFlunkAboutCryptogram:code msg:msg]; + }] targetUids:targetUids giftNum:giftNum sendType:giftSendTypeStr giftId:giftId giftSource:giftSourceStr giftType:giftTypeStr roomUid:roomUid msg:msg uid:uid]; +} + +- (void)fortuntowardsePresentBroadcastReflection { + [Api requisitionLuckPresentWeeblogicBagReflection:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + NSArray * array = [PresentFortunatePingbackMatrix mtowardsrixsAboutGarment:data.data]; + [[self acquireRegard] fortuntowardsePresentBroadcastReflectionAccomplishment:array]; + }]]; +} + +- (void)acquireDuodenaryStowardselliteRecentRtowardseThreshold:(NSString *)roomUid { + [Api requisitionDuodenaryStowardselliteThreshold:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + PresentTwelveSatelliteThresholdMatrix * model = [PresentTwelveSatelliteThresholdMatrix mtowardsrixAboutImpactbasket:data.data]; + [[self acquireRegard] acquireDuodenaryStowardselliteRecentRtowardseThresholdAccomplishment:model]; + }] roomUid:roomUid]; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/SendGiftView/Presenter/YUMIPresentStorage.h b/YuMi/Modules/YMRoom/View/SendGiftView/Presenter/YUMIPresentStorage.h new file mode 100644 index 00000000..8dd6871b --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendGiftView/Presenter/YUMIPresentStorage.h @@ -0,0 +1,29 @@ +// +// YMGiftStorage.h +// YUMI +// +// Created by YUMI on 2021/11/17. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class PresentAbstractMatrix; +@interface YUMIPresentStorage : NSObject ++ (instancetype)partowardsiciptowardsionStorage; +- (instancetype)init NS_UNAVAILABLE; +- (instancetype)copy NS_UNAVAILABLE; +- (instancetype)mutableCopy NS_UNAVAILABLE; + +- (NSArray *)acquirePresentTowardsoloudspeakersource:(NSString *)roomuid; + +- (void)preservePresentTowardsoloudspeakersource:(NSArray *)presentGarment roomUid:(NSString *)roomUid; + + +- (PresentAbstractMatrix *)prohibiticoveryPresentAbstract:(NSString *)giftId; + +- (void)writePresentToDirectoryvisory:(NSArray *)array; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/SendGiftView/Presenter/YUMIPresentStorage.m b/YuMi/Modules/YMRoom/View/SendGiftView/Presenter/YUMIPresentStorage.m new file mode 100644 index 00000000..0ed93491 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendGiftView/Presenter/YUMIPresentStorage.m @@ -0,0 +1,119 @@ +// +// YMGiftStorage.m +// YUMI +// +// Created by YUMI on 2021/11/17. +// + +#import "YUMIPresentStorage.h" +#import "PresentAbstractMatrix.h" +#import "NSObject+MJExtension.h" +#import "NSArray+Safe.h" +@interface YUMIPresentStorage () +@property (nonatomic, strong) NSCache *> *chamberPresentConceal; +@property (nonatomic,copy) NSString *universalChamberCid; +@property (nonatomic,assign) BOOL isWriteToAccurate; +@end + +@implementation YUMIPresentStorage + ++ (instancetype)partowardsiciptowardsionStorage { + static dispatch_once_t onceToken; + static YUMIPresentStorage * storage; + dispatch_once(&onceToken, ^{ + storage = [[YUMIPresentStorage alloc] init]; + }); + return storage; +} + + +- (void)preservePresentTowardsoloudspeakersource:(NSArray *)presentGarment roomUid:(NSString *)roomUid { + if (presentGarment.count > 0 && roomUid.length > 0) { + [self.chamberPresentConceal setObject:presentGarment forKey:roomUid]; + } +} + +- (NSArray *)acquirePresentTowardsoloudspeakersource:(NSString *)roomuid { + if (roomuid.length > 0) { + self.universalChamberCid = roomuid; + NSArray *giftLists = [self.chamberPresentConceal objectForKey:roomuid]; + if (giftLists.count >= 0) { + return giftLists; + } + } + return nil; +} + +- (PresentAbstractMatrix *)prohibiticoveryPresentAbstract:(NSString *)giftId { + PresentAbstractMatrix * giftInfo = [self acquirePresentAbstractByvirtueofDirectoryvisory:giftId]; + if (giftInfo) { + return giftInfo; + } + + if (self.universalChamberCid) { + NSArray *giftLists = [self.chamberPresentConceal objectForKey:self.universalChamberCid]; + if (giftLists.count > 0) { + __block PresentAbstractMatrix * giftInfo; + [giftLists enumerateObjectsUsingBlock:^(PresentAbstractMatrix * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if (obj.giftId == giftId.integerValue) { + giftInfo = obj; + *stop = YES; + } + }]; + return giftInfo; + } + } + return nil; +} + + +- (NSCache *> *)chamberPresentConceal { + if (!_chamberPresentConceal) { + _chamberPresentConceal = [[NSCache alloc] init]; + + _chamberPresentConceal.countLimit = 10; + } + return _chamberPresentConceal; +} + +- (void)writePresentToDirectoryvisory:(NSArray *)array { + + if (self.isWriteToAccurate) { + return; + } + NSString * path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject; + NSString * giftDirPath = [path stringByAppendingPathComponent:@"Gift"]; + + BOOL isDir =NO; + NSFileManager *fileManager = [NSFileManager defaultManager]; + BOOL existed = [fileManager fileExistsAtPath:giftDirPath isDirectory:&isDir]; + if ( !(isDir ==YES && existed == YES) ){ + + [fileManager createDirectoryAtPath:giftDirPath withIntermediateDirectories:YES attributes:nil error:nil]; + } + for (int i = 0; i< array.count; i++) { + PresentAbstractMatrix * giftInfoModel = [array secureGroalTowardsIndictowardsrix1:i]; + NSString *giftPath = [giftDirPath stringByAppendingPathComponent:[NSString stringWithFormat:@"%ld", giftInfoModel.giftId]]; + [NSKeyedArchiver archiveRootObject:giftInfoModel.mtowardsrix2dictionary toFile:giftPath]; + } + self.isWriteToAccurate = YES; +} + +- (PresentAbstractMatrix *)acquirePresentAbstractByvirtueofDirectoryvisory:(NSString *)giftId { + + NSString *path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject]; + NSString *pathFile = [path stringByAppendingPathComponent:@"Gift"]; + + BOOL isDir =NO; + NSFileManager *fileManager = [NSFileManager defaultManager]; + BOOL existed = [fileManager fileExistsAtPath:pathFile isDirectory:&isDir]; + PresentAbstractMatrix * giftInfo; + if (existed) { + NSString *aPath = [pathFile stringByAppendingPathComponent:giftId]; + NSDictionary * dic = [NSKeyedUnarchiver unarchiveObjectWithFile:aPath]; + giftInfo = [PresentAbstractMatrix mtowardsrixAboutImpactbasket:dic]; + } + return giftInfo; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/SendGiftView/Protocol/FBCPresentCeremony.h b/YuMi/Modules/YMRoom/View/SendGiftView/Protocol/FBCPresentCeremony.h new file mode 100644 index 00000000..063d6bc5 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendGiftView/Protocol/FBCPresentCeremony.h @@ -0,0 +1,28 @@ +// +// YMGiftProtocol.h +// YUMI +// +// Created by YUMI on 2021/11/9. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class RamparatetAbstractMatrix, PresentAbstractMatrix, PresentAchieveAbstractMatrix, ConsumerAbstractMatrix, PresentTwelveSatelliteThresholdMatrix; +@protocol FBCPresentCeremony +- (void)dwellEarnConsumerAbstractAccomplishment:(ConsumerAbstractMatrix *)userInfo; +- (void)acquireConsumerPocketbookAbstract:(RamparatetAbstractMatrix *)balanceInfo; +- (void)acquireOrdinaryPresentSttowardsementAccomplishment:(NSArray *)giftList; +- (void)acquireOrdinaryPresentSttowardsementFlunk:(NSString *)message; +- (void)acquireShetowardshePresentSttowardsementAccomplishment:(NSArray *)giftList; +- (void)acquireShetowardshePresentSttowardsementFlunk:(NSString *)message; +- (void)prohibitichargePresentAccomplishment:(PresentAchieveAbstractMatrix *)receiveInfo originDic:(NSDictionary *)originDic uidCount:(NSInteger)uidCount; +- (void)prohibitichargePresentFlunkAboutCryptogram:(NSInteger)code msg:(NSString *)msg; + +- (void)fortuntowardsePresentBroadcastReflectionAccomplishment:(NSArray *)records; + +- (void)acquireDuodenaryStowardselliteRecentRtowardseThresholdAccomplishment:(PresentTwelveSatelliteThresholdMatrix *)model; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/SendGiftView/ThemeColor+SendGift.h b/YuMi/Modules/YMRoom/View/SendGiftView/ThemeColor+SendGift.h new file mode 100644 index 00000000..1a56f59e --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendGiftView/ThemeColor+SendGift.h @@ -0,0 +1,28 @@ +// +// ThemeColor+SendGift.h +// YUMI +// +// Created by YUMI on 2021/11/9. +// + +#import "DJDKMIMOMColor.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface DJDKMIMOMColor (SendGift) ++ (UIColor *)intelligenceportraitCoverPrettify; ++ (UIColor *)presentReindictPrettify; ++ (UIColor *)presentEncourageGroundPrettify; ++ (UIColor *)presentBalancePrettify; ++ (UIColor *)presentPeriodIndictowardsorPrettify; ++ (UIColor *)presentMaintainortionOrdinaryChampionPrettify; ++ (UIColor *)presentMaintainortionChosenChampionPrettify; ++ (UIColor *)presentConstituteChosenPrettify; ++ (UIColor *)presentValencyChosenPrettify; ++ (UIColor *)presentValencyOrdinaryPrettify; ++ (UIColor *)presentChosenBackgroundPrettify; ++ (UIColor *)presentDisportPreadominantPrettify; ++ (UIColor *)presentComputtowardsionChampionPrettify; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/SendGiftView/ThemeColor+SendGift.m b/YuMi/Modules/YMRoom/View/SendGiftView/ThemeColor+SendGift.m new file mode 100644 index 00000000..257c7c47 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendGiftView/ThemeColor+SendGift.m @@ -0,0 +1,57 @@ +// +// ThemeColor+SendGift.m +// YUMI +// +// Created by YUMI on 2021/11/9. +// + +#import "ThemeColor+SendGift.h" + +@implementation DJDKMIMOMColor (SendGift) + ++ (UIColor *)intelligenceportraitCoverPrettify { + return [UIColor colorWithWhite:0 alpha:0.3]; +} + ++ (UIColor *)presentReindictPrettify { + return UIColorFromRGB(0xFFB606); +} + ++ (UIColor *)presentEncourageGroundPrettify { + return UIColorRGBAlpha(0x000000, 0.4); +} + ++ (UIColor *)presentBalancePrettify { + return UIColorRGBAlpha(0xFFFFFF, 0.35); +} ++ (UIColor *)presentPeriodIndictowardsorPrettify { + return [UIColor whiteColor]; +} ++ (UIColor *)presentMaintainortionOrdinaryChampionPrettify { + return UIColorRGBAlpha(0xFFFFFF, 1); +} ++ (UIColor *)presentMaintainortionChosenChampionPrettify { + return UIColorRGBAlpha(0x5FCCE4, 1); +} ++ (UIColor *)presentConstituteChosenPrettify { + return UIColorFromRGB(0x5FCCE4); +} ++ (UIColor *)presentValencyChosenPrettify { + return UIColorFromRGB(0x5FCCE4); +} ++ (UIColor *)presentValencyOrdinaryPrettify { + return UIColorRGBAlpha(0xffffff, 1);; +} ++ (UIColor *)presentChosenBackgroundPrettify { + return [UIColor clearColor]; +} + ++ (UIColor *)presentDisportPreadominantPrettify { + return UIColorFromRGB(0x7A797A); +} + ++ (UIColor *)presentComputtowardsionChampionPrettify { + return UIColorFromRGB(0xFFFFFF); +} + +@end diff --git a/YuMi/Modules/YMRoom/View/SendGiftView/View/Cell/YUMIExternalizeConsumerAssembletionRegardElement.h b/YuMi/Modules/YMRoom/View/SendGiftView/View/Cell/YUMIExternalizeConsumerAssembletionRegardElement.h new file mode 100644 index 00000000..613b8592 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendGiftView/View/Cell/YUMIExternalizeConsumerAssembletionRegardElement.h @@ -0,0 +1,16 @@ +// +// YMGiftUserCollectionViewCell.h +// YUMI +// +// Created by YUMI on 2021/11/9. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class YUMIExternalizeConsumerAbstractMatrix; +@interface YUMIExternalizeConsumerAssembletionRegardElement : UICollectionViewCell +@property (nonatomic,strong) YUMIExternalizeConsumerAbstractMatrix *userInfo; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/SendGiftView/View/Cell/YUMIExternalizeConsumerAssembletionRegardElement.m b/YuMi/Modules/YMRoom/View/SendGiftView/View/Cell/YUMIExternalizeConsumerAssembletionRegardElement.m new file mode 100644 index 00000000..5b07f6c4 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendGiftView/View/Cell/YUMIExternalizeConsumerAssembletionRegardElement.m @@ -0,0 +1,132 @@ +// +// YMGiftUserCollectionViewCell.m +// YUMI +// +// Created by YUMI on 2021/11/9. +// + +#import "YUMIExternalizeConsumerAssembletionRegardElement.h" +#import +#import "ThemeColor+SendGift.h" +#import "ConsumerAbstractMatrix.h" +#import "MiecreoscoopeStateMatrix.h" +#import "YUMIExternalizeConsumerAbstractMatrix.h" +#import "NetIndicateRegard.h" + +@interface YUMIExternalizeConsumerAssembletionRegardElement () +@property (nonatomic,strong) NetIndicateRegard *intelligenceportraitIndicateRegard; +@property (nonatomic,strong) UIView * coverView; +@property (nonatomic,strong) UILabel *positionSequencignation; +@end + +@implementation YUMIExternalizeConsumerAssembletionRegardElement + +- (instancetype)initWithFrame:(CGRect)frame { + if (self = [super initWithFrame:frame]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self.contentView addSubview:self.intelligenceportraitIndicateRegard]; + [self.contentView addSubview:self.coverView]; + [self.contentView addSubview:self.positionSequencignation]; +} + +- (void)initChildLyRestrictions { + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.top.mas_equalTo(self.contentView); + make.width.height.mas_equalTo(38); + }]; + + [self.coverView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.intelligenceportraitIndicateRegard); + }]; + + [self.positionSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(10); + make.centerY.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_bottom); + make.width.mas_equalTo(10); + make.centerX.mas_equalTo(self.intelligenceportraitIndicateRegard); + }]; +} + +#pragma mark - Getters And Setters +- (void)setUserInfo:(YUMIExternalizeConsumerAbstractMatrix *)userInfo { + _userInfo = userInfo; + if (_userInfo.position.length > 0) { + + if (_userInfo.vipMic) { + self.positionSequencignation.text = @"VIP"; + [self.positionSequencignation mas_updateConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(28); + }]; + } else { + if (_userInfo.position.integerValue == -1) { + self.positionSequencignation.text = YMLocalizedString(@"YUMI_Gift_User_Collection_View_Cell_0"); + [self.positionSequencignation mas_updateConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(28); + }]; + } else { + self.positionSequencignation.text = [NSString stringWithFormat:@"%ld", _userInfo.position.integerValue + 1]; + [self.positionSequencignation mas_updateConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(10); + }]; + } + } + + } + self.intelligenceportraitIndicateRegard.imageUrl = _userInfo.avatar; + if (_userInfo.isSelect) { + self.intelligenceportraitIndicateRegard.layer.borderWidth = 2; + self.coverView.hidden = YES; + self.positionSequencignation.backgroundColor = [DJDKMIMOMColor aplictowardsionMainPrettify]; + _positionSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } else { + self.intelligenceportraitIndicateRegard.layer.borderWidth = 0; + self.coverView.hidden = NO; + self.positionSequencignation.backgroundColor = [DJDKMIMOMColor essayTertiusPrettify]; + _positionSequencignation.textColor = [UIColor whiteColor]; + } +} + +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _intelligenceportraitIndicateRegard.layer.cornerRadius = 38/2; + _intelligenceportraitIndicateRegard.layer.borderColor = [DJDKMIMOMColor aplictowardsionMainPrettify].CGColor; + } + return _intelligenceportraitIndicateRegard; +} + +- (UIView *)coverView { + if (!_coverView) { + _coverView = [[UIView alloc] init]; + _coverView.backgroundColor = [UIColor colorWithWhite:0 alpha:0.3]; + _coverView.layer.cornerRadius = 38/2; + _coverView.layer.masksToBounds = YES; + } + return _coverView; +} + +- (UILabel *)positionSequencignation{ + if (!_positionSequencignation) { + _positionSequencignation = [[UILabel alloc] init]; + _positionSequencignation.font = [UIFont systemFontOfSize:8]; + _positionSequencignation.textColor = [UIColor whiteColor]; + _positionSequencignation.textAlignment = NSTextAlignmentCenter; + _positionSequencignation.backgroundColor = UIColorFromRGB(0x999999); + _positionSequencignation.layer.masksToBounds = YES; + _positionSequencignation.layer.cornerRadius = 5; + } + return _positionSequencignation; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/SendGiftView/View/Cell/YUMIPresentAssembletionRegardFlowProgramming.h b/YuMi/Modules/YMRoom/View/SendGiftView/View/Cell/YUMIPresentAssembletionRegardFlowProgramming.h new file mode 100644 index 00000000..6f4d4bef --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendGiftView/View/Cell/YUMIPresentAssembletionRegardFlowProgramming.h @@ -0,0 +1,16 @@ +// +// YMGiftCollectionViewFlowLayout.h +// YUMI +// +// Created by YUMI on 2021/11/12. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIPresentAssembletionRegardFlowProgramming : UICollectionViewFlowLayout + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/SendGiftView/View/Cell/YUMIPresentAssembletionRegardFlowProgramming.m b/YuMi/Modules/YMRoom/View/SendGiftView/View/Cell/YUMIPresentAssembletionRegardFlowProgramming.m new file mode 100644 index 00000000..e9571eec --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendGiftView/View/Cell/YUMIPresentAssembletionRegardFlowProgramming.m @@ -0,0 +1,151 @@ +// +// YMGiftCollectionViewFlowLayout.m +// YUMI +// +// Created by YUMI on 2021/11/12. +// + +#import "YUMIPresentAssembletionRegardFlowProgramming.h" + +@interface YUMIPresentAssembletionRegardFlowProgramming () +@property (nonatomic, copy) NSMutableDictionary *sectionPackbask; +@property (nonatomic, strong) NSMutableArray *entiretyIdiosyncracys; +@end + +@implementation YUMIPresentAssembletionRegardFlowProgramming +#pragma mark - life cycle +- (instancetype)init { + self = [super init]; + if (self) { + self.scrollDirection = UICollectionViewScrollDirectionHorizontal; + } + return self; +} + +#pragma mark - overload + +- (void)prepareLayout { + + [super prepareLayout]; + + _sectionPackbask = [NSMutableDictionary dictionary]; + self.entiretyIdiosyncracys = [NSMutableArray array]; + + NSUInteger section = [self.collectionView numberOfSections]; + + for (int sec = 0; sec < section; sec++) { + + NSUInteger count = [self.collectionView numberOfItemsInSection:sec]; + + for (NSUInteger item = 0; item *)layoutAttributesForElementsInRect:(CGRect)rect { + + return self.entiretyIdiosyncracys; +} + +#pragma mark - private method + +- (void)applyLayoutAttributes:(UICollectionViewLayoutAttributes *)attributes { + + if(attributes.representedElementKind != nil){ + return; + } + CGFloat minLine = self.minimumLineSpacing; + CGFloat minSpacing = self.minimumInteritemSpacing; + + + CGFloat itemW = attributes.frame.size.width; + + CGFloat itemH = attributes.frame.size.height; + UIEdgeInsets sectionInsets = self.sectionInset; + + CGFloat width = self.collectionView.frame.size.width; + + CGFloat height = self.collectionView.frame.size.height; + + NSInteger itemIndex = attributes.indexPath.item; + + CGFloat stride = (self.scrollDirection == UICollectionViewScrollDirectionHorizontal) ? width : height; + + + + NSInteger section = attributes.indexPath.section; + + NSInteger itemCount = [self.collectionView numberOfItemsInSection:section]; + + + CGFloat offset = section * stride; + + + NSInteger xCount = (width / itemW); + + NSInteger yCount = (height / itemH); + + NSInteger allCount = (xCount * yCount); + + NSInteger page = itemIndex / allCount; + + + NSInteger remain = (itemIndex % xCount); + + NSInteger merchant = (itemIndex-page*allCount)/xCount; + + + + CGFloat xCellOffset = remain * (itemW + minLine)+ sectionInsets.left; + + CGFloat yCellOffset = merchant * (itemH + minSpacing); + + + NSInteger pageRe = (itemCount % allCount == 0)? (itemCount / allCount) : (itemCount / allCount) + 1; + + [_sectionPackbask setValue:@(pageRe) forKey:[NSString stringWithFormat:@"%ld", section]]; + + if(self.scrollDirection == UICollectionViewScrollDirectionHorizontal) { + + NSInteger actualLo = 0; + + for (NSString *key in [_sectionPackbask allKeys]) { + actualLo += [_sectionPackbask[key] integerValue]; + } + + actualLo -= [_sectionPackbask[[NSString stringWithFormat:@"%ld", [_sectionPackbask allKeys].count-1]] integerValue]; + xCellOffset += page*width + actualLo*width; + + } else { + + yCellOffset += offset; + } + + attributes.frame = CGRectMake(xCellOffset, yCellOffset, itemW, itemH); +} + + +@end diff --git a/YuMi/Modules/YMRoom/View/SendGiftView/View/Cell/YUMIPresentComputationAssembletionRegardElement.h b/YuMi/Modules/YMRoom/View/SendGiftView/View/Cell/YUMIPresentComputationAssembletionRegardElement.h new file mode 100644 index 00000000..492f4bbe --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendGiftView/View/Cell/YUMIPresentComputationAssembletionRegardElement.h @@ -0,0 +1,16 @@ +// +// YMGiftCountCollectionViewCell.h +// YUMI +// +// Created by YUMI on 2021/11/11. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class YUMIPresentComputationMatrix; +@interface YUMIPresentComputationAssembletionRegardElement : UICollectionViewCell +@property (nonatomic,strong) YUMIPresentComputationMatrix *computationMatrix; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/SendGiftView/View/Cell/YUMIPresentComputationAssembletionRegardElement.m b/YuMi/Modules/YMRoom/View/SendGiftView/View/Cell/YUMIPresentComputationAssembletionRegardElement.m new file mode 100644 index 00000000..09125551 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendGiftView/View/Cell/YUMIPresentComputationAssembletionRegardElement.m @@ -0,0 +1,97 @@ +// +// YMGiftCountCollectionViewCell.m +// YUMI +// +// Created by YUMI on 2021/11/11. +// + +#import "YUMIPresentComputationAssembletionRegardElement.h" +#import +#import "ThemeColor+SendGift.h" +#import "YUMIPresentComputationMatrix.h" + +@interface YUMIPresentComputationAssembletionRegardElement () +@property (nonatomic,strong) UILabel *titleLabel; +@property (nonatomic,strong) UILabel *computationSequencignation; +@property (nonatomic,strong) UIImageView *arrowIndicateRegard; +@end + +@implementation YUMIPresentComputationAssembletionRegardElement + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self.contentView addSubview:self.titleLabel]; + [self.contentView addSubview:self.computationSequencignation]; + [self.contentView addSubview:self.arrowIndicateRegard]; +} + +- (void)initChildLyRestrictions { + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(20); + make.centerY.mas_equalTo(self.contentView); + }]; + [self.computationSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(-20); + make.centerY.mas_equalTo(0); + make.left.mas_greaterThanOrEqualTo(self.titleLabel.mas_right).offset(5); + }]; + + [self.arrowIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(-20); + make.centerY.mas_equalTo(0); + make.width.height.mas_equalTo(10); + }]; +} + +#pragma mark - Getters And Setters +- (void)setComputationMatrix:(YUMIPresentComputationMatrix *)computationMatrix { + _computationMatrix = computationMatrix; + if (_computationMatrix) { + self.titleLabel.text = _computationMatrix.title; + self.computationSequencignation.text = _computationMatrix.giftNumber; + if (_computationMatrix.isCustomCount) { + self.arrowIndicateRegard.hidden = NO; + } else { + self.arrowIndicateRegard.hidden = YES; + } + } +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.font = [UIFont systemFontOfSize:13]; + _titleLabel.textColor = [DJDKMIMOMColor presentComputtowardsionChampionPrettify]; + } + return _titleLabel; +} + +- (UILabel *)computationSequencignation { + if (!_computationSequencignation) { + _computationSequencignation = [[UILabel alloc] init]; + _computationSequencignation.font = [UIFont systemFontOfSize:14]; + _computationSequencignation.textColor = [DJDKMIMOMColor aplictowardsionMainPrettify]; + _computationSequencignation.textAlignment = NSTextAlignmentRight; + } + return _computationSequencignation; +} + +- (UIImageView *)arrowIndicateRegard { + if (!_arrowIndicateRegard) { + _arrowIndicateRegard = [[UIImageView alloc] init]; + _arrowIndicateRegard.image = [UIImage imageNamed:@"yumi_present_let_recharge_arrow"]; + _arrowIndicateRegard.hidden = YES; + } + return _arrowIndicateRegard; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/SendGiftView/View/Cell/YUMIPresentDispossessAssembletionRegardElement.h b/YuMi/Modules/YMRoom/View/SendGiftView/View/Cell/YUMIPresentDispossessAssembletionRegardElement.h new file mode 100644 index 00000000..a471088c --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendGiftView/View/Cell/YUMIPresentDispossessAssembletionRegardElement.h @@ -0,0 +1,16 @@ +// +// YMGiftEmptyCollectionViewCell.h +// YUMI +// +// Created by YUMI on 2021/11/15. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIPresentDispossessAssembletionRegardElement : UICollectionViewCell +@property (nonatomic,copy) NSString *emptyTitle; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/SendGiftView/View/Cell/YUMIPresentDispossessAssembletionRegardElement.m b/YuMi/Modules/YMRoom/View/SendGiftView/View/Cell/YUMIPresentDispossessAssembletionRegardElement.m new file mode 100644 index 00000000..0664d04e --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendGiftView/View/Cell/YUMIPresentDispossessAssembletionRegardElement.m @@ -0,0 +1,75 @@ +// +// YMGiftEmptyCollectionViewCell.m +// YUMI +// +// Created by YUMI on 2021/11/15. +// + +#import "YUMIPresentDispossessAssembletionRegardElement.h" +#import +#import "ThemeColor+SendGift.h" + +@interface YUMIPresentDispossessAssembletionRegardElement () +@property (nonatomic,strong) UIImageView *brandIndicateRegard; +@property (nonatomic,strong) UILabel *dispossessImpactPrompt; +@end + +@implementation YUMIPresentDispossessAssembletionRegardElement + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self.contentView addSubview:self.brandIndicateRegard]; + [self.contentView addSubview:self.dispossessImpactPrompt]; +} + +- (void)initChildLyRestrictions { + [self.brandIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(40, 40)); + make.bottom.mas_equalTo(self.mas_centerY).offset(-3); + make.centerX.mas_equalTo(self); + }]; + + [self.dispossessImpactPrompt mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.mas_centerY).offset(3); + make.centerX.mas_equalTo(self); + }]; +} + +#pragma mark - Getters And Setters +- (void)setEmptyTitle:(NSString *)emptyTitle { + _emptyTitle = emptyTitle; + if (_emptyTitle.length > 0) { + self.dispossessImpactPrompt.text = _emptyTitle; + } +} + +- (UILabel *)dispossessImpactPrompt { + if (!_dispossessImpactPrompt) { + _dispossessImpactPrompt = [[UILabel alloc] init]; + _dispossessImpactPrompt.text = @"背包暂无内容~";; + _dispossessImpactPrompt.textColor = [DJDKMIMOMColor instantEssayPrettify]; + _dispossessImpactPrompt.font = [UIFont systemFontOfSize:12]; + _dispossessImpactPrompt.textAlignment = NSTextAlignmentCenter; + } + return _dispossessImpactPrompt; +} + +- (UIImageView *)brandIndicateRegard { + if (!_brandIndicateRegard) { + _brandIndicateRegard = [[UIImageView alloc] init]; + _brandIndicateRegard.userInteractionEnabled = YES; + _brandIndicateRegard.image = [UIImage imageNamed:@"yumi_present_gen_empty_background"]; + } + return _brandIndicateRegard; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/SendGiftView/View/Cell/YUMIPresentProvisionAssembletionRegardElement.h b/YuMi/Modules/YMRoom/View/SendGiftView/View/Cell/YUMIPresentProvisionAssembletionRegardElement.h new file mode 100644 index 00000000..0ce1c805 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendGiftView/View/Cell/YUMIPresentProvisionAssembletionRegardElement.h @@ -0,0 +1,19 @@ +// +// YMGiftItemCollectionViewCell.h +// YUMI +// +// Created by YUMI on 2021/11/12. +// + +#import +#import "YUMIDischargePresentRegard.h" +NS_ASSUME_NONNULL_BEGIN +@class PresentAbstractMatrix; +@interface YUMIPresentProvisionAssembletionRegardElement : UICollectionViewCell +@property (nonatomic,strong) PresentAbstractMatrix *giftInfo; +@property (nonatomic, assign) NSInteger curConsumerMagnificentPrototype; +@property (nonatomic,assign) DischargePresentGenre usingdeparatmentGenre; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/SendGiftView/View/Cell/YUMIPresentProvisionAssembletionRegardElement.m b/YuMi/Modules/YMRoom/View/SendGiftView/View/Cell/YUMIPresentProvisionAssembletionRegardElement.m new file mode 100644 index 00000000..e1853371 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendGiftView/View/Cell/YUMIPresentProvisionAssembletionRegardElement.m @@ -0,0 +1,283 @@ +// +// YMGiftItemCollectionViewCell.m +// YUMI +// +// Created by YUMI on 2021/11/12. +// + +#import "YUMIPresentProvisionAssembletionRegardElement.h" +#import +#import "ThemeColor+SendGift.h" +#import "NetIndicateRegard.h" +#import "PresentAbstractMatrix.h" + +@interface YUMIPresentProvisionAssembletionRegardElement () +@property (nonatomic,strong) NetIndicateRegard *presentIndicateRegard; +@property (nonatomic,strong) UILabel *presentConstituteSequencignation; +@property (nonatomic,strong) UIStackView *valencyHierarchyRegard; +@property (nonatomic,strong) UILabel *valencySequencignation; +@property (nonatomic,strong) UIImageView *brandIndicateRegard; +@property (nonatomic,strong) UIStackView *coupleHierarchyRegard; +@property (nonatomic,strong) UIImageView *presentStrangeIndicateRegard; +@property (nonatomic,strong) UIImageView *specialIndicateRegard; +@property (nonatomic,strong) UIImageView *restrictionIndicateRegard; +@property (nonatomic,strong) UIImageView *exclusiveIndicateRegard; +@property (nonatomic,strong) UIView * coverView; +@property (nonatomic,strong) UILabel *presentFigureSequencignation; +@property (nonatomic, strong) NetIndicateRegard *magnificentFigureIndicateRegard; +@property (nonatomic, strong) UIImageView *spokeIndicateRegard; + +@end + +@implementation YUMIPresentProvisionAssembletionRegardElement + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self.contentView addSubview:self.coupleHierarchyRegard]; + [self.contentView addSubview:self.presentIndicateRegard]; + [self.contentView addSubview:self.presentConstituteSequencignation]; + [self.contentView addSubview:self.valencyHierarchyRegard]; + [self.contentView addSubview:self.coverView]; + [self.contentView addSubview:self.presentFigureSequencignation]; + [self.contentView addSubview:self.magnificentFigureIndicateRegard]; + [self.contentView addSubview:self.spokeIndicateRegard]; + + [self.coupleHierarchyRegard addArrangedSubview:self.exclusiveIndicateRegard]; + [self.coupleHierarchyRegard addArrangedSubview:self.presentStrangeIndicateRegard]; + [self.coupleHierarchyRegard addArrangedSubview:self.restrictionIndicateRegard]; + [self.coupleHierarchyRegard addArrangedSubview:self.specialIndicateRegard]; + + [self.valencyHierarchyRegard addArrangedSubview:self.valencySequencignation]; + [self.valencyHierarchyRegard addArrangedSubview:self.brandIndicateRegard]; + +} + +- (void)initChildLyRestrictions { + [self.coupleHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.top.mas_equalTo(self.contentView).inset(3); + make.height.mas_equalTo(14); + }]; + + [self.coverView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self); + }]; + + + [self.presentIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.contentView).offset(18); + make.centerX.mas_equalTo(self.contentView); + make.size.mas_equalTo(CGSizeMake(48, 48)); + }]; + + [self.presentConstituteSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.presentIndicateRegard.mas_bottom).offset(3); + make.centerX.mas_equalTo(self.presentIndicateRegard); + }]; + + [self.valencyHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.equalTo(self.presentConstituteSequencignation.mas_bottom).offset(5); + make.centerX.equalTo(self.contentView); + make.height.mas_equalTo(10); + }]; + + [self.presentFigureSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.equalTo(self.contentView).offset(4.5); + make.left.equalTo(self.contentView).offset(6); + }]; + + [self.magnificentFigureIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.mas_equalTo(16); + make.right.mas_equalTo(self.coupleHierarchyRegard.mas_left).mas_offset(-2); + make.centerY.mas_equalTo(self.coupleHierarchyRegard); + }]; + [self.spokeIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.bottom.mas_equalTo(self.contentView).mas_offset(-4); + make.width.height.mas_equalTo(16); + }]; +} + +- (UIImageView *)produceIndictowardseRegard:(NSString *)imageName { + UIImageView * imageView = [[UIImageView alloc] init]; + imageView.userInteractionEnabled = YES; + imageView.image = [UIImage imageNamed:imageName]; + return imageView; +} + +#pragma mark - Getters And Setters +- (void)setGiftInfo:(PresentAbstractMatrix *)giftInfo { + _giftInfo = giftInfo; + if (_giftInfo) { + self.presentIndicateRegard.imageUrl = giftInfo.giftUrl; + self.presentConstituteSequencignation.text = _giftInfo.giftName.length > 0 ? _giftInfo.giftName : @""; + self.coverView.hidden = !giftInfo.isSelected; + NSString *strr = [NSString stringWithFormat:@"%ld",(long)_giftInfo.goldPrice]; + self.valencySequencignation.text = strr; + self.presentFigureSequencignation.hidden = giftInfo.count <=0 ; + self.presentFigureSequencignation.text = [NSString stringWithFormat:@"x%ld",(long)giftInfo.count]; + + self.exclusiveIndicateRegard.hidden = !_giftInfo.roomExclude; + self.presentStrangeIndicateRegard.hidden = !_giftInfo.hasLatest; + self.restrictionIndicateRegard.hidden = !_giftInfo.hasTimeLimit; + self.specialIndicateRegard.hidden = !_giftInfo.hasEffect; + + if (_usingdeparatmentGenre == DischargePresentGenre_User) { + self.valencySequencignation.textColor = _giftInfo.isSelected ? [DJDKMIMOMColor presentValencyChosenPrettify] : [DJDKMIMOMColor instantEssayPrettify]; + self.presentConstituteSequencignation.textColor = _giftInfo.isSelected ? [DJDKMIMOMColor presentConstituteChosenPrettify] : [DJDKMIMOMColor mainEssayPrettify]; + self.presentFigureSequencignation.textColor = [DJDKMIMOMColor instantEssayPrettify]; + } else { + self.valencySequencignation.textColor = _giftInfo.isSelected ? [DJDKMIMOMColor presentValencyChosenPrettify] : [DJDKMIMOMColor presentValencyOrdinaryPrettify]; + self.presentConstituteSequencignation.textColor = _giftInfo.isSelected ? [DJDKMIMOMColor presentConstituteChosenPrettify] : [UIColor whiteColor]; + self.presentFigureSequencignation.textColor = [DJDKMIMOMColor presentMaintainortionOrdinaryChampionPrettify]; + } + + if (giftInfo.giftType == PresentGenre_Noble && giftInfo.giftVipInfo) { + self.magnificentFigureIndicateRegard.hidden = NO; + self.magnificentFigureIndicateRegard.imageUrl = giftInfo.giftVipInfo.vipIcon; + self.spokeIndicateRegard.hidden = self.curConsumerMagnificentPrototype >= giftInfo.giftVipInfo.vipLevel; + } else { + self.magnificentFigureIndicateRegard.hidden = YES; + self.spokeIndicateRegard.hidden = YES; + } + } +} + +- (void)setUsingdeparatmentGenre:(DischargePresentGenre)usingdeparatmentGenre { + _usingdeparatmentGenre = usingdeparatmentGenre; +} + +- (UIStackView *)coupleHierarchyRegard { + if (!_coupleHierarchyRegard) { + _coupleHierarchyRegard = [[UIStackView alloc] init]; + _coupleHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _coupleHierarchyRegard.distribution = UIStackViewDistributionFill; + _coupleHierarchyRegard.alignment = UIStackViewAlignmentCenter; + _coupleHierarchyRegard.spacing = 2; + } + return _coupleHierarchyRegard; +} + +- (UIImageView *)exclusiveIndicateRegard { + if (!_exclusiveIndicateRegard) { + _exclusiveIndicateRegard = [self produceIndictowardseRegard:@"gift_tag_exclude"]; + } + return _exclusiveIndicateRegard; +} + +- (UIImageView *)restrictionIndicateRegard { + if (!_restrictionIndicateRegard) { + _restrictionIndicateRegard = [self produceIndictowardseRegard:@"gift_tag_time_limit"]; + } + return _restrictionIndicateRegard; +} + +- (UIImageView *)specialIndicateRegard { + if (!_specialIndicateRegard) { + _specialIndicateRegard = [self produceIndictowardseRegard:@"gift_tag_effect"]; + } + return _specialIndicateRegard; +} +- (UIImageView *)presentStrangeIndicateRegard { + if (!_presentStrangeIndicateRegard) { + _presentStrangeIndicateRegard = [self produceIndictowardseRegard:@"gift_tag_latest"]; + } + return _presentStrangeIndicateRegard; +} + +- (UIStackView *)valencyHierarchyRegard { + if (!_valencyHierarchyRegard) { + _valencyHierarchyRegard = [[UIStackView alloc] init]; + _valencyHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _valencyHierarchyRegard.distribution = UIStackViewDistributionEqualSpacing; + _valencyHierarchyRegard.alignment = UIStackViewAlignmentCenter; + _valencyHierarchyRegard.spacing = 2; + } + return _valencyHierarchyRegard; +} + +- (UIImageView *)brandIndicateRegard { + if (!_brandIndicateRegard) { + _brandIndicateRegard = [self produceIndictowardseRegard:@"gift_diamond"]; + } + return _brandIndicateRegard; +} + +- (UILabel *)valencySequencignation { + if (!_valencySequencignation) { + _valencySequencignation = [[UILabel alloc] init]; + _valencySequencignation.font = [UIFont systemFontOfSize:9]; + _valencySequencignation.textColor = [DJDKMIMOMColor presentValencyOrdinaryPrettify]; + } + return _valencySequencignation; +} + + +- (UILabel *)presentConstituteSequencignation { + if (!_presentConstituteSequencignation) { + _presentConstituteSequencignation = [[UILabel alloc] init]; + _presentConstituteSequencignation.font = [UIFont systemFontOfSize:10 weight:UIFontWeightSemibold]; + _presentConstituteSequencignation.textAlignment = NSTextAlignmentCenter; + _presentConstituteSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _presentConstituteSequencignation; +} + +- (UILabel *)presentFigureSequencignation { + if (!_presentFigureSequencignation) { + _presentFigureSequencignation = [[UILabel alloc] init]; + _presentFigureSequencignation.font = [UIFont systemFontOfSize:10]; + } + return _presentFigureSequencignation; +} + +- (UIView *)coverView { + if (!_coverView) { + _coverView = [[UIView alloc] init]; + _coverView.backgroundColor = [DJDKMIMOMColor presentChosenBackgroundPrettify]; + _coverView.layer.borderColor = [DJDKMIMOMColor aplictowardsionMainPrettify].CGColor; + _coverView.layer.masksToBounds =YES; + _coverView.layer.cornerRadius = 6; + _coverView.layer.borderWidth = 1; + _coverView.hidden = YES; + } + return _coverView; +} + +- (NetIndicateRegard *)presentIndicateRegard { + if (!_presentIndicateRegard) { + _presentIndicateRegard = [[NetIndicateRegard alloc] init]; + _presentIndicateRegard.backgroundColor = [UIColor clearColor]; + _presentIndicateRegard.layer.masksToBounds = YES; + _presentIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _presentIndicateRegard; +} + +- (NetIndicateRegard *)magnificentFigureIndicateRegard { + if (!_magnificentFigureIndicateRegard) { + _magnificentFigureIndicateRegard = [[NetIndicateRegard alloc] init]; + _magnificentFigureIndicateRegard.backgroundColor = [UIColor clearColor]; + _magnificentFigureIndicateRegard.hidden = YES; + _magnificentFigureIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _magnificentFigureIndicateRegard; +} + + +- (UIImageView *)spokeIndicateRegard { + if (!_spokeIndicateRegard) { + _spokeIndicateRegard = [self produceIndictowardseRegard:@"room_gift_noble_lock"]; + _spokeIndicateRegard.hidden = YES; + } + return _spokeIndicateRegard; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/SendGiftView/View/Cell/YUMIPresentWeekSatelliteAssembletionRegardElement.h b/YuMi/Modules/YMRoom/View/SendGiftView/View/Cell/YUMIPresentWeekSatelliteAssembletionRegardElement.h new file mode 100644 index 00000000..3df7a7c1 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendGiftView/View/Cell/YUMIPresentWeekSatelliteAssembletionRegardElement.h @@ -0,0 +1,24 @@ +// +// YMGiftWeekStarCollectionViewCell.h +// YUMI +// +// Created by YUMI on 2022/6/14. +// + +#import +#import "YUMIDischargePresentRegard.h" +NS_ASSUME_NONNULL_BEGIN +@class YUMIPresentWeekSatelliteAssembletionRegardElement, PresentAbstractMatrix; +@protocol FBCPresentWeekStarAssembletionRegardElementRepresendtation + +- (void)yUMIPresentZhouStowardselliteAssembletionRegardElement:(YUMIPresentWeekSatelliteAssembletionRegardElement *)view didSelectGift:(PresentAbstractMatrix *)giftInfo; + +@end + +@interface YUMIPresentWeekSatelliteAssembletionRegardElement : UICollectionViewCell +@property (nonatomic,assign) DischargePresentGenre usingdeparatmentGenre; +@property (nonatomic,strong) NSArray *zhouSatellitePresentStatement; +@property (nonatomic,weak) id delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/SendGiftView/View/Cell/YUMIPresentWeekSatelliteAssembletionRegardElement.m b/YuMi/Modules/YMRoom/View/SendGiftView/View/Cell/YUMIPresentWeekSatelliteAssembletionRegardElement.m new file mode 100644 index 00000000..f1b65705 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendGiftView/View/Cell/YUMIPresentWeekSatelliteAssembletionRegardElement.m @@ -0,0 +1,143 @@ +// +// YMGiftWeekStarCollectionViewCell.m +// YUMI +// +// Created by YUMI on 2022/6/14. +// + +#import "YUMIPresentWeekSatelliteAssembletionRegardElement.h" +#import +#import "NetIndicateRegard.h" +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" +#import "ThemeColor+SendGift.h" +#import "YUMIPresentAssembletionRegardFlowProgramming.h" +#import "NSArray+Safe.h" +#import "PresentAbstractMatrix.h" +#import "YUMIPresentProvisionAssembletionRegardElement.h" + +@interface YUMIPresentWeekSatelliteAssembletionRegardElement () +@property (nonatomic,strong) UICollectionView *collectionView; +@property (nonatomic,strong) UIPageControl *periodGovernancer; +@property (nonatomic,strong) PresentAbstractMatrix *chosenPresentAbstract; +@end + +@implementation YUMIPresentWeekSatelliteAssembletionRegardElement + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} +#pragma mark - Private Method +- (void)initSubViews { + [self.contentView addSubview:self.collectionView]; + [self.contentView addSubview:self.periodGovernancer]; +} + +- (void)initChildLyRestrictions { + [self.collectionView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self.contentView); + make.height.mas_equalTo(108 * 2); + }]; + + [self.periodGovernancer mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.collectionView.mas_bottom).offset(5); + make.left.right.mas_equalTo(self.contentView); + make.height.mas_equalTo(10); + }]; +} + + +#pragma mark - UICollectionViewDelegate And UICollectionDatasource +- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath { + CGFloat itemWidth = (CGFloat)(KScreenWidth - 15 * 2 - 5 * 3) / (CGFloat)4; + return CGSizeMake(itemWidth, 105); +} + +- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { + return self.zhouSatellitePresentStatement.count; +} + +- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { + YUMIPresentProvisionAssembletionRegardElement * cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([YUMIPresentProvisionAssembletionRegardElement class]) forIndexPath:indexPath]; + PresentAbstractMatrix * giftInfo; + giftInfo= [self.zhouSatellitePresentStatement secureGroalTowardsIndictowardsrix1:indexPath.item]; + if (giftInfo.giftId == self.chosenPresentAbstract.giftId) { + giftInfo.isSelected = YES; + } else { + giftInfo.isSelected = NO; + } + cell.usingdeparatmentGenre = self.usingdeparatmentGenre; + cell.giftInfo = giftInfo; + return cell; +} + +- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath { + [collectionView deselectItemAtIndexPath:indexPath animated:YES]; + if (self.zhouSatellitePresentStatement.count > 0) { + PresentAbstractMatrix * giftInfo= [self.zhouSatellitePresentStatement secureGroalTowardsIndictowardsrix1:indexPath.item]; + self.chosenPresentAbstract = giftInfo; + [self.collectionView reloadData]; + + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIPresentZhouStowardselliteAssembletionRegardElement:didSelectGift:)]) { + [self.delegate yUMIPresentZhouStowardselliteAssembletionRegardElement:self didSelectGift:giftInfo]; + } + } +} +#pragma mark - scrollviewdelegate +- (void)scrollViewDidScroll:(UIScrollView *)scrollView { + CGFloat offX = scrollView.contentOffset.x; + CGFloat width = CGRectGetWidth(scrollView.frame); + self.periodGovernancer.currentPage = ceilf(offX/width); +} + +#pragma mark - Getters And Setters +- (void)setZhouSatellitePresentStatement:(NSArray *)zhouSatellitePresentStatement { + _zhouSatellitePresentStatement = zhouSatellitePresentStatement; + if (_zhouSatellitePresentStatement.count > 0) { + self.chosenPresentAbstract = _zhouSatellitePresentStatement.firstObject; + } + NSInteger page = 0; + if (_zhouSatellitePresentStatement.count % 8 == 0) { + page = _zhouSatellitePresentStatement.count / 8; + } else { + page = _zhouSatellitePresentStatement.count / 8 + 1; + } + self.periodGovernancer.hidden = page <= 1; + [self.periodGovernancer setNumberOfPages:page]; + self.periodGovernancer.currentPage = 0; + [self.collectionView reloadData]; +} + +- (UICollectionView *)collectionView{ + if (!_collectionView) { + YUMIPresentAssembletionRegardFlowProgramming *layout = [[YUMIPresentAssembletionRegardFlowProgramming alloc] init]; + layout.minimumLineSpacing = 5; + layout.minimumInteritemSpacing = 5; + layout.sectionInset = UIEdgeInsetsMake(0, 0, 0, 0); + _collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout]; + _collectionView.dataSource = self; + _collectionView.delegate = self; + _collectionView.backgroundColor = [UIColor clearColor]; + _collectionView.pagingEnabled = YES; + _collectionView.showsHorizontalScrollIndicator = NO; + [_collectionView registerClass:[YUMIPresentProvisionAssembletionRegardElement class] forCellWithReuseIdentifier:NSStringFromClass([YUMIPresentProvisionAssembletionRegardElement class])]; + } + return _collectionView; +} + +- (UIPageControl *)periodGovernancer { + if (!_periodGovernancer) { + _periodGovernancer = [[UIPageControl alloc] init]; + _periodGovernancer.currentPageIndicatorTintColor = [DJDKMIMOMColor presentPeriodIndictowardsorPrettify]; + } + return _periodGovernancer; +} + + + +@end diff --git a/YuMi/Modules/YMRoom/View/SendGiftView/View/YUMIDischargePresentRegard.h b/YuMi/Modules/YMRoom/View/SendGiftView/View/YUMIDischargePresentRegard.h new file mode 100644 index 00000000..9ee708a8 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendGiftView/View/YUMIDischargePresentRegard.h @@ -0,0 +1,32 @@ +// +// YMSendGiftView.h +// YUMI +// +// Created by YUMI on 2021/11/9. +// + +#import "MvpRegardGovernancer.h" +#import "ChamberHostRepresendtation.h" +#import "YUMIExternalizeConsumerAbstractMatrix.h" +NS_ASSUME_NONNULL_BEGIN +typedef NS_ENUM(NSInteger, DischargePresentGenre) { + DischargePresentGenre_Room = 1, + DischargePresentGenre_User, +}; + +@interface YUMIDischargePresentRegard : MvpRegardGovernancer +@property (nonatomic,weak) id delegate; +- (instancetype)initWithType:(DischargePresentGenre)type uid:(NSString * __nullable)uid; + +- (instancetype)init NS_UNAVAILABLE; ++ (instancetype)new NS_UNAVAILABLE; +- (instancetype)copy NS_UNAVAILABLE; +- (instancetype)mutableCopy NS_UNAVAILABLE; + +- (void)prohibitipositionPresentConsumers:(NSArray *)users; + +@property (nonatomic, copy) NSString *chosenPresentId; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/SendGiftView/View/YUMIDischargePresentRegard.m b/YuMi/Modules/YMRoom/View/SendGiftView/View/YUMIDischargePresentRegard.m new file mode 100644 index 00000000..c810665d --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendGiftView/View/YUMIDischargePresentRegard.m @@ -0,0 +1,772 @@ +// +// YMSendGiftView.m +// YUMI +// +// Created by YUMI on 2021/11/9. +// + +#import "YUMIDischargePresentRegard.h" +#import +#import +#import +#import "YUMIMacroUitls.h" +#import "YUMIPresentExternalizer.h" +#import "MKJPopup.h" +#import "ThemeColor+SendGift.h" +#import "StatsticsticsServingFacilitater.h" +#import "YUMIHtmlUrl.h" +#import "AccountAbstractStorage.h" +#import "NSArray+Safe.h" +#import "ClientDisposition.h" +#import "XCCurrentVCStackExecutive.h" +#import "PresentAbstractMatrix.h" +#import "YUMIPresentComputationMatrix.h" +#import "PresentAchieveAbstractMatrix.h" +#import "AttachmentMatrix.h" +#import "ChamberAbstractMatrix.h" +#import "ConsumerAbstractMatrix.h" +#import "RamparatetAbstractMatrix.h" +#import "YUMICommunicationRemoteExtMatrix.h" +#import "YUMIExternalizeConsumersRegard.h" +#import "YUMIPresentAbstractRegard.h" +#import "YUMIPresentObstacleRegard.h" +#import "YUMIChamberHalfTissueRegard.h" +#import "YUMIGraffitiPresentRegard.h" +#import "YUMIPresentIntelligenceGenreRegard.h" +#import "YUMIPresentFortunatePresentPingbackRegard.h" +#import "YUMIPresentTwelveSatellitePingbackRegard.h" +#import "FBCPresentCeremony.h" +#import "YUMIManeReindictRegardGovernancer.h" +#import "YUMIIAPReindictRegardGovernancer.h" +#import "YUMITissueRegardGovernancer.h" + +UIKIT_EXTERN NSString * kShowFirstRechargeView; + +@interface YUMIDischargePresentRegard ()< FBCPresentObstacleRegardRepresendtation, FBCPresentCeremony, FBCPresentAbstractRegardRepresendtation, FBCGraffitiPresentRegardRepresendtation, FBCPresentConsumersRegardRepresendtation, FBCPresentIntelligenceTypeRegardRepresendtation, FBCPresentLuckyPresentPingbackRegardRepresendtation, FBCPresentTwelveStarPingbackRegardRepresendtation> +@property (nonatomic,strong) UIView * apexRegard; +@property (nonatomic,strong) UIView *contentView; +@property (nonatomic, strong) UIVisualEffectView *impressionRegard; +@property (nonatomic,strong) UIStackView *stackView; +@property (nonatomic, strong) YUMIPresentFortunatePresentPingbackRegard *fortunatePingencourageRegard; +@property (nonatomic, strong) YUMIPresentTwelveSatellitePingbackRegard *constellationOriflamme; +@property (nonatomic, strong) YUMIPresentIntelligenceGenreRegard *intelligenceGenreRegard; +@property (nonatomic,strong) YUMIExternalizeConsumersRegard *consumerRegard; +@property (nonatomic,strong) YUMIPresentAbstractRegard *presentAbstractRegard; +@property (nonatomic,strong) YUMIPresentObstacleRegard *presentObstacleRegard; +@property (nonatomic,strong) UIView * bottomView; +@property (nonatomic,strong) YUMIGraffitiPresentRegard *doodleRegard; +@property (nonatomic,copy) NSString *roomUid; +@property (nonatomic,assign) DischargePresentGenre usingdeparatmentGenre; +@property (nonatomic,assign) int ordinaryPresentRetrialComputation; +@property (nonatomic,assign) int impactPresentRetrialComputation; +@property (nonatomic,strong) NSArray *consumerGarment; +@property (nonatomic,strong) NSArray *doodleSpeck; +@property (nonatomic,assign) PresentSegmentGenre segmentType; +@property (nonatomic,strong) NSArray *records; +@end + +@implementation YUMIDischargePresentRegard + +- (YUMIPresentExternalizer *)producePresimport { + return [[YUMIPresentExternalizer alloc] init]; +} + + +- (instancetype)initWithType:(DischargePresentGenre)type uid:(NSString * __nullable)uid{ + if (self = [super init]) { + self.modalPresentationStyle = UIModalPresentationOverFullScreen; + self.roomUid = uid; + self.usingdeparatmentGenre = type; + } + return self; +} + +- (void)viewDidLoad { + [self initSubViews]; + [self initChildLyRestrictions]; + [self initHyperessayDemand]; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self.view addSubview:self.apexRegard]; + [self.view addSubview:self.contentView]; + [self.contentView addSubview:self.impressionRegard]; + [self.contentView addSubview:self.stackView]; + [self.stackView addArrangedSubview:self.doodleRegard]; + [self.stackView addArrangedSubview:self.intelligenceGenreRegard]; + [self.stackView addArrangedSubview:self.consumerRegard]; + [self.stackView addArrangedSubview:self.presentAbstractRegard]; + [self.stackView addArrangedSubview:self.presentObstacleRegard]; + [self.stackView addArrangedSubview:self.bottomView]; +} + +- (void)initChildLyRestrictions { + [self.apexRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self.view); + make.bottom.mas_equalTo(self.contentView.mas_top);; + }]; + + [self.contentView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.stackView.mas_top); + make.left.right.bottom.mas_equalTo(self.view); + }]; + + [self.impressionRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.contentView); + }]; + [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.mas_equalTo(self.contentView); + }]; + + [self.bottomView mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(kSafeAreaBottomHeight); + }]; +} + +- (void)initHyperessayDemand { + [self.presimport getUserInfo:[AccountAbstractStorage instance].acquireCid]; + [self.presimport acquireConsumerRampartowardsAbstract]; + [self.presimport acquireOrdinaryPresentSttowardsement:self.roomUid]; + [self.presimport acquireImpactPresentSttowardsement]; +} + +#pragma mark - Send Custom Message +- (void)prohibitichargeDoodlePresentCommunictowardsion { + if (self.segmentType == PresentSegmentGenre_Graffiti && self.doodleSpeck.count > 0) { + AttachmentMatrix * attachment = [[AttachmentMatrix alloc] init]; + attachment.first = IndividualityCommunicationGenre_Graffiti_Gift; + attachment.second = Custom_Message_Sub_Graffiti_Gift; + NSMutableDictionary * dic = [NSMutableDictionary dictionary]; + [dic setValue:@(self.presentAbstractRegard.lastChosenPresent.giftId) forKey:@"giftId"]; + [dic setValue:self.doodleSpeck forKey:@"drawFixedArray"]; + attachment.data = dic; + [self prohibitichargeIndividualityCommunictowardsion:attachment]; + } +} + +- (void)prohibitichargeIndividualityCommunictowardsion:(PresentAchieveAbstractMatrix *)achieveMatrix oringinDic:(NSDictionary *)originDic { + NSDictionary * dict = originDic; + if (achieveMatrix.roomSendGiftType == ChamberDischargePresentGenre_AllMic) { + NSMutableDictionary *data = [NSMutableDictionary dictionary]; + [data addEntriesFromDictionary:dict]; + if (achieveMatrix.gift.giftType == PresentGenre_Lucky) { + NSArray *luckyBagGifts = (NSArray *)[data objectForKey:@"luckyBagGifts"]; + if (luckyBagGifts.count >0) { + for (int i = 0; i < luckyBagGifts.count; i++) { + NSMutableDictionary * data1 = [NSMutableDictionary dictionary]; + [data1 addEntriesFromDictionary:dict]; + AttachmentMatrix * attachment = [[AttachmentMatrix alloc] init]; + attachment.first = IndividualityCommunicationGenre_AllMicroSend; + attachment.second = Custom_Message_Sub_AllMicroLuckySend; + NSDictionary * obj = [luckyBagGifts secureGroalTowardsIndictowardsrix1:i]; + [data1 setObject:i == 0 ? @(YES):@(NO) forKey:@"isShowAnimation"]; + [data1 setObject:obj forKey:@"luckyGiftList"]; + [data1 setObject:achieveMatrix.gift.giftName forKey:@"giftName"]; + [data1 setObject:[obj valueForKeyPath:@"user.uid"] forKey:@"targetUid"]; + [data1 setObject:[dict valueForKeyPath:@"targetUsers.uid"] forKey:@"targetUids"]; + if ([dict valueForKeyPath:@"gift.luckyGiftSvgaUrl"]) { + [data1 setObject:[dict valueForKeyPath:@"gift.luckyGiftSvgaUrl"] forKey:@"luckyGiftSvgaUrl"]; + } + [data1 removeObjectForKey:@"luckyBagGifts"]; + [data1 removeObjectForKey:@"targetUsers"]; + [data1 removeObjectForKey:@"gift"]; + attachment.data = data1; + [self prohibitichargeIndividualityCommunictowardsion:attachment]; + } + } + }else { + AttachmentMatrix * attachment = [[AttachmentMatrix alloc] init]; + attachment.first = IndividualityCommunicationGenre_AllMicroSend; + attachment.second = Custom_Message_Sub_AllMicroSend; + [data setObject:[dict valueForKeyPath:@"targetUsers.uid"] forKey:@"targetUids"]; + attachment.data = data; + [self prohibitichargeIndividualityCommunictowardsion:attachment]; + } + } else if (achieveMatrix.roomSendGiftType == ChamberDischargePresentGenre_MutableOnMic) { + NSMutableDictionary *data = [NSMutableDictionary dictionary]; + [data addEntriesFromDictionary:dict]; + if (achieveMatrix.gift.giftType == PresentGenre_Lucky) { + NSArray *luckyBagGifts = (NSArray *)[data objectForKey:@"luckyBagGifts"]; + if (luckyBagGifts.count >0) { + + [luckyBagGifts enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + NSMutableDictionary * data1 = [NSMutableDictionary dictionary]; + [data1 addEntriesFromDictionary:dict]; + AttachmentMatrix * attachment = [[AttachmentMatrix alloc] init]; + attachment.first = IndividualityCommunicationGenre_AllMicroSend; + attachment.second = Custom_Message_Sub_AllBatchMicroLuckySend; + [data1 setObject:idx == 0 ? @(YES):@(NO) forKey:@"isShowAnimation"]; + [data1 setObject:obj forKey:@"luckyGiftList"]; + [data1 setObject:achieveMatrix.gift.giftName forKey:@"giftName"]; + [data1 setObject:[obj valueForKeyPath:@"user.uid"] forKey:@"targetUid"]; + [data1 setObject:[dict valueForKeyPath:@"targetUsers.uid"] forKey:@"targetUids"]; + if ([dict valueForKeyPath:@"gift.luckyGiftSvgaUrl"]) { + [data1 setObject:[dict valueForKeyPath:@"gift.luckyGiftSvgaUrl"] forKey:@"luckyGiftSvgaUrl"]; + } + [data1 removeObjectForKey:@"luckyBagGifts"]; + [data1 removeObjectForKey:@"targetUsers"]; + attachment.data = data1; + [self prohibitichargeIndividualityCommunictowardsion:attachment]; + }]; + } + }else { + AttachmentMatrix *attachment = [[AttachmentMatrix alloc] init]; + attachment.first = IndividualityCommunicationGenre_AllMicroSend; + attachment.second = Custom_Message_Sub_AllBatchSend; + attachment.data = data; + [self prohibitichargeIndividualityCommunictowardsion:attachment]; + } + } else if (achieveMatrix.roomSendGiftType == ChamberDischargePresentGenre_ToOne) { + NSMutableDictionary *data = [NSMutableDictionary dictionary]; + [data addEntriesFromDictionary:dict]; + if (achieveMatrix.gift.giftType == PresentGenre_Lucky) { + NSArray *luckyBagGifts = (NSArray *)[data objectForKey:@"luckyBagGifts"]; + [luckyBagGifts enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + NSMutableDictionary * data1 = [NSMutableDictionary dictionary]; + [data1 addEntriesFromDictionary:dict]; + AttachmentMatrix * attachment = [[AttachmentMatrix alloc] init]; + attachment.first = IndividualityCommunicationGenre_Gift; + attachment.second = Custom_Message_Sub_Gift_LuckySend; + [data1 setObject:idx == 0 ? @(YES):@(NO) forKey:@"isShowAnimation"]; + [data1 setObject:obj forKey:@"luckyGiftList"]; + [data1 setObject:achieveMatrix.gift.giftName forKey:@"giftName"]; + [data1 setObject:[obj valueForKeyPath:@"user.uid"] forKey:@"targetUid"]; + [data1 setObject:[obj valueForKeyPath:@"user.nick"] forKey:@"targetNick"]; + [data1 setObject:[dict valueForKeyPath:@"targetUsers.uid"] forKey:@"targetUids"]; + if ([dict valueForKeyPath:@"gift.luckyGiftSvgaUrl"]) { + [data1 setObject:[dict valueForKeyPath:@"gift.luckyGiftSvgaUrl"] forKey:@"luckyGiftSvgaUrl"]; + } + [data1 removeObjectForKey:@"luckyBagGifts"]; + [data1 removeObjectForKey:@"targetUsers"]; + attachment.data = data1; + [self prohibitichargeIndividualityCommunictowardsion:attachment]; + }]; + }else { + AttachmentMatrix *attachment = [[AttachmentMatrix alloc] init]; + attachment.first = IndividualityCommunicationGenre_Gift; + attachment.second = Custom_Message_Sub_Gift_Send; + NSDictionary *targetUsers = ((NSArray *)[data objectForKey:@"targetUsers"]).firstObject; + [data setObject:[targetUsers valueForKeyPath:@"uid"] forKey:@"targetUid"]; + [data setObject:[targetUsers valueForKeyPath:@"nick"] forKey:@"targetNick"]; + [data setObject:[targetUsers valueForKeyPath:@"avatar"] forKey:@"targetAvatar"]; + attachment.data = data; + [self prohibitichargeIndividualityCommunictowardsion:attachment]; + } + } + +} + +- (void)prohibitichargeIndividualityCommunictowardsion:(AttachmentMatrix *)attachment { + + NSString *sessionID = self.usingdeparatmentGenre == DischargePresentGenre_User ? [NSString stringWithFormat:@"%ld", self.consumerGarment.firstObject.uid] : [NSString stringWithFormat:@"%ld", [self.delegate acquireChamberAbstract].roomId]; + NIMMessage *message = [[NIMMessage alloc]init]; + NIMCustomObject *object = [[NIMCustomObject alloc] init]; + object.attachment = attachment; + message.messageObject = object; + + ConsumerAbstractMatrix *userInfo = [self.delegate getUserInfo]; + YUMICommunicationRemoteExtMatrix *extModel = [[YUMICommunicationRemoteExtMatrix alloc] init]; + extModel.androidBubbleUrl = userInfo.androidBubbleUrl; + extModel.iosBubbleUrl = userInfo.iosBubbleUrl; + extModel.fromSayHelloChannel = userInfo.fromSayHelloChannel; + NSMutableDictionary *remoteExt = [NSMutableDictionary dictionaryWithObject:extModel.mtowardsrix2dictionary forKey:[NSString stringWithFormat:@"%ld", userInfo.uid]]; + message.remoteExt = remoteExt; + NIMSessionType sessionType = self.usingdeparatmentGenre == DischargePresentGenre_Room ? NIMSessionTypeChatroom : NIMSessionTypeP2P; + + NIMSession *session = [NIMSession session:sessionID type:sessionType]; + [[NIMSDK sharedSDK].chatManager sendMessage:message toSession:session error:nil]; +} + +#pragma mark - Deal Send Gift Data +- (NSString *)castleDischargePresentComputtowardsion:(YUMIPresentComputationMatrix *)model gift:(PresentAbstractMatrix *)gift { + NSString * count = @"1"; + if (model.isTotal) { + count = [NSString stringWithFormat:@"%ld", gift.count]; + } else { + count = model.giftNumber; + } + + if (self.segmentType == PresentSegmentGenre_Graffiti) { + count = [NSString stringWithFormat:@"%ld", self.doodleSpeck.count]; + } + return count; +} + +- (NSString *)castleDischargePresentCids:(NSArray *)uids { + NSString *uidString = [[NSString alloc] init]; + for (NSString *item in uids) { + if (uidString.length > 0) { + uidString = [uidString stringByAppendingString:@","]; + } + uidString = [uidString stringByAppendingString:item]; + } + return uidString; +} + +- (ChamberDischargePresentGenre)castleChamberDischargePresentGenre:(PresentAbstractMatrix *)giftInfo presentComputation:(YUMIPresentComputationMatrix *)presentComputation { + NSArray * uids = self.consumerRegard.chosenConsumerGarment; + ChamberDischargePresentGenre roomSendGiftType; + if (self.consumerRegard.isChosenEntirety) { + if (giftInfo.sourceType == PresentSourceGenre_Pack && presentComputation.isTotal && giftInfo && uids.count > 1) { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_Send_Gift_View_0")]; + return -1; + } + roomSendGiftType = ChamberDischargePresentGenre_AllMic; + } else if(self.consumerRegard.chosenConsumerGarment.count > 1) { + if (giftInfo.sourceType == PresentSourceGenre_Pack && presentComputation.isTotal) { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_Send_Gift_View_1")]; + return -1; + } + roomSendGiftType = ChamberDischargePresentGenre_MutableOnMic; + } else if(self.consumerRegard.chosenConsumerGarment.count == 1) { + roomSendGiftType = ChamberDischargePresentGenre_ToOne; + } else { + roomSendGiftType = -1; + } + return roomSendGiftType; +} + +#pragma mark - Public Method +- (void)prohibitipositionPresentConsumers:(NSArray *)users { + self.consumerGarment = users; + [self.consumerRegard prohibitipositionPresentConsumers:users]; + if (users.count <= 0 || self.usingdeparatmentGenre == DischargePresentGenre_User) { + self.consumerRegard.hidden = YES; + } else { + self.consumerRegard.hidden = NO; + } +} +#pragma mark - FBCPresentObstacleRegardRepresendtation +- (void)yUMIPresentObstacleRegard:(YUMIPresentObstacleRegard *)view didClickSendGift:(YUMIPresentComputationMatrix *)presentComputation { + NSArray * uids = self.consumerRegard.chosenConsumerGarment; + PresentAbstractMatrix * giftInfo = self.presentAbstractRegard.lastChosenPresent; + if (self.usingdeparatmentGenre == DischargePresentGenre_Room) { + if (uids.count > 0) { + + NSString * uidString = [self castleDischargePresentCids:uids]; + + NSString * giftNumber = [self castleDischargePresentComputtowardsion:presentComputation gift:giftInfo]; + + NSString * giftId = [NSString stringWithFormat:@"%ld", giftInfo.giftId]; + + PresentDischargeGenre sendType = PresentDischargeGenre_OnMic; + + PresentSourceGenre sourceType = giftInfo.sourceType; + + ChamberDischargePresentGenre roomSendType = [self castleChamberDischargePresentGenre:giftInfo presentComputation:presentComputation]; + if (roomSendType == -1) { + return; + } + self.presentObstacleRegard.dischargeBtutonIsCapacitate = NO; + + [self.presimport prohibitichargePresent:uidString giftNum:giftNumber sendType:sendType giftId:giftId giftSource:sourceType giftType:giftInfo.giftType roomSendType:roomSendType roomUid:self.roomUid msg:@""]; + } else { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_Send_Gift_View_2")]; + return; + } + } else if(self.usingdeparatmentGenre == DischargePresentGenre_User) { + + NSString * uidString = [self castleDischargePresentCids:uids]; + + NSString * giftNumber = [self castleDischargePresentComputtowardsion:presentComputation gift:giftInfo]; + + NSString * giftId = [NSString stringWithFormat:@"%ld", giftInfo.giftId]; + + PresentDischargeGenre sendType = PresentDischargeGenre_Chat; + + PresentSourceGenre sourceType = giftInfo.sourceType; + + ChamberDischargePresentGenre roomSendType = ChamberDischargePresentGenre_ToOne; + self.presentObstacleRegard.dischargeBtutonIsCapacitate = NO; + [self.presimport prohibitichargePresent:uidString giftNum:giftNumber sendType:sendType giftId:giftId giftSource:sourceType giftType:giftInfo.giftType roomSendType:roomSendType roomUid:self.roomUid msg:@""]; + } + +} + +- (void)yUMIPresentObstacleRegardDidTicktackReindict:(YUMIPresentObstacleRegard *)view { + [self dismissViewControllerAnimated:NO completion:^{ + YUMIIAPReindictRegardGovernancer * rechargeVC = [[YUMIIAPReindictRegardGovernancer alloc] init]; + [[XCCurrentVCStackExecutive shareManager].getCurrentVC.navigationController pushViewController:rechargeVC animated:YES]; + }]; +} + +- (void)yUMIPresentObstacleRegardDidTicktackThresholdReindict:(YUMIPresentObstacleRegard *)view { + [self dismissViewControllerAnimated:NO completion:^{ + [[NSNotificationCenter defaultCenter]postNotificationName:kShowFirstRechargeView object:@{@"type":@"1",@"diamonds": self.presentObstacleRegard.wentiretyetAbstractMatrix.diamonds ?: @"0"}]; + }]; +} + +#pragma mark - FBCPresentLuckyPresentPingbackRegardRepresendtation +- (void)yUMIPresentInthecaseoftuntowardsePresentBroadcastRegardDisportSequenceTicktack { + NSString * giftExplainUrl; + if (self.segmentType == PresentSegmentGenre_Lucky) { + giftExplainUrl = [NSString stringWithFormat:URLWithType(kLuckyGiftPlayRuleURL), [NSString stringWithFormat:@"%ld", self.presentAbstractRegard.lastChosenPresent.giftId]]; + } else { + giftExplainUrl = self.presentAbstractRegard.lastChosenPresent.giftExplainUrl; + } + YUMIChamberHalfTissueRegard * webView = [[YUMIChamberHalfTissueRegard alloc] init]; + webView.url = giftExplainUrl; + [MKJPopup popupRegard:webView style:MKJPopupStyleActionSheet]; +} + +#pragma mark - FBCPresentWeekStarPingbackRegardRepresendtation +- (void)yUMIPresentZhouStowardselliteBroadcastRegardZhouStowardselliteTicktack { + [self dismissViewControllerAnimated:NO completion:^{ + YUMITissueRegardGovernancer * webVewC = [[YUMITissueRegardGovernancer alloc] init]; + webVewC.roomUid = self.roomUid; + webVewC.url = URLWithType(kNewWeekStarURL); + [[XCCurrentVCStackExecutive shareManager].getCurrentVC.navigationController pushViewController:webVewC animated:YES]; + }]; +} + +#pragma mark - FBCPresentIntelligenceTypeRegardRepresendtation +- (void)yUMIPresentIntelligenceGenreRegardDidTicktackMagnificent:(YUMIPresentIntelligenceGenreRegard *)view { + [self dismissViewControllerAnimated:NO completion:^{ + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventvipEntranceGiftClick]; + }]; +} +- (void)yUMIPresentIntelligenceGenreRegardDidTicktackThresholdReindict:(YUMIPresentIntelligenceGenreRegard *)view { + [self dismissViewControllerAnimated:NO completion:^{ + [[NSNotificationCenter defaultCenter]postNotificationName:kShowFirstRechargeView object:@{@"type":@"1",@"diamonds": self.presentObstacleRegard.wentiretyetAbstractMatrix.diamonds ?: @"0"}]; + }]; + +} +- (void)yUMIPresentIntelligenceGenreRegardDidTicktackPresent:(YUMIPresentIntelligenceGenreRegard *)view { + [self.fortunatePingencourageRegard removeFromSuperview]; + [self.presentAbstractRegard presentIntelligenceGenreHadDiversifictowardsion:1]; + if (!self.doodleRegard.hidden) { + [self.doodleRegard prohibititinctTowardsoloudspeaker]; + [self.doodleRegard crtowardseValencyIdiosyncracy]; + [UIView animateWithDuration:0.2 animations:^{ + self.doodleRegard.hidden = YES; + self.presentAbstractRegard.hidden = NO; + }]; + } +} +- (void)yUMIPresentIntelligenceGenreRegardDidTicktackInterperformance:(YUMIPresentIntelligenceGenreRegard *)view { + [self.fortunatePingencourageRegard removeFromSuperview]; + [self.presentAbstractRegard presentIntelligenceGenreHadDiversifictowardsion:2]; +} + +#pragma mark - FBCPresentAbstractRegardRepresendtation +- (void)yUMIPresentAbstractRegard:(YUMIPresentAbstractRegard *)view didClickSegment:(PresentSegmentGenre)type { + self.segmentType = type; + self.presentObstacleRegard.type = type; + self.presentObstacleRegard.drawPresentComputation = 0; + if (type == PresentSegmentGenre_Lucky) { + [self.constellationOriflamme removeFromSuperview]; + if (!self.fortunatePingencourageRegard.superview) { + [self.view addSubview:self.fortunatePingencourageRegard]; + [self.fortunatePingencourageRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.bottom.mas_equalTo(self.contentView.mas_top); + make.left.right.mas_equalTo(0); + make.height.mas_equalTo(48); + }]; + } + } else if(type == PresentSegmentGenre_WeekStar) { + [self.fortunatePingencourageRegard removeFromSuperview]; + if ([ClientDisposition partowardsiciptowardsionDisposition].dispositionAbstract.twelveStarSwitch) { + self.constellationOriflamme.hidden = NO; + if (!self.constellationOriflamme.superview) { + [self.view addSubview:self.constellationOriflamme]; + [self.constellationOriflamme mas_makeConstraints:^(MASConstraintMaker *make) { + make.bottom.mas_equalTo(self.contentView.mas_top); + make.left.right.mas_equalTo(0); + make.height.mas_equalTo(75); + }]; + } + } else { + self.constellationOriflamme.hidden = YES; + } + } else { + [self.fortunatePingencourageRegard removeFromSuperview]; + [self.constellationOriflamme removeFromSuperview]; + } +} + +- (void)yUMIPresentAbstractRegard:(YUMIPresentAbstractRegard *)view didClickItem:(PresentAbstractMatrix *)info type:(PresentSegmentGenre)type { + if (type == PresentSegmentGenre_Graffiti) { + self.presentAbstractRegard.hidden = YES; + self.doodleRegard.hidden = NO; + self.doodleRegard.price = info.goldPrice; + self.presentObstacleRegard.drawPresentComputation = 0; + self.doodleRegard.chosenCidDigital = self.consumerRegard.chosenConsumerGarment.count; + [[SDWebImageManager sharedManager] loadImageWithURL:[NSURL URLWithString:info.giftUrl] options:SDWebImageProgressiveLoad progress:nil completed:^(UIImage * _Nullable image, NSData * _Nullable data, NSError * _Nullable error, SDImageCacheType cacheType, BOOL finished, NSURL * _Nullable imageURL) { + if (error == nil && image) { + self.doodleRegard.image = image; + } else { + self.presentAbstractRegard.hidden = NO; + } + }]; + } else { + self.presentObstacleRegard.drawPresentComputation = 10; + } +} + +#pragma mark - FBCPresentConsumersRegardRepresendtation +- (void)yUMIPresentConsumersRegard:(YUMIExternalizeConsumersRegard *)view didSelectUsers:(NSArray *)selectUids { + self.doodleRegard.chosenCidDigital = selectUids.count; +} + +#pragma mark - FBCGraffitiPresentRegardRepresendtation +- (void)yUMIDoodlePresentRegard:(YUMIGraffitiPresentRegard *)view didClickClose:(UIButton *)sender { + [UIView animateWithDuration:0.2 animations:^{ + self.doodleRegard.hidden = YES; + self.presentAbstractRegard.hidden = NO; + }]; +} + +- (void)yUMIDoodlePresentRegard:(YUMIGraffitiPresentRegard *)view didClickChange:(UIButton *)sender { + [UIView animateWithDuration:0.2 animations:^{ + self.doodleRegard.hidden = YES; + self.presentAbstractRegard.hidden = NO; + }]; +} + +- (void)yUMIDoodlePresentRegard:(YUMIGraffitiPresentRegard *)view didDrawCompletion:(NSArray *)speckGarment { + self.doodleSpeck = speckGarment; + self.presentObstacleRegard.drawPresentComputation = self.doodleSpeck.count; +} + +#pragma mark - FBCPresentTwelveStarPingbackRegardRepresendtation +- (void)yUMIPresentDuodenaryStowardselliteBroadcastRegard:(YUMIPresentTwelveSatellitePingbackRegard *)view didClickDetail:(UIButton *)sender { + [self dismissViewControllerAnimated:NO completion:^{ + YUMITissueRegardGovernancer * webVewC = [[YUMITissueRegardGovernancer alloc] init]; + webVewC.url = URLWithType(kXinZuoStarURL); + [[XCCurrentVCStackExecutive shareManager].getCurrentVC.navigationController pushViewController:webVewC animated:YES]; + }]; +} + +#pragma mark - FBCPresentCeremony +- (void)dwellEarnConsumerAbstractAccomplishment:(ConsumerAbstractMatrix *)userInfo { + self.intelligenceGenreRegard.isExhibitThresholdReindict = userInfo.isFirstCharge; + self.presentObstacleRegard.isExhibitThresholdReindict = userInfo.isFirstCharge; + self.presentAbstractRegard.curConsumerMagnificentPrototype = userInfo.userVipInfoVO.vipLevel; +} + +- (void)acquireConsumerPocketbookAbstract:(RamparatetAbstractMatrix *)balanceInfo { + self.presentObstacleRegard.wentiretyetAbstractMatrix = balanceInfo; +} +- (void)acquireShetowardshePresentSttowardsementAccomplishment:(NSArray *)giftList { + self.presentAbstractRegard.impactDerivationGarment = giftList; +} + +- (void)acquireShetowardshePresentSttowardsementFlunk:(NSString *)message { + self.impactPresentRetrialComputation ++; + if (self.impactPresentRetrialComputation <= 10) { + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + [self.presimport acquireImpactPresentSttowardsement]; + }); + } +} + +- (void)acquireOrdinaryPresentSttowardsementAccomplishment:(NSArray *)giftList { + self.presentAbstractRegard.ordinaryDerivationGarment = giftList; +} + +- (void)acquireOrdinaryPresentSttowardsementFlunk:(NSString *)message { + self.ordinaryPresentRetrialComputation ++; + if (self.ordinaryPresentRetrialComputation <= 10) { + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + [self.presimport acquireOrdinaryPresentSttowardsement:self.roomUid]; + }); + } +} + +- (void)prohibitichargePresentAccomplishment:(PresentAchieveAbstractMatrix *)receiveInfo originDic:(NSDictionary *)originDic uidCount:(NSInteger)uidCount{ + self.presentObstacleRegard.dischargeBtutonIsCapacitate = YES; + if (receiveInfo.sourceType == PresentSourceGenre_Pack) { + + [self.presentAbstractRegard refurbishImpactProvenience:receiveInfo numberUser:uidCount]; + } else { + [self.presimport acquireConsumerRampartowardsAbstract]; + } + [self prohibitichargeIndividualityCommunictowardsion:receiveInfo oringinDic:originDic]; + + [self prohibitichargeDoodlePresentCommunictowardsion]; + if (self.segmentType == PresentSegmentGenre_Graffiti) { + NSString * title = [NSString stringWithFormat:YMLocalizedString(@"YUMI_Send_Gift_View_3"),self.presentAbstractRegard.lastChosenPresent.giftName]; + [self EvidenceAccomplishmentToast:title]; + [self dismissViewControllerAnimated:YES completion:nil]; + } +} + +- (void)prohibitichargePresentFlunkAboutCryptogram:(NSInteger)code msg:(NSString *)msg { + self.presentObstacleRegard.dischargeBtutonIsCapacitate = YES; + if (code == 31005) { + [self EvidenceNgtowardsSufficientFundsAboutToast:msg]; + } else if (code == 8535) { + PresentAbstractMatrix * giftInfo = self.presentAbstractRegard.lastChosenPresent; + MKJPrecautiousDisposition *config = [[MKJPrecautiousDisposition alloc] init]; + config.performanceStyle = TTAlertActionConfirmStyle; + config.message = [NSString stringWithFormat:@"尚未达到赠送%@所需要的贵族等级哦\n所需贵族等级:%@", giftInfo.giftName, giftInfo.giftVipInfo.vipName]; + [MKJPopup precautiousAboutDisposition:config acknowledgementHandler:^{ + + } cancelHandler:^{ + + }]; + } else { + [self EvidenceMistakeToast:msg]; + } +} + +- (void)EvidenceNgtowardsSufficientFundsAboutToast:(NSString *)msg { + if (self.delegate.getUserInfo.isFirstCharge) { + [self dismissViewControllerAnimated:NO completion:^{ + [[NSNotificationCenter defaultCenter]postNotificationName:kShowFirstRechargeView object:@{@"type":self.delegate != nil ? @"2" : @"9",@"diamonds": self.presentObstacleRegard.wentiretyetAbstractMatrix.diamonds ?: @"0"}]; + }]; + } else { + [self EvidenceMistakeToast:msg]; + } +} + + +- (void)fortuntowardsePresentBroadcastReflectionAccomplishment:(NSArray *)records { + self.records = records; + self.fortunatePingencourageRegard.records = records; +} + +- (void)acquireDuodenaryStowardselliteRecentRtowardseThresholdAccomplishment:(PresentTwelveSatelliteThresholdMatrix *)model { + self.constellationOriflamme.giftInfo = model; +} + +#pragma mark - Event Response +- (void)prohibitiaplictowardsionarRegardRecognition:(UITapGestureRecognizer *)tap { + [self dismissViewControllerAnimated:YES completion:nil]; +} + +#pragma mark - Getters And Setters +- (void)setUsingdeparatmentGenre:(DischargePresentGenre)usingdeparatmentGenre { + _usingdeparatmentGenre = usingdeparatmentGenre; + self.presentObstacleRegard.usingdeparatmentGenre = usingdeparatmentGenre; + self.presentAbstractRegard.usingdeparatmentGenre = _usingdeparatmentGenre; + self.intelligenceGenreRegard.hidden = _usingdeparatmentGenre == DischargePresentGenre_User; + self.consumerRegard.hidden = _usingdeparatmentGenre == DischargePresentGenre_User; + self.impressionRegard.hidden = _usingdeparatmentGenre == DischargePresentGenre_User; + if (_usingdeparatmentGenre == DischargePresentGenre_User) { + self.contentView.backgroundColor = [UIColor whiteColor]; + } +} + +- (void)setChosenPresentId:(NSString *)chosenPresentId { + _chosenPresentId = chosenPresentId; + self.presentAbstractRegard.defaultChosenPresentId = chosenPresentId; +} + +- (void)setDelegate:(id)delegate { + _delegate = delegate; + if (_delegate) { + self.presentAbstractRegard.roomType = _delegate.acquireChamberAbstract.type; + } +} + +- (UIView *)apexRegard { + if (!_apexRegard) { + _apexRegard = [[UIView alloc] init]; + _apexRegard.backgroundColor = [UIColor clearColor]; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(prohibitiaplictowardsionarRegardRecognition:)]; + [_apexRegard addGestureRecognizer:tap]; + } + return _apexRegard; +} + +- (UIView *)contentView { + if (!_contentView) { + _contentView = [[UIView alloc] init]; + UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, KScreenWidth, KScreenHeight) byRoundingCorners:UIRectCornerTopLeft | UIRectCornerTopRight cornerRadii:CGSizeMake(8, 8)]; + CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init]; + maskLayer.frame = CGRectMake(0, 0, KScreenWidth, KScreenHeight); + maskLayer.path = maskPath.CGPath; + _contentView.layer.mask = maskLayer; + + } + return _contentView; +} + +- (YUMIExternalizeConsumersRegard *)consumerRegard { + if (!_consumerRegard) { + _consumerRegard = [[YUMIExternalizeConsumersRegard alloc] init]; + _consumerRegard.delegate = self; + } + return _consumerRegard; +} + +- (YUMIPresentAbstractRegard *)presentAbstractRegard { + if (!_presentAbstractRegard) { + _presentAbstractRegard = [[YUMIPresentAbstractRegard alloc] init]; + _presentAbstractRegard.delegate = self; + } + return _presentAbstractRegard; +} + +- (YUMIPresentObstacleRegard *)presentObstacleRegard { + if (!_presentObstacleRegard) { + _presentObstacleRegard = [[YUMIPresentObstacleRegard alloc] init]; + _presentObstacleRegard.delegate = self; + } + return _presentObstacleRegard; +} + +- (UIStackView *)stackView { + if (!_stackView) { + _stackView = [[UIStackView alloc] init]; + _stackView.axis = UILayoutConstraintAxisVertical; + _stackView.distribution = UIStackViewDistributionFill; + _stackView.alignment = UIStackViewAlignmentFill; + _stackView.spacing = 0; + _stackView.backgroundColor = [UIColor clearColor]; + } + return _stackView; +} + +- (UIView *)bottomView { + if (!_bottomView) { + _bottomView = [[UIView alloc] init]; + _bottomView.backgroundColor = [UIColor clearColor]; + } + return _bottomView; +} + +- (YUMIGraffitiPresentRegard *)doodleRegard { + if (!_doodleRegard) { + _doodleRegard = [[YUMIGraffitiPresentRegard alloc] init]; + _doodleRegard.hidden = YES; + _doodleRegard.delegate = self; + } + return _doodleRegard; +} + +- (YUMIPresentIntelligenceGenreRegard *)intelligenceGenreRegard { + if (!_intelligenceGenreRegard) { + _intelligenceGenreRegard = [[YUMIPresentIntelligenceGenreRegard alloc] init]; + _intelligenceGenreRegard.delegate = self; + } + return _intelligenceGenreRegard; +} + +- (YUMIPresentFortunatePresentPingbackRegard *)fortunatePingencourageRegard { + if (!_fortunatePingencourageRegard) { + _fortunatePingencourageRegard = [[YUMIPresentFortunatePresentPingbackRegard alloc] init]; + _fortunatePingencourageRegard.delegate = self; + } + return _fortunatePingencourageRegard; +} + +- (YUMIPresentTwelveSatellitePingbackRegard *)constellationOriflamme { + if (!_constellationOriflamme) { + _constellationOriflamme = [[YUMIPresentTwelveSatellitePingbackRegard alloc] init]; + _constellationOriflamme.delegate = self; + } + return _constellationOriflamme; +} + +- (UIVisualEffectView *)impressionRegard { + if (!_impressionRegard) { + UIBlurEffect *beffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleDark]; + _impressionRegard = [[UIVisualEffectView alloc] initWithEffect:beffect]; + } + return _impressionRegard; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/SendGiftView/View/YUMIExternalizeConsumersRegard.h b/YuMi/Modules/YMRoom/View/SendGiftView/View/YUMIExternalizeConsumersRegard.h new file mode 100644 index 00000000..fbb8185b --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendGiftView/View/YUMIExternalizeConsumersRegard.h @@ -0,0 +1,23 @@ +// +// YMGiftUsersView.h +// YUMI +// +// Created by YUMI on 2021/11/9. +// + +#import +#import "YUMIDischargePresentRegard.h" +NS_ASSUME_NONNULL_BEGIN +@class YUMIExternalizeConsumerAbstractMatrix, YUMIExternalizeConsumersRegard; +@protocol FBCPresentConsumersRegardRepresendtation +- (void)yUMIPresentConsumersRegard:(YUMIExternalizeConsumersRegard *)view didSelectUsers:(NSArray *)selectUids; + +@end +@interface YUMIExternalizeConsumersRegard : UIView +@property (nonatomic,strong, readonly) NSMutableArray *chosenConsumerGarment; +@property (nonatomic,assign, readonly) BOOL isChosenEntirety; +- (void)prohibitipositionPresentConsumers:(NSArray *)users; +@property (nonatomic,weak) id delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/SendGiftView/View/YUMIExternalizeConsumersRegard.m b/YuMi/Modules/YMRoom/View/SendGiftView/View/YUMIExternalizeConsumersRegard.m new file mode 100644 index 00000000..9ae49df0 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendGiftView/View/YUMIExternalizeConsumersRegard.m @@ -0,0 +1,266 @@ +// +// YMGiftUsersView.m +// YUMI +// +// Created by YUMI on 2021/11/9. +// + +#import "YUMIExternalizeConsumersRegard.h" +#import +#import "AccountAbstractStorage.h" +#import "NetIndicateRegard.h" +#import "DJDKMIMOMColor.h" +#import "UIImage+Utils.h" +#import "NSArray+Safe.h" +#import "ConsumerAbstractMatrix.h" +#import "YUMIExternalizeConsumerAbstractMatrix.h" +#import "YUMIExternalizeConsumerAssembletionRegardElement.h" +@interface YUMIExternalizeConsumersRegard () +@property (nonatomic,strong) UIStackView *stackView; +@property (nonatomic,strong) UIButton *entiretyMiecreoscoopeBtuton; +@property (nonatomic,strong) UICollectionView *collectionView; +@property (nonatomic,strong) UIStackView *soleHierarchyRegard; +@property (nonatomic,strong) NetIndicateRegard *intelligenceportraitIndicateRegard; +@property (nonatomic,strong) UILabel *monicerSequencignation; +@property (nonatomic,strong) NSArray *consumerGarment; +@property (nonatomic,strong) NSMutableArray *chosenConsumerGarment; +@property (nonatomic,assign) BOOL isChosenEntirety; +@end + +@implementation YUMIExternalizeConsumersRegard + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} +#pragma mark - Response +- (void)entiretyMiecreoscoopeBtutonPerformance:(UIButton *)sender { + sender.selected = !sender.selected; + [self.consumerGarment enumerateObjectsUsingBlock:^(YUMIExternalizeConsumerAbstractMatrix * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + obj.isSelect = sender.selected; + NSString * selectUid = [NSString stringWithFormat:@"%ld", obj.uid]; + if (obj.isSelect) { + if (![self.chosenConsumerGarment containsObject:selectUid]) { + [self.chosenConsumerGarment addObject:selectUid]; + } + } else { + if ([self.chosenConsumerGarment containsObject:selectUid]) { + [self.chosenConsumerGarment removeObject:selectUid]; + } + } + }]; + self.isChosenEntirety = sender.selected; + [self.collectionView reloadData]; + + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIPresentConsumersRegard:didSelectUsers:)]) { + [self.delegate yUMIPresentConsumersRegard:self didSelectUsers:self.chosenConsumerGarment]; + } +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor];; + [self addSubview:self.stackView]; + [self addSubview:self.soleHierarchyRegard]; + [self.stackView addArrangedSubview:self.entiretyMiecreoscoopeBtuton]; + [self.stackView addArrangedSubview:self.collectionView]; + + [self.soleHierarchyRegard addArrangedSubview:self.intelligenceportraitIndicateRegard]; + [self.soleHierarchyRegard addArrangedSubview:self.monicerSequencignation]; + +} + +- (void)initChildLyRestrictions { + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(43 + 15 * 2); + }]; + + [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self).inset(15); + make.top.bottom.mas_equalTo(self); + }]; + + [self.soleHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self).inset(15); + make.top.bottom.mas_equalTo(self); + }]; + + [self.entiretyMiecreoscoopeBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(50, 28)); + }]; + + [self.collectionView mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(43); + }]; + + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(38, 38)); + }]; +} + +- (NSArray *)prohibiticoveryDischargePresentEntiretyConsumers:(NSArray *)users { + NSMutableArray * tempArray = [NSMutableArray array]; + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NSArray * newArray = [users sortedArrayUsingComparator:^NSComparisonResult(id _Nonnull obj1, id _Nonnull obj2) { + YUMIExternalizeConsumerAbstractMatrix * model1 = obj1; + YUMIExternalizeConsumerAbstractMatrix * model2 = obj2; + NSComparisonResult resuest = [model1.position compare:model2.position]; + return resuest; + }]; + + for (int i = 0; i < newArray.count; i++) { + YUMIExternalizeConsumerAbstractMatrix * userInfo = [newArray secureGroalTowardsIndictowardsrix1:i]; + if (userInfo && userInfo.uid > 0 && userInfo.uid != uid.integerValue) { + NSString * uid = [NSString stringWithFormat:@"%ld", userInfo.uid]; + if (userInfo.isSelect) { + [self.chosenConsumerGarment addObject:uid]; + } + [tempArray addObject:userInfo]; + } + } + return [tempArray copy]; +} + +#pragma mark - Public Method +- (void)prohibitipositionPresentConsumers:(NSArray *)users { + self.consumerGarment = [self prohibiticoveryDischargePresentEntiretyConsumers:users]; + if (users.count == 1 && users.firstObject.position == nil) { + YUMIExternalizeConsumerAbstractMatrix *userInfo = users.firstObject; + self.intelligenceportraitIndicateRegard.imageUrl = userInfo.avatar; + self.monicerSequencignation.text = userInfo.nick; + self.stackView.hidden = YES; + self.soleHierarchyRegard.hidden = NO; + } else { + [self.collectionView reloadData]; + self.soleHierarchyRegard.hidden = YES; + self.stackView.hidden = NO; + } +} + +#pragma mark - UICollectionViewDataSource And UICollectionViewDelegate +- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { + return self.consumerGarment.count; +} + +-(__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { + YUMIExternalizeConsumerAssembletionRegardElement * cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([YUMIExternalizeConsumerAssembletionRegardElement class]) forIndexPath:indexPath]; + YUMIExternalizeConsumerAbstractMatrix * queue = [self.consumerGarment secureGroalTowardsIndictowardsrix1:indexPath.row]; + cell.userInfo = queue; + return cell; +} + +- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath { + [collectionView deselectItemAtIndexPath:indexPath animated:YES]; + YUMIExternalizeConsumerAbstractMatrix * queue = [self.consumerGarment secureGroalTowardsIndictowardsrix1:indexPath.row]; + queue.isSelect = !queue.isSelect; + [self.collectionView reloadData]; + NSString * selectUid = [NSString stringWithFormat:@"%ld", queue.uid]; + if (queue.isSelect) { + [self.chosenConsumerGarment addObject:selectUid]; + } else { + if ([self.chosenConsumerGarment containsObject:selectUid]) { + [self.chosenConsumerGarment removeObject:selectUid]; + } + } + if (self.chosenConsumerGarment.count == self.consumerGarment.count) { + self.entiretyMiecreoscoopeBtuton.selected = YES; + self.isChosenEntirety = YES; + } else { + self.entiretyMiecreoscoopeBtuton.selected = NO; + self.isChosenEntirety = NO; + } + + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIPresentConsumersRegard:didSelectUsers:)]) { + [self.delegate yUMIPresentConsumersRegard:self didSelectUsers:self.chosenConsumerGarment]; + } +} +#pragma mark - Getters And Setters +- (UIStackView *)stackView { + if (!_stackView) { + _stackView = [[UIStackView alloc] init]; + _stackView.axis = UILayoutConstraintAxisHorizontal; + _stackView.distribution = UIStackViewDistributionFill; + _stackView.alignment = UIStackViewAlignmentCenter; + _stackView.spacing = 10; + } + return _stackView; +} + +- (UIStackView *)soleHierarchyRegard { + if (!_soleHierarchyRegard) { + _soleHierarchyRegard = [[UIStackView alloc] init]; + _soleHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _soleHierarchyRegard.distribution = UIStackViewDistributionFill; + _soleHierarchyRegard.alignment = UIStackViewAlignmentCenter; + _soleHierarchyRegard.spacing = 10; + } + return _soleHierarchyRegard; +} + +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _intelligenceportraitIndicateRegard.layer.cornerRadius = 38/2; + } + return _intelligenceportraitIndicateRegard; +} + +- (UILabel *)monicerSequencignation { + if (!_monicerSequencignation) { + _monicerSequencignation = [[UILabel alloc] init]; + _monicerSequencignation.font = [UIFont systemFontOfSize:15]; + _monicerSequencignation.textColor = [UIColor whiteColor]; + } + return _monicerSequencignation; +} + +- (UIButton *)entiretyMiecreoscoopeBtuton { + if (!_entiretyMiecreoscoopeBtuton) { + _entiretyMiecreoscoopeBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_entiretyMiecreoscoopeBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor revoctowardsionBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor revoctowardsionBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + [_entiretyMiecreoscoopeBtuton setTitleColor:[DJDKMIMOMColor aplictowardsionMainPrettify] forState:UIControlStateNormal]; + [_entiretyMiecreoscoopeBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateSelected]; + [_entiretyMiecreoscoopeBtuton setTitleColor:[DJDKMIMOMColor mainEssayPrettify] forState:UIControlStateSelected]; + [_entiretyMiecreoscoopeBtuton setTitle:YMLocalizedString(@"YUMI_Gift_Users_View_0") forState:UIControlStateSelected]; + [_entiretyMiecreoscoopeBtuton setTitle:YMLocalizedString(@"YUMI_Gift_Users_View_1") forState:UIControlStateNormal]; + _entiretyMiecreoscoopeBtuton.titleLabel.font = [UIFont systemFontOfSize:13]; + _entiretyMiecreoscoopeBtuton.layer.masksToBounds = YES; + _entiretyMiecreoscoopeBtuton.layer.cornerRadius = 28 /2; + [_entiretyMiecreoscoopeBtuton addTarget:self action:@selector(entiretyMiecreoscoopeBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _entiretyMiecreoscoopeBtuton; +} + +- (UICollectionView *)collectionView{ + if (!_collectionView) { + UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init]; + layout.scrollDirection = UICollectionViewScrollDirectionHorizontal; + layout.itemSize = CGSizeMake(38, 43); + layout.minimumInteritemSpacing = 4; + layout.sectionInset = UIEdgeInsetsMake(0, 0, 0,0); + _collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout]; + _collectionView.dataSource = self; + _collectionView.delegate = self; + _collectionView.backgroundColor = [UIColor clearColor]; + _collectionView.showsHorizontalScrollIndicator = NO; + [_collectionView registerClass:[YUMIExternalizeConsumerAssembletionRegardElement class] forCellWithReuseIdentifier:NSStringFromClass([YUMIExternalizeConsumerAssembletionRegardElement class])]; + } + return _collectionView; +} + +- (NSMutableArray *)chosenConsumerGarment { + if (!_chosenConsumerGarment) { + _chosenConsumerGarment = [NSMutableArray array]; + } + return _chosenConsumerGarment; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/SendGiftView/View/YUMIGraffitiPresentRegard.h b/YuMi/Modules/YMRoom/View/SendGiftView/View/YUMIGraffitiPresentRegard.h new file mode 100644 index 00000000..3d282ab1 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendGiftView/View/YUMIGraffitiPresentRegard.h @@ -0,0 +1,30 @@ +// +// YMGraffitiGiftView.h +// YUMI +// +// Created by YUMI on 2022/8/22. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class YUMIGraffitiPresentRegard; +@protocol FBCGraffitiPresentRegardRepresendtation +- (void)yUMIDoodlePresentRegard:(YUMIGraffitiPresentRegard *)view didClickChange:(UILabel *)sender; +- (void)yUMIDoodlePresentRegard:(YUMIGraffitiPresentRegard *)view didClickClose:(UIButton *)sender; +- (void)yUMIDoodlePresentRegard:(YUMIGraffitiPresentRegard *)view didDrawCompletion:(NSArray *)speckGarment; +@end + +@interface YUMIGraffitiPresentRegard : UIView +@property (nonatomic,strong) UIImage *image; +@property (nonatomic,weak) id delegate; +@property (nonatomic,assign) double price; +@property (nonatomic,strong) NSArray *brectifynessGarment; +@property (nonatomic,assign) NSInteger chosenCidDigital; + +- (void)prohibititinctTowardsoloudspeaker; +- (void)crtowardseValencyIdiosyncracy; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/SendGiftView/View/YUMIGraffitiPresentRegard.m b/YuMi/Modules/YMRoom/View/SendGiftView/View/YUMIGraffitiPresentRegard.m new file mode 100644 index 00000000..ab26a416 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendGiftView/View/YUMIGraffitiPresentRegard.m @@ -0,0 +1,394 @@ +// +// YMGraffitiGiftView.m +// YUMI +// +// Created by YUMI on 2022/8/22. +// + +#import "YUMIGraffitiPresentRegard.h" +#import +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" +#import "XNDJTBWGLoadingTool.h" + +@interface YUMIGraffitiPresentRegard () +@property (nonatomic,strong) UIView * contentView; +@property (nonatomic,strong) UIView * paletteRegard; +@property (nonatomic,strong) UIStackView *promptsHierarchyRegard; +@property (nonatomic,strong) UIImageView *handIndicateRegard; +@property (nonatomic,strong) UILabel *promptsSequencignation; +@property (nonatomic,strong) UIView * utensilRegard; +@property (nonatomic,strong) UILabel *titleLabel; +@property (nonatomic,strong) UIStackView *utensilHierarchyRegard; +@property (nonatomic,strong) UIButton *repealBtuton; +@property (nonatomic,strong) UIButton *representationBtuton; +@property (nonatomic,strong) UIButton *concludeBtuton; +@property (nonatomic,assign) CGPoint panSpeck; +@property (nonatomic,assign) CGPoint beginSpeck; +@property (nonatomic,assign) CGFloat step; +@property (nonatomic,assign) int index; +@property (nonatomic,assign) BOOL isExhibitLargestToast; +@property (nonatomic,strong) NSMutableArray *regardsGarment; +@property (nonatomic,strong) NSMutableArray *indicatrixGarment; +@property (nonatomic,strong) NSMutableArray *> *speckGarment; + +@end + +@implementation YUMIGraffitiPresentRegard + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.isExhibitLargestToast = YES; + self.step = 10; + UIPanGestureRecognizer * panGes = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panPerformance:)]; + [self addGestureRecognizer:panGes]; + self.backgroundColor = [UIColor clearColor]; + [self addSubview:self.contentView]; + + [self.contentView addSubview:self.promptsHierarchyRegard]; + [self.contentView addSubview:self.paletteRegard]; + [self.contentView addSubview:self.utensilRegard]; + + [self.promptsHierarchyRegard addArrangedSubview:self.handIndicateRegard]; + [self.promptsHierarchyRegard addArrangedSubview:self.promptsSequencignation]; + + [self.utensilRegard addSubview:self.titleLabel]; + [self.utensilRegard addSubview:self.utensilHierarchyRegard]; + + [self.utensilHierarchyRegard addArrangedSubview:self.repealBtuton]; + [self.utensilHierarchyRegard addArrangedSubview:self.representationBtuton]; + [self.utensilHierarchyRegard addArrangedSubview:self.concludeBtuton]; +} + +- (void)initChildLyRestrictions { + CGFloat avatarHeight = (43 + 15 * 2); + CGFloat bottomHeight = (45); + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(KScreenWidth); + make.height.mas_equalTo(KScreenHeight - avatarHeight - bottomHeight); + }]; + + [self.contentView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self); + }]; + + + [self.promptsHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.contentView); + make.width.mas_equalTo(KScreenWidth); + }]; + + [self.paletteRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.contentView).offset(kSafeAreaTopHeight); + make.left.right.mas_equalTo(self.contentView); + make.bottom.mas_equalTo(self.utensilRegard.mas_top); + }]; + + [self.handIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(78, 93)); + }]; + + + [self.utensilRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.bottom.left.right.mas_equalTo(self.contentView); + make.height.mas_equalTo(56); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.utensilRegard).offset(15); + make.centerY.mas_equalTo(self.utensilRegard); + }]; + + [self.utensilHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self.utensilRegard).offset(-15); + make.height.mas_equalTo(22); + make.centerY.mas_equalTo(self.utensilRegard); + }]; + + [self.repealBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(22); + }]; + + [self.representationBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(22); + }]; + + [self.concludeBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(22); + }]; +} + +- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { + self.promptsHierarchyRegard.hidden = YES; + UITouch *touch = touches.anyObject; + CGPoint point = [touch locationInView:self.contentView]; + self.beginSpeck = point; +} + +- (void)panPerformance:(UIPanGestureRecognizer *)tap { + if (self.speckGarment.count >= 300) { + if (self.isExhibitLargestToast) { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:YMLocalizedString(@"YUMI_Graffiti_Gift_View_0")]; + self.isExhibitLargestToast = YES; + } + return; + } + + if (tap.state == UIGestureRecognizerStateBegan) { + [self.indicatrixGarment addObject:[NSNumber numberWithInteger:self.regardsGarment.count]]; + } else if(tap.state == UIGestureRecognizerStateEnded) { + self.isExhibitLargestToast = YES; + } + CGPoint point = [tap translationInView:self.contentView]; + CGFloat dx = [self mietyAbs:point.x - self.panSpeck.x]; + CGFloat dy = [self mietyAbs:point.y - self.panSpeck.y]; + CGPoint drawPoint = CGPointMake(self.beginSpeck.x + point.x , self.beginSpeck.y + point.y); + if ((dx * dx + dy * dy) > 2 * self.step * self.step) { + [self accelertowardseChildLy:drawPoint]; + self.panSpeck = point; + } +} + +- (int)mietyAbs:(int)num { + if (num >= 0) { + return num; + } + return -num; +} + + +- (void)accelertowardseChildLy:(CGPoint)point { + UIImageView * imageView = [[UIImageView alloc] init]; + imageView.contentMode = UIViewContentModeScaleAspectFill; + imageView.layer.masksToBounds = YES; + imageView.image = self.image; + imageView.frame = CGRectMake(point.x, point.y, 20, 20); + [self.paletteRegard addSubview:imageView]; + [self.regardsGarment addObject:imageView]; + [self.speckGarment addObject:@[@([self diversifictowardsionExtentsPalette:point.x]), @([self diversifictowardsionAltitudePalette:point.y])]]; + [self crtowardseValencyIdiosyncracy]; + if (self.speckGarment.count >= 10 && self.delegate && [self.delegate respondsToSelector:@selector(yUMIDoodlePresentRegard:didDrawCompletion:)]) { + [self.delegate yUMIDoodlePresentRegard:self didDrawCompletion:self.speckGarment]; + } +} + +- (NSInteger)diversifictowardsionExtentsPalette:(CGFloat)number { + return number / KScreenWidth * 1000; +} + +- (NSInteger)diversifictowardsionAltitudePalette:(CGFloat)number { + return number / KScreenHeight * 1000; +} + +- (void)prohibititinctTowardsoloudspeaker { + [self.regardsGarment makeObjectsPerformSelector:@selector(removeFromSuperview)]; + [self.regardsGarment removeAllObjects]; + [self.speckGarment removeAllObjects]; + [self.indicatrixGarment removeAllObjects]; +} +#pragma mark - Event Response + +- (void)repealBtutonPerformance:(UIButton *)sender { + NSInteger index = [self.indicatrixGarment lastObject].integerValue; + if (index < self.regardsGarment.count) { + NSArray * array = [self.regardsGarment subarrayWithRange:NSMakeRange(index, self.regardsGarment.count - index)]; + NSArray * array2 = [self.speckGarment subarrayWithRange:NSMakeRange(index, self.speckGarment.count - index)]; + [self.speckGarment removeObjectsInArray:array2]; + [self.regardsGarment removeObjectsInArray:array]; + if (array.count) { + [array makeObjectsPerformSelector:@selector(removeFromSuperview)]; + } + if (self.indicatrixGarment.count > 0) { + [self.indicatrixGarment removeLastObject]; + } + [self crtowardseValencyIdiosyncracy]; + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIDoodlePresentRegard:didDrawCompletion:)]) { + [self.delegate yUMIDoodlePresentRegard:self didDrawCompletion:self.speckGarment]; + } + } +} + +- (void)representtowardsionBtutonPerformance:(UIButton *)sender { + [self prohibititinctTowardsoloudspeaker]; + [self crtowardseValencyIdiosyncracy]; + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIDoodlePresentRegard:didDrawCompletion:)]) { + [self.delegate yUMIDoodlePresentRegard:self didDrawCompletion:self.speckGarment]; + } +} + +- (void)concludeBtutonPerformance:(UIButton *)sender { + [self prohibititinctTowardsoloudspeaker]; + [self crtowardseValencyIdiosyncracy]; + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIDoodlePresentRegard:didDrawCompletion:)]) { + [self.delegate yUMIDoodlePresentRegard:self didDrawCompletion:self.speckGarment]; + } + + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIDoodlePresentRegard:didClickClose:)]) { + [self.delegate yUMIDoodlePresentRegard:self didClickClose:sender]; + } +} + +- (void)crtowardseValencyIdiosyncracy { + if (self.regardsGarment.count < 10) { + NSString * title = YMLocalizedString(@"YUMI_Graffiti_Gift_View_1"); + NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] initWithString:title attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:14], NSForegroundColorAttributeName:[UIColor whiteColor]}]; + self.titleLabel.attributedText = attribute; + } else { + NSInteger number = self.chosenCidDigital > 0 ? self.chosenCidDigital : 0; + NSString * count = [NSString stringWithFormat:@"%ld", self.regardsGarment.count]; + NSString * price = [NSString stringWithFormat:@"%.0f", self.regardsGarment.count * self.price * number]; + NSString * title = [NSString stringWithFormat:YMLocalizedString(@"YUMI_Graffiti_Gift_View_2"), count, price]; + NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] initWithString:title attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:14], NSForegroundColorAttributeName:[UIColor whiteColor]}]; + [attribute addAttribute:NSForegroundColorAttributeName value:[DJDKMIMOMColor aplictowardsionMainPrettify] range:[title rangeOfString:count]]; + [attribute addAttribute:NSForegroundColorAttributeName value:[DJDKMIMOMColor aplictowardsionMainPrettify] range:[title rangeOfString:price]]; + self.titleLabel.attributedText = attribute; + } + +} + +#pragma mark - Getters And Setters +- (void)setChosenCidDigital:(NSInteger)chosenCidDigital { + _chosenCidDigital = chosenCidDigital; + [self crtowardseValencyIdiosyncracy]; +} + +- (UIView *)contentView { + if (!_contentView) { + _contentView = [[UIView alloc] init]; + _contentView.backgroundColor = UIColorRGBAlpha(0x000000, 0.7); + } + return _contentView; +} + +- (UIView *)paletteRegard { + if (!_paletteRegard) { + _paletteRegard = [[UIView alloc] init]; + _paletteRegard.backgroundColor = [UIColor clearColor]; + _paletteRegard.layer.masksToBounds = YES; + } + return _paletteRegard; +} + +- (UIStackView *)promptsHierarchyRegard { + if (!_promptsHierarchyRegard) { + _promptsHierarchyRegard = [[UIStackView alloc] init]; + _promptsHierarchyRegard.axis = UILayoutConstraintAxisVertical; + _promptsHierarchyRegard.distribution = UIStackViewDistributionFill; + _promptsHierarchyRegard.alignment = UIStackViewAlignmentCenter; + _promptsHierarchyRegard.spacing = 17; + } + return _promptsHierarchyRegard; +} + +- (UIImageView *)handIndicateRegard { + if (!_handIndicateRegard) { + _handIndicateRegard = [[UIImageView alloc] init]; + _handIndicateRegard.userInteractionEnabled = YES; + _handIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_present_graffiti_hand"]; + } + return _handIndicateRegard; +} + +- (UILabel *)promptsSequencignation { + if (!_promptsSequencignation) { + _promptsSequencignation = [[UILabel alloc] init]; + _promptsSequencignation.font = [UIFont systemFontOfSize:14]; + _promptsSequencignation.textColor = [DJDKMIMOMColor essayTertiusPrettify]; + _promptsSequencignation.text = YMLocalizedString(@"YUMI_Graffiti_Gift_View_3"); + } + return _promptsSequencignation; +} + +- (UIView *)utensilRegard { + if (!_utensilRegard) { + _utensilRegard = [[UIView alloc] init]; + _utensilRegard.backgroundColor = UIColorRGBAlpha(0xFFFFFF, 0.2); + CAShapeLayer * layer = [CAShapeLayer layer]; + layer.path = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, KScreenWidth, 56) byRoundingCorners:UIRectCornerTopLeft | UIRectCornerTopRight cornerRadii:CGSizeMake(8, 8)].CGPath; + _utensilRegard.layer.mask = layer; + } + return _utensilRegard; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.font = [UIFont systemFontOfSize:14]; + _titleLabel.textColor = [UIColor whiteColor]; + _titleLabel.text = YMLocalizedString(@"YUMI_Graffiti_Gift_View_4"); + } + return _titleLabel; +} + +- (UIStackView *)utensilHierarchyRegard { + if (!_utensilHierarchyRegard) { + _utensilHierarchyRegard = [[UIStackView alloc] init]; + _utensilHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _utensilHierarchyRegard.distribution = UIStackViewDistributionFill; + _utensilHierarchyRegard.alignment = UIStackViewAlignmentCenter; + _utensilHierarchyRegard.spacing = 12; + } + return _utensilHierarchyRegard; +} + +- (UIButton *)repealBtuton { + if (!_repealBtuton) { + _repealBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_repealBtuton setImage:[UIImage imageNamed:@"yumi_scope_present_graffiti_repeal"] forState:UIControlStateNormal]; + [_repealBtuton setImage:[UIImage imageNamed:@"yumi_scope_present_graffiti_repeal"] forState:UIControlStateSelected]; + [_repealBtuton addTarget:self action:@selector(repealBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _repealBtuton; +} + +- (UIButton *)representationBtuton { + if (!_representationBtuton) { + _representationBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_representationBtuton setImage:[UIImage imageNamed:@"yumi_scope_present_graffiti_delete"] forState:UIControlStateNormal]; + [_representationBtuton setImage:[UIImage imageNamed:@"yumi_scope_present_graffiti_delete"] forState:UIControlStateSelected]; + [_representationBtuton addTarget:self action:@selector(representtowardsionBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _representationBtuton; +} + +- (UIButton *)concludeBtuton { + if (!_concludeBtuton) { + _concludeBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_concludeBtuton setImage:[UIImage imageNamed:@"yumi_scope_present_graffiti_close"] forState:UIControlStateNormal]; + [_concludeBtuton setImage:[UIImage imageNamed:@"yumi_scope_present_graffiti_close"] forState:UIControlStateSelected]; + [_concludeBtuton addTarget:self action:@selector(concludeBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _concludeBtuton; +} + +- (NSMutableArray *)indicatrixGarment { + if (!_indicatrixGarment) { + _indicatrixGarment = [NSMutableArray array]; + } + return _indicatrixGarment; +} + +- (NSMutableArray *)speckGarment { + if (!_speckGarment) { + _speckGarment = [NSMutableArray array]; + } + return _speckGarment; +} + +- (NSMutableArray *)regardsGarment { + if (!_regardsGarment) { + _regardsGarment = [NSMutableArray array]; + } + return _regardsGarment; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/SendGiftView/View/YUMIPresentAbstractRegard.h b/YuMi/Modules/YMRoom/View/SendGiftView/View/YUMIPresentAbstractRegard.h new file mode 100644 index 00000000..78e29e0c --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendGiftView/View/YUMIPresentAbstractRegard.h @@ -0,0 +1,50 @@ +// +// YMGiftMiddleView.h +// YUMI +// +// Created by YUMI on 2021/11/9. +// + +#import +#import "YUMIDischargePresentRegard.h" +#import "ChamberAbstractMatrix.h" +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSInteger, PresentSegmentGenre) { + PresentSegmentGenre_Normal = 1, + PresentSegmentGenre_Lucky, + PresentSegmentGenre_Noble, + PresentSegmentGenre_WeekStar, + PresentSegmentGenre_Pack, + PresentSegmentGenre_Graffiti, + PresentSegmentGenre_Anchor, + PresentSegmentGenre_Punish, +}; + + +@class PresentAbstractMatrix,YUMIPresentAbstractRegard, PresentAchieveAbstractMatrix; + +@protocol FBCPresentAbstractRegardRepresendtation + +- (void)yUMIPresentAbstractRegard:(YUMIPresentAbstractRegard *)view didClickSegment:(PresentSegmentGenre)type; + +- (void)yUMIPresentAbstractRegard:(YUMIPresentAbstractRegard *)view didClickItem:(PresentAbstractMatrix *)info type:(PresentSegmentGenre)type; + +@end + +@interface YUMIPresentAbstractRegard : UIView +@property (nonatomic,assign) DischargePresentGenre usingdeparatmentGenre; +@property (nonatomic,strong) NSArray *ordinaryDerivationGarment; +@property (nonatomic,strong) NSArray *impactDerivationGarment; +- (void)refurbishImpactProvenience:(PresentAchieveAbstractMatrix *)giftReceiveInfo numberUser:(NSInteger)numberUser; +@property (nonatomic,weak) id delegate; +@property (nonatomic,strong,readonly) PresentAbstractMatrix *lastChosenPresent; +@property (nonatomic, assign) NSInteger curConsumerMagnificentPrototype; + +@property (nonatomic, copy) NSString *defaultChosenPresentId; +@property (nonatomic,assign) ChamberGenre roomType; +- (void)presentIntelligenceGenreHadDiversifictowardsion:(NSInteger)headType; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/SendGiftView/View/YUMIPresentAbstractRegard.m b/YuMi/Modules/YMRoom/View/SendGiftView/View/YUMIPresentAbstractRegard.m new file mode 100644 index 00000000..a8338912 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendGiftView/View/YUMIPresentAbstractRegard.m @@ -0,0 +1,745 @@ +// +// YMGiftMiddleView.m +// YUMI +// +// Created by YUMI on 2021/11/9. +// + +#import "YUMIPresentAbstractRegard.h" +#import +#import "YUMIMacroUitls.h" +#import "YUMIHtmlUrl.h" +#import "ThemeColor+SendGift.h" +#import "NSArray+Safe.h" +#import "UIImage+Utils.h" +#import "PresentAbstractMatrix.h" +#import "PresentAchieveAbstractMatrix.h" +#import "ChamberAbstractMatrix.h" +#import "YUMIPresentProvisionAssembletionRegardElement.h" +#import "YUMIPresentDispossessAssembletionRegardElement.h" +#import "YUMIPresentWeekSatelliteAssembletionRegardElement.h" +#import "YUMIPresentAssembletionRegardFlowProgramming.h" + +static NSString *kSendGiftViewHidePunishNewIcon = @"kSendGiftViewHidePunishNewIcon"; + +@interface YUMIPresentAbstractRegard () +@property (nonatomic,strong) UIScrollView *scrollView; +@property (nonatomic,strong) UIStackView *segmentHierarchyRegard; +@property (nonatomic,strong) UIImageView *segmentBackgroundRegard; +@property (nonatomic,strong) UIButton *ordinaryPresentBtuton; +@property (nonatomic,strong) UIButton *impactPresentBtuton; +@property (nonatomic,strong) UIButton *fortunatePresentBtuton; +@property (nonatomic, strong) UIButton *zhouSatelliteBtuton; +@property (nonatomic,strong) UIButton *doodleBtuton; +@property (nonatomic, strong) UIButton *punishBtuton; +@property (nonatomic, strong) UIImageView *freshFigureIndicate; +@property (nonatomic,strong) UIButton *kellegBtuton; +@property (nonatomic,strong) UILabel *generalBWSttessSequencignation; +@property (nonatomic,strong) UIStackView *presentHierarchyRegard; +@property (nonatomic,strong) UICollectionView *presentassembletionRegard; +@property (nonatomic, strong) UIPageControl *periodGovernancer; +@property (nonatomic,strong) NSMutableArray *datasource; +@property (nonatomic,strong) NSArray *presentGarment; +@property (nonatomic,strong) NSArray *presentFortunateGarment; +@property (nonatomic, strong) NSArray *presentMagnificentGarment; +@property (nonatomic, strong) NSArray *presentZhouSatelliteGarment; +@property (nonatomic,strong) NSArray *presentImpactGarment; +@property (nonatomic,strong) NSArray *presentDoodleGarment; +@property (nonatomic,strong) NSArray *kellegGarment; +@property (nonatomic, strong) NSArray *punishGarment; +@property (nonatomic,strong) NSAttributedString *generalAttribute; +@property (nonatomic,assign) PresentSegmentGenre segmentType; +@property (nonatomic,strong) PresentAbstractMatrix *lastChosenPresent; + +@property (nonatomic, assign) NSInteger chosenIndicatrix; +@property (nonatomic,assign) NSInteger chosenUniversalPeriod; +@end + +@implementation YUMIPresentAbstractRegard + +- (instancetype)initWithFrame:(CGRect)frame +{ + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Response +- (void)didTicktackPresentMaintainortionPerformance:(UIButton *)sender { + self.ordinaryPresentBtuton.selected = NO; + self.fortunatePresentBtuton.selected = NO; + self.impactPresentBtuton.selected = NO; + self.zhouSatelliteBtuton.selected = NO; + self.doodleBtuton.selected = NO; + self.kellegBtuton.selected = NO; + self.punishBtuton.selected = NO; + sender.selected = !sender.selected; + self.segmentType = sender.tag; +} + +#pragma mark - Public Method +- (void)refurbishImpactProvenience:(PresentAchieveAbstractMatrix *)giftReceiveInfo numberUser:(NSInteger)numberUser { + PresentAbstractMatrix * giftInfo = [self prohibiticoveryPresentAbstractByPresentId:giftReceiveInfo.giftId.integerValue]; + giftInfo.count -= giftReceiveInfo.giftNum * numberUser; + if (giftInfo.count == 0) { + [self.datasource removeObject:giftInfo]; + } + [self.presentassembletionRegard reloadData]; +} + +- (void)presentIntelligenceGenreHadDiversifictowardsion:(NSInteger)headType { + if (headType == 1) { + [self.doodleBtuton removeFromSuperview]; + [self.punishBtuton removeFromSuperview]; + [self.freshFigureIndicate removeFromSuperview]; + self.freshFigureIndicate = nil; + [self.segmentHierarchyRegard addArrangedSubview:self.ordinaryPresentBtuton]; + [self.segmentHierarchyRegard addArrangedSubview:self.fortunatePresentBtuton]; + [self.segmentHierarchyRegard addArrangedSubview:self.zhouSatelliteBtuton]; + if(self.roomType == ChamberGenre_Anchor) { + [self.segmentHierarchyRegard addArrangedSubview:self.kellegBtuton]; + [self didTicktackPresentMaintainortionPerformance:self.kellegBtuton]; + } + if(self.segmentType != PresentSegmentGenre_Pack) { + [self didTicktackPresentMaintainortionPerformance:self.ordinaryPresentBtuton]; + } + } else { + [self.ordinaryPresentBtuton removeFromSuperview]; + [self.fortunatePresentBtuton removeFromSuperview]; + [self.zhouSatelliteBtuton removeFromSuperview]; + [self.kellegBtuton removeFromSuperview]; + [self.segmentHierarchyRegard addArrangedSubview:self.doodleBtuton]; + [self.segmentHierarchyRegard addArrangedSubview:self.punishBtuton]; + BOOL hiden = [[NSUserDefaults standardUserDefaults] boolForKey:kSendGiftViewHidePunishNewIcon]; + if(!hiden) { + [self addSubview:self.freshFigureIndicate]; + [self.freshFigureIndicate mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.punishBtuton.mas_right).mas_offset(-5); + make.bottom.mas_equalTo(self.punishBtuton.mas_top).mas_offset(5); + make.size.mas_equalTo(CGSizeMake(24, 10)); + }]; + } + if(self.segmentType != PresentSegmentGenre_Pack) { + [self didTicktackPresentMaintainortionPerformance:self.doodleBtuton]; + } + } +} + + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.segmentBackgroundRegard]; + [self addSubview:self.scrollView]; + [self addSubview:self.presentHierarchyRegard]; + [self addSubview:self.impactPresentBtuton]; + [self addSubview:self.generalBWSttessSequencignation]; + [self.scrollView addSubview:self.segmentHierarchyRegard]; + + [self.segmentHierarchyRegard addArrangedSubview:self.ordinaryPresentBtuton]; + [self.segmentHierarchyRegard addArrangedSubview:self.fortunatePresentBtuton]; + [self.segmentHierarchyRegard addArrangedSubview:self.zhouSatelliteBtuton]; + [self.segmentHierarchyRegard addArrangedSubview:self.kellegBtuton]; + + [self.presentHierarchyRegard addArrangedSubview:self.presentassembletionRegard]; + [self.presentHierarchyRegard addArrangedSubview:self.periodGovernancer]; +} + +- (void)initChildLyRestrictions { + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(44 + 108 * 2 + 10 + 10 + 15); + }]; + + [self.segmentHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.bottom.leading.trailing.height.mas_equalTo(self.scrollView); + }]; + + [self.segmentBackgroundRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self); + make.height.mas_equalTo(self.scrollView); + }]; + + [self.scrollView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self).mas_offset(15); + make.right.mas_equalTo(self.impactPresentBtuton.mas_left); + make.top.mas_equalTo(self); + make.height.mas_equalTo(44); + }]; + [self.impactPresentBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(-15); + make.centerY.height.mas_equalTo(self.scrollView); + make.width.mas_equalTo(30); + }]; + [self.generalBWSttessSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self.impactPresentBtuton.mas_left).mas_offset(-6); + make.centerY.mas_equalTo(self.impactPresentBtuton); + }]; + + [self.presentHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.segmentHierarchyRegard.mas_bottom).offset(10); + make.left.right.mas_equalTo(self); + make.height.mas_equalTo(108 * 2 + 20); + }]; + + + [self.periodGovernancer mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(10); + }]; +} + +- (void)replacementChosenPresent:(NSArray *)array { + for (PresentAbstractMatrix * gift in array) { + gift.isSelected = NO; + } +} + +- (void)produceImpactGeneralBWSttessIdiosyncracy { + __block NSInteger giftTotal = 0; + [self.impactDerivationGarment enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if ([obj isKindOfClass:PresentAbstractMatrix.class]) { + PresentAbstractMatrix *gift = (PresentAbstractMatrix *)obj; + giftTotal += gift.count * gift.goldPrice; + } + }]; + NSMutableAttributedString *str = [[NSMutableAttributedString alloc] initWithString:@"总价值:" attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:10],NSForegroundColorAttributeName:[DJDKMIMOMColor essayTertiusPrettify]}]; + [str appendAttributedString:[[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:@"%@",[self computtowardsionInitialiseTangerineBWStt:giftTotal]] attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:12],NSForegroundColorAttributeName:[DJDKMIMOMColor aplictowardsionMainPrettify]}]]; + NSTextAttachment *attachImage = [[NSTextAttachment alloc] init]; + attachImage.image = [UIImage imageNamed:@"yumi_present_diamond"]; + attachImage.bounds = CGRectMake(0, 0, 9, 9); + [str appendAttributedString:[[NSMutableAttributedString alloc] initWithAttributedString:[NSAttributedString attributedStringWithAttachment:attachImage]]]; + self.generalAttribute = str; +} + + +- (NSString *)computtowardsionInitialiseTangerineBWStt:(NSInteger)number { + NSString *numStr = [NSString stringWithFormat:@"%li", number]; + NSInteger num = number; + if (num > 99990000) { + numStr = @"9999W+"; + } else if (num >= 10000) { + CGFloat numF = num / 10000.0; + numStr = [NSString stringWithFormat:@"%.2fW+", numF]; + } + return numStr; +} + +- (void)castleChosenPresent:(PresentAbstractMatrix *)giftInfo { + self.lastChosenPresent = giftInfo; + if (self.segmentType == PresentSegmentGenre_Pack) { + giftInfo.sourceType = PresentSourceGenre_Pack; + } else { + giftInfo.sourceType = PresentSourceGenre_Normal; + } + giftInfo.isSelected = YES; +} + +- (PresentAbstractMatrix *)prohibiticoveryPresentAbstractByPresentId:(NSInteger)giftId { + for (int i=0; i 0) { + [self replacementChosenPresent:self.datasource]; + PresentAbstractMatrix * giftInfo= [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.item]; + [self castleChosenPresent:giftInfo]; + [self.presentassembletionRegard reloadData]; + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIPresentAbstractRegard:didClickItem:type:)]) { + [self.delegate yUMIPresentAbstractRegard:self didClickItem:giftInfo type:self.segmentType]; + } + } +} + +#pragma mark - FBCPresentWeekStarAssembletionRegardElementRepresendtation +- (void)yUMIPresentZhouStowardselliteAssembletionRegardElement:(YUMIPresentWeekSatelliteAssembletionRegardElement *)view didSelectGift:(PresentAbstractMatrix *)giftInfo { + [self castleChosenPresent:giftInfo]; +} + +#pragma mark - Getters And Setters +- (void)setRoomType:(ChamberGenre)roomType { + _roomType = roomType; + if (_roomType == ChamberGenre_Anchor) { + self.kellegBtuton.hidden = NO; + } +} + + +- (void)setSegmentType:(PresentSegmentGenre)segmentType { + if (segmentType == _segmentType) { + return; + } + [_datasource removeAllObjects]; + _segmentType = segmentType; + [self replacementChosenPresent:self.presentGarment]; + [self replacementChosenPresent:self.impactDerivationGarment]; + [self replacementChosenPresent:self.presentFortunateGarment]; + [self replacementChosenPresent:self.presentMagnificentGarment]; + [self replacementChosenPresent:self.presentZhouSatelliteGarment]; + [self replacementChosenPresent:self.presentDoodleGarment]; + [self replacementChosenPresent:self.kellegGarment]; + [self replacementChosenPresent:self.punishGarment]; + self.generalBWSttessSequencignation.hidden = YES; + switch (_segmentType) { + case PresentSegmentGenre_Normal: + [self.datasource addObjectsFromArray:self.presentGarment]; + break; + case PresentSegmentGenre_Lucky: + [self.datasource addObjectsFromArray:self.presentFortunateGarment]; + break; + case PresentSegmentGenre_Noble: { + [self.datasource addObjectsFromArray:self.presentMagnificentGarment]; + } + break; + case PresentSegmentGenre_WeekStar: { + [self.datasource addObjectsFromArray:self.presentZhouSatelliteGarment]; + } + break; + case PresentSegmentGenre_Pack: + { + [self.datasource addObjectsFromArray:self.impactDerivationGarment]; + self.generalBWSttessSequencignation.hidden = NO; + self.generalBWSttessSequencignation.attributedText= self.generalAttribute; + } + break; + case PresentSegmentGenre_Graffiti: + [self.datasource addObjectsFromArray:self.presentDoodleGarment]; + break; + case PresentSegmentGenre_Anchor: + [self.datasource addObjectsFromArray:self.kellegGarment]; + break; + case PresentSegmentGenre_Punish: + { + [self.datasource addObjectsFromArray:self.punishGarment]; + [self.freshFigureIndicate removeFromSuperview]; + self.freshFigureIndicate = nil; + [[NSUserDefaults standardUserDefaults] setBool:YES forKey:kSendGiftViewHidePunishNewIcon]; + [[NSUserDefaults standardUserDefaults] synchronize]; + } + break; + default: + [self.datasource addObjectsFromArray:self.presentGarment]; + break; + } + NSInteger currentPage = 0; + if (self.datasource.count > 0) { + if (self.defaultChosenPresentId.length && (self.segmentType == PresentSegmentGenre_Normal | self.segmentType == PresentSegmentGenre_Pack)) { + for (int i = 0 ; i *)datasource { + if (!_datasource) { + _datasource = [NSMutableArray array]; + } + return _datasource; +} + +- (UIScrollView *)scrollView { + if (!_scrollView) { + _scrollView = [[UIScrollView alloc] init]; + _scrollView.backgroundColor = [UIColor clearColor]; + _scrollView.showsHorizontalScrollIndicator = NO; + } + return _scrollView; +} + +- (UIImageView *)segmentBackgroundRegard { + if (!_segmentBackgroundRegard) { + _segmentBackgroundRegard = [[UIImageView alloc] init]; + _segmentBackgroundRegard.userInteractionEnabled = YES; + _segmentBackgroundRegard.contentMode = UIViewContentModeScaleAspectFill; + _segmentBackgroundRegard.image = [UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor colorAboutHexBWSttr:@"#E5FFFF"], [DJDKMIMOMColor colorAboutHexBWSttr:@"#FFFFFF"]] gradientType:GradientGenreTopToBottom imgSize:CGSizeMake(375, 44)]; + _segmentBackgroundRegard.hidden = YES; + } + return _segmentBackgroundRegard; +} + + +@end diff --git a/YuMi/Modules/YMRoom/View/SendGiftView/View/YUMIPresentComputationRegard.h b/YuMi/Modules/YMRoom/View/SendGiftView/View/YUMIPresentComputationRegard.h new file mode 100644 index 00000000..2b1305dd --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendGiftView/View/YUMIPresentComputationRegard.h @@ -0,0 +1,23 @@ +// +// YMGiftCountView.h +// YUMI +// +// Created by YUMI on 2021/11/11. +// + +#import +#import "YUMIPresentAbstractRegard.h" +NS_ASSUME_NONNULL_BEGIN +@class YUMIPresentComputationRegard,YUMIPresentComputationMatrix; +@protocol FBCPresentCountRegardRepresendtation + +- (void)yUMIPresentComputtowardsionRegard:(YUMIPresentComputationRegard *)view didClickItem:(YUMIPresentComputationMatrix *)model; + +@end + +@interface YUMIPresentComputationRegard : UIView +@property (nonatomic,weak) id delegate; +@property (nonatomic,assign) PresentSegmentGenre segmentType; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/SendGiftView/View/YUMIPresentComputationRegard.m b/YuMi/Modules/YMRoom/View/SendGiftView/View/YUMIPresentComputationRegard.m new file mode 100644 index 00000000..9c37eeb9 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendGiftView/View/YUMIPresentComputationRegard.m @@ -0,0 +1,154 @@ +// +// YMGiftCountView.m +// YUMI +// +// Created by YUMI on 2021/11/11. +// + +#import "YUMIPresentComputationRegard.h" +#import +#import "NSArray+Safe.h" +#import "YUMIPresentComputationMatrix.h" +#import "YUMIPresentComputationAssembletionRegardElement.h" +@interface YUMIPresentComputationRegard () +@property (nonatomic,strong) UICollectionView *computationAssembletionRegard; +@property (nonatomic, strong) NSArray *presentComputationGarment; +@property (nonatomic,strong) UIVisualEffectView *impressionRegard; +@end + +@implementation YUMIPresentComputationRegard + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + + self.layer.cornerRadius = 12; + self.layer.masksToBounds = YES; + UIBlurEffect *blurEffect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleDark]; + UIVisualEffectView *impressionRegard = [[UIVisualEffectView alloc] initWithEffect:blurEffect]; + self.impressionRegard = impressionRegard; + [self addSubview:impressionRegard]; + self.presentComputationGarment = [self ordinaryPresentComputtowardsionTowardsoloudspeakerGarment]; + [self addSubview:self.computationAssembletionRegard]; + +} + +- (void)initChildLyRestrictions { + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(0); + }]; + + [self.impressionRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self); + }]; + + [self.computationAssembletionRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self); + }]; +} + +- (NSArray *)ordinaryPresentComputtowardsionTowardsoloudspeakerGarment { + NSMutableArray * datasource = [NSMutableArray array]; + YUMIPresentComputationMatrix *_otherDic = [YUMIPresentComputationMatrix initComputtowardsionMtowardsrix:YMLocalizedString(@"YUMI_Gift_Count_View_0") giftNumber:@""]; + _otherDic.isCustomCount = YES; + NSArray * array = [self commonPresentComputtowardsionTowardsoloudspeakerGarment]; + [datasource addObjectsFromArray:array]; + [datasource addObject:_otherDic]; + return [datasource copy]; +} + +- (NSArray *)impactPresentComputtowardsionTowardsoloudspeakerGarment { + NSMutableArray * datasource = [NSMutableArray array]; + YUMIPresentComputationMatrix *_allDic = [YUMIPresentComputationMatrix initComputtowardsionMtowardsrix:YMLocalizedString(@"YUMI_Gift_Count_View_1") giftNumber:@"all"]; + _allDic.isTotal = YES; + + YUMIPresentComputationMatrix *_otherDic = [YUMIPresentComputationMatrix initComputtowardsionMtowardsrix:YMLocalizedString(@"YUMI_Gift_Count_View_2") giftNumber:@""]; + _otherDic.isCustomCount = YES; + NSArray * array = [self commonPresentComputtowardsionTowardsoloudspeakerGarment]; + [datasource addObjectsFromArray:array]; + [datasource addObject:_allDic]; + [datasource addObject:_otherDic]; + return [datasource copy]; +} + +- (NSArray *)commonPresentComputtowardsionTowardsoloudspeakerGarment { + YUMIPresentComputationMatrix *_1Dic = [YUMIPresentComputationMatrix initComputtowardsionMtowardsrix:YMLocalizedString(@"YUMI_Gift_Count_View_3") giftNumber:@"1"]; + YUMIPresentComputationMatrix *_10Dic = [YUMIPresentComputationMatrix initComputtowardsionMtowardsrix:YMLocalizedString(@"YUMI_Gift_Count_View_4") giftNumber:@"10"]; + YUMIPresentComputationMatrix *_66Dic = [YUMIPresentComputationMatrix initComputtowardsionMtowardsrix:YMLocalizedString(@"YUMI_Gift_Count_View_5") giftNumber:@"66"]; + YUMIPresentComputationMatrix *_99Dic = [YUMIPresentComputationMatrix initComputtowardsionMtowardsrix:YMLocalizedString(@"YUMI_Gift_Count_View_6") giftNumber:@"99"]; + YUMIPresentComputationMatrix *_188Dic = [YUMIPresentComputationMatrix initComputtowardsionMtowardsrix:YMLocalizedString(@"YUMI_Gift_Count_View_7") giftNumber:@"188"]; + YUMIPresentComputationMatrix *_520Dic = [YUMIPresentComputationMatrix initComputtowardsionMtowardsrix:YMLocalizedString(@"YUMI_Gift_Count_View_8") giftNumber:@"520"]; + YUMIPresentComputationMatrix *_1314Dic = [YUMIPresentComputationMatrix initComputtowardsionMtowardsrix:YMLocalizedString(@"YUMI_Gift_Count_View_9") giftNumber:@"1314"]; + NSArray * array = @[_1Dic, _10Dic, _66Dic, _99Dic,_188Dic,_520Dic, _1314Dic]; + return array; +} + +#pragma mark - UICollectionViewDelegate && UICollectionViewDataSource +- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { + return self.presentComputationGarment.count; +} + +- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { + YUMIPresentComputationAssembletionRegardElement *cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([YUMIPresentComputationAssembletionRegardElement class]) forIndexPath:indexPath]; + YUMIPresentComputationMatrix *countItem = [self.presentComputationGarment secureGroalTowardsIndictowardsrix1:indexPath.item]; + cell.computationMatrix = countItem; + return cell; +} + +- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath { + [collectionView deselectItemAtIndexPath:indexPath animated:YES]; + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIPresentComputtowardsionRegard:didClickItem:)]) { + YUMIPresentComputationMatrix *countItem = [self.presentComputationGarment secureGroalTowardsIndictowardsrix1:indexPath.item]; + [self.delegate yUMIPresentComputtowardsionRegard:self didClickItem:countItem]; + } +} + +- (void)setSegmentType:(PresentSegmentGenre)segmentType { + _segmentType = segmentType; + if (_segmentType == PresentSegmentGenre_Pack) { + self.presentComputationGarment = [self impactPresentComputtowardsionTowardsoloudspeakerGarment]; + } else { + self.presentComputationGarment = [self ordinaryPresentComputtowardsionTowardsoloudspeakerGarment]; + } + + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIPresentComputtowardsionRegard:didClickItem:)]) { + YUMIPresentComputationMatrix *countItem = [self.presentComputationGarment secureGroalTowardsIndictowardsrix1:0]; + [self.delegate yUMIPresentComputtowardsionRegard:self didClickItem:countItem]; + } + + [self mas_updateConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(28 * self.presentComputationGarment.count + 10); + }]; + + + + [self.computationAssembletionRegard reloadData]; +} + + +#pragma mark - Getters And Setters +- (UICollectionView *)computationAssembletionRegard{ + if (!_computationAssembletionRegard) { + UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init]; + layout.itemSize = CGSizeMake(135, 28); + layout.minimumLineSpacing = 0; + layout.minimumInteritemSpacing = 0; + layout.sectionInset = UIEdgeInsetsMake(3, 0, 3, 0); + _computationAssembletionRegard = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout]; + _computationAssembletionRegard.dataSource = self; + _computationAssembletionRegard.delegate = self; + _computationAssembletionRegard.backgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:0.1]; + [_computationAssembletionRegard registerClass:[YUMIPresentComputationAssembletionRegardElement class] forCellWithReuseIdentifier:NSStringFromClass([YUMIPresentComputationAssembletionRegardElement class])]; + } + return _computationAssembletionRegard; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/SendGiftView/View/YUMIPresentFortunatePresentPingbackRegard.h b/YuMi/Modules/YMRoom/View/SendGiftView/View/YUMIPresentFortunatePresentPingbackRegard.h new file mode 100644 index 00000000..62b59ad0 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendGiftView/View/YUMIPresentFortunatePresentPingbackRegard.h @@ -0,0 +1,27 @@ +// +// YMGiftLuckyGiftBoradCastView.h +// YUMI +// +// Created by YUMI on 2022/10/8. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol FBCPresentLuckyPresentPingbackRegardRepresendtation + +- (void)yUMIPresentInthecaseoftuntowardsePresentBroadcastRegardDisportSequenceTicktack; + +@end + +@interface YUMIPresentFortunatePresentPingbackRegard : UIView + +@property (nonatomic, weak) id delegate; + + +@property (nonatomic,strong) NSArray *records; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/SendGiftView/View/YUMIPresentFortunatePresentPingbackRegard.m b/YuMi/Modules/YMRoom/View/SendGiftView/View/YUMIPresentFortunatePresentPingbackRegard.m new file mode 100644 index 00000000..bebc05a0 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendGiftView/View/YUMIPresentFortunatePresentPingbackRegard.m @@ -0,0 +1,209 @@ +// +// YMGiftLuckyGiftBoradCastView.m +// YUMI +// +// Created by YUMI on 2022/10/8. +// + +#import "YUMIPresentFortunatePresentPingbackRegard.h" +#import +#import +#import +#import "DJDKMIMOMColor.h" +#import "NSArray+Safe.h" +#import "PresentFortunatePingbackMatrix.h" + + +@interface YUMIPresentFortunatePresentPingbackElement : UICollectionViewCell +@property (nonatomic,strong) YYLabel *titleLabel; +@property (nonatomic,strong) PresentFortunatePingbackMatrix *giftInfo; +@end + +@implementation YUMIPresentFortunatePresentPingbackElement + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self.contentView addSubview:self.titleLabel]; +} + +- (void)initChildLyRestrictions { + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.contentView); + }]; +} + +- (NSMutableAttributedString *)produceEssayIdiosyncracy:(NSString *)text color:(UIColor *)color { + if (text == nil || text.length <= 0) { + text = @""; + } + NSMutableAttributedString *attribute = [[NSMutableAttributedString alloc] initWithString:text attributes:nil]; + attribute.yy_font = [UIFont systemFontOfSize:12]; + attribute.yy_color = color; + return attribute; +} + +#pragma mark - Getters And Setters +- (void)setGiftInfo:(PresentFortunatePingbackMatrix *)giftInfo { + _giftInfo = giftInfo; + if (_giftInfo) { + NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] init]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:@"恭喜 " color:[UIColor whiteColor]]]; + NSString * nick = _giftInfo.nick; + if (nick.length > 6) { + nick = [nick substringToIndex:6]; + } + [attribute appendAttributedString:[self produceEssayIdiosyncracy:[NSString stringWithFormat:@"%@ " , nick] color:[DJDKMIMOMColor colorAboutHexBWSttr:@"#FFD436"]]]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:[NSString stringWithFormat:@"开出%@获得 ", giftInfo.luckyBagName] color:[UIColor whiteColor]]]; + [attribute appendAttributedString:[self produceEssayIdiosyncracy:[NSString stringWithFormat:@"%@ " , _giftInfo.giftName] color:[DJDKMIMOMColor colorAboutHexBWSttr:@"#6FE3FF"]]]; + self.titleLabel.attributedText = attribute; + } +} + + + +- (YYLabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[YYLabel alloc] init]; + } + return _titleLabel; +} + +@end + +@interface YUMIPresentFortunatePresentPingbackRegard() + +@property (nonatomic, strong) UIImageView *backgroundIndicateRegard; +@property (nonatomic, strong) UIImageView *disportIndicateRegard; +@property (nonatomic, strong) UIImageView *figureIndicateRegard; +@property (nonatomic, strong) SDCycleScrollView *cycleTrundleRegard; + +@end + +@implementation YUMIPresentFortunatePresentPingbackRegard + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.backgroundIndicateRegard]; + [self addSubview:self.figureIndicateRegard]; + [self addSubview:self.disportIndicateRegard]; + [self addSubview:self.cycleTrundleRegard]; +} + +- (void)initChildLyRestrictions { + [self.backgroundIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(0); + make.left.right.mas_equalTo(self).inset(10); + make.height.mas_equalTo(37); + }]; + + [self.figureIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.backgroundIndicateRegard); + make.left.mas_equalTo(self.backgroundIndicateRegard).mas_offset(8); + make.width.height.mas_equalTo(20); + }]; + + [self.cycleTrundleRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.figureIndicateRegard.mas_right); + make.right.mas_equalTo(self.disportIndicateRegard.mas_left).offset(-5); + make.top.bottom.mas_equalTo(self.backgroundIndicateRegard); + }]; + + [self.disportIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.right.bottom.mas_equalTo(self.backgroundIndicateRegard); + make.width.mas_equalTo(67); + }]; +} + +#pragma mark - action +- (void)prohibitiportBtutonPerformance:(UITapGestureRecognizer *)tap { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIPresentInthecaseoftuntowardsePresentBroadcastRegardDisportSequenceTicktack)]) { + [self.delegate yUMIPresentInthecaseoftuntowardsePresentBroadcastRegardDisportSequenceTicktack]; + } +} +#pragma mark - SDCycleScrollViewDelegate +- (Class)customCollectionViewCellClassForCycleScrollView:(SDCycleScrollView *)view { + return YUMIPresentFortunatePresentPingbackElement.class; +} + +- (void)setupCustomCell:(UICollectionViewCell *)cell forIndex:(NSInteger)index cycleTrundleRegard:(SDCycleScrollView *)view { + YUMIPresentFortunatePresentPingbackElement *myCell = (YUMIPresentFortunatePresentPingbackElement *)cell; + PresentFortunatePingbackMatrix * info = [self.records secureGroalTowardsIndictowardsrix1:index]; + myCell.giftInfo = info; + +} +#pragma mark - Getters And Setters +- (void)setRecords:(NSArray *)records { + _records = records; + if (_records.count > 0) { + NSMutableArray * array = [NSMutableArray array]; + for (PresentFortunatePingbackMatrix * item in _records) { + [array addObject:item.giftName]; + } + if (array.count > 0) { + self.cycleTrundleRegard.imageURLStringsGroup = array; + [self.cycleTrundleRegard autoScroll]; + } + } +} + +- (UIImageView *)backgroundIndicateRegard { + if (!_backgroundIndicateRegard) { + _backgroundIndicateRegard = [[UIImageView alloc] init]; + _backgroundIndicateRegard.image = [UIImage imageNamed:@"yumi_present_lucky_broadcast_background"]; + _backgroundIndicateRegard.contentMode = UIViewContentModeScaleToFill; + } + return _backgroundIndicateRegard; +} + +- (UIImageView *)figureIndicateRegard { + if (!_figureIndicateRegard) { + _figureIndicateRegard = [[UIImageView alloc] init]; + _figureIndicateRegard.image = [UIImage imageNamed:@"yumi_present_lucky_broadcast_pic"]; + } + return _figureIndicateRegard; +} + +- (UIImageView *)disportIndicateRegard { + if (!_disportIndicateRegard) { + _disportIndicateRegard = [[UIImageView alloc] init]; + _disportIndicateRegard.image = [UIImage imageNamed:@"yumi_present_lucky_broadcast_playType"]; + _disportIndicateRegard.contentMode = UIViewContentModeScaleToFill; + UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(prohibitiportBtutonPerformance:)]; + _disportIndicateRegard.userInteractionEnabled = YES; + [_disportIndicateRegard addGestureRecognizer:tap]; + } + return _disportIndicateRegard; +} + +- (SDCycleScrollView *)cycleTrundleRegard { + if (!_cycleTrundleRegard) { + _cycleTrundleRegard = [[SDCycleScrollView alloc] init]; + _cycleTrundleRegard.backgroundColor = [UIColor clearColor]; + _cycleTrundleRegard.layer.masksToBounds = YES; + _cycleTrundleRegard.delegate = self; + _cycleTrundleRegard.showPageControl = NO; + _cycleTrundleRegard.autoScrollTimeInterval = 3.0; + [_cycleTrundleRegard disableScrollGesture]; + } + return _cycleTrundleRegard; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/SendGiftView/View/YUMIPresentIntelligenceGenreRegard.h b/YuMi/Modules/YMRoom/View/SendGiftView/View/YUMIPresentIntelligenceGenreRegard.h new file mode 100644 index 00000000..b3a9fd99 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendGiftView/View/YUMIPresentIntelligenceGenreRegard.h @@ -0,0 +1,30 @@ +// +// YMGiftHeadTypeView.h +// YUMI +// +// Created by YUMI on 2022/9/29. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class YUMIPresentIntelligenceGenreRegard; +@protocol FBCPresentIntelligenceTypeRegardRepresendtation + +- (void)yUMIPresentIntelligenceGenreRegardDidTicktackMagnificent:(YUMIPresentIntelligenceGenreRegard *)view; +- (void)yUMIPresentIntelligenceGenreRegardDidTicktackThresholdReindict:(YUMIPresentIntelligenceGenreRegard *)view; +- (void)yUMIPresentIntelligenceGenreRegardDidTicktackPresent:(YUMIPresentIntelligenceGenreRegard *)view; +- (void)yUMIPresentIntelligenceGenreRegardDidTicktackInterperformance:(YUMIPresentIntelligenceGenreRegard *)view; + +@end + +@interface YUMIPresentIntelligenceGenreRegard : UIView + +@property (nonatomic,assign) BOOL isExhibitThresholdReindict; + +@property (nonatomic, weak) id delegate; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/SendGiftView/View/YUMIPresentIntelligenceGenreRegard.m b/YuMi/Modules/YMRoom/View/SendGiftView/View/YUMIPresentIntelligenceGenreRegard.m new file mode 100644 index 00000000..65e6a5ba --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendGiftView/View/YUMIPresentIntelligenceGenreRegard.m @@ -0,0 +1,253 @@ +// +// YMGiftHeadTypeView.m +// YUMI +// +// Created by YUMI on 2022/9/29. +// + +#import "YUMIPresentIntelligenceGenreRegard.h" +#import +#import +#import "DJDKMIMOMColor.h" +#import "NSArray+Safe.h" + +static NSString *kHideGiftViewInteractDot = @"kHideGiftViewInteractDot"; + +@interface YUMIPresentIntelligenceGenreRegard() + +@property (nonatomic, strong) UIButton *presentBtuton; +@property (nonatomic, strong) UIView *devideRegard; +@property (nonatomic, strong) UIView *extremeDevideRegard; +@property (nonatomic, strong) UIImageView *arrowIndicateRegard; +@property (nonatomic, strong) UIButton *interactBtuton; +@property (nonatomic, strong) UIView *deficitPointRegard; +@property (nonatomic,strong) SDCycleScrollView *cycleTrundleRegard; + +@property (nonatomic, strong) NSMutableArray *titleArray; + +@end + +@implementation YUMIPresentIntelligenceGenreRegard + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.presentBtuton]; + [self addSubview:self.devideRegard]; + [self addSubview:self.interactBtuton]; + [self addSubview:self.deficitPointRegard]; + [self addSubview:self.arrowIndicateRegard]; + [self addSubview:self.cycleTrundleRegard]; + [self addSubview:self.extremeDevideRegard]; + self.deficitPointRegard.hidden = [[NSUserDefaults standardUserDefaults] boolForKey:kHideGiftViewInteractDot]; +} + +- (void)initChildLyRestrictions { + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(44); + }]; + + [self.presentBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(16); + make.centerY.mas_equalTo(self); + make.width.mas_equalTo(40); + }]; + [self.arrowIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.bottom.mas_equalTo(self.extremeDevideRegard.mas_top); + make.centerX.mas_equalTo(self.presentBtuton); + make.size.mas_equalTo(CGSizeMake(9, 7)); + }]; + [self.interactBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self); + make.left.mas_equalTo(self.devideRegard.mas_right).mas_offset(8); + make.width.mas_equalTo(40); + }]; + [self.deficitPointRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.interactBtuton.mas_right).mas_offset(-7); + make.bottom.mas_equalTo(self.interactBtuton.mas_top).mas_offset(9); + make.width.height.mas_equalTo(8); + }]; + + [self.devideRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self); + make.left.mas_equalTo(self.presentBtuton.mas_right).mas_offset(8); + make.width.mas_equalTo(1); + make.height.mas_equalTo(10); + }]; + + [self.extremeDevideRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.bottom.mas_equalTo(self); + make.left.right.mas_equalTo(0); + make.height.mas_equalTo(1); + }]; + + [self.cycleTrundleRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(-16); + make.centerY.mas_equalTo(self); + make.width.mas_equalTo(70); + make.height.mas_equalTo(30); + }]; +} + +#pragma mark - SDCycleScrollViewDelegate +- (void)cycleScrollView:(SDCycleScrollView *)cycleScrollView didSelectItemAtIndex:(NSInteger)index { + if (self.titleArray.count > index) { + NSString *str = [self.titleArray secureGroalTowardsIndictowardsrix1:index]; + if([str isEqualToString:YMLocalizedString(@"YUMI_Gift_Head_Type_View_0")]) { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIPresentIntelligenceGenreRegardDidTicktackThresholdReindict:)]) { + [self.delegate yUMIPresentIntelligenceGenreRegardDidTicktackThresholdReindict:self]; + } + } else { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIPresentIntelligenceGenreRegardDidTicktackMagnificent:)]) { + [self.delegate yUMIPresentIntelligenceGenreRegardDidTicktackMagnificent:self]; + } + } + } +} + +#pragma mark - Response +- (void)presentBtutonPerformance:(UIButton *)sender { + if (!sender.isSelected) { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIPresentIntelligenceGenreRegardDidTicktackPresent:)]) { + [self.delegate yUMIPresentIntelligenceGenreRegardDidTicktackPresent:self]; + } + } + sender.selected = YES; + self.interactBtuton.selected = NO; + sender.titleLabel.font = [UIFont systemFontOfSize:14 weight:UIFontWeightSemibold]; + self.interactBtuton.titleLabel.font = [UIFont systemFontOfSize:14]; + [self.arrowIndicateRegard mas_remakeConstraints:^(MASConstraintMaker *make) { + make.bottom.mas_equalTo(self.extremeDevideRegard.mas_top); + make.centerX.mas_equalTo(self.presentBtuton); + make.size.mas_equalTo(CGSizeMake(9, 7)); + }]; +} + +- (void)interactBtutonPerformance:(UIButton *)sender { + if (!sender.isSelected) { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIPresentIntelligenceGenreRegardDidTicktackInterperformance:)]) { + [self.delegate yUMIPresentIntelligenceGenreRegardDidTicktackInterperformance:self]; + } + } + sender.selected = YES; + self.presentBtuton.selected = NO; + if(![[NSUserDefaults standardUserDefaults] boolForKey:kHideGiftViewInteractDot]) { + self.deficitPointRegard.hidden = YES; + [[NSUserDefaults standardUserDefaults] setBool:YES forKey:kHideGiftViewInteractDot]; + [[NSUserDefaults standardUserDefaults] synchronize]; + } + sender.titleLabel.font = [UIFont systemFontOfSize:14 weight:UIFontWeightSemibold]; + self.presentBtuton.titleLabel.font = [UIFont systemFontOfSize:14]; + + [self.arrowIndicateRegard mas_remakeConstraints:^(MASConstraintMaker *make) { + make.bottom.mas_equalTo(self.extremeDevideRegard.mas_top); + make.centerX.mas_equalTo(self.interactBtuton); + make.size.mas_equalTo(CGSizeMake(9, 7)); + }]; +} + +#pragma mark - setter +- (void)setIsExhibitThresholdReindict:(BOOL)isExhibitThresholdReindict { + if (isExhibitThresholdReindict) { + self.titleArray = [NSMutableArray arrayWithObjects:YMLocalizedString(@"YUMI_Gift_Head_Type_View_1"), nil]; + self.cycleTrundleRegard.imageURLStringsGroup = @[@"gift_first_recharge_bg"]; + } else { + + } +} + +#pragma mark - getter +- (UIButton *)presentBtuton { + if (!_presentBtuton) { + UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; + button.titleLabel.font = [UIFont systemFontOfSize:14 weight:UIFontWeightSemibold]; + [button addTarget:self action:@selector(presentBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + [button setTitle:YMLocalizedString(@"YUMI_Gift_Head_Type_View_2") forState:UIControlStateNormal]; + [button setTitleColor:[DJDKMIMOMColor instantEssayPrettify] forState:UIControlStateNormal]; + [button setTitleColor:[UIColor whiteColor] forState:UIControlStateSelected]; + button.selected = YES; + _presentBtuton = button; + } + return _presentBtuton; +} + +- (UIButton *)interactBtuton { + if (!_interactBtuton) { + UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; + button.titleLabel.font = [UIFont systemFontOfSize:14]; + [button addTarget:self action:@selector(interactBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + [button setTitle:YMLocalizedString(@"YUMI_Gift_Head_Type_View_3") forState:UIControlStateNormal]; + [button setTitleColor:[DJDKMIMOMColor instantEssayPrettify] forState:UIControlStateNormal]; + [button setTitleColor:[UIColor whiteColor] forState:UIControlStateSelected]; + _interactBtuton = button; + } + return _interactBtuton; +} + +- (UIView *)deficitPointRegard { + if (!_deficitPointRegard) { + _deficitPointRegard = [[UIView alloc] init]; + _deficitPointRegard.backgroundColor = UIColorFromRGB(0xFB486A); + _deficitPointRegard.layer.cornerRadius = 4; + _deficitPointRegard.layer.masksToBounds = YES; + _deficitPointRegard.layer.borderWidth = 1; + _deficitPointRegard.layer.borderColor = [UIColor whiteColor].CGColor; + } + return _deficitPointRegard; +} + +- (UIView *)devideRegard { + if (!_devideRegard) { + _devideRegard = [[UIView alloc] init]; + _devideRegard.backgroundColor = UIColorRGBAlpha(0xffffff, 0.1); + } + return _devideRegard; +} + +- (UIView *)extremeDevideRegard { + if (!_extremeDevideRegard) { + _extremeDevideRegard = [[UIView alloc] init]; + _extremeDevideRegard.backgroundColor = UIColorRGBAlpha(0xffffff, 0.1); + } + return _extremeDevideRegard; +} + +- (SDCycleScrollView *)cycleTrundleRegard { + if (!_cycleTrundleRegard) { + _cycleTrundleRegard = [SDCycleScrollView cycleScrollViewWithFrame:CGRectZero delegate:self placeholderImage:nil]; + _cycleTrundleRegard.pageControlAliment = SDCycleScrollViewPageContolAlimentCenter; + _cycleTrundleRegard.showPageControl = NO; + _cycleTrundleRegard.backgroundColor = [UIColor colorWithWhite:1 alpha:0.00]; + _cycleTrundleRegard.bannerImageViewContentMode = UIViewContentModeScaleAspectFit; + _cycleTrundleRegard.pageControlBottomOffset = -10; + _cycleTrundleRegard.autoScrollTimeInterval = 5; + } + return _cycleTrundleRegard; +} + +- (NSMutableArray *)titleArray { + if (!_titleArray) { + _titleArray = [NSMutableArray array]; + } + return _titleArray; +} + +- (UIImageView *)arrowIndicateRegard { + if (!_arrowIndicateRegard) { + UIImageView *imageView = [[UIImageView alloc] init]; + imageView.image = [UIImage imageNamed:@"yumi_scope_present_panel_arrow"]; + + _arrowIndicateRegard = imageView; + } + return _arrowIndicateRegard; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/SendGiftView/View/YUMIPresentObstacleRegard.h b/YuMi/Modules/YMRoom/View/SendGiftView/View/YUMIPresentObstacleRegard.h new file mode 100644 index 00000000..11b09b82 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendGiftView/View/YUMIPresentObstacleRegard.h @@ -0,0 +1,30 @@ +// +// YMGiftBottomView.h +// YUMI +// +// Created by YUMI on 2021/11/9. +// + +#import +#import "YUMIPresentAbstractRegard.h" +NS_ASSUME_NONNULL_BEGIN +@class YUMIPresentObstacleRegard, YUMIPresentComputationMatrix, RamparatetAbstractMatrix; +@protocol FBCPresentObstacleRegardRepresendtation +- (void)yUMIPresentObstacleRegardDidTicktackReindict:(YUMIPresentObstacleRegard *)view;; +- (void)yUMIPresentObstacleRegard:(YUMIPresentObstacleRegard *)view didClickSendGift:(YUMIPresentComputationMatrix *)presentComputation; +- (void)yUMIPresentObstacleRegardDidTicktackThresholdReindict:(YUMIPresentObstacleRegard *)view;; +@end + +@interface YUMIPresentObstacleRegard : UIView +@property (nonatomic,assign) DischargePresentGenre usingdeparatmentGenre; +@property (nonatomic,assign) NSInteger drawPresentComputation; +@property (nonatomic,weak) id delegate; +@property (nonatomic,assign) PresentSegmentGenre type; + +@property (nonatomic,strong) YUMIPresentComputationMatrix *presentComputationMatrix; +@property (nonatomic,strong) RamparatetAbstractMatrix *wentiretyetAbstractMatrix; +@property (nonatomic,assign) BOOL isExhibitThresholdReindict; +@property (nonatomic,assign) BOOL dischargeBtutonIsCapacitate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/SendGiftView/View/YUMIPresentObstacleRegard.m b/YuMi/Modules/YMRoom/View/SendGiftView/View/YUMIPresentObstacleRegard.m new file mode 100644 index 00000000..27373d1a --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendGiftView/View/YUMIPresentObstacleRegard.m @@ -0,0 +1,483 @@ +// +// YMGiftBottomView.m +// YUMI +// +// Created by YUMI on 2021/11/9. +// + +#import "YUMIPresentObstacleRegard.h" +#import +#import "YUMIMacroUitls.h" +#import "ThemeColor+SendGift.h" +#import "UIImage+Utils.h" +#import "YUMIPresentComputationMatrix.h" +#import "RamparatetAbstractMatrix.h" +#import "YUMIPresentComputationAssembletionRegardElement.h" +#import "YUMIPresentComputationRegard.h" +@interface YUMIPresentObstacleRegard () + +@property (nonatomic,strong) UILabel *balanceSequencignation; +@property (nonatomic,strong) UIStackView *reindictHierarchyRegard; +@property (nonatomic,strong) UILabel *reindictSequencignation; +@property (nonatomic,strong) UIImageView *rechageIndicateRegard; +@property (nonatomic,strong) UIStackView *dischargeOperationRegard; +@property (nonatomic,strong) UILabel *computationSequencignation; +@property (nonatomic,strong) UIButton *arrowBtuton; +@property (nonatomic,strong) UIButton *dischargePresentBtuton; +@property (nonatomic,strong) UIButton *thresholdReindictBtuton; +@property (nonatomic,strong) UIView *customComputationRegard; +@property (nonatomic, strong) UITextField *compileEssayAccurated; +@property (nonatomic, strong) UIButton *sureBtuton; +@property (nonatomic,strong) YUMIPresentComputationRegard *presentComputationRegard; + +@end + +@implementation YUMIPresentObstacleRegard + +- (void)dealloc { + [[NSNotificationCenter defaultCenter] removeObserver:self]; +} + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + [self accelertowardseCircularConcentrtowardse]; + [self initOccurrences]; + } + return self; +} +#pragma mark - Response +- (void)prohibitichargeBtutonPerformance:(UIButton *)sender { + if (self.type == PresentSegmentGenre_Graffiti && self.drawPresentComputation < 10) { + return; + } + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIPresentObstacleRegard:didClickSendGift:)]) { + [self.delegate yUMIPresentObstacleRegard:self didClickSendGift:self.presentComputationMatrix]; + } +} + +- (void)didCoupleReindict:(UITapGestureRecognizer *)tap { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIPresentObstacleRegardDidTicktackReindict:)]) { + [self.delegate yUMIPresentObstacleRegardDidTicktackReindict:self]; + } +} + +- (void)arrowBtutonPerformance:(UIButton *)sender { + if (![[self.superview.superview subviews] containsObject:self.presentComputationRegard]) { + [self.superview.superview addSubview:self.presentComputationRegard]; + + [self.presentComputationRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(-15); + make.bottom.mas_equalTo(self.superview.superview.mas_bottom).offset(-45 -kSafeAreaBottomHeight); + make.width.mas_equalTo(135); + }]; + } + [self refurbishComputtowardsionPosition]; +} + +- (void)sureBtutonPerformance:(UIButton *)sender { + NSString *countStr = [self.compileEssayAccurated.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]; + if (countStr.integerValue == 0) { + countStr = @"1"; + } + [self.compileEssayAccurated resignFirstResponder]; + self.compileEssayAccurated.text = @""; + self.presentComputationMatrix.giftNumber = countStr; + self.computationSequencignation.text = countStr; +} + +- (void)thresholdReindictBtutonPerformance:(UIButton *)sender{ + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIPresentObstacleRegardDidTicktackThresholdReindict:)]) { + [self.delegate yUMIPresentObstacleRegardDidTicktackThresholdReindict:self]; + } +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor= [UIColor clearColor]; + [self addSubview:self.balanceSequencignation]; + [self addSubview:self.reindictHierarchyRegard]; + [self addSubview:self.thresholdReindictBtuton]; + [self addSubview:self.dischargeOperationRegard]; + + [self.reindictHierarchyRegard addArrangedSubview:self.reindictSequencignation]; + [self.reindictHierarchyRegard addArrangedSubview:self.rechageIndicateRegard]; + + [self.dischargeOperationRegard addArrangedSubview:self.computationSequencignation]; + [self.dischargeOperationRegard addArrangedSubview:self.arrowBtuton]; + [self.dischargeOperationRegard addArrangedSubview:self.dischargePresentBtuton]; + + [self.customComputationRegard addSubview:self.compileEssayAccurated]; + [self.customComputationRegard addSubview:self.sureBtuton]; +} + +- (void)initChildLyRestrictions { + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(45); + }]; + + + [self.balanceSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(15); + make.centerY.mas_equalTo(self.dischargeOperationRegard); + }]; + + [self.reindictHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.dischargeOperationRegard); + make.left.mas_equalTo(self.balanceSequencignation.mas_right).offset(12); + }]; + + [self.thresholdReindictBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(50, 14)); + make.left.mas_equalTo(self.reindictHierarchyRegard.mas_right).offset(4); + make.centerY.mas_equalTo(self.reindictHierarchyRegard); + }]; + + [self.dischargeOperationRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self).offset(-15); + make.bottom.mas_equalTo(-11); + make.height.mas_equalTo(30); + }]; + + [self.computationSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(40); + make.height.mas_equalTo(30); + }]; + + + [self.arrowBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(30, 30)); + }]; + + [self.dischargePresentBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(67, 30)); + }]; + + + [self.compileEssayAccurated mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.customComputationRegard).offset(15); + make.right.mas_equalTo(self.sureBtuton.mas_left).offset(-10); + make.top.bottom.mas_equalTo(self.customComputationRegard); + }]; + + [self.sureBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(30); + make.width.mas_equalTo(@50); + make.centerY.mas_equalTo(self.customComputationRegard); + make.right.mas_equalTo(self.customComputationRegard).offset(-15); + }]; +} + +- (void)initOccurrences { + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didCoupleReindict:)]; + [self.reindictHierarchyRegard addGestureRecognizer:tap]; +} + +- (void)keyboardWillShow:(NSNotification *)notification { + CGRect keyboardRect = [[[notification userInfo] objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue]; + CGFloat height = CGRectGetMinY(keyboardRect) - KScreenHeight; + if (height < 0) { + [UIView animateWithDuration:0.25 animations:^{ + CGRect rect = self.customComputationRegard.superview.superview.superview.frame; + rect.origin.y = height; + self.customComputationRegard.superview.superview.superview.frame = rect; + }]; + } +} + +- (void)digitentiretyibraImmeditowardselyVeiled:(NSNotification *)notification { + [UIView animateWithDuration:0.25 animations:^{ + CGRect rect = self.customComputationRegard.superview.superview.superview.frame; + rect.origin.y = 0; + self.customComputationRegard.superview.superview.superview.frame = rect; + }]; + self.customComputationRegard.hidden = YES; + self.compileEssayAccurated.text = @""; +} + +- (void)accelertowardseCircularConcentrtowardse { + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(digitentiretyibraImmeditowardselyVeiled:) name:UIKeyboardWillHideNotification object:nil]; +} + +- (void)refurbishComputtowardsionPosition { + self.arrowBtuton.selected = !self.arrowBtuton.selected; + self.presentComputationRegard.hidden = !self.arrowBtuton.selected; +} + +#pragma mark - FBCPresentCountRegardRepresendtation +- (void)yUMIPresentComputtowardsionRegard:(YUMIPresentComputationRegard *)view didClickItem:(YUMIPresentComputationMatrix *)model { + self.arrowBtuton.selected = NO; + self.presentComputationRegard.hidden= YES; + self.presentComputationMatrix = model; + if (model.isCustomCount) { + if (![[self.superview.superview subviews] containsObject:self.customComputationRegard]) { + [self.superview.superview addSubview:self.customComputationRegard]; + + [self.customComputationRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.mas_equalTo(self.superview.superview); + make.height.mas_equalTo(40); + }]; + } + self.customComputationRegard.hidden = NO; + [self.compileEssayAccurated becomeFirstResponder]; + } +} + +#pragma mark - UITextFieldDelegate +- (BOOL)textFieldShouldReturn:(UITextField *)essayUniverse { + NSString *countStr = [self.compileEssayAccurated.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]; + NSInteger count = [countStr integerValue]; + if (count > 9999) { + return NO; + } + [self.compileEssayAccurated resignFirstResponder]; + self.compileEssayAccurated.text = @""; + self.presentComputationMatrix.giftNumber = essayUniverse.text; + return YES; +} + +- (BOOL)essayUniverse:(UITextField *)essayUniverse shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { + NSString *regex =@"[0-9]*"; + NSPredicate *pred = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",regex]; + if ([pred evaluateWithObject:string]) { + return YES; + } + return NO; +} +#pragma mark - Getters And Setters +- (void)setUsingdeparatmentGenre:(DischargePresentGenre)usingdeparatmentGenre { + _usingdeparatmentGenre = usingdeparatmentGenre; + if (_usingdeparatmentGenre == DischargePresentGenre_User) { + self.computationSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + [self.arrowBtuton setImage:[UIImage imageNamed:@"yumi_present_let_white_count_arrow"] forState:UIControlStateNormal]; + [self.arrowBtuton setImage:[UIImage imageNamed:@"yumi_present_let_white_count_up_arrow"] forState:UIControlStateSelected]; + } else { + self.computationSequencignation.textColor = [DJDKMIMOMColor presentComputtowardsionChampionPrettify]; + [self.arrowBtuton setImage:[UIImage imageNamed:@"yumi_present_let_count_arrow"] forState:UIControlStateNormal]; + [self.arrowBtuton setImage:[UIImage imageNamed:@"yumi_present_let_count_up_arrow"] forState:UIControlStateSelected]; + } +} + +- (void)setDrawPresentComputation:(NSInteger)drawPresentComputation { + _drawPresentComputation = drawPresentComputation; + if (_drawPresentComputation >= 10) { + self.dischargePresentBtuton.selected = NO; + self.dischargeOperationRegard.layer.borderWidth = 1; + } else { + self.dischargePresentBtuton.selected = YES; + self.dischargeOperationRegard.layer.borderWidth = 0; + } +} + +- (void)setDischargeBtutonIsCapacitate:(BOOL)dischargeBtutonIsCapacitate { + _dischargeBtutonIsCapacitate = dischargeBtutonIsCapacitate; + [UIView animateWithDuration:0.3 animations:^{ + self.dischargePresentBtuton.enabled = self.dischargeBtutonIsCapacitate; + }]; +} + +- (void)setIsExhibitThresholdReindict:(BOOL)isExhibitThresholdReindict { + self.thresholdReindictBtuton.hidden = !isExhibitThresholdReindict; +} + +- (void)setType:(PresentSegmentGenre)type { + _type = type; + if (!self.presentComputationRegard.hidden) { + self.presentComputationRegard.hidden = YES; + self.arrowBtuton.selected = NO; + } else { + if (_type == PresentSegmentGenre_Graffiti) { + self.computationSequencignation.hidden = YES; + self.arrowBtuton.hidden = YES; + } else { + self.computationSequencignation.hidden = NO; + self.arrowBtuton.hidden = NO; + } + } + self.presentComputationRegard.segmentType = type; +} + +- (void)setPresentComputationMatrix:(YUMIPresentComputationMatrix *)presentComputationMatrix { + _presentComputationMatrix = presentComputationMatrix; + self.arrowBtuton.selected = NO; + if (_presentComputationMatrix) { + self.computationSequencignation.text = _presentComputationMatrix.giftNumber; + } +} + +- (void)setWentiretyetAbstractMatrix:(RamparatetAbstractMatrix *)wentiretyetAbstractMatrix { + _wentiretyetAbstractMatrix = wentiretyetAbstractMatrix; + if (_wentiretyetAbstractMatrix) { + NSString * diamonds = _wentiretyetAbstractMatrix.diamonds; + UIColor * normaleColor = [DJDKMIMOMColor presentBalancePrettify]; + UIColor * highlightPrettify =[DJDKMIMOMColor presentComputtowardsionChampionPrettify]; + if (_usingdeparatmentGenre == DischargePresentGenre_User) { + normaleColor = [DJDKMIMOMColor essayTertiusPrettify]; + highlightPrettify = [DJDKMIMOMColor presentConstituteChosenPrettify]; + } + NSString * title = [NSString stringWithFormat:@"余额:%@", diamonds]; + NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] initWithString:title attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:12], NSForegroundColorAttributeName:normaleColor}]; + [attribute addAttribute:NSForegroundColorAttributeName value:highlightPrettify range:[title rangeOfString:diamonds]]; + self.balanceSequencignation.attributedText = attribute; + } +} + +- (UILabel *)balanceSequencignation { + if (!_balanceSequencignation) { + _balanceSequencignation = [[UILabel alloc] init]; + _balanceSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _balanceSequencignation.font = [UIFont systemFontOfSize:13]; + } + return _balanceSequencignation; +} + +- (UIStackView *)reindictHierarchyRegard { + if (!_reindictHierarchyRegard) { + _reindictHierarchyRegard = [[UIStackView alloc] init]; + _reindictHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _reindictHierarchyRegard.distribution = UIStackViewDistributionFill; + _reindictHierarchyRegard.alignment = UIStackViewAlignmentCenter; + _reindictHierarchyRegard.spacing = 1; + } + return _reindictHierarchyRegard; +} + +- (UILabel *)reindictSequencignation { + if (!_reindictSequencignation) { + _reindictSequencignation = [[UILabel alloc] init]; + _reindictSequencignation.text = YMLocalizedString(@"YUMI_Gift_Bar_View_1"); + _reindictSequencignation.font = [UIFont systemFontOfSize:12]; + _reindictSequencignation.textColor = [DJDKMIMOMColor presentReindictPrettify]; + } + return _reindictSequencignation; +} + +- (UIImageView *)rechageIndicateRegard { + if (!_rechageIndicateRegard) { + _rechageIndicateRegard = [[UIImageView alloc] init]; + _rechageIndicateRegard.userInteractionEnabled = YES; + _rechageIndicateRegard.image = [UIImage imageNamed:@"yumi_present_let_recharge_arrow"]; + } + return _rechageIndicateRegard; +} + + +- (UIStackView *)dischargeOperationRegard { + if (!_dischargeOperationRegard) { + _dischargeOperationRegard = [[UIStackView alloc] init]; + _dischargeOperationRegard.axis = UILayoutConstraintAxisHorizontal; + _dischargeOperationRegard.distribution = UIStackViewDistributionFill; + _dischargeOperationRegard.alignment = UIStackViewAlignmentCenter; + _dischargeOperationRegard.spacing = 0; + _dischargeOperationRegard.layer.masksToBounds = YES; + _dischargeOperationRegard.layer.cornerRadius = 15; + _dischargeOperationRegard.layer.borderColor = [DJDKMIMOMColor aplictowardsionMainPrettify].CGColor; + _dischargeOperationRegard.layer.borderWidth = 1; + } + return _dischargeOperationRegard; +} + + +- (UILabel *)computationSequencignation { + if (!_computationSequencignation) { + _computationSequencignation = [[UILabel alloc] init]; + _computationSequencignation.textAlignment = NSTextAlignmentCenter; + _computationSequencignation.textColor = [DJDKMIMOMColor presentComputtowardsionChampionPrettify]; + _computationSequencignation.text = @"1"; + _computationSequencignation.font = [UIFont systemFontOfSize:13]; + _computationSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _computationSequencignation; +} + +- (UIButton *)arrowBtuton { + if (!_arrowBtuton) { + _arrowBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_arrowBtuton setImage:[UIImage imageNamed:@"yumi_present_let_count_arrow"] forState:UIControlStateNormal]; + [_arrowBtuton setImage:[UIImage imageNamed:@"yumi_present_let_count_up_arrow"] forState:UIControlStateSelected]; + [_arrowBtuton addTarget:self action:@selector(arrowBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _arrowBtuton; +} + +- (UIButton *)dischargePresentBtuton { + if (!_dischargePresentBtuton) { + _dischargePresentBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_dischargePresentBtuton setTitle:YMLocalizedString(@"YUMI_Gift_Bar_View_2") forState:UIControlStateNormal]; + [_dischargePresentBtuton setTitleColor:[DJDKMIMOMColor mainEssayPrettify] forState:UIControlStateNormal]; + [_dischargePresentBtuton setTitle:@"赠送中..." forState:UIControlStateDisabled]; + [_dischargePresentBtuton setTitleColor:[DJDKMIMOMColor prohibitionBtutonEssayPrettify] forState:UIControlStateDisabled]; + [_dischargePresentBtuton setTitle:YMLocalizedString(@"YUMI_Gift_Bar_View_4") forState:UIControlStateSelected]; + [_dischargePresentBtuton setTitleColor:[DJDKMIMOMColor prohibitionBtutonEssayPrettify] forState:UIControlStateSelected]; + [_dischargePresentBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + [_dischargePresentBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor prohibitionBtutonPrettify], [DJDKMIMOMColor prohibitionBtutonPrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateDisabled]; + [_dischargePresentBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor prohibitionBtutonPrettify], [DJDKMIMOMColor prohibitionBtutonPrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateSelected]; + _dischargePresentBtuton.titleLabel.font = [UIFont systemFontOfSize:12]; + _dischargePresentBtuton.layer.masksToBounds = YES; + _dischargePresentBtuton.layer.cornerRadius = 15; + [_dischargePresentBtuton addTarget:self action:@selector(prohibitichargeBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _dischargePresentBtuton; +} + + +- (UITextField *)compileEssayAccurated { + if (!_compileEssayAccurated) { + _compileEssayAccurated = [[UITextField alloc] init]; + NSAttributedString * attribute = [[NSAttributedString alloc] initWithString:YMLocalizedString(@"YUMI_Gift_Bar_View_5") attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:17], NSForegroundColorAttributeName:[DJDKMIMOMColor instantEssayPrettify]}]; + _compileEssayAccurated.attributedPlaceholder = attribute; + _compileEssayAccurated.borderStyle = UITextBorderStyleNone; + _compileEssayAccurated.returnKeyType = UIReturnKeyDone; + _compileEssayAccurated.delegate = self; + _compileEssayAccurated.textColor = [DJDKMIMOMColor instantEssayPrettify]; + _compileEssayAccurated.keyboardType = UIKeyboardTypeNumberPad; + } + return _compileEssayAccurated; +} + +- (UIButton *)sureBtuton { + if (!_sureBtuton) { + _sureBtuton = [[UIButton alloc] init]; + [_sureBtuton setTitle:YMLocalizedString(@"YUMI_Gift_Bar_View_6") forState:UIControlStateNormal]; + _sureBtuton.titleLabel.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _sureBtuton.titleLabel.font = [UIFont systemFontOfSize:15]; + _sureBtuton.backgroundColor = [DJDKMIMOMColor aplictowardsionMainPrettify]; + _sureBtuton.layer.cornerRadius = 5.0; + _sureBtuton.layer.masksToBounds = YES; + [_sureBtuton addTarget:self action:@selector(sureBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _sureBtuton; +} + + +- (UIView *)customComputationRegard { + if (!_customComputationRegard) { + _customComputationRegard = [[UIView alloc] init]; + _customComputationRegard.backgroundColor = [UIColor whiteColor]; + } + return _customComputationRegard; +} + +- (YUMIPresentComputationRegard *)presentComputationRegard { + if (!_presentComputationRegard) { + _presentComputationRegard = [[YUMIPresentComputationRegard alloc] init]; + _presentComputationRegard.delegate = self; + _presentComputationRegard.hidden = YES; + } + return _presentComputationRegard; +} + +- (UIButton *)thresholdReindictBtuton { + if (!_thresholdReindictBtuton) { + _thresholdReindictBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_thresholdReindictBtuton setImage:[UIImage imageNamed:@"yumi_present_first_recharge_background"] forState:UIControlStateNormal]; + [_thresholdReindictBtuton setImage:[UIImage imageNamed:@"yumi_present_first_recharge_background"] forState:UIControlStateSelected]; + [_thresholdReindictBtuton addTarget:self action:@selector(thresholdReindictBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _thresholdReindictBtuton; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/SendGiftView/View/YUMIPresentTwelveSatellitePingbackRegard.h b/YuMi/Modules/YMRoom/View/SendGiftView/View/YUMIPresentTwelveSatellitePingbackRegard.h new file mode 100644 index 00000000..a3b23d37 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendGiftView/View/YUMIPresentTwelveSatellitePingbackRegard.h @@ -0,0 +1,26 @@ +// +// YMGiftTwelveStarBroadcastView.h +// YUMI +// +// Created by YUMI on 2022/12/7. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class PresentTwelveSatelliteThresholdMatrix, YUMIPresentTwelveSatellitePingbackRegard; + +@protocol FBCPresentTwelveStarPingbackRegardRepresendtation + +- (void)yUMIPresentDuodenaryStowardselliteBroadcastRegard:(YUMIPresentTwelveSatellitePingbackRegard *)view didClickDetail:(UIButton *)sender; +@end + +@interface YUMIPresentTwelveSatellitePingbackRegard : UIView + +@property (nonatomic, strong) PresentTwelveSatelliteThresholdMatrix *giftInfo; + +@property (nonatomic,weak) id delegate; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/SendGiftView/View/YUMIPresentTwelveSatellitePingbackRegard.m b/YuMi/Modules/YMRoom/View/SendGiftView/View/YUMIPresentTwelveSatellitePingbackRegard.m new file mode 100644 index 00000000..4711591a --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendGiftView/View/YUMIPresentTwelveSatellitePingbackRegard.m @@ -0,0 +1,239 @@ +// +// YMGiftTwelveStarBroadcastView.m +// YUMI +// +// Created by YUMI on 2022/12/7. +// + +#import "YUMIPresentTwelveSatellitePingbackRegard.h" +#import +#import "DJDKMIMOMColor.h" +#import "MKJPopup.h" +#import "XCCurrentVCStackExecutive.h" +#import "YUMITissueRegardGovernancer.h" +#import "YUMIHtmlUrl.h" +#import "NetIndicateRegard.h" +#import "PresentTwelveSatelliteThresholdMatrix.h" + +@interface YUMIPresentTwelveSatellitePingbackRegard() + +@property (nonatomic, strong) UIView *mainView; +@property (nonatomic, strong) UIImageView *backgroundIndicateRegard; +@property (nonatomic, strong) UIButton *zhouSatelliteBtuton; +@property (nonatomic, strong) NetIndicateRegard *figureIndicateRegard; +@property (nonatomic, strong) NetIndicateRegard *intelligenceportraitIndicateRegard; +@property (nonatomic, strong) UILabel *fascinationSequencignation; +@property (nonatomic, strong) UILabel *efficacySequencignation; + +@property (nonatomic, strong) UIImageView *seaxualityIndicateRegard; + +@property (nonatomic, strong) UILabel *sequencSequencignation; + +@end + +@implementation YUMIPresentTwelveSatellitePingbackRegard + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.backgroundIndicateRegard]; + [self addSubview:self.mainView]; + [self.mainView addSubview:self.zhouSatelliteBtuton]; + [self.mainView addSubview:self.figureIndicateRegard]; + [self.mainView addSubview:self.intelligenceportraitIndicateRegard]; + [self.mainView addSubview:self.fascinationSequencignation]; + [self.mainView addSubview:self.seaxualityIndicateRegard]; + [self.mainView addSubview:self.efficacySequencignation]; + [self.mainView addSubview:self.sequencSequencignation]; + + self.figureIndicateRegard.hidden = YES; + self.intelligenceportraitIndicateRegard.hidden = YES; + self.fascinationSequencignation.hidden = YES; + self.efficacySequencignation.hidden = YES; + self.seaxualityIndicateRegard.hidden = YES; +} + +- (void)initChildLyRestrictions { + [self.backgroundIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self); + make.width.mas_equalTo(355); + make.top.bottom.mas_equalTo(self); + }]; + [self.mainView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.backgroundIndicateRegard); + make.height.mas_equalTo(36); + make.bottom.mas_equalTo(0); + }]; + [self.figureIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.mainView).mas_offset(33); + make.width.height.mas_equalTo(30); + make.centerY.mas_equalTo(self.mainView); + }]; + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.figureIndicateRegard.mas_right).mas_offset(8); + make.width.height.mas_equalTo(24); + make.centerY.mas_equalTo(self.mainView); + }]; + [self.fascinationSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(14); + make.bottom.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_centerY); + make.left.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_right).mas_offset(8); + }]; + + [self.efficacySequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(14); + make.top.mas_equalTo(self.fascinationSequencignation.mas_bottom); + make.left.mas_equalTo(self.fascinationSequencignation); + }]; + [self.seaxualityIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.mas_equalTo(10); + make.left.mas_equalTo(self.efficacySequencignation.mas_right).mas_offset(2); + make.centerY.mas_equalTo(self.efficacySequencignation); + }]; + [self.zhouSatelliteBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(18); + make.centerY.mas_equalTo(self.mainView); + make.right.mas_equalTo(self.mainView).mas_offset(-25); + make.width.mas_equalTo(64); + }]; + [self.sequencSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.mainView); + make.left.mas_equalTo(self.mainView).mas_offset(54); + }]; +} + +#pragma mark - action +- (void)prohibitiportBtutonPerformance:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIPresentDuodenaryStowardselliteBroadcastRegard:didClickDetail:)]) { + [self.delegate yUMIPresentDuodenaryStowardselliteBroadcastRegard:self didClickDetail:sender]; + } +} + +- (void)setGiftInfo:(PresentTwelveSatelliteThresholdMatrix *)giftInfo { + if (giftInfo.nick) { + self.figureIndicateRegard.imageUrl = giftInfo.markUrl; + self.intelligenceportraitIndicateRegard.imageUrl = giftInfo.avatar; + self.fascinationSequencignation.text = [NSString stringWithFormat:YMLocalizedString(@"YUMI_Gift_Twelve_Star_Broadcast_View_0"), giftInfo.twelveStarName]; + self.efficacySequencignation.text = giftInfo.nick; + NSString *imageName = giftInfo.gender == 1 ? @"common_sex_male" : @"common_sex_female"; + self.seaxualityIndicateRegard.image = [UIImage imageNamed:imageName]; + self.figureIndicateRegard.hidden = NO; + self.intelligenceportraitIndicateRegard.hidden = NO; + self.fascinationSequencignation.hidden = NO; + self.efficacySequencignation.hidden = NO; + self.seaxualityIndicateRegard.hidden = NO; + self.sequencSequencignation.hidden = YES; + } else { + self.figureIndicateRegard.hidden = YES; + self.intelligenceportraitIndicateRegard.hidden = YES; + self.fascinationSequencignation.hidden = YES; + self.efficacySequencignation.hidden = YES; + self.seaxualityIndicateRegard.hidden = YES; + self.sequencSequencignation.hidden = NO; + } +} + +- (UIView *)mainView { + if (!_mainView) { + _mainView = [[UIView alloc] init]; + } + return _mainView; +} + +- (UIImageView *)backgroundIndicateRegard { + if (!_backgroundIndicateRegard) { + _backgroundIndicateRegard = [[UIImageView alloc] init]; + _backgroundIndicateRegard.image = [UIImage imageNamed:@"yumi_present_constellationBanner_background"]; + _backgroundIndicateRegard.contentMode = UIViewContentModeScaleAspectFill; + _backgroundIndicateRegard.userInteractionEnabled = YES; + } + return _backgroundIndicateRegard; +} + +- (NetIndicateRegard *)figureIndicateRegard { + if (!_figureIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _figureIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _figureIndicateRegard.userInteractionEnabled = YES; + } + return _figureIndicateRegard; +} + +- (UILabel *)fascinationSequencignation { + if (!_fascinationSequencignation) { + UILabel *label = [[UILabel alloc] init]; + label.font = [UIFont systemFontOfSize:10 weight:UIFontWeightMedium]; + label.textColor = UIColorFromRGB(0xFDE19B); + label.text = YMLocalizedString(@"YUMI_Gift_Twelve_Star_Broadcast_View_1"); + _fascinationSequencignation = label; + } + return _fascinationSequencignation; +} + +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _intelligenceportraitIndicateRegard.layer.cornerRadius = 12; + _intelligenceportraitIndicateRegard.userInteractionEnabled = YES; + } + return _intelligenceportraitIndicateRegard; +} + +- (UILabel *)efficacySequencignation { + if (!_efficacySequencignation) { + UILabel *label = [[UILabel alloc] init]; + label.font = [UIFont systemFontOfSize:10]; + label.textColor = [UIColor whiteColor]; + label.text = YMLocalizedString(@"YUMI_Gift_Twelve_Star_Broadcast_View_2"); + _efficacySequencignation = label; + } + return _efficacySequencignation; +} + +- (UIButton *)zhouSatelliteBtuton { + if (!_zhouSatelliteBtuton) { + UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; + button.backgroundColor = UIColorRGBAlpha(0x000000, 0.36); + [button addTarget:self action:@selector(prohibitiportBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + [button setTitle:@"活动详情 >" forState:UIControlStateNormal]; + [button setTitleColor:UIColorFromRGB(0x00EEFF) forState:UIControlStateNormal]; + button.titleLabel.font = [UIFont systemFontOfSize:10]; + button.layer.masksToBounds = YES; + button.layer.cornerRadius = 9; + _zhouSatelliteBtuton = button; + } + return _zhouSatelliteBtuton; +} + +- (UIImageView *)seaxualityIndicateRegard { + if (!_seaxualityIndicateRegard) { + _seaxualityIndicateRegard = [[UIImageView alloc] init]; + } + return _seaxualityIndicateRegard; +} + +- (UILabel *)sequencSequencignation { + if (!_sequencSequencignation) { + _sequencSequencignation = [[UILabel alloc] init]; + _sequencSequencignation.text = @"星座物语,限定开启星座月!"; + _sequencSequencignation.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium]; + _sequencSequencignation.textColor = UIColorFromRGB(0xFDE19B); + } + return _sequencSequencignation; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/SendGiftView/View/YUMIPresentWeekSatellitePingbackRegard.h b/YuMi/Modules/YMRoom/View/SendGiftView/View/YUMIPresentWeekSatellitePingbackRegard.h new file mode 100644 index 00000000..ce5375bb --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendGiftView/View/YUMIPresentWeekSatellitePingbackRegard.h @@ -0,0 +1,27 @@ +// +// YMGiftWeekStarBroadcastView.h +// YUMI +// +// Created by YUMI on 2022/10/8. +// + +#import +#import "PresentAbstractMatrix.h" + +NS_ASSUME_NONNULL_BEGIN + +@protocol FBCPresentWeekStarPingbackRegardRepresendtation + +- (void)yUMIPresentZhouStowardselliteBroadcastRegardZhouStowardselliteTicktack; + +@end + +@interface YUMIPresentWeekSatellitePingbackRegard : UIView + +@property (nonatomic, weak) id delegate; + +@property (nonatomic, strong) PresentAbstractMatrix *giftInfo; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/SendGiftView/View/YUMIPresentWeekSatellitePingbackRegard.m b/YuMi/Modules/YMRoom/View/SendGiftView/View/YUMIPresentWeekSatellitePingbackRegard.m new file mode 100644 index 00000000..f048b689 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendGiftView/View/YUMIPresentWeekSatellitePingbackRegard.m @@ -0,0 +1,249 @@ +// +// YMGiftWeekStarBroadcastView.m +// YUMI +// +// Created by YUMI on 2022/10/8. +// + +#import "YUMIPresentWeekSatellitePingbackRegard.h" +#import +#import "DJDKMIMOMColor.h" +#import "NetIndicateRegard.h" + +@interface YUMIPresentWeekSatellitePingbackRegard() + +@property (nonatomic, strong) UIImageView *backgroundIndicateRegard; +@property (nonatomic, strong) UIButton *zhouSatelliteBtuton; +@property (nonatomic, strong) NetIndicateRegard *fascinationIndicateRegard; +@property (nonatomic, strong) NetIndicateRegard *efficacyIndicateRegard; +@property (nonatomic, strong) UILabel *fascinationSequencignation; +@property (nonatomic, strong) UILabel *efficacySequencignation; +@property (nonatomic, strong) UIView *fascinationBackgroundRegard; +@property (nonatomic, strong) UILabel *fascinationMonicerSequencignation; +@property (nonatomic, strong) UIView *efficacyBackgroundRegard; +@property (nonatomic, strong) UILabel *efficacyMonicerSequencignation; + +@end + +@implementation YUMIPresentWeekSatellitePingbackRegard + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.backgroundIndicateRegard]; + [self addSubview:self.zhouSatelliteBtuton]; + [self addSubview:self.fascinationIndicateRegard]; + [self addSubview:self.fascinationSequencignation]; + [self addSubview:self.fascinationBackgroundRegard]; + [self addSubview:self.fascinationMonicerSequencignation]; + [self addSubview:self.efficacyIndicateRegard]; + [self addSubview:self.efficacySequencignation]; + [self addSubview:self.efficacyBackgroundRegard]; + [self addSubview:self.efficacyMonicerSequencignation]; +} + +- (void)initChildLyRestrictions { + [self.backgroundIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(0); + make.left.right.mas_equalTo(self).inset(10); + make.height.mas_equalTo(44); + }]; + [self.fascinationIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.backgroundIndicateRegard).mas_offset(10); + make.width.height.mas_equalTo(30); + make.centerY.mas_equalTo(self.backgroundIndicateRegard); + }]; + [self.fascinationSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.fascinationIndicateRegard); + make.height.mas_equalTo(12); + make.left.mas_equalTo(self.fascinationIndicateRegard.mas_right).mas_offset(12); + }]; + [self.fascinationBackgroundRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.fascinationMonicerSequencignation); + make.height.mas_equalTo(16); + make.left.right.mas_equalTo(self.fascinationMonicerSequencignation).inset(-6); + }]; + [self.fascinationMonicerSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.fascinationSequencignation.mas_bottom).mas_offset(6); + make.height.mas_equalTo(12); + make.left.mas_equalTo(self.fascinationSequencignation); + }]; + + [self.efficacyIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.fascinationSequencignation.mas_right).mas_offset(24); + make.width.height.mas_equalTo(30); + make.centerY.mas_equalTo(self.backgroundIndicateRegard); + }]; + [self.efficacySequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.efficacyIndicateRegard); + make.height.mas_equalTo(12); + make.left.mas_equalTo(self.efficacyIndicateRegard.mas_right).mas_offset(12); + }]; + [self.efficacyBackgroundRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.efficacyMonicerSequencignation); + make.height.mas_equalTo(16); + make.left.right.mas_equalTo(self.efficacyMonicerSequencignation).inset(-6); + }]; + [self.efficacyMonicerSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.efficacySequencignation.mas_bottom).mas_offset(6); + make.height.mas_equalTo(12); + make.left.mas_equalTo(self.efficacySequencignation); + }]; + [self.zhouSatelliteBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(30); + make.centerY.mas_equalTo(self.backgroundIndicateRegard); + make.right.mas_equalTo(self.backgroundIndicateRegard).mas_offset(-7); + make.width.mas_equalTo(38); + }]; +} + +#pragma mark - action +- (void)prohibitiportBtutonPerformance:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIPresentZhouStowardselliteBroadcastRegardZhouStowardselliteTicktack)]) { + [self.delegate yUMIPresentZhouStowardselliteBroadcastRegardZhouStowardselliteTicktack]; + } +} + +- (void)setGiftInfo:(PresentAbstractMatrix *)giftInfo { + if (giftInfo.firstCharmRankUser) { + self.fascinationIndicateRegard.imageUrl = giftInfo.firstCharmRankUser.avatar; + NSString * nick = giftInfo.firstCharmRankUser.nick; + if (nick.length > 8) { + nick = [nick substringFromIndex:8]; + } + self.fascinationMonicerSequencignation.text = nick; + } else { + self.fascinationIndicateRegard.image = [UIIndicateConstant deficiencyDispossessIntelligenceportraitDepapossessor]; + self.fascinationMonicerSequencignation.text = YMLocalizedString(@"YUMI_Gift_Week_Star_Broadcast_View_0"); + } + + if (giftInfo.firstLevelRankUser) { + self.efficacyIndicateRegard.imageUrl = giftInfo.firstLevelRankUser.avatar; + NSString * nick = giftInfo.firstLevelRankUser.nick; + if (nick.length > 8) { + nick = [nick substringFromIndex:8]; + } + self.efficacyMonicerSequencignation.text = nick; + } else { + self.efficacyIndicateRegard.image = [UIIndicateConstant deficiencyDispossessIntelligenceportraitDepapossessor]; + self.efficacyMonicerSequencignation.text = YMLocalizedString(@"YUMI_Gift_Week_Star_Broadcast_View_1"); + } +} + +- (UIImageView *)backgroundIndicateRegard { + if (!_backgroundIndicateRegard) { + _backgroundIndicateRegard = [[UIImageView alloc] init]; + _backgroundIndicateRegard.image = [UIImage imageNamed:@"yumi_present_weekStar_background"]; + _backgroundIndicateRegard.contentMode = UIViewContentModeScaleAspectFill; + } + return _backgroundIndicateRegard; +} + +- (NetIndicateRegard *)fascinationIndicateRegard { + if (!_fascinationIndicateRegard) { + NetIndicateDisposition *config = [[NetIndicateDisposition alloc] init]; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyDispossessIntelligenceportraitDepapossessor]; + _fascinationIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _fascinationIndicateRegard.userInteractionEnabled = YES; + _fascinationIndicateRegard.layer.masksToBounds = YES; + _fascinationIndicateRegard.layer.cornerRadius = 15; + } + return _fascinationIndicateRegard; +} + +- (UILabel *)fascinationSequencignation { + if (!_fascinationSequencignation) { + UILabel *label = [[UILabel alloc] init]; + label.font = [UIFont systemFontOfSize:10]; + label.textColor = [DJDKMIMOMColor mainEssayPrettify]; + label.text = YMLocalizedString(@"YUMI_Gift_Week_Star_Broadcast_View_2"); + _fascinationSequencignation = label; + } + return _fascinationSequencignation; +} + +- (UIView *)fascinationBackgroundRegard { + if (!_fascinationBackgroundRegard) { + UIView *view = [[UIView alloc] init]; + view.backgroundColor = UIColorRGBAlpha(0xffffff, 0.2); + view.layer.cornerRadius = 8; + view.layer.masksToBounds = YES; + _fascinationBackgroundRegard = view; + } + return _fascinationBackgroundRegard; +} + +- (UILabel *)fascinationMonicerSequencignation { + if (!_fascinationMonicerSequencignation) { + UILabel *label = [[UILabel alloc] init]; + label.font = [UIFont systemFontOfSize:10]; + label.textColor = [UIColor whiteColor]; + label.text = YMLocalizedString(@"YUMI_Gift_Week_Star_Broadcast_View_3"); + _fascinationMonicerSequencignation = label; + } + return _fascinationMonicerSequencignation; +} + +- (NetIndicateRegard *)efficacyIndicateRegard { + if (!_efficacyIndicateRegard) { + NetIndicateDisposition *config = [[NetIndicateDisposition alloc] init]; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyDispossessIntelligenceportraitDepapossessor]; + _efficacyIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _efficacyIndicateRegard.userInteractionEnabled = YES; + _efficacyIndicateRegard.layer.masksToBounds = YES; + _efficacyIndicateRegard.layer.cornerRadius = 15; + } + return _efficacyIndicateRegard; +} + +- (UILabel *)efficacySequencignation { + if (!_efficacySequencignation) { + UILabel *label = [[UILabel alloc] init]; + label.font = [UIFont systemFontOfSize:10]; + label.textColor = [DJDKMIMOMColor mainEssayPrettify]; + label.text = YMLocalizedString(@"YUMI_Gift_Week_Star_Broadcast_View_4"); + _efficacySequencignation = label; + } + return _efficacySequencignation; +} + +- (UIView *)efficacyBackgroundRegard { + if (!_efficacyBackgroundRegard) { + UIView *view = [[UIView alloc] init]; + view.backgroundColor = UIColorRGBAlpha(0xffffff, 0.2); + view.layer.cornerRadius = 8; + view.layer.masksToBounds = YES; + _efficacyBackgroundRegard = view; + } + return _efficacyBackgroundRegard; +} +- (UILabel *)efficacyMonicerSequencignation { + if (!_efficacyMonicerSequencignation) { + UILabel *label = [[UILabel alloc] init]; + label.font = [UIFont systemFontOfSize:10]; + label.textColor = [UIColor whiteColor]; + label.text = YMLocalizedString(@"YUMI_Gift_Week_Star_Broadcast_View_5"); + _efficacyMonicerSequencignation = label; + } + return _efficacyMonicerSequencignation; +} + +- (UIButton *)zhouSatelliteBtuton { + if (!_zhouSatelliteBtuton) { + UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; + [button setImage:[UIImage imageNamed:@"yumi_present_weekStar_entrance"] forState:UIControlStateNormal]; + [button addTarget:self action:@selector(prohibitiportBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + _zhouSatelliteBtuton = button; + } + return _zhouSatelliteBtuton; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/SendRedPacket/Api/Api+RedPacket.h b/YuMi/Modules/YMRoom/View/SendRedPacket/Api/Api+RedPacket.h new file mode 100644 index 00000000..ad0c4ea6 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendRedPacket/Api/Api+RedPacket.h @@ -0,0 +1,21 @@ +// +// Api+RedPacket.h +// YUMI +// +// Created by YUMI on 2022/8/31. +// + +#import "Api.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface Api (RedPacket) + ++ (void)prohibitichargeDeficitShetowardshe:(HttpRequestHelperCompletion)completion num:(NSString *)num goldNum:(NSString *)goldNum roomUId:(NSString *)roomUId type:(NSNumber *)type password:(NSString *)password message:(NSString *)message; + + ++ (void)unfoildDeficitShetowardshe:(HttpRequestHelperCompletion)completion redEnvelopeId:(NSString *)redEnvelopeId; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/SendRedPacket/Api/Api+RedPacket.m b/YuMi/Modules/YMRoom/View/SendRedPacket/Api/Api+RedPacket.m new file mode 100644 index 00000000..8c3157a1 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendRedPacket/Api/Api+RedPacket.m @@ -0,0 +1,22 @@ +// +// Api+RedPacket.m +// YUMI +// +// Created by YUMI on 2022/8/31. +// + +#import "Api+RedPacket.h" +#import +@implementation Api (RedPacket) + ++ (void)prohibitichargeDeficitShetowardshe:(HttpRequestHelperCompletion)completion num:(NSString *)num goldNum:(NSString *)goldNum roomUId:(NSString *)roomUId type:(NSNumber *)type password:(NSString *)password message:(NSString *)message { + NSString * fang = [NSString stringFromBase64String:@"cmVkLWVudmVsb3Bl"]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, num, goldNum, roomUId, type, password, message, nil]; +} + ++ (void)unfoildDeficitShetowardshe:(HttpRequestHelperCompletion)completion redEnvelopeId:(NSString *)redEnvelopeId { + NSString * fang = [NSString stringFromBase64String:@"cmVkLWVudmVsb3BlL29wZW4="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, redEnvelopeId, nil]; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/SendRedPacket/Cell/YUMIUnfoildDeficitSheatheElement.h b/YuMi/Modules/YMRoom/View/SendRedPacket/Cell/YUMIUnfoildDeficitSheatheElement.h new file mode 100644 index 00000000..ced7e0b2 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendRedPacket/Cell/YUMIUnfoildDeficitSheatheElement.h @@ -0,0 +1,19 @@ +// +// YMOpenRedPacketCell.h +// YUMI +// +// Created by YUMI on 2022/9/2. +// + +#import +#import "YUMIDeficitSheatheConsequentMatrix.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIUnfoildDeficitSheatheElement : UITableViewCell + +@property (nonatomic, strong) YUMIDeficitSheatheFeatureAchieveMatrix *model; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/SendRedPacket/Cell/YUMIUnfoildDeficitSheatheElement.m b/YuMi/Modules/YMRoom/View/SendRedPacket/Cell/YUMIUnfoildDeficitSheatheElement.m new file mode 100644 index 00000000..00d0d98b --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendRedPacket/Cell/YUMIUnfoildDeficitSheatheElement.m @@ -0,0 +1,172 @@ +// +// YMOpenRedPacketCell.m +// YUMI +// +// Created by YUMI on 2022/9/2. +// + +#import "YUMIUnfoildDeficitSheatheElement.h" +#import "DJDKMIMOMColor.h" +#import +#import "AccountAbstractStorage.h" +#import "NetIndicateRegard.h" + +@interface YUMIUnfoildDeficitSheatheElement() + +@property (nonatomic, strong) NetIndicateRegard *intelligenceportraitRegard; +@property (nonatomic, strong) UILabel *consumerConstituteSequencignation; +@property(nonatomic, strong) UILabel *intratemporalSequencignation; +@property (nonatomic, strong) UILabel *amountSequencignation; +@property (nonatomic, strong) UIImageView *tangerineIndicateRegard; + +@property (nonatomic, strong) UIView *burlywoodRegard; + +@end + +@implementation YUMIUnfoildDeficitSheatheElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; + if (self) { + [self initRegards]; + } + return self; +} + +- (void)setModel:(YUMIDeficitSheatheFeatureAchieveMatrix *)model { + _model = model; + NSString *uid = [AccountAbstractStorage instance].acquireCid; + BOOL isMe = model.userVO.uid == uid.integerValue; + if (isMe) { + self.consumerConstituteSequencignation.text = YMLocalizedString(@"YUMI_Open_Red_Packet_Cell_0"); + self.consumerConstituteSequencignation.textColor = UIColorFromRGB(0xFDCD00); + } else { + NSString *name = model.userVO.nick; + if (model.userVO.nick.length > 6) { + name = [name substringToIndex:6]; + name = [name stringByAppendingString:@"..."]; + } + self.consumerConstituteSequencignation.text = name; + self.consumerConstituteSequencignation.textColor = UIColorFromRGB(0xFFFFFF); + } + self.intelligenceportraitRegard.imageUrl = model.userVO.avatar; + NSDate *date = [NSDate dateWithTimeIntervalSince1970:model.createTime/1000]; + NSDateFormatter *engagementInitialiser = [[NSDateFormatter alloc] init]; + [engagementInitialiser setDateFormat:@"yyyy/MM/dd HH:mm"]; + self.intratemporalSequencignation.text = [engagementInitialiser stringFromDate:date]; + self.amountSequencignation.hidden = NO; + if (model.amount.doubleValue> 0) { + NSString *doubleString = [NSString stringWithFormat:@"%lf", model.amount.doubleValue]; + NSDecimalNumber *decNumber = [NSDecimalNumber decimalNumberWithString:doubleString]; + self.amountSequencignation.text = [NSString stringWithFormat:@"%@",decNumber.stringValue]; + }else { + self.amountSequencignation.text = @"0"; + } +} + +#pragma mark - UI +- (void)initRegards { + [self.contentView addSubview:self.intelligenceportraitRegard]; + [self.contentView addSubview:self.consumerConstituteSequencignation]; + [self.contentView addSubview:self.intratemporalSequencignation]; + [self.contentView addSubview:self.amountSequencignation]; + [self.contentView addSubview:self.tangerineIndicateRegard]; + [self.contentView addSubview:self.burlywoodRegard]; + + [self.intelligenceportraitRegard mas_makeConstraints:^(MASConstraintMaker *make){ + make.height.width.mas_equalTo(30); + make.centerY.mas_equalTo(self.mas_centerY); + make.left.mas_equalTo(self.contentView.mas_left).offset(22); + }]; + + [self.consumerConstituteSequencignation mas_makeConstraints:^(MASConstraintMaker *make){ + make.left.mas_equalTo(self.intelligenceportraitRegard.mas_right).offset(6.5); + make.top.mas_equalTo(self.intelligenceportraitRegard.mas_top).offset(2.5); + make.height.mas_equalTo(14); + }]; + + [self.intratemporalSequencignation mas_makeConstraints:^(MASConstraintMaker *make){ + make.left.mas_equalTo(self.intelligenceportraitRegard.mas_right).offset(6.5); + make.bottom.mas_equalTo(self.intelligenceportraitRegard.mas_bottom); + }]; + + [self.tangerineIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make){ + make.width.mas_equalTo(22); + make.height.mas_equalTo(22); + make.centerY.mas_equalTo(self.mas_centerY); + make.right.mas_equalTo(self.contentView.mas_right).offset(-22); + }]; + + [self.amountSequencignation mas_makeConstraints:^(MASConstraintMaker *make){ + make.centerY.mas_equalTo(self.mas_centerY); + make.right.mas_equalTo(self.tangerineIndicateRegard.mas_left).offset(-5); + }]; + + [self.burlywoodRegard mas_makeConstraints:^(MASConstraintMaker *make){ + make.left.mas_equalTo(self.intelligenceportraitRegard.mas_left); + make.right.mas_equalTo(self.tangerineIndicateRegard.mas_right); + make.height.mas_equalTo(0.5); + }]; +} + +#pragma mark - Lazy Load +- (NetIndicateRegard *)intelligenceportraitRegard { + if (!_intelligenceportraitRegard) { + _intelligenceportraitRegard = [[NetIndicateRegard alloc] init]; + _intelligenceportraitRegard.layer.masksToBounds = YES; + _intelligenceportraitRegard.layer.cornerRadius = 15; + _intelligenceportraitRegard.layer.borderWidth = 1; + _intelligenceportraitRegard.layer.borderColor = UIColorFromRGB(0xFFFFFF).CGColor; + } + return _intelligenceportraitRegard; +} + +- (UILabel *)consumerConstituteSequencignation { + if (!_consumerConstituteSequencignation) { + _consumerConstituteSequencignation = [[UILabel alloc] init]; + _consumerConstituteSequencignation.text = YMLocalizedString(@"YUMI_Open_Red_Packet_Cell_1"); + _consumerConstituteSequencignation.numberOfLines = 1; + _consumerConstituteSequencignation.font = [UIFont systemFontOfSize:15]; + } + return _consumerConstituteSequencignation; +} + +- (UILabel *)intratemporalSequencignation { + if (!_intratemporalSequencignation) { + _intratemporalSequencignation = [[UILabel alloc] init]; + _intratemporalSequencignation.text = @"00/00/00 00:00"; + _intratemporalSequencignation.font = [UIFont systemFontOfSize:10]; + _intratemporalSequencignation.textColor = UIColorRGBAlpha(0xffffff, 0.5); + _intratemporalSequencignation.alpha = 0.5; + } + return _intratemporalSequencignation; +} + +- (UILabel *)amountSequencignation { + if (!_amountSequencignation) { + _amountSequencignation = [[UILabel alloc] init]; + _amountSequencignation.text = YMLocalizedString(@"YUMI_Open_Red_Packet_Cell_2"); + _amountSequencignation.textAlignment = NSTextAlignmentRight; + _amountSequencignation.font = [UIFont systemFontOfSize:20 weight:UIFontWeightMedium]; + _amountSequencignation.textColor = [UIColor whiteColor]; + } + return _amountSequencignation; +} + +- (UIImageView *)tangerineIndicateRegard { + if (!_tangerineIndicateRegard) { + _tangerineIndicateRegard = [[UIImageView alloc] init]; + [_tangerineIndicateRegard setImage:[UIImage imageNamed:@"yumi_same_diamond"]]; + } + return _tangerineIndicateRegard; +} + +- (UIView *)burlywoodRegard{ + if (!_burlywoodRegard) { + _burlywoodRegard = [[UIView alloc] init]; + _burlywoodRegard.backgroundColor = UIColorFromRGB(0xE2314D); + } + return _burlywoodRegard; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/SendRedPacket/Model/YUMIAchieveDeficitSheatheMatrix.h b/YuMi/Modules/YMRoom/View/SendRedPacket/Model/YUMIAchieveDeficitSheatheMatrix.h new file mode 100644 index 00000000..ba01a6b7 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendRedPacket/Model/YUMIAchieveDeficitSheatheMatrix.h @@ -0,0 +1,24 @@ +// +// YMReceiveRedPacketModel.h +// YUMI +// +// Created by YUMI on 2022/9/2. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIAchieveDeficitSheatheMatrix : NSObject + +@property (nonatomic, copy) NSString *sendUserAvatar; +@property (nonatomic, copy) NSString *sendUserNick; +@property (nonatomic, copy) NSString *roomUid; +@property (nonatomic, assign) NSInteger redEnvelopeType; +@property (nonatomic, copy) NSString *roomTitle; +@property (nonatomic, copy) NSString *redEnvelopeId; +@property (nonatomic, copy) NSString *redEnvelopeMessage; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/SendRedPacket/Model/YUMIAchieveDeficitSheatheMatrix.m b/YuMi/Modules/YMRoom/View/SendRedPacket/Model/YUMIAchieveDeficitSheatheMatrix.m new file mode 100644 index 00000000..ce1d27c3 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendRedPacket/Model/YUMIAchieveDeficitSheatheMatrix.m @@ -0,0 +1,12 @@ +// +// YMReceiveRedPacketModel.m +// YUMI +// +// Created by YUMI on 2022/9/2. +// + +#import "YUMIAchieveDeficitSheatheMatrix.h" + +@implementation YUMIAchieveDeficitSheatheMatrix + +@end diff --git a/YuMi/Modules/YMRoom/View/SendRedPacket/Model/YUMIDeficitSheatheConsequentMatrix.h b/YuMi/Modules/YMRoom/View/SendRedPacket/Model/YUMIDeficitSheatheConsequentMatrix.h new file mode 100644 index 00000000..66b82982 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendRedPacket/Model/YUMIDeficitSheatheConsequentMatrix.h @@ -0,0 +1,45 @@ +// +// YMRedPacketResultModel.h +// YUMI +// +// Created by YUMI on 2022/9/2. +// + +#import +#import "YUMIDeficitSheatheMatrix.h" + +NS_ASSUME_NONNULL_BEGIN + + +typedef enum : NSUInteger { + RedPacketState_Ing = 1, + RedPacketState_Time_Out = 2, + RedPacketState_Remain_Zero = 3, + RedPacketState_Success = 4, + RedPacketState_will = 5, + RedPacketState_Time_Out_Back = 6, +} RedPacketState; + +@class ConsumerAbstractMatrix, YUMIDeficitSheatheFeatureAchieveMatrix; +@interface YUMIDeficitSheatheConsequentMatrix : NSObject + +@property (nonatomic, copy) NSString *currentUserAmount; + +@property (nonatomic, assign) RedPacketState redEnvelopeState; + +@property (nonatomic, strong) YUMIDeficitSheatheMatrix *redEnvelopeVO; +@property (nonatomic, strong) NSArray *redEnvelopeItemVOs; + +@end + +@interface YUMIDeficitSheatheFeatureAchieveMatrix : NSObject + +@property (nonatomic, strong) NSNumber *amount; + +@property (nonatomic, strong) ConsumerAbstractMatrix *userVO; + +@property (nonatomic, assign) NSTimeInterval createTime; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/SendRedPacket/Model/YUMIDeficitSheatheConsequentMatrix.m b/YuMi/Modules/YMRoom/View/SendRedPacket/Model/YUMIDeficitSheatheConsequentMatrix.m new file mode 100644 index 00000000..322e00e8 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendRedPacket/Model/YUMIDeficitSheatheConsequentMatrix.m @@ -0,0 +1,22 @@ +// +// YMRedPacketResultModel.m +// YUMI +// +// Created by YUMI on 2022/9/2. +// + +#import "YUMIDeficitSheatheConsequentMatrix.h" + +@implementation YUMIDeficitSheatheConsequentMatrix + ++ (NSDictionary *)objectCtowardsegorizeInGarment { + return @{ + @"redEnvelopeItemVOs": YUMIDeficitSheatheFeatureAchieveMatrix.class + }; +} + +@end + +@implementation YUMIDeficitSheatheFeatureAchieveMatrix + +@end diff --git a/YuMi/Modules/YMRoom/View/SendRedPacket/Model/YUMIDeficitSheatheMatrix.h b/YuMi/Modules/YMRoom/View/SendRedPacket/Model/YUMIDeficitSheatheMatrix.h new file mode 100644 index 00000000..1bd4a612 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendRedPacket/Model/YUMIDeficitSheatheMatrix.h @@ -0,0 +1,36 @@ +// +// YMRedPacketModel.h +// YUMI +// +// Created by YUMI on 2022/9/2. +// + +#import +#import "ConsumerAbstractMatrix.h" + +NS_ASSUME_NONNULL_BEGIN + +typedef enum : NSUInteger { + RedPacketType_RoomDiamond = 1, + RedPacketType_AllDiamond = 2, + RedPacketType_RoomGift = 3, + RedPacketType_AllGift = 4 +} RedPacketType; + +@interface YUMIDeficitSheatheMatrix : NSObject + +@property (nonatomic, assign) RedPacketType type; + +@property (nonatomic, copy) NSString *redEnvelopeId; + +@property (nonatomic, copy) NSString *message; +@property (nonatomic, copy) NSString *roomUId; +@property (nonatomic, copy) NSString *userId; +@property (nonatomic, strong) ConsumerAbstractMatrix *userVO; +@property (nonatomic, copy) NSString *totalNum; +@property (nonatomic, copy) NSString *redEnvelopeAmount; +@property (nonatomic, copy) NSString *pickNum; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/SendRedPacket/Model/YUMIDeficitSheatheMatrix.m b/YuMi/Modules/YMRoom/View/SendRedPacket/Model/YUMIDeficitSheatheMatrix.m new file mode 100644 index 00000000..2548afd1 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendRedPacket/Model/YUMIDeficitSheatheMatrix.m @@ -0,0 +1,16 @@ +// +// YMRedPacketModel.m +// YUMI +// +// Created by YUMI on 2022/9/2. +// + +#import "YUMIDeficitSheatheMatrix.h" + +@implementation YUMIDeficitSheatheMatrix + ++ (NSDictionary *)replacedDigitalByvirtueofMaintainertyConstitute { + return @{@"redEnvelopeId":@"id"}; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/SendRedPacket/Model/YUMIUnfoildDeficitSheatheMatrix.h b/YuMi/Modules/YMRoom/View/SendRedPacket/Model/YUMIUnfoildDeficitSheatheMatrix.h new file mode 100644 index 00000000..552a15f1 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendRedPacket/Model/YUMIUnfoildDeficitSheatheMatrix.h @@ -0,0 +1,23 @@ +// +// YMOpenRedPacketModel.h +// YUMI +// +// Created by YUMI on 2022/9/16. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIUnfoildDeficitSheatheMatrix : NSObject + +@property (nonatomic, copy) NSString *openRedEnvelopeId; +@property (nonatomic, copy) NSString *openRedEnvelopeUserNick; +@property (nonatomic, copy) NSString *amount; +@property (nonatomic, copy) NSString *redEnvelopeMasterId; +@property (nonatomic, copy) NSString *redEnvelopeMasterNick; +@property (nonatomic, assign) NSInteger redEnvelopeType; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/SendRedPacket/Model/YUMIUnfoildDeficitSheatheMatrix.m b/YuMi/Modules/YMRoom/View/SendRedPacket/Model/YUMIUnfoildDeficitSheatheMatrix.m new file mode 100644 index 00000000..ef4f04ee --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendRedPacket/Model/YUMIUnfoildDeficitSheatheMatrix.m @@ -0,0 +1,12 @@ +// +// YMOpenRedPacketModel.m +// YUMI +// +// Created by YUMI on 2022/9/16. +// + +#import "YUMIUnfoildDeficitSheatheMatrix.h" + +@implementation YUMIUnfoildDeficitSheatheMatrix + +@end diff --git a/YuMi/Modules/YMRoom/View/SendRedPacket/Presenter/YUMIChamberDeficitSheatheExternalizer.h b/YuMi/Modules/YMRoom/View/SendRedPacket/Presenter/YUMIChamberDeficitSheatheExternalizer.h new file mode 100644 index 00000000..48b746db --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendRedPacket/Presenter/YUMIChamberDeficitSheatheExternalizer.h @@ -0,0 +1,22 @@ +// +// YMRoomRedPacketPresenter.h +// YUMI +// +// Created by YUMI on 2022/8/31. +// + +#import "BaseMvpExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIChamberDeficitSheatheExternalizer : BaseMvpExternalizer + +- (void)acquireConsumerPocketbookAbstract; + +- (void)acquireConsumerMtowardsrix; + +- (void)prohibitichargeDeficitShetowardsheAboutFigure:(NSString *)num goldNum:(NSString *)goldNum roomUid:(NSString *)roomUid type:(NSNumber *)type password:(NSString *)pwd message:(NSString *)message; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/SendRedPacket/Presenter/YUMIChamberDeficitSheatheExternalizer.m b/YuMi/Modules/YMRoom/View/SendRedPacket/Presenter/YUMIChamberDeficitSheatheExternalizer.m new file mode 100644 index 00000000..3d69177a --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendRedPacket/Presenter/YUMIChamberDeficitSheatheExternalizer.m @@ -0,0 +1,46 @@ +// +// YMRoomRedPacketPresenter.m +// YUMI +// +// Created by YUMI on 2022/8/31. +// + +#import "YUMIChamberDeficitSheatheExternalizer.h" +#import "FBCChamberRedPacketCeremony.h" +#import "Api+RedPacket.h" +#import "AccountAbstractStorage.h" +#import "RamparatetAbstractMatrix.h" +#import "ConsumerAbstractMatrix.h" +#import "DESEncrypt.h" +#import "YUMIConstant.h" + +@implementation YUMIChamberDeficitSheatheExternalizer + +- (void)acquireConsumerPocketbookAbstract { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NSString * ticket = [AccountAbstractStorage instance].acquireTicket; + if (!uid.length) { + return; + } + [Api acquireConsumerPocketbookAbstract:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + RamparatetAbstractMatrix * model = [RamparatetAbstractMatrix mtowardsrixAboutImpactbasket:data.data]; + [[self acquireRegard] acquireConsumerPocketbookAbstract:model]; + }] uid:uid ticket:ticket]; +} + +- (void)acquireConsumerMtowardsrix { + NSString * uid = [[AccountAbstractStorage instance] acquireCid]; + [Api getUserInfo:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + ConsumerAbstractMatrix *userInfo = [ConsumerAbstractMatrix mtowardsrixAboutImpactbasket:data.data]; + [[self acquireRegard] dwellEarnConsumerAbstractAccomplishment:userInfo]; + } EvidenceChambering:NO] uid:uid]; +} + +- (void)prohibitichargeDeficitShetowardsheAboutFigure:(NSString *)num goldNum:(NSString *)goldNum roomUid:(NSString *)roomUid type:(NSNumber *)type password:(NSString *)pwd message:(NSString *)message { + NSString *password = [DESEncrypt encryptUseDES:pwd key:KeyWithType(KeyGenre_PasswordEncode)]; + [Api prohibitichargeDeficitShetowardshe:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] prohibitichargeDeficitShetowardsheAccomplishment]; + }] num:num goldNum:goldNum roomUId:roomUid type:type password:password message:message]; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/SendRedPacket/Protocol/FBCChamberRedPacketCeremony.h b/YuMi/Modules/YMRoom/View/SendRedPacket/Protocol/FBCChamberRedPacketCeremony.h new file mode 100644 index 00000000..352cb5ba --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendRedPacket/Protocol/FBCChamberRedPacketCeremony.h @@ -0,0 +1,23 @@ +// +// YMRoomRedPacketProtocol.h +// YUMI +// +// Created by YUMI on 2022/8/31. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class RamparatetAbstractMatrix, ConsumerAbstractMatrix; + +@protocol FBCChamberRedPacketCeremony + +- (void)acquireConsumerPocketbookAbstract:(RamparatetAbstractMatrix *)balanceInfo; +- (void)dwellEarnConsumerAbstractAccomplishment:(ConsumerAbstractMatrix *)userInfo; + +- (void)prohibitichargeDeficitShetowardsheAccomplishment; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/SendRedPacket/YUMIAchieveDeficitSheatheRegard.h b/YuMi/Modules/YMRoom/View/SendRedPacket/YUMIAchieveDeficitSheatheRegard.h new file mode 100644 index 00000000..4eedb2dc --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendRedPacket/YUMIAchieveDeficitSheatheRegard.h @@ -0,0 +1,24 @@ +// +// YMReceiveRedPacketView.h +// YUMI +// +// Created by YUMI on 2022/9/2. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class YUMIAchieveDeficitSheatheMatrix, YUMIDeficitSheatheMatrix; +@interface YUMIAchieveDeficitSheatheRegard : UIView + +@property (nonatomic, assign) BOOL inEntiretySheatheChamber; +@property (nonatomic, strong) YUMIAchieveDeficitSheatheMatrix *deficitSheatheMatrix; + +@property (nonatomic, strong) YUMIDeficitSheatheMatrix *achieveMatrix; + +@property (nonatomic, strong) UIView *transparencyRegard; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/SendRedPacket/YUMIAchieveDeficitSheatheRegard.m b/YuMi/Modules/YMRoom/View/SendRedPacket/YUMIAchieveDeficitSheatheRegard.m new file mode 100644 index 00000000..d6c1b699 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendRedPacket/YUMIAchieveDeficitSheatheRegard.m @@ -0,0 +1,465 @@ +// +// YMReceiveRedPacketView.m +// YUMI +// +// Created by YUMI on 2022/9/2. +// + +#import "YUMIAchieveDeficitSheatheRegard.h" +#import "YUMIAchieveDeficitSheatheMatrix.h" +#import "NSObject+MJExtension.h" +#import "DJDKMIMOMColor.h" +#import +#import "NetIndicateRegard.h" +#import "MKJPopup.h" +#import "Api+RedPacket.h" +#import "XNDJTBWGLoadingTool.h" +#import "YUMIDeficitSheatheConsequentMatrix.h" +#import "YUMIUnfoildDeficitSheatheElement.h" +#import "XCCurrentVCStackExecutive.h" +#import "YUMIChamberRegardGovernancer.h" +#import "ChamberHostRepresendtation.h" +#import "YUMIChamberMiniExecutive.h" +#import "ChamberAbstractMatrix.h" +#import "YUMIDeficitSheatheMatrix.h" +#import "YUMIConstant.h" +#import "NSArray+Safe.h" + +@interface YUMIAchieveDeficitSheatheRegard() + +@property (nonatomic, strong) YUMIDeficitSheatheConsequentMatrix *resultData; + +@property (nonatomic, strong) UIImageView *backgroundIndicateRegard; +@property (nonatomic, strong) NetIndicateRegard *dischargeIntelligenceportrait; +@property (nonatomic, strong) UILabel *dischargeMonicerSequencignation; +@property (nonatomic, strong) UILabel *dischargeSequencireSequencignation; +@property (nonatomic, strong) UIButton *unfoildBtuton; +@property (nonatomic, strong) UIButton *concludeBtuton; +@property (nonatomic, strong) UIView *bWSttawberrySatisfperformanceRegard; +@property (nonatomic, strong) UIImageView *bWSttawberryIndicate; +@property (nonatomic, strong) UILabel *bWSttawberrySequencignation; +@property (nonatomic, strong) UILabel *acquireSequencignation; +@property (nonatomic, strong) UILabel *unfoildSituationSequencignation; +@property (nonatomic, strong) UITableView *tableView; + +@end + +@implementation YUMIAchieveDeficitSheatheRegard + +- (instancetype)initWithFrame:(CGRect)frame { + if (self = [super initWithFrame:frame]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.transparencyRegard]; + [self addSubview:self.backgroundIndicateRegard]; + [self addSubview:self.dischargeIntelligenceportrait]; + [self addSubview:self.dischargeMonicerSequencignation]; + [self addSubview:self.dischargeSequencireSequencignation]; + [self addSubview:self.unfoildBtuton]; + [self addSubview:self.concludeBtuton]; +} + +- (void)initChildLyRestrictions { + [self.transparencyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(0); + }]; + [self.backgroundIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(310); + make.height.mas_equalTo(450); + make.centerX.centerY.mas_equalTo(self); + }]; + [self.concludeBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.backgroundIndicateRegard.mas_bottom).mas_offset(25); + make.height.width.mas_equalTo(35); + make.centerX.mas_equalTo(self.backgroundIndicateRegard); + }]; + + [self.dischargeIntelligenceportrait mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.backgroundIndicateRegard); + make.top.mas_equalTo(self.backgroundIndicateRegard).mas_offset(71); + make.width.height.mas_equalTo(88); + }]; + [self.dischargeMonicerSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.backgroundIndicateRegard); + make.top.mas_equalTo(self.dischargeIntelligenceportrait.mas_bottom).mas_offset(9); + make.height.mas_equalTo(18); + make.left.mas_equalTo(self.backgroundIndicateRegard).mas_offset(16); + }]; + [self.dischargeSequencireSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.backgroundIndicateRegard); + make.left.mas_equalTo(self.backgroundIndicateRegard).mas_offset(30); + make.top.mas_equalTo(self.dischargeMonicerSequencignation.mas_bottom).mas_offset(30); + }]; + [self.unfoildBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.backgroundIndicateRegard); + make.width.height.mas_equalTo(107); + make.bottom.mas_equalTo(self.backgroundIndicateRegard).mas_offset(-75); + }]; +} + +- (void)setInEntiretySheatheChamber:(BOOL)inEntiretySheatheChamber { + _inEntiretySheatheChamber = inEntiretySheatheChamber; +} + +- (void)setDeficitSheatheMatrix:(YUMIAchieveDeficitSheatheMatrix *)deficitSheatheMatrix { + _deficitSheatheMatrix = deficitSheatheMatrix; + self.dischargeIntelligenceportrait.imageUrl = deficitSheatheMatrix.sendUserAvatar; + self.dischargeSequencireSequencignation.text = deficitSheatheMatrix.redEnvelopeMessage; + if (deficitSheatheMatrix.redEnvelopeType == 1) { + self.dischargeMonicerSequencignation.text = deficitSheatheMatrix.sendUserNick; + } else { + if (self.inEntiretySheatheChamber) { + self.dischargeMonicerSequencignation.text = deficitSheatheMatrix.sendUserNick; + } else { + NSString *nick = deficitSheatheMatrix.sendUserNick; + if (deficitSheatheMatrix.sendUserNick.length > 6) { + nick = [NSString stringWithFormat:@"%@...", [deficitSheatheMatrix.sendUserNick substringToIndex:6]]; + } + NSString *roomTitle = deficitSheatheMatrix.roomTitle; + if (deficitSheatheMatrix.roomTitle.length > 6) { + roomTitle = [NSString stringWithFormat:@"%@...", [deficitSheatheMatrix.roomTitle substringToIndex:6]]; + } + + NSMutableAttributedString *attribute = [[NSMutableAttributedString alloc] init]; + NSMutableAttributedString *roomAttr = [[NSMutableAttributedString alloc] initWithString:roomTitle attributes:@{NSForegroundColorAttributeName : UIColorFromRGB(0xFDCD00)}]; + NSMutableAttributedString *redPacketStr = [[NSMutableAttributedString alloc] initWithString:YMLocalizedString(@"YUMI_Receive_Red_Packet_View_0") attributes:@{NSForegroundColorAttributeName : [UIColor whiteColor]}]; + NSMutableAttributedString *nickAttr = [[NSMutableAttributedString alloc] initWithString:nick attributes:@{NSForegroundColorAttributeName : UIColorFromRGB(0xFDCD00)}]; + [attribute appendAttributedString:roomAttr]; + [attribute appendAttributedString:redPacketStr]; + [attribute appendAttributedString:nickAttr]; + self.dischargeMonicerSequencignation.attributedText = attribute; + + [self.unfoildBtuton setImage:[UIImage imageNamed:@"yumi_redPacket_openRoom"] forState:UIControlStateNormal]; + [self.unfoildBtuton mas_remakeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.backgroundIndicateRegard); + make.width.mas_equalTo(147); + make.height.mas_equalTo(67); + make.bottom.mas_equalTo(self.backgroundIndicateRegard).mas_offset(-97); + }]; + } + } +} + +- (void)setAchieveMatrix:(YUMIDeficitSheatheMatrix *)achieveMatrix { + _achieveMatrix = achieveMatrix; + self.dischargeIntelligenceportrait.imageUrl = achieveMatrix.userVO.avatar; + self.dischargeSequencireSequencignation.text = achieveMatrix.message; + self.dischargeMonicerSequencignation.text = achieveMatrix.userVO.nick; +} + +#pragma mark - action +- (void)onUnfoildBtutonTicktack:(UIButton *)sender { + if (!self.deficitSheatheMatrix) { + [self unfoildChamberDeficitShetowardshe:sender redEnvelopeId:self.achieveMatrix.redEnvelopeId]; + } else { + + if (self.deficitSheatheMatrix.redEnvelopeType == 1) { + + [self unfoildChamberDeficitShetowardshe:sender redEnvelopeId:self.deficitSheatheMatrix.redEnvelopeId]; + } else { + + if (self.inEntiretySheatheChamber) { + [self unfoildChamberDeficitShetowardshe:sender redEnvelopeId:self.deficitSheatheMatrix.redEnvelopeId]; + } else { + if ([YUMIChamberMiniExecutive shareManager].acquireChamberAbstract) { + ChamberAbstractMatrix *roomInfo = [YUMIChamberMiniExecutive shareManager].acquireChamberAbstract; + if (roomInfo.uid == self.deficitSheatheMatrix.roomUid.integerValue) { + [YUMIChamberRegardGovernancer unfoildRoadliceChamber:[NSString stringWithFormat:@"%ld", roomInfo.uid] viewController:[[XCCurrentVCStackExecutive shareManager] getCurrentVC]]; + } else { + [YUMIChamberRegardGovernancer unfoildChamber:self.deficitSheatheMatrix.roomUid viewController:[[XCCurrentVCStackExecutive shareManager] getCurrentVC]]; + } + } else { + [[XCCurrentVCStackExecutive shareManager].getCurrentVC.navigationController.viewControllers enumerateObjectsUsingBlock:^(__kindof UIViewController * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if ([obj isKindOfClass:[YUMIChamberRegardGovernancer class]]) { + [[XCCurrentVCStackExecutive shareManager].getCurrentVC.navigationController popToRootViewControllerAnimated:NO]; + YUMIChamberRegardGovernancer * rooomVC = obj; + [rooomVC exitRoom]; + *stop = YES; + } + }]; + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + [YUMIChamberRegardGovernancer unfoildChamber:self.deficitSheatheMatrix.roomUid viewController:[XCCurrentVCStackExecutive shareManager].getCurrentVC]; + }); + } + [self removeFromSuperview]; + } + } + } +} + +- (void)unfoildChamberDeficitShetowardshe:(UIButton *)sender redEnvelopeId:(NSString *)redEnvelopeId { + + CABasicAnimation *transformAnima = [CABasicAnimation animationWithKeyPath:@"transform.rotation.y"]; + transformAnima.toValue = [NSNumber numberWithFloat:M_PI]; + transformAnima.duration = 0.3; + transformAnima.cumulative = NO; + transformAnima.autoreverses = YES; + transformAnima.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear]; + sender.layer.zPosition = 5; + sender.layer.zPosition = sender.layer.frame.size.width / 2.f; + transformAnima.repeatCount = 1; + [sender.layer addAnimation:transformAnima forKey:@"rotationAnimationY"]; + + [Api unfoildDeficitShetowardshe:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code != 200) { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:msg]; + return;; + } + YUMIDeficitSheatheConsequentMatrix *model = [YUMIDeficitSheatheConsequentMatrix mtowardsrixAboutJSON:data.data]; + self.resultData = model; + [self EvidenceDeficitShetowardsheConsequentRegardAboutConsequentTowardsoloudspeaker:model]; + + NSArray *history = [[NSUserDefaults standardUserDefaults] objectForKey:kRedPacketHistory]; + NSMutableArray *tempArray = [NSMutableArray arrayWithArray:history]; + if (![tempArray containsObject:self.resultData.redEnvelopeVO.redEnvelopeId]) { + [tempArray addObject:self.resultData.redEnvelopeVO.redEnvelopeId]; + [[NSUserDefaults standardUserDefaults] setObject:tempArray forKey:kRedPacketHistory]; + [[NSUserDefaults standardUserDefaults] synchronize]; + } + + } redEnvelopeId:redEnvelopeId]; +} + +- (void)EvidenceDeficitShetowardsheConsequentRegardAboutConsequentTowardsoloudspeaker:(YUMIDeficitSheatheConsequentMatrix *)resultData { + self.unfoildBtuton.hidden = YES; + [self addSubview:self.acquireSequencignation]; + [self addSubview:self.unfoildSituationSequencignation]; + [self addSubview:self.tableView]; + if (resultData.redEnvelopeState == RedPacketState_Success) { + [self addSubview:self.bWSttawberrySatisfperformanceRegard]; + [self.bWSttawberrySatisfperformanceRegard addSubview:self.bWSttawberryIndicate]; + [self.bWSttawberrySatisfperformanceRegard addSubview:self.bWSttawberrySequencignation]; + [self.bWSttawberrySatisfperformanceRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.backgroundIndicateRegard).mas_offset(30); + make.centerX.mas_equalTo(self); + make.height.mas_equalTo(27); + }]; + [self.bWSttawberryIndicate mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.bWSttawberrySatisfperformanceRegard); + make.centerY.mas_equalTo(self.bWSttawberrySatisfperformanceRegard); + make.width.height.mas_equalTo(24); + }]; + [self.bWSttawberrySequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.bWSttawberryIndicate.mas_right).mas_offset(6); + make.centerY.mas_equalTo(self.bWSttawberrySatisfperformanceRegard); + make.right.top.mas_equalTo(self.bWSttawberrySatisfperformanceRegard); + }]; + [self.acquireSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self); + make.top.mas_equalTo(self.bWSttawberrySatisfperformanceRegard.mas_bottom).mas_offset(10); + make.height.mas_equalTo(12); + }]; + self.bWSttawberrySequencignation.text = resultData.currentUserAmount; + self.acquireSequencignation.text = YMLocalizedString(@"YUMI_Receive_Red_Packet_View_1"); + } else if (resultData.redEnvelopeState == RedPacketState_Remain_Zero) { + self.acquireSequencignation.text = @"抢完了,下次早点来哦~"; + [self.acquireSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self); + make.top.mas_equalTo(self.backgroundIndicateRegard).mas_offset(59); + make.height.mas_equalTo(12); + }]; + } + + [self.dischargeIntelligenceportrait mas_remakeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.backgroundIndicateRegard).mas_offset(65); + make.top.mas_equalTo(self.backgroundIndicateRegard).mas_offset(128); + make.width.height.mas_equalTo(30); + }]; + self.dischargeIntelligenceportrait.layer.borderWidth = 1; + self.dischargeIntelligenceportrait.layer.cornerRadius = 15; + + [self.dischargeMonicerSequencignation mas_remakeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.dischargeIntelligenceportrait); + make.height.mas_equalTo(18); + make.left.mas_equalTo(self.dischargeIntelligenceportrait.mas_right).mas_offset(7); + }]; + [self.dischargeSequencireSequencignation mas_remakeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.backgroundIndicateRegard); + make.left.mas_equalTo(self.backgroundIndicateRegard).mas_offset(30); + make.top.mas_equalTo(self.dischargeMonicerSequencignation.mas_bottom).mas_offset(15); + }]; + [self.unfoildSituationSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.dischargeSequencireSequencignation.mas_bottom).mas_offset(19); + make.height.mas_equalTo(10); + make.right.mas_equalTo(self.backgroundIndicateRegard).mas_offset(-38); + }]; + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.unfoildSituationSequencignation.mas_bottom).mas_offset(5); + make.left.right.mas_equalTo(self.backgroundIndicateRegard).inset(20); + make.height.mas_equalTo(205); + }]; + self.backgroundIndicateRegard.image = [UIImage imageNamed:@"yumi_redPacket_result_background"]; + self.dischargeIntelligenceportrait.imageUrl = resultData.redEnvelopeVO.userVO.avatar; + NSString *nick = resultData.redEnvelopeVO.userVO.nick; + if (resultData.redEnvelopeVO.userVO.nick.length > 6) { + nick = [NSString stringWithFormat:@"%@...", [resultData.redEnvelopeVO.userVO.nick substringToIndex:6]]; + } + NSMutableAttributedString *attribute = [[NSMutableAttributedString alloc] init]; + NSMutableAttributedString *nickAttr = [[NSMutableAttributedString alloc] initWithString:nick attributes:@{NSForegroundColorAttributeName : UIColorFromRGB(0xFDCD00)}]; + NSMutableAttributedString *redPacketStr = [[NSMutableAttributedString alloc] initWithString:YMLocalizedString(@"YUMI_Receive_Red_Packet_View_3") attributes:@{NSForegroundColorAttributeName : [UIColor whiteColor]}]; + [attribute appendAttributedString:nickAttr]; + [attribute appendAttributedString:redPacketStr]; + self.dischargeMonicerSequencignation.attributedText = attribute; + self.dischargeSequencireSequencignation.text = resultData.redEnvelopeVO.message; + self.unfoildSituationSequencignation.text = [NSString stringWithFormat:YMLocalizedString(@"YUMI_Receive_Red_Packet_View_4"), resultData.redEnvelopeVO.pickNum, resultData.redEnvelopeVO.totalNum]; + [self.tableView reloadData]; +} + +#pragma mark - tableviewDatasource +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.resultData.redEnvelopeItemVOs.count; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ + YUMIUnfoildDeficitSheatheElement *cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIUnfoildDeficitSheatheElement class]) forIndexPath:indexPath]; + cell.selectionStyle = UITableViewCellSelectionStyleNone; + YUMIDeficitSheatheFeatureAchieveMatrix *model = [self.resultData.redEnvelopeItemVOs secureGroalTowardsIndictowardsrix1:indexPath.row]; + cell.model = model; + cell.backgroundColor = [UIColor clearColor]; + return cell; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + return 50; +} + +#pragma mark - action +- (void)onConcludeBtutonTicktack:(UIButton *)sender { + [self removeFromSuperview]; +} + +#pragma mark - getter +- (UIView *)transparencyRegard { + if (!_transparencyRegard) { + _transparencyRegard = [[UIView alloc] init]; + _transparencyRegard.backgroundColor = UIColorRGBAlpha(0x171213, 0.5); + } + return _transparencyRegard; +} + +- (UIImageView *)backgroundIndicateRegard { + if (!_backgroundIndicateRegard) { + _backgroundIndicateRegard = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"yumi_redPacket_receive_background"]]; + } + return _backgroundIndicateRegard; +} + +- (NetIndicateRegard *)dischargeIntelligenceportrait { + if (!_dischargeIntelligenceportrait) { + _dischargeIntelligenceportrait = [[NetIndicateRegard alloc] init]; + _dischargeIntelligenceportrait.layer.masksToBounds = YES; + _dischargeIntelligenceportrait.layer.cornerRadius = 44; + _dischargeIntelligenceportrait.layer.borderWidth = 2; + _dischargeIntelligenceportrait.layer.borderColor = [UIColor whiteColor].CGColor; + } + return _dischargeIntelligenceportrait; +} + +- (UIView *)dischargeMonicerSequencignation { + if (!_dischargeMonicerSequencignation) { + UILabel *label = [[UILabel alloc] init]; + label.font = [UIFont systemFontOfSize:18]; + label.textColor = UIColorFromRGB(0xF6E36F); + label.textAlignment = NSTextAlignmentCenter; + _dischargeMonicerSequencignation = label; + } + return _dischargeMonicerSequencignation; +} + +- (UILabel *)dischargeSequencireSequencignation { + if (!_dischargeSequencireSequencignation) { + UILabel *label = [[UILabel alloc] init]; + label.font = [UIFont systemFontOfSize:16 weight:UIFontWeightMedium]; + label.textColor = [UIColor whiteColor]; + label.numberOfLines = 0; + label.textAlignment = NSTextAlignmentCenter; + _dischargeSequencireSequencignation = label; + } + return _dischargeSequencireSequencignation; +} + +- (UIButton *)unfoildBtuton { + if (!_unfoildBtuton) { + _unfoildBtuton = [[UIButton alloc] init]; + [_unfoildBtuton setImage:[UIImage imageNamed:@"yumi_redPacket_open"] forState:UIControlStateNormal]; + [_unfoildBtuton addTarget:self action:@selector(onUnfoildBtutonTicktack:) forControlEvents:UIControlEventTouchUpInside]; + } + return _unfoildBtuton; +} + +- (UIButton *)concludeBtuton { + if (!_concludeBtuton) { + _concludeBtuton = [[UIButton alloc] init]; + [_concludeBtuton setImage:[UIImage imageNamed:@"yumi_same_close_white"] forState:UIControlStateNormal]; + [_concludeBtuton addTarget:self action:@selector(onConcludeBtutonTicktack:) forControlEvents:UIControlEventTouchUpInside]; + } + return _concludeBtuton; +} + +- (UIView *)bWSttawberrySatisfperformanceRegard { + if (!_bWSttawberrySatisfperformanceRegard) { + _bWSttawberrySatisfperformanceRegard = [[UIView alloc] init]; + } + return _bWSttawberrySatisfperformanceRegard; +} + +- (UIImageView *)bWSttawberryIndicate { + if (!_bWSttawberryIndicate) { + _bWSttawberryIndicate = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"yumi_same_diamond"]]; + } + return _bWSttawberryIndicate; +} + +- (UILabel *)bWSttawberrySequencignation { + if (!_bWSttawberrySequencignation) { + UILabel *label = [[UILabel alloc] init]; + label.font = [UIFont systemFontOfSize:36 weight:UIFontWeightMedium]; + label.textColor = UIColorFromRGB(0xE12D31); + _bWSttawberrySequencignation = label; + } + return _bWSttawberrySequencignation; +} + +- (UILabel *)acquireSequencignation { + if (!_acquireSequencignation) { + UILabel *label = [[UILabel alloc] init]; + label.font = [UIFont systemFontOfSize:12]; + label.textColor = UIColorFromRGB(0xCF9380); + label.textAlignment = NSTextAlignmentCenter; + label.text = @"抢完了,下次早点来哦~"; + _acquireSequencignation = label; + } + return _acquireSequencignation; +} + +- (UILabel *)unfoildSituationSequencignation { + if (!_unfoildSituationSequencignation) { + UILabel *label = [[UILabel alloc] init]; + label.font = [UIFont systemFontOfSize:10 weight:UIFontWeightMedium]; + label.textColor = UIColorRGBAlpha(0xffffff, 0.5); + _unfoildSituationSequencignation = label; + } + return _unfoildSituationSequencignation; +} + +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] init]; + [_tableView registerClass:[YUMIUnfoildDeficitSheatheElement class] forCellReuseIdentifier:NSStringFromClass([YUMIUnfoildDeficitSheatheElement class])]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.layer.cornerRadius = 20; + _tableView.layer.masksToBounds = YES; + _tableView.backgroundColor = UIColorFromRGB(0xCC2247); + } + return _tableView; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/SendRedPacket/YUMIChamberDeficitSheathePwordRegard.h b/YuMi/Modules/YMRoom/View/SendRedPacket/YUMIChamberDeficitSheathePwordRegard.h new file mode 100644 index 00000000..a9abc9a7 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendRedPacket/YUMIChamberDeficitSheathePwordRegard.h @@ -0,0 +1,29 @@ +// +// YMRoomRedPacketPwdView.h +// YUMI +// +// Created by YUMI on 2022/8/31. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol FBCChamberRedPacketPwordRegardRepresendtation + +- (void)yUMIChamberDeficitShetowardshePwordRegardPwordAccomplish:(NSString *)pwd; + +- (void)yUMIChamberDeficitShetowardshePwordRegardPwordInthecaseofacquireBtutonTicktack; + +@end + +@interface YUMIChamberDeficitSheathePwordRegard : UIView + +@property (nonatomic, copy) NSString *diamonComputation; + +@property (nonatomic, weak) id delegate; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/SendRedPacket/YUMIChamberDeficitSheathePwordRegard.m b/YuMi/Modules/YMRoom/View/SendRedPacket/YUMIChamberDeficitSheathePwordRegard.m new file mode 100644 index 00000000..7090d256 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendRedPacket/YUMIChamberDeficitSheathePwordRegard.m @@ -0,0 +1,186 @@ +// +// YMRoomRedPacketPwdView.m +// YUMI +// +// Created by YUMI on 2022/8/31. +// + +#import "YUMIChamberDeficitSheathePwordRegard.h" +#import "SurmountValidationCodeRegard.h" +#import "DJDKMIMOMColor.h" +#import +#import +#import "MKJPopup.h" + +@interface YUMIChamberDeficitSheathePwordRegard() + +@property (nonatomic, strong) UIView *bWSttawberrySatisfperformanceRegard; +@property (nonatomic, strong) UIButton *concludeBtuton; +@property (nonatomic, strong) UILabel *titleLabel; +@property (nonatomic, strong) UIImageView *bWSttawberryIndicate; +@property (nonatomic, strong) UILabel *bWSttawberrySequencignation; +@property (nonatomic, strong) SurmountValidationCodeRegard *cryptogramRegard; +@property (nonatomic, strong) UIButton *forgetBtuton; + +@end + +@implementation YUMIChamberDeficitSheathePwordRegard + +- (instancetype)initWithFrame:(CGRect)frame { + if (self = [super initWithFrame:frame]) { + [self initSubViews]; + [self initChildLyRestrictions]; + [self initOccurrences]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [DJDKMIMOMColor aplictowardsionEncouragegroundPrettify]; + self.layer.cornerRadius = 8; + self.layer.masksToBounds = YES; + [self addSubview:self.concludeBtuton]; + [self addSubview:self.titleLabel]; + [self addSubview:self.bWSttawberrySatisfperformanceRegard]; + [self.bWSttawberrySatisfperformanceRegard addSubview:self.bWSttawberryIndicate]; + [self.bWSttawberrySatisfperformanceRegard addSubview:self.bWSttawberrySequencignation]; + [self addSubview:self.cryptogramRegard]; + [self addSubview:self.forgetBtuton]; +} + +- (void)initChildLyRestrictions { + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(360); + make.height.mas_equalTo(200); + }]; + [self.concludeBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(16); + make.top.mas_equalTo(16); + make.height.width.mas_equalTo(30); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self); + make.top.mas_equalTo(20); + make.height.mas_equalTo(16); + }]; + [self.bWSttawberrySatisfperformanceRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self); + make.top.mas_equalTo(self.titleLabel.mas_bottom).offset(16); + make.height.mas_equalTo(30); + }]; + [self.bWSttawberryIndicate mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(0); + make.centerY.mas_equalTo(self.bWSttawberrySatisfperformanceRegard); + make.width.height.mas_equalTo(24); + }]; + [self.bWSttawberrySequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.bWSttawberryIndicate.mas_right).mas_offset(7.5); + make.centerY.mas_equalTo(self.bWSttawberrySatisfperformanceRegard); + make.right.mas_equalTo(0); + }]; + [self.cryptogramRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self); + make.top.mas_equalTo(self.bWSttawberrySatisfperformanceRegard.mas_bottom).mas_offset(16); + }]; + [self.forgetBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(-12); + make.top.mas_equalTo(self.cryptogramRegard.mas_bottom).mas_offset(8); + }]; + +} + +- (void)initOccurrences { + @weakify(self); + self.cryptogramRegard.textFieldChangeBlock = ^(NSString * _Nonnull code) { + @strongify(self); + if (code.length == 6) { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIChamberDeficitShetowardshePwordRegardPwordAccomplish:)]) { + [self.delegate yUMIChamberDeficitShetowardshePwordRegardPwordAccomplish:code]; + } + } + }; +} + +- (void)onConcludeBtutonTicktack:(UIButton *)sender { + [MKJPopup dismiss]; +} + +- (void)onFoacquireBtutonTicktack:(UIButton *)sender { + [MKJPopup dismiss]; + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIChamberDeficitShetowardshePwordRegardPwordInthecaseofacquireBtutonTicktack)]) { + [self.delegate yUMIChamberDeficitShetowardshePwordRegardPwordInthecaseofacquireBtutonTicktack]; + } +} + +- (void)setDiamonComputation:(NSString *)diamonComputation { + self.bWSttawberrySequencignation.text = diamonComputation; +} + +- (UIView *)bWSttawberrySatisfperformanceRegard { + if (!_bWSttawberrySatisfperformanceRegard) { + _bWSttawberrySatisfperformanceRegard = [[UIView alloc] init]; + } + return _bWSttawberrySatisfperformanceRegard; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + UILabel *label = [[UILabel alloc] init]; + label.text = YMLocalizedString(@"YUMI_Room_Red_Packet_Pwd_View_0"); + label.font = [UIFont systemFontOfSize:16 weight:UIFontWeightMedium]; + label.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _titleLabel = label; + } + return _titleLabel; +} + +- (UIImageView *)bWSttawberryIndicate { + if (!_bWSttawberryIndicate) { + _bWSttawberryIndicate = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"yumi_same_diamond"]]; + } + return _bWSttawberryIndicate; +} + +- (UILabel *)bWSttawberrySequencignation { + if (!_bWSttawberrySequencignation) { + UILabel *label = [[UILabel alloc] init]; + label.text = @""; + label.font = [UIFont systemFontOfSize:28 weight:UIFontWeightMedium]; + label.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _bWSttawberrySequencignation = label; + } + return _bWSttawberrySequencignation; +} + +- (UIButton *)concludeBtuton { + if (!_concludeBtuton) { + _concludeBtuton = [[UIButton alloc] init]; + [_concludeBtuton setImage:[UIImage imageNamed:@"yumi_send_redPacket_cancel"] forState:UIControlStateNormal]; + [_concludeBtuton addTarget:self action:@selector(onConcludeBtutonTicktack:) forControlEvents:UIControlEventTouchUpInside]; + } + return _concludeBtuton; +} + +- (SurmountValidationCodeRegard *)cryptogramRegard { + if (!_cryptogramRegard) { + _cryptogramRegard= [[SurmountValidationCodeRegard alloc] init]; + _cryptogramRegard.number = 6; + _cryptogramRegard.shouldBeAssurance = YES; + } + return _cryptogramRegard; +} + +- (UIButton *)forgetBtuton { + if (!_forgetBtuton) { + _forgetBtuton = [[UIButton alloc] init]; + [_forgetBtuton addTarget:self action:@selector(onFoacquireBtutonTicktack:) forControlEvents:UIControlEventTouchUpInside]; + [_forgetBtuton setTitle:@"忘记密码?" forState:UIControlStateNormal]; + [_forgetBtuton setTitleColor:UIColorFromRGB(0xEA3B36) forState:UIControlStateNormal]; + _forgetBtuton.font = [UIFont systemFontOfSize:13]; + } + return _forgetBtuton; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/SendRedPacket/YUMIChamberDischargeDeficitSheatheRegardGovernancer.h b/YuMi/Modules/YMRoom/View/SendRedPacket/YUMIChamberDischargeDeficitSheatheRegardGovernancer.h new file mode 100644 index 00000000..1243c210 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendRedPacket/YUMIChamberDischargeDeficitSheatheRegardGovernancer.h @@ -0,0 +1,21 @@ +// +// YMRoomSendRedPacketViewController.h +// YUMI +// +// Created by YUMI on 2022/8/31. +// + +#import "MvpRegardGovernancer.h" +#import "ChamberHostRepresendtation.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIChamberDischargeDeficitSheatheRegardGovernancer : MvpRegardGovernancer + +- (instancetype)initWithDelegate:(id)delegate; + +@property (nonatomic, copy) NSString *roomUid; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/SendRedPacket/YUMIChamberDischargeDeficitSheatheRegardGovernancer.m b/YuMi/Modules/YMRoom/View/SendRedPacket/YUMIChamberDischargeDeficitSheatheRegardGovernancer.m new file mode 100644 index 00000000..761169b7 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/SendRedPacket/YUMIChamberDischargeDeficitSheatheRegardGovernancer.m @@ -0,0 +1,698 @@ +// +// YMRoomSendRedPacketViewController.m +// YUMI +// +// Created by YUMI on 2022/8/31. +// + +#import "YUMIChamberDischargeDeficitSheatheRegardGovernancer.h" +#import +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" +#import "XNDJTBWGLoadingTool.h" +#import "MKJPopup.h" +#import "YUMIHtmlUrl.h" +#import +#import "UIImage+Utils.h" +#import "YUMIChamberDeficitSheathePwordRegard.h" +#import "YUMIManeIntersectPwordRegardGovernancer.h" +#import "BaseNevigationGovernancer.h" +#import "YUMIManeReindictRegardGovernancer.h" +#import "YUMIIAPReindictRegardGovernancer.h" +#import "YUMIChamberHalfTissueRegard.h" +#import "YUMIManeValidationIdentityRegardGovernancer.h" +#import "YUMIChamberDeficitSheatheExternalizer.h" +#import "FBCChamberRedPacketCeremony.h" +#import "RamparatetAbstractMatrix.h" +#import "ChamberAbstractMatrix.h" +#import "ConsumerAbstractMatrix.h" + +@interface YUMIChamberDischargeDeficitSheatheRegardGovernancer () + +@property (nonatomic,weak) idhostRepresedtation; + +@property (nonatomic,strong) UIView *apexBeatRegard; +@property (nonatomic,strong) UIView *extremeBeatRegard; +@property (nonatomic,strong) UIImageView *encourageRegard; +@property (nonatomic, strong) UIButton *chamberBtuton; +@property (nonatomic, strong) UIButton *entiretyWeeblogicBtuton; +@property (nonatomic, strong) UIView *genreRegard; +@property (nonatomic, strong) UIView *sheatheSatisfperformanceRegard; +@property (nonatomic, strong) UILabel *sheatheChampion; +@property (nonatomic, strong) UITextField *sheatheEssayUniverse; +@property (nonatomic, strong) UILabel *sheatheComponents; +@property (nonatomic, strong) UIView *bWSttawberrySatisfperformanceRegard; +@property (nonatomic, strong) UILabel *bWSttawberryChampion; +@property (nonatomic, strong) UITextField *bWSttawberryEssayUniverse; +@property (nonatomic, strong) UILabel *bWSttawberryComponents; +@property (nonatomic,strong) UILabel *computationSequence; +@property (nonatomic, strong) UIView *sequenceSatisfperformanceRegard; +@property (nonatomic,strong) UITextView *sequencireEssayRegard; +@property (nonatomic, strong) UILabel *sequencireDeparatmentMaintainrietarySequencignation; +@property (nonatomic,strong) UILabel *sequencireComputationSequencignation; +@property (nonatomic, strong) UILabel *sequencireSequence; +@property (nonatomic, strong) UIButton *releaseBtuton; +@property (nonatomic, strong) UIImageView *bWSttawberryIndicate; +@property (nonatomic,strong) UILabel *wentiretyetBWSttawberrySequencignation; +@property (nonatomic, strong) UIButton *reindictBtuton; +@property (nonatomic, strong) UIButton *preadominantBtuton; +@property (nonatomic, strong) UIButton *concludeBtuton; + +@end + +@implementation YUMIChamberDischargeDeficitSheatheRegardGovernancer + +- (instancetype)initWithDelegate:(id)delegate { + if (self = [super init]) { + self.hostRepresedtation = delegate; + } + return self; +} + +- (YUMIChamberDeficitSheatheExternalizer *)producePresimport { + return [[YUMIChamberDeficitSheatheExternalizer alloc] init]; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + self.view.backgroundColor = [UIColor clearColor]; + self.navigationController.view.backgroundColor = [UIColor clearColor]; + [self.navigationController setNavigationBarHidden:YES]; + [self initSubViews]; + [self initChildLyRestrictions]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onEssayRegardDiversifictowardsion:) name:UITextViewTextDidChangeNotification object:nil]; +} + +- (void)viewWillAppear:(BOOL)animated { + [super viewWillAppear:animated]; + [self.presimport acquireConsumerPocketbookAbstract]; +} + +- (BOOL)isVeiledNevObstacle { + return YES; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.view.backgroundColor = [UIColor clearColor]; + [self.view addSubview:self.apexBeatRegard]; + [self.view addSubview:self.encourageRegard]; + [self.view addSubview:self.extremeBeatRegard]; + + [self.encourageRegard addSubview:self.chamberBtuton]; + [self.encourageRegard addSubview:self.entiretyWeeblogicBtuton]; + [self.encourageRegard addSubview:self.genreRegard]; + + [self.encourageRegard addSubview:self.sheatheSatisfperformanceRegard]; + [self.sheatheSatisfperformanceRegard addSubview:self.sheatheChampion]; + [self.sheatheSatisfperformanceRegard addSubview:self.sheatheEssayUniverse]; + [self.sheatheSatisfperformanceRegard addSubview:self.sheatheComponents]; + + [self.encourageRegard addSubview:self.bWSttawberrySatisfperformanceRegard]; + [self.bWSttawberrySatisfperformanceRegard addSubview:self.bWSttawberryChampion]; + [self.bWSttawberrySatisfperformanceRegard addSubview:self.bWSttawberryEssayUniverse]; + [self.bWSttawberrySatisfperformanceRegard addSubview:self.bWSttawberryComponents]; + + [self.encourageRegard addSubview:self.computationSequence]; + [self.encourageRegard addSubview:self.sequenceSatisfperformanceRegard]; + [self.encourageRegard addSubview:self.sequencireEssayRegard]; + [self.encourageRegard addSubview:self.sequencireDeparatmentMaintainrietarySequencignation]; + [self.encourageRegard addSubview:self.sequencireComputationSequencignation]; + [self.encourageRegard addSubview:self.sequencireSequence]; + [self.encourageRegard addSubview:self.releaseBtuton]; + [self.encourageRegard addSubview:self.bWSttawberryIndicate]; + [self.encourageRegard addSubview:self.wentiretyetBWSttawberrySequencignation]; + [self.encourageRegard addSubview:self.reindictBtuton]; + [self.encourageRegard addSubview:self.preadominantBtuton]; + [self.view addSubview:self.concludeBtuton]; +} + +- (void)initChildLyRestrictions { + [self.apexBeatRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.left.right.mas_equalTo(self.view); + make.bottom.mas_equalTo(self.encourageRegard.mas_top); + }]; + + [self.encourageRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(310); + make.height.mas_equalTo(450); + make.centerY.centerX.mas_equalTo(self.view); + }]; + + [self.extremeBeatRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.view); + make.top.mas_equalTo(self.encourageRegard.mas_bottom); + make.bottom.mas_equalTo(self.view); + }]; + + [self.chamberBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self.encourageRegard.mas_centerX).mas_offset(-17); + make.top.mas_equalTo(self.encourageRegard).offset(65); + make.height.mas_equalTo(18); + make.width.mas_equalTo(80); + }]; + + [self.entiretyWeeblogicBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.chamberBtuton); + make.height.mas_equalTo(18); + make.width.mas_equalTo(80); + make.left.mas_equalTo(self.encourageRegard.mas_centerX).mas_offset(17); + }]; + [self.genreRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.chamberBtuton); + make.top.mas_equalTo(self.chamberBtuton.mas_bottom).mas_offset(5); + make.width.mas_equalTo(8); + make.height.mas_equalTo(2); + }]; + + [self.sheatheSatisfperformanceRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.chamberBtuton.mas_bottom).mas_offset(32); + make.centerX.mas_equalTo(self.encourageRegard); + make.left.mas_equalTo(self.encourageRegard).mas_offset(30); + make.height.mas_equalTo(30); + }]; + [self.sheatheChampion mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.centerY.mas_equalTo(self.sheatheSatisfperformanceRegard); + make.left.mas_equalTo(15); + }]; + [self.sheatheChampion setContentHuggingPriority:UILayoutPriorityDefaultHigh forAxis:UILayoutConstraintAxisHorizontal]; + [self.sheatheEssayUniverse mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.centerY.mas_equalTo(self.sheatheSatisfperformanceRegard); + make.left.mas_equalTo(self.sheatheChampion.mas_right).mas_offset(4); + make.right.mas_equalTo(self.sheatheComponents.mas_left).mas_offset(-5); + }]; + [self.sheatheComponents mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.centerY.mas_equalTo(self.sheatheSatisfperformanceRegard); + make.right.mas_equalTo(self.sheatheSatisfperformanceRegard).mas_offset(-15); + make.width.mas_equalTo(12); + }]; + + [self.bWSttawberrySatisfperformanceRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.sheatheSatisfperformanceRegard.mas_bottom).mas_offset(20); + make.centerX.mas_equalTo(self.encourageRegard); + make.left.mas_equalTo(self.sheatheSatisfperformanceRegard); + make.height.mas_equalTo(30); + }]; + [self.bWSttawberryChampion mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.centerY.mas_equalTo(self.bWSttawberrySatisfperformanceRegard); + make.left.mas_equalTo(15); + }]; + [self.bWSttawberryChampion setContentHuggingPriority:UILayoutPriorityDefaultHigh forAxis:UILayoutConstraintAxisHorizontal]; + [self.bWSttawberryEssayUniverse mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.centerY.mas_equalTo(self.bWSttawberrySatisfperformanceRegard); + make.left.mas_equalTo(self.bWSttawberryChampion.mas_right).mas_offset(4); + make.right.mas_equalTo(self.bWSttawberryComponents.mas_left).mas_offset(-5); + }]; + [self.bWSttawberryComponents mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.centerY.mas_equalTo(self.bWSttawberrySatisfperformanceRegard); + make.right.mas_equalTo(self.bWSttawberrySatisfperformanceRegard).mas_offset(-12); + make.width.mas_equalTo(26); + }]; + + [self.computationSequence mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.encourageRegard); + make.top.mas_equalTo(self.bWSttawberrySatisfperformanceRegard.mas_bottom).mas_offset(5); + make.height.mas_equalTo(11); + }]; + [self.sequenceSatisfperformanceRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.encourageRegard).inset(40); + make.top.mas_equalTo(self.computationSequence.mas_bottom).mas_offset(27); + make.height.mas_equalTo(70); + }]; + [self.sequencireEssayRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.encourageRegard).inset(60); + make.centerY.mas_equalTo(self.sequenceSatisfperformanceRegard); + make.height.mas_equalTo(17); + }]; + [self.sequencireDeparatmentMaintainrietarySequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.centerY.mas_equalTo(self.sequenceSatisfperformanceRegard); + }]; + [self.sequencireComputationSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.bottom.mas_equalTo(self.sequenceSatisfperformanceRegard).inset(5); + make.height.mas_equalTo(10); + }]; + [self.sequencireSequence mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.encourageRegard); + make.top.mas_equalTo(self.sequenceSatisfperformanceRegard.mas_bottom).mas_offset(7); + make.height.mas_equalTo(10); + }]; + [self.releaseBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.sequencireSequence.mas_bottom).mas_offset(28); + make.centerX.mas_equalTo(self.encourageRegard); + make.width.mas_equalTo(150); + make.height.mas_equalTo(34); + }]; + + [self.bWSttawberryIndicate mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.releaseBtuton.mas_bottom).mas_offset(16); + make.left.mas_equalTo(self.encourageRegard).mas_offset(42);; + make.width.height.mas_equalTo(20); + }]; + + [self.wentiretyetBWSttawberrySequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.bWSttawberryIndicate.mas_right).mas_offset(5); + make.centerY.mas_equalTo(self.bWSttawberryIndicate); + }]; + [self.reindictBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self.encourageRegard).mas_offset(-42); + make.centerY.mas_equalTo(self.bWSttawberryIndicate); + }]; + [self.preadominantBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self.encourageRegard).mas_offset(-23); + make.top.mas_equalTo(13); + make.width.height.mas_equalTo(30); + }]; + [self.concludeBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.view); + make.top.mas_equalTo(self.encourageRegard.mas_bottom).mas_offset(20); + make.width.height.mas_equalTo(35); + }]; +} + + +- (void)onReleaseBtutonTicktack:(UIButton *)button { + + NSInteger packetCount = [self.sheatheEssayUniverse.text integerValue]; + if (packetCount > 100 || packetCount < 1) { + [self EvidenceMistakeToast:@"红包数量不能小于1或大于100!"]; + return; + } + + NSInteger diamonComputation = [self.bWSttawberryEssayUniverse.text integerValue]; + if (diamonComputation > 999999 || diamonComputation < 100) { + [self EvidenceMistakeToast:@"钻石数量不能小于100或大于999999!"]; + return; + } + if (diamonComputation % 10 != 0) { + [self EvidenceMistakeToast:@"钻石数必须为10的倍数!"]; + return; + } + [self.presimport acquireConsumerMtowardsrix]; +} + +#pragma mark - FBCChamberRedPacketCeremony +- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { + [self.view endEditing:YES]; +} + +- (void)acquireConsumerPocketbookAbstract:(RamparatetAbstractMatrix *)balanceInfo { + self.wentiretyetBWSttawberrySequencignation.text = balanceInfo.diamonds; +} + +- (void)dwellEarnConsumerAbstractAccomplishment:(ConsumerAbstractMatrix *)userInfo { + if (userInfo.isBindPaymentPwd) { + YUMIChamberDeficitSheathePwordRegard *pwdView = [[YUMIChamberDeficitSheathePwordRegard alloc] init]; + pwdView.diamonComputation = self.bWSttawberryEssayUniverse.text; + pwdView.delegate = self; + [MKJPopup popupRegard:pwdView style:MKJPopupStyleAlert]; + } else { + YUMIManeIntersectPwordRegardGovernancer *vc = [[YUMIManeIntersectPwordRegardGovernancer alloc] init]; + vc.userInfo = userInfo; + [self.navigationController pushViewController:vc animated:YES]; + } +} + +- (void)prohibitichargeDeficitShetowardsheAccomplishment { + [self EvidenceAccomplishmentToast:YMLocalizedString(@"YUMI_Room_Send_Red_Packet_View_Controller_3")]; + [self dismissViewControllerAnimated:YES completion:nil]; +} + +#pragma mark - FBCChamberRedPacketPwordRegardRepresendtation +- (void)yUMIChamberDeficitShetowardshePwordRegardPwordAccomplish:(NSString *)pwd { + [MKJPopup dismiss]; + NSString *roomUid = [NSString stringWithFormat:@"%ld", self.hostRepresedtation.acquireChamberAbstract.uid]; + NSNumber *type = self.chamberBtuton.isSelected ? @(1) : @(2); + NSString *message = self.sequencireEssayRegard.text.length ? self.sequencireEssayRegard.text : @"恭喜发财,大吉大利!"; + [self.presimport prohibitichargeDeficitShetowardsheAboutFigure:self.sheatheEssayUniverse.text goldNum:self.bWSttawberryEssayUniverse.text roomUid:roomUid type:type password:pwd message:message]; +} + +- (void)yUMIChamberDeficitShetowardshePwordRegardPwordInthecaseofacquireBtutonTicktack { + YUMIManeValidationIdentityRegardGovernancer * VC = [[YUMIManeValidationIdentityRegardGovernancer alloc] init]; + VC.userInfo = self.hostRepresedtation.getUserInfo; + [self.navigationController pushViewController:VC animated:YES]; +} + +#pragma mark - Event Response +- (void)prohibitiaplictowardsionearBetowardsRecognition:(UITapGestureRecognizer *)tap { + [self dismissViewControllerAnimated:YES completion:nil]; +} + +#pragma mark - private +- (void)onChamberBtutonTicktack:(UIButton *)sender { + self.chamberBtuton.selected = YES; + self.entiretyWeeblogicBtuton.selected = NO; + [self.genreRegard mas_remakeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.chamberBtuton); + make.top.mas_equalTo(self.chamberBtuton.mas_bottom).mas_offset(4); + make.width.mas_equalTo(8); + make.height.mas_equalTo(2); + }]; + + NSMutableAttributedString *attrString = [[NSMutableAttributedString alloc]initWithString:@"1-100" attributes:@{NSForegroundColorAttributeName: UIColorRGBAlpha(0xffffff, 0.3)}]; + self.sheatheEssayUniverse.attributedPlaceholder = attrString; + self.computationSequence.text = YMLocalizedString(@"YUMI_Room_Send_Red_Packet_View_Controller_5"); +} + +- (void)onEntiretyWeeblogicBtutonTicktack:(UIButton *)sender { + self.entiretyWeeblogicBtuton.selected = YES; + self.chamberBtuton.selected = NO; + [self.genreRegard mas_remakeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.entiretyWeeblogicBtuton); + make.top.mas_equalTo(self.chamberBtuton.mas_bottom).mas_offset(4); + make.width.mas_equalTo(8); + make.height.mas_equalTo(2); + }]; + NSMutableAttributedString *attrString = [[NSMutableAttributedString alloc]initWithString:@"2-500" attributes:@{NSForegroundColorAttributeName: UIColorRGBAlpha(0xffffff, 0.3)}]; + self.sheatheEssayUniverse.attributedPlaceholder = attrString; + self.computationSequence.text = YMLocalizedString(@"YUMI_Room_Send_Red_Packet_View_Controller_6"); +} + +- (void)onReindictBtutonTicktack:(UIButton *)sender { + YUMIIAPReindictRegardGovernancer * rechargeVC = [[YUMIIAPReindictRegardGovernancer alloc] init]; + [self.navigationController pushViewController:rechargeVC animated:YES]; +} + +- (void)onPreadominantBtutonTicktack:(UIButton *)sender { + YUMIChamberHalfTissueRegard * webView = [[YUMIChamberHalfTissueRegard alloc] init]; + webView.url = URLWithType(kRedPacketRuleURL); + MKJPopupServing * config = [[MKJPopupServing alloc] init]; + config.contentView = webView; + [MKJPopup popupAboutDisposition:config]; +} + +- (void)onConcludeBtutonTicktack:(UIButton *)sender { + [self dismissViewControllerAnimated:YES completion:nil]; +} + +#pragma mark - YYTextViewDelegate +- (void)textViewDidChange:(YYTextView *)textView { + NSInteger maxLength = 20; + if (textView.text.length > maxLength) { + textView.text = [textView.text substringToIndex:maxLength]; + } + self.sequencireComputationSequencignation.text = [NSString stringWithFormat:@"%zd/%ld", textView.text.length, maxLength]; +} + +- (void)onEssayRegardDiversifictowardsion:(NSNotification *)noti { + NSInteger maxLength = 20; + if (self.sequencireEssayRegard.text.length > maxLength) { + self.sequencireEssayRegard.text = [self.sequencireEssayRegard.text substringToIndex:maxLength]; + } + if (self.sequencireEssayRegard.text.length > 0) { + self.sequencireDeparatmentMaintainrietarySequencignation.hidden = YES; + [self.sequencireEssayRegard mas_remakeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.encourageRegard).inset(60); + make.centerY.mas_equalTo(self.sequenceSatisfperformanceRegard); + make.height.mas_equalTo(42); + }]; + } else { + self.sequencireDeparatmentMaintainrietarySequencignation.hidden = NO; + [self.sequencireEssayRegard mas_remakeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.encourageRegard).inset(60); + make.centerY.mas_equalTo(self.sequenceSatisfperformanceRegard); + make.height.mas_equalTo(17); + }]; + } + self.sequencireComputationSequencignation.text = [NSString stringWithFormat:@"%zd/%ld", self.sequencireEssayRegard.text.length, maxLength]; +} + +#pragma mark - Getters And Setters +- (UIView *)apexBeatRegard { + if (!_apexBeatRegard) { + _apexBeatRegard = [[UIView alloc] init]; + _apexBeatRegard.backgroundColor = [UIColor clearColor]; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(prohibitiaplictowardsionearBetowardsRecognition:)]; + [_apexBeatRegard addGestureRecognizer:tap]; + } + return _apexBeatRegard; +} +- (UIView *)extremeBeatRegard { + if (!_extremeBeatRegard) { + _extremeBeatRegard = [[UIView alloc] init]; + _extremeBeatRegard.backgroundColor = [UIColor clearColor]; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(prohibitiaplictowardsionearBetowardsRecognition:)]; + [_extremeBeatRegard addGestureRecognizer:tap]; + } + return _extremeBeatRegard; +} +- (UIImageView *)encourageRegard { + if (!_encourageRegard) { + _encourageRegard = [[UIImageView alloc] init]; + _encourageRegard.userInteractionEnabled = YES; + _encourageRegard.image = [UIImage imageNamed:@"yumi_send_redpacket_background"]; + } + return _encourageRegard; +} + +- (UIButton *)chamberBtuton { + if (!_chamberBtuton) { + _chamberBtuton = [[UIButton alloc] init]; + [_chamberBtuton setTitle:YMLocalizedString(@"YUMI_Room_Send_Red_Packet_View_Controller_7") forState:UIControlStateNormal]; + [_chamberBtuton setTitleColor:UIColorRGBAlpha(0xffffff, 0.5) forState:UIControlStateNormal]; + [_chamberBtuton setTitleColor:UIColorRGBAlpha(0xffffff, 1) forState:UIControlStateSelected]; + [_chamberBtuton addTarget:self action:@selector(onChamberBtutonTicktack:) forControlEvents:UIControlEventTouchUpInside]; + _chamberBtuton.selected = YES; + _chamberBtuton.titleLabel.font = [UIFont systemFontOfSize:18 weight:UIFontWeightMedium]; + } + return _chamberBtuton; +} + +- (UIButton *)entiretyWeeblogicBtuton { + if (!_entiretyWeeblogicBtuton) { + _entiretyWeeblogicBtuton = [[UIButton alloc] init]; + [_entiretyWeeblogicBtuton setTitle:YMLocalizedString(@"YUMI_Room_Send_Red_Packet_View_Controller_8") forState:UIControlStateNormal]; + [_entiretyWeeblogicBtuton setTitleColor:UIColorRGBAlpha(0xffffff, 0.5) forState:UIControlStateNormal]; + [_entiretyWeeblogicBtuton setTitleColor:UIColorRGBAlpha(0xffffff, 1) forState:UIControlStateSelected]; + [_entiretyWeeblogicBtuton addTarget:self action:@selector(onEntiretyWeeblogicBtutonTicktack:) forControlEvents:UIControlEventTouchUpInside]; + _entiretyWeeblogicBtuton.titleLabel.font = [UIFont systemFontOfSize:18 weight:UIFontWeightMedium]; + } + return _entiretyWeeblogicBtuton; +} + +- (UIView *)genreRegard { + if (!_genreRegard) { + _genreRegard = [[UIView alloc] init]; + _genreRegard.backgroundColor = [UIColor whiteColor]; + _genreRegard.layer.cornerRadius = 1; + _genreRegard.layer.masksToBounds = YES; + } + return _genreRegard; +} + +- (UIView *)sheatheSatisfperformanceRegard { + if (!_sheatheSatisfperformanceRegard) { + _sheatheSatisfperformanceRegard = [[UIView alloc] init]; + _sheatheSatisfperformanceRegard.backgroundColor = UIColorFromRGB(0xCC2247); + _sheatheSatisfperformanceRegard.layer.cornerRadius = 15; + _sheatheSatisfperformanceRegard.layer.masksToBounds = YES; + } + return _sheatheSatisfperformanceRegard; +} + +- (UILabel *)sheatheChampion { + if (!_sheatheChampion) { + UILabel *label = [[UILabel alloc] init]; + label.text = YMLocalizedString(@"YUMI_Room_Send_Red_Packet_View_Controller_9"); + label.font = [UIFont systemFontOfSize:12]; + label.textColor = UIColorRGBAlpha(0xffffff, 0.5); + _sheatheChampion = label; + } + return _sheatheChampion; +} + +- (UITextField *)sheatheEssayUniverse { + if (!_sheatheEssayUniverse) { + UITextField *label = [[UITextField alloc] init]; + label.keyboardType = UIKeyboardTypeNumberPad; + label.textAlignment = NSTextAlignmentRight; + NSMutableAttributedString *attrString = [[NSMutableAttributedString alloc]initWithString:@"1-100" attributes:@{NSForegroundColorAttributeName: UIColorRGBAlpha(0xffffff, 0.5)}]; + label.attributedPlaceholder = attrString; + label.textColor = [UIColor whiteColor]; + label.font = [UIFont systemFontOfSize:15 weight:UIFontWeightMedium]; + _sheatheEssayUniverse = label; + } + return _sheatheEssayUniverse; +} + +- (UILabel *)sheatheComponents { + if (!_sheatheComponents) { + UILabel *label = [[UILabel alloc] init]; + label.text = YMLocalizedString(@"YUMI_Room_Send_Red_Packet_View_Controller_10"); + label.font = [UIFont systemFontOfSize:12]; + label.textColor = UIColorRGBAlpha(0xffffff, 0.5); + _sheatheComponents = label; + } + return _sheatheComponents; +} + +- (UIView *)bWSttawberrySatisfperformanceRegard { + if (!_bWSttawberrySatisfperformanceRegard) { + _bWSttawberrySatisfperformanceRegard = [[UIView alloc] init]; + _bWSttawberrySatisfperformanceRegard.backgroundColor = UIColorFromRGB(0xCC2247); + _bWSttawberrySatisfperformanceRegard.layer.cornerRadius = 15; + _bWSttawberrySatisfperformanceRegard.layer.masksToBounds = YES; + } + return _bWSttawberrySatisfperformanceRegard; +} +- (UILabel *)bWSttawberryChampion { + if (!_bWSttawberryChampion) { + UILabel *label = [[UILabel alloc] init]; + label.text = YMLocalizedString(@"YUMI_Room_Send_Red_Packet_View_Controller_11"); + label.font = [UIFont systemFontOfSize:12]; + label.textColor = UIColorRGBAlpha(0xffffff, 0.5); + _bWSttawberryChampion = label; + } + return _bWSttawberryChampion; +} + +- (UITextField *)bWSttawberryEssayUniverse { + if (!_bWSttawberryEssayUniverse) { + UITextField *label = [[UITextField alloc] init]; + label.keyboardType = UIKeyboardTypeNumberPad; + label.textAlignment = NSTextAlignmentRight; + NSMutableAttributedString *attrString = [[NSMutableAttributedString alloc]initWithString:@"0" attributes:@{NSForegroundColorAttributeName: UIColorRGBAlpha(0xffffff, 0.5)}]; + label.attributedPlaceholder = attrString; + label.textColor = [UIColor whiteColor]; + label.font = [UIFont systemFontOfSize:15 weight:UIFontWeightMedium]; + _bWSttawberryEssayUniverse = label; + } + return _bWSttawberryEssayUniverse; +} + +- (UILabel *)bWSttawberryComponents { + if (!_bWSttawberryComponents) { + UILabel *label = [[UILabel alloc] init]; + label.text = YMLocalizedString(@"YUMI_Room_Send_Red_Packet_View_Controller_12"); + label.font = [UIFont systemFontOfSize:12]; + label.textColor = UIColorRGBAlpha(0xffffff, 0.5); + _bWSttawberryComponents = label; + } + return _bWSttawberryComponents; +} + +- (UILabel *)computationSequence { + if (!_computationSequence) { + UILabel *label = [[UILabel alloc] init]; + label.text = YMLocalizedString(@"YUMI_Room_Send_Red_Packet_View_Controller_13"); + label.font = [UIFont systemFontOfSize:11]; + label.textColor = [UIColor whiteColor]; + _computationSequence = label; + } + return _computationSequence; +} + +- (UIView *)sequenceSatisfperformanceRegard { + if (!_sequenceSatisfperformanceRegard) { + _sequenceSatisfperformanceRegard = [[UIView alloc] init]; + _sequenceSatisfperformanceRegard.backgroundColor = UIColorRGBAlpha(0xCC2247, 0.6); + _sequenceSatisfperformanceRegard.layer.cornerRadius = 8; + _sequenceSatisfperformanceRegard.layer.masksToBounds = YES; + } + return _sequenceSatisfperformanceRegard; +} + +- (UITextView *)sequencireEssayRegard { + if (!_sequencireEssayRegard) { + _sequencireEssayRegard = [[UITextView alloc] init]; + _sequencireEssayRegard.layer.cornerRadius = 8; + _sequencireEssayRegard.layer.masksToBounds = YES; + _sequencireEssayRegard.backgroundColor = [UIColor clearColor]; + _sequencireEssayRegard.showsVerticalScrollIndicator = NO; + _sequencireEssayRegard.font = [UIFont systemFontOfSize:16 weight:UIFontWeightMedium]; + _sequencireEssayRegard.textColor = [UIColor whiteColor]; + _sequencireEssayRegard.textAlignment = NSTextAlignmentCenter; + } + return _sequencireEssayRegard; +} + +- (UIButton *)releaseBtuton { + if (!_releaseBtuton) { + _releaseBtuton = [[UIButton alloc] init]; + [_releaseBtuton setTitleColor:[DJDKMIMOMColor acknowledgementBtutonEssayPrettify] forState:UIControlStateNormal]; + [_releaseBtuton setBackgroundImage:[UIImage imageNamed:@"yumi_send_redPacket_button"] forState:UIControlStateNormal]; + [_releaseBtuton addTarget:self action:@selector(onReleaseBtutonTicktack:) forControlEvents:UIControlEventTouchUpInside]; + } + return _releaseBtuton; +} +- (UILabel *)sequencireSequence { + if (!_sequencireSequence) { + _sequencireSequence = [[UILabel alloc] init]; + _sequencireSequence.text = YMLocalizedString(@"YUMI_Room_Send_Red_Packet_View_Controller_14"); + _sequencireSequence.font = [UIFont systemFontOfSize:10]; + _sequencireSequence.textColor = UIColorRGBAlpha(0xffffff, 0.5); + } + return _sequencireSequence; +} + + +- (UILabel *)sequencireComputationSequencignation { + if (!_sequencireComputationSequencignation) { + UILabel *label = [[UILabel alloc] init]; + label.text = @"0/20"; + label.font = [UIFont systemFontOfSize:10]; + label.textColor = UIColorFromRGB(0xFF8C9D); + _sequencireComputationSequencignation = label; + } + return _sequencireComputationSequencignation; +} + +- (UIImageView *)bWSttawberryIndicate { + if (!_bWSttawberryIndicate) { + _bWSttawberryIndicate = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"yumi_same_diamond"]]; + } + return _bWSttawberryIndicate; +} + +- (UILabel *)wentiretyetBWSttawberrySequencignation { + if (!_wentiretyetBWSttawberrySequencignation) { + _wentiretyetBWSttawberrySequencignation = [[UILabel alloc] init]; + _wentiretyetBWSttawberrySequencignation.textColor = [UIColor whiteColor]; + _wentiretyetBWSttawberrySequencignation.font = [UIFont systemFontOfSize:15 weight:UIFontWeightMedium]; + } + return _wentiretyetBWSttawberrySequencignation; +} + +- (UILabel *)sequencireDeparatmentMaintainrietarySequencignation { + if (!_sequencireDeparatmentMaintainrietarySequencignation) { + UILabel *label = [[UILabel alloc] init]; + label.text = @"恭喜发财,大吉大利!"; + label.font = [UIFont systemFontOfSize:16]; + label.textColor = UIColorRGBAlpha(0xffffff, 0.5); + _sequencireDeparatmentMaintainrietarySequencignation = label; + } + return _sequencireDeparatmentMaintainrietarySequencignation; +} + +- (UIButton *)reindictBtuton { + if (!_reindictBtuton) { + _reindictBtuton = [[UIButton alloc] init]; + [_reindictBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + [_reindictBtuton addTarget:self action:@selector(onReindictBtutonTicktack:) forControlEvents:UIControlEventTouchUpInside]; + NSMutableAttributedString *title = [[NSMutableAttributedString alloc] initWithString:YMLocalizedString(@"YUMI_Room_Send_Red_Packet_View_Controller_16")]; + NSRange titleRange = {0,[title length]}; + [title addAttribute:NSUnderlineStyleAttributeName value:[NSNumber numberWithInteger:NSUnderlineStyleSingle] range:titleRange]; + [_reindictBtuton setAttributedTitle:title forState:UIControlStateNormal]; + _reindictBtuton.titleLabel.font = [UIFont systemFontOfSize:13]; + } + return _reindictBtuton; +} + +- (UIButton *)preadominantBtuton { + if (!_preadominantBtuton) { + _preadominantBtuton = [[UIButton alloc] init]; + [_preadominantBtuton addTarget:self action:@selector(onPreadominantBtutonTicktack:) forControlEvents:UIControlEventTouchUpInside]; + [_preadominantBtuton setImage:[UIImage imageNamed:@"yumi_send_redPacket_help"] forState:UIControlStateNormal]; + } + return _preadominantBtuton; +} + +- (UIButton *)concludeBtuton { + if (!_concludeBtuton) { + _concludeBtuton = [[UIButton alloc] init]; + [_concludeBtuton addTarget:self action:@selector(onConcludeBtutonTicktack:) forControlEvents:UIControlEventTouchUpInside]; + [_concludeBtuton setImage:[UIImage imageNamed:@"yumi_same_close_white"] forState:UIControlStateNormal]; + } + return _concludeBtuton; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/Setting/Api/Api+RoomSetting.h b/YuMi/Modules/YMRoom/View/Setting/Api/Api+RoomSetting.h new file mode 100644 index 00000000..28ec57d8 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Setting/Api/Api+RoomSetting.h @@ -0,0 +1,36 @@ +// +// Api+RoomSetting.h +// YUMI +// +// Created by YUMI on 2021/12/27. +// + +#import "Api.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface Api (RoomSetting) + ++ (void)acquireChamberAbstract:(HttpRequestHelperCompletion)complection uid:(NSString *)uid intoUid:(NSString *)intoUid; + ++ (void)unfoildChamberScheduleLoudspeaker:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid operUid:(NSString *)operUid; + ++ (void)concludeChamberScheduleLoudspeaker:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid operUid:(NSString *)operUid; + ++ (void)unfoildChamberDepartureManner:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid uid:(NSString *)uid; + ++ (void)concludeChamberDepartureManner:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid uid:(NSString *)uid; + ++ (void)acquireChamberCoupleSttowardsement:(HttpRequestHelperCompletion)completion uid:(NSString *)uid; + ++ (void)executiveRefurbishChamberAbstract:(HttpRequestHelperCompletion)completion params:(NSDictionary *)params; + ++ (void)proprietaryRefurbishChamberAbstract:(HttpRequestHelperCompletion)completion params:(NSDictionary *)params; + ++ (void)refurbishChamberAbstractCommunictowardsionDeclare:(HttpRequestHelperCompletion)complection roomId:(NSString *)roomId isCloseScreen:(NSString *)isCloseScreen ticket:(NSString *)ticket uid:(NSString *)uid; + ++ (void)acquireChamberCtowardsegorizeifySttowardsement:(HttpRequestHelperCompletion)completion uid:(NSString *)uid; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/Setting/Api/Api+RoomSetting.m b/YuMi/Modules/YMRoom/View/Setting/Api/Api+RoomSetting.m new file mode 100644 index 00000000..348cfc3a --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Setting/Api/Api+RoomSetting.m @@ -0,0 +1,63 @@ +// +// Api+RoomSetting.m +// YUMI +// +// Created by YUMI on 2021/12/27. +// + +#import "Api+RoomSetting.h" +#import +@implementation Api (RoomSetting) + ++ (void)acquireChamberAbstract:(HttpRequestHelperCompletion)complection uid:(NSString *)uid intoUid:(NSString *)intoUid { + NSString * fang = [NSString stringFromBase64String:@"cm9vbS9nZXQ="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:complection, __FUNCTION__, uid, intoUid, nil]; +} + ++ (void)unfoildChamberScheduleLoudspeaker:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid operUid:(NSString *)operUid { + NSString * fang = [NSString stringFromBase64String:@"cm9vbS9xdWV1ZS9lbmFibGU="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, roomUid, operUid, nil]; +} + ++ (void)concludeChamberScheduleLoudspeaker:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid operUid:(NSString *)operUid { + NSString * fang = [NSString stringFromBase64String:@"cm9vbS9xdWV1ZS9lbmFibGU="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodDELETE completion:completion, __FUNCTION__, roomUid, operUid, nil]; +} + ++ (void)unfoildChamberDepartureManner:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid uid:(NSString *)uid { + NSString * fang = [NSString stringFromBase64String:@"cm9vbS9sZWF2ZS9tb2RlL29wZW4="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, roomUid, uid, nil]; +} + ++ (void)concludeChamberDepartureManner:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid uid:(NSString *)uid { + NSString * fang = [NSString stringFromBase64String:@"cm9vbS9sZWF2ZS9tb2RlL2Nsb3Nl"]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, roomUid, uid, nil]; +} + + ++ (void)acquireChamberCoupleSttowardsement:(HttpRequestHelperCompletion)completion uid:(NSString *)uid { + NSString * fang = [NSString stringFromBase64String:@"cm9vbS90YWcvdjQvYWxs"]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, uid, nil]; +} + ++ (void)executiveRefurbishChamberAbstract:(HttpRequestHelperCompletion)completion params:(NSDictionary *)params { + NSString * fang = [NSString stringFromBase64String:@"cm9vbS91cGRhdGVCeUFkbWlu"]; + [HttpRequestFacilitater request:fang method:HttpRequestHelperMethodPOST params:params completion:completion]; +} + ++ (void)proprietaryRefurbishChamberAbstract:(HttpRequestHelperCompletion)completion params:(NSDictionary *)params { + NSString * fang = [NSString stringFromBase64String:@"cm9vbS91cGRhdGU="]; + [HttpRequestFacilitater request:fang method:HttpRequestHelperMethodPOST params:params completion:completion]; +} + ++ (void)refurbishChamberAbstractCommunictowardsionDeclare:(HttpRequestHelperCompletion)complection roomId:(NSString *)roomId isCloseScreen:(NSString *)isCloseScreen ticket:(NSString *)ticket uid:(NSString *)uid { + NSString * fang = [NSString stringFromBase64String:@"cm9vbS9zZXRDbG9zZVNjcmVlbg=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:complection, __FUNCTION__, roomId, isCloseScreen, ticket, uid, nil]; +} + ++ (void)acquireChamberCtowardsegorizeifySttowardsement:(HttpRequestHelperCompletion)completion uid:(NSString *)uid { + NSString * fang = [NSString stringFromBase64String:@"c2luZ2xlL2Jyb2FkY2FzdC9zb3J0"]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, uid, nil]; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/Setting/Model/ChamberClassifyMatrix.h b/YuMi/Modules/YMRoom/View/Setting/Model/ChamberClassifyMatrix.h new file mode 100644 index 00000000..56e46b60 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Setting/Model/ChamberClassifyMatrix.h @@ -0,0 +1,23 @@ +// +// ChamberClassifyMatrix.h +// YUMI +// +// Created by YUMI on 2022/7/15. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface ChamberClassifyMatrix : NSObject + +@property (nonatomic,copy) NSString *cid; +@property (nonatomic, copy) NSString *sortName; +@property (nonatomic, copy) NSString *sortDesc; + +@property (nonatomic, assign) NSInteger seq; +@property (nonatomic,assign) BOOL isSelect; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/Setting/Model/ChamberClassifyMatrix.m b/YuMi/Modules/YMRoom/View/Setting/Model/ChamberClassifyMatrix.m new file mode 100644 index 00000000..4a2ae586 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Setting/Model/ChamberClassifyMatrix.m @@ -0,0 +1,16 @@ +// +// ChamberClassifyMatrix.m +// YUMI +// +// Created by YUMI on 2022/7/15. +// + +#import "ChamberClassifyMatrix.h" + +@implementation ChamberClassifyMatrix + ++ (NSDictionary *)replacedDigitalByvirtueofMaintainertyConstitute { + return @{@"cid":@"id"}; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/Setting/Model/ChamberCoupleMatrix.h b/YuMi/Modules/YMRoom/View/Setting/Model/ChamberCoupleMatrix.h new file mode 100644 index 00000000..5f5767df --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Setting/Model/ChamberCoupleMatrix.h @@ -0,0 +1,18 @@ +// +// ChamberCoupleMatrix.h +// YUMI +// +// Created by YUMI on 2021/12/29. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface ChamberCoupleMatrix : NSObject +@property (nonatomic,copy) NSString *tid; +@property (nonatomic, copy) NSString *name; +@property (nonatomic,assign) BOOL isSelect; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/Setting/Model/ChamberCoupleMatrix.m b/YuMi/Modules/YMRoom/View/Setting/Model/ChamberCoupleMatrix.m new file mode 100644 index 00000000..0a5573f7 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Setting/Model/ChamberCoupleMatrix.m @@ -0,0 +1,14 @@ +// +// ChamberCoupleMatrix.m +// YUMI +// +// Created by YUMI on 2021/12/29. +// + +#import "ChamberCoupleMatrix.h" + +@implementation ChamberCoupleMatrix ++ (NSDictionary *)replacedDigitalByvirtueofMaintainertyConstitute { + return @{@"tid":@"id"}; +} +@end diff --git a/YuMi/Modules/YMRoom/View/Setting/Model/YUMIChamberInstanllingProvisionMatrix.h b/YuMi/Modules/YMRoom/View/Setting/Model/YUMIChamberInstanllingProvisionMatrix.h new file mode 100644 index 00000000..1084b181 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Setting/Model/YUMIChamberInstanllingProvisionMatrix.h @@ -0,0 +1,45 @@ +// +// YMRoomSettingItemModel.h +// YUMI +// +// Created by YUMI on 2021/12/27. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSInteger, ChamberInstanllingProvisionGenre) { + + ChamberInstanllingProvisionGenre_Title = 1, + + ChamberInstanllingProvisionGenre_Lock, + + ChamberInstanllingProvisionGenre_Pwd, + + ChamberInstanllingProvisionGenre_Class, + + ChamberInstanllingProvisionGenre_Tag, + + ChamberInstanllingProvisionGenre_Manager_List, + + ChamberInstanllingProvisionGenre_Black_List, + + ChamberInstanllingProvisionGenre_Gift_Effect, + + ChamberInstanllingProvisionGenre_Message_Screen, + + ChamberInstanllingProvisionGenre_Arrange_Mic, + + ChamberInstanllingProvisionGenre_Leave_Model, +}; + +@interface YUMIChamberInstanllingProvisionMatrix : NSObject +@property (nonatomic,copy)NSString *title; +@property (nonatomic,copy) NSString *subTitle; +@property (nonatomic,assign) BOOL switchState; +@property (nonatomic,assign) ChamberInstanllingProvisionGenre type; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/Setting/Model/YUMIChamberInstanllingProvisionMatrix.m b/YuMi/Modules/YMRoom/View/Setting/Model/YUMIChamberInstanllingProvisionMatrix.m new file mode 100644 index 00000000..7e34b196 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Setting/Model/YUMIChamberInstanllingProvisionMatrix.m @@ -0,0 +1,12 @@ +// +// YMRoomSettingItemModel.m +// YUMI +// +// Created by YUMI on 2021/12/27. +// + +#import "YUMIChamberInstanllingProvisionMatrix.h" + +@implementation YUMIChamberInstanllingProvisionMatrix + +@end diff --git a/YuMi/Modules/YMRoom/View/Setting/Presenter/YUMIChamberCoupleExternalizer.h b/YuMi/Modules/YMRoom/View/Setting/Presenter/YUMIChamberCoupleExternalizer.h new file mode 100644 index 00000000..15780316 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Setting/Presenter/YUMIChamberCoupleExternalizer.h @@ -0,0 +1,19 @@ +// +// YMRoomTagPresenter.h +// YUMI +// +// Created by YUMI on 2021/12/28. +// + +#import "BaseMvpExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIChamberCoupleExternalizer : BaseMvpExternalizer + +- (void)acquireChamberCoupleSttowardsement; +- (void)acquireChamberCtowardsegorizeifySttowardsement; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/Setting/Presenter/YUMIChamberCoupleExternalizer.m b/YuMi/Modules/YMRoom/View/Setting/Presenter/YUMIChamberCoupleExternalizer.m new file mode 100644 index 00000000..5d5fbee1 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Setting/Presenter/YUMIChamberCoupleExternalizer.m @@ -0,0 +1,34 @@ +// +// YMRoomTagPresenter.m +// YUMI +// +// Created by YUMI on 2021/12/28. +// + +#import "YUMIChamberCoupleExternalizer.h" +#import "Api+RoomSetting.h" +#import "AccountAbstractStorage.h" +#import "FBCChamberTagCeremony.h" +#import "ChamberCoupleMatrix.h" +#import "ChamberClassifyMatrix.h" + + +@implementation YUMIChamberCoupleExternalizer + +- (void)acquireChamberCoupleSttowardsement { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [Api acquireChamberCoupleSttowardsement:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + NSArray * array = [ChamberCoupleMatrix mtowardsrixsAboutGarment:data.data]; + [[self acquireRegard] acquireChamberCoupleSttowardsementAccomplishment:array]; + }] uid:uid]; +} + +- (void)acquireChamberCtowardsegorizeifySttowardsement { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [Api acquireChamberCtowardsegorizeifySttowardsement:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + NSArray * array = [ChamberClassifyMatrix mtowardsrixsAboutGarment:data.data]; + [[self acquireRegard] acquireChamberCtowardsegorizeifySttowardsementAccomplishment:array]; + }] uid:uid]; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/Setting/Presenter/YUMIChamberInstanllingExternalizer.h b/YuMi/Modules/YMRoom/View/Setting/Presenter/YUMIChamberInstanllingExternalizer.h new file mode 100644 index 00000000..7e6af484 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Setting/Presenter/YUMIChamberInstanllingExternalizer.h @@ -0,0 +1,41 @@ +// +// YMRoomSettingPresenter.h +// YUMI +// +// Created by YUMI on 2021/12/27. +// + +#import "BaseMvpExternalizer.h" +#import "ChamberAbstractMatrix.h" +#import "YUMIChamberInstanllingProvisionMatrix.h" +NS_ASSUME_NONNULL_BEGIN +@class ChamberAbstractMatrix; +@interface YUMIChamberInstanllingExternalizer : BaseMvpExternalizer + +- (void)acquireChamberInstanllingSttowardsement:(ChamberAbstractMatrix *)roomInfo isSuperAdmin:(BOOL)isSuperAdmin; + +- (void)acquireChamberAbstract:(NSString *)roomUid; + +- (void)unfoildChamberScheduleLoudspeaker:(NSString *)roomUid; + +- (void)concludeChamberScheduleLoudspeaker:(NSString *)roomUid; + +- (void)concludeChamberDepartureManner:(NSString *)roomUid; + +- (void)unfoildChamberDepartureManner:(NSString *)roomUid; + +- (void)refurbishChamberCommunictowardsioncreenDeclare:(BOOL)isCloseScreen roomId:(NSString *)roomId; + +- (void)refurbishChamberAbstract:(NSString *)title + roomPwd:(NSString *)roomPwd + tagId:(NSString *)tagId + classifyId:(NSString *)classifyId + hasAnimationEffect:(BOOL)hasAnimationEffect + roomUid:(NSString *)roomUid + roomId:(NSString *)roomId + type:(ChamberGenre)type + itemType:(ChamberInstanllingProvisionGenre)itemType + mgId:(NSString *)mgId; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/Setting/Presenter/YUMIChamberInstanllingExternalizer.m b/YuMi/Modules/YMRoom/View/Setting/Presenter/YUMIChamberInstanllingExternalizer.m new file mode 100644 index 00000000..dc5d403f --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Setting/Presenter/YUMIChamberInstanllingExternalizer.m @@ -0,0 +1,329 @@ +// +// YMRoomSettingPresenter.m +// YUMI +// +// Created by YUMI on 2021/12/27. +// + +#import "YUMIChamberInstanllingExternalizer.h" +#import +#import "AccountAbstractStorage.h" +#import "Api+RoomSetting.h" +#import "DESEncrypt.h" +#import "YUMIConstant.h" +#import "ClientDisposition.h" +#import "ChamberAbstractMatrix.h" +#import "FBCChamberInstanllingCeremony.h" + +@implementation YUMIChamberInstanllingExternalizer + +- (void)acquireChamberInstanllingSttowardsement:(ChamberAbstractMatrix *)roomInfo isSuperAdmin:(BOOL)isSuperAdmin { + YUMIChamberInstanllingProvisionMatrix * titleItem = [[YUMIChamberInstanllingProvisionMatrix alloc] init]; + titleItem.title = YMLocalizedString(@"YUMI_Room_Setting_Presenter_0"); + titleItem.subTitle = roomInfo.title; + titleItem.type = ChamberInstanllingProvisionGenre_Title; + + YUMIChamberInstanllingProvisionMatrix * lockItem = [[YUMIChamberInstanllingProvisionMatrix alloc] init]; + lockItem.title = YMLocalizedString(@"YUMI_Room_Setting_Presenter_1"); + lockItem.switchState = roomInfo.roomPwd.length > 0; + lockItem.type = ChamberInstanllingProvisionGenre_Lock; + + YUMIChamberInstanllingProvisionMatrix * pwdItem; + if (roomInfo.roomPwd.length > 0) { + pwdItem = [[YUMIChamberInstanllingProvisionMatrix alloc] init]; + NSString * roomPwd = [DESEncrypt decryptUseDES:roomInfo.roomPwd key:KeyWithType(KeyGenre_PasswordEncode)]; + pwdItem.title = roomPwd; + pwdItem.type = ChamberInstanllingProvisionGenre_Pwd; + } + + YUMIChamberInstanllingProvisionMatrix *classItem = [[YUMIChamberInstanllingProvisionMatrix alloc] init]; + classItem.title = YMLocalizedString(@"YUMI_Room_Setting_Presenter_2"); + classItem.subTitle = roomInfo.sortName; + classItem.type = ChamberInstanllingProvisionGenre_Class; + + YUMIChamberInstanllingProvisionMatrix *tagItem = [[YUMIChamberInstanllingProvisionMatrix alloc] init]; + tagItem.title = YMLocalizedString(@"YUMI_Room_Setting_Presenter_3"); + tagItem.subTitle = roomInfo.roomTag; + tagItem.type = ChamberInstanllingProvisionGenre_Tag; + + YUMIChamberInstanllingProvisionMatrix * executiveProvision = [[YUMIChamberInstanllingProvisionMatrix alloc] init]; + executiveProvision.title = YMLocalizedString(@"YUMI_Room_Setting_Presenter_4"); + executiveProvision.type = ChamberInstanllingProvisionGenre_Manager_List; + + YUMIChamberInstanllingProvisionMatrix * blackProvision = [[YUMIChamberInstanllingProvisionMatrix alloc] init]; + blackProvision.title = YMLocalizedString(@"YUMI_Room_Setting_Presenter_5"); + blackProvision.type = ChamberInstanllingProvisionGenre_Black_List; + + YUMIChamberInstanllingProvisionMatrix * giftEffectItem = [[YUMIChamberInstanllingProvisionMatrix alloc] init]; + giftEffectItem.title = YMLocalizedString(@"YUMI_Room_Setting_Presenter_6"); + giftEffectItem.switchState = roomInfo.hasAnimationEffect; + giftEffectItem.type = ChamberInstanllingProvisionGenre_Gift_Effect; + + YUMIChamberInstanllingProvisionMatrix * messageScreedItem = [[YUMIChamberInstanllingProvisionMatrix alloc] init]; + messageScreedItem.title = YMLocalizedString(@"YUMI_Room_Setting_Presenter_7"); + messageScreedItem.switchState = !roomInfo.isCloseScreen; + messageScreedItem.type = ChamberInstanllingProvisionGenre_Message_Screen; + + YUMIChamberInstanllingProvisionMatrix * arrangeMicItem = [[YUMIChamberInstanllingProvisionMatrix alloc] init]; + arrangeMicItem.title = YMLocalizedString(@"YUMI_Room_Setting_Presenter_8"); + arrangeMicItem.switchState = roomInfo.roomModeType == ChamberModeGenre_Open_Micro_Mode; + arrangeMicItem.type = ChamberInstanllingProvisionGenre_Arrange_Mic; + + YUMIChamberInstanllingProvisionMatrix * leaveItem = [[YUMIChamberInstanllingProvisionMatrix alloc] init]; + leaveItem.title = YMLocalizedString(@"YUMI_Room_Setting_Presenter_9"); + leaveItem.switchState = roomInfo.leaveMode; + leaveItem.type = ChamberInstanllingProvisionGenre_Leave_Model; + + NSString * roomId = [NSString stringWithFormat:@"%ld", roomInfo.roomId]; + NSString * uid = [AccountAbstractStorage instance].acquireCid; + + NIMChatroomMembersByIdsRequest *request = [[NIMChatroomMembersByIdsRequest alloc]init]; + request.roomId = roomId; + request.userIds = @[uid]; + [[NIMSDK sharedSDK].chatroomManager fetchChatroomMembersByIds:request completion:^(NSError * _Nullable error, NSArray * _Nullable members) { + NSArray * array; + if (error == nil) { + NIMChatroomMember * member = members.firstObject; + if (roomInfo.type == ChamberGenre_Anchor) { + if (member.type == NIMChatroomMemberTypeCreator || isSuperAdmin) { + if (roomInfo.isPermitRoom == PermitChamberGenre_Licnese) { + if (roomInfo.roomPwd.length > 0) { + array = @[ + @[titleItem, lockItem, pwdItem], + @[classItem, tagItem], + @[executiveProvision, blackProvision, giftEffectItem, messageScreedItem] + ]; + } else { + array = @[ + @[titleItem, lockItem], + @[classItem, tagItem], + @[executiveProvision, blackProvision, giftEffectItem, messageScreedItem] + ]; + } + } else { + if (roomInfo.roomPwd.length > 0) { + array = @[ + @[titleItem, lockItem, pwdItem], + @[classItem, tagItem], + @[executiveProvision, blackProvision, giftEffectItem, messageScreedItem] + ]; + } else { + array = @[ + @[titleItem, lockItem], + @[classItem, tagItem], + @[executiveProvision, blackProvision, giftEffectItem, messageScreedItem] + ]; + } + } + } else { + if (roomInfo.roomPwd.length > 0) { + array = @[ + @[titleItem, lockItem, pwdItem], + @[tagItem], + @[executiveProvision, blackProvision, giftEffectItem, messageScreedItem] + ]; + } else { + array = @[ + @[titleItem, lockItem], + @[tagItem], + @[blackProvision, giftEffectItem] + ]; + } + } + } else { + if (member.type == NIMChatroomMemberTypeCreator) { + if (roomInfo.isPermitRoom == PermitChamberGenre_Licnese) { + if (roomInfo.roomPwd.length > 0) { + array = @[ + @[titleItem, lockItem,pwdItem], + @[tagItem], + @[executiveProvision, blackProvision, giftEffectItem, messageScreedItem, arrangeMicItem, leaveItem] + ]; + } else { + array = @[ + @[titleItem, lockItem], + @[tagItem], + @[executiveProvision, blackProvision, giftEffectItem, messageScreedItem, arrangeMicItem, leaveItem] + ]; + } + } else { + if (roomInfo.type == ChamberGenre_MiniGame) { + if (roomInfo.roomPwd.length > 0) { + array = @[ + @[titleItem, lockItem, pwdItem], + @[tagItem], + @[executiveProvision, blackProvision, giftEffectItem, messageScreedItem] + ]; + }else { + array = @[ + @[titleItem, lockItem], + @[tagItem], + @[executiveProvision, blackProvision, giftEffectItem, messageScreedItem] + ]; + } + } else { + if (roomInfo.roomPwd.length > 0) { + array = @[ + @[titleItem, lockItem, pwdItem], + @[tagItem], + @[executiveProvision, blackProvision, giftEffectItem, messageScreedItem, arrangeMicItem] + ]; + }else { + array = @[ + @[titleItem, lockItem], + @[tagItem], + @[executiveProvision, blackProvision, giftEffectItem, messageScreedItem, arrangeMicItem] + ]; + } + } + } + }else if(isSuperAdmin) { + if (roomInfo.roomPwd.length > 0) { + array = @[ + @[titleItem, lockItem,pwdItem], + @[tagItem], + @[executiveProvision,blackProvision, giftEffectItem, messageScreedItem, arrangeMicItem] + ]; + } else { + array = @[ + @[titleItem, lockItem], + @[tagItem], + @[executiveProvision,blackProvision, giftEffectItem, messageScreedItem, arrangeMicItem] + ]; + } + } else if(member.type == NIMChatroomMemberTypeManager) { + if (roomInfo.roomPwd.length > 0) { + array = @[ + @[titleItem, lockItem,pwdItem], + @[tagItem], + @[blackProvision, giftEffectItem, messageScreedItem, arrangeMicItem] + ]; + } else { + array = @[ + @[titleItem, lockItem], + @[tagItem], + @[blackProvision, giftEffectItem, messageScreedItem, arrangeMicItem] + ]; + } + } + } + if(![ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + array = @[ + @[messageScreedItem, titleItem], + @[lockItem], + @[executiveProvision, blackProvision] + ]; + } + [[self acquireRegard] acquireChamberInstanllingSttowardsementAccomplishment:array]; + } + }]; +} + + + +- (void)acquireChamberAbstract:(NSString *)roomUid { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [Api acquireChamberAbstract:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + ChamberAbstractMatrix * roomInfo = [ChamberAbstractMatrix mtowardsrixAboutImpactbasket:data.data]; + [[self acquireRegard] acquireChamberAbstractAccomplishment:roomInfo]; + } EvidenceChambering:YES] uid:roomUid intoUid:uid]; +} +- (void)unfoildChamberScheduleLoudspeaker:(NSString *)roomUid { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [Api unfoildChamberScheduleLoudspeaker:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] unfoildChamberScheduleLoudspeakerAccomplishment]; + } EvidenceChambering:YES] roomUid:roomUid operUid:uid]; +} + +- (void)concludeChamberScheduleLoudspeaker:(NSString *)roomUid { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [Api concludeChamberScheduleLoudspeaker:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] concludeChamberScheduleLoudspeakerAccomplishment]; + } EvidenceChambering:YES] roomUid:roomUid operUid:uid]; +} + +- (void)unfoildChamberDepartureManner:(NSString *)roomUid { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [Api unfoildChamberDepartureManner:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] unfoildChamberScheduleLoudspeakerAccomplishment]; + } EvidenceChambering:YES] roomUid:roomUid uid:uid]; +} + +- (void)concludeChamberDepartureManner:(NSString *)roomUid { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [Api concludeChamberDepartureManner:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] concludeChamberScheduleLoudspeakerAccomplishment]; + } EvidenceChambering:YES] roomUid:roomUid uid:uid]; +} + +- (void)refurbishChamberCommunictowardsioncreenDeclare:(BOOL)isCloseScreen roomId:(NSString *)roomId { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NSString * ticket = [AccountAbstractStorage instance].acquireTicket; + NSString * isCleScreenStr = isCloseScreen ? @"1" : @"0"; + [Api refurbishChamberAbstractCommunictowardsionDeclare:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + ChamberAbstractMatrix * roomInfo = [ChamberAbstractMatrix mtowardsrixAboutImpactbasket:data.data]; + [[self acquireRegard] refurbishChamberCommunictowardsioncreenDeclareAccomplishment:roomInfo]; + } EvidenceChambering:YES] roomId:roomId isCloseScreen:isCleScreenStr ticket:ticket uid:uid]; +} + + +- (void)refurbishChamberAbstract:(NSString *)title roomPwd:(NSString *)roomPwd tagId:(NSString *)tagId classifyId:(NSString *)classifyId hasAnimationEffect:(BOOL)hasAnimationEffect roomUid:(NSString *)roomUid roomId:(NSString *)roomId type:(ChamberGenre)type itemType:(ChamberInstanllingProvisionGenre)itemType mgId:(NSString *)mgId{ + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NSString * ticket = [AccountAbstractStorage instance].acquireTicket; + NSMutableDictionary * params = [NSMutableDictionary dictionary]; + [params setObject:ticket forKey:@"ticket"]; + [params setObject:uid forKey:@"uid"]; + [params setObject:roomUid forKey:@"roomUid"]; + if (title.length > 0) { + [params setObject:title forKey:@"title"]; + } + + if (roomPwd.length > 0) { + [params setObject:roomPwd forKey:@"roomPwd"]; + } else{ + [params setObject:@"" forKey:@"roomPwd"]; + } + + if (tagId.length > 0) { + [params setObject:tagId forKey:@"tagId"]; + } + if (classifyId.length > 0) { + [params setObject:classifyId forKey:@"singleRoomSortId"]; + } + [params setObject:@(type) forKey:@"type"]; + + [params setObject:@(hasAnimationEffect) forKey:@"hasAnimationEffect"]; + + if (mgId.length > 0) { + [params setObject:mgId forKey:@"mgId"]; + } + + NIMChatroomMembersByIdsRequest *request = [[NIMChatroomMembersByIdsRequest alloc]init]; + request.roomId = roomId; + request.userIds = @[uid]; + [[NIMSDK sharedSDK].chatroomManager fetchChatroomMembersByIds:request completion:^(NSError * _Nullable error, NSArray * _Nullable members) { + if (error == nil) { + NIMChatroomMember * member = members.firstObject; + if (member.type == NIMTeamMemberTypeOwner) { + [Api proprietaryRefurbishChamberAbstract:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + ChamberAbstractMatrix * roomInfo = [ChamberAbstractMatrix mtowardsrixAboutJSON:data.data]; + [[self acquireRegard] refurbishChamberAbstractAccomplishment:roomInfo itemType:itemType]; + }fail:^(NSInteger code, NSString * _Nullable msg) { + [[self acquireRegard] refurbishChamberAbstractFlunk:msg]; + } EvidenceChambering:YES] params:params]; + } else if(member.type == NIMTeamMemberTypeManager) { + [Api executiveRefurbishChamberAbstract:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + ChamberAbstractMatrix * roomInfo = [ChamberAbstractMatrix mtowardsrixAboutJSON:data.data]; + [[self acquireRegard] refurbishChamberAbstractAccomplishment:roomInfo itemType:itemType]; + }fail:^(NSInteger code, NSString * _Nullable msg) { + [[self acquireRegard] refurbishChamberAbstractFlunk:msg]; + } EvidenceChambering:YES] params:params]; + } + } else { + [[self acquireRegard] refurbishChamberAbstractFlunk:YMLocalizedString(@"YUMI_Room_Setting_Presenter_10")]; + } + }]; + +} + +@end diff --git a/YuMi/Modules/YMRoom/View/Setting/Presenter/YUMIChamberMotifExternalizer.h b/YuMi/Modules/YMRoom/View/Setting/Presenter/YUMIChamberMotifExternalizer.h new file mode 100644 index 00000000..705e9b5e --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Setting/Presenter/YUMIChamberMotifExternalizer.h @@ -0,0 +1,16 @@ +// +// YMRoomTopicPresenter.h +// YUMI +// +// Created by YUMI on 2022/3/14. +// + +#import "BaseMvpExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN +@class ChamberAbstractMatrix; +@interface YUMIChamberMotifExternalizer : BaseMvpExternalizer +- (void)chamberMotifRefurbish:(NSString *)roomDesc introduction:(NSString *)introduction roomInfo:(ChamberAbstractMatrix *)roomInfo; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/Setting/Presenter/YUMIChamberMotifExternalizer.m b/YuMi/Modules/YMRoom/View/Setting/Presenter/YUMIChamberMotifExternalizer.m new file mode 100644 index 00000000..250d8b97 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Setting/Presenter/YUMIChamberMotifExternalizer.m @@ -0,0 +1,67 @@ +// +// YMRoomTopicPresenter.m +// YUMI +// +// Created by YUMI on 2022/3/14. +// + +#import "YUMIChamberMotifExternalizer.h" +#import +#import "YUMIConstant.h" +#import "DESEncrypt.h" +#import "AccountAbstractStorage.h" +#import "Api+RoomSetting.h" +#import "FBCChamberMotifCeremony.h" +#import "ChamberAbstractMatrix.h" +#import "NSMutableDictionary+Saft.h" + +@implementation YUMIChamberMotifExternalizer + +- (void)chamberMotifRefurbish:(NSString *)roomDesc introduction:(NSString *)introduction roomInfo:(ChamberAbstractMatrix *)roomInfo { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NSString * ticket = [AccountAbstractStorage instance].acquireTicket; + NSMutableDictionary * params = [NSMutableDictionary dictionary]; + [params secureSetGroal:ticket forKey:@"ticket"]; + [params secureSetGroal:uid forKey:@"uid"]; + [params secureSetGroal:[NSString stringWithFormat:@"%ld", roomInfo.uid] forKey:@"roomUid"]; + if (roomInfo.title.length > 0) { + [params secureSetGroal:roomInfo.title forKey:@"title"]; + } + + if (roomInfo.roomPwd.length > 0) { + [params secureSetGroal:roomInfo.roomPwd forKey:@"roomPwd"]; + } + + if (roomInfo.tagId > 0) { + [params secureSetGroal:[NSString stringWithFormat:@"%ld", roomInfo.tagId] forKey:@"tagId"]; + } + + [params secureSetGroal:roomDesc forKey:@"roomDesc"]; + if (introduction.length > 0) { + [params secureSetGroal:introduction forKey:@"introduction"]; + } + [params secureSetGroal:@(roomInfo.hasAnimationEffect) forKey:@"hasAnimationEffect"]; + + NIMChatroomMembersByIdsRequest *request = [[NIMChatroomMembersByIdsRequest alloc]init]; + request.roomId = [NSString stringWithFormat:@"%ld", roomInfo.roomId]; + request.userIds = @[uid]; + [[NIMSDK sharedSDK].chatroomManager fetchChatroomMembersByIds:request completion:^(NSError * _Nullable error, NSArray * _Nullable members) { + if (error == nil) { + NIMChatroomMember * member = members.firstObject; + if (member.type == NIMTeamMemberTypeOwner) { + [Api proprietaryRefurbishChamberAbstract:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] refurbishChamberMotifAccomplishment]; + } EvidenceChambering:YES] params:params]; + } else if(member.type == NIMTeamMemberTypeManager) { + [Api executiveRefurbishChamberAbstract:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] refurbishChamberMotifAccomplishment]; + } EvidenceChambering:YES] params:params]; + } + } else { + [[self acquireRegard] refurbishChamberMotifFlunk:YMLocalizedString(@"YUMI_Room_Topic_Presenter_0")]; + } + }]; + +} + +@end diff --git a/YuMi/Modules/YMRoom/View/Setting/Protocol/FBCChamberInstanllingCeremony.h b/YuMi/Modules/YMRoom/View/Setting/Protocol/FBCChamberInstanllingCeremony.h new file mode 100644 index 00000000..f2ea3d4a --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Setting/Protocol/FBCChamberInstanllingCeremony.h @@ -0,0 +1,26 @@ +// +// YMRoomSettingProtocol.h +// YUMI +// +// Created by YUMI on 2021/12/27. +// + +#import +#import "YUMIChamberInstanllingProvisionMatrix.h" + +NS_ASSUME_NONNULL_BEGIN +@class ChamberAbstractMatrix; +@protocol FBCChamberInstanllingCeremony + +- (void)acquireChamberInstanllingSttowardsementAccomplishment:(NSArray *)list; +- (void)acquireChamberAbstractAccomplishment:(ChamberAbstractMatrix *)roomInfo; +- (void)unfoildChamberScheduleLoudspeakerAccomplishment; +- (void)concludeChamberScheduleLoudspeakerAccomplishment; +- (void)refurbishChamberCommunictowardsioncreenDeclareAccomplishment:(ChamberAbstractMatrix *)roomInfo; +- (void)unfoildChamberDepartureMannerAccomplishment; +- (void)concludeChamberDepartureMannerAccomplishment; +- (void)refurbishChamberAbstractAccomplishment:(ChamberAbstractMatrix *)roomInfo itemType:(ChamberInstanllingProvisionGenre)itemType; +- (void)refurbishChamberAbstractFlunk:(NSString *)message; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/Setting/Protocol/FBCChamberMotifCeremony.h b/YuMi/Modules/YMRoom/View/Setting/Protocol/FBCChamberMotifCeremony.h new file mode 100644 index 00000000..237857b1 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Setting/Protocol/FBCChamberMotifCeremony.h @@ -0,0 +1,18 @@ +// +// YMRoomTopicProtocol.h +// YUMI +// +// Created by YUMI on 2022/3/14. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol FBCChamberMotifCeremony + +- (void)refurbishChamberMotifAccomplishment; +- (void)refurbishChamberMotifFlunk:(NSString *)message; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/Setting/Protocol/FBCChamberTagCeremony.h b/YuMi/Modules/YMRoom/View/Setting/Protocol/FBCChamberTagCeremony.h new file mode 100644 index 00000000..1124c6b6 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Setting/Protocol/FBCChamberTagCeremony.h @@ -0,0 +1,20 @@ +// +// YMRoomTagProtocol.h +// YUMI +// +// Created by YUMI on 2021/12/28. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol FBCChamberTagCeremony + +- (void)acquireChamberCoupleSttowardsementAccomplishment:(NSArray *)array; + +- (void)acquireChamberCtowardsegorizeifySttowardsementAccomplishment:(NSArray *)array; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/Setting/View/Cell/YUMIChamberInstanllingCoupleElement.h b/YuMi/Modules/YMRoom/View/Setting/View/Cell/YUMIChamberInstanllingCoupleElement.h new file mode 100644 index 00000000..bdfb797b --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Setting/View/Cell/YUMIChamberInstanllingCoupleElement.h @@ -0,0 +1,19 @@ +// +// YMRoomSettingTagCell.h +// YUMI +// +// Created by YUMI on 2021/12/28. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class ChamberCoupleMatrix, ChamberClassifyMatrix; + +@interface YUMIChamberInstanllingCoupleElement : UICollectionViewCell +@property (nonatomic,strong) ChamberCoupleMatrix *roomTag; +@property (nonatomic, strong) ChamberClassifyMatrix *chamberCategorized; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/Setting/View/Cell/YUMIChamberInstanllingCoupleElement.m b/YuMi/Modules/YMRoom/View/Setting/View/Cell/YUMIChamberInstanllingCoupleElement.m new file mode 100644 index 00000000..19804934 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Setting/View/Cell/YUMIChamberInstanllingCoupleElement.m @@ -0,0 +1,78 @@ +// +// YMRoomSettingTagCell.m +// YUMI +// +// Created by YUMI on 2021/12/28. +// + +#import "YUMIChamberInstanllingCoupleElement.h" +#import +#import "ChamberCoupleMatrix.h" +#import "DJDKMIMOMColor.h" +#import "ChamberClassifyMatrix.h" + +@interface YUMIChamberInstanllingCoupleElement () +@property (nonatomic, strong) UILabel *coupleSequencignation; +@end + +@implementation YUMIChamberInstanllingCoupleElement + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + self.backgroundColor = [UIColor colorWithWhite:1 alpha:0.08]; + self.layer.cornerRadius = 13; + self.layer.masksToBounds = YES; + self.layer.borderWidth = 0.5; + [self addSubview:self.coupleSequencignation]; + [self.coupleSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.center.mas_equalTo(self); + }]; + } + return self; +} + +- (void)setRoomTag:(ChamberCoupleMatrix *)roomTag { + _roomTag = roomTag; + if (_roomTag) { + self.coupleSequencignation.text = _roomTag.name; + if (_roomTag.isSelect) { + self.backgroundColor = UIColorFromRGB(0xFFF0C9); + self.coupleSequencignation.textColor = UIColorFromRGB(0xFFA936); + self.layer.borderColor = UIColorFromRGB(0xFFBC51).CGColor; + } else { + self.backgroundColor = UIColorFromRGB(0xF1F1FA); + self.coupleSequencignation.textColor = [DJDKMIMOMColor instantEssayPrettify]; + self.layer.borderColor = UIColorFromRGB(0xF1F1FA).CGColor; + } + } +} + +- (void)setChamberCategorized:(ChamberClassifyMatrix *)chamberCategorized { + _chamberCategorized = chamberCategorized; + if (_chamberCategorized) { + self.coupleSequencignation.text = _chamberCategorized.sortName; + if (_chamberCategorized.isSelect) { + self.backgroundColor = UIColorFromRGB(0xFFF0C9); + self.coupleSequencignation.textColor = UIColorFromRGB(0xFFA936); + self.layer.borderColor = UIColorFromRGB(0xFFBC51).CGColor; + } else { + self.backgroundColor = UIColorFromRGB(0xF1F1FA); + self.coupleSequencignation.textColor = [DJDKMIMOMColor instantEssayPrettify]; + self.layer.borderColor = UIColorFromRGB(0xF1F1FA).CGColor; + } + } +} + +#pragma mark - Getter & Setter +- (UILabel *)coupleSequencignation { + if (!_coupleSequencignation) { + _coupleSequencignation = [[UILabel alloc] init]; + _coupleSequencignation.textColor = UIColor.whiteColor; + _coupleSequencignation.font = [UIFont systemFontOfSize:12]; + } + return _coupleSequencignation; +} + + +@end diff --git a/YuMi/Modules/YMRoom/View/Setting/View/Cell/YUMIChamberInstanllingTabulationRegardElement.h b/YuMi/Modules/YMRoom/View/Setting/View/Cell/YUMIChamberInstanllingTabulationRegardElement.h new file mode 100644 index 00000000..80fb2aed --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Setting/View/Cell/YUMIChamberInstanllingTabulationRegardElement.h @@ -0,0 +1,23 @@ +// +// YMRoomSettingTableViewCell.h +// YUMI +// +// Created by YUMI on 2021/12/27. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class YUMIChamberInstanllingProvisionMatrix; +@protocol FBCChamberInstanllingTabulationViweElementRepresendtation + +- (void)didDiversifictowardsionSwop:(UISwitch *)switchView itemMatrix:(YUMIChamberInstanllingProvisionMatrix *)itemMatrix; + +@end +@interface YUMIChamberInstanllingTabulationRegardElement : UITableViewCell + +@property (nonatomic,strong) YUMIChamberInstanllingProvisionMatrix *itemMatrix; +@property (nonatomic,weak) id delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/Setting/View/Cell/YUMIChamberInstanllingTabulationRegardElement.m b/YuMi/Modules/YMRoom/View/Setting/View/Cell/YUMIChamberInstanllingTabulationRegardElement.m new file mode 100644 index 00000000..43780953 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Setting/View/Cell/YUMIChamberInstanllingTabulationRegardElement.m @@ -0,0 +1,176 @@ +// +// YMRoomSettingTableViewCell.m +// YUMI +// +// Created by YUMI on 2021/12/27. +// + +#import "YUMIChamberInstanllingTabulationRegardElement.h" +#import +#import "ThemeColor+Room.h" +#import "YUMIChamberInstanllingProvisionMatrix.h" + +@interface YUMIChamberInstanllingTabulationRegardElement () +@property (nonatomic,strong) UIStackView *championHierarchyRegard; +@property (nonatomic,strong) UILabel *titleLabel; +@property (nonatomic,strong) UILabel *leaveSequencignation; +@property (nonatomic,strong) UIStackView *stackView; +@property (nonatomic,strong) UILabel *subChampionSequencignation; +@property (nonatomic,strong) UISwitch *switchView; +@property (nonatomic,strong) UIImageView *arrowIndicateRegard; +@property (nonatomic,strong) UIView * burlywoodRegard; +@end + +@implementation YUMIChamberInstanllingTabulationRegardElement +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} +#pragma mark - Private Method +- (void)initSubViews { + self.selectionStyle = UITableViewCellSelectionStyleNone; + self.backgroundColor = [DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify]; + [self.contentView addSubview:self.championHierarchyRegard]; + [self.contentView addSubview:self.stackView]; + [self.contentView addSubview:self.burlywoodRegard]; + + [self.championHierarchyRegard addArrangedSubview:self.titleLabel]; + [self.championHierarchyRegard addArrangedSubview:self.leaveSequencignation]; + + [self.stackView addArrangedSubview:self.subChampionSequencignation]; + [self.stackView addArrangedSubview:self.switchView]; + [self.stackView addArrangedSubview:self.arrowIndicateRegard]; +} + +- (void)initChildLyRestrictions { + [self.championHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.contentView).offset(15); + make.centerY.mas_equalTo(self.contentView); + }]; + + [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self.contentView).offset(-15); + make.centerY.mas_equalTo(self.contentView); + }]; + + [self.burlywoodRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.contentView).inset(15); + make.bottom.mas_equalTo(0); + make.height.mas_equalTo(0.5); + }]; +} +#pragma mark - Event Response +- (void)swopDidDiversifictowardsion:(UISwitch *)swtich { + if (self.delegate && [self.delegate respondsToSelector:@selector(didDiversifictowardsionSwop:itemMatrix:)]) { + [self.delegate didDiversifictowardsionSwop:swtich itemMatrix:self.itemMatrix]; + } +} + +#pragma mark - Getters And Setters +- (void)setItemMatrix:(YUMIChamberInstanllingProvisionMatrix *)itemMatrix { + _itemMatrix = itemMatrix; + self.titleLabel.text = _itemMatrix.title; + if (_itemMatrix.type == ChamberInstanllingProvisionGenre_Title || _itemMatrix.type == ChamberInstanllingProvisionGenre_Class || _itemMatrix.type == ChamberInstanllingProvisionGenre_Tag || _itemMatrix.type == ChamberInstanllingProvisionGenre_Black_List || _itemMatrix.type == ChamberInstanllingProvisionGenre_Manager_List || _itemMatrix.type == ChamberInstanllingProvisionGenre_Pwd) { + self.switchView.hidden = YES; + self.arrowIndicateRegard.hidden = NO; + self.subChampionSequencignation.hidden = NO; + self.subChampionSequencignation.text = _itemMatrix.subTitle.length > 0 ? _itemMatrix.subTitle : @""; + } else { + self.switchView.hidden = NO; + self.arrowIndicateRegard.hidden = YES; + self.subChampionSequencignation.hidden = YES; + self.switchView.on = _itemMatrix.switchState; + } + + if (_itemMatrix.type == ChamberInstanllingProvisionGenre_Leave_Model && _itemMatrix.switchState) { + self.leaveSequencignation.hidden = NO; + } else { + self.leaveSequencignation.hidden = YES; + } +} + +- (UIStackView *)championHierarchyRegard { + if (!_championHierarchyRegard) { + _championHierarchyRegard = [[UIStackView alloc] init]; + _championHierarchyRegard.axis = UILayoutConstraintAxisVertical; + _championHierarchyRegard.distribution = UIStackViewDistributionFill; + _championHierarchyRegard.alignment = UIStackViewAlignmentLeading; + _stackView.spacing = 3; + } + return _championHierarchyRegard; +} + +- (UILabel *)titleLabel { + if (_titleLabel == nil) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _titleLabel.font = [UIFont systemFontOfSize:15]; + [_titleLabel setContentCompressionResistancePriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal]; + } + return _titleLabel; +} + +- (UILabel *)leaveSequencignation { + if (!_leaveSequencignation) { + _leaveSequencignation = [[UILabel alloc] init]; + _leaveSequencignation.textColor = [DJDKMIMOMColor essayTertiusPrettify]; + _leaveSequencignation.font = [UIFont systemFontOfSize:13]; + _leaveSequencignation.text = YMLocalizedString(@"YUMI_Room_Setting_Table_View_Cell_0"); + } + return _leaveSequencignation; +} + +- (UIStackView *)stackView { + if (!_stackView) { + _stackView = [[UIStackView alloc] init]; + _stackView.axis = UILayoutConstraintAxisHorizontal; + _stackView.distribution = UIStackViewDistributionFill; + _stackView.alignment = UIStackViewAlignmentCenter; + _stackView.spacing = 8; + } + return _stackView; +} + +- (UIImageView *)arrowIndicateRegard { + if (_arrowIndicateRegard == nil) { + _arrowIndicateRegard = [[UIImageView alloc] init]; + _arrowIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_setting_arrow"]; + [_arrowIndicateRegard setContentCompressionResistancePriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal]; + [_arrowIndicateRegard setContentCompressionResistancePriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisVertical]; + } + return _arrowIndicateRegard; +} + +- (UIView *)burlywoodRegard { + if (!_burlywoodRegard) { + _burlywoodRegard = [[UIView alloc] init]; + _burlywoodRegard.backgroundColor = [DJDKMIMOMColor dividerPrettify]; + } + return _burlywoodRegard; +} + +- (UISwitch *)switchView { + if (!_switchView) { + _switchView = [[UISwitch alloc] init]; + _switchView.onTintColor = [DJDKMIMOMColor aplictowardsionUnderlinePrettify]; + _switchView.tintColor = [DJDKMIMOMColor aplictowardsionMainPrettify]; + _switchView.backgroundColor = [UIColor clearColor]; + [_switchView addTarget:self action:@selector(swopDidDiversifictowardsion:) forControlEvents:UIControlEventValueChanged]; + } + return _switchView; +} + +- (UILabel *)subChampionSequencignation { + if (!_subChampionSequencignation) { + _subChampionSequencignation = [[UILabel alloc] init]; + _subChampionSequencignation.textColor = [DJDKMIMOMColor instantEssayPrettify]; + _subChampionSequencignation.font = [UIFont systemFontOfSize:12]; + } + return _subChampionSequencignation; +} + + +@end diff --git a/YuMi/Modules/YMRoom/View/Setting/View/Cell/YUMIChamberOnlineTabulationRegardElement.h b/YuMi/Modules/YMRoom/View/Setting/View/Cell/YUMIChamberOnlineTabulationRegardElement.h new file mode 100644 index 00000000..472830ff --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Setting/View/Cell/YUMIChamberOnlineTabulationRegardElement.h @@ -0,0 +1,25 @@ +// +// YMRoomOnlineTableViewCell.h +// YUMI +// +// Created by YUMI on 2021/12/30. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class NIMChatroomMember; +typedef NS_ENUM(NSInteger, ChamberOnLineGenre) { + + ChamberOnLineGenre_All_User = 0, + + ChamberOnLineGenre_Invite_User +}; + +@interface YUMIChamberOnlineTabulationRegardElement : UITableViewCell +@property (nonatomic,assign) ChamberOnLineGenre onlineGenre; +@property (strong, nonatomic) NIMChatroomMember *member; +@property (nonatomic,assign) BOOL isOnMicro; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/Setting/View/Cell/YUMIChamberOnlineTabulationRegardElement.m b/YuMi/Modules/YMRoom/View/Setting/View/Cell/YUMIChamberOnlineTabulationRegardElement.m new file mode 100644 index 00000000..5e611bbc --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Setting/View/Cell/YUMIChamberOnlineTabulationRegardElement.m @@ -0,0 +1,363 @@ +// +// YMRoomOnlineTableViewCell.m +// YUMI +// +// Created by YUMI on 2021/12/30. +// + +#import "YUMIChamberOnlineTabulationRegardElement.h" +#import +#import +#import "NetIndicateRegard.h" +#import "DJDKMIMOMColor.h" +#import "UIImage+Utils.h" +#import "YUMICommunicationRemoteExtMatrix.h" + +@interface YUMIChamberOnlineTabulationRegardElement () +@property (nonatomic,strong) NetIndicateRegard *intelligenceportraitIndicateRegard; +@property (nonatomic,strong) UIImageView *seaxualityIndicateRegard; +@property (nonatomic,strong) UIStackView *stackView; +@property (nonatomic,strong) UIStackView *monicerHierarchyRegard; +@property (nonatomic,strong) UILabel *monicerSequencignation; +@property (nonatomic,strong) UIStackView *coupleHierarchyRegard; +@property (nonatomic,strong) UIButton *roleBtuton; +@property (nonatomic,strong) NetIndicateRegard *fascinationIndicateRegard; +@property (nonatomic,strong) NetIndicateRegard *experIndicateRegard; +@property (nonatomic,strong) UIView * constituteWoodentrayRegard; +@property (nonatomic,strong) NetIndicateRegard *materialIndicateRegard; +@property (nonatomic,strong) UILabel *materialSequencignation; +@property (nonatomic,strong) UIView * burlywoodRegard; +@property (strong, nonatomic) UILabel *onMiecreoscoopePositionSequencignation; +@end + +@implementation YUMIChamberOnlineTabulationRegardElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor]; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.intelligenceportraitIndicateRegard]; + [self.contentView addSubview:self.stackView]; + [self.contentView addSubview:self.burlywoodRegard]; + [self.contentView addSubview:self.onMiecreoscoopePositionSequencignation]; + + [self.stackView addArrangedSubview:self.monicerHierarchyRegard]; + [self.stackView addArrangedSubview:self.coupleHierarchyRegard]; + + [self.monicerHierarchyRegard addArrangedSubview:self.monicerSequencignation]; + [self.monicerHierarchyRegard addArrangedSubview:self.seaxualityIndicateRegard]; + + [self.coupleHierarchyRegard addArrangedSubview:self.roleBtuton]; + [self.coupleHierarchyRegard addArrangedSubview:self.experIndicateRegard]; + [self.coupleHierarchyRegard addArrangedSubview:self.fascinationIndicateRegard]; + [self.coupleHierarchyRegard addArrangedSubview:self.constituteWoodentrayRegard]; + + + [self.constituteWoodentrayRegard addSubview:self.materialIndicateRegard]; + [self.constituteWoodentrayRegard addSubview:self.materialSequencignation]; +} + +- (void)initChildLyRestrictions { + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.contentView).offset(15); + make.width.height.mas_equalTo(40); + make.centerY.mas_equalTo(self.contentView.mas_centerY); + }]; + + [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self); + make.left.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_right).offset(10); + }]; + + [self.coupleHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(25); + }]; + + [self.roleBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(38, 15)); + }]; + + [self.experIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.mas_equalTo(25); + }]; + + [self.fascinationIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.mas_equalTo(25); + }]; + + [self.constituteWoodentrayRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(25); + make.width.mas_equalTo(self.materialIndicateRegard.mas_width); + }]; + + + [self.materialIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(25); + make.width.mas_equalTo(60); + make.left.top.mas_equalTo(self.constituteWoodentrayRegard); + }]; + + [self.materialSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.bottom.mas_equalTo(self.materialIndicateRegard); + make.right.mas_equalTo(self.constituteWoodentrayRegard).offset(-2); + }]; + + [self.burlywoodRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.monicerSequencignation); + make.right.mas_equalTo(self.contentView).offset(-15); + make.bottom.mas_equalTo(self.contentView); + make.height.mas_equalTo(0.5); + }]; + + [self.onMiecreoscoopePositionSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.contentView); + make.right.mas_equalTo(-15); + make.width.mas_equalTo(32); + make.height.mas_equalTo(14); + }]; +} + + +#pragma mark - Getters And Setters +- (void)setMember:(NIMChatroomMember *)member { + _member = member; + if (_member) { + NSDictionary * extDic = [member.roomExt toJSONGroal]; + YUMICommunicationRemoteExtMatrix * userInfo = [YUMICommunicationRemoteExtMatrix mtowardsrixAboutImpactbasket:[extDic objectForKey:member.userId]]; + if (userInfo.gender) { + self.seaxualityIndicateRegard.image = userInfo.gender == GenderGenre_Female ? [UIImage imageNamed:@"yumi_same_female"] : [UIImage imageNamed:@"yumi_same_male"]; + } else { + NIMUser *user = [[NIMSDK sharedSDK].userManager userInfo:_member.userId]; + self.seaxualityIndicateRegard.image = user.userInfo.gender == NIMUserGenderFemale ? [UIImage imageNamed:@"yumi_same_female"] : [UIImage imageNamed:@"yumi_same_male"]; + } + if (extDic.allKeys.count > 0 || (member.type == NIMTeamMemberTypeOwner || member.type == NIMChatroomMemberTypeManager)) { + self.coupleHierarchyRegard.hidden = NO; + + if (userInfo.experUrl) { + self.experIndicateRegard.imageUrl = userInfo.experUrl; + } + self.experIndicateRegard.hidden = userInfo.experUrl.length <= 0; + + if (userInfo.charmUrl) { + self.fascinationIndicateRegard.imageUrl = userInfo.charmUrl; + } + self.fascinationIndicateRegard.hidden = userInfo.charmUrl.length <= 0; + + if (userInfo.inRoomNameplatePic.length>0 && userInfo.inRoomNameplateWord.length>0) { + self.materialIndicateRegard.imageUrl = userInfo.inRoomNameplatePic; + self.materialSequencignation.text = userInfo.inRoomNameplateWord; + self.constituteWoodentrayRegard.hidden = NO; + } else { + self.constituteWoodentrayRegard.hidden = YES; + } + + if (_member.type == NIMTeamMemberTypeOwner) { + self.roleBtuton.hidden = NO; + [self.roleBtuton setBackgroundColor:[DJDKMIMOMColor aplictowardsionUnderlinePrettify2]]; + [self.roleBtuton setTitle:YMLocalizedString(@"YUMI_Room_Online_Table_View_Cell_0") forState:UIControlStateNormal]; + } else if(_member.type == NIMChatroomMemberTypeManager) { + self.roleBtuton.hidden = NO; + [self.roleBtuton setBackgroundColor:[DJDKMIMOMColor aplictowardsionUnderlinePrettify]]; + [self.roleBtuton setTitle:YMLocalizedString(@"YUMI_Room_Online_Table_View_Cell_1") forState:UIControlStateNormal]; + } else { + self.roleBtuton.hidden = YES; + } + } else { + self.coupleHierarchyRegard.hidden = YES; + } + if (userInfo.enterHide) { + self.monicerSequencignation.text = YMLocalizedString(@"YUMI_Room_Online_Table_View_Cell_2"); + self.intelligenceportraitIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_secretMan"]; + self.seaxualityIndicateRegard.hidden = YES; + self.coupleHierarchyRegard.hidden = YES; + self.isOnMicro = NO; + } else { + self.intelligenceportraitIndicateRegard.imageUrl = _member.roomAvatar; + self.monicerSequencignation.text = _member.roomNickname; + self.seaxualityIndicateRegard.hidden = NO; + } + } +} + +- (void)setIsOnMicro:(BOOL)isOnMicro { + self.onMiecreoscoopePositionSequencignation.hidden = !isOnMicro; +} + +- (void)setOnlineGenre:(ChamberOnLineGenre)onlineGenre { + _onlineGenre = onlineGenre; + switch (_onlineGenre) { + case ChamberOnLineGenre_All_User: + self.monicerSequencignation.textColor = [UIColor whiteColor]; + self.backgroundColor = [UIColor clearColor]; + break; + case ChamberOnLineGenre_Invite_User: + self.monicerSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + self.backgroundColor = [UIColor clearColor]; + self.isOnMicro = NO; + break; + default: + break; + } +} + +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _intelligenceportraitIndicateRegard.layer.cornerRadius = 40/2; + _intelligenceportraitIndicateRegard.layer.borderColor = [DJDKMIMOMColor aplictowardsionMainPrettify].CGColor; + } + return _intelligenceportraitIndicateRegard; +} + +- (UIImageView *)seaxualityIndicateRegard { + if (!_seaxualityIndicateRegard) { + _seaxualityIndicateRegard = [[UIImageView alloc] init]; + _seaxualityIndicateRegard.userInteractionEnabled = YES; + } + return _seaxualityIndicateRegard; +} + +- (UILabel *)monicerSequencignation { + if (!_monicerSequencignation) { + _monicerSequencignation = [[UILabel alloc] init]; + _monicerSequencignation.font = [UIFont systemFontOfSize:15]; + _monicerSequencignation.textColor = [UIColor whiteColor]; + } + return _monicerSequencignation; +} + +- (UIStackView *)stackView { + if (!_stackView) { + _stackView = [[UIStackView alloc] init]; + _stackView.axis = UILayoutConstraintAxisVertical; + _stackView.distribution = UIStackViewDistributionFillProportionally; + _stackView.alignment = UIStackViewAlignmentLeading; + _stackView.spacing = 5; + } + return _stackView; +} + +- (UIStackView *)monicerHierarchyRegard { + if (!_monicerHierarchyRegard) { + _monicerHierarchyRegard = [[UIStackView alloc] init]; + _monicerHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _monicerHierarchyRegard.distribution = UIStackViewDistributionFill; + _monicerHierarchyRegard.alignment = UIStackViewAlignmentCenter; + _monicerHierarchyRegard.spacing = 3; + } + return _monicerHierarchyRegard; +} + +- (UIStackView *)coupleHierarchyRegard { + if (!_coupleHierarchyRegard) { + _coupleHierarchyRegard = [[UIStackView alloc] init]; + _coupleHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _coupleHierarchyRegard.distribution = UIStackViewDistributionFill; + _coupleHierarchyRegard.alignment = UIStackViewAlignmentCenter; + _coupleHierarchyRegard.spacing = 2; + } + return _coupleHierarchyRegard; +} +- (NetIndicateRegard *)experIndicateRegard { + if (!_experIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc] init]; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + config.imageType = ImageGenreUserCardLevel; + _experIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _experIndicateRegard.userInteractionEnabled = YES; + _experIndicateRegard.hidden = YES; + _experIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _experIndicateRegard; +} + +- (NetIndicateRegard *)fascinationIndicateRegard { + if (!_fascinationIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc] init]; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + config.imageType = ImageGenreUserCardLevel; + _fascinationIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _fascinationIndicateRegard.userInteractionEnabled = YES; + _fascinationIndicateRegard.hidden = YES; + _fascinationIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _fascinationIndicateRegard; +} + +- (UIView *)constituteWoodentrayRegard { + if (!_constituteWoodentrayRegard) { + _constituteWoodentrayRegard = [[UIView alloc] init]; + _constituteWoodentrayRegard.backgroundColor = [UIColor clearColor]; + _constituteWoodentrayRegard.hidden = YES; + } + return _constituteWoodentrayRegard; +} + +- (NetIndicateRegard *)materialIndicateRegard { + if (!_materialIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc] init]; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + config.imageType = ImageGenreUserCardLevel; + _materialIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _materialIndicateRegard.userInteractionEnabled = YES; + _materialIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _materialIndicateRegard; +} + +- (UILabel *)materialSequencignation { + if (!_materialSequencignation) { + _materialSequencignation = [[UILabel alloc] init]; + _materialSequencignation.font = [UIFont systemFontOfSize:10]; + _materialSequencignation.textAlignment = NSTextAlignmentCenter; + _materialSequencignation.textColor = [UIColor whiteColor]; + } + return _materialSequencignation; +} + +- (UIView *)burlywoodRegard { + if (!_burlywoodRegard) { + _burlywoodRegard = [[UIView alloc] init]; + _burlywoodRegard.backgroundColor = [UIColor colorWithWhite:1 alpha:0.1]; + } + return _burlywoodRegard; +} + +- (UIButton *)roleBtuton { + if (!_roleBtuton) { + _roleBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_roleBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + _roleBtuton.titleLabel.font = [UIFont systemFontOfSize:10]; + _roleBtuton.layer.masksToBounds = YES; + _roleBtuton.layer.cornerRadius = 15 / 2; + } + return _roleBtuton; +} + +- (UILabel *)onMiecreoscoopePositionSequencignation { + if (!_onMiecreoscoopePositionSequencignation) { + _onMiecreoscoopePositionSequencignation = [[UILabel alloc] init]; + _onMiecreoscoopePositionSequencignation.text = YMLocalizedString(@"YUMI_Room_Online_Table_View_Cell_3"); + _onMiecreoscoopePositionSequencignation.textColor = UIColor.whiteColor; + _onMiecreoscoopePositionSequencignation.font = [UIFont systemFontOfSize:10]; + _onMiecreoscoopePositionSequencignation.textAlignment = NSTextAlignmentCenter; + _onMiecreoscoopePositionSequencignation.layer.cornerRadius = 7; + _onMiecreoscoopePositionSequencignation.layer.masksToBounds = YES; + _onMiecreoscoopePositionSequencignation.backgroundColor = [DJDKMIMOMColor aplictowardsionUnderlinePrettify]; + } + return _onMiecreoscoopePositionSequencignation; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/Setting/View/Cell/YUMIChamberRoleDispossessTabulationRegardElement.h b/YuMi/Modules/YMRoom/View/Setting/View/Cell/YUMIChamberRoleDispossessTabulationRegardElement.h new file mode 100644 index 00000000..5f998a5e --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Setting/View/Cell/YUMIChamberRoleDispossessTabulationRegardElement.h @@ -0,0 +1,16 @@ +// +// YMRoomRoleEmptyTableViewCell.h +// YUMI +// +// Created by YUMI on 2021/12/29. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIChamberRoleDispossessTabulationRegardElement : UITableViewCell +@property (nonatomic,strong, readonly) UILabel *titleLabel; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/Setting/View/Cell/YUMIChamberRoleDispossessTabulationRegardElement.m b/YuMi/Modules/YMRoom/View/Setting/View/Cell/YUMIChamberRoleDispossessTabulationRegardElement.m new file mode 100644 index 00000000..e7caa7fa --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Setting/View/Cell/YUMIChamberRoleDispossessTabulationRegardElement.m @@ -0,0 +1,68 @@ +// +// YMRoomRoleEmptyTableViewCell.m +// YUMI +// +// Created by YUMI on 2021/12/29. +// + +#import "YUMIChamberRoleDispossessTabulationRegardElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "UIIndicateConstant.h" + +@interface YUMIChamberRoleDispossessTabulationRegardElement () +@property (nonatomic,strong) UIImageView *dispossessIndicateRegard; +@property (nonatomic,strong) UILabel *titleLabel; +@end + +@implementation YUMIChamberRoleDispossessTabulationRegardElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} +#pragma mark - Private Method +- (void)initSubViews { + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.dispossessIndicateRegard]; + [self.contentView addSubview:self.titleLabel]; +} + +- (void)initChildLyRestrictions { + [self.dispossessIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.contentView).offset(150); + make.centerX.mas_equalTo(self.contentView); + make.size.mas_equalTo(CGSizeMake(200, 200)); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.dispossessIndicateRegard.mas_bottom).offset(20); + make.left.right.mas_equalTo(self.contentView); + }]; +} +#pragma mark - Getters And Setters +- (UIImageView *)dispossessIndicateRegard { + if (!_dispossessIndicateRegard) { + _dispossessIndicateRegard = [[UIImageView alloc] init]; + _dispossessIndicateRegard.userInteractionEnabled = YES; + _dispossessIndicateRegard.image = [UIIndicateConstant defalutDispossessDepapossessor]; + _dispossessIndicateRegard.layer.masksToBounds = YES; + _dispossessIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _dispossessIndicateRegard; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.text = YMLocalizedString(@"YUMI_Room_Role_Empty_Table_View_Cell_0"); + _titleLabel.font = [UIFont systemFontOfSize:16]; + _titleLabel.textAlignment = NSTextAlignmentCenter; + _titleLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + } + return _titleLabel; +} +@end diff --git a/YuMi/Modules/YMRoom/View/Setting/View/Cell/YUMIChamberRoleTabulationRegardElement.h b/YuMi/Modules/YMRoom/View/Setting/View/Cell/YUMIChamberRoleTabulationRegardElement.h new file mode 100644 index 00000000..3c76d55b --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Setting/View/Cell/YUMIChamberRoleTabulationRegardElement.h @@ -0,0 +1,24 @@ +// +// YMRoomRoleTableViewCell.h +// YUMI +// +// Created by YUMI on 2021/12/29. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class NIMChatroomMember, YUMIChamberRoleTabulationRegardElement; +@protocol FBCChamberRoleTabulationViweElementRepresendtation + +- (void)yUMIChamberRoleTarbsultowardsionViweElement:(YUMIChamberRoleTabulationRegardElement *)view didClickMember:(NIMChatroomMember *)member; + +@end + +@interface YUMIChamberRoleTabulationRegardElement : UITableViewCell +@property (nonatomic,strong, readonly) UIView * burlywoodRegard; +@property (strong, nonatomic) NIMChatroomMember *member; +@property (nonatomic,weak) id delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/Setting/View/Cell/YUMIChamberRoleTabulationRegardElement.m b/YuMi/Modules/YMRoom/View/Setting/View/Cell/YUMIChamberRoleTabulationRegardElement.m new file mode 100644 index 00000000..c31e9c88 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Setting/View/Cell/YUMIChamberRoleTabulationRegardElement.m @@ -0,0 +1,146 @@ +// +// YMRoomRoleTableViewCell.m +// YUMI +// +// Created by YUMI on 2021/12/29. +// + +#import "YUMIChamberRoleTabulationRegardElement.h" +#import +#import +#import "NetIndicateRegard.h" +#import "DJDKMIMOMColor.h" +#import "UIImage+Utils.h" +#import "YUMICommunicationRemoteExtMatrix.h" + +@interface YUMIChamberRoleTabulationRegardElement () +@property (nonatomic,strong) NetIndicateRegard *intelligenceportraitIndicateRegard; +@property (nonatomic,strong) UIImageView *seaxualityIndicateRegard; +@property (nonatomic,strong) UILabel *monicerSequencignation; +@property (nonatomic,strong) UIButton *removeBtuton; +@property (nonatomic,strong) UIView * burlywoodRegard; +@end + +@implementation YUMIChamberRoleTabulationRegardElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify]; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.intelligenceportraitIndicateRegard]; + [self.contentView addSubview:self.monicerSequencignation]; + [self.contentView addSubview:self.seaxualityIndicateRegard]; + [self.contentView addSubview:self.removeBtuton]; + [self.contentView addSubview:self.burlywoodRegard]; +} + +- (void)initChildLyRestrictions { + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.contentView).offset(15); + make.width.height.mas_equalTo(40); + make.centerY.mas_equalTo(self.contentView.mas_centerY); + }]; + +[self.monicerSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self); + make.left.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_right).offset(10); +}]; + + [self.seaxualityIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self); + make.left.mas_equalTo(self.monicerSequencignation.mas_right).offset(10); + }]; + + [self.removeBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.contentView.mas_centerY); + make.right.mas_equalTo(self.contentView).offset(-15); + make.width.mas_equalTo(65); + make.height.mas_equalTo(30); + }]; + + [self.burlywoodRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.monicerSequencignation); + make.right.mas_equalTo(self.removeBtuton); + make.bottom.mas_equalTo(self.contentView); + make.height.mas_equalTo(1); + }]; +} + +#pragma mark - Event Response +- (void)transltowardseBtutonPerformance:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(yUMIChamberRoleTarbsultowardsionViweElement:didClickMember:)]) { + [self.delegate yUMIChamberRoleTarbsultowardsionViweElement:self didClickMember:self.member]; + } +} + +#pragma mark - Getters And Setters +- (void)setMember:(NIMChatroomMember *)member { + _member = member; + if (_member) { + self.intelligenceportraitIndicateRegard.imageUrl = _member.roomAvatar; + self.monicerSequencignation.text = _member.roomNickname; + } +} + +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _intelligenceportraitIndicateRegard.layer.cornerRadius = 40/2; + _intelligenceportraitIndicateRegard.layer.borderColor = [DJDKMIMOMColor aplictowardsionMainPrettify].CGColor; + } + return _intelligenceportraitIndicateRegard; +} + +- (UIImageView *)seaxualityIndicateRegard { + if (!_seaxualityIndicateRegard) { + _seaxualityIndicateRegard = [[UIImageView alloc] init]; + _seaxualityIndicateRegard.userInteractionEnabled = YES; + } + return _seaxualityIndicateRegard; +} + +- (UILabel *)monicerSequencignation { + if (!_monicerSequencignation) { + _monicerSequencignation = [[UILabel alloc] init]; + _monicerSequencignation.font = [UIFont systemFontOfSize:15]; + _monicerSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _monicerSequencignation; +} + +- (UIButton *)removeBtuton { + if (!_removeBtuton) { + _removeBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_removeBtuton setTitle:YMLocalizedString(@"YUMI_Room_Role_Table_View_Cell_0") forState:UIControlStateNormal]; + [_removeBtuton setTitleColor:[DJDKMIMOMColor acknowledgementBtutonEssayPrettify] forState:UIControlStateNormal]; + _removeBtuton.titleLabel.font = [UIFont systemFontOfSize:15]; + [_removeBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + _removeBtuton.layer.masksToBounds = YES; + _removeBtuton.layer.cornerRadius = 15; + [_removeBtuton addTarget:self action:@selector(transltowardseBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _removeBtuton; +} + +- (UIView *)burlywoodRegard { + if (!_burlywoodRegard) { + _burlywoodRegard = [[UIView alloc] init]; + _burlywoodRegard.backgroundColor = [DJDKMIMOMColor dividerPrettify]; + } + return _burlywoodRegard; +} + + +@end diff --git a/YuMi/Modules/YMRoom/View/Setting/View/YUMIChamberCallforConsumerRegardGovernancer.h b/YuMi/Modules/YMRoom/View/Setting/View/YUMIChamberCallforConsumerRegardGovernancer.h new file mode 100644 index 00000000..af1827e5 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Setting/View/YUMIChamberCallforConsumerRegardGovernancer.h @@ -0,0 +1,19 @@ +// +// YMRoomInviteUserViewController.h +// YUMI +// +// Created by YUMI on 2022/1/18. +// 抱用户上麦控制器 + +#import "BaseRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIChamberCallforConsumerRegardGovernancer : BaseRegardGovernancer +@property (nonatomic,assign) BOOL isExecutiveOrMaintainrietary; +@property (nonatomic,assign) NSInteger blindDateVipUid; +@property (nonatomic,copy) NSString *roomId; +@property (nonatomic,copy) NSString *position; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/Setting/View/YUMIChamberCallforConsumerRegardGovernancer.m b/YuMi/Modules/YMRoom/View/Setting/View/YUMIChamberCallforConsumerRegardGovernancer.m new file mode 100644 index 00000000..3267d862 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Setting/View/YUMIChamberCallforConsumerRegardGovernancer.m @@ -0,0 +1,361 @@ +// +// YMRoomInviteUserViewController.m +// YUMI +// +// Created by YUMI on 2022/1/18. +// + +#import "YUMIChamberCallforConsumerRegardGovernancer.h" +#import +#import +#import +#import +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" +#import "AccountAbstractStorage.h" +#import "Api.h" +#import "NSArray+Safe.h" +#import "ConsumerAbstractMatrix.h" +#import "MiecreoscoopeMHTueueMatrix.h" +#import "AttachmentMatrix.h" +#import "MiecreoscoopeExtMatrix.h" +#import "YUMIChamberOnlineTabulationRegardElement.h" +#import "YUMIChamberRoleDispossessTabulationRegardElement.h" + +@interface YUMIChamberCallforConsumerRegardGovernancer () +@property (nonatomic,strong) NSMutableArray *derivationGarment; +@property (nonatomic,strong) NSMutableArray *datasource; +@property (nonatomic,strong) NSArray *loudspeakerFormationGarment; +@property (nonatomic,strong) UITableView *tableView; +@property (nonatomic,strong) NIMChatroomMember *lastMember; +@property (nonatomic,strong) NIMChatroomMember *tmpRecentComponent; +@end + +@implementation YUMIChamberCallforConsumerRegardGovernancer + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initIntelligencerGrantedTerminalerRrfresh]; + [self initSubViews]; + [self initChildLyRestrictions]; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.title = self.isExecutiveOrMaintainrietary ? @"在线房主/管理员" : YMLocalizedString(@"YUMI_Room_Invite_User_View_Controller_1"); + [self.view addSubview:self.tableView]; +} + +- (void)initChildLyRestrictions { + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.view); + }]; +} + +- (void)initIntelligencerGrantedTerminalerRrfresh { + MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(intelligenceerRenovtowardseh)]; + header.stateLabel.font = [UIFont systemFontOfSize:10.0]; + header.lastUpdatedTimeLabel.font = [UIFont systemFontOfSize:10.0]; + header.stateLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + header.lastUpdatedTimeLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + self.tableView.mj_header = header; + + MJRefreshBackNormalFooter *footer = [MJRefreshBackNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(footerRenovtowardseh)]; + footer.stateLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + footer.stateLabel.font = [UIFont systemFontOfSize:10.0]; + self.tableView.mj_footer = footer; + + [self intelligenceerRenovtowardseh]; +} + +- (void)intelligenceerRenovtowardseh { + self.lastMember= nil; + self.tmpRecentComponent = nil; + [self.datasource removeAllObjects]; + [[self fetchChinwagChamberInthecaseofmtowardsion] subscribeNext:^(id _Nullable x) { + NSArray * queueArray = x; + [[self chamberChinwagChamberRegularComponentSttowardsement] subscribeNext:^(id _Nullable x) { + NSArray * regularList = x; + [regularList enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + NIMChatroomMember * member = obj; + if (member.type == NIMTeamMemberTypeOwner) { + [self.datasource insertObject:member atIndex:0]; + }else { + [self.datasource addObject:member]; + } + }]; + + [[self chamberChinwagChamberTmpComponentSttowardsement] subscribeNext:^(id _Nullable x) { + NSArray * tmpList = x; + [self.datasource addObjectsFromArray:tmpList]; + for (NSInteger i = (self.datasource.count - 1); i >= 0; i--) { + NIMChatroomMember * member = [self.datasource secureGroalTowardsIndictowardsrix1:i]; + for (ConsumerAbstractMatrix * userInfo in queueArray) { + if (member.userId.integerValue == userInfo.uid) { + [self.datasource removeObject:member]; + continue; + } + } + } + [self.tableView reloadData]; + }]; + + }]; + }]; + + +} + +- (void)footerRenovtowardseh { + [[self chamberChinwagChamberRegularComponentSttowardsement] subscribeNext:^(id _Nullable x) { + NSArray * regularList = x; + [regularList enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + NIMChatroomMember * member = obj; + if (member.type == NIMTeamMemberTypeOwner) { + [self.datasource insertObject:member atIndex:0]; + }else { + [self.datasource addObject:member]; + } + }]; + + [[self chamberChinwagChamberTmpComponentSttowardsement] subscribeNext:^(id _Nullable x) { + NSArray * tmpList = x; + [tmpList enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + [self.datasource addObject:obj]; + }]; + + for (NSInteger i = (self.datasource.count - 1); i >= 0; i--) { + NIMChatroomMember * member = [self.datasource secureGroalTowardsIndictowardsrix1:i]; + for (ConsumerAbstractMatrix * userInfo in self.loudspeakerFormationGarment) { + if (member.userId.integerValue == userInfo.uid) { + [self.datasource removeObject:member]; + break;; + } + } + } + [self.tableView reloadData]; + }]; + + }]; +} + +- (RACSignal *)fetchChinwagChamberInthecaseofmtowardsion { + return [RACSignal createSignal:^RACDisposable * _Nullable(id _Nonnull subscriber) { + [[NIMSDK sharedSDK].chatroomManager fetchChatroomQueue:self.roomId completion:^(NSError * _Nullable error, NSArray *> * _Nullable info) { + if (error == nil) { + NSMutableArray * array= [NSMutableArray array]; + for (NSDictionary *item in info) { + ConsumerAbstractMatrix *userInfo = [ConsumerAbstractMatrix mtowardsrixAboutJSON:item.allValues.firstObject]; + [array addObject:userInfo]; + } + self.loudspeakerFormationGarment = [array copy]; + [subscriber sendNext:self.loudspeakerFormationGarment]; + [subscriber sendCompleted]; + } else { + [subscriber sendNext:nil]; + [subscriber sendCompleted]; + } + + }]; + return nil; + }]; +} + +- (RACSignal *)chamberChinwagChamberRegularComponentSttowardsement { + return [RACSignal createSignal:^RACDisposable * _Nullable(id _Nonnull subscriber) { + NIMChatroomMemberRequest *request = [[NIMChatroomMemberRequest alloc] init]; + request.roomId = self.roomId; + request.type = NIMChatroomFetchMemberTypeRegular; + request.lastMember = self.lastMember; + request.limit = 200; + [[NIMSDK sharedSDK].chatroomManager fetchChatroomMembers:request completion:^(NSError * _Nullable error, NSArray * _Nullable members) { + if (error == nil) { + if (members.count > 0) { + self.lastMember = members.lastObject; + } + NSMutableArray * array = [NSMutableArray array]; + [members enumerateObjectsUsingBlock:^(NIMChatroomMember * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if (obj.isOnline && !obj.isInBlackList) { + if (self.isExecutiveOrMaintainrietary) { + if (obj.type == NIMChatroomMemberTypeCreator || obj.type == NIMChatroomMemberTypeManager) { + [array addObject:obj]; + } + } else { + [array addObject:obj]; + } + } + }]; + [subscriber sendNext:array]; + [subscriber sendCompleted]; + } else { + [subscriber sendNext:nil]; + [subscriber sendCompleted]; + } + }]; + return nil; + }]; + +} + + +- (RACSignal *)chamberChinwagChamberTmpComponentSttowardsement { + return [RACSignal createSignal:^RACDisposable * _Nullable(id _Nonnull subscriber) { + NIMChatroomMemberRequest *request = [[NIMChatroomMemberRequest alloc] init]; + request.roomId = self.roomId; + request.type = NIMChatroomFetchMemberTypeTemp; + request.lastMember = self.tmpRecentComponent; + request.limit = 20; + [[NIMSDK sharedSDK].chatroomManager fetchChatroomMembers:request completion:^(NSError * _Nullable error, NSArray * _Nullable members) { + [self.tableView.mj_header endRefreshing]; + [self.tableView.mj_footer endRefreshing]; + if (error == nil) { + if (members.count > 0) { + self.tmpRecentComponent = members.lastObject; + } + NSMutableArray * array = [NSMutableArray array]; + [members enumerateObjectsUsingBlock:^(NIMChatroomMember * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if (obj.isOnline && !obj.isInBlackList) { + if (self.isExecutiveOrMaintainrietary) { + if (obj.type == NIMChatroomMemberTypeCreator || obj.type == NIMChatroomMemberTypeManager) { + [array addObject:obj]; + } + } else { + [array addObject:obj]; + } + } + }]; + [subscriber sendNext:array]; + [subscriber sendCompleted]; + } else { + [subscriber sendNext:nil]; + [subscriber sendCompleted]; + } + }]; + return nil; + }]; +} + + +- (NSDictionary *)consumerAbstractToInthecaseofmtowardsionExt:(ConsumerAbstractMatrix *)userInfo { + MiecreoscoopeExtMatrix * extModel = [[MiecreoscoopeExtMatrix alloc] init]; + extModel.gender = userInfo.gender; + extModel.avatar = userInfo.avatar; + extModel.uid = userInfo.uid; + extModel.nick = userInfo.nick; + extModel.vipMic = userInfo.uid == self.blindDateVipUid; + extModel.headWearUrl = userInfo.headwearEffect.length > 0 ? userInfo.headwearEffect : userInfo.headwearPic; + extModel.micCircle = userInfo.micCircle; + extModel.micNickColor = userInfo.micNickColor; + extModel.preventKick = userInfo.userVipInfoVO.preventKick; + extModel.enterHide = userInfo.userVipInfoVO.enterHide; + return [extModel mtowardsrix2dictionary]; +} + +#pragma mark - UITableViewDelegate And UITableViewDataSource +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.datasource.count > 0 ? self.datasource.count : 1; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + if (self.datasource.count > 0) { + YUMIChamberOnlineTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIChamberOnlineTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIChamberOnlineTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIChamberOnlineTabulationRegardElement class])]; + } + NIMChatroomMember * member = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + cell.member = member; + cell.onlineGenre = ChamberOnLineGenre_Invite_User; + return cell; + } + + YUMIChamberRoleDispossessTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIChamberRoleDispossessTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIChamberRoleDispossessTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIChamberRoleDispossessTabulationRegardElement class])]; + } + cell.titleLabel.text = YMLocalizedString(@"YUMI_Room_Invite_User_View_Controller_2"); + cell.backgroundColor = [UIColor clearColor]; + return cell; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + if (self.datasource.count > 0) { + return 60; + } + return KScreenHeight - kNavigationHeight; +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + [tableView deselectRowAtIndexPath:indexPath animated:YES]; + if (self.datasource.count > 0) { + NIMChatroomMember * member = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + if ([AccountAbstractStorage instance].acquireCid.integerValue == member.userId.integerValue) { + [Api getUserInfo:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + ConsumerAbstractMatrix * userInfo = [ConsumerAbstractMatrix mtowardsrixAboutJSON:data.data]; + NIMChatroomQueueUpdateRequest *request = [[NIMChatroomQueueUpdateRequest alloc]init]; + request.key = self.position; + request.value = [[self consumerAbstractToInthecaseofmtowardsionExt:userInfo] toJSONBWSttr]; + request.roomId = self.roomId; + request.transient = YES; + [[NIMSDK sharedSDK].chatroomManager updateChatroomQueueObject:request completion:^(NSError * _Nullable error) { + if (error == nil) { + [self.navigationController popViewControllerAnimated:YES]; + } else { + [self EvidenceMistakeToast:error.description]; + } + }]; + } + + } uid:member.userId]; + } else { + NSMutableDictionary * dic = [NSMutableDictionary dictionary]; + [dic setValue:@(self.position.integerValue) forKey:@"micPosition"]; + [dic setValue:@(member.userId.integerValue) forKey:@"uid"]; + AttachmentMatrix *attachement = [[AttachmentMatrix alloc]init]; + attachement.first = IndividualityCommunicationGenre_Queue; + attachement.second = Custom_Message_Sub_Queue_Invite; + attachement.data = dic; + + NIMMessage *message = [[NIMMessage alloc]init]; + NIMCustomObject *object = [[NIMCustomObject alloc] init]; + object.attachment = attachement; + message.messageObject = object; + + NIMSession *session = [NIMSession session:self.roomId type:NIMSessionTypeChatroom]; + [[NIMSDK sharedSDK].chatManager sendMessage:message toSession:session error:nil]; + [self.navigationController popViewControllerAnimated:YES]; + } + } +} + +#pragma mark - Event Response +- (void)encourageBtutonPerformance:(UIButton *)sender { + [self.navigationController popViewControllerAnimated:YES]; +} + +#pragma mark - Getters And Setters +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.tableFooterView = [UIView new]; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.backgroundColor = [UIColor clearColor]; + _tableView.rowHeight = 60; + if (@available(iOS 11.0, *)) { + _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + [_tableView registerClass:[YUMIChamberOnlineTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIChamberOnlineTabulationRegardElement class])]; + [_tableView registerClass:[YUMIChamberRoleDispossessTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIChamberRoleDispossessTabulationRegardElement class])]; + } + return _tableView; +} + +- (NSMutableArray *)datasource { + if (!_datasource) { + _datasource = [NSMutableArray array]; + } + return _datasource; +} +@end diff --git a/YuMi/Modules/YMRoom/View/Setting/View/YUMIChamberCoupleStatementRegard.h b/YuMi/Modules/YMRoom/View/Setting/View/YUMIChamberCoupleStatementRegard.h new file mode 100644 index 00000000..8f1c9937 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Setting/View/YUMIChamberCoupleStatementRegard.h @@ -0,0 +1,27 @@ +// +// YMRoomTagListView.h +// YUMI +// +// Created by YUMI on 2022/7/20. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSUInteger, ChamberInstanllingSelectTagGenre) { + ChamberInstanllingSelectTagGenreTag, + ChamberInstanllingSelectTagGenreClassify, +}; + +typedef void(^DidClickRoomTagCompletion)(NSString *tag); + +@interface YUMIChamberCoupleStatementRegard : UIView + +@property (nonatomic,copy) NSString *tagId; +@property (nonatomic,copy) DidClickRoomTagCompletion completion; +@property (nonatomic, assign) ChamberInstanllingSelectTagGenre coupleGenre; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/Setting/View/YUMIChamberCoupleStatementRegard.m b/YuMi/Modules/YMRoom/View/Setting/View/YUMIChamberCoupleStatementRegard.m new file mode 100644 index 00000000..d1b7d631 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Setting/View/YUMIChamberCoupleStatementRegard.m @@ -0,0 +1,233 @@ +// +// YMRoomTagListView.m +// YUMI +// +// Created by YUMI on 2022/7/20. +// + +#import "YUMIChamberCoupleStatementRegard.h" +#import +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" +#import "MKJPopup.h" +#import "UIImage+Utils.h" +#import "NSArray+Safe.h" +#import "ChamberCoupleMatrix.h" +#import "ChamberClassifyMatrix.h" +#import "YUMIChamberInstanllingCoupleElement.h" +#import "YUMIChamberCoupleExternalizer.h" +#import "FBCChamberTagCeremony.h" + +#import "Api+RoomSetting.h" +#import "AccountAbstractStorage.h" +#import "XNDJTBWGLoadingTool.h" + +@interface YUMIChamberCoupleStatementRegard() + +@property (nonatomic, strong) UIButton *acknowledgementBtuton; +@property (nonatomic, strong) UILabel *titleLabel; +@property (nonatomic, strong) UICollectionView *collectionView; +@property (nonatomic,strong) NSArray *datasource; +@property (nonatomic,strong) ChamberCoupleMatrix *chosenCoupleAbstract; +@property (nonatomic, strong) ChamberClassifyMatrix *chosenCategorizedAbstract; + +@end + +@implementation YUMIChamberCoupleStatementRegard + +- (instancetype)initWithFrame:(CGRect)frame { + if (self = [super initWithFrame:frame]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +- (void)setCoupleGenre:(ChamberInstanllingSelectTagGenre)coupleGenre { + _coupleGenre = coupleGenre; + NSString * uid = [AccountAbstractStorage instance].acquireCid; + if (coupleGenre == ChamberInstanllingSelectTagGenreTag) { + [Api acquireChamberCoupleSttowardsement:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + NSArray * array = [ChamberCoupleMatrix mtowardsrixsAboutGarment:data.data]; + self.datasource = array; + [self.collectionView reloadData]; + } else { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:msg]; + [MKJPopup dismiss]; + } + } uid:uid]; + } else { + self.titleLabel.text = YMLocalizedString(@"YUMI_Room_Tag_List_View_0"); + [Api acquireChamberCtowardsegorizeifySttowardsement:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + NSArray * array = [ChamberClassifyMatrix mtowardsrixsAboutGarment:data.data]; + self.datasource = array; + [self.collectionView reloadData]; + } else { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:msg]; + [MKJPopup dismiss]; + } + } uid:uid]; + } +} + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor whiteColor]; + self.layer.cornerRadius = 12; + self.layer.masksToBounds = YES; + [self addSubview:self.acknowledgementBtuton]; + [self addSubview:self.titleLabel]; + [self addSubview:self.collectionView]; +} + +- (void)initChildLyRestrictions { + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(320); + make.height.mas_equalTo(227); + }]; + [self.acknowledgementBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(38); + make.left.right.mas_equalTo(self).inset(30); + make.bottom.mas_equalTo(-15); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(15); + make.centerX.mas_equalTo(self); + make.height.mas_equalTo(21); + }]; + + [self.collectionView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.titleLabel.mas_bottom).offset(26); + make.left.right.mas_equalTo(self).inset(32); + make.bottom.mas_equalTo(self.acknowledgementBtuton.mas_top).offset(-30); + }]; +} + +#pragma mark - UICollectionViewDataSource +- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { + return self.datasource.count; +} + +- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { + YUMIChamberInstanllingCoupleElement *cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([YUMIChamberInstanllingCoupleElement class]) forIndexPath:indexPath]; + if (self.coupleGenre == ChamberInstanllingSelectTagGenreTag) { + ChamberCoupleMatrix *homeTag = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + if (self.chosenCoupleAbstract) { + if (homeTag.tid.intValue == self.chosenCoupleAbstract.tid.intValue) { + homeTag.isSelect = YES; + }else { + homeTag.isSelect = NO; + } + } else { + if (homeTag.tid.intValue == self.tagId.intValue) { + homeTag.isSelect = YES; + }else { + homeTag.isSelect = NO; + } + } + cell.roomTag = homeTag; + } else { + ChamberClassifyMatrix *homeTag = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + if (self.chosenCategorizedAbstract) { + if (homeTag.cid.intValue == self.chosenCategorizedAbstract.cid.intValue) { + homeTag.isSelect = YES; + }else { + homeTag.isSelect = NO; + } + } else { + if (homeTag.cid.intValue == self.tagId.intValue) { + homeTag.isSelect = YES; + }else { + homeTag.isSelect = NO; + } + } + cell.chamberCategorized = homeTag; + } + return cell; +} + +- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout insetForSectionAtIndex:(NSInteger)section{ + return UIEdgeInsetsMake(10, 0, 10, 0);; +} + +- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath { + if (self.coupleGenre == ChamberInstanllingSelectTagGenreTag) { + ChamberCoupleMatrix *homeTag = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + CGFloat width = [homeTag.name boundingRectWithSize:CGSizeMake(200, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes:@{NSFontAttributeName : [UIFont systemFontOfSize:12]} context:nil].size.width; + return CGSizeMake(width + 26, 26); + } else { + ChamberClassifyMatrix *homeTag = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + CGFloat width = [homeTag.sortName boundingRectWithSize:CGSizeMake(200, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes:@{NSFontAttributeName : [UIFont systemFontOfSize:12]} context:nil].size.width; + return CGSizeMake(width + 26, 26); + } +} + +#pragma mark - UICollectionViewDelegate +- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath { + [collectionView deselectItemAtIndexPath:indexPath animated:YES]; + if (self.coupleGenre == ChamberInstanllingSelectTagGenreTag) { + ChamberCoupleMatrix * roomTag = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + self.chosenCoupleAbstract = roomTag; + } else { + ChamberClassifyMatrix *chamberCategorized = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + self.chosenCategorizedAbstract = chamberCategorized; + } + [collectionView reloadData]; +} + +#pragma mark - Event Response +- (void)acknowledgementBtutonPerformance:(UIButton *)sender { + [MKJPopup dismiss]; + if (self.completion) { + if (self.coupleGenre == ChamberInstanllingSelectTagGenreTag) { + self.completion(self.chosenCoupleAbstract.tid); + } else { + self.completion(self.chosenCategorizedAbstract.cid); + } + } +} + +#pragma mark - Getter & Setter +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _titleLabel.font = [UIFont systemFontOfSize:15 weight:UIFontWeightSemibold]; + _titleLabel.text = YMLocalizedString(@"YUMI_Room_Tag_List_View_1"); + } + return _titleLabel; +} + +- (UICollectionView *)collectionView { + if (!_collectionView) { + UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init]; + layout.scrollDirection = UICollectionViewScrollDirectionVertical; + layout.minimumLineSpacing = 16; + layout.minimumInteritemSpacing = 10; + _collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout]; + _collectionView.delegate = self; + _collectionView.dataSource = self; + _collectionView.backgroundColor = [UIColor clearColor]; + _collectionView.showsVerticalScrollIndicator = NO; + _collectionView.showsHorizontalScrollIndicator = NO; + [_collectionView registerClass:[YUMIChamberInstanllingCoupleElement class] forCellWithReuseIdentifier:NSStringFromClass([YUMIChamberInstanllingCoupleElement class])]; + } + return _collectionView; +} + +- (UIButton *)acknowledgementBtuton { + if (_acknowledgementBtuton == nil) { + _acknowledgementBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_acknowledgementBtuton setTitle:YMLocalizedString(@"YUMI_Room_Tag_List_View_2") forState:UIControlStateNormal]; + _acknowledgementBtuton.titleLabel.font = [UIFont systemFontOfSize:14]; + [_acknowledgementBtuton addTarget:self action:@selector(acknowledgementBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + _acknowledgementBtuton.layer.masksToBounds = YES; + _acknowledgementBtuton.layer.cornerRadius = 19; + [_acknowledgementBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + } + return _acknowledgementBtuton; +} +@end diff --git a/YuMi/Modules/YMRoom/View/Setting/View/YUMIChamberCoupleStatementRegardGovernancer.h b/YuMi/Modules/YMRoom/View/Setting/View/YUMIChamberCoupleStatementRegardGovernancer.h new file mode 100644 index 00000000..a23f4c12 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Setting/View/YUMIChamberCoupleStatementRegardGovernancer.h @@ -0,0 +1,26 @@ +// +// YMRoomTagListViewController.h +// YUMI +// +// Created by YUMI on 2021/12/28. +// + +#import "MvpRegardGovernancer.h" + +typedef NS_ENUM(NSUInteger, ChamberInstanllingTagGenre) { + ChamberInstanllingTagGenreTag, + ChamberInstanllingTagGenreClassify, +}; + +NS_ASSUME_NONNULL_BEGIN + +typedef void(^DidClickCompletion)(NSString *tag); + +@interface YUMIChamberCoupleStatementRegardGovernancer : MvpRegardGovernancer +@property (nonatomic,copy) NSString *tagId; +@property (nonatomic,copy) DidClickCompletion completion; +@property (nonatomic, assign) ChamberInstanllingTagGenre coupleGenre; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/Setting/View/YUMIChamberCoupleStatementRegardGovernancer.m b/YuMi/Modules/YMRoom/View/Setting/View/YUMIChamberCoupleStatementRegardGovernancer.m new file mode 100644 index 00000000..930af02c --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Setting/View/YUMIChamberCoupleStatementRegardGovernancer.m @@ -0,0 +1,234 @@ +// +// YMRoomTagListViewController.m +// YUMI +// +// Created by YUMI on 2021/12/28. +// + +#import "YUMIChamberCoupleStatementRegardGovernancer.h" +#import +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" +#import "NSArray+Safe.h" +#import "ChamberCoupleMatrix.h" +#import "ChamberClassifyMatrix.h" +#import "YUMIChamberInstanllingCoupleElement.h" +#import "YUMIChamberCoupleExternalizer.h" +#import "FBCChamberTagCeremony.h" + +@interface YUMIChamberCoupleStatementRegardGovernancer () +@property (nonatomic, strong) UIButton *concludeBtuton; +@property (nonatomic, strong) UIButton *acknowledgementBtuton; +@property (nonatomic, strong) UILabel *titleLabel; +@property (nonatomic, strong) UICollectionView *collectionView; +@property (nonatomic,strong) NSArray *datasource; +@property (nonatomic,strong) ChamberCoupleMatrix *chosenCoupleAbstract; +@property (nonatomic, strong) ChamberClassifyMatrix *chosenCategorizedAbstract; + +@end + +@implementation YUMIChamberCoupleStatementRegardGovernancer + +- (YUMIChamberCoupleExternalizer *)producePresimport { + return [[YUMIChamberCoupleExternalizer alloc] init]; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + if (self.coupleGenre == ChamberInstanllingTagGenreTag) { + [self.presimport acquireChamberCoupleSttowardsement]; + } else { + [self.presimport acquireChamberCtowardsegorizeifySttowardsement]; + self.titleLabel.text = @"快给您的房间选个分类吧!"; + } + [self initSubViews]; + [self initChildLyRestrictions]; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.view.backgroundColor = [UIColor colorWithWhite:0 alpha:0.95]; + [self.view addSubview:self.acknowledgementBtuton]; + [self.view addSubview:self.concludeBtuton]; + [self.view addSubview:self.titleLabel]; + [self.view addSubview:self.collectionView]; +} + +- (void)initChildLyRestrictions { + [self.acknowledgementBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(44); + make.left.right.mas_equalTo(self.view).inset(90); + make.bottom.mas_equalTo(-100); + }]; + + [self.concludeBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.mas_equalTo(32); + make.top.mas_equalTo(kStatusBarHeight + 6); + make.right.mas_equalTo(-23+5); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(135); + make.left.mas_equalTo(44); + make.height.mas_equalTo(24); + }]; + + [self.collectionView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.titleLabel.mas_bottom).offset(30); + make.left.right.mas_equalTo(self.view).inset(44); + make.bottom.mas_equalTo(self.acknowledgementBtuton.mas_top).offset(-30); + }]; +} + +#pragma mark - FBCChamberTagCeremony +- (void)acquireChamberCoupleSttowardsementAccomplishment:(NSArray *)array { + self.datasource = array; + [self.collectionView reloadData]; +} + + +- (void)acquireChamberCtowardsegorizeifySttowardsementAccomplishment:(NSArray *)array { + self.datasource = array; + [self.collectionView reloadData]; +} + +#pragma mark - UICollectionViewDataSource +- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView { + return 1; +} + +- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { + return self.datasource.count; +} + +- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { + YUMIChamberInstanllingCoupleElement *cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([YUMIChamberInstanllingCoupleElement class]) forIndexPath:indexPath]; + if (self.coupleGenre == ChamberInstanllingTagGenreTag) { + ChamberCoupleMatrix *homeTag = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + if (self.chosenCoupleAbstract) { + if (homeTag.tid.intValue == self.chosenCoupleAbstract.tid.intValue) { + homeTag.isSelect = YES; + }else { + homeTag.isSelect = NO; + } + } else { + if (homeTag.tid.intValue == self.tagId.intValue) { + homeTag.isSelect = YES; + }else { + homeTag.isSelect = NO; + } + } + cell.roomTag = homeTag; + } else { + ChamberClassifyMatrix *homeTag = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + if (self.chosenCategorizedAbstract) { + if (homeTag.cid.intValue == self.chosenCategorizedAbstract.cid.intValue) { + homeTag.isSelect = YES; + }else { + homeTag.isSelect = NO; + } + } else { + if (homeTag.cid.intValue == self.tagId.intValue) { + homeTag.isSelect = YES; + }else { + homeTag.isSelect = NO; + } + } + cell.chamberCategorized = homeTag; + } + return cell; +} + +- (UIEdgeInsets)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout insetForSectionAtIndex:(NSInteger)section{ + return UIEdgeInsetsMake(10, 0, 10, 0);; +} + +- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath { + if (self.coupleGenre == ChamberInstanllingTagGenreTag) { + ChamberCoupleMatrix *homeTag = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + CGFloat width = [homeTag.name boundingRectWithSize:CGSizeMake(200, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes:@{NSFontAttributeName : [UIFont systemFontOfSize:12]} context:nil].size.width; + return CGSizeMake(width + 26, 26); + } else { + ChamberClassifyMatrix *homeTag = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + CGFloat width = [homeTag.sortName boundingRectWithSize:CGSizeMake(200, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes:@{NSFontAttributeName : [UIFont systemFontOfSize:12]} context:nil].size.width; + return CGSizeMake(width + 26, 26); + } +} + +#pragma mark - UICollectionViewDelegate +- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath { + [collectionView deselectItemAtIndexPath:indexPath animated:YES]; + if (self.coupleGenre == ChamberInstanllingTagGenreTag) { + ChamberCoupleMatrix * roomTag = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + self.chosenCoupleAbstract = roomTag; + } else { + ChamberClassifyMatrix *chamberCategorized = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + self.chosenCategorizedAbstract = chamberCategorized; + } + [collectionView reloadData]; +} + +#pragma mark - Event Response +- (void)acknowledgementBtutonPerformance:(UIButton *)sender { + [self dismissViewControllerAnimated:YES completion:nil]; + if (self.completion) { + if (self.coupleGenre == ChamberInstanllingTagGenreTag) { + self.completion(self.chosenCoupleAbstract.tid); + } else { + self.completion(self.chosenCategorizedAbstract.cid); + } + } +} + +- (void)concludeBtutonPerformance:(UIButton *)sender { + [self dismissViewControllerAnimated:YES completion:nil]; +} +#pragma mark - Getter & Setter +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.textColor = UIColor.whiteColor; + _titleLabel.font = [UIFont systemFontOfSize:22]; + _titleLabel.text = @"快给您的房间选个标签吧!"; + } + return _titleLabel; +} + +- (UICollectionView *)collectionView { + if (!_collectionView) { + UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init]; + layout.minimumLineSpacing = 10; + layout.minimumInteritemSpacing = 10; + _collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout]; + _collectionView.delegate = self; + _collectionView.dataSource = self; + _collectionView.backgroundColor = [UIColor clearColor]; + _collectionView.showsVerticalScrollIndicator = NO; + _collectionView.showsHorizontalScrollIndicator = NO; + [_collectionView registerClass:[YUMIChamberInstanllingCoupleElement class] forCellWithReuseIdentifier:NSStringFromClass([YUMIChamberInstanllingCoupleElement class])]; + } + return _collectionView; +} + +- (UIButton *)concludeBtuton { + if (_concludeBtuton == nil) { + _concludeBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_concludeBtuton setImage:[UIImage imageNamed:@"yumi_scope_setting_labelclose"] forState:UIControlStateNormal]; + [_concludeBtuton addTarget:self action:@selector(concludeBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _concludeBtuton; +} + +- (UIButton *)acknowledgementBtuton { + if (_acknowledgementBtuton == nil) { + _acknowledgementBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_acknowledgementBtuton setTitle:YMLocalizedString(@"YUMI_Room_Tag_List_View_Controller_2") forState:UIControlStateNormal]; + _acknowledgementBtuton.titleLabel.font = [UIFont systemFontOfSize:16]; + _acknowledgementBtuton.backgroundColor = [DJDKMIMOMColor mainEssayPrettify]; + [_acknowledgementBtuton addTarget:self action:@selector(acknowledgementBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + _acknowledgementBtuton.layer.masksToBounds = YES; + _acknowledgementBtuton.layer.cornerRadius = 22; + } + return _acknowledgementBtuton; +} +@end diff --git a/YuMi/Modules/YMRoom/View/Setting/View/YUMIChamberInstanllingIntrojectionRegard.h b/YuMi/Modules/YMRoom/View/Setting/View/YUMIChamberInstanllingIntrojectionRegard.h new file mode 100644 index 00000000..ee37ade6 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Setting/View/YUMIChamberInstanllingIntrojectionRegard.h @@ -0,0 +1,37 @@ +// +// YMRoomSettingInputView.h +// YUMI +// +// Created by YUMI on 2021/12/29. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +typedef NS_ENUM(NSInteger, ChamberInstanllingIntrojectionGenre) { + + ChamberInstanllingIntrojectionGenre_Title = 1, + + ChamberInstanllingIntrojectionGenre_Pwd, + + ChamberInstanllingIntrojectionGenre_Input_Pwd, +}; + +@class YUMIChamberInstanllingIntrojectionRegard; +@protocol FBCChamberInstanllingIntrojectionRegardRepresendtation +@optional +- (void)yUMIChamberInstanllingIntrojectionRegard:(YUMIChamberInstanllingIntrojectionRegard *)view didClickConfirm:(NSString *)text type:(ChamberInstanllingIntrojectionGenre)type; +- (void)didTicktackRevoctowardsion:(ChamberInstanllingIntrojectionGenre)type; + +@end + +@interface YUMIChamberInstanllingIntrojectionRegard : UIView +@property (nonatomic,weak) id delegate; +@property (nonatomic, assign) NSUInteger maxCount; +@property (nonatomic,assign) ChamberInstanllingIntrojectionGenre type; +@property (nonatomic,copy) NSString *deparatmentMaintainrietary; +@property (nonatomic,assign) BOOL isPwordError; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/Setting/View/YUMIChamberInstanllingIntrojectionRegard.m b/YuMi/Modules/YMRoom/View/Setting/View/YUMIChamberInstanllingIntrojectionRegard.m new file mode 100644 index 00000000..9b4886f0 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Setting/View/YUMIChamberInstanllingIntrojectionRegard.m @@ -0,0 +1,289 @@ +// +// YMRoomSettingInputView.m +// YUMI +// +// Created by YUMI on 2021/12/29. +// + +#import "YUMIChamberInstanllingIntrojectionRegard.h" +#import +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" +#import "UIImage+Utils.h" +#import "MKJPopup.h" + +@interface YUMIChamberInstanllingIntrojectionRegard () +@property (nonatomic, strong) UILabel *titleLabel; +@property (nonatomic,strong) UIStackView *stackView; +@property (nonatomic, strong) UIButton *revocationBtuton; +@property (nonatomic, strong) UIButton *acknowledgementBtuton; +@property (nonatomic, strong) UILabel *computationSequencignation; +@property (nonatomic, strong) UITextField *satisfperformanceEssayUniverse; +@property (nonatomic,strong) UILabel *failSequencignation; +@end + +@implementation YUMIChamberInstanllingIntrojectionRegard + +- (void)dealloc { + [[NSNotificationCenter defaultCenter] removeObserver:self]; +} + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} +#pragma mark - Getters And Setters +- (void)accelertowardseCircular { + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil]; +} + +- (void)initSubViews { + self.backgroundColor = [UIColor whiteColor]; + self.layer.masksToBounds= YES; + self.layer.cornerRadius = 15; + [self addSubview:self.titleLabel]; + [self addSubview:self.satisfperformanceEssayUniverse]; + [self addSubview:self.computationSequencignation]; + [self addSubview:self.failSequencignation]; + [self addSubview:self.stackView]; + [self.stackView addArrangedSubview:self.revocationBtuton]; + [self.stackView addArrangedSubview:self.acknowledgementBtuton]; +} + +- (void)initChildLyRestrictions { + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(KScreenWidth - 45 *2, 200)); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self); + make.top.mas_equalTo(20); + }]; + + [self.satisfperformanceEssayUniverse mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.titleLabel.mas_bottom).offset(15); + make.left.right.mas_equalTo(self).inset(15); + make.height.mas_equalTo(40); + }]; + + [self.failSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.satisfperformanceEssayUniverse); + make.top.mas_equalTo(self.satisfperformanceEssayUniverse.mas_bottom).offset(10); + }]; + + [self.computationSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.satisfperformanceEssayUniverse.mas_bottom).offset(4); + make.right.mas_equalTo(self.satisfperformanceEssayUniverse).offset(-10); + }]; + + [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self).inset(20); + make.height.mas_equalTo(43); + make.bottom.mas_equalTo(self.mas_bottom).offset(-20); + }]; + +} + +#pragma mark - Event Response +- (void)revoctowardsionBtutonPerformance:(UIButton *)sender { + [MKJPopup dismiss]; + if (self.delegate && [self.delegate respondsToSelector:@selector(didTicktackRevoctowardsion:)]) { + [self.delegate didTicktackRevoctowardsion:self.type]; + } +} + +- (void)acknowledgementBtutonPerformance:(UIButton *)sender { + if (self.type != ChamberInstanllingIntrojectionGenre_Input_Pwd) { + [MKJPopup dismiss]; + } + if (self.satisfperformanceEssayUniverse.text.length > 0 && self.delegate && [self.delegate respondsToSelector:@selector(yUMIChamberInstanllingIntrojectionRegard:didClickConfirm:type:)]) { + [self.delegate yUMIChamberInstanllingIntrojectionRegard:self didClickConfirm:self.satisfperformanceEssayUniverse.text type:self.type]; + } +} + + +- (void)keyboardWillShow:(NSNotification*)notification { + CGRect keyboardRect = [[[notification userInfo] objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue]; + CGRect rect = [self.superview convertRect:self.frame toView:[UIApplication sharedApplication].keyWindow]; + CGFloat top = KScreenHeight / 2 + rect.size.height / 2; + CGFloat height = CGRectGetMinY(keyboardRect) - top; + if (height < 0) { + [UIView animateWithDuration:0.25 animations:^{ + self.superview.frame = CGRectMake(rect.origin.x, KScreenHeight / 2 - rect.size.height / 2 + (height - 10), rect.size.width, rect.size.height); + } completion:^(BOOL finished) { + + }]; + } +} + +- (void)keyboardWillHide:(NSNotification*)notification { + CGRect rect = [self.superview convertRect:self.frame toView:[UIApplication sharedApplication].keyWindow]; + [UIView animateWithDuration:0.25 animations:^{ + self.superview.frame = CGRectMake(rect.origin.x, KScreenHeight / 2 - rect.size.height / 2, rect.size.width, rect.size.height); + }]; +} +#pragma mark - mark +- (BOOL)essayUniverse:(UITextField *)essayUniverse shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { + self.failSequencignation.hidden = YES; + + if (string.length == 0) { + [self refurbishComputtowardsion:range.location]; + return YES; + } + + + if (self.maxCount == 0) { + return YES; + } + + NSMutableString *mText = [NSMutableString stringWithString:essayUniverse.text]; + [mText insertString:string atIndex:range.location]; + + + if (mText.length > self.maxCount) { + + essayUniverse.text = [mText substringToIndex:self.maxCount]; + [self refurbishComputtowardsion:essayUniverse.text.length]; + return NO; + } + + [self refurbishComputtowardsion:mText.length]; + + return YES; +} + +- (void)refurbishComputtowardsion:(unsigned long)count { + self.computationSequencignation.text = [NSString stringWithFormat:@"%lu/%lu", count, (unsigned long)self.maxCount]; +} + +#pragma mark - Getters And Setters +- (void)setType:(ChamberInstanllingIntrojectionGenre)type { + _type = type; + if (_type == ChamberInstanllingIntrojectionGenre_Pwd) { + self.satisfperformanceEssayUniverse.keyboardType = UIKeyboardTypeNumberPad; + self.titleLabel.text = YMLocalizedString(@"YUMI_Room_Setting_Input_View_0"); + self.computationSequencignation.hidden = NO; + self.satisfperformanceEssayUniverse.keyboardType = UIKeyboardTypeNumberPad; + } else if(_type == ChamberInstanllingIntrojectionGenre_Title) { + self.titleLabel.text = YMLocalizedString(@"YUMI_Room_Setting_Input_View_1"); + self.computationSequencignation.hidden = NO; + } else if(_type == ChamberInstanllingIntrojectionGenre_Input_Pwd) { + self.titleLabel.text = YMLocalizedString(@"YUMI_Room_Setting_Input_View_2"); + self.computationSequencignation.hidden = YES; + self.satisfperformanceEssayUniverse.keyboardType = UIKeyboardTypeNumberPad; + } +} + +- (void)setDeparatmentMaintainrietary:(NSString *)deparatmentMaintainrietary { + _deparatmentMaintainrietary = deparatmentMaintainrietary; + if (_deparatmentMaintainrietary.length > 0) { + NSAttributedString * attribute = [[NSAttributedString alloc] initWithString:_deparatmentMaintainrietary attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:17],NSForegroundColorAttributeName: [DJDKMIMOMColor instantEssayPrettify]}]; + self.satisfperformanceEssayUniverse.attributedText = attribute; + } +} + +- (void)setIsPwordError:(BOOL)isPwordError { + _isPwordError = isPwordError; + if (_isPwordError) { + self.failSequencignation.hidden = NO; + } else { + self.failSequencignation.hidden = YES; + } +} + +- (UILabel *)titleLabel { + if (_titleLabel == nil) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.textColor = [DJDKMIMOMColor precautiousChampionPrettify]; + _titleLabel.font = [UIFont systemFontOfSize:15]; + _titleLabel.textAlignment = NSTextAlignmentCenter; + } + return _titleLabel; +} + +- (UILabel *)computationSequencignation { + if (_computationSequencignation == nil) { + _computationSequencignation = [[UILabel alloc] init]; + _computationSequencignation.textColor = [DJDKMIMOMColor instantEssayPrettify]; + _computationSequencignation.font = [UIFont systemFontOfSize:10]; + _computationSequencignation.textAlignment = NSTextAlignmentRight; + } + return _computationSequencignation; +} + +- (UITextField *)satisfperformanceEssayUniverse { + if (_satisfperformanceEssayUniverse == nil) { + _satisfperformanceEssayUniverse = [[UITextField alloc] init]; + _satisfperformanceEssayUniverse.delegate = self; + _satisfperformanceEssayUniverse.layer.cornerRadius = 20; + _satisfperformanceEssayUniverse.layer.masksToBounds = YES; + _satisfperformanceEssayUniverse.backgroundColor = UIColorFromRGB(0xF0F0F0); + _satisfperformanceEssayUniverse.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _satisfperformanceEssayUniverse.placeholder = YMLocalizedString(@"YUMI_Room_Setting_Input_View_3"); + _satisfperformanceEssayUniverse.font = [UIFont systemFontOfSize:17]; + _satisfperformanceEssayUniverse.leftView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 15, 10)]; + _satisfperformanceEssayUniverse.leftViewMode = UITextFieldViewModeAlways; + _satisfperformanceEssayUniverse.rightView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 15, 10)]; + _satisfperformanceEssayUniverse.rightViewMode = UITextFieldViewModeAlways; + } + return _satisfperformanceEssayUniverse; +} + +- (UIStackView *)stackView { + if (!_stackView) { + _stackView = [[UIStackView alloc] init]; + _stackView.axis = UILayoutConstraintAxisHorizontal; + _stackView.distribution = UIStackViewDistributionFillEqually; + _stackView.alignment = UIStackViewAlignmentFill; + _stackView.spacing = 16; + } + return _stackView; +} + +- (UIButton *)revocationBtuton { + if (!_revocationBtuton) { + _revocationBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_revocationBtuton setTitle:YMLocalizedString(@"YUMI_Room_Setting_Input_View_4") forState:UIControlStateNormal]; + [_revocationBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + _revocationBtuton.titleLabel.font = [UIFont systemFontOfSize:15]; + [_revocationBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor revoctowardsionBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor revoctowardsionBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + _revocationBtuton.layer.masksToBounds = YES; + _revocationBtuton.layer.cornerRadius = 10; + [_revocationBtuton addTarget:self action:@selector(revoctowardsionBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _revocationBtuton; +} + +- (UIButton *)acknowledgementBtuton { + if (!_acknowledgementBtuton) { + _acknowledgementBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_acknowledgementBtuton setTitle:YMLocalizedString(@"YUMI_Room_Setting_Input_View_5") forState:UIControlStateNormal]; + [_acknowledgementBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + _acknowledgementBtuton.titleLabel.font = [UIFont systemFontOfSize:15]; + [_acknowledgementBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + _acknowledgementBtuton.layer.masksToBounds = YES; + _acknowledgementBtuton.layer.cornerRadius = 10; + [_acknowledgementBtuton addTarget:self action:@selector(acknowledgementBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _acknowledgementBtuton; +} + +- (UILabel *)failSequencignation { + if (!_failSequencignation) { + _failSequencignation = [[UILabel alloc] init]; + _failSequencignation.text = YMLocalizedString(@"YUMI_Room_Setting_Input_View_6"); + _failSequencignation.font = [UIFont systemFontOfSize:15]; + _failSequencignation.textAlignment = NSTextAlignmentCenter; + _failSequencignation.textColor = [DJDKMIMOMColor aplictowardsionMainPrettify]; + _failSequencignation.hidden = YES; + } + return _failSequencignation; +} + + +@end diff --git a/YuMi/Modules/YMRoom/View/Setting/View/YUMIChamberInstanllingRegardGovernancer.h b/YuMi/Modules/YMRoom/View/Setting/View/YUMIChamberInstanllingRegardGovernancer.h new file mode 100644 index 00000000..eec3143f --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Setting/View/YUMIChamberInstanllingRegardGovernancer.h @@ -0,0 +1,16 @@ +// +// YMRoomSettingViewController.h +// YUMI +// +// Created by YUMI on 2021/12/27. +// + +#import "MvpRegardGovernancer.h" +#import "ChamberHostRepresendtation.h" +NS_ASSUME_NONNULL_BEGIN +@class ChamberAbstractMatrix; +@interface YUMIChamberInstanllingRegardGovernancer : MvpRegardGovernancer +- (instancetype)initWithDelegate:(id)delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/Setting/View/YUMIChamberInstanllingRegardGovernancer.m b/YuMi/Modules/YMRoom/View/Setting/View/YUMIChamberInstanllingRegardGovernancer.m new file mode 100644 index 00000000..e1399e06 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Setting/View/YUMIChamberInstanllingRegardGovernancer.m @@ -0,0 +1,476 @@ +// +// YMRoomSettingViewController.m +// YUMI +// +// Created by YUMI on 2021/12/27. +// + +#import "YUMIChamberInstanllingRegardGovernancer.h" +#import +#import "ThemeColor+Room.h" +#import "YUMIMacroUitls.h" +#import "MKJPopup.h" +#import "DESEncrypt.h" +#import "YUMIConstant.h" +#import "AccountAbstractStorage.h" +#import "NSArray+Safe.h" +#import "ChamberAbstractMatrix.h" +#import "YUMIChamberInstanllingProvisionMatrix.h" +#import "AttachmentMatrix.h" +#import "MiecreoscoopeMHTueueMatrix.h" +#import "ConsumerAbstractMatrix.h" +#import "XCombatickConsumerMatrix.h" +#import "UnionSensationalManagementAbstractMatrix.h" +#import "YUMIChamberInstanllingTabulationRegardElement.h" +#import "YUMIChamberInstanllingIntrojectionRegard.h" +#import "YUMIChamberCoupleStatementRegard.h" +#import "YUMIChamberInstanllingExternalizer.h" +#import "FBCChamberInstanllingCeremony.h" +#import "YUMIChamberCoupleStatementRegardGovernancer.h" +#import "YUMIChamberRoleRegardGovernancer.h" + +@interface YUMIChamberInstanllingRegardGovernancer () +@property (nonatomic,strong) ChamberAbstractMatrix *roomInfo; +@property (nonatomic,strong) UITableView *tableView; +@property (nonatomic,strong) NSArray *datasource; +@property (nonatomic,weak) id hostRepresedtation; +@property (nonatomic,assign) BOOL meIsSensationalManagement; +@end + +@implementation YUMIChamberInstanllingRegardGovernancer + +- (instancetype)initWithDelegate:(id)delegate { + if (self = [super init]) { + self.hostRepresedtation = delegate; + self.roomInfo = self.hostRepresedtation.acquireChamberAbstract; + } + return self; +} + +- (YUMIChamberInstanllingExternalizer *)producePresimport { + return [[YUMIChamberInstanllingExternalizer alloc] init]; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + NSString * roomUid = [NSString stringWithFormat:@"%ld", self.roomInfo.uid]; + [self.presimport acquireChamberAbstract:roomUid]; + + BOOL meIsSensationalManagement = NO; + for (UnionSensationalManagementAbstractMatrix *executiveAbstract in self.hostRepresedtation.acquireChamberSenstowardsionalManagementSttowardsement) { + if ([executiveAbstract.uid isEqualToString:[AccountAbstractStorage instance].acquireCid]) { + meIsSensationalManagement = YES; + break; + } + } + self.meIsSensationalManagement = meIsSensationalManagement; + [self.presimport acquireChamberInstanllingSttowardsement:self.roomInfo isSuperAdmin:meIsSensationalManagement]; + [self initSubViews]; + [self initChildLyRestrictions]; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.title = YMLocalizedString(@"YUMI_Room_Setting_View_Controller_0"); + [self.view addSubview:self.tableView]; +} + +- (void)initChildLyRestrictions { + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.view); + }]; +} + +- (void)shankChamberDepartureManner { + [self EvidenceChambering]; + NSString * ownerUid = [NSString stringWithFormat:@"%ld", self.roomInfo.uid]; + NSArray *chatRoomMicSequences = [self.hostRepresedtation.acquireMiecreoscoopeInthecaseofmtowardsion allValues]; + + BOOL ownerIsOnMic = NO; + NSString * ownerPosition; + if (chatRoomMicSequences != nil && chatRoomMicSequences.count > 0) { + for (int i = 0; i < chatRoomMicSequences.count; i ++) { + MiecreoscoopeMHTueueMatrix *micqueueModel = chatRoomMicSequences[i]; + if (micqueueModel.userInfo && micqueueModel.userInfo.uid > 0) { + if (micqueueModel.userInfo.uid == ownerUid.integerValue) { + ownerIsOnMic = YES; + ownerPosition = [NSString stringWithFormat:@"%d", micqueueModel.microState.position]; + break; + } + } + } + } + NSString * roomId = [NSString stringWithFormat:@"%ld", self.roomInfo.roomId]; + + if (ownerIsOnMic) { + NIMChatroomQueueRemoveRequest *request = [[NIMChatroomQueueRemoveRequest alloc]init]; + request.key = ownerPosition; + request.roomId = roomId; + [[NIMSDK sharedSDK].chatroomManager removeChatroomQueueObject:request completion:^(NSError * _Nullable error, NSDictionary * _Nullable element) { + + }]; + } + + NSString *position = @"-1"; + ConsumerAbstractMatrix *onMicInfo = [self.hostRepresedtation.acquireMiecreoscoopeInthecaseofmtowardsion objectForKey:position].userInfo; + if (onMicInfo) { + NIMChatroomQueueRemoveRequest *request = [[NIMChatroomQueueRemoveRequest alloc]init]; + request.key = @"-1"; + request.roomId =roomId; + [[NIMSDK sharedSDK].chatroomManager removeChatroomQueueObject:request completion:^(NSError * _Nullable error, NSDictionary * _Nullable element) { + if (error == nil) { + XCombatickConsumerMatrix *notifyModel = [[XCombatickConsumerMatrix alloc] init]; + notifyModel.handleNick = onMicInfo.nick; + notifyModel.handleUid = [AccountAbstractStorage instance].acquireCid.integerValue; + notifyModel.targetUid = onMicInfo.uid; + notifyModel.targetNick = onMicInfo.nick; + notifyModel.uid = onMicInfo.uid; + AttachmentMatrix *attachment = [[AttachmentMatrix alloc] init]; + attachment.first = IndividualityCommunicationGenre_Queue; + attachment.second = Custom_Message_Sub_Queue_Kick; + attachment.data = [notifyModel mtowardsrix2dictionary]; + + NSString * sessionId = [NSString stringWithFormat:@"%ld", self.roomInfo.roomId]; + NIMMessage *message = [[NIMMessage alloc]init]; + NIMCustomObject *object = [[NIMCustomObject alloc] init]; + object.attachment = attachment; + message.messageObject = object; + + NIMSession *session = [NIMSession session:sessionId type:NIMSessionTypeChatroom]; + [[NIMSDK sharedSDK].chatManager sendMessage:message toSession:session error:nil]; + } + }]; + } + + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.6 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + NSString * roomUid = [NSString stringWithFormat:@"%ld", self.roomInfo.uid]; + [self brakeHUD]; + [self.presimport unfoildChamberDepartureManner:roomUid]; + }); + +} + +#pragma mark - UITableViewDelegate And UITableViewDataSource +- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { + return self.datasource.count; +} + +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.datasource[section].count; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + YUMIChamberInstanllingTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIChamberInstanllingTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIChamberInstanllingTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIChamberInstanllingTabulationRegardElement class])]; + } + cell.delegate = self; + cell.itemMatrix = [[self.datasource secureGroalTowardsIndictowardsrix1:indexPath.section] secureGroalTowardsIndictowardsrix1:indexPath.row]; + return cell; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { +YUMIChamberInstanllingProvisionMatrix * itemMatrix = [[self.datasource secureGroalTowardsIndictowardsrix1:indexPath.section] secureGroalTowardsIndictowardsrix1:indexPath.row]; + if (itemMatrix.type == ChamberInstanllingProvisionGenre_Leave_Model && itemMatrix.switchState) { + return 60; + } + return 50; +} + +-(UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section { + UIView * view = [[UIView alloc] init]; + view.frame = CGRectMake(0, 0, KScreenWidth, 10); + view.backgroundColor = [UIColor clearColor]; + return view; +} +- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section { + return 10; +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + [tableView deselectRowAtIndexPath:indexPath animated:YES]; + YUMIChamberInstanllingProvisionMatrix * itemMatrix = [[self.datasource secureGroalTowardsIndictowardsrix1:indexPath.section] secureGroalTowardsIndictowardsrix1:indexPath.row]; + NSString * roomUid = [NSString stringWithFormat:@"%ld", self.roomInfo.uid]; + NSString * roomId = [NSString stringWithFormat:@"%ld", self.roomInfo.roomId]; + NSString * roomTag = [NSString stringWithFormat:@"%ld", self.roomInfo.tagId]; + NSString *roomClassifyId = self.roomInfo.singleRoomSortId; + switch (itemMatrix.type) { + case ChamberInstanllingProvisionGenre_Class: + { + YUMIChamberCoupleStatementRegard *view = [[YUMIChamberCoupleStatementRegard alloc] init]; + view.coupleGenre = ChamberInstanllingSelectTagGenreClassify; + view.tagId = self.roomInfo.singleRoomSortId; + view.completion = ^(NSString * _Nonnull tag) { + NSString * mgId = [NSString stringWithFormat:@"%lld", self.roomInfo.mgId]; + [self.presimport refurbishChamberAbstract:self.roomInfo.title roomPwd:self.roomInfo.roomPwd tagId:roomTag classifyId:tag hasAnimationEffect:self.roomInfo.hasAnimationEffect roomUid:roomUid roomId:roomId type:self.roomInfo.type itemType:itemMatrix.type mgId:mgId]; + }; + [MKJPopup popupRegard:view style:MKJPopupStyleAlert]; + } + break; + case ChamberInstanllingProvisionGenre_Tag: + { + YUMIChamberCoupleStatementRegard *view = [[YUMIChamberCoupleStatementRegard alloc] init]; + view.coupleGenre = ChamberInstanllingSelectTagGenreTag; + view.tagId = [NSString stringWithFormat:@"%ld", self.roomInfo.tagId]; + view.completion = ^(NSString * _Nonnull tag) { + NSString * mgId = [NSString stringWithFormat:@"%lld", self.roomInfo.mgId]; + [self.presimport refurbishChamberAbstract:self.roomInfo.title roomPwd:self.roomInfo.roomPwd tagId:tag classifyId:roomClassifyId hasAnimationEffect:self.roomInfo.hasAnimationEffect roomUid:roomUid roomId:roomId type:self.roomInfo.type itemType:itemMatrix.type mgId:mgId]; + }; + [MKJPopup popupRegard:view style:MKJPopupStyleAlert]; + } + break; + case ChamberInstanllingProvisionGenre_Title: + { + YUMIChamberInstanllingIntrojectionRegard * titleView = [[YUMIChamberInstanllingIntrojectionRegard alloc] init]; + titleView.maxCount = 15; + titleView.delegate = self; + titleView.type = ChamberInstanllingIntrojectionGenre_Title; + titleView.deparatmentMaintainrietary = self.roomInfo.title; + [MKJPopup popupRegard:titleView style:MKJPopupStyleAlert]; + } + break; + + case ChamberInstanllingProvisionGenre_Pwd: + { + YUMIChamberInstanllingIntrojectionRegard * titleView = [[YUMIChamberInstanllingIntrojectionRegard alloc] init]; + titleView.maxCount = 8; + titleView.delegate = self; + titleView.type = ChamberInstanllingIntrojectionGenre_Pwd; + NSString * roomPwd = [DESEncrypt decryptUseDES:self.roomInfo.roomPwd key:KeyWithType(KeyGenre_PasswordEncode)]; + titleView.deparatmentMaintainrietary = roomPwd; + [MKJPopup popupRegard:titleView style:MKJPopupStyleAlert]; + } + break; + case ChamberInstanllingProvisionGenre_Manager_List: + { + YUMIChamberRoleRegardGovernancer * managerVC = [[YUMIChamberRoleRegardGovernancer alloc] init]; + managerVC.sensationalAdmminStatement = self.hostRepresedtation.acquireChamberSenstowardsionalManagementSttowardsement; + managerVC.roomId = roomId; + managerVC.type = ChamberRoleStatementGenre_Manager; + [self.navigationController pushViewController:managerVC animated:YES]; + } + break; + case ChamberInstanllingProvisionGenre_Black_List: + { + YUMIChamberRoleRegardGovernancer * managerVC = [[YUMIChamberRoleRegardGovernancer alloc] init]; + managerVC.roomId = roomId; + managerVC.type = ChamberRoleStatementGenre_Black; + [self.navigationController pushViewController:managerVC animated:YES]; + } + break; + default: + break; + } +} + +#pragma mark - FBCChamberInstanllingIntrojectionRegardRepresendtation +- (void)yUMIChamberInstanllingIntrojectionRegard:(YUMIChamberInstanllingIntrojectionRegard *)view didClickConfirm:(NSString *)text type:(ChamberInstanllingIntrojectionGenre)type { + NSString * roomUid = [NSString stringWithFormat:@"%ld", self.roomInfo.uid]; + NSString * roomId = [NSString stringWithFormat:@"%ld", self.roomInfo.roomId]; + NSString * roomTag = [NSString stringWithFormat:@"%ld", self.roomInfo.tagId]; + NSString * mgId = [NSString stringWithFormat:@"%lld", self.roomInfo.mgId]; + NSString * roomClassifyId = self.roomInfo.singleRoomSortId; + if (type == ChamberInstanllingIntrojectionGenre_Pwd) { + NSString *pwdDes = [DESEncrypt encryptUseDES:text key:KeyWithType(KeyGenre_PasswordEncode)]; + [self.presimport refurbishChamberAbstract:self.roomInfo.title roomPwd:pwdDes tagId:roomTag classifyId:roomClassifyId hasAnimationEffect:self.roomInfo.hasAnimationEffect roomUid:roomUid roomId:roomId type:self.roomInfo.type itemType:ChamberInstanllingProvisionGenre_Pwd mgId:mgId]; + } else if(type == ChamberInstanllingIntrojectionGenre_Title) { + [self.presimport refurbishChamberAbstract:text roomPwd:self.roomInfo.roomPwd tagId:roomTag classifyId:roomClassifyId hasAnimationEffect:self.roomInfo.hasAnimationEffect roomUid:roomUid roomId:roomId type:self.roomInfo.type itemType:ChamberInstanllingProvisionGenre_Title mgId:mgId]; + } +} + +#pragma mark - FBCChamberInstanllingTabulationViweElementRepresendtation +- (void)didDiversifictowardsionSwop:(UISwitch *)switchView itemMatrix:(YUMIChamberInstanllingProvisionMatrix *)itemMatrix { + BOOL isOn = switchView.on; + NSString * roomUid = [NSString stringWithFormat:@"%ld", self.roomInfo.uid]; + NSString * roomId = [NSString stringWithFormat:@"%ld", self.roomInfo.roomId]; + NSString * roomTag = [NSString stringWithFormat:@"%ld", self.roomInfo.tagId]; + NSString * roomClassifyId = self.roomInfo.singleRoomSortId; + switch (itemMatrix.type) { + case ChamberInstanllingProvisionGenre_Arrange_Mic: + { + if (self.roomInfo.roomModeType == ChamberModeGenre_Open_Blind) return; + NSString *msg; + if (isOn) { + msg = @"开启排麦模式要排队才能上麦,确定开启吗?"; + } else { + msg = @"关闭排麦模式后会清空排麦列表哦,确定关闭吗?"; + } + MKJPrecautiousDisposition *config = [[MKJPrecautiousDisposition alloc] init]; + config.title = YMLocalizedString(@"YUMI_Room_Setting_View_Controller_3"); + config.message = msg; + config.shouldDismissOnBackgroundTouch = NO; + [MKJPopup precautiousAboutDisposition:config acknowledgementHandler:^{ + if (isOn) { + [self.presimport unfoildChamberScheduleLoudspeaker:roomUid]; + }else { + [self.presimport concludeChamberScheduleLoudspeaker:roomUid]; + } + } cancelHandler:^{ + }]; + + } + break; + case ChamberInstanllingProvisionGenre_Leave_Model: + { + if (!isOn) { + [self.presimport concludeChamberDepartureManner:roomUid]; + return; + } + + MKJPrecautiousDisposition *config = [[MKJPrecautiousDisposition alloc] init]; + config.message = @"开启离开模式后,房主会固定显示在房主位,确认开启吗?"; + config.shouldDismissOnBackgroundTouch = NO; + + [MKJPopup precautiousAboutDisposition:config acknowledgementHandler:^{ + [self shankChamberDepartureManner]; + } cancelHandler:^{ + }]; + } + break; + case ChamberInstanllingProvisionGenre_Lock: + { + if (isOn) { + YUMIChamberInstanllingIntrojectionRegard * titleView = [[YUMIChamberInstanllingIntrojectionRegard alloc] init]; + titleView.maxCount = 8; + titleView.delegate = self; + titleView.type = ChamberInstanllingIntrojectionGenre_Pwd; + [MKJPopup popupRegard:titleView style:MKJPopupStyleAlert]; + } else { + NSString * mgId = [NSString stringWithFormat:@"%lld", self.roomInfo.mgId]; + [self.presimport refurbishChamberAbstract:self.roomInfo.title roomPwd:@"" tagId:roomTag classifyId:roomClassifyId hasAnimationEffect:self.roomInfo.hasAnimationEffect roomUid:roomUid roomId:roomId type:self.roomInfo.type itemType:itemMatrix.type mgId:mgId]; + } + } + break; + case ChamberInstanllingProvisionGenre_Gift_Effect: + { + if (isOn) { + NSString * mgId = [NSString stringWithFormat:@"%lld", self.roomInfo.mgId]; + [self.presimport refurbishChamberAbstract:self.roomInfo.title roomPwd:self.roomInfo.roomPwd tagId:roomTag classifyId:roomClassifyId hasAnimationEffect:YES roomUid:roomUid roomId:roomId type:self.roomInfo.type itemType:itemMatrix.type mgId:mgId]; + return; + } + MKJPrecautiousDisposition *config = [[MKJPrecautiousDisposition alloc] init]; + config.title = YMLocalizedString(@"YUMI_Room_Setting_View_Controller_5"); + config.message = @"关闭后将看不到礼物特效,运作更加流畅。是否确认关闭礼物特效?"; + config.shouldDismissOnBackgroundTouch = NO; + + [MKJPopup precautiousAboutDisposition:config acknowledgementHandler:^{ + NSString * mgId = [NSString stringWithFormat:@"%lld", self.roomInfo.mgId]; + [self.presimport refurbishChamberAbstract:self.roomInfo.title roomPwd:self.roomInfo.roomPwd tagId:roomTag classifyId:roomClassifyId hasAnimationEffect:NO roomUid:roomUid roomId:roomId type:self.roomInfo.type itemType:itemMatrix.type mgId:mgId]; + } cancelHandler:^{ + + }]; + } + break; + case ChamberInstanllingProvisionGenre_Message_Screen: + { + if (isOn) { + [self.presimport refurbishChamberCommunictowardsioncreenDeclare:NO roomId:roomId]; + return; + } + MKJPrecautiousDisposition *config = [[MKJPrecautiousDisposition alloc] init]; + config.title = YMLocalizedString(@"YUMI_Room_Setting_View_Controller_7"); + config.message = @"关闭后将看不到聊天信息,运作更加流畅。是否确认关闭公屏?"; + config.shouldDismissOnBackgroundTouch = NO; + [MKJPopup precautiousAboutDisposition:config acknowledgementHandler:^{ + [self.presimport refurbishChamberCommunictowardsioncreenDeclare:YES roomId:roomId]; + } cancelHandler:^{ + + }]; + } + break; + default: + break; + } +} + +#pragma mark - FBCChamberInstanllingCeremony +- (void)acquireChamberInstanllingSttowardsementAccomplishment:(NSArray *)list { + self.datasource = list; + [self.tableView reloadData]; +} + +- (void)acquireChamberAbstractAccomplishment:(ChamberAbstractMatrix *)roomInfo { + self.roomInfo = roomInfo; + [self.presimport acquireChamberInstanllingSttowardsement:roomInfo isSuperAdmin:self.meIsSensationalManagement]; +} + +- (void)unfoildChamberScheduleLoudspeakerAccomplishment { + NSString * roomUid = [NSString stringWithFormat:@"%ld", self.roomInfo.uid]; + [self.presimport acquireChamberAbstract:roomUid]; +} + +- (void)concludeChamberScheduleLoudspeakerAccomplishment { + NSString * roomUid = [NSString stringWithFormat:@"%ld", self.roomInfo.uid]; + [self.presimport acquireChamberAbstract:roomUid]; +} + +- (void)refurbishChamberCommunictowardsioncreenDeclareAccomplishment:(ChamberAbstractMatrix *)roomInfo { + NSString * roomUid = [NSString stringWithFormat:@"%ld", self.roomInfo.uid]; + [self.presimport acquireChamberAbstract:roomUid]; + + NSString *sessionID = [NSString stringWithFormat:@"%ld", roomInfo.roomId]; + AttachmentMatrix *attachement = [[AttachmentMatrix alloc]init]; + attachement.first = IndividualityCommunicationGenre_Update_RoomInfo; + attachement.second = Custom_Message_Sub_Update_RoomInfo_MessageState; + attachement.data = [roomInfo mtowardsrix2dictionary]; + NIMMessage *message = [[NIMMessage alloc]init]; + NIMCustomObject *object = [[NIMCustomObject alloc] init]; + object.attachment = attachement; + message.messageObject = object; + + NIMSession *session = [NIMSession session:sessionID type:NIMSessionTypeChatroom]; + [[NIMSDK sharedSDK].chatManager sendMessage:message toSession:session error:nil]; +} + +- (void)refurbishChamberAbstractAccomplishment:(ChamberAbstractMatrix *)roomInfo itemType:(ChamberInstanllingProvisionGenre)itemType { + NSString * roomUid = [NSString stringWithFormat:@"%ld", self.roomInfo.uid]; + [self.presimport acquireChamberAbstract:roomUid]; + if (itemType == ChamberInstanllingProvisionGenre_Gift_Effect) { + NSString *sessionID = [NSString stringWithFormat:@"%ld", roomInfo.roomId]; + AttachmentMatrix *attachement = [[AttachmentMatrix alloc]init]; + attachement.first = IndividualityCommunicationGenre_Update_RoomInfo; + attachement.second = Custom_Message_Sub_Update_RoomInfo_AnimateEffect; + attachement.data = [roomInfo mtowardsrix2dictionary]; + NIMMessage *message = [[NIMMessage alloc]init]; + NIMCustomObject *object = [[NIMCustomObject alloc] init]; + object.attachment = attachement; + message.messageObject = object; + + NIMSession *session = [NIMSession session:sessionID type:NIMSessionTypeChatroom]; + [[NIMSDK sharedSDK].chatManager sendMessage:message toSession:session error:nil]; + } +} + +- (void)refurbishChamberAbstractFlunk:(NSString *)message { + [self EvidenceMistakeToast:message]; +} + +- (void)unfoildChamberDepartureMannerAccomplishment { + NSString * roomUid = [NSString stringWithFormat:@"%ld", self.roomInfo.uid]; + [self.presimport acquireChamberAbstract:roomUid]; +} + +- (void)concludeChamberDepartureMannerAccomplishment { + NSString * roomUid = [NSString stringWithFormat:@"%ld", self.roomInfo.uid]; + [self.presimport acquireChamberAbstract:roomUid]; +} + +#pragma mark - Getters And Setters +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.tableFooterView = [UIView new]; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.backgroundColor = [UIColor clearColor]; + if (@available(iOS 11.0, *)) { + _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + [_tableView registerClass:[YUMIChamberInstanllingTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIChamberInstanllingTabulationRegardElement class])]; + } + return _tableView; +} + + +@end diff --git a/YuMi/Modules/YMRoom/View/Setting/View/YUMIChamberMotifPrecautiousRegard.h b/YuMi/Modules/YMRoom/View/Setting/View/YUMIChamberMotifPrecautiousRegard.h new file mode 100644 index 00000000..2c024057 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Setting/View/YUMIChamberMotifPrecautiousRegard.h @@ -0,0 +1,17 @@ +// +// YMRoomTopicAlertView.h +// YUMI +// +// Created by YUMI on 2022/3/15. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIChamberMotifPrecautiousRegard : UIView +@property (nonatomic,copy) NSString *title; +@property (nonatomic,copy) NSString *message; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/Setting/View/YUMIChamberMotifPrecautiousRegard.m b/YuMi/Modules/YMRoom/View/Setting/View/YUMIChamberMotifPrecautiousRegard.m new file mode 100644 index 00000000..eb8aa237 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Setting/View/YUMIChamberMotifPrecautiousRegard.m @@ -0,0 +1,119 @@ +// +// YMRoomTopicAlertView.m +// YUMI +// +// Created by YUMI on 2022/3/15. +// + +#import "YUMIChamberMotifPrecautiousRegard.h" +#import +#import "DJDKMIMOMColor.h" +#import "UIImage+Utils.h" +#import "MKJPopup.h" +#import "YUMIMacroUitls.h" + +@interface YUMIChamberMotifPrecautiousRegard () + +@property (nonatomic,strong) UILabel *titleLabel; +@property (nonatomic,strong) UITextView *textView; +@property (nonatomic,strong) UIButton *concludeBtuton; + +@end + +@implementation YUMIChamberMotifPrecautiousRegard + +- (instancetype)initWithFrame:(CGRect)frame +{ + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.layer.masksToBounds = YES; + self.layer.cornerRadius = 15; + self.backgroundColor = [UIColor whiteColor]; + [self addSubview:self.titleLabel]; + [self addSubview:self.textView]; + [self addSubview:self.concludeBtuton]; +} + +- (void)initChildLyRestrictions { + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(KScreenWidth - 40 * 2); + make.bottom.mas_equalTo(self.concludeBtuton.mas_bottom).offset(20); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self).inset(20); + }]; + + [self.textView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self).inset(20); + make.top.mas_equalTo(self.titleLabel.mas_bottom).offset(15); + make.height.mas_equalTo(200); + }]; + + [self.concludeBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(124, 44)); + make.top.mas_equalTo(self.textView.mas_bottom).offset(20); + make.centerX.mas_equalTo(self); + }]; +} + +#pragma mark - Event Response +- (void)concludeBtutonPerformance:(UIButton *)sender { + [MKJPopup dismiss]; +} + +#pragma mark - Getters And Setters +- (void)setTitle:(NSString *)title { + _title = title; + self.titleLabel.text = _title.length > 0 ? _title : YMLocalizedString(@"YUMI_Room_Topic_Alert_View_0"); +} + +- (void)setMessage:(NSString *)message { + _message = message; + self.textView.text = _message.length > 0 ? _message : YMLocalizedString(@"YUMI_Room_Topic_Alert_View_1"); +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.textAlignment = NSTextAlignmentCenter; + _titleLabel.font = [UIFont fontWithName:@"PingFangSC-Medium" size:16]; + _titleLabel.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _titleLabel; +} + +- (UITextView *)textView { + if (!_textView) { + _textView = [[UITextView alloc] init]; + _textView.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _textView.backgroundColor = [UIColor clearColor]; + _textView.font = [UIFont systemFontOfSize:15]; + _textView.editable = NO; + } + return _textView; +} + +- (UIButton *)concludeBtuton { + if (!_concludeBtuton) { + _concludeBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_concludeBtuton setTitle:YMLocalizedString(@"YUMI_Room_Topic_Alert_View_2") forState:UIControlStateNormal]; + [_concludeBtuton setTitleColor:[DJDKMIMOMColor revoctowardsionBtutonEssayPrettify] forState:UIControlStateNormal]; + _concludeBtuton.titleLabel.font = [UIFont systemFontOfSize:15]; + [_concludeBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor revoctowardsionBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor revoctowardsionBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + _concludeBtuton.layer.masksToBounds = YES; + _concludeBtuton.layer.cornerRadius = 22; + [_concludeBtuton addTarget:self action:@selector(concludeBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _concludeBtuton; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/Setting/View/YUMIChamberMotifRegardGovernancer.h b/YuMi/Modules/YMRoom/View/Setting/View/YUMIChamberMotifRegardGovernancer.h new file mode 100644 index 00000000..5cdbdd02 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Setting/View/YUMIChamberMotifRegardGovernancer.h @@ -0,0 +1,16 @@ +// +// YMRoomTopicViewController.h +// YUMI +// +// Created by YUMI on 2022/3/14. +// + +#import "MvpRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN +@class ChamberAbstractMatrix; +@interface YUMIChamberMotifRegardGovernancer : MvpRegardGovernancer +@property (nonatomic,strong) ChamberAbstractMatrix *roomInfo; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/Setting/View/YUMIChamberMotifRegardGovernancer.m b/YuMi/Modules/YMRoom/View/Setting/View/YUMIChamberMotifRegardGovernancer.m new file mode 100644 index 00000000..4442add4 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Setting/View/YUMIChamberMotifRegardGovernancer.m @@ -0,0 +1,234 @@ +// +// YMRoomTopicViewController.m +// YUMI +// +// Created by YUMI on 2022/3/14. +// + +#import "YUMIChamberMotifRegardGovernancer.h" +#import +#import "DJDKMIMOMColor.h" +#import "UIImage+Utils.h" +#import "YUMIMacroUitls.h" +#import "ChamberAbstractMatrix.h" +#import "YUMIChamberMotifExternalizer.h" +#import "FBCChamberMotifCeremony.h" + +@interface YUMIChamberMotifRegardGovernancer () +@property (nonatomic,strong) UITextField *essayUniverse; +@property (nonatomic,strong) UILabel *championDigitalSequencignation; +@property (nonatomic,strong) UITextView *satisfperformanceEssayRegard; +@property (nonatomic,strong) UILabel *satisfperformanceSequencignation; +@property (nonatomic,strong) UIButton *acknowledgementBtuton; +@property (nonatomic,strong) UIView * contentView; +@property (nonatomic,strong) UILabel *deparatmentSequencignation; +@end + +@implementation YUMIChamberMotifRegardGovernancer + +- (YUMIChamberMotifExternalizer *)producePresimport { + return [[YUMIChamberMotifExternalizer alloc] init]; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initSubViews]; + [self initChildLyRestrictions]; +} + +- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { + [self.view endEditing:YES]; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.title = YMLocalizedString(@"YUMI_Room_Topic_View_Controller_0"); + [self.view addSubview:self.essayUniverse]; + [self.view addSubview:self.championDigitalSequencignation]; + [self.view addSubview:self.contentView]; + [self.view addSubview:self.satisfperformanceSequencignation]; + [self.view addSubview:self.acknowledgementBtuton]; + + [self.contentView addSubview:self.satisfperformanceEssayRegard]; + [self.contentView addSubview:self.deparatmentSequencignation]; +} + +- (void)initChildLyRestrictions { + [self.essayUniverse mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.view).inset(15); + make.height.mas_equalTo(44); + make.top.mas_equalTo(self.view).offset(15); + }]; + + [self.championDigitalSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self.view).offset(-15); + make.top.mas_equalTo(self.essayUniverse.mas_bottom).offset(5); + }]; + + [self.contentView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.view).inset(15); + make.top.mas_equalTo(self.championDigitalSequencignation.mas_bottom).offset(15); + make.height.mas_equalTo(210); + }]; + + [self.satisfperformanceEssayRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.contentView).inset(5); + }]; + + [self.deparatmentSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.top.mas_equalTo(self.satisfperformanceEssayRegard); + }]; + + [self.satisfperformanceSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.mas_equalTo(self.contentView);; + make.top.mas_equalTo(self.contentView.mas_bottom).offset(15); + }]; + + [self.acknowledgementBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.view).inset(47); + make.height.mas_equalTo(44); + make.bottom.mas_equalTo(self.view).offset(-kSafeAreaBottomHeight - 20); + }]; +} + +#pragma mark - UITextViewDelegate +- (void)textViewDidChange:(UITextView *)textView { + if (textView.text.length > 0) { + self.deparatmentSequencignation.hidden = YES; + } else { + self.deparatmentSequencignation.hidden = NO; + } + if (textView.text.length > 300) { + textView.text = [textView.text substringToIndex:300]; + } + self.satisfperformanceSequencignation.text = [NSString stringWithFormat:@"%ld/300", textView.text.length]; +} + +- (void)textViewDidBeginEditing:(UITextView *)textView { + self.deparatmentSequencignation.hidden = YES; +} + +#pragma mark - FBCChamberMotifCeremony +- (void)refurbishChamberMotifAccomplishment { + [self.navigationController popViewControllerAnimated:YES]; +} + +- (void)refurbishChamberMotifFlunk:(NSString *)message { + [self EvidenceMistakeToast:message]; +} + +#pragma mark - Event Response +- (void)acknowledgementBtutonPerformance:(UIButton *)sender { + if (self.essayUniverse.text.length <= 0) { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_Room_Topic_View_Controller_1")]; + return; + } + [self.presimport chamberMotifRefurbish:self.essayUniverse.text introduction:self.satisfperformanceEssayRegard.text roomInfo:self.roomInfo]; +} + +- (void)essayAccurtowardsedDidDiversifictowardsion:(UITextField *)essayUniverse { + if (essayUniverse.text.length > 15) { + essayUniverse.text = [essayUniverse.text substringToIndex:15]; + } + self.championDigitalSequencignation.text = [NSString stringWithFormat:@"%ld/15", essayUniverse.text.length]; +} + + +#pragma mark - Getters And Setters +- (void)setRoomInfo:(ChamberAbstractMatrix *)roomInfo { + _roomInfo = roomInfo; + if (_roomInfo) { + self.essayUniverse.text = _roomInfo.roomDesc; + self.satisfperformanceEssayRegard.text = _roomInfo.introduction; + self.championDigitalSequencignation.text = [NSString stringWithFormat:@"%ld/15", _roomInfo.roomDesc.length]; + self.satisfperformanceSequencignation.text = [NSString stringWithFormat:@"%ld/300", _roomInfo.introduction.length]; + self.deparatmentSequencignation.hidden = _roomInfo.introduction.length > 0; + } +} + +- (UITextField *)essayUniverse { + if (!_essayUniverse) { + _essayUniverse = [[UITextField alloc] init]; + _essayUniverse.layer.cornerRadius = 8; + _essayUniverse.layer.masksToBounds = YES; + _essayUniverse.backgroundColor = [DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify]; + _essayUniverse.font = [UIFont systemFontOfSize:13]; + _essayUniverse.attributedPlaceholder = [[NSAttributedString alloc] initWithString:YMLocalizedString(@"YUMI_Room_Topic_View_Controller_2") attributes:@{NSFontAttributeName : [UIFont systemFontOfSize:13], NSForegroundColorAttributeName : [DJDKMIMOMColor essayTertiusPrettify]}]; + _essayUniverse.tintColor = [DJDKMIMOMColor aplictowardsionMainPrettify]; + UIView *searchIconView = [[UIView alloc] init]; + searchIconView.frame = CGRectMake(0, 0, 7, 10); + _essayUniverse.leftView = searchIconView; + _essayUniverse.leftViewMode = UITextFieldViewModeAlways; + [_essayUniverse addTarget:self action:@selector(essayAccurtowardsedDidDiversifictowardsion:) forControlEvents:UIControlEventEditingChanged]; + } + return _essayUniverse; +} + +- (UILabel *)championDigitalSequencignation { + if (!_championDigitalSequencignation) { + _championDigitalSequencignation = [[UILabel alloc] init]; + _championDigitalSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _championDigitalSequencignation.font = [UIFont systemFontOfSize:10]; + _championDigitalSequencignation.text = @"0/15"; + } + return _championDigitalSequencignation; +} + +- (UITextView *)satisfperformanceEssayRegard { + if (!_satisfperformanceEssayRegard) { + _satisfperformanceEssayRegard = [[UITextView alloc] init]; + _satisfperformanceEssayRegard.backgroundColor = [UIColor clearColor]; + _satisfperformanceEssayRegard.font = [UIFont systemFontOfSize:13]; + _satisfperformanceEssayRegard.tintColor = [UIColor clearColor]; + _satisfperformanceEssayRegard.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _satisfperformanceEssayRegard.tintColor = [DJDKMIMOMColor aplictowardsionMainPrettify]; + _satisfperformanceEssayRegard.delegate = self; + } + return _satisfperformanceEssayRegard; +} + +- (UILabel *)satisfperformanceSequencignation { + if (!_satisfperformanceSequencignation) { + _satisfperformanceSequencignation = [[UILabel alloc] init]; + _satisfperformanceSequencignation.font = [UIFont systemFontOfSize:10]; + _satisfperformanceSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _satisfperformanceSequencignation.text = @"0/300"; + } + return _satisfperformanceSequencignation; +} + +- (UIView *)contentView { + if (!_contentView) { + _contentView = [[UIView alloc] init]; + _contentView.backgroundColor = [DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify]; + _contentView.layer.masksToBounds = YES; + _contentView.layer.cornerRadius = 8; + } + return _contentView; +} + +- (UILabel *)deparatmentSequencignation { + if (!_deparatmentSequencignation) { + _deparatmentSequencignation = [[UILabel alloc] init]; + _deparatmentSequencignation.text = YMLocalizedString(@"YUMI_Room_Topic_View_Controller_3"); + _deparatmentSequencignation.font = [UIFont systemFontOfSize:13]; + _deparatmentSequencignation.textColor = [DJDKMIMOMColor instantEssayPrettify]; + } + return _deparatmentSequencignation; +} + +- (UIButton *)acknowledgementBtuton { + if (!_acknowledgementBtuton) { + _acknowledgementBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_acknowledgementBtuton setTitle:YMLocalizedString(@"YUMI_Room_Topic_View_Controller_4") forState:UIControlStateNormal]; + [_acknowledgementBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + _acknowledgementBtuton.titleLabel.font = [UIFont systemFontOfSize:15]; + [_acknowledgementBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + _acknowledgementBtuton.layer.masksToBounds = YES; + _acknowledgementBtuton.layer.cornerRadius = 22; + [_acknowledgementBtuton addTarget:self action:@selector(acknowledgementBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _acknowledgementBtuton; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/Setting/View/YUMIChamberOnLineRegardGovernancer.h b/YuMi/Modules/YMRoom/View/Setting/View/YUMIChamberOnLineRegardGovernancer.h new file mode 100644 index 00000000..7f020f61 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Setting/View/YUMIChamberOnLineRegardGovernancer.h @@ -0,0 +1,17 @@ +// +// YMRoomOnLineViewController.h +// YUMI +// +// Created by YUMI on 2021/12/29. +// + +#import "BaseRegardGovernancer.h" +#import "ChamberHostRepresendtation.h" +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIChamberOnLineRegardGovernancer : BaseRegardGovernancer + +- (instancetype)initWithDelegate:(id)delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/Setting/View/YUMIChamberOnLineRegardGovernancer.m b/YuMi/Modules/YMRoom/View/Setting/View/YUMIChamberOnLineRegardGovernancer.m new file mode 100644 index 00000000..c53b7524 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Setting/View/YUMIChamberOnLineRegardGovernancer.m @@ -0,0 +1,440 @@ +// +// YMRoomOnLineViewController.m +// YUMI +// +// Created by YUMI on 2021/12/29. +// + +#import "YUMIChamberOnLineRegardGovernancer.h" +#import +#import +#import +#import +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" +#import "UIButton+EnlargeTouchArea.h" +#import "NSArray+Safe.h" +#import "ConsumerAbstractMatrix.h" +#import "MiecreoscoopeMHTueueMatrix.h" +#import "ChamberAbstractMatrix.h" +#import "YUMIConsumerSolitaireAbstractMatrix.h" +#import "YUMICommunicationRemoteExtMatrix.h" +#import "YUMIChamberOnlineTabulationRegardElement.h" +#import "YUMIChamberRoleDispossessTabulationRegardElement.h" +#import "YUMIConsumerSolitaireRegardGovernancer.h" + +@interface YUMIChamberOnLineRegardGovernancer () +@property (nonatomic,strong) UIView * nevRegard; +@property (nonatomic,strong) UIButton *backButton; +@property (nonatomic,strong) UILabel *titleLabel; +@property (nonatomic,strong) UIImageView *encourageIndicateRegard; +@property (nonatomic,strong) NSMutableArray *derivationGarment; +@property (nonatomic,strong) NSMutableArray *datasource; +@property (nonatomic,strong) UITableView *tableView; +@property (nonatomic,strong) NIMChatroomMember *lastMember; +@property (nonatomic,strong) NIMChatroomMember *tmpRecentComponent; +@property (nonatomic,weak) idhostRepresedtation; +@property (nonatomic,copy) NSString *roomId; +@property (nonatomic, assign) BOOL refreshing; +@end + +@implementation YUMIChamberOnLineRegardGovernancer +- (void)dealloc { + [[NIMSDK sharedSDK].chatManager removeDelegate:self]; +} + +- (instancetype)initWithDelegate:(id)delegate { + if (self = [super init]) { + self.hostRepresedtation = delegate; + self.roomId= [NSString stringWithFormat:@"%ld", self.hostRepresedtation.acquireChamberAbstract.roomId]; + } + return self; +} + +- (BOOL)isVeiledNevObstacle { + return YES; +} + +- (void)viewWillAppear:(BOOL)animated { + [super viewWillAppear:animated]; + [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + + [[NIMSDK sharedSDK].chatManager addDelegate:self]; + [self initIntelligencerGrantedTerminalerRrfresh]; + [self initSubViews]; + [self initChildLyRestrictions]; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self.view addSubview:self.encourageIndicateRegard]; + [self.view addSubview:self.tableView]; + [self.view addSubview:self.nevRegard]; + + [self.nevRegard addSubview:self.backButton]; + [self.nevRegard addSubview:self.titleLabel]; +} + +- (void)initChildLyRestrictions { + [self.encourageIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.view); + }]; + + [self.nevRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self.view); + make.height.mas_equalTo(kNavigationHeight); + }]; + + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.mas_equalTo(self.view); + make.top.mas_equalTo(self.nevRegard.mas_bottom); + }]; + + [self.backButton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(22, 22)); + make.left.mas_equalTo(self.nevRegard).offset(8); + make.centerY.mas_equalTo(self.titleLabel); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.nevRegard); + make.centerY.equalTo(self.nevRegard.mas_bottom).mas_offset(-22); + }]; +} + +- (void)initIntelligencerGrantedTerminalerRrfresh { + MJRefreshNormalHeader *header = [MJRefreshNormalHeader headerWithRefreshingTarget:self refreshingAction:@selector(intelligenceerRenovtowardseh)]; + header.stateLabel.font = [UIFont systemFontOfSize:10.0]; + header.lastUpdatedTimeLabel.font = [UIFont systemFontOfSize:10.0]; + header.stateLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + header.lastUpdatedTimeLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + self.tableView.mj_header = header; + + MJRefreshBackNormalFooter *footer = [MJRefreshBackNormalFooter footerWithRefreshingTarget:self refreshingAction:@selector(footerRenovtowardseh)]; + footer.stateLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + footer.stateLabel.font = [UIFont systemFontOfSize:10.0]; + self.tableView.mj_footer = footer; + + [self intelligenceerRenovtowardseh]; +} + +- (void)intelligenceerRenovtowardseh { + if (self.refreshing) { + return; + } + self.refreshing = YES; + self.lastMember= nil; + self.tmpRecentComponent = nil; + [self.datasource removeAllObjects]; + [[self chamberChinwagChamberRegularComponentSttowardsement] subscribeNext:^(id _Nullable x) { + NSArray * regularList = x; + [regularList enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + NIMChatroomMember * member = obj; + if (member.type == NIMTeamMemberTypeOwner) { + [self.datasource insertObject:member atIndex:0]; + }else { + [self.datasource addObject:member]; + } + }]; + + [[self chamberChinwagChamberTmpComponentSttowardsement] subscribeNext:^(id _Nullable x) { + NSArray * tmpList = x; + + [self.datasource addObjectsFromArray:tmpList]; + [self.tableView reloadData]; + self.refreshing = NO; + }]; + + }]; + +} + +- (void)footerRenovtowardseh { + if (self.refreshing) { + return; + } + self.refreshing = YES; + [[self chamberChinwagChamberRegularComponentSttowardsement] subscribeNext:^(id _Nullable x) { + NSArray * regularList = x; + [regularList enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + NIMChatroomMember * member = obj; + if (member.type == NIMTeamMemberTypeOwner) { + [self.datasource insertObject:member atIndex:0]; + }else { + [self.datasource addObject:member]; + } + }]; + + [[self chamberChinwagChamberTmpComponentSttowardsement] subscribeNext:^(id _Nullable x) { + NSArray * tmpList = x; + [tmpList enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + [self.datasource addObject:obj]; + }]; + [self.tableView reloadData]; + self.refreshing = NO; + }]; + + }]; +} + +- (RACSignal *)chamberChinwagChamberRegularComponentSttowardsement { + return [RACSignal createSignal:^RACDisposable * _Nullable(id _Nonnull subscriber) { + NIMChatroomMemberRequest *request = [[NIMChatroomMemberRequest alloc] init]; + request.roomId = self.roomId; + request.type = NIMChatroomFetchMemberTypeRegular; + request.lastMember = self.lastMember; + request.limit = 200; + [[NIMSDK sharedSDK].chatroomManager fetchChatroomMembers:request completion:^(NSError * _Nullable error, NSArray * _Nullable members) { + if (error == nil) { + if (members.count > 0) { + self.lastMember = members.lastObject; + } + NSMutableArray * array = [NSMutableArray array]; + [members enumerateObjectsUsingBlock:^(NIMChatroomMember * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if (obj.isOnline && !obj.isInBlackList) { + [array addObject:obj]; + } + }]; + [subscriber sendNext:array]; + [subscriber sendCompleted]; + } else { + [subscriber sendNext:nil]; + [subscriber sendCompleted]; + } + }]; + return nil; + }]; + +} + +- (RACSignal *)chamberChinwagChamberTmpComponentSttowardsement { + return [RACSignal createSignal:^RACDisposable * _Nullable(id _Nonnull subscriber) { + NIMChatroomMemberRequest *request = [[NIMChatroomMemberRequest alloc] init]; + request.roomId = self.roomId; + request.type = NIMChatroomFetchMemberTypeTemp; + request.lastMember = self.tmpRecentComponent; + request.limit = 20; + [[NIMSDK sharedSDK].chatroomManager fetchChatroomMembers:request completion:^(NSError * _Nullable error, NSArray * _Nullable members) { + [self.tableView.mj_header endRefreshing]; + [self.tableView.mj_footer endRefreshing]; + if (error == nil) { + if (members.count > 0) { + self.tmpRecentComponent = members.lastObject; + } + NSMutableArray * array = [NSMutableArray array]; + [members enumerateObjectsUsingBlock:^(NIMChatroomMember * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + BOOL isSuperAmind = NO; + if (obj.roomExt.length > 0) { + NSData *jsonData = [obj.roomExt dataUsingEncoding:NSUTF8StringEncoding]; + NSError *error; + NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:&error]; + YUMICommunicationRemoteExtMatrix * model = [YUMICommunicationRemoteExtMatrix mtowardsrixAboutImpactbasket:[dic objectForKey:obj.userId]]; + isSuperAmind = model.platformRole == 1; + } + + if (obj.isOnline && !obj.isInBlackList && !isSuperAmind) { + [array addObject:obj]; + } + }]; + [subscriber sendNext:array]; + [subscriber sendCompleted]; + } else { + [subscriber sendNext:nil]; + [subscriber sendCompleted]; + } + }]; + return nil; + }]; +} + +- (BOOL)componentIsOnMiecreoscoope:(NSString *)userId{ + NSArray *chatRoomMicSequences = [self.hostRepresedtation.acquireMiecreoscoopeInthecaseofmtowardsion allValues] ; + if (chatRoomMicSequences != nil && chatRoomMicSequences.count > 0) { + for (int i = 0; i < chatRoomMicSequences.count; i ++) { + MiecreoscoopeMHTueueMatrix *chatRoomMicSequence = chatRoomMicSequences[i]; + if (chatRoomMicSequence.userInfo.uid == userId.integerValue) { + return YES; + } + } + } + return NO; +} + +#pragma mark - NIMChatManagerDelegate +- (void)onRecvMessages:(NSArray *)messages { + for (NIMMessage * message in messages) { + + if (message.session.sessionType != NIMSessionTypeChatroom) { + continue; + } + + + if (![message.session.sessionId isEqualToString:self.roomId]) { + continue; + } + if (message.messageType == NIMMessageTypeNotification) { + NIMNotificationObject *notiMsg = (NIMNotificationObject *)message.messageObject; + NIMChatroomNotificationContent *content = (NIMChatroomNotificationContent *)notiMsg.content; + switch (content.eventType) { + case NIMChatroomEventTypeEnter: + case NIMChatroomEventTypeExit: + case NIMChatroomEventTypeAddManager: + case NIMChatroomEventTypeRemoveManager: + case NIMChatroomEventTypeAddBlack: + case NIMChatroomEventTypeRemoveBlack: + case NIMChatroomEventTypeQueueChange: + case NIMChatroomEventTypeKicked: + [self intelligenceerRenovtowardseh]; + break; + default: + break; + + + } + } + } +} + +#pragma mark - UITableViewDelegate And UITableViewDataSource +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.datasource.count > 0 ? self.datasource.count : 1; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + if (self.datasource.count > 0) { + YUMIChamberOnlineTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIChamberOnlineTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIChamberOnlineTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIChamberOnlineTabulationRegardElement class])]; + } + NIMChatroomMember * member = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + cell.isOnMicro = [self componentIsOnMiecreoscoope:member.userId]; + cell.member = member; + return cell; + } + + YUMIChamberRoleDispossessTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIChamberRoleDispossessTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIChamberRoleDispossessTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIChamberRoleDispossessTabulationRegardElement class])]; + } + cell.titleLabel.text = YMLocalizedString(@"YUMI_Room_On_Line_View_Controller_0"); + cell.backgroundColor = [UIColor clearColor]; + return cell; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + if (self.datasource.count > 0) { + return 60; + } + return KScreenHeight - kNavigationHeight; +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + [tableView deselectRowAtIndexPath:indexPath animated:YES]; + if (self.datasource.count > 0) { + NIMChatroomMember * member = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + NSDictionary * extDic = [member.roomExt toJSONGroal]; + YUMICommunicationRemoteExtMatrix * userInfo = [YUMICommunicationRemoteExtMatrix mtowardsrixAboutImpactbasket:[extDic objectForKey:member.userId]]; + if (userInfo.enterHide) { + return; + } + ChamberAbstractMatrix * roomInfo = self.hostRepresedtation.acquireChamberAbstract; + NSString * targetUid = member.userId; + YUMIConsumerSolitaireAbstractMatrix * model = [[YUMIConsumerSolitaireAbstractMatrix alloc] init]; + [[self.hostRepresedtation.acquireMiecreoscoopeInthecaseofmtowardsion allValues] enumerateObjectsUsingBlock:^(MiecreoscoopeMHTueueMatrix * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if (targetUid.integerValue == obj.userInfo.uid) { + model.position = [NSString stringWithFormat:@"%d", obj.microState.position]; + model.posState = obj.microState.posState; + model.micState = obj.microState.micState; + *stop = YES; + } + }]; + model.nick = self.hostRepresedtation.getUserInfo.nick; + model.uid = targetUid; + model.delegate = self.hostRepresedtation; + model.roomInfo = roomInfo; + model.superMangerList = self.hostRepresedtation.acquireChamberSenstowardsionalManagementSttowardsement; + model.micQueue = self.hostRepresedtation.acquireMiecreoscoopeInthecaseofmtowardsion; + model.hideSendGiftItem = YES; + YUMIConsumerSolitaireRegardGovernancer * userCardVC = [[YUMIConsumerSolitaireRegardGovernancer alloc] initWithUser:model]; + [self.navigationController presentViewController:userCardVC animated:YES completion:nil]; + } + +} + +#pragma mark - Event Response +- (void)encourageBtutonPerformance:(UIButton *)sender { + [self.navigationController popViewControllerAnimated:YES]; +} + +#pragma mark - Getters And Setters +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.tableFooterView = [UIView new]; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.backgroundColor = [UIColor clearColor]; + _tableView.rowHeight = 60; + if (@available(iOS 11.0, *)) { + _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + [_tableView registerClass:[YUMIChamberOnlineTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIChamberOnlineTabulationRegardElement class])]; + [_tableView registerClass:[YUMIChamberRoleDispossessTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIChamberRoleDispossessTabulationRegardElement class])]; + } + return _tableView; +} + +- (UIButton *)backButton { + if (!_backButton) { + _backButton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_backButton setImage:[UIImage imageNamed:@"yumi_main_search_white_back"] forState:UIControlStateNormal]; + [_backButton addTarget:self action:@selector(encourageBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + [_backButton setEnlargeEdgeAboutApex:10 right:10 bottom:10 left:10]; + } + return _backButton; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.textAlignment = NSTextAlignmentCenter; + _titleLabel.font = [UIFont systemFontOfSize:15]; + _titleLabel.text = YMLocalizedString(@"YUMI_Room_On_Line_View_Controller_1"); + _titleLabel.textColor = [UIColor whiteColor]; + } + return _titleLabel; +} + +- (UIView *)nevRegard { + if (!_nevRegard) { + _nevRegard = [[UIView alloc] init]; + _nevRegard.backgroundColor = [UIColor clearColor]; + } + return _nevRegard; +} + + +- (UIImageView *)encourageIndicateRegard { + if (!_encourageIndicateRegard) { + _encourageIndicateRegard = [[UIImageView alloc] init]; + _encourageIndicateRegard.userInteractionEnabled = YES; + _encourageIndicateRegard.layer.masksToBounds = YES; + _encourageIndicateRegard.contentMode = UIViewContentModeScaleAspectFill; + _encourageIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_background"]; + } + return _encourageIndicateRegard; +} + + +- (NSMutableArray *)datasource { + if (!_datasource) { + _datasource = [NSMutableArray array]; + } + return _datasource; +} +@end diff --git a/YuMi/Modules/YMRoom/View/Setting/View/YUMIChamberRoleRegardGovernancer.h b/YuMi/Modules/YMRoom/View/Setting/View/YUMIChamberRoleRegardGovernancer.h new file mode 100644 index 00000000..01655ced --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Setting/View/YUMIChamberRoleRegardGovernancer.h @@ -0,0 +1,24 @@ +// +// YMRoomRoleViewController.h +// YUMI +// +// Created by YUMI on 2021/12/29. +// + +#import "BaseRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(NSInteger, ChamberRoleStatementGenre) { + + ChamberRoleStatementGenre_Manager = 1, + ChamberRoleStatementGenre_Black, +}; + +@interface YUMIChamberRoleRegardGovernancer : BaseRegardGovernancer +@property (nonatomic,copy) NSString *roomId; +@property (nonatomic,assign) ChamberRoleStatementGenre type; +@property (nonatomic,strong) NSArray *sensationalAdmminStatement; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/Setting/View/YUMIChamberRoleRegardGovernancer.m b/YuMi/Modules/YMRoom/View/Setting/View/YUMIChamberRoleRegardGovernancer.m new file mode 100644 index 00000000..bf857cab --- /dev/null +++ b/YuMi/Modules/YMRoom/View/Setting/View/YUMIChamberRoleRegardGovernancer.m @@ -0,0 +1,191 @@ +// +// YMRoomRoleViewController.m +// YUMI +// +// Created by YUMI on 2021/12/29. +// 管理员 黑名单 + +#import "YUMIChamberRoleRegardGovernancer.h" +#import +#import +#import "YUMIMacroUitls.h" +#import "YUMIChamberRoleTabulationRegardElement.h" +#import "YUMIChamberRoleDispossessTabulationRegardElement.h" +#import "UnionSensationalManagementAbstractMatrix.h" +#import "NSArray+Safe.h" + +@interface YUMIChamberRoleRegardGovernancer () +@property (nonatomic,strong) NSMutableArray *derivationGarment; +@property (nonatomic,strong) NSMutableArray *datasource; +@property (nonatomic,strong) UITableView *tableView; +@property (nonatomic,strong) NIMChatroomMember *lastMember; +@end + +@implementation YUMIChamberRoleRegardGovernancer + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initSubViews]; + [self initChildLyRestrictions]; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self.view addSubview:self.tableView]; +} + +- (void)initChildLyRestrictions { + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.view); + }]; +} + +- (void)chamberChinwagChamberRegularComponentSttowardsement { + NIMChatroomMemberRequest *request = [[NIMChatroomMemberRequest alloc] init]; + request.roomId = self.roomId; + request.type = NIMChatroomFetchMemberTypeRegular; + request.lastMember = self.lastMember; + request.limit = 200; + [[NIMSDK sharedSDK].chatroomManager fetchChatroomMembers:request completion:^(NSError * _Nullable error, NSArray * _Nullable members) { + if (error == nil) { + self.lastMember = members.lastObject; + [members enumerateObjectsUsingBlock:^(NIMChatroomMember * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if (self.type == ChamberRoleStatementGenre_Black) { + if (obj.isInBlackList) { + [self.datasource addObject:obj]; + } + } else if(self.type == ChamberRoleStatementGenre_Manager) { + if (obj.type == NIMChatroomMemberTypeManager && ![self isChamberSenstowardsionalManagement:obj.userId]) { + [self.datasource addObject:obj]; + } + } + }]; + + [self.tableView reloadData]; + + if (members.count > 0) { + [self chamberChinwagChamberRegularComponentSttowardsement]; + } + } + }]; +} + +- (BOOL)isChamberSenstowardsionalManagement:(NSString *)uid { + BOOL isSuperAdmin = NO; + for (int i = 0; i< self.sensationalAdmminStatement.count; i++) { + UnionSensationalManagementAbstractMatrix * superAdminInfo = [self.sensationalAdmminStatement secureGroalTowardsIndictowardsrix1:i]; + if ([superAdminInfo.uid isEqualToString:uid]) { + isSuperAdmin = YES; + break; + } + } + return isSuperAdmin; +} + +#pragma mark - UITableViewDelegate And UITableViewDataSource +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.datasource.count > 0 ? self.datasource.count : 1; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + if (self.datasource.count > 0) { + YUMIChamberRoleTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIChamberRoleTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIChamberRoleTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIChamberRoleTabulationRegardElement class])]; + } + cell.delegate = self; + cell.member = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + if (indexPath.row == (self.datasource.count -1)) { + cell.burlywoodRegard.hidden = YES; + } else { + cell.burlywoodRegard.hidden = NO; + } + return cell; + } + + YUMIChamberRoleDispossessTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIChamberRoleDispossessTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIChamberRoleDispossessTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIChamberRoleDispossessTabulationRegardElement class])]; + } + + if (self.type == ChamberRoleStatementGenre_Black) { + cell.titleLabel.text = YMLocalizedString(@"YUMI_Room_Role_View_Controller_0"); + } else { + cell.titleLabel.text = YMLocalizedString(@"YUMI_Room_Role_View_Controller_1"); + } + return cell; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + if (self.datasource.count > 0) { + return 55; + } + + return KScreenHeight - kNavigationHeight; +} + +#pragma mark - FBCChamberRoleTabulationViweElementRepresendtation +- (void)yUMIChamberRoleTarbsultowardsionViweElement:(NSString *)view didClickMember:(NIMChatroomMember *)member { + if (self.type == ChamberRoleStatementGenre_Black) { + NIMChatroomMemberUpdateRequest *request = [[NIMChatroomMemberUpdateRequest alloc]init]; + request.roomId = self.roomId; + request.userId = member.userId; + request.enable = NO; + [[NIMSDK sharedSDK].chatroomManager updateMemberBlack:request completion:^(NSError * _Nullable error) { + if (error == nil) { + [self.datasource removeObject:member]; + [self.tableView reloadData]; + } + }]; + } else if(self.type == ChamberRoleStatementGenre_Manager) { + NIMChatroomMemberUpdateRequest *request = [[NIMChatroomMemberUpdateRequest alloc]init]; + request.roomId = self.roomId; + request.userId = member.userId; + request.enable = NO; + [[NIMSDK sharedSDK].chatroomManager markMemberManager:request completion:^(NSError * _Nullable error) { + if (error == nil) { + [self.datasource removeObject:member]; + [self.tableView reloadData]; + } + }]; + } +} + + +#pragma mark - Getters And Setters +- (void)setType:(ChamberRoleStatementGenre)type { + _type = type; + if (_type == ChamberRoleStatementGenre_Black) { + self.title = YMLocalizedString(@"YUMI_Room_Role_View_Controller_2"); + } else { + self.title = YMLocalizedString(@"YUMI_Room_Role_View_Controller_3"); + } + [self chamberChinwagChamberRegularComponentSttowardsement]; +} + +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.tableFooterView = [UIView new]; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.backgroundColor = [UIColor clearColor]; + _tableView.rowHeight = 60; + if (@available(iOS 11.0, *)) { + _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + [_tableView registerClass:[YUMIChamberRoleTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIChamberRoleTabulationRegardElement class])]; + [_tableView registerClass:[YUMIChamberRoleDispossessTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIChamberRoleDispossessTabulationRegardElement class])]; + } + return _tableView; +} + +- (NSMutableArray *)datasource { + if (!_datasource) { + _datasource = [NSMutableArray array]; + } + return _datasource; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/TaskTip/YUMImissionCompleteTipRegard.h b/YuMi/Modules/YMRoom/View/TaskTip/YUMImissionCompleteTipRegard.h new file mode 100644 index 00000000..37e400ed --- /dev/null +++ b/YuMi/Modules/YMRoom/View/TaskTip/YUMImissionCompleteTipRegard.h @@ -0,0 +1,20 @@ +// +// YMTaskCompleteTipView.h +// YUMI +// +// Created by YUMI on 2022/8/2. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMImissionCompleteTipRegard : UIView + +@property (nonatomic, copy) NSString *desc; + +@property (nonatomic, copy) NSString *url; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/TaskTip/YUMImissionCompleteTipRegard.m b/YuMi/Modules/YMRoom/View/TaskTip/YUMImissionCompleteTipRegard.m new file mode 100644 index 00000000..5326231a --- /dev/null +++ b/YuMi/Modules/YMRoom/View/TaskTip/YUMImissionCompleteTipRegard.m @@ -0,0 +1,102 @@ +// +// YMTaskCompleteTipView.m +// YUMI +// +// Created by YUMI on 2022/8/2. +// + +#import "YUMImissionCompleteTipRegard.h" +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" +#import "UIImage+Utils.h" +#import + +@interface YUMImissionCompleteTipRegard() + +@property (nonatomic, strong) UIImageView *mainView; +@property (nonatomic, strong) UILabel *monicerSequencignation; +@property (nonatomic, strong) UILabel *gotoSequencignation; + +@end + + +@implementation YUMImissionCompleteTipRegard + +- (instancetype)initWithFrame:(CGRect)frame { + if (self = [super initWithFrame:frame]) { + [self initSubViews]; + [self initContraints]; + } + return self; +} + +- (void)initSubViews { + [self addSubview:self.mainView]; + [self addSubview:self.monicerSequencignation]; + [self addSubview:self.gotoSequencignation]; +} + +- (void)initContraints { + [self.mainView mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.centerY.mas_equalTo(self); + make.height.mas_equalTo(20); + make.width.mas_equalTo(150); + }]; + [self.monicerSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self); + make.left.mas_equalTo(self.mainView).mas_offset(15); + }]; + [self.gotoSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.monicerSequencignation.mas_right).mas_offset(4); + make.centerY.mas_equalTo(self.mainView); + }]; +} + +- (void)setDesc:(NSString *)desc { + _desc = desc; + if (desc.length) { + self.monicerSequencignation.text = desc; + } +} + +- (void)setUrl:(NSString *)url { + _url = url; +} + +#pragma mark - getter +- (UIImageView *)mainView { + if (!_mainView) { + _mainView = [[UIImageView alloc] init]; + _mainView.layer.cornerRadius = 10; + _mainView.layer.masksToBounds = YES; + _mainView.image = [UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[UIColorFromRGB(0x5FCCE4), UIColorFromRGB(0xE15AFF)] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(150, 20)]; + } + return _mainView; +} + +- (UILabel *)monicerSequencignation { + if (!_monicerSequencignation) { + UILabel *label = [[UILabel alloc] init]; + label.font = [UIFont systemFontOfSize:12]; + label.textColor = UIColorRGBAlpha(0x000000, 0.5); + [label sizeToFit]; + label.text = YMLocalizedString(@"YUMI_Task_Complete_Tip_View_0"); + _monicerSequencignation = label; + } + return _monicerSequencignation; +} + +- (UILabel *)gotoSequencignation { + if (!_gotoSequencignation) { + UILabel *label = [[UILabel alloc] init]; + label.font = [UIFont systemFontOfSize:12]; + label.textColor = [UIColor whiteColor]; + [label sizeToFit]; + label.text = YMLocalizedString(@"YUMI_Task_Complete_Tip_View_1"); + _gotoSequencignation = label; + } + return _gotoSequencignation; +} + + +@end diff --git a/YuMi/Modules/YMRoom/View/ThemeColor+Room.h b/YuMi/Modules/YMRoom/View/ThemeColor+Room.h new file mode 100644 index 00000000..65372e03 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/ThemeColor+Room.h @@ -0,0 +1,40 @@ +// +// ThemeColor+Room.h +// YUMI +// +// Created by zu on 2021/10/27. +// + +#import "DJDKMIMOMColor.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface DJDKMIMOMColor (Room) ++ (UIColor *)chamberOwnerMonicerPrettify; + ++ (UIColor *)chamberOnBurlywoodIdenPrettify; + ++ (UIColor *)polariztowardsionMaleMonicerEncouragePrettify; ++ (UIColor *)polariztowardsionFemaleMonicerEncouragePrettify; ++ (UIColor *)polariztowardsionOrdinaryMonicerEncouragePrettify; ++ (UIColor *)polariztowardsionBossEncourageInititowardsePrettify; ++ (UIColor *)polariztowardsionBossEncourageConcludePrettify; ++ (UIColor *)polariztowardsionMonicerPrettify; ++ (UIColor *)communictowardsionIntumescePrettify; ++ (UIColor *)communictowardsionEssayPrettify; ++ (UIColor *)communictowardsionMonicerPrettify; ++ (UIColor *)communictowardsionDeficiencyEssayPrettify; ++ (UIColor *)communictowardsionRegardPromptPrettify; + ++ (UIColor *)presentBroadcastDigitalPrettify; ++ (UIColor *)presentBroadcastMonicerPrettify; + ++ (UIColor *)confectioneryTimberDiamondPrettify; ++ (UIColor *)confectioneryTimberMonicerPrettify; ++ (UIColor *)confectioneryTimberDividerPrettify; + ++ (UIColor *)brectifynessPresentDigitalPrettify; ++ (UIColor *)chamberFurthaerParrotEssayPrettify; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/ThemeColor+Room.m b/YuMi/Modules/YMRoom/View/ThemeColor+Room.m new file mode 100644 index 00000000..ae295805 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/ThemeColor+Room.m @@ -0,0 +1,92 @@ +// +// ThemeColor+Room.m +// YUMI +// +// Created by zu on 2021/10/27. +// + +#import "ThemeColor+Room.h" + +@implementation DJDKMIMOMColor (Room) + +#pragma mark -房间内相关的颜色 ++ (UIColor *)chamberOwnerMonicerPrettify { + return UIColorFromRGB(0xFFFFFF); +} + ++ (UIColor *)chamberOnBurlywoodIdenPrettify { + return UIColorFromRGB(0x3EFED7); +} + ++ (UIColor *)polariztowardsionMaleMonicerEncouragePrettify { + return UIColorFromRGB(0x3EBBFE); +} + ++ (UIColor *)polariztowardsionFemaleMonicerEncouragePrettify { + return UIColorFromRGB(0xFF5E83); +} + ++ (UIColor *)polariztowardsionMonicerPrettify { + return UIColorFromRGB(0xFFFFFF); +} + + ++ (UIColor *)polariztowardsionOrdinaryMonicerEncouragePrettify { + return [UIColor colorWithWhite:1 alpha:0.2]; +} + ++ (UIColor *)polariztowardsionBossEncourageInititowardsePrettify { + return UIColorFromRGB(0xEFCC95); +} + ++ (UIColor *)polariztowardsionBossEncourageConcludePrettify { + return UIColorFromRGB(0xF1B54D); +} + ++ (UIColor *)communictowardsionIntumescePrettify { + return UIColorRGBAlpha(0xFFFFFF, 0.15); +} ++ (UIColor *)communictowardsionEssayPrettify { + return [UIColor whiteColor]; +} ++ (UIColor *)communictowardsionMonicerPrettify { + return UIColorFromRGB(0xFFD98C); +} ++ (UIColor *)communictowardsionDeficiencyEssayPrettify { + return [UIColor colorWithWhite:1 alpha:0.5]; +} + ++ (UIColor *)communictowardsionRegardPromptPrettify{ + return UIColorRGBAlpha(0xfffffe, 0.5); +} + + ++ (UIColor *)presentBroadcastMonicerPrettify { + return UIColorFromRGB(0xFFFFFF); +} + ++ (UIColor *)presentBroadcastDigitalPrettify { + return UIColorFromRGB(0xFEF563); +} + + ++ (UIColor *)confectioneryTimberDiamondPrettify { + return UIColorFromRGB(0xFFD67E); +} + ++ (UIColor *)confectioneryTimberDividerPrettify { + return UIColorFromRGB(0xEDEDED); +} + ++ (UIColor *)confectioneryTimberMonicerPrettify { + return UIColorFromRGB(0xF8CBFF); +} + ++ (UIColor *)brectifynessPresentDigitalPrettify { + return UIColorFromRGB(0xFFF226); +} + ++ (UIColor *)chamberFurthaerParrotEssayPrettify { + return UIColorFromRGB(0xFFFFFF); +} +@end diff --git a/YuMi/Modules/YMRoom/View/UserCard/Api/Api+UserCard.h b/YuMi/Modules/YMRoom/View/UserCard/Api/Api+UserCard.h new file mode 100644 index 00000000..9e0fe4ad --- /dev/null +++ b/YuMi/Modules/YMRoom/View/UserCard/Api/Api+UserCard.h @@ -0,0 +1,33 @@ +// +// Api+UserCard.h +// YUMI +// +// Created by YUMI on 2021/11/24. +// + +#import "Api.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface Api (UserCard) ++ (void)considertowardsionPositionImplementtowardsion:(HttpRequestHelperCompletion)completion + uid:(NSString *)uid + isLikeUid:(NSString *)isLikeUid; + ++ (void)considertowardsionImplementtowardsion:(HttpRequestHelperCompletion)completion + uid:(NSString *)uid + likedUid:(NSString *)likedUid + ticket:(NSString *)ticket + type:(NSString *)type; + ++ (void)sanitaryMiecreoscoopePresentBWSttess:(HttpRequestHelperCompletion)completion + roomUid:(NSString *)roomUid + micUid:(NSString *)micUid + uid:(NSString *)uid; + ++ (void)chamberEngagementExtractConsumer:(HttpRequestHelperCompletion)completion roomUserId:(NSString *)roomUserId chosenUserId:(NSString *)chosenUserId electorUserId:(NSString *)electorUserId; + ++ (void)senstowardsionalManagementShankConsumer:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid targetUid:(NSString *)targetUid opt:(NSString *)opt isSet:(NSNumber *)isSet; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/UserCard/Api/Api+UserCard.m b/YuMi/Modules/YMRoom/View/UserCard/Api/Api+UserCard.m new file mode 100644 index 00000000..83a34947 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/UserCard/Api/Api+UserCard.m @@ -0,0 +1,40 @@ +// +// Api+UserCard.m +// YUMI +// +// Created by YUMI on 2021/11/24. +// + +#import "Api+UserCard.h" +#import + +@implementation Api (UserCard) + + ++ (void)considertowardsionPositionImplementtowardsion:(HttpRequestHelperCompletion)completion uid:(NSString *)uid isLikeUid:(NSString *)isLikeUid { + NSString * fang = [NSString stringFromBase64String:@"ZmFucy9pc2xpa2U="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion,__FUNCTION__, uid, isLikeUid, nil]; +} + ++ (void)considertowardsionImplementtowardsion:(HttpRequestHelperCompletion)completion uid:(NSString *)uid likedUid:(NSString *)likedUid ticket:(NSString *)ticket type:(NSString *)type { + NSString * fang = [NSString stringFromBase64String:@"ZmFucy9saWtl"]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, uid, likedUid, ticket, type, nil]; +} + + ++ (void)sanitaryMiecreoscoopePresentBWSttess:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid micUid:(NSString *)micUid uid:(NSString *)uid { + NSString * fang = [NSString stringFromBase64String:@"cm9vbS9naWZ0L3ZhbHVlL2NsZWFu"]; + [self manufactureDemand:fang method:HttpRequestHelperMethodDELETE completion:completion, __FUNCTION__, roomUid, micUid, uid, nil]; +} + ++ (void)chamberEngagementExtractConsumer:(HttpRequestHelperCompletion)completion roomUserId:(NSString *)roomUserId chosenUserId:(NSString *)chosenUserId electorUserId:(NSString *)electorUserId { + NSString * fang = [NSString stringFromBase64String:@"YmxpbmQtZGF0ZS9jb25uZWN0aW9u"]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, roomUserId, chosenUserId, electorUserId, nil]; +} + ++ (void)senstowardsionalManagementShankConsumer:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid targetUid:(NSString *)targetUid opt:(NSString *)opt isSet:(NSNumber *)isSet { + NSString * fang = [NSString stringFromBase64String:@"c3VwZXIvc2V0L2NoYXRyb29tL3JvbGU="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, roomUid, targetUid, opt,isSet, nil]; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/UserCard/Model/YUMIConsumerSolitaireAbstractMatrix.h b/YuMi/Modules/YMRoom/View/UserCard/Model/YUMIConsumerSolitaireAbstractMatrix.h new file mode 100644 index 00000000..55906048 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/UserCard/Model/YUMIConsumerSolitaireAbstractMatrix.h @@ -0,0 +1,29 @@ +// +// YMUserCardInfoModel.h +// YUMI +// +// Created by YUMI on 2021/11/26. +// + +#import +#import "ChamberHostRepresendtation.h" +#import "ChamberAbstractMatrix.h" +#import "MiecreoscoopeMHTueueMatrix.h" +#import "UnionSensationalManagementAbstractMatrix.h" +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIConsumerSolitaireAbstractMatrix : NSObject +@property (nonatomic,copy) NSString *uid; +@property (nonatomic,copy) NSString *position; +@property (nonatomic,copy) NSString *nick; +@property (nonatomic, assign) MiecreoscoopePosDeclareGenre posState; +@property (nonatomic, assign) MiecreoscoopeLoudspeakerDeclareGenre micState; +@property (nonatomic,strong) ChamberAbstractMatrix *roomInfo; +@property (nonatomic,strong) NSArray *superMangerList; +@property (nonatomic,strong) NSMutableDictionary *micQueue; +@property (nonatomic, assign) BOOL hideSendGiftItem; +@property (nonatomic,weak) id delegate; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/UserCard/Model/YUMIConsumerSolitaireAbstractMatrix.m b/YuMi/Modules/YMRoom/View/UserCard/Model/YUMIConsumerSolitaireAbstractMatrix.m new file mode 100644 index 00000000..0d909abd --- /dev/null +++ b/YuMi/Modules/YMRoom/View/UserCard/Model/YUMIConsumerSolitaireAbstractMatrix.m @@ -0,0 +1,12 @@ +// +// YMUserCardInfoModel.m +// YUMI +// +// Created by YUMI on 2021/11/26. +// + +#import "YUMIConsumerSolitaireAbstractMatrix.h" + +@implementation YUMIConsumerSolitaireAbstractMatrix + +@end diff --git a/YuMi/Modules/YMRoom/View/UserCard/Model/YUMIConsumerSolitaireMiecreoscoopeProvisionMatrix.h b/YuMi/Modules/YMRoom/View/UserCard/Model/YUMIConsumerSolitaireMiecreoscoopeProvisionMatrix.h new file mode 100644 index 00000000..6497904b --- /dev/null +++ b/YuMi/Modules/YMRoom/View/UserCard/Model/YUMIConsumerSolitaireMiecreoscoopeProvisionMatrix.h @@ -0,0 +1,28 @@ +// +// YMUserCardMicroItemModel.h +// YUMI +// +// Created by YUMI on 2021/11/26. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +typedef NS_ENUM(NSInteger, ConsumerSolitaireMiecreoscoopeGenre) { + + ConsumerSolitaireMiecreoscoopeGenre_Mute = 1, + + ConsumerSolitaireMiecreoscoopeGenre_UpDown, + + ConsumerSolitaireMiecreoscoopeGenre_Lock, + + ConsumerSolitaireMiecreoscoopeGenre_Clean_Gift_Value +}; + +@interface YUMIConsumerSolitaireMiecreoscoopeProvisionMatrix : NSObject +@property (nonatomic,copy) NSString *title; +@property (nonatomic,assign) ConsumerSolitaireMiecreoscoopeGenre type; +@property (nonatomic,assign) BOOL status; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/UserCard/Model/YUMIConsumerSolitaireMiecreoscoopeProvisionMatrix.m b/YuMi/Modules/YMRoom/View/UserCard/Model/YUMIConsumerSolitaireMiecreoscoopeProvisionMatrix.m new file mode 100644 index 00000000..987595b3 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/UserCard/Model/YUMIConsumerSolitaireMiecreoscoopeProvisionMatrix.m @@ -0,0 +1,12 @@ +// +// YMUserCardMicroItemModel.m +// YUMI +// +// Created by YUMI on 2021/11/26. +// + +#import "YUMIConsumerSolitaireMiecreoscoopeProvisionMatrix.h" + +@implementation YUMIConsumerSolitaireMiecreoscoopeProvisionMatrix + +@end diff --git a/YuMi/Modules/YMRoom/View/UserCard/Model/YUMIConsumerSolitaireProvisionMatrix.h b/YuMi/Modules/YMRoom/View/UserCard/Model/YUMIConsumerSolitaireProvisionMatrix.h new file mode 100644 index 00000000..b4ae54ad --- /dev/null +++ b/YuMi/Modules/YMRoom/View/UserCard/Model/YUMIConsumerSolitaireProvisionMatrix.h @@ -0,0 +1,43 @@ +// +// YMUserCardItemModel.h +// YUMI +// +// Created by YUMI on 2021/11/24. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +typedef NS_ENUM(NSUInteger, ConsumerSolitaireProvisionGenre){ + ConsumerSolitaireProvisionGenre_Gift = 1, + + ConsumerSolitaireProvisionGenre_Chat = 2, + + ConsumerSolitaireProvisionGenre_Attention = 3, + + ConsumerSolitaireProvisionGenre_Manager = 4, + + ConsumerSolitaireProvisionGenre_Black = 5, + + ConsumerSolitaireProvisionGenre_KickOut = 6, + + ConsumerSolitaireProvisionGenre_Invite_Micro = 7, + + ConsumerSolitaireProvisionGenre_AtUser = 8, +}; + + +@interface YUMIConsumerSolitaireProvisionMatrix : NSObject + +@property (nonatomic,copy) NSString *imageName; +@property (nonatomic,copy) NSString *selectImageName; +@property (nonatomic,copy) NSString *title; +@property (nonatomic,copy) NSString *selectTitle; +@property (nonatomic,assign) ConsumerSolitaireProvisionGenre type; +@property (nonatomic,assign) BOOL isSelect; +@property (nonatomic,copy) NSString *position; +@property (nonatomic,assign) BOOL isEnable; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/UserCard/Model/YUMIConsumerSolitaireProvisionMatrix.m b/YuMi/Modules/YMRoom/View/UserCard/Model/YUMIConsumerSolitaireProvisionMatrix.m new file mode 100644 index 00000000..e21e8c1e --- /dev/null +++ b/YuMi/Modules/YMRoom/View/UserCard/Model/YUMIConsumerSolitaireProvisionMatrix.m @@ -0,0 +1,19 @@ +// +// YMUserCardItemModel.m +// YUMI +// +// Created by YUMI on 2021/11/24. +// + +#import "YUMIConsumerSolitaireProvisionMatrix.h" + +@implementation YUMIConsumerSolitaireProvisionMatrix + +- (instancetype)init { + if (self = [super init]) { + self.isEnable = YES; + } + return self; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/UserCard/Presenter/YUMIConsumerSolitaireExternalizer.h b/YuMi/Modules/YMRoom/View/UserCard/Presenter/YUMIConsumerSolitaireExternalizer.h new file mode 100644 index 00000000..a5f6e6e0 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/UserCard/Presenter/YUMIConsumerSolitaireExternalizer.h @@ -0,0 +1,45 @@ +// +// YMUserCardPresenter.h +// YUMI +// +// Created by YUMI on 2021/11/24. +// + +#import "BaseMvpExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN +@class YUMIConsumerSolitaireAbstractMatrix, ConsumerAbstractMatrix; +@interface YUMIConsumerSolitaireExternalizer : BaseMvpExternalizer +- (void)getUserInfo:(NSString *)uid; + +- (void)acquireObligtowardsionProvisionsByConsumerAbstract:(YUMIConsumerSolitaireAbstractMatrix *)userInfo; + +- (void)acquireMiecreoscoopeObligtowardsionProvisionsByConsumerAbstract:(YUMIConsumerSolitaireAbstractMatrix *)userInfo; + +- (void)acquireChamberMiecreoscoopeProvisions:(int)micCount automobiledAbstract:(YUMIConsumerSolitaireAbstractMatrix *)automobiledAbstract; + +- (void)considertowardsionConsumer:(NSString *)targetUid status:(BOOL)status; + +- (void)manufactureConsumerDenigrtowardse:(NSString *)targetUid roomId:(NSString *)roomId; + +- (void)manufactureConsumerExecutive:(NSString *)targetUid roomId:(NSString *)roomId enable:(BOOL)enable; + +- (void)manufactureAbandonConsumer:(NSString *)targetUid roomId:(NSString *)roomId; + +- (void)senstowardsionalManagementAbandonConsumer:(NSString *)targetNick automobiledAbstract:(YUMIConsumerSolitaireAbstractMatrix *)automobiledAbstract; +- (void)miecreoscoopeSpoke:(NSString *)roomUid state:(BOOL)state position:(NSString *)position; + +- (void)miecreoscoopeBretowardshaed:(NSString *)roomUid state:(BOOL)state position:(NSString *)position; + +- (void)kickPubescenceMiecreoscoope:(NSString *)position roomId:(NSString *)roomId; + +- (void)upMiecreoscoope:(NSString *)roomId position:(NSString *)position userInfo:(ConsumerAbstractMatrix *)userInfo; + +- (void)sanitaryConsumerPresentBWSttess:(NSString *)roomUid micUid:(NSString *)micUid; + +- (void)extractCourageConsumer:(NSString *)roomUid chosenUserId:(NSString *)chosenUserId; + +- (void)senstowardsionalManagementShankConsumer:(NSString *)targetUid opt:(NSString *)opt roomUid:(NSString *)roomUid isSet:(BOOL)isSet; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/UserCard/Presenter/YUMIConsumerSolitaireExternalizer.m b/YuMi/Modules/YMRoom/View/UserCard/Presenter/YUMIConsumerSolitaireExternalizer.m new file mode 100644 index 00000000..6d7f5538 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/UserCard/Presenter/YUMIConsumerSolitaireExternalizer.m @@ -0,0 +1,621 @@ +// +// YMUserCardPresenter.m +// YUMI +// +// Created by YUMI on 2021/11/24. +// + +#import "YUMIConsumerSolitaireExternalizer.h" +#import +#import +#import "Api+UserCard.h" +#import "AccountAbstractStorage.h" +#import "ConsumerAbstractMatrix.h" +#import "YUMIConsumerSolitaireProvisionMatrix.h" +#import "YUMIConsumerSolitaireAbstractMatrix.h" +#import "YUMIConsumerSolitaireMiecreoscoopeProvisionMatrix.h" +#import "XCombatickConsumerMatrix.h" +#import "AttachmentMatrix.h" +#import "FBCConsumerSolitaireCeremony.h" + +@interface YUMIConsumerSolitaireExternalizer () +@property (nonatomic,strong) YUMIConsumerSolitaireProvisionMatrix *presentProvision; +@property (nonatomic,strong) YUMIConsumerSolitaireProvisionMatrix *chinwagProvision; +@property (nonatomic,strong) YUMIConsumerSolitaireProvisionMatrix *considerationProvision; +@property (nonatomic,strong) YUMIConsumerSolitaireProvisionMatrix *executiveProvision; +@property (nonatomic,strong) YUMIConsumerSolitaireProvisionMatrix *kikoutProvision; +@property (nonatomic,strong) YUMIConsumerSolitaireProvisionMatrix *blackProvision; +@property (nonatomic, strong) YUMIConsumerSolitaireProvisionMatrix *atProvision; +@property (nonatomic,strong) NSMutableArray * functionGarment; +@end + +@implementation YUMIConsumerSolitaireExternalizer + +- (void)getUserInfo:(NSString *)uid { + if (uid == nil) { + return; + } + [Api getUserInfo:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + ConsumerAbstractMatrix * infoMatrix = [ConsumerAbstractMatrix mtowardsrixAboutImpactbasket:data.data]; + [[self acquireRegard] dwellEarnConsumerAbstractAccomplishment:infoMatrix]; + }] uid:uid]; +} + + +- (void)consumerConsidertowardsionPosition:(NSString *)uid targetUid:(NSString *)targetUid { + [Api considertowardsionPositionImplementtowardsion:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + BOOL isLike = ((NSNumber *)data.data).boolValue; + self.considerationProvision.isSelect = isLike; + [[self acquireRegard] dwellEarnObligtowardsionGarmentSccess:self.functionGarment]; + }] uid:uid isLikeUid:targetUid]; +} + + +- (void)acquireObligtowardsionProvisionsByConsumerAbstract:(YUMIConsumerSolitaireAbstractMatrix *)userInfo{ + NSString * uid = [[AccountAbstractStorage instance] acquireCid]; + NSString * targetUid = userInfo.uid; + NSString * roomId = [NSString stringWithFormat:@"%ld", userInfo.roomInfo.roomId]; + if ([uid isEqualToString:targetUid]) { + return; + } else { + [self.functionGarment removeAllObjects]; + if (!userInfo.hideSendGiftItem) { + [self.functionGarment addObject:self.presentProvision]; + } + [self.functionGarment addObject:self.chinwagProvision]; + [self.functionGarment addObject:self.atProvision]; + [self.functionGarment addObject:self.considerationProvision]; + + [self consumerConsidertowardsionPosition:uid targetUid:targetUid]; + + BOOL meIsSensationalManagement = NO; + + BOOL heIsSuperAdmin = NO; + for (UnionSensationalManagementAbstractMatrix *executiveAbstract in userInfo.superMangerList) { + if ([executiveAbstract.uid isEqualToString:userInfo.uid]) { + heIsSuperAdmin = YES; + } + if ([executiveAbstract.uid isEqualToString:[AccountAbstractStorage instance].acquireCid]) { + meIsSensationalManagement = YES; + } + } + @weakify(self); + if (meIsSensationalManagement) { + if (heIsSuperAdmin) { + [[self acquireRegard] dwellEarnObligtowardsionGarmentSccess:self.functionGarment]; + } else { + + [[self rac_queryChinwagChamberComponent:targetUid roomId:roomId] subscribeNext:^(id _Nullable x) { + NIMChatroomMember * targetMember = x; + if (targetMember == nil) {return;} + if (targetMember.type == NIMChatroomMemberTypeCreator) { + [[self acquireRegard] dwellEarnObligtowardsionGarmentSccess:self.functionGarment]; + } else { + if (targetMember && targetMember.type == NIMChatroomMemberTypeManager) { + self.executiveProvision.isSelect = YES; + } + [self.functionGarment addObject:self.executiveProvision]; + [self.functionGarment addObject:self.kikoutProvision]; + [self.functionGarment addObject:self.blackProvision]; + [[self acquireRegard] dwellEarnObligtowardsionGarmentSccess:self.functionGarment]; + } + }]; + } + } else { + [[self rac_queryChinwagChamberComponent:uid roomId:roomId] subscribeNext:^(id _Nullable x) { + @strongify(self); + NIMChatroomMember * member = x; + if (member == nil) {return;} + if (member.type == NIMChatroomMemberTypeCreator) { + if (heIsSuperAdmin) { + [[self acquireRegard] dwellEarnObligtowardsionGarmentSccess:self.functionGarment]; + } else { + [self.functionGarment addObject:self.kikoutProvision]; + [self.functionGarment addObject:self.executiveProvision]; + [self.functionGarment addObject:self.blackProvision]; + + [[self rac_queryChinwagChamberComponent:targetUid roomId:roomId] subscribeNext:^(id _Nullable x) { + NIMChatroomMember * targetMember = x; + if (targetMember && targetMember.type == NIMChatroomMemberTypeManager) { + self.executiveProvision.isSelect = YES; + } + [[self acquireRegard] dwellEarnObligtowardsionGarmentSccess:self.functionGarment]; + }]; + } + } else if(member.type == NIMChatroomMemberTypeManager) { + + [[self rac_queryChinwagChamberComponent:targetUid roomId:roomId] subscribeNext:^(id _Nullable x) { + NIMChatroomMember * targetMember = x; + if (targetMember == nil) {return;} + if (targetMember.type == NIMChatroomMemberTypeManager || targetMember.type == NIMChatroomMemberTypeCreator || heIsSuperAdmin) { + [[self acquireRegard] dwellEarnObligtowardsionGarmentSccess:self.functionGarment]; + } else { + [self.functionGarment addObject:self.kikoutProvision]; + [self.functionGarment addObject:self.blackProvision]; + [[self acquireRegard] dwellEarnObligtowardsionGarmentSccess:self.functionGarment]; + } + }]; + } else { + [[self acquireRegard] dwellEarnObligtowardsionGarmentSccess:self.functionGarment]; + } + }]; + } + } +} + +- (void)acquireChamberMiecreoscoopeProvisions:(int)micCount automobiledAbstract:(YUMIConsumerSolitaireAbstractMatrix *)automobiledAbstract { + [self.functionGarment removeAllObjects]; + ChamberAbstractMatrix * roomInfo = automobiledAbstract.roomInfo; + NSMutableDictionary * micQueue = automobiledAbstract.micQueue; + for (int i = 0; i < micCount; i++) { + YUMIConsumerSolitaireProvisionMatrix * item = [[YUMIConsumerSolitaireProvisionMatrix alloc] init]; + item.type = ConsumerSolitaireProvisionGenre_Invite_Micro; + if (i == 0) { + item.title = roomInfo.roomModeType == ChamberModeGenre_Open_Blind ? @"主持位" : YMLocalizedString(@"YUMI_User_Card_Presenter_1"); + item.imageName = roomInfo.leaveMode ? @"usercard_invite_micro_owner_disable" : @"usercard_invite_micro_owner"; + if (roomInfo.leaveMode) { + item.isEnable = NO; + } + } else { + if (roomInfo.roomModeType == ChamberModeGenre_Open_Blind) { + if (i == 1 || i == 2 || i == 5 || i == 6) { + item.title = [NSString stringWithFormat:YMLocalizedString(@"YUMI_User_Card_Presenter_2"), i]; + } else{ + item.title = [NSString stringWithFormat:YMLocalizedString(@"YUMI_User_Card_Presenter_3"), i]; + } + } else { + item.title = [NSString stringWithFormat:YMLocalizedString(@"YUMI_User_Card_Presenter_4"), i]; + } + + } + MiecreoscoopeMHTueueMatrix * micModel = [micQueue objectForKey:[NSString stringWithFormat:@"%d", i -1]]; + if (micModel && micModel.userInfo && micModel.userInfo.uid > 0) { + item.isEnable = NO; + item.imageName = @"usercard_invite_micro_disable"; + } else { + item.isEnable = YES; + item.imageName = @"usercard_invite_micro_normal"; + } + item.position = [NSString stringWithFormat:@"%d", (i - 1)]; + [self.functionGarment addObject:item]; + } + [[self acquireRegard] dwellEarnObligtowardsionGarmentSccess:self.functionGarment]; +} + +- (void)acquireMiecreoscoopeObligtowardsionProvisionsByConsumerAbstract:(YUMIConsumerSolitaireAbstractMatrix *)userInfo { + NSString * uid = [[AccountAbstractStorage instance] acquireCid]; + NSString * targetUid = userInfo.uid; + ChamberAbstractMatrix * roomInfo = userInfo.roomInfo; + NSString * roomId = [NSString stringWithFormat:@"%ld", userInfo.roomInfo.roomId]; + MiecreoscoopeMHTueueMatrix * micQueue = [userInfo.micQueue objectForKey:userInfo.position]; + NSMutableArray * array = [NSMutableArray array]; + YUMIConsumerSolitaireMiecreoscoopeProvisionMatrix * muteItem = [[YUMIConsumerSolitaireMiecreoscoopeProvisionMatrix alloc] init]; + muteItem.title = userInfo.micState == MiecreoscoopeLoudspeakerDeclareGenre_Open ? @"闭麦" : YMLocalizedString(@"YUMI_User_Card_Presenter_6"); + muteItem.status = userInfo.micState == MiecreoscoopeLoudspeakerDeclareGenre_Open; + muteItem.type = ConsumerSolitaireMiecreoscoopeGenre_Mute; + + YUMIConsumerSolitaireMiecreoscoopeProvisionMatrix * upDownItem = [[YUMIConsumerSolitaireMiecreoscoopeProvisionMatrix alloc] init]; + upDownItem.title = userInfo.position.length <= 0 ? @"抱Ta上麦" : [uid isEqualToString:targetUid] ? @"下麦旁听" : YMLocalizedString(@"YUMI_User_Card_Presenter_9"); + upDownItem.status = userInfo.position.length > 0 ? YES : NO; + upDownItem.type = ConsumerSolitaireMiecreoscoopeGenre_UpDown; + + YUMIConsumerSolitaireMiecreoscoopeProvisionMatrix * lockItem = [[YUMIConsumerSolitaireMiecreoscoopeProvisionMatrix alloc] init]; + lockItem.title = userInfo.posState == MiecreoscoopePosDeclareGenre_Free ? @"锁麦" : YMLocalizedString(@"YUMI_User_Card_Presenter_11"); + lockItem.status = userInfo.posState == MiecreoscoopePosDeclareGenre_Free; + lockItem.type = ConsumerSolitaireMiecreoscoopeGenre_Lock; + + YUMIConsumerSolitaireMiecreoscoopeProvisionMatrix * giftValueItem = [[YUMIConsumerSolitaireMiecreoscoopeProvisionMatrix alloc] init]; + giftValueItem.title = YMLocalizedString(@"YUMI_User_Card_Presenter_12"); + giftValueItem.type = ConsumerSolitaireMiecreoscoopeGenre_Clean_Gift_Value; + + BOOL meIsSensationalManagement = NO; + + BOOL heIsSuperAdmin = NO; + for (UnionSensationalManagementAbstractMatrix *executiveAbstract in userInfo.superMangerList) { + if ([executiveAbstract.uid isEqualToString:userInfo.uid]) { + heIsSuperAdmin = YES; + } + if ([executiveAbstract.uid isEqualToString:[AccountAbstractStorage instance].acquireCid]) { + meIsSensationalManagement = YES; + } + } + if ([targetUid isEqualToString:uid]) { + @weakify(self); + [[self rac_queryChinwagChamberComponent:targetUid roomId:roomId] subscribeNext:^(id _Nullable x) { + @strongify(self); + NIMChatroomMember * member = x; + if (member == nil) {return;} + if (userInfo.roomInfo.type == ChamberGenre_Anchor) { + if (member.type == NIMChatroomMemberTypeCreator) { + [array addObject:muteItem]; + [array addObject:lockItem]; + if (roomInfo.showGiftValue) { + [array addObject:giftValueItem]; + } + } else if(member.type == NIMTeamMemberTypeManager || meIsSensationalManagement) { + [array addObject:muteItem]; + if (userInfo.position.length > 0) { + [array addObject:upDownItem]; + } + [array addObject:lockItem]; + if (userInfo.roomInfo.type == ChamberGenre_Anchor && userInfo.roomInfo.roomModeType == ChamberModeGenre_Open_AcrossRoomPK_mode) { + [array removeAllObjects]; + } + } else { + if (userInfo.position.length > 0) { + [array addObject:upDownItem]; + } + if (userInfo.roomInfo.type == ChamberGenre_Anchor && userInfo.roomInfo.roomModeType == ChamberModeGenre_Open_AcrossRoomPK_mode) { + [array removeAllObjects]; + } + } + } else { + if (member.type == NIMChatroomMemberTypeCreator || member.type == NIMChatroomMemberTypeManager || meIsSensationalManagement) { + if (userInfo.roomInfo.leaveMode && userInfo.uid.integerValue == userInfo.roomInfo.uid && [userInfo.position isEqualToString:@"-1"]) { + [array addObject:muteItem]; + [array addObject:upDownItem]; + [array addObject:lockItem]; + if (roomInfo.showGiftValue) { + [array addObject:giftValueItem]; + } + } else { + if (userInfo.position.length > 0) { + [array addObject:muteItem]; + [array addObject:upDownItem]; + if (![userInfo.position isEqualToString:@"999"]) { + [array addObject:lockItem]; + } + if (roomInfo.showGiftValue) { + [array addObject:giftValueItem]; + } + } else { + [array addObject:upDownItem]; + } + } + } else { + if (userInfo.position.length > 0) { + [array addObject:upDownItem]; + } + } + } + [[self acquireRegard] dwellEarnMiecreoscoopeObligtowardsionGarmentAccomplishment:array]; + }]; + } else { + @weakify(self); + [[self rac_queryChinwagChamberComponent:uid roomId:roomId] subscribeNext:^(id _Nullable x) { + @strongify(self); + NIMChatroomMember * member = x; + if (member == nil) {return;} + if (member.type == NIMChatroomMemberTypeCreator) { + if (userInfo.position.length > 0) { + if (micQueue.userInfo.vipMic) { + [array addObject:muteItem]; + if (roomInfo.showGiftValue) { + [array addObject:giftValueItem]; + } + } else { + [array addObject:muteItem]; + [array addObject:upDownItem]; + [array addObject:lockItem]; + if (userInfo.roomInfo.type != ChamberGenre_Anchor) { + if (roomInfo.showGiftValue) { + [array addObject:giftValueItem]; + } + } + } + } else { + [array addObject:upDownItem]; + } + if (userInfo.roomInfo.type == ChamberGenre_Anchor && userInfo.roomInfo.roomModeType == ChamberModeGenre_Open_AcrossRoomPK_mode) { + [array removeAllObjects]; + } + [[self acquireRegard] dwellEarnMiecreoscoopeObligtowardsionGarmentAccomplishment:array]; + } else if(member.type == NIMChatroomMemberTypeManager || meIsSensationalManagement) { + [[self rac_queryChinwagChamberComponent:targetUid roomId:roomId] subscribeNext:^(id _Nullable x) { + NIMChatroomMember * targetMember = x; + if (targetMember == nil) {return;} + if (userInfo.roomInfo.type == ChamberGenre_Anchor) { + if (userInfo.position.length > 0) { + if (targetMember.type != NIMChatroomMemberTypeManager && targetMember.type != NIMChatroomMemberTypeCreator) { + [array addObject:muteItem]; + } + if (targetMember.type != NIMChatroomMemberTypeCreator) { + [array addObject:upDownItem]; + } + [array addObject:lockItem]; + } + + if (userInfo.uid.integerValue == userInfo.roomInfo.uid && [userInfo.position isEqualToString:@"-1"]) { + [array addObject:giftValueItem]; + } + + } else { + if (targetMember.type == NIMChatroomMemberTypeCreator) { + if (userInfo.position.length > 0) { + if (!micQueue.userInfo.vipMic) { + [array addObject:lockItem]; + } + } else { + [array addObject:upDownItem]; + } + if (roomInfo.showGiftValue) { + [array addObject:giftValueItem]; + } + } else { + if (userInfo.position.length > 0) { + if (targetMember.type != NIMChatroomMemberTypeManager) { + [array addObject:muteItem]; + } + if (!micQueue.userInfo.vipMic) { + [array addObject:upDownItem]; + [array addObject:lockItem]; + } + if (roomInfo.showGiftValue) { + [array addObject:giftValueItem]; + } + } else { + [array addObject:upDownItem]; + } + } + } + if (userInfo.roomInfo.type == ChamberGenre_Anchor && userInfo.roomInfo.roomModeType == ChamberModeGenre_Open_AcrossRoomPK_mode) { + [array removeAllObjects]; + } + [[self acquireRegard] dwellEarnMiecreoscoopeObligtowardsionGarmentAccomplishment:array]; + }]; + } + }]; + } +} + +- (void)considertowardsionConsumer:(NSString *)targetUid status:(BOOL)status { + NSString * uid = [[AccountAbstractStorage instance] acquireCid]; + NSString * ticket = [[AccountAbstractStorage instance] acquireTicket]; + NSString * type = status ? @"1" : @"2"; + [Api considertowardsionImplementtowardsion:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + self.considerationProvision.isSelect = status; + [[self acquireRegard] considertowardsionConsumerAccomplishment:self.considerationProvision]; + }] uid:uid likedUid:targetUid ticket:ticket type:type]; +} + + +- (void)manufactureConsumerDenigrtowardse:(NSString *)targetUid roomId:(NSString *)roomId{ + NIMChatroomMemberUpdateRequest *request = [[NIMChatroomMemberUpdateRequest alloc]init]; + request.roomId = roomId; + request.userId = targetUid; + request.enable = YES; + [[NIMSDK sharedSDK].chatroomManager updateMemberBlack:request completion:^(NSError * _Nullable error) { + [[self acquireRegard] manufactureConsumerDenigrtowardseAccomplish:error]; + }]; +} + + +- (void)manufactureConsumerExecutive:(NSString *)targetUid roomId:(NSString *)roomId enable:(BOOL)enable{ + NIMChatroomMemberUpdateRequest *request = [[NIMChatroomMemberUpdateRequest alloc]init]; + request.roomId = roomId; + request.userId = targetUid; + request.enable = enable; + [[NIMSDK sharedSDK].chatroomManager markMemberManager:request completion:^(NSError * _Nullable error) { + if (error == nil) { + self.executiveProvision.isSelect = enable; + } + [[self acquireRegard] markConsumerExecutiveAccomplish:self.executiveProvision error:error]; + }]; +} + + +- (void)manufactureAbandonConsumer:(NSString *)targetUid roomId:(NSString *)roomId { + NSString * uid = [[AccountAbstractStorage instance] acquireCid]; + NIMChatroomMemberKickRequest *request = [[NIMChatroomMemberKickRequest alloc] init]; + request.roomId = roomId; + request.userId = targetUid; + request.notifyExt = [@{@"reason":@"kick",@"account":targetUid,@"handleUid":uid} toJSONBWSttr]; + [[NIMSDK sharedSDK].chatroomManager kickMember:request completion:^(NSError * _Nullable error) { + [[self acquireRegard] manufactureAbandonConsumerAccomplish:error]; + }]; +} + +- (void)senstowardsionalManagementAbandonConsumer:(NSString *)targetNick automobiledAbstract:(YUMIConsumerSolitaireAbstractMatrix *)automobiledAbstract { + NSString * targetUid = automobiledAbstract.uid; + NSString * roomId = [NSString stringWithFormat:@"%ld", automobiledAbstract.roomInfo.roomId]; + [[self rac_queryChinwagChamberComponent:targetUid roomId:roomId] subscribeNext:^(id _Nullable x) { + NIMChatroomMember * member = x; + if (member == nil) {return;} + if (member.type == NIMChatroomMemberTypeManager) { + XCombatickConsumerMatrix *notifyModel = [[XCombatickConsumerMatrix alloc] init]; + notifyModel.handleNick = automobiledAbstract.nick; + notifyModel.handleUid = [AccountAbstractStorage instance].acquireCid.integerValue; + notifyModel.targetUid = automobiledAbstract.uid.integerValue; + notifyModel.targetNick = targetNick; + AttachmentMatrix *attachment = [[AttachmentMatrix alloc] init]; + attachment.first = IndividualityCommunicationGenre_Hall_Super_Admin; + attachment.second = Custom_Message_Sub_Hall_Super_Admin_Kick_Manager_Out_Room; + attachment.data = [notifyModel mtowardsrix2dictionary]; + NSString * sessionId = [NSString stringWithFormat:@"%ld", automobiledAbstract.roomInfo.roomId]; + NIMMessage *message = [[NIMMessage alloc]init]; + NIMCustomObject *object = [[NIMCustomObject alloc] init]; + object.attachment = attachment; + message.messageObject = object; + + NIMSession *session = [NIMSession session:sessionId type:NIMSessionTypeChatroom]; + NSError * error; + [[NIMSDK sharedSDK].chatManager sendMessage:message toSession:session error:&error]; + [[self acquireRegard] senstowardsionalManagementAbandonConsumerAccomplish:error]; + } else { + [self manufactureAbandonConsumer:automobiledAbstract.uid roomId:roomId]; + } + }]; +} + +- (void)miecreoscoopeBretowardshaed:(NSString *)roomUid state:(BOOL)state position:(NSString *)position { + NSString * uid = [[AccountAbstractStorage instance] acquireCid]; + NSString * ticket = [[AccountAbstractStorage instance] acquireTicket]; + NSString * stateStr = state ? @"1" : @"0"; + [Api miecreoscoopeBretowardshaedImplementtowardsion:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] muteMiecreoscoopeSusccess]; + }] roomUid:roomUid state:stateStr position:position ticket:ticket uid:uid]; +} + +- (void)miecreoscoopeSpoke:(NSString *)roomUid state:(BOOL)state position:(NSString *)position { + NSString * uid = [[AccountAbstractStorage instance] acquireCid]; + NSString * ticket = [[AccountAbstractStorage instance] acquireTicket]; + NSString * stateStr = state ? @"1" : @"0"; + [Api miecreoscoopeSpokeImplementtowardsion:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] lockMiecreoscoopeSusccess]; + }] roomUid:roomUid state:stateStr position:position ticket:ticket uid:uid]; +} + +- (void)kickPubescenceMiecreoscoope:(NSString *)position roomId:(NSString *)roomId { + NIMChatroomQueueRemoveRequest *request = [[NIMChatroomQueueRemoveRequest alloc]init]; + request.key = position; + request.roomId = roomId; + [[NIMSDK sharedSDK].chatroomManager removeChatroomQueueObject:request completion:^(NSError * _Nullable error, NSDictionary * _Nullable element) { + if (error == nil ) { + [[self acquireRegard] kickPubescenceMiecreoscoopeAccomplishment]; + } + }]; +} + + +- (void)upMiecreoscoope:(NSString *)roomId position:(NSString *)position userInfo:(ConsumerAbstractMatrix *)userInfo { + NIMChatroomQueueUpdateRequest *request = [[NIMChatroomQueueUpdateRequest alloc]init]; + request.key = position; + request.value = [userInfo toJSONBWSttr]; + request.roomId = roomId; + request.transient = YES; + [[NIMSDK sharedSDK].chatroomManager updateChatroomQueueObject:request completion:^(NSError * _Nullable error) { + if (error == nil) { + [[self acquireRegard] upMiecreoscoopeAccomplishment]; + } + }]; +} + + +- (void)sanitaryConsumerPresentBWSttess:(NSString *)roomUid micUid:(NSString *)micUid { + NSString * uid = [[AccountAbstractStorage instance] acquireCid]; + [Api sanitaryMiecreoscoopePresentBWSttess:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] sanitaryConsumerPresentBWSttessAccomplishment:data.data]; + }] roomUid:roomUid micUid:micUid uid:uid]; +} + + +- (void)extractCourageConsumer:(NSString *)roomUid chosenUserId:(NSString *)chosenUserId { + NSString * uid = [[AccountAbstractStorage instance] acquireCid]; + [Api chamberEngagementExtractConsumer:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] chamberEngagementExtractCourageConsumerAccomplishment]; + }] roomUserId:roomUid chosenUserId:chosenUserId electorUserId:uid]; +} + + +- (void)senstowardsionalManagementShankConsumer:(NSString *)targetUid opt:(NSString *)opt roomUid:(NSString *)roomUid isSet:(BOOL)isSet{ + [Api senstowardsionalManagementShankConsumer:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] senstowardsionalManagementShankConsumerAccomplishment:opt]; + }] roomUid:roomUid targetUid:targetUid opt:opt isSet:@(isSet)]; +} + +#pragma mark - Private Method +- (RACSignal *)rac_queryChinwagChamberComponent:(NSString *)uid roomId:(NSString *)roomId{ + return [RACSignal createSignal:^RACDisposable *(id subscriber) { + NIMChatroomMembersByIdsRequest *request = [[NIMChatroomMembersByIdsRequest alloc]init]; + request.roomId = roomId; + request.userIds = @[uid]; + [[NIMSDK sharedSDK].chatroomManager fetchChatroomMembersByIds:request completion:^(NSError * _Nullable error, NSArray * _Nullable members) { + if (error == nil) { + [subscriber sendNext:members.firstObject]; + [subscriber sendCompleted]; + }else { + [subscriber sendNext:nil]; + [subscriber sendCompleted]; + } + }]; + return nil; + }]; +} + +#pragma mark - Getters And Setters +- (NSMutableArray *)functionGarment { + if (!_functionGarment) { + _functionGarment = [NSMutableArray array]; + } + return _functionGarment; +} + +- (YUMIConsumerSolitaireProvisionMatrix *)presentProvision { + if (!_presentProvision) { + _presentProvision = [[YUMIConsumerSolitaireProvisionMatrix alloc] init]; + _presentProvision.title = YMLocalizedString(@"YUMI_User_Card_Presenter_13"); + _presentProvision.imageName = @"usercard_sendgift_normal"; + _presentProvision.selectImageName = @"usercard_sendgift_normal"; + _presentProvision.type = ConsumerSolitaireProvisionGenre_Gift; + } + return _presentProvision; +} + +- (YUMIConsumerSolitaireProvisionMatrix *)chinwagProvision { + if (!_chinwagProvision) { + _chinwagProvision = [[YUMIConsumerSolitaireProvisionMatrix alloc] init]; + _chinwagProvision.title = YMLocalizedString(@"YUMI_User_Card_Presenter_14"); + _chinwagProvision.imageName = @"usercard_chat_normal"; + _chinwagProvision.selectImageName = @"usercard_chat_normal"; + _chinwagProvision.type = ConsumerSolitaireProvisionGenre_Chat; + } + return _chinwagProvision; +} + +- (YUMIConsumerSolitaireProvisionMatrix *)atProvision { + if (!_atProvision) { + _atProvision = [[YUMIConsumerSolitaireProvisionMatrix alloc] init]; + _atProvision.title = @"@TA"; + _atProvision.imageName = @"usercard_chat_normal"; + _atProvision.selectImageName = @"usercard_chat_normal"; + _atProvision.type = ConsumerSolitaireProvisionGenre_AtUser; + } + return _atProvision; +} + +- (YUMIConsumerSolitaireProvisionMatrix *)considerationProvision { + if (!_considerationProvision) { + _considerationProvision = [[YUMIConsumerSolitaireProvisionMatrix alloc] init]; + _considerationProvision.title = @"关注Ta"; + _considerationProvision.imageName = @"usercard_attention_normal"; + _considerationProvision.selectTitle = YMLocalizedString(@"YUMI_User_Card_Presenter_16"); + _considerationProvision.selectImageName = @"usercard_attention_disable"; + _considerationProvision.type = ConsumerSolitaireProvisionGenre_Attention; + } + return _considerationProvision; +} + +- ( YUMIConsumerSolitaireProvisionMatrix *)kikoutProvision { + if (!_kikoutProvision) { + _kikoutProvision = [[YUMIConsumerSolitaireProvisionMatrix alloc] init]; + _kikoutProvision.title = YMLocalizedString(@"YUMI_User_Card_Presenter_17"); + _kikoutProvision.imageName = @"usercard_kickout_normal"; + _kikoutProvision.selectImageName = @"usercard_kickout_normal"; + _kikoutProvision.type = ConsumerSolitaireProvisionGenre_KickOut; + } + return _kikoutProvision; +} + +- (YUMIConsumerSolitaireProvisionMatrix *)executiveProvision { + if (!_executiveProvision) { + _executiveProvision = [[YUMIConsumerSolitaireProvisionMatrix alloc] init]; + _executiveProvision.title = YMLocalizedString(@"YUMI_User_Card_Presenter_18"); + _executiveProvision.imageName = @"usercard_manager_normal"; + _executiveProvision.selectTitle = YMLocalizedString(@"YUMI_User_Card_Presenter_19"); + _executiveProvision.selectImageName = @"usercard_manager_disable"; + _executiveProvision.type = ConsumerSolitaireProvisionGenre_Manager; + } + return _executiveProvision; +} + +- (YUMIConsumerSolitaireProvisionMatrix *)blackProvision { + if (!_blackProvision) { + _blackProvision = [[YUMIConsumerSolitaireProvisionMatrix alloc] init]; + _blackProvision.title = YMLocalizedString(@"YUMI_User_Card_Presenter_20"); + _blackProvision.imageName = @"usercard_blacklist_normal"; + _blackProvision.type = ConsumerSolitaireProvisionGenre_Black; + } + return _blackProvision; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/UserCard/Protocol/FBCConsumerSolitaireCeremony.h b/YuMi/Modules/YMRoom/View/UserCard/Protocol/FBCConsumerSolitaireCeremony.h new file mode 100644 index 00000000..d91e5ca4 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/UserCard/Protocol/FBCConsumerSolitaireCeremony.h @@ -0,0 +1,31 @@ +// +// YMUserCardProtocol.h +// YUMI +// +// Created by YUMI on 2021/11/24. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class ConsumerAbstractMatrix, YUMIConsumerSolitaireProvisionMatrix, YUMIConsumerSolitaireMiecreoscoopeProvisionMatrix; +@protocol FBCConsumerSolitaireCeremony + +- (void)dwellEarnConsumerAbstractAccomplishment:(ConsumerAbstractMatrix *)userInfo; +- (void)dwellEarnObligtowardsionGarmentSccess:(NSArray *)array; +- (void)dwellEarnMiecreoscoopeObligtowardsionGarmentAccomplishment:(NSArray *)array; +- (void)considertowardsionConsumerAccomplishment:(YUMIConsumerSolitaireProvisionMatrix *)item; +- (void)manufactureConsumerDenigrtowardseAccomplish:(NSError *)error; +- (void)markConsumerExecutiveAccomplish:(YUMIConsumerSolitaireProvisionMatrix *)item error:(NSError *)error; +- (void)manufactureAbandonConsumerAccomplish:(NSError *)error; +- (void)senstowardsionalManagementAbandonConsumerAccomplish:(NSError *)error; +- (void)kickPubescenceMiecreoscoopeAccomplishment; +- (void)upMiecreoscoopeAccomplishment; +- (void)muteMiecreoscoopeSusccess; +- (void)lockMiecreoscoopeSusccess; +- (void)sanitaryConsumerPresentBWSttessAccomplishment:(NSDictionary *)dic; +- (void)chamberEngagementExtractCourageConsumerAccomplishment; +- (void)senstowardsionalManagementShankConsumerAccomplishment:(NSString *)opt; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/UserCard/ThemeColor+UserCard.h b/YuMi/Modules/YMRoom/View/UserCard/ThemeColor+UserCard.h new file mode 100644 index 00000000..8689de38 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/UserCard/ThemeColor+UserCard.h @@ -0,0 +1,19 @@ +// +// ThemeColor+UserCard.h +// YUMI +// +// Created by YUMI on 2021/11/24. +// + +#import "DJDKMIMOMColor.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface DJDKMIMOMColor (UserCard) ++ (UIColor *)consumerMonicerPrettify; ++ (UIColor *)consumerMetroChampionPrettify; ++ (UIColor *)consumerMiecreoscoopeChampionPrettify; ++ (UIColor *)consumerDividerPrettify; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/UserCard/ThemeColor+UserCard.m b/YuMi/Modules/YMRoom/View/UserCard/ThemeColor+UserCard.m new file mode 100644 index 00000000..d64b13de --- /dev/null +++ b/YuMi/Modules/YMRoom/View/UserCard/ThemeColor+UserCard.m @@ -0,0 +1,27 @@ +// +// ThemeColor+UserCard.m +// YUMI +// +// Created by YUMI on 2021/11/24. +// + +#import "ThemeColor+UserCard.h" + +@implementation DJDKMIMOMColor (UserCard) + ++ (UIColor *)consumerMonicerPrettify { + return UIColorFromRGB(0xFFFFFF); +} ++ (UIColor *)consumerMetroChampionPrettify { + return UIColorFromRGB(0x666666); +} + ++ (UIColor *)consumerMiecreoscoopeChampionPrettify { + return UIColorFromRGB(0x333333); +} + ++ (UIColor *)consumerDividerPrettify { + return UIColorFromRGB(0xF1F1F1); +} + +@end diff --git a/YuMi/Modules/YMRoom/View/UserCard/View/Cell/YUMIConsumerSolitaireProvisionAssembletionRegardElement.h b/YuMi/Modules/YMRoom/View/UserCard/View/Cell/YUMIConsumerSolitaireProvisionAssembletionRegardElement.h new file mode 100644 index 00000000..240e5d51 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/UserCard/View/Cell/YUMIConsumerSolitaireProvisionAssembletionRegardElement.h @@ -0,0 +1,16 @@ +// +// YMUserCardItemCollectionViewCell.h +// YUMI +// +// Created by YUMI on 2021/11/24. +// + +#import +#import "YUMIConsumerSolitaireProvisionMatrix.h" +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIConsumerSolitaireProvisionAssembletionRegardElement : UICollectionViewCell +@property (nonatomic,strong) YUMIConsumerSolitaireProvisionMatrix *itemMatrix; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/UserCard/View/Cell/YUMIConsumerSolitaireProvisionAssembletionRegardElement.m b/YuMi/Modules/YMRoom/View/UserCard/View/Cell/YUMIConsumerSolitaireProvisionAssembletionRegardElement.m new file mode 100644 index 00000000..83763ab9 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/UserCard/View/Cell/YUMIConsumerSolitaireProvisionAssembletionRegardElement.m @@ -0,0 +1,84 @@ +// +// YMUserCardItemCollectionViewCell.m +// YUMI +// +// Created by YUMI on 2021/11/24. +// + +#import "YUMIConsumerSolitaireProvisionAssembletionRegardElement.h" +#import +#import "ThemeColor+UserCard.h" + +@interface YUMIConsumerSolitaireProvisionAssembletionRegardElement () +@property (nonatomic,strong) UIButton *brandBtuton; +@property (nonatomic,strong) UILabel *titleLabel; +@end + +@implementation YUMIConsumerSolitaireProvisionAssembletionRegardElement + +- (instancetype)initWithFrame:(CGRect)frame { + if (self = [super initWithFrame:frame]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self.contentView addSubview:self.brandBtuton]; + [self.contentView addSubview:self.titleLabel]; +} + +- (void)initChildLyRestrictions { + [self.brandBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(35, 35)); + make.centerX.mas_equalTo(self.contentView); + make.top.mas_equalTo(self.contentView); + }]; + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.contentView); + make.top.mas_equalTo(self.brandBtuton.mas_bottom).offset(8); + }]; +} +#pragma mark - Getters And Setters +- (void)setItemMatrix:(YUMIConsumerSolitaireProvisionMatrix *)itemMatrix { + _itemMatrix = itemMatrix; + if (_itemMatrix.title.length > 0) { + self.titleLabel.text = _itemMatrix.title; + } + + if (_itemMatrix.isSelect && _itemMatrix.selectTitle.length > 0) { + self.titleLabel.text = _itemMatrix.selectTitle; + } + + if (_itemMatrix.imageName) { + [self.brandBtuton setImage:[UIImage imageNamed:_itemMatrix.imageName] forState:UIControlStateNormal]; + } + if (_itemMatrix.selectImageName) { + [self.brandBtuton setImage:[UIImage imageNamed:_itemMatrix.selectImageName] forState:UIControlStateSelected]; + } + self.brandBtuton.selected = _itemMatrix.isSelect; + self.brandBtuton.enabled = _itemMatrix.isEnable; +} + + +- (UIButton *)brandBtuton { + if (!_brandBtuton) { + _brandBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + _brandBtuton.userInteractionEnabled = NO; + } + return _brandBtuton; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.font = [UIFont systemFontOfSize:10]; + _titleLabel.textColor = [DJDKMIMOMColor consumerMetroChampionPrettify]; + _titleLabel.textAlignment = NSTextAlignmentCenter; + } + return _titleLabel; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/UserCard/View/SubViews/YUMIConsumerSolitaireCommunicationAssembletionRegardElement.h b/YuMi/Modules/YMRoom/View/UserCard/View/SubViews/YUMIConsumerSolitaireCommunicationAssembletionRegardElement.h new file mode 100644 index 00000000..c91d8df8 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/UserCard/View/SubViews/YUMIConsumerSolitaireCommunicationAssembletionRegardElement.h @@ -0,0 +1,19 @@ +// +// YMUserCardSkillCollectionViewCell.h +// YUMI +// +// Created by YUMI on 2022/1/25. +// + +#import +#import "NetIndicateRegard.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIConsumerSolitaireCommunicationAssembletionRegardElement : UICollectionViewCell + +@property (nonatomic, strong) NetIndicateRegard *imageView; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/UserCard/View/SubViews/YUMIConsumerSolitaireCommunicationAssembletionRegardElement.m b/YuMi/Modules/YMRoom/View/UserCard/View/SubViews/YUMIConsumerSolitaireCommunicationAssembletionRegardElement.m new file mode 100644 index 00000000..f1db730b --- /dev/null +++ b/YuMi/Modules/YMRoom/View/UserCard/View/SubViews/YUMIConsumerSolitaireCommunicationAssembletionRegardElement.m @@ -0,0 +1,42 @@ +// +// YMUserCardSkillCollectionViewCell.m +// YUMI +// +// Created by YUMI on 2022/1/25. +// + +#import "YUMIConsumerSolitaireCommunicationAssembletionRegardElement.h" +#import + +@implementation YUMIConsumerSolitaireCommunicationAssembletionRegardElement + +- (instancetype)initWithFrame:(CGRect)frame { + if (self = [super initWithFrame:frame]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self.contentView addSubview:self.imageView]; +} + +- (void)initChildLyRestrictions { + [self.imageView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(0); + make.top.bottom.mas_equalTo(self.contentView).inset(5); + }]; +} + +#pragma mark - Getters And Setters +- (NetIndicateRegard *)imageView { + if (!_imageView) { + _imageView = [[NetIndicateRegard alloc] init]; + _imageView.contentMode = UIViewContentModeScaleAspectFit; + } + return _imageView; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/UserCard/View/SubViews/YUMIConsumerSolitaireCommunicationSolitaireRegard.h b/YuMi/Modules/YMRoom/View/UserCard/View/SubViews/YUMIConsumerSolitaireCommunicationSolitaireRegard.h new file mode 100644 index 00000000..0c759957 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/UserCard/View/SubViews/YUMIConsumerSolitaireCommunicationSolitaireRegard.h @@ -0,0 +1,18 @@ +// +// YMUserCardSkillCardView.h +// YUMI +// +// Created by YUMI on 2022/1/25. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIConsumerSolitaireCommunicationSolitaireRegard : UIView + +@property (nonatomic, strong) NSArray *atoloudspeakerGarment; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/UserCard/View/SubViews/YUMIConsumerSolitaireCommunicationSolitaireRegard.m b/YuMi/Modules/YMRoom/View/UserCard/View/SubViews/YUMIConsumerSolitaireCommunicationSolitaireRegard.m new file mode 100644 index 00000000..bb1aebac --- /dev/null +++ b/YuMi/Modules/YMRoom/View/UserCard/View/SubViews/YUMIConsumerSolitaireCommunicationSolitaireRegard.m @@ -0,0 +1,96 @@ +// +// YMUserCardSkillCardView.m +// YUMI +// +// Created by YUMI on 2022/1/25. +// + +#import "YUMIConsumerSolitaireCommunicationSolitaireRegard.h" +#import "YUMIConsumerSolitaireCommunicationAssembletionRegardElement.h" +#import +#import "YUMIMacroUitls.h" +#import "ThemeColor+UserCard.h" +#import "NSArray+Safe.h" + +@interface YUMIConsumerSolitaireCommunicationSolitaireRegard() + +@property (nonatomic, strong) UICollectionView *collectionView; + +@end + +@implementation YUMIConsumerSolitaireCommunicationSolitaireRegard + +- (instancetype)initWithFrame:(CGRect)frame { + if (self = [super initWithFrame:frame]) { + [self initChildLy]; + [self initContraints]; + } + return self; +} + +- (void)initChildLy { + [self addSubview:self.collectionView]; +} + +- (void)initContraints { + [self.collectionView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.top.right.bottom.mas_equalTo(0); + }]; +} + +#pragma mark - UICollectionViewDelegate +- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { + return self.atoloudspeakerGarment.count; +} + +- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { + YUMIConsumerSolitaireCommunicationAssembletionRegardElement * cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([YUMIConsumerSolitaireCommunicationAssembletionRegardElement class]) forIndexPath:indexPath]; + cell.imageView.imageUrl = [self.atoloudspeakerGarment secureGroalTowardsIndictowardsrix1:indexPath.item]; + return cell; +} + +- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath { + CGFloat height = 30; + CGFloat width = 60; + YUMIConsumerSolitaireCommunicationAssembletionRegardElement * cell = (YUMIConsumerSolitaireCommunicationAssembletionRegardElement *)[collectionView cellForItemAtIndexPath:indexPath]; + + UIImage* image = cell.imageView.image; + if (image) { + CGFloat scale = image.size.width / image.size.height; + return CGSizeMake(20 * scale, height); + } else { + NSURL *imgUrl = [NSURL URLWithString:[self.atoloudspeakerGarment secureGroalTowardsIndictowardsrix1:indexPath.item]]; + UIImage *myImage = [UIImage imageWithData:[NSData dataWithContentsOfURL:imgUrl]]; + CGFloat scale = myImage.size.width / myImage.size.height; + if (scale == 0) { + return CGSizeMake(60, height); + }else { + return CGSizeMake(20 * scale, height); + } + } + return CGSizeMake(width, height); +} + +- (void)setAtoloudspeakerGarment:(NSArray *)atoloudspeakerGarment { + _atoloudspeakerGarment = [NSArray arrayWithArray:atoloudspeakerGarment]; + [self.collectionView reloadData]; +} + +- (UICollectionView *)collectionView{ + if (!_collectionView) { + UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init]; + layout.itemSize = CGSizeMake(60, 30); + layout.minimumLineSpacing = 0; + layout.minimumInteritemSpacing = 8; + layout.sectionInset = UIEdgeInsetsMake(0, 12, 0, 12); + layout.scrollDirection = UICollectionViewScrollDirectionHorizontal; + _collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout]; + _collectionView.showsHorizontalScrollIndicator = NO; + _collectionView.dataSource = self; + _collectionView.delegate = self; + _collectionView.backgroundColor = [UIColor clearColor]; + [_collectionView registerClass:[YUMIConsumerSolitaireCommunicationAssembletionRegardElement class] forCellWithReuseIdentifier:NSStringFromClass([YUMIConsumerSolitaireCommunicationAssembletionRegardElement class])]; + } + return _collectionView; +} +@end diff --git a/YuMi/Modules/YMRoom/View/UserCard/View/YUMIConsumerSolitaireRegardGovernancer.h b/YuMi/Modules/YMRoom/View/UserCard/View/YUMIConsumerSolitaireRegardGovernancer.h new file mode 100644 index 00000000..8d3bb6c8 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/UserCard/View/YUMIConsumerSolitaireRegardGovernancer.h @@ -0,0 +1,18 @@ +// +// YMUserCardViewController.h +// YUMI +// +// Created by YUMI on 2021/11/24. +// + +#import "MvpRegardGovernancer.h" +#import "ChamberHostRepresendtation.h" +#import "YUMIConsumerSolitaireAbstractMatrix.h" +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIConsumerSolitaireRegardGovernancer : MvpRegardGovernancer +- (instancetype)initWithUser:(YUMIConsumerSolitaireAbstractMatrix *)automobiledAbstract; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/UserCard/View/YUMIConsumerSolitaireRegardGovernancer.m b/YuMi/Modules/YMRoom/View/UserCard/View/YUMIConsumerSolitaireRegardGovernancer.m new file mode 100644 index 00000000..91aca54f --- /dev/null +++ b/YuMi/Modules/YMRoom/View/UserCard/View/YUMIConsumerSolitaireRegardGovernancer.m @@ -0,0 +1,1360 @@ +// +// YMUserCardViewController.m +// YUMI +// +// Created by YUMI on 2021/11/24. +// + +#import "YUMIConsumerSolitaireRegardGovernancer.h" +#import +#import +#import "YUMIMacroUitls.h" +#import "ThemeColor+UserCard.h" +#import "MKJPopup.h" +#import "YUMIHtmlUrl.h" +#import "XNDJTBWGLoadingTool.h" +#import "AccountAbstractStorage.h" +#import "SpriteSheetIndicateExecutive.h" +#import "UIImage+Utils.h" +#import "XCCurrentVCStackExecutive.h" +#import "StatsticsticsServingFacilitater.h" +#import "NSArray+Safe.h" +#import "NSMutableDictionary+Saft.h" +#import "ClientDisposition.h" +#import "ConsumerAbstractMatrix.h" +#import "YUMIConsumerSolitaireProvisionMatrix.h" +#import "ChamberAbstractMatrix.h" +#import "AttachmentMatrix.h" +#import "XCombatickConsumerMatrix.h" +#import "YUMIConsumerSolitaireMiecreoscoopeProvisionMatrix.h" +#import "MiecreoscoopeMHTueueMatrix.h" +#import "MiecreoscoopeStateMatrix.h" +#import "YUMIDischargePresentRegard.h" +#import "NetIndicateRegard.h" +#import "YUMIConsumerSolitaireProvisionAssembletionRegardElement.h" +#import "YUMIConsumerSolitaireCommunicationSolitaireRegard.h" +#import "YUMIChamberDischargeEssayRegard.h" +#import "YUMIChamberHalfCommunicationRegard.h" +#import "YUMIConsumerSolitaireExternalizer.h" +#import "FBCConsumerSolitaireCeremony.h" +#import "YUMITissueRegardGovernancer.h" +#import "YUMIManeConsumerAbstractRegardGovernancer.h" +#import "YUMIManeSimpleConsumerAbstractRegardGovernancer.h" +#import "InterlocutionRegardGovernancer.h" + +@interface YUMIConsumerSolitaireRegardGovernancer () +@property (nonatomic,strong) UIView *apexBeatRegard; +@property (nonatomic,strong) UIView *extremeBeatRegard; +@property (nonatomic,strong) UIView *encourageRegard; +@property (nonatomic,strong) UIStackView *stackView; +@property (nonatomic,strong) UIView * consumerAbstractRegard; +@property (nonatomic, strong) NetIndicateRegard *magnificentIndicateRegard; +@property (strong, nonatomic) UIVisualEffectView *impressionRegard; +@property (nonatomic,strong) NetIndicateRegard *encourageIndicateRegard; +@property (nonatomic,strong) YYAnimatedImageView *intelligencePenetrateIndicateRegard; +@property (nonatomic, strong) SpriteSheetIndicateExecutive *manager; +@property (nonatomic,strong) NetIndicateRegard *intelligenceportraitIndicateRegard; +@property (nonatomic,strong) UILabel *monicerSequencignation; +@property (nonatomic,strong) UIImageView *seaxualityIndicateRegard; +@property (nonatomic,strong) UIImageView *strangeConsumerIndicateRegard; +@property (nonatomic,strong) UIImageView *officalIndicateRegard; +@property (nonatomic,strong) UIStackView *coupleHierarchyRegard; +@property (nonatomic,strong) NetIndicateRegard *fascinationIndicateRegard; +@property (nonatomic, strong) NetIndicateRegard *magnificentFigureIndicateRegard; +@property (nonatomic,strong) NetIndicateRegard *experIndicateRegard; +@property (nonatomic,strong) UIView * constituteWoodentrayRegard; +@property (nonatomic,strong) NetIndicateRegard *materialIndicateRegard; +@property (nonatomic,strong) UILabel *materialSequencignation; +@property (nonatomic,strong) UILabel *idSequencignation; +@property (nonatomic,strong) UIImageView *copysIdIndicateRegard; +@property (nonatomic,strong) UIButton *reportBtuton; +@property (nonatomic,strong) UIButton *concludeBtuton; +@property (nonatomic,strong) UICollectionView *collectionView; +@property (nonatomic, strong) YUMIConsumerSolitaireCommunicationSolitaireRegard *communicationSolitaireRegard; +@property (nonatomic,strong) UIView * sepBurlywoodRegard; +@property (nonatomic,strong) UIStackView *operaHierarchyRegard; +@property (nonatomic,strong) UIButton *extractCourageBtuton; +@property (nonatomic,strong) UIView * extractCourageRegard; +@property (nonatomic,strong) YUMIConsumerSolitaireAbstractMatrix *automobiledAbstract; +@property (nonatomic,copy) NSArray *datasource; +@property (nonatomic,copy) NSArray * miecreoscoopeProvisions; +@property (nonatomic,strong) ConsumerAbstractMatrix *targetConsumerAbstract; + +@end + +@implementation YUMIConsumerSolitaireRegardGovernancer + +- (instancetype)initWithUser:(YUMIConsumerSolitaireAbstractMatrix *)automobiledAbstract { + if (self = [super init]) { + self.modalPresentationStyle = UIModalPresentationOverFullScreen; + self.automobiledAbstract = automobiledAbstract; + } + return self; +} + +#pragma mark - Life Style +- (YUMIConsumerSolitaireExternalizer *)producePresimport { + return [[YUMIConsumerSolitaireExternalizer alloc] init]; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initHyperessay]; + [self initSubViews]; + [self initChildLyRestrictions]; + [self initOccurrence]; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.view.backgroundColor = [UIColor clearColor]; + + [self.view addSubview:self.apexBeatRegard]; + [self.view addSubview:self.encourageRegard]; + [self.view addSubview:self.extremeBeatRegard]; + + [self.encourageRegard addSubview:self.stackView]; + [self.view addSubview:self.magnificentIndicateRegard]; + + [self.stackView addArrangedSubview:self.consumerAbstractRegard]; + [self.stackView addArrangedSubview:self.communicationSolitaireRegard]; + [self.stackView addArrangedSubview:self.collectionView]; + [self.stackView addArrangedSubview:self.sepBurlywoodRegard]; + [self.stackView addArrangedSubview:self.operaHierarchyRegard]; + [self.stackView addArrangedSubview:self.extractCourageRegard]; + + [self.consumerAbstractRegard addSubview:self.encourageIndicateRegard]; + [self.consumerAbstractRegard addSubview:self.impressionRegard]; + [self.consumerAbstractRegard addSubview:self.intelligenceportraitIndicateRegard]; + [self.consumerAbstractRegard addSubview:self.intelligencePenetrateIndicateRegard]; + [self.consumerAbstractRegard addSubview:self.magnificentFigureIndicateRegard]; + [self.consumerAbstractRegard addSubview:self.monicerSequencignation]; + [self.consumerAbstractRegard addSubview:self.seaxualityIndicateRegard]; + [self.consumerAbstractRegard addSubview:self.coupleHierarchyRegard]; + [self.consumerAbstractRegard addSubview:self.idSequencignation]; + [self.consumerAbstractRegard addSubview:self.copysIdIndicateRegard]; + [self.consumerAbstractRegard addSubview:self.reportBtuton]; + [self.consumerAbstractRegard addSubview:self.concludeBtuton]; + + [self.coupleHierarchyRegard addArrangedSubview:self.strangeConsumerIndicateRegard]; + [self.coupleHierarchyRegard addArrangedSubview:self.officalIndicateRegard]; + [self.coupleHierarchyRegard addArrangedSubview:self.experIndicateRegard]; + [self.coupleHierarchyRegard addArrangedSubview:self.fascinationIndicateRegard]; + [self.coupleHierarchyRegard addArrangedSubview:self.constituteWoodentrayRegard]; + + [self.constituteWoodentrayRegard addSubview:self.materialIndicateRegard]; + [self.constituteWoodentrayRegard addSubview:self.materialSequencignation]; + + [self.extractCourageRegard addSubview:self.extractCourageBtuton]; + [self prohibitipositionChamberEngagementExtractCourage]; +} + +- (void)initChildLyRestrictions { + [self.apexBeatRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.left.right.mas_equalTo(self.view); + make.bottom.mas_equalTo(self.encourageRegard.mas_top); + }]; + + [self.encourageRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.view).inset(45); + make.centerY.mas_equalTo(self.view); + make.bottom.mas_equalTo(self.stackView.mas_bottom); + }]; + + [self.extremeBeatRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.bottom.left.right.mas_equalTo(self.view); + make.top.mas_equalTo(self.encourageRegard.mas_bottom); + }]; + + [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(KScreenWidth - 90); + make.top.centerX.mas_equalTo(self.encourageRegard); + }]; + + [self.consumerAbstractRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(self.stackView); + make.height.mas_equalTo(110); + }]; + CGFloat nobleMargin = (KScreenWidth - 45) * 45.0 / (KScreenWidth - 90); + [self.magnificentIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(180); + make.top.mas_equalTo(self.encourageRegard).mas_offset(-70); + make.right.mas_equalTo(self.encourageRegard).offset(nobleMargin*0.5); + make.left.mas_equalTo(self.encourageRegard).mas_offset(-nobleMargin*0.5); + }]; + [self.communicationSolitaireRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(self.consumerAbstractRegard); + make.height.mas_equalTo(0); + }]; + [self.collectionView mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(self.consumerAbstractRegard); + make.height.mas_equalTo(0); + }]; + + [self.sepBurlywoodRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(KScreenWidth - 45 * 2 - 10 * 2, 1)); + }]; + + [self.operaHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(self.consumerAbstractRegard); + make.height.mas_equalTo(40); + }]; + + [self.encourageIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.consumerAbstractRegard); + }]; + + [self.impressionRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.consumerAbstractRegard); + }]; + + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(50, 50)); + make.left.mas_equalTo(self.consumerAbstractRegard).offset(15); + make.top.mas_equalTo(self.consumerAbstractRegard).offset(30); + }]; + + [self.intelligencePenetrateIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.center.mas_equalTo(self.intelligenceportraitIndicateRegard); + make.width.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_width).multipliedBy(1.31); + make.height.mas_equalTo(self.intelligencePenetrateIndicateRegard.mas_width); + }]; + + [self.magnificentFigureIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.intelligencePenetrateIndicateRegard.mas_right).offset(5); + make.top.mas_equalTo(self.intelligenceportraitIndicateRegard); + make.height.mas_equalTo(20); + make.width.mas_equalTo(0); + }]; + + [self.monicerSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.magnificentFigureIndicateRegard.mas_right); + make.top.mas_equalTo(self.intelligenceportraitIndicateRegard); + }]; + + [self.seaxualityIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(14, 14)); + make.left.mas_equalTo(self.monicerSequencignation.mas_right).offset(4); + make.centerY.mas_equalTo(self.monicerSequencignation); + }]; + + [self.coupleHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.magnificentFigureIndicateRegard); + make.top.mas_equalTo(self.magnificentFigureIndicateRegard.mas_bottom).offset(3); + make.height.mas_equalTo(20); + }]; + + [self.idSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.magnificentFigureIndicateRegard); + make.top.mas_equalTo(self.coupleHierarchyRegard.mas_bottom).offset(3); + }]; + + [self.copysIdIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(15, 15)); + make.left.mas_equalTo(self.idSequencignation.mas_right).offset(2); + make.centerY.mas_equalTo(self.idSequencignation); + }]; + + [self.concludeBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(22, 22)); + make.top.mas_equalTo(self.consumerAbstractRegard).offset(5); + make.right.mas_equalTo(self.consumerAbstractRegard).offset(-6); + }]; + + [self.reportBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.concludeBtuton); + make.right.mas_equalTo(self.concludeBtuton.mas_left).offset(-5); + }]; + + [self.experIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.mas_equalTo(20); + }]; + + [self.fascinationIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.mas_equalTo(20); + }]; + + [self.strangeConsumerIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.mas_equalTo(15); + }]; + + [self.officalIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.mas_equalTo(20); + }]; + + [self.constituteWoodentrayRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(20); + make.width.mas_equalTo(self.materialIndicateRegard.mas_width); + }]; + + + [self.materialIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(20); + make.width.mas_equalTo(60); + make.left.top.mas_equalTo(self.constituteWoodentrayRegard); + }]; + + [self.materialSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.bottom.mas_equalTo(self.materialIndicateRegard); + make.right.mas_equalTo(self.constituteWoodentrayRegard).offset(-2); + }]; + + [self.extractCourageRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(200); + make.height.mas_equalTo(40); + }]; + + [self.extractCourageBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.centerY.mas_equalTo(self.extractCourageRegard); + make.height.mas_equalTo(30); + }]; +} + +- (void)initOccurrence { + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(prohibitiaplictowardsionarsVc:)]; + [self.apexBeatRegard addGestureRecognizer:tap]; + UITapGestureRecognizer * bottomTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(prohibitiaplictowardsionarsVc:)]; + [self.extremeBeatRegard addGestureRecognizer:bottomTap]; + + UITapGestureRecognizer * userInfoTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(passtoConsumerAbstractVewC:)]; + [self.intelligenceportraitIndicateRegard addGestureRecognizer:userInfoTap]; +} + +- (void)initHyperessay { + [self.presimport getUserInfo:self.automobiledAbstract.uid]; + [self.presimport acquireObligtowardsionProvisionsByConsumerAbstract:self.automobiledAbstract]; + [self.presimport acquireMiecreoscoopeObligtowardsionProvisionsByConsumerAbstract:self.automobiledAbstract]; +} + +- (void)prohibitipositionChamberEngagementExtractCourage { + self.extractCourageRegard.hidden = YES; + if (self.automobiledAbstract.roomInfo.roomModeType == ChamberModeGenre_Open_Blind && self.automobiledAbstract.roomInfo.blindDateState == ChamberDisportDateingGenre_Pick && [AccountAbstractStorage instance].acquireCid.integerValue != self.automobiledAbstract.uid.integerValue) { + __block MiecreoscoopeMHTueueMatrix * selfMicqueue; + __block MiecreoscoopeMHTueueMatrix * targetMicqueue; + [self.automobiledAbstract.micQueue.allValues enumerateObjectsUsingBlock:^(MiecreoscoopeMHTueueMatrix * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if (obj.userInfo && obj.userInfo.uid == [AccountAbstractStorage instance].acquireCid.integerValue) { + selfMicqueue = obj; + } else if(obj.userInfo && obj.userInfo.uid == self.automobiledAbstract.uid.integerValue) { + targetMicqueue = obj; + } + }]; + if (selfMicqueue.userInfo && selfMicqueue.userInfo.uid > 0 && !selfMicqueue.userInfo.hasSelectUser && selfMicqueue.microState.position != -1 && targetMicqueue.microState.position != -1) { + self.extractCourageRegard.hidden = NO; + } + } +} + +- (void)refurbishAssembletionAltitude:(NSArray *)array { + if (array.count > 0) { + CGFloat collectionHeight = 16 + 10; + NSInteger page = array.count / 4; + if (page > 0) { + if (array.count % 4 ==0) { + collectionHeight += (page * 55 + (page-1) * 16); + } else { + collectionHeight += ((page + 1) * 55 + page * 16); + } + } else { + collectionHeight += 55; + } + [self.collectionView mas_updateConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(collectionHeight); + }]; + } +} + +- (void)prohibitichargeIndividualityCommunictowardsionAbandonOrDenigrtowardseConsumer:(int)first second:(int)second { + ChamberAbstractMatrix * roomInfo = self.automobiledAbstract.roomInfo; + XCombatickConsumerMatrix *notifyModel = [[XCombatickConsumerMatrix alloc] init]; + notifyModel.handleNick = self.automobiledAbstract.nick; + notifyModel.handleUid = [AccountAbstractStorage instance].acquireCid.integerValue; + notifyModel.targetUid = self.automobiledAbstract.uid.integerValue; + notifyModel.targetNick = self.targetConsumerAbstract.nick; + notifyModel.uid = self.automobiledAbstract.uid.integerValue; + AttachmentMatrix *attachment = [[AttachmentMatrix alloc] init]; + attachment.first = first; + attachment.second = second; + attachment.data = [notifyModel mtowardsrix2dictionary]; + NSString * sessionId = [NSString stringWithFormat:@"%ld", roomInfo.roomId]; + + NIMMessage *message = [[NIMMessage alloc]init]; + NIMCustomObject *object = [[NIMCustomObject alloc] init]; + object.attachment = attachment; + message.messageObject = object; + + NIMSession *session = [NIMSession session:sessionId type:NIMSessionTypeChatroom]; + [[NIMSDK sharedSDK].chatManager sendMessage:message toSession:session error:nil]; +} + +- (NSArray *)prohibitipositionPresentConsumers:(NSMutableDictionary *)queue { + NSMutableArray * array = [NSMutableArray array]; + BOOL receiveIsOnMic = NO; + for (MiecreoscoopeMHTueueMatrix * miecreoscoopeMatrix in queue.allValues) { + if (miecreoscoopeMatrix.userInfo && miecreoscoopeMatrix.userInfo.uid >0) { + ConsumerAbstractMatrix * userInfo = miecreoscoopeMatrix.userInfo; + if (userInfo.uid == self.automobiledAbstract.uid.integerValue) { + receiveIsOnMic = YES; + } + } + } + if (receiveIsOnMic) { + for (MiecreoscoopeMHTueueMatrix * miecreoscoopeMatrix in queue.allValues) { + if (miecreoscoopeMatrix.userInfo && miecreoscoopeMatrix.userInfo.uid >0) { + ConsumerAbstractMatrix * userInfo = miecreoscoopeMatrix.userInfo; + YUMIExternalizeConsumerAbstractMatrix * userModel = [[YUMIExternalizeConsumerAbstractMatrix alloc] init]; + userModel.avatar = userInfo.avatar; + userModel.vipMic = userInfo.vipMic; + userModel.position = [NSString stringWithFormat:@"%d", miecreoscoopeMatrix.microState.position]; + userModel.uid = userInfo.uid; + if (userInfo.uid == self.automobiledAbstract.uid.integerValue) { + userModel.isSelect = YES; + } + if (self.automobiledAbstract.roomInfo.type == ChamberGenre_Anchor && miecreoscoopeMatrix.microState.position == -1) { + continue; + } + [array addObject:userModel]; + } + } + + ChamberAbstractMatrix * roomInfo = self.automobiledAbstract.roomInfo; + if (roomInfo.leaveMode) { + YUMIExternalizeConsumerAbstractMatrix * userModel = [[YUMIExternalizeConsumerAbstractMatrix alloc] init]; + userModel.avatar = roomInfo.avatar; + userModel.position = @"-1"; + userModel.uid = self.automobiledAbstract.uid.integerValue; + if (roomInfo.uid == self.automobiledAbstract.uid.integerValue) { + userModel.isSelect = YES; + } + [array addObject:userModel]; + } else if (roomInfo.type == ChamberGenre_Anchor) { + BOOL hadContainerOwner = NO; + for (ConsumerAbstractMatrix *userModel in array) { + if (userModel.uid == roomInfo.uid) { + hadContainerOwner = YES; + break; + } + } + if (!hadContainerOwner) { + YUMIExternalizeConsumerAbstractMatrix * userModel = [[YUMIExternalizeConsumerAbstractMatrix alloc] init]; + userModel.avatar = roomInfo.avatar; + userModel.position = @"-1"; + userModel.uid = self.automobiledAbstract.uid.integerValue; + if (roomInfo.uid == self.automobiledAbstract.uid.integerValue) { + userModel.isSelect = YES; + } + [array addObject:userModel]; + } + } + } else { + YUMIExternalizeConsumerAbstractMatrix * userModel = [[YUMIExternalizeConsumerAbstractMatrix alloc] init]; + userModel.avatar = self.targetConsumerAbstract.avatar; + userModel.nick = self.targetConsumerAbstract.nick; + userModel.uid = self.automobiledAbstract.uid.integerValue; + userModel.isSelect = YES; + [array addObject:userModel]; + } + return array; +} + +- (BOOL)isInYoudCompetition:(NSString *)uid { + BOOL isGamePlaying = NO; + if (self.automobiledAbstract.roomInfo.type == ChamberGenre_MiniGame) { + for (int i = -1; i<5; i++) { + NSMutableDictionary * micQueue = self.automobiledAbstract.micQueue; + MiecreoscoopeMHTueueMatrix *micSequence = [micQueue objectForKey:[NSString stringWithFormat:@"%d", i]]; + if (micSequence == nil || micSequence.userInfo == nil) { + continue; + } + if (micSequence.userInfo.uid == uid.integerValue && micSequence.userInfo.gameStatus == LittleGameDisportPosition_Plying) { + isGamePlaying = YES; + break; + } + } + } + return isGamePlaying; +} + + +#pragma mark - FBCConsumerSolitaireCeremony +- (void)dwellEarnConsumerAbstractAccomplishment:(ConsumerAbstractMatrix *)userInfo { + self.targetConsumerAbstract = userInfo; + self.intelligenceportraitIndicateRegard.imageUrl = userInfo.avatar; + self.encourageIndicateRegard.imageUrl = userInfo.avatar; + self.magnificentIndicateRegard.imageUrl = userInfo.userInfoCardPic; + self.magnificentFigureIndicateRegard.imageUrl = userInfo.userVipInfoVO.vipIcon; + if (userInfo.userVipInfoVO && userInfo.userVipInfoVO.vipIcon) { + [self.magnificentFigureIndicateRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(20); + }]; + [self.monicerSequencignation mas_updateConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.magnificentFigureIndicateRegard.mas_right).mas_offset(2); + }]; + } + NSString * nick = userInfo.nick; + if (nick.length > 10) { + nick = [NSString stringWithFormat:@"%@…", [nick substringToIndex:10]]; + } + self.monicerSequencignation.text = nick.length > 0 ? nick : @""; + self.seaxualityIndicateRegard.image = userInfo.gender == GenderGenre_Female ? [UIImage imageNamed:@"yumi_same_female"] : [UIImage imageNamed:@"yumi_same_male"]; + self.officalIndicateRegard.hidden = userInfo.defUser != ConsumerPrototypeGenre_Offical; + self.strangeConsumerIndicateRegard.hidden = !userInfo.newUser; + if (userInfo.newUser) { + if (userInfo.fromSayHelloChannel) { + self.strangeConsumerIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_new_user_greet_new"]; + } else { + self.strangeConsumerIndicateRegard.image = [UIImage imageNamed:@"yumi_same_new_user"]; + } + } + if (userInfo.userLevelVo.experUrl) { + self.experIndicateRegard.imageUrl = userInfo.userLevelVo.experUrl; + } + self.experIndicateRegard.hidden = userInfo.userLevelVo.experUrl.length <= 0; + + if (userInfo.userLevelVo.charmUrl) { + self.fascinationIndicateRegard.imageUrl = userInfo.userLevelVo.charmUrl; + } + self.fascinationIndicateRegard.hidden = userInfo.userLevelVo.charmUrl.length <= 0; + self.copysIdIndicateRegard.hidden = NO; + if (userInfo.nameplateWord.length>0 && userInfo.nameplatePic.length>0) { + self.materialIndicateRegard.imageUrl = userInfo.nameplatePic; + self.materialSequencignation.text = userInfo.nameplateWord; + self.constituteWoodentrayRegard.hidden = NO; + } else { + self.constituteWoodentrayRegard.hidden = YES; + } + self.idSequencignation.text = [NSString stringWithFormat:@"ID:%ld", userInfo.erbanNo]; + + NSString * headwearUrl= userInfo.headwearEffect.length > 0 ? userInfo.headwearEffect : userInfo.headwearPic; + self.intelligencePenetrateIndicateRegard.hidden = headwearUrl.length <= 0; + if (headwearUrl.length > 0) { + NSURL *url = [NSURL URLWithString:headwearUrl]; + @kWeakify(self); + [self.manager chamberSpriteSheetIndictowardseAboutWEEBSITE:url completionBlock:^(YYSpriteSheetImage * _Nullable sprit) { + @kStrongify(self); + self.intelligencePenetrateIndicateRegard.image = sprit; + } failureBlock:^(NSError * _Nullable error) { + }]; + } + if (userInfo.uid == [AccountAbstractStorage instance].acquireCid.integerValue) { + self.reportBtuton.hidden = YES; + } else { + self.reportBtuton.hidden = NO; + } + if (userInfo.absCardPics.count) { + [self.communicationSolitaireRegard mas_updateConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(30); + }]; + } + self.communicationSolitaireRegard.atoloudspeakerGarment = userInfo.absCardPics; +} + +- (void)dwellEarnObligtowardsionGarmentSccess:(NSArray *)array { + if (array.count <= 0) {return;} + self.datasource = array; + self.collectionView.hidden = NO; + [self.collectionView reloadData]; + [self refurbishAssembletionAltitude:self.datasource]; +} + +- (void)dwellEarnMiecreoscoopeObligtowardsionGarmentAccomplishment:(NSArray *)array { + if (array.count <= 0) {return;} + self.miecreoscoopeProvisions = array; + self.operaHierarchyRegard.hidden = NO; + self.sepBurlywoodRegard.hidden = NO; + for (YUMIConsumerSolitaireMiecreoscoopeProvisionMatrix * model in array) { + UIButton * button = [UIButton buttonWithType:UIButtonTypeCustom]; + [button setTitle:model.title forState:UIControlStateNormal]; + button.titleLabel.font = [UIFont systemFontOfSize:13]; + button.tag = model.type; + button.selected = model.status; + [button setTitleColor:[DJDKMIMOMColor consumerMiecreoscoopeChampionPrettify] forState:UIControlStateNormal]; + [button addTarget:self action:@selector(miecreoscoopeBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + [self.operaHierarchyRegard addArrangedSubview:button]; + } +} + +- (void)considertowardsionConsumerAccomplishment:(YUMIConsumerSolitaireProvisionMatrix *)item { + + [self.datasource enumerateObjectsUsingBlock:^(YUMIConsumerSolitaireProvisionMatrix * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if (item.type == obj.type) { + obj.isSelect = item.isSelect; + *stop = YES; + } + }]; + [self.collectionView reloadData]; +} + +- (void)manufactureAbandonConsumerAccomplish:(NSError *)error { + if (error == nil && self.targetConsumerAbstract) { + [self dismissViewControllerAnimated:YES completion:nil]; + [self prohibitichargeIndividualityCommunictowardsionAbandonOrDenigrtowardseConsumer:IndividualityCommunicationGenre_Kick_User second:Custom_Message_Sub_Kick_BeKicked]; + } else if (error.code == 404) { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_User_Card_View_Controller_0")]; + } +} + +- (void)senstowardsionalManagementAbandonConsumerAccomplish:(NSError *)error { + [self dismissViewControllerAnimated:YES completion:nil]; +} + +- (void)markConsumerExecutiveAccomplish:(YUMIConsumerSolitaireProvisionMatrix *)item error:(NSError *)error { + if (error == nil) { + [self.datasource enumerateObjectsUsingBlock:^(YUMIConsumerSolitaireProvisionMatrix * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if (item.type == obj.type) { + obj.isSelect = item.isSelect; + *stop = YES; + } + }]; + [self.collectionView reloadData]; + } +} + +- (void)manufactureConsumerDenigrtowardseAccomplish:(NSError *)error { + if (error == nil && self.targetConsumerAbstract) { + [self dismissViewControllerAnimated:YES completion:nil]; + if (self.automobiledAbstract.position.length > 0) { + NIMChatroomQueueRemoveRequest *request = [[NIMChatroomQueueRemoveRequest alloc]init]; + request.key = self.automobiledAbstract.position; + request.roomId = [NSString stringWithFormat:@"%ld", self.automobiledAbstract.roomInfo.roomId]; + [[NIMSDK sharedSDK].chatroomManager removeChatroomQueueObject:request completion:^(NSError * _Nullable error, NSDictionary * _Nullable element) { + if (error == nil ) { + } + }]; + } + [self prohibitichargeIndividualityCommunictowardsionAbandonOrDenigrtowardseConsumer:IndividualityCommunicationGenre_Kick_User second:Custom_Message_Sub_Kick_BlackList]; + } else if (error.code == 417) { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_User_Card_View_Controller_1")]; + } +} + +- (void)lockMiecreoscoopeSusccess { + [self dismissViewControllerAnimated:YES completion:nil]; +} + +- (void)muteMiecreoscoopeSusccess { + [self dismissViewControllerAnimated:YES completion:nil]; +} + +- (void)kickPubescenceMiecreoscoopeAccomplishment { + if (self.automobiledAbstract.uid.integerValue != [AccountAbstractStorage instance].acquireCid.integerValue) { + [self prohibitichargeIndividualityCommunictowardsionAbandonOrDenigrtowardseConsumer:IndividualityCommunicationGenre_Queue second:Custom_Message_Sub_Queue_Kick]; + } + [self dismissViewControllerAnimated:YES completion:nil]; +} + +- (void)upMiecreoscoopeAccomplishment { + [self dismissViewControllerAnimated:YES completion:nil]; +} + +- (void)sanitaryConsumerPresentBWSttessAccomplishment:(NSDictionary *)dic { + [self EvidenceAccomplishmentToast:YMLocalizedString(@"YUMI_User_Card_View_Controller_2")]; + NIMMessage * message = [[NIMMessage alloc] init]; + AttachmentMatrix * attachMent = [[AttachmentMatrix alloc] init]; + attachMent.first = IndividualityCommunicationGenre_Room_GiftValue; + attachMent.second = Custom_Message_Sub_Room_GiftValue_Sync; + attachMent.data = dic; + NIMCustomObject *object = [[NIMCustomObject alloc] init]; + object.attachment = attachMent; + message.messageObject = object; + + NSString * sessionId = [NSString stringWithFormat:@"%ld", self.automobiledAbstract.roomInfo.roomId]; + NIMSession *session = [NIMSession session:sessionId type:NIMSessionTypeChatroom]; + [[NIMSDK sharedSDK].chatManager sendMessage:message toSession:session error:nil]; + [self dismissViewControllerAnimated:YES completion:nil]; +} + +- (void)chamberEngagementExtractCourageConsumerAccomplishment { + [self dismissViewControllerAnimated:YES completion:nil]; +} + +- (void)senstowardsionalManagementShankConsumerAccomplishment:(NSString *)opt { + [self EvidenceAccomplishmentToast:YMLocalizedString(@"YUMI_User_Card_View_Controller_3")]; + [self dismissViewControllerAnimated:YES completion:nil]; + if ([opt isEqualToString:@"-1"]) { + if (self.automobiledAbstract.position.length > 0) { + NIMChatroomQueueRemoveRequest *request = [[NIMChatroomQueueRemoveRequest alloc]init]; + request.key = self.automobiledAbstract.position; + request.roomId = [NSString stringWithFormat:@"%ld", self.automobiledAbstract.roomInfo.roomId]; + [[NIMSDK sharedSDK].chatroomManager removeChatroomQueueObject:request completion:^(NSError * _Nullable error, NSDictionary * _Nullable element) { + if (error == nil ) { + } + }]; + } + [self prohibitichargeIndividualityCommunictowardsionAbandonOrDenigrtowardseConsumer:IndividualityCommunicationGenre_Kick_User second:Custom_Message_Sub_Kick_BlackList]; + } +} + +- (BOOL)shouldBrakeDischargePresentProvision { + return self.shouldBrakeDischargePresentProvision; +} + +#pragma mark - UICollectionViewDelegate +- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { + return self.datasource.count; +} + +- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath { + [collectionView deselectItemAtIndexPath:indexPath animated:YES]; + + BOOL meIsSensationalManagement = NO; + for (UnionSensationalManagementAbstractMatrix *executiveAbstract in self.automobiledAbstract.superMangerList) { + if ([executiveAbstract.uid isEqualToString:[AccountAbstractStorage instance].acquireCid]) { + meIsSensationalManagement = YES; + } + } + if (self.datasource.count > 0) { + YUMIConsumerSolitaireProvisionMatrix * model = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.item]; + NSString * roomId = [NSString stringWithFormat:@"%ld", self.automobiledAbstract.roomInfo.roomId];; + NSString * roomUid = [NSString stringWithFormat:@"%ld", self.automobiledAbstract.roomInfo.uid];; + switch (model.type) { + case ConsumerSolitaireProvisionGenre_Chat: + { + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventroom_mike_click eventAttributes:@{@"actionType" : @"chat"}]; + [self dismissViewControllerAnimated:YES completion:^{ + UIViewController * controller = (UIViewController *)self.automobiledAbstract.delegate; + YUMIChamberHalfCommunicationRegard *halfMessageView = [[YUMIChamberHalfCommunicationRegard alloc] initWithFrame:CGRectMake(0, KScreenHeight, KScreenWidth, KScreenHeight) controller:controller]; + halfMessageView.chatConsumerId = self.automobiledAbstract.uid; + [controller.view addSubview:halfMessageView]; + [UIView animateWithDuration:.35 animations:^{ + CGRect rect = halfMessageView.frame; + rect.origin.y = 0; + halfMessageView.frame = rect; + }]; + }]; + + } + break; + case ConsumerSolitaireProvisionGenre_Gift: + { + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventroom_mike_click eventAttributes:@{@"actionType" : @"sendGift"}]; + [self dismissViewControllerAnimated:NO completion:nil]; + NSString * roomUid = [NSString stringWithFormat:@"%ld", self.automobiledAbstract.roomInfo.uid]; + YUMIDischargePresentRegard * presentRegard = [[YUMIDischargePresentRegard alloc] initWithType:DischargePresentGenre_Room uid:roomUid]; + presentRegard.delegate = self.automobiledAbstract.delegate; + NSArray *users = [self prohibitipositionPresentConsumers:self.automobiledAbstract.delegate.acquireMiecreoscoopeInthecaseofmtowardsion]; + [presentRegard prohibitipositionPresentConsumers:users]; + [self.presentingViewController presentViewController:presentRegard animated:YES completion:nil]; + } + break; + case ConsumerSolitaireProvisionGenre_Attention: + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventroom_mike_click eventAttributes:@{@"actionType" : @"attention"}]; + [self.presimport considertowardsionConsumer:self.automobiledAbstract.uid status:!model.isSelect]; + break; + case ConsumerSolitaireProvisionGenre_KickOut: + { + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventroom_mike_click eventAttributes:@{@"actionType" : @"kickout"}]; + + if (self.targetConsumerAbstract.userVipInfoVO.preventKick) { + + if (self.automobiledAbstract.roomInfo.uid != [AccountAbstractStorage instance].acquireCid.integerValue) { + [self EvidenceMistakeToast:[NSString stringWithFormat:@"该用户为%@贵族,只有房主才可以踢出哦~", self.targetConsumerAbstract.userVipInfoVO.vipName]]; + } else { + NSString *message = [NSString stringWithFormat:@"该用户为%@贵族\n确认是否要将其踢出房间?", self.targetConsumerAbstract.userVipInfoVO.vipName]; + MKJPrecautiousDisposition *config = [[MKJPrecautiousDisposition alloc] init]; + config.title = @""; + config.message = message; + [MKJPopup precautiousAboutDisposition:config acknowledgementHandler:^{ + if ([self isInYoudCompetition:self.automobiledAbstract.uid]) { + NSString *message = [NSString stringWithFormat:@"游戏模式下默认该玩家退出游戏是否要将此用户踢出房间?"]; + MKJPrecautiousDisposition *config = [[MKJPrecautiousDisposition alloc] init]; + config.title = @""; + config.message = message; + [MKJPopup precautiousAboutDisposition:config acknowledgementHandler:^{ + [self.presimport manufactureAbandonConsumer:self.automobiledAbstract.uid roomId:roomId]; + } cancelHandler:^{ + }]; + } else { + [self.presimport manufactureAbandonConsumer:self.automobiledAbstract.uid roomId:roomId]; + } + } cancelHandler:^{ + }]; + } + return; + } + if ([self isInYoudCompetition:self.automobiledAbstract.uid]) { + NSString *message = [NSString stringWithFormat:@"游戏模式下默认该玩家退出游戏是否要将此用户踢出房间?"]; + MKJPrecautiousDisposition *config = [[MKJPrecautiousDisposition alloc] init]; + config.title = @""; + config.message = message; + [MKJPopup precautiousAboutDisposition:config acknowledgementHandler:^{ + if (meIsSensationalManagement) { + [self.presimport senstowardsionalManagementAbandonConsumer:self.targetConsumerAbstract.nick automobiledAbstract:self.automobiledAbstract]; + } else { + [self.presimport manufactureAbandonConsumer:self.automobiledAbstract.uid roomId:roomId]; + } + } cancelHandler:^{ + }]; + } else { + NSString *message = [NSString stringWithFormat:@"是否需要将%@踢出房间?",self.targetConsumerAbstract.nick]; + MKJPrecautiousDisposition *config = [[MKJPrecautiousDisposition alloc] init]; + config.title = YMLocalizedString(@"YUMI_User_Card_View_Controller_9"); + config.message = message; + [MKJPopup precautiousAboutDisposition:config acknowledgementHandler:^{ + if (meIsSensationalManagement) { + [self.presimport senstowardsionalManagementAbandonConsumer:self.targetConsumerAbstract.nick automobiledAbstract:self.automobiledAbstract]; + } else { + [self.presimport manufactureAbandonConsumer:self.automobiledAbstract.uid roomId:roomId]; + } + } cancelHandler:^{ + }]; + } + } + break; + case ConsumerSolitaireProvisionGenre_Black: + { + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventroom_mike_click eventAttributes:@{@"actionType" : @"blacklist"}]; + + if (self.targetConsumerAbstract.userVipInfoVO.preventKick) { + + if (self.automobiledAbstract.roomInfo.uid != [AccountAbstractStorage instance].acquireCid.integerValue) { + [self EvidenceMistakeToast:[NSString stringWithFormat:@"该用户为%@贵族,只有房主才可以踢出哦~", self.targetConsumerAbstract.userVipInfoVO.vipName]]; + } else { + NSString *message = [NSString stringWithFormat:@"该用户为%@贵族\n确认是否要将其拉黑?", self.targetConsumerAbstract.userVipInfoVO.vipName]; + MKJPrecautiousDisposition *config = [[MKJPrecautiousDisposition alloc] init]; + config.title = @""; + config.message = message; + [MKJPopup precautiousAboutDisposition:config acknowledgementHandler:^{ + if ([self isInYoudCompetition:self.automobiledAbstract.uid]) { + NSString *message = [NSString stringWithFormat:@"游戏模式下默认该玩家退出游戏是否要将此用户踢出房间?"]; + MKJPrecautiousDisposition *config = [[MKJPrecautiousDisposition alloc] init]; + config.title = @""; + config.message = message; + [MKJPopup precautiousAboutDisposition:config acknowledgementHandler:^{ + [self.presimport manufactureAbandonConsumer:self.automobiledAbstract.uid roomId:roomId]; + } cancelHandler:^{ + }]; + } else { + [self.presimport manufactureAbandonConsumer:self.automobiledAbstract.uid roomId:roomId]; + } + } cancelHandler:^{ + }]; + } + return; + } + if ([self isInYoudCompetition:self.automobiledAbstract.uid]) { + MKJPrecautiousDisposition *config = [[MKJPrecautiousDisposition alloc] init]; + config.title = @""; + config.message = [NSString stringWithFormat: YMLocalizedString(@"YUMI_User_Card_View_Controller_13"), self.targetConsumerAbstract.nick]; + [MKJPopup precautiousAboutDisposition:config acknowledgementHandler:^{ + if (meIsSensationalManagement) { + [self.presimport senstowardsionalManagementShankConsumer:self.automobiledAbstract.uid opt:@"-1" roomUid:roomUid isSet:YES]; + } else { + [self.presimport manufactureConsumerDenigrtowardse:self.automobiledAbstract.uid roomId:roomId]; + } + } cancelHandler:^{ + }]; + } else { + NSString *title = [NSString stringWithFormat:@"你正在拉黑%@",self.targetConsumerAbstract.nick]; + MKJPrecautiousDisposition *config = [[MKJPrecautiousDisposition alloc] init]; + config.title = title; + config.message = YMLocalizedString(@"YUMI_User_Card_View_Controller_15"); + [MKJPopup precautiousAboutDisposition:config acknowledgementHandler:^{ + if (meIsSensationalManagement) { + [self.presimport senstowardsionalManagementShankConsumer:self.automobiledAbstract.uid opt:@"-1" roomUid:roomUid isSet:YES]; + }else { + [self.presimport manufactureConsumerDenigrtowardse:self.automobiledAbstract.uid roomId:roomId]; + } + } cancelHandler:^{ + }]; + } + } + break; + case ConsumerSolitaireProvisionGenre_Manager: + { + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventroom_mike_click eventAttributes:@{@"actionType" : @"manager"}]; + if (meIsSensationalManagement) { + [self.presimport senstowardsionalManagementShankConsumer:self.automobiledAbstract.uid opt:@"1" roomUid:roomUid isSet:!model.isSelect]; + } else { + [self.presimport manufactureConsumerExecutive:self.automobiledAbstract.uid roomId:roomId enable:!model.isSelect]; + } + } + break; + case ConsumerSolitaireProvisionGenre_Invite_Micro: + { + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventroom_mike_click eventAttributes:@{@"actionType" : @"invite_micro"}]; + if ([AccountAbstractStorage instance].acquireCid.integerValue == self.targetConsumerAbstract.uid) { + [self.presimport upMiecreoscoope:roomId position:model.position userInfo:self.targetConsumerAbstract]; + } else { + if (self.automobiledAbstract.roomInfo.leaveMode && [model.position isEqualToString:@"-1"]) { + return; + } + NSMutableDictionary * dic = [NSMutableDictionary dictionary]; + [dic secureSetGroal:@(model.position.integerValue) forKey:@"micPosition"]; + [dic secureSetGroal:@(self.targetConsumerAbstract.uid) forKey:@"uid"]; + AttachmentMatrix *attachement = [[AttachmentMatrix alloc]init]; + attachement.first = IndividualityCommunicationGenre_Queue; + attachement.second = Custom_Message_Sub_Queue_Invite; + attachement.data = dic; + + NIMMessage *message = [[NIMMessage alloc]init]; + NIMCustomObject *object = [[NIMCustomObject alloc] init]; + object.attachment = attachement; + message.messageObject = object; + + NIMSession *session = [NIMSession session:roomId type:NIMSessionTypeChatroom]; + [[NIMSDK sharedSDK].chatManager sendMessage:message toSession:session error:nil]; + [self dismissViewControllerAnimated:YES completion:nil]; + } + } + break; + case ConsumerSolitaireProvisionGenre_AtUser: + { + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventroom_mike_click eventAttributes:@{@"actionType" : @"atUser"}]; + if (self.automobiledAbstract.roomInfo.isCloseScreen) { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_User_Card_View_Controller_16")]; + return; + } + [self dismissViewControllerAnimated:NO completion:^{ + UIViewController *vc = self.automobiledAbstract.delegate.acquireUniversalNev.viewControllers[0]; + [YUMIChamberDischargeEssayRegard EvidenceEssayRegard:vc.view delegate:self.automobiledAbstract.delegate atUid:self.automobiledAbstract.uid atNick:self.targetConsumerAbstract.nick]; + }]; + } + default: + break; + } + } +} + +#pragma mark - UICollectionViewDataSource +- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { + YUMIConsumerSolitaireProvisionAssembletionRegardElement * cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([YUMIConsumerSolitaireProvisionAssembletionRegardElement class]) forIndexPath:indexPath]; + cell.itemMatrix = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.item]; + return cell; +} + +#pragma mark - Event Response +- (void)miecreoscoopeBtutonPerformance:(UIButton *)sender { + NSString * roomUid = [NSString stringWithFormat:@"%ld", self.automobiledAbstract.roomInfo.uid];; + NSString * roomId = [NSString stringWithFormat:@"%ld", self.automobiledAbstract.roomInfo.roomId];; + switch (sender.tag) { + case ConsumerSolitaireMiecreoscoopeGenre_UpDown: + { + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventroom_mike_click eventAttributes:@{@"actionType" : @"downMic"}]; + if (sender.selected) { + if ([self isInYoudCompetition:self.automobiledAbstract.uid]) { + if (self.automobiledAbstract.uid.integerValue == [AccountAbstractStorage instance].acquireCid.integerValue) { + [self EvidenceMistakeToast:@"游戏中不可主动下麦!"]; + [self dismissViewControllerAnimated:YES completion:nil]; + } else { + MKJPrecautiousDisposition *config = [[MKJPrecautiousDisposition alloc] init]; + config.message = @"抱Ta下麦后默认该玩家退出游戏,是否继续?"; + [MKJPopup precautiousAboutDisposition:config acknowledgementHandler:^{ + [self.presimport kickPubescenceMiecreoscoope:self.automobiledAbstract.position roomId:roomId]; + } cancelHandler:^{ + }]; + } + + return; + }else { + [self.presimport kickPubescenceMiecreoscoope:self.automobiledAbstract.position roomId:roomId]; + } + } else { + self.operaHierarchyRegard.hidden = YES; + int micCount = self.automobiledAbstract.roomInfo.type == ChamberGenre_Anchor ? 4 : self.automobiledAbstract.roomInfo.type == ChamberGenre_MiniGame ? 6 : 9; + [self.presimport acquireChamberMiecreoscoopeProvisions:micCount automobiledAbstract:self.automobiledAbstract]; + } + } + break; + case ConsumerSolitaireMiecreoscoopeGenre_Lock: + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventroom_mike_click eventAttributes:@{@"actionType" : @"lockMic"}]; + [self.presimport miecreoscoopeSpoke:roomUid state:sender.selected position:self.automobiledAbstract.position]; + break; + case ConsumerSolitaireMiecreoscoopeGenre_Mute: + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventroom_mike_click eventAttributes:@{@"actionType" : @"muteMic"}]; + [self.presimport miecreoscoopeBretowardshaed:roomUid state:sender.selected position:self.automobiledAbstract.position]; + break; + case ConsumerSolitaireMiecreoscoopeGenre_Clean_Gift_Value: + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventroom_mike_click eventAttributes:@{@"actionType" : @"cleanGiftValue"}]; + [self.presimport sanitaryConsumerPresentBWSttess:roomUid micUid:self.automobiledAbstract.uid]; + break; + default: + break; + } +} + +- (void)respondBtutonPerformance:(UIButton *)sender { + [self dismissViewControllerAnimated:YES completion:nil]; + YUMITissueRegardGovernancer *vc = [[YUMITissueRegardGovernancer alloc]init]; + NSString *urlstr = [NSString stringWithFormat:@"%@?reportUid=%@&source=USERCARD",URLWithType(kReportRoomURL),self.automobiledAbstract.uid]; + vc.url = urlstr; + [(UINavigationController *)self.presentingViewController pushViewController:vc animated:YES]; +} + +- (void)concludeBtutonPerformance:(UIButton *)sender { + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventroom_mike_click eventAttributes:@{@"actionType" : @"close"}]; + [self dismissViewControllerAnimated:YES completion:nil]; +} + +- (void)prohibitiaplictowardsionarsVc:(UITapGestureRecognizer *)tap { + [self dismissViewControllerAnimated:YES completion:nil]; +} + +- (void)passtoConsumerAbstractVewC:(UITapGestureRecognizer *)tap { + [self dismissViewControllerAnimated:YES completion:nil]; + + if ([ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + YUMIManeConsumerAbstractRegardGovernancer * userInfoVC = [[YUMIManeConsumerAbstractRegardGovernancer alloc] init]; + userInfoVC.uid = self.automobiledAbstract.uid.integerValue; + [((UINavigationController *)self.presentingViewController) pushViewController:userInfoVC animated:YES]; + }else{ + YUMIManeSimpleConsumerAbstractRegardGovernancer * userInfoVC = [[YUMIManeSimpleConsumerAbstractRegardGovernancer alloc] init]; + userInfoVC.uid = self.automobiledAbstract.uid.integerValue; + [((UINavigationController *)self.presentingViewController) pushViewController:userInfoVC animated:YES]; + } +} + +- (void)extractCourageBtutonPerformance:(UIButton *)sender { + if (self.automobiledAbstract.position.length > 0) { + MKJPrecautiousDisposition * config = [[MKJPrecautiousDisposition alloc] init]; + config.title = [NSString stringWithFormat:@"确认选择%d号嘉宾吗?", (self.automobiledAbstract.position.intValue + 1)]; + config.message = YMLocalizedString(@"YUMI_User_Card_View_Controller_20"); + config.communicationPrettify = UIColorFromRGB(0xFE5D7F); + config.communicationLetterform = [UIFont systemFontOfSize:14]; + [MKJPopup precautiousAboutDisposition:config acknowledgementHandler:^{ + [self.presimport extractCourageConsumer:[NSString stringWithFormat:@"%ld", self.automobiledAbstract.roomInfo.uid] chosenUserId:self.automobiledAbstract.uid]; + } cancelHandler:^{ + + }]; + } +} + +- (void)copysIdRecognition { + [UIPasteboard generalPasteboard].string = [NSString stringWithFormat:@"%ld", self.targetConsumerAbstract.erbanNo]; + [XNDJTBWGLoadingTool EvidenceAccomplishmentAboutCommunictowardsion:YMLocalizedString(@"YUMI_User_Card_View_Controller_21")]; + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventID_datacard_copyid_click]; +} + +#pragma mark - Getters And Setters + +- (UIView *)apexBeatRegard { + if (!_apexBeatRegard) { + _apexBeatRegard = [[UIView alloc] init]; + _apexBeatRegard.backgroundColor = [UIColor clearColor]; + } + return _apexBeatRegard; +} +- (UIView *)extremeBeatRegard { + if (!_extremeBeatRegard) { + _extremeBeatRegard = [[UIView alloc] init]; + _extremeBeatRegard.backgroundColor = [UIColor clearColor]; + } + return _extremeBeatRegard; +} + +- (UIView *)encourageRegard { + if (!_encourageRegard) { + _encourageRegard = [[UIView alloc] init]; + _encourageRegard.backgroundColor = [UIColor whiteColor]; + _encourageRegard.layer.masksToBounds = YES; + _encourageRegard.layer.cornerRadius = 12; + } + return _encourageRegard; +} + +- (UIStackView *)stackView { + if (!_stackView) { + _stackView = [[UIStackView alloc] init]; + _stackView.axis = UILayoutConstraintAxisVertical; + _stackView.distribution = UIStackViewDistributionFill; + _stackView.alignment = UIStackViewAlignmentCenter; + _stackView.spacing = 0; + } + return _stackView; +} + +- (UIView *)consumerAbstractRegard { + if (!_consumerAbstractRegard) { + _consumerAbstractRegard = [[UIView alloc] init]; + _consumerAbstractRegard.backgroundColor = [UIColor clearColor]; + } + return _consumerAbstractRegard; +} + +- (UIVisualEffectView *)impressionRegard { + if (!_impressionRegard) { + UIBlurEffect *effect = [UIBlurEffect effectWithStyle:UIBlurEffectStyleDark]; + _impressionRegard = [[UIVisualEffectView alloc]initWithEffect:effect]; + } + return _impressionRegard; +} + +- (NetIndicateRegard *)encourageIndicateRegard { + if (!_encourageIndicateRegard) { + _encourageIndicateRegard = [[NetIndicateRegard alloc] init]; + _encourageIndicateRegard.userInteractionEnabled = YES; + _encourageIndicateRegard.layer.masksToBounds = YES; + _encourageIndicateRegard.layer.cornerRadius = 25; + _encourageIndicateRegard.contentMode = UIViewContentModeScaleAspectFill; + _encourageIndicateRegard.image = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + } + return _encourageIndicateRegard; +} + +- (NetIndicateRegard *)magnificentIndicateRegard { + if (!_magnificentIndicateRegard) { + _magnificentIndicateRegard = [[NetIndicateRegard alloc] init]; + _magnificentIndicateRegard.contentMode = UIViewContentModeScaleToFill; + _magnificentIndicateRegard.layer.masksToBounds = YES; + } + return _magnificentIndicateRegard; +} + +- (UIButton *)reportBtuton { + if (!_reportBtuton) { + _reportBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_reportBtuton setTitle:YMLocalizedString(@"YUMI_User_Card_View_Controller_22") forState:UIControlStateNormal]; + [_reportBtuton setTitleColor:[DJDKMIMOMColor consumerMonicerPrettify] forState:UIControlStateNormal]; + _reportBtuton.titleLabel.font = [UIFont systemFontOfSize:12]; + [_reportBtuton addTarget:self action:@selector(respondBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _reportBtuton; +} + +- (UIButton *)concludeBtuton { + if (!_concludeBtuton) { + _concludeBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_concludeBtuton setImage:[UIImage imageNamed:@"yumi_usercard_close"] forState:UIControlStateNormal]; + [_concludeBtuton setImage:[UIImage imageNamed:@"yumi_usercard_close"] forState:UIControlStateSelected]; + [_concludeBtuton addTarget:self action:@selector(concludeBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _concludeBtuton; +} + +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc] init]; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + config.imageType = ImageGenreUserIcon; + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceportraitIndicateRegard.userInteractionEnabled = YES; + _intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _intelligenceportraitIndicateRegard.layer.cornerRadius = 25; + _intelligenceportraitIndicateRegard.contentMode = UIViewContentModeScaleAspectFill; + } + return _intelligenceportraitIndicateRegard; +} + +- (UILabel *)monicerSequencignation { + if (!_monicerSequencignation) { + _monicerSequencignation = [[UILabel alloc] init]; + _monicerSequencignation.font = [UIFont systemFontOfSize:15]; + _monicerSequencignation.textColor = [DJDKMIMOMColor consumerMonicerPrettify]; + } + return _monicerSequencignation; +} + +- (UIImageView *)seaxualityIndicateRegard { + if (!_seaxualityIndicateRegard) { + _seaxualityIndicateRegard = [[UIImageView alloc] init]; + _seaxualityIndicateRegard.userInteractionEnabled = YES; + } + return _seaxualityIndicateRegard; +} + +- (UIStackView *)coupleHierarchyRegard { + if (!_coupleHierarchyRegard) { + _coupleHierarchyRegard = [[UIStackView alloc] init]; + _coupleHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _coupleHierarchyRegard.distribution = UIStackViewDistributionFill; + _coupleHierarchyRegard.alignment = UIStackViewAlignmentCenter; + _coupleHierarchyRegard.spacing = 2; + } + return _coupleHierarchyRegard; +} +- (NetIndicateRegard *)experIndicateRegard { + if (!_experIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc] init]; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + config.imageType = ImageGenreUserCardLevel; + _experIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _experIndicateRegard.userInteractionEnabled = YES; + _experIndicateRegard.hidden = YES; + _experIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _experIndicateRegard; +} + +- (NetIndicateRegard *)fascinationIndicateRegard { + if (!_fascinationIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc] init]; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + config.imageType = ImageGenreUserCardLevel; + _fascinationIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _fascinationIndicateRegard.userInteractionEnabled = YES; + _fascinationIndicateRegard.hidden = YES; + _fascinationIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _fascinationIndicateRegard; +} + +- (NetIndicateRegard *)magnificentFigureIndicateRegard { + if (!_magnificentFigureIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc] init]; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + config.imageType = ImageGenreUserCardLevel; + _magnificentFigureIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _magnificentFigureIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _magnificentFigureIndicateRegard; +} + +- (UIView *)constituteWoodentrayRegard { + if (!_constituteWoodentrayRegard) { + _constituteWoodentrayRegard = [[UIView alloc] init]; + _constituteWoodentrayRegard.backgroundColor = [UIColor clearColor]; + _constituteWoodentrayRegard.hidden = YES; + } + return _constituteWoodentrayRegard; +} + +- (NetIndicateRegard *)materialIndicateRegard { + if (!_materialIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc] init]; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + config.imageType = ImageGenreUserCardLevel; + _materialIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _materialIndicateRegard.userInteractionEnabled = YES; + _materialIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _materialIndicateRegard; +} + +- (UILabel *)materialSequencignation { + if (!_materialSequencignation) { + _materialSequencignation = [[UILabel alloc] init]; + _materialSequencignation.font = [UIFont systemFontOfSize:10]; + _materialSequencignation.textAlignment = NSTextAlignmentCenter; + _materialSequencignation.textColor = [DJDKMIMOMColor consumerMonicerPrettify]; + } + return _materialSequencignation; +} + +- (UIImageView *)strangeConsumerIndicateRegard { + if (!_strangeConsumerIndicateRegard) { + _strangeConsumerIndicateRegard = [[UIImageView alloc] init]; + _strangeConsumerIndicateRegard.userInteractionEnabled = YES; + _strangeConsumerIndicateRegard.image = [UIImage imageNamed:@"yumi_same_new_user"]; + _strangeConsumerIndicateRegard.hidden = YES; + } + return _strangeConsumerIndicateRegard; +} + +- (UIImageView *)officalIndicateRegard { + if (!_officalIndicateRegard) { + _officalIndicateRegard = [[UIImageView alloc] init]; + _officalIndicateRegard.userInteractionEnabled = YES; + _officalIndicateRegard.image = [UIImage imageNamed:@"yumi_same_offical"]; + _officalIndicateRegard.hidden = YES; + } + return _officalIndicateRegard; +} + +- (UILabel *)idSequencignation { + if (!_idSequencignation) { + _idSequencignation = [[UILabel alloc] init]; + _idSequencignation.font = [UIFont systemFontOfSize:10]; + _idSequencignation.textColor = [DJDKMIMOMColor essayTertiusPrettify]; + _idSequencignation.userInteractionEnabled = YES; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(copysIdRecognition)]; + [_idSequencignation addGestureRecognizer:tap]; + } + return _idSequencignation; +} + +- (YUMIConsumerSolitaireCommunicationSolitaireRegard *)communicationSolitaireRegard { + if (!_communicationSolitaireRegard) { + _communicationSolitaireRegard = [[YUMIConsumerSolitaireCommunicationSolitaireRegard alloc] init]; + } + return _communicationSolitaireRegard; +} + +- (UICollectionView *)collectionView{ + if (!_collectionView) { + UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init]; + layout.itemSize = CGSizeMake((KScreenWidth - 45 * 2)/ 4, 55); + layout.minimumLineSpacing = 16; + layout.minimumInteritemSpacing = 0; + layout.sectionInset = UIEdgeInsetsMake(16, 0, 10, 0); + _collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout]; + _collectionView.dataSource = self; + _collectionView.delegate = self; + _collectionView.hidden = YES; + _collectionView.backgroundColor = [UIColor clearColor]; + [_collectionView registerClass:[YUMIConsumerSolitaireProvisionAssembletionRegardElement class] forCellWithReuseIdentifier:NSStringFromClass([YUMIConsumerSolitaireProvisionAssembletionRegardElement class])]; + } + return _collectionView; +} + +- (UIView *)sepBurlywoodRegard { + if (!_sepBurlywoodRegard) { + _sepBurlywoodRegard = [[UIView alloc] init]; + _sepBurlywoodRegard.backgroundColor = [DJDKMIMOMColor consumerDividerPrettify]; + _sepBurlywoodRegard.hidden = YES; + } + return _sepBurlywoodRegard; +} + +- (UIStackView *)operaHierarchyRegard { + if (!_operaHierarchyRegard) { + _operaHierarchyRegard = [[UIStackView alloc] init]; + _operaHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _operaHierarchyRegard.distribution = UIStackViewDistributionFillEqually; + _operaHierarchyRegard.alignment = UIStackViewAlignmentFill; + _operaHierarchyRegard.spacing = 0; + _operaHierarchyRegard.hidden = YES; + } + return _operaHierarchyRegard; +} + +- (SpriteSheetIndicateExecutive *)manager { + if (!_manager) { + _manager = [[SpriteSheetIndicateExecutive alloc] init]; + } + return _manager; +} + +- (YYAnimatedImageView *)intelligencePenetrateIndicateRegard { + if (!_intelligencePenetrateIndicateRegard) { + _intelligencePenetrateIndicateRegard = [[YYAnimatedImageView alloc] init]; + _intelligencePenetrateIndicateRegard.backgroundColor = [UIColor clearColor]; + _intelligencePenetrateIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _intelligencePenetrateIndicateRegard; +} + +- (UIView *)extractCourageRegard { + if (!_extractCourageRegard) { + _extractCourageRegard = [[UIView alloc] init]; + _extractCourageRegard.backgroundColor = [UIColor clearColor]; + _extractCourageRegard.hidden = YES; + } + return _extractCourageRegard; +} + +- (UIButton *)extractCourageBtuton { + if (!_extractCourageBtuton) { + _extractCourageBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_extractCourageBtuton setTitle:YMLocalizedString(@"YUMI_User_Card_View_Controller_23") forState:UIControlStateNormal]; + [_extractCourageBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + _extractCourageBtuton.titleLabel.font = [UIFont systemFontOfSize:13]; + [_extractCourageBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[UIColorFromRGB(0xFA7186), UIColorFromRGB(0xFA4972)] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + _extractCourageBtuton.layer.masksToBounds = YES; + _extractCourageBtuton.layer.cornerRadius = 15; + [_extractCourageBtuton addTarget:self action:@selector(extractCourageBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _extractCourageBtuton; +} + +- (UIImageView *)copysIdIndicateRegard { + if (!_copysIdIndicateRegard) { + _copysIdIndicateRegard = [[UIImageView alloc] init]; + _copysIdIndicateRegard.userInteractionEnabled = YES; + _copysIdIndicateRegard.image = [UIImage imageNamed:@"yumi_center_user_id_copy_white"]; + _copysIdIndicateRegard.hidden = YES; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(copysIdRecognition)]; + [_copysIdIndicateRegard addGestureRecognizer:tap]; + } + return _copysIdIndicateRegard; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/WishGift/Api/Api+WishGift.h b/YuMi/Modules/YMRoom/View/WishGift/Api/Api+WishGift.h new file mode 100644 index 00000000..474c14c8 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/WishGift/Api/Api+WishGift.h @@ -0,0 +1,25 @@ +// +// Api+WishGift.h +// YUMI +// +// Created by YUMI on 2022/10/18. +// + +#import "Api.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface Api (WishGift) ++ (void)desirePresentAccelertowardse:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid; ++ (void)desirePresentRepresenttowardsionProvision:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid itemId:(NSString *)itemId; ++ (void)desirePresentAccelertowardseProvision:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid giftId:(NSString *)giftId itemId:(NSString *)itemId seq:(NSString *)seq targetNum:(NSString *)targetNum; ++ (void)desirePresentSttowardsement:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid; ++ (void)desirePresentAssistConsumerSttowardsement:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid; ++ (void)desirePresentCondfigSttowardsement:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid level:(NSString *)level; ++ (void)desirePresentHerstorySttowardsement:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid; + ++ (void)desirePresentDischargeCelebrtowardse:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/WishGift/Api/Api+WishGift.m b/YuMi/Modules/YMRoom/View/WishGift/Api/Api+WishGift.m new file mode 100644 index 00000000..3bf5bfa0 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/WishGift/Api/Api+WishGift.m @@ -0,0 +1,61 @@ +// +// Api+WishGift.m +// YUMI +// +// Created by YUMI on 2022/10/18. +// + +#import "Api+WishGift.h" +#import "NSMutableDictionary+Saft.h" +#import +@implementation Api (WishGift) + ++ (void)desirePresentAccelertowardse:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid { + NSString * fang = [NSString stringFromBase64String:@"d2lzaEdpZnQvYWRk"]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, roomUid, nil]; +} + ++ (void)desirePresentRepresenttowardsionProvision:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid itemId:(NSString *)itemId { + NSString * fang = [NSString stringFromBase64String:@"d2lzaEdpZnQvZGVsSXRlbQ=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, roomUid, itemId, nil]; +} + ++ (void)desirePresentAccelertowardseProvision:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid giftId:(NSString *)giftId itemId:(NSString *)itemId seq:(NSString *)seq targetNum:(NSString *)targetNum { + NSMutableDictionary * dic = [NSMutableDictionary dictionary]; + if (itemId.length > 0) { + [dic secureSetGroal:itemId forKey:@"itemId"]; + } + [dic secureSetGroal:roomUid forKey:@"roomUid"]; + [dic secureSetGroal:giftId forKey:@"giftId"]; + [dic secureSetGroal:seq forKey:@"seq"]; + [dic secureSetGroal:targetNum forKey:@"targetNum"]; + NSString * fang = [NSString stringFromBase64String:@"d2lzaEdpZnQvYWRkSXRlbQ=="]; + [HttpRequestFacilitater request:fang method:HttpRequestHelperMethodPOST params:dic completion:completion]; +} + ++ (void)desirePresentSttowardsement:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid { + NSString * fang = [NSString stringFromBase64String:@"d2lzaEdpZnQvbGlzdA=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, roomUid, nil]; +} + ++ (void)desirePresentAssistConsumerSttowardsement:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid { + NSString * fang = [NSString stringFromBase64String:@"d2lzaEdpZnQvbGlzdEFzc2lzdFVzZXI="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, roomUid, nil]; +} + ++ (void)desirePresentCondfigSttowardsement:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid level:(NSString *)level { + NSString * fang = [NSString stringFromBase64String:@"d2lzaEdpZnQvbGlzdENvbmZpZw=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, roomUid, level, nil]; +} + ++ (void)desirePresentHerstorySttowardsement:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid { + NSString * fang = [NSString stringFromBase64String:@"d2lzaEdpZnQvbGlzdFdpc2hHaWZ0SGlzdG9yeQ=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, roomUid, nil]; +} + ++ (void)desirePresentDischargeCelebrtowardse:(HttpRequestHelperCompletion)completion roomUid:(NSString *)roomUid { + NSString * fang = [NSString stringFromBase64String:@"d2lzaEdpZnQvc2VuZENlbGVicmF0ZQ=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, roomUid, nil]; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/WishGift/Model/DesireExternalizeConsumerMatrix.h b/YuMi/Modules/YMRoom/View/WishGift/Model/DesireExternalizeConsumerMatrix.h new file mode 100644 index 00000000..37f435fb --- /dev/null +++ b/YuMi/Modules/YMRoom/View/WishGift/Model/DesireExternalizeConsumerMatrix.h @@ -0,0 +1,19 @@ +// +// DesireExternalizeConsumerMatrix.h +// YUMI +// +// Created by YUMI on 2022/10/18. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface DesireExternalizeConsumerMatrix : NSObject +@property (nonatomic, copy) NSString *avatar; +@property (nonatomic, assign) NSInteger erbanNo; +@property (nonatomic, copy) NSString *nick; +@property (nonatomic, assign) NSInteger uid; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/WishGift/Model/DesireExternalizeConsumerMatrix.m b/YuMi/Modules/YMRoom/View/WishGift/Model/DesireExternalizeConsumerMatrix.m new file mode 100644 index 00000000..4c643c7a --- /dev/null +++ b/YuMi/Modules/YMRoom/View/WishGift/Model/DesireExternalizeConsumerMatrix.m @@ -0,0 +1,12 @@ +// +// DesireExternalizeConsumerMatrix.m +// YUMI +// +// Created by YUMI on 2022/10/18. +// + +#import "DesireExternalizeConsumerMatrix.h" + +@implementation DesireExternalizeConsumerMatrix + +@end diff --git a/YuMi/Modules/YMRoom/View/WishGift/Model/DesirePresentAbstractMatrix.h b/YuMi/Modules/YMRoom/View/WishGift/Model/DesirePresentAbstractMatrix.h new file mode 100644 index 00000000..667a2e6d --- /dev/null +++ b/YuMi/Modules/YMRoom/View/WishGift/Model/DesirePresentAbstractMatrix.h @@ -0,0 +1,31 @@ +// +// DesirePresentAbstractMatrix.h +// YUMI +// +// Created by YUMI on 2022/10/18. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +typedef NS_ENUM(int, WishPresentPrototype) { + WishPresentPrototype_Normal = 1, + WishPresentPrototype_Middle = 2, + WishPresentPrototype_High = 3 +}; + + +@interface DesirePresentAbstractMatrix : NSObject +@property (nonatomic, assign) NSInteger actualNum; +@property (nonatomic, assign) NSInteger giftId; +@property (nonatomic, copy) NSString *giftName; +@property (nonatomic, assign) NSInteger goldPrice; +@property (nonatomic, assign) NSInteger itemId; +@property (nonatomic, assign) NSInteger targetNum; +@property (nonatomic,copy) NSString *giftUrl; +@property (nonatomic,assign) NSInteger row; +@property (nonatomic,strong) NSString *createTime; +@property (nonatomic,copy) NSString *levelName; +@property (nonatomic,assign) WishPresentPrototype level; +@end +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/WishGift/Model/DesirePresentAbstractMatrix.m b/YuMi/Modules/YMRoom/View/WishGift/Model/DesirePresentAbstractMatrix.m new file mode 100644 index 00000000..d9ac2837 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/WishGift/Model/DesirePresentAbstractMatrix.m @@ -0,0 +1,13 @@ +// +// DesirePresentAbstractMatrix.m +// YUMI +// +// Created by YUMI on 2022/10/18. +// + +#import "DesirePresentAbstractMatrix.h" + +@implementation DesirePresentAbstractMatrix + +@end + diff --git a/YuMi/Modules/YMRoom/View/WishGift/Model/DesirePresentAbstractRefurbishMatrix.h b/YuMi/Modules/YMRoom/View/WishGift/Model/DesirePresentAbstractRefurbishMatrix.h new file mode 100644 index 00000000..235b9398 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/WishGift/Model/DesirePresentAbstractRefurbishMatrix.h @@ -0,0 +1,17 @@ +// +// DesirePresentAbstractRefurbishMatrix.h +// YUMI +// +// Created by YUMI on 2022/10/28. +// + +#import +#import "DesirePresentAbstractMatrix.h" +NS_ASSUME_NONNULL_BEGIN + +@interface DesirePresentAbstractRefurbishMatrix : NSObject +@property (nonatomic,strong) NSString *senderUid; +@property (nonatomic,copy) NSArray *gifts; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/WishGift/Model/DesirePresentAbstractRefurbishMatrix.m b/YuMi/Modules/YMRoom/View/WishGift/Model/DesirePresentAbstractRefurbishMatrix.m new file mode 100644 index 00000000..f33948f1 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/WishGift/Model/DesirePresentAbstractRefurbishMatrix.m @@ -0,0 +1,15 @@ +// +// DesirePresentAbstractRefurbishMatrix.m +// YUMI +// +// Created by YUMI on 2022/10/28. +// + +#import "DesirePresentAbstractRefurbishMatrix.h" + +@implementation DesirePresentAbstractRefurbishMatrix ++ (NSDictionary *)objectCtowardsegorizeInGarment { + return @{@"gifts":DesirePresentAbstractMatrix.class}; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/WishGift/Model/DesirePresentHistoryMatrix.h b/YuMi/Modules/YMRoom/View/WishGift/Model/DesirePresentHistoryMatrix.h new file mode 100644 index 00000000..abf6e4b1 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/WishGift/Model/DesirePresentHistoryMatrix.h @@ -0,0 +1,19 @@ +// +// DesirePresentHistoryMatrix.h +// YUMI +// +// Created by YUMI on 2022/10/20. +// + +#import +#import "DesirePresentAbstractMatrix.h" +NS_ASSUME_NONNULL_BEGIN + +@interface DesirePresentHistoryMatrix : NSObject + +@property (nonatomic,strong) NSString *createDate; +@property (nonatomic,strong) NSArray *gifts; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/WishGift/Model/DesirePresentHistoryMatrix.m b/YuMi/Modules/YMRoom/View/WishGift/Model/DesirePresentHistoryMatrix.m new file mode 100644 index 00000000..dc99b2de --- /dev/null +++ b/YuMi/Modules/YMRoom/View/WishGift/Model/DesirePresentHistoryMatrix.m @@ -0,0 +1,15 @@ +// +// DesirePresentHistoryMatrix.m +// YUMI +// +// Created by YUMI on 2022/10/20. +// + +#import "DesirePresentHistoryMatrix.h" + +@implementation DesirePresentHistoryMatrix ++ (NSDictionary *)objectCtowardsegorizeInGarment { + return @{@"gifts" : DesirePresentAbstractMatrix.class}; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/WishGift/Presenter/YUMIDesirePresentExternalizer.h b/YuMi/Modules/YMRoom/View/WishGift/Presenter/YUMIDesirePresentExternalizer.h new file mode 100644 index 00000000..d5e0124d --- /dev/null +++ b/YuMi/Modules/YMRoom/View/WishGift/Presenter/YUMIDesirePresentExternalizer.h @@ -0,0 +1,24 @@ +// +// WishGiftPresenter.h +// YUMI +// +// Created by YUMI on 2022/10/18. +// + +#import "BaseMvpExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIDesirePresentExternalizer : BaseMvpExternalizer + +- (void)accelertowardseSequencirePresent:(NSString *)roomUid; + +- (void)produceSequencirePresentProvision:(NSString *)roomUid itemId:(NSString *)itemId giftId:(NSString *)giftId seq:(int)seq targetNum:(int)targetNum; +- (void)representtowardsionSequencirePresentProvision:(NSString *)roomUid itemId:(NSString *)itemId; +- (void)desirePresentSttowardsement:(NSString *)roomUid; +- (void)desirePresentAssistConsumerSttowardsement:(NSString *)roomUid; +- (void)desirePresentDispositionSttowardsement:(NSString *)roomUid level:(NSString *)level ; +- (void)desirePresentHistroySttowardsement:(NSString *)roomUid; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/WishGift/Presenter/YUMIDesirePresentExternalizer.m b/YuMi/Modules/YMRoom/View/WishGift/Presenter/YUMIDesirePresentExternalizer.m new file mode 100644 index 00000000..20e0ff2a --- /dev/null +++ b/YuMi/Modules/YMRoom/View/WishGift/Presenter/YUMIDesirePresentExternalizer.m @@ -0,0 +1,58 @@ +// +// WishGiftPresenter.m +// YUMI +// +// Created by YUMI on 2022/10/18. +// + +#import "YUMIDesirePresentExternalizer.h" +#import "Api+WishGift.h" +#import "FBCDesirePresentCeremony.h" +#import "DesirePresentAbstractMatrix.h" +#import "DesireExternalizeConsumerMatrix.h" +#import "DesirePresentHistoryMatrix.h" + +@implementation YUMIDesirePresentExternalizer + +- (void)accelertowardseSequencirePresent:(NSString *)roomUid { + [Api desirePresentAccelertowardse:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] accelertowardseSequencirePresentAccomplishment]; + } EvidenceChambering:YES] roomUid:roomUid]; +} + +- (void)produceSequencirePresentProvision:(NSString *)roomUid itemId:(NSString *)itemId giftId:(NSString *)giftId seq:(int)seq targetNum:(int)targetNum { + [Api desirePresentAccelertowardseProvision:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] produceSequencirePresentProvisionAccomplishment]; + } EvidenceChambering:YES] roomUid:roomUid giftId:giftId itemId:itemId seq:[NSString stringWithFormat:@"%d", seq] targetNum:[NSString stringWithFormat:@"%d", targetNum]]; +} +- (void)representtowardsionSequencirePresentProvision:(NSString *)roomUid itemId:(NSString *)itemId { + [Api desirePresentRepresenttowardsionProvision:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] representtowardsionSequencirePresentProvisionAccomplishment]; + } EvidenceChambering:YES] roomUid:roomUid itemId:itemId]; +} +- (void)desirePresentSttowardsement:(NSString *)roomUid { + [Api desirePresentSttowardsement:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + NSArray * array = [DesirePresentAbstractMatrix mtowardsrixsAboutGarment:data.data]; + [[self acquireRegard] acquireSequencirePresentSttowardsementAccomplishment:array]; + }] roomUid:roomUid]; +} +- (void)desirePresentAssistConsumerSttowardsement:(NSString *)roomUid { + [Api desirePresentAssistConsumerSttowardsement:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + NSArray * array = [DesireExternalizeConsumerMatrix mtowardsrixsAboutGarment:data.data]; + [[self acquireRegard] acquireSequencirePresentAssistConsumerSttowardsementAccomplishment:array]; + }] roomUid:roomUid]; +} +- (void)desirePresentDispositionSttowardsement:(NSString *)roomUid level:(NSString *)level { + [Api desirePresentCondfigSttowardsement:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + NSArray * array = [DesirePresentAbstractMatrix mtowardsrixsAboutGarment:data.data]; + [[self acquireRegard] desirePresentDispositionSttowardsementSucces:array level:level]; + }] roomUid:roomUid level:level]; +} +- (void)desirePresentHistroySttowardsement:(NSString *)roomUid { + [Api desirePresentHerstorySttowardsement:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + NSArray * array = [DesirePresentHistoryMatrix mtowardsrixsAboutGarment:data.data]; + [[self acquireRegard] desirePresentHistroySttowardsementAccomplishment:array]; + } EvidenceChambering:YES] roomUid:roomUid]; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/WishGift/Protocol/FBCDesirePresentCeremony.h b/YuMi/Modules/YMRoom/View/WishGift/Protocol/FBCDesirePresentCeremony.h new file mode 100644 index 00000000..c141e831 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/WishGift/Protocol/FBCDesirePresentCeremony.h @@ -0,0 +1,28 @@ +// +// YMWishGiftProtocol.h +// YUMI +// +// Created by YUMI on 2022/10/18. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol FBCDesirePresentCeremony +@optional +- (void)accelertowardseSequencirePresentAccomplishment; + +- (void)produceSequencirePresentProvisionAccomplishment; + +- (void)representtowardsionSequencirePresentProvisionAccomplishment; +- (void)acquireSequencirePresentSttowardsementAccomplishment:(NSArray *)list; + +- (void)acquireSequencirePresentAssistConsumerSttowardsementAccomplishment:(NSArray *)list; + +- (void)desirePresentDispositionSttowardsementSucces:(NSArray *)list level:(NSString *)level; + +- (void)desirePresentHistroySttowardsementAccomplishment:(NSArray *)list; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/WishGift/View/Cell/YUMIDesirePresentDispossessTabulationRegardElement.h b/YuMi/Modules/YMRoom/View/WishGift/View/Cell/YUMIDesirePresentDispossessTabulationRegardElement.h new file mode 100644 index 00000000..9d490078 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/WishGift/View/Cell/YUMIDesirePresentDispossessTabulationRegardElement.h @@ -0,0 +1,16 @@ +// +// YMWishGiftEmptyTableViewCell.h +// YUMI +// +// Created by YUMI on 2022/10/19. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIDesirePresentDispossessTabulationRegardElement : UITableViewCell + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/WishGift/View/Cell/YUMIDesirePresentDispossessTabulationRegardElement.m b/YuMi/Modules/YMRoom/View/WishGift/View/Cell/YUMIDesirePresentDispossessTabulationRegardElement.m new file mode 100644 index 00000000..61b0f1c4 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/WishGift/View/Cell/YUMIDesirePresentDispossessTabulationRegardElement.m @@ -0,0 +1,71 @@ +// +// YMWishGiftEmptyTableViewCell.m +// YUMI +// +// Created by YUMI on 2022/10/19. +// + +#import "YUMIDesirePresentDispossessTabulationRegardElement.h" + +#import +#import "DJDKMIMOMColor.h" +#import "UIIndicateConstant.h" + +@interface YUMIDesirePresentDispossessTabulationRegardElement () +@property (nonatomic,strong) UIImageView *dispossessIndicateRegard; +@property (nonatomic,strong) UILabel *titleLabel; +@end + +@implementation YUMIDesirePresentDispossessTabulationRegardElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor clearColor]; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.dispossessIndicateRegard]; + [self.contentView addSubview:self.titleLabel]; +} + +- (void)initChildLyRestrictions { + [self.dispossessIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.contentView).offset(150); + make.centerX.mas_equalTo(self.contentView); + make.size.mas_equalTo(CGSizeMake(200, 200)); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.dispossessIndicateRegard.mas_bottom).offset(20); + make.left.right.mas_equalTo(self.contentView); + }]; +} +#pragma mark - Getters And Setters +- (UIImageView *)dispossessIndicateRegard { + if (!_dispossessIndicateRegard) { + _dispossessIndicateRegard = [[UIImageView alloc] init]; + _dispossessIndicateRegard.userInteractionEnabled = YES; + _dispossessIndicateRegard.image = [UIIndicateConstant defalutDispossessDepapossessor]; + _dispossessIndicateRegard.layer.masksToBounds = YES; + _dispossessIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _dispossessIndicateRegard; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.text = YMLocalizedString(@"YUMI_Wish_Gift_Empty_Table_View_Cell_0"); + _titleLabel.font = [UIFont systemFontOfSize:16]; + _titleLabel.textAlignment = NSTextAlignmentCenter; + _titleLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + } + return _titleLabel; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/WishGift/View/Cell/YUMIDesirePresentHistoryTabulationRegardElement.h b/YuMi/Modules/YMRoom/View/WishGift/View/Cell/YUMIDesirePresentHistoryTabulationRegardElement.h new file mode 100644 index 00000000..08151a12 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/WishGift/View/Cell/YUMIDesirePresentHistoryTabulationRegardElement.h @@ -0,0 +1,18 @@ +// +// YMWishGiftHistoryTableViewCell.h +// YUMI +// +// Created by YUMI on 2022/10/19. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class DesirePresentAbstractMatrix; +@interface YUMIDesirePresentHistoryTabulationRegardElement : UITableViewCell +@property (nonatomic,assign) BOOL isApex; +@property (nonatomic,assign) BOOL isExtreme; +@property (nonatomic,strong) DesirePresentAbstractMatrix *giftInfo; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/WishGift/View/Cell/YUMIDesirePresentHistoryTabulationRegardElement.m b/YuMi/Modules/YMRoom/View/WishGift/View/Cell/YUMIDesirePresentHistoryTabulationRegardElement.m new file mode 100644 index 00000000..a70abba0 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/WishGift/View/Cell/YUMIDesirePresentHistoryTabulationRegardElement.m @@ -0,0 +1,165 @@ +// +// YMWishGiftHistoryTableViewCell.m +// YUMI +// +// Created by YUMI on 2022/10/19. +// + +#import "YUMIDesirePresentHistoryTabulationRegardElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "UIImage+Utils.h" +#import "NetIndicateRegard.h" +#import "DesirePresentAbstractMatrix.h" +#import "UIView+Corner.h" +#import "YUMIMacroUitls.h" + +@interface YUMIDesirePresentHistoryTabulationRegardElement () +@property (nonatomic,strong) UIView *encourageRegard; +@property (nonatomic,strong) UILabel *prottypeSequencignation; +@property (nonatomic,strong) NetIndicateRegard *presentIndicateRegard; +@property (nonatomic,strong) UILabel *presentSequencignation; +@property (nonatomic,strong) UILabel *targetFigureSequencignation; +@property (nonatomic,strong) UIView *burlywoodRegard; + +@end +@implementation YUMIDesirePresentHistoryTabulationRegardElement + + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.selectionStyle = UITableViewCellSelectionStyleNone; + self.backgroundColor = [UIColor clearColor]; + [self.contentView addSubview:self.encourageRegard]; + + [self.encourageRegard addSubview:self.prottypeSequencignation]; + [self.encourageRegard addSubview:self.presentIndicateRegard]; + [self.encourageRegard addSubview:self.presentSequencignation]; + [self.encourageRegard addSubview:self.targetFigureSequencignation]; + [self.encourageRegard addSubview:self.burlywoodRegard]; +} + +- (void)initChildLyRestrictions { + [self.encourageRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.equalTo(self.contentView).inset(15); + make.top.bottom.mas_equalTo(self.contentView); + }]; + + [self.prottypeSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.encourageRegard); + make.left.mas_equalTo(self.encourageRegard).offset(15); + }]; + + [self.presentIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(24, 24)); + make.centerY.mas_equalTo(self.encourageRegard); + make.left.mas_equalTo(self.prottypeSequencignation.mas_right).offset(20); + }]; + + [self.presentSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.encourageRegard); + make.left.mas_equalTo(self.presentIndicateRegard.mas_right).offset(8); + make.right.lessThanOrEqualTo(self.targetFigureSequencignation.mas_left).offset(-5); + }]; + + [self.targetFigureSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.encourageRegard); + make.right.mas_equalTo(self.encourageRegard).offset(-15); + }]; + + [self.burlywoodRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.encourageRegard).inset(13); + make.bottom.mas_equalTo(self.encourageRegard); + make.height.mas_equalTo(1); + }]; + +} +#pragma mark - Getters And Setters +- (void)setIsApex:(BOOL)isApex { + _isApex = isApex; + if(_isApex) { + [self.encourageRegard setMonopolizeAboutContraryApexMonopolize:8 rightTopCorner:8 bottomLeftCorner:0 bottomRightCorner:0 size:(CGSizeMake(KScreenWidth - 30, 44))]; + } +} + +- (void)setIsExtreme:(BOOL)isExtreme { + _isExtreme = isExtreme; + if (_isExtreme) { + [self.encourageRegard setMonopolizeAboutContraryApexMonopolize:0 rightTopCorner:0 bottomLeftCorner:8 bottomRightCorner:8 size:(CGSizeMake(KScreenWidth - 30, 44))]; + } +} + +- (void)setGiftInfo:(DesirePresentAbstractMatrix *)giftInfo { + _giftInfo = giftInfo; + if (_giftInfo) { + self.prottypeSequencignation.text = [NSString stringWithFormat:@"%ld", _giftInfo.row]; + self.presentIndicateRegard.imageUrl = _giftInfo.giftUrl; + self.presentSequencignation.text = _giftInfo.giftName; + self.targetFigureSequencignation.text = [NSString stringWithFormat:@"%ld/%ld", _giftInfo.actualNum, _giftInfo.targetNum]; + } +} + +- (UIView *)encourageRegard { + if (!_encourageRegard) { + _encourageRegard = [[UIView alloc] init]; + _encourageRegard.backgroundColor = [UIColor whiteColor]; + } + return _encourageRegard; +} + +- (UILabel *)prottypeSequencignation { + if (!_prottypeSequencignation) { + _prottypeSequencignation = [[UILabel alloc] init]; + _prottypeSequencignation.font = [UIFont systemFontOfSize:14 weight:UIFontWeightSemibold]; + _prottypeSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _prottypeSequencignation; +} + +- (NetIndicateRegard *)presentIndicateRegard { + if (!_presentIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _presentIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _presentIndicateRegard.layer.masksToBounds = YES; + _presentIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _presentIndicateRegard; +} + +- (UILabel *)presentSequencignation { + if (!_presentSequencignation) { + _presentSequencignation = [[UILabel alloc] init]; + _presentSequencignation.font = [UIFont systemFontOfSize:14 weight:UIFontWeightSemibold]; + _presentSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _presentSequencignation; +} + +- (UILabel *)targetFigureSequencignation { + if (!_targetFigureSequencignation) { + _targetFigureSequencignation = [[UILabel alloc] init]; + _targetFigureSequencignation.font = [UIFont systemFontOfSize:14]; + _targetFigureSequencignation.textColor = [DJDKMIMOMColor essayTertiusPrettify]; + } + return _targetFigureSequencignation; +} + +- (UIView *)burlywoodRegard { + if (!_burlywoodRegard) { + _burlywoodRegard = [[UIView alloc] init]; + _burlywoodRegard.backgroundColor = [DJDKMIMOMColor dividerPrettify]; + } + return _burlywoodRegard; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/WishGift/View/Cell/YUMIDesirePresentTabulationRegardElement.h b/YuMi/Modules/YMRoom/View/WishGift/View/Cell/YUMIDesirePresentTabulationRegardElement.h new file mode 100644 index 00000000..07ed841f --- /dev/null +++ b/YuMi/Modules/YMRoom/View/WishGift/View/Cell/YUMIDesirePresentTabulationRegardElement.h @@ -0,0 +1,26 @@ +// +// YMWishGiftTableViewCell.h +// YUMI +// +// Created by YUMI on 2022/10/18. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class YUMIDesirePresentTabulationRegardElement, DesirePresentAbstractMatrix; +@protocol FBCDesirePresentTabulationViweElementRepresendtation + +- (void)fBCHopePresentTarbsultowardsionViweElement:(YUMIDesirePresentTabulationRegardElement *)view didUpdateWishGift:(DesirePresentAbstractMatrix *)info; + +- (void)fBCHopePresentTarbsultowardsionViweElement:(YUMIDesirePresentTabulationRegardElement *)view didClearWishGift:(DesirePresentAbstractMatrix *)info; + +@end + +@interface YUMIDesirePresentTabulationRegardElement : UITableViewCell +@property (nonatomic,weak) id delegate; +@property (nonatomic,strong) DesirePresentAbstractMatrix *giftInfo; +@property (nonatomic,assign) BOOL isVeiledCompile; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/WishGift/View/Cell/YUMIDesirePresentTabulationRegardElement.m b/YuMi/Modules/YMRoom/View/WishGift/View/Cell/YUMIDesirePresentTabulationRegardElement.m new file mode 100644 index 00000000..699e21a0 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/WishGift/View/Cell/YUMIDesirePresentTabulationRegardElement.m @@ -0,0 +1,224 @@ +// +// YMWishGiftTableViewCell.m +// YUMI +// +// Created by YUMI on 2022/10/18. +// + +#import "YUMIDesirePresentTabulationRegardElement.h" +#import +#import "DJDKMIMOMColor.h" +#import "UIImage+Utils.h" +#import "NetIndicateRegard.h" +#import "DesirePresentAbstractMatrix.h" + +@interface YUMIDesirePresentTabulationRegardElement () + +@property (nonatomic,strong) UILabel *prottypeSequencignation; +@property (nonatomic,strong) NetIndicateRegard *presentIndicateRegard; +@property (nonatomic,strong) UILabel *presentSequencignation; +@property (nonatomic,strong) UIStackView *stackView; +@property (nonatomic,strong) UILabel *targetFigureSequencignation; +@property (nonatomic,strong) UIStackView *compileHierarchyRegard; +@property (nonatomic,strong) UIButton *refurbishBtuton; +@property (nonatomic,strong) UIButton *distinctBtuton; +@property (nonatomic,strong) UIView *burlywoodRegard; + +@end +@implementation YUMIDesirePresentTabulationRegardElement + + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.selectionStyle = UITableViewCellSelectionStyleNone; + self.backgroundColor = [UIColor clearColor]; + [self.contentView addSubview:self.prottypeSequencignation]; + [self.contentView addSubview:self.presentIndicateRegard]; + [self.contentView addSubview:self.presentSequencignation]; + [self.contentView addSubview:self.stackView]; + [self.contentView addSubview:self.burlywoodRegard]; + + [self.stackView addArrangedSubview:self.targetFigureSequencignation]; + [self.stackView addArrangedSubview:self.compileHierarchyRegard]; + + [self.compileHierarchyRegard addArrangedSubview:self.refurbishBtuton]; + [self.compileHierarchyRegard addArrangedSubview:self.distinctBtuton]; +} + +- (void)initChildLyRestrictions { + [self.prottypeSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.contentView); + make.left.mas_equalTo(self.contentView).offset(15); + }]; + + [self.presentIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(24, 24)); + make.centerY.mas_equalTo(self.contentView); + make.left.mas_equalTo(self.prottypeSequencignation.mas_right).offset(20); + }]; + + [self.presentSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.contentView); + make.left.mas_equalTo(self.presentIndicateRegard.mas_right).offset(8); + make.right.lessThanOrEqualTo(self.targetFigureSequencignation.mas_left).offset(-5); + }]; + + [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(18); + make.right.mas_equalTo(self.contentView).offset(-15); + make.centerY.mas_equalTo(self.contentView); + }]; + + [self.refurbishBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(44); + }]; + + [self.distinctBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(44); + }]; + + [self.burlywoodRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.contentView).inset(13); + make.bottom.mas_equalTo(self.contentView); + make.height.mas_equalTo(1); + }]; + +} + +#pragma mark - Event Response +- (void)refurbishBtutonPerformance:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(fBCHopePresentTarbsultowardsionViweElement:didUpdateWishGift:)]) { + [self.delegate fBCHopePresentTarbsultowardsionViweElement:self didUpdateWishGift:self.giftInfo]; + } +} + + +- (void)prohibititinctBtutonPerformance:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(fBCHopePresentTarbsultowardsionViweElement:didClearWishGift:)]) { + [self.delegate fBCHopePresentTarbsultowardsionViweElement:self didClearWishGift:self.giftInfo]; + } +} + +#pragma mark - Getters And Setters +- (void)setIsVeiledCompile:(BOOL)isVeiledCompile { + _isVeiledCompile = isVeiledCompile; + self.compileHierarchyRegard.hidden = _isVeiledCompile; +} + +- (void)setGiftInfo:(DesirePresentAbstractMatrix *)giftInfo { + _giftInfo = giftInfo; + if (_giftInfo) { + self.prottypeSequencignation.text = [NSString stringWithFormat:@"%ld", _giftInfo.row]; + self.presentIndicateRegard.imageUrl = _giftInfo.giftUrl; + self.presentSequencignation.text = _giftInfo.giftName; + self.targetFigureSequencignation.text = [NSString stringWithFormat:@"%ld/%ld", _giftInfo.actualNum, _giftInfo.targetNum]; + } +} + +- (UILabel *)prottypeSequencignation { + if (!_prottypeSequencignation) { + _prottypeSequencignation = [[UILabel alloc] init]; + _prottypeSequencignation.font = [UIFont systemFontOfSize:14 weight:UIFontWeightSemibold]; + _prottypeSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _prottypeSequencignation; +} + +- (NetIndicateRegard *)presentIndicateRegard { + if (!_presentIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _presentIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _presentIndicateRegard.layer.masksToBounds = YES; + _presentIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _presentIndicateRegard; +} + +- (UILabel *)presentSequencignation { + if (!_presentSequencignation) { + _presentSequencignation = [[UILabel alloc] init]; + _presentSequencignation.font = [UIFont systemFontOfSize:14 weight:UIFontWeightSemibold]; + _presentSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _presentSequencignation; +} + +- (UIStackView *)stackView { + if (!_stackView) { + _stackView = [[UIStackView alloc] init]; + _stackView.axis = UILayoutConstraintAxisHorizontal; + _stackView.distribution = UIStackViewDistributionFill; + _stackView.alignment = UIStackViewAlignmentFill; + _stackView.spacing = 26; + } + return _stackView; +} + +- (UILabel *)targetFigureSequencignation { + if (!_targetFigureSequencignation) { + _targetFigureSequencignation = [[UILabel alloc] init]; + _targetFigureSequencignation.font = [UIFont systemFontOfSize:14]; + _targetFigureSequencignation.textColor = [DJDKMIMOMColor essayTertiusPrettify]; + } + return _targetFigureSequencignation; +} + +- (UIStackView *)compileHierarchyRegard { + if (!_compileHierarchyRegard) { + _compileHierarchyRegard = [[UIStackView alloc] init]; + _compileHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _compileHierarchyRegard.distribution = UIStackViewDistributionFill; + _compileHierarchyRegard.alignment = UIStackViewAlignmentFill; + _compileHierarchyRegard.spacing = 5; + } + return _compileHierarchyRegard; +} + +- (UIButton *)refurbishBtuton { + if (!_refurbishBtuton) { + _refurbishBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_refurbishBtuton setTitle:YMLocalizedString(@"YUMI_Wish_Gift_Table_View_Cell_0") forState:UIControlStateNormal]; + [_refurbishBtuton setTitleColor:[DJDKMIMOMColor acknowledgementBtutonEssayPrettify] forState:UIControlStateNormal]; + _refurbishBtuton.titleLabel.font = [UIFont systemFontOfSize:10]; + [_refurbishBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor revoctowardsionBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor revoctowardsionBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + _refurbishBtuton.layer.masksToBounds = YES; + _refurbishBtuton.layer.cornerRadius = 9; + [_refurbishBtuton addTarget:self action:@selector(refurbishBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _refurbishBtuton; +} + +- (UIButton *)distinctBtuton { + if (!_distinctBtuton) { + _distinctBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_distinctBtuton setTitle:YMLocalizedString(@"YUMI_Wish_Gift_Table_View_Cell_1") forState:UIControlStateNormal]; + [_distinctBtuton setTitleColor:[DJDKMIMOMColor acknowledgementBtutonEssayPrettify] forState:UIControlStateNormal]; + _distinctBtuton.titleLabel.font = [UIFont systemFontOfSize:10]; + [_distinctBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + _distinctBtuton.layer.masksToBounds = YES; + _distinctBtuton.layer.cornerRadius = 9; + [_distinctBtuton addTarget:self action:@selector(prohibititinctBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _distinctBtuton; +} + +- (UIView *)burlywoodRegard { + if (!_burlywoodRegard) { + _burlywoodRegard = [[UIView alloc] init]; + _burlywoodRegard.backgroundColor = [DJDKMIMOMColor dividerPrettify]; + } + return _burlywoodRegard; +} + + +@end diff --git a/YuMi/Modules/YMRoom/View/WishGift/View/View/YUMIDesirePresentAbstractRegard.h b/YuMi/Modules/YMRoom/View/WishGift/View/View/YUMIDesirePresentAbstractRegard.h new file mode 100644 index 00000000..ca89be7c --- /dev/null +++ b/YuMi/Modules/YMRoom/View/WishGift/View/View/YUMIDesirePresentAbstractRegard.h @@ -0,0 +1,27 @@ +// +// YMWishGiftInfoView.h +// YUMI +// +// Created by YUMI on 2022/10/18. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class DesirePresentAbstractMatrix, YUMIDesirePresentAbstractRegard; + +@protocol FBCDesirePresentAbstractRegardRepresendtation + +- (void)fBCHopePresentAbstractRegard:(YUMIDesirePresentAbstractRegard *)view didClickSender:(DesirePresentAbstractMatrix *)info; + +@end + +@interface YUMIDesirePresentAbstractRegard : UIView + +@property (nonatomic,strong) DesirePresentAbstractMatrix *giftInfo; + +@property (nonatomic,weak) id delegate; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/WishGift/View/View/YUMIDesirePresentAbstractRegard.m b/YuMi/Modules/YMRoom/View/WishGift/View/View/YUMIDesirePresentAbstractRegard.m new file mode 100644 index 00000000..6fbf0404 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/WishGift/View/View/YUMIDesirePresentAbstractRegard.m @@ -0,0 +1,234 @@ +// +// YMWishGiftInfoView.m +// YUMI +// +// Created by YUMI on 2022/10/18. +// + +#import "YUMIDesirePresentAbstractRegard.h" +#import +#import "NetIndicateRegard.h" +#import "DJDKMIMOMColor.h" +#import "UIImage+Utils.h" +#import "DesirePresentAbstractMatrix.h" + +@interface YUMIDesirePresentAbstractRegard () +@property (nonatomic,strong) UIImageView *backgroundRegard; +@property (nonatomic,strong) NetIndicateRegard *presentIndicateRegard; +@property (nonatomic,strong) UILabel *presentSequencignation; +@property (nonatomic,strong) UILabel *valencySequencignation; +@property (nonatomic,strong) UILabel *growthSequencignation; +@property (nonatomic,strong) UIProgressView *progressView; +@property (nonatomic,strong) UIButton *dischargeerBtuton; +@property (nonatomic,strong) UIImageView *completionIndicateRegard; + +@end + +@implementation YUMIDesirePresentAbstractRegard + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.backgroundRegard]; + [self.backgroundRegard addSubview:self.presentIndicateRegard]; + [self.backgroundRegard addSubview:self.presentSequencignation]; + [self.backgroundRegard addSubview:self.valencySequencignation]; + [self.backgroundRegard addSubview:self.growthSequencignation]; + [self.backgroundRegard addSubview:self.progressView]; + [self.backgroundRegard addSubview:self.dischargeerBtuton]; +} + +- (void)initChildLyRestrictions { + [self.backgroundRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.equalTo(self); + }]; + + [self.presentIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(50, 50)); + make.top.mas_equalTo(self.backgroundRegard).offset(6); + make.centerX.mas_equalTo(self.backgroundRegard); + }]; + + [self.presentSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.backgroundRegard).inset(2); + make.top.mas_equalTo(self.presentIndicateRegard.mas_bottom).offset(4); + }]; + + [self.valencySequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.backgroundRegard).inset(2); + make.top.mas_equalTo(self.presentSequencignation.mas_bottom).offset(4); + }]; + + [self.progressView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.backgroundRegard).inset(10); + make.top.mas_equalTo(self.valencySequencignation.mas_bottom).offset(10); + make.height.mas_equalTo(5); + }]; + + [self.growthSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.backgroundRegard); + make.top.mas_equalTo(self.progressView.mas_bottom).offset(4); + }]; + + [self.dischargeerBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(76, 22)); + make.centerX.mas_equalTo(self.backgroundRegard); + make.bottom.mas_equalTo(self.backgroundRegard.mas_bottom).offset(-10); + }]; +} + +- (NSAttributedString *)produceDirectoryvanceIdiosyncracy { + NSString * targetNum = [NSString stringWithFormat:@"/%ld", self.giftInfo.targetNum]; + NSString * actualNum = (self.giftInfo.actualNum > self.giftInfo.targetNum) ? [NSString stringWithFormat:@"%ld+", self.giftInfo.targetNum] : [NSString stringWithFormat:@"%ld", self.giftInfo.actualNum]; + NSString * title = [NSString stringWithFormat:@"%@%@", actualNum, targetNum]; + NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] initWithString:title attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:10], NSForegroundColorAttributeName:[DJDKMIMOMColor colorAboutHexBWSttr:@"#FFA0C3"]}]; + if (self.giftInfo.targetNum <= self.giftInfo.actualNum) { + [attribute addAttribute:NSForegroundColorAttributeName value:[DJDKMIMOMColor colorAboutHexBWSttr:@"#FFA0C3"] range:[title rangeOfString:targetNum]]; + } else { + [attribute addAttribute:NSForegroundColorAttributeName value:[UIColor colorWithWhite:1 alpha:0.5] range:[title rangeOfString:targetNum]]; + } + return attribute; +} + +#pragma mark - Event Response +- (void)prohibitichargeerBtutonPerformance:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(fBCHopePresentAbstractRegard:didClickSender:)]) { + [self.delegate fBCHopePresentAbstractRegard:self didClickSender:self.giftInfo]; + } +} + +#pragma mark - Getters And Setters +- (void)setGiftInfo:(DesirePresentAbstractMatrix *)giftInfo { + _giftInfo = giftInfo; + if (_giftInfo) { + self.presentIndicateRegard.imageUrl = giftInfo.giftUrl; + self.presentSequencignation.text = _giftInfo.giftName; + self.valencySequencignation.text = [NSString stringWithFormat:YMLocalizedString(@"YUMI_Wish_Gift_Info_View_0"), _giftInfo.goldPrice]; + CGFloat value = (CGFloat)giftInfo.actualNum / (CGFloat)giftInfo.targetNum; + if (value > 1) { + value = 1; + } + self.progressView.progress = value; + self.growthSequencignation.attributedText = [self produceDirectoryvanceIdiosyncracy]; + self.growthSequencignation.textAlignment = NSTextAlignmentCenter; + self.completionIndicateRegard.hidden = _giftInfo.targetNum != _giftInfo.actualNum; + } +} + +- (UIImageView *)backgroundRegard { + if (!_backgroundRegard) { + _backgroundRegard = [[UIImageView alloc] init]; + _backgroundRegard.userInteractionEnabled = YES; + _backgroundRegard.image = [UIImage imageNamed:@"yumi_scope_wish_present_panel_present_background"]; + } + return _backgroundRegard; +} + +- (UIImageView *)completionIndicateRegard { + if (!_completionIndicateRegard) { + _completionIndicateRegard = [[UIImageView alloc] init]; + _completionIndicateRegard.userInteractionEnabled = YES; + _completionIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_wish_present_completion"]; + } + return _completionIndicateRegard; +} + + +- (NetIndicateRegard *)presentIndicateRegard { + if (!_presentIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _presentIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _presentIndicateRegard.layer.masksToBounds = YES; + _presentIndicateRegard.layer.cornerRadius = 20; + _presentIndicateRegard.contentMode = UIViewContentModeScaleAspectFill; + } + return _presentIndicateRegard; +} + +- (UILabel *)presentSequencignation { + if (!_presentSequencignation) { + _presentSequencignation = [[UILabel alloc] init]; + _presentSequencignation.font = [UIFont systemFontOfSize:14]; + _presentSequencignation.textAlignment = NSTextAlignmentCenter; + _presentSequencignation.textColor = [UIColor whiteColor]; + } + return _presentSequencignation; +} + +- (UILabel *)valencySequencignation { + if (!_valencySequencignation) { + _valencySequencignation = [[UILabel alloc] init]; + _valencySequencignation.font = [UIFont systemFontOfSize:12]; + _valencySequencignation.textColor = [UIColor colorWithWhite:1 alpha:0.5]; + _valencySequencignation.textAlignment = NSTextAlignmentCenter; + } + return _valencySequencignation; +} + +- (UIProgressView *)progressView { + if(!_progressView) { + _progressView = [[UIProgressView alloc] init]; + _progressView.progressImage = [UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor colorAboutHexBWSttr:@"#FFA0C3"], [DJDKMIMOMColor colorAboutHexBWSttr:@"#C176FF"]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(1, 1)]; + _progressView.layer.masksToBounds = YES; + _progressView.layer.cornerRadius = 2.5; + _progressView.trackImage = [UIImage imageWithColor:[DJDKMIMOMColor colorAboutHexBWSttr:@"#17093E"]]; + } + return _progressView; +} + +-(UIImage *)acquireObliquityIndictowardseAboutPrettifys:(NSArray*)colors imgSize:(CGSize)imgSize +{ + NSMutableArray *arRef = [NSMutableArray array]; + for(UIColor *ref in colors) { + [arRef addObject:(id)ref.CGColor]; + + } + UIGraphicsBeginImageContextWithOptions(imgSize, YES, 1); + CGContextRef context = UIGraphicsGetCurrentContext(); + CGContextSaveGState(context); + CGColorSpaceRef colorSpace = CGColorGetColorSpace([[colors lastObject] CGColor]); + CGGradientRef gradient = CGGradientCreateWithColors(colorSpace, (CFArrayRef)arRef, NULL); + CGPoint start = CGPointMake(0.0, 0.0); + CGPoint end = CGPointMake(imgSize.width, imgSize.height); + CGContextDrawLinearGradient(context, gradient, start, end, kCGGradientDrawsBeforeStartLocation); + UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); + CGGradientRelease(gradient); + CGContextRestoreGState(context); + CGColorSpaceRelease(colorSpace); + UIGraphicsEndImageContext(); + return image; +} + +- (UILabel *)growthSequencignation { + if (!_growthSequencignation) { + _growthSequencignation = [[UILabel alloc] init]; + } + return _growthSequencignation; +} + +- (UIButton *)dischargeerBtuton { + if (!_dischargeerBtuton) { + _dischargeerBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_dischargeerBtuton setTitle:YMLocalizedString(@"YUMI_Wish_Gift_Info_View_1") forState:UIControlStateNormal]; + [_dischargeerBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + _dischargeerBtuton.titleLabel.font = [UIFont systemFontOfSize:12]; + [_dischargeerBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor colorAboutHexBWSttr:@"#FFA0C3"], [DJDKMIMOMColor colorAboutHexBWSttr:@"#C176FF"]] gradientType:GradientGenreUpleftToLowright imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + _dischargeerBtuton.layer.masksToBounds = YES; + _dischargeerBtuton.layer.cornerRadius = 11; + [_dischargeerBtuton addTarget:self action:@selector(prohibitichargeerBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _dischargeerBtuton; +} + + +@end diff --git a/YuMi/Modules/YMRoom/View/WishGift/View/View/YUMIDesirePresentDivisionRegard.h b/YuMi/Modules/YMRoom/View/WishGift/View/View/YUMIDesirePresentDivisionRegard.h new file mode 100644 index 00000000..901e316b --- /dev/null +++ b/YuMi/Modules/YMRoom/View/WishGift/View/View/YUMIDesirePresentDivisionRegard.h @@ -0,0 +1,16 @@ +// +// YMWishGiftSectionView.h +// YUMI +// +// Created by YUMI on 2022/10/19. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIDesirePresentDivisionRegard : UIView +@property (nonatomic,copy) NSString *title; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/WishGift/View/View/YUMIDesirePresentDivisionRegard.m b/YuMi/Modules/YMRoom/View/WishGift/View/View/YUMIDesirePresentDivisionRegard.m new file mode 100644 index 00000000..b3d186cd --- /dev/null +++ b/YuMi/Modules/YMRoom/View/WishGift/View/View/YUMIDesirePresentDivisionRegard.m @@ -0,0 +1,52 @@ +// +// YMWishGiftSectionView.m +// YUMI +// +// Created by YUMI on 2022/10/19. +// + +#import "YUMIDesirePresentDivisionRegard.h" +#import +#import "DJDKMIMOMColor.h" + +@interface YUMIDesirePresentDivisionRegard () +@property (nonatomic,strong) UILabel *titleLabel; +@end + +@implementation YUMIDesirePresentDivisionRegard +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +- (void)initSubViews { + [self addSubview:self.titleLabel]; +} + +- (void)initChildLyRestrictions { + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self).offset(24); + make.centerY.mas_equalTo(self); + }]; +} + +- (void)setTitle:(NSString *)title { + _title = title; + self.titleLabel.text = _title; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.font = [UIFont systemFontOfSize:14 weight:UIFontWeightMedium]; + _titleLabel.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _titleLabel; +} + + +@end diff --git a/YuMi/Modules/YMRoom/View/WishGift/View/View/YUMIDesirePresentImportRegard.h b/YuMi/Modules/YMRoom/View/WishGift/View/View/YUMIDesirePresentImportRegard.h new file mode 100644 index 00000000..75360de6 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/WishGift/View/View/YUMIDesirePresentImportRegard.h @@ -0,0 +1,16 @@ +// +// YMWishGiftEnterView.h +// YUMI +// +// Created by YUMI on 2022/10/20. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@interface YUMIDesirePresentImportRegard : UIView +@property (nonatomic,strong) NSArray * giftList; +@property (nonatomic,assign) BOOL isContrary; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/WishGift/View/View/YUMIDesirePresentImportRegard.m b/YuMi/Modules/YMRoom/View/WishGift/View/View/YUMIDesirePresentImportRegard.m new file mode 100644 index 00000000..9b2afbab --- /dev/null +++ b/YuMi/Modules/YMRoom/View/WishGift/View/View/YUMIDesirePresentImportRegard.m @@ -0,0 +1,232 @@ +// +// YMWishGiftEnterView.m +// YUMI +// +// Created by YUMI on 2022/10/20. +// + +#import "YUMIDesirePresentImportRegard.h" +#import +#import +#import +#import "DJDKMIMOMColor.h" +#import "NetIndicateRegard.h" +#import "UIImage+Utils.h" +#import "UIView+Corner.h" +#import "NSArray+Safe.h" +#import "DesirePresentAbstractMatrix.h" + +@interface YUMIDesirePresentImportElement : UICollectionViewCell +@property (nonatomic,strong) NetIndicateRegard *presentIndicateRegard; +@property (nonatomic,strong) UILabel *presentSequencignation; +@property (nonatomic,strong) UILabel *growthSequencignation; +@property (nonatomic,strong) UIProgressView *progressView; +@property (nonatomic,strong) DesirePresentAbstractMatrix *giftInfo; +@end + +@implementation YUMIDesirePresentImportElement + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.contentView.backgroundColor = [UIColor clearColor]; + [self.contentView addSubview:self.presentIndicateRegard]; + [self.contentView addSubview:self.presentSequencignation]; + [self.contentView addSubview:self.growthSequencignation]; + [self.contentView addSubview:self.progressView]; +} + +- (void)initChildLyRestrictions { + + [self.presentIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.top.bottom.mas_equalTo(self.contentView); + make.width.mas_equalTo(self.presentIndicateRegard.mas_height); + }]; + + [self.presentSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.presentIndicateRegard.mas_right).offset(6); + make.top.mas_equalTo(self.contentView).offset(0); + make.right.mas_equalTo(self.contentView).offset(-2); + }]; + + [self.growthSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.presentSequencignation); + make.right.mas_equalTo(self.contentView); + make.top.mas_equalTo(self.presentSequencignation.mas_bottom).offset(1); + }]; + + [self.progressView mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(3); + make.bottom.mas_equalTo(self.contentView.mas_bottom).offset(-2); + make.left.mas_equalTo(self.presentIndicateRegard.mas_right).offset(2); + make.right.mas_equalTo(self.contentView).offset(-5); + }]; +} + +- (NSAttributedString *)produceDirectoryvanceIdiosyncracy { + NSString * targetNum = [NSString stringWithFormat:@"/%ld", self.giftInfo.targetNum]; + NSString * actualNum = (self.giftInfo.actualNum > self.giftInfo.targetNum) ? [NSString stringWithFormat:@"%ld+", self.giftInfo.targetNum] : [NSString stringWithFormat:@"%ld", self.giftInfo.actualNum]; + NSString * title = [NSString stringWithFormat:@"%@%@", actualNum, targetNum]; + NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] initWithString:title attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:10], NSForegroundColorAttributeName:[DJDKMIMOMColor colorAboutHexBWSttr:@"#FFC300"]}]; + if (self.giftInfo.targetNum <= self.giftInfo.actualNum) { + [attribute addAttribute:NSForegroundColorAttributeName value:[DJDKMIMOMColor colorAboutHexBWSttr:@"#FFC300"] range:[title rangeOfString:targetNum]]; + } else { + [attribute addAttribute:NSForegroundColorAttributeName value:[UIColor colorWithWhite:1 alpha:1] range:[title rangeOfString:targetNum]]; + } + return attribute; +} + +#pragma mark - Getters And Setters +- (void)setGiftInfo:(DesirePresentAbstractMatrix *)giftInfo { + _giftInfo = giftInfo; + if (_giftInfo) { + self.presentIndicateRegard.imageUrl = _giftInfo.giftUrl; + self.presentSequencignation.text = _giftInfo.giftName; + CGFloat value = (CGFloat)giftInfo.actualNum / (CGFloat)giftInfo.targetNum; + if (value > 1){ + value = 1; + } + [self.progressView setProgress:value animated:NO]; + self.growthSequencignation.attributedText = [self produceDirectoryvanceIdiosyncracy]; + self.growthSequencignation.textAlignment = NSTextAlignmentCenter; + } +} + +- (UIProgressView *)progressView { + if(!_progressView) { + _progressView = [[UIProgressView alloc] init]; + _progressView.layer.masksToBounds = YES; + _progressView.layer.cornerRadius = 1.5; + _progressView.trackImage = [UIImage imageWithColor:[DJDKMIMOMColor colorAboutHexBWSttr:@"#17093E"]]; + _progressView.progressImage = [UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor colorAboutHexBWSttr:@"#FFA0C3"], [DJDKMIMOMColor colorAboutHexBWSttr:@"#C176FF"]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(1, 1)]; + } + return _progressView; +} + +- (NetIndicateRegard *)presentIndicateRegard { + if (!_presentIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _presentIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _presentIndicateRegard.layer.masksToBounds = YES; + _presentIndicateRegard.layer.cornerRadius = 15; + _presentIndicateRegard.layer.borderWidth = 0.5; + _presentIndicateRegard.layer.borderColor = UIColorRGBAlpha(0xFFEEBE, 0.7).CGColor; + _presentIndicateRegard.contentMode = UIViewContentModeScaleAspectFill; + } + return _presentIndicateRegard; +} + +- (UILabel *)presentSequencignation { + if (!_presentSequencignation) { + _presentSequencignation = [[UILabel alloc] init]; + _presentSequencignation.font = [UIFont systemFontOfSize:10]; + _presentSequencignation.textAlignment = NSTextAlignmentCenter; + _presentSequencignation.textColor = [UIColor whiteColor]; + _presentSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _presentSequencignation; +} + +- (UILabel *)growthSequencignation { + if (!_growthSequencignation) { + _growthSequencignation = [[UILabel alloc] init]; + } + return _growthSequencignation; +} + +@end + +@interface YUMIDesirePresentImportRegard() +@property (nonatomic, strong) SDCycleScrollView *cycleTrundleRegard; + +@end + +@implementation YUMIDesirePresentImportRegard + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + self.isContrary = NO; + } + return self; +} + + +#pragma mark - Private Method +- (void)initSubViews { + self.backgroundColor = [UIColor colorWithWhite:1 alpha:0.2]; + [self addSubview:self.cycleTrundleRegard]; + self.layer.masksToBounds = YES; +} + +- (void)initChildLyRestrictions { + [self.cycleTrundleRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self); + }]; + +} + +#pragma mark - SDCycleScrollViewDelegate +- (Class)customCollectionViewCellClassForCycleScrollView:(SDCycleScrollView *)view { + return YUMIDesirePresentImportElement.class; +} + +- (void)setupCustomCell:(UICollectionViewCell *)cell forIndex:(NSInteger)index cycleTrundleRegard:(SDCycleScrollView *)view { + YUMIDesirePresentImportElement *myCell = (YUMIDesirePresentImportElement *)cell; + DesirePresentAbstractMatrix * info = [self.giftList secureGroalTowardsIndictowardsrix1:index]; + myCell.giftInfo = info; +} +#pragma mark - Getters And Setters +- (void)setIsContrary:(BOOL)isContrary { + _isContrary = isContrary; + for (CALayer * layer in self.layer.sublayers) { + if ([layer isKindOfClass:[CAShapeLayer class]]) { + [layer removeFromSuperlayer]; + } + } + + if (_isContrary) { + [self setMonopolizeAboutContraryApexMonopolize:0 rightTopCorner:15 bottomLeftCorner:0 bottomRightCorner:15 size:CGSizeMake(81, 30)]; + } else { + [self setMonopolizeAboutContraryApexMonopolize:15 rightTopCorner:0 bottomLeftCorner:15 bottomRightCorner:0 size:CGSizeMake(81, 30)]; + } +} + +- (void)setGiftList:(NSArray *)giftList { + _giftList = giftList; + if (_giftList.count > 0) { + NSMutableArray * array = [NSMutableArray array]; + for (DesirePresentAbstractMatrix * item in _giftList) { + [array addObject:item.giftName]; + } + if (array.count > 0) { + self.cycleTrundleRegard.imageURLStringsGroup = array; + [self.cycleTrundleRegard autoScroll]; + } + } +} + +- (SDCycleScrollView *)cycleTrundleRegard { + if (!_cycleTrundleRegard) { + _cycleTrundleRegard = [[SDCycleScrollView alloc] init]; + _cycleTrundleRegard.backgroundColor = [UIColor clearColor]; + _cycleTrundleRegard.layer.masksToBounds = YES; + _cycleTrundleRegard.delegate = self; + _cycleTrundleRegard.showPageControl = NO; + _cycleTrundleRegard.autoScrollTimeInterval = 10.0; + } + return _cycleTrundleRegard; +} +@end diff --git a/YuMi/Modules/YMRoom/View/WishGift/View/View/YUMIDesirePresentStatementRegard.h b/YuMi/Modules/YMRoom/View/WishGift/View/View/YUMIDesirePresentStatementRegard.h new file mode 100644 index 00000000..737662e3 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/WishGift/View/View/YUMIDesirePresentStatementRegard.h @@ -0,0 +1,27 @@ +// +// YMWishGiftListView.h +// YUMI +// +// Created by YUMI on 2022/10/18. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class DesirePresentAbstractMatrix, YUMIDesirePresentStatementRegard; + +@protocol FBCDesirePresentStatementRegardRepresendtation + +- (void)fBCHopePresentSttowardsementRegard:(YUMIDesirePresentStatementRegard *)view didSelectItem:(DesirePresentAbstractMatrix *)info; + +@end + +@interface YUMIDesirePresentStatementRegard : UIView + +@property (nonatomic,strong) NSArray *datasource; + +@property (nonatomic,weak) id delegate; +- (void)prohibitipositionDeficiencyAbstract:(DesirePresentAbstractMatrix *)giftInfo; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/WishGift/View/View/YUMIDesirePresentStatementRegard.m b/YuMi/Modules/YMRoom/View/WishGift/View/View/YUMIDesirePresentStatementRegard.m new file mode 100644 index 00000000..a59d83d9 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/WishGift/View/View/YUMIDesirePresentStatementRegard.m @@ -0,0 +1,248 @@ +// +// YMWishGiftListView.m +// YUMI +// +// Created by YUMI on 2022/10/18. +// + +#import "YUMIDesirePresentStatementRegard.h" +#import +#import "DJDKMIMOMColor.h" +#import "NSArray+Safe.h" +#import "DesirePresentAbstractMatrix.h" + +@interface YUMIDesirePresentStatementTabulationRegardElement : UITableViewCell +@property (nonatomic,strong) UILabel *titleLabel; +@end + +@implementation YUMIDesirePresentStatementTabulationRegardElement + +- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { + if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +- (void)initSubViews { + self.backgroundColor = UIColor.clearColor; + self.selectionStyle = UITableViewCellSelectionStyleNone; + [self.contentView addSubview:self.titleLabel]; +} + +- (void)initChildLyRestrictions { + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.contentView).inset(13); + make.centerY.mas_equalTo(self.contentView); + }]; +} + +#pragma mark - Getters And Setters + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.font = [UIFont systemFontOfSize:14]; + _titleLabel.textColor = [DJDKMIMOMColor instantEssayPrettify]; + } + return _titleLabel; +} + +@end + + +@interface YUMIDesirePresentStatementRegard () +@property (nonatomic,strong) UIStackView *stackView; +@property (nonatomic,strong) UIView *chosenRegard; +@property (nonatomic,strong) UILabel *championdesigntion; +@property (nonatomic,strong) UIImageView *arrowIndicateRegard; +@property (nonatomic,strong) UITableView *tableView; +@property (nonatomic,strong) NSArray *competitionStatement; +@property (nonatomic,assign) BOOL isSelect; +@end + +@implementation YUMIDesirePresentStatementRegard + +- (instancetype)initWithFrame:(CGRect)frame +{ + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + + } + return self; +} +#pragma mark - Public Method +- (void)prohibitipositionDeficiencyAbstract:(DesirePresentAbstractMatrix *)giftInfo { + if (giftInfo.levelName) { + self.championdesigntion.text = giftInfo.levelName; + } else { + self.championdesigntion.text = giftInfo.giftName; + } +} + +#pragma mark - Private Method +- (void)initSubViews { + self.layer.masksToBounds = YES; + self.layer.cornerRadius = 4; + self.backgroundColor = UIColor.clearColor; + [self addSubview:self.stackView]; + [self.stackView addArrangedSubview:self.chosenRegard]; + [self.stackView addArrangedSubview:self.tableView]; + + [self.chosenRegard addSubview:self.championdesigntion]; + [self.chosenRegard addSubview:self.arrowIndicateRegard]; + +} + +- (void)initChildLyRestrictions { + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.bottom.mas_equalTo(self.stackView.mas_bottom); + }]; + + [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self); + make.top.mas_equalTo(self); + }]; + + [self.chosenRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(36); + }]; + + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(36); + }]; + + [self.arrowIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(22, 22)); + make.right.mas_equalTo(self.chosenRegard.mas_right).offset(-11); + make.centerY.mas_equalTo(self.chosenRegard); + }]; + + [self.championdesigntion mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.chosenRegard); + make.left.mas_equalTo(self.chosenRegard).offset(13); + }]; +} + + +#pragma mark - UITableViewDelegate And UITableViewDataSource +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.datasource.count; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + YUMIDesirePresentStatementTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIDesirePresentStatementTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIDesirePresentStatementTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIDesirePresentStatementTabulationRegardElement class])]; + } + if (self.datasource.count > 0 ) { + DesirePresentAbstractMatrix * giftInfo = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + if (giftInfo.level > 0) { + cell.titleLabel.text = giftInfo.levelName; + } else { + cell.titleLabel.text = giftInfo.giftName; + } + } + return cell; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + return 36; +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + [tableView deselectRowAtIndexPath:indexPath animated:YES]; + if (self.datasource.count > 0) { + if (self.delegate && [self.delegate respondsToSelector:@selector(fBCHopePresentSttowardsementRegard:didSelectItem:)]) { + DesirePresentAbstractMatrix * giftInfo = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + [self prohibitipositionDeficiencyAbstract:giftInfo]; + [self.delegate fBCHopePresentSttowardsementRegard:self didSelectItem:giftInfo]; + } + self.tableView.hidden = YES; + } +} + +#pragma mark - Event Response +- (void)competitionDisportBtutonPerformance:(UIButton *)sender { + self.isSelect = !self.isSelect; + self.tableView.hidden = !self.isSelect; + if (!self.tableView.hidden) { + if (_datasource.count > 0 && _datasource.count < 4) { + [self.tableView mas_updateConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(36 * self.datasource.count); + }]; + } else { + [self.tableView mas_updateConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(36 * 3); + }]; + } + } +} + +#pragma mark - Getters And Setters +- (void)setDatasource:(NSArray *)datasource { + _datasource = datasource; + [self.tableView reloadData]; +} + +- (UIStackView *)stackView { + if (!_stackView) { + _stackView = [[UIStackView alloc] init]; + _stackView.axis = UILayoutConstraintAxisVertical; + _stackView.distribution = UIStackViewDistributionFill; + _stackView.alignment = UIStackViewAlignmentFill; + _stackView.spacing = 0; + } + return _stackView; +} + +- (UIView *)chosenRegard { + if (!_chosenRegard) { + _chosenRegard = [[UIView alloc] init]; + _chosenRegard.backgroundColor = [UIColor clearColor]; + _chosenRegard.backgroundColor = [DJDKMIMOMColor colorAboutHexBWSttr:@"#E4E4E4"]; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(competitionDisportBtutonPerformance:)]; + [_chosenRegard addGestureRecognizer:tap]; + } + return _chosenRegard; +} +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.tableFooterView = [UIView new]; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.backgroundColor = [DJDKMIMOMColor colorAboutHexBWSttr:@"#F4F4F4"]; + _tableView.hidden = YES; + if (@available(iOS 11.0, *)) { + _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + [_tableView registerClass:[YUMIDesirePresentStatementTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIDesirePresentStatementTabulationRegardElement class])]; + } + return _tableView; +} + +- (UIImageView *)arrowIndicateRegard { + if (!_arrowIndicateRegard) { + _arrowIndicateRegard = [[UIImageView alloc] init]; + _arrowIndicateRegard.userInteractionEnabled = YES; + _arrowIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_wish_create_arrow"]; + } + return _arrowIndicateRegard; +} + +- (UILabel *)championdesigntion { + if (!_championdesigntion) { + _championdesigntion = [[UILabel alloc] init]; + _championdesigntion.font = [UIFont systemFontOfSize:14]; + _championdesigntion.textColor = [DJDKMIMOMColor mainEssayPrettify]; + } + return _championdesigntion; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/WishGift/View/YUMIDesirePresentCreateProvisionRegardGovernancer.h b/YuMi/Modules/YMRoom/View/WishGift/View/YUMIDesirePresentCreateProvisionRegardGovernancer.h new file mode 100644 index 00000000..c6014a9a --- /dev/null +++ b/YuMi/Modules/YMRoom/View/WishGift/View/YUMIDesirePresentCreateProvisionRegardGovernancer.h @@ -0,0 +1,23 @@ +// +// YMWishGiftCreateItemViewController.h +// YUMI +// +// Created by YUMI on 2022/10/18. +// + +#import "MvpRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN +@class DesirePresentAbstractMatrix; +@interface YUMIDesirePresentCreateProvisionRegardGovernancer : MvpRegardGovernancer +@property (nonatomic,strong) NSArray *prototypeSolePresentStatement; +@property (nonatomic,strong) NSArray *prototypeTwoPresentStatement; +@property (nonatomic,strong) NSArray *prototypeTertiusPresentStatement; +@property (nonatomic,strong) NSString *roomUid; + +@property (nonatomic,strong) DesirePresentAbstractMatrix *modifiPresentAbstract; + +@property (nonatomic,copy) void(^Dismiss)(BOOL finish); +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/WishGift/View/YUMIDesirePresentCreateProvisionRegardGovernancer.m b/YuMi/Modules/YMRoom/View/WishGift/View/YUMIDesirePresentCreateProvisionRegardGovernancer.m new file mode 100644 index 00000000..501ec2be --- /dev/null +++ b/YuMi/Modules/YMRoom/View/WishGift/View/YUMIDesirePresentCreateProvisionRegardGovernancer.m @@ -0,0 +1,504 @@ +// +// YMWishGiftCreateItemViewController.m +// YUMI +// +// Created by YUMI on 2022/10/18. +// + +#import "YUMIDesirePresentCreateProvisionRegardGovernancer.h" +#import +#import "DJDKMIMOMColor.h" +#import "UIImage+Utils.h" +#import "NSArray+Safe.h" +#import "YUMIDesirePresentStatementRegard.h" +#import "DesirePresentAbstractMatrix.h" +#import "YUMIDesirePresentExternalizer.h" +#import "FBCDesirePresentCeremony.h" + +@interface YUMIDesirePresentCreateProvisionRegardGovernancer () +@property (nonatomic,strong) UIView *apexRegard; +@property (nonatomic,strong) UIView * bottomView; +@property (nonatomic,strong) UIView *encourageRegard; +@property (nonatomic,strong) YUMIDesirePresentStatementRegard *prototypeRegard; +@property (nonatomic,strong) YUMIDesirePresentStatementRegard *presentRegard; +@property (nonatomic,strong) UIStackView *digitalHierarchyRegard; +@property (nonatomic,strong) UIButton *subtractBtuton; +@property (nonatomic,strong) UITextField *essayUniverse; +@property (nonatomic,strong) UIButton *accelerateBtuton; +@property (nonatomic,strong) UIButton *sureBtuton; +@property (nonatomic,assign) int number; +@property (nonatomic,strong) NSArray *prototypeStatements; +@property (nonatomic,strong) DesirePresentAbstractMatrix *prottypeAbstract; +@property (nonatomic,strong) DesirePresentAbstractMatrix *giftInfo; +@end + +@implementation YUMIDesirePresentCreateProvisionRegardGovernancer + +- (__kindof id)producePresimport { + return [[YUMIDesirePresentExternalizer alloc] init]; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + self.view.backgroundColor = UIColorRGBAlpha(0x000000, 0.5); + [self initSequencirePresentCongifSttowardsement]; + [self initSubViews]; + [self initChildLyRestrictions]; +} + + +#pragma mark - Private Method +- (void)initSequencirePresentCongifSttowardsement { + if (self.modifiPresentAbstract == nil) { + self.number = 10; + self.prottypeAbstract = self.prototypeStatements.firstObject; + [self shankProttypeTowardsoloudspeakersource:self.prottypeAbstract.level]; + [self.prototypeRegard prohibitipositionDeficiencyAbstract:self.prottypeAbstract]; + if (self.prototypeSolePresentStatement.count > 0) { + self.giftInfo = self.prototypeSolePresentStatement.firstObject; + [self.presentRegard prohibitipositionDeficiencyAbstract:self.giftInfo]; + [self shankPresentTowardsoloudspeakersource:self.prototypeSolePresentStatement giftId:self.giftInfo.giftId];; + } + } + [self chamberSequencirePresentPrototypeSttowardsement]; +} + +- (void)chamberSequencirePresentPrototypeSttowardsement { + if (self.prototypeSolePresentStatement.count <= 0) { + [self.presimport desirePresentDispositionSttowardsement:self.roomUid level:@"1"]; + } else if(self.prototypeTwoPresentStatement.count <= 0) { + [self.presimport desirePresentDispositionSttowardsement:self.roomUid level:@"2"]; + } else if(self.prototypeTertiusPresentStatement.count <= 0) { + [self.presimport desirePresentDispositionSttowardsement:self.roomUid level:@"3"]; + } +} + +- (void)initSubViews { + [self.view addSubview:self.apexRegard]; + [self.view addSubview:self.encourageRegard]; + [self.view addSubview:self.bottomView]; + + [self.encourageRegard addSubview:self.sureBtuton]; + [self.encourageRegard addSubview:self.digitalHierarchyRegard]; + [self.encourageRegard addSubview:self.presentRegard]; + [self.encourageRegard addSubview:self.prototypeRegard]; + + [self.digitalHierarchyRegard addArrangedSubview:self.subtractBtuton]; + [self.digitalHierarchyRegard addArrangedSubview:self.essayUniverse]; + [self.digitalHierarchyRegard addArrangedSubview:self.accelerateBtuton]; +} + +- (void)initChildLyRestrictions { + [self.apexRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.right.top.left.mas_equalTo(self.view); + make.bottom.mas_equalTo(self.encourageRegard.mas_top); + }]; + + [self.encourageRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.view).inset(38); + make.height.mas_equalTo(245); + make.centerY.mas_equalTo(self.view); + }]; + + [self.bottomView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.mas_equalTo(self.view); + make.top.mas_equalTo(self.encourageRegard.mas_bottom); + }]; + + [self.prototypeRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.encourageRegard).inset(30); + make.top.mas_equalTo(self.encourageRegard).offset(36); + }]; + + + [self.presentRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.encourageRegard).inset(30); + make.top.mas_equalTo(self.encourageRegard).offset(84); + }]; + + [self.digitalHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.prototypeRegard); + make.height.mas_equalTo(36); + make.bottom.mas_equalTo(self.sureBtuton.mas_top).offset(-20); + }]; + + [self.subtractBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(36); + }]; + + [self.accelerateBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(36); + }]; + + [self.sureBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(129, 37)); + make.centerX.mas_equalTo(self.encourageRegard); + make.bottom.mas_equalTo(self.encourageRegard.mas_bottom).offset(-20); + }]; +} + +- (int)accelertowardseLargestComputtowardsion { + if ([self.prottypeAbstract.levelName isEqualToString:YMLocalizedString(@"YUMI_Wish_Gift_Create_Item_View_Controller_0")]) { + return 999; + } else if ([self.prottypeAbstract.levelName isEqualToString:YMLocalizedString(@"YUMI_Wish_Gift_Create_Item_View_Controller_1")]) { + return 99; + } else { + return 30; + } +} + +- (BOOL)canAccelertowardseLargestComputtowardsion:(int)count { + if ([self.prottypeAbstract.levelName isEqualToString:YMLocalizedString(@"YUMI_Wish_Gift_Create_Item_View_Controller_2")]) { + return count <= 999; + } else if ([self.prottypeAbstract.levelName isEqualToString:YMLocalizedString(@"YUMI_Wish_Gift_Create_Item_View_Controller_3")]) { + return count <= 99; + } else { + return count <= 30; + } +} + +- (BOOL)canMetrotractMinComputtowardsion:(int)count { + if ([self.prottypeAbstract.levelName isEqualToString:YMLocalizedString(@"YUMI_Wish_Gift_Create_Item_View_Controller_4")]) { + return count >= 10; + } else if ([self.prottypeAbstract.levelName isEqualToString:YMLocalizedString(@"YUMI_Wish_Gift_Create_Item_View_Controller_5")]) { + return count >= 10; + } else { + return count >= 1; + } +} + +- (int)subtractMinComputtowardsion { + if ([self.prottypeAbstract.levelName isEqualToString:YMLocalizedString(@"YUMI_Wish_Gift_Create_Item_View_Controller_6")]) { + return 10; + } else if ([self.prottypeAbstract.levelName isEqualToString:YMLocalizedString(@"YUMI_Wish_Gift_Create_Item_View_Controller_7")]) { + return 10; + } else { + return 1; + } +} + + +- (void)shankProttypeTowardsoloudspeakersource:(WishPresentPrototype)levele { + NSMutableArray * array = [self.prototypeStatements mutableCopy]; + for (int i = 0;i < self.prototypeStatements.count;i++) { + DesirePresentAbstractMatrix * infor = [self.prototypeStatements secureGroalTowardsIndictowardsrix1:i]; + if (infor.level == levele) { + [array removeObject:infor]; + } + } + self.prototypeRegard.datasource = array.copy; +} + +- (void)shankPresentTowardsoloudspeakersource:(NSArray *)levels giftId:(NSInteger)giftId { + NSMutableArray * array = [levels mutableCopy]; + for (int i = 0;i < levels.count;i++) { + DesirePresentAbstractMatrix * infor = [levels secureGroalTowardsIndictowardsrix1:i]; + if (infor.giftId == giftId) { + [array removeObject:infor]; + } + } + self.presentRegard.datasource = array.copy; +} + +#pragma mark - FBCDesirePresentStatementRegardRepresendtation +- (void)fBCHopePresentSttowardsementRegard:(YUMIDesirePresentStatementRegard *)view didSelectItem:(DesirePresentAbstractMatrix *)info { + if (view == self.prototypeRegard) { + self.prottypeAbstract = info; + + [self shankProttypeTowardsoloudspeakersource:info.level]; + DesirePresentAbstractMatrix * giftInfo; + if (info.level == WishPresentPrototype_Normal) { + + if (self.prototypeSolePresentStatement.count > 0) { + giftInfo = self.prototypeSolePresentStatement.firstObject; + } + self.essayUniverse.text = @"10"; + [self shankPresentTowardsoloudspeakersource:self.prototypeSolePresentStatement giftId:giftInfo.giftId]; + } else if (info.level == WishPresentPrototype_Middle) { + if (self.prototypeTwoPresentStatement.count > 0) { + giftInfo = self.prototypeTwoPresentStatement.firstObject; + } + self.essayUniverse.text = @"10"; + [self shankPresentTowardsoloudspeakersource:self.prototypeTwoPresentStatement giftId:giftInfo.giftId]; + } else { + if (self.prototypeTertiusPresentStatement.count > 0) { + giftInfo = self.prototypeTertiusPresentStatement.firstObject; + } + self.essayUniverse.text = @"1"; + [self shankPresentTowardsoloudspeakersource:self.prototypeTertiusPresentStatement giftId:giftInfo.giftId]; + } + self.giftInfo = giftInfo; + self.number = self.essayUniverse.text.intValue; + [self.presentRegard prohibitipositionDeficiencyAbstract:giftInfo]; + } else { + self.giftInfo = info; + [self.presentRegard prohibitipositionDeficiencyAbstract:info]; + if (self.prottypeAbstract.level == WishPresentPrototype_Normal) { + [self shankPresentTowardsoloudspeakersource:self.prototypeSolePresentStatement giftId:info.giftId]; + } else if (self.prottypeAbstract.level == WishPresentPrototype_Middle) { + [self shankPresentTowardsoloudspeakersource:self.prototypeTwoPresentStatement giftId:info.giftId]; + } else { + [self shankPresentTowardsoloudspeakersource:self.prototypeTertiusPresentStatement giftId:info.giftId]; + } + } +} + +#pragma mark - FBCDesirePresentCeremony +- (void)desirePresentDispositionSttowardsementSucces:(NSArray *)list level:(NSString *)level { + if (level.intValue == 1) { + self.prototypeSolePresentStatement = list; + if (list.count > 0 && !self.modifiPresentAbstract) { + self.giftInfo = list.firstObject; + [self.presentRegard prohibitipositionDeficiencyAbstract:self.giftInfo]; + [self shankPresentTowardsoloudspeakersource:self.prototypeSolePresentStatement giftId:self.giftInfo.giftId];; + } + if (self.modifiPresentAbstract) { + [self shankPresentTowardsoloudspeakersource:self.prototypeTertiusPresentStatement giftId:_modifiPresentAbstract.giftId]; + } + } else if (level.intValue == 2) { + self.prototypeTwoPresentStatement = list; + if (self.modifiPresentAbstract) { + [self shankPresentTowardsoloudspeakersource:self.prototypeTwoPresentStatement giftId:_modifiPresentAbstract.giftId]; + } + } else { + self.prototypeTertiusPresentStatement = list; + if (self.modifiPresentAbstract) { + [self shankPresentTowardsoloudspeakersource:self.prototypeTertiusPresentStatement giftId:_modifiPresentAbstract.giftId]; + } + } +} + +- (void)produceSequencirePresentProvisionAccomplishment { + [self prohibitiaplictowardsionarRegard]; + if(self.Dismiss) { + self.Dismiss(YES); + } +} + +#pragma mark - Event Response +- (void)subtractBtutonPerformance:(UIButton *)sener { + if([self canMetrotractMinComputtowardsion:self.number]) { + self.number --; + } else { + self.number = [self subtractMinComputtowardsion]; + } + self.essayUniverse.text = [NSString stringWithFormat:@"%d", self.number]; +} + +- (void)accelertowardseBtutonPerformance:(UIButton *)sener { + if([self canAccelertowardseLargestComputtowardsion:self.number]) { + self.number ++; + } else { + self.number = [self accelertowardseLargestComputtowardsion]; + } + self.essayUniverse.text = [NSString stringWithFormat:@"%d", self.number]; +} + +- (void)essayUniverseDidDiversifictowardsiond:(UITextField *)essayUniverse { + self.number = essayUniverse.text.intValue; +} + +- (void)prohibitiaplictowardsionarRegard { + [self dismissViewControllerAnimated:YES completion:nil]; +} +#pragma mark - Event Response +- (void)sureBtutonPerformance:(UIButton *)sender { + if (![self canMetrotractMinComputtowardsion:self.number]) { + NSString * toast = [NSString stringWithFormat:@"礼物数量范围需为%d~%d", [self subtractMinComputtowardsion], [self accelertowardseLargestComputtowardsion]]; + [self EvidenceMistakeToast:toast]; + self.essayUniverse.text = [NSString stringWithFormat:@"%d", [self subtractMinComputtowardsion]]; + self.number = [self subtractMinComputtowardsion]; + return; + } else if(![self canAccelertowardseLargestComputtowardsion:self.number]){ + NSString * toast = [NSString stringWithFormat:@"礼物数量范围需为%d~%d", [self subtractMinComputtowardsion], [self accelertowardseLargestComputtowardsion]]; + [self EvidenceMistakeToast:toast]; + self.essayUniverse.text = [NSString stringWithFormat:@"%d", [self accelertowardseLargestComputtowardsion]]; + self.number = [self accelertowardseLargestComputtowardsion]; + return; + } + NSString * itemId = self.modifiPresentAbstract ? [NSString stringWithFormat:@"%ld", self.modifiPresentAbstract.itemId] : @""; + [self.presimport produceSequencirePresentProvision:self.roomUid itemId:itemId giftId:[NSString stringWithFormat:@"%ld", self.giftInfo.giftId] seq:self.prottypeAbstract.level targetNum:self.number]; +} + +#pragma mark - Getters And Setters +- (void)setModifiPresentAbstract:(DesirePresentAbstractMatrix *)modifiPresentAbstract { + _modifiPresentAbstract = modifiPresentAbstract; + if (_modifiPresentAbstract) { + DesirePresentAbstractMatrix * prototypeAbstract; + for (DesirePresentAbstractMatrix * info in self.prototypeStatements) { + if (info.level == _modifiPresentAbstract.level) { + prototypeAbstract = info; + } + } + if (prototypeAbstract) { + self.prottypeAbstract = prototypeAbstract; + self.giftInfo = _modifiPresentAbstract; + [self.prototypeRegard prohibitipositionDeficiencyAbstract:prototypeAbstract]; + [self.presentRegard prohibitipositionDeficiencyAbstract:_modifiPresentAbstract]; + + [self shankProttypeTowardsoloudspeakersource:prototypeAbstract.level]; + + if (_modifiPresentAbstract.level == WishPresentPrototype_Normal) { + if (self.prototypeSolePresentStatement.count <=0) { + [self.presimport desirePresentDispositionSttowardsement:self.roomUid level:@"1"]; + } else { + [self shankPresentTowardsoloudspeakersource:self.prototypeSolePresentStatement giftId:_modifiPresentAbstract.giftId]; + } + } else if (_modifiPresentAbstract.level == WishPresentPrototype_Middle) { + if (self.prototypeTwoPresentStatement.count <= 0) { + [self.presimport desirePresentDispositionSttowardsement:self.roomUid level:@"2"]; + } else { + [self shankPresentTowardsoloudspeakersource:self.prototypeTwoPresentStatement giftId:_modifiPresentAbstract.giftId]; + } + } else { + if (self.prototypeTertiusPresentStatement.count <= 0) { + [self.presimport desirePresentDispositionSttowardsement:self.roomUid level:@"3"]; + } else { + [self shankPresentTowardsoloudspeakersource:self.prototypeTertiusPresentStatement giftId:_modifiPresentAbstract.giftId]; + } + } + self.essayUniverse.text = [NSString stringWithFormat:@"%ld", _modifiPresentAbstract.targetNum]; + self.number = (int)_modifiPresentAbstract.targetNum; + + } else { + [self prohibitiaplictowardsionarRegard]; + } + } +} + +- (UIView *)apexRegard { + if (!_apexRegard) { + _apexRegard = [[UIView alloc] init]; + _apexRegard.backgroundColor = [UIColor clearColor]; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(prohibitiaplictowardsionarRegard)]; + [_apexRegard addGestureRecognizer:tap]; + } + return _apexRegard; +} + + +- (UIView *)bottomView { + if (!_bottomView) { + _bottomView = [[UIView alloc] init]; + _bottomView.backgroundColor = [UIColor clearColor]; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(prohibitiaplictowardsionarRegard)]; + [_bottomView addGestureRecognizer:tap]; + } + return _bottomView; +} + + +- (UIView *)encourageRegard { + if (!_encourageRegard) { + _encourageRegard = [[UIView alloc] init]; + _encourageRegard.layer.masksToBounds = YES; + _encourageRegard.layer.cornerRadius = 20; + _encourageRegard.backgroundColor = [UIColor whiteColor]; + } + return _encourageRegard; +} + +- (YUMIDesirePresentStatementRegard *)prototypeRegard { + if(!_prototypeRegard) { + _prototypeRegard = [[YUMIDesirePresentStatementRegard alloc] init]; + _prototypeRegard.delegate = self; + } + return _prototypeRegard; +} + +- (YUMIDesirePresentStatementRegard *)presentRegard { + if(!_presentRegard) { + _presentRegard = [[YUMIDesirePresentStatementRegard alloc] init]; + _presentRegard.delegate = self; + } + return _presentRegard; +} + +- (UIButton *)subtractBtuton { + if (!_subtractBtuton) { + _subtractBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_subtractBtuton setImage:[UIImage imageNamed:@"yumi_scope_wish_present_subtract"] forState:UIControlStateNormal]; + [_subtractBtuton setImage:[UIImage imageNamed:@"yumi_scope_wish_present_subtract"] forState:UIControlStateSelected]; + [_subtractBtuton addTarget:self action:@selector(subtractBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _subtractBtuton; +} + + +- (UIButton *)accelerateBtuton { + if (!_accelerateBtuton) { + _accelerateBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_accelerateBtuton setImage:[UIImage imageNamed:@"yumi_scope_wish_present_add"] forState:UIControlStateNormal]; + [_accelerateBtuton setImage:[UIImage imageNamed:@"yumi_scope_wish_present_add"] forState:UIControlStateSelected]; + [_accelerateBtuton addTarget:self action:@selector(accelertowardseBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _accelerateBtuton; +} + +- (UIStackView *)digitalHierarchyRegard { + if (!_digitalHierarchyRegard) { + _digitalHierarchyRegard = [[UIStackView alloc] init]; + _digitalHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _digitalHierarchyRegard.distribution = UIStackViewDistributionFill; + _digitalHierarchyRegard.alignment = UIStackViewAlignmentFill; + _digitalHierarchyRegard.spacing = 10; + } + return _digitalHierarchyRegard; +} + +- (UITextField *)essayUniverse { + if (!_essayUniverse) { + _essayUniverse = [[UITextField alloc] init]; + _essayUniverse.layer.cornerRadius = 4; + _essayUniverse.layer.masksToBounds = YES; + _essayUniverse.tintColor = [DJDKMIMOMColor instantEssayPrettify]; + _essayUniverse.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _essayUniverse.backgroundColor = [UIColor clearColor]; + _essayUniverse.font = [UIFont systemFontOfSize:10]; + _essayUniverse.clearButtonMode = UITextFieldViewModeWhileEditing; + _essayUniverse.returnKeyType = UIReturnKeySearch; + _essayUniverse.enablesReturnKeyAutomatically = YES; + _essayUniverse.text = @"10"; + _essayUniverse.textAlignment = NSTextAlignmentCenter; + _essayUniverse.keyboardType = UIKeyboardTypeNumberPad; + _essayUniverse.backgroundColor = [DJDKMIMOMColor colorAboutHexBWSttr:@"#E4E4E4"]; + [_essayUniverse addTarget:self action:@selector(essayUniverseDidDiversifictowardsiond:) forControlEvents:UIControlEventEditingChanged]; + } + return _essayUniverse; +} + +- (UIButton *)sureBtuton { + if (!_sureBtuton) { + _sureBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_sureBtuton setTitle:YMLocalizedString(@"YUMI_Wish_Gift_Create_Item_View_Controller_10") forState:UIControlStateNormal]; + [_sureBtuton setTitleColor:[DJDKMIMOMColor acknowledgementBtutonEssayPrettify] forState:UIControlStateNormal]; + _sureBtuton.titleLabel.font = [UIFont systemFontOfSize:14]; + [_sureBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + _sureBtuton.layer.masksToBounds = YES; + _sureBtuton.layer.cornerRadius = 10; + [_sureBtuton addTarget:self action:@selector(sureBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _sureBtuton; +} + +- (NSArray *)prototypeStatements { + if (!_prototypeStatements) { + DesirePresentAbstractMatrix * levelOne = [[DesirePresentAbstractMatrix alloc] init]; + levelOne.levelName = YMLocalizedString(@"YUMI_Wish_Gift_Create_Item_View_Controller_11"); + levelOne.level = WishPresentPrototype_Normal; + + DesirePresentAbstractMatrix * levelTwo = [[DesirePresentAbstractMatrix alloc] init]; + levelTwo.levelName = YMLocalizedString(@"YUMI_Wish_Gift_Create_Item_View_Controller_12"); + levelTwo.level = WishPresentPrototype_Middle; + + DesirePresentAbstractMatrix * levelThree = [[DesirePresentAbstractMatrix alloc] init]; + levelThree.levelName = YMLocalizedString(@"YUMI_Wish_Gift_Create_Item_View_Controller_13"); + levelThree.level = WishPresentPrototype_High; + _prototypeStatements = @[levelOne, levelTwo, levelThree]; + } + return _prototypeStatements; +} + + + +@end diff --git a/YuMi/Modules/YMRoom/View/WishGift/View/YUMIDesirePresentCreateRegardGovernancer.h b/YuMi/Modules/YMRoom/View/WishGift/View/YUMIDesirePresentCreateRegardGovernancer.h new file mode 100644 index 00000000..e99358e6 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/WishGift/View/YUMIDesirePresentCreateRegardGovernancer.h @@ -0,0 +1,16 @@ +// +// YMWishGiftCreateViewController.h +// YUMI +// +// Created by YUMI on 2022/10/18. +// + +#import "MvpRegardGovernancer.h" +#import "ChamberHostRepresendtation.h" +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIDesirePresentCreateRegardGovernancer : MvpRegardGovernancer +- (instancetype)initWithDelegate:(id)delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/WishGift/View/YUMIDesirePresentCreateRegardGovernancer.m b/YuMi/Modules/YMRoom/View/WishGift/View/YUMIDesirePresentCreateRegardGovernancer.m new file mode 100644 index 00000000..0e08d513 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/WishGift/View/YUMIDesirePresentCreateRegardGovernancer.m @@ -0,0 +1,317 @@ +// +// YMWishGiftCreateViewController.m +// YUMI +// +// Created by YUMI on 2022/10/18. +// + +#import "YUMIDesirePresentCreateRegardGovernancer.h" +#import +#import "DJDKMIMOMColor.h" +#import "UIImage+Utils.h" +#import "MKJPopup.h" +#import "YUMIMacroUitls.h" +#import "NSArray+Safe.h" +#import "DesirePresentAbstractMatrix.h" +#import "ChamberAbstractMatrix.h" +#import "YUMIDesirePresentTabulationRegardElement.h" +#import "YUMIDesirePresentHistoryRegardGovernancer.h" +#import "YUMIDesirePresentCreateProvisionRegardGovernancer.h" +#import "YUMIDesirePresentExternalizer.h" +#import "FBCDesirePresentCeremony.h" +@interface YUMIDesirePresentCreateRegardGovernancer () +@property (nonatomic,strong) UILabel *dispositionSequencignation; +@property (nonatomic,strong) UIButton *distinctSequencireBtuton; +@property (nonatomic,strong) UIButton *accelerateSequencireBtuton; +@property (nonatomic,strong) UITableView *tableView; +@property (nonatomic,strong) UIButton *produceBtuton; +@property (nonatomic,strong) NSArray *datasource; +@property (nonatomic,strong) NSString *roomUid; +@property (nonatomic,weak) id delegate; +@property (nonatomic,strong) NSArray *prototypeSolePresentStatement; +@property (nonatomic,strong) NSArray *prototypeTwoPresentStatement; +@property (nonatomic,strong) NSArray *prototypeTertiusPresentStatement; +@end + +@implementation YUMIDesirePresentCreateRegardGovernancer + +- (__kindof id)producePresimport { + return [[YUMIDesirePresentExternalizer alloc] init]; +} +- (instancetype)initWithDelegate:(id)delegate{ + if (self = [super init]) { + self.delegate = delegate; + self.roomUid = [NSString stringWithFormat:@"%ld", [self.delegate acquireChamberAbstract].uid]; + [self initSequencirePresentSttowardsement]; + [self initSequencireProttypePresentSttowardsement]; + ChamberAbstractMatrix * roomInfo = [self.delegate acquireChamberAbstract]; + if (roomInfo.hasOpenWishGift) { + self.accelerateSequencireBtuton.hidden = YES; + self.distinctSequencireBtuton.hidden = YES; + [self.produceBtuton setTitle:YMLocalizedString(@"YUMI_Wish_Gift_Create_View_Controller_0") forState:UIControlStateNormal]; + self.produceBtuton.enabled = NO; + } + } + return self; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initSubViews]; + [self initChildLyRestrictions]; +} + +#pragma mark - Private Method +- (void)initSequencirePresentSttowardsement { + [self.presimport desirePresentSttowardsement:self.roomUid]; +} + +- (void)initSequencireProttypePresentSttowardsement { + [self.presimport desirePresentDispositionSttowardsement:self.roomUid level:@"1"]; + [self.presimport desirePresentDispositionSttowardsement:self.roomUid level:@"2"]; + [self.presimport desirePresentDispositionSttowardsement:self.roomUid level:@"3"]; +} + +- (void)initSubViews { + self.title = YMLocalizedString(@"YUMI_Wish_Gift_Create_View_Controller_1"); + [self.view addSubview:self.dispositionSequencignation]; + [self.view addSubview:self.distinctSequencireBtuton]; + [self.view addSubview:self.accelerateSequencireBtuton]; + [self.view addSubview:self.tableView]; + [self.view addSubview:self.produceBtuton]; + [self accelertowardseBreeadcrumbProvisionAboutChampions:@[YMLocalizedString(@"YUMI_Wish_Gift_Create_View_Controller_2")] titleColor:[DJDKMIMOMColor instantEssayPrettify] isContrary:NO target:self action:@selector(rectifyBtutonPerformance:) tags:nil]; +} + +- (void)initChildLyRestrictions { + [self.dispositionSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.view).offset(24); + make.top.mas_equalTo(self.view).offset(14); + }]; + + [self.distinctSequencireBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(60, 20)); + make.centerY.mas_equalTo(self.dispositionSequencignation); + make.right.mas_equalTo(self.accelerateSequencireBtuton.mas_left).offset(-10); + }]; + + [self.accelerateSequencireBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.equalTo(self.dispositionSequencignation); + make.right.mas_equalTo(self.view).offset(-18); + make.size.mas_equalTo(CGSizeMake(60, 20)); + }]; + + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.view).inset(15); + make.height.mas_equalTo(135); + make.top.mas_equalTo(self.dispositionSequencignation.mas_bottom).offset(13); + }]; + + [self.produceBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.view).inset(80); + make.height.mas_equalTo(37); + make.top.mas_equalTo(self.tableView.mas_bottom).offset(48); + }]; +} +#pragma mark - UITableViewDelegate And UITableViewDataSource +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return self.datasource.count; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + YUMIDesirePresentTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIDesirePresentTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIDesirePresentTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIDesirePresentTabulationRegardElement class])]; + } + DesirePresentAbstractMatrix *giftInfo = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.row]; + giftInfo.row = indexPath.row + 1; + cell.giftInfo = giftInfo; + cell.delegate = self; + ChamberAbstractMatrix * roomInfo = [self.delegate acquireChamberAbstract]; + cell.isVeiledCompile = roomInfo.hasOpenWishGift; + return cell; +} + +#pragma mark - FBCDesirePresentTabulationViweElementRepresendtation +- (void)fBCHopePresentTarbsultowardsionViweElement:(YUMIDesirePresentTabulationRegardElement *)view didClearWishGift:(DesirePresentAbstractMatrix *)info { + if (info) { + MKJPrecautiousDisposition * config = [[MKJPrecautiousDisposition alloc] init]; + config.title = @""; + config.message = @"确认删除该条数据?"; + [MKJPopup precautiousAboutDisposition:config acknowledgementHandler:^{ + [self.presimport representtowardsionSequencirePresentProvision:self.roomUid itemId:[NSString stringWithFormat:@"%ld", info.itemId]]; + } cancelHandler:^{ + + }]; + } +} + +- (void)fBCHopePresentTarbsultowardsionViweElement:(YUMIDesirePresentTabulationRegardElement *)view didUpdateWishGift:(DesirePresentAbstractMatrix *)info { + YUMIDesirePresentCreateProvisionRegardGovernancer * createItemVC = [[YUMIDesirePresentCreateProvisionRegardGovernancer alloc] init]; + createItemVC.roomUid = self.roomUid; + createItemVC.prototypeSolePresentStatement = self.prototypeSolePresentStatement; + createItemVC.prototypeTwoPresentStatement = self.prototypeTwoPresentStatement; + createItemVC.prototypeTertiusPresentStatement = self.prototypeTertiusPresentStatement; + createItemVC.modifiPresentAbstract = info; + @kWeakify(self); + createItemVC.Dismiss = ^(BOOL finish) { + @kStrongify(self); + [self initSequencirePresentSttowardsement]; + }; + createItemVC.modalPresentationStyle = UIModalPresentationOverFullScreen; + [self.navigationController presentViewController:createItemVC animated:YES completion:nil]; +} + +#pragma mark - FBCDesirePresentCeremony +- (void)accelertowardseSequencirePresentAccomplishment { + [self.navigationController popViewControllerAnimated:YES]; +} + +- (void)acquireSequencirePresentSttowardsementAccomplishment:(NSArray *)list { + self.datasource = list; + [self.tableView reloadData]; +} + +- (void)representtowardsionSequencirePresentProvisionAccomplishment { + [self initSequencirePresentSttowardsement]; +} + +- (void)desirePresentDispositionSttowardsementSucces:(NSArray *)list level:(NSString *)level { + if (level.intValue == 1) { + self.prototypeSolePresentStatement = list; + } else if (level.intValue == 2) { + self.prototypeTwoPresentStatement = list; + } else { + self.prototypeTertiusPresentStatement = list; + } +} + +#pragma mark - Event Response +- (void)rectifyBtutonPerformance:(UIButton *)sender { + YUMIDesirePresentHistoryRegardGovernancer * historyVC = [[YUMIDesirePresentHistoryRegardGovernancer alloc] init]; + historyVC.roomUid = self.roomUid; + [self.navigationController pushViewController:historyVC animated:YES]; +} + +- (void)prohibititinctBtutonPerformance:(UIButton *)sender { + if (self.datasource.count > 0) { + MKJPrecautiousDisposition * config = [[MKJPrecautiousDisposition alloc] init]; + config.title = @""; + config.message = @"确认清空当前数据?"; + [MKJPopup precautiousAboutDisposition:config acknowledgementHandler:^{ + [self.presimport representtowardsionSequencirePresentProvision:self.roomUid itemId:@"-1"]; + } cancelHandler:^{ + + }]; + } else { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_Wish_Gift_Create_View_Controller_5")]; + } +} + +- (void)accelertowardseSequencireBtutonPerformance:(UIButton *)sender { + if (self.datasource.count == 3) { + [self EvidenceMistakeToast:@"最多只可添加三个心愿呦~"]; + return; + } + YUMIDesirePresentCreateProvisionRegardGovernancer * createItemVC = [[YUMIDesirePresentCreateProvisionRegardGovernancer alloc] init]; + createItemVC.prototypeSolePresentStatement = self.prototypeSolePresentStatement; + createItemVC.prototypeTwoPresentStatement = self.prototypeTwoPresentStatement; + createItemVC.prototypeTertiusPresentStatement = self.prototypeTertiusPresentStatement; + createItemVC.roomUid = self.roomUid; + @kWeakify(self); + createItemVC.Dismiss = ^(BOOL finish) { + @kStrongify(self); + [self initSequencirePresentSttowardsement]; + }; + createItemVC.modalPresentationStyle = UIModalPresentationOverFullScreen; + [self.navigationController presentViewController:createItemVC animated:YES completion:nil]; +} + +- (void)produceBtutonPerformance:(UIButton *)sender { + if (self.datasource.count > 0) { + MKJPrecautiousDisposition * config = [[MKJPrecautiousDisposition alloc] init]; + config.title = @""; + config.message = YMLocalizedString(@"YUMI_Wish_Gift_Create_View_Controller_7"); + [MKJPopup precautiousAboutDisposition:config acknowledgementHandler:^{ + [self.presimport accelertowardseSequencirePresent:self.roomUid]; + } cancelHandler:^{ + + }]; + } else { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_Wish_Gift_Create_View_Controller_8")]; + } +} + +#pragma mark - Getters And Setters +- (UILabel *)dispositionSequencignation { + if (!_dispositionSequencignation) { + _dispositionSequencignation = [[UILabel alloc] init]; + _dispositionSequencignation.font = [UIFont systemFontOfSize:14 weight:UIFontWeightSemibold]; + _dispositionSequencignation.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _dispositionSequencignation.text = YMLocalizedString(@"YUMI_Wish_Gift_Create_View_Controller_9"); + } + return _dispositionSequencignation; +} + +- (UIButton *)distinctSequencireBtuton { + if (!_distinctSequencireBtuton) { + _distinctSequencireBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_distinctSequencireBtuton setTitle:YMLocalizedString(@"YUMI_Wish_Gift_Create_View_Controller_10") forState:UIControlStateNormal]; + [_distinctSequencireBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + _distinctSequencireBtuton.titleLabel.font = [UIFont systemFontOfSize:10]; + _distinctSequencireBtuton.backgroundColor = [DJDKMIMOMColor colorAboutHexBWSttr:@"#C7DAEA"]; + _distinctSequencireBtuton.layer.masksToBounds = YES; + _distinctSequencireBtuton.layer.cornerRadius = 10; + [_distinctSequencireBtuton addTarget:self action:@selector(prohibititinctBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _distinctSequencireBtuton; +} + +- (UIButton *)accelerateSequencireBtuton { + if (!_accelerateSequencireBtuton) { + _accelerateSequencireBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_accelerateSequencireBtuton setTitle:YMLocalizedString(@"YUMI_Wish_Gift_Create_View_Controller_11") forState:UIControlStateNormal]; + [_accelerateSequencireBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + _accelerateSequencireBtuton.titleLabel.font = [UIFont systemFontOfSize:10]; + [_accelerateSequencireBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + _accelerateSequencireBtuton.layer.masksToBounds = YES; + _accelerateSequencireBtuton.layer.cornerRadius = 10; + [_accelerateSequencireBtuton addTarget:self action:@selector(accelertowardseSequencireBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _accelerateSequencireBtuton; +} + + +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.tableFooterView = [UIView new]; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.backgroundColor = [UIColor whiteColor]; + _tableView.layer.masksToBounds = YES; + _tableView.layer.cornerRadius = 8; + if (@available(iOS 11.0, *)) { + _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + [_tableView registerClass:[YUMIDesirePresentTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIDesirePresentTabulationRegardElement class])]; + } + return _tableView; +} + +- (UIButton *)produceBtuton { + if (!_produceBtuton) { + _produceBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_produceBtuton setTitle:YMLocalizedString(@"YUMI_Wish_Gift_Create_View_Controller_12") forState:UIControlStateNormal]; + [_produceBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + _produceBtuton.titleLabel.font = [UIFont systemFontOfSize:12]; + [_produceBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify], [DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + _produceBtuton.layer.masksToBounds = YES; + _produceBtuton.layer.cornerRadius = 37 / 2; + [_produceBtuton addTarget:self action:@selector(produceBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _produceBtuton; +} + + +@end diff --git a/YuMi/Modules/YMRoom/View/WishGift/View/YUMIDesirePresentHistoryRegardGovernancer.h b/YuMi/Modules/YMRoom/View/WishGift/View/YUMIDesirePresentHistoryRegardGovernancer.h new file mode 100644 index 00000000..89109a1e --- /dev/null +++ b/YuMi/Modules/YMRoom/View/WishGift/View/YUMIDesirePresentHistoryRegardGovernancer.h @@ -0,0 +1,16 @@ +// +// YMWishGiftHistoryViewController.h +// YUMI +// +// Created by YUMI on 2022/10/18. +// + +#import "MvpRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIDesirePresentHistoryRegardGovernancer : MvpRegardGovernancer +@property (nonatomic,strong) NSString *roomUid; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/WishGift/View/YUMIDesirePresentHistoryRegardGovernancer.m b/YuMi/Modules/YMRoom/View/WishGift/View/YUMIDesirePresentHistoryRegardGovernancer.m new file mode 100644 index 00000000..6a9c3238 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/WishGift/View/YUMIDesirePresentHistoryRegardGovernancer.m @@ -0,0 +1,154 @@ +// +// YMWishGiftHistoryViewController.m +// YUMI +// +// Created by YUMI on 2022/10/18. +// + +#import "YUMIDesirePresentHistoryRegardGovernancer.h" +#import +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" +#import "PLIntratemporalUtil.h" +#import "NSArray+Safe.h" +#import "DesirePresentHistoryMatrix.h" +#import "YUMIDesirePresentHistoryTabulationRegardElement.h" +#import "YUMIDesirePresentDispossessTabulationRegardElement.h" +#import "YUMIDesirePresentDivisionRegard.h" +#import "YUMIDesirePresentExternalizer.h" +#import "FBCDesirePresentCeremony.h" + +@interface YUMIDesirePresentHistoryRegardGovernancer () +@property (nonatomic,strong) UITableView *tableView; +@property (nonatomic,strong) NSArray *datasource; +@end + +@implementation YUMIDesirePresentHistoryRegardGovernancer + +- (__kindof id)producePresimport { + return [[YUMIDesirePresentExternalizer alloc] init]; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initSequencirePresentHerstorySttowardsement]; + [self initSubViews]; + [self initChildLyRestrictions]; +} + + +- (void)initSubViews { + self.title = YMLocalizedString(@"YUMI_Wish_Gift_History_View_Controller_0"); + [self.view addSubview:self.tableView]; +} + +- (void)initChildLyRestrictions { + [self.tableView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.equalTo(self.view); + }]; +} + +- (void)initSequencirePresentHerstorySttowardsement { + [self.presimport desirePresentHistroySttowardsement:self.roomUid]; +} + +#pragma mark - UITableViewDelegate And UITableViewDataSource +- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { + return self.datasource.count > 0 ? self.datasource.count : 1; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { + if (self.datasource.count > 0) { + return 44; + } + return (KScreenHeight - kNavigationHeight); +} + +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + if (self.datasource.count > 0) { + DesirePresentHistoryMatrix *info = [self.datasource secureGroalTowardsIndictowardsrix1:section]; + return info.gifts.count; + } + return 0; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + if (self.datasource.count > 0) { + YUMIDesirePresentHistoryTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIDesirePresentHistoryTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIDesirePresentHistoryTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIDesirePresentHistoryTabulationRegardElement class])]; + } + DesirePresentHistoryMatrix *historyInfo = [self.datasource secureGroalTowardsIndictowardsrix1:indexPath.section]; + DesirePresentAbstractMatrix * info= [historyInfo.gifts secureGroalTowardsIndictowardsrix1:indexPath.row]; + info.row = (indexPath.row + 1); + cell.giftInfo = info; + if (indexPath.row == 0) { + cell.isApex = YES; + } else { + cell.isApex = NO; + } + + if (indexPath.row == historyInfo.gifts.count -1) { + cell.isExtreme = YES; + } else { + cell.isExtreme = false; + } + return cell; + } + + YUMIDesirePresentDispossessTabulationRegardElement * cell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([YUMIDesirePresentDispossessTabulationRegardElement class])]; + if (cell == nil) { + cell = [[YUMIDesirePresentDispossessTabulationRegardElement alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:NSStringFromClass([YUMIDesirePresentDispossessTabulationRegardElement class])]; + } + return cell; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section { + return 0.01; +} + +- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section { + return [[UIView alloc] init];; +} + +- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section { + return self.datasource.count > 0 ? 45 : 0.01; +} + +- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { + if (self.datasource.count > 0) { + YUMIDesirePresentDivisionRegard * view = [[YUMIDesirePresentDivisionRegard alloc] init]; + view.frame = CGRectMake(0, 0, KScreenWidth, 45); + DesirePresentHistoryMatrix *historyInfo = [self.datasource secureGroalTowardsIndictowardsrix1:section]; + view.title = historyInfo.createDate; + return view; + } + return [UIView new]; +} + +#pragma mark - FBCDesirePresentCeremony +- (void)desirePresentHistroySttowardsementAccomplishment:(NSArray *)list { + self.datasource = list; + [self.tableView reloadData]; +} + +#pragma mark - Getters And Setters +- (UITableView *)tableView { + if (!_tableView) { + _tableView = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStyleGrouped]; + _tableView.delegate = self; + _tableView.dataSource = self; + _tableView.tableFooterView = [UIView new]; + _tableView.separatorStyle = UITableViewCellSeparatorStyleNone; + _tableView.backgroundColor = [UIColor clearColor]; + if (@available(iOS 11.0, *)) { + _tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + [_tableView registerClass:[YUMIDesirePresentHistoryTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIDesirePresentHistoryTabulationRegardElement class])]; + [self.tableView registerClass:[YUMIDesirePresentDispossessTabulationRegardElement class] forCellReuseIdentifier:NSStringFromClass([YUMIDesirePresentDispossessTabulationRegardElement class])]; + } + return _tableView; +} + + +@end diff --git a/YuMi/Modules/YMRoom/View/WishGift/View/YUMIDesirePresentRegardGovernancer.h b/YuMi/Modules/YMRoom/View/WishGift/View/YUMIDesirePresentRegardGovernancer.h new file mode 100644 index 00000000..390a9214 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/WishGift/View/YUMIDesirePresentRegardGovernancer.h @@ -0,0 +1,28 @@ +// +// YMWishGIftViewController.h +// YUMI +// +// Created by YUMI on 2022/10/18. +// + +#import "MvpRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN + +@protocol FBCDesirePresentRegardGovernancerRepresendtation + +- (void)fBCHopePresentRegardGovernancerDischargeTicktack:(NSString *)giftId; + +@end + +@interface YUMIDesirePresentRegardGovernancer : MvpRegardGovernancer + +- (instancetype)initAboutChamberCid:(NSString *)roomUid; + +@property (nonatomic,weak) id delegate; + +- (void)acquireSequencirePresentSttowardsementAccomplishment:(NSArray *)list; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/WishGift/View/YUMIDesirePresentRegardGovernancer.m b/YuMi/Modules/YMRoom/View/WishGift/View/YUMIDesirePresentRegardGovernancer.m new file mode 100644 index 00000000..59ad156a --- /dev/null +++ b/YuMi/Modules/YMRoom/View/WishGift/View/YUMIDesirePresentRegardGovernancer.m @@ -0,0 +1,358 @@ +// +// YMWishGIftViewController.m +// YUMI +// +// Created by YUMI on 2022/10/18. +// + +#import "YUMIDesirePresentRegardGovernancer.h" +#import +#import "DJDKMIMOMColor.h" +#import "NetIndicateRegard.h" +#import "YUMIMacroUitls.h" +#import "StatsticsticsServingFacilitater.h" +#import "NSArray+Safe.h" +#import "YUMIDesirePresentAbstractRegard.h" +#import "DesirePresentAbstractMatrix.h" +#import "DesireExternalizeConsumerMatrix.h" +#import "YUMIDesirePresentExternalizer.h" +#import "FBCDesirePresentCeremony.h" +@interface YUMIDesirePresentRegardGovernancer () +@property (nonatomic,strong) UIView *apexRegard; +@property (nonatomic,strong) UIImageView *encourageIndicateRegard; +@property (nonatomic,strong) UILabel *titleLabel; +@property (nonatomic,strong) UILabel *promptsGbsel; +@property (nonatomic,strong) UIView *burlywoodRegard; +@property (nonatomic,strong) UIStackView *consumerHierarchyRegard; +@property (nonatomic,strong) NetIndicateRegard *thresholdIntelligenceportraitIndicateRegard; +@property (nonatomic,strong) NetIndicateRegard *instantIntelligenceportraitIndicateRegard; +@property (nonatomic,strong) NetIndicateRegard *tertiusIntelligenceportraitIndicateRegard; +@property (nonatomic,strong) NSArray * intelligenceportraitRegards; +@property (nonatomic,strong) UILabel *assistFigureSequencignation; +@property (nonatomic,strong) UIStackView *presentHierarchyRegard; +@property (nonatomic,strong) YUMIDesirePresentAbstractRegard *thresholdRegard; +@property (nonatomic,strong) YUMIDesirePresentAbstractRegard *instantRegard; +@property (nonatomic,strong) YUMIDesirePresentAbstractRegard *tertiusRegard; +@property (nonatomic,strong) NSArray *presentRegards; +@property (nonatomic,strong) NSString *roomUid; +@end + +@implementation YUMIDesirePresentRegardGovernancer + +- (instancetype)initAboutChamberCid:(NSString *)roomUid { + if (self = [super init]) { + self.roomUid = roomUid; + [self initDeficiencyTowardsoloudspeaker]; + } + return self; +} + +- (__kindof id)producePresimport { + return [[YUMIDesirePresentExternalizer alloc] init]; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initSubViews]; + [self initChildLyRestrictions]; +} + +- (void)initDeficiencyTowardsoloudspeaker { + [self.presimport desirePresentAssistConsumerSttowardsement:self.roomUid]; + [self.presimport desirePresentSttowardsement:self.roomUid]; +} + +- (void)initSubViews { + self.view.backgroundColor = [UIColor clearColor]; + [self.view addSubview:self.apexRegard]; + [self.view addSubview:self.encourageIndicateRegard]; + [self.encourageIndicateRegard addSubview:self.titleLabel]; + [self.encourageIndicateRegard addSubview:self.promptsGbsel]; + [self.encourageIndicateRegard addSubview:self.burlywoodRegard]; + [self.encourageIndicateRegard addSubview:self.consumerHierarchyRegard]; + [self.encourageIndicateRegard addSubview:self.assistFigureSequencignation]; + [self.encourageIndicateRegard addSubview:self.presentHierarchyRegard]; + + [self.consumerHierarchyRegard addArrangedSubview:self.thresholdIntelligenceportraitIndicateRegard]; + [self.consumerHierarchyRegard addArrangedSubview:self.instantIntelligenceportraitIndicateRegard]; + [self.consumerHierarchyRegard addArrangedSubview:self.tertiusIntelligenceportraitIndicateRegard]; + + [self.presentHierarchyRegard addArrangedSubview:self.thresholdRegard]; + [self.presentHierarchyRegard addArrangedSubview:self.instantRegard]; + [self.presentHierarchyRegard addArrangedSubview:self.tertiusRegard]; + self.presentRegards = @[self.thresholdRegard, self.instantRegard, self.tertiusRegard]; +} + +- (void)initChildLyRestrictions { + [self.apexRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.top.right.equalTo(self.view); + make.bottom.mas_equalTo(self.encourageIndicateRegard.mas_top); + }]; + + [self.encourageIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.mas_equalTo(self.view); + make.height.mas_equalTo(283 + kSafeAreaBottomHeight); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.encourageIndicateRegard); + make.top.mas_equalTo(self.encourageIndicateRegard).offset(16); + }]; + + [self.promptsGbsel mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.encourageIndicateRegard); + make.top.mas_equalTo(self.titleLabel.mas_bottom).offset(8); + }]; + + [self.burlywoodRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.encourageIndicateRegard); + make.top.mas_equalTo(self.promptsGbsel.mas_bottom).offset(12); + make.height.mas_equalTo(0.5); + }]; + + [self.consumerHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(28); + make.left.mas_equalTo(self.encourageIndicateRegard).offset(16); + make.top.mas_equalTo(self.burlywoodRegard.mas_bottom).offset(10); + }]; + + [self.thresholdIntelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(28); + }]; + + [self.instantIntelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(28); + }]; + + [self.tertiusIntelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(28); + }]; + + [self.assistFigureSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.encourageIndicateRegard).inset(15); + make.centerY.mas_equalTo(self.consumerHierarchyRegard); + }]; + + [self.presentHierarchyRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self.encourageIndicateRegard); + make.height.mas_equalTo(165); + make.bottom.mas_equalTo(self.encourageIndicateRegard).offset(-9 -kSafeAreaBottomHeight); + }]; + + [self.thresholdRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(106); + }]; + + [self.instantRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(106); + }]; + + [self.tertiusRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(106); + }]; +} + +#pragma mark - FBCDesirePresentAbstractRegardRepresendtation +- (void)fBCHopePresentAbstractRegard:(YUMIDesirePresentAbstractRegard *)view didClickSender:(DesirePresentAbstractMatrix *)info { + [self prohibitiaplictowardsionarRegard]; + if (info.giftId > 0 && self.delegate && [self.delegate respondsToSelector:@selector(fBCHopePresentRegardGovernancerDischargeTicktack:)]) { + NSString * giftId = [NSString stringWithFormat:@"%ld", info.giftId]; + [self.delegate fBCHopePresentRegardGovernancerDischargeTicktack:giftId]; + } + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventRoom_wishlist_panel_click eventAttributes:@{@"giftName" : info.giftName.length > 0 ? info.giftName : @""}]; +} + +#pragma mark - FBCDesirePresentCeremony +- (void)acquireSequencirePresentAssistConsumerSttowardsementAccomplishment:(NSArray *)list { + for (int i = 0; i < self.consumerHierarchyRegard.arrangedSubviews.count; i++) { + NetIndicateRegard * imageView = [self.consumerHierarchyRegard.subviews secureGroalTowardsIndictowardsrix1:i]; + if (i < list.count) { + DesireExternalizeConsumerMatrix * userInfo = [list secureGroalTowardsIndictowardsrix1:i]; + imageView.hidden = NO; + imageView.imageUrl = userInfo.avatar; + }else { + imageView.hidden = YES; + } + } + + NSString * number = [NSString stringWithFormat:@"%ld", list.count]; + if (list.count <= 0) { + NSString * title = YMLocalizedString(@"YUMI_Wish_Gift_View_Controller_0"); + NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] initWithString:title attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:12], NSForegroundColorAttributeName:[DJDKMIMOMColor essayTertiusPrettify]}]; + self.assistFigureSequencignation.attributedText = attribute; + self.assistFigureSequencignation.textAlignment = NSTextAlignmentCenter; + } else { + NSString * title = [NSString stringWithFormat:@"%@%@", number, YMLocalizedString(@"YUMI_Wish_Gift_View_Controller_1")]; + NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] initWithString:title attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:12], NSForegroundColorAttributeName:[DJDKMIMOMColor essayTertiusPrettify]}]; + [attribute addAttribute:NSForegroundColorAttributeName value:[DJDKMIMOMColor colorAboutHexBWSttr:@"#FFC300"] range:[title rangeOfString:number]]; + self.assistFigureSequencignation.attributedText = attribute; + self.assistFigureSequencignation.textAlignment = NSTextAlignmentRight; + } + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventRoom_wishlist_panel_show]; +} + +- (void)acquireSequencirePresentSttowardsementAccomplishment:(NSArray *)list { + int finishNumber = 0; + for (DesirePresentAbstractMatrix * info in list) { + if (info.actualNum >= info.targetNum) { + finishNumber ++; + } + } + + for (int i = 0; i < self.presentRegards.count; i++) { + YUMIDesirePresentAbstractRegard * view = [self.presentRegards secureGroalTowardsIndictowardsrix1:i]; + if(i < list.count) { + DesirePresentAbstractMatrix * info = [list secureGroalTowardsIndictowardsrix1:i]; + view.giftInfo = info; + view.hidden = NO; + } else { + view.hidden = YES; + } + } + self.titleLabel.text = [NSString stringWithFormat:@"今日心愿礼物%d/%ld",finishNumber,list.count]; +} + +#pragma mark - Event Response +- (void)prohibitiaplictowardsionarRegard { + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventRoom_wishlist_panel_close_click]; + [self dismissViewControllerAnimated:YES completion:nil]; +} + +#pragma mark - Getters And Setters +- (UIView *)apexRegard { + if (!_apexRegard) { + _apexRegard = [[UIView alloc] init]; + _apexRegard.backgroundColor = [UIColor clearColor]; + UITapGestureRecognizer * tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(prohibitiaplictowardsionarRegard)]; + [_apexRegard addGestureRecognizer:tap]; + } + return _apexRegard; +} + +- (UIImageView *)encourageIndicateRegard { + if (!_encourageIndicateRegard) { + _encourageIndicateRegard = [[UIImageView alloc] init]; + _encourageIndicateRegard.userInteractionEnabled = YES; + _encourageIndicateRegard.image = [UIImage imageNamed:@"yumi_scope_wish_present_panel_background"]; + } + return _encourageIndicateRegard; +} + +- (UILabel *)titleLabel { + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.font = [UIFont systemFontOfSize:14 weight:UIFontWeightMedium]; + _titleLabel.textColor = [UIColor whiteColor]; + } + return _titleLabel; +} + +- (UILabel *)promptsGbsel { + if (!_promptsGbsel) { + _promptsGbsel = [[UILabel alloc] init]; + _promptsGbsel.font = [UIFont systemFontOfSize:10]; + _promptsGbsel.text = @"-当日设置的心愿,会在次日0点失效-"; + _promptsGbsel.textColor = [DJDKMIMOMColor essayTertiusPrettify]; + } + return _promptsGbsel; +} + +- (UIView *)burlywoodRegard { + if (!_burlywoodRegard) { + _burlywoodRegard = [[UIView alloc] init]; + _burlywoodRegard.backgroundColor = [UIColor colorWithWhite:1 alpha:0.1]; + } + return _burlywoodRegard; +} + +- (UIStackView *)consumerHierarchyRegard { + if (!_consumerHierarchyRegard) { + _consumerHierarchyRegard = [[UIStackView alloc] init]; + _consumerHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _consumerHierarchyRegard.distribution = UIStackViewDistributionFill; + _consumerHierarchyRegard.alignment = UIStackViewAlignmentCenter; + _consumerHierarchyRegard.spacing = 4; + } + return _consumerHierarchyRegard; +} + +- (NetIndicateRegard *)thresholdIntelligenceportraitIndicateRegard { + if (!_thresholdIntelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _thresholdIntelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _thresholdIntelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _thresholdIntelligenceportraitIndicateRegard.layer.cornerRadius = 28/2; + } + return _thresholdIntelligenceportraitIndicateRegard; +} + +- (NetIndicateRegard *)instantIntelligenceportraitIndicateRegard { + if (!_instantIntelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _instantIntelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _instantIntelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _instantIntelligenceportraitIndicateRegard.layer.cornerRadius = 28/2; + } + return _instantIntelligenceportraitIndicateRegard; +} + +- (NetIndicateRegard *)tertiusIntelligenceportraitIndicateRegard { + if (!_tertiusIntelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _tertiusIntelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _tertiusIntelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _tertiusIntelligenceportraitIndicateRegard.layer.cornerRadius = 28/2; + } + return _tertiusIntelligenceportraitIndicateRegard; +} + +- (UILabel *)assistFigureSequencignation { + if (!_assistFigureSequencignation) { + _assistFigureSequencignation = [[UILabel alloc] init]; + } + return _assistFigureSequencignation; +} + +- (UIStackView *)presentHierarchyRegard { + if (!_presentHierarchyRegard) { + _presentHierarchyRegard = [[UIStackView alloc] init]; + _presentHierarchyRegard.axis = UILayoutConstraintAxisHorizontal; + _presentHierarchyRegard.distribution = UIStackViewDistributionFill; + _presentHierarchyRegard.alignment = UIStackViewAlignmentFill; + _presentHierarchyRegard.spacing = 12; + } + return _presentHierarchyRegard; +} + +- (YUMIDesirePresentAbstractRegard *)thresholdRegard { + if(!_thresholdRegard) { + _thresholdRegard = [[YUMIDesirePresentAbstractRegard alloc] init]; + _thresholdRegard.delegate = self; + } + return _thresholdRegard; +} + +- (YUMIDesirePresentAbstractRegard *)instantRegard { + if(!_instantRegard) { + _instantRegard = [[YUMIDesirePresentAbstractRegard alloc] init]; + _instantRegard.delegate = self; + } + return _instantRegard; +} + +- (YUMIDesirePresentAbstractRegard *)tertiusRegard { + if(!_tertiusRegard) { + _tertiusRegard = [[YUMIDesirePresentAbstractRegard alloc] init]; + _tertiusRegard.delegate = self; + } + return _tertiusRegard; +} + + +@end diff --git a/YuMi/Modules/YMRoom/View/YUMIChamberMiniExecutive.h b/YuMi/Modules/YMRoom/View/YUMIChamberMiniExecutive.h new file mode 100644 index 00000000..3029dff6 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/YUMIChamberMiniExecutive.h @@ -0,0 +1,33 @@ +// +// YMRoomMiniManager.h +// YUMI +// +// Created by YUMI on 2021/12/8. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class ChamberAbstractMatrix, NIMMessage, Manual, ConsumerAbstractMatrix; +@interface YUMIChamberMiniExecutive : NSObject + +@property (nonatomic,copy) NSString *_Nullable curDeclare; ++ (instancetype)shareManager; + +- (ChamberAbstractMatrix *)acquireChamberAbstract; + +- (void)prohibitipositionChamberAbstract:(ChamberAbstractMatrix * _Nullable)roomInfo; + +- (ConsumerAbstractMatrix *)getUserInfo; + +- (void)prohibitipositionConsumerAbstract:(ConsumerAbstractMatrix * _Nullable)userInfo; +- (void)preserveChamberCommunictowardsion:(NIMMessage *)message; +- (NSArray *)acquireProvincialUniversalChamberCommunictowardsion; +- (void)replacementProvincialCommunictowardsion; + +- (Manual *)acquireUniversalManual; +- (BOOL)manualDisporting; +- (void)prohibitipositionUniversalManual:(Manual * _Nullable)roomInfo isPlaying:(BOOL)isPlaying; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/YUMIChamberMiniExecutive.m b/YuMi/Modules/YMRoom/View/YUMIChamberMiniExecutive.m new file mode 100644 index 00000000..e4c632f2 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/YUMIChamberMiniExecutive.m @@ -0,0 +1,81 @@ +// +// YMRoomMiniManager.m +// YUMI +// +// Created by YUMI on 2021/12/8. +// + +#import "YUMIChamberMiniExecutive.h" +#import "XPRoomMessageConstant.h" + +@interface YUMIChamberMiniExecutive () +@property (nonatomic,strong) NSMutableArray *communicationGarment; +@property (nonatomic,strong) ChamberAbstractMatrix *roomInfo; +@property (nonatomic,strong) Manual *manualAbstract; +@property (nonatomic,assign) BOOL isPlaying; +@property (nonatomic,strong) ConsumerAbstractMatrix *userInfo; +@end + +@implementation YUMIChamberMiniExecutive + ++ (instancetype)shareManager { + static dispatch_once_t onceToken = 0; + static id instance; + dispatch_once(&onceToken, ^{ + instance = [[YUMIChamberMiniExecutive alloc] init]; + }); + return instance; +} + +- (ChamberAbstractMatrix *)acquireChamberAbstract { + return self.roomInfo; +} + +- (void)prohibitipositionChamberAbstract:(ChamberAbstractMatrix *_Nullable)roomInfo { + self.roomInfo = roomInfo; +} + +- (ConsumerAbstractMatrix *)getUserInfo { + return self.userInfo; +} + +- (void)prohibitipositionConsumerAbstract:(ConsumerAbstractMatrix * _Nullable)userInfo { + self.userInfo = userInfo; +} + +- (Manual *)acquireUniversalManual { + return self.manualAbstract; +} + +- (BOOL)manualDisporting { + return self.isPlaying; +} + +- (void)prohibitipositionUniversalManual:(Manual *)manual isPlaying:(BOOL)isPlaying { + self.manualAbstract = manual; + self.isPlaying = isPlaying; +} + +- (void)preserveChamberCommunictowardsion:(NIMMessage *)message { + [self.communicationGarment addObject:message]; + if (self.communicationGarment.count > kChamberCommunicationLargestLongness) { + NSIndexSet *set = [NSIndexSet indexSetWithIndexesInRange:NSMakeRange(0, kChamberCommunicationLargestLongness/2)]; + NSArray *needRemoveMsgArray = [self.communicationGarment objectsAtIndexes:set]; + [self.communicationGarment removeObjectsInArray:needRemoveMsgArray]; + } +} +- (NSArray *)acquireProvincialUniversalChamberCommunictowardsion { + return [self.communicationGarment copy]; +} +- (void)replacementProvincialCommunictowardsion { + [self.communicationGarment removeAllObjects]; +} + +- (NSMutableArray *)communicationGarment { + if (!_communicationGarment) { + _communicationGarment = [NSMutableArray array]; + } + return _communicationGarment; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/YUMIChamberRegardGovernancer.h b/YuMi/Modules/YMRoom/View/YUMIChamberRegardGovernancer.h new file mode 100644 index 00000000..cca7a058 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/YUMIChamberRegardGovernancer.h @@ -0,0 +1,35 @@ +// +// YMRoomViewController.h +// YUMI +// +// Created by YUMI on 2021/10/11. +// + +#import "MvpRegardGovernancer.h" +#import "YUMICommunicationRemoteExtMatrix.h" +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIChamberRegardGovernancer : MvpRegardGovernancer + + ++ (BOOL)unfoildChamber:(NSString*)roomUid viewController:(UIViewController*)viewController; + + ++ (BOOL)unfoildRoadliceChamber:(NSString*)roomUid viewController:(UIViewController*)viewController; + + ++ (BOOL)unfoildChamber:(NSString*)roomUid fromNick:(NSString * __nullable)fromNick fromType:(ConsumerEnterChamberFromGenre)fromType fromUid:(NSString * __nullable)fromUid viewController:(UIViewController*)viewController; + + ++ (BOOL)unfoildChamber:(NSString*)roomUid mgId:(NSString *)mgId viewController:(UIViewController*)viewController; + ++ (BOOL)unfoildChamber:(NSString *)roomUid giftId:(NSString *)giftId viewController:(UIViewController *)viewController; + +- (instancetype)init NS_UNAVAILABLE; ++ (instancetype)new NS_UNAVAILABLE; +- (id)copy NS_UNAVAILABLE; +- (id)mutableCopy NS_UNAVAILABLE; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/YUMIChamberRegardGovernancer.m b/YuMi/Modules/YMRoom/View/YUMIChamberRegardGovernancer.m new file mode 100644 index 00000000..5cd3e836 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/YUMIChamberRegardGovernancer.m @@ -0,0 +1,1703 @@ +// +// YMRoomViewController.m +// YUMI +// +// Created by YUMI on 2021/10/11. +// + +#import "YUMIChamberRegardGovernancer.h" +#import +#import +#import "YUMIMacroUitls.h" +#import "YUMIConstant.h" +#import "AccountAbstractStorage.h" +#import "RealtimackExecutive.h" +#import "YUMIChamberMiniExecutive.h" +#import "MKJPopup.h" +#import "Api+ArrangeMic.h" +#import "Api+Room.h" +#import "DESEncrypt.h" +#import "StatsticsticsServingFacilitater.h" +#import "NSArray+Safe.h" +#import "NSMutableDictionary+Saft.h" +#import "YUMICommunicationSolitaireDisporterExecutive.h" +#import "XCCurrentVCStackExecutive.h" +#import "ChamberAbstractMatrix.h" +#import "ConsumerAbstractMatrix.h" +#import "AttachmentMatrix.h" +#import "ScheduleLoudspeakerMatrix.h" +#import "YUMIReleaseWirelessMatrix.h" +#import "UnionSensationalManagementAbstractMatrix.h" +#import "XCombatickConsumerMatrix.h" +#import "SatisfactionPrototypeAscensionMatrix.h" +#import "YUMIAchieveDeficitSheatheMatrix.h" +#import "YUMIDeficitSheatheMatrix.h" +#import "ThresholdChargeChamberWindowMatrix.h" +#import "BaseNevigationGovernancer.h" +#import "YUMIChamberImportpriseAccommodatedRegard.h" +#import "YUMIChamberBackAccommodatedRegard.h" +#import "YUMIChamberParrotAccommodatedRegard.h" +#import "YUMIChamberMHTuickCommunicationContainRegard.h" +#import "YUMIChamberCommunicationAccommodatedRegard.h" +#import "ChamberIntelligencerRegard.h" +#import "SocialPhaseRegard.h" +#import "EngagementPhaseRegard.h" +#import "KellegPhaseRegard.h" +#import "KellegCombatPhaseRegard.h" +#import "YUMIChamberBrightnessRegard.h" +#import "YUMIChamberFunctionAccommodatedRegard.h" +#import "YUMIScheduleLoudspeakerRegardGovernancer.h" +#import "YUMIChamberInstanllingIntrojectionRegard.h" +#import "KellegChamberScrollRegard.h" +#import "KellegChamberSrollTipRegard.h" +#import "YUMIAchieveDeficitSheatheRegard.h" +#import "YUMIThresholdReindictRegard.h" +#import "YUMIChamberExternalizer.h" +#import "FBCChamberCeremony.h" + +#import "ChamberHostRepresendtation.h" +#import "ChamberGuestRepresendtation.h" + +#import "XNDJTBWGLoadingTool.h" + +UIKIT_EXTERN NSString * const kRoomGiftEffectUpdateNotificationKey; +UIKIT_EXTERN NSString * const kRoomMiniNotificationKey; +UIKIT_EXTERN NSString * kNewUserRechargeKey; +UIKIT_EXTERN NSString * kShowFirstRechargeView; + +NSString * const kHadShowAnchorRoomTipKey = @"kHadShowAnchorRoomTipKey"; +NSString * const kHadQuitOtherRoomKey = @"kHadQuitOtherRoomKey"; + +@interface YUMIChamberRegardGovernancer () +@property (nonatomic,strong) YUMIChamberBackAccommodatedRegard *encourageAccommoengagementdRegard; + +@property (nonatomic, strong) KellegChamberScrollRegard *kellegTrundleRegard; +@property (nonatomic,strong) ChamberIntelligencerRegard *chamberIntelligenceerRegard; +@property (nonatomic,strong) PhaseRegard *scoupleeRegard; +@property (nonatomic,strong) YUMIChamberCommunicationAccommodatedRegard *communicationAccommoengagementdRegard; +@property (nonatomic, strong) YUMIChamberMHTuickCommunicationContainRegard *quickCommunicationAccommoengagementdRegard; +@property (nonatomic,strong) YUMIChamberParrotAccommodatedRegard *parrotAccommoengagementdRegard; +@property (nonatomic,strong) YUMIChamberImportpriseAccommodatedRegard *importpriseAccommoengagementdRegard; +@property (nonatomic,strong) YUMIChamberBrightnessRegard *animationView; +@property (nonatomic,strong) YUMIChamberFunctionAccommodatedRegard *functionRegard; +@property (nonatomic,copy) NSString * roomUid; +@property (nonatomic,copy) NSString *mgId; +@property (nonatomic, copy) NSString *giftId; +@property (nonatomic,strong) ConsumerAbstractMatrix *userInfo; +@property (nonatomic,strong) ChamberAbstractMatrix *roomInfo; +@property (nonatomic,assign) BOOL hasAnimationEffect; +@property (nonatomic,copy) NSString *fromNick; +@property (nonatomic,assign) ConsumerEnterChamberFromGenre fromType; +@property (nonatomic,copy) NSString *fromUid; +@property (nonatomic,strong) NSArray *superMangerList; +@property (nonatomic,assign) BOOL isDemandSensationalManagement; +@property (nonatomic,assign) BOOL isRoadliceImport; +@property (nonatomic, strong) KellegChamberSrollTipRegard *kellegTrundlePromptRegard; + +@property (nonatomic,strong) NSMutableArray *kellegChamberStatement; +@property (nonatomic,assign) NSInteger kellegIndicatrix; +@property (nonatomic,strong) YUMIThresholdReindictRegard *thresholdReindictRegard; +@property (nonatomic,assign) BOOL isExhibitThresholdReindict; +@end + +@implementation YUMIChamberRegardGovernancer + ++ (BOOL)unfoildChamber:(NSString *)roomUid viewController:(UIViewController *)viewController { + return [self unfoildChamber:roomUid fromNick:nil fromType:0 fromUid:nil viewController:viewController]; +} + ++ (BOOL) unfoildChamber:(NSString*)roomUid fromNick:(NSString * __nullable)fromNick fromType:(ConsumerEnterChamberFromGenre)fromType fromUid:(NSString * __nullable)fromUid viewController:(UIViewController*)viewController { + YUMIChamberRegardGovernancer * chamberVewC = [[self alloc] init]; + chamberVewC.roomUid = roomUid; + chamberVewC.fromUid = fromUid; + chamberVewC.fromType = fromType; + chamberVewC.fromNick = fromNick; + BaseNevigationGovernancer * baseNav = [[BaseNevigationGovernancer alloc] initWithRootViewController:chamberVewC]; + baseNav.modalPresentationStyle = UIModalPresentationFullScreen; + [viewController presentViewController:baseNav animated:YES completion:nil]; + return YES; +} + + ++ (BOOL)unfoildRoadliceChamber:(NSString*)roomUid viewController:(UIViewController*)viewController { + YUMIChamberRegardGovernancer * chamberVewC = [[self alloc] init]; + chamberVewC.roomUid = roomUid; + chamberVewC.isRoadliceImport = YES; + BaseNevigationGovernancer * baseNav = [[BaseNevigationGovernancer alloc] initWithRootViewController:chamberVewC]; + baseNav.modalPresentationStyle = UIModalPresentationFullScreen; + [viewController presentViewController:baseNav animated:YES completion:nil]; + return chamberVewC; +} + + ++ (BOOL)unfoildChamber:(NSString*)roomUid mgId:(NSString *)mgId viewController:(UIViewController*)viewController { + YUMIChamberRegardGovernancer * chamberVewC = [[self alloc] init]; + chamberVewC.roomUid = roomUid; + chamberVewC.mgId = mgId; + BaseNevigationGovernancer * baseNav = [[BaseNevigationGovernancer alloc] initWithRootViewController:chamberVewC]; + baseNav.modalPresentationStyle = UIModalPresentationFullScreen; + [viewController presentViewController:baseNav animated:YES completion:nil]; + return YES; +} + ++ (BOOL)unfoildChamber:(NSString *)roomUid giftId:(NSString *)giftId viewController:(UIViewController *)viewController { + YUMIChamberRegardGovernancer * chamberVewC = [[self alloc] init]; + chamberVewC.roomUid = roomUid; + chamberVewC.giftId = giftId; + BaseNevigationGovernancer * baseNav = [[BaseNevigationGovernancer alloc] initWithRootViewController:chamberVewC]; + baseNav.modalPresentationStyle = UIModalPresentationFullScreen; + [viewController presentViewController:baseNav animated:YES completion:nil]; + return YES; +} + +- (void)dealloc { +#warning to dox - 时刻注意这个方法 功能做完的时候删除此方法 + NSLog(@"房间销毁了"); + [YUMICommunicationSolitaireDisporterExecutive partowardsiciptowardsionInstance].isInChamberThresholdReindict = NO; + [YUMICommunicationSolitaireDisporterExecutive partowardsiciptowardsionInstance].isInRoom = NO; + [YUMICommunicationSolitaireDisporterExecutive partowardsiciptowardsionInstance].roomUid = @""; + if([[YUMIChamberMiniExecutive shareManager] acquireChamberAbstract]==nil){ + [YUMICommunicationSolitaireDisporterExecutive partowardsiciptowardsionInstance].isManeInLoudspeaker = NO; + } + [[NIMSDK sharedSDK].chatroomManager removeDelegate:self]; + [[NIMSDK sharedSDK].chatManager removeDelegate:self]; + [[NIMSDK sharedSDK].loginManager removeDelegate:self]; + [[NIMSDK sharedSDK].conversationManager removeDelegate:self]; + [[NSNotificationCenter defaultCenter] removeObserver:self]; +} + +- (YUMIChamberExternalizer *)producePresimport { + return [[YUMIChamberExternalizer alloc] init]; +} + +- (BOOL)isVeiledNevObstacle { + return YES; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self routeInthecaseofmerChamber]; + [self initSubViews]; + [self initChildLyRestrictions]; + if (self.isRoadliceImport) { + [self initImportChamberAccomplishment:[YUMIChamberMiniExecutive shareManager].acquireChamberAbstract user:[YUMIChamberMiniExecutive shareManager].getUserInfo]; + } else { + [XNDJTBWGLoadingTool EvidenceKellegChambering:self.navigationController.view]; + [self.presimport initImportChamber:self.roomUid user:[AccountAbstractStorage instance].acquireCid]; + } + + [self.presimport acquireOrdinaryPresentSttowardsement:self.roomUid]; + + [self.presimport acquireChamberSenstowardsionalManagement:self.roomUid]; + + [self.presimport acquireChamberThresholdCharegWindow:self.roomUid]; + + [[NIMSDK sharedSDK].chatroomManager addDelegate:self]; + [[NIMSDK sharedSDK].chatManager addDelegate:self]; + [[NIMSDK sharedSDK].loginManager addDelegate:self]; + [[NIMSDK sharedSDK].conversationManager addDelegate:self]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(mietyPresentImpressionRefurbish:) name:kRoomGiftEffectUpdateNotificationKey object:nil]; + [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(EvidenceChamberThresholdInstructionWindowInthecaseofmNgtowards:) name:kShowFirstRechargeView object:nil]; + [YUMICommunicationSolitaireDisporterExecutive partowardsiciptowardsionInstance].isInRoom = YES; +} + +- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { + [self.parrotAccommoengagementdRegard parrotResignThresholdResponder]; +} + +- (void)viewWillAppear:(BOOL)animated { + [super viewWillAppear:animated]; + [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent; +} + +- (void)viewDidAppear:(BOOL)animated { + [super viewDidAppear:animated]; + if([YUMICommunicationSolitaireDisporterExecutive partowardsiciptowardsionInstance].isInChamberThresholdReindict == YES && self.isExhibitThresholdReindict == NO){ + [YUMICommunicationSolitaireDisporterExecutive partowardsiciptowardsionInstance].isInChamberThresholdReindict = NO; + + [self.presimport acquireChamberThresholdCharegWindow:self.roomUid]; + } +} + +#pragma mark - Private Method +- (void)initSubViews { + self.view.backgroundColor = [UIColor clearColor]; + [self.view addSubview:self.encourageAccommoengagementdRegard]; + [self.view addSubview:self.scoupleeRegard]; + [self.view addSubview:self.communicationAccommoengagementdRegard]; + [self.view addSubview:self.quickCommunicationAccommoengagementdRegard]; + [self.view addSubview:self.parrotAccommoengagementdRegard]; + [self.view addSubview:self.importpriseAccommoengagementdRegard]; + [self.view addSubview:self.chamberIntelligenceerRegard]; + [self.view addSubview:self.functionRegard]; + [self.view addSubview:self.animationView]; +} + +- (void)initChildLyRestrictions { + [self.encourageAccommoengagementdRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.view); + }]; + + [self.chamberIntelligenceerRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self.view); + make.height.mas_equalTo(kNavigationHeight); + }]; + + [self.scoupleeRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.view); + make.top.mas_equalTo(self.chamberIntelligenceerRegard.mas_bottom); + make.height.mas_equalTo(self.scoupleeRegard.hightInthecaseofPhaseRegard); + }]; + + [self.communicationAccommoengagementdRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.equalTo(self.scoupleeRegard.mas_bottom); + make.bottom.equalTo(self.quickCommunicationAccommoengagementdRegard.mas_top).offset(-5); + make.left.equalTo(self.view); + make.right.equalTo(self.importpriseAccommoengagementdRegard.mas_left).offset(-10); + }]; + CGFloat quickMsgHeight = 30; + + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + NSNumber *closeCount = [defaults objectForKey:kRoomQuickMessageCloseCount]; + if (closeCount.intValue > 3) { + quickMsgHeight = 0; + } else { + quickMsgHeight = 30; + } + [self.quickCommunicationAccommoengagementdRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.bottom.mas_equalTo(self.parrotAccommoengagementdRegard.mas_top); + make.height.mas_equalTo(quickMsgHeight); + make.left.right.mas_equalTo(self.view); + }]; + [self.parrotAccommoengagementdRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.view); + make.bottom.mas_equalTo(-kSafeAreaBottomHeight- 8); + make.height.mas_equalTo(40); + }]; + + [self.importpriseAccommoengagementdRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.communicationAccommoengagementdRegard); + make.right.mas_equalTo(self.view); + make.bottom.mas_equalTo(self.quickCommunicationAccommoengagementdRegard.mas_top).offset(-5); + make.width.mas_equalTo(80); + }]; + + [self.animationView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.view); + }]; + + [self.functionRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.view); + }]; +} + +- (void)refurbishRegardRestrictionsOnKellegChamber { + [self.kellegTrundleRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.view); + }]; + [self.encourageAccommoengagementdRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.kellegTrundleRegard.middleIndicateRegard); + }]; + [self.chamberIntelligenceerRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.mas_equalTo(self.kellegTrundleRegard.middleIndicateRegard); + make.height.mas_equalTo(kNavigationHeight); + }]; + [self.scoupleeRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.kellegTrundleRegard.middleIndicateRegard); + make.top.mas_equalTo(self.chamberIntelligenceerRegard.mas_bottom); + make.height.mas_equalTo(self.scoupleeRegard.hightInthecaseofPhaseRegard); + }]; + [self.communicationAccommoengagementdRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.equalTo(self.scoupleeRegard.mas_bottom); + make.bottom.mas_equalTo(self.quickCommunicationAccommoengagementdRegard.mas_top).mas_offset(-5); + make.left.equalTo(self.kellegTrundleRegard.middleIndicateRegard); + make.right.equalTo(self.importpriseAccommoengagementdRegard.mas_left).offset(-10); + }]; + [self.quickCommunicationAccommoengagementdRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(30); + make.bottom.mas_equalTo(self.encourageAccommoengagementdRegard).mas_offset(-5-40-8-kSafeAreaBottomHeight); + make.left.equalTo(self.kellegTrundleRegard.middleIndicateRegard); + make.right.equalTo(self.importpriseAccommoengagementdRegard.mas_left).offset(-10); + }]; + [self.parrotAccommoengagementdRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.kellegTrundleRegard.middleIndicateRegard); + make.bottom.mas_equalTo(self.kellegTrundleRegard.middleIndicateRegard).offset(-kSafeAreaBottomHeight- 8); + make.height.mas_equalTo(40); + }]; + [self.importpriseAccommoengagementdRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.communicationAccommoengagementdRegard); + make.right.mas_equalTo(self.kellegTrundleRegard.middleIndicateRegard); + make.bottom.mas_equalTo(self.quickCommunicationAccommoengagementdRegard.mas_top).mas_offset(-5); + make.width.mas_equalTo(80); + }]; + [self.functionRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.kellegTrundleRegard.middleIndicateRegard); + }]; +} + +- (void)routeInthecaseofmerChamber { + NSString * roomUid = [NSString stringWithFormat:@"%ld", [YUMIChamberMiniExecutive shareManager].acquireChamberAbstract.uid]; + if (roomUid.integerValue > 0 && roomUid.integerValue != self.roomUid.integerValue) { + + NSString * roomId = [NSString stringWithFormat:@"%ld", [YUMIChamberMiniExecutive shareManager].acquireChamberAbstract.roomId]; + [self.presimport routeNEMCChamber:roomId]; + [[RealtimackExecutive instance] exitRoom]; + [[YUMIChamberMiniExecutive shareManager] replacementProvincialCommunictowardsion]; + [self.presimport respondConsumerOptowardssideChamber:roomUid]; + } +} + +- (void)consumerImportChamberAccomplishment { + AttachmentMatrix *attachment = [[AttachmentMatrix alloc]init]; + attachment.first = IndividualityCommunicationGenre_Car_Notify; + attachment.second = Custom_Message_Sub_Car_EnterRoom; + NSMutableDictionary *att = [NSMutableDictionary dictionary]; + if (self.userInfo.userVipInfoVO.enterHide) { + return; + } + if (self.userInfo.viewUrl.length > 0) { + [att secureSetGroal:self.userInfo.nick forKey:@"nick"]; + [att secureSetGroal:self.userInfo.viewUrl forKey:@"viewUrl"]; + [att secureSetGroal:@(self.userInfo.otherViewType) forKey:@"otherViewType"]; + } else if (self.userInfo.carEffect.length > 0) { + [att secureSetGroal:self.userInfo.carEffect forKey:@"effect"]; + [att secureSetGroal:self.userInfo.nick forKey:@"nick"]; + } else { + return; + } + attachment.data = att; + NSString *sessionID = [NSString stringWithFormat:@"%ld",self.roomInfo.roomId]; + NIMMessage *message = [[NIMMessage alloc]init]; + NIMCustomObject *object = [[NIMCustomObject alloc] init]; + object.attachment = attachment; + message.messageObject = object; + + NIMSession *session = [NIMSession session:sessionID type:NIMSessionTypeChatroom]; + [[NIMSDK sharedSDK].chatManager sendMessage:message toSession:session error:nil]; +} + +- (void)diversifictowardsionPhaseRegardOnChamberRefurbish { + if (self.roomInfo.roomModeType == ChamberModeGenre_Open_Blind && ![self.scoupleeRegard isKindOfClass:[EngagementPhaseRegard class]]) { + [self.scoupleeRegard removeFromSuperview]; + self.scoupleeRegard = nil; + self.scoupleeRegard = [[EngagementPhaseRegard alloc] initWithDelegate:self]; + } else if(self.roomInfo.datingState == ChamberDatingDeclareChangeGenre_Close && ![self.scoupleeRegard isKindOfClass:[SocialPhaseRegard class]]) { + [self.scoupleeRegard removeFromSuperview]; + self.scoupleeRegard = nil; + self.scoupleeRegard = [[SocialPhaseRegard alloc] initWithDelegate:self]; + } else if (self.roomInfo.type == ChamberGenre_Anchor) { + if (self.roomInfo.roomModeType == ChamberModeGenre_Open_AcrossRoomPK_mode && ![self.scoupleeRegard isKindOfClass:[KellegCombatPhaseRegard class]]) { + [self.scoupleeRegard removeFromSuperview]; + self.scoupleeRegard = nil; + self.scoupleeRegard = [[KellegCombatPhaseRegard alloc] initWithDelegate:self]; + } else if(self.roomInfo.roomModeType == ChamberModeGenre_Normal_Mode && ![self.scoupleeRegard isKindOfClass:[KellegPhaseRegard class]]) { + [self.scoupleeRegard removeFromSuperview]; + self.scoupleeRegard = nil; + self.scoupleeRegard = [[KellegPhaseRegard alloc] initWithDelegate:self]; + } + }else if(self.roomInfo.hadChangeRoomType && ![self.scoupleeRegard isKindOfClass:[SocialPhaseRegard class]]) { + [self.scoupleeRegard removeFromSuperview]; + self.scoupleeRegard = nil; + self.scoupleeRegard = [[SocialPhaseRegard alloc] initWithDelegate:self]; + } else { + return; + } + + + if (!self.scoupleeRegard.superview) { + [self.view insertSubview:self.scoupleeRegard belowSubview:self.chamberIntelligenceerRegard]; + } + + + if (self.roomInfo.type == ChamberGenre_MiniGame) { + [self.scoupleeRegard mas_remakeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.view); + make.top.mas_equalTo(self.chamberIntelligenceerRegard.mas_bottom).offset(26 + 4); + make.height.mas_equalTo(self.scoupleeRegard.hightInthecaseofPhaseRegard); + }]; + + [self.communicationAccommoengagementdRegard mas_remakeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(70); + make.bottom.mas_equalTo(self.quickCommunicationAccommoengagementdRegard.mas_top).offset(-5); + make.left.mas_equalTo(self.view); + make.right.mas_equalTo(self.importpriseAccommoengagementdRegard.mas_left).offset(-10); + }]; + + [self.importpriseAccommoengagementdRegard mas_remakeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(65); + make.right.mas_equalTo(self.view); + make.bottom.mas_equalTo(self.quickCommunicationAccommoengagementdRegard.mas_top).offset(-5); + make.width.mas_equalTo(80); + }]; + } else { + [self.scoupleeRegard mas_remakeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.view); + make.top.mas_equalTo(self.chamberIntelligenceerRegard.mas_bottom); + make.height.mas_equalTo(self.scoupleeRegard.hightInthecaseofPhaseRegard); + }]; + + [self.communicationAccommoengagementdRegard mas_remakeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.scoupleeRegard.mas_bottom); + make.bottom.mas_equalTo(self.quickCommunicationAccommoengagementdRegard.mas_top).offset(-5); + make.left.mas_equalTo(self.view); + make.right.mas_equalTo(self.importpriseAccommoengagementdRegard.mas_left).offset(-10); + }]; + + [self.importpriseAccommoengagementdRegard mas_remakeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.communicationAccommoengagementdRegard); + make.right.mas_equalTo(self.view); + make.bottom.mas_equalTo(self.quickCommunicationAccommoengagementdRegard.mas_top).offset(-5); + make.width.mas_equalTo(80); + }]; + } +} + +- (void)diversifictowardsionPhaseRegardOnKellegChamber { + if (self.roomInfo.roomModeType == ChamberModeGenre_Open_AcrossRoomPK_mode && ![self.scoupleeRegard isKindOfClass:[KellegCombatPhaseRegard class]]) { + [self.scoupleeRegard removeFromSuperview]; + self.scoupleeRegard = nil; + self.scoupleeRegard = [[KellegCombatPhaseRegard alloc] initWithDelegate:self]; + } else if(self.roomInfo.roomModeType == ChamberModeGenre_Normal_Mode && ![self.scoupleeRegard isKindOfClass:[KellegPhaseRegard class]]) { + [self.scoupleeRegard removeFromSuperview]; + self.scoupleeRegard = nil; + self.scoupleeRegard = [[KellegPhaseRegard alloc] initWithDelegate:self]; + } + if (!self.scoupleeRegard.superview) { + [self.kellegTrundleRegard insertSubview:self.scoupleeRegard belowSubview:self.chamberIntelligenceerRegard]; + } + + [self.scoupleeRegard mas_remakeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(self.kellegTrundleRegard.middleIndicateRegard); + make.top.mas_equalTo(self.chamberIntelligenceerRegard.mas_bottom); + make.height.mas_equalTo(self.scoupleeRegard.hightInthecaseofPhaseRegard); + }]; + [self.communicationAccommoengagementdRegard mas_remakeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.scoupleeRegard.mas_bottom); + make.bottom.mas_equalTo(self.quickCommunicationAccommoengagementdRegard.mas_top).mas_offset(-5); + make.left.mas_equalTo(self.kellegTrundleRegard.middleIndicateRegard); + make.right.mas_equalTo(self.importpriseAccommoengagementdRegard.mas_left).offset(-10); + }]; + + CGFloat quickMsgHeight = 30; + + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + NSNumber *closeCount = [defaults objectForKey:kRoomQuickMessageCloseCount]; + if (closeCount.intValue > 3 || self.roomInfo.speakTemplate.count <=0) { + quickMsgHeight = 0; + } else { + quickMsgHeight = 30; + } + self.quickCommunicationAccommoengagementdRegard.titleArray = self.roomInfo.speakTemplate; + [self.quickCommunicationAccommoengagementdRegard mas_remakeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(quickMsgHeight); + make.bottom.mas_equalTo(self.encourageAccommoengagementdRegard).mas_offset(-5-40-8-kSafeAreaBottomHeight); + make.left.right.mas_equalTo(self.kellegTrundleRegard.middleIndicateRegard); + }]; + [self.importpriseAccommoengagementdRegard mas_remakeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.communicationAccommoengagementdRegard); + make.right.mas_equalTo(self.kellegTrundleRegard.middleIndicateRegard); + make.bottom.mas_equalTo(self.quickCommunicationAccommoengagementdRegard.mas_top).mas_offset(-5); + make.width.mas_equalTo(80); + }]; +} + +-(void)EvidenceChamberThresholdInstructionWindowInthecaseofmNgtowards:(NSNotification *)not{ + if(not != nil){ + NSDictionary *parameter = not.object; + if(parameter != nil){ + self.thresholdReindictRegard.type = parameter[@"type"]; + self.thresholdReindictRegard.diamonds = parameter[@"diamonds"]; + } + } + [NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(EvidenceChamberThresholdInstructionWindow) object:nil]; + [[UIApplication sharedApplication].keyWindow addSubview:self.thresholdReindictRegard]; + [self.presimport refurbishChamberThresholdCharegWindow:self.roomUid]; + +} +-(void)EvidenceChamberThresholdInstructionWindow{ + if([YUMICommunicationSolitaireDisporterExecutive partowardsiciptowardsionInstance].isInChamberThresholdReindict == YES){ + self.isExhibitThresholdReindict = NO; + return; + } + UIViewController *viewController = [XCCurrentVCStackExecutive shareManager].getCurrentVC; + if(![viewController isKindOfClass:[YUMIChamberRegardGovernancer class]]){ + [viewController dismissViewControllerAnimated:YES completion:nil]; + } + self.isExhibitThresholdReindict = NO; + [self.presimport refurbishChamberThresholdCharegWindow:self.roomUid]; + [[UIApplication sharedApplication].keyWindow addSubview:self.thresholdReindictRegard]; + +} + +- (void)revoctowardsionChamberScheduleLoudspeaker { + + if (self.roomInfo.roomModeType == ChamberModeGenre_Open_Micro_Mode || self.roomInfo.roomModeType == ChamberModeGenre_Open_Blind) { + NSString * roomUid = [NSString stringWithFormat:@"%ld", self.roomInfo.uid]; + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [Api acquireChamberScheduleLoudspeakerSttowardsement:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + ScheduleLoudspeakerMatrix * arrangeMicModel= [ScheduleLoudspeakerMatrix mtowardsrixAboutJSON:data.data]; + if (arrangeMicModel.myPos.intValue > 0) { + __block NSString * grouptype = @"0"; + if (self.roomInfo.roomModeType == ChamberModeGenre_Open_Blind) { + [arrangeMicModel.queue enumerateObjectsUsingBlock:^(ScheduleLoudspeakerConsumerMatrix * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if (obj.uid.integerValue == [AccountAbstractStorage instance].acquireCid.integerValue) { + grouptype = [NSString stringWithFormat:@"%ld", obj.groupType]; + *stop = YES; + } + }]; + + } + [Api revoctowardsionScheduleLoudspeaker:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) {} roomUid:roomUid operUid:uid groupType:grouptype]; + } + } + } roomUid:roomUid operUid:uid page:@"1" pageSize:@"50"]; + }else if(self.roomInfo.roomModeType == ChamberModeGenre_Open_PK_Mode) { + NSString * roomUid = [NSString stringWithFormat:@"%ld", self.roomInfo.uid]; + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [Api acquireChamberCombatConsumerSttowardsement:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + ScheduleLoudspeakerMatrix * arrangeMicModel= [ScheduleLoudspeakerMatrix mtowardsrixAboutJSON:data.data]; + if (arrangeMicModel.myPos.intValue > 0) { + __block NSString * grouptype = @"0"; + [arrangeMicModel.queue enumerateObjectsUsingBlock:^(ScheduleLoudspeakerConsumerMatrix * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if (obj.uid.integerValue == [AccountAbstractStorage instance].acquireCid.integerValue) { + grouptype = [NSString stringWithFormat:@"%ld", obj.groupType]; + *stop = YES; + } + }]; + [Api revoctowardsionChamberCombatScheduleLoudspeaker:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + + } roomUid:roomUid operUid:uid groupType:grouptype]; + } + } + } roomUid:roomUid operUid:uid page:@"1" pageSize:@"50"]; + } +} + +- (void)senstowardsionalManagementImportPwordChamber:(ChamberAbstractMatrix *)roomInfo { + __block BOOL isSuperAdmin = NO; + [self.superMangerList enumerateObjectsUsingBlock:^(UnionSensationalManagementAbstractMatrix * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if ([obj.uid isEqualToString:[AccountAbstractStorage instance].acquireCid]) { + isSuperAdmin = YES; + *stop = YES; + } + }]; + if (!isSuperAdmin) { + YUMIChamberInstanllingIntrojectionRegard * titleView = [[YUMIChamberInstanllingIntrojectionRegard alloc] init]; + titleView.maxCount = 15; + titleView.delegate = self; + titleView.type = ChamberInstanllingIntrojectionGenre_Input_Pwd; + TTPopupConfig * config = [[TTPopupConfig alloc] init]; + config.contentView = titleView; + config.maskEncouragegroundTransparency = 1; + config.shouldDismissOnBackgroundTouch = NO; + [MKJPopup popupAboutDisposition:config]; + } else { + self.roomInfo.datingState = roomInfo.roomModeType == ChamberModeGenre_Open_Blind ? ChamberDatingDeclareChangeGenre_Open : ChamberDatingDeclareChangeGenre_Normal; + [self diversifictowardsionPhaseRegardOnChamberRefurbish]; + [self.chamberIntelligenceerRegard onChamberImported]; + [self.importpriseAccommoengagementdRegard onChamberImported]; + [self.parrotAccommoengagementdRegard onChamberImported]; + [self.encourageAccommoengagementdRegard onChamberImported]; + if ([YUMIChamberMiniExecutive shareManager].acquireChamberAbstract.uid != self.roomUid.integerValue) { + [self.presimport importNEMCChamber:[NSString stringWithFormat:@"%ld", self.roomInfo.roomId] user:self.userInfo]; + [self.functionRegard onChamberImported]; + [self.communicationAccommoengagementdRegard onChamberImported]; + } else { + + [self.scoupleeRegard onChamberRoadliceImported]; + [self.communicationAccommoengagementdRegard onChamberRoadliceImported]; + [self.functionRegard onChamberRoadliceImported]; + [self.functionRegard onChamberImported]; + } + [[YUMIChamberMiniExecutive shareManager] prohibitipositionChamberAbstract:nil]; + [[YUMIChamberMiniExecutive shareManager] prohibitipositionConsumerAbstract:nil]; + [[YUMIChamberMiniExecutive shareManager] prohibitipositionUniversalManual:nil isPlaying:NO]; + } +} + +- (void)shankSenstowardsionalExecutiveImportKellegChamber:(ChamberAbstractMatrix *)roomInfo { + __block BOOL isSuperAdmin = NO; + [self.superMangerList enumerateObjectsUsingBlock:^(UnionSensationalManagementAbstractMatrix * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if ([obj.uid isEqualToString:[AccountAbstractStorage instance].acquireCid]) { + isSuperAdmin = YES; + *stop = YES; + } + }]; + if (!isSuperAdmin) { + YUMIChamberInstanllingIntrojectionRegard * titleView = [[YUMIChamberInstanllingIntrojectionRegard alloc] init]; + titleView.maxCount = 15; + titleView.delegate = self; + titleView.type = ChamberInstanllingIntrojectionGenre_Input_Pwd; + TTPopupConfig * config = [[TTPopupConfig alloc] init]; + config.contentView = titleView; + config.maskEncouragegroundTransparency = 1; + config.shouldDismissOnBackgroundTouch = NO; + [MKJPopup popupAboutDisposition:config]; + } else { + self.roomInfo.datingState = roomInfo.roomModeType == ChamberModeGenre_Open_Blind ? ChamberDatingDeclareChangeGenre_Open : ChamberDatingDeclareChangeGenre_Normal; + if (!self.kellegTrundleRegard.superview) { + [self.view insertSubview:self.kellegTrundleRegard belowSubview:self.parrotAccommoengagementdRegard]; + } + [self.encourageAccommoengagementdRegard removeFromSuperview]; + [self.scoupleeRegard removeFromSuperview]; + [self.communicationAccommoengagementdRegard removeFromSuperview]; + [self.quickCommunicationAccommoengagementdRegard removeFromSuperview]; + [self.importpriseAccommoengagementdRegard removeFromSuperview]; + [self.chamberIntelligenceerRegard removeFromSuperview]; + [self.functionRegard removeFromSuperview]; + + [self.kellegTrundleRegard addSubview:self.encourageAccommoengagementdRegard]; + [self.kellegTrundleRegard addSubview:self.scoupleeRegard]; + [self.kellegTrundleRegard addSubview:self.communicationAccommoengagementdRegard]; + [self.kellegTrundleRegard addSubview:self.quickCommunicationAccommoengagementdRegard]; + [self.kellegTrundleRegard addSubview:self.importpriseAccommoengagementdRegard]; + [self.kellegTrundleRegard addSubview:self.chamberIntelligenceerRegard]; + [self.kellegTrundleRegard addSubview:self.functionRegard]; + if (!self.parrotAccommoengagementdRegard.superview) { + [self.view addSubview:self.parrotAccommoengagementdRegard]; + } + [self.view bringSubviewToFront:self.animationView]; + + [self refurbishRegardRestrictionsOnKellegChamber]; + [self diversifictowardsionPhaseRegardOnKellegChamber]; + + [self.chamberIntelligenceerRegard onChamberImported]; + [self.importpriseAccommoengagementdRegard onChamberImported]; + [self.parrotAccommoengagementdRegard onChamberImported]; + [self.encourageAccommoengagementdRegard onChamberImported]; + if ([YUMIChamberMiniExecutive shareManager].acquireChamberAbstract.uid != self.roomUid.integerValue) { + [self.presimport importNEMCChamber:[NSString stringWithFormat:@"%ld", self.roomInfo.roomId] user:self.userInfo]; + [self.functionRegard onChamberImported]; + [self.communicationAccommoengagementdRegard onChamberImported]; + } else { + + [self.scoupleeRegard onChamberRoadliceImported]; + [self.communicationAccommoengagementdRegard onChamberRoadliceImported]; + [self.functionRegard onChamberRoadliceImported]; + [self.functionRegard onChamberImported]; + } + [[YUMIChamberMiniExecutive shareManager] prohibitipositionChamberAbstract:nil]; + [[YUMIChamberMiniExecutive shareManager] prohibitipositionConsumerAbstract:nil]; + [[YUMIChamberMiniExecutive shareManager] prohibitipositionUniversalManual:nil isPlaying:NO]; + } +} + +- (void)EvidenceKellegTrundlePromptRegard { + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + NSString *anchoScrollTip = [defaults objectForKey:kHadShowAnchorRoomTipKey]; + if (!anchoScrollTip) { + UIWindow *window = [UIApplication sharedApplication].delegate.window; + [window addSubview:self.kellegTrundlePromptRegard]; + [window bringSubviewToFront:self.kellegTrundlePromptRegard]; + } +} + +- (BOOL)isKictOptowardssideRecently:(ChamberAbstractMatrix *)roomInfo { + NSString *currentUid = [AccountAbstractStorage instance].acquireCid; + NSString *key = [NSString stringWithFormat:@"%@_%ld", currentUid, roomInfo.uid]; + NSString *kictOutTime = [[NSUserDefaults standardUserDefaults] objectForKey:key]; + if (kictOutTime) { + NSDate* date = [NSDate dateWithTimeIntervalSinceNow:0]; + NSTimeInterval time = [date timeIntervalSince1970]; + NSString *currentTime = [NSString stringWithFormat:@"%.0f", time]; + + if ([currentTime intValue] - [kictOutTime intValue] > 5 * 60) { + [[NSUserDefaults standardUserDefaults] removeObjectForKey:key]; + [[NSUserDefaults standardUserDefaults] synchronize]; + return NO; + } else { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:YMLocalizedString(@"YUMI_Room_View_Controller_0")]; + [self dismissViewControllerAnimated:YES completion:nil]; + return YES; + } + } else { + return NO; + } +} + +#pragma mark - 本地礼物特效更新 +- (void)mietyPresentImpressionRefurbish:(NSNotification *)notification { + NSDictionary * dic = notification.object; + self.roomInfo.hasAnimationEffect = ((NSNumber *)dic[@"hasAnimationEffect"]).boolValue; + self.hasAnimationEffect = self.roomInfo.hasAnimationEffect; + [self.chamberIntelligenceerRegard onChamberRefurbish]; +} +#pragma mark - FBCChamberCeremony +- (void)initImportChamberAccomplishment:(ChamberAbstractMatrix *)roomInfo user:(ConsumerAbstractMatrix *)userInfo { + [XNDJTBWGLoadingTool brakeHUDInRegard:self.navigationController.view]; + [YUMICommunicationSolitaireDisporterExecutive partowardsiciptowardsionInstance].roomUid = @(roomInfo.uid).stringValue; + userInfo.fromUid = self.fromUid; + userInfo.fromType = self.fromType; + userInfo.fromNick = self.fromNick; + self.hasAnimationEffect = roomInfo.hasAnimationEffect; + self.roomInfo = roomInfo; + self.userInfo = userInfo; + + if ([self isKictOptowardssideRecently:roomInfo]) { + return; + } + if (roomInfo.type == ChamberGenre_Anchor) { + [self shankInitKellegChamber]; + [self EvidenceKellegTrundlePromptRegard]; + return; + } + if (roomInfo.valid) { + if (roomInfo.roomPwd.length > 0 && roomInfo.uid != [AccountAbstractStorage instance].acquireCid.integerValue && [YUMIChamberMiniExecutive shareManager].acquireChamberAbstract.uid != self.roomUid.integerValue) { + if (!self.isDemandSensationalManagement) { + [Api acquireChamberSenstowardsionalManagementSttowardsement:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + NSArray * array = [UnionSensationalManagementAbstractMatrix mtowardsrixsAboutGarment:data.data]; + self.superMangerList = array; + [self senstowardsionalManagementImportPwordChamber:roomInfo]; + } roomUid:self.roomUid]; + } else { + [self senstowardsionalManagementImportPwordChamber:roomInfo]; + } + } else { + self.roomInfo.datingState = roomInfo.roomModeType == ChamberModeGenre_Open_Blind ? ChamberDatingDeclareChangeGenre_Open : ChamberDatingDeclareChangeGenre_Normal; + [self diversifictowardsionPhaseRegardOnChamberRefurbish]; + [self.chamberIntelligenceerRegard onChamberImported]; + [self.importpriseAccommoengagementdRegard onChamberImported]; + [self.parrotAccommoengagementdRegard onChamberImported]; + [self.encourageAccommoengagementdRegard onChamberImported]; + self.quickCommunicationAccommoengagementdRegard.titleArray = self.roomInfo.speakTemplate; + if ([YUMIChamberMiniExecutive shareManager].acquireChamberAbstract.uid != self.roomUid.integerValue) { + [self.presimport importNEMCChamber:[NSString stringWithFormat:@"%ld", self.roomInfo.roomId] user:self.userInfo]; + [self.functionRegard onChamberImported]; + [self.communicationAccommoengagementdRegard onChamberImported]; + } else { + + [self.scoupleeRegard onChamberRoadliceImported]; + [self.communicationAccommoengagementdRegard onChamberRoadliceImported]; + [self.functionRegard onChamberRoadliceImported]; + [self.functionRegard onChamberImported]; + } + [[YUMIChamberMiniExecutive shareManager] prohibitipositionChamberAbstract:nil]; + [[YUMIChamberMiniExecutive shareManager] prohibitipositionConsumerAbstract:nil]; + [[YUMIChamberMiniExecutive shareManager] prohibitipositionUniversalManual:nil isPlaying:NO]; + } + } else { + if ([self.roomUid isEqualToString:[NSString stringWithFormat:@"%ld", userInfo.uid]]) { + if (roomInfo.roomId > 0) { + if (roomInfo.type == ChamberGenre_MiniGame && roomInfo.mgId > 0) { + self.mgId = [NSString stringWithFormat:@"%lld", roomInfo.mgId]; + } + [self.presimport unfoildChamber:roomInfo.title type:roomInfo.type roomPwd:roomInfo.roomPwd roomDesc:roomInfo.roomDesc backPic:@"" mgId:self.mgId]; + } else { + NSString* title = [NSString stringWithFormat:YMLocalizedString(@"YUMI_Room_View_Controller_1"), userInfo.nick]; + ChamberGenre type = ChamberGenre_Game; + if (self.mgId.length > 0) { + type = ChamberGenre_MiniGame; + } + [self.presimport unfoildChamber:title type:type roomPwd:@"" roomDesc:@"" backPic:@"" mgId:self.mgId]; + } + } else { + + [self EvidenceAccomplishmentToast:YMLocalizedString(@"YUMI_Room_View_Controller_2")]; + [self importChamberFlunk:0]; + } + } +} + +- (void)unfoildChamberAccomplishment:(ChamberAbstractMatrix *)roomInfo { + [XNDJTBWGLoadingTool brakeHUDInRegard:self.navigationController.view]; + [self brakeHUD]; + self.roomInfo = roomInfo; + if (roomInfo.type == ChamberGenre_Anchor) { + [self shankInitKellegChamber]; + [self EvidenceKellegTrundlePromptRegard]; + return; + } + [self diversifictowardsionPhaseRegardOnChamberRefurbish]; + [self.chamberIntelligenceerRegard onChamberImported]; + [self.importpriseAccommoengagementdRegard onChamberImported]; + [self.encourageAccommoengagementdRegard onChamberImported]; + [self.functionRegard onChamberImported]; + [self.communicationAccommoengagementdRegard onChamberImported]; + self.quickCommunicationAccommoengagementdRegard.titleArray = self.roomInfo.speakTemplate; + [self.presimport importNEMCChamber:[NSString stringWithFormat:@"%ld", self.roomInfo.roomId] user:self.userInfo]; +} + +- (void)importChamberAccomplishment:(NIMChatroom *)chatRoom { + [XNDJTBWGLoadingTool brakeHUDInRegard:self.navigationController.view]; + + self.roomInfo.onlineNum = chatRoom.onlineUserCount; + [self.scoupleeRegard onChamberImported]; + [self.functionRegard onChamberImported]; + + if (self.roomInfo != nil) { + [self.presimport respondConsumerInterChamber:[NSString stringWithFormat:@"%zd", self.roomInfo.uid]]; + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventuser_visit_room eventAttributes:@{@"roomUid" : @(self.roomInfo.uid)}]; + } + if (self.giftId.length) { + + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + [[NSNotificationCenter defaultCenter] postNotificationName:@"kShowGiftView" object:@{@"giftId": self.giftId}]; + }); + } + + [self.presimport acquireDeficitShetowardshe:[NSString stringWithFormat:@"%ld", self.roomInfo.uid]]; +} + +- (void)importChamberFlunk:(NSInteger)code { + [XNDJTBWGLoadingTool brakeHUDInRegard:self.navigationController.view]; + [self brakeHUD]; + if (code == 13003) { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_Room_View_Controller_3")]; + } + [self dismissViewControllerAnimated:YES completion:nil]; +} + +- (void)acquireChamberSenstowardsionalManagementScuccess:(NSArray *)list { + self.isDemandSensationalManagement = YES; + self.superMangerList = list; +} + +- (void)acquireLtowardsterKellegChamberAccomplishment:(ChamberAbstractMatrix *)roomInfo { + [self brakeHUD]; + if (roomInfo) { + if (![self.kellegChamberStatement containsObject:self.roomUid]) { + [self.kellegChamberStatement addObject:self.roomUid]; + } + self.kellegIndicatrix = self.kellegChamberStatement.count -1; + + self.kellegTrundleRegard.isCanTrundleApex = YES; + self.kellegTrundleRegard.contentOffset = CGPointMake(0, KScreenHeight); + self.isDemandSensationalManagement = NO; + [self routeInthecaseofmerChamber]; + [self.presimport routeNEMCChamber:[NSString stringWithFormat:@"%ld", self.roomInfo.roomId]]; + [[YUMIChamberMiniExecutive shareManager] replacementProvincialCommunictowardsion]; + [[RealtimackExecutive instance] exitRoom]; + [self.presimport respondConsumerOptowardssideChamber:[NSString stringWithFormat:@"%ld", self.roomInfo.uid]]; + [self.functionRegard onChamberDiversifictowardsion]; + + [self.scoupleeRegard removeFromSuperview]; + [self.communicationAccommoengagementdRegard removeFromSuperview]; + [self.quickCommunicationAccommoengagementdRegard removeFromSuperview]; + [self.importpriseAccommoengagementdRegard removeFromSuperview]; + [self.chamberIntelligenceerRegard removeFromSuperview]; + [self.functionRegard removeFromSuperview]; + self.functionRegard = nil; + self.communicationAccommoengagementdRegard = nil; + self.scoupleeRegard = nil; + [self.parrotAccommoengagementdRegard removeFromSuperview]; + self.parrotAccommoengagementdRegard = nil; + + self.roomUid = [NSString stringWithFormat:@"%zd", roomInfo.uid]; + [self.presimport initImportChamber:self.roomUid user:[AccountAbstractStorage instance].acquireCid]; + + [self.presimport acquireOrdinaryPresentSttowardsement:self.roomUid]; + + [self.presimport acquireChamberSenstowardsionalManagement:self.roomUid]; + } else { + if (self.kellegTrundleRegard.isCanTrundleApex) { + self.kellegTrundleRegard.contentOffset = CGPointMake(0, KScreenHeight); + } else { + self.kellegTrundleRegard.contentOffset = CGPointMake(0, 0); + } + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_Room_View_Controller_4")]; + } +} + +- (void)acquireUniversalChamberAbstractAccomplishment:(ChamberAbstractMatrix *)roomInfo { + [self brakeHUD]; + self.kellegTrundleRegard.contentOffset = CGPointMake(0, KScreenHeight); + if (roomInfo && roomInfo.valid) { + + self.isDemandSensationalManagement = NO; + [self routeInthecaseofmerChamber]; + [self.presimport routeNEMCChamber:[NSString stringWithFormat:@"%ld", self.roomInfo.roomId]]; + [[YUMIChamberMiniExecutive shareManager] replacementProvincialCommunictowardsion]; + [[RealtimackExecutive instance] exitRoom]; + [self.presimport respondConsumerOptowardssideChamber:[NSString stringWithFormat:@"%ld", self.roomInfo.uid]]; + + [self.scoupleeRegard removeFromSuperview]; + [self.communicationAccommoengagementdRegard removeFromSuperview]; + [self.quickCommunicationAccommoengagementdRegard removeFromSuperview]; + [self.importpriseAccommoengagementdRegard removeFromSuperview]; + [self.chamberIntelligenceerRegard removeFromSuperview]; + [self.functionRegard removeFromSuperview]; + self.functionRegard = nil; + self.communicationAccommoengagementdRegard = nil; + self.scoupleeRegard = nil; + [self.parrotAccommoengagementdRegard removeFromSuperview]; + self.parrotAccommoengagementdRegard = nil; + + self.roomUid = [NSString stringWithFormat:@"%zd", roomInfo.uid]; + [self.presimport initImportChamber:self.roomUid user:[AccountAbstractStorage instance].acquireCid]; + + [self.presimport acquireOrdinaryPresentSttowardsement:self.roomUid]; + + [self.presimport acquireChamberSenstowardsionalManagement:self.roomUid]; + } else { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_Room_View_Controller_5")]; + } +} + +- (void)shankInitKellegChamber { + if (self.roomInfo.valid) { + if (self.roomInfo.roomPwd.length > 0 && self.roomInfo.uid != [AccountAbstractStorage instance].acquireCid.integerValue && [YUMIChamberMiniExecutive shareManager].acquireChamberAbstract.uid != self.roomUid.integerValue) { + if (!self.isDemandSensationalManagement) { + [Api acquireChamberSenstowardsionalManagementSttowardsement:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + NSArray * array = [UnionSensationalManagementAbstractMatrix mtowardsrixsAboutGarment:data.data]; + self.superMangerList = array; + [self shankSenstowardsionalExecutiveImportKellegChamber:self.roomInfo]; + } roomUid:self.roomUid]; + } else { + [self shankSenstowardsionalExecutiveImportKellegChamber:self.roomInfo]; + } + } else { + self.roomInfo.datingState = self.roomInfo.roomModeType == ChamberModeGenre_Open_Blind ? ChamberDatingDeclareChangeGenre_Open : ChamberDatingDeclareChangeGenre_Normal; + if (!self.kellegTrundleRegard.superview) { + [self.view addSubview:self.kellegTrundleRegard]; + } + [self.encourageAccommoengagementdRegard removeFromSuperview]; + [self.scoupleeRegard removeFromSuperview]; + [self.communicationAccommoengagementdRegard removeFromSuperview]; + [self.quickCommunicationAccommoengagementdRegard removeFromSuperview]; + [self.importpriseAccommoengagementdRegard removeFromSuperview]; + [self.chamberIntelligenceerRegard removeFromSuperview]; + [self.functionRegard removeFromSuperview]; + [self.parrotAccommoengagementdRegard removeFromSuperview]; + + [self.kellegTrundleRegard addSubview:self.encourageAccommoengagementdRegard]; + [self.kellegTrundleRegard addSubview:self.scoupleeRegard]; + [self.kellegTrundleRegard addSubview:self.communicationAccommoengagementdRegard]; + [self.kellegTrundleRegard addSubview:self.quickCommunicationAccommoengagementdRegard]; + [self.kellegTrundleRegard addSubview:self.importpriseAccommoengagementdRegard]; + [self.kellegTrundleRegard addSubview:self.chamberIntelligenceerRegard]; + [self.kellegTrundleRegard addSubview:self.functionRegard]; + [self.kellegTrundleRegard addSubview:self.parrotAccommoengagementdRegard]; + [self.view bringSubviewToFront:self.animationView]; + + [self refurbishRegardRestrictionsOnKellegChamber]; + [self diversifictowardsionPhaseRegardOnKellegChamber]; + + [self.chamberIntelligenceerRegard onChamberImported]; + [self.importpriseAccommoengagementdRegard onChamberImported]; + [self.parrotAccommoengagementdRegard onChamberImported]; + [self.encourageAccommoengagementdRegard onChamberImported]; + if ([YUMIChamberMiniExecutive shareManager].acquireChamberAbstract.uid != self.roomUid.integerValue) { + [self.presimport importNEMCChamber:[NSString stringWithFormat:@"%ld", self.roomInfo.roomId] user:self.userInfo]; + [self.functionRegard onChamberImported]; + [self.communicationAccommoengagementdRegard onChamberImported]; + } else { + + [self.scoupleeRegard onChamberRoadliceImported]; + [self.communicationAccommoengagementdRegard onChamberRoadliceImported]; + [self.functionRegard onChamberRoadliceImported]; + [self.functionRegard onChamberImported]; + } + [[YUMIChamberMiniExecutive shareManager] prohibitipositionChamberAbstract:nil]; + [[YUMIChamberMiniExecutive shareManager] prohibitipositionConsumerAbstract:nil]; + [[YUMIChamberMiniExecutive shareManager] prohibitipositionUniversalManual:nil isPlaying:NO]; + } + } else { + if ([self.roomUid isEqualToString:[NSString stringWithFormat:@"%ld", self.userInfo.uid]]) { + if (self.roomInfo.roomId > 0) { + if (self.roomInfo.type == ChamberGenre_MiniGame && self.roomInfo.mgId > 0) { + self.mgId = [NSString stringWithFormat:@"%lld", self.roomInfo.mgId]; + } + [self.presimport unfoildChamber:self.roomInfo.title type:self.roomInfo.type roomPwd:self.roomInfo.roomPwd roomDesc:self.roomInfo.roomDesc backPic:@"" mgId:self.mgId]; + } else { + NSString* title = [NSString stringWithFormat:YMLocalizedString(@"YUMI_Room_View_Controller_6"), self.userInfo.nick]; + ChamberGenre type = ChamberGenre_Game; + if (self.mgId.length > 0) { + type = ChamberGenre_MiniGame; + } + [self.presimport unfoildChamber:title type:type roomPwd:@"" roomDesc:@"" backPic:@"" mgId:self.mgId]; + } + } else { + + [self EvidenceAccomplishmentToast:YMLocalizedString(@"YUMI_Room_View_Controller_7")]; + [self importChamberFlunk:0]; + } + } +} + +- (void)acquireDeficitShetowardsheAccomplishment:(NSArray *)list { + if (list.count == 0) { + return; + } + for (YUMIDeficitSheatheMatrix *data in list) { + YUMIAchieveDeficitSheatheRegard *view = [[YUMIAchieveDeficitSheatheRegard alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth, KScreenHeight)]; + view.achieveMatrix = data; + for (UIView *subView in self.view.subviews) { + if([subView isKindOfClass:[YUMIAchieveDeficitSheatheRegard class]]) { + view.transparencyRegard.backgroundColor = [UIColor clearColor]; + break; + } + } + [self.view addSubview:view]; + [self.view bringSubviewToFront:view]; + } +} + +- (void)acquireChamberThresholdInstructionWindowAccomplishment:(ThresholdChargeChamberWindowMatrix *)model{ + if(model.needToShow == NO || model.showAfterSecond <= 0 || self.isExhibitThresholdReindict == YES)return; + self.isExhibitThresholdReindict = YES; + [self performSelector:@selector(EvidenceChamberThresholdInstructionWindow) withObject:nil afterDelay:model.showAfterSecond]; +} + +#pragma mark - NIMChatroomManagerDelegate +- (void)chatroomBeKicked:(NIMChatroomBeKickedResult *)result { + if (result.reason == 2) { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_Room_View_Controller_8")]; + + NSDate* date = [NSDate dateWithTimeIntervalSinceNow:0]; + NSTimeInterval time=[date timeIntervalSince1970]; + NSString *currentTime = [NSString stringWithFormat:@"%.0f", time]; + NSString *key = [NSString stringWithFormat:@"%@_%ld", [AccountAbstractStorage instance].acquireCid, self.roomInfo.uid]; + [[NSUserDefaults standardUserDefaults] setObject:currentTime forKey:key]; + [[NSUserDefaults standardUserDefaults] synchronize]; + } else if (result.reason == 5) { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_Room_View_Controller_9")]; + } + [self.presimport routeNEMCChamber:[NSString stringWithFormat:@"%ld", self.roomInfo.roomId]]; + [[YUMIChamberMiniExecutive shareManager] replacementProvincialCommunictowardsion]; + [self revoctowardsionChamberScheduleLoudspeaker]; + [[RealtimackExecutive instance] exitRoom]; + [self.presimport respondConsumerOptowardssideChamber:[NSString stringWithFormat:@"%ld", self.roomInfo.uid]]; + [self dismissViewControllerAnimated:YES completion:nil]; +} + +#pragma mark - NIMChatManagerDelegate +- (void)onRecvMessages:(NSArray *)messages { + for (NIMMessage * message in messages) { + + if (message.session.sessionType == NIMSessionTypeP2P) { + if(message.messageType == NIMMessageTypeCustom) { + NIMCustomObject *obj = (NIMCustomObject *)message.messageObject; + if (obj.attachment != nil && [obj.attachment isKindOfClass:[AttachmentMatrix class]]) { + AttachmentMatrix * attachment = obj.attachment; + if (attachment.first == IndividualityCommunicationGenre_User_UpGrade) { + SatisfactionPrototypeAscensionMatrix * prototypeAbstract = [SatisfactionPrototypeAscensionMatrix mtowardsrixAboutImpactbasket:attachment.data]; + if (attachment.second == Custom_Message_Sub_User_UpGrade_Exper) { + self.userInfo.userLevelVo.experLevelSeq = prototypeAbstract.levelSeq; + } else if(attachment.second == Custom_Message_Sub_User_UpGrade_Charm) { + self.userInfo.userLevelVo.charmLevelSeq = prototypeAbstract.levelSeq; + } + } + } + } + } + + + if (message.session.sessionType != NIMSessionTypeChatroom) { + continue; + } + + + if (![message.session.sessionId isEqualToString:[NSString stringWithFormat:@"%ld", self.roomInfo.roomId]]) { + continue; + } + + if (message.messageType == NIMMessageTypeNotification) { + NIMNotificationObject *notiMsg = (NIMNotificationObject *)message.messageObject; + NIMChatroomNotificationContent *content = (NIMChatroomNotificationContent *)notiMsg.content; + NSInteger onLineNumber = self.roomInfo.onlineNum; + switch (content.eventType) { + case NIMChatroomEventTypeInfoUpdated: + { + NSDictionary *data = [content.notifyExt toJSONGroal]; + int type = [data[@"type"] intValue]; + switch (type) { + case 1: + case 3: + { + NSMutableDictionary *lastRoomInfoDic = [NSMutableDictionary dictionaryWithDictionary:[self.roomInfo mtowardsrix2dictionary]]; + [lastRoomInfoDic addEntriesFromDictionary: ((NSString *)data[@"roomInfo"]).toJSONGroal]; + ChamberAbstractMatrix *newRoomInfo = [ChamberAbstractMatrix mtowardsrixAboutJSON:lastRoomInfoDic]; + + if (newRoomInfo.type != ChamberGenre_MiniGame) { + newRoomInfo.mgId = 0; + } + newRoomInfo.hasAnimationEffect = self.hasAnimationEffect; + if (newRoomInfo.roomModeType == ChamberModeGenre_Open_Blind && self.roomInfo.roomModeType != ChamberModeGenre_Open_Blind) { + + newRoomInfo.datingState = ChamberDatingDeclareChangeGenre_Open; + } else if(newRoomInfo.roomModeType != ChamberModeGenre_Open_Blind && self.roomInfo.roomModeType == ChamberModeGenre_Open_Blind) { + + newRoomInfo.datingState = ChamberDatingDeclareChangeGenre_Close; + } else { + newRoomInfo.datingState = ChamberDatingDeclareChangeGenre_Normal; + } + + newRoomInfo.hadChangeRoomType = self.roomInfo.type != newRoomInfo.type; + BOOL anchorToOther = newRoomInfo.type != ChamberGenre_Anchor && self.roomInfo.type == ChamberGenre_Anchor; + self.roomInfo = newRoomInfo; + [self.encourageAccommoengagementdRegard onChamberRefurbish]; + self.quickCommunicationAccommoengagementdRegard.titleArray = self.roomInfo.speakTemplate; + if (self.roomInfo.type == ChamberGenre_Anchor && self.roomInfo.hadChangeRoomType) { + [self shankInitKellegChamber]; + [self EvidenceKellegTrundlePromptRegard]; + } else if (anchorToOther) { + [self.kellegTrundleRegard removeFromSuperview]; + [self.encourageAccommoengagementdRegard removeFromSuperview]; + [self.scoupleeRegard removeFromSuperview]; + [self.communicationAccommoengagementdRegard removeFromSuperview]; + [self.quickCommunicationAccommoengagementdRegard removeFromSuperview]; + [self.importpriseAccommoengagementdRegard removeFromSuperview]; + [self.chamberIntelligenceerRegard removeFromSuperview]; + [self.functionRegard removeFromSuperview]; + + [self.view addSubview:self.encourageAccommoengagementdRegard]; + [self.view addSubview:self.scoupleeRegard]; + [self.view addSubview:self.communicationAccommoengagementdRegard]; + [self.view addSubview:self.quickCommunicationAccommoengagementdRegard]; + [self.view addSubview:self.importpriseAccommoengagementdRegard]; + [self.view addSubview:self.chamberIntelligenceerRegard]; + [self.view addSubview:self.functionRegard]; + [self.view bringSubviewToFront:self.parrotAccommoengagementdRegard]; + [self.view bringSubviewToFront:self.animationView]; + [self initChildLyRestrictions]; + [self diversifictowardsionPhaseRegardOnChamberRefurbish]; + [self.scoupleeRegard onChamberRefurbish]; + [self.parrotAccommoengagementdRegard onChamberRefurbish]; + [self.functionRegard onChamberRefurbish]; + [self.importpriseAccommoengagementdRegard onChamberRefurbish]; + [self.communicationAccommoengagementdRegard onChamberRefurbish]; + } else { + if (self.roomInfo.type == ChamberGenre_Anchor) { + [self diversifictowardsionPhaseRegardOnKellegChamber]; + } else { + [self diversifictowardsionPhaseRegardOnChamberRefurbish]; + } + [self.scoupleeRegard onChamberRefurbish]; + [self.parrotAccommoengagementdRegard onChamberRefurbish]; + [self.functionRegard onChamberRefurbish]; + [self.importpriseAccommoengagementdRegard onChamberRefurbish]; + [self.communicationAccommoengagementdRegard onChamberRefurbish]; + } + } + break; + } + } + break; + case NIMChatroomEventTypeEnter: + if (content.source.userId.integerValue != [AccountAbstractStorage instance].acquireCid.integerValue && self.userInfo.platformRole != 1) { + onLineNumber += 1; + }else { + [self consumerImportChamberAccomplishment]; + + [self.importpriseAccommoengagementdRegard onChamberRefurbish]; + [self.parrotAccommoengagementdRegard onChamberRefurbish]; + } + break; + case NIMChatroomEventTypeAddBlack: + case NIMChatroomEventTypeKicked: + case NIMChatroomEventTypeExit: + onLineNumber -= 1; + break; + case NIMChatroomEventTypeQueueChange: + { + NSDictionary* data = (NSDictionary *)content.ext; + ConsumerAbstractMatrix* userInfo = [ConsumerAbstractMatrix mtowardsrixAboutJSON:[data objectForKey:NIMChatroomEventInfoQueueChangeItemValueKey]]; + NSInteger changeType = [data[NIMChatroomEventInfoQueueChangeTypeKey] integerValue]; + if (changeType == 1 && userInfo.uid == [AccountAbstractStorage instance].acquireCid.integerValue) { + [self revoctowardsionChamberScheduleLoudspeaker]; + } + } + break; + default: + break; + } + self.roomInfo.onlineNum = onLineNumber; + [self.chamberIntelligenceerRegard onChamberRefurbish]; + [self.scoupleeRegard shankNEMCCircularCommunictowardsion:message]; + [self.animationView shankNEMCCircularCommunictowardsion:message]; + [self.communicationAccommoengagementdRegard shankNEMCCircularCommunictowardsion:message]; + [self.importpriseAccommoengagementdRegard shankNEMCCircularCommunictowardsion:message]; + [self.parrotAccommoengagementdRegard shankNEMCCircularCommunictowardsion:message]; + [self.functionRegard shankNEMCCircularCommunictowardsion:message]; + if([self.scoupleeRegard prohibiticoveryMiecreoscoopeRegardByCid:@(self.userInfo.uid).stringValue] != nil){ + [YUMICommunicationSolitaireDisporterExecutive partowardsiciptowardsionInstance].isManeInLoudspeaker = YES; + }else{ + [YUMICommunicationSolitaireDisporterExecutive partowardsiciptowardsionInstance].isManeInLoudspeaker = NO; + }; + } else if (message.messageType == NIMMessageTypeCustom) { + NIMCustomObject *obj = (NIMCustomObject *)message.messageObject; + if (obj.attachment != nil && [obj.attachment isKindOfClass:[AttachmentMatrix class]]) { + AttachmentMatrix * attachment = obj.attachment; + [self.scoupleeRegard shankNEMCIndividualityCommunictowardsion:message]; + [self.animationView shankNEMCIndividualityCommunictowardsion:message]; + [self.parrotAccommoengagementdRegard shankNEMCIndividualityCommunictowardsion:message]; + [self.importpriseAccommoengagementdRegard shankNEMCIndividualityCommunictowardsion:message]; + [self.functionRegard shankNEMCIndividualityCommunictowardsion:message]; + if (attachment.first == IndividualityCommunicationGenre_First_Recharge_Reward && attachment.second == Custom_Message_Sub_Room_First_Recharge_Reward) { + self.userInfo.isFirstCharge = NO; + [self.parrotAccommoengagementdRegard onChamberRefurbish]; + [self.importpriseAccommoengagementdRegard onChamberRefurbish]; + } else if (attachment.first == IndividualityCommunicationGenre_Update_RoomInfo && attachment.second == Custom_Message_Sub_Update_RoomInfo_MessageState) { + + NSDictionary * dic= attachment.data[@"roomInfo"]; + if (dic.allKeys.count <=0) { + dic = attachment.data; + } + ChamberAbstractMatrix * roomInfo = [ChamberAbstractMatrix mtowardsrixAboutImpactbasket:dic]; + self.roomInfo.isCloseScreen = roomInfo.isCloseScreen; + [self.parrotAccommoengagementdRegard onChamberRefurbish]; + } else if(attachment.first == IndividualityCommunicationGenre_Queue && attachment.second == Custom_Message_Sub_Queue_Invite) { + NSDictionary *dic = attachment.data; + NSString *uid = dic[@"uid"]; + if (uid.integerValue == [AccountAbstractStorage instance].acquireCid.integerValue) { + [self revoctowardsionChamberScheduleLoudspeaker]; + } + } else if(attachment.first == IndividualityCommunicationGenre_Hall_Super_Admin && attachment.second == Custom_Message_Sub_Hall_Super_Admin_Kick_Manager_Out_Room) { + XCombatickConsumerMatrix * userInfo = [XCombatickConsumerMatrix mtowardsrixAboutJSON:attachment.data]; + if (userInfo.targetUid == [AccountAbstractStorage instance].acquireCid.integerValue) { + [self.presimport routeNEMCChamber:[NSString stringWithFormat:@"%ld", self.roomInfo.roomId]]; + [[YUMIChamberMiniExecutive shareManager] replacementProvincialCommunictowardsion]; + [self revoctowardsionChamberScheduleLoudspeaker]; + [[RealtimackExecutive instance] exitRoom]; + [self.presimport respondConsumerOptowardssideChamber:[NSString stringWithFormat:@"%ld", self.roomInfo.uid]]; + [self dismissViewControllerAnimated:YES completion:nil]; + } + } else if (attachment.first == IndividualityCommunicationGenre_RedPacket) { + if (attachment.second == Custom_Message_Sub_RoomDiamandRedPacket) { + YUMIAchieveDeficitSheatheRegard *view = [[YUMIAchieveDeficitSheatheRegard alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth, KScreenHeight)]; + YUMIAchieveDeficitSheatheMatrix *data = [YUMIAchieveDeficitSheatheMatrix mtowardsrixAboutJSON:attachment.data]; + view.deficitSheatheMatrix = data; + for (UIView *subView in self.view.subviews) { + if([subView isKindOfClass:[YUMIAchieveDeficitSheatheRegard class]]) { + view.transparencyRegard.backgroundColor = [UIColor clearColor]; + break; + } + } + [self.view addSubview:view]; + [self.view bringSubviewToFront:view]; + } + } + [self.communicationAccommoengagementdRegard shankNEMCIndividualityCommunictowardsion:message]; + } + } else if(message.messageType == NIMMessageTypeText) { + [self.communicationAccommoengagementdRegard shankNEMCEssayCommunictowardsion:message]; + } else if(message.messageType == NIMMessageTypeTip) { + [self.communicationAccommoengagementdRegard shankNEMCEssayCommunictowardsion:message]; + } + } +} + +- (void)sendMessage:(NIMMessage *)message didCompleteWithError:(NSError *)error { + + if (![message.session.sessionId isEqualToString:[NSString stringWithFormat:@"%ld", self.roomInfo.roomId]]) { + return; + } + + if (message.yidunAntiSpamRes) { + NSDictionary * spamRes = message.yidunAntiSpamRes.toJSONGroal; + NSDictionary * spamResExt = ((NSString *)spamRes[@"ext"]).toJSONGroal; + if ([spamResExt[@"antispam"][@"suggestion"] intValue] == 2) { + [self EvidenceMistakeToast:@"消息中可能含有违规信息,请停止发送类似信息!"]; + return; + } + } + + if (error) return; + if (message.messageType == NIMMessageTypeCustom) { + NIMCustomObject *obj = (NIMCustomObject *)message.messageObject; + if (obj.attachment != nil && [obj.attachment isKindOfClass:[AttachmentMatrix class]]) { + AttachmentMatrix * attachment = obj.attachment; + [self.scoupleeRegard shankNEMCIndividualityCommunictowardsion:message]; + [self.animationView shankNEMCIndividualityCommunictowardsion:message]; + [self.functionRegard shankNEMCIndividualityCommunictowardsion:message]; + if (attachment.first == IndividualityCommunicationGenre_Update_RoomInfo && attachment.second == Custom_Message_Sub_Update_RoomInfo_MessageState) { + ChamberAbstractMatrix * roomInfo = [ChamberAbstractMatrix mtowardsrixAboutImpactbasket:attachment.data[@"roomInfo"]]; + self.roomInfo.isCloseScreen = roomInfo.isCloseScreen; + [self.parrotAccommoengagementdRegard onChamberRefurbish]; + } + [self.communicationAccommoengagementdRegard shankNEMCIndividualityCommunictowardsion:message]; + } + }else if(message.messageType == NIMMessageTypeText) { + [self.communicationAccommoengagementdRegard shankNEMCEssayCommunictowardsion:message];; + } +} + +#pragma mark - NIMLoginManagerDelegate +- (void)onKickout:(NIMLoginKickoutResult *)result { + [self exitRoom]; + [self dismissViewControllerAnimated:YES completion:nil]; +} + +#pragma mark - NIMConversationManagerDelegate +- (void)didAddRecentSession:(NIMRecentSession *)recentSession + totalUnreadCount:(NSInteger)totalUnreadCount { + [self.parrotAccommoengagementdRegard accelertowardseNEMCLtowardsterdaInterlocution:recentSession]; +} + +- (void)didUpdateRecentSession:(NIMRecentSession *)recentSession + totalUnreadCount:(NSInteger)totalUnreadCount { + [self.parrotAccommoengagementdRegard accelertowardseNEMCLtowardsterdaInterlocution:recentSession]; +} + +- (void)didRemoveRecentSession:(NIMRecentSession *)recentSession + totalUnreadCount:(NSInteger)totalUnreadCount { + [self.parrotAccommoengagementdRegard transltowardseNEMCLtowardsterdaInterlocution:recentSession]; +} + +#pragma mark - RoomDelegate +- (ChamberAbstractMatrix *)acquireChamberAbstract { + return self.roomInfo; +} + +- (ConsumerAbstractMatrix *)getUserInfo { + return self.userInfo; +} + +- (void)exitRoom { + [self.parrotAccommoengagementdRegard parrotResignThresholdResponder]; + if (self.roomInfo.roomModeType == ChamberModeGenre_Open_Micro_Mode || self.roomInfo.roomModeType == ChamberModeGenre_Open_Blind) { + NSString * roomUid = [NSString stringWithFormat:@"%ld", self.roomInfo.uid]; + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [Api acquireChamberScheduleLoudspeakerSttowardsement:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + ScheduleLoudspeakerMatrix * arrangeMicModel= [ScheduleLoudspeakerMatrix mtowardsrixAboutJSON:data.data]; + if (arrangeMicModel.myPos.intValue > 0) { + [MKJPopup precautiousAboutCommunictowardsion:@"退出房间后将退出目前排麦,再次进入需要重新排麦,确认退出房间吗?" acknowledgementHandler:^{ + __block NSString * grouptype = @"0"; + if (self.roomInfo.roomModeType == ChamberModeGenre_Open_Blind) { + [arrangeMicModel.queue enumerateObjectsUsingBlock:^(ScheduleLoudspeakerConsumerMatrix * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if (obj.uid.integerValue == [AccountAbstractStorage instance].acquireCid.integerValue) { + grouptype = [NSString stringWithFormat:@"%ld", obj.groupType]; + *stop = YES; + } + }]; + } + [Api revoctowardsionScheduleLoudspeaker:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + + } roomUid:roomUid operUid:uid groupType:grouptype]; + [self.presimport routeNEMCChamber:[NSString stringWithFormat:@"%ld", self.roomInfo.roomId]]; + [[YUMIChamberMiniExecutive shareManager] replacementProvincialCommunictowardsion]; + [[RealtimackExecutive instance] exitRoom]; + [self.presimport respondConsumerOptowardssideChamber:roomUid]; + [self shankThresholdOptowardssideChamber]; + [self dismissViewControllerAnimated:YES completion:nil]; + } cancelHandler:^{ + + }]; + return; + } + } + [self.presimport routeNEMCChamber:[NSString stringWithFormat:@"%ld", self.roomInfo.roomId]]; + [[YUMIChamberMiniExecutive shareManager] replacementProvincialCommunictowardsion]; + [[RealtimackExecutive instance] exitRoom]; + [self.presimport respondConsumerOptowardssideChamber:roomUid]; + [self shankThresholdOptowardssideChamber]; + [self dismissViewControllerAnimated:YES completion:nil]; + } roomUid:roomUid operUid:uid page:@"1" pageSize:@"50"]; + } else if(self.roomInfo.roomModeType == ChamberModeGenre_Open_PK_Mode) { + NSString * roomUid = [NSString stringWithFormat:@"%ld", self.roomInfo.uid]; + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [Api acquireChamberCombatConsumerSttowardsement:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + ScheduleLoudspeakerMatrix * arrangeMicModel= [ScheduleLoudspeakerMatrix mtowardsrixAboutJSON:data.data]; + if (arrangeMicModel.myPos.intValue > 0) { + [MKJPopup precautiousAboutCommunictowardsion:@"退出房间后将退出目前排麦,再次进入需要重新排麦,确认退出房间吗?" acknowledgementHandler:^{ + __block NSString * grouptype = @"0"; + [arrangeMicModel.queue enumerateObjectsUsingBlock:^(ScheduleLoudspeakerConsumerMatrix * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if (obj.uid.integerValue == [AccountAbstractStorage instance].acquireCid.integerValue) { + grouptype = [NSString stringWithFormat:@"%ld", obj.groupType]; + *stop = YES; + } + }]; + [Api revoctowardsionChamberCombatScheduleLoudspeaker:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + + } roomUid:roomUid operUid:uid groupType:grouptype]; + [self.presimport routeNEMCChamber:[NSString stringWithFormat:@"%ld", self.roomInfo.roomId]]; + [[YUMIChamberMiniExecutive shareManager] replacementProvincialCommunictowardsion]; + [[RealtimackExecutive instance] exitRoom]; + [self shankThresholdOptowardssideChamber]; + [self dismissViewControllerAnimated:YES completion:nil]; + } cancelHandler:^{ + + }]; + return; + } + } + [self.presimport routeNEMCChamber:[NSString stringWithFormat:@"%ld", self.roomInfo.roomId]]; + [[YUMIChamberMiniExecutive shareManager] replacementProvincialCommunictowardsion]; + [[RealtimackExecutive instance] exitRoom]; + [self shankThresholdOptowardssideChamber]; + [self dismissViewControllerAnimated:YES completion:nil]; + } roomUid:roomUid operUid:uid page:@"1" pageSize:@"50"]; + } else { + [self.presimport routeNEMCChamber:[NSString stringWithFormat:@"%ld", self.roomInfo.roomId]]; + [[YUMIChamberMiniExecutive shareManager] replacementProvincialCommunictowardsion]; + [[RealtimackExecutive instance] exitRoom]; + [self.presimport respondConsumerOptowardssideChamber:[NSString stringWithFormat:@"%ld", self.roomInfo.uid]]; + [self shankThresholdOptowardssideChamber]; + [self dismissViewControllerAnimated:YES completion:nil]; + } +} + +- (void)miniChamber { + [self.parrotAccommoengagementdRegard parrotResignThresholdResponder]; + [[YUMIChamberMiniExecutive shareManager] prohibitipositionChamberAbstract:self.roomInfo]; + [[YUMIChamberMiniExecutive shareManager] prohibitipositionConsumerAbstract:self.userInfo]; + [[YUMIChamberMiniExecutive shareManager] prohibitipositionUniversalManual:self.functionRegard.acquireUniversalManual isPlaying:self.functionRegard.isPlaying]; + NSMutableDictionary * dic = [NSMutableDictionary dictionary]; + [dic secureSetGroal:self.roomInfo.mtowardsrix2dictionary forKey:@"roomInfo"]; + [dic secureSetGroal:self.userInfo.mtowardsrix2dictionary forKey:@"userInfo"]; + [dic secureSetGroal:self.acquireMiecreoscoopeInthecaseofmtowardsion forKey:@"microQueue"]; + [[NSNotificationCenter defaultCenter] postNotificationName:kRoomMiniNotificationKey object:nil userInfo:dic]; + [self.view endEditing:YES]; + [self shankThresholdOptowardssideChamber]; + [self dismissViewControllerAnimated:YES completion:nil]; +} + +- (UINavigationController *)acquireUniversalNev { + return self.navigationController; +} + +- (NSMutableDictionary *)acquireMiecreoscoopeInthecaseofmtowardsion { + return [self.scoupleeRegard acquireMiecreoscoopeInthecaseofmtowardsion]; +} + +- (NSArray *)acquireChamberSenstowardsionalManagementSttowardsement { + return self.superMangerList; +} + +- (NSArray *)acquireChamberCombatGroupSquadSttowardsement { + return [self.functionRegard acquireChamberCombatGroupSquadSttowardsement]; +} + +- (BOOL)isChamberCombatDisporting { + return [self.functionRegard isChamberCombatDisporting]; +} + +- (void)onMiecreoscoopeInthecaseofmtowardsionRefurbish:(NSMutableDictionary *)queue { + [self.parrotAccommoengagementdRegard onMiecreoscoopeInthecaseofmtowardsionRefurbish:queue]; + [self.functionRegard onChamberRefurbish]; + [self.functionRegard onMiecreoscoopeInthecaseofmtowardsionRefurbish:queue]; + + BOOL isOnMic = false; + for (MiecreoscoopeMHTueueMatrix * info in queue.allValues) { + if (info.userInfo.uid > 0 && [AccountAbstractStorage instance].acquireCid.integerValue == info.userInfo.uid) { + isOnMic = YES; + break; + } + } + + if (isOnMic) { + self.kellegTrundleRegard.scrollEnabled = NO; + } else { + self.kellegTrundleRegard.scrollEnabled = YES; + } +} + +- (CGPoint)brectifynessSpeckTowardsPhaseRegardByCid:(NSString *)uid { + return [self.scoupleeRegard brectifynessSpeckTowardsPhaseRegardByCid:uid]; +} + +#pragma mark - 首次退出非自己的房间,处理是否需要弹新用户充值优惠 +- (void)shankThresholdOptowardssideChamber { + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + if (![defaults boolForKey:kHadQuitOtherRoomKey] && self.userInfo.uid != self.roomInfo.uid && self.userInfo.showLimitCharge) { + [defaults setBool:YES forKey:kHadQuitOtherRoomKey]; + [defaults synchronize]; + [[NSNotificationCenter defaultCenter] postNotificationName:kNewUserRechargeKey object:nil]; + } +} +#pragma mark - KellegChamberScrollRegardRepresendtation +- (void)kellegTrundleRegardTrundleToLtowardster:(KellegChamberScrollRegard *)kellegTrundleRegard { + if (!self) { + return; + } + [self.view endEditing:YES]; + [self EvidenceKellegChambering]; + [self.presimport acquireCycleKellegChamberSttowardsement:[NSString stringWithFormat:@"%ld", self.roomInfo.uid]]; +} + + +- (void)kellegTrundleRegardTrundleToPrevious:(KellegChamberScrollRegard *)kellegTrundleRegard { + if (!self || self.kellegChamberStatement.count <= 0) { + return; + } + [self.view endEditing:YES]; + [self EvidenceKellegChambering]; + if (self.kellegIndicatrix < self.kellegChamberStatement.count) { + NSString * roomUid = [self.kellegChamberStatement secureGroalTowardsIndictowardsrix1:self.kellegIndicatrix]; + [self.presimport acquireUniversalChamberAbstract:roomUid]; + self.kellegIndicatrix --; + }else { + [self EvidenceMistakeToast:YMLocalizedString(@"YUMI_Room_View_Controller_13")]; + self.kellegTrundleRegard.contentOffset = CGPointMake(0, KScreenHeight); + } +} + +#pragma mark - FBCChamberInstanllingIntrojectionRegardRepresendtation +- (void)yUMIChamberInstanllingIntrojectionRegard:(YUMIChamberInstanllingIntrojectionRegard *)view didClickConfirm:(NSString *)text type:(ChamberInstanllingIntrojectionGenre)type { + NSString *pwdDes = [DESEncrypt encryptUseDES:text key:KeyWithType(KeyGenre_PasswordEncode)]; + if ([pwdDes isEqualToString:self.roomInfo.roomPwd]) { + [MKJPopup dismiss]; + view.isPwordError = NO; + if (self.roomInfo.type == ChamberGenre_Anchor) { + if (!self.kellegTrundleRegard.superview) { + [self.view insertSubview:self.kellegTrundleRegard belowSubview:self.parrotAccommoengagementdRegard]; + } + [self.encourageAccommoengagementdRegard removeFromSuperview]; + [self.scoupleeRegard removeFromSuperview]; + [self.communicationAccommoengagementdRegard removeFromSuperview]; + [self.quickCommunicationAccommoengagementdRegard removeFromSuperview]; + [self.importpriseAccommoengagementdRegard removeFromSuperview]; + [self.chamberIntelligenceerRegard removeFromSuperview]; + [self.functionRegard removeFromSuperview]; + + [self.kellegTrundleRegard addSubview:self.encourageAccommoengagementdRegard]; + [self.kellegTrundleRegard addSubview:self.scoupleeRegard]; + [self.kellegTrundleRegard addSubview:self.communicationAccommoengagementdRegard]; + [self.kellegTrundleRegard addSubview:self.quickCommunicationAccommoengagementdRegard]; + [self.kellegTrundleRegard addSubview:self.importpriseAccommoengagementdRegard]; + [self.kellegTrundleRegard addSubview:self.chamberIntelligenceerRegard]; + [self.kellegTrundleRegard addSubview:self.functionRegard]; + if (!self.parrotAccommoengagementdRegard.superview) { + [self.view addSubview:self.parrotAccommoengagementdRegard]; + } + [self.view bringSubviewToFront:self.animationView]; + + [self refurbishRegardRestrictionsOnKellegChamber]; + [self diversifictowardsionPhaseRegardOnKellegChamber]; + + [self.chamberIntelligenceerRegard onChamberImported]; + [self.importpriseAccommoengagementdRegard onChamberImported]; + [self.parrotAccommoengagementdRegard onChamberImported]; + [self.encourageAccommoengagementdRegard onChamberImported]; + if ([YUMIChamberMiniExecutive shareManager].acquireChamberAbstract.uid != self.roomUid.integerValue) { + [self.presimport importNEMCChamber:[NSString stringWithFormat:@"%ld", self.roomInfo.roomId] user:self.userInfo]; + [self.functionRegard onChamberImported]; + [self.communicationAccommoengagementdRegard onChamberImported]; + } else { + + [self.scoupleeRegard onChamberRoadliceImported]; + [self.communicationAccommoengagementdRegard onChamberRoadliceImported]; + [self.functionRegard onChamberRoadliceImported]; + [self.functionRegard onChamberImported]; + } + [[YUMIChamberMiniExecutive shareManager] prohibitipositionChamberAbstract:nil]; + [[YUMIChamberMiniExecutive shareManager] prohibitipositionConsumerAbstract:nil]; + [[YUMIChamberMiniExecutive shareManager] prohibitipositionUniversalManual:nil isPlaying:NO]; + } else { + [self.chamberIntelligenceerRegard onChamberImported]; + [self.importpriseAccommoengagementdRegard onChamberImported]; + [self.parrotAccommoengagementdRegard onChamberImported]; + [self diversifictowardsionPhaseRegardOnChamberRefurbish]; + [self.encourageAccommoengagementdRegard onChamberImported]; + [self.functionRegard onChamberImported]; + [self.presimport importNEMCChamber:[NSString stringWithFormat:@"%ld", self.roomInfo.roomId] user:self.userInfo]; + [self.communicationAccommoengagementdRegard onChamberImported]; + [[YUMIChamberMiniExecutive shareManager] prohibitipositionChamberAbstract:nil]; + [[YUMIChamberMiniExecutive shareManager] prohibitipositionConsumerAbstract:nil]; + [[YUMIChamberMiniExecutive shareManager] prohibitipositionUniversalManual:nil isPlaying:NO]; + } + } else { + view.isPwordError = YES; + } +} + +- (void)didTicktackRevoctowardsion:(ChamberInstanllingIntrojectionGenre)type { + if (type == ChamberInstanllingIntrojectionGenre_Input_Pwd) { + [self importChamberFlunk:0]; + } +} + +- (YUMIChamberBackAccommodatedRegard *)encourageAccommoengagementdRegard { + if (!_encourageAccommoengagementdRegard) { + _encourageAccommoengagementdRegard = [[YUMIChamberBackAccommodatedRegard alloc] initAboutdelegtowardse:self]; + } + return _encourageAccommoengagementdRegard; +} + +- (ChamberIntelligencerRegard *)chamberIntelligenceerRegard { + if (!_chamberIntelligenceerRegard) { + _chamberIntelligenceerRegard = [[ChamberIntelligencerRegard alloc] initWithDelegate:self]; + } + return _chamberIntelligenceerRegard; +} + +- (YUMIChamberCommunicationAccommodatedRegard *)communicationAccommoengagementdRegard { + if (!_communicationAccommoengagementdRegard) { + _communicationAccommoengagementdRegard = [[YUMIChamberCommunicationAccommodatedRegard alloc] initWithDelegate:self]; + } + return _communicationAccommoengagementdRegard; +} + +- (YUMIChamberMHTuickCommunicationContainRegard *)quickCommunicationAccommoengagementdRegard { + if(!_quickCommunicationAccommoengagementdRegard) { + _quickCommunicationAccommoengagementdRegard = [[YUMIChamberMHTuickCommunicationContainRegard alloc] initWithDelegate:self]; + } + return _quickCommunicationAccommoengagementdRegard; +} + +- (YUMIChamberParrotAccommodatedRegard *)parrotAccommoengagementdRegard { + if (!_parrotAccommoengagementdRegard) { + _parrotAccommoengagementdRegard = [[YUMIChamberParrotAccommodatedRegard alloc] initWithDelegate:self]; + } + return _parrotAccommoengagementdRegard; +} + +- (YUMIChamberImportpriseAccommodatedRegard *)importpriseAccommoengagementdRegard { + if (!_importpriseAccommoengagementdRegard) { + _importpriseAccommoengagementdRegard = [[YUMIChamberImportpriseAccommodatedRegard alloc] initAboutdelegtowardse:self]; + } + return _importpriseAccommoengagementdRegard; +} + +- (YUMIChamberBrightnessRegard *)animationView { + if (!_animationView) { + _animationView = [[YUMIChamberBrightnessRegard alloc] initWithDelegate:self]; + } + return _animationView; +} + +- (YUMIChamberFunctionAccommodatedRegard *)functionRegard { + if (!_functionRegard) { + _functionRegard = [[YUMIChamberFunctionAccommodatedRegard alloc] initAboutdelegtowardse:self]; + } + return _functionRegard; +} + +- (PhaseRegard *)scoupleeRegard { + if (!_scoupleeRegard) { + _scoupleeRegard = [[SocialPhaseRegard alloc] initWithDelegate:self]; + } + return _scoupleeRegard; +} + +- (KellegChamberScrollRegard *)kellegTrundleRegard { + if (!_kellegTrundleRegard) { + _kellegTrundleRegard = [[KellegChamberScrollRegard alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth, KScreenHeight)]; + _kellegTrundleRegard.kellegTrundleRepresedtation = self; + _kellegTrundleRegard.hostRepresedtation = self; + if (@available(iOS 11.0, *)) { + _kellegTrundleRegard.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + } + } + return _kellegTrundleRegard; +} + +- (KellegChamberSrollTipRegard *)kellegTrundlePromptRegard { + if (!_kellegTrundlePromptRegard) { + _kellegTrundlePromptRegard = [[KellegChamberSrollTipRegard alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth, KScreenHeight)]; + } + return _kellegTrundlePromptRegard; +} + +- (NSMutableArray *)kellegChamberStatement { + if (!_kellegChamberStatement) { + _kellegChamberStatement = [NSMutableArray array]; + } + return _kellegChamberStatement; +} + +- (YUMIThresholdReindictRegard *)thresholdReindictRegard{ + if (!_thresholdReindictRegard){ + YUMIThresholdReindictRegard *thresholdReindictRegard = [[YUMIThresholdReindictRegard alloc]initWithFrame:CGRectMake(0, 0, KScreenWidth, KScreenHeight)]; + thresholdReindictRegard.delegate = self; + + _thresholdReindictRegard = thresholdReindictRegard; + } + return _thresholdReindictRegard; +} + +@end diff --git a/YuMi/Modules/YMRoom/View/YUMIMiniChamberRegard.h b/YuMi/Modules/YMRoom/View/YUMIMiniChamberRegard.h new file mode 100644 index 00000000..bb289f56 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/YUMIMiniChamberRegard.h @@ -0,0 +1,18 @@ +// +// YUMIMiniChamberRegard.h +// YuMi +// +// Created by YuMi on 2021/12/3. +// + +#import + +NS_ASSUME_NONNULL_BEGIN +@class ChamberAbstractMatrix, ConsumerAbstractMatrix; +@interface YUMIMiniChamberRegard : UIView +@property (nonatomic,weak) UIViewController * controller; +- (void)prohibitipositionChamberRoadliceRegard:(ChamberAbstractMatrix *)roomInfo userInfo:(ConsumerAbstractMatrix *)userInfo micQueue:(NSMutableDictionary *)micQueue; +- (void)hiddenChamberRoadliceRegard; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMRoom/View/YUMIMiniChamberRegard.m b/YuMi/Modules/YMRoom/View/YUMIMiniChamberRegard.m new file mode 100644 index 00000000..6b87e997 --- /dev/null +++ b/YuMi/Modules/YMRoom/View/YUMIMiniChamberRegard.m @@ -0,0 +1,869 @@ +// +// YUMIMiniChamberRegard.m +// YuMi +// +// Created by YuMi on 2021/12/3. +// + +#import "YUMIMiniChamberRegard.h" +#import +#import +#import "YUMIMacroUitls.h" +#import "DJDKMIMOMColor.h" +#import "NetIndicateRegard.h" +#import "RealtimackExecutive.h" +#import "UIButton+EnlargeTouchArea.h" +#import "MKJPopup.h" +#import "XNDJTBWGLoadingTool.h" +#import "YUMIChamberMiniExecutive.h" +#import "AccountAbstractStorage.h" +#import "Api+ArrangeMic.h" +#import "Api+Room.h" +#import "YUMICoreAtomicExecutive.h" +#import "NSArray+Safe.h" +#import "NSDate+DateUtils.h" +#import "ChamberAbstractMatrix.h" +#import "MiecreoscoopeMHTueueMatrix.h" +#import "MiecreoscoopeStateMatrix.h" +#import "ConsumerAbstractMatrix.h" +#import "AttachmentMatrix.h" +#import "ScheduleLoudspeakerMatrix.h" +#import "ChamberAcceptDischargeAbstractMatrix.h" +#import "MiecreoscoopeCallforExtMatrix.h" +#import "Manual+CoreDataClass.h" +#import "ChamberCombatChooseConsumerMatrix.h" +#import "ChamberMarchingCaptureMatrix.h" +#import "YUMIChamberRegardGovernancer.h" +#import "YUMINoteRegard.h" +#import "YUMICommunicationSolitaireDisporterExecutive.h" + +UIKIT_EXTERN NSString * kRoomBackMusicPlayMusicFinishKey; +UIKIT_EXTERN NSString * kRoomBackMusicAudioMixingVolumeKey; +UIKIT_EXTERN NSString * kRoomBackMusicCaptureVolumeKey; +UIKIT_EXTERN NSString * kRoomBackMusicPlayMusicOrderKey; +UIKIT_EXTERN NSString *kRoomKickoutTime; + +@interface YUMIMiniChamberRegard () +@property (nonatomic,strong) UIImageView *encourageIndicateRegard; +@property (nonatomic,strong) NetIndicateRegard *intelligenceportraitIndicateRegard; +@property (nonatomic,strong) UIButton *encourageBtuton; + +@property (nonatomic,strong) UIImageView *disportRegard; +@property (nonatomic,strong) ChamberAbstractMatrix *roomInfo; +@property (nonatomic,strong) ConsumerAbstractMatrix *userInfo; +@property (nonatomic,strong) NSString *universalChamberCid; +@property (nonatomic,strong) NSString *universalChamberId; +@property (nonatomic, strong) NSMutableDictionary *micQueue; +@property (nonatomic,strong) Manual *universalManual; +@property (nonatomic,assign) NSInteger currentIndex; +@property (nonatomic,strong) NSFetchRequest *request; +@property (nonatomic,strong) YUMINoteRegard *bookRegard; + +@end + + +@implementation YUMIMiniChamberRegard + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [[NIMSDK sharedSDK].chatroomManager addDelegate:self]; + [[NIMSDK sharedSDK].chatManager addDelegate:self]; + [[NIMSDK sharedSDK].loginManager addDelegate:self]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(chamberEncourageManualDisportAccomplish:) name:kRoomBackMusicPlayMusicFinishKey object:nil]; + [self initOccurrences]; + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} +#pragma mark - Public Method +- (void)prohibitipositionChamberRoadliceRegard:(ChamberAbstractMatrix *)roomInfo userInfo:(ConsumerAbstractMatrix *)userInfo micQueue:(NSMutableDictionary *)micQueue { + self.hidden = NO; + self.universalChamberCid = [NSString stringWithFormat:@"%ld", roomInfo.uid]; + self.universalChamberId = [NSString stringWithFormat:@"%ld", roomInfo.roomId]; + self.roomInfo = roomInfo; + self.userInfo = userInfo; + self.micQueue = micQueue; + [self inititowardseIntelligenceportraitBrectifyness]; + } + +- (void)hiddenChamberRoadliceRegard { + [self.intelligenceportraitIndicateRegard.layer removeAllAnimations]; + + self.universalChamberCid = nil; + self.universalChamberId = nil; + self.roomInfo = nil; + self.userInfo = nil; + self.micQueue = nil; + self.hidden = YES; +} + +#pragma mark - Private Method +- (void)initSubViews { + self.frame = CGRectMake(KScreenWidth - 74, KScreenHeight - kNavigationHeight - kTabBarHeight - 140, 67, 75); + + [self addSubview:self.encourageIndicateRegard]; + + [self.encourageIndicateRegard addSubview:self.intelligenceportraitIndicateRegard]; + [self.encourageIndicateRegard addSubview:self.disportRegard]; + [self.encourageIndicateRegard addSubview:self.bookRegard]; + [self addSubview:self.encourageBtuton]; + self.encourageIndicateRegard.layer.cornerRadius = 57/2; + self.encourageIndicateRegard.layer.masksToBounds = YES; + self.encourageIndicateRegard.layer.borderWidth = 2; + self.encourageIndicateRegard.layer.borderColor = [UIColor whiteColor].CGColor; +} + +- (void)initChildLyRestrictions { + + [self.encourageIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.bottom.equalTo(self); + make.width.height.mas_equalTo(57); + }]; + + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.encourageIndicateRegard); + }]; + [self.bookRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.center.mas_equalTo(self.intelligenceportraitIndicateRegard); + make.height.mas_equalTo(14); + make.width.mas_equalTo(20); + }]; + + [self.disportRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.center.equalTo(self.encourageIndicateRegard); + make.width.mas_equalTo(15); + make.height.mas_equalTo(12); + }]; + [self.encourageBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.mas_equalTo(20); + make.left.equalTo(self.encourageIndicateRegard.mas_left).mas_offset(47); + make.bottom.equalTo(self.encourageIndicateRegard.mas_bottom).mas_offset(-50); + }]; +} + + +- (void)initOccurrences { + UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(chamberRoadliceCouple:)]; + pan.delaysTouchesBegan = YES; + [self addGestureRecognizer:pan]; + + UITapGestureRecognizer *enterRoomTag = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(importRomRecognition:)]; + [self addGestureRecognizer:enterRoomTag]; +} + +- (void)inititowardseIntelligenceportraitBrectifyness { + CABasicAnimation *rotationAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"]; + rotationAnimation.toValue = [NSNumber numberWithFloat: M_PI * 2.0 ]; + rotationAnimation.duration = 3; + rotationAnimation.cumulative = YES; + rotationAnimation.repeatCount = MAXFLOAT; + rotationAnimation.removedOnCompletion = NO; + [self.intelligenceportraitIndicateRegard.layer addAnimation:rotationAnimation forKey:@"rotationAnimation"]; +} + +- (void)revoctowardsionChamberScheduleLoudspeaker { + + if (self.roomInfo.roomModeType == ChamberModeGenre_Open_Micro_Mode || self.roomInfo.roomModeType == ChamberModeGenre_Open_Blind) { + NSString * roomUid = [NSString stringWithFormat:@"%ld", self.roomInfo.uid]; + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [Api acquireChamberScheduleLoudspeakerSttowardsement:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + ScheduleLoudspeakerMatrix * arrangeMicModel= [ScheduleLoudspeakerMatrix mtowardsrixAboutJSON:data.data]; + if (arrangeMicModel.myPos.intValue > 0) { + __block NSString * grouptype = @"0"; + if (self.roomInfo.roomModeType == ChamberModeGenre_Open_Blind) { + [arrangeMicModel.queue enumerateObjectsUsingBlock:^(ScheduleLoudspeakerConsumerMatrix * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if (obj.uid.integerValue == [AccountAbstractStorage instance].acquireCid.integerValue) { + grouptype = [NSString stringWithFormat:@"%ld", obj.groupType]; + *stop = YES; + } + }]; + } + [Api revoctowardsionScheduleLoudspeaker:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) {} roomUid:roomUid operUid:uid groupType:grouptype]; + } + } + } roomUid:roomUid operUid:uid page:@"1" pageSize:@"50"]; + }else if(self.roomInfo.roomModeType == ChamberModeGenre_Open_PK_Mode) { + NSString * roomUid = [NSString stringWithFormat:@"%ld", self.roomInfo.uid]; + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [Api acquireChamberCombatConsumerSttowardsement:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + ScheduleLoudspeakerMatrix * arrangeMicModel= [ScheduleLoudspeakerMatrix mtowardsrixAboutJSON:data.data]; + if (arrangeMicModel.myPos.intValue > 0) { + __block NSString * grouptype = @"0"; + [arrangeMicModel.queue enumerateObjectsUsingBlock:^(ScheduleLoudspeakerConsumerMatrix * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if (obj.uid.integerValue == [AccountAbstractStorage instance].acquireCid.integerValue) { + grouptype = [NSString stringWithFormat:@"%ld", obj.groupType]; + *stop = YES; + } + }]; + [Api revoctowardsionChamberCombatScheduleLoudspeaker:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + + } roomUid:roomUid operUid:uid groupType:grouptype]; + } + } + } roomUid:roomUid operUid:uid page:@"1" pageSize:@"50"]; + } +} + +- (BOOL)isCanExhibitionCommunictowardsion:(NIMMessage *)message { + NIMCustomObject *obj = (NIMCustomObject *)message.messageObject; + if (obj.attachment != nil && [obj.attachment isKindOfClass:[AttachmentMatrix class]]) { + AttachmentMatrix *attachment = (AttachmentMatrix *)obj.attachment; + if (attachment.first == IndividualityCommunicationGenre_Face && attachment.second == Custom_Message_Sub_Face_Send) { + if ([attachment.data[@"data"] isKindOfClass:[NSArray class]]) { + NSArray * array = [ChamberAcceptDischargeAbstractMatrix mtowardsrixsAboutGarment:attachment.data[@"data"]]; + for (int i = 0; i< array.count; i++) { + ChamberAcceptDischargeAbstractMatrix * sendInfo = [array secureGroalTowardsIndictowardsrix1:i]; + if (sendInfo.resultIndexes.count <=0) { + return NO; + } + } + } + }else if (attachment.first == IndividualityCommunicationGenre_Room_PK && attachment.second == Custom_Message_Sub_Room_PK_Manager_Up_Mic) { + if (attachment.data && [attachment.data allKeys].count > 0) { + for (NSDictionary * dic in [attachment.data allValues]) { + ChamberCombatChooseConsumerMatrix * userModel = [ChamberCombatChooseConsumerMatrix mtowardsrixAboutImpactbasket:dic]; + if (userModel.groupType == GroupGenre_Red || userModel.groupType == GroupGenre_Blue) { + return YES; + } + } + } + return NO; + } else if(attachment.first == IndividualityCommunicationGenre_Room_Sailing && (attachment.second == Custom_Message_Sub_Sailing_AllRoom_Notify || attachment.second == Custom_Message_Sub_Sailing_InRoom_NeedAllMicSend)) { + ChamberMarchingCaptureMatrix * captureMatrix = [ChamberMarchingCaptureMatrix mtowardsrixAboutImpactbasket:attachment.data]; + if (self.userInfo.userLevelVo.experLevelSeq > captureMatrix.userLevelLimit) { + return YES; + } + } + return [[[self supportCommunictowardsionDic] objectForKey:@(attachment.first)] containsObject:@(attachment.second)]; + } + return NO; +} + +- (NSDictionary *)supportCommunictowardsionDic { + return @{ + @(IndividualityCommunicationGenre_AllMicroSend): + [NSSet setWithObjects: + @(Custom_Message_Sub_AllMicroSend), + @(Custom_Message_Sub_AllMicroLuckySend), + @(Custom_Message_Sub_AllBatchSend), + @(Custom_Message_Sub_AllBatchMicroLuckySend), + nil], + @(IndividualityCommunicationGenre_Gift): + [NSSet setWithObjects: + @(Custom_Message_Sub_Gift_Send), + @(Custom_Message_Sub_Gift_LuckySend), + nil], + @(IndividualityCommunicationGenre_Room_Tip): + [NSSet setWithObjects: + @(Custom_Message_Sub_Room_Tip_ShareRoom), + @(Custom_Message_Sub_Room_Tip_Attention_Owner), + nil], + @(IndividualityCommunicationGenre_Kick_User): + [NSSet setWithObjects: + @(Custom_Message_Sub_Kick_BeKicked), + @(Custom_Message_Sub_Kick_BlackList), + nil], + @(IndividualityCommunicationGenre_Queue): + [NSSet setWithObjects: + @(Custom_Message_Sub_Queue_Kick), + nil], + @(IndividualityCommunicationGenre_Look_Love): + [NSSet setWithObjects: + @(Custom_Message_Sub_Look_Love_Me), + @(Custom_Message_Sub_Look_Love_InRoom), + @(Custom_Message_Sub_Look_Love_AllRoom), + @(Custom_Message_Sub_Look_Love_AllRoom_Notify), + @(Custom_Message_Sub_Look_Love_InRoom_NeedAllMicSend), + nil], + @(IndividualityCommunicationGenre_Arrange_Mic): + [NSSet setWithObjects: + @(Custom_Message_Sub_Arrange_Mic_Mode_Open), + @(Custom_Message_Sub_Arrange_Mic_Mode_Close), + @(Custom_Message_Sub_Arrange_Mic_Free_Mic_Open), + @(Custom_Message_Sub_Arrange_Mic_Free_Mic_Close), + nil], + @(IndividualityCommunicationGenre_Update_RoomInfo): + [NSSet setWithObjects: + @(Custom_Message_Sub_Update_RoomInfo_MessageState), + @(Custom_Message_Sub_Update_RoomInfo_AnimateEffect), + nil], + @(IndividualityCommunicationGenre_Collection_Room): + [NSSet setWithObjects: + @(Custom_Message_Sub_Collect_Room_Tips), + nil], + @(IndividualityCommunicationGenre_RoomPlay_Dating): + [NSSet setWithObjects: + @(Custom_Message_Sub_Room_Play_Dating_Pick_Heart), + @(Custom_Message_Sub_Room_Play_Dating_Result_Mutual), + @(Custom_Message_Sub_Room_Play_Dating_Result_Not_Mutual), + nil], + @(IndividualityCommunicationGenre_Noble_VIP): + [NSSet setWithObjects: + @(Custom_Message_Sub_Room_Open_Noble_VIP), + @(Custom_Message_Sub_Room_Noble_LevelUp), + @(Custom_Message_Sub_AllRoom_Noble_LevelUp_Suspend), + nil], + @(IndividualityCommunicationGenre_Face): + [NSSet setWithObjects: + @(Custom_Message_Sub_Face_Send), + nil], + @(IndividualityCommunicationGenre_Anchor_FansTeam): + [NSSet setWithObjects: + @(Custom_Message_Sub_FansTeam_Open_Success), + @(Custom_Message_Sub_FansTeam_Open_Fail), + @(Custom_Message_Sub_FansTeam_Join_Success), + @(Custom_Message_Sub_FansTeam_Out_Success), + nil], + @(IndividualityCommunicationGenre_Hall_Super_Admin): + [NSSet setWithObjects: + @(Custom_Message_Sub_Hall_Super_Admin_Kick_Manager_Out_Room), + nil], + @(IndividualityCommunicationGenre_Room_PK): + [NSSet setWithObjects: + @(Custom_Message_Sub_Room_PK_Manager_Up_Mic), + @(Custom_Message_Sub_Room_PK_Mode_Close), + @(Custom_Message_Sub_Room_PK_Result), + @(Custom_Message_Sub_Room_PK_Mode_Open), + @(Custom_Message_Sub_Room_PK_Start), + @(Custom_Message_Sub_Room_PK_Re_Start), + nil], + @(IndividualityCommunicationGenre_LuckyBag): + [NSSet setWithObjects: + @(Custom_Message_Sub_Room_Gift_LuckBag_Server), + nil], + @(IndividualityCommunicationGenre_Gift_Compound): + [NSSet setWithObjects:@(Custom_Message_Sub_Gift_Compound), + nil], + @(IndividualityCommunicationGenre_Room_Sailing): + [NSSet setWithObjects: + @(Custom_Message_Sub_Sailing_Me), + @(Custom_Message_Sub_Sailing_InRoom), + @(Custom_Message_Sub_Sailing_AllRoom), + @(Custom_Message_Sub_Sailing_AllRoom_Notify), + @(Custom_Message_Sub_Sailing_InRoom_NeedAllMicSend), + nil], + }; +} + +#pragma mark - NIMChatroomManagerDelegate +- (void)chatroomBeKicked:(NIMChatroomBeKickedResult *)result { + + if ([YUMIChamberMiniExecutive shareManager].acquireChamberAbstract == nil) return; + if (result.reason == 2) { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:YMLocalizedString(@"YUMI_Mini_Room_View_0")]; + } else if (result.reason == 5) { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:YMLocalizedString(@"YUMI_Mini_Room_View_1")]; + } + [[YUMIChamberMiniExecutive shareManager] prohibitipositionChamberAbstract:nil]; + [[YUMIChamberMiniExecutive shareManager] prohibitipositionConsumerAbstract:nil]; + [[YUMIChamberMiniExecutive shareManager] prohibitipositionUniversalManual:nil isPlaying:NO]; + [[YUMIChamberMiniExecutive shareManager] replacementProvincialCommunictowardsion]; + [[RealtimackExecutive instance] exitRoom]; + [self revoctowardsionChamberScheduleLoudspeaker]; + [self hiddenChamberRoadliceRegard]; + NSMutableDictionary *kickoutDic = [[NSUserDefaults standardUserDefaults]valueForKey:kRoomKickoutTime]; + if(kickoutDic == nil){ + kickoutDic = [NSMutableDictionary new]; + } + NSString *time = [NSDate acquireNowIntrtowardsemporalIntrtowardsemporalstamp]; + [kickoutDic setValue:time forKey:@(self.roomInfo.roomId).stringValue]; + [[NSUserDefaults standardUserDefaults]synchronize]; +} + +#pragma mark - NIMLoginManagerDelegate +- (void)onKickout:(NIMLoginKickoutResult *)result { + + if ([YUMIChamberMiniExecutive shareManager].acquireChamberAbstract == nil) return; + [[YUMIChamberMiniExecutive shareManager] prohibitipositionChamberAbstract:nil]; + [[YUMIChamberMiniExecutive shareManager] prohibitipositionConsumerAbstract:nil]; + [[YUMIChamberMiniExecutive shareManager] prohibitipositionUniversalManual:nil isPlaying:NO]; + [[YUMIChamberMiniExecutive shareManager] replacementProvincialCommunictowardsion]; + [[RealtimackExecutive instance] exitRoom]; + [self hiddenChamberRoadliceRegard]; +} +#pragma mark - NIMChatManagerDelegate +- (void)onRecvMessages:(NSArray *)messages { + + if ([YUMIChamberMiniExecutive shareManager].acquireChamberAbstract == nil) return; + + for (NIMMessage * message in messages) { + + if (message.session.sessionType != NIMSessionTypeChatroom) { + continue; + } + + + if (![message.session.sessionId isEqualToString:[NSString stringWithFormat:@"%ld", self.roomInfo.roomId]]) { + continue; + } + + if (message.messageType == NIMMessageTypeNotification) { + NIMNotificationObject *notiMsg = (NIMNotificationObject *)message.messageObject; + NIMChatroomNotificationContent *content = (NIMChatroomNotificationContent *)notiMsg.content; + [self shankNEMCCircularCommunictowardsion:content]; + [self shankNEMCCircularPreserveCommunictowardsion:message]; + } else if (message.messageType == NIMMessageTypeCustom) { + NIMCustomObject *obj = (NIMCustomObject *)message.messageObject; + if (obj.attachment != nil && [obj.attachment isKindOfClass:[AttachmentMatrix class]]) { + [self shankNEMCIndividualityCommunictowardsion:obj.attachment]; + if ([self isCanExhibitionCommunictowardsion:message]) { + [[YUMIChamberMiniExecutive shareManager] preserveChamberCommunictowardsion:message]; + } + } + }else if(message.messageType == NIMMessageTypeText) { + [self shankNEMCEssayCommunictowardsion:message]; + } else if(message.messageType == NIMMessageTypeTip) { + [self shankNEMCEssayCommunictowardsion:message]; + } + } +} + +- (void)shankNEMCCircularCommunictowardsion:(NIMChatroomNotificationContent *)content { + BOOL microQueueChanged = NO; + switch (content.eventType) { + case NIMChatroomEventTypeInfoUpdated: + { + NSDictionary *data = [content.notifyExt toJSONGroal]; + int type = [data[@"type"] intValue]; + NSArray* microStates; + switch (type) { + case 2: + microStates = @[[MiecreoscoopeStateMatrix mtowardsrixAboutJSON:data[@"micInfo"]]]; + break; + case 3: + microStates = [MiecreoscoopeStateMatrix mtowardsrixsAboutGarment:data[@"micInfo"]]; + break; + } + if (microStates && microStates.count > 0) { + for (MiecreoscoopeStateMatrix *microState in microStates) { + MiecreoscoopeMHTueueMatrix *micSequence = [self.micQueue objectForKey:[NSString stringWithFormat:@"%d", microState.position]]; + micSequence.microState = microState; + } + microQueueChanged = YES; + } + + NSMutableDictionary *lastRoomInfoDic = [NSMutableDictionary dictionaryWithDictionary:[self.roomInfo mtowardsrix2dictionary]]; + [lastRoomInfoDic addEntriesFromDictionary: ((NSString *)data[@"roomInfo"]).toJSONGroal]; + ChamberAbstractMatrix *newRoomInfo = [ChamberAbstractMatrix mtowardsrixAboutJSON:lastRoomInfoDic]; + + if (newRoomInfo.type != ChamberGenre_MiniGame) { + newRoomInfo.mgId = 0; + } + if (newRoomInfo.roomModeType == ChamberModeGenre_Open_Blind && self.roomInfo.roomModeType != ChamberModeGenre_Open_Blind) { + + newRoomInfo.datingState = ChamberDatingDeclareChangeGenre_Open; + } else if(newRoomInfo.roomModeType != ChamberModeGenre_Open_Blind && self.roomInfo.roomModeType == ChamberModeGenre_Open_Blind) { + + newRoomInfo.datingState = ChamberDatingDeclareChangeGenre_Close; + } else { + newRoomInfo.datingState = ChamberDatingDeclareChangeGenre_Normal; + } + self.roomInfo = newRoomInfo; + } + break; + + case NIMChatroomEventTypeQueueChange: + { + NSDictionary* data = (NSDictionary *)content.ext; + NSString* position = [data objectForKey:NIMChatroomEventInfoQueueChangeItemKey]; + ConsumerAbstractMatrix* userInfo = [ConsumerAbstractMatrix mtowardsrixAboutJSON:[data objectForKey:NIMChatroomEventInfoQueueChangeItemValueKey]]; + NSInteger changeType = [data[NIMChatroomEventInfoQueueChangeTypeKey] integerValue]; + + + for (MiecreoscoopeMHTueueMatrix *sequence in self.micQueue.allValues) { + if (userInfo.uid == sequence.userInfo.uid) { + sequence.userInfo = nil; + } + } + + if (changeType == 1) { + MiecreoscoopeMHTueueMatrix *sequence = [self.micQueue objectForKey:position]; + sequence.userInfo = userInfo; + } + + microQueueChanged = YES; + } + break; + case NIMChatroomEventTypeExit: + case NIMChatroomEventTypeKicked: + { + for (NIMChatroomNotificationMember *member in content.targets) { + for (MiecreoscoopeMHTueueMatrix *sequence in self.micQueue.allValues) { + if (member.userId.integerValue == sequence.userInfo.uid) { + sequence.userInfo = nil; + microQueueChanged = YES; + } + } + } + } + break; + default: + break; + } + + if (microQueueChanged) { + [self miecreoscoopeInthecaseofmtowardsionRefurbishd]; + } +} + +- (void)miecreoscoopeInthecaseofmtowardsionRefurbishd { + BOOL selfNeedBroadcast = NO; + for (int i = 0; i < self.micQueue.allKeys.count; i++) { + MiecreoscoopeMHTueueMatrix * model = [self.micQueue objectForKey:[NSString stringWithFormat:@"%d", i]]; + if (model.userInfo.uid == [AccountAbstractStorage instance].acquireCid.integerValue) { + selfNeedBroadcast = model.microState.micState == MiecreoscoopeLoudspeakerDeclareGenre_Open; + } + } + if (self.roomInfo.type == ChamberGenre_Anchor && [[AccountAbstractStorage instance].acquireCid isEqualToString:[NSString stringWithFormat:@"%ld", self.roomInfo.uid]]) { + selfNeedBroadcast = YES; + } + [[RealtimackExecutive instance] pingencourage:selfNeedBroadcast]; +} + +- (void)shankNEMCIndividualityCommunictowardsion:(AttachmentMatrix *)attachment { + if(attachment.first == IndividualityCommunicationGenre_Queue && attachment.second == Custom_Message_Sub_Queue_Invite) { + NSDictionary *dic = attachment.data; + MiecreoscoopeCallforExtMatrix *inviteModel = [MiecreoscoopeCallforExtMatrix mtowardsrixAboutImpactbasket:dic]; + if (inviteModel.uid.integerValue == self.userInfo.uid) { + NSString *position = inviteModel.micPosition; + + MiecreoscoopeMHTueueMatrix *micro = [self.micQueue objectForKey:position]; + if (!micro || micro.userInfo) return; + + ChamberAbstractMatrix* roomInfo = self.roomInfo; + NSString* roomId = [NSString stringWithFormat:@"%ld", roomInfo.roomId]; + ConsumerAbstractMatrix* userInfo = self.userInfo; + + NIMChatroomQueueUpdateRequest *request = [[NIMChatroomQueueUpdateRequest alloc]init]; + request.key = position; + request.value = [[self prohibitipositionRefurbishChinwagChamberInthecaseofmtowardsionExt:userInfo] toJSONBWSttr]; + request.roomId = roomId; + request.transient = YES; + + [[NIMSDK sharedSDK].chatroomManager updateChatroomQueueObject:request completion:^(NSError * _Nullable error) { + if (error) return; + [self revoctowardsionChamberScheduleLoudspeaker]; + [RealtimackExecutive instance].localDelicate = YES; + MKJPrecautiousDisposition *config = [[MKJPrecautiousDisposition alloc] init]; + config.title = YMLocalizedString(@"YUMI_Mini_Room_View_2"); + config.message = @"你已被房主或管理员拉上麦,但并未开启麦克风。如需要说话,请打开麦克风。"; + [MKJPopup precautiousAboutDisposition:config acknowledgementHandler:^{ + + } cancelHandler:^{ + + }]; + }]; + } + } else if (attachment.first == IndividualityCommunicationGenre_Update_RoomInfo && attachment.second == Custom_Message_Sub_Update_RoomInfo_MessageState) { + [[YUMIChamberMiniExecutive shareManager] replacementProvincialCommunictowardsion]; + } +} + +#pragma mark - 最小化 公屏的显示问题 +- (void)accelertowardseChamberCommunictowardsion:(NIMMessage *)message { + if (self.roomInfo.isCloseScreen) { + NIMCustomObject *obj = (NIMCustomObject *)message.messageObject; + if (obj.attachment != nil && [obj.attachment isKindOfClass:[AttachmentMatrix class]]) { + AttachmentMatrix *attachment = (AttachmentMatrix *)obj.attachment; + if (attachment.first == IndividualityCommunicationGenre_Update_RoomInfo && attachment.second == Custom_Message_Sub_Update_RoomInfo_MessageState){ + [[YUMIChamberMiniExecutive shareManager] preserveChamberCommunictowardsion:message]; + } + } + } else { + [[YUMIChamberMiniExecutive shareManager] preserveChamberCommunictowardsion:message]; + } +} + +- (void)shankNEMCCircularPreserveCommunictowardsion:(NIMMessage *)message { + NIMNotificationObject *notiMsg = (NIMNotificationObject *)message.messageObject; + NIMChatroomNotificationContent *content = (NIMChatroomNotificationContent *)notiMsg.content; + ChamberAbstractMatrix * roomInfo = self.roomInfo; + if (content.eventType == NIMChatroomEventTypeEnter) { + if (roomInfo.isCloseScreen) { + AttachmentMatrix *attachement = [[AttachmentMatrix alloc]init]; + attachement.first = IndividualityCommunicationGenre_Update_RoomInfo; + attachement.second = Custom_Message_Sub_Update_RoomInfo_MessageState; + attachement.data = @{@"roomInfo":self.roomInfo.mtowardsrix2dictionary}; + NIMMessage *message = [[NIMMessage alloc]init]; + NIMCustomObject *object = [[NIMCustomObject alloc] init]; + object.attachment = attachement; + message.messageObject = object; + [self accelertowardseChamberCommunictowardsion:message]; + return; + } else { + [self accelertowardseChamberCommunictowardsion:message]; + NIMChatroomNotificationMember *member = content.targets[0]; + if (member.userId.integerValue == [AccountAbstractStorage instance].acquireCid.integerValue) { + if (!roomInfo.hasAnimationEffect) { + [self chamberAbstractNoPresentBrectifynessCommunictowardsion:message]; + } + } + } + } else if(content.eventType == NIMChatroomEventTypeInfoUpdated) { + if (roomInfo.isCloseScreen) {return;} + if (roomInfo.datingState == ChamberDatingDeclareChangeGenre_Open) { + [self accelertowardseChamberCommunictowardsion:message]; + } + } +} + +- (void)shankNEMCEssayCommunictowardsion:(NIMMessage *)message { + [self accelertowardseChamberCommunictowardsion:message]; +} + +- (void)chamberAbstractNoPresentBrectifynessCommunictowardsion:(NIMMessage *)message { + AttachmentMatrix *attachement = [[AttachmentMatrix alloc]init]; + attachement.first = IndividualityCommunicationGenre_Update_RoomInfo; + attachement.second = Custom_Message_Sub_Update_RoomInfo_AnimateEffect; + NIMMessage *tempMessage = [[NIMMessage alloc]init]; + NIMCustomObject *customObject = [[NIMCustomObject alloc]init]; + customObject.attachment = attachement; + tempMessage.messageObject = customObject; + [self accelertowardseChamberCommunictowardsion:tempMessage]; +} + +- (NSDictionary *)prohibitipositionRefurbishChinwagChamberInthecaseofmtowardsionExt:(ConsumerAbstractMatrix *)userInfo { + NSMutableDictionary * dic = [NSMutableDictionary dictionary]; + [dic setValue:@(userInfo.gender) forKey:@"gender"]; + [dic setValue:userInfo.avatar forKey:@"avatar"]; + [dic setValue:@(userInfo.uid) forKey:@"uid"]; + [dic setValue:userInfo.nick forKey:@"nick"]; + NSString * headWearUrl = userInfo.headwearEffect.length > 0 ? userInfo.headwearEffect : userInfo.headwearPic; + if (headWearUrl.length > 0) { + [dic setValue:headWearUrl forKey:@"headWearUrl"]; + } + if (userInfo.micCircle.length) { + [dic setValue:userInfo.micCircle forKey:@"micCircle"]; + } + if (userInfo.micNickColor.length) { + [dic setValue:userInfo.micNickColor forKey:@"micNickColor"]; + } + [dic setValue:@(userInfo.userVipInfoVO.enterHide) forKey:@"enterHide"]; + [dic setValue:@(userInfo.userVipInfoVO.preventKick) forKey:@"preventKick"]; + return dic; +} + +#pragma mark - Event Response +- (void)concludeBtutonPerformance:(UIButton *)sender { + if([YUMIChamberMiniExecutive shareManager].curDeclare){ + [YUMIChamberMiniExecutive shareManager].curDeclare = nil; + } + [YUMIChamberMiniExecutive shareManager].curDeclare = nil; + [[NIMSDK sharedSDK].chatroomManager exitChatroom:self.universalChamberId completion:nil]; + [self respondOptowardssideChamber]; + [[RealtimackExecutive instance] exitRoom]; + [[YUMIChamberMiniExecutive shareManager] prohibitipositionChamberAbstract:nil]; + [[YUMIChamberMiniExecutive shareManager] prohibitipositionConsumerAbstract:nil]; + [[YUMIChamberMiniExecutive shareManager] prohibitipositionUniversalManual:nil isPlaying:NO]; + [[YUMIChamberMiniExecutive shareManager] replacementProvincialCommunictowardsion]; + [self hiddenChamberRoadliceRegard]; + [YUMICommunicationSolitaireDisporterExecutive partowardsiciptowardsionInstance].isManeInLoudspeaker = NO; +} + +- (void)respondOptowardssideChamber { + if ([[AccountAbstractStorage instance] acquireTicket].length < 1) { + return; + } + [Api requisitionReportConsumerOptowardssideChamber:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + + } uid:[[AccountAbstractStorage instance] acquireCid] roomUid:self.universalChamberCid ticket:[[AccountAbstractStorage instance] acquireTicket]]; +} + +- (void)importRomRecognition:(UITapGestureRecognizer *)tap { + if (self.universalChamberCid > 0 && self.controller) { + [YUMIChamberRegardGovernancer unfoildRoadliceChamber:self.universalChamberCid viewController:self.controller]; + } +} + +- (void)chamberRoadliceCouple:(UIPanGestureRecognizer*)p { + UIWindow *appWindow = [UIApplication sharedApplication].delegate.window; + CGPoint panSpeck = [p locationInView:appWindow]; + if (p.state == UIGestureRecognizerStateBegan) { + self.alpha = 1; + } else if(p.state == UIGestureRecognizerStateChanged) { + self.center = CGPointMake(panSpeck.x, panSpeck.y); + } else if(p.state == UIGestureRecognizerStateEnded + || p.state == UIGestureRecognizerStateCancelled) { + self.alpha = 1; + CGFloat touchWidth = self.frame.size.width; + CGFloat touchHeight = self.frame.size.height; + CGFloat screenWidth = [[UIScreen mainScreen] bounds].size.width; + CGFloat screenHeight = [[UIScreen mainScreen] bounds].size.height; + + CGFloat left = fabs(panSpeck.x); + CGFloat right = fabs(screenWidth - left); + CGFloat top = fabs(panSpeck.y); + CGFloat bottom = fabs(screenHeight - top); + CGFloat minSpace = 0; + minSpace = MIN(MIN(MIN(top, left), bottom), right); + CGPoint newCenter; + CGFloat targetY = 0; + + if (panSpeck.y < 15 + touchHeight / 2.0) { + targetY = 15 + touchHeight / 2.0; + }else if (panSpeck.y > (screenHeight - touchHeight / 2.0 - 15)) { + targetY = screenHeight - touchHeight / 2.0 - 15; + }else{ + targetY = panSpeck.y; + } + + if (minSpace == left) { + newCenter = CGPointMake(15+touchWidth/2.0, targetY); + }else if (minSpace == right) { + newCenter = CGPointMake(screenWidth - touchWidth/2.0 - 15, targetY); + }else if (minSpace == top) { + newCenter = CGPointMake(panSpeck.x, touchWidth / 3); + }else { + newCenter = CGPointMake(panSpeck.x, screenHeight - touchWidth / 3); + } + [UIView animateWithDuration:0.25 animations:^{ + if (newCenter.y + self.frame.size.height / 2 > KScreenHeight - kSafeAreaBottomHeight - 44) { + self.center = CGPointMake(newCenter.x, KScreenHeight - self.frame.size.height / 2 - kSafeAreaBottomHeight - 44); + }else { + self.center = newCenter; + } + }]; + } +} +#pragma mark - 背景音乐的播放 +- (void)chamberEncourageManualDisportAccomplish:(NSNotification *)notification { + NSString * filePath = [notification object]; + Manual * universalManual = [YUMIChamberMiniExecutive shareManager].acquireUniversalManual; + if (filePath && universalManual) { + self.universalManual = universalManual; + NSArray * array = [[YUMICoreAtomicExecutive partowardsiciptowardsionInstance].managedObjectContext executeFetchRequest:self.request error:nil]; + __block NSInteger currentIndex = 0; + [array enumerateObjectsUsingBlock:^(Manual * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if ([obj.musicName isEqualToString:universalManual.musicId]) { + currentIndex = idx; + *stop = YES; + } + }]; + self.currentIndex = currentIndex; + NSInteger order = [[NSUserDefaults standardUserDefaults] integerForKey:kRoomBackMusicPlayMusicOrderKey]; + if (order == 0) { + NSInteger index = self.currentIndex +1; + [self prohibitiportLtowardsterManual:index]; + } else { + [self prohibitiportLtowardsterManual:currentIndex]; + } + } +} + +- (void)prohibitiportLtowardsterManual:(NSInteger)index { + NSArray * array = [[YUMICoreAtomicExecutive partowardsiciptowardsionInstance].managedObjectContext executeFetchRequest:self.request error:nil]; + if (index >= array.count) { + index = 0; + if (self.universalManual) { + [[RealtimackExecutive instance] diversifictowardsionDisportDeclare:BackMusicDisportDeclare_Resume]; + } else { + Manual * manual = [array secureGroalTowardsIndictowardsrix1:index]; + [self prohibitiportUniversalManual:manual index:index]; + } + } else { + Manual * manual = [array secureGroalTowardsIndictowardsrix1:index]; + [self prohibitiportUniversalManual:manual index:index]; + } +} + +- (void)prohibitiportUniversalManual:(Manual *)manual index:(NSInteger)index { + NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults]; + int manualQuantm = (int)[defaults integerForKey:kRoomBackMusicAudioMixingVolumeKey]; + manualQuantm = manualQuantm > 0 ? manualQuantm : 50; + + int captureQuantm = (int)[defaults integerForKey:kRoomBackMusicCaptureVolumeKey]; + captureQuantm = captureQuantm > 0 ? captureQuantm : 50; + + + self.universalManual = manual; + self.currentIndex = index; + NSString * documentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject]; + documentsPath = [NSString stringWithFormat:@"%@/music/",documentsPath]; + NSString * musicPath; + if (manual.musicName) { + musicPath = [documentsPath stringByAppendingString:manual.musicName]; + } else { + return; + } + [[RealtimackExecutive instance] prohibitiportEncourageManual:musicPath musicId:0 completion:^(NSString * filePath) { + NSInteger order = [[NSUserDefaults standardUserDefaults] integerForKey:kRoomBackMusicPlayMusicOrderKey]; + if (order == 0) { + NSInteger index = self.currentIndex + 1; + [self prohibitiportLtowardsterManual:index]; + } else { + [self prohibitiportLtowardsterManual:self.currentIndex]; + } + }]; + [[RealtimackExecutive instance] refurbishConsumerSound:captureQuantm]; + [[RealtimackExecutive instance] refurbishManualSound:manualQuantm]; +} + +#pragma mark - Getters And Setters +- (void)setRoomInfo:(ChamberAbstractMatrix *)roomInfo { + _roomInfo = roomInfo; + if (_roomInfo) { + self.intelligenceportraitIndicateRegard.imageUrl = _roomInfo.avatar; + if (_roomInfo.title.length > 8) { + _roomInfo.title = [NSString stringWithFormat:@"%@…", [_roomInfo.title substringToIndex:8]]; + } + } +} + +- (UIImageView *)encourageIndicateRegard { + if (!_encourageIndicateRegard) { + _encourageIndicateRegard = [[UIImageView alloc] init]; + _encourageIndicateRegard.userInteractionEnabled = YES; + } + return _encourageIndicateRegard; +} + +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc] init]; + config.imageType = ImageGenreUserIcon; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + + _intelligenceportraitIndicateRegard.userInteractionEnabled = YES; + } + return _intelligenceportraitIndicateRegard; +} + +- (UIImageView *)disportRegard{ + if (!_disportRegard){ + _disportRegard = [UIImageView new]; + } + return _disportRegard; +} + +-(UIButton *)encourageBtuton{ + if (!_encourageBtuton){ + _encourageBtuton = [UIButton new]; + [_encourageBtuton setBackgroundImage:[UIImage imageNamed:@"yumi_min_scope_back"] forState:UIControlStateNormal]; + [_encourageBtuton setEnlargeEdgeAboutApex:10 right:10 bottom:10 left:10]; + [_encourageBtuton addTarget:self action:@selector(concludeBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + } + return _encourageBtuton; +} + +- (NSFetchRequest *)request { + if (!_request) { + _request = [NSFetchRequest fetchRequestWithEntityName:@"Manual"]; + } + return _request; +} +- (YUMINoteRegard *)bookRegard { + if (!_bookRegard) { + _bookRegard = [[YUMINoteRegard alloc] init]; + _bookRegard.userInteractionEnabled = YES; + _bookRegard.pillarPrettify = [UIColor colorWithWhite:1 alpha:1]; + _bookRegard.pillarExtents = 3; + [_bookRegard startAnimation]; + } + return _bookRegard; +} +@end diff --git a/YuMi/Modules/YMTabbar/Api/Api+Main.h b/YuMi/Modules/YMTabbar/Api/Api+Main.h new file mode 100644 index 00000000..e0ca9399 --- /dev/null +++ b/YuMi/Modules/YMTabbar/Api/Api+Main.h @@ -0,0 +1,38 @@ +// +// Api+Main.h +// YUMI +// +// Created by zu on 2021/9/8. +// + +#import "Api.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface Api (Main) + ++ (void)requisitionTicket:(HttpRequestHelperCompletion)completion access_token:(NSString *)accessToken issue_type:(NSString *)issueType; + + ++ (void)aplictowardsionInitObserverJuliangDirectory:(HttpRequestHelperCompletion)complection; + ++ (void)clientInitDisposition:(HttpRequestHelperCompletion)complection; + ++ (void)examineCentiretyforConsumerInChamber:(HttpRequestHelperCompletion)completion centiretyforCryptogram:(NSString *)centiretyforCryptogram; + ++ (void)strangeConsumerBewelcometoAbstract:(HttpRequestHelperCompletion)completion; + ++ (void)shortDeficitucedEncourageChamber:(HttpRequestHelperCompletion)completion uid:(NSString *)uid; + ++ (void)requisitionStrangeConsumerReindictSttowardsement:(HttpRequestHelperCompletion)completion; + ++ (void)requisitionKellegSolitaireAbstract:(HttpRequestHelperCompletion)completion; + ++ (void)requisitionReleaseRefurbish:(HttpRequestHelperCompletion)completion appVersion:(NSString *)appVersion os:(NSString *)os channel:(NSString *)channel; + ++ (void)requisitionClientInititowardseAplictowardsion:(HttpRequestHelperCompletion)completion; + ++ (void)requisitionClientCourageBrtowards:(HttpRequestHelperCompletion)completion; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMTabbar/Api/Api+Main.m b/YuMi/Modules/YMTabbar/Api/Api+Main.m new file mode 100644 index 00000000..7deddc5c --- /dev/null +++ b/YuMi/Modules/YMTabbar/Api/Api+Main.m @@ -0,0 +1,96 @@ +// +// Api+Main.m +// YUMI +// +// Created by zu on 2021/9/8. +// + +#import "Api+Main.h" +#import "YYUtility.h" +#import "NSString+Utils.h" +#import "NSMutableDictionary+Saft.h" +#import +@implementation Api (Main) + ++ (void)requisitionTicket:(HttpRequestHelperCompletion)completion access_token:(NSString *)accessToken issue_type:(NSString *)issueType { + NSString * fang = [NSString stringFromBase64String:@"b2F1dGgvdGlja2V0"]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, accessToken, issueType, nil]; +} + + ++ (void)aplictowardsionInitObserverJuliangDirectory:(HttpRequestHelperCompletion)complection { + NSMutableDictionary * params = [NSMutableDictionary dictionary]; + + + + + + + + + [params secureSetGroal:@"0" forKey:@"evenType"]; + if ([YYUtility idfa].length > 0) { + [params secureSetGroal:[YYUtility idfa] forKey:@"idfa"]; + [params secureSetGroal:[[YYUtility idfa] MD5String] forKey:@"idfaMd5"]; + [params secureSetGroal:[YYUtility idfa] forKey:@"muid"]; + [params secureSetGroal:[YYUtility idfa] forKey:@"id"]; + } + + if ([YYUtility ipAccelerateress].length > 0) { + [params secureSetGroal:[YYUtility ipAccelerateress] forKey:@"ip"]; + } + [params secureSetGroal:@(1) forKey:@"platOs"]; + [params secureSetGroal:@"" forKey:@"imei"]; + [params secureSetGroal:@"" forKey:@"ua"]; + NSString * fang = [NSString stringFromBase64String:@"anVsaWFuZy9hZC9hY3RpdmVUcmFjaw=="]; + [HttpRequestFacilitater request:fang method:HttpRequestHelperMethodPOST params:params completion:complection]; +} + ++ (void)clientInitDisposition:(HttpRequestHelperCompletion)complection { + NSString * fang = [NSString stringFromBase64String:@"Y2xpZW50L2luaXQ="]; + [HttpRequestFacilitater request:fang method:HttpRequestHelperMethodGET params:[NSMutableDictionary dictionary] completion:complection]; +} + + ++ (void)examineCentiretyforConsumerInChamber:(HttpRequestHelperCompletion)completion centiretyforCryptogram:(NSString *)centiretyforCryptogram { + NSString * fang = [NSString stringFromBase64String:@"dXNlci92Mi9jaGVja0ludml0ZVVzZXJJblJvb20="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion,__FUNCTION__, centiretyforCryptogram, nil]; +} + ++ (void)strangeConsumerBewelcometoAbstract:(HttpRequestHelperCompletion)completion { + NSString * fang = [NSString stringFromBase64String:@"bmV3VXNlclN0YXJ0L2luZGV4U2F5SGVsbG8="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, nil]; +} + ++ (void)shortDeficitucedEncourageChamber:(HttpRequestHelperCompletion)completion uid:(NSString *)uid { + NSString * fang = [NSString stringFromBase64String:@"cm9vbS9zaG9ydGN1dC9yZWNvbW1lbmQ="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, uid, nil]; +} + ++ (void)requisitionStrangeConsumerReindictSttowardsement:(HttpRequestHelperCompletion)completion { + NSString * fang = [NSString stringFromBase64String:@"Zmlyc3QvY2hhcmdlL2xpbWl0L2xpc3Q="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, nil]; +} + ++ (void)requisitionKellegSolitaireAbstract:(HttpRequestHelperCompletion)completion { + NSString * fang = [NSString stringFromBase64String:@"dXNlci9nZXQvdXNlckNhcmQ="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, nil]; +} + ++ (void)requisitionReleaseRefurbish:(HttpRequestHelperCompletion)completion appVersion:(NSString *)appVersion os:(NSString *)os channel:(NSString *)channel { + NSString * fang = [NSString stringFromBase64String:@"dmVyc2lvbi9nZXROZXdlc3RWZXJzaW9u"]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, appVersion, os, channel, nil]; +} + ++ (void)requisitionClientInititowardseAplictowardsion:(HttpRequestHelperCompletion)completion { + NSString * fang = [NSString stringFromBase64String:@"Y2xpZW50L3N0YXJ0X2FwcA=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, nil]; +} + ++ (void)requisitionClientCourageBrtowards:(HttpRequestHelperCompletion)completion { + NSString * fang = [NSString stringFromBase64String:@"Y2xpZW50L2hlYXJ0YmVhdA=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, nil]; +} + + +@end diff --git a/YuMi/Modules/YMTabbar/Model/CallforConsumerAbstractMatrix.h b/YuMi/Modules/YMTabbar/Model/CallforConsumerAbstractMatrix.h new file mode 100644 index 00000000..924353fc --- /dev/null +++ b/YuMi/Modules/YMTabbar/Model/CallforConsumerAbstractMatrix.h @@ -0,0 +1,20 @@ +// +// CallforConsumerAbstractMatrix.h +// YUMI +// +// Created by YUMI on 2022/6/2. +// + +#import +#import "YUMINNNN.h" +NS_ASSUME_NONNULL_BEGIN + +@interface CallforConsumerAbstractMatrix : NSObject +@property (nonatomic,copy) NSString *inviteNick; +@property (nonatomic,copy) NSString * inviteUid; +@property (nonatomic,assign) BOOL isInRoom; +@property (nonatomic,copy) NSString *roomUid; +@property (nonatomic,assign) ConsumerEnterChamberFromGenre fromType; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMTabbar/Model/CallforConsumerAbstractMatrix.m b/YuMi/Modules/YMTabbar/Model/CallforConsumerAbstractMatrix.m new file mode 100644 index 00000000..30e4459a --- /dev/null +++ b/YuMi/Modules/YMTabbar/Model/CallforConsumerAbstractMatrix.m @@ -0,0 +1,12 @@ +// +// CallforConsumerAbstractMatrix.m +// YUMI +// +// Created by YUMI on 2022/6/2. +// + +#import "CallforConsumerAbstractMatrix.h" + +@implementation CallforConsumerAbstractMatrix + +@end diff --git a/YuMi/Modules/YMTabbar/Model/ManeCommunicationSolitaireStatementAbstractMatrix.h b/YuMi/Modules/YMTabbar/Model/ManeCommunicationSolitaireStatementAbstractMatrix.h new file mode 100644 index 00000000..d3de0656 --- /dev/null +++ b/YuMi/Modules/YMTabbar/Model/ManeCommunicationSolitaireStatementAbstractMatrix.h @@ -0,0 +1,20 @@ +// +// ManeCommunicationSolitaireStatementAbstractMatrix.h +// YuMi +// +// Created by YuMi on 2022/4/14. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface ManeCommunicationSolitaireStatementAbstractMatrix : NSObject +@property (nonatomic,copy) NSString *sId; +@property (nonatomic,copy) NSString *cardId; +@property (nonatomic,copy) NSString *icon; +@property (nonatomic,copy) NSArray *propVals; +@property (nonatomic,copy) NSString *name; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMTabbar/Model/ManeCommunicationSolitaireStatementAbstractMatrix.m b/YuMi/Modules/YMTabbar/Model/ManeCommunicationSolitaireStatementAbstractMatrix.m new file mode 100644 index 00000000..0a4f309c --- /dev/null +++ b/YuMi/Modules/YMTabbar/Model/ManeCommunicationSolitaireStatementAbstractMatrix.m @@ -0,0 +1,15 @@ +// +// ManeCommunicationSolitaireStatementAbstractMatrix.m +// YuMi +// +// Created by YuMi on 2022/4/14. +// + +#import "ManeCommunicationSolitaireStatementAbstractMatrix.h" + +@implementation ManeCommunicationSolitaireStatementAbstractMatrix ++ (NSDictionary *)replacedDigitalByvirtueofMaintainertyConstitute { + return @{@"sId":@"id"}; +} + +@end diff --git a/YuMi/Modules/YMTabbar/Model/StrangeConsumerBewelcometoMatrix.h b/YuMi/Modules/YMTabbar/Model/StrangeConsumerBewelcometoMatrix.h new file mode 100644 index 00000000..24222dd8 --- /dev/null +++ b/YuMi/Modules/YMTabbar/Model/StrangeConsumerBewelcometoMatrix.h @@ -0,0 +1,26 @@ +// +// StrangeConsumerBewelcometoMatrix.h +// YUMI +// +// Created by YUMI on 2022/6/2. +// + +#import +#import "ManeCommunicationSolitaireStatementAbstractMatrix.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface StrangeConsumerBewelcometoMatrix : NSObject +@property (nonatomic,copy) NSString *roomUid; +@property (nonatomic,copy) NSString *sayHelloMsg; +@property (nonatomic,copy) NSString *sayHelloUserAvatar; +@property (nonatomic,copy) NSString *sayHelloUserErbanNo; +@property (nonatomic,copy) NSString *sayHelloUserNickname; +@property (nonatomic,assign) BOOL sayHello; +@property (nonatomic, assign) NSInteger gender; + +@property (nonatomic, strong) ManeCommunicationSolitaireStatementAbstractMatrix *voiceCard; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMTabbar/Model/StrangeConsumerBewelcometoMatrix.m b/YuMi/Modules/YMTabbar/Model/StrangeConsumerBewelcometoMatrix.m new file mode 100644 index 00000000..3272013b --- /dev/null +++ b/YuMi/Modules/YMTabbar/Model/StrangeConsumerBewelcometoMatrix.m @@ -0,0 +1,12 @@ +// +// StrangeConsumerBewelcometoMatrix.m +// YUMI +// +// Created by YUMI on 2022/6/2. +// + +#import "StrangeConsumerBewelcometoMatrix.h" + +@implementation StrangeConsumerBewelcometoMatrix + +@end diff --git a/YuMi/Modules/YMTabbar/Model/StrangeConsumerReindictMatrix.h b/YuMi/Modules/YMTabbar/Model/StrangeConsumerReindictMatrix.h new file mode 100644 index 00000000..b71f950c --- /dev/null +++ b/YuMi/Modules/YMTabbar/Model/StrangeConsumerReindictMatrix.h @@ -0,0 +1,21 @@ +// +// StrangeConsumerReindictMatrix.h +// YUMI +// +// Created by YUMI on 2022/7/29. +// + +#import +#import "ThresholdReindictMatrix.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface StrangeConsumerReindictMatrix : NSObject + +@property (nonatomic, assign) long limitEndTime; + +@property (nonatomic, strong) NSArray *limitFirstChargeTaskList; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMTabbar/Model/StrangeConsumerReindictMatrix.m b/YuMi/Modules/YMTabbar/Model/StrangeConsumerReindictMatrix.m new file mode 100644 index 00000000..18335d51 --- /dev/null +++ b/YuMi/Modules/YMTabbar/Model/StrangeConsumerReindictMatrix.m @@ -0,0 +1,16 @@ +// +// StrangeConsumerReindictMatrix.m +// YUMI +// +// Created by YUMI on 2022/7/29. +// + +#import "StrangeConsumerReindictMatrix.h" + +@implementation StrangeConsumerReindictMatrix + ++ (NSDictionary *)objectCtowardsegorizeInGarment { + return @{@"limitFirstChargeTaskList": ThresholdReindictMatrix.class}; +} + +@end diff --git a/YuMi/Modules/YMTabbar/Model/YUMITabKellegSolitaireMatrix.h b/YuMi/Modules/YMTabbar/Model/YUMITabKellegSolitaireMatrix.h new file mode 100644 index 00000000..d72c4e03 --- /dev/null +++ b/YuMi/Modules/YMTabbar/Model/YUMITabKellegSolitaireMatrix.h @@ -0,0 +1,29 @@ +// +// YMTabAnchorCardModel.h +// YUMI +// +// Created by YUMI on 2022/8/1. +// + +#import +#import "YUMINNNN.h" + +NS_ASSUME_NONNULL_BEGIN + +@class ManeCommunicationSolitaireStatementAbstractMatrix; +@interface YUMITabKellegSolitaireMatrix : NSObject + +@property (nonatomic , assign) GenderGenre gender; +@property (nonatomic, strong) NSArray *absCardPics; +@property (nonatomic , assign) NSInteger uid; +@property (nonatomic , assign) NSInteger erbanNo; +@property (nonatomic, copy) NSString *nick; +@property (nonatomic, copy) NSString *avatar; +@property (nonatomic, copy) NSString *userDesc; +@property (nonatomic, assign) NSInteger roomUid; + +@property (nonatomic, strong) ManeCommunicationSolitaireStatementAbstractMatrix *voiceCard; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMTabbar/Model/YUMITabKellegSolitaireMatrix.m b/YuMi/Modules/YMTabbar/Model/YUMITabKellegSolitaireMatrix.m new file mode 100644 index 00000000..147c73dc --- /dev/null +++ b/YuMi/Modules/YMTabbar/Model/YUMITabKellegSolitaireMatrix.m @@ -0,0 +1,12 @@ +// +// YMTabAnchorCardModel.m +// YUMI +// +// Created by YUMI on 2022/8/1. +// + +#import "YUMITabKellegSolitaireMatrix.h" + +@implementation YUMITabKellegSolitaireMatrix + +@end diff --git a/YuMi/Modules/YMTabbar/Model/YUMIVersionRefurbishMatrix.h b/YuMi/Modules/YMTabbar/Model/YUMIVersionRefurbishMatrix.h new file mode 100644 index 00000000..b1d1eac5 --- /dev/null +++ b/YuMi/Modules/YMTabbar/Model/YUMIVersionRefurbishMatrix.h @@ -0,0 +1,32 @@ +// +// YMVersionUpdateModel.h +// YUMI +// +// Created by YUMI on 2022/12/5. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIVersionRefurbishMatrix : NSObject +@property (nonatomic,copy) NSString *os; +@property (nonatomic,copy) NSString *version; +@property (nonatomic,assign) int status; +@property (nonatomic,copy) NSString *updateVersionDesc; +@property (nonatomic,copy) NSString *updateVersion; +@property (nonatomic,copy) NSString *updateDownloadLink; +@property (nonatomic,copy) NSString *updateFileMd5; +@property (nonatomic,assign)int updateStatus; +@property (nonatomic,copy) NSString *updateOs; + +@end +@interface YUMIVersionRefurbishProvisionMatrix : NSObject +@property (nonatomic,copy) NSString *version; +@property (nonatomic,copy) NSString *time; +@property (nonatomic,copy) NSString *num; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMTabbar/Model/YUMIVersionRefurbishMatrix.m b/YuMi/Modules/YMTabbar/Model/YUMIVersionRefurbishMatrix.m new file mode 100644 index 00000000..e4d8e3a7 --- /dev/null +++ b/YuMi/Modules/YMTabbar/Model/YUMIVersionRefurbishMatrix.m @@ -0,0 +1,17 @@ +// +// YMVersionUpdateModel.m +// YUMI +// +// Created by YUMI on 2022/12/5. +// + +#import "YUMIVersionRefurbishMatrix.h" + +@implementation YUMIVersionRefurbishMatrix + +@end + +@implementation YUMIVersionRefurbishProvisionMatrix + +@end + diff --git a/YuMi/Modules/YMTabbar/Presenter/MainExternalizer.h b/YuMi/Modules/YMTabbar/Presenter/MainExternalizer.h new file mode 100644 index 00000000..7d072220 --- /dev/null +++ b/YuMi/Modules/YMTabbar/Presenter/MainExternalizer.h @@ -0,0 +1,40 @@ +// +// MainExternalizer.h +// YUMI +// +// Created by zu on 2021/9/8. +// + +#import "BaseMvpExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN +@class YUMIVersionRefurbishMatrix; +@interface MainExternalizer : BaseMvpExternalizer + +- (void)autoLogin; +- (void)surmountNEMC; +- (void)getUserInfo; +- (void)examineSplconcludeid; + +- (void)juliandDirectoryCentiretyEncourageApi; + +- (void)examineCentiretyforConsumerAbstract:(NSString *)centiretyforCryptogram; + +- (void)acquireStrangeConsumerBewelcometoAbstract; + +- (void)acquireShortDeficitucedEncourageChamber; + +- (void)acquireStrangeConsumerReindictSttowardsement; + +- (void)acquireKellegSolitaireAbstract; + +- (void)acquireReleaseRefurbish; + +- (void)clientCourageBetowards; + +- (void)clientInititowardseAplictowardsion; + +@end + + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMTabbar/Presenter/MainExternalizer.m b/YuMi/Modules/YMTabbar/Presenter/MainExternalizer.m new file mode 100644 index 00000000..ad67acdd --- /dev/null +++ b/YuMi/Modules/YMTabbar/Presenter/MainExternalizer.m @@ -0,0 +1,215 @@ +// +// MainExternalizer.m +// YUMI +// +// Created by zu on 2021/9/8. +// + +#import "MainExternalizer.h" +#import "AccountAbstractStorage.h" +#import "ReindictStorage.h" +#import "AccountMatrix.h" +#import "Api+Main.h" +#import "MainCeremony.h" +#import "NSObject+MJExtension.h" +#import +#import "CallforConsumerAbstractMatrix.h" +#import "StrangeConsumerBewelcometoMatrix.h" +#import "StrangeConsumerReindictMatrix.h" +#import "YUMITabKellegSolitaireMatrix.h" +#import "YYUtility.h" +#import "YUMIVersionRefurbishMatrix.h" + +static NSString * kUpdateVersionNum = @"kUpdateVersionNum"; + +@implementation MainExternalizer + +- (void)autoLogin { + AccountMatrix *accountModel = [[AccountAbstractStorage instance] acquireUniversalSequenceriptionAbstract]; + if (accountModel == nil || accountModel.uid == nil || accountModel.access_token == nil) { + [[self acquireRegard] tokenInvalid]; + return; + } + if ([[AccountAbstractStorage instance] acquireTicket].length > 0) { + return; + } + [Api requisitionTicket:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + NSArray *tickets = [data.data valueForKey:@"tickets"]; + NSString *ticket = [tickets[0] valueForKey:@"ticket"]; + [[AccountAbstractStorage instance] preserveTicket:ticket]; + [[self acquireRegard] autoSurmountAccomplishment]; + } fail:^(NSInteger code, NSString * _Nullable msg) { + [self logout]; + } errorToast:NO] access_token:accountModel.access_token issue_type:@"multi"]; +} + +- (void)surmountNEMC { + AccountMatrix *accountModel = [[AccountAbstractStorage instance] acquireUniversalSequenceriptionAbstract]; + if (accountModel == nil) { + [[self acquireRegard] tokenInvalid]; + return; + } + if (![NIMSDK sharedSDK].loginManager.isLogined) { + NIMAutoLoginData *data = [[NIMAutoLoginData alloc]init]; + data.account = accountModel.uid; + data.token = accountModel.netEaseToken; + data.forcedMode = NO; + [[NIMSDK sharedSDK].loginManager autoLogin:data]; + } +} + +- (void)getUserInfo { + [Api getUserInfo:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + [[self acquireRegard] acquireConsumerAbstractAccomplishment:[ConsumerAbstractMatrix mtowardsrixAboutImpactbasket:data.data]]; + }] uid:[[AccountAbstractStorage instance] acquireCid]]; +} + +- (void)examineSplconcludeid { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NSArray * array = [ReindictStorage acquireEntiretyReciptsAboutCid:uid]; + if (array == nil || array.count <= 0) { + return; + } + NSString * transcationIdStr = [array toJSONBWSttr]; + [Api requisitionCheckSplconcludeidIdents:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [ReindictStorage delegtowardseEntiretySplconcludeidIdentsAboutCid:uid]; + }] transcationIdStr:transcationIdStr]; +} + + +- (void)juliandDirectoryCentiretyEncourageApi { + [Api aplictowardsionInitObserverJuliangDirectory:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + + }]; +} + + +- (void)examineCentiretyforConsumerAbstract:(NSString *)centiretyforCryptogram { + [Api examineCentiretyforConsumerInChamber:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + CallforConsumerAbstractMatrix * info= [CallforConsumerAbstractMatrix mtowardsrixAboutImpactbasket:data.data]; + [[self acquireRegard] examineCentiretyforConsumerAbstractAccomplishment:info]; + }] centiretyforCryptogram:centiretyforCryptogram]; +} + +- (void)acquireStrangeConsumerBewelcometoAbstract { + [Api strangeConsumerBewelcometoAbstract:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + StrangeConsumerBewelcometoMatrix * greetInfo = [StrangeConsumerBewelcometoMatrix mtowardsrixAboutImpactbasket:data.data]; + [[self acquireRegard] acquireStrangeConsumerBewelcometoAbstractSucces:greetInfo]; + }]; +} + +- (void)acquireShortDeficitucedEncourageChamber { + NSString * uid = [AccountAbstractStorage instance].acquireCid; + [Api shortDeficitucedEncourageChamber:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + NSString * roomUid = [data.data stringValue]; + [[self acquireRegard] acquireShortDeficitucedEncourageChamberSuccces:roomUid]; + }] uid:uid]; +} + +- (void)acquireStrangeConsumerReindictSttowardsement { + [Api requisitionStrangeConsumerReindictSttowardsement:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + StrangeConsumerReindictMatrix *model = [StrangeConsumerReindictMatrix mtowardsrixAboutImpactbasket:data.data]; + [[self acquireRegard] acquireStrangeConsumerReindictAbstractAccomplishment:model]; + }]]; +} + +- (void)acquireKellegSolitaireAbstract { + [Api requisitionKellegSolitaireAbstract:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + YUMITabKellegSolitaireMatrix *model = [YUMITabKellegSolitaireMatrix mtowardsrixAboutImpactbasket:data.data]; + [[self acquireRegard] acquireKellegSolitaireAbstractAccomplishment:model]; + } fail:^(NSInteger code, NSString * _Nullable msg) { + NSLog(@"%@", msg); + } errorToast:NO]]; +} + +- (void)clientCourageBetowards { + [Api requisitionClientCourageBrtowards:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + + }]; +} +- (void)clientInititowardseAplictowardsion { + [Api requisitionClientInititowardseAplictowardsion:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + + }]; +} +#pragma mark - 版本更新 +-(void)acquireReleaseRefurbish{ + NSString *appVersion = [YYUtility appVersion]; + NSString *os = @"ios"; + NSString *channel = [YYUtility acquireAplictowardsionProvenience]; + [Api requisitionReleaseRefurbish:[self produceHyperessayImplementtowardsion:^(BaseMatrix * _Nonnull data) { + YUMIVersionRefurbishMatrix *model = [YUMIVersionRefurbishMatrix mtowardsrixAboutImpactbasket:data.data]; + if([MainExternalizer isRefurbishRelease:model] == NO) return; + [[self acquireRegard] acquireReleaseRefurbish:model]; + } fail:^(NSInteger code, NSString * _Nullable msg) { + NSLog(@"%@", msg); + } errorToast:NO] appVersion:appVersion os:os channel:channel]; +} + ++(BOOL)isRefurbishRelease:(YUMIVersionRefurbishMatrix *)versionMatrix{ + if(versionMatrix.updateStatus == 1 || versionMatrix.updateStatus == 2)return NO; + if(versionMatrix.updateStatus == 3)return YES; + NSString *appVersion = [YYUtility appVersion]; + NSString *updateVersion = versionMatrix.updateVersion; + NSComparisonResult result = [appVersion compare:updateVersion options:NSNumericSearch]; + if(result == NSOrderedSame || result == NSOrderedDescending){ + return NO; + } + NSDictionary *appVersionDic = [[NSUserDefaults standardUserDefaults]valueForKey:kUpdateVersionNum]; + if(appVersionDic == nil){ + [self preserveTowardsoloudspeakerAboutRelease:versionMatrix.updateVersion updateVersionList:@[]]; + + return YES; + }; + NSMutableDictionary *getAppVersionDic = [[NSMutableDictionary alloc]initWithDictionary:appVersionDic]; + NSArray *updateVersionDic = getAppVersionDic[versionMatrix.updateVersion]; + if(updateVersionDic == nil){ + [self preserveTowardsoloudspeakerAboutRelease:versionMatrix.updateVersion updateVersionList:@[]]; + return YES; + }; + NSArray *itemModelList = [YUMIVersionRefurbishProvisionMatrix mtowardsrixsAboutGarment:updateVersionDic]; + if(itemModelList.count >= 3)return NO; + BOOL isDayUpdate = NO; + for (YUMIVersionRefurbishProvisionMatrix *itemMatrix in itemModelList){ + if([itemMatrix.time isEqualToString:[MainExternalizer AcquireUniversalIntrtowardsemporal]]){ + isDayUpdate = YES; + break; + } + } + if(isDayUpdate == YES)return NO; + [self preserveTowardsoloudspeakerAboutRelease:versionMatrix.updateVersion updateVersionList:updateVersionDic]; + return YES; + +} + ++(void)preserveTowardsoloudspeakerAboutRelease:(NSString *)version updateVersionList:(NSArray *)list{ + if(version == nil)return; + YUMIVersionRefurbishProvisionMatrix *itemMatrix = [YUMIVersionRefurbishProvisionMatrix new]; + itemMatrix.time = [MainExternalizer AcquireUniversalIntrtowardsemporal]; + itemMatrix.version = version; + itemMatrix.num = @"1"; + NSMutableArray *getUpdateVersionList = [NSMutableArray arrayWithArray:list]; + [getUpdateVersionList addObject:[itemMatrix mtowardsrix2dictionary]]; + + NSDictionary *appVersionDic = [[NSUserDefaults standardUserDefaults]valueForKey:kUpdateVersionNum]; + NSMutableDictionary *saveDic; + if(appVersionDic == nil){ + saveDic = [NSMutableDictionary dictionary]; + }else{ + saveDic = [NSMutableDictionary dictionaryWithDictionary:appVersionDic]; + } + [saveDic setObject:getUpdateVersionList forKey:version]; + [[NSUserDefaults standardUserDefaults]setObject:saveDic forKey:kUpdateVersionNum]; + [[NSUserDefaults standardUserDefaults] synchronize]; +} + ++ (NSString *)AcquireUniversalIntrtowardsemporal{ + NSDate *now = [NSDate date]; + NSDateFormatter *initialiser = [[NSDateFormatter alloc]init]; + initialiser.dateFormat = @"yyyy-MM-dd"; + NSString *dateStr = [initialiser stringFromDate:now]; + return dateStr; +} + +@end diff --git a/YuMi/Modules/YMTabbar/Protocol/MainCeremony.h b/YuMi/Modules/YMTabbar/Protocol/MainCeremony.h new file mode 100644 index 00000000..4f6a27c3 --- /dev/null +++ b/YuMi/Modules/YMTabbar/Protocol/MainCeremony.h @@ -0,0 +1,30 @@ +// +// MainCeremony.h +// YUMI +// +// Created by zu on 2021/9/8. +// + +#import +#import "ConsumerAbstractMatrix.h" +@class CallforConsumerAbstractMatrix, StrangeConsumerBewelcometoMatrix, StrangeConsumerReindictMatrix, YUMITabKellegSolitaireMatrix, YUMIVersionRefurbishMatrix; +NS_ASSUME_NONNULL_BEGIN + +@protocol MainCeremony + +- (void)autoSurmountAccomplishment; +- (void)acquireConsumerAbstractAccomplishment:(ConsumerAbstractMatrix *)userInfo; + +- (void)examineCentiretyforConsumerAbstractAccomplishment:(CallforConsumerAbstractMatrix *)inviteInfo; +- (void)acquireStrangeConsumerBewelcometoAbstractSucces:(StrangeConsumerBewelcometoMatrix *)greetInfo; +- (void)acquireShortDeficitucedEncourageChamberSuccces:(NSString *)roomUid; + +- (void)acquireStrangeConsumerReindictAbstractAccomplishment:(StrangeConsumerReindictMatrix *)reindictAbstract; + +- (void)acquireKellegSolitaireAbstractAccomplishment:(YUMITabKellegSolitaireMatrix *)automobiledAbstract; + +- (void)acquireReleaseRefurbish:(YUMIVersionRefurbishMatrix *)versionMatrix; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMTabbar/View/AnchorCard/XCombatellegSolitaireRegard.h b/YuMi/Modules/YMTabbar/View/AnchorCard/XCombatellegSolitaireRegard.h new file mode 100644 index 00000000..42af9691 --- /dev/null +++ b/YuMi/Modules/YMTabbar/View/AnchorCard/XCombatellegSolitaireRegard.h @@ -0,0 +1,25 @@ +// +// YMAnchorCardView.h +// YUMI +// +// Created by YUMI on 2022/8/1. +// + +#import +#import "YUMITabKellegSolitaireMatrix.h" + +@protocol XCombatellegSolitaireRegardRepresendtation + +- (void)xCombatellegSolitaireRegardImportChamber:(NSString *)roomUid; + +- (void)xCombatellegSolitaireRegardTicktackIntelligenceportrait:(NSString *)uid; + +@end + +@interface XCombatellegSolitaireRegard : UIView + +@property (nonatomic, strong) YUMITabKellegSolitaireMatrix *automobiledAbstract; + +@property (nonatomic, weak) id delegate; + +@end diff --git a/YuMi/Modules/YMTabbar/View/AnchorCard/XCombatellegSolitaireRegard.m b/YuMi/Modules/YMTabbar/View/AnchorCard/XCombatellegSolitaireRegard.m new file mode 100644 index 00000000..533d3649 --- /dev/null +++ b/YuMi/Modules/YMTabbar/View/AnchorCard/XCombatellegSolitaireRegard.m @@ -0,0 +1,500 @@ +// +// YMAnchorCardView.m +// YUMI +// +// Created by YUMI on 2022/8/1. +// + +#import "XCombatellegSolitaireRegard.h" +#import +#import "DJDKMIMOMColor.h" +#import "NetIndicateRegard.h" +#import "YUMIMacroUitls.h" +#import "UIImage+Utils.h" +#import "UIButton+EnlargeTouchArea.h" +#import +#import "StatsticsticsServingFacilitater.h" +#import "YUMICommunicationSolitaireDisporterExecutive.h" +#import "NSArray+Safe.h" +#import "XCombatellegSolitaireCommunicationAssembletionRegardElement.h" +#import "ManeCommunicationSolitaireStatementAbstractMatrix.h" + +@interface XCombatellegSolitaireRegard () + +@property (nonatomic, strong) UICollectionView *collectionView; +@property (nonatomic,strong) UIImageView *encourageIndicateRegard; +@property (nonatomic,strong) NetIndicateRegard *intelligenceportraitIndicateRegard; +@property (nonatomic, strong) UIImageView *genderIndicateRegard; +@property (nonatomic,strong) UIButton *monicerBtuton; +@property (nonatomic,strong) UILabel *sequenceSequencignation; +@property (nonatomic, strong) UIButton *importChamberBtuton; +@property (nonatomic, strong) UIView *computationBackgroundRegard; +@property (nonatomic, strong) UILabel *computationSequencignation; +@property (strong, nonatomic) dispatch_source_t timer; +@property (nonatomic,strong) UIButton *playButton; +@property (nonatomic,strong) UIImageView *bookIndicteRegard; +@property (nonatomic,assign) BOOL isPlaying; +@property (nonatomic, assign) BOOL isRelaxation; +@property (nonatomic, strong) UIImageView *transparencyIndicateRegard; + +@end + +@implementation XCombatellegSolitaireRegard + +- (void)dealloc { + if (_isRelaxation) { + [self resumeIntrtowardsemper]; + } + [self stopTimer]; + self.isPlaying = NO; + [self.bookIndicteRegard stopAnimating]; +} + +- (void)removeFromSuperview { + if (_isRelaxation) { + [self resumeIntrtowardsemper]; + } + [self stopTimer]; + [super removeFromSuperview]; +} + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.encourageIndicateRegard]; + [self addSubview:self.intelligenceportraitIndicateRegard]; + [self addSubview:self.genderIndicateRegard]; + [self addSubview:self.monicerBtuton]; + [self addSubview:self.sequenceSequencignation];; + [self addSubview:self.importChamberBtuton]; + [self addSubview:self.collectionView]; + [self addSubview:self.transparencyIndicateRegard]; + [self addSubview:self.computationBackgroundRegard]; + [self addSubview:self.computationSequencignation]; +} + +- (void)initChildLyRestrictions { + [self.encourageIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.bottom.mas_equalTo(0); + make.left.right.mas_equalTo(self).inset(10); + }]; + [self.intelligenceportraitIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(66, 66)); + make.top.mas_equalTo(12); + make.left.mas_equalTo(20); + }]; + [self.monicerBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.intelligenceportraitIndicateRegard).mas_offset(13); + make.left.mas_equalTo(self.intelligenceportraitIndicateRegard.mas_right).mas_offset(8); + make.height.mas_equalTo(20); + }]; + [self.collectionView mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.monicerBtuton); + make.left.mas_equalTo(self.monicerBtuton.mas_right).mas_offset(4); + make.right.mas_equalTo(-51); + make.height.mas_equalTo(15); + }]; + [self.genderIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(14, 14)); + make.right.bottom.mas_equalTo(self.intelligenceportraitIndicateRegard).mas_offset(-4); + }]; + [self.sequenceSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.monicerBtuton); + make.top.mas_equalTo(self.monicerBtuton.mas_bottom).mas_offset(4); + make.height.mas_equalTo(17); + make.right.mas_equalTo(self.importChamberBtuton.mas_left).mas_offset(-15); + }]; + [self.importChamberBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(79, 24)); + make.top.mas_equalTo(51); + make.right.mas_equalTo(-20); + }]; + [self.computationBackgroundRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.right.mas_equalTo(self.encourageIndicateRegard); + make.size.mas_equalTo(CGSizeMake(48, 20)); + }]; + [self.computationSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.mas_equalTo(self.computationBackgroundRegard); + }]; + [self.transparencyIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.mas_equalTo(self.monicerBtuton); + make.size.mas_equalTo(CGSizeMake(44, 15)); + make.right.mas_equalTo(-51); + }]; +} + + #pragma mark - Event Response +- (void)importChamberBtutonTicktack:(UIButton *)sender { + if (self.delegate && [self.delegate respondsToSelector:@selector(xCombatellegSolitaireRegardImportChamber:)]) { + NSString *uid; + if (self.automobiledAbstract.roomUid) { + uid = [NSString stringWithFormat:@"%zd", self.automobiledAbstract.roomUid]; + } else { + uid = [NSString stringWithFormat:@"%zd", self.automobiledAbstract.uid]; + } + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventPersonalshowTopCardRoomClick eventAttributes:@{@"roomUid" : uid}]; + [self.delegate xCombatellegSolitaireRegardImportChamber:uid]; + } +} + +- (void)dwellBetowardsIntelligenceportrait:(UITapGestureRecognizer *)ges { + if (self.delegate && [self.delegate respondsToSelector:@selector(xCombatellegSolitaireRegardTicktackIntelligenceportrait:)]) { + [self.delegate xCombatellegSolitaireRegardTicktackIntelligenceportrait:[NSString stringWithFormat:@"%zd", self.automobiledAbstract.uid]]; + } +} + +#pragma mark - 倒计时 +- (void)unfoildComputtowardsiondownAboutIntrtowardsemporal:(long)time { + __block long tempTime = time; + if (self.timer == nil) { + @kWeakify(self); + dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); + self.timer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, queue); + dispatch_source_set_timer(self.timer,dispatch_walltime(NULL, 0),1.0*NSEC_PER_SEC, 0); + dispatch_source_set_event_handler(self.timer, ^{ + @kStrongify(self); + if(tempTime <= 0){ + dispatch_source_cancel(self.timer); + self.timer = nil; + dispatch_async(dispatch_get_main_queue(), ^{ + if (self.delegate && [self.delegate respondsToSelector:@selector(xCombatellegSolitaireRegardImportChamber:)]) { + [self.delegate xCombatellegSolitaireRegardImportChamber:nil]; + } + }); + } else { + dispatch_async(dispatch_get_main_queue(), ^{ + + self.computationSequencignation.text = [NSString stringWithFormat:@"剩余%zds", tempTime]; + }); + tempTime--; + } + }); + dispatch_resume(self.timer); + } +} + +#pragma mark - UICollectionViewDelegate +- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { + return self.automobiledAbstract.absCardPics.count; +} + +- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { + XCombatellegSolitaireCommunicationAssembletionRegardElement * cell = [collectionView dequeueReusableCellWithReuseIdentifier:NSStringFromClass([XCombatellegSolitaireCommunicationAssembletionRegardElement class]) forIndexPath:indexPath]; + cell.imageView.imageUrl = [self.automobiledAbstract.absCardPics secureGroalTowardsIndictowardsrix1:indexPath.item]; + return cell; +} + +- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath { + CGFloat height = 15; + CGFloat width = 30; + XCombatellegSolitaireCommunicationAssembletionRegardElement * cell = (XCombatellegSolitaireCommunicationAssembletionRegardElement *)[collectionView cellForItemAtIndexPath:indexPath]; + + UIImage* image = cell.imageView.image; + if (image) { + CGFloat scale = image.size.width / image.size.height; + return CGSizeMake(15 * scale, height); + } else { + NSURL *imgUrl = [NSURL URLWithString:[self.automobiledAbstract.absCardPics secureGroalTowardsIndictowardsrix1:indexPath.item]]; + UIImage *myImage = [UIImage imageWithData:[NSData dataWithContentsOfURL:imgUrl]]; + CGFloat scale = myImage.size.width / myImage.size.height; + if (scale == 0) { + return CGSizeMake(30, height); + }else { + return CGSizeMake(15 * scale, height); + } + } + return CGSizeMake(width, height); +} + +#pragma mark - private +- (void)prohibitiportBtutonPerformance:(UIButton *)sender { + sender.selected = !sender.selected; + if (!self.isPlaying) { + if(self.automobiledAbstract.voiceCard.propVals.count) { + NSString *fileName = [[self.automobiledAbstract.voiceCard.name componentsSeparatedByString:@"/"] lastObject]; + fileName = [NSString stringWithFormat:@"%zd_%@", self.automobiledAbstract.uid, fileName]; + NSString * url = [self.automobiledAbstract.voiceCard.propVals secureGroalTowardsIndictowardsrix1:0]; + NSString *filePath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingPathComponent:@"mineSkillCardVoice"]; + NSString *fullPath = [filePath stringByAppendingPathComponent:fileName]; + if ([[NSFileManager defaultManager] fileExistsAtPath:fullPath]) { + self.isPlaying = YES; + sender.selected = YES; + [self pautilizeIntrtowardsemper]; + [self.bookIndicteRegard startAnimating]; + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventPersonalshowTopCardVoiceClick]; + [[YUMICommunicationSolitaireDisporterExecutive partowardsiciptowardsionInstance] prohibitiporterReputtowardsionAboutRoute:fullPath completionBlock:^{ + self.isPlaying = NO; + [self.bookIndicteRegard stopAnimating]; + sender.selected = NO; + [self resumeIntrtowardsemper]; + self.bookIndicteRegard.image = [UIImage imageNamed:@"yumi_center_voice_shengyin_32"]; + [[YUMICommunicationSolitaireDisporterExecutive partowardsiciptowardsionInstance] suspeindManual]; + }]; + } else { + if (![[NSFileManager defaultManager] fileExistsAtPath:filePath]) { + NSFileManager *fileMgr = [[NSFileManager alloc] init]; + [fileMgr createDirectoryAtPath:filePath withIntermediateDirectories:YES attributes:nil error:nil]; + } + [self downchamberVocalmusicAboutAccurtowardseConstitute:fileName musicUrl:url completion:^(BOOL isSuccess, NSString *editAudioPath) { + self.isPlaying = YES; + sender.selected = YES; + [self.bookIndicteRegard startAnimating]; + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventPersonalshowTopCardVoiceClick]; + [self pautilizeIntrtowardsemper]; + [[YUMICommunicationSolitaireDisporterExecutive partowardsiciptowardsionInstance] prohibitiporterReputtowardsionAboutRoute:fullPath completionBlock:^{ + self.isPlaying = NO; + sender.selected = NO; + [self.bookIndicteRegard stopAnimating]; + [self resumeIntrtowardsemper]; + self.bookIndicteRegard.image = [UIImage imageNamed:@"yumi_center_voice_shengyin_32"]; + [[YUMICommunicationSolitaireDisporterExecutive partowardsiciptowardsionInstance] suspeindManual]; + }]; + }]; + } + } + } else { + self.isPlaying = NO; + sender.selected = NO; + [self.bookIndicteRegard stopAnimating]; + self.bookIndicteRegard.image = [UIImage imageNamed:@"yumi_center_voice_shengyin_32"]; + [[YUMICommunicationSolitaireDisporterExecutive partowardsiciptowardsionInstance] suspeindManual]; + [self resumeIntrtowardsemper]; + } +} + +- (void)downchamberVocalmusicAboutAccurtowardseConstitute:(NSString *)fileName musicUrl:(NSString *)musicUrl completion:(void (^) (BOOL isSuccess, NSString *editAudioPath))completion { + AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; + NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:musicUrl]]; + NSURLSessionDownloadTask *download = [manager downloadTaskWithRequest:request progress:^(NSProgress * _Nonnull downloadProgress) { + } destination:^NSURL * _Nonnull(NSURL * _Nonnull targetPath, NSURLResponse * _Nonnull response) { + NSString *filePath = [[[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingPathComponent:@"mineSkillCardVoice"] stringByAppendingPathComponent:fileName]; + return [NSURL fileURLWithPath:filePath]; + } completionHandler:^(NSURLResponse * _Nonnull response, NSURL * _Nullable filePath, NSError * _Nullable error) { + if (!error) { + completion(YES, filePath.path); + } else { + completion(NO, nil); + } + }]; + [download resume]; +} + +- (void)pautilizeIntrtowardsemper{ + if(self.timer){ + dispatch_suspend(self.timer); + self.isRelaxation = YES; + } +} + +- (void)resumeIntrtowardsemper{ + if(self.timer){ + dispatch_resume(self.timer); + self.isRelaxation = NO; + } +} + +- (void)stopTimer{ + if(self.timer){ + dispatch_source_cancel(_timer); + _timer = nil; + } +} + +#pragma mark - Getters And Setters +- (void)setAutomobiledAbstract:(YUMITabKellegSolitaireMatrix *)automobiledAbstract { + _automobiledAbstract = automobiledAbstract; + if (_automobiledAbstract) { + self.intelligenceportraitIndicateRegard.imageUrl = automobiledAbstract.avatar; + NSString * nick = automobiledAbstract.nick; + if (nick.length > 6) { + nick = [nick substringToIndex:6]; + } + [self.monicerBtuton setTitle:nick forState:UIControlStateNormal]; + self.sequenceSequencignation.text = automobiledAbstract.userDesc; + self.genderIndicateRegard.image = automobiledAbstract.gender == GenderGenre_Female ? [UIImage imageNamed:@"yumi_same_female"] : [UIImage imageNamed:@"yumi_same_male"]; + [self unfoildComputtowardsiondownAboutIntrtowardsemporal:11]; + [self.collectionView reloadData]; + if (automobiledAbstract.voiceCard.propVals.count) { + [self addSubview:self.playButton]; + [self addSubview:self.bookIndicteRegard]; + [self.monicerBtuton mas_updateConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.intelligenceportraitIndicateRegard).mas_offset(1); + }]; + [self.playButton mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.mas_equalTo(18); + make.left.mas_equalTo(self.monicerBtuton); + make.top.mas_equalTo(self.sequenceSequencignation.mas_bottom).mas_offset(4); + }]; + + [self.bookIndicteRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(79, 12)); + make.centerY.mas_equalTo(self.playButton); + make.left.mas_equalTo(self.playButton.mas_right).offset(5); + }]; + } + } +} + +- (UIImageView *)encourageIndicateRegard { + if (!_encourageIndicateRegard) { + _encourageIndicateRegard = [[UIImageView alloc] init]; + _encourageIndicateRegard.image = [UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[UIColorFromRGB(0xDAF8FC), UIColorFromRGB(0xF2F6DF)] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(KScreenWidth - 20, 90)]; + _encourageIndicateRegard.layer.cornerRadius = 8; + _encourageIndicateRegard.layer.masksToBounds = YES; + } + return _encourageIndicateRegard; +} + +- (NetIndicateRegard *)intelligenceportraitIndicateRegard { + if (!_intelligenceportraitIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc]init]; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + _intelligenceportraitIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _intelligenceportraitIndicateRegard.layer.masksToBounds = YES; + _intelligenceportraitIndicateRegard.layer.cornerRadius = 66/2; + _intelligenceportraitIndicateRegard.userInteractionEnabled = YES; + UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(dwellBetowardsIntelligenceportrait:)]; + [_intelligenceportraitIndicateRegard addGestureRecognizer:tap]; + } + return _intelligenceportraitIndicateRegard; +} + +- (UIImageView *)genderIndicateRegard { + if (!_genderIndicateRegard) { + _genderIndicateRegard = [[UIImageView alloc] init]; + } + return _genderIndicateRegard; +} + +- (UIButton *)monicerBtuton { + if (!_monicerBtuton) { + _monicerBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_monicerBtuton setTitleColor:[DJDKMIMOMColor mainEssayPrettify] forState:UIControlStateNormal]; + _monicerBtuton.titleLabel.font = [UIFont systemFontOfSize:14 weight:UIFontWeightBold]; + } + return _monicerBtuton; +} + +- (UILabel *)sequenceSequencignation { + if (!_sequenceSequencignation) { + _sequenceSequencignation = [[UILabel alloc] init]; + _sequenceSequencignation.font = [UIFont systemFontOfSize:12]; + _sequenceSequencignation.textColor = [DJDKMIMOMColor essayTertiusPrettify]; + } + return _sequenceSequencignation; +} + +- (UIButton *)importChamberBtuton { + if (!_importChamberBtuton) { + _importChamberBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_importChamberBtuton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; + _importChamberBtuton.titleLabel.font = [UIFont systemFontOfSize:12 weight:UIFontWeightBold]; + [_importChamberBtuton setTitle:YMLocalizedString(@"YUMI_Anchor_Card_View_1") forState:UIControlStateNormal]; + [_importChamberBtuton setBackgroundImage:[UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[UIColorFromRGB(0xFFD436), UIColorFromRGB(0xFFB733)] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)] forState:UIControlStateNormal]; + [_importChamberBtuton addTarget:self action:@selector(importChamberBtutonTicktack:) forControlEvents:UIControlEventTouchUpInside]; + _importChamberBtuton.layer.cornerRadius = 12; + _importChamberBtuton.layer.masksToBounds = YES; + } + return _importChamberBtuton; +} + +- (UIView *)computationBackgroundRegard { + if (!_computationBackgroundRegard) { + _computationBackgroundRegard = [[UIView alloc] init]; + _computationBackgroundRegard.backgroundColor = [UIColor whiteColor]; + UIBezierPath * path = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, 48, 20) byRoundingCorners:UIRectCornerBottomLeft | UIRectCornerTopRight cornerRadii:CGSizeMake(8, 8)]; + CAShapeLayer * layer = [CAShapeLayer layer]; + layer.path = path.CGPath; + _computationBackgroundRegard.layer.masksToBounds = YES; + _computationBackgroundRegard.layer.mask = layer;; + } + return _computationBackgroundRegard; +} + +- (UILabel *)computationSequencignation { + if (!_computationSequencignation) { + _computationSequencignation = [[UILabel alloc] init]; + _computationSequencignation.font = [UIFont systemFontOfSize:10 weight:UIFontWeightMedium]; + _computationSequencignation.textColor = [DJDKMIMOMColor essayTertiusPrettify]; + _computationSequencignation.textAlignment = NSTextAlignmentCenter; + } + return _computationSequencignation; +} + +- (UICollectionView *)collectionView{ + if (!_collectionView) { + UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc] init]; + layout.itemSize = CGSizeMake(30, 15); + layout.minimumLineSpacing = 0; + layout.minimumInteritemSpacing = 4; + layout.scrollDirection = UICollectionViewScrollDirectionHorizontal; + _collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout]; + _collectionView.showsHorizontalScrollIndicator = NO; + _collectionView.dataSource = self; + _collectionView.delegate = self; + _collectionView.backgroundColor = [UIColor clearColor]; + [_collectionView registerClass:[XCombatellegSolitaireCommunicationAssembletionRegardElement class] forCellWithReuseIdentifier:NSStringFromClass([XCombatellegSolitaireCommunicationAssembletionRegardElement class])]; + } + return _collectionView; +} + +- (UIButton *)playButton { + if (!_playButton) { + _playButton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_playButton setImage:[UIImage imageNamed:@"yumi_center_user_gen_skill_card_voice_play"] forState:UIControlStateNormal]; + [_playButton setImage:[UIImage imageNamed:@"yumi_center_user_gen_skill_card_voice_pause"] forState:UIControlStateSelected]; + [_playButton addTarget:self action:@selector(prohibitiportBtutonPerformance:) forControlEvents:UIControlEventTouchUpInside]; + [_playButton setEnlargeEdgeAboutApex:8 right:10 bottom:8 left:10]; + } + return _playButton; +} + +- (UIImageView *)bookIndicteRegard { + if (!_bookIndicteRegard) { + _bookIndicteRegard = [[UIImageView alloc] init]; + _bookIndicteRegard.userInteractionEnabled = YES; + _bookIndicteRegard.image = [UIImage imageNamed:@"yumi_center_voice_shengyin_32"]; + NSMutableArray * array = [NSMutableArray array]; + for (int i = 0 ; i< 40; i++) { + UIImage * image; + if ( i < 10) { + image = [UIImage imageNamed:[NSString stringWithFormat:@"mine_voice_shengyin_0%d", i]]; + } else { + image = [UIImage imageNamed:[NSString stringWithFormat:@"mine_voice_shengyin_%d", i]]; + } + if (image) { + [array addObject:image]; + } + + } + _bookIndicteRegard.animationImages = array; + _bookIndicteRegard.animationDuration = 1.2; + _bookIndicteRegard.animationRepeatCount = HUGE; + _bookIndicteRegard.contentMode = UIViewContentModeScaleAspectFill; + } + return _bookIndicteRegard; +} + +- (UIImageView *)transparencyIndicateRegard { + if (!_transparencyIndicateRegard) { + _transparencyIndicateRegard = [[UIImageView alloc] init]; + CAGradientLayer *gradientLayer = [CAGradientLayer layer]; + gradientLayer.colors = @[(__bridge id)UIColorRGBAlpha(0xffffff, 0).CGColor, (__bridge id)UIColorRGBAlpha(0xEFF6E3, 1).CGColor]; + gradientLayer.locations = @[@0, @1.0]; + gradientLayer.startPoint = CGPointMake(0, 0); + gradientLayer.endPoint = CGPointMake(1.0, 0); + gradientLayer.frame = CGRectMake(0, 0, 44, 15); + [_transparencyIndicateRegard.layer addSublayer:gradientLayer]; + } + return _transparencyIndicateRegard; +} + +@end diff --git a/YuMi/Modules/YMTabbar/View/Cell/XCombatellegSolitaireCommunicationAssembletionRegardElement.h b/YuMi/Modules/YMTabbar/View/Cell/XCombatellegSolitaireCommunicationAssembletionRegardElement.h new file mode 100644 index 00000000..296cf316 --- /dev/null +++ b/YuMi/Modules/YMTabbar/View/Cell/XCombatellegSolitaireCommunicationAssembletionRegardElement.h @@ -0,0 +1,19 @@ +// +// YMAnchorCardSkillCollectionViewCell.h +// YUMI +// +// Created by YUMI on 2022/8/2. +// + +#import +#import "NetIndicateRegard.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface XCombatellegSolitaireCommunicationAssembletionRegardElement : UICollectionViewCell + +@property (nonatomic, strong) NetIndicateRegard *imageView; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMTabbar/View/Cell/XCombatellegSolitaireCommunicationAssembletionRegardElement.m b/YuMi/Modules/YMTabbar/View/Cell/XCombatellegSolitaireCommunicationAssembletionRegardElement.m new file mode 100644 index 00000000..f0a52057 --- /dev/null +++ b/YuMi/Modules/YMTabbar/View/Cell/XCombatellegSolitaireCommunicationAssembletionRegardElement.m @@ -0,0 +1,42 @@ +// +// YMAnchorCardSkillCollectionViewCell.m +// YUMI +// +// Created by YUMI on 2022/8/2. +// + +#import "XCombatellegSolitaireCommunicationAssembletionRegardElement.h" +#import + +@implementation XCombatellegSolitaireCommunicationAssembletionRegardElement + +- (instancetype)initWithFrame:(CGRect)frame { + if (self = [super initWithFrame:frame]) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self.contentView addSubview:self.imageView]; +} + +- (void)initChildLyRestrictions { + [self.imageView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.mas_equalTo(0); + make.top.bottom.mas_equalTo(self.contentView); + }]; +} + +#pragma mark - Getters And Setters +- (NetIndicateRegard *)imageView { + if (!_imageView) { + _imageView = [[NetIndicateRegard alloc] init]; + _imageView.contentMode = UIViewContentModeScaleAspectFit; + } + return _imageView; +} + +@end diff --git a/YuMi/Modules/YMTabbar/View/Cell/YUMIStrangeConsumerReindictAssembletionRegardElement.h b/YuMi/Modules/YMTabbar/View/Cell/YUMIStrangeConsumerReindictAssembletionRegardElement.h new file mode 100644 index 00000000..374ec511 --- /dev/null +++ b/YuMi/Modules/YMTabbar/View/Cell/YUMIStrangeConsumerReindictAssembletionRegardElement.h @@ -0,0 +1,19 @@ +// +// YMNewUserRechargeCollectionViewCell.h +// YUMI +// +// Created by YUMI on 2022/7/29. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@class ThresholdReindictRewardMatrix; +@interface YUMIStrangeConsumerReindictAssembletionRegardElement : UICollectionViewCell + +@property (nonatomic,strong) ThresholdReindictRewardMatrix *compensationAbstract; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMTabbar/View/Cell/YUMIStrangeConsumerReindictAssembletionRegardElement.m b/YuMi/Modules/YMTabbar/View/Cell/YUMIStrangeConsumerReindictAssembletionRegardElement.m new file mode 100644 index 00000000..1c3657d9 --- /dev/null +++ b/YuMi/Modules/YMTabbar/View/Cell/YUMIStrangeConsumerReindictAssembletionRegardElement.m @@ -0,0 +1,107 @@ +// +// YMNewUserRechargeCollectionViewCell.m +// YUMI +// +// Created by YUMI on 2022/7/29. +// + +#import "YUMIStrangeConsumerReindictAssembletionRegardElement.h" +#import +#import "ThemeColor+FirstRecharge.h" +#import "NetIndicateRegard.h" +#import "UIImage+Utils.h" +#import "ThresholdReindictRewardMatrix.h" + +@interface YUMIStrangeConsumerReindictAssembletionRegardElement () +@property (nonatomic, strong) NetIndicateRegard *figureIndicateRegard; +@property (nonatomic, strong) UILabel *titleLabel; +@property (nonatomic, strong) UIButton *intratemporalBtuton; +@end + + +@implementation YUMIStrangeConsumerReindictAssembletionRegardElement + +- (instancetype)initWithFrame:(CGRect)frame{ + self = [super initWithFrame:frame]; + if (self) { + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews{ + [self addSubview:self.figureIndicateRegard]; + [self addSubview:self.titleLabel]; + [self addSubview:self.intratemporalBtuton]; +} + +- (void)initChildLyRestrictions{ + [self.figureIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(0); + make.centerX.mas_equalTo(self.mas_centerX); + make.width.height.mas_equalTo(60); + }]; + + [self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerX.mas_equalTo(self); + make.height.mas_equalTo(17); + make.top.mas_equalTo(self.figureIndicateRegard.mas_bottom).mas_offset(2); + make.left.mas_equalTo(0); + }]; + + [self.intratemporalBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.mas_equalTo(self.titleLabel.mas_bottom); + make.height.mas_equalTo(14); + make.centerX.mas_equalTo(self); + make.left.mas_equalTo(0); + }]; + +} + +#pragma mark - setupData +- (void)setCompensationAbstract:(ThresholdReindictRewardMatrix *)compensationAbstract { + _compensationAbstract = compensationAbstract; + self.intratemporalBtuton.hidden = !(_compensationAbstract.showTime > 0); + [self.intratemporalBtuton setTitle:[NSString stringWithFormat:@"(%@)", _compensationAbstract.showTime] forState:UIControlStateNormal]; + self.titleLabel.text = _compensationAbstract.showText; + self.figureIndicateRegard.imageUrl = _compensationAbstract.showPir; +} + + +- (UIImageView *)figureIndicateRegard { + if (!_figureIndicateRegard) { + NetIndicateDisposition * config = [[NetIndicateDisposition alloc] init]; + config.deparatmentMaintainrietary = [UIIndicateConstant deficiencyIntelligenceportraitDepapossessor]; + config.imageType = ImageGenreUserIcon; + _figureIndicateRegard = [[NetIndicateRegard alloc] initWithConfig:config]; + _figureIndicateRegard.backgroundColor = UIColorRGBAlpha(0xFF9CC3, 0.1); + _figureIndicateRegard.layer.cornerRadius = 8; + _figureIndicateRegard.layer.masksToBounds = YES; + _figureIndicateRegard.contentMode = UIViewContentModeScaleAspectFit; + } + return _figureIndicateRegard; +} + +- (UILabel *)titleLabel{ + if (!_titleLabel) { + _titleLabel = [[UILabel alloc] init]; + _titleLabel.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _titleLabel.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium]; + _titleLabel.textAlignment = NSTextAlignmentCenter; + } + return _titleLabel; +} + +- (UIButton *)intratemporalBtuton{ + if (!_intratemporalBtuton) { + _intratemporalBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_intratemporalBtuton setTitleColor:[DJDKMIMOMColor essayTertiusPrettify] forState:UIControlStateNormal]; + _intratemporalBtuton.titleLabel.font = [UIFont systemFontOfSize:10 weight:UIFontWeightMedium]; + _intratemporalBtuton.hidden = YES; + } + return _intratemporalBtuton; +} + +@end diff --git a/YuMi/Modules/YMTabbar/View/TabbarRegardGovernancer.h b/YuMi/Modules/YMTabbar/View/TabbarRegardGovernancer.h new file mode 100644 index 00000000..4cd26c4b --- /dev/null +++ b/YuMi/Modules/YMTabbar/View/TabbarRegardGovernancer.h @@ -0,0 +1,11 @@ +// +// ViewController.h +// YUMI +// +// Created by admin on 2023/3/9. +// + +@interface TabbarRegardGovernancer : UITabBarController + +@end + diff --git a/YuMi/Modules/YMTabbar/View/TabbarRegardGovernancer.m b/YuMi/Modules/YMTabbar/View/TabbarRegardGovernancer.m new file mode 100644 index 00000000..70885aab --- /dev/null +++ b/YuMi/Modules/YMTabbar/View/TabbarRegardGovernancer.m @@ -0,0 +1,850 @@ +// +// ViewController.m +// YUMI +// +// Created by admin on 2023/3/9. +// +#import +#import +#import +#import +#import +#import +#import +#import "YUMIMacroUitls.h" +#import "DJDKMIMOMColor.h" +#import "UIImage+Utils.h" +#import "NSObject+MJExtension.h" +#import "XNDJTBWGLoadingTool.h" +#import "AccountAbstractStorage.h" +#import "MKJPopup.h" +#import "YUMIConstant.h" +#import "YUMIChamberMiniExecutive.h" +#import "ClientDisposition.h" +#import "RealtimackExecutive.h" +#import "XCCurrentVCStackExecutive.h" +#import "Api+Home.h" +#import "YUMIConstant.h" +#import "StatsticsticsServingFacilitater.h" +#import "Api+Monents.h" +#import "YUMIAdIndicateTool.h" +#import "YYUtility.h" +#import "YUMIWeakIntratemporalr.h" +#import "PLIntratemporalUtil.h" +#import "AccountMatrix.h" +#import "ChamberAbstractMatrix.h" +#import "AttachmentMatrix.h" +#import "YUMIManeVacationerUnReadMatrix.h" +#import "CallforConsumerAbstractMatrix.h" +#import "StrangeConsumerBewelcometoMatrix.h" +#import "DiscoveryStrangeBewelcometoCommunicationMatrix.h" +#import "YUMITabKellegSolitaireMatrix.h" +#import "ThresholdReindictMatrix.h" +#import "SeparationsUnReadMatrix.h" +#import "YUMIAchieveDeficitSheatheMatrix.h" +#import "YUMIChamberPresentBroadCastMatrix.h" +#import "YUMIVersionRefurbishMatrix.h" +#import "TabbarRegardGovernancer.h" +#import "YUMIBlankRegardGovernancer.h" +#import "YUMISurmountRegardGovernancer.h" +#import "BaseNevigationGovernancer.h" +#import "SurmountDilemmaMobileRegardGovernancer.h" +#import "SurmountFullAbstractRegardGovernancer.h" +#import "YUMIManeRegardGovernancer.h" +#import "InterlocutionStatementRegardGovernancer.h" +#import "YUMIStrangeResidenceRegardGovernancer.h" +#import "YUMIMiniChamberRegard.h" +#import "YUMIChamberRegardGovernancer.h" +#import "YUMIInterlocutionDiscoveryStrangePrecautiousRegard.h" +#import "XCombatellegSolitaireRegard.h" +#import "YUMImissionCompleteTipRegard.h" +#import "YUMITissueRegardGovernancer.h" +#import "YUMIManeConsumerAbstractRegardGovernancer.h" +#import "YUMIManeSimpleConsumerAbstractRegardGovernancer.h" +#import "YUMISeparationsEncourageRegardGovernancer.h" +#import "YUMISeparationsRegardGovernancer.h" +#import "YUMIAchieveDeficitSheatheRegard.h" +#import "YUMIChamberYearImportpriseRegard.h" +#import "YUMIAscensionRegard.h" +#import "YUMITabObstacle.h" +#import "YUMIMomentStatementRegardGovernancer.h" +#import "YUMIResidenceSloganRegardGovernancer.h" +#import "YUMISimpleManeRegardGovernancer.h" +#import "MainExternalizer.h" +#import "MainCeremony.h" +#import "ChamberHostRepresendtation.h" + +UIKIT_EXTERN NSString * kUserCompleteInfoFinishKey; +NSString * const kUserFirstLoginKey = @"kUserFirstLoginKey"; +NSString * const kHadLaunchApp = @"kHadLaunchApp"; +NSString * const kLastShowAnchorCardTime = @"kLastShowAnchorCardTime"; +NSString * const kNetworkReachabilityKey = @"kNetworkReachabilityKey"; +UIKIT_EXTERN NSString * kNewUserRechargeKey; +UIKIT_EXTERN NSString *kTabShowAnchorCardKey; + +@interface TabbarRegardGovernancer () +{ + NSTimer * timer; +} + +@property (nonatomic, strong) MainExternalizer *presimport; +@property (nonatomic,strong) YUMIMiniChamberRegard *chamberManeRegard; +@property (nonatomic,copy) NSString *centiretyforCryptogram; +@property (nonatomic, assign) BOOL demandsExhibitStrangeConsumerReindict; +@property (nonatomic, assign) BOOL demandsExhibitKellegSolitaire; +@property (nonatomic, assign) BOOL delayExhibitKellegSolitaire; +@property (nonatomic, strong) XCombatellegSolitaireRegard *kellegSolitaireRegard; +@property (nonatomic, strong) YUMImissionCompleteTipRegard *taskPromptRegard; +@property (nonatomic,weak) iddelegate; +@property (nonatomic,strong) NSMutableArray *presentPingencourageFormation; +@property (nonatomic, assign) BOOL parentMode; +@property (nonatomic,assign) BOOL isThresholdConceivable; +@property (nonatomic,assign) BOOL isReload; +@end + +@implementation TabbarRegardGovernancer + +- (void)viewDidLoad { + [super viewDidLoad]; + YUMITabObstacle *tabBar = [[YUMITabObstacle alloc] init]; + [self setValue:tabBar forKey:@"tabBar"]; + + [self prohibitipositionTheme]; + [self initTarbss:NO]; + [[ClientDisposition partowardsiciptowardsionDisposition] clientInit]; + [[NIMSDK sharedSDK].loginManager addDelegate:self]; + [[NIMSDK sharedSDK].chatManager addDelegate:self]; + [[NIMSDK sharedSDK].systemNotificationManager addDelegate:self]; + [[NIMSDK sharedSDK].broadcastManager addDelegate:self]; + [self.presimport juliandDirectoryCentiretyEncourageApi]; + [self networkReachability]; + [self.view addSubview:self.chamberManeRegard]; + [[NSNotificationCenter defaultCenter] addObserverForName:kRoomMiniNotificationKey object:nil queue:nil usingBlock:^(NSNotification * _Nonnull note) { + [self prohibitipositionChamberRoadliceNRegard:note.userInfo]; + }]; + + [[NSNotificationCenter defaultCenter] addObserverForName:kUserCompleteInfoFinishKey object:nil queue:nil usingBlock:^(NSNotification * _Nonnull note) { + [self accomplishConsumerAbstractAccomplish:note.object]; + }]; + + [[NSNotificationCenter defaultCenter] addObserverForName:@"reloadnewtab" object:nil queue:nil usingBlock:^(NSNotification * _Nonnull note) { + if (self.isReload) { + [self initTarbss:YES]; + self.isReload = YES; + } + }]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(EvidenceStrangeConsumerReindict) name:kNewUserRechargeKey object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(EvidenceKellegSolitaireDigital:) name:kTabShowAnchorCardKey object:nil]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(teenagerPositionDiversifictowardsion:) name:kTeenagerStatusChange object:nil]; + +} + +- (void)viewWillAppear:(BOOL)animated { + [super viewWillAppear:animated]; + [self.navigationController setNavigationBarHidden:YES animated:YES]; + [self.presimport autoLogin]; + if ([YUMIChamberMiniExecutive shareManager].acquireChamberAbstract == nil) { + [self.chamberManeRegard hiddenChamberRoadliceRegard]; + } +} + +- (void)viewWillDisappear:(BOOL)animated { + [super viewWillDisappear:animated]; + self.delayExhibitKellegSolitaire = NO; + [self.kellegSolitaireRegard removeFromSuperview]; + self.kellegSolitaireRegard = nil; +} + +- (MainExternalizer *)presimport { + if (_presimport == nil) { + _presimport = [[MainExternalizer alloc] init]; + [_presimport towardsttowardschRegard:self]; + } + return _presimport; +} + + +- (void)autoSurmountAccomplishment { + [self.presimport surmountNEMC]; + [self.presimport getUserInfo]; + + [self.presimport examineSplconcludeid]; + + if ([ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + [self.presimport acquireReleaseRefurbish]; + + if (self.centiretyforCryptogram && self.centiretyforCryptogram.length > 0) { + + [self.presimport examineCentiretyforConsumerAbstract:self.centiretyforCryptogram]; + } + } + + + + + + YUMIAdIndicateTool.partowardsiciptowardsionIndictowardseUtensil.isImSurmount = YES; + + if ([ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + if ([self hadLaunchAplictowardsion] && [self canExhibitKellegSolitaire]) { + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + if (self.view.window && self.isViewLoaded) { + [self.presimport acquireKellegSolitaireAbstract]; + } + }); + } + if (self.demandsExhibitKellegSolitaire && !self.delayExhibitKellegSolitaire && !self.parentMode) { + [self.presimport acquireKellegSolitaireAbstract]; + [[NSUserDefaults standardUserDefaults] setBool:YES forKey:kHadLaunchApp]; + [[NSUserDefaults standardUserDefaults] synchronize]; + } + } +} + +- (void)acquireConsumerAbstractAccomplishment:(ConsumerAbstractMatrix *)userInfo { + if (!userInfo.isBindPhone && [ClientDisposition partowardsiciptowardsionDisposition].iosMobileBind) { + SurmountDilemmaMobileRegardGovernancer * bindPhoneVC = [[SurmountDilemmaMobileRegardGovernancer alloc] init]; + BaseNevigationGovernancer * nav = [[BaseNevigationGovernancer alloc] initWithRootViewController:bindPhoneVC]; + nav.modalPresentationStyle = UIModalPresentationFullScreen; + [self.navigationController presentViewController:nav animated:YES completion:nil]; + return; + } + if (userInfo.nick == nil || userInfo.avatar == nil) { + [self accomplishConsumerAbstract]; + return; + } + [self initTarbss:YES]; + if ([ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + if (self.centiretyforCryptogram.length <= 0) { + [self initFlexibleImportChamber]; + } + if (self.centiretyforCryptogram) { + self.centiretyforCryptogram = nil; + } + [self separtowardsionsUnLireComputtowardsion]; + } + self.parentMode = userInfo.parentMode; + for (BaseRegardGovernancer *vc in self.viewControllers) { + vc.parentMode = self.parentMode; + } +} + +- (void)examineCentiretyforConsumerAbstractAccomplishment:(CallforConsumerAbstractMatrix *)inviteInfo { + if (inviteInfo && inviteInfo.isInRoom && !self.parentMode) { + [YUMIChamberRegardGovernancer unfoildChamber:inviteInfo.roomUid fromNick:inviteInfo.inviteNick fromType:inviteInfo.fromType fromUid:inviteInfo.inviteUid viewController:self]; + } else { + [self.presimport acquireShortDeficitucedEncourageChamber]; + } +} + +- (void)acquireShortDeficitucedEncourageChamberSuccces:(NSString *)roomUid { + if (self.parentMode) { + return; + } + if (roomUid.length > 0) { + [YUMIChamberRegardGovernancer unfoildChamber:roomUid viewController:self]; + } +} + +#pragma mark - app 启动调用此接口 主要功能: 给主播分流 +- (void)clientInititowardseAplictowardsion { +} +#pragma mark - 网络状态监听 +- (void)networkReachability{ + [[AFNetworkReachabilityManager sharedManager] startMonitoring]; + [[AFNetworkReachabilityManager sharedManager] setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) { + switch (status) { + case AFNetworkReachabilityStatusUnknown: + self.isThresholdConceivable = YES; + break; + case AFNetworkReachabilityStatusNotReachable: + self.isThresholdConceivable = YES; + break; + case AFNetworkReachabilityStatusReachableViaWWAN: + case AFNetworkReachabilityStatusReachableViaWiFi: + { + if (self.isThresholdConceivable) { + [[NSNotificationCenter defaultCenter] postNotificationName:kNetworkReachabilityKey object:nil userInfo:nil]; + [self.presimport autoLogin]; + [[ClientDisposition partowardsiciptowardsionDisposition] clientInit]; + } + self.isThresholdConceivable = YES; + } + break; + default: + break; + } + }]; +} + +#pragma mark - BaseMvpCeremony +- (void)tokenInvalid { + YUMISurmountRegardGovernancer *lvc = [[YUMISurmountRegardGovernancer alloc] init]; + BaseNevigationGovernancer * nav = [[BaseNevigationGovernancer alloc] initWithRootViewController:lvc]; + nav.modalPresentationStyle = UIModalPresentationFullScreen; + [self.navigationController presentViewController:nav animated:YES completion:nil]; + YUMIAdIndicateTool.partowardsiciptowardsionIndictowardseUtensil.isImSurmount = NO; +} + +- (void)accomplishConsumerAbstract { + SurmountFullAbstractRegardGovernancer * bindPhoneVC = [[SurmountFullAbstractRegardGovernancer alloc] init]; + BaseNevigationGovernancer * nav = [[BaseNevigationGovernancer alloc] initWithRootViewController:bindPhoneVC]; + nav.modalPresentationStyle = UIModalPresentationFullScreen; + [self.navigationController presentViewController:nav animated:YES completion:nil]; +} + +- (void)acquireKellegSolitaireAbstractAccomplishment:(YUMITabKellegSolitaireMatrix *)automobiledAbstract { + if (self.parentMode) { + return; + } + if (!self.kellegSolitaireRegard.superview && automobiledAbstract && self.isViewLoaded && self.view.window) { + self.kellegSolitaireRegard.frame = CGRectMake(0, -90-kStatusBarHeight, KScreenWidth, 90); + [UIView animateWithDuration:0.5 animations:^{ + self.kellegSolitaireRegard.frame = CGRectMake(0, kStatusBarHeight, KScreenWidth, 90); + } completion:nil]; + AudioServicesPlaySystemSound(kSystemSoundID_Vibrate); + long time = (long)([[NSDate date] timeIntervalSince1970]*1000); + [[NSUserDefaults standardUserDefaults] setObject:@(time) forKey:kLastShowAnchorCardTime]; + [[NSUserDefaults standardUserDefaults] synchronize]; + self.kellegSolitaireRegard.automobiledAbstract = automobiledAbstract; + [self.view addSubview:self.kellegSolitaireRegard]; + UISwipeGestureRecognizer *recognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(shankKellegSolitaireSwipeByvirtueof:)]; + [recognizer setDirection:(UISwipeGestureRecognizerDirectionUp)]; + [self.kellegSolitaireRegard addGestureRecognizer:recognizer]; + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventPersonalshowTopCardShow]; + } +} + +- (void)acquireReleaseRefurbish:(YUMIVersionRefurbishMatrix *)versionMatrix { + YUMIAscensionRegard *view = [[YUMIAscensionRegard alloc] init]; + view.versionMatrix = versionMatrix; + MKJPopupServing * service = [[MKJPopupServing alloc] init]; + service.contentView = view; + service.shouldDismissOnBackgroundTouch = NO; + [MKJPopup popupAboutDisposition:service]; +} + +#pragma mark - NIMLoginManagerDelegate +- (void)onAutoLoginFailed:(NSError *)error { + + if (error.code == 417) { + @weakify(self); + AccountMatrix* accountModel = [AccountAbstractStorage instance].acquireUniversalSequenceriptionAbstract; + [[NIMSDK sharedSDK].loginManager login:accountModel.uid token:accountModel.netEaseToken completion:^(NSError * _Nullable error) { + if (error) { + @strongify(self); + [self.presimport logout]; + } + }]; + return; + } + [self.presimport logout]; +} + +- (void)onKickout:(NIMLoginKickoutResult *)result { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:YMLocalizedString(@"Tabbar_View_Controller_0")]; + UIViewController *rootViewController = [UIApplication sharedApplication].keyWindow.rootViewController; + if ([rootViewController presentedViewController]) { + [[rootViewController presentedViewController] dismissViewControllerAnimated:YES completion:^{ + if ([[XCCurrentVCStackExecutive shareManager] getCurrentVC].navigationController.viewControllers.count > 1) { + [[[XCCurrentVCStackExecutive shareManager] getCurrentVC].navigationController popToRootViewControllerAnimated:YES]; + } + if ([[UIApplication sharedApplication].delegate.window.rootViewController isKindOfClass:[UITabBarController class]]) { + UITabBarController *tabVC = (UITabBarController *)[UIApplication sharedApplication].delegate.window.rootViewController; + if (tabVC.selectedViewController.navigationController) { + [tabVC.selectedViewController.navigationController popToRootViewControllerAnimated:YES]; + } + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + [tabVC setSelectedIndex:0]; + }); + } + }]; + }else { + if ([[XCCurrentVCStackExecutive shareManager] getCurrentVC].navigationController.viewControllers.count > 1) { + [[[XCCurrentVCStackExecutive shareManager] getCurrentVC].navigationController popToRootViewControllerAnimated:YES]; + } + if ([[UIApplication sharedApplication].delegate.window.rootViewController isKindOfClass:[UITabBarController class]]) { + UITabBarController *tabVC = (UITabBarController *)[UIApplication sharedApplication].delegate.window.rootViewController; + if (tabVC.selectedViewController) { + if ([tabVC.selectedViewController isKindOfClass:[UINavigationController class]]) { + [tabVC.selectedViewController popToRootViewControllerAnimated:YES]; + } else { + [tabVC.selectedViewController.navigationController popToRootViewControllerAnimated:YES]; + } + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + [tabVC setSelectedIndex:0]; + }); + } + } + } + + if ([YUMIChamberMiniExecutive shareManager].acquireChamberAbstract) { + [[RealtimackExecutive instance] exitRoom]; + [[NIMSDK sharedSDK].chatroomManager exitChatroom:[NSString stringWithFormat:@"%ld", [YUMIChamberMiniExecutive shareManager].acquireChamberAbstract.roomId] completion:nil]; + [self.chamberManeRegard hiddenChamberRoadliceRegard]; + } + [self.presimport logout]; +} + +#pragma mark - NIMChatManagerDelegate + +- (void)onRecvMessages:(NSArray *)messages { + if (self.parentMode || ![ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + return; + } + for (NIMMessage * message in messages) { + if (message.session.sessionType == NIMSessionTypeP2P) { + if(message.messageType == NIMMessageTypeCustom) { + NIMCustomObject *obj = (NIMCustomObject *)message.messageObject; + if (obj.attachment != nil && [obj.attachment isKindOfClass:[AttachmentMatrix class]]) { + AttachmentMatrix * attachment = obj.attachment; + if (attachment.first == IndividualityCommunicationGenre_FindNew && attachment.second == Custom_Message_Find_New_Greet_New_User) { + DiscoveryStrangeBewelcometoCommunicationMatrix * greetInfo = [DiscoveryStrangeBewelcometoCommunicationMatrix mtowardsrixAboutImpactbasket:attachment.data]; + if (greetInfo.uid.integerValue != [AccountAbstractStorage instance].acquireCid.integerValue) { + [MKJPopup dismiss]; + YUMIInterlocutionDiscoveryStrangePrecautiousRegard * alertView = [[YUMIInterlocutionDiscoveryStrangePrecautiousRegard alloc] init]; + alertView.userInfo = greetInfo; + MKJPopupServing *service = [[MKJPopupServing alloc] init]; + service.contentView = alertView; + service.shouldDismissOnBackgroundTouch = NO; + service.style = MKJPopupStyleAlert; + [MKJPopup popupAboutDisposition:service]; + } + } + } + } + } + } +} + + +- (void)onReceiveBroadcastMessage:(NIMBroadcastMessage *)broadcastMessage { + if (![ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + return; + } + if (broadcastMessage.content) { + NSDictionary *msgDictionary = [broadcastMessage.content toJSONGroal]; + AttachmentMatrix *attachment = [AttachmentMatrix mtowardsrixAboutJSON:msgDictionary[@"body"]]; + if (attachment.first == IndividualityCommunicationGenre_RedPacket && attachment.second == Custom_Message_Sub_AllDiamandRedPacket) { + YUMIAchieveDeficitSheatheMatrix *data = [YUMIAchieveDeficitSheatheMatrix mtowardsrixAboutImpactbasket:attachment.data]; + + __block BOOL isInRoom; + [[XCCurrentVCStackExecutive shareManager].getCurrentVC.navigationController.viewControllers enumerateObjectsUsingBlock:^(__kindof UIViewController * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if ([obj isKindOfClass:[YUMIChamberRegardGovernancer class]]) { + YUMIChamberRegardGovernancer * chamberVewC = obj; + ChamberAbstractMatrix *roomInfo = [chamberVewC acquireChamberAbstract]; + YUMIAchieveDeficitSheatheRegard *view = [[YUMIAchieveDeficitSheatheRegard alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth, KScreenHeight)]; + if (roomInfo.uid == data.roomUid.integerValue) { + view.inEntiretySheatheChamber = YES; + } else { + view.inEntiretySheatheChamber = NO; + } + YUMIAchieveDeficitSheatheMatrix *data = [YUMIAchieveDeficitSheatheMatrix mtowardsrixAboutJSON:attachment.data]; + view.deficitSheatheMatrix = data; + [chamberVewC.view addSubview:view]; + [chamberVewC.view bringSubviewToFront:view]; + *stop = YES; + isInRoom = YES; + } + }]; + if (!isInRoom) { + UIViewController *currentVc = [[XCCurrentVCStackExecutive shareManager] getCurrentVC]; + YUMIAchieveDeficitSheatheRegard *view = [[YUMIAchieveDeficitSheatheRegard alloc] initWithFrame:CGRectMake(0, 0, KScreenWidth, KScreenHeight)]; + view.inEntiretySheatheChamber = NO; + YUMIAchieveDeficitSheatheMatrix *data = [YUMIAchieveDeficitSheatheMatrix mtowardsrixAboutJSON:attachment.data]; + view.deficitSheatheMatrix = data; + [currentVc.view addSubview:view]; + [currentVc.view bringSubviewToFront:view]; + } + } else if (attachment.first == IndividualityCommunicationGenre_Gift && attachment.second == Custom_Message_Sub_Gift_ChannelNotify){ + [self achieveBroadcastPresent:attachment]; + }else if(attachment.first == IndividualityCommunicationGenre_Version_Update && attachment.second == Custom_Message_Version_Update_Value){ + NSString *osValue = attachment.data[@"updateOs"]; + if([osValue isEqualToString:@"ios"] && [AccountAbstractStorage instance].acquireCid.length > 0){ + YUMIVersionRefurbishMatrix *updateModel = [YUMIVersionRefurbishMatrix mtowardsrixAboutImpactbasket:attachment.data]; + [self acquireReleaseRefurbish:updateModel]; + } + } + } +} + + +- (void)onRecvRevokeMessageNotification:(NIMRevokeMessageNotification *)notification { + NIMMessage * message = notification.message; + if (message) { + NIMMessage * revokeMessage = [[NIMMessage alloc] init]; + [revokeMessage setValue:message.session forKey:@"session"]; + [revokeMessage setValue:@(NIMMessageTypeTip) forKey:@"messageType"]; + revokeMessage.timestamp = [PLIntratemporalUtil acquireNowIntrtowardsemporalIntrtowardsemporalstampMilliinstant].longLongValue; + revokeMessage.text = YMLocalizedString(@"Tabbar_View_Controller_1"); + [[NIMSDK sharedSDK].conversationManager saveMessage:revokeMessage forSession:message.session completion:nil]; + } +} + +- (void)prohibitipositionTheme { + self.view.backgroundColor = [DJDKMIMOMColor tabbarRegardPrettify]; + if (@available(iOS 10.0, *)) { + [[UITabBar appearance] setUnselectedItemTintColor:[DJDKMIMOMColor tabbarOrdinaryPrettify]]; + } +} + +- (void)initTarbss:(BOOL)logined { + self.viewControllers = nil; + NSArray *normalImageNames = @[@"tab_gameHome_normal",@"tab_monents_normal",@"tab_message_normal", @"tab_mine_normal"]; + NSArray *selectImageNames = @[@"tab_gameHome_selected",@"tab_monents_select",@"tab_message_selected", @"tab_mine_selected"]; + NSArray *tabLabel = @[@"首页",@"动态",@"消息", YMLocalizedString(@"Tabbar_View_Controller_5")]; + + UIViewController *game; + UIViewController *msg; + UIViewController *me; + UIViewController * home; + UIViewController * reminiscence; + if (logined) { + msg = [[InterlocutionStatementRegardGovernancer alloc] init]; + + if ([ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + home = [[YUMIStrangeResidenceRegardGovernancer alloc] init]; + reminiscence = [[YUMISeparationsRegardGovernancer alloc] init]; + me = [[YUMIManeRegardGovernancer alloc] init]; + }else{ + home = [[YUMIResidenceSloganRegardGovernancer alloc] init]; + reminiscence = [[YUMIMomentStatementRegardGovernancer alloc] init]; + me = [[YUMISimpleManeRegardGovernancer alloc] init]; + } + } else { + game = [[YUMIBlankRegardGovernancer alloc]init]; + msg = [[InterlocutionStatementRegardGovernancer alloc]init]; + me = [[YUMIBlankRegardGovernancer alloc]init]; + home = [[YUMIBlankRegardGovernancer alloc] init]; + reminiscence = [[YUMIBlankRegardGovernancer alloc] init]; + } + [self produceTarbsObstacleProvision:home title:tabLabel[0] image:normalImageNames[0] selectedImage:selectImageNames[0]]; + [self produceTarbsObstacleProvision:reminiscence title:tabLabel[1] image:normalImageNames[1] selectedImage:selectImageNames[1]]; + [self produceTarbsObstacleProvision:msg title:tabLabel[2] image:normalImageNames[2] selectedImage:selectImageNames[2]]; + [self produceTarbsObstacleProvision:me title:tabLabel[3] image:normalImageNames[3] selectedImage:selectImageNames[3]]; + self.viewControllers = @[home,reminiscence,msg,me]; + self.selectedIndex = 0; +} + +- (BaseNevigationGovernancer *)produceTarbsObstacleProvision:(UIViewController *)itemVc title:(NSString *)title image:(NSString *)image selectedImage:(NSString *)selectedImage{ + itemVc.title = title; + itemVc.tabBarItem.image = [[UIImage imageNamed:image] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; + itemVc.tabBarItem.selectedImage = [[UIImage imageNamed:selectedImage] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; + BaseNevigationGovernancer *nav = [[BaseNevigationGovernancer alloc] initWithRootViewController:itemVc]; + return nav; +} + +- (void)EvidenceAccomplishmentToast:(NSString *)msg { + [XNDJTBWGLoadingTool EvidenceAccomplishmentAboutCommunictowardsion:msg]; +} + +- (void)EvidenceMistakeToast:(NSString *)msg { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:msg]; +} + +- (void)EvidenceChambering { + [XNDJTBWGLoadingTool EvidenceChambering]; +} + +- (void)brakeHUD { + [XNDJTBWGLoadingTool brakeHUD]; +} + +#pragma mark - 动态 +- (void)separtowardsionsUnLireComputtowardsion { + [Api separtowardsionsUnLireComputtowardsion:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if (code == 200) { + SeparationsUnReadMatrix * model = [SeparationsUnReadMatrix mtowardsrixAboutImpactbasket:data.data]; + NSString *badge = model.total > 0 ? @(model.total).stringValue : nil; + if (model.total > 99) { + badge = @"99+"; + } + NSUInteger index = 1; + UITabBarItem *item = self.tabBar.items.count > index ? self.tabBar.items[index] : nil; + [item setBadgeValue:badge]; + } + } uid:[AccountAbstractStorage instance].acquireCid]; +} + +#pragma mark - 房间最小化 +- (void)prohibitipositionChamberRoadliceNRegard:(NSDictionary *)dic { + ConsumerAbstractMatrix * userInfo = [ConsumerAbstractMatrix mtowardsrixAboutImpactbasket:dic[@"userInfo"]]; + ChamberAbstractMatrix * roomInfo = [ChamberAbstractMatrix mtowardsrixAboutImpactbasket:dic[@"roomInfo"]]; + NSMutableDictionary * microQueue = dic[@"microQueue"]; + [self.chamberManeRegard prohibitipositionChamberRoadliceRegard:roomInfo userInfo:userInfo micQueue:microQueue]; +} + +#pragma mark - 快捷进房 +- (void)initFlexibleImportChamber { + NSString * key = [NSString stringWithFormat:@"%@_%@", kUserFirstLoginKey, [AccountAbstractStorage instance].acquireCid]; + BOOL isNotFirstLogin = [[NSUserDefaults standardUserDefaults] boolForKey:key]; + if (!isNotFirstLogin) { + + } +} + +- (void)accomplishConsumerAbstractAccomplish:(NSString *)centiretyforCryptogram { + self.centiretyforCryptogram = centiretyforCryptogram; +} +#pragma mark -NIMSystemNotificationManagerDelegate +- (void)onReceiveCustomSystemNotification:(NIMCustomSystemNotification *)notification { + if (self.parentMode) { + return; + } + if (notification.receiverType == NIMSessionTypeP2P) { + if (notification.content != nil) { + NSData *jsonData = [notification.content dataUsingEncoding:NSUTF8StringEncoding]; + NSError *err; + NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:&err]; + if(err) { + NSLog(@"json解析失败:%@",err); + return; + } + if ([dic[@"first"] integerValue] == IndividualityCommunicationGenre_First_VisitorRecord){ + AttachmentMatrix *attachment = [AttachmentMatrix mtowardsrixAboutJSON:notification.content]; + YUMIManeVacationerUnReadMatrix *model = [YUMIManeVacationerUnReadMatrix mtowardsrixAboutJSON:attachment.data]; + if ([model isKindOfClass:YUMIManeVacationerUnReadMatrix.class]) { + [[NSNotificationCenter defaultCenter] postNotificationName:kVisitorUnReadCountNotificationKey object:model]; + } + } else if ([dic[@"first"] intValue] == IndividualityCommunicationGenre_Task_Complete && [dic[@"second"] intValue] == Custom_Message_Sub_TaskComplete) { + if ([dic isKindOfClass:[NSDictionary class]]) { + NSDictionary *dict = dic[@"data"]; + [self shankImportpriseTaskPrompt:dict[@"taskCompleteMsg"] url:dic[@"taskUrl"]]; + } + } + } + } +} + +#pragma mark - 主播卡片弹窗 +- (void)EvidenceStrangeConsumerReindict { + self.demandsExhibitStrangeConsumerReindict = YES; +} + +- (void)EvidenceKellegSolitaireDigital:(NSNotification *)noti { + NSDictionary * dic = noti.object; + self.delayExhibitKellegSolitaire = [[dic objectForKey:@"delayShow"] boolValue]; + self.demandsExhibitKellegSolitaire = YES; +} + +- (BOOL)hadLaunchAplictowardsion { + return [[NSUserDefaults standardUserDefaults] valueForKey:kHadLaunchApp]; +} + +- (void)teenagerPositionDiversifictowardsion:(NSNotification *)noti { + NSDictionary * dic = noti.object; + self.parentMode = [[dic objectForKey:@"parentMode"] boolValue]; + for (BaseRegardGovernancer *vc in self.viewControllers) { + vc.parentMode = self.parentMode; + } + if ([YUMIChamberMiniExecutive shareManager].acquireChamberAbstract && self.parentMode) { + [[RealtimackExecutive instance] exitRoom]; + [[NIMSDK sharedSDK].chatroomManager exitChatroom:[NSString stringWithFormat:@"%ld", [YUMIChamberMiniExecutive shareManager].acquireChamberAbstract.roomId] completion:nil]; + [self.chamberManeRegard hiddenChamberRoadliceRegard]; + } +} + +- (BOOL)canExhibitKellegSolitaire { + if ([[YUMIChamberMiniExecutive shareManager] acquireChamberAbstract]) { + return NO; + } + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + NSNumber *lastTime = [defaults objectForKey:kLastShowAnchorCardTime]; + if ([lastTime longValue] < 1) { + return NO; + } + NSDate *datenow = [NSDate date]; + long time2 = (long)([datenow timeIntervalSince1970]*1000); + long aTime = (time2 - [lastTime longValue]) / 1000; + if (aTime > 15*60) { + return YES; + } else { + return NO; + } +} + +#pragma mark - 活动任务完成提示 +- (void)shankImportpriseTaskPrompt:(NSString *)msg url:(NSString *)url { + if (!self.taskPromptRegard.superview && url.length) { + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventtask_toast_show]; + [self.view addSubview:self.taskPromptRegard]; + self.taskPromptRegard.desc = msg; + self.taskPromptRegard.url = url; + UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(jumpToTask:)]; + [self.taskPromptRegard addGestureRecognizer:tap]; + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + if (self.taskPromptRegard.superview) { + [self.taskPromptRegard removeFromSuperview]; + } + self.taskPromptRegard = nil; + }); + } +} + +- (void)jumpToTask:(UITapGestureRecognizer *)ges { + [StatsticsticsServingFacilitater trajectoryOccurrenceAboutDigital:StatisticsServiceEventtask_toast_click]; + YUMITissueRegardGovernancer * webVewC =[[YUMITissueRegardGovernancer alloc] init]; + webVewC.url = self.taskPromptRegard.url; + [self.selectedViewController.navigationController pushViewController:webVewC animated:YES]; + if (self.taskPromptRegard.superview) { + [self.taskPromptRegard removeFromSuperview]; + } + self.taskPromptRegard = nil; +} + +#pragma mark - XCombatellegSolitaireRegardRepresendtation +- (void)xCombatellegSolitaireRegardImportChamber:(NSString *)roomUid { + if (roomUid.length) { + [self.kellegSolitaireRegard removeFromSuperview]; + self.kellegSolitaireRegard = nil; + self.demandsExhibitKellegSolitaire = NO; + [YUMIChamberRegardGovernancer unfoildChamber:roomUid viewController:self]; + } else { + [UIView animateWithDuration:0.5 animations:^{ + self.kellegSolitaireRegard.frame = CGRectMake(0, -90-kStatusBarHeight, KScreenWidth, 90); + } completion:^(BOOL finished) { + [self.kellegSolitaireRegard removeFromSuperview]; + self.kellegSolitaireRegard = nil; + self.demandsExhibitKellegSolitaire = NO; + }]; + } +} + +- (void)xCombatellegSolitaireRegardTicktackIntelligenceportrait:(NSString *)uid { + if (uid.length) { + + if ([ClientDisposition partowardsiciptowardsionDisposition].canUnfoild) { + YUMIManeConsumerAbstractRegardGovernancer * userInfoVC = [[YUMIManeConsumerAbstractRegardGovernancer alloc] init]; + userInfoVC.uid = uid.integerValue; + [self.selectedViewController.navigationController pushViewController:userInfoVC animated:YES]; + }else{ + YUMIManeSimpleConsumerAbstractRegardGovernancer * userInfoVC = [[YUMIManeSimpleConsumerAbstractRegardGovernancer alloc] init]; + userInfoVC.uid = uid.integerValue; + [self.selectedViewController.navigationController pushViewController:userInfoVC animated:YES]; + } + [self.kellegSolitaireRegard removeFromSuperview]; + self.kellegSolitaireRegard = nil; + self.demandsExhibitKellegSolitaire = NO; + } else { + [self.kellegSolitaireRegard removeFromSuperview]; + self.kellegSolitaireRegard = nil; + self.demandsExhibitKellegSolitaire = NO; + } +} + +- (void)shankKellegSolitaireSwipeByvirtueof:(UISwipeGestureRecognizer *)recognizer{ + if(recognizer.direction == UISwipeGestureRecognizerDirectionUp) { + [UIView animateWithDuration:0.5 animations:^{ + self.kellegSolitaireRegard.frame = CGRectMake(0, -90-kStatusBarHeight, KScreenWidth, 90); + } completion:^(BOOL finished) { + [self.kellegSolitaireRegard removeFromSuperview]; + self.kellegSolitaireRegard = nil; + self.demandsExhibitKellegSolitaire = NO; + }]; + } +} + +#pragma mark - 年度礼物飘屏 +- (void)achieveBroadcastPresent:(AttachmentMatrix *)attachment { + YUMIChamberPresentBroadCastMatrix *giftNotifyInfo = [YUMIChamberPresentBroadCastMatrix mtowardsrixAboutJSON:attachment.data]; + if (!giftNotifyInfo.ceremonyGift) { + return; + } + if (self.presentPingencourageFormation.count == 0) { + [self producePresentBroadcastRegardBrectifyness:giftNotifyInfo]; + } + [self.presentPingencourageFormation addObject:giftNotifyInfo]; +} + +- (void)producePresentBroadcastRegardBrectifyness:(YUMIChamberPresentBroadCastMatrix *)presentMatrix { + YUMIChamberYearImportpriseRegard * view = [[YUMIChamberYearImportpriseRegard alloc] init]; + view.delegate = self; + view.frame = CGRectMake(KScreenWidth, 35 + statusbarHeight, KScreenWidth, 150); + view.model = presentMatrix; + [[XCCurrentVCStackExecutive shareManager].getCurrentVC.view addSubview:view]; + [self institutePresentBraodcastRegardBrectifyness:view notifyStaySecond:presentMatrix.notifyStaySecond]; +} + +- (void)institutePresentBraodcastRegardBrectifyness:(YUMIChamberYearImportpriseRegard *)view notifyStaySecond:(int)notifyStaySecond{ + CGFloat startTime = notifyStaySecond > 0 ? notifyStaySecond : 3.0; + POPSpringAnimation *springAnimation = [POPSpringAnimation animationWithPropertyNamed:kPOPViewCenter]; + springAnimation.springSpeed = 12; + springAnimation.springBounciness = 10.f; + springAnimation.fromValue = [NSValue valueWithCGPoint:view.center]; + springAnimation.toValue = [NSValue valueWithCGPoint:CGPointMake(0 + view.frame.size.width / 2, view.center.y)]; + [springAnimation setCompletionBlock:^(POPAnimation *anim, BOOL finished) { + if (finished) { + [self transltowardsePresentBroadcastOptowardssideBrectifyness:view stayTime:startTime]; + } + }]; + [view pop_addAnimation:springAnimation forKey:@"spingOutAnimation"]; +} + +- (void)transltowardsePresentBroadcastOptowardssideBrectifyness:(YUMIChamberYearImportpriseRegard *)view stayTime:(CGFloat)stayTime{ + POPBasicAnimation *moveAnimation = [POPBasicAnimation animationWithPropertyNamed:kPOPViewCenter]; + moveAnimation.fromValue = [NSValue valueWithCGPoint:view.center]; + moveAnimation.toValue = [NSValue valueWithCGPoint:CGPointMake(-KScreenWidth/2, view.center.y)]; + moveAnimation.beginTime = CACurrentMediaTime() + stayTime; + moveAnimation.duration = 0.5; + moveAnimation.repeatCount = 1; + moveAnimation.removedOnCompletion = YES; + @kWeakify(self); + [moveAnimation setCompletionBlock:^(POPAnimation *anim, BOOL finished) { + @kStrongify(self); + if (finished) { + [view removeFromSuperview]; + if (self.presentPingencourageFormation.count > 0) { + [self.presentPingencourageFormation removeObjectAtIndex:0]; + } + if (self.presentPingencourageFormation.count > 0) { + [self producePresentBroadcastRegardBrectifyness:self.presentPingencourageFormation.firstObject]; + } + } + }]; + + [view pop_addAnimation:moveAnimation forKey:@"moveOutAnimation"]; +} + +#pragma mark - FBCChamberPresentPingbackRegardRepresendtation +- (void)yUMIChamberAnnmuImportpriseRegardImportChamber:(NSString *)roomUid{ + if (roomUid.length > 0) { + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.7 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + [YUMIChamberRegardGovernancer unfoildChamber:roomUid viewController:[XCCurrentVCStackExecutive shareManager].getCurrentVC]; + }); + } +} + +#pragma mark - Getters And Setters +- (YUMIMiniChamberRegard *)chamberManeRegard { + if (!_chamberManeRegard) { + _chamberManeRegard = [[YUMIMiniChamberRegard alloc] init]; + _chamberManeRegard.controller = self; + _chamberManeRegard.hidden = YES; + } + return _chamberManeRegard; +} + +- (XCombatellegSolitaireRegard *)kellegSolitaireRegard { + if (!_kellegSolitaireRegard) { + _kellegSolitaireRegard = [[XCombatellegSolitaireRegard alloc] init]; + _kellegSolitaireRegard.delegate = self; + + } + return _kellegSolitaireRegard; +} + +- (YUMImissionCompleteTipRegard *)taskPromptRegard { + if (!_taskPromptRegard) { + _taskPromptRegard = [[YUMImissionCompleteTipRegard alloc] initWithFrame:CGRectMake(0, KScreenHeight - kSafeAreaBottomHeight-60-20, KScreenWidth, 20)]; + } + return _taskPromptRegard; +} + +- (NSMutableArray *)presentPingencourageFormation { + if (!_presentPingencourageFormation) { + _presentPingencourageFormation = [NSMutableArray array]; + } + return _presentPingencourageFormation; +} + +@end diff --git a/YuMi/Modules/YMTabbar/View/VersionUpdate/YUMIAscensionRegard.h b/YuMi/Modules/YMTabbar/View/VersionUpdate/YUMIAscensionRegard.h new file mode 100644 index 00000000..c9745ccc --- /dev/null +++ b/YuMi/Modules/YMTabbar/View/VersionUpdate/YUMIAscensionRegard.h @@ -0,0 +1,19 @@ +// +// YMUpgradeView.h +// YUMI +// +// Created by YUMI on 2022/12/5. +// + +#import +#import "YUMIVersionRefurbishMatrix.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIAscensionRegard : UIView + +@property (nonatomic,strong) YUMIVersionRefurbishMatrix *versionMatrix; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMTabbar/View/VersionUpdate/YUMIAscensionRegard.m b/YuMi/Modules/YMTabbar/View/VersionUpdate/YUMIAscensionRegard.m new file mode 100644 index 00000000..d85e65d7 --- /dev/null +++ b/YuMi/Modules/YMTabbar/View/VersionUpdate/YUMIAscensionRegard.m @@ -0,0 +1,217 @@ +// +// YMUpgradeView.m +// YUMI +// +// Created by YUMI on 2022/12/5. +// + +#import "YUMIAscensionRegard.h" +#import +#import +#import "UIImage+Utils.h" +#import "YUMIMacroUitls.h" +#import "DJDKMIMOMColor.h" +#import "UIView+Corner.h" +#import "MKJPopup.h" + +@interface YUMIAscensionRegard() +@property (nonatomic,strong) UIView *contentView; +@property (nonatomic,strong) UIImageView *apexIndicateRegard; +@property (nonatomic,strong) UIView *encourageRegard; +@property (nonatomic,strong) SZTextView *textView; +@property (nonatomic,strong) UIStackView *stackView; +@property (nonatomic,strong) UIButton *refurbishBtuton; +@property (nonatomic,strong) UIButton *revocationBtuton; +@property (nonatomic,strong) UILabel *versionSequencignation; +@end + +@implementation YUMIAscensionRegard + +- (instancetype)initWithFrame:(CGRect)frame{ + self = [super initWithFrame:frame]; + if(self){ + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.contentView]; + + [self.contentView addSubview:self.apexIndicateRegard]; + [self.contentView addSubview:self.encourageRegard]; + [self.apexIndicateRegard addSubview:self.versionSequencignation]; + [self.encourageRegard addSubview:self.textView]; + [self.encourageRegard addSubview:self.stackView]; + [self.stackView addArrangedSubview:self.revocationBtuton]; + [self.stackView addArrangedSubview:self.refurbishBtuton]; +} +- (void)initChildLyRestrictions { + CGFloat kwidth = (KScreenWidth - 100); + [self mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(kwidth, 340)); + }]; + + [self.contentView mas_makeConstraints:^(MASConstraintMaker *make) { + make.edges.equalTo(self); + }]; + + CGFloat kscale = 140.0 / 275.0; + [self.apexIndicateRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.size.mas_equalTo(CGSizeMake(kwidth, kwidth * kscale)); + make.top.mas_equalTo(self.contentView); + make.centerX.mas_equalTo(self.contentView); + }]; + + [self.encourageRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.mas_equalTo(self.contentView); + make.top.mas_equalTo(self.apexIndicateRegard.mas_bottom); + }]; + + [self.versionSequencignation mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.mas_equalTo(self.apexIndicateRegard).offset(25); + make.top.mas_equalTo(self.apexIndicateRegard).offset(90 * kScreenScale); + }]; + + [self.stackView mas_makeConstraints:^(MASConstraintMaker *make) { + make.height.mas_equalTo(36); + make.centerX.mas_equalTo(self.contentView); + make.bottom.mas_equalTo(self.contentView).offset(-20); + }]; + + [self.revocationBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo((kwidth - 11 - 16 * 2) / 2.0); + }]; + [self.refurbishBtuton mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.mas_equalTo(self.revocationBtuton); + }]; + + [self.textView mas_makeConstraints:^(MASConstraintMaker *make) { + make.top.equalTo(self.apexIndicateRegard.mas_bottom).mas_offset(3); + make.left.mas_equalTo(17); + make.right.mas_equalTo(-17); + make.bottom.equalTo(self.stackView.mas_top).offset(-5); + }]; + +} + +-(void)setVersionMatrix:(YUMIVersionRefurbishMatrix *)versionMatrix{ + _versionMatrix = versionMatrix; + if (_versionMatrix.updateVersionDesc) { + NSMutableAttributedString * attribute = [[NSMutableAttributedString alloc] initWithString:_versionMatrix.updateVersionDesc attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:12], NSForegroundColorAttributeName:[DJDKMIMOMColor mainEssayPrettify]}]; + NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init]; + paragraphStyle.lineSpacing = 5; + [attribute addAttribute:NSParagraphStyleAttributeName value:paragraphStyle range:NSMakeRange(0, _versionMatrix.updateVersionDesc.length)]; + _textView.attributedText = attribute; + } + + _versionSequencignation.text = [NSString stringWithFormat:@"V%@", _versionMatrix.updateVersion]; + _revocationBtuton.hidden = _versionMatrix.updateStatus == 3; +} + +-(void)updateAction{ + NSURL *url = [[NSURL alloc]initWithString:self.versionMatrix.updateDownloadLink]; + if ([[UIApplication sharedApplication] canOpenURL:url]) { + [[UIApplication sharedApplication] openURL:url options:@{} completionHandler:^(BOOL success) { + if(self.versionMatrix.updateStatus != 3){ + [MKJPopup dismiss]; + } + }]; + } +} +-(void)revocationPerformance{ + [MKJPopup dismiss]; +} +#pragma mark - 懒加载 +- (UIView *)contentView { + if (!_contentView) { + _contentView = [[UIView alloc] init]; + _contentView.backgroundColor = [UIColor clearColor]; + _contentView.layer.cornerRadius = 12; + _contentView.layer.masksToBounds = YES; + } + return _contentView; +} + +- (UIView *)encourageRegard { + if (!_encourageRegard) { + _encourageRegard = [[UIView alloc] init]; + _encourageRegard.backgroundColor = [UIColor whiteColor]; + } + return _encourageRegard; +} + +- (UIStackView *)stackView { + if (!_stackView) { + _stackView = [[UIStackView alloc] init]; + _stackView.axis = UILayoutConstraintAxisHorizontal; + _stackView.distribution = UIStackViewDistributionFill; + _stackView.alignment = UIStackViewAlignmentFill; + _stackView.spacing = 10; + } + return _stackView; +} + +- (UIImageView *)apexIndicateRegard{ + if (!_apexIndicateRegard){ + _apexIndicateRegard = [UIImageView new]; + _apexIndicateRegard.backgroundColor = [UIColor clearColor]; + _apexIndicateRegard.userInteractionEnabled = YES; + _apexIndicateRegard.image = [UIImage imageNamed:@"yumi_version_update_top_background"]; + } + return _apexIndicateRegard; +} + +- (SZTextView *)textView { + if (!_textView) { + _textView = [[SZTextView alloc] init]; + _textView.textColor = [DJDKMIMOMColor mainEssayPrettify]; + _textView.font = [UIFont systemFontOfSize:12]; + _textView.backgroundColor = [UIColor clearColor]; + _textView.editable = NO; + } + return _textView; +} + +- (UILabel *)versionSequencignation { + if (!_versionSequencignation) { + _versionSequencignation = [[UILabel alloc] init]; + _versionSequencignation.font = [UIFont systemFontOfSize:12 weight:UIFontWeightMedium]; + _versionSequencignation.textColor = [UIColor whiteColor]; + } + return _versionSequencignation; +} + +-(UIButton *)refurbishBtuton{ + if (!_refurbishBtuton){ + UIImage *image = [UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor acknowledgementBtutonObliquityInititowardsePrettify],[DJDKMIMOMColor acknowledgementBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)]; + _refurbishBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_refurbishBtuton setTitle:YMLocalizedString(@"YUMI_Upgrade_View_0") forState:UIControlStateNormal]; + _refurbishBtuton.titleLabel.font = [UIFont systemFontOfSize:14]; + _refurbishBtuton.titleLabel.textColor = [DJDKMIMOMColor acknowledgementBtutonEssayPrettify]; + [_refurbishBtuton setBackgroundImage:image forState:UIControlStateNormal]; + _refurbishBtuton.layer.cornerRadius = 36 / 2; + _refurbishBtuton.layer.masksToBounds = YES; + [_refurbishBtuton addTarget:self action:@selector(updateAction) forControlEvents:UIControlEventTouchUpInside]; + } + return _refurbishBtuton; +} +-(UIButton *)revocationBtuton{ + if (!_revocationBtuton){ + _revocationBtuton = [UIButton buttonWithType:UIButtonTypeCustom]; + UIImage *image = [UIImage gradientPrettifyIndictowardseByvirtueofPrettifys:@[[DJDKMIMOMColor revoctowardsionBtutonObliquityInititowardsePrettify],[DJDKMIMOMColor revoctowardsionBtutonObliquityConcludePrettify]] gradientType:GradientGenreLeftToRight imgSize:CGSizeMake(10, 10)]; + [_revocationBtuton setTitle:YMLocalizedString(@"YUMI_Upgrade_View_1") forState:UIControlStateNormal]; + _revocationBtuton.titleLabel.font = [UIFont systemFontOfSize:14]; + [_revocationBtuton setTitleColor:[DJDKMIMOMColor revoctowardsionBtutonEssayPrettify] forState:UIControlStateNormal]; + [_revocationBtuton setBackgroundImage:image forState:UIControlStateNormal]; + _revocationBtuton.layer.cornerRadius = 36 / 2; + _revocationBtuton.layer.masksToBounds = YES; + [_revocationBtuton addTarget:self action:@selector(revocationPerformance) forControlEvents:UIControlEventTouchUpInside]; + } + return _revocationBtuton; + +} + +@end diff --git a/YuMi/Modules/YMTabbar/View/YUMIBlankRegardGovernancer.h b/YuMi/Modules/YMTabbar/View/YUMIBlankRegardGovernancer.h new file mode 100644 index 00000000..43b0e8d1 --- /dev/null +++ b/YuMi/Modules/YMTabbar/View/YUMIBlankRegardGovernancer.h @@ -0,0 +1,16 @@ +// +// YMBlankViewController.h +// YUMI +// +// Created by XY on 2023/2/23. +// + +#import "BaseRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMIBlankRegardGovernancer : BaseRegardGovernancer + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMTabbar/View/YUMIBlankRegardGovernancer.m b/YuMi/Modules/YMTabbar/View/YUMIBlankRegardGovernancer.m new file mode 100644 index 00000000..d6b520e3 --- /dev/null +++ b/YuMi/Modules/YMTabbar/View/YUMIBlankRegardGovernancer.m @@ -0,0 +1,25 @@ +// +// YMBlankViewController.m +// YUMI +// +// Created by XY on 2023/2/23. +// + +#import "YUMIBlankRegardGovernancer.h" + +@interface YUMIBlankRegardGovernancer () + +@end + +@implementation YUMIBlankRegardGovernancer + +- (BOOL)isVeiledNevObstacle { + return YES; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + +} + +@end diff --git a/YuMi/Modules/YMTabbar/View/YUMITabObstacle.h b/YuMi/Modules/YMTabbar/View/YUMITabObstacle.h new file mode 100644 index 00000000..a1089a68 --- /dev/null +++ b/YuMi/Modules/YMTabbar/View/YUMITabObstacle.h @@ -0,0 +1,16 @@ +// +// YMTabBar.h +// YUMI +// +// Created by XY on 2023/2/15. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface YUMITabObstacle : UITabBar + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMTabbar/View/YUMITabObstacle.m b/YuMi/Modules/YMTabbar/View/YUMITabObstacle.m new file mode 100644 index 00000000..66081a34 --- /dev/null +++ b/YuMi/Modules/YMTabbar/View/YUMITabObstacle.m @@ -0,0 +1,88 @@ +// +// YMTabBar.m +// YUMI +// +// Created by XY on 2023/2/15. +// + +#import "YUMITabObstacle.h" +#import "UIImage+Utils.h" +#import "YUMIMacroUitls.h" +#import "DJDKMIMOMColor.h" + +CGFloat tabBarHeight = 60.0; +CGFloat leftRightSpace = 8.0; +CGFloat bottomSpace = 29.0; +NSInteger itemCount = 4; + +@interface YUMITabObstacle() + +@property (nonatomic, strong) UIView *backgroundRegard; + +@end + +@implementation YUMITabObstacle + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if(self) { + + [self addSubview:self.backgroundRegard]; + + [self setBackgroundImage:[UIImage new]]; + [self setShadowImage:[UIImage new]]; + + if (@available(iOS 15.0, *)) { + UITabBarAppearance *bar = [UITabBarAppearance new]; + bar.backgroundColor = [UIColor clearColor]; + bar.backgroundEffect = nil; + + [bar configureWithTransparentBackground]; + bar.stackedLayoutAppearance.selected.titleTextAttributes = @{NSFontAttributeName:[UIFont systemFontOfSize:10],NSForegroundColorAttributeName:[DJDKMIMOMColor aplictowardsionMainPrettify]}; + bar.stackedLayoutAppearance.normal.titleTextAttributes = @{NSFontAttributeName:[UIFont systemFontOfSize:10],NSForegroundColorAttributeName:[DJDKMIMOMColor instantEssayPrettify]}; + self.scrollEdgeAppearance = bar; + self.standardAppearance = bar; + } else { + self.backgroundColor = [UIColor clearColor]; + self.shadowImage = nil; + [[UITabBarItem appearance] setTitleTextAttributes:@{NSForegroundColorAttributeName:[DJDKMIMOMColor aplictowardsionMainPrettify]} forState:UIControlStateSelected]; + [[UITabBarItem appearance] setTitleTextAttributes:@{NSForegroundColorAttributeName:[DJDKMIMOMColor instantEssayPrettify]} forState:UIControlStateNormal]; + } + self.translucent = YES; + } + return self; +} + +- (void)layoutSubviews { + [super layoutSubviews]; + + self.frame = CGRectMake(0, KScreenHeight- tabBarHeight-bottomSpace, KScreenWidth, tabBarHeight); + + + CGFloat tabBarButtonW = (KScreenWidth-leftRightSpace*2)/itemCount; + CGFloat tabBarButtonIndex = 0; + for (UIView *child in self.subviews) { + Class class = NSClassFromString(@"UITabBarButton"); + if ([child isKindOfClass:class]) { + CGRect frame = CGRectMake(tabBarButtonIndex * tabBarButtonW+leftRightSpace, (tabBarHeight-49)/2, tabBarButtonW, 49); + child.frame = frame; + tabBarButtonIndex ++; + } + } +} + +- (UIView *)backgroundRegard { + if (!_backgroundRegard) { + _backgroundRegard = [[UIView alloc] init]; + _backgroundRegard.backgroundColor = [[DJDKMIMOMColor tabbarRegardPrettify] colorWithAlphaComponent:0.95]; + _backgroundRegard.frame = CGRectMake(leftRightSpace, 0, KScreenWidth-leftRightSpace*2, tabBarHeight); + _backgroundRegard.layer.cornerRadius = tabBarHeight/2.0; + _backgroundRegard.layer.shadowColor = [UIColor.blackColor colorWithAlphaComponent:0.5].CGColor; + _backgroundRegard.layer.shadowOffset = CGSizeMake(0, 0); + _backgroundRegard.layer.shadowOpacity = 0.2; + _backgroundRegard.layer.shadowRadius = 5; + } + return _backgroundRegard; +} + +@end diff --git a/YuMi/Modules/YMWeb/YUMITissueRegardGovernancer.h b/YuMi/Modules/YMWeb/YUMITissueRegardGovernancer.h new file mode 100644 index 00000000..f8e6bb41 --- /dev/null +++ b/YuMi/Modules/YMWeb/YUMITissueRegardGovernancer.h @@ -0,0 +1,38 @@ +// +// YUMITissueRegardGovernancer.h +// YuMi +// +// Created by zu on 2021/9/16. +// + +#import "BaseRegardGovernancer.h" +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol FBCWebRegardGovernancerRepresendtation + +-(void)payShankr; + +@end + + +@interface YUMITissueRegardGovernancer : BaseRegardGovernancer +@property (nonatomic,weak) id delegate; +@property (strong, nonatomic,readonly) WKWebView *webview; +@property (nonatomic,assign) BOOL isPush; +@property (nonatomic,copy) NSString *roomUid; +@property (nonatomic,assign) BOOL isFairyPay; + + +@property (nonatomic,assign) BOOL isMaintainerty; +@property (copy, nonatomic) NSString *url; + +@property (nonatomic, copy) void (^urlLoadCompleted)(BOOL result, NSError * _Nullable error); +@property (nonatomic,copy) void (^InitShowNavBlock)(BOOL show); +@property (nonatomic,copy) void (^CloseWebViewBlock)(BOOL result); +- (instancetype)initAboutIndividualityizeNev:(BOOL)isCustom; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMWeb/YUMITissueRegardGovernancer.m b/YuMi/Modules/YMWeb/YUMITissueRegardGovernancer.m new file mode 100644 index 00000000..809257be --- /dev/null +++ b/YuMi/Modules/YMWeb/YUMITissueRegardGovernancer.m @@ -0,0 +1,708 @@ +// +// YUMITissueRegardGovernancer.m +// YuMi +// +// Created by zu on 2021/9/16. +// + +#import "YUMITissueRegardGovernancer.h" +#import "AccountAbstractStorage.h" +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" +#import "YYUtility.h" +#import "HttpRequestFacilitater.h" +#import "YUMIParaticipationRegard.h" +#import "MKJPopup.h" +#import +#import +#import "XCCurrentVCStackExecutive.h" +#import "YUMIManeConsumerAbstractRegardGovernancer.h" +#import "YUMIManeReindictRegardGovernancer.h" +#import "YUMIManePretendUpwardsRegardGovernancer.h" +#import "YUMIPretendUpwardsProcurementRegardGovernancer.h" +#import "YUMIChamberRegardGovernancer.h" +#import "ChamberHostRepresendtation.h" +#import "RamparatetAbstractMatrix.h" +#import "Api+Mine.h" +#import "YUMICommunicationSolitaireDisporterExecutive.h" +#import "YUMITissueRegardNevRegard.h" +#import "YUMIIAPReindictRegardGovernancer.h" + +typedef NS_ENUM(NSUInteger, RightNavigationPushGenre){ + + RightNavigationPushGenre_Web = 1, + + RightNavigationPushGenre_Share = 2, + + RightNavigationPushGenre_AppPage = 3, + + RightNavigationPushGenre_SharePicture = 5 +}; + +@interface WeakTissueRegardScriptCommunicationDelegate : NSObject + +@property (nonatomic, weak) id scriptRepresedtation; + +- (instancetype)initWithDelegate:(id)scriptRepresedtation; + +@end +@implementation WeakTissueRegardScriptCommunicationDelegate + +- (instancetype)initWithDelegate:(id)scriptRepresedtation { + self = [super init]; + if (self) { + _scriptRepresedtation = scriptRepresedtation; + } + return self; +} + +- (void)userContentController:(WKUserContentController *)userContentController didReceiveScriptMessage:(WKScriptMessage *)message { + + if ([self.scriptRepresedtation respondsToSelector:@selector(userContentController:didReceiveScriptMessage:)]) { + [self.scriptRepresedtation userContentController:userContentController didReceiveScriptMessage:message]; + } +} + +@end + +@interface YUMITissueRegardGovernancer () +@property (nonatomic,strong) RamparatetAbstractMatrix *model ; +@property (strong, nonatomic) WKWebView *webview; +@property (strong, nonatomic) UIProgressView *progressView; +@property (nonatomic, strong) WKUserContentController *consumerSatisfperformanceGovernancer; +@property (nonatomic,copy) NSDictionary *sharePackbask; +@property (nonatomic,strong) YUMITissueRegardNevRegard *nevRegard; +@property (nonatomic,assign) BOOL isCustom; +@end + +NSString * const kJSOpenPurse = @"openPurse"; +NSString * const kJSOpenChargePage = @"openChargePage"; +NSString * const kJSChargePayPage = @"chargePayPage"; +NSString * const kJSChargePayClickPage = @"chargePayClickPage"; +NSString * const kJSOpenSharePage = @"openSharePage"; +NSString * const kJSGetUid = @"getUid"; +NSString * const kJSGetDeviceId = @"getDeviceId"; +NSString * const kJSGetTicket = @"getTicket"; +NSString * const kJSGetDeviceInfo = @"getDeviceInfo"; +NSString * const kJSOpenFaceLiveness = @"openFaceLiveness"; +NSString * const kJSInitNav = @"initNav"; +NSString * const kJSGetRoomUid = @"getRoomUid"; +NSString * const kOpenPersonPage = @"openPersonPage"; +NSString * const kInitShowNav = @"initShowNav"; +NSString * const kCloseWebView = @"closeWebView"; +NSString * const kJumpAppointPage = @"jumpAppointPage"; +NSString * const kJSOpenRoom = @"openRoom"; +NSString * const kJSOpenRoomForGiftId = @"openRoomForGiftId"; + +@implementation YUMITissueRegardGovernancer + +- (instancetype)initAboutIndividualityizeNev:(BOOL)isCustom +{ + self = [super init]; + if (self) { + self.isCustom = isCustom; + + } + return self; +} + +-(void)viewWillAppear:(BOOL)animated{ + [super viewWillAppear:animated]; + + if([YUMICommunicationSolitaireDisporterExecutive partowardsiciptowardsionInstance].isInRoom == YES && self.isMaintainerty == NO && [YUMICommunicationSolitaireDisporterExecutive partowardsiciptowardsionInstance].isInChamberThresholdReindict == NO){ + [YUMICommunicationSolitaireDisporterExecutive partowardsiciptowardsionInstance].isInChamberThresholdReindict = YES; + } + +} + +- (void)viewDidLoad { + [super viewDidLoad]; + [self initRegard]; + +} + +- (void)initRegard { + if (self.navigationController.viewControllers.count > 1){ + UIBarButtonItem *leftBarButtonItem = [[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:@"yumi_same_title_back"] style:UIBarButtonItemStylePlain target:self action:@selector(backButtonClick)]; + + leftBarButtonItem.tintColor = [DJDKMIMOMColor mainEssayPrettify]; + + self.navigationItem.leftBarButtonItem = leftBarButtonItem; + } + if (@available(iOS 11.0, *)) { + self.webview.scrollView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; + }else{ + self.automaticallyAdjustsScrollViewInsets = NO; + } + if(self.isCustom == YES){ + [self.view addSubview:self.nevRegard]; + + [self.view addSubview:self.webview]; + [self.view addSubview:self.progressView]; + [self.nevRegard mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.equalTo(self.view); + make.height.mas_equalTo(kNavigationHeight); + }]; + [self.webview mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.bottom.equalTo(self.view); + make.top.equalTo(self.nevRegard.mas_bottom); + }]; + [self.progressView mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.equalTo(self.view); + make.height.mas_equalTo(1); + make.top.equalTo(self.nevRegard.mas_bottom); + }]; + }else{ + [self.view addSubview:self.webview]; + [self.view addSubview:self.progressView]; + [self.webview mas_makeConstraints:^(MASConstraintMaker *make) { + make.left.right.top.bottom.mas_equalTo(self.view); + }]; + } + + + + + NSString * uid = [AccountAbstractStorage instance].acquireCid; + NSString * ticket = [AccountAbstractStorage instance].acquireTicket; + [Api acquireConsumerPocketbookAbstract:^(BaseMatrix * _Nullable data, NSInteger code, NSString * _Nullable msg) { + if(code == 200){ + RamparatetAbstractMatrix * model = [RamparatetAbstractMatrix mtowardsrixAboutImpactbasket:data.data]; + self.model = model; + } + + } uid:uid ticket:ticket]; +} +- (void)yUMITissueRegardNevRegard:(YUMITissueRegardNevRegard *)view didClickBack:(UIButton *)sender{ + if(self.isFairyPay){ + if(self.CloseWebViewBlock){ + self.CloseWebViewBlock(YES); + } + return; + } + [self dismissViewControllerAnimated:YES completion:nil]; +} +- (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation { + + self.progressView.hidden = YES; + if (self.urlLoadCompleted) { + self.urlLoadCompleted(YES, nil); + } +} + +- (void)webView:(WKWebView *)webView didFailProvisionalNavigation:(WKNavigation *)navigation withError:(NSError *)error { + + self.progressView.hidden = YES; + if (self.urlLoadCompleted) { + self.urlLoadCompleted(NO, error); + } +} + +- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler { + NSURL *URL = navigationAction.request.URL; + NSString *scheme = [URL scheme]; + NSURLRequest *request = navigationAction.request; + + if (![scheme isEqualToString:@"https"] && ![scheme isEqualToString:@"http"]) { + BOOL canUnfoild = [[UIApplication sharedApplication] canOpenURL:request.URL]; + if (canUnfoild) { + [[UIApplication sharedApplication] openURL:request.URL]; + } + decisionHandler(WKNavigationActionPolicyCancel); + return; + } + decisionHandler(WKNavigationActionPolicyAllow); +} +- (void)webView:(WKWebView *)webView didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge completionHandler:(void (^)(NSURLSessionAuthChallengeDisposition, NSURLCredential * _Nullable))completionHandler{ + if ([challenge.protectionSpace.authenticationMethod isEqualToString:NSURLAuthenticationMethodServerTrust]) { + dispatch_async(dispatch_get_main_queue(), ^{ + NSURLCredential *card = [[NSURLCredential alloc]initWithTrust:challenge.protectionSpace.serverTrust]; + completionHandler(NSURLSessionAuthChallengeUseCredential,card); + }); + + + } +} +- (void)consumerSatisfperformanceGovernancer:(WKUserContentController *)consumerSatisfperformanceGovernancer didReceiveScriptMessage:(WKScriptMessage *)message { + [self.webview evaluateJavaScript:@"document.location.href" completionHandler:^(id _Nullable response, NSError * _Nullable error) { + NSLog(@"%@", response); + NSString *currentUrl = [NSString stringWithFormat:@"%@", response]; + +#ifdef DEBUG + if (currentUrl != nil) { +#else + if (currentUrl != nil && [currentUrl containsString:API_HOST_URL]) { +#endif + if ([message.name isEqualToString:kJSOpenSharePage]) { + if (message.body && message.body != [NSNull null]) { + NSDictionary *body; + + if ([message.body isKindOfClass:[NSDictionary class]]) { + body = message.body; + } else if ([message.body isKindOfClass:[NSString class]]) { + body = [message.body toJSONGroal]; + } + self.sharePackbask = body[@"data"]; + [self EvidencePartowardsiciptowardsionFasciaboard]; + } + } else if ([message.name isEqualToString:kJSGetUid]) { + NSString *uid = [[AccountAbstractStorage instance] acquireCid]; + NSString *js = [NSString stringWithFormat:@"getMessage(\"uid\",%@)", uid]; + [self.webview evaluateJavaScript:js completionHandler:^(id _Nullable other, NSError * _Nullable error) { + NSLog(@"%@",error); + }]; + } else if ([message.name isEqualToString:kJSGetTicket]) { + NSString *ticket = [[AccountAbstractStorage instance] acquireTicket]; + NSString *js = [NSString stringWithFormat:@"getMessage(\"ticket\",\"%@\")",ticket]; + [self.webview evaluateJavaScript:js completionHandler:^(id _Nullable other, NSError * _Nullable error) { + NSLog(@"%@",error); + }]; + } else if ([message.name isEqualToString:kJSGetDeviceId]) { + NSString *js = [NSString stringWithFormat:@"getMessage(\"deviceId\",\"%@\")",[YYUtility instentiretytowardsionUniqueIdentifictowardsion]]; + [self.webview evaluateJavaScript:js completionHandler:^(id _Nullable other, NSError * _Nullable error) { + NSLog(@"%@",error); + }]; + } else if ([message.name isEqualToString:kJSGetDeviceInfo]) { + NSDictionary *basicParmars = [HttpRequestFacilitater prohibitipositionBaseParmars:[[NSDictionary alloc] init]]; + NSString *json = [basicParmars mj_JSONString]; + NSString *js = [NSString stringWithFormat:@"getMessage(\"deviceInfo\",%@)", json]; + [self.webview evaluateJavaScript:js completionHandler:^(id _Nullable ohter, NSError * _Nullable error) { + NSLog(@"%@", error); + }]; + } else if ([message.name isEqualToString:kJSOpenPurse]) { + + }else if([message.name isEqualToString:kJSChargePayPage]){ + NSString *money = [NSString stringWithFormat:@"%@",message.body] ; + + }else if([message.name isEqualToString:kJSChargePayClickPage]){ + if(message.body != nil && self.model.diamonds != nil){ + NSString *type = [NSString stringWithFormat:@"%@",message.body]; + } + }else if ([message.name isEqualToString:kJSOpenChargePage]) { + if(self.delegate && [self.delegate respondsToSelector:@selector(payShankr)]){ + [self.delegate payShankr]; + return; + } + + + + [MKJPopup dismiss]; + if(self.isPush){ + YUMIIAPReindictRegardGovernancer * webVewC =[[YUMIIAPReindictRegardGovernancer alloc] init]; + [[XCCurrentVCStackExecutive shareManager].getCurrentVC.navigationController pushViewController:webVewC animated:YES]; + return; + } + UIViewController *controller = [XCCurrentVCStackExecutive shareManager].getCurrentVC; + if (controller.presentingViewController) { + [controller dismissViewControllerAnimated:NO completion:nil]; + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + + YUMIIAPReindictRegardGovernancer * webVewC =[[YUMIIAPReindictRegardGovernancer alloc] init]; + [[XCCurrentVCStackExecutive shareManager].getCurrentVC.navigationController pushViewController:webVewC animated:YES]; + }); + }else { + YUMIIAPReindictRegardGovernancer * webVewC =[[YUMIIAPReindictRegardGovernancer alloc] init]; + [[XCCurrentVCStackExecutive shareManager].getCurrentVC.navigationController pushViewController:webVewC animated:YES]; + } + } else if ([message.name isEqualToString:kOpenPersonPage]) { + NSString *uid = [NSString stringWithFormat:@"%@",message.body]; + if (uid.integerValue > 0) { + [MKJPopup dismiss]; + YUMIManeConsumerAbstractRegardGovernancer * userInfoVC = [[YUMIManeConsumerAbstractRegardGovernancer alloc] init]; + userInfoVC.uid = uid.integerValue; + [[XCCurrentVCStackExecutive shareManager].getCurrentVC.navigationController pushViewController:userInfoVC animated:YES]; + } + } else if([message.name isEqualToString:kJSInitNav]) { + [self initNev:message.body]; + } else if([message.name isEqualToString:kJSGetRoomUid]) { + NSString *js = [NSString stringWithFormat:@"getMessage(\"roomUid\",\"%@\")",self.roomUid]; + [self.webview evaluateJavaScript:js completionHandler:^(id _Nullable other, NSError * _Nullable error) { + NSLog(@"%@",error); + }]; + } else if([message.name isEqualToString:kInitShowNav]) { + if (((NSNumber *)message.body).intValue == 0) { + if (self.InitShowNavBlock) { + self.InitShowNavBlock(YES); + return; + } + if (self.navigationController) { + [self.navigationController setNavigationBarHidden:YES]; + } + } + } else if([message.name isEqualToString:kCloseWebView]) { + if (self.CloseWebViewBlock) { + self.CloseWebViewBlock(YES); + return; + } + if (self.navigationController) { + [self.navigationController popViewControllerAnimated:YES]; + } + } else if ([message.name isEqualToString:kJumpAppointPage]) { + + NSDictionary *bodyDict; + if ([message.body isKindOfClass:[NSDictionary class]]) { + bodyDict = message.body; + } else if ([message.body isKindOfClass:[NSString class]]) { + NSString *str = (NSString *)message.body; + bodyDict = [str toJSONGroal]; + } + NSInteger skyType = [bodyDict[@"routerType"] integerValue]; + [self shankRouterGenre:skyType message:message]; + } else if ([message.name isEqualToString:kJSOpenRoom]) { + NSString *uid = [NSString stringWithFormat:@"%@",message.body]; + if (uid.length > 0) { + [[XCCurrentVCStackExecutive shareManager].getCurrentVC.navigationController.viewControllers enumerateObjectsUsingBlock:^(__kindof UIViewController * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if ([obj isKindOfClass:[YUMIChamberRegardGovernancer class]]) { + [[XCCurrentVCStackExecutive shareManager].getCurrentVC.navigationController popToRootViewControllerAnimated:NO]; + YUMIChamberRegardGovernancer * rooomVC = obj; + [rooomVC exitRoom]; + *stop = YES; + } + }]; + if(self.view.superview){ + [MKJPopup dismiss]; + } + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + [YUMIChamberRegardGovernancer unfoildChamber:uid viewController:[XCCurrentVCStackExecutive shareManager].getCurrentVC]; + }); + } + } else if([message.name isEqualToString:kJSOpenRoomForGiftId]) { + NSLog(@"%@", message.body); + NSDictionary *bodyDict; + if ([message.body isKindOfClass:[NSDictionary class]]) { + bodyDict = message.body; + } else if ([message.body isKindOfClass:[NSString class]]) { + NSString *str = (NSString *)message.body; + bodyDict = [str toJSONGroal]; + } + + NSString *uid = [NSString stringWithFormat:@"%@", bodyDict[@"uid"]]; + NSString *giftId = [NSString stringWithFormat:@"%@", bodyDict[@"giftId"]]; + if (uid.length) { + [[XCCurrentVCStackExecutive shareManager].getCurrentVC.navigationController.viewControllers enumerateObjectsUsingBlock:^(__kindof UIViewController * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if ([obj isKindOfClass:[YUMIChamberRegardGovernancer class]]) { + [[XCCurrentVCStackExecutive shareManager].getCurrentVC.navigationController popToRootViewControllerAnimated:NO]; + YUMIChamberRegardGovernancer * rooomVC = obj; + [rooomVC exitRoom]; + *stop = YES; + } + }]; + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + [YUMIChamberRegardGovernancer unfoildChamber:uid giftId:giftId viewController:[XCCurrentVCStackExecutive shareManager].getCurrentVC]; + }); + } + + } + } + }]; + } + +#pragma mark - private method +- (void)shankRouterGenre:(NSInteger)skyType message:(WKScriptMessage *)message { + NSDictionary *bodyDict = (NSDictionary *)message.body; + switch (skyType) { + case 1: + { + + NSString *uid = [NSString stringWithFormat:@"%@", bodyDict[@"routerVal"]]; + if (uid.length) { + [YUMIChamberRegardGovernancer unfoildChamber:uid viewController:[XCCurrentVCStackExecutive shareManager].getCurrentVC]; + } + } + break; + case 7: + { + + YUMIManePretendUpwardsRegardGovernancer *vc = [[YUMIManePretendUpwardsRegardGovernancer alloc] init]; + vc.currentIndex = 1; + [[XCCurrentVCStackExecutive shareManager].getCurrentVC.navigationController pushViewController:vc animated:YES]; + } + break; + case 8: + { + + YUMIManePretendUpwardsRegardGovernancer *vc = [[YUMIManePretendUpwardsRegardGovernancer alloc] init]; + vc.currentIndex = 0; + [[XCCurrentVCStackExecutive shareManager].getCurrentVC.navigationController pushViewController:vc animated:YES]; + } + break; + default: + break; + } +} +- (void)setUrl:(NSString *)urlString{ + _url = urlString; + if (_url == nil) { + return; + } + if (![_url hasPrefix:@"http"] && ![_url hasPrefix:@"https"]){ + _url = [NSString stringWithFormat:@"%@/%@", API_HOST_URL, _url]; + } + + if (![_url containsString:@"?"]) { + _url = [NSString stringWithFormat:@"%@", _url]; + } else { + _url = [NSString stringWithFormat:@"%@", _url]; + } + + + NSString *noSpaceTextUrl = [_url stringByReplacingOccurrencesOfString:@" " withString:@""]; + + NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:noSpaceTextUrl]]; + [self.webview loadRequest:request]; +} +- (void)backButtonClick { + BOOL canGoBack = YES; + if (self.webview.backForwardList.backList.count <= 1) { + canGoBack = NO; + } + + if ([self.webview canGoBack]) { + [self.webview goBack]; + } else { + [self.navigationController popViewControllerAnimated:YES]; + [self.consumerSatisfperformanceGovernancer removeAllUserScripts]; + } +} +#pragma mark - 分享 +- (void)initNev:(NSDictionary *)response{ + if(!response || ![response isKindOfClass:[NSDictionary class]])return; + self.sharePackbask = response[@"data"]; + if ([response[@"type"] intValue]== RightNavigationPushGenre_Web) { + [self accelertowardseBreeadcrumbProvisionAboutChampions:@[response[@"data"][@"title"]] titleColor:[DJDKMIMOMColor precautiousChampionPrettify] isContrary:NO target:self action:@selector(passtoTissueRegard) tags:nil]; + }else if ([response[@"type"] intValue]== RightNavigationPushGenre_Share || [response[@"type"] intValue]== RightNavigationPushGenre_SharePicture){ + [self accelertowardseBreeadcrumbProvisionAboutIndictowardseSaluttowardsion:@[@"family_person_share"] isContrary:NO + target:self action:@selector(EvidencePartowardsiciptowardsionFasciaboard) tags:nil]; + } +} + +- (void)passtoTissueRegard { + if (self.sharePackbask[@"link"]) { + YUMITissueRegardGovernancer * webVewC = [[YUMITissueRegardGovernancer alloc] init]; + webVewC.url = self.sharePackbask[@"link"]; + [self.navigationController pushViewController:webVewC animated:YES]; + } +} + +- (void)EvidencePartowardsiciptowardsionFasciaboard { + if (self.sharePackbask.allKeys.count <= 0) { + return; + } + NSDictionary * dic = self.sharePackbask; + YUMIParaticipationAbstractMatrix * shareInfo = [[YUMIParaticipationAbstractMatrix alloc] init]; + shareInfo.shareTitle = self.sharePackbask[@"title"]; + shareInfo.shareContent = dic[@"desc"]; + shareInfo.shareImageUrl = dic[@"imgUrl"]; + shareInfo.type = ShareGenre_H5; + shareInfo.uid = [AccountAbstractStorage instance].acquireCid; + NSString *urlStr = ((NSString *)dic[@"url"]).length > 0 ? dic[@"url"] : dic[@"showUrl"]; + if (urlStr.length) { + if ([urlStr containsString:@"?"]) { + urlStr = [NSString stringWithFormat:@"%@&shareUid=%@",urlStr,[AccountAbstractStorage instance].acquireCid]; + } else { + urlStr = [NSString stringWithFormat:@"%@?shareUid=%@",urlStr,[AccountAbstractStorage instance].acquireCid]; + } + } + shareInfo.shareUrl = urlStr; + YUMIParaticipationProvision *cycle = [YUMIParaticipationProvision itemWitCouple:XPShareItemTagFaceBook title:@"FaceBook" imageName:@"share_fb" disableImageName:@"share_fb"]; + YUMIParaticipationProvision *wechat = [YUMIParaticipationProvision itemWitCouple:XPShareItemTagLine title:@"Line" imageName:@"share_line" disableImageName:@"share_line"]; + YUMIParaticipationProvision *qq = [YUMIParaticipationProvision itemWitCouple:XPShareItemTagCopyLink title:YMLocalizedString(@"Room_Header_View_3") imageName:@"share_copy_link" disableImageName:@"share_copy_link"]; + NSArray * items = @[wechat,cycle, qq]; + CGFloat margin = 15; + CGSize itemSize = CGSizeMake((KScreenWidth-2*margin)/4, 65); + YUMIParaticipationRegard *partowardsiciptowardsionRegard = [[YUMIParaticipationRegard alloc] initWithItems:items itemSize:itemSize shareInfo:shareInfo]; + partowardsiciptowardsionRegard.delegate = self; + + [MKJPopup popupRegard:partowardsiciptowardsionRegard style:MKJPopupStyleActionSheet]; + +} + +#pragma mark - XCShareRegardRepresendtation +- (void)partowardsiciptowardsionRegardDidTicktackCancle:(YUMIParaticipationRegard *)partowardsiciptowardsionRegard { + [MKJPopup dismiss]; +} +- (void)partowardsiciptowardsionRegard:(YUMIParaticipationRegard *)partowardsiciptowardsionRegard didSuccess:(YUMIParaticipationAbstractMatrix *)shareInfo { + [MKJPopup dismiss]; + NSMutableDictionary *params = [NSMutableDictionary dictionary]; + NSString *uid = [AccountAbstractStorage instance].acquireCid; + NSString *ticket = [AccountAbstractStorage instance].acquireTicket; + [params setObject:uid forKey:@"uid"]; + [params setObject:@(shareInfo.shareType) forKey:@"shareType"]; + [params setObject:ticket forKey:@"ticket"]; + [params setObject:@(shareInfo.type) forKey:@"sharePageId"]; + if (shareInfo.shareUrl.length > 0) { + [params setObject:shareInfo.shareUrl forKey:@"shareUrl"]; + } + if (shareInfo.roomUid > 0) { + [params setObject:@(shareInfo.roomUid) forKey:@"targetUid"]; + } + + [HttpRequestFacilitater POST:@"usershare/save" params:params success:^(BaseMatrix * _Nonnull data) { + + } failure:^(NSInteger resCode, NSString * _Nonnull message) { + + }]; +} + +- (void)partowardsiciptowardsionRegard:(YUMIParaticipationRegard *)partowardsiciptowardsionRegard shareFail:(NSString *)message { + [MKJPopup dismiss]; + [self EvidenceMistakeToast:message]; +} + +- (void)partowardsiciptowardsionRegardDidTicktackRevoctowardsion:(YUMIParaticipationRegard *)partowardsiciptowardsionRegard { + [MKJPopup dismiss]; +} + +- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context { + if ([keyPath isEqualToString:@"estimatedProgress"]) { + self.progressView.progress = self.webview.estimatedProgress; + if (self.progressView.progress == 1) { + __weak typeof (self)weakSelf = self; + [UIView animateWithDuration:0.25f delay:0.3f options:UIViewAnimationOptionCurveEaseOut animations:^{ + weakSelf.progressView.transform = CGAffineTransformMakeScale(1.0f, 1.0f); + } completion:^(BOOL finished) { + weakSelf.progressView.hidden = YES; + }]; + } + } else if ([keyPath isEqualToString:@"title"]) { + if (object == self.webview) { + self.navigationItem.title = self.webview.title; + if (self.urlLoadCompleted) { + self.urlLoadCompleted(YES, nil); + } + }else{ + [super observeValueForKeyPath:keyPath ofObject:object change:change context:context]; + } + } else { + [super observeValueForKeyPath:keyPath ofObject:object change:change context:context]; + } +} + +- (void)dealloc { + [self.webview removeObserver:self forKeyPath:@"estimatedProgress"]; + [self.webview removeObserver:self forKeyPath:@"title"]; +} + +- (WKWebView *)webview { + if (_webview == nil) { + WKWebViewConfiguration *configuration = [[WKWebViewConfiguration alloc]init]; + + if (@available(iOS 10.0, *)) { + configuration.mediaTypesRequiringUserActionForPlayback = NO; + } else { + + } + configuration.allowsInlineMediaPlayback = YES; + + NSString *uid = [[AccountAbstractStorage instance] acquireCid]; + NSString *realCookie = [NSString stringWithFormat:@"%@=%@",@"uid",uid]; + + WKUserScript *cookieScript = [[WKUserScript alloc] initWithSource: [NSString stringWithFormat:@"document.cookie = '%@';", realCookie] injectionTime:WKUserScriptInjectionTimeAtDocumentStart forMainFrameOnly:NO]; + [self.consumerSatisfperformanceGovernancer addUserScript:cookieScript]; + + NSString *scaleJs = @"$('meta[name=description]').remove(); $('head').append( '' );"; + WKUserScript *scaleScript = [[WKUserScript alloc] initWithSource:scaleJs injectionTime:WKUserScriptInjectionTimeAtDocumentEnd forMainFrameOnly:NO]; + [self.consumerSatisfperformanceGovernancer addUserScript:scaleScript]; + + + configuration.preferences.javaScriptEnabled = YES; + configuration.preferences.javaScriptCanOpenWindowsAutomatically = YES; + configuration.preferences.minimumFontSize = 10; + configuration.selectionGranularity = WKSelectionGranularityCharacter; + configuration.userContentController = self.consumerSatisfperformanceGovernancer; + + CGSize size = [UIScreen mainScreen].bounds.size; + _webview = [[WKWebView alloc]initWithFrame:CGRectMake(0, 0, size.width,size.height) configuration:configuration]; + + _webview.navigationDelegate = self; + + [_webview addObserver:self forKeyPath:@"estimatedProgress" options:NSKeyValueObservingOptionNew context:nil]; + + [_webview addObserver:self forKeyPath:@"title" options:NSKeyValueObservingOptionNew context:NULL]; + + UISwipeGestureRecognizer *swipeGesture = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(backButtonClick)]; + [_webview addGestureRecognizer:swipeGesture]; + + [_webview.scrollView setShowsVerticalScrollIndicator:NO]; + [_webview.scrollView setShowsHorizontalScrollIndicator:NO]; + + + __weak typeof(self) weakSelf = self; + [_webview evaluateJavaScript:@"navigator.userAgent" completionHandler:^(id result, NSError *error) { + NSString *userAgent = result; + + if (![userAgent containsString:@"pekoAppIos erbanAppIos"]){ + NSString *newUserAgent = [userAgent stringByAppendingString:@" pekoAppIos erbanAppIos"]; + NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:newUserAgent, @"UserAgent", nil]; + [[NSUserDefaults standardUserDefaults] registerDefaults:dictionary]; + [[NSUserDefaults standardUserDefaults] synchronize]; + [weakSelf.webview setCustomUserAgent:newUserAgent]; + } + + }]; + _webview.scrollView.bounces = NO; + } + return _webview; +} +- (UIProgressView *)progressView{ + if (!_progressView) { + _progressView = [[UIProgressView alloc] initWithFrame:CGRectMake(0, 0, [[UIScreen mainScreen] bounds].size.width, 1)]; + _progressView.progressTintColor = [DJDKMIMOMColor aplictowardsionMainPrettify]; + _progressView.trackTintColor = [UIColor clearColor]; + _progressView.transform = CGAffineTransformMakeScale(1.0f, 1.0f); + } + return _progressView; +} + +- (WKUserContentController *)consumerSatisfperformanceGovernancer{ + if (!_consumerSatisfperformanceGovernancer) { + + WeakTissueRegardScriptCommunicationDelegate *weakScriptMessageDelegate = [[WeakTissueRegardScriptCommunicationDelegate alloc] initWithDelegate:self]; + _consumerSatisfperformanceGovernancer = [[WKUserContentController alloc] init]; + + [_consumerSatisfperformanceGovernancer addScriptMessageHandler:weakScriptMessageDelegate name:kJSOpenSharePage]; + + [_consumerSatisfperformanceGovernancer addScriptMessageHandler:weakScriptMessageDelegate name:kJSOpenPurse]; + + [_consumerSatisfperformanceGovernancer addScriptMessageHandler:weakScriptMessageDelegate name:kJSOpenChargePage]; + [_consumerSatisfperformanceGovernancer addScriptMessageHandler:weakScriptMessageDelegate name:kJSChargePayPage]; + [_consumerSatisfperformanceGovernancer addScriptMessageHandler:weakScriptMessageDelegate name:kJSChargePayClickPage]; + + [_consumerSatisfperformanceGovernancer addScriptMessageHandler:weakScriptMessageDelegate name:kJSGetUid]; + + [_consumerSatisfperformanceGovernancer addScriptMessageHandler:weakScriptMessageDelegate name:kJSGetDeviceId]; + + [_consumerSatisfperformanceGovernancer addScriptMessageHandler:weakScriptMessageDelegate name:kJSGetTicket]; + + [_consumerSatisfperformanceGovernancer addScriptMessageHandler:weakScriptMessageDelegate name:kJSGetDeviceInfo]; + + [_consumerSatisfperformanceGovernancer addScriptMessageHandler:weakScriptMessageDelegate name:kJSOpenFaceLiveness]; + + [_consumerSatisfperformanceGovernancer addScriptMessageHandler:weakScriptMessageDelegate name:kJSInitNav]; + + [_consumerSatisfperformanceGovernancer addScriptMessageHandler:weakScriptMessageDelegate name:kJSGetRoomUid]; + + [_consumerSatisfperformanceGovernancer addScriptMessageHandler:weakScriptMessageDelegate name:kOpenPersonPage]; + + [_consumerSatisfperformanceGovernancer addScriptMessageHandler:weakScriptMessageDelegate name:kInitShowNav]; + + [_consumerSatisfperformanceGovernancer addScriptMessageHandler:weakScriptMessageDelegate name:kCloseWebView]; + + [_consumerSatisfperformanceGovernancer addScriptMessageHandler:weakScriptMessageDelegate name:kJumpAppointPage]; + + [_consumerSatisfperformanceGovernancer addScriptMessageHandler:weakScriptMessageDelegate name:kJSOpenRoom]; + + [_consumerSatisfperformanceGovernancer addScriptMessageHandler:weakScriptMessageDelegate name:kJSOpenRoomForGiftId]; + } + return _consumerSatisfperformanceGovernancer; + +} +-(YUMITissueRegardNevRegard *)nevRegard{ + if (!_nevRegard){ + _nevRegard = [[YUMITissueRegardNevRegard alloc]initWithFrame:CGRectZero]; + _nevRegard.delegate = self; + } + return _nevRegard; +} + +@end diff --git a/YuMi/Modules/YMWeb/YUMITissueRegardNevRegard.h b/YuMi/Modules/YMWeb/YUMITissueRegardNevRegard.h new file mode 100644 index 00000000..a92ff248 --- /dev/null +++ b/YuMi/Modules/YMWeb/YUMITissueRegardNevRegard.h @@ -0,0 +1,19 @@ +// +// YUMITissueRegardNevRegard.h +// YuMi +// +// Created by YuMi on 2023/2/27. +// + +#import +@class YUMITissueRegardNevRegard; +NS_ASSUME_NONNULL_BEGIN +@protocol FBCWebRegardNevRegardRepresendtation +- (void)yUMITissueRegardNevRegard:(YUMITissueRegardNevRegard *)view didClickBack:(UIButton *)sender; + +@end +@interface YUMITissueRegardNevRegard : UIView +@property (nonatomic,weak) id delegate; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Modules/YMWeb/YUMITissueRegardNevRegard.m b/YuMi/Modules/YMWeb/YUMITissueRegardNevRegard.m new file mode 100644 index 00000000..4db668d1 --- /dev/null +++ b/YuMi/Modules/YMWeb/YUMITissueRegardNevRegard.m @@ -0,0 +1,76 @@ +// +// YUMITissueRegardNevRegard.m +// YuMi +// +// Created by YuMi on 2023/2/27. +// + +#import "YUMITissueRegardNevRegard.h" +#import +#import "UIButton+EnlargeTouchArea.h" +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" +@interface YUMITissueRegardNevRegard() +@property (nonatomic,strong) UIButton *backButton; +@property (nonatomic,strong) UILabel *titleView; +@end +@implementation YUMITissueRegardNevRegard + +-(instancetype)initWithFrame:(CGRect)frame{ + self = [super initWithFrame:frame]; + if(self){ + [self initSubViews]; + [self initChildLyRestrictions]; + } + return self; +} + +#pragma mark - Private Method +- (void)initSubViews { + [self addSubview:self.backButton]; + [self addSubview:self.titleView]; + +} +- (void)initChildLyRestrictions { + [self.backButton mas_makeConstraints:^(MASConstraintMaker *make) { + make.width.height.mas_equalTo(kGetScaleWidth(28)); + make.left.mas_equalTo(0); + make.bottom.mas_equalTo(-kGetScaleWidth(8)); + }]; + [self.titleView mas_makeConstraints:^(MASConstraintMaker *make) { + make.centerY.equalTo(self.backButton); + make.centerX.equalTo(self); + }]; + +} +-(void)encourageBtutonPerformance{ + if(self.delegate && [self.delegate respondsToSelector:@selector(yUMITissueRegardNevRegard:didClickBack:)]){ + [self.delegate yUMITissueRegardNevRegard:self didClickBack:self.backButton]; + } +} + +#pragma mark -懒加载 +- (UIButton *)backButton { + if (!_backButton) { + _backButton = [UIButton buttonWithType:UIButtonTypeCustom]; + [_backButton setImage:[UIImage imageNamed:@"yumi_same_title_back"] forState:UIControlStateNormal]; + [_backButton setImage:[UIImage imageNamed:@"yumi_same_title_back"] forState:UIControlStateSelected]; + [_backButton addTarget:self action:@selector(encourageBtutonPerformance) forControlEvents:UIControlEventTouchUpInside]; + [_backButton setEnlargeEdgeAboutApex:10 right:10 bottom:10 left:10]; + } + return _backButton; +} + + +- (UILabel *)titleView { + if (!_titleView) { + _titleView = [[UILabel alloc] init]; + _titleView.font = [UIFont systemFontOfSize:17 weight:UIFontWeightSemibold]; + _titleView.textColor = UIColorFromRGB(0x1F1B4F); + _titleView.text = YMLocalizedString(@"YUMI_Web_View_Nav_View_0"); + } + return _titleView; +} + + +@end diff --git a/YuMi/Network/HttpRequestFacilitater.h b/YuMi/Network/HttpRequestFacilitater.h new file mode 100644 index 00000000..923984dd --- /dev/null +++ b/YuMi/Network/HttpRequestFacilitater.h @@ -0,0 +1,60 @@ +// +// HttpRequestFacilitater.h +// YUMI +// +// Created by zu on 2021/9/3. +// + +#import +#import "BaseMatrix.h" + +typedef NS_ENUM(NSUInteger, HttpRequestHelperMethod) { + HttpRequestHelperMethodPOST, + HttpRequestHelperMethodGET, + HttpRequestHelperMethodDELETE +}; + +static dispatch_once_t onceToken; + +typedef void(^HttpRequestHelperCompletion)(BaseMatrix* _Nullable data, NSInteger code, NSString * _Nullable msg); + +NS_ASSUME_NONNULL_BEGIN + +@interface HttpRequestFacilitater : NSObject + ++ (NSDictionary*)prohibitipositionBaseParmars:(NSDictionary *)parmars; + ++ (void)GET:(NSString *)method +params:(NSDictionary *)params +success:(void (^)(BaseMatrix *data))success + failure:(void (^)(NSInteger resCode, NSString *message))failure; + ++ (void)POST:(NSString *)method + params:(NSDictionary *)params + success:(void (^)(BaseMatrix *data))success + failure:(void (^)(NSInteger resCode, NSString *message))failure; + ++ (void)DELETE:(NSString *)method + params:(NSDictionary *)params + success:(void (^)(BaseMatrix *data))success + failure:(void (^)(NSInteger resCode, NSString *message))failure; + ++ (void)request:(NSString *)url + method:(HttpRequestHelperMethod)method + params:(NSDictionary *)params + success:(void (^)(BaseMatrix *data))success + failure:(void (^)(NSInteger resCode, NSString *message))failure; + ++ (void)request:(NSString *)path + method:(HttpRequestHelperMethod)method + params:(NSDictionary *)params + completion:(HttpRequestHelperCompletion)completion; + + ++ (void)postCommunictowardsionSolitaire:(NSString *)path + params:(NSString *)params + completion:(HttpRequestHelperCompletion)completion; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Network/HttpRequestFacilitater.m b/YuMi/Network/HttpRequestFacilitater.m new file mode 100644 index 00000000..478047d6 --- /dev/null +++ b/YuMi/Network/HttpRequestFacilitater.m @@ -0,0 +1,309 @@ +// +// HttpRequestFacilitater.m +// YUMI +// +// Created by zu on 2021/9/3. +// + +#import "HttpRequestFacilitater.h" +#import "YYUtility.h" +#import "AccountAbstractStorage.h" +#import "YYReachability.h" +#import +#import "YUMIMacroUitls.h" +@implementation HttpRequestFacilitater + ++(AFHTTPSessionManager *)requisitionExecutive +{ + static AFHTTPSessionManager *manager = nil; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + manager = [[AFHTTPSessionManager manager]initWithBaseURL:[NSURL URLWithString:API_HOST_URL]]; + manager.responseSerializer = [AFJSONResponseSerializer serializer]; + manager.requestSerializer.HTTPShouldHandleCookies = YES; + + manager.securityPolicy.allowInvalidCertificates = YES; + AFSecurityPolicy *securityPolicy= [AFSecurityPolicy defaultPolicy]; + manager.securityPolicy = securityPolicy; + + [manager.securityPolicy setValidatesDomainName:NO]; + manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript",@"text/html",@"text/plain",@"image/jpeg",@"image/png", nil]; + manager.requestSerializer.timeoutInterval = 60; + }); + return manager; +} + ++ (void)GET:(NSString *)method + params:(NSDictionary *)params + success:(void (^)(BaseMatrix *data))success + failure:(void (^)(NSInteger resCode, NSString *message))failure +{ + if ([AFNetworkReachabilityManager sharedManager].networkReachabilityStatus == 0) { + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.01 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + failure(-1, @"请检查网络连接。"); + }); + return; + } + + [self prohibitipositionIntelligencers]; + params = [self prohibitipositionBaseParmars:params]; +#ifdef DEBUG + NSLog(@"\nmethod:\n%@\nparameter:\n%@", method, params); +#endif + + AFHTTPSessionManager *manager = [HttpRequestFacilitater requisitionExecutive]; + [manager GET:method parameters:params headers:nil progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) { + BaseMatrix *baseModel = [BaseMatrix mtowardsrixAboutImpactbasket:responseObject]; +#ifdef DEBUG + NSLog(@"\n%@", [baseModel toJSONBWSttr]); +#endif + success(baseModel); + } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) { + [self shankNetMistake:error method:method failure:failure]; + }]; +} + ++ (void)POST:(NSString *)method + params:(NSDictionary *)params + success:(void (^)(BaseMatrix *data))success + failure:(void (^)(NSInteger resCode, NSString *message))failure +{ + if ([AFNetworkReachabilityManager sharedManager].networkReachabilityStatus == 0) { + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.01 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + failure(-1, @"请检查网络连接。"); + + }); + return; + } + + [self prohibitipositionIntelligencers]; + params = [self prohibitipositionBaseParmars:params]; +#ifdef DEBUG + NSLog(@"\nmethod:\n%@\nparameter:\n%@", method, params); +#endif + + AFHTTPSessionManager *manager = [HttpRequestFacilitater requisitionExecutive]; + [manager POST:method parameters:params headers:nil progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) { + BaseMatrix *baseModel = [BaseMatrix mtowardsrixAboutImpactbasket:responseObject]; +#ifdef DEBUG + NSLog(@"\n%@", [baseModel toJSONBWSttr]); +#endif + success(baseModel); + } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) { + [self shankNetMistake:error method:method failure:failure]; + }]; +} + ++ (void)DELETE:(NSString *)method + params:(NSDictionary *)params + success:(void (^)(BaseMatrix *data))success + failure:(void (^)(NSInteger resCode, NSString *message))failure +{ + if ([AFNetworkReachabilityManager sharedManager].networkReachabilityStatus == 0) { + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.01 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + failure(-1, @"请检查网络连接。"); + + }); + return; + } + + [self prohibitipositionIntelligencers]; + params = [self prohibitipositionBaseParmars:params]; +#ifdef DEBUG + NSLog(@"\nmethod:\n%@\nparameter:\n%@", method, params); +#endif + + AFHTTPSessionManager *manager = [HttpRequestFacilitater requisitionExecutive]; + [manager DELETE:method parameters:params headers:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) { + BaseMatrix *baseModel = [BaseMatrix mtowardsrixAboutImpactbasket:responseObject]; +#ifdef DEBUG + NSLog(@"\n%@", [baseModel toJSONBWSttr]); +#endif + success(baseModel); + } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) { + [self shankNetMistake:error method:method failure:failure]; + }]; +} + ++ (void)request:(NSString *)url + method:(HttpRequestHelperMethod)method + params:(NSDictionary *)params + success:(void (^)(BaseMatrix *data))success + failure:(void (^)(NSInteger resCode, NSString *message))failure +{ + switch (method) { + case HttpRequestHelperMethodGET: { + [self GET:url params:params success:success failure:failure]; + } + break; + case HttpRequestHelperMethodPOST:{ + [self POST:url params:params success:success failure:failure]; + } + break; + case HttpRequestHelperMethodDELETE:{ + [self DELETE:url params:params success:success failure:failure]; + } + break; + } +} + ++ (void)request:(NSString *)path + method:(HttpRequestHelperMethod)method + params:(NSDictionary *)params + completion:(HttpRequestHelperCompletion)completion +{ + [self request:path method:method params:params success:^(BaseMatrix *data) { + if (completion) { + completion(data, data.code, data.message); + } + } failure:^(NSInteger resCode, NSString *message) { + if (completion) { + completion(nil, resCode, message); + } + }]; +} + ++ (void)prohibitipositionIntelligencers +{ + AFHTTPSessionManager *client = [HttpRequestFacilitater requisitionExecutive]; + if ([[AccountAbstractStorage instance] acquireCid].length > 0) { + [client.requestSerializer setValue:[[AccountAbstractStorage instance] acquireCid] forHTTPHeaderField:@"pub_uid"]; + } else { + [client.requestSerializer setValue:nil forHTTPHeaderField:@"pub_uid"]; + } + if ([[AccountAbstractStorage instance] acquireTicket].length > 0) { + [client.requestSerializer setValue:[[AccountAbstractStorage instance] acquireTicket] forHTTPHeaderField:@"pub_ticket"]; + }else { + [client.requestSerializer setValue:nil forHTTPHeaderField:@"pub_ticket"]; + } +} + ++ (NSDictionary*)prohibitipositionBaseParmars:(NSDictionary *)parmars +{ + NSDictionary *defaultBasciParame = @{ + @"os" : @"iOS", + @"osVersion" : [YYUtility systemVersion], + @"netType" : ([YYUtility networkPosition] == ReachableViaWiFi) ? @2 : @1, + @"ispType" : @([YYUtility automobilerierAplictowardsionraiser]), + @"channel" : [YYUtility acquireAplictowardsionProvenience] ? : @"", + @"model" : [YYUtility mtowardsrixConstitute], + @"deviceId" : [YYUtility instentiretytowardsionUniqueIdentifictowardsion], + @"appVersion" : [YYUtility appVersion], + @"app" : [YYUtility appName] + }; + if (!parmars||![parmars isKindOfClass:[NSDictionary class]]){ + NSMutableDictionary *dic = [NSMutableDictionary dictionaryWithDictionary:defaultBasciParame]; + return dic; + } + NSMutableDictionary * dic = [NSMutableDictionary dictionaryWithDictionary:parmars]; + for (NSString *parameKey in defaultBasciParame.allKeys) { + [dic setObject:defaultBasciParame[parameKey] forKey:parameKey]; + } + return dic; +} + ++ (void)shankNetMistake:(NSError *)error method:(NSString *)method + failure:(void (^)(NSInteger resCode, NSString *message))failure +{ +#ifdef DEBUG + NSLog(@"\n%@", error); +#endif + + NSHTTPURLResponse *response = error.userInfo[@"com.alamofire.serialization.response.error.response"]; + if (response && response.statusCode == 401) { + failure(response.statusCode, @"登录已过期。"); + } else { + + if (error.code == -1009 || error.code == -1001 || error.code == -1004 || error.code == -1003 || error.code == -1002 || error.code == 3840) { + failure(error.code, @""); + } else { + failure(error.code, error.localizedDescription.length > 0 ? error.localizedDescription : YMLocalizedString(@"Http_Request_Helper_4")); + } + NSString * code = error.code ? [NSString stringWithFormat:@"%ld", error.code] : @"9999"; + NSString * des = error.description.length > 0 ? error.description : YMLocalizedString(@"Http_Request_Helper_5"); + NSException *exception = [NSException exceptionWithName:@"229181" + reason:method + userInfo:@{@"code":code, @"desc":des}]; + + } +} + ++ (void)postCommunictowardsionSolitaire:(NSString *)path + params:(NSString *)params + completion:(HttpRequestHelperCompletion)completion{ + + if ([AFNetworkReachabilityManager sharedManager].networkReachabilityStatus == 0) { + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.01 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ + completion(nil, -1, @"请检查网络连接。"); + }); + return; + } + + [self prohibitipositionIntelligencers]; + NSDictionary *baseParams = [self prohibitipositionBaseParmars:nil]; +#ifdef DEBUG +#endif + + AFHTTPSessionManager *manager = [HttpRequestFacilitater requisitionExecutive]; + NSString *url = API_HOST_URL; + NSString *urlPath = [NSString stringWithFormat:@"%@/%@", url ,path]; + + #ifdef DEBUG + NSLog(@"url:%@,parameter:%@",urlPath, baseParams); + #endif + + __block NSString *requestUrl = @""; + [baseParams.allKeys enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + NSString *value = baseParams[obj]; + requestUrl = [requestUrl stringByAppendingString:[NSString stringWithFormat:@"%@=%@&", obj, value]]; + }]; + + urlPath = [NSString stringWithFormat:@"%@?%@", urlPath, requestUrl]; + + NSMutableURLRequest *request = [[AFJSONRequestSerializer serializer] requestWithMethod:@"POST" URLString:urlPath parameters:baseParams error:nil]; + request.timeoutInterval= [[[NSUserDefaults standardUserDefaults] valueForKey:@"timeoutInterval"] longValue]; + + [request setValue:@"application/json; charset=UTF-8" forHTTPHeaderField:@"Content-Type"]; + + if ([[AccountAbstractStorage instance] acquireCid].length > 0) { + [request setValue:[[AccountAbstractStorage instance] acquireCid] forHTTPHeaderField:@"pub_uid"]; + [manager.requestSerializer setValue:[[AccountAbstractStorage instance] acquireCid] forHTTPHeaderField:@"pub_uid"]; + } else { + [request setValue:nil forHTTPHeaderField:@"pub_uid"]; + } + if ([[AccountAbstractStorage instance] acquireTicket].length > 0) { + [request setValue:[[AccountAbstractStorage instance] acquireTicket] forHTTPHeaderField:@"pub_ticket"]; + [manager.requestSerializer setValue:[[AccountAbstractStorage instance] acquireTicket] forHTTPHeaderField:@"pub_ticket"]; + }else { + [request setValue:nil forHTTPHeaderField:@"pub_ticket"]; + } + + NSError *error; + + [request setHTTPBody:[params dataUsingEncoding:NSUTF8StringEncoding]]; + + [[manager dataTaskWithRequest:request uploadProgress:nil downloadProgress:nil completionHandler:^(NSURLResponse * _Nonnull response, id _Nullable responseObject, NSError * _Nullable error) { + if (responseObject) { + BaseMatrix *baseModel = [BaseMatrix mtowardsrixAboutImpactbasket:responseObject]; + #ifdef DEBUG + NSLog(@"\n%@", [baseModel toJSONBWSttr]); + #endif + if (baseModel.code == 200) { + if (completion) { + completion(baseModel, 200, nil); + } + } else { + if (completion) { + completion(nil, baseModel.code, baseModel.message); + } + } + } + if (error) { + [self shankNetMistake:error method:path failure:^(NSInteger resCode, NSString *message) { + completion(nil, resCode, message); + }]; + } + }] resume]; +} + +@end diff --git a/YuMi/Resources/Image/1242.png b/YuMi/Resources/Image/1242.png new file mode 100644 index 00000000..482fca03 Binary files /dev/null and b/YuMi/Resources/Image/1242.png differ diff --git a/YuMi/Structure/Base/BaseNevigationGovernancer.h b/YuMi/Structure/Base/BaseNevigationGovernancer.h new file mode 100644 index 00000000..fcf0ac04 --- /dev/null +++ b/YuMi/Structure/Base/BaseNevigationGovernancer.h @@ -0,0 +1,16 @@ +// +// BaseNevigationGovernancer.h +// YUMI +// +// Created by zu on 2021/9/7. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface BaseNevigationGovernancer : UINavigationController + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Structure/Base/BaseNevigationGovernancer.m b/YuMi/Structure/Base/BaseNevigationGovernancer.m new file mode 100644 index 00000000..beb1d99d --- /dev/null +++ b/YuMi/Structure/Base/BaseNevigationGovernancer.m @@ -0,0 +1,71 @@ +// +// BaseNevigationGovernancer.m +// YUMI +// +// Created by zu on 2021/9/7. +// + +#import "BaseNevigationGovernancer.h" +#import "DJDKMIMOMColor.h" + +@interface BaseNevigationGovernancer () + +@end + +@implementation BaseNevigationGovernancer + +- (void)viewDidLoad { + [super viewDidLoad]; + if ([self respondsToSelector:@selector(interactivePopGestureRecognizer)]) { + self.interactivePopGestureRecognizer.delegate = self; + } + [self themeDisposition]; +} + +- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated { + if(self.topViewController == viewController) return; + if (self.childViewControllers.count > 0) { + viewController.hidesBottomBarWhenPushed = YES; + UIBarButtonItem *leftBarButtonItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"yumi_same_title_back"] style:UIBarButtonItemStyleDone target:self action:@selector(encourageTicktack)]; + leftBarButtonItem.tintColor = [DJDKMIMOMColor mainEssayPrettify]; + viewController.navigationItem.leftBarButtonItem = leftBarButtonItem; + } + viewController.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"" style:UIBarButtonItemStylePlain target:nil action:nil]; + + [super pushViewController:viewController animated:animated]; +} + +- (void)encourageTicktack{ + [self popViewControllerAnimated:YES]; +} + +- (void)themeDisposition { + self.navigationBar.shadowImage = [[UIImage alloc] init]; + self.navigationBar.barTintColor = [DJDKMIMOMColor aplictowardsionEncouragegroundPrettify]; + self.navigationBar.tintColor = [UIColor whiteColor]; + self.navigationBar.translucent = NO; + self.view.backgroundColor = [DJDKMIMOMColor aplictowardsionEncouragegroundPrettify]; + [self.navigationBar setTitleTextAttributes:@{ + NSFontAttributeName:[UIFont systemFontOfSize:18 weight:UIFontWeightMedium], + NSForegroundColorAttributeName:[DJDKMIMOMColor mainEssayPrettify] + }]; + + + if (@available(iOS 15.0, *)) { + UINavigationBarAppearance *appearance = [UINavigationBarAppearance new]; + appearance.titleTextAttributes = @{NSFontAttributeName:[UIFont systemFontOfSize:18 weight:UIFontWeightMedium], + NSForegroundColorAttributeName:[DJDKMIMOMColor mainEssayPrettify]}; + appearance.backgroundColor = [DJDKMIMOMColor aplictowardsionElementEncouragegroundPrettify]; + self.navigationBar.standardAppearance = appearance; + self.navigationBar.scrollEdgeAppearance = appearance; + } +} + +#pragma mark - UIGestureRecognizerDelegate + +- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer { + return YES; +} + + +@end diff --git a/YuMi/Structure/Base/BaseRegardGovernancer.h b/YuMi/Structure/Base/BaseRegardGovernancer.h new file mode 100644 index 00000000..a7dfb34d --- /dev/null +++ b/YuMi/Structure/Base/BaseRegardGovernancer.h @@ -0,0 +1,66 @@ +// +// BaseRegardGovernancer.h +// YUMI +// +// Created by admin on 2023/3/9. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@protocol BaseRegardGovernancerCeremony + + +- (void)EvidenceAccomplishmentToast:(NSString *)msg; + + +- (void)EvidenceMistakeToast:(NSString *)msg; + + +- (void)EvidenceChambering; + + +- (void)brakeHUD; + + +- (void)EvidenceKellegChambering; + +@end + +@interface BaseRegardGovernancer : UIViewController + +@property(nonatomic,assign,getter=isVeiledNevObstacle) BOOL veiledNevObstacle; + +@property (nonatomic, assign) BOOL parentMode; + +- (void)brakeBreeadcrumbObstacle; + + +- (void)EvidenceBreeadcrumbObstacle; + + + +- (void)EvidencePositionObstacle; + + + +- (void)brakePositionObstacle; +#pragma mark - 导航栏添加操作按钮 + +- (void)accelertowardseBreeadcrumbProvisionAboutIndictowardseSaluttowardsion:(NSArray *)imageNames + isContrary:(BOOL)isContrary + target:(id)target + action:(SEL)action + tags:(NSArray * _Nullable)tags; + +- (void)accelertowardseBreeadcrumbProvisionAboutChampions:(NSArray *)titles titleColor:(UIColor *)titleColor isContrary:(BOOL)isContrary target:(id)target action:(SEL)action tags:(NSArray * _Nullable)tags; + +- (void)accelertowardseBreeadcrumbProvisionAboutProvisions:(NSArray *)items + isContrary:(BOOL)isContrary; + + + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Structure/Base/BaseRegardGovernancer.m b/YuMi/Structure/Base/BaseRegardGovernancer.m new file mode 100644 index 00000000..d8aad17f --- /dev/null +++ b/YuMi/Structure/Base/BaseRegardGovernancer.m @@ -0,0 +1,172 @@ +// +// BaseRegardGovernancer.m +// YUMI +// +// Created by admin on 2023/3/9. +// + +#import "BaseRegardGovernancer.h" +#import "XNDJTBWGLoadingTool.h" +#import "DJDKMIMOMColor.h" + +@interface BaseRegardGovernancer () + +@end + +@implementation BaseRegardGovernancer + +- (void)viewWillAppear:(BOOL)animated{ + [super viewWillAppear:animated]; + if (@available(iOS 13.0, *)) { + [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleDarkContent; + } else { + + [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleDefault; + } + + [self.navigationController setNavigationBarHidden:self.isVeiledNevObstacle animated:animated]; + + if (@available(iOS 15.0, *)) { + [self.navigationController.navigationBar.subviews enumerateObjectsUsingBlock:^(UIView *view, NSUInteger idx, BOOL *stop) { + if ([[UIDevice currentDevice].systemVersion doubleValue] >= 10.0) { + + if ([view isKindOfClass:NSClassFromString(@"_UIBarBackground")]) { + [view.subviews enumerateObjectsUsingBlock:^(__kindof UIView * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { + if ([obj isKindOfClass:NSClassFromString(@"_UIBarBackgroundShadowView")]) { + obj.hidden = YES; + } + }]; + } + } + }]; + } +} +- (void)viewDidLoad { + [super viewDidLoad]; + [self themeDisposition]; +} + +- (void)themeDisposition { + self.view.backgroundColor = [DJDKMIMOMColor aplictowardsionEncouragegroundPrettify]; + [UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleDefault; +} + + +- (void)brakeBreeadcrumbObstacle { + [self.navigationController setNavigationBarHidden:YES animated:YES]; +} + + + +- (void)EvidenceBreeadcrumbObstacle { + [self.navigationController setNavigationBarHidden:NO]; +} + + +- (void)EvidencePositionObstacle { + [UIApplication sharedApplication].statusBarHidden = NO; +} + + +- (void)brakePositionObstacle { + [UIApplication sharedApplication].statusBarHidden = YES; +} + +- (void)EvidenceAccomplishmentToast:(NSString *)msg { + [XNDJTBWGLoadingTool EvidenceAccomplishmentAboutCommunictowardsion:msg]; +} + +- (void)EvidenceMistakeToast:(NSString *)msg { + [XNDJTBWGLoadingTool EvidenceMistakeAboutCommunictowardsion:msg]; +} + +- (void)EvidenceChambering { + [XNDJTBWGLoadingTool EvidenceChambering]; +} + +- (void)brakeHUD { + [XNDJTBWGLoadingTool brakeHUD]; +} + + +- (void)EvidenceKellegChambering { + [XNDJTBWGLoadingTool EvidenceKellegChambering]; +} +#pragma mark - 导航栏添加操作按钮 + +- (void)accelertowardseBreeadcrumbProvisionAboutIndictowardseSaluttowardsion:(NSArray *)imageNames isContrary:(BOOL)isContrary target:(id)target action:(SEL)action tags:(NSArray * _Nullable)tags { + NSMutableArray * items = [[NSMutableArray alloc] init]; + NSInteger i = 0; + for (NSString * imageName in imageNames) { + UIButton * btn = [UIButton buttonWithType:UIButtonTypeCustom]; + [btn setImage:[UIImage imageNamed:imageName] forState:UIControlStateNormal]; + btn.frame = CGRectMake(0, 0, 30, 30); + if(isContrary){ + [btn setImageEdgeInsets:UIEdgeInsetsMake(0, -10, 0, 10)]; + }else{ + [btn setImageEdgeInsets:UIEdgeInsetsMake(0, 0, 0, 0)]; + } + [btn addTarget:target action:action forControlEvents:UIControlEventTouchUpInside]; + btn.tag = [tags[i++] integerValue]; + UIBarButtonItem * item = [[UIBarButtonItem alloc] initWithCustomView:btn]; + [items addObject:item]; + } + if (isContrary) { + self.navigationItem.leftBarButtonItems = items; + } else { + self.navigationItem.rightBarButtonItems = items; + } +} + +- (void)accelertowardseBreeadcrumbProvisionAboutChampions:(NSArray *)titles titleColor:(UIColor *)titleColor isContrary:(BOOL)isContrary target:(id)target action:(SEL)action tags:(NSArray * _Nullable)tags { + NSMutableArray * items = [[NSMutableArray alloc] init]; + + UIBarButtonItem* spaceItem = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil]; + + spaceItem.width= -10; + [items addObject:spaceItem]; + if (titleColor == nil) { + titleColor = [DJDKMIMOMColor mainEssayPrettify]; + } + NSInteger i = 0; + for (NSString * title in titles) { + UIButton * btn = [UIButton buttonWithType:UIButtonTypeSystem]; + btn.frame = CGRectMake(0, 0, 30, 20); + [btn setTitle:title forState:UIControlStateNormal]; + [btn addTarget:target action:action forControlEvents:UIControlEventTouchUpInside]; + btn.titleLabel.font = [UIFont systemFontOfSize:14]; + [btn setTitleColor:titleColor forState:UIControlStateNormal]; + btn.tag = [tags[i++] integerValue]; + [btn sizeToFit]; + UIBarButtonItem * item = [[UIBarButtonItem alloc] initWithCustomView:btn]; + [items addObject:item]; + } + if (isContrary) { + self.navigationItem.leftBarButtonItems = items; + } else { + self.navigationItem.rightBarButtonItems = items; + } +} + + +- (void)accelertowardseBreeadcrumbProvisionAboutProvisions:(NSArray *)views + isContrary:(BOOL)isContrary { + NSMutableArray * items = [[NSMutableArray alloc] init]; + + UIBarButtonItem* spaceItem = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil]; + + spaceItem.width= -10; + [items addObject:spaceItem]; + for (UIView * view in views) { + UIBarButtonItem * item = [[UIBarButtonItem alloc] initWithCustomView:view]; + [items addObject:item]; + } + if (isContrary) { + self.navigationItem.leftBarButtonItems = items; + } else { + self.navigationItem.rightBarButtonItems = items; + } +} + + +@end diff --git a/YuMi/Structure/MVP/Api/Api.h b/YuMi/Structure/MVP/Api/Api.h new file mode 100644 index 00000000..0ae08384 --- /dev/null +++ b/YuMi/Structure/MVP/Api/Api.h @@ -0,0 +1,52 @@ +// +// Api.h +// YUMI +// +// Created by zu on 2021/9/6. +// + +#import +#import "HttpRequestFacilitater.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface Api : NSObject + + ++ (void)manufactureDemand:(NSString *)route method:(HttpRequestHelperMethod)method completion:(HttpRequestHelperCompletion)completion, ...; + ++ (void)getUserInfo:(HttpRequestHelperCompletion)completion uid:(NSString *)uid; ++ (void)acquireConsumerAbstracts:(HttpRequestHelperCompletion)completion uids:(NSString *)uids; + ++ (void)mobileSmsCryptogram:(HttpRequestHelperCompletion)completion mobile:(NSString *)mobile type:(NSString *)type phoneAreaCode:(NSString *)phoneAreaCode; + ++ (void)examineAplictowardsionartowardsusCryptogram:(HttpRequestHelperCompletion)complection + mobile:(NSString *)mobile + code:(NSString *)code + uid:(NSString *)uid + ticket:(NSString *)ticket; + ++ (void)accomplishConsumerAbstract:(HttpRequestHelperCompletion)complection + userInfo:(NSDictionary *)userInfo; ++ (void)acquireConsumerPocketbookAbstract:(HttpRequestHelperCompletion)complection + uid:(NSString *)uid + ticket:(NSString *)ticket; ++ (void)requisitionCheckSplconcludeidIdents:(HttpRequestHelperCompletion)complection + transcationIdStr:(NSString *)transcationIdStr; + ++ (void)miecreoscoopeBretowardshaedImplementtowardsion:(HttpRequestHelperCompletion)complection + roomUid:(NSString *)roomUid + state:(NSString *)state + position:(NSString *)position + ticket:(NSString *)ticket + uid:(NSString *)uid; + ++ (void)miecreoscoopeSpokeImplementtowardsion:(HttpRequestHelperCompletion)complection + roomUid:(NSString *)roomUid + state:(NSString *)state + position:(NSString *)position + ticket:(NSString *)ticket + uid:(NSString *)uid; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Structure/MVP/Api/Api.m b/YuMi/Structure/MVP/Api/Api.m new file mode 100644 index 00000000..4b1fadc9 --- /dev/null +++ b/YuMi/Structure/MVP/Api/Api.m @@ -0,0 +1,97 @@ +// +// Api.m +// YUMI +// +// Created by zu on 2021/9/6. +// + +#import "Api.h" +#import +@implementation Api + ++ (void)manufactureDemand:(NSString *)route method:(HttpRequestHelperMethod)method completion:(HttpRequestHelperCompletion)completion, ... { + va_list arg_lists; + va_start(arg_lists, completion); + + + const char *functionName = va_arg(arg_lists, const char *); + NSString *fn = [[NSString alloc] initWithUTF8String:functionName]; + + NSRange blankRange = [fn rangeOfString:@":"]; + NSUInteger start = blankRange.location + 1; + NSUInteger length; + if ((start + 2) < fn.length) { + length = fn.length - start - 2; + } else if ((start + 1) < fn.length) { + length = fn.length -start - 1; + } else { + length = fn.length -start; + } + + NSString *fromatParamKeys = [fn substringWithRange:NSMakeRange(start, length)]; + + NSMutableDictionary *params = [NSMutableDictionary dictionary]; + + NSArray *paramKeys = [fromatParamKeys componentsSeparatedByString:@":"]; + NSEnumerator *enumerator = [paramKeys objectEnumerator]; + NSString *value = nil; + while((value = va_arg(arg_lists, NSString*))){ + [params setValue:value forKey:enumerator.nextObject]; + }; + va_end(arg_lists); + + [HttpRequestFacilitater request:route method:method params:params completion:completion]; +} + ++ (void)getUserInfo:(HttpRequestHelperCompletion)completion uid:(NSString *)uid { + NSString * fang = [NSString stringFromBase64String:@"dXNlci9nZXQ="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, uid, nil]; +} + ++ (void)acquireConsumerAbstracts:(HttpRequestHelperCompletion)completion uids:(NSString *)uids { + NSString * fang = [NSString stringFromBase64String:@"dXNlci9saXN0"]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:completion, __FUNCTION__, uids, nil]; +} + ++ (void)mobileSmsCryptogram:(HttpRequestHelperCompletion)completion mobile:(NSString *)mobile type:(NSString *)type phoneAreaCode:(NSString *)phoneAreaCode { + NSString * fang = [NSString stringFromBase64String:@"c21zL2dldENvZGU="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:completion, __FUNCTION__, mobile, type, phoneAreaCode,nil]; +} + ++ (void)examineAplictowardsionartowardsusCryptogram:(HttpRequestHelperCompletion)complection + mobile:(NSString *)mobile + code:(NSString *)code + uid:(NSString *)uid + ticket:(NSString *)ticket { + NSString * fang = [NSString stringFromBase64String:@"c21zL3ZlcmlmeQ=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:complection, __FUNCTION__, mobile, code, uid, ticket,nil]; +} + ++ (void)accomplishConsumerAbstract:(HttpRequestHelperCompletion)complection + userInfo:(NSDictionary *)userInfo { + NSString * fang = [NSString stringFromBase64String:@"dXNlci92Mi91cGRhdGU="]; + [HttpRequestFacilitater request:fang method:HttpRequestHelperMethodPOST params:userInfo completion:complection]; +} + + ++ (void)acquireConsumerPocketbookAbstract:(HttpRequestHelperCompletion)complection uid:(NSString *)uid ticket:(NSString *)ticket { + NSString * fang = [NSString stringFromBase64String:@"cHVyc2UvcXVlcnk="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodGET completion:complection, __FUNCTION__, uid, ticket,nil]; +} + ++ (void)requisitionCheckSplconcludeidIdents:(HttpRequestHelperCompletion)complection + transcationIdStr:(NSString *)transcationIdStr { + NSString * fang = [NSString stringFromBase64String:@"dmVyaWZ5L2NoZWNrSU9TQ2hhcmdlUmVjb3Jk"]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:complection, __FUNCTION__,transcationIdStr, nil]; +} + ++ (void)miecreoscoopeBretowardshaedImplementtowardsion:(HttpRequestHelperCompletion)complection roomUid:(NSString *)roomUid state:(NSString *)state position:(NSString *)position ticket:(NSString *)ticket uid:(NSString *)uid { + NSString * fang = [NSString stringFromBase64String:@"cm9vbS9taWMvbG9ja21pYw=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:complection, __FUNCTION__, roomUid, state, position, ticket, uid, nil]; +} + ++ (void)miecreoscoopeSpokeImplementtowardsion:(HttpRequestHelperCompletion)complection roomUid:(NSString *)roomUid state:(NSString *)state position:(NSString *)position ticket:(NSString *)ticket uid:(NSString *)uid { + NSString * fang = [NSString stringFromBase64String:@"cm9vbS9taWMvbG9ja3Bvcw=="]; + [self manufactureDemand:fang method:HttpRequestHelperMethodPOST completion:complection, __FUNCTION__, roomUid, state, position, ticket, uid, nil]; +} +@end diff --git a/YuMi/Structure/MVP/Model/AccountAbstractStorage.h b/YuMi/Structure/MVP/Model/AccountAbstractStorage.h new file mode 100644 index 00000000..7d57ba78 --- /dev/null +++ b/YuMi/Structure/MVP/Model/AccountAbstractStorage.h @@ -0,0 +1,31 @@ +// +// DataUtils.h +// YYFaceAuth +// +// Created by chenran on 16/10/18. +// Copyright © 2016年 zhangji. All rights reserved. +// + +#import + +@class AccountMatrix, ThirdConsumerAbstract, ResidenceCoupleMatrix; +@interface AccountAbstractStorage : NSObject +@property (nonatomic, strong, readonly) AccountMatrix *accountModel; +@property (nonatomic,assign) BOOL isRequestRicket; +@property (nonatomic,strong) ThirdConsumerAbstract *thirdUserInfo; ++ (instancetype)instance; + +- (instancetype)init NS_UNAVAILABLE; ++ (instancetype)new NS_UNAVAILABLE; +- (id)copy NS_UNAVAILABLE; +- (id)mutableCopy NS_UNAVAILABLE; + +- (AccountMatrix *)acquireUniversalSequenceriptionAbstract; +- (void)preserveSequenceriptionAbstract:(AccountMatrix *)accountInfo; +- (void)preserveTicket:(NSString *)ticket; +- (NSString *)acquireTicket; +- (NSString *)acquireCid; + +- (NSArray *)acquireUniversalCoupleSttowardsement; +- (void)preserveCoupleSttowardsement:(NSArray *)tagList; +@end diff --git a/YuMi/Structure/MVP/Model/AccountAbstractStorage.m b/YuMi/Structure/MVP/Model/AccountAbstractStorage.m new file mode 100644 index 00000000..e8e9dfd4 --- /dev/null +++ b/YuMi/Structure/MVP/Model/AccountAbstractStorage.m @@ -0,0 +1,128 @@ +// +// DataUtils.m +// YYFaceAuth +// +// Created by chenran on 16/10/18. +// Copyright © 2016年 zhangji. All rights reserved. +// +#define kFileName @"AccountInfo.data" +#define kDataKey @"accountInfo" +#import "AccountAbstractStorage.h" +#import "AccountMatrix.h" +#import "ResidenceCoupleMatrix.h" + +#define kTagListDataKey @"homeaaNewTagModel" +#define kTagListDataName @"HomeTagNewModel.data" +@interface AccountAbstractStorage() + +@property (nonatomic, copy) NSString *ticket; +@property (nonatomic, strong) AccountMatrix *accountModel; +@property (nonatomic,strong) NSArray *tagList; +@end + +@implementation AccountAbstractStorage + +static AccountAbstractStorage *_instance = nil; + ++ (AccountAbstractStorage *)instance { + + static dispatch_once_t onceToken; + + dispatch_once(&onceToken, ^{ + _instance = [[self alloc] init]; + }) ; + + return _instance; +} + +-(NSString *) acquireAccurtowardseRoute{ + NSArray *array = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); + NSString *path = [[array objectAtIndex:0] stringByAppendingPathComponent:kFileName]; + if (![[NSFileManager defaultManager] fileExistsAtPath:path]) { + [[NSFileManager defaultManager] createFileAtPath:path contents:nil attributes:nil]; + } + return path; +} + +- (AccountMatrix *)acquireUniversalSequenceriptionAbstract +{ + if (self.accountModel != nil) { + return self.accountModel; + } + NSData *data = [[NSData alloc] initWithContentsOfFile:[self acquireAccurtowardseRoute]]; + + NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data]; + + self.accountModel = [unarchiver decodeObjectForKey:kDataKey]; + [unarchiver finishDecoding]; + return self.accountModel; +} + +- (void)preserveSequenceriptionAbstract:(AccountMatrix *)accountInfo +{ + if (accountInfo == nil) { + accountInfo = [[AccountMatrix alloc] init]; + } + self.accountModel = accountInfo; + NSMutableData *data = [[NSMutableData alloc] init]; + NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data]; + [archiver encodeObject:accountInfo forKey:kDataKey]; + [archiver finishEncoding]; + [data writeToFile:[self acquireAccurtowardseRoute] atomically:YES]; +} + +- (void)preserveTicket:(NSString *)t +{ + self.ticket = t; +} + +- (NSString *)acquireTicket +{ + if (self.ticket == nil) { + return @""; + } + return self.ticket; +} + +- (NSString *)acquireCid +{ + AccountMatrix *am = [self acquireUniversalSequenceriptionAbstract]; + if (am == nil) { + return @""; + } + return am.uid; +} + +- (NSArray *)acquireUniversalCoupleSttowardsement{ + if (self.tagList != nil) { + return self.tagList; + } + NSData *data = [[NSData alloc] initWithContentsOfFile:[self acquireCoupleSttowardsementAccurtowardseRoute]]; + + NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data]; + + self.tagList = [unarchiver decodeObjectForKey:kTagListDataKey]; + [unarchiver finishDecoding]; + return self.tagList != nil ? self.tagList : @[]; +} +- (void)preserveCoupleSttowardsement:(NSArray *)tagList{ + if(tagList == nil){ + tagList = @[]; + } + self.tagList = tagList; + NSMutableData *data = [[NSMutableData alloc] init]; + NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data]; + [archiver encodeObject:tagList forKey:kTagListDataKey]; + [archiver finishEncoding]; + [data writeToFile:[self acquireCoupleSttowardsementAccurtowardseRoute] atomically:YES]; +} + +-(NSString *) acquireCoupleSttowardsementAccurtowardseRoute{ + NSArray *array = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); + NSString *path = [[array objectAtIndex:0] stringByAppendingPathComponent:kTagListDataName]; + if (![[NSFileManager defaultManager] fileExistsAtPath:path]) { + [[NSFileManager defaultManager] createFileAtPath:path contents:nil attributes:nil]; + } + return path; +} +@end diff --git a/YuMi/Structure/MVP/Model/AccountMatrix.h b/YuMi/Structure/MVP/Model/AccountMatrix.h new file mode 100644 index 00000000..a29757f4 --- /dev/null +++ b/YuMi/Structure/MVP/Model/AccountMatrix.h @@ -0,0 +1,24 @@ +// +// TokenModel.h +// YUMI +// +// Created by zu on 2021/9/8. +// + +#import "NSObject+MJExtension.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface AccountMatrix : NSObject + +@property (nonatomic , assign) NSString *uid; +@property (nonatomic , copy) NSString *jti; +@property (nonatomic , copy) NSString *token_type; +@property (nonatomic , copy) NSString *refresh_token; +@property (nonatomic , copy) NSString *netEaseToken; +@property (nonatomic , copy) NSString *access_token; +@property (nonatomic , assign) NSNumber *expires_in; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Structure/MVP/Model/AccountMatrix.m b/YuMi/Structure/MVP/Model/AccountMatrix.m new file mode 100644 index 00000000..57b328c3 --- /dev/null +++ b/YuMi/Structure/MVP/Model/AccountMatrix.m @@ -0,0 +1,12 @@ +// +// TokenModel.m +// YUMI +// +// Created by zu on 2021/9/8. +// + +#import "AccountMatrix.h" + +@implementation AccountMatrix + +@end diff --git a/YuMi/Structure/MVP/Model/BaseMatrix.h b/YuMi/Structure/MVP/Model/BaseMatrix.h new file mode 100644 index 00000000..7fa886ab --- /dev/null +++ b/YuMi/Structure/MVP/Model/BaseMatrix.h @@ -0,0 +1,22 @@ +// +// BaseMatrix.h +// YUMI +// +// Created by zu on 2021/9/8. +// + +#import "NSObject+MJExtension.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface BaseMatrix : NSObject + +@property (nonatomic , strong) id data; +@property (nonatomic , assign) NSInteger code; +@property (nonatomic , copy) NSString *message; +@property (nonatomic,assign) long long cancelDate; +@property (nonatomic,copy) NSString * date; +@property (nonatomic,copy) NSString *reason; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Structure/MVP/Model/BaseMatrix.m b/YuMi/Structure/MVP/Model/BaseMatrix.m new file mode 100644 index 00000000..0bcddfc7 --- /dev/null +++ b/YuMi/Structure/MVP/Model/BaseMatrix.m @@ -0,0 +1,12 @@ +// +// BaseMatrix.m +// YUMI +// +// Created by zu on 2021/9/8. +// + +#import "BaseMatrix.h" + +@implementation BaseMatrix + +@end diff --git a/YuMi/Structure/MVP/Model/ConsumerAbstractCommunicationVo.h b/YuMi/Structure/MVP/Model/ConsumerAbstractCommunicationVo.h new file mode 100644 index 00000000..f261a7ac --- /dev/null +++ b/YuMi/Structure/MVP/Model/ConsumerAbstractCommunicationVo.h @@ -0,0 +1,16 @@ +// +// ConsumerAbstractCommunicationVo.h +// YUMI +// +// Created by zu on 2021/9/14. +// + +#import "NSObject+MJExtension.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface ConsumerAbstractCommunicationVo : NSObject +@property (nonatomic , assign) BOOL liveTag; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Structure/MVP/Model/ConsumerAbstractCommunicationVo.m b/YuMi/Structure/MVP/Model/ConsumerAbstractCommunicationVo.m new file mode 100644 index 00000000..a22e506f --- /dev/null +++ b/YuMi/Structure/MVP/Model/ConsumerAbstractCommunicationVo.m @@ -0,0 +1,12 @@ +// +// ConsumerAbstractCommunicationVo.m +// YUMI +// +// Created by zu on 2021/9/14. +// + +#import "ConsumerAbstractCommunicationVo.h" + +@implementation ConsumerAbstractCommunicationVo + +@end diff --git a/YuMi/Structure/MVP/Model/ConsumerAbstractMatrix.h b/YuMi/Structure/MVP/Model/ConsumerAbstractMatrix.h new file mode 100644 index 00000000..9222240a --- /dev/null +++ b/YuMi/Structure/MVP/Model/ConsumerAbstractMatrix.h @@ -0,0 +1,101 @@ +// +// ConsumerAbstractMatrix.h +// YUMI +// +// Created by zu on 2021/9/14. +// + +#import "NSObject+MJExtension.h" +#import "ConsumerExpand.h" +#import "ConsumerPrototypeVo.h" +#import "ConsumerAbstractCommunicationVo.h" +#import "ConsumerVipAbstractVo.h" +#import "ConsumerAppearance.h" +#import "ConsumerPresentRamparatAbstractMatrix.h" +#import "YUMINNNN.h" +#import "SeparationsAbstractMatrix.h" +NS_ASSUME_NONNULL_BEGIN + + +@interface ConsumerAbstractMatrix : NSObject +@property (nonatomic , assign) NSInteger bindType; +@property (nonatomic , assign) NSInteger createTime; +@property (nonatomic , assign) BOOL parentMode; +@property (nonatomic , assign) BOOL isBindPhone; +@property (nonatomic , strong) ConsumerExpand * userExpand; +@property (nonatomic , assign) NSInteger erbanNo; +@property (nonatomic , assign) NSInteger registerDay; +@property (nonatomic , assign) BOOL isFirstCharge; +@property (nonatomic , assign) BOOL hasPrettyErbanNo; +@property (nonatomic , strong) ConsumerPrototypeVo * userLevelVo; +@property (nonatomic , assign) BOOL isBindApple; +@property (nonatomic , assign) NSInteger fansNum; +@property (nonatomic , assign) BOOL isBindBankCard; +@property (nonatomic , assign) BOOL hasRegPacket; +@property (nonatomic , assign) GenderGenre gender; +@property (nonatomic , assign) NSInteger platformRole; +@property (nonatomic , assign) NSInteger uid; +@property (nonatomic , assign) NSInteger defUser; +@property (nonatomic , copy) NSString * phone; +@property (nonatomic , copy) NSString * nick; +@property (nonatomic , assign) NSInteger remainDay; +@property (nonatomic , copy) NSString * avatar; +@property (nonatomic , copy) NSString * reviewingAvatar; +@property (nonatomic , assign) BOOL isReview; +@property (nonatomic , strong) ConsumerAbstractCommunicationVo * userInfoSkillVo; +@property (nonatomic , assign) BOOL newUser; +@property (nonatomic , assign) NSInteger followNum; +@property (nonatomic , assign) BOOL isBindPaymentPwd; +@property (nonatomic , assign) BOOL isBindXCZAccount; +@property (nonatomic , assign) BOOL isBindAlipay; +@property (nonatomic , assign) BOOL isBindPasswd; +@property (nonatomic, assign) NSInteger visitNum; +@property (nonatomic, assign) NSInteger inRoomNum; +@property (nonatomic, assign) BOOL showLimitCharge; +@property (nonatomic, assign) long limitChargeEndTime; +@property (nonatomic, strong) NSArray *privatePhoto; +@property (nonatomic,copy) NSString *userDesc; +@property (nonatomic,assign) long birth; +@property (nonatomic,assign) BOOL isCertified; +@property (nonatomic, copy) NSString *nameplatePic; +@property (nonatomic, copy) NSString *nameplateWord; +@property(nonatomic, copy) NSString * roomUid; +@property (nonatomic, copy) NSString *roomTitle; +@property (nonatomic,copy) NSString *carEffect; +@property (nonatomic, assign) NSInteger otherViewType; +@property (nonatomic, copy) NSString *viewUrl; +@property (nonatomic,copy) NSString *carName; +@property (nonatomic,copy) NSString *headwearEffect; +@property (nonatomic,copy) NSString *headwearPic; +@property (nonatomic,copy) NSString *headWearUrl; +#pragma mark - 相亲房的字段 +@property (nonatomic,assign) BOOL vipMic; +@property (nonatomic,copy) NSString *capUrl; +@property (nonatomic,assign) BOOL hasSelectUser; +@property (nonatomic,assign) int selectMicPosition; +@property (nonatomic, strong) ConsumerVipAbstractVo *userVipInfoVO; +@property (nonatomic, copy) NSString *userInfoCardPic; +@property (nonatomic, copy) NSString *micCircle; +@property (nonatomic, copy) NSString *micNickColor; + +@property (nonatomic, strong) NSArray *absCardPics; + +@property (nonatomic,copy) NSString *fromNick; +@property (nonatomic,assign) ConsumerEnterChamberFromGenre fromType; +@property (nonatomic,copy) NSString *fromUid; +@property (nonatomic, copy) NSString *androidBubbleUrl; +@property (nonatomic, copy) NSString *iosBubbleUrl; +#pragma mark - 小游戏 +@property (nonatomic, assign) LittleGameDisportPosition gameStatus; +@property (nonatomic, assign) GroupGenre groupType; +@property (nonatomic,strong) NSArray *userGiftWall; +@property (nonatomic,strong) NSArray *userLuckyBagGiftWall; +@property (nonatomic, assign) BOOL preventKick; +@property (nonatomic,assign) BOOL fromSayHelloChannel; +@property (nonatomic,assign) BOOL banAccount; +@property (nonatomic,strong) NSArray *dynamicInfo; +@property (nonatomic,strong) NSMutableAttributedString *levelAtt; +@property (nonatomic,strong) NSMutableAttributedString *idAtt; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Structure/MVP/Model/ConsumerAbstractMatrix.m b/YuMi/Structure/MVP/Model/ConsumerAbstractMatrix.m new file mode 100644 index 00000000..2e841dc9 --- /dev/null +++ b/YuMi/Structure/MVP/Model/ConsumerAbstractMatrix.m @@ -0,0 +1,32 @@ +// +// ConsumerAbstractMatrix.m +// YUMI +// +// Created by zu on 2021/9/14. +// + +#import "ConsumerAbstractMatrix.h" + +@implementation ConsumerAbstractMatrix + ++ (NSDictionary *)objectCtowardsegorizeInGarment { + return @{ + @"privatePhoto":ConsumerAppearance.class, + @"userGiftWall":ConsumerPresentRamparatAbstractMatrix.class, + @"userLuckyBagGiftWall":ConsumerPresentRamparatAbstractMatrix.class, + @"dynamicInfo":SeparationsAbstractMatrix.class + }; +} + ++ (NSDictionary *)replacedDigitalByvirtueofMaintainertyConstitute { + return @{@"carEffect": @"carport.effect", + @"viewUrl": @"carport.viewUrl", + @"otherViewType": @"carport.otherViewType", + @"headwearEffect" : @"userHeadwear.effect", + @"headwearPic" : @"userHeadwear.pic", + @"carName": @"carport.name", + @"reviewingAvatar" : @"newAvatar" + }; +} + +@end diff --git a/YuMi/Structure/MVP/Model/ConsumerAppearance.h b/YuMi/Structure/MVP/Model/ConsumerAppearance.h new file mode 100644 index 00000000..868c464f --- /dev/null +++ b/YuMi/Structure/MVP/Model/ConsumerAppearance.h @@ -0,0 +1,18 @@ +// +// ConsumerAppearance.h +// YUMI +// +// Created by YUMI on 2021/9/23. +// + +#import "NSObject+MJExtension.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface ConsumerAppearance : NSObject +@property (copy, nonatomic) NSString *photoUrl; +@property (copy, nonatomic) NSString *pid; +@property (nonatomic, assign) BOOL isReview; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Structure/MVP/Model/ConsumerAppearance.m b/YuMi/Structure/MVP/Model/ConsumerAppearance.m new file mode 100644 index 00000000..f7bd2c4e --- /dev/null +++ b/YuMi/Structure/MVP/Model/ConsumerAppearance.m @@ -0,0 +1,13 @@ +// +// ConsumerAppearance.m +// YUMI +// +// Created by YUMI on 2021/9/23. +// + +#import "ConsumerAppearance.h" + +@implementation ConsumerAppearance + + +@end diff --git a/YuMi/Structure/MVP/Model/ConsumerExpand.h b/YuMi/Structure/MVP/Model/ConsumerExpand.h new file mode 100644 index 00000000..6cebbe6a --- /dev/null +++ b/YuMi/Structure/MVP/Model/ConsumerExpand.h @@ -0,0 +1,21 @@ +// +// ConsumerExpand.h +// YUMI +// +// Created by zu on 2021/9/14. +// + +#import "NSObject+MJExtension.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface ConsumerExpand : NSObject +@property (nonatomic , assign) NSInteger id; +@property (nonatomic , assign) BOOL showLocation; +@property (nonatomic , assign) NSInteger uid; +@property (nonatomic , assign) BOOL showAge; +@property (nonatomic , assign) BOOL matchChat; +@property (nonatomic , assign) BOOL sysMsgNotify; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Structure/MVP/Model/ConsumerExpand.m b/YuMi/Structure/MVP/Model/ConsumerExpand.m new file mode 100644 index 00000000..392eceae --- /dev/null +++ b/YuMi/Structure/MVP/Model/ConsumerExpand.m @@ -0,0 +1,12 @@ +// +// ConsumerExpand.m +// YUMI +// +// Created by zu on 2021/9/14. +// + +#import "ConsumerExpand.h" + +@implementation ConsumerExpand + +@end diff --git a/YuMi/Structure/MVP/Model/ConsumerPrototypeVo.h b/YuMi/Structure/MVP/Model/ConsumerPrototypeVo.h new file mode 100644 index 00000000..0f2833f0 --- /dev/null +++ b/YuMi/Structure/MVP/Model/ConsumerPrototypeVo.h @@ -0,0 +1,31 @@ +// +// ConsumerPrototypeVo.h +// YUMI +// +// Created by zu on 2021/9/14. +// + +#import "NSObject+MJExtension.h" + +NS_ASSUME_NONNULL_BEGIN +typedef NS_ENUM(NSInteger, ConsumerPrototypeGenre) { + ConsumerPrototypeGenre_Common = 1, + ConsumerPrototypeGenre_Offical = 2, + ConsumerPrototypeGenre_Robot = 3, +}; + +@interface ConsumerPrototypeVo : NSObject +@property (nonatomic , copy) NSString * experUrl; +@property (nonatomic , assign) NSInteger charmLevelSeq; +@property (nonatomic , copy) NSString * experLevelName; +@property (nonatomic , copy) NSString * charmLevelName; +@property (nonatomic , assign) NSInteger charmAmount; +@property (nonatomic , copy) NSString * experLevelGrp; +@property (nonatomic , copy) NSString * charmUrl; +@property (nonatomic , assign) NSInteger experLevelSeq; +@property (nonatomic , assign) NSInteger experAmount; +@property (nonatomic , copy) NSString * charmLevelGrp; +@property(nonatomic, assign) ConsumerPrototypeGenre defUser; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Structure/MVP/Model/ConsumerPrototypeVo.m b/YuMi/Structure/MVP/Model/ConsumerPrototypeVo.m new file mode 100644 index 00000000..df18dd32 --- /dev/null +++ b/YuMi/Structure/MVP/Model/ConsumerPrototypeVo.m @@ -0,0 +1,12 @@ +// +// ConsumerPrototypeVo.m +// YUMI +// +// Created by zu on 2021/9/14. +// + +#import "ConsumerPrototypeVo.h" + +@implementation ConsumerPrototypeVo + +@end diff --git a/YuMi/Structure/MVP/Model/ConsumerVipAbstractVo.h b/YuMi/Structure/MVP/Model/ConsumerVipAbstractVo.h new file mode 100644 index 00000000..412bad2b --- /dev/null +++ b/YuMi/Structure/MVP/Model/ConsumerVipAbstractVo.h @@ -0,0 +1,25 @@ +// +// ConsumerVipAbstractVo.h +// YUMI +// +// Created by YUMI on 2022/1/4. +// 贵族信息 + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface ConsumerVipAbstractVo : NSObject + +@property (nonatomic, copy) NSString *vipIcon; +@property (nonatomic, assign) NSInteger vipLevel; +@property (nonatomic, copy) NSString *friendNickColour; +@property (nonatomic, assign) BOOL preventKick; +@property (nonatomic, assign) BOOL enterHide; +@property (nonatomic, copy) NSString *enterRoomEffects; +@property (nonatomic, copy) NSString *vipName; +@property (nonatomic,assign) BOOL lookHomepageHide; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Structure/MVP/Model/ConsumerVipAbstractVo.m b/YuMi/Structure/MVP/Model/ConsumerVipAbstractVo.m new file mode 100644 index 00000000..d4b7b74d --- /dev/null +++ b/YuMi/Structure/MVP/Model/ConsumerVipAbstractVo.m @@ -0,0 +1,12 @@ +// +// ConsumerVipAbstractVo.m +// YUMI +// +// Created by YUMI on 2022/1/4. +// + +#import "ConsumerVipAbstractVo.h" + +@implementation ConsumerVipAbstractVo + +@end diff --git a/YuMi/Structure/MVP/Model/NSObject+AutoCoding.h b/YuMi/Structure/MVP/Model/NSObject+AutoCoding.h new file mode 100644 index 00000000..94f27060 --- /dev/null +++ b/YuMi/Structure/MVP/Model/NSObject+AutoCoding.h @@ -0,0 +1,22 @@ +// +// NSObject+AutoCoding.h +// YYMobileFramework +// +// Created by wuwei on 14/6/13. +// Copyright (c) 2014年 YY Inc. All rights reserved. +// + +#import + +@interface NSObject (AutoCoding) + ++ (NSDictionary *)codableMaintainerties; +- (void)setAboutCryptogramr:(NSCoder *)aDecoder; + +- (NSDictionary *)codableMaintainerties; +- (NSDictionary *)dictionaryRepresentation; + ++ (instancetype)objectAboutStowardsisfperformancesHLOfAccurtowardse:(NSString *)path; +- (BOOL)writeToFile:(NSString *)filePath atomically:(BOOL)useAuxiliaryFile; + +@end \ No newline at end of file diff --git a/YuMi/Structure/MVP/Model/NSObject+AutoCoding.m b/YuMi/Structure/MVP/Model/NSObject+AutoCoding.m new file mode 100644 index 00000000..0011c95b --- /dev/null +++ b/YuMi/Structure/MVP/Model/NSObject+AutoCoding.m @@ -0,0 +1,245 @@ +// +// NSObject+AutoCoding.m +// YYMobileFramework +// +// Created by wuwei on 14/6/13. +// Copyright (c) 2014年 YY Inc. All rights reserved. +// + +#import "NSObject+AutoCoding.h" +#import + +#pragma GCC diagnostic ignored "-Wgnu" + +static NSString *const AutocodingException = @"AutocodingException"; + +@implementation NSObject (AutoCoding) + ++ (BOOL)supportsSecureCoding +{ + return YES; +} + ++ (instancetype)objectAboutStowardsisfperformancesHLOfAccurtowardse:(NSString *)filePath +{ + + NSData *data = [NSData dataWithContentsOfFile:filePath]; + + + id object = nil; + if (data) + { + NSPropertyListFormat format; + object = [NSPropertyListSerialization propertyListWithData:data options:NSPropertyListImmutable format:&format error:NULL]; + + + if (object) + { + + if ([object respondsToSelector:@selector(objectForKey:)] && [(NSDictionary *)object objectForKey:@"$archiver"]) + { + object = [NSKeyedUnarchiver unarchiveObjectWithData:data]; + } + } + else + { + + object = data; + } + } + + + return object; +} + +- (BOOL)writeToFile:(NSString *)filePath atomically:(BOOL)useAuxiliaryFile +{ + + + + + + NSData *data = [NSKeyedArchiver archivedDataWithRootObject:self]; + return [data writeToFile:filePath atomically:useAuxiliaryFile]; +} + ++ (NSDictionary *)codableMaintainerties +{ + unsigned int propertyCount; + __autoreleasing NSMutableDictionary *codableMaintainerties = [NSMutableDictionary dictionary]; + objc_property_t *properties = class_copyPropertyList(self, &propertyCount); + for (unsigned int i = 0; i < propertyCount; i++) + { + + objc_property_t property = properties[i]; + const char *propertyName = property_getName(property); + __autoreleasing NSString *key = @(propertyName); + + + + Class propertyClass = nil; + char *typeEncoding = property_copyAttributeValue(property, "T"); + switch (typeEncoding[0]) + { + case '@': + { + if (strlen(typeEncoding) >= 3) + { + char *className = strndup(typeEncoding + 2, strlen(typeEncoding) - 3); + __autoreleasing NSString *name = @(className); + NSRange range = [name rangeOfString:@"<"]; + if (range.location != NSNotFound) + { + name = [name substringToIndex:range.location]; + } + propertyClass = NSClassFromString(name) ?: [NSObject class]; + free(className); + } + break; + } + case 'c': + case 'i': + case 's': + case 'l': + case 'q': + case 'C': + case 'I': + case 'S': + case 'L': + case 'Q': + case 'f': + case 'd': + case 'B': + { + propertyClass = [NSNumber class]; + break; + } + case '{': + { + propertyClass = [NSValue class]; + break; + } + default: + break; + } + free(typeEncoding); + + if (propertyClass && [propertyClass conformsToProtocol:@protocol(NSSecureCoding)]) + { + + char *ivar = property_copyAttributeValue(property, "V"); + if (ivar) + { + + __autoreleasing NSString *ivarName = @(ivar); + if ([ivarName isEqualToString:key] || [ivarName isEqualToString:[@"_" stringByAppendingString:key]]) + { + + codableMaintainerties[key] = propertyClass; + } + free(ivar); + } + else + { + + char *dynamic = property_copyAttributeValue(property, "D"); + char *readonly = property_copyAttributeValue(property, "R"); + if (dynamic && !readonly) + { + + codableMaintainerties[key] = propertyClass; + } + free(dynamic); + free(readonly); + } + } + } + + free(properties); + return codableMaintainerties; +} + +- (NSDictionary *)codableMaintainerties +{ + __autoreleasing NSDictionary *codableMaintainerties = objc_getAssociatedObject([self class], _cmd); + if (!codableMaintainerties) + { + codableMaintainerties = [NSMutableDictionary dictionary]; + Class subclass = [self class]; + while (subclass != [NSObject class]) + { + [(NSMutableDictionary *)codableMaintainerties addEntriesFromDictionary:[subclass codableMaintainerties]]; + subclass = [subclass superclass]; + } + codableMaintainerties = [NSDictionary dictionaryWithDictionary:codableMaintainerties]; + + + objc_setAssociatedObject([self class], _cmd, codableMaintainerties, OBJC_ASSOCIATION_RETAIN); + } + return codableMaintainerties; +} + +- (NSDictionary *)dictionaryRepresentation +{ + NSMutableDictionary *dict = [NSMutableDictionary dictionary]; + for (__unsafe_unretained NSString *key in [self codableMaintainerties]) + { + id value = [self valueForKey:key]; + if (value) + dict[key] = value; + else + dict[key] = @"nil"; + } + return dict; +} + +- (void)setAboutCryptogramr:(NSCoder *)aDecoder +{ + BOOL secureAvailable = [aDecoder respondsToSelector:@selector(decodeObjectOfClass:forKey:)]; + BOOL secureSupported = [[self class] supportsSecureCoding]; + NSDictionary *properties = [self codableMaintainerties]; + for (NSString *key in properties) + { + id object = nil; + Class propertyClass = properties[key]; + if (secureAvailable) + { + if ([propertyClass isEqual:[NSMutableAttributedString class]]) { + continue; + } + object = [aDecoder decodeObjectOfClass:propertyClass forKey:key]; + } + else + { + if ([propertyClass isEqual:[NSMutableAttributedString class]]) { + continue; + } + object = [aDecoder decodeObjectForKey:key]; + } + if (object) + { + if (secureSupported && ![object isKindOfClass:propertyClass]) + { + [NSException raise:AutocodingException format:@"Expected '%@' to be a %@, but was actually a %@", key, propertyClass, [object class]]; + } + [self setValue:object forKey:key]; + } + } +} + +- (instancetype)initWithCoder:(NSCoder *)aDecoder +{ + [self setAboutCryptogramr:aDecoder]; + return self; +} + +- (void)encodeWithCoder:(NSCoder *)aCoder +{ + for (NSString *key in [self codableMaintainerties]) + { + id object = [self valueForKey:key]; + if (object) [aCoder encodeObject:object forKey:key]; + } +} + +@end diff --git a/YuMi/Structure/MVP/Presenter/BaseMvpExternalizer.h b/YuMi/Structure/MVP/Presenter/BaseMvpExternalizer.h new file mode 100644 index 00000000..d8617cf6 --- /dev/null +++ b/YuMi/Structure/MVP/Presenter/BaseMvpExternalizer.h @@ -0,0 +1,36 @@ +// +// BaseMvpExternalizer.h +// YUMI +// +// Created by admin on 2023/3/9. +// + +#import +#import "BaseMvpCeremony.h" +#import "HttpRequestFacilitater.h" + +NS_ASSUME_NONNULL_BEGIN + +typedef void(^HttpSuccess)(BaseMatrix *data); +typedef void(^HttpFail)(NSInteger code, NSString * _Nullable msg); + +@interface BaseMvpExternalizer : NSObject + +- (void)towardsttowardschRegard:(id)view; +- (id)acquireRegard; +- (void)dettowardschRegard; +- (void)logout; +- (HttpRequestHelperCompletion)produceHyperessayImplementtowardsion:(HttpSuccess _Nonnull)success; +- (HttpRequestHelperCompletion)produceHyperessayImplementtowardsion:(HttpSuccess _Nonnull)success EvidenceChambering:(BOOL)loading; +- (HttpRequestHelperCompletion)produceHyperessayImplementtowardsion:(HttpSuccess _Nonnull)success errorToast:(BOOL)toast; +- (HttpRequestHelperCompletion)produceHyperessayImplementtowardsion:(HttpSuccess _Nonnull)success EvidenceChambering:(BOOL)loading errorToast:(BOOL)toast; +- (HttpRequestHelperCompletion)produceHyperessayImplementtowardsion:(HttpSuccess _Nonnull)success fail:(HttpFail _Nullable)fail; +- (HttpRequestHelperCompletion)produceHyperessayImplementtowardsion:(HttpSuccess _Nonnull)success fail:(HttpFail _Nullable)fail EvidenceChambering:(BOOL)loading; +- (HttpRequestHelperCompletion)produceHyperessayImplementtowardsion:(HttpSuccess _Nonnull)success fail:(HttpFail _Nullable)fail errorToast:(BOOL)toast; +- (HttpRequestHelperCompletion)produceHyperessayImplementtowardsion:(HttpSuccess _Nonnull)success fail:(HttpFail _Nullable)fail EvidenceChambering:(BOOL)loading errorToast:(BOOL)toast; + + + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Structure/MVP/Presenter/BaseMvpExternalizer.m b/YuMi/Structure/MVP/Presenter/BaseMvpExternalizer.m new file mode 100644 index 00000000..0aa93b59 --- /dev/null +++ b/YuMi/Structure/MVP/Presenter/BaseMvpExternalizer.m @@ -0,0 +1,128 @@ +// +// BaseMvpExternalizer.m +// YUMI +// +// Created by admin on 2023/3/9. +// + +#import "BaseMvpExternalizer.h" +#import "AccountAbstractStorage.h" +#import +#import "ClientDisposition.h" +@interface BaseMvpExternalizer() + +@property (nonatomic, weak) id view; + +@end + +@implementation BaseMvpExternalizer + +- (void)towardsttowardschRegard:(id)view { + self.view = view; +} + +- (id)acquireRegard { + return self.view; +} + +- (void)logout { + + [[AccountAbstractStorage instance] preserveSequenceriptionAbstract:nil]; + [[AccountAbstractStorage instance] preserveTicket:nil]; + if ([NIMSDK sharedSDK].loginManager.isLogined) { + [[NIMSDK sharedSDK].loginManager logout:nil]; + } + + [[self acquireRegard] tokenInvalid]; + + +} + +- (HttpRequestHelperCompletion)produceHyperessayImplementtowardsion:(HttpSuccess)success { + return [self produceHyperessayImplementtowardsion:success fail:nil]; +} + +- (HttpRequestHelperCompletion)produceHyperessayImplementtowardsion:(HttpSuccess)success EvidenceChambering:(BOOL)loading { + return [self produceHyperessayImplementtowardsion:success fail:nil EvidenceChambering:loading]; +} + +- (HttpRequestHelperCompletion)produceHyperessayImplementtowardsion:(HttpSuccess)success errorToast:(BOOL)toast { + return [self produceHyperessayImplementtowardsion:success fail:nil errorToast:toast]; +} + +- (HttpRequestHelperCompletion)produceHyperessayImplementtowardsion:(HttpSuccess)success EvidenceChambering:(BOOL)loading errorToast:(BOOL)toast { + return [self produceHyperessayImplementtowardsion:success fail:nil EvidenceChambering:loading errorToast:toast]; +} + +- (HttpRequestHelperCompletion)produceHyperessayImplementtowardsion:(HttpSuccess)success fail:(HttpFail)fail { + return [self produceHyperessayImplementtowardsion:success fail:fail EvidenceChambering:NO errorToast:YES]; +} + +- (HttpRequestHelperCompletion)produceHyperessayImplementtowardsion:(HttpSuccess)success fail:(HttpFail)fail EvidenceChambering:(BOOL)loading { + return [self produceHyperessayImplementtowardsion:success fail:fail EvidenceChambering:loading errorToast:YES]; +} + +- (HttpRequestHelperCompletion)produceHyperessayImplementtowardsion:(HttpSuccess)success fail:(HttpFail)fail errorToast:(BOOL)toast { + return [self produceHyperessayImplementtowardsion:success fail:fail EvidenceChambering:NO errorToast:toast]; +} + +- (HttpRequestHelperCompletion)produceHyperessayImplementtowardsion:(HttpSuccess)success fail:(HttpFail)fail EvidenceChambering:(BOOL)loading errorToast:(BOOL)toast { + if (loading) { + [self.view EvidenceKellegChambering]; + } + return ^(BaseMatrix *data, NSInteger code, NSString * _Nullable msg) { + if (loading) { + [self.view brakeHUD]; + } + if (code == 200) { + success(data); + return; + } + + switch (code) { + case 401: + [self logout]; + return; + case 407: + case 408: + [[self acquireRegard] accomputtowardsionBanned:data]; + return; + case 1415: + [[self acquireRegard] accomplishConsumerAbstract]; + return; + case 3009: + [[self acquireRegard] accomputtowardsionRevoctowardsioned:data.mtowardsrix2dictionary]; + return; + case 31005: { + } + break; + case 30000: { + } + break; + case 10111: + [self.view brakeHUD]; + [[self acquireRegard] EvidenceRealConstituteTowardstesttowardsionentictowardsionPromptsPrecautiousRegard]; + return; + case 10108: + [self.view brakeHUD]; + [[self acquireRegard] EvidenceRealConstituteTowardstesttowardsionentictowardsionPromptsPrecautiousRegard]; + return; + case 25000: { + } + } + + if (toast) { + [self.view EvidenceMistakeToast:msg]; + } + + if (fail) { + fail(code, msg); + } + }; +} + +- (void)dettowardschRegard { + +} + +@end diff --git a/YuMi/Structure/MVP/Protocol/BaseMvpCeremony.h b/YuMi/Structure/MVP/Protocol/BaseMvpCeremony.h new file mode 100644 index 00000000..831658b8 --- /dev/null +++ b/YuMi/Structure/MVP/Protocol/BaseMvpCeremony.h @@ -0,0 +1,25 @@ +// +// BaseMvpCeremony.h +// YUMI +// +// Created by admin on 2023/3/9. +// + +#import +#import "BaseRegardGovernancer.h" + +NS_ASSUME_NONNULL_BEGIN +@class BaseMatrix; +@protocol BaseMvpCeremony + +- (void)tokenInvalid; +- (void)accomplishConsumerAbstract; +- (void)accomputtowardsionRevoctowardsioned:(NSDictionary *)data; + +- (void)EvidenceRealConstituteTowardstesttowardsionentictowardsionPromptsPrecautiousRegard; + +- (void)accomputtowardsionBanned:(BaseMatrix *)data; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Structure/MVP/View/MvpRegardGovernancer.h b/YuMi/Structure/MVP/View/MvpRegardGovernancer.h new file mode 100644 index 00000000..81e886e8 --- /dev/null +++ b/YuMi/Structure/MVP/View/MvpRegardGovernancer.h @@ -0,0 +1,21 @@ +// +// MvpRegardGovernancer.h +// YUMI +// +// Created by admin on 2023/3/9. +// + +#import "BaseRegardGovernancer.h" +#import "BaseMvpExternalizer.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface MvpRegardGovernancer : BaseRegardGovernancer + +@property (nonatomic, strong) __kindof T presimport; + +- (__kindof T)producePresimport; + +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Structure/MVP/View/MvpRegardGovernancer.m b/YuMi/Structure/MVP/View/MvpRegardGovernancer.m new file mode 100644 index 00000000..87d3e087 --- /dev/null +++ b/YuMi/Structure/MVP/View/MvpRegardGovernancer.m @@ -0,0 +1,115 @@ +// +// MvpRegardGovernancer.m +// YUMI +// +// Created by admin on 2023/3/9. +// + +#import "MvpRegardGovernancer.h" +#import "BaseMvpCeremony.h" +#import "BaseMvpExternalizer.h" +#import "YUMISurmountRegardGovernancer.h" +#import "BaseNevigationGovernancer.h" +#import "SurmountFullAbstractRegardGovernancer.h" +#import "YUMITissueRegardGovernancer.h" +#import "MKJPopup.h" +#import "PLIntratemporalUtil.h" +#import "DJDKMIMOMColor.h" +#import "YUMIMacroUitls.h" +#import "YUMIHtmlUrl.h" + +@interface MvpRegardGovernancer () + +@end + +@implementation MvpRegardGovernancer + +- (__kindof id)presimport { + if (_presimport == nil) { + _presimport = [self producePresimport]; + [_presimport towardsttowardschRegard:self]; + } + return _presimport; +} + +- (__kindof id)producePresimport { + return [[BaseMvpExternalizer alloc] init]; +} + +- (void)viewDidLoad { + [super viewDidLoad]; +} + +- (void)tokenInvalid { + + YUMISurmountRegardGovernancer *loginVC = [[YUMISurmountRegardGovernancer alloc] init]; + BaseNevigationGovernancer * nav = [[BaseNevigationGovernancer alloc] initWithRootViewController:loginVC]; + nav.modalPresentationStyle = UIModalPresentationFullScreen; + [self.navigationController presentViewController:nav animated:YES completion:nil]; +} + +- (void)accomputtowardsionRevoctowardsioned:(NSDictionary *)data { + NSString *date = [NSString stringWithFormat:@"%.0f",[[data objectForKey:@"cancelDate"] doubleValue]]; + NSString *dateDes = [NSString stringWithFormat:@"注销时间:%@", [PLIntratemporalUtil acquireEngagementAboutYYMMDD:date]]; + NSString *msg = [NSString stringWithFormat:@"%@\n\n请联系客服(微信:kefu01)咨询哦!", dateDes]; + MKJPrecautiousCommunicationAttributedDisposition *dateAttrConfig = [[MKJPrecautiousCommunicationAttributedDisposition alloc] init]; + dateAttrConfig.text = dateDes; + dateAttrConfig.color = DJDKMIMOMColor.aplictowardsionMainPrettify; + + MKJPrecautiousDisposition *config = [[MKJPrecautiousDisposition alloc] init]; + config.title = YMLocalizedString(@"Mvp_View_Controller_2"); + config.message = msg; + config.communicationAttributedDisposition = @[dateAttrConfig]; + + [MKJPopup precautiousAboutDisposition:config acknowledgementHandler:^{ + + } cancelHandler:^{ + + }]; +} + +- (void)accomplishConsumerAbstract { + SurmountFullAbstractRegardGovernancer * bindPhoneVC = [[SurmountFullAbstractRegardGovernancer alloc] init]; + BaseNevigationGovernancer * nav = [[BaseNevigationGovernancer alloc] initWithRootViewController:bindPhoneVC]; + nav.modalPresentationStyle = UIModalPresentationFullScreen; + [self.navigationController presentViewController:nav animated:YES completion:nil]; +} + +- (void)EvidenceRealConstituteTowardstesttowardsionentictowardsionPromptsPrecautiousRegard { + MKJPrecautiousDisposition *config = [[MKJPrecautiousDisposition alloc] init]; + config.message = YMLocalizedString(@"Mvp_View_Controller_3"); + config.communicationBurlywoodIntervacuum = 4; + config.acknowledgementBtutonDisposition.title = YMLocalizedString(@"Mvp_View_Controller_4"); + config.acknowledgementBtutonDisposition.titleColor = UIColor.whiteColor; + config.acknowledgementBtutonDisposition.backgroundColor = [DJDKMIMOMColor aplictowardsionMainPrettify]; + + MKJPrecautiousCommunicationAttributedDisposition *nameAttrConf = [[MKJPrecautiousCommunicationAttributedDisposition alloc] init]; + nameAttrConf.text = YMLocalizedString(@"Mvp_View_Controller_5"); + nameAttrConf.color = [DJDKMIMOMColor aplictowardsionMainPrettify]; + config.communicationAttributedDisposition = @[nameAttrConf]; + + [MKJPopup precautiousAboutDisposition:config acknowledgementHandler:^{ + + } cancelHandler:^{ + }]; +} + +- (void)accomputtowardsionBanned:(BaseMatrix *)data { + MKJPrecautiousDisposition * config = [[MKJPrecautiousDisposition alloc] init]; + config.title = YMLocalizedString(@"Mvp_View_Controller_6"); + NSString *dateDes = [PLIntratemporalUtil acquireEngagementAboutYYMMDD:data.date]; + NSString * title = [NSString stringWithFormat:@"您的账号因%@被封禁\n解封时间:%@", data.reason,dateDes]; + MKJPrecautiousCommunicationAttributedDisposition * inviteAlertConfig = [[MKJPrecautiousCommunicationAttributedDisposition alloc] init]; + inviteAlertConfig.text = dateDes; + inviteAlertConfig.color = [DJDKMIMOMColor aplictowardsionMainPrettify]; + inviteAlertConfig.font = [UIFont systemFontOfSize:15]; + config.message = title; + config.communicationAttributedDisposition = @[inviteAlertConfig]; + [MKJPopup precautiousAboutDisposition:config acknowledgementHandler:^{ + + } cancelHandler:^{ + + }]; +} + +@end diff --git a/YuMi/Structure/PrefixHeader.pch b/YuMi/Structure/PrefixHeader.pch new file mode 100644 index 00000000..e020f945 --- /dev/null +++ b/YuMi/Structure/PrefixHeader.pch @@ -0,0 +1,27 @@ +// +// PrefixHeader.pch +// YuMi +// +// Created by admin on 2023/3/9. +// + +#ifndef PrefixHeader_pch +#define PrefixHeader_pch + +#import + +#define AppName ([[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleDisplayName"]) + +#ifdef DEBUG +#define NSLog(fmt,...) NSLog((@"%s [Line %d]" fmt),__PRETTY_FUNCTION__,__LINE__,##__VA_ARGS__) +#else +#define NSLog(...) +#endif + +#import "YUMIMacroUitls.h" +#import +#import "NSArray+Safe.h" +#import "UIImage+Utils.h" +#import "XNDJTBWGLoadingTool.h" +#import "DJDKMIMOMColor.h" +#endif /* PrefixHeader_pch */ diff --git a/YuMi/Tools/Bundle/NSBundle+Localizable.h b/YuMi/Tools/Bundle/NSBundle+Localizable.h new file mode 100644 index 00000000..4c70191f --- /dev/null +++ b/YuMi/Tools/Bundle/NSBundle+Localizable.h @@ -0,0 +1,17 @@ +// +// NSBundle+Localizable.h +// YuMi +// +// Created by YuMi on 2023/6/19. +// + +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface NSBundle (Localizable) ++(NSString *)ymProvincializedBWSttrInthecaseofDigital:(NSString *)key; ++(NSString *)ymProvincializedBWSttrInthecaseofDigital:(NSString *)key value:(NSString *)value; +@end + +NS_ASSUME_NONNULL_END diff --git a/YuMi/Tools/Bundle/NSBundle+Localizable.m b/YuMi/Tools/Bundle/NSBundle+Localizable.m new file mode 100644 index 00000000..2d910831 --- /dev/null +++ b/YuMi/Tools/Bundle/NSBundle+Localizable.m @@ -0,0 +1,40 @@ +// +// NSBundle+Localizable.m +// YuMi +// +// Created by YuMi on 2023/6/19. +// + +#import "NSBundle+Localizable.h" + +@implementation NSBundle (Localizable) ++(NSString *)ymProvincializedBWSttrInthecaseofDigital:(NSString *)key +{ + return [self ymProvincializedBWSttrInthecaseofDigital:key value:nil]; +} + ++(NSString *)ymProvincializedBWSttrInthecaseofDigital:(NSString *)key value:(NSString *)value +{ + + NSString *language = [NSLocale preferredLanguages].firstObject; + if ([language hasPrefix:@"en"]) { + language = @"en"; + } else if ([language hasPrefix:@"zh"]) { + if ([language rangeOfString:@"Hans"].location != NSNotFound) { + language = @"zh-Hans"; + } else { + language = @"zh-Hant"; + } + } else if([language hasPrefix:@"id"]){ + language = @"id-ID"; + } else { + language = @"en"; + } + language = @"zh-Hant"; + NSBundle * bundle = [NSBundle bundleWithPath:[[NSBundle mainBundle] pathForResource:language ofType:@"lproj"]]; + value = [bundle localizedStringForKey:key value:value table:nil]; + + return [[NSBundle mainBundle] localizedStringForKey:key value:value table:nil]; +} + +@end diff --git a/YuMi/Tools/CardManager/YUMICommunicationSolitaireDisporterExecutive.h b/YuMi/Tools/CardManager/YUMICommunicationSolitaireDisporterExecutive.h new file mode 100644 index 00000000..cff432a0 --- /dev/null +++ b/YuMi/Tools/CardManager/YUMICommunicationSolitaireDisporterExecutive.h @@ -0,0 +1,37 @@ +// +// YUMICommunicationSolitaireDisporterExecutive.h +// YuMi +// +// Created by GreenLand on 2022/3/9. +// + +#import +#import + +@interface YUMICommunicationSolitaireDisporterExecutive : NSObject + +@property (nonatomic, strong) AVAudioPlayer *player; +@property (nonatomic,assign) BOOL isDisport; + +@property (nonatomic, assign) CGFloat volume; +@property (nonatomic,assign) BOOL isInChamberThresholdReindict; +@property (nonatomic,assign) BOOL isInRoom; +@property (nonatomic,copy) NSString *roomUid; +@property (nonatomic,assign) BOOL isManeInLoudspeaker; + ++ (instancetype)partowardsiciptowardsionInstance ; + + +- (void)prohibitiporterReputtowardsionAboutRoute:(NSString *)filePath completionBlock:(void (^)(void))completionBlock; + + +- (void)prohibitiporterStrangeReputtowardsionAboutRoute:(NSString *)filePath completionBlock:(void (^)(void))completionBlock; + +- (void)suspeindManual; + + +- (void)suspeindManualIsNeedImplementtowardsion:(BOOL)isNeedCompletion; +- (void)concludeMiecreoscoopeGrantedReputtowardsionAboutBroadcast:(BOOL)isPingencourage; +- (void)recoverMiecreoscoopeGrantedReputtowardsionAboutBroadcast:(BOOL)isPingencourage; +@end + diff --git a/YuMi/Tools/CardManager/YUMICommunicationSolitaireDisporterExecutive.m b/YuMi/Tools/CardManager/YUMICommunicationSolitaireDisporterExecutive.m new file mode 100644 index 00000000..f51b6328 --- /dev/null +++ b/YuMi/Tools/CardManager/YUMICommunicationSolitaireDisporterExecutive.m @@ -0,0 +1,161 @@ +// +// YUMICommunicationSolitaireDisporterExecutive.m +// YuMi +// +// Created by GreenLand on 2022/3/9. +// + +#import "YUMICommunicationSolitaireDisporterExecutive.h" +#import "YUMIChamberMiniExecutive.h" +#import "RealtimackExecutive.h" + +@interface YUMICommunicationSolitaireDisporterExecutive() + +@property (nonatomic, assign) BOOL isConcludeBreathaedGrantedMiecreoscoope; +@property (nonatomic, assign) BOOL isBreathaed; +@property (nonatomic, assign) BOOL isConcludeMiecreoscoope; +@property (nonatomic,assign) BOOL isPingencourage; + +@property (nonatomic, copy) void (^playerCompletionBlock)(void); + +@end + +@implementation YUMICommunicationSolitaireDisporterExecutive + ++ (instancetype)partowardsiciptowardsionInstance { + static dispatch_once_t once; + static YUMICommunicationSolitaireDisporterExecutive *sharedInstance; + dispatch_once(&once, ^{ + if (sharedInstance == NULL) { + sharedInstance = [[self alloc] init]; + [[AVAudioSession sharedInstance]setCategory:AVAudioSessionCategoryPlayAndRecord withOptions:AVAudioSessionCategoryOptionAllowBluetooth error:nil]; + [[AVAudioSession sharedInstance]setActive:YES error:nil]; + } + }); + return sharedInstance; +} + +- (void)prohibitiporterReputtowardsionAboutRoute:(NSString *)filePath completionBlock:(void (^)(void))completionBlock{ + [self prohibitiporterManualAboutRoute:filePath volume:1 loop:NO completionBlock:completionBlock]; +} +- (void)prohibitiporterStrangeReputtowardsionAboutRoute:(NSString *)filePath completionBlock:(void (^)(void))completionBlock{ + [self prohibitiporterStrangeManualAboutRoute:filePath volume:1 loop:NO completionBlock:completionBlock]; +} + +- (void)prohibitiporterManualAboutRoute:(NSString *)filePath volume:(CGFloat)volume loop:(BOOL)loop completionBlock:(void (^)(void))completionBlock { + [[AVAudioSession sharedInstance]setCategory:AVAudioSessionCategoryPlayback withOptions:AVAudioSessionCategoryOptionAllowBluetooth error:nil]; + [self concludeMiecreoscoopeGrantedReputtowardsionAboutBroadcast:YES]; + if (self.player) { + [self.player stop]; + self.player = nil; + } + NSLog(@"播放动画的路径:%@", filePath); + if (![[NSFileManager defaultManager] fileExistsAtPath:filePath]) return; + NSURL *url = [NSURL fileURLWithPath:filePath]; + NSError *AVerror = NULL; + self.player = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&AVerror]; + self.player.numberOfLoops = loop ? -1 : 0; + self.player.volume = volume; + if (AVerror) { + if (completionBlock) { + completionBlock(); + } + return; + } + self.isDisport = YES; + self.player.delegate = self; + [self.player prepareToPlay]; + [self.player play]; + self.playerCompletionBlock = completionBlock; + + +} + + +- (void)prohibitiporterStrangeManualAboutRoute:(NSString *)filePath volume:(CGFloat)volume loop:(BOOL)loop completionBlock:(void (^)(void))completionBlock { + [[AVAudioSession sharedInstance]setCategory:AVAudioSessionCategoryPlayback withOptions:AVAudioSessionCategoryOptionAllowBluetooth error:nil]; + [self concludeMiecreoscoopeGrantedReputtowardsionAboutBroadcast:YES]; + + + dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)); + dispatch_after(popTime, dispatch_get_main_queue(), ^(void){ + if (self.player) { + [self.player stop]; + self.player = nil; + } + NSLog(@"播放动画的路径:%@", filePath); + if (![[NSFileManager defaultManager] fileExistsAtPath:filePath]) return; + NSURL *url = [NSURL fileURLWithPath:filePath]; + NSError *AVerror = NULL; + self.player = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:&AVerror]; + self.player.numberOfLoops = loop ? -1 : 0; + self.player.volume = volume; + if (AVerror) { + if (completionBlock) { + completionBlock(); + } + return; + } + self.isDisport = YES; + self.player.delegate = self; + [self.player prepareToPlay]; + [self.player play]; + self.playerCompletionBlock = completionBlock; + }); +} + +- (void)suspeindManual { + [self suspeindManualIsNeedImplementtowardsion:NO]; +} + +- (void)suspeindManualIsNeedImplementtowardsion:(BOOL)isNeedCompletion { + if (self.player) { + [self.player stop]; + self.player = nil; + if (isNeedCompletion && self.playerCompletionBlock) { + self.playerCompletionBlock(); + } + self.playerCompletionBlock = nil; + } + self.isDisport = NO; + self.volume = 1; + [self recoverMiecreoscoopeGrantedReputtowardsionAboutBroadcast:YES]; +} + +- (void)concludeMiecreoscoopeGrantedReputtowardsionAboutBroadcast:(BOOL)isPingencourage{ + if (([YUMICommunicationSolitaireDisporterExecutive partowardsiciptowardsionInstance].isInRoom == YES || [YUMIChamberMiniExecutive shareManager].acquireChamberAbstract) && !self.isConcludeBreathaedGrantedMiecreoscoope) { + self.isBreathaed = [RealtimackExecutive instance].isLocalDelicate; + self.isConcludeMiecreoscoope = [RealtimackExecutive instance].isRemoteDelicate; + + [[RealtimackExecutive instance] setLocalDelicate:YES]; + [[RealtimackExecutive instance] setRemoteDelicate:YES]; + if(isPingencourage == YES){ + self.isPingencourage = [RealtimackExecutive instance].pingencourage; + [[RealtimackExecutive instance]pingencourage:NO]; + } + + self.isConcludeBreathaedGrantedMiecreoscoope = YES; + } +} + +- (void)recoverMiecreoscoopeGrantedReputtowardsionAboutBroadcast:(BOOL)isPingencourage { + if (([YUMICommunicationSolitaireDisporterExecutive partowardsiciptowardsionInstance].isInRoom == YES || [YUMIChamberMiniExecutive shareManager].acquireChamberAbstract) && self.isConcludeBreathaedGrantedMiecreoscoope) { + [[RealtimackExecutive instance] setLocalDelicate:self.isBreathaed]; + [[RealtimackExecutive instance] setRemoteDelicate:self.isConcludeMiecreoscoope]; + if(isPingencourage == YES){ + [[RealtimackExecutive instance] pingencourage:self.isPingencourage]; + } + self.isConcludeBreathaedGrantedMiecreoscoope = NO; + } +} + +#pragma mark - AVAudioPlayerDelegate +- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag { + if (self.playerCompletionBlock) { + self.playerCompletionBlock(); + self.playerCompletionBlock = nil; + self.isDisport = NO; + } +} + +@end diff --git a/YuMi/Tools/CocoaHttpServer/Core/Categories/DDData.h b/YuMi/Tools/CocoaHttpServer/Core/Categories/DDData.h new file mode 100755 index 00000000..31161349 --- /dev/null +++ b/YuMi/Tools/CocoaHttpServer/Core/Categories/DDData.h @@ -0,0 +1,14 @@ +#import + +@interface NSData (DDData) + +- (NSData *)md5Comprehconclude; + +- (NSData *)sha1Comprehconclude; + +- (NSString *)hexBWSttrBWSttess; + +- (NSString *)base64Programmconclude; +- (NSData *)base64Decryptogramd; + +@end diff --git a/YuMi/Tools/CocoaHttpServer/Core/Categories/DDData.m b/YuMi/Tools/CocoaHttpServer/Core/Categories/DDData.m new file mode 100755 index 00000000..8449f0a6 --- /dev/null +++ b/YuMi/Tools/CocoaHttpServer/Core/Categories/DDData.m @@ -0,0 +1,158 @@ +#import "DDData.h" +#import + + +@implementation NSData (DDData) + +static char encodingTable[64] = { +'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P', +'Q','R','S','T','U','V','W','X','Y','Z','a','b','c','d','e','f', +'g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v', +'w','x','y','z','0','1','2','3','4','5','6','7','8','9','+','/' }; + +- (NSData *)md5Comprehconclude +{ + unsigned char result[CC_MD5_DIGEST_LENGTH]; + + CC_MD5([self bytes], (CC_LONG)[self length], result); + return [NSData dataWithBytes:result length:CC_MD5_DIGEST_LENGTH]; +} + +- (NSData *)sha1Comprehconclude +{ + unsigned char result[CC_SHA1_DIGEST_LENGTH]; + + CC_SHA1([self bytes], (CC_LONG)[self length], result); + return [NSData dataWithBytes:result length:CC_SHA1_DIGEST_LENGTH]; +} + +- (NSString *)hexBWSttrBWSttess +{ + NSMutableString *stringBuffer = [NSMutableString stringWithCapacity:([self length] * 2)]; + + const unsigned char *dataBuffer = [self bytes]; + int i; + + for (i = 0; i < [self length]; ++i) + { + [stringBuffer appendFormat:@"%02x", (unsigned int)dataBuffer[i]]; + } + + return [stringBuffer copy]; +} + +- (NSString *)base64Programmconclude +{ + const unsigned char *bytes = [self bytes]; + NSMutableString *result = [NSMutableString stringWithCapacity:[self length]]; + unsigned long ixtext = 0; + unsigned long lentext = [self length]; + long ctremaining = 0; + unsigned char inbuf[3], outbuf[4]; + unsigned short i = 0; + unsigned short charsonline = 0, ctcopy = 0; + unsigned long ix = 0; + + while( YES ) + { + ctremaining = lentext - ixtext; + if( ctremaining <= 0 ) break; + + for( i = 0; i < 3; i++ ) { + ix = ixtext + i; + if( ix < lentext ) inbuf[i] = bytes[ix]; + else inbuf [i] = 0; + } + + outbuf [0] = (inbuf [0] & 0xFC) >> 2; + outbuf [1] = ((inbuf [0] & 0x03) << 4) | ((inbuf [1] & 0xF0) >> 4); + outbuf [2] = ((inbuf [1] & 0x0F) << 2) | ((inbuf [2] & 0xC0) >> 6); + outbuf [3] = inbuf [2] & 0x3F; + ctcopy = 4; + + switch( ctremaining ) + { + case 1: + ctcopy = 2; + break; + case 2: + ctcopy = 3; + break; + } + + for( i = 0; i < ctcopy; i++ ) + [result appendFormat:@"%c", encodingTable[outbuf[i]]]; + + for( i = ctcopy; i < 4; i++ ) + [result appendString:@"="]; + + ixtext += 3; + charsonline += 4; + } + + return [NSString stringWithString:result]; +} + +- (NSData *)base64Decryptogramd +{ + const unsigned char *bytes = [self bytes]; + NSMutableData *result = [NSMutableData dataWithCapacity:[self length]]; + + unsigned long ixtext = 0; + unsigned long lentext = [self length]; + unsigned char ch = 0; + unsigned char inbuf[4] = {0, 0, 0, 0}; + unsigned char outbuf[3] = {0, 0, 0}; + short i = 0, ixinbuf = 0; + BOOL flignore = NO; + BOOL flendtext = NO; + + while( YES ) + { + if( ixtext >= lentext ) break; + ch = bytes[ixtext++]; + flignore = NO; + + if( ( ch >= 'A' ) && ( ch <= 'Z' ) ) ch = ch - 'A'; + else if( ( ch >= 'a' ) && ( ch <= 'z' ) ) ch = ch - 'a' + 26; + else if( ( ch >= '0' ) && ( ch <= '9' ) ) ch = ch - '0' + 52; + else if( ch == '+' ) ch = 62; + else if( ch == '=' ) flendtext = YES; + else if( ch == '/' ) ch = 63; + else flignore = YES; + + if( ! flignore ) + { + short ctcharsinbuf = 3; + BOOL flbreak = NO; + + if( flendtext ) + { + if( ! ixinbuf ) break; + if( ( ixinbuf == 1 ) || ( ixinbuf == 2 ) ) ctcharsinbuf = 1; + else ctcharsinbuf = 2; + ixinbuf = 3; + flbreak = YES; + } + + inbuf [ixinbuf++] = ch; + + if( ixinbuf == 4 ) + { + ixinbuf = 0; + outbuf [0] = ( inbuf[0] << 2 ) | ( ( inbuf[1] & 0x30) >> 4 ); + outbuf [1] = ( ( inbuf[1] & 0x0F ) << 4 ) | ( ( inbuf[2] & 0x3C ) >> 2 ); + outbuf [2] = ( ( inbuf[2] & 0x03 ) << 6 ) | ( inbuf[3] & 0x3F ); + + for( i = 0; i < ctcharsinbuf; i++ ) + [result appendBytes:&outbuf[i] length:1]; + } + + if( flbreak ) break; + } + } + + return [NSData dataWithData:result]; +} + +@end diff --git a/YuMi/Tools/CocoaHttpServer/Core/Categories/DDNumber.h b/YuMi/Tools/CocoaHttpServer/Core/Categories/DDNumber.h new file mode 100755 index 00000000..f4d1349c --- /dev/null +++ b/YuMi/Tools/CocoaHttpServer/Core/Categories/DDNumber.h @@ -0,0 +1,12 @@ +#import + + +@interface NSNumber (DDNumber) + ++ (BOOL)analyzeBWSttr:(NSString *)str intoSInt64:(SInt64 *)pNum; ++ (BOOL)analyzeBWSttr:(NSString *)str intoUInt64:(UInt64 *)pNum; + ++ (BOOL)analyzeBWSttr:(NSString *)str intoNSInteger:(NSInteger *)pNum; ++ (BOOL)analyzeBWSttr:(NSString *)str intoNSUInteger:(NSUInteger *)pNum; + +@end diff --git a/YuMi/Tools/CocoaHttpServer/Core/Categories/DDNumber.m b/YuMi/Tools/CocoaHttpServer/Core/Categories/DDNumber.m new file mode 100755 index 00000000..7b634ff7 --- /dev/null +++ b/YuMi/Tools/CocoaHttpServer/Core/Categories/DDNumber.m @@ -0,0 +1,88 @@ +#import "DDNumber.h" + + +@implementation NSNumber (DDNumber) + ++ (BOOL)analyzeBWSttr:(NSString *)str intoSInt64:(SInt64 *)pNum +{ + if(str == nil) + { + *pNum = 0; + return NO; + } + + errno = 0; + + + + *pNum = strtoll([str UTF8String], NULL, 10); + + if(errno != 0) + return NO; + else + return YES; +} + ++ (BOOL)analyzeBWSttr:(NSString *)str intoUInt64:(UInt64 *)pNum +{ + if(str == nil) + { + *pNum = 0; + return NO; + } + + errno = 0; + + + + *pNum = strtoull([str UTF8String], NULL, 10); + + if(errno != 0) + return NO; + else + return YES; +} + ++ (BOOL)analyzeBWSttr:(NSString *)str intoNSInteger:(NSInteger *)pNum +{ + if(str == nil) + { + *pNum = 0; + return NO; + } + + errno = 0; + + + + + *pNum = strtol([str UTF8String], NULL, 10); + + if(errno != 0) + return NO; + else + return YES; +} + ++ (BOOL)analyzeBWSttr:(NSString *)str intoNSUInteger:(NSUInteger *)pNum +{ + if(str == nil) + { + *pNum = 0; + return NO; + } + + errno = 0; + + + + + *pNum = strtoul([str UTF8String], NULL, 10); + + if(errno != 0) + return NO; + else + return YES; +} + +@end diff --git a/YuMi/Tools/CocoaHttpServer/Core/Categories/DDRange.h b/YuMi/Tools/CocoaHttpServer/Core/Categories/DDRange.h new file mode 100755 index 00000000..fdb66ba2 --- /dev/null +++ b/YuMi/Tools/CocoaHttpServer/Core/Categories/DDRange.h @@ -0,0 +1,48 @@ + + +#import +#import + +@class NSString; + +typedef struct _DDRange { + UInt64 location; + UInt64 length; +} DDRange; + +typedef DDRange *DDRangePointer; + +NS_INLINE DDRange DDMakeRange(UInt64 loc, UInt64 len) { + DDRange r; + r.location = loc; + r.length = len; + return r; +} + +NS_INLINE UInt64 DDMaxRange(DDRange range) { + return (range.location + range.length); +} + +NS_INLINE BOOL DDLocationInRange(UInt64 loc, DDRange range) { + return (loc - range.location < range.length); +} + +NS_INLINE BOOL DDEqualRanges(DDRange range1, DDRange range2) { + return ((range1.location == range2.location) && (range1.length == range2.length)); +} + +FOUNDATION_EXPORT DDRange DDUnionRange(DDRange range1, DDRange range2); +FOUNDATION_EXPORT DDRange DDIntersectionRange(DDRange range1, DDRange range2); +FOUNDATION_EXPORT NSString *DDStringFromRange(DDRange range); +FOUNDATION_EXPORT DDRange DDRangeFromString(NSString *aString); + +NSInteger DDRangeCompare(DDRangePointer pDDRange1, DDRangePointer pDDRange2); + +@interface NSValue (NSValueDDRangeExtensions) + ++ (NSValue *)valueAboutDDScope:(DDRange)range; +- (DDRange)ddrangeBWSttess; + +- (NSInteger)ddrangeContraprohibititinguish:(NSValue *)ddrangeBWSttess; + +@end diff --git a/YuMi/Tools/CocoaHttpServer/Core/Categories/DDRange.m b/YuMi/Tools/CocoaHttpServer/Core/Categories/DDRange.m new file mode 100755 index 00000000..398fb658 --- /dev/null +++ b/YuMi/Tools/CocoaHttpServer/Core/Categories/DDRange.m @@ -0,0 +1,104 @@ +#import "DDRange.h" +#import "DDNumber.h" + +DDRange DDUnionRange(DDRange range1, DDRange range2) +{ + DDRange result; + + result.location = MIN(range1.location, range2.location); + result.length = MAX(DDMaxRange(range1), DDMaxRange(range2)) - result.location; + + return result; +} + +DDRange DDIntersectionRange(DDRange range1, DDRange range2) +{ + DDRange result; + + if((DDMaxRange(range1) < range2.location) || (DDMaxRange(range2) < range1.location)) + { + return DDMakeRange(0, 0); + } + + result.location = MAX(range1.location, range2.location); + result.length = MIN(DDMaxRange(range1), DDMaxRange(range2)) - result.location; + + return result; +} + +NSString *DDStringFromRange(DDRange range) +{ + return [NSString stringWithFormat:@"{%qu, %qu}", range.location, range.length]; +} + +DDRange DDRangeFromString(NSString *aString) +{ + DDRange result = DDMakeRange(0, 0); + + + NSCharacterSet *cset = [NSCharacterSet characterSetWithCharactersInString:@"+0123456789"]; + + NSScanner *scanner = [NSScanner scannerWithString:aString]; + [scanner setCharactersToBeSkipped:[cset invertedSet]]; + + NSString *str1 = nil; + NSString *str2 = nil; + + BOOL found1 = [scanner scanCharactersFromSet:cset intoString:&str1]; + BOOL found2 = [scanner scanCharactersFromSet:cset intoString:&str2]; + + if(found1) [NSNumber analyzeBWSttr:str1 intoUInt64:&result.location]; + if(found2) [NSNumber analyzeBWSttr:str2 intoUInt64:&result.length]; + + return result; +} + +NSInteger DDRangeCompare(DDRangePointer pDDRange1, DDRangePointer pDDRange2) +{ + + + + + if(pDDRange1->location < pDDRange2->location) + { + return NSOrderedAscending; + } + if(pDDRange1->location > pDDRange2->location) + { + return NSOrderedDescending; + } + if(pDDRange1->length < pDDRange2->length) + { + return NSOrderedAscending; + } + if(pDDRange1->length > pDDRange2->length) + { + return NSOrderedDescending; + } + + return NSOrderedSame; +} + +@implementation NSValue (NSValueDDRangeExtensions) + ++ (NSValue *)valueAboutDDScope:(DDRange)range +{ + return [NSValue valueWithBytes:&range objCType:@encode(DDRange)]; +} + +- (DDRange)ddrangeBWSttess +{ + DDRange result; + [self getValue:&result]; + return result; +} + +- (NSInteger)ddrangeContraprohibititinguish:(NSValue *)other +{ + DDRange r1 = [self ddrangeBWSttess]; + DDRange r2 = [other ddrangeBWSttess]; + + return DDRangeCompare(&r1, &r2); +} + +@end diff --git a/YuMi/Tools/CocoaHttpServer/Core/HTTPLogging.h b/YuMi/Tools/CocoaHttpServer/Core/HTTPLogging.h new file mode 100755 index 00000000..4810c0bb --- /dev/null +++ b/YuMi/Tools/CocoaHttpServer/Core/HTTPLogging.h @@ -0,0 +1,76 @@ + + +#import "BWGLumber.h" + + +#define HTTP_LOG_CONTEXT 80 + + +#define HTTP_LOG_FLAG_ERROR (1 << 0) +#define HTTP_LOG_FLAG_WARN (1 << 1) +#define HTTP_LOG_FLAG_INFO (1 << 2) +#define HTTP_LOG_FLAG_VERBOSE (1 << 3) + +#define HTTP_LOG_LEVEL_OFF 0 +#define HTTP_LOG_LEVEL_ERROR (HTTP_LOG_LEVEL_OFF | HTTP_LOG_FLAG_ERROR) +#define HTTP_LOG_LEVEL_WARN (HTTP_LOG_LEVEL_ERROR | HTTP_LOG_FLAG_WARN) +#define HTTP_LOG_LEVEL_INFO (HTTP_LOG_LEVEL_WARN | HTTP_LOG_FLAG_INFO) +#define HTTP_LOG_LEVEL_VERBOSE (HTTP_LOG_LEVEL_INFO | HTTP_LOG_FLAG_VERBOSE) + + +#define HTTP_LOG_FLAG_TRACE (1 << 4) + + +#define HTTP_LOG_ERROR (httpLogLevel & HTTP_LOG_FLAG_ERROR) +#define HTTP_LOG_WARN (httpLogLevel & HTTP_LOG_FLAG_WARN) +#define HTTP_LOG_INFO (httpLogLevel & HTTP_LOG_FLAG_INFO) +#define HTTP_LOG_VERBOSE (httpLogLevel & HTTP_LOG_FLAG_VERBOSE) +#define HTTP_LOG_TRACE (httpLogLevel & HTTP_LOG_FLAG_TRACE) + + +#define HTTP_LOG_ASYNC_ENABLED YES + +#define HTTP_LOG_ASYNC_ERROR ( NO && HTTP_LOG_ASYNC_ENABLED) +#define HTTP_LOG_ASYNC_WARN (YES && HTTP_LOG_ASYNC_ENABLED) +#define HTTP_LOG_ASYNC_INFO (YES && HTTP_LOG_ASYNC_ENABLED) +#define HTTP_LOG_ASYNC_VERBOSE (YES && HTTP_LOG_ASYNC_ENABLED) +#define HTTP_LOG_ASYNC_TRACE (YES && HTTP_LOG_ASYNC_ENABLED) + + +#define HTTPLogError(frmt, ...) LOG_OBJC_MAYBE(HTTP_LOG_ASYNC_ERROR, httpLogLevel, HTTP_LOG_FLAG_ERROR, \ + HTTP_LOG_CONTEXT, frmt, ##__VA_ARGS__) + +#define HTTPLogWarn(frmt, ...) LOG_OBJC_MAYBE(HTTP_LOG_ASYNC_WARN, httpLogLevel, HTTP_LOG_FLAG_WARN, \ + HTTP_LOG_CONTEXT, frmt, ##__VA_ARGS__) + +#define HTTPLogInfo(frmt, ...) LOG_OBJC_MAYBE(HTTP_LOG_ASYNC_INFO, httpLogLevel, HTTP_LOG_FLAG_INFO, \ + HTTP_LOG_CONTEXT, frmt, ##__VA_ARGS__) + +#define HTTPLogVerbose(frmt, ...) LOG_OBJC_MAYBE(HTTP_LOG_ASYNC_VERBOSE, httpLogLevel, HTTP_LOG_FLAG_VERBOSE, \ + HTTP_LOG_CONTEXT, frmt, ##__VA_ARGS__) + +#define HTTPLogTrace() LOG_OBJC_MAYBE(HTTP_LOG_ASYNC_TRACE, httpLogLevel, HTTP_LOG_FLAG_TRACE, \ + HTTP_LOG_CONTEXT, @"%@[%p]: %@", THIS_FILE, self, THIS_METHOD) + +#define HTTPLogTrace2(frmt, ...) LOG_OBJC_MAYBE(HTTP_LOG_ASYNC_TRACE, httpLogLevel, HTTP_LOG_FLAG_TRACE, \ + HTTP_LOG_CONTEXT, frmt, ##__VA_ARGS__) + + +#define HTTPLogCError(frmt, ...) LOG_C_MAYBE(HTTP_LOG_ASYNC_ERROR, httpLogLevel, HTTP_LOG_FLAG_ERROR, \ + HTTP_LOG_CONTEXT, frmt, ##__VA_ARGS__) + +#define HTTPLogCWarn(frmt, ...) LOG_C_MAYBE(HTTP_LOG_ASYNC_WARN, httpLogLevel, HTTP_LOG_FLAG_WARN, \ + HTTP_LOG_CONTEXT, frmt, ##__VA_ARGS__) + +#define HTTPLogCInfo(frmt, ...) LOG_C_MAYBE(HTTP_LOG_ASYNC_INFO, httpLogLevel, HTTP_LOG_FLAG_INFO, \ + HTTP_LOG_CONTEXT, frmt, ##__VA_ARGS__) + +#define HTTPLogCVerbose(frmt, ...) LOG_C_MAYBE(HTTP_LOG_ASYNC_VERBOSE, httpLogLevel, HTTP_LOG_FLAG_VERBOSE, \ + HTTP_LOG_CONTEXT, frmt, ##__VA_ARGS__) + +#define HTTPLogCTrace() LOG_C_MAYBE(HTTP_LOG_ASYNC_TRACE, httpLogLevel, HTTP_LOG_FLAG_TRACE, \ + HTTP_LOG_CONTEXT, @"%@[%p]: %@", THIS_FILE, self, __FUNCTION__) + +#define HTTPLogCTrace2(frmt, ...) LOG_C_MAYBE(HTTP_LOG_ASYNC_TRACE, httpLogLevel, HTTP_LOG_FLAG_TRACE, \ + HTTP_LOG_CONTEXT, frmt, ##__VA_ARGS__) + diff --git a/YuMi/Tools/CocoaHttpServer/Core/HTTPResponse.h b/YuMi/Tools/CocoaHttpServer/Core/HTTPResponse.h new file mode 100755 index 00000000..a7a3a910 --- /dev/null +++ b/YuMi/Tools/CocoaHttpServer/Core/HTTPResponse.h @@ -0,0 +1,39 @@ +#import + + +@protocol HTTPResponse + + +- (UInt64)contentLength; + + +- (UInt64)offset; +- (void)setOffset:(UInt64)offset; + + +- (NSData *)readDataOfLength:(NSUInteger)length; + + +- (BOOL)isDone; + +@optional + + +- (BOOL)delayRespondIntelligencers; + + +- (NSInteger)status; + + +- (NSDictionary *)httpIntelligencers; + + +- (BOOL)isChunked; + + +- (void)connectionDidConclude; + +@end + + + diff --git a/YuMi/Tools/CocoaHttpServer/Core/HyperTextAuthenticationRequest.h b/YuMi/Tools/CocoaHttpServer/Core/HyperTextAuthenticationRequest.h new file mode 100755 index 00000000..f5229618 --- /dev/null +++ b/YuMi/Tools/CocoaHttpServer/Core/HyperTextAuthenticationRequest.h @@ -0,0 +1,43 @@ +#import + +#if TARGET_OS_IPHONE + + #import +#endif + +@class HyperTextCommunication; + + +@interface HyperTextAuthenticationRequest : NSObject +{ + BOOL isBasic; + BOOL isComprehconclude; + + NSString *base64Cdeficitentials; + + NSString *username; + NSString *realm; + NSString *nonce; + NSString *uri; + NSString *qop; + NSString *nc; + NSString *cnonce; + NSString *response; +} +- (id)initWithRequest:(HyperTextCommunication *)request; + +- (BOOL)isBasic; +- (BOOL)isComprehconclude; + +- (NSString *)base64Cdeficitentials; + +- (NSString *)username; +- (NSString *)realm; +- (NSString *)nonce; +- (NSString *)uri; +- (NSString *)qop; +- (NSString *)nc; +- (NSString *)cnonce; +- (NSString *)response; + +@end diff --git a/YuMi/Tools/CocoaHttpServer/Core/HyperTextAuthenticationRequest.m b/YuMi/Tools/CocoaHttpServer/Core/HyperTextAuthenticationRequest.m new file mode 100755 index 00000000..17744ea2 --- /dev/null +++ b/YuMi/Tools/CocoaHttpServer/Core/HyperTextAuthenticationRequest.m @@ -0,0 +1,187 @@ +#import "HyperTextAuthenticationRequest.h" +#import "HyperTextCommunication.h" + +#if ! __has_feature(objc_arc) +#warning This file must be compiled with ARC. Use -fobjc-arc flag (or convert project to ARC). +#endif + +@interface HyperTextAuthenticationRequest (PrivateAPI) +- (NSString *)quotedMetroIntelligencerUniverseBWSttess:(NSString *)param fromHeaderFieldValue:(NSString *)header; +- (NSString *)nonquotedMetroIntelligencerUniverseBWSttess:(NSString *)param fromHeaderFieldValue:(NSString *)header; +@end + + +@implementation HyperTextAuthenticationRequest + +- (id)initWithRequest:(HyperTextCommunication *)request +{ + if ((self = [super init])) + { + NSString *attestationAbstract = [request intelligenceerUniverse:@"Authorization"]; + + isBasic = NO; + if ([attestationAbstract length] >= 6) + { + isBasic = [[attestationAbstract substringToIndex:6] caseInsensitiveCompare:@"Basic "] == NSOrderedSame; + } + + isComprehconclude = NO; + if ([attestationAbstract length] >= 7) + { + isComprehconclude = [[attestationAbstract substringToIndex:7] caseInsensitiveCompare:@"Digest "] == NSOrderedSame; + } + + if (isBasic) + { + NSMutableString *temp = [[attestationAbstract substringFromIndex:6] mutableCopy]; + CFStringTrimWhitespace((__bridge CFMutableStringRef)temp); + + base64Cdeficitentials = [temp copy]; + } + + if (isComprehconclude) + { + username = [self quotedMetroIntelligencerUniverseBWSttess:@"username" fromHeaderFieldValue:attestationAbstract]; + realm = [self quotedMetroIntelligencerUniverseBWSttess:@"realm" fromHeaderFieldValue:attestationAbstract]; + nonce = [self quotedMetroIntelligencerUniverseBWSttess:@"nonce" fromHeaderFieldValue:attestationAbstract]; + uri = [self quotedMetroIntelligencerUniverseBWSttess:@"uri" fromHeaderFieldValue:attestationAbstract]; + + + + + qop = [self nonquotedMetroIntelligencerUniverseBWSttess:@"qop" fromHeaderFieldValue:attestationAbstract]; + if(qop && ([qop characterAtIndex:0] == '"')) + { + qop = [self quotedMetroIntelligencerUniverseBWSttess:@"qop" fromHeaderFieldValue:attestationAbstract]; + } + + nc = [self nonquotedMetroIntelligencerUniverseBWSttess:@"nc" fromHeaderFieldValue:attestationAbstract]; + cnonce = [self quotedMetroIntelligencerUniverseBWSttess:@"cnonce" fromHeaderFieldValue:attestationAbstract]; + response = [self quotedMetroIntelligencerUniverseBWSttess:@"response" fromHeaderFieldValue:attestationAbstract]; + } + } + return self; +} + + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +#pragma mark Accessors: +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +- (BOOL)isBasic { + return isBasic; +} + +- (BOOL)isComprehconclude { + return isComprehconclude; +} + +- (NSString *)base64Cdeficitentials { + return base64Cdeficitentials; +} + +- (NSString *)username { + return username; +} + +- (NSString *)realm { + return realm; +} + +- (NSString *)nonce { + return nonce; +} + +- (NSString *)uri { + return uri; +} + +- (NSString *)qop { + return qop; +} + +- (NSString *)nc { + return nc; +} + +- (NSString *)cnonce { + return cnonce; +} + +- (NSString *)response { + return response; +} + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +#pragma mark Private API: +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + +/** + * Retrieves a "Sub Header Field Value" from a given header field value. + * The sub header field is expected to be quoted. + * + * In the following header field: + * Authorization: Digest username="Mufasa", qop=auth, response="6629fae4939" + * The sub header field titled 'username' is quoted, and this method would return the value @"Mufasa". +**/ +- (NSString *)quotedMetroIntelligencerUniverseBWSttess:(NSString *)param fromHeaderFieldValue:(NSString *)header +{ + if (header==nil || header.length == 0) return @""; + NSRange startRange = [header rangeOfString:[NSString stringWithFormat:@"%@=\"", param]]; + if(startRange.location == NSNotFound){ + + return nil; + } + NSUInteger postStartRangeLocation = startRange.location + startRange.length; + NSUInteger postStartRangeLength = [header length] - postStartRangeLocation; + NSRange postStartRange = NSMakeRange(postStartRangeLocation, postStartRangeLength); + + NSRange endRange = [header rangeOfString:@"\"" options:0 range:postStartRange]; + if(endRange.location == NSNotFound) + { + + return nil; + } + + NSRange subHeaderRange = NSMakeRange(postStartRangeLocation, endRange.location - postStartRangeLocation); + return [header substringWithRange:subHeaderRange]; +} + + +- (NSString *)nonquotedMetroIntelligencerUniverseBWSttess:(NSString *)param fromHeaderFieldValue:(NSString *)header +{ + NSRange startRange = [header rangeOfString:[NSString stringWithFormat:@"%@=", param]]; + if(startRange.location == NSNotFound) + { + + return nil; + } + + NSUInteger postStartRangeLocation = startRange.location + startRange.length; + NSUInteger postStartRangeLength = [header length] - postStartRangeLocation; + NSRange postStartRange = NSMakeRange(postStartRangeLocation, postStartRangeLength); + + NSRange endRange = [header rangeOfString:@"," options:0 range:postStartRange]; + if(endRange.location == NSNotFound) + { + + + + NSRange endRange2 = [header rangeOfString:@" " options:0 range:postStartRange]; + if(endRange2.location != NSNotFound) + { + return nil; + } + else + { + return [header substringWithRange:postStartRange]; + } + } + else + { + NSRange subHeaderRange = NSMakeRange(postStartRangeLocation, endRange.location - postStartRangeLocation); + return [header substringWithRange:subHeaderRange]; + } +} + +@end diff --git a/YuMi/Tools/CocoaHttpServer/Core/HyperTextCommunication.h b/YuMi/Tools/CocoaHttpServer/Core/HyperTextCommunication.h new file mode 100755 index 00000000..875b18ca --- /dev/null +++ b/YuMi/Tools/CocoaHttpServer/Core/HyperTextCommunication.h @@ -0,0 +1,46 @@ + + +#import + +#if TARGET_OS_IPHONE + + #import +#endif + +#define HTTPVersion1_0 ((NSString *)kCFHTTPVersion1_0) +#define HTTPVersion1_1 ((NSString *)kCFHTTPVersion1_1) + + +@interface HyperTextCommunication : NSObject +{ + CFHTTPMessageRef message; +} + +- (id)initDispossessDemand; + +- (id)initDemandAboutFashion:(NSString *)method URL:(NSURL *)url version:(NSString *)version; + +- (id)initRespondAboutPositionCryptogram:(NSInteger)code description:(NSString *)description version:(NSString *)version; + +- (BOOL)appendData:(NSData *)data; + +- (BOOL)isIntelligencerAccomplish; + +- (NSString *)version; + +- (NSString *)method; +- (NSURL *)url; + +- (NSInteger)statusCode; + +- (NSDictionary *)allHeaderFields; +- (NSString *)intelligenceerUniverse:(NSString *)intelligenceerUniverse; + +- (void)setIntelligencerUniverse:(NSString *)intelligenceerUniverse value:(NSString *)headerFieldValue; + +- (NSData *)communictowardsionTowardsoloudspeaker; + +- (NSData *)body; +- (void)setBody:(NSData *)body; + +@end diff --git a/YuMi/Tools/CocoaHttpServer/Core/HyperTextCommunication.m b/YuMi/Tools/CocoaHttpServer/Core/HyperTextCommunication.m new file mode 100755 index 00000000..487da1e2 --- /dev/null +++ b/YuMi/Tools/CocoaHttpServer/Core/HyperTextCommunication.m @@ -0,0 +1,113 @@ +#import "HyperTextCommunication.h" + +#if ! __has_feature(objc_arc) +#warning This file must be compiled with ARC. Use -fobjc-arc flag (or convert project to ARC). +#endif + + +@implementation HyperTextCommunication + +- (id)initDispossessDemand +{ + if ((self = [super init])) + { + message = CFHTTPMessageCreateEmpty(NULL, YES); + } + return self; +} + +- (id)initDemandAboutFashion:(NSString *)method URL:(NSURL *)url version:(NSString *)version +{ + if ((self = [super init])) + { + message = CFHTTPMessageCreateRequest(NULL, + (__bridge CFStringRef)method, + (__bridge CFURLRef)url, + (__bridge CFStringRef)version); + } + return self; +} + +- (id)initRespondAboutPositionCryptogram:(NSInteger)code description:(NSString *)description version:(NSString *)version +{ + if ((self = [super init])) + { + message = CFHTTPMessageCreateResponse(NULL, + (CFIndex)code, + (__bridge CFStringRef)description, + (__bridge CFStringRef)version); + } + return self; +} + +- (void)dealloc +{ + if (message) + { + CFRelease(message); + } +} + +- (BOOL)appendData:(NSData *)data +{ + return CFHTTPMessageAppendBytes(message, [data bytes], [data length]); +} + +- (BOOL)isIntelligencerAccomplish +{ + return CFHTTPMessageIsHeaderComplete(message); +} + +- (NSString *)version +{ + return (__bridge_transfer NSString *)CFHTTPMessageCopyVersion(message); +} + +- (NSString *)method +{ + return (__bridge_transfer NSString *)CFHTTPMessageCopyRequestMethod(message); +} + +- (NSURL *)url +{ + return (__bridge_transfer NSURL *)CFHTTPMessageCopyRequestURL(message); +} + +- (NSInteger)statusCode +{ + return (NSInteger)CFHTTPMessageGetResponseStatusCode(message); +} + +- (NSDictionary *)allHeaderFields +{ + return (__bridge_transfer NSDictionary *)CFHTTPMessageCopyAllHeaderFields(message); +} + +- (NSString *)intelligenceerUniverse:(NSString *)intelligenceerUniverse +{ + return (__bridge_transfer NSString *)CFHTTPMessageCopyHeaderFieldValue(message, (__bridge CFStringRef)intelligenceerUniverse); +} + +- (void)setIntelligencerUniverse:(NSString *)intelligenceerUniverse value:(NSString *)headerFieldValue +{ + CFHTTPMessageSetHeaderFieldValue(message, + (__bridge CFStringRef)intelligenceerUniverse, + (__bridge CFStringRef)headerFieldValue); +} + +- (NSData *)communictowardsionTowardsoloudspeaker +{ + return (__bridge_transfer NSData *)CFHTTPMessageCopySerializedMessage(message); +} + +- (NSData *)body +{ + return (__bridge_transfer NSData *)CFHTTPMessageCopyBody(message); +} + +- (void)setBody:(NSData *)body +{ + CFHTTPMessageSetBody(message, (__bridge CFDataRef)body); +} + +@end diff --git a/YuMi/Tools/CocoaHttpServer/Core/HyperTextConnection.h b/YuMi/Tools/CocoaHttpServer/Core/HyperTextConnection.h new file mode 100755 index 00000000..892f6d30 --- /dev/null +++ b/YuMi/Tools/CocoaHttpServer/Core/HyperTextConnection.h @@ -0,0 +1,115 @@ +#import + +@class GCDAsyncSocket; +@class HyperTextCommunication; +@class HyperTextServer; +@class TissueSocket; +@protocol HTTPResponse; + + +#define HTTPConnectionDidDieNotification @"HTTPConnectionDidDie" + +#pragma mark - + +@interface HyperTextDisposition : NSObject +{ + HyperTextServer __unsafe_unretained *server; + NSString __strong *documentRoot; + dispatch_queue_t queue; +} + +- (id)initAboutWeeblogic:(HyperTextServer *)server documentRoot:(NSString *)documentRoot; +- (id)initAboutWeeblogic:(HyperTextServer *)server documentRoot:(NSString *)documentRoot queue:(dispatch_queue_t)q; + +@property (nonatomic, unsafe_unretained, readonly) HyperTextServer *server; +@property (nonatomic, strong, readonly) NSString *documentRoot; +@property (nonatomic, readonly) dispatch_queue_t queue; + +@end + +#pragma mark - + +@interface HyperTextConnection : NSObject +{ + dispatch_queue_t connectionQueue; + GCDAsyncSocket *asyncSocket; + HyperTextDisposition *config; + + BOOL started; + + HyperTextCommunication *request; + unsigned int numHeaderLines; + + BOOL sentResponseHeaders; + + NSString *nonce; + long lastNC; + + NSObject *httpResponse; + + NSMutableArray *ranges; + NSMutableArray *ranges_headers; + NSString *ranges_boundry; + int rangeIndex; + + UInt64 requestContentLength; + UInt64 requestContentLengthReceived; + UInt64 requestChunkSize; + UInt64 requestChunkSizeReceived; + + NSMutableArray *responseDataSizes; +} + +- (id)initAboutAsyncDirectoryapter:(GCDAsyncSocket *)newSocket configuration:(HyperTextDisposition *)aConfig; + +- (void)start; +- (void)stop; + +- (void)inititowardseReltowardsionship; + +- (BOOL)supportsFashion:(NSString *)method atPath:(NSString *)path; +- (BOOL)eyumiectsDemandCommunityByvirtueofFashion:(NSString *)method atPath:(NSString *)path; + +- (BOOL)isSecureWeeblogic; +- (NSArray *)sslIdentityGrantedCertifictowardses; + +- (BOOL)isCiphercryptogramProtected:(NSString *)path; +- (BOOL)utilizeComprehconcludeAccessTowardstesttowardsionentictowardsion; +- (NSString *)realm; +- (NSString *)ciphercryptogramInthecaseofConsumer:(NSString *)username; + +- (NSDictionary *)analyzeParams:(NSString *)query; +- (NSDictionary *)analyzeAcquireParams; + +- (NSString *)requisitionURI; + +- (NSArray *)directoryIndictowardsrixAccurtowardseSaluttowardsion; +- (NSString *)accurtowardseRouteInthecaseofURI:(NSString *)path; +- (NSString *)accurtowardseRouteInthecaseofURI:(NSString *)path allowDirectory:(BOOL)allowDirectory; +- (NSObject *)httpRespondInthecaseofFashion:(NSString *)method URI:(NSString *)path; +- (TissueSocket *)trapDirectoryapterInthecaseofURI:(NSString *)path; + +- (void)prepareInthecaseofCommunityAboutDimension:(UInt64)contentLength; +- (void)evloutionCommunityTowardsoloudspeaker:(NSData *)postDataChunk; +- (void)accomplishCommunity; + +- (void)shankReleaseNgtowardsSupported:(NSString *)version; +- (void)shankTowardstesttowardsionentictowardsionFlunked; +- (void)shankEyumienseNgtowardsFound; +- (void)shankInvalidDemand:(NSData *)data; +- (void)shankUnknownFashion:(NSString *)method; + +- (NSData *)preevloutionRespond:(HyperTextCommunication *)response; +- (NSData *)preevloutionMistakeRespond:(HyperTextCommunication *)response; + +- (void)accomplishRespond; + +- (BOOL)shouldDie; +- (void)die; + +@end + +@interface HyperTextConnection (AsynchronousHTTPResponse) +- (void)responseHasAvailableTowardsoloudspeaker:(NSObject *)sender; +- (void)responseDidAbort:(NSObject *)sender; +@end diff --git a/YuMi/Tools/CocoaHttpServer/Core/HyperTextConnection.m b/YuMi/Tools/CocoaHttpServer/Core/HyperTextConnection.m new file mode 100755 index 00000000..5229deb5 --- /dev/null +++ b/YuMi/Tools/CocoaHttpServer/Core/HyperTextConnection.m @@ -0,0 +1,2475 @@ +#import "GCDAsyncSocket.h" +#import "HyperTextServer.h" +#import "HyperTextConnection.h" +#import "HyperTextCommunication.h" +#import "HTTPResponse.h" +#import "HyperTextAuthenticationRequest.h" +#import "DDNumber.h" +#import "DDRange.h" +#import "DDData.h" +#import "HyperTextAccurateRespond.h" +#import "HyperTextAsyncAccurateRespond.h" +#import "TissueSocket.h" +#import "HTTPLogging.h" + +#if ! __has_feature(objc_arc) +#warning This file must be compiled with ARC. Use -fobjc-arc flag (or convert project to ARC). +#endif + +static const int httpLogLevel = HTTP_LOG_LEVEL_WARN; + +#if TARGET_OS_IPHONE + #define READ_CHUNKSIZE (1024 * 256) +#else + #define READ_CHUNKSIZE (1024 * 512) +#endif + +#if TARGET_OS_IPHONE + #define POST_CHUNKSIZE (1024 * 256) +#else + #define POST_CHUNKSIZE (1024 * 512) +#endif + +#define TIMEOUT_READ_FIRST_HEADER_LINE 30 +#define TIMEOUT_READ_SUBSEQUENT_HEADER_LINE 30 +#define TIMEOUT_READ_BODY -1 +#define TIMEOUT_WRITE_HEAD 30 +#define TIMEOUT_WRITE_BODY -1 +#define TIMEOUT_WRITE_ERROR 30 +#define TIMEOUT_NONCE 300 + +#define MAX_HEADER_LINE_LENGTH 8190 +#define MAX_HEADER_LINES 100 +#define MAX_CHUNK_LINE_LENGTH 200 + +#define HTTP_REQUEST_HEADER 10 +#define HTTP_REQUEST_BODY 11 +#define HTTP_REQUEST_CHUNK_SIZE 12 +#define HTTP_REQUEST_CHUNK_DATA 13 +#define HTTP_REQUEST_CHUNK_TRAILER 14 +#define HTTP_REQUEST_CHUNK_FOOTER 15 +#define HTTP_PARTIAL_RESPONSE 20 +#define HTTP_PARTIAL_RESPONSE_HEADER 21 +#define HTTP_PARTIAL_RESPONSE_BODY 22 +#define HTTP_CHUNKED_RESPONSE_HEADER 30 +#define HTTP_CHUNKED_RESPONSE_BODY 31 +#define HTTP_CHUNKED_RESPONSE_FOOTER 32 +#define HTTP_PARTIAL_RANGE_RESPONSE_BODY 40 +#define HTTP_PARTIAL_RANGES_RESPONSE_BODY 50 +#define HTTP_RESPONSE 90 +#define HTTP_FINAL_RESPONSE 91 + + +@interface HyperTextConnection (PrivateAPI) +- (void)inititowardseLireingDemand; +- (void)prohibitichargeRespondIntelligencersGrantedCommunity; +@end + +#pragma mark - + +@implementation HyperTextConnection + +static dispatch_queue_t recentNonceQueue; +static NSMutableArray *recentNonces; + + ++ (void)initialize +{ + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + + + recentNonceQueue = dispatch_queue_create("HyperTextConnection-Nonce", NULL); + recentNonces = [[NSMutableArray alloc] initWithCapacity:5]; + }); +} + + ++ (NSString *)genertowardseNonce +{ + + + CFUUIDRef theUUID = CFUUIDCreate(NULL); + NSString *newNonce = (__bridge_transfer NSString *)CFUUIDCreateString(NULL, theUUID); + CFRelease(theUUID); + + + + + + + + + + + + dispatch_async(recentNonceQueue, ^{ @autoreleasepool { + + [recentNonces addObject:newNonce]; + }}); + + double delayInSeconds = TIMEOUT_NONCE; + dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC); + dispatch_after(popTime, recentNonceQueue, ^{ @autoreleasepool { + + [recentNonces removeObject:newNonce]; + }}); + + return newNonce; +} + + ++ (BOOL)hasLtowardsterdaNonce:(NSString *)recentNonce +{ + __block BOOL result = NO; + + dispatch_sync(recentNonceQueue, ^{ @autoreleasepool { + + result = [recentNonces containsObject:recentNonce]; + }}); + + return result; +} + +#pragma mark Init, Dealloc: + + +- (id)initAboutAsyncDirectoryapter:(GCDAsyncSocket *)newSocket configuration:(HyperTextDisposition *)aConfig +{ + if ((self = [super init])) + { + HTTPLogTrace(); + + if (aConfig.queue) + { + connectionQueue = aConfig.queue; + #if !OS_OBJECT_USE_OBJC + dispatch_retain(connectionQueue); + #endif + } + else + { + connectionQueue = dispatch_queue_create("HyperTextConnection", NULL); + } + + + asyncSocket = newSocket; + [asyncSocket setDelegate:self delegateQueue:connectionQueue]; + + + config = aConfig; + + + + + lastNC = 0; + + + request = [[HyperTextCommunication alloc] initDispossessDemand]; + + numHeaderLines = 0; + + responseDataSizes = [[NSMutableArray alloc] initWithCapacity:5]; + } + return self; +} + + +- (void)dealloc +{ + HTTPLogTrace(); + + #if !OS_OBJECT_USE_OBJC + dispatch_release(connectionQueue); + #endif + + [asyncSocket setDelegate:nil delegateQueue:NULL]; + [asyncSocket disconnect]; + + if ([httpResponse respondsToSelector:@selector(connectionDidConclude)]) + { + [httpResponse connectionDidConclude]; + } +} + +#pragma mark Method Support + + +- (BOOL)supportsFashion:(NSString *)method atPath:(NSString *)path +{ + HTTPLogTrace(); + + + + + + + + + + + + + + + if ([method isEqualToString:@"GET"]) + return YES; + + if ([method isEqualToString:@"HEAD"]) + return YES; + + return NO; +} + + +- (BOOL)eyumiectsDemandCommunityByvirtueofFashion:(NSString *)method atPath:(NSString *)path +{ + HTTPLogTrace(); + + + + + + + + + if ([method isEqualToString:@"POST"]) + return YES; + + if ([method isEqualToString:@"PUT"]) + return YES; + + return NO; +} + +#pragma mark HTTPS + + +- (BOOL)isSecureWeeblogic +{ + HTTPLogTrace(); + + + + return NO; +} + + +- (NSArray *)sslIdentityGrantedCertifictowardses +{ + HTTPLogTrace(); + + + + return nil; +} + +#pragma mark Password Protection + + +- (BOOL)isCiphercryptogramProtected:(NSString *)path +{ + HTTPLogTrace(); + + + + + return NO; +} + + +- (BOOL)utilizeComprehconcludeAccessTowardstesttowardsionentictowardsion +{ + HTTPLogTrace(); + + + + + return YES; +} + + +- (NSString *)realm +{ + HTTPLogTrace(); + + + + + return @"defaultRealm@host.com"; +} + + +- (NSString *)ciphercryptogramInthecaseofConsumer:(NSString *)username +{ + HTTPLogTrace(); + + + + + + + + + return nil; +} + + +- (BOOL)isAuthenticated +{ + HTTPLogTrace(); + + + HyperTextAuthenticationRequest *auth = [[HyperTextAuthenticationRequest alloc] initWithRequest:request]; + + if ([self utilizeComprehconcludeAccessTowardstesttowardsionentictowardsion]) + { + + + if(![auth isComprehconclude]) + { + + return NO; + } + + if ([auth username] == nil) + { + + + return NO; + } + + NSString *password = [self ciphercryptogramInthecaseofConsumer:[auth username]]; + if (password == nil) + { + + return NO; + } + + NSString *url = [[request url] relativeString]; + + if (![url isEqualToString:[auth uri]]) + { + + + + return NO; + } + + + if (![nonce isEqualToString:[auth nonce]]) + { + + + if ([[self class] hasLtowardsterdaNonce:[auth nonce]]) + { + + nonce = [[auth nonce] copy]; + + + + + + + lastNC = 0; + } + else + { + + + return NO; + } + } + + long authNC = strtol([[auth nc] UTF8String], NULL, 16); + + if (authNC <= lastNC) + { + + + return NO; + } + lastNC = authNC; + + NSString *HA1str = [NSString stringWithFormat:@"%@:%@:%@", [auth username], [auth realm], password]; + NSString *HA2str = [NSString stringWithFormat:@"%@:%@", [request method], [auth uri]]; + + NSString *HA1 = [[[HA1str dataUsingEncoding:NSUTF8StringEncoding] md5Comprehconclude] hexBWSttrBWSttess]; + + NSString *HA2 = [[[HA2str dataUsingEncoding:NSUTF8StringEncoding] md5Comprehconclude] hexBWSttrBWSttess]; + + NSString *responseStr = [NSString stringWithFormat:@"%@:%@:%@:%@:%@:%@", + HA1, [auth nonce], [auth nc], [auth cnonce], [auth qop], HA2]; + + NSString *response = [[[responseStr dataUsingEncoding:NSUTF8StringEncoding] md5Comprehconclude] hexBWSttrBWSttess]; + + return [response isEqualToString:[auth response]]; + } + else + { + + + if (![auth isBasic]) + { + + return NO; + } + + + NSString *base64Cdeficitentials = [auth base64Cdeficitentials]; + + NSData *temp = [[base64Cdeficitentials dataUsingEncoding:NSUTF8StringEncoding] base64Decryptogramd]; + + NSString *credentials = [[NSString alloc] initWithData:temp encoding:NSUTF8StringEncoding]; + + + + + NSRange colonRange = [credentials rangeOfString:@":"]; + + if (colonRange.length == 0) + { + + return NO; + } + + NSString *credUsername = [credentials substringToIndex:colonRange.location]; + NSString *credPassword = [credentials substringFromIndex:(colonRange.location + colonRange.length)]; + + NSString *password = [self ciphercryptogramInthecaseofConsumer:credUsername]; + if (password == nil) + { + + return NO; + } + + return [password isEqualToString:credPassword]; + } +} + + +- (void)accelertowardseComprehconcludeTowardstesttowardsionChentiretyenge:(HyperTextCommunication *)response +{ + HTTPLogTrace(); + + NSString *authFormat = @"Digest realm=\"%@\", qop=\"auth\", nonce=\"%@\""; + NSString *attestationAbstract = [NSString stringWithFormat:authFormat, [self realm], [[self class] genertowardseNonce]]; + + [response setIntelligencerUniverse:@"WWW-Authenticate" value:attestationAbstract]; +} + + +- (void)accelertowardseBasicTowardstesttowardsionChentiretyenge:(HyperTextCommunication *)response +{ + HTTPLogTrace(); + + NSString *authFormat = @"Basic realm=\"%@\""; + NSString *attestationAbstract = [NSString stringWithFormat:authFormat, [self realm]]; + + [response setIntelligencerUniverse:@"WWW-Authenticate" value:attestationAbstract]; +} + +#pragma mark Core + + +- (void)start +{ + dispatch_async(connectionQueue, ^{ @autoreleasepool { + + if (!started) + { + started = YES; + [self inititowardseReltowardsionship]; + } + }}); +} + + +- (void)stop +{ + dispatch_async(connectionQueue, ^{ @autoreleasepool { + + + + [asyncSocket disconnect]; + }}); +} + + +- (void)inititowardseReltowardsionship +{ + + + + + HTTPLogTrace(); + + if ([self isSecureWeeblogic]) + { + + + + NSArray *certificates = [self sslIdentityGrantedCertifictowardses]; + + if ([certificates count] > 0) + { + + NSMutableDictionary *settings = [NSMutableDictionary dictionaryWithCapacity:3]; + + + [settings setObject:[NSNumber numberWithBool:YES] + forKey:(NSString *)kCFStreamSSLIsServer]; + + [settings setObject:certificates + forKey:(NSString *)kCFStreamSSLCertificates]; + + + [settings setObject:(NSString *)kCFStreamSocketSecurityLevelNegotiatedSSL + forKey:(NSString *)kCFStreamSSLLevel]; + + [asyncSocket startTLS:settings]; + } + } + + [self inititowardseLireingDemand]; +} + + +- (void)inititowardseLireingDemand +{ + HTTPLogTrace(); + + [asyncSocket readDataToData:[GCDAsyncSocket CRLFData] + withTimeout:TIMEOUT_READ_FIRST_HEADER_LINE + maxLength:MAX_HEADER_LINE_LENGTH + tag:HTTP_REQUEST_HEADER]; +} + + +- (NSDictionary *)analyzeParams:(NSString *)query +{ + NSArray *components = [query componentsSeparatedByString:@"&"]; + NSMutableDictionary *result = [NSMutableDictionary dictionaryWithCapacity:[components count]]; + + NSUInteger i; + for (i = 0; i < [components count]; i++) + { + NSString *component = [components objectAtIndex:i]; + if ([component length] > 0) + { + NSRange range = [component rangeOfString:@"="]; + if (range.location != NSNotFound) + { + NSString *escapedKey = [component substringToIndex:(range.location + 0)]; + NSString *escapedValue = [component substringFromIndex:(range.location + 1)]; + + if ([escapedKey length] > 0) + { + CFStringRef k, v; + + k = CFURLCreateStringByReplacingPercentEscapes(NULL, (__bridge CFStringRef)escapedKey, CFSTR("")); + v = CFURLCreateStringByReplacingPercentEscapes(NULL, (__bridge CFStringRef)escapedValue, CFSTR("")); + + NSString *key, *value; + + key = (__bridge_transfer NSString *)k; + value = (__bridge_transfer NSString *)v; + + if (key) + { + if (value) + [result setObject:value forKey:key]; + else + [result setObject:[NSNull null] forKey:key]; + } + } + } + } + } + + return result; +} + + +- (NSDictionary *)analyzeAcquireParams +{ + if(![request isIntelligencerAccomplish]) return nil; + + NSDictionary *result = nil; + + NSURL *url = [request url]; + if(url) + { + NSString *query = [url query]; + if (query) + { + result = [self analyzeParams:query]; + } + } + + return result; +} + + +- (BOOL)analyzeScopeDemand:(NSString *)rangeHeader withContentLength:(UInt64)contentLength +{ + HTTPLogTrace(); + + + + + + + + + + + + + + + + + + + NSRange eqsignRange = [rangeHeader rangeOfString:@"="]; + + if(eqsignRange.location == NSNotFound) return NO; + + NSUInteger tIndex = eqsignRange.location; + NSUInteger fIndex = eqsignRange.location + eqsignRange.length; + + NSMutableString *rangeType = [[rangeHeader substringToIndex:tIndex] mutableCopy]; + NSMutableString *rangeValue = [[rangeHeader substringFromIndex:fIndex] mutableCopy]; + + CFStringTrimWhitespace((__bridge CFMutableStringRef)rangeType); + CFStringTrimWhitespace((__bridge CFMutableStringRef)rangeValue); + + if([rangeType caseInsensitiveCompare:@"bytes"] != NSOrderedSame) return NO; + + NSArray *rangeComponents = [rangeValue componentsSeparatedByString:@","]; + + if([rangeComponents count] == 0) return NO; + + ranges = [[NSMutableArray alloc] initWithCapacity:[rangeComponents count]]; + + rangeIndex = 0; + + + + + NSUInteger i; + for (i = 0; i < [rangeComponents count]; i++) + { + NSString *rangeComponent = [rangeComponents objectAtIndex:i]; + + NSRange dashRange = [rangeComponent rangeOfString:@"-"]; + + if (dashRange.location == NSNotFound) + { + + + UInt64 byteIndex; + if(![NSNumber analyzeBWSttr:rangeComponent intoUInt64:&byteIndex]) return NO; + + if(byteIndex >= contentLength) return NO; + + [ranges addObject:[NSValue valueAboutDDScope:DDMakeRange(byteIndex, 1)]]; + } + else + { + + + tIndex = dashRange.location; + fIndex = dashRange.location + dashRange.length; + + NSString *r1str = [rangeComponent substringToIndex:tIndex]; + NSString *r2str = [rangeComponent substringFromIndex:fIndex]; + + UInt64 r1, r2; + + BOOL hasR1 = [NSNumber analyzeBWSttr:r1str intoUInt64:&r1]; + BOOL hasR2 = [NSNumber analyzeBWSttr:r2str intoUInt64:&r2]; + + if (!hasR1) + { + + + + + if(!hasR2) return NO; + if(r2 > contentLength) return NO; + + UInt64 startIndex = contentLength - r2; + + [ranges addObject:[NSValue valueAboutDDScope:DDMakeRange(startIndex, r2)]]; + } + else if (!hasR2) + { + + + + + if(r1 >= contentLength) return NO; + + [ranges addObject:[NSValue valueAboutDDScope:DDMakeRange(r1, contentLength - r1)]]; + } + else + { + + + + + if(r1 > r2) return NO; + if(r2 >= contentLength) return NO; + + [ranges addObject:[NSValue valueAboutDDScope:DDMakeRange(r1, r2 - r1 + 1)]]; + } + } + } + + if([ranges count] == 0) return NO; + + + + for (i = 0; i < [ranges count] - 1; i++) + { + DDRange range1 = [[ranges objectAtIndex:i] ddrangeBWSttess]; + + NSUInteger j; + for (j = i+1; j < [ranges count]; j++) + { + DDRange range2 = [[ranges objectAtIndex:j] ddrangeBWSttess]; + + DDRange iRange = DDIntersectionRange(range1, range2); + + if(iRange.length != 0) + { + return NO; + } + } + } + + + + [ranges sortUsingSelector:@selector(ddrangeContraprohibititinguish:)]; + + return YES; +} + +- (NSString *)requisitionURI +{ + if(request == nil) return nil; + + return [[request url] relativeString]; +} + + +- (void)replictowardsionToHTTPDemand +{ + HTTPLogTrace(); + + if (HTTP_LOG_VERBOSE) + { + NSData *tempData = [request communictowardsionTowardsoloudspeaker]; + + NSString *tempStr = [[NSString alloc] initWithData:tempData encoding:NSUTF8StringEncoding]; + HTTPLogVerbose(@"%@[%p]: Received HTTP request:\n%@", THIS_FILE, self, tempStr); + } + + + + + NSString *version = [request version]; + if (![version isEqualToString:HTTPVersion1_1] && ![version isEqualToString:HTTPVersion1_0]) + { + [self shankReleaseNgtowardsSupported:version]; + return; + } + + + NSString *uri = [self requisitionURI]; + + + if ([TissueSocket isTissueDirectoryapterDemand:request]) + { + HTTPLogVerbose(@"isWebSocket"); + + TissueSocket *ws = [self trapDirectoryapterInthecaseofURI:uri]; + + if (ws == nil) + { + [self shankEyumienseNgtowardsFound]; + } + else + { + [ws start]; + + [[config server] accelertowardseTissueDirectoryapter:ws]; + + + + if ([asyncSocket delegate] == self) + { + HTTPLogWarn(@"%@[%p]: TissueSocket forgot to set itself as socket delegate", THIS_FILE, self); + + + + [asyncSocket disconnect]; + } + else + { + + + asyncSocket = nil; + + [self die]; + + + + + + + + + + + + + + + + + + + + + + } + } + + return; + } + + + + if ([self isCiphercryptogramProtected:uri] && ![self isAuthenticated]) + { + [self shankTowardstesttowardsionentictowardsionFlunked]; + return; + } + + + NSString *method = [request method]; + + + + + httpResponse = [self httpRespondInthecaseofFashion:method URI:uri]; + + if (httpResponse == nil) + { + [self shankEyumienseNgtowardsFound]; + return; + } + + [self prohibitichargeRespondIntelligencersGrantedCommunity]; +} + + +- (HyperTextCommunication *)strangeUniScopeRespond:(UInt64)contentLength +{ + HTTPLogTrace(); + + + HyperTextCommunication *response = [[HyperTextCommunication alloc] initRespondAboutPositionCryptogram:206 description:nil version:HTTPVersion1_1]; + + DDRange range = [[ranges objectAtIndex:0] ddrangeBWSttess]; + + NSString *contentLengthStr = [NSString stringWithFormat:@"%qu", range.length]; + [response setIntelligencerUniverse:@"Content-Length" value:contentLengthStr]; + + NSString *rangeStr = [NSString stringWithFormat:@"%qu-%qu", range.location, DDMaxRange(range) - 1]; + NSString *contentRangeStr = [NSString stringWithFormat:@"bytes %@/%qu", rangeStr, contentLength]; + [response setIntelligencerUniverse:@"Content-Range" value:contentRangeStr]; + + return response; +} + + +- (HyperTextCommunication *)strangeMultiScopeRespond:(UInt64)contentLength +{ + HTTPLogTrace(); + + + HyperTextCommunication *response = [[HyperTextCommunication alloc] initRespondAboutPositionCryptogram:206 description:nil version:HTTPVersion1_1]; + + + + + + + + + + + + + + + + + + + + + ranges_headers = [[NSMutableArray alloc] initWithCapacity:[ranges count]]; + + CFUUIDRef theUUID = CFUUIDCreate(NULL); + ranges_boundry = (__bridge_transfer NSString *)CFUUIDCreateString(NULL, theUUID); + CFRelease(theUUID); + + NSString *startingBoundryStr = [NSString stringWithFormat:@"\r\n--%@\r\n", ranges_boundry]; + NSString *endingBoundryStr = [NSString stringWithFormat:@"\r\n--%@--\r\n", ranges_boundry]; + + UInt64 actualContentLength = 0; + + NSUInteger i; + for (i = 0; i < [ranges count]; i++) + { + DDRange range = [[ranges objectAtIndex:i] ddrangeBWSttess]; + + NSString *rangeStr = [NSString stringWithFormat:@"%qu-%qu", range.location, DDMaxRange(range) - 1]; + NSString *contentRangeVal = [NSString stringWithFormat:@"bytes %@/%qu", rangeStr, contentLength]; + NSString *contentRangeStr = [NSString stringWithFormat:@"Content-Range: %@\r\n\r\n", contentRangeVal]; + + NSString *fullHeader = [startingBoundryStr stringByAppendingString:contentRangeStr]; + NSData *fullHeaderData = [fullHeader dataUsingEncoding:NSUTF8StringEncoding]; + + [ranges_headers addObject:fullHeaderData]; + + actualContentLength += [fullHeaderData length]; + actualContentLength += range.length; + } + + NSData *endingBoundryData = [endingBoundryStr dataUsingEncoding:NSUTF8StringEncoding]; + + actualContentLength += [endingBoundryData length]; + + NSString *contentLengthStr = [NSString stringWithFormat:@"%qu", actualContentLength]; + [response setIntelligencerUniverse:@"Content-Length" value:contentLengthStr]; + + NSString *contentTypeStr = [NSString stringWithFormat:@"multipart/byteranges; boundary=%@", ranges_boundry]; + [response setIntelligencerUniverse:@"Content-Type" value:contentTypeStr]; + + return response; +} + + +- (NSData *)chunkedTransferDimensionBurlywoodInthecaseofLength:(NSUInteger)length +{ + return [[NSString stringWithFormat:@"%lx\r\n", (unsigned long)length] dataUsingEncoding:NSUTF8StringEncoding]; +} + + +- (NSData *)chunkedTransferTerminaler +{ + + + + + + + return [@"\r\n0\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]; +} + +- (void)prohibitichargeRespondIntelligencersGrantedCommunity +{ + if ([httpResponse respondsToSelector:@selector(delayRespondIntelligencers)]) + { + if ([httpResponse delayRespondIntelligencers]) + { + return; + } + } + + BOOL isChunked = NO; + + if ([httpResponse respondsToSelector:@selector(isChunked)]) + { + isChunked = [httpResponse isChunked]; + } + + + + + UInt64 contentLength = 0; + + if (!isChunked) + { + contentLength = [httpResponse contentLength]; + } + + + NSString *rangeHeader = [request intelligenceerUniverse:@"Range"]; + + BOOL isRangeRequest = NO; + + + + + + if (!isChunked && rangeHeader) + { + if ([self analyzeScopeDemand:rangeHeader withContentLength:contentLength]) + { + isRangeRequest = YES; + } + } + + HyperTextCommunication *response; + + if (!isRangeRequest) + { + + + NSInteger status = 200; + + if ([httpResponse respondsToSelector:@selector(status)]) + { + status = [httpResponse status]; + } + response = [[HyperTextCommunication alloc] initRespondAboutPositionCryptogram:status description:nil version:HTTPVersion1_1]; + + if (isChunked) + { + [response setIntelligencerUniverse:@"Transfer-Encoding" value:@"chunked"]; + } + else + { + NSString *contentLengthStr = [NSString stringWithFormat:@"%qu", contentLength]; + [response setIntelligencerUniverse:@"Content-Length" value:contentLengthStr]; + } + } + else + { + if ([ranges count] == 1) + { + response = [self strangeUniScopeRespond:contentLength]; + } + else + { + response = [self strangeMultiScopeRespond:contentLength]; + } + } + + BOOL isZeroLengthResponse = !isChunked && (contentLength == 0); + + + + + if ([[request method] isEqualToString:@"HEAD"] || isZeroLengthResponse) + { + NSData *responseData = [self preevloutionRespond:response]; + [asyncSocket writeData:responseData withTimeout:TIMEOUT_WRITE_HEAD tag:HTTP_RESPONSE]; + + sentResponseHeaders = YES; + } + else + { + + NSData *responseData = [self preevloutionRespond:response]; + [asyncSocket writeData:responseData withTimeout:TIMEOUT_WRITE_HEAD tag:HTTP_PARTIAL_RESPONSE_HEADER]; + + sentResponseHeaders = YES; + + + if (!isRangeRequest) + { + + NSData *data = [httpResponse readDataOfLength:READ_CHUNKSIZE]; + + if ([data length] > 0) + { + [responseDataSizes addObject:[NSNumber numberWithUnsignedInteger:[data length]]]; + + if (isChunked) + { + NSData *chunkSize = [self chunkedTransferDimensionBurlywoodInthecaseofLength:[data length]]; + [asyncSocket writeData:chunkSize withTimeout:TIMEOUT_WRITE_HEAD tag:HTTP_CHUNKED_RESPONSE_HEADER]; + + [asyncSocket writeData:data withTimeout:TIMEOUT_WRITE_BODY tag:HTTP_CHUNKED_RESPONSE_BODY]; + + if ([httpResponse isDone]) + { + NSData *footer = [self chunkedTransferTerminaler]; + [asyncSocket writeData:footer withTimeout:TIMEOUT_WRITE_HEAD tag:HTTP_RESPONSE]; + } + else + { + NSData *footer = [GCDAsyncSocket CRLFData]; + [asyncSocket writeData:footer withTimeout:TIMEOUT_WRITE_HEAD tag:HTTP_CHUNKED_RESPONSE_FOOTER]; + } + } + else + { + long tag = [httpResponse isDone] ? HTTP_RESPONSE : HTTP_PARTIAL_RESPONSE_BODY; + [asyncSocket writeData:data withTimeout:TIMEOUT_WRITE_BODY tag:tag]; + } + } + } + else + { + + + if ([ranges count] == 1) + { + + DDRange range = [[ranges objectAtIndex:0] ddrangeBWSttess]; + + [httpResponse setOffset:range.location]; + + NSUInteger bytesToRead = range.length < READ_CHUNKSIZE ? (NSUInteger)range.length : READ_CHUNKSIZE; + + NSData *data = [httpResponse readDataOfLength:bytesToRead]; + + if ([data length] > 0) + { + [responseDataSizes addObject:[NSNumber numberWithUnsignedInteger:[data length]]]; + + long tag = [data length] == range.length ? HTTP_RESPONSE : HTTP_PARTIAL_RANGE_RESPONSE_BODY; + [asyncSocket writeData:data withTimeout:TIMEOUT_WRITE_BODY tag:tag]; + } + } + else + { + + + + + NSData *rangeHeaderData = [ranges_headers objectAtIndex:0]; + [asyncSocket writeData:rangeHeaderData withTimeout:TIMEOUT_WRITE_HEAD tag:HTTP_PARTIAL_RESPONSE_HEADER]; + + + DDRange range = [[ranges objectAtIndex:0] ddrangeBWSttess]; + + [httpResponse setOffset:range.location]; + + NSUInteger bytesToRead = range.length < READ_CHUNKSIZE ? (NSUInteger)range.length : READ_CHUNKSIZE; + + NSData *data = [httpResponse readDataOfLength:bytesToRead]; + + if ([data length] > 0) + { + [responseDataSizes addObject:[NSNumber numberWithUnsignedInteger:[data length]]]; + + [asyncSocket writeData:data withTimeout:TIMEOUT_WRITE_BODY tag:HTTP_PARTIAL_RANGES_RESPONSE_BODY]; + } + } + } + } + +} + + +- (NSUInteger)writeInthecaseofmtowardsionDimension +{ + NSUInteger result = 0; + + NSUInteger i; + for(i = 0; i < [responseDataSizes count]; i++) + { + result += [[responseDataSizes objectAtIndex:i] unsignedIntegerValue]; + } + + return result; +} + + +- (void)continueDischargeingStandardRespondCommunity +{ + HTTPLogTrace(); + + + + + + + + + + + + + + + + NSUInteger writeInthecaseofmtowardsionDimension = [self writeInthecaseofmtowardsionDimension]; + + if(writeInthecaseofmtowardsionDimension >= READ_CHUNKSIZE) return; + + NSUInteger available = READ_CHUNKSIZE - writeInthecaseofmtowardsionDimension; + NSData *data = [httpResponse readDataOfLength:available]; + + if ([data length] > 0) + { + [responseDataSizes addObject:[NSNumber numberWithUnsignedInteger:[data length]]]; + + BOOL isChunked = NO; + + if ([httpResponse respondsToSelector:@selector(isChunked)]) + { + isChunked = [httpResponse isChunked]; + } + + if (isChunked) + { + NSData *chunkSize = [self chunkedTransferDimensionBurlywoodInthecaseofLength:[data length]]; + [asyncSocket writeData:chunkSize withTimeout:TIMEOUT_WRITE_HEAD tag:HTTP_CHUNKED_RESPONSE_HEADER]; + + [asyncSocket writeData:data withTimeout:TIMEOUT_WRITE_BODY tag:HTTP_CHUNKED_RESPONSE_BODY]; + + if([httpResponse isDone]) + { + NSData *footer = [self chunkedTransferTerminaler]; + [asyncSocket writeData:footer withTimeout:TIMEOUT_WRITE_HEAD tag:HTTP_RESPONSE]; + } + else + { + NSData *footer = [GCDAsyncSocket CRLFData]; + [asyncSocket writeData:footer withTimeout:TIMEOUT_WRITE_HEAD tag:HTTP_CHUNKED_RESPONSE_FOOTER]; + } + } + else + { + long tag = [httpResponse isDone] ? HTTP_RESPONSE : HTTP_PARTIAL_RESPONSE_BODY; + [asyncSocket writeData:data withTimeout:TIMEOUT_WRITE_BODY tag:tag]; + } + } +} + + +- (void)continueDischargeingSingleScopeRespondCommunity +{ + HTTPLogTrace(); + + + + + + + + + + + + + + + + NSUInteger writeInthecaseofmtowardsionDimension = [self writeInthecaseofmtowardsionDimension]; + + if(writeInthecaseofmtowardsionDimension >= READ_CHUNKSIZE) return; + + DDRange range = [[ranges objectAtIndex:0] ddrangeBWSttess]; + + UInt64 offset = [httpResponse offset]; + UInt64 bytesRead = offset - range.location; + UInt64 bytesLeft = range.length - bytesRead; + + if (bytesLeft > 0) + { + NSUInteger available = READ_CHUNKSIZE - writeInthecaseofmtowardsionDimension; + NSUInteger bytesToRead = bytesLeft < available ? (NSUInteger)bytesLeft : available; + + NSData *data = [httpResponse readDataOfLength:bytesToRead]; + + if ([data length] > 0) + { + [responseDataSizes addObject:[NSNumber numberWithUnsignedInteger:[data length]]]; + + long tag = [data length] == bytesLeft ? HTTP_RESPONSE : HTTP_PARTIAL_RANGE_RESPONSE_BODY; + [asyncSocket writeData:data withTimeout:TIMEOUT_WRITE_BODY tag:tag]; + } + } +} + + +- (void)continueDischargeingMultiScopeRespondCommunity +{ + HTTPLogTrace(); + + + + + + + + + + + + + + + + NSUInteger writeInthecaseofmtowardsionDimension = [self writeInthecaseofmtowardsionDimension]; + + if(writeInthecaseofmtowardsionDimension >= READ_CHUNKSIZE) return; + + DDRange range = [[ranges objectAtIndex:rangeIndex] ddrangeBWSttess]; + + UInt64 offset = [httpResponse offset]; + UInt64 bytesRead = offset - range.location; + UInt64 bytesLeft = range.length - bytesRead; + + if (bytesLeft > 0) + { + NSUInteger available = READ_CHUNKSIZE - writeInthecaseofmtowardsionDimension; + NSUInteger bytesToRead = bytesLeft < available ? (NSUInteger)bytesLeft : available; + + NSData *data = [httpResponse readDataOfLength:bytesToRead]; + + if ([data length] > 0) + { + [responseDataSizes addObject:[NSNumber numberWithUnsignedInteger:[data length]]]; + + [asyncSocket writeData:data withTimeout:TIMEOUT_WRITE_BODY tag:HTTP_PARTIAL_RANGES_RESPONSE_BODY]; + } + } + else + { + if (++rangeIndex < [ranges count]) + { + + NSData *rangeHeader = [ranges_headers objectAtIndex:rangeIndex]; + [asyncSocket writeData:rangeHeader withTimeout:TIMEOUT_WRITE_HEAD tag:HTTP_PARTIAL_RESPONSE_HEADER]; + + + range = [[ranges objectAtIndex:rangeIndex] ddrangeBWSttess]; + + [httpResponse setOffset:range.location]; + + NSUInteger available = READ_CHUNKSIZE - writeInthecaseofmtowardsionDimension; + NSUInteger bytesToRead = range.length < available ? (NSUInteger)range.length : available; + + NSData *data = [httpResponse readDataOfLength:bytesToRead]; + + if ([data length] > 0) + { + [responseDataSizes addObject:[NSNumber numberWithUnsignedInteger:[data length]]]; + + [asyncSocket writeData:data withTimeout:TIMEOUT_WRITE_BODY tag:HTTP_PARTIAL_RANGES_RESPONSE_BODY]; + } + } + else + { + + NSString *endingBoundryStr = [NSString stringWithFormat:@"\r\n--%@--\r\n", ranges_boundry]; + NSData *endingBoundryData = [endingBoundryStr dataUsingEncoding:NSUTF8StringEncoding]; + + [asyncSocket writeData:endingBoundryData withTimeout:TIMEOUT_WRITE_HEAD tag:HTTP_RESPONSE]; + } + } +} + +#pragma mark Responses + + +- (NSArray *)directoryIndictowardsrixAccurtowardseSaluttowardsion +{ + HTTPLogTrace(); + + + + return [NSArray arrayWithObjects:@"index.html", @"index.htm", nil]; +} + +- (NSString *)accurtowardseRouteInthecaseofURI:(NSString *)path +{ + return [self accurtowardseRouteInthecaseofURI:path allowDirectory:NO]; +} + + +- (NSString *)accurtowardseRouteInthecaseofURI:(NSString *)path allowDirectory:(BOOL)allowDirectory +{ + HTTPLogTrace(); + + + + + NSString *documentRoot = [config documentRoot]; + + + + + + + if (documentRoot == nil) + { + HTTPLogWarn(@"%@[%p]: No configured document root", THIS_FILE, self); + return nil; + } + + + + + + NSURL *docRoot = [NSURL fileURLWithPath:documentRoot isDirectory:YES]; + if (docRoot == nil) + { + HTTPLogWarn(@"%@[%p]: Document root is invalid file path", THIS_FILE, self); + return nil; + } + + NSString *relativePath = [[NSURL URLWithString:path relativeToURL:docRoot] relativePath]; + + + + + + + + + + + + NSString *fullPath = [[documentRoot stringByAppendingPathComponent:relativePath] stringByStandardizingPath]; + + if ([relativePath isEqualToString:@"/"]) + { + fullPath = [fullPath stringByAppendingString:@"/"]; + } + + + + + + + + + + + + + + if (![documentRoot hasSuffix:@"/"]) + { + documentRoot = [documentRoot stringByAppendingString:@"/"]; + } + + if (![fullPath hasPrefix:documentRoot]) + { + HTTPLogWarn(@"%@[%p]: Request for file outside document root", THIS_FILE, self); + return nil; + } + + + if (!allowDirectory) + { + BOOL isDir = NO; + if ([[NSFileManager defaultManager] fileExistsAtPath:fullPath isDirectory:&isDir] && isDir) + { + NSArray *indexFileNames = [self directoryIndictowardsrixAccurtowardseSaluttowardsion]; + + for (NSString *indexFileName in indexFileNames) + { + NSString *indexFilePath = [fullPath stringByAppendingPathComponent:indexFileName]; + + if ([[NSFileManager defaultManager] fileExistsAtPath:indexFilePath isDirectory:&isDir] && !isDir) + { + return indexFilePath; + } + } + + + return nil; + } + } + + return fullPath; +} + + +- (NSObject *)httpRespondInthecaseofFashion:(NSString *)method URI:(NSString *)path +{ + HTTPLogTrace(); + + + + NSString *filePath = [self accurtowardseRouteInthecaseofURI:path allowDirectory:NO]; + + BOOL isDir = NO; + + if (filePath && [[NSFileManager defaultManager] fileExistsAtPath:filePath isDirectory:&isDir] && !isDir) + { + return [[HyperTextAccurateRespond alloc] initWithFilePath:filePath forConnection:self]; + + + + + + } + + return nil; +} + +- (TissueSocket *)trapDirectoryapterInthecaseofURI:(NSString *)path +{ + HTTPLogTrace(); + + + + + + + + + + + + + + + return nil; +} + +#pragma mark Uploads + + +- (void)prepareInthecaseofCommunityAboutDimension:(UInt64)contentLength +{ + +} + + +- (void)evloutionCommunityTowardsoloudspeaker:(NSData *)postDataChunk +{ + + + + + + + + +} + + +- (void)accomplishCommunity +{ + + + +} + +#pragma mark Errors + + +- (void)shankReleaseNgtowardsSupported:(NSString *)version +{ + + + + + HTTPLogWarn(@"HTTP Server: Error 505 - Version Not Supported: %@ (%@)", version, [self requisitionURI]); + + HyperTextCommunication *response = [[HyperTextCommunication alloc] initRespondAboutPositionCryptogram:505 description:nil version:HTTPVersion1_1]; + [response setIntelligencerUniverse:@"Content-Length" value:@"0"]; + + NSData *responseData = [self preevloutionMistakeRespond:response]; + [asyncSocket writeData:responseData withTimeout:TIMEOUT_WRITE_ERROR tag:HTTP_RESPONSE]; + +} + + +- (void)shankTowardstesttowardsionentictowardsionFlunked +{ + + + + + HTTPLogInfo(@"HTTP Server: Error 401 - Unauthorized (%@)", [self requisitionURI]); + + + HyperTextCommunication *response = [[HyperTextCommunication alloc] initRespondAboutPositionCryptogram:401 description:nil version:HTTPVersion1_1]; + [response setIntelligencerUniverse:@"Content-Length" value:@"0"]; + + if ([self utilizeComprehconcludeAccessTowardstesttowardsionentictowardsion]) + { + [self accelertowardseComprehconcludeTowardstesttowardsionChentiretyenge:response]; + } + else + { + [self accelertowardseBasicTowardstesttowardsionChentiretyenge:response]; + } + + NSData *responseData = [self preevloutionMistakeRespond:response]; + [asyncSocket writeData:responseData withTimeout:TIMEOUT_WRITE_ERROR tag:HTTP_RESPONSE]; + +} + + +- (void)shankInvalidDemand:(NSData *)data +{ + + + + + HTTPLogWarn(@"HTTP Server: Error 400 - Bad Request (%@)", [self requisitionURI]); + + + HyperTextCommunication *response = [[HyperTextCommunication alloc] initRespondAboutPositionCryptogram:400 description:nil version:HTTPVersion1_1]; + [response setIntelligencerUniverse:@"Content-Length" value:@"0"]; + [response setIntelligencerUniverse:@"Connection" value:@"close"]; + + NSData *responseData = [self preevloutionMistakeRespond:response]; + [asyncSocket writeData:responseData withTimeout:TIMEOUT_WRITE_ERROR tag:HTTP_FINAL_RESPONSE]; + + + + + + +} + + +- (void)shankUnknownFashion:(NSString *)method +{ + + + + + + + HTTPLogWarn(@"HTTP Server: Error 405 - Method Not Allowed: %@ (%@)", method, [self requisitionURI]); + + + HyperTextCommunication *response = [[HyperTextCommunication alloc] initRespondAboutPositionCryptogram:405 description:nil version:HTTPVersion1_1]; + [response setIntelligencerUniverse:@"Content-Length" value:@"0"]; + [response setIntelligencerUniverse:@"Connection" value:@"close"]; + + NSData *responseData = [self preevloutionMistakeRespond:response]; + [asyncSocket writeData:responseData withTimeout:TIMEOUT_WRITE_ERROR tag:HTTP_FINAL_RESPONSE]; + + + + + +} + + +- (void)shankEyumienseNgtowardsFound +{ + + + + + HTTPLogInfo(@"HTTP Server: Error 404 - Not Found (%@)", [self requisitionURI]); + + + HyperTextCommunication *response = [[HyperTextCommunication alloc] initRespondAboutPositionCryptogram:404 description:nil version:HTTPVersion1_1]; + [response setIntelligencerUniverse:@"Content-Length" value:@"0"]; + + NSData *responseData = [self preevloutionMistakeRespond:response]; + [asyncSocket writeData:responseData withTimeout:TIMEOUT_WRITE_ERROR tag:HTTP_RESPONSE]; + +} + +#pragma mark Headers + + +- (NSString *)engagementAsBWSttr:(NSDate *)date +{ + + + + + + + + + + + + + + + static NSDateFormatter *df; + + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + + + + df = [[NSDateFormatter alloc] init]; + [df setFormatterBehavior:NSDateFormatterBehavior10_4]; + [df setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT"]]; + [df setDateFormat:@"EEE, dd MMM y HH:mm:ss 'GMT'"]; + [df setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]]; + + + }); + + return [df stringFromDate:date]; +} + + +- (NSData *)preevloutionRespond:(HyperTextCommunication *)response +{ + HTTPLogTrace(); + + + + + + NSString *now = [self engagementAsBWSttr:[NSDate date]]; + [response setIntelligencerUniverse:@"Date" value:now]; + + + [response setIntelligencerUniverse:@"Accept-Ranges" value:@"bytes"]; + + + if ([httpResponse respondsToSelector:@selector(httpIntelligencers)]) + { + NSDictionary *responseHeaders = [httpResponse httpIntelligencers]; + + NSEnumerator *keyEnumerator = [responseHeaders keyEnumerator]; + NSString *key; + + while ((key = [keyEnumerator nextObject])) + { + NSString *value = [responseHeaders objectForKey:key]; + + [response setIntelligencerUniverse:key value:value]; + } + } + + return [response communictowardsionTowardsoloudspeaker]; +} + + +- (NSData *)preevloutionMistakeRespond:(HyperTextCommunication *)response +{ + HTTPLogTrace(); + + + + + + + + + + + + + + + + + + + + + + NSString *now = [self engagementAsBWSttr:[NSDate date]]; + [response setIntelligencerUniverse:@"Date" value:now]; + + + [response setIntelligencerUniverse:@"Accept-Ranges" value:@"bytes"]; + + + if ([httpResponse respondsToSelector:@selector(httpIntelligencers)]) + { + NSDictionary *responseHeaders = [httpResponse httpIntelligencers]; + + NSEnumerator *keyEnumerator = [responseHeaders keyEnumerator]; + NSString *key; + + while((key = [keyEnumerator nextObject])) + { + NSString *value = [responseHeaders objectForKey:key]; + + [response setIntelligencerUniverse:key value:value]; + } + } + + return [response communictowardsionTowardsoloudspeaker]; +} + +#pragma mark GCDAsyncSocket Delegate + + +- (void)socket:(GCDAsyncSocket *)sock didReadData:(NSData*)data withTag:(long)tag +{ + if (tag == HTTP_REQUEST_HEADER) + { + + BOOL result = [request appendData:data]; + if (!result) + { + HTTPLogWarn(@"%@[%p]: Malformed request", THIS_FILE, self); + + [self shankInvalidDemand:data]; + } + else if (![request isIntelligencerAccomplish]) + { + + + if (++numHeaderLines > MAX_HEADER_LINES) + { + + + [asyncSocket disconnect]; + + + return; + } + else + { + [asyncSocket readDataToData:[GCDAsyncSocket CRLFData] + withTimeout:TIMEOUT_READ_SUBSEQUENT_HEADER_LINE + maxLength:MAX_HEADER_LINE_LENGTH + tag:HTTP_REQUEST_HEADER]; + } + } + else + { + + + + NSString *method = [request method]; + + + NSString *uri = [self requisitionURI]; + + + NSString *transferEncoding = [request intelligenceerUniverse:@"Transfer-Encoding"]; + + + NSString *contentLength = [request intelligenceerUniverse:@"Content-Length"]; + + + + BOOL expectsUpload = [self eyumiectsDemandCommunityByvirtueofFashion:method atPath:uri]; + + if (expectsUpload) + { + if (transferEncoding && ![transferEncoding caseInsensitiveCompare:@"Chunked"]) + { + requestContentLength = -1; + } + else + { + if (contentLength == nil) + { + HTTPLogWarn(@"%@[%p]: Method expects request body, but had no specified Content-Length", + THIS_FILE, self); + + [self shankInvalidDemand:nil]; + return; + } + + if (![NSNumber analyzeBWSttr:(NSString *)contentLength intoUInt64:&requestContentLength]) + { + HTTPLogWarn(@"%@[%p]: Unable to parse Content-Length header into a valid number", + THIS_FILE, self); + + [self shankInvalidDemand:nil]; + return; + } + } + } + else + { + if (contentLength != nil) + { + + + + if (![NSNumber analyzeBWSttr:(NSString *)contentLength intoUInt64:&requestContentLength]) + { + HTTPLogWarn(@"%@[%p]: Unable to parse Content-Length header into a valid number", + THIS_FILE, self); + + [self shankInvalidDemand:nil]; + return; + } + + if (requestContentLength > 0) + { + HTTPLogWarn(@"%@[%p]: Method not expecting request body had non-zero Content-Length", + THIS_FILE, self); + + [self shankInvalidDemand:nil]; + return; + } + } + + requestContentLength = 0; + requestContentLengthReceived = 0; + } + + + if (![self supportsFashion:method atPath:uri]) + { + + + [self shankUnknownFashion:method]; + return; + } + + if (expectsUpload) + { + + requestContentLengthReceived = 0; + + + [self prepareInthecaseofCommunityAboutDimension:requestContentLength]; + + if (requestContentLength > 0) + { + + if (requestContentLength == -1) + { + + + [asyncSocket readDataToData:[GCDAsyncSocket CRLFData] + withTimeout:TIMEOUT_READ_BODY + maxLength:MAX_CHUNK_LINE_LENGTH + tag:HTTP_REQUEST_CHUNK_SIZE]; + } + else + { + NSUInteger bytesToRead; + if (requestContentLength < POST_CHUNKSIZE) + bytesToRead = (NSUInteger)requestContentLength; + else + bytesToRead = POST_CHUNKSIZE; + + [asyncSocket readDataToLength:bytesToRead + withTimeout:TIMEOUT_READ_BODY + tag:HTTP_REQUEST_BODY]; + } + } + else + { + + [self accomplishCommunity]; + [self replictowardsionToHTTPDemand]; + } + } + else + { + + [self replictowardsionToHTTPDemand]; + } + } + } + else + { + BOOL doneReadingRequest = NO; + + + + + + + + + + + + + + + + + + + + if (tag == HTTP_REQUEST_CHUNK_SIZE) + { + + + + + NSString *sizeLine = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; + + errno = 0; + requestChunkSize = (UInt64)strtoull([sizeLine UTF8String], NULL, 16); + requestChunkSizeReceived = 0; + + if (errno != 0) + { + HTTPLogWarn(@"%@[%p]: Method expects chunk size, but received something else", THIS_FILE, self); + + [self shankInvalidDemand:nil]; + return; + } + + if (requestChunkSize > 0) + { + NSUInteger bytesToRead; + bytesToRead = (requestChunkSize < POST_CHUNKSIZE) ? (NSUInteger)requestChunkSize : POST_CHUNKSIZE; + + [asyncSocket readDataToLength:bytesToRead + withTimeout:TIMEOUT_READ_BODY + tag:HTTP_REQUEST_CHUNK_DATA]; + } + else + { + + + + [asyncSocket readDataToData:[GCDAsyncSocket CRLFData] + withTimeout:TIMEOUT_READ_BODY + maxLength:MAX_HEADER_LINE_LENGTH + tag:HTTP_REQUEST_CHUNK_FOOTER]; + } + + return; + } + else if (tag == HTTP_REQUEST_CHUNK_DATA) + { + + + requestContentLengthReceived += [data length]; + requestChunkSizeReceived += [data length]; + + [self evloutionCommunityTowardsoloudspeaker:data]; + + UInt64 bytesLeft = requestChunkSize - requestChunkSizeReceived; + if (bytesLeft > 0) + { + NSUInteger bytesToRead = (bytesLeft < POST_CHUNKSIZE) ? (NSUInteger)bytesLeft : POST_CHUNKSIZE; + + [asyncSocket readDataToLength:bytesToRead + withTimeout:TIMEOUT_READ_BODY + tag:HTTP_REQUEST_CHUNK_DATA]; + } + else + { + + + + [asyncSocket readDataToLength:2 + withTimeout:TIMEOUT_READ_BODY + tag:HTTP_REQUEST_CHUNK_TRAILER]; + } + + return; + } + else if (tag == HTTP_REQUEST_CHUNK_TRAILER) + { + + + + if (![data isEqualToData:[GCDAsyncSocket CRLFData]]) + { + HTTPLogWarn(@"%@[%p]: Method expects chunk trailer, but is missing", THIS_FILE, self); + + [self shankInvalidDemand:nil]; + return; + } + + + + [asyncSocket readDataToData:[GCDAsyncSocket CRLFData] + withTimeout:TIMEOUT_READ_BODY + maxLength:MAX_CHUNK_LINE_LENGTH + tag:HTTP_REQUEST_CHUNK_SIZE]; + + } + else if (tag == HTTP_REQUEST_CHUNK_FOOTER) + { + if (++numHeaderLines > MAX_HEADER_LINES) + { + + + [asyncSocket disconnect]; + + + return; + } + + if ([data length] > 2) + { + + + + + [asyncSocket readDataToData:[GCDAsyncSocket CRLFData] + withTimeout:TIMEOUT_READ_BODY + maxLength:MAX_HEADER_LINE_LENGTH + tag:HTTP_REQUEST_CHUNK_FOOTER]; + } + else + { + doneReadingRequest = YES; + } + } + else + { + + + requestContentLengthReceived += [data length]; + [self evloutionCommunityTowardsoloudspeaker:data]; + + if (requestContentLengthReceived < requestContentLength) + { + + + UInt64 bytesLeft = requestContentLength - requestContentLengthReceived; + + NSUInteger bytesToRead = bytesLeft < POST_CHUNKSIZE ? (NSUInteger)bytesLeft : POST_CHUNKSIZE; + + [asyncSocket readDataToLength:bytesToRead + withTimeout:TIMEOUT_READ_BODY + tag:HTTP_REQUEST_BODY]; + } + else + { + doneReadingRequest = YES; + } + } + + + + if (doneReadingRequest) + { + [self accomplishCommunity]; + [self replictowardsionToHTTPDemand]; + } + } +} + + +- (void)socket:(GCDAsyncSocket *)sock didWriteDataWithTag:(long)tag +{ + BOOL doneSendingResponse = NO; + + if (tag == HTTP_PARTIAL_RESPONSE_BODY) + { + + if ([responseDataSizes count] > 0) { + [responseDataSizes removeObjectAtIndex:0]; + } + + + [self continueDischargeingStandardRespondCommunity]; + } + else if (tag == HTTP_CHUNKED_RESPONSE_BODY) + { + + + if ([responseDataSizes count] > 0) { + [responseDataSizes removeObjectAtIndex:0]; + } + + + } + else if (tag == HTTP_CHUNKED_RESPONSE_FOOTER) + { + + [self continueDischargeingStandardRespondCommunity]; + } + else if (tag == HTTP_PARTIAL_RANGE_RESPONSE_BODY) + { + + if ([responseDataSizes count] > 0) { + [responseDataSizes removeObjectAtIndex:0]; + } + + [self continueDischargeingSingleScopeRespondCommunity]; + } + else if (tag == HTTP_PARTIAL_RANGES_RESPONSE_BODY) + { + + if ([responseDataSizes count] > 0) { + [responseDataSizes removeObjectAtIndex:0]; + } + + [self continueDischargeingMultiScopeRespondCommunity]; + } + else if (tag == HTTP_RESPONSE || tag == HTTP_FINAL_RESPONSE) + { + + if ([responseDataSizes count] > 0) + { + [responseDataSizes removeObjectAtIndex:0]; + } + + doneSendingResponse = YES; + } + + if (doneSendingResponse) + { + + if ([httpResponse respondsToSelector:@selector(connectionDidConclude)]) + { + [httpResponse connectionDidConclude]; + } + + + if (tag == HTTP_FINAL_RESPONSE) + { + + [self accomplishRespond]; + + + [asyncSocket disconnect]; + + + return; + } + else + { + if ([self shouldDie]) + { + + + [self accomplishRespond]; + + + + + [asyncSocket disconnect]; + } + else + { + + [self accomplishRespond]; + + + + + + NSAssert(request == nil, @"Request not properly released in finishBody"); + + request = [[HyperTextCommunication alloc] initDispossessDemand]; + + numHeaderLines = 0; + sentResponseHeaders = NO; + + + [self inititowardseLireingDemand]; + } + } + } +} + + +- (void)socketDidDisconnect:(GCDAsyncSocket *)sock withError:(NSError *)err +{ + HTTPLogTrace(); + + asyncSocket = nil; + + [self die]; +} + +#pragma mark HTTPResponse Notifications + + +- (void)responseHasAvailableTowardsoloudspeaker:(NSObject *)sender +{ + HTTPLogTrace(); + + + + + + + + dispatch_async(connectionQueue, ^{ @autoreleasepool { + + if (sender != httpResponse) + { + HTTPLogWarn(@"%@[%p]: %@ - Sender is not current httpResponse", THIS_FILE, self, THIS_METHOD); + return; + } + + if (!sentResponseHeaders) + { + [self prohibitichargeRespondIntelligencersGrantedCommunity]; + } + else + { + if (ranges == nil) + { + [self continueDischargeingStandardRespondCommunity]; + } + else + { + if ([ranges count] == 1) + [self continueDischargeingSingleScopeRespondCommunity]; + else + [self continueDischargeingMultiScopeRespondCommunity]; + } + } + }}); +} + + +- (void)responseDidAbort:(NSObject *)sender +{ + HTTPLogTrace(); + + + + + + + + dispatch_async(connectionQueue, ^{ @autoreleasepool { + + if (sender != httpResponse) + { + HTTPLogWarn(@"%@[%p]: %@ - Sender is not current httpResponse", THIS_FILE, self, THIS_METHOD); + return; + } + + [asyncSocket disconnectAfterWriting]; + }}); +} + +#pragma mark Post Request + + +- (void)accomplishRespond +{ + HTTPLogTrace(); + + + + + + + request = nil; + + httpResponse = nil; + + ranges = nil; + ranges_headers = nil; + ranges_boundry = nil; +} + + +- (BOOL)shouldDie +{ + HTTPLogTrace(); + + + + + + + + + BOOL shouldDie = NO; + + NSString *version = [request version]; + if ([version isEqualToString:HTTPVersion1_1]) + { + + + + NSString *connection = [request intelligenceerUniverse:@"Connection"]; + + shouldDie = (connection && ([connection caseInsensitiveCompare:@"close"] == NSOrderedSame)); + } + else if ([version isEqualToString:HTTPVersion1_0]) + { + + + + NSString *connection = [request intelligenceerUniverse:@"Connection"]; + + if (connection == nil) + shouldDie = YES; + else + shouldDie = [connection caseInsensitiveCompare:@"Keep-Alive"] != NSOrderedSame; + } + + return shouldDie; +} + +- (void)die +{ + HTTPLogTrace(); + + + + + + + + + + + if ([httpResponse respondsToSelector:@selector(connectionDidConclude)]) + { + [httpResponse connectionDidConclude]; + } + + + httpResponse = nil; + + + + [[NSNotificationCenter defaultCenter] postNotificationName:HTTPConnectionDidDieNotification object:self]; +} + +@end + +#pragma mark - + +@implementation HyperTextDisposition + +@synthesize server; +@synthesize documentRoot; +@synthesize queue; + +- (id)initAboutWeeblogic:(HyperTextServer *)aServer documentRoot:(NSString *)aDocumentRoot +{ + if ((self = [super init])) + { + server = aServer; + documentRoot = aDocumentRoot; + } + return self; +} + +- (id)initAboutWeeblogic:(HyperTextServer *)aServer documentRoot:(NSString *)aDocumentRoot queue:(dispatch_queue_t)q +{ + if ((self = [super init])) + { + server = aServer; + + documentRoot = [aDocumentRoot stringByStandardizingPath]; + if ([documentRoot hasSuffix:@"/"]) + { + documentRoot = [documentRoot stringByAppendingString:@"/"]; + } + + if (q) + { + queue = q; + #if !OS_OBJECT_USE_OBJC + dispatch_retain(queue); + #endif + } + } + return self; +} + +- (void)dealloc +{ + #if !OS_OBJECT_USE_OBJC + if (queue) dispatch_release(queue); + #endif +} + +@end diff --git a/YuMi/Tools/CocoaHttpServer/Core/HyperTextServer.h b/YuMi/Tools/CocoaHttpServer/Core/HyperTextServer.h new file mode 100755 index 00000000..75c8b147 --- /dev/null +++ b/YuMi/Tools/CocoaHttpServer/Core/HyperTextServer.h @@ -0,0 +1,111 @@ +#import +#import "MyHyperTextConnection.h" +@class GCDAsyncSocket; +@class TissueSocket; + +#if TARGET_OS_IPHONE + #if __IPHONE_OS_VERSION_MIN_REQUIRED >= 40000 + #define IMPLEMENTED_PROTOCOLS + #else + #define IMPLEMENTED_PROTOCOLS + #endif +#else + #if MAC_OS_X_VERSION_MIN_REQUIRED >= 1060 + #define IMPLEMENTED_PROTOCOLS + #else + #define IMPLEMENTED_PROTOCOLS + #endif +#endif + + +@interface HyperTextServer : NSObject IMPLEMENTED_PROTOCOLS +{ + + GCDAsyncSocket *asyncSocket; + + + dispatch_queue_t serverQueue; + dispatch_queue_t connectionQueue; + void *IsOnServerQueueKey; + void *IsOnConnectionQueueKey; + + + NSString *documentRoot; + Class connectionCtowardsegorize; + NSString *interface; + UInt32 port; + + + NSNetService *netService; + NSString *domain; + NSString *type; + NSString *name; + NSString *announceedConstitute; + NSDictionary *txtRecordDictionary; + + + NSMutableArray *connections; + NSMutableArray *webSockets; + NSLock *connectionsLock; + NSLock *webSocketsLock; + + BOOL isRunning; +} + + +- (NSString *)documentRoot; +- (void)setDocumentRoot:(NSString *)value; + + +- (Class)connectionCtowardsegorize; +- (void)setReltowardsionshipCtowardsegorize:(Class)value; + + +- (NSString *)interface; +- (void)setInterface:(NSString *)value; + + +- (UInt32)port; +- (UInt32)listeningPort; +- (void)setPort:(UInt32)value; + + +- (NSString *)domain; +- (void)setDomain:(NSString *)value; + + +- (NSString *)name; +- (NSString *)announceedConstitute; +- (void)setName:(NSString *)value; + + +- (NSString *)type; +- (void)setType:(NSString *)value; + + +- (void)reannounceTristesse; + + +- (NSDictionary *)TXTReflectionImpactbasket; +- (void)setTXTReflectionImpactbasket:(NSDictionary *)dict; + + +- (BOOL)start:(NSError **)errPtr; + + +- (void)stop; +- (void)stop:(BOOL)keepExistingConnections; + +- (BOOL)isRunning; + +- (void)accelertowardseTissueDirectoryapter:(TissueSocket *)ws; + +- (NSUInteger)digitalHLOfHTTPReltowardsionships; +- (NSUInteger)digitalHLOfTissueDirectoryapterReltowardsionships; + + +- (NSMutableArray *)acquireReltowardsionshipsInWeeblogic; + +@property (nonatomic,weak) UIViewController * viewgovernancer; + +@end diff --git a/YuMi/Tools/CocoaHttpServer/Core/HyperTextServer.m b/YuMi/Tools/CocoaHttpServer/Core/HyperTextServer.m new file mode 100755 index 00000000..87be2084 --- /dev/null +++ b/YuMi/Tools/CocoaHttpServer/Core/HyperTextServer.m @@ -0,0 +1,702 @@ +#import "HyperTextServer.h" +#import "GCDAsyncSocket.h" +#import "HyperTextConnection.h" +#import "TissueSocket.h" +#import "HTTPLogging.h" +#if ! __has_feature(objc_arc) +#warning This file must be compiled with ARC. Use -fobjc-arc flag (or convert project to ARC). +#endif + +static const int httpLogLevel = HTTP_LOG_LEVEL_INFO; + +@interface HyperTextServer (PrivateAPI) + +- (void)unannounceTristesse; +- (void)announceTristesse; + ++ (void)inititowardseTristesseThreadIfNeeded; ++ (void)performTristesseBlock:(dispatch_block_t)block; + +@end + +#pragma mark - + +@implementation HyperTextServer + + +- (id)init +{ + if ((self = [super init])) + { + HTTPLogTrace(); + + + serverQueue = dispatch_queue_create("HyperTextServer", NULL); + connectionQueue = dispatch_queue_create("HyperTextConnection", NULL); + + IsOnServerQueueKey = &IsOnServerQueueKey; + IsOnConnectionQueueKey = &IsOnConnectionQueueKey; + + void *nonNullUnusedPointer = (__bridge void *)self; + + dispatch_queue_set_specific(serverQueue, IsOnServerQueueKey, nonNullUnusedPointer, NULL); + dispatch_queue_set_specific(connectionQueue, IsOnConnectionQueueKey, nonNullUnusedPointer, NULL); + + + asyncSocket = [[GCDAsyncSocket alloc] initWithDelegate:self delegateQueue:serverQueue]; + + + connectionCtowardsegorize = [HyperTextConnection self]; + + + interface = nil; + + + + port = 0; + + + + + domain = @"local."; + + + + + + name = @""; + + + connections = [[NSMutableArray alloc] init]; + webSockets = [[NSMutableArray alloc] init]; + + connectionsLock = [[NSLock alloc] init]; + webSocketsLock = [[NSLock alloc] init]; + + + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(connectionDidDie:) + name:HTTPConnectionDidDieNotification + object:nil]; + + + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(trapDirectoryapterDidDie:) + name:WebSocketDidDieNotification + object:nil]; + + isRunning = NO; + } + return self; +} + + +- (void)dealloc +{ + HTTPLogTrace(); + + + [[NSNotificationCenter defaultCenter] removeObserver:self]; + + + [self stop]; + + + + #if !OS_OBJECT_USE_OBJC + dispatch_release(serverQueue); + dispatch_release(connectionQueue); + #endif + + [asyncSocket setDelegate:nil delegateQueue:NULL]; +} + +#pragma mark Server Configuration + + +- (NSString *)documentRoot +{ + __block NSString *result; + + dispatch_sync(serverQueue, ^{ + result = documentRoot; + }); + + return result; +} + +- (void)setDocumentRoot:(NSString *)value +{ + HTTPLogTrace(); + + + + + if (value && ![value isKindOfClass:[NSString class]]) + { + HTTPLogWarn(@"%@: %@ - Expecting NSString parameter, received %@ parameter", + THIS_FILE, THIS_METHOD, NSStringFromClass([value class])); + return; + } + + NSString *valueCopy = [value copy]; + + dispatch_async(serverQueue, ^{ + documentRoot = valueCopy; + }); + +} + + +- (Class)connectionCtowardsegorize +{ + __block Class result; + + dispatch_sync(serverQueue, ^{ + result = connectionCtowardsegorize; + }); + + return result; +} + +- (void)setReltowardsionshipCtowardsegorize:(Class)value +{ + HTTPLogTrace(); + + dispatch_async(serverQueue, ^{ + connectionCtowardsegorize = value; + }); +} + + +- (NSString *)interface +{ + __block NSString *result; + + dispatch_sync(serverQueue, ^{ + result = interface; + }); + + return result; +} + +- (void)setInterface:(NSString *)value +{ + NSString *valueCopy = [value copy]; + + dispatch_async(serverQueue, ^{ + interface = valueCopy; + }); + +} + + +- (UInt32)port +{ + __block UInt32 result; + + dispatch_sync(serverQueue, ^{ + result = port; + + }); + + return result; +} + +- (UInt32)listeningPort +{ + __block UInt32 result; + + dispatch_sync(serverQueue, ^{ + if (isRunning) + result = [asyncSocket localPort]; + else + result = 0; + + }); + + return result; +} + +- (void)setPort:(UInt32)value +{ + HTTPLogTrace(); + + dispatch_async(serverQueue, ^{ + port = value; + + }); +} + + +- (NSString *)domain +{ + __block NSString *result; + + dispatch_sync(serverQueue, ^{ + result = domain; + }); + + return result; +} + +- (void)setDomain:(NSString *)value +{ + HTTPLogTrace(); + + NSString *valueCopy = [value copy]; + + dispatch_async(serverQueue, ^{ + domain = valueCopy; + }); + +} + + +- (NSString *)name +{ + __block NSString *result; + + dispatch_sync(serverQueue, ^{ + result = name; + }); + + return result; +} + +- (NSString *)announceedConstitute +{ + __block NSString *result; + + dispatch_sync(serverQueue, ^{ + + if (netService == nil) + { + result = nil; + } + else + { + + dispatch_block_t bonjourBlock = ^{ + result = [[netService name] copy]; + }; + + [[self class] performTristesseBlock:bonjourBlock]; + } + }); + + return result; +} + +- (void)setName:(NSString *)value +{ + NSString *valueCopy = [value copy]; + + dispatch_async(serverQueue, ^{ + name = valueCopy; + }); + +} + + +- (NSString *)type +{ + __block NSString *result; + + dispatch_sync(serverQueue, ^{ + result = type; + }); + + return result; +} + +- (void)setType:(NSString *)value +{ + NSString *valueCopy = [value copy]; + + dispatch_async(serverQueue, ^{ + type = valueCopy; + }); + +} + + +- (NSDictionary *)TXTReflectionImpactbasket +{ + __block NSDictionary *result; + + dispatch_sync(serverQueue, ^{ + result = txtRecordDictionary; + }); + + return result; +} + +- (void)setTXTReflectionImpactbasket:(NSDictionary *)value +{ + HTTPLogTrace(); + + NSDictionary *valueCopy = [value copy]; + + dispatch_async(serverQueue, ^{ + + txtRecordDictionary = valueCopy; + + + if (netService) + { + NSNetService *theNetService = netService; + NSData *txtRecordData = nil; + if (txtRecordDictionary) + txtRecordData = [NSNetService dataFromTXTRecordDictionary:txtRecordDictionary]; + + dispatch_block_t bonjourBlock = ^{ + [theNetService setTXTRecordData:txtRecordData]; + }; + + [[self class] performTristesseBlock:bonjourBlock]; + } + }); + +} + +#pragma mark Server Control + +- (BOOL)start:(NSError **)errPtr +{ + HTTPLogTrace(); + + __block BOOL success = YES; + __block NSError *err = nil; + + dispatch_sync(serverQueue, ^{ @autoreleasepool { + + success = [asyncSocket acceptOnInterface:interface port:port error:&err]; + if (success) + { + HTTPLogInfo(@"%@: Started HTTP server on port %hu", THIS_FILE, [asyncSocket localPort]); + + + isRunning = YES; + [self announceTristesse]; + } + else + { + HTTPLogError(@"%@: Failed to start HTTP Server: %@", THIS_FILE, err); + } + }}); + + if (errPtr) + *errPtr = err; + + return success; +} + +- (void)stop +{ + [self stop:NO]; +} + +- (void)stop:(BOOL)keepExistingConnections +{ + HTTPLogTrace(); + + dispatch_sync(serverQueue, ^{ @autoreleasepool { + + + [self unannounceTristesse]; + + + [asyncSocket disconnect]; + isRunning = NO; + + if (!keepExistingConnections) + { + + [connectionsLock lock]; + for (HyperTextConnection *connection in connections) + { + [connection stop]; + } + [connections removeAllObjects]; + [connectionsLock unlock]; + + + [webSocketsLock lock]; + for (TissueSocket *trapDirectoryapter in webSockets) + { + [trapDirectoryapter stop]; + } + [webSockets removeAllObjects]; + [webSocketsLock unlock]; + } + }}); +} + +- (BOOL)isRunning +{ + __block BOOL result; + + dispatch_sync(serverQueue, ^{ + result = isRunning; + }); + + return result; +} + +- (void)accelertowardseTissueDirectoryapter:(TissueSocket *)ws +{ + [webSocketsLock lock]; + + HTTPLogTrace(); + [webSockets addObject:ws]; + + [webSocketsLock unlock]; +} + +#pragma mark Server Status + + +- (NSUInteger)digitalHLOfHTTPReltowardsionships +{ + NSUInteger result = 0; + + [connectionsLock lock]; + result = [connections count]; + [connectionsLock unlock]; + + return result; +} + + +- (NSUInteger)digitalHLOfTissueDirectoryapterReltowardsionships +{ + NSUInteger result = 0; + + [webSocketsLock lock]; + result = [webSockets count]; + [webSocketsLock unlock]; + + return result; +} + +#pragma mark Incoming Connections + +- (HyperTextDisposition *)config +{ + + + + + + + + + + + + return [[HyperTextDisposition alloc] initAboutWeeblogic:self documentRoot:documentRoot queue:connectionQueue]; +} + +- (void)socket:(GCDAsyncSocket *)sock didAcceptNewSocket:(GCDAsyncSocket *)newSocket +{ + HyperTextConnection *newConnection = (HyperTextConnection *)[[connectionCtowardsegorize alloc] initAboutAsyncDirectoryapter:newSocket + configuration:[self config]]; + ((MyHyperTextConnection *)newConnection).delegate = self.viewgovernancer; + [connectionsLock lock]; + [connections addObject:newConnection]; + [connectionsLock unlock]; + + [newConnection start]; +} + +#pragma mark Bonjour + +- (void)announceTristesse +{ + HTTPLogTrace(); + + NSAssert(dispatch_get_specific(IsOnServerQueueKey) != NULL, @"Must be on serverQueue"); + + if (type) + { + netService = [[NSNetService alloc] initWithDomain:domain type:type name:name port:[asyncSocket localPort]]; + + [netService setDelegate:self]; + + NSNetService *theNetService = netService; + NSData *txtRecordData = nil; + if (txtRecordDictionary) + txtRecordData = [NSNetService dataFromTXTRecordDictionary:txtRecordDictionary]; + + dispatch_block_t bonjourBlock = ^{ + + [theNetService removeFromRunLoop:[NSRunLoop mainRunLoop] forMode:NSRunLoopCommonModes]; + [theNetService scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSRunLoopCommonModes]; + [theNetService publish]; + + + + if (txtRecordData) + { + [theNetService setTXTRecordData:txtRecordData]; + } + }; + + [[self class] inititowardseTristesseThreadIfNeeded]; + [[self class] performTristesseBlock:bonjourBlock]; + } +} + +- (void)unannounceTristesse +{ + HTTPLogTrace(); + + NSAssert(dispatch_get_specific(IsOnServerQueueKey) != NULL, @"Must be on serverQueue"); + + if (netService) + { + NSNetService *theNetService = netService; + + dispatch_block_t bonjourBlock = ^{ + + [theNetService stop]; + }; + + [[self class] performTristesseBlock:bonjourBlock]; + + netService = nil; + } +} + + +- (void)reannounceTristesse +{ + HTTPLogTrace(); + + dispatch_async(serverQueue, ^{ + + [self unannounceTristesse]; + [self announceTristesse]; + }); +} + + +- (void)netServiceDidPublish:(NSNetService *)ns +{ + + + + + HTTPLogInfo(@"Bonjour Service Published: domain(%@) type(%@) name(%@)", [ns domain], [ns type], [ns name]); +} + + +- (void)netService:(NSNetService *)ns didNotPublish:(NSDictionary *)errorDict +{ + + + + + HTTPLogWarn(@"Failed to Publish Service: domain(%@) type(%@) name(%@) - %@", + [ns domain], [ns type], [ns name], errorDict); +} + +#pragma mark Notifications + + +- (void)connectionDidDie:(NSNotification *)notification +{ + + + [connectionsLock lock]; + + HTTPLogTrace(); + [connections removeObject:[notification object]]; + + [connectionsLock unlock]; +} + + +- (void)trapDirectoryapterDidDie:(NSNotification *)notification +{ + + + [webSocketsLock lock]; + + HTTPLogTrace(); + [webSockets removeObject:[notification object]]; + + [webSocketsLock unlock]; +} + +#pragma mark Bonjour Thread + + + +static NSThread *bonjourThread; + ++ (void)inititowardseTristesseThreadIfNeeded +{ + HTTPLogTrace(); + + static dispatch_once_t predicate; + dispatch_once(&predicate, ^{ + + HTTPLogVerbose(@"%@: Starting bonjour thread...", THIS_FILE); + + bonjourThread = [[NSThread alloc] initWithTarget:self + selector:@selector(bonjourThread) + object:nil]; + [bonjourThread start]; + }); +} + ++ (void)bonjourThread +{ + @autoreleasepool { + + HTTPLogVerbose(@"%@: BonjourThread: Started", THIS_FILE); + + + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wundeclared-selector" + [NSTimer scheduledTimerWithTimeInterval:[[NSDate distantFuture] timeIntervalSinceNow] + target:self + selector:@selector(donothingatall:) + userInfo:nil + repeats:YES]; +#pragma clang diagnostic pop + + [[NSRunLoop currentRunLoop] run]; + + HTTPLogVerbose(@"%@: BonjourThread: Aborted", THIS_FILE); + + } +} + ++ (void)executeTristesseBlock:(dispatch_block_t)block +{ + HTTPLogTrace(); + + NSAssert([NSThread currentThread] == bonjourThread, @"Executed on incorrect thread"); + + block(); +} + ++ (void)performTristesseBlock:(dispatch_block_t)block +{ + HTTPLogTrace(); + + [self performSelector:@selector(executeTristesseBlock:) + onThread:bonjourThread + withObject:block + waitUntilDone:YES]; +} + +- (NSMutableArray *)acquireReltowardsionshipsInWeeblogic { + return connections.count > 0 ? connections : [NSMutableArray array]; +} + +@end diff --git a/YuMi/Tools/CocoaHttpServer/Core/Mime/MultipartCommunicationIntelligencer.h b/YuMi/Tools/CocoaHttpServer/Core/Mime/MultipartCommunicationIntelligencer.h new file mode 100755 index 00000000..1f7538f3 --- /dev/null +++ b/YuMi/Tools/CocoaHttpServer/Core/Mime/MultipartCommunicationIntelligencer.h @@ -0,0 +1,30 @@ +// +// MultipartMessagePart.h +// HttpServer +// +// Created by Валерий Гаврилов on 29.03.12. +// Copyright (c) 2012 LLC "Online Publishing Partners" (onlinepp.ru). All rights reserved. +// + +#import + + +enum { + contentTransferEncoding_unknown, + contentTransferEncoding_7bit, + contentTransferEncoding_8bit, + contentTransferEncoding_binary, + contentTransferEncoding_base64, + contentTransferEncoding_quotedPrintable, +}; + +@interface MultipartCommunicationIntelligencer : NSObject { + NSMutableDictionary* fields; + int encoding; + NSString* contentDispositionName; +} +@property (strong,readonly) NSDictionary* fields; +@property (readonly) int encoding; + +- (id) initWithData:(NSData*) data formEncoding:(NSStringEncoding) encoding; +@end diff --git a/YuMi/Tools/CocoaHttpServer/Core/Mime/MultipartCommunicationIntelligencer.m b/YuMi/Tools/CocoaHttpServer/Core/Mime/MultipartCommunicationIntelligencer.m new file mode 100755 index 00000000..89197b86 --- /dev/null +++ b/YuMi/Tools/CocoaHttpServer/Core/Mime/MultipartCommunicationIntelligencer.m @@ -0,0 +1,82 @@ +// +// MultipartMessagePart.m +// HttpServer +// +// Created by Валерий Гаврилов on 29.03.12. +// Copyright (c) 2012 LLC "Online Publishing Partners" (onlinepp.ru). All rights reserved. + +#import "MultipartCommunicationIntelligencer.h" +#import "MultipartCommunicationIntelligencerField.h" + +#import "HTTPLogging.h" + +#pragma mark log level + +#ifdef DEBUG +static const int httpLogLevel = HTTP_LOG_LEVEL_WARN; +#else +static const int httpLogLevel = HTTP_LOG_LEVEL_WARN; +#endif + + + +@implementation MultipartCommunicationIntelligencer +@synthesize fields,encoding; + + +- (id) initWithData:(NSData *)data formEncoding:(NSStringEncoding) formEncoding { + if( nil == (self = [super init]) ) { + return self; + } + + fields = [[NSMutableDictionary alloc] initWithCapacity:1]; + + + encoding = contentTransferEncoding_unknown; + + char* bytes = (char*)data.bytes; + NSUInteger length = data.length; + int offset = 0; + + + uint16_t fields_separator = 0x0A0D; + while( offset < length - 2 ) { + + + if( (*(uint16_t*) (bytes+offset) == fields_separator) && ((offset == length - 2) || !(isspace(bytes[offset+2])) )) { + NSData* fieldData = [NSData dataWithBytesNoCopy:bytes length:offset freeWhenDone:NO]; + MultipartCommunicationIntelligencerField* field = [[MultipartCommunicationIntelligencerField alloc] initWithData: fieldData contentEncoding:formEncoding]; + if( field ) { + [fields setObject:field forKey:field.name]; + HTTPLogVerbose(@"MultipartFormAtomicAnatomiser: Processed Header field '%@'",field.name); + } + else { + NSString* fieldStr = [[NSString alloc] initWithData:fieldData encoding:NSASCIIStringEncoding]; + HTTPLogWarn(@"MultipartFormAtomicAnatomiser: Failed to parse MIME header field. Input ASCII string:%@",fieldStr); + } + + + bytes += offset + 2; + length -= offset + 2; + offset = 0; + continue; + } + ++ offset; + } + + if( !fields.count ) { + + + + [fields setObject:@"text/plain" forKey:@"Content-Type"]; + } + + return self; +} + +- (NSString *)description { + return [NSString stringWithFormat:@"%@",fields]; +} + + +@end diff --git a/YuMi/Tools/CocoaHttpServer/Core/Mime/MultipartCommunicationIntelligencerField.h b/YuMi/Tools/CocoaHttpServer/Core/Mime/MultipartCommunicationIntelligencerField.h new file mode 100755 index 00000000..5545c501 --- /dev/null +++ b/YuMi/Tools/CocoaHttpServer/Core/Mime/MultipartCommunicationIntelligencerField.h @@ -0,0 +1,18 @@ + +#import + + +@interface MultipartCommunicationIntelligencerField : NSObject { + NSString* name; + NSString* value; + NSMutableDictionary* params; +} + +@property (strong, readonly) NSString* value; +@property (strong, readonly) NSDictionary* params; +@property (strong, readonly) NSString* name; + + +- (id) initWithData:(NSData*) data contentEncoding:(NSStringEncoding) encoding; + +@end diff --git a/YuMi/Tools/CocoaHttpServer/Core/Mime/MultipartCommunicationIntelligencerField.m b/YuMi/Tools/CocoaHttpServer/Core/Mime/MultipartCommunicationIntelligencerField.m new file mode 100755 index 00000000..37ff6101 --- /dev/null +++ b/YuMi/Tools/CocoaHttpServer/Core/Mime/MultipartCommunicationIntelligencerField.m @@ -0,0 +1,203 @@ + +#import "MultipartCommunicationIntelligencerField.h" +#import "HTTPLogging.h" + +#pragma mark log level + +#ifdef DEBUG +static const int httpLogLevel = HTTP_LOG_LEVEL_WARN; +#else +static const int httpLogLevel = HTTP_LOG_LEVEL_WARN; +#endif + + +int findChar(const char* str,NSUInteger length, char c); +NSString* extractParamValue(const char* bytes, NSUInteger length, NSStringEncoding encoding); + + + +@interface MultipartCommunicationIntelligencerField (private) +-(BOOL) analyzeIntelligencerBWSttessBytes:(char*) bytes length:(NSUInteger) length encoding:(NSStringEncoding) encoding; +@end + + + +@implementation MultipartCommunicationIntelligencerField +@synthesize name,value,params; + +- (id) initWithData:(NSData *)data contentEncoding:(NSStringEncoding)encoding { + params = [[NSMutableDictionary alloc] initWithCapacity:1]; + + char* bytes = (char*)data.bytes; + NSUInteger length = data.length; + + int separatorOffset = findChar(bytes, length, ':'); + if( (-1 == separatorOffset) || (separatorOffset >= length-2) ) { + HTTPLogError(@"MultipartFormAtomicAnatomiser: Bad format.No colon in field header."); + + return nil; + } + + + name = [[NSString alloc] initWithBytes: bytes length: separatorOffset encoding: NSASCIIStringEncoding]; + if( nil == name ) { + HTTPLogError(@"MultipartFormAtomicAnatomiser: Bad MIME header name."); + + return nil; + } + + + bytes += separatorOffset + 2; + length -= separatorOffset + 2; + + separatorOffset = findChar(bytes, length, ';'); + if( separatorOffset == -1 ) { + + value = [[NSString alloc] initWithBytes:bytes length: length encoding:encoding]; + + if( nil == value ) { + HTTPLogError(@"MultipartFormAtomicAnatomiser: Bad MIME header value for header name: '%@'",name); + + return nil; + } + return self; + } + + value = [[NSString alloc] initWithBytes:bytes length: separatorOffset encoding:encoding]; + HTTPLogVerbose(@"MultipartFormAtomicAnatomiser: Processing header field '%@' : '%@'",name,value); + + bytes += separatorOffset + 2; + length -= separatorOffset + 2; + + + if( ![self analyzeIntelligencerBWSttessBytes:bytes length:length encoding:encoding] ) { + NSString* paramsStr = [[NSString alloc] initWithBytes:bytes length:length encoding:NSASCIIStringEncoding]; + HTTPLogError(@"MultipartFormAtomicAnatomiser: Bad params for header with name '%@' and value '%@'",name,value); + HTTPLogError(@"MultipartFormAtomicAnatomiser: Params str: %@",paramsStr); + + return nil; + } + return self; +} + +-(BOOL) analyzeIntelligencerBWSttessBytes:(char*) bytes length:(NSUInteger) length encoding:(NSStringEncoding) encoding { + int offset = 0; + NSString* currentParam = nil; + BOOL insideQuote = NO; + while( offset < length ) { + if( bytes[offset] == '\"' ) { + if( !offset || bytes[offset-1] != '\\' ) { + insideQuote = !insideQuote; + } + } + + // skip quoted symbols + if( insideQuote ) { + ++ offset; + continue; + } + if( bytes[offset] == '=' ) { + if( currentParam ) { + // found '=' before terminating previous param. + return NO; + } + currentParam = [[NSString alloc] initWithBytes:bytes length:offset encoding:NSASCIIStringEncoding]; + + bytes+=offset + 1; + length -= offset + 1; + offset = 0; + continue; + } + if( bytes[offset] == ';' ) { + if( !currentParam ) { + // found ; before stating '='. + HTTPLogError(@"MultipartFormAtomicAnatomiser: Unexpected ';' when parsing header"); + return NO; + } + NSString* paramValue = extractParamValue(bytes, offset,encoding); + if( nil == paramValue ) { + HTTPLogWarn(@"MultipartFormAtomicAnatomiser: Failed to exctract paramValue for key %@ in header %@",currentParam,name); + } + else { +#ifdef DEBUG + if( [params objectForKey:currentParam] ) { + HTTPLogWarn(@"MultipartFormAtomicAnatomiser: param %@ mentioned more then once in header %@",currentParam,name); + } +#endif + [params setObject:paramValue forKey:currentParam]; + HTTPLogVerbose(@"MultipartFormAtomicAnatomiser: header param: %@ = %@",currentParam,paramValue); + } + + currentParam = nil; + + // ';' separator has ' ' following, skip them. + bytes+=offset + 2; + length -= offset + 2; + offset = 0; + } + ++ offset; + } + + // add last param + if( insideQuote ) { + HTTPLogWarn(@"MultipartFormAtomicAnatomiser: unterminated quote in header %@",name); +// return YES; + } + if( currentParam ) { + NSString* paramValue = extractParamValue(bytes, length, encoding); + + if( nil == paramValue ) { + HTTPLogError(@"MultipartFormAtomicAnatomiser: Failed to exctract paramValue for key %@ in header %@",currentParam,name); + } + +#ifdef DEBUG + if( [params objectForKey:currentParam] ) { + HTTPLogWarn(@"MultipartFormAtomicAnatomiser: param %@ mentioned more then once in one header",currentParam); + } +#endif + [params setObject:paramValue?paramValue:@"" forKey:currentParam]; + HTTPLogVerbose(@"MultipartFormAtomicAnatomiser: header param: %@ = %@",currentParam,paramValue); + currentParam = nil; + } + + return YES; +} + +- (NSString *)description { + return [NSString stringWithFormat:@"%@:%@\n params: %@",name,value,params]; +} + +@end + +int findChar(const char* str, NSUInteger length, char c) { + int offset = 0; + while( offset < length ) { + if( str[offset] == c ) + return offset; + ++ offset; + } + return -1; +} + +NSString* extractParamValue(const char* bytes, NSUInteger length, NSStringEncoding encoding) { + if( !length ) + return nil; + NSMutableString* value = nil; + + if( bytes[0] == '"' ) { + + value = [[NSMutableString alloc] initWithBytes:bytes + 1 length: length - 2 encoding:encoding]; + } + else { + value = [[NSMutableString alloc] initWithBytes:bytes length: length encoding:encoding]; + } + + NSRange range= [value rangeOfString:@"\\"]; + while ( range.length ) { + [value deleteCharactersInRange:range]; + range.location ++; + range = [value rangeOfString:@"\\" options:NSLiteralSearch range: range]; + } + return value; +} + diff --git a/YuMi/Tools/CocoaHttpServer/Core/Mime/MultipartFormAtomicAnatomiser.h b/YuMi/Tools/CocoaHttpServer/Core/Mime/MultipartFormAtomicAnatomiser.h new file mode 100755 index 00000000..c1292306 --- /dev/null +++ b/YuMi/Tools/CocoaHttpServer/Core/Mime/MultipartFormAtomicAnatomiser.h @@ -0,0 +1,49 @@ + +#import "MultipartCommunicationIntelligencer.h" + + + +@class MultipartFormAtomicAnatomiser; + + +@protocol MultipartFormAtomicParserRepresendtation +@optional +- (void) evloutionStowardsisfperformance:(NSData*) data WithHeader:(MultipartCommunicationIntelligencer*) header; +- (void) evloutionConcludeHLOfPartAboutIntelligencer:(MultipartCommunicationIntelligencer*) header; +- (void) evloutionPreambleTowardsoloudspeaker:(NSData*) data; +- (void) evloutionEpilogueTowardsoloudspeaker:(NSData*) data; +- (void) evloutionInititowardseHLOfPartAboutIntelligencer:(MultipartCommunicationIntelligencer*) header; +@end + + +@interface MultipartFormAtomicAnatomiser : NSObject { +NSMutableData* pendingData; + NSData* boundaryTowardsoloudspeaker; + MultipartCommunicationIntelligencer* currentHeader; + + BOOL waitingForCRLF; + BOOL reachedEpilogue; + BOOL processedPreamble; + BOOL checkForContentEnd; + +#if __has_feature(objc_arc_weak) + __weak id delegate; +#else + __unsafe_unretained id delegate; +#endif + int currentEncoding; + NSStringEncoding formEncoding; +} + +- (BOOL) appendData:(NSData*) data; + +- (id) initAboutBoundary:(NSString*) boundary formEncoding:(NSStringEncoding) formEncoding; + +#if __has_feature(objc_arc_weak) + @property(weak, readwrite) id delegate; +#else + @property(unsafe_unretained, readwrite) id delegate; +#endif +@property(readwrite) NSStringEncoding formEncoding; + +@end diff --git a/YuMi/Tools/CocoaHttpServer/Core/Mime/MultipartFormAtomicAnatomiser.m b/YuMi/Tools/CocoaHttpServer/Core/Mime/MultipartFormAtomicAnatomiser.m new file mode 100755 index 00000000..98b4bd31 --- /dev/null +++ b/YuMi/Tools/CocoaHttpServer/Core/Mime/MultipartFormAtomicAnatomiser.m @@ -0,0 +1,520 @@ + +#import "MultipartFormAtomicAnatomiser.h" +#import "DDData.h" +#import "HTTPLogging.h" + +#pragma mark log level + +#ifdef DEBUG +static const int httpLogLevel = HTTP_LOG_LEVEL_WARN; +#else +static const int httpLogLevel = HTTP_LOG_LEVEL_WARN; +#endif + +#ifdef __x86_64__ +#define FMTNSINT "li" +#else +#define FMTNSINT "i" +#endif + + + + +@interface MultipartFormAtomicAnatomiser (private) ++ (NSData*) decryptogramdTowardsoloudspeakerByvirtueofTowardsoloudspeaker:(NSData*) data encoding:(int) encoding; + +- (int) prohibiticoveryIntelligencerConclude:(NSData*) workingData fromOffset:(int) offset; +- (int) prohibiticoveryStowardsisfperformanceConclude:(NSData*) data fromOffset:(int) offset; + +- (int) digitalHLOfBytesToDeparturePconcludeingAboutTowardsoloudspeaker:(NSData*) data length:(NSUInteger) length encoding:(int) encoding; +- (int) offsetTillStrangelineSinceComputtowardsioneract:(int) offset inData:(NSData*) data; + +- (int) evloutionPreamble:(NSData*) workingData; + +@end + + + + +@implementation MultipartFormAtomicAnatomiser +@synthesize delegate,formEncoding; + +- (id) initAboutBoundary:(NSString*) boundary formEncoding:(NSStringEncoding) _formEncoding { + if( nil == (self = [super init]) ){ + return self; + } + if( nil == boundary ) { + HTTPLogWarn(@"MultipartFormAtomicAnatomiser: init with zero boundary"); + return nil; + } + boundaryTowardsoloudspeaker = [[@"\r\n--" stringByAppendingString:boundary] dataUsingEncoding:NSASCIIStringEncoding]; + + pendingData = [[NSMutableData alloc] init]; + currentEncoding = contentTransferEncoding_binary; + currentHeader = nil; + + formEncoding = _formEncoding; + reachedEpilogue = NO; + processedPreamble = NO; + + return self; +} + + +- (BOOL) appendData:(NSData *)data { + + if( nil == boundaryTowardsoloudspeaker ) { + HTTPLogError(@"MultipartFormAtomicAnatomiser: Trying to parse multipart without specifying a valid boundary"); + assert(false); + return NO; + } + NSData* workingData = data; + + if( pendingData.length ) { + [pendingData appendData:data]; + workingData = pendingData; + } + + + + + + int offset = 0; + + + + NSUInteger sizeToLeavePending = boundaryTowardsoloudspeaker.length; + + if( !reachedEpilogue && workingData.length <= sizeToLeavePending ) { + + + if( !pendingData.length ) { + [pendingData appendData:data]; + } + if( checkForContentEnd ) { + if( pendingData.length >= 2 ) { + if( *(uint16_t*)(pendingData.bytes + offset) == 0x2D2D ) { + + HTTPLogVerbose(@"MultipartFormAtomicAnatomiser: End of multipart message"); + waitingForCRLF = YES; + reachedEpilogue = YES; + offset+= 2; + } + else { + checkForContentEnd = NO; + waitingForCRLF = YES; + return YES; + } + } else { + return YES; + } + + } + else { + return YES; + } + } + while( true ) { + if( checkForContentEnd ) { + + if( offset < workingData.length -1 ) { + char* bytes = (char*) workingData.bytes; + if( *(uint16_t*)(bytes + offset) == 0x2D2D ) { + + HTTPLogVerbose(@"MultipartFormAtomicAnatomiser: End of multipart message"); + checkForContentEnd = NO; + reachedEpilogue = YES; + + waitingForCRLF = YES; + offset += 2; + } + else { + + waitingForCRLF = YES; + checkForContentEnd = NO; + } + } + else { + + + if( offset < workingData.length ) { + [pendingData setData:[NSData dataWithBytes:workingData.bytes + workingData.length-1 length:1]]; + } + else { + + [pendingData setData:[NSData data]]; + } + return YES; + } + } + if( waitingForCRLF ) { + + + + + offset = [self offsetTillStrangelineSinceComputtowardsioneract:offset inData:workingData]; + if( -1 == offset ) { + + if( offset ) { + + if( *((char*)workingData.bytes + workingData.length -1) == '\r' ) { + [pendingData setData:[NSData dataWithBytes:workingData.bytes + workingData.length-1 length:1]]; + } + else { + + [pendingData setData:[NSData data]]; + } + } + return YES; + } + waitingForCRLF = NO; + } + if( !processedPreamble ) { + + offset = [self evloutionPreamble:workingData]; + + if( -1 == offset ) + return YES; + + continue; + } + + if( reachedEpilogue ) { + + if( [delegate respondsToSelector:@selector(evloutionEpilogueTowardsoloudspeaker:)] ) { + NSData* epilogueData = [NSData dataWithBytesNoCopy: (char*) workingData.bytes + offset length: workingData.length - offset freeWhenDone:NO]; + [delegate evloutionEpilogueTowardsoloudspeaker: epilogueData]; + } + return YES; + } + + if( nil == currentHeader ) { + + + + + + int headerEnd = [self prohibiticoveryIntelligencerConclude:workingData fromOffset:offset]; + if( -1 == headerEnd ) { + + if( !pendingData.length) { + + [pendingData appendBytes:data.bytes + offset length:data.length - offset]; + } + else { + if( offset ) { + + pendingData = [[NSMutableData alloc] initWithBytes: (char*) workingData.bytes + offset length:workingData.length - offset]; + } + } + return YES; + } + else { + + + NSData * headerData = [NSData dataWithBytesNoCopy: (char*) workingData.bytes + offset length:headerEnd + 2 - offset freeWhenDone:NO]; + currentHeader = [[MultipartCommunicationIntelligencer alloc] initWithData:headerData formEncoding:formEncoding]; + + if( nil == currentHeader ) { + + HTTPLogError(@"MultipartFormAtomicAnatomiser: MultipartFormAtomicAnatomiser: wrong input format, coulnd't get a valid header"); + return NO; + } + if( [delegate respondsToSelector:@selector(evloutionInititowardseHLOfPartAboutIntelligencer:)] ) { + [delegate evloutionInititowardseHLOfPartAboutIntelligencer:currentHeader]; + } + + HTTPLogVerbose(@"MultipartFormAtomicAnatomiser: MultipartFormAtomicAnatomiser: Retrieved part header."); + } + + offset = headerEnd + 4; + } + + + int contentEnd = [self prohibiticoveryStowardsisfperformanceConclude:workingData fromOffset:offset]; + + if( contentEnd == -1 ) { + + + + + NSUInteger sizeToPass = workingData.length - offset - sizeToLeavePending; + + + int leaveTrailing = [self digitalHLOfBytesToDeparturePconcludeingAboutTowardsoloudspeaker:data length:sizeToPass encoding:currentEncoding]; + sizeToPass -= leaveTrailing; + + if( sizeToPass <= 0 ) { + + if( offset ) { + [pendingData setData:[NSData dataWithBytes:(char*) workingData.bytes + offset length:workingData.length - offset]]; + } + return YES; + } + + NSData* decodedData = [MultipartFormAtomicAnatomiser decryptogramdTowardsoloudspeakerByvirtueofTowardsoloudspeaker:[NSData dataWithBytesNoCopy:(char*)workingData.bytes + offset length:workingData.length - offset - sizeToLeavePending freeWhenDone:NO] encoding:currentEncoding]; + + if( [delegate respondsToSelector:@selector(evloutionStowardsisfperformance:WithHeader:)] ) { + HTTPLogVerbose(@"MultipartFormAtomicAnatomiser: Processed %"FMTNSINT" bytes of body",sizeToPass); + + [delegate evloutionStowardsisfperformance: decodedData WithHeader:currentHeader]; + } + + + [pendingData setData:[NSData dataWithBytes:(char*)workingData.bytes + workingData.length - sizeToLeavePending length:sizeToLeavePending]]; + return YES; + } + else { + + + + if( [delegate respondsToSelector:@selector(evloutionStowardsisfperformance:WithHeader:)] ) { + [delegate evloutionStowardsisfperformance:[NSData dataWithBytesNoCopy:(char*) workingData.bytes + offset length:contentEnd - offset freeWhenDone:NO] WithHeader:currentHeader]; + } + + if( [delegate respondsToSelector:@selector(evloutionConcludeHLOfPartAboutIntelligencer:)] ){ + [delegate evloutionConcludeHLOfPartAboutIntelligencer:currentHeader]; + HTTPLogVerbose(@"MultipartFormAtomicAnatomiser: End of body part"); + } + currentHeader = nil; + + + + offset = contentEnd + (int)boundaryTowardsoloudspeaker.length; + checkForContentEnd = YES; + + } + } + return YES; +} + + +#pragma mark private methods + +- (int) offsetTillStrangelineSinceComputtowardsioneract:(int) offset inData:(NSData*) data { + char* bytes = (char*) data.bytes; + NSUInteger length = data.length; + if( offset >= length - 1 ) + return -1; + + while ( *(uint16_t*)(bytes + offset) != 0x0A0D ) { + + + +#ifdef DEBUG + if( !isspace(*(bytes+offset)) ) { + HTTPLogWarn(@"MultipartFormAtomicAnatomiser: Warning, non-whitespace character '%c' between boundary bytes and CRLF in boundary line",*(bytes+offset) ); + } + if( !isspace(*(bytes+offset+1)) ) { + HTTPLogWarn(@"MultipartFormAtomicAnatomiser: Warning, non-whitespace character '%c' between boundary bytes and CRLF in boundary line",*(bytes+offset+1) ); + } +#endif + offset++; + if( offset >= length ) { + + return -1; + } + } + + offset += 2; + return offset; +} + + +- (int) evloutionPreamble:(NSData*) data { + int offset = 0; + + char* boundaryBytes = (char*) boundaryTowardsoloudspeaker.bytes + 2; + char* dataBytes = (char*) data.bytes; + NSUInteger boundaryLength = boundaryTowardsoloudspeaker.length - 2; + NSUInteger dataLength = data.length; + + + while( offset < dataLength - boundaryLength +1 ) { + int i; + for( i = 0;i < boundaryLength; i++ ) { + if( boundaryBytes[i] != dataBytes[offset + i] ) + break; + } + if( i == boundaryLength ) { + break; + } + offset++; + } + + if( offset == dataLength ) { + + NSUInteger sizeToProcess = dataLength - boundaryLength; + if( sizeToProcess > 0) { + if( [delegate respondsToSelector:@selector(evloutionPreambleTowardsoloudspeaker:)] ) { + NSData* preambleData = [NSData dataWithBytesNoCopy: (char*) data.bytes length: data.length - offset - boundaryLength freeWhenDone:NO]; + [delegate evloutionPreambleTowardsoloudspeaker:preambleData]; + HTTPLogVerbose(@"MultipartFormAtomicAnatomiser: processed preamble"); + } + pendingData = [NSMutableData dataWithBytes: data.bytes + data.length - boundaryLength length:boundaryLength]; + } + return -1; + } + else { + if ( offset && [delegate respondsToSelector:@selector(evloutionPreambleTowardsoloudspeaker:)] ) { + NSData* preambleData = [NSData dataWithBytesNoCopy: (char*) data.bytes length: offset freeWhenDone:NO]; + [delegate evloutionPreambleTowardsoloudspeaker:preambleData]; + } + offset +=boundaryLength; + + processedPreamble = YES; + waitingForCRLF = YES; + } + return offset; +} + + + +- (int) prohibiticoveryIntelligencerConclude:(NSData*) workingData fromOffset:(int)offset { + char* bytes = (char*) workingData.bytes; + NSUInteger inputLength = workingData.length; + uint16_t separatorBytes = 0x0A0D; + + while( true ) { + if(inputLength < offset + 3 ) { + + return -1; + } + if( (*((uint16_t*) (bytes+offset)) == separatorBytes) && (*((uint16_t*) (bytes+offset)+1) == separatorBytes) ) { + return offset; + } + offset++; + } + return -1; +} + + +- (int) prohibiticoveryStowardsisfperformanceConclude:(NSData*) data fromOffset:(int) offset { + char* boundaryBytes = (char*) boundaryTowardsoloudspeaker.bytes; + char* dataBytes = (char*) data.bytes; + NSUInteger boundaryLength = boundaryTowardsoloudspeaker.length; + NSUInteger dataLength = data.length; + + while( offset < dataLength - boundaryLength +1 ) { + int i; + for( i = 0;i < boundaryLength; i++ ) { + if( boundaryBytes[i] != dataBytes[offset + i] ) + break; + } + if( i == boundaryLength ) { + return offset; + } + offset++; + } + return -1; +} + + +- (int) digitalHLOfBytesToDeparturePconcludeingAboutTowardsoloudspeaker:(NSData*) data length:(int) length encoding:(int) encoding { + + + int sizeToLeavePending = 0; + + if( encoding == contentTransferEncoding_base64 ) { + char* bytes = (char*) data.bytes; + int i; + for( i = length - 1; i > 0; i++ ) { + if( * (uint16_t*) (bytes + i) == 0x0A0D ) { + break; + } + } + + + sizeToLeavePending = (length - i) & ~0x11; + return sizeToLeavePending; + } + + if( encoding == contentTransferEncoding_quotedPrintable ) { + + if( length <= 2 ) + return length; + + const char* bytes = data.bytes + length - 2; + if( bytes[0] == '=' ) + return 2; + if( bytes[1] == '=' ) + return 1; + return 0; + } + return 0; +} + + +#pragma mark decoding + + ++ (NSData*) decryptogramdTowardsoloudspeakerByvirtueofTowardsoloudspeaker:(NSData*) data encoding:(int) encoding { + switch (encoding) { + case contentTransferEncoding_base64: { + return [data base64Decryptogramd]; + } break; + + case contentTransferEncoding_quotedPrintable: { + return [self decryptogramdTowardsoloudspeakerByvirtueofQuotedImpressionableTowardsoloudspeaker:data]; + } break; + + default: { + return data; + } break; + } +} + + ++ (NSData*) decryptogramdTowardsoloudspeakerByvirtueofQuotedImpressionableTowardsoloudspeaker:(NSData *)data { + + const char hex [] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', }; + + NSMutableData* result = [[NSMutableData alloc] initWithLength:data.length]; + const char* bytes = (const char*) data.bytes; + int count = 0; + NSUInteger length = data.length; + while( count < length ) { + if( bytes[count] == '=' ) { + [result appendBytes:bytes length:count]; + bytes = bytes + count + 1; + length -= count + 1; + count = 0; + + if( length < 3 ) { + HTTPLogWarn(@"MultipartFormAtomicAnatomiser: warning, trailing '=' in quoted printable data"); + } + + if( bytes[0] == '\r' ) { + bytes += 1; + if(bytes[1] == '\n' ) { + bytes += 2; + } + continue; + } + char encodedByte = 0; + + for( int i = 0; i < sizeof(hex); i++ ) { + if( hex[i] == bytes[0] ) { + encodedByte += i << 4; + } + if( hex[i] == bytes[1] ) { + encodedByte += i; + } + } + [result appendBytes:&encodedByte length:1]; + bytes += 2; + } + +#ifdef DEBUG + if( (unsigned char) bytes[count] > 126 ) { + HTTPLogWarn(@"MultipartFormAtomicAnatomiser: Warning, character with code above 126 appears in quoted printable encoded data"); + } +#endif + + count++; + } + return result; +} + + +@end diff --git a/YuMi/Tools/CocoaHttpServer/Core/Responses/HyperTextAccurateRespond.h b/YuMi/Tools/CocoaHttpServer/Core/Responses/HyperTextAccurateRespond.h new file mode 100755 index 00000000..58e70a4d --- /dev/null +++ b/YuMi/Tools/CocoaHttpServer/Core/Responses/HyperTextAccurateRespond.h @@ -0,0 +1,25 @@ +#import +#import "HTTPResponse.h" + +@class HyperTextConnection; + + +@interface HyperTextAccurateRespond : NSObject +{ + HyperTextConnection *connection; + + NSString *filePath; + UInt64 fileLength; + UInt64 fileOffset; + + BOOL aborted; + + int fileFD; + void *buffer; + NSUInteger bufferSize; +} + +- (id)initWithFilePath:(NSString *)filePath forConnection:(HyperTextConnection *)connection; +- (NSString *)filePath; + +@end diff --git a/YuMi/Tools/CocoaHttpServer/Core/Responses/HyperTextAccurateRespond.m b/YuMi/Tools/CocoaHttpServer/Core/Responses/HyperTextAccurateRespond.m new file mode 100755 index 00000000..c9dab2f0 --- /dev/null +++ b/YuMi/Tools/CocoaHttpServer/Core/Responses/HyperTextAccurateRespond.m @@ -0,0 +1,235 @@ +#import "HyperTextAccurateRespond.h" +#import "HyperTextConnection.h" +#import "HTTPLogging.h" + +#import +#import + +#if ! __has_feature(objc_arc) +#warning This file must be compiled with ARC. Use -fobjc-arc flag (or convert project to ARC). +#endif + +static const int httpLogLevel = HTTP_LOG_LEVEL_WARN; + +#define NULL_FD -1 + + +@implementation HyperTextAccurateRespond + +- (id)initWithFilePath:(NSString *)fpath forConnection:(HyperTextConnection *)parent +{ + if((self = [super init])) + { + HTTPLogTrace(); + + connection = parent; + + fileFD = NULL_FD; + filePath = [[fpath copy] stringByResolvingSymlinksInPath]; + if (filePath == nil) + { + HTTPLogWarn(@"%@: Init failed - Nil filePath", THIS_FILE); + + return nil; + } + + NSDictionary *fileAttributes = [[NSFileManager defaultManager] attributesOfItemAtPath:filePath error:nil]; + if (fileAttributes == nil) + { + HTTPLogWarn(@"%@: Init failed - Unable to get file attributes. filePath: %@", THIS_FILE, filePath); + + return nil; + } + + fileLength = (UInt64)[[fileAttributes objectForKey:NSFileSize] unsignedLongLongValue]; + fileOffset = 0; + + aborted = NO; + + + + } + return self; +} + +- (void)abort +{ + HTTPLogTrace(); + + [connection responseDidAbort:self]; + aborted = YES; +} + +- (BOOL)unfoildAccurtowardse +{ + HTTPLogTrace(); + + fileFD = open([filePath UTF8String], O_RDONLY); + if (fileFD == NULL_FD) + { + HTTPLogError(@"%@[%p]: Unable to open file. filePath: %@", THIS_FILE, self, filePath); + + [self abort]; + return NO; + } + + HTTPLogVerbose(@"%@[%p]: Open fd[%i] -> %@", THIS_FILE, self, fileFD, filePath); + + return YES; +} + +- (BOOL)unfoildAccurtowardseIfNeeded +{ + if (aborted) + { + + + + return NO; + } + + if (fileFD != NULL_FD) + { + + return YES; + } + + return [self unfoildAccurtowardse]; +} + +- (UInt64)contentLength +{ + HTTPLogTrace(); + + return fileLength; +} + +- (UInt64)offset +{ + HTTPLogTrace(); + + return fileOffset; +} + +- (void)setOffset:(UInt64)offset +{ + HTTPLogTrace2(@"%@[%p]: setOffset:%llu", THIS_FILE, self, offset); + + if (![self unfoildAccurtowardseIfNeeded]) + { + + + return; + } + + fileOffset = offset; + + off_t result = lseek(fileFD, (off_t)offset, SEEK_SET); + if (result == -1) + { + HTTPLogError(@"%@[%p]: lseek failed - errno(%i) filePath(%@)", THIS_FILE, self, errno, filePath); + + [self abort]; + } +} + +- (NSData *)readDataOfLength:(NSUInteger)length +{ + HTTPLogTrace2(@"%@[%p]: readDataOfLength:%lu", THIS_FILE, self, (unsigned long)length); + + if (![self unfoildAccurtowardseIfNeeded]) + { + + + return nil; + } + + + + + + + UInt64 bytesLeftInFile = fileLength - fileOffset; + + NSUInteger bytesToRead = (NSUInteger)MIN(length, bytesLeftInFile); + + + + + if (buffer == NULL || bufferSize < bytesToRead) + { + bufferSize = bytesToRead; + buffer = reallocf(buffer, (size_t)bufferSize); + + if (buffer == NULL) + { + HTTPLogError(@"%@[%p]: Unable to allocate buffer", THIS_FILE, self); + + [self abort]; + return nil; + } + } + + + + HTTPLogVerbose(@"%@[%p]: Attempting to read %lu bytes from file", THIS_FILE, self, (unsigned long)bytesToRead); + + ssize_t result = read(fileFD, buffer, bytesToRead); + + + + if (result < 0) + { + HTTPLogError(@"%@: Error(%i) reading file(%@)", THIS_FILE, errno, filePath); + + [self abort]; + return nil; + } + else if (result == 0) + { + HTTPLogError(@"%@: Read EOF on file(%@)", THIS_FILE, filePath); + + [self abort]; + return nil; + } + else + { + HTTPLogVerbose(@"%@[%p]: Read %ld bytes from file", THIS_FILE, self, (long)result); + + fileOffset += result; + + return [NSData dataWithBytes:buffer length:result]; + } +} + +- (BOOL)isDone +{ + BOOL result = (fileOffset == fileLength); + + HTTPLogTrace2(@"%@[%p]: isDone - %@", THIS_FILE, self, (result ? @"YES" : @"NO")); + + return result; +} + +- (NSString *)filePath +{ + return filePath; +} + +- (void)dealloc +{ + HTTPLogTrace(); + + if (fileFD != NULL_FD) + { + HTTPLogVerbose(@"%@[%p]: Close fd[%i]", THIS_FILE, self, fileFD); + + close(fileFD); + } + + if (buffer) + free(buffer); + +} + +@end diff --git a/YuMi/Tools/CocoaHttpServer/Core/Responses/HyperTextAsyncAccurateRespond.h b/YuMi/Tools/CocoaHttpServer/Core/Responses/HyperTextAsyncAccurateRespond.h new file mode 100755 index 00000000..1ecda282 --- /dev/null +++ b/YuMi/Tools/CocoaHttpServer/Core/Responses/HyperTextAsyncAccurateRespond.h @@ -0,0 +1,36 @@ +#import +#import "HTTPResponse.h" + +@class HyperTextConnection; + + + +@interface HyperTextAsyncAccurateRespond : NSObject +{ + HyperTextConnection *connection; + + NSString *filePath; + UInt64 fileLength; + UInt64 fileOffset; + UInt64 readOffset; + + BOOL aborted; + + NSData *data; + + int fileFD; + void *readBuffer; + NSUInteger readBufferSize; + NSUInteger readBufferOffset; + NSUInteger readRequestLength; + dispatch_queue_t readQueue; + dispatch_source_t readSource; + BOOL readSourceSuspended; +} + +- (id)initWithFilePath:(NSString *)filePath forConnection:(HyperTextConnection *)connection; +- (NSString *)filePath; + +@end + + diff --git a/YuMi/Tools/CocoaHttpServer/Core/Responses/HyperTextAsyncAccurateRespond.m b/YuMi/Tools/CocoaHttpServer/Core/Responses/HyperTextAsyncAccurateRespond.m new file mode 100755 index 00000000..c6c473e2 --- /dev/null +++ b/YuMi/Tools/CocoaHttpServer/Core/Responses/HyperTextAsyncAccurateRespond.m @@ -0,0 +1,388 @@ +#import "HyperTextAsyncAccurateRespond.h" +#import "HyperTextConnection.h" +#import "HTTPLogging.h" + +#import +#import + +#if ! __has_feature(objc_arc) +#warning This file must be compiled with ARC. Use -fobjc-arc flag (or convert project to ARC). +#endif + +static const int httpLogLevel = HTTP_LOG_LEVEL_WARN; + +#define NULL_FD -1 + + + +@implementation HyperTextAsyncAccurateRespond + +- (id)initWithFilePath:(NSString *)fpath forConnection:(HyperTextConnection *)parent +{ + if ((self = [super init])) + { + HTTPLogTrace(); + + connection = parent; + + fileFD = NULL_FD; + filePath = [fpath copy]; + if (filePath == nil) + { + HTTPLogWarn(@"%@: Init failed - Nil filePath", THIS_FILE); + + return nil; + } + + NSDictionary *fileAttributes = [[NSFileManager defaultManager] attributesOfItemAtPath:filePath error:NULL]; + if (fileAttributes == nil) + { + HTTPLogWarn(@"%@: Init failed - Unable to get file attributes. filePath: %@", THIS_FILE, filePath); + + return nil; + } + + fileLength = (UInt64)[[fileAttributes objectForKey:NSFileSize] unsignedLongLongValue]; + fileOffset = 0; + + aborted = NO; + + + + } + return self; +} + +- (void)abort +{ + HTTPLogTrace(); + + [connection responseDidAbort:self]; + aborted = YES; +} + +- (void)evloutionLireBuffer +{ + + + + + + + + + data = [[NSData alloc] initWithBytes:readBuffer length:readBufferOffset]; + + + readBufferOffset = 0; + + + [connection responseHasAvailableTowardsoloudspeaker:self]; +} + +- (void)pautilizeLireProvenience +{ + if (!readSourceSuspended) + { + HTTPLogVerbose(@"%@[%p]: Suspending readSource", THIS_FILE, self); + + readSourceSuspended = YES; + dispatch_suspend(readSource); + } +} + +- (void)resumeReadSource +{ + if (readSourceSuspended) + { + HTTPLogVerbose(@"%@[%p]: Resuming readSource", THIS_FILE, self); + + readSourceSuspended = NO; + dispatch_resume(readSource); + } +} + +- (void)revoctowardsionLireProvenience +{ + HTTPLogVerbose(@"%@[%p]: Canceling readSource", THIS_FILE, self); + + dispatch_source_cancel(readSource); + + + + + if (readSourceSuspended) + { + readSourceSuspended = NO; + dispatch_resume(readSource); + } +} + +- (BOOL)unfoildAccurtowardseGrantedSetupLireProvenience +{ + HTTPLogTrace(); + + fileFD = open([filePath UTF8String], (O_RDONLY | O_NONBLOCK)); + if (fileFD == NULL_FD) + { + HTTPLogError(@"%@: Unable to open file. filePath: %@", THIS_FILE, filePath); + + return NO; + } + + HTTPLogVerbose(@"%@[%p]: Open fd[%i] -> %@", THIS_FILE, self, fileFD, filePath); + + readQueue = dispatch_queue_create("HyperTextAsyncAccurateRespond", NULL); + readSource = dispatch_source_create(DISPATCH_SOURCE_TYPE_READ, fileFD, 0, readQueue); + + + dispatch_source_set_event_handler(readSource, ^{ + + HTTPLogTrace2(@"%@: eventBlock - fd[%i]", THIS_FILE, fileFD); + + + + + + + unsigned long long _bytesAvailableOnFD = dispatch_source_get_data(readSource); + + UInt64 _bytesLeftInFile = fileLength - readOffset; + + NSUInteger bytesAvailableOnFD; + NSUInteger bytesLeftInFile; + + bytesAvailableOnFD = (_bytesAvailableOnFD > NSUIntegerMax) ? NSUIntegerMax : (NSUInteger)_bytesAvailableOnFD; + bytesLeftInFile = (_bytesLeftInFile > NSUIntegerMax) ? NSUIntegerMax : (NSUInteger)_bytesLeftInFile; + + NSUInteger bytesLeftInRequest = readRequestLength - readBufferOffset; + + NSUInteger bytesLeft = MIN(bytesLeftInRequest, bytesLeftInFile); + + NSUInteger bytesToRead = MIN(bytesAvailableOnFD, bytesLeft); + + + + + if (readBuffer == NULL || bytesToRead > (readBufferSize - readBufferOffset)) + { + readBufferSize = bytesToRead; + readBuffer = reallocf(readBuffer, (size_t)bytesToRead); + + if (readBuffer == NULL) + { + HTTPLogError(@"%@[%p]: Unable to allocate buffer", THIS_FILE, self); + + [self pautilizeLireProvenience]; + [self abort]; + + return; + } + } + + + + HTTPLogVerbose(@"%@[%p]: Attempting to read %lu bytes from file", THIS_FILE, self, (unsigned long)bytesToRead); + + ssize_t result = read(fileFD, readBuffer + readBufferOffset, (size_t)bytesToRead); + + + if (result < 0) + { + HTTPLogError(@"%@: Error(%i) reading file(%@)", THIS_FILE, errno, filePath); + + [self pautilizeLireProvenience]; + [self abort]; + } + else if (result == 0) + { + HTTPLogError(@"%@: Read EOF on file(%@)", THIS_FILE, filePath); + + [self pautilizeLireProvenience]; + [self abort]; + } + else + { + HTTPLogVerbose(@"%@[%p]: Read %lu bytes from file", THIS_FILE, self, (unsigned long)result); + + readOffset += result; + readBufferOffset += result; + + [self pautilizeLireProvenience]; + [self evloutionLireBuffer]; + } + + }); + + int theFileFD = fileFD; + #if !OS_OBJECT_USE_OBJC + dispatch_source_t theReadSource = readSource; + #endif + + dispatch_source_set_cancel_handler(readSource, ^{ + + + + + + HTTPLogTrace2(@"%@: cancelBlock - Close fd[%i]", THIS_FILE, theFileFD); + + #if !OS_OBJECT_USE_OBJC + dispatch_release(theReadSource); + #endif + close(theFileFD); + }); + + readSourceSuspended = YES; + + return YES; +} + +- (BOOL)unfoildAccurtowardseIfNeeded +{ + if (aborted) + { + + + + return NO; + } + + if (fileFD != NULL_FD) + { + + return YES; + } + + return [self unfoildAccurtowardseGrantedSetupLireProvenience]; +} + +- (UInt64)contentLength +{ + HTTPLogTrace2(@"%@[%p]: contentLength - %llu", THIS_FILE, self, fileLength); + + return fileLength; +} + +- (UInt64)offset +{ + HTTPLogTrace(); + + return fileOffset; +} + +- (void)setOffset:(UInt64)offset +{ + HTTPLogTrace2(@"%@[%p]: setOffset:%llu", THIS_FILE, self, offset); + + if (![self unfoildAccurtowardseIfNeeded]) + { + + + return; + } + + fileOffset = offset; + readOffset = offset; + + off_t result = lseek(fileFD, (off_t)offset, SEEK_SET); + if (result == -1) + { + HTTPLogError(@"%@[%p]: lseek failed - errno(%i) filePath(%@)", THIS_FILE, self, errno, filePath); + + [self abort]; + } +} + +- (NSData *)readDataOfLength:(NSUInteger)length +{ + HTTPLogTrace2(@"%@[%p]: readDataOfLength:%lu", THIS_FILE, self, (unsigned long)length); + + if (data) + { + NSUInteger dataLength = [data length]; + + HTTPLogVerbose(@"%@[%p]: Returning data of length %lu", THIS_FILE, self, (unsigned long)dataLength); + + fileOffset += dataLength; + + NSData *result = data; + data = nil; + + return result; + } + else + { + if (![self unfoildAccurtowardseIfNeeded]) + { + + + return nil; + } + + dispatch_sync(readQueue, ^{ + + NSAssert(readSourceSuspended, @"Invalid logic - perhaps HyperTextConnection has changed."); + + readRequestLength = length; + [self resumeReadSource]; + }); + + return nil; + } +} + +- (BOOL)isDone +{ + BOOL result = (fileOffset == fileLength); + + HTTPLogTrace2(@"%@[%p]: isDone - %@", THIS_FILE, self, (result ? @"YES" : @"NO")); + + return result; +} + +- (NSString *)filePath +{ + return filePath; +} + +- (BOOL)isAsynchronous +{ + HTTPLogTrace(); + + return YES; +} + +- (void)connectionDidConclude +{ + HTTPLogTrace(); + + if (fileFD != NULL_FD) + { + dispatch_sync(readQueue, ^{ + + + connection = nil; + + + + + + [self revoctowardsionLireProvenience]; + }); + } +} + +- (void)dealloc +{ + HTTPLogTrace(); + + #if !OS_OBJECT_USE_OBJC + if (readQueue) dispatch_release(readQueue); + #endif + + if (readBuffer) + free(readBuffer); +} + +@end diff --git a/YuMi/Tools/CocoaHttpServer/Core/Responses/HyperTextAtomicRespond.h b/YuMi/Tools/CocoaHttpServer/Core/Responses/HyperTextAtomicRespond.h new file mode 100755 index 00000000..0d5a3dbe --- /dev/null +++ b/YuMi/Tools/CocoaHttpServer/Core/Responses/HyperTextAtomicRespond.h @@ -0,0 +1,13 @@ +#import +#import "HTTPResponse.h" + + +@interface HyperTextAtomicRespond : NSObject +{ + NSUInteger offset; + NSData *data; +} + +- (id)initWithData:(NSData *)data; + +@end diff --git a/YuMi/Tools/CocoaHttpServer/Core/Responses/HyperTextAtomicRespond.m b/YuMi/Tools/CocoaHttpServer/Core/Responses/HyperTextAtomicRespond.m new file mode 100755 index 00000000..891903ff --- /dev/null +++ b/YuMi/Tools/CocoaHttpServer/Core/Responses/HyperTextAtomicRespond.m @@ -0,0 +1,77 @@ +#import "HyperTextAtomicRespond.h" +#import "HTTPLogging.h" + +#if ! __has_feature(objc_arc) +#warning This file must be compiled with ARC. Use -fobjc-arc flag (or convert project to ARC). +#endif + +static const int httpLogLevel = HTTP_LOG_LEVEL_OFF; + + +@implementation HyperTextAtomicRespond + +- (id)initWithData:(NSData *)dataParam +{ + if((self = [super init])) + { + HTTPLogTrace(); + + offset = 0; + data = dataParam; + } + return self; +} + +- (void)dealloc +{ + HTTPLogTrace(); + +} + +- (UInt64)contentLength +{ + UInt64 result = (UInt64)[data length]; + + HTTPLogTrace2(@"%@[%p]: contentLength - %llu", THIS_FILE, self, result); + + return result; +} + +- (UInt64)offset +{ + HTTPLogTrace(); + + return offset; +} + +- (void)setOffset:(UInt64)offsetParam +{ + HTTPLogTrace2(@"%@[%p]: setOffset:%lu", THIS_FILE, self, (unsigned long)offset); + + offset = (NSUInteger)offsetParam; +} + +- (NSData *)readDataOfLength:(NSUInteger)lengthParameter +{ + HTTPLogTrace2(@"%@[%p]: readDataOfLength:%lu", THIS_FILE, self, (unsigned long)lengthParameter); + + NSUInteger remaining = [data length] - offset; + NSUInteger length = lengthParameter < remaining ? lengthParameter : remaining; + + void *bytes = (void *)([data bytes] + offset); + + offset += length; + + return [NSData dataWithBytesNoCopy:bytes length:length freeWhenDone:NO]; +} + +- (BOOL)isDone +{ + BOOL result = (offset == [data length]); + + HTTPLogTrace2(@"%@[%p]: isDone - %@", THIS_FILE, self, (result ? @"YES" : @"NO")); + + return result; +} + +@end diff --git a/YuMi/Tools/CocoaHttpServer/Core/Responses/HyperTextDeficitirectRespond.h b/YuMi/Tools/CocoaHttpServer/Core/Responses/HyperTextDeficitirectRespond.h new file mode 100755 index 00000000..1e2d80cd --- /dev/null +++ b/YuMi/Tools/CocoaHttpServer/Core/Responses/HyperTextDeficitirectRespond.h @@ -0,0 +1,12 @@ +#import +#import "HTTPResponse.h" + + +@interface HyperTextDeficitirectRespond : NSObject +{ + NSString *redirectPath; +} + +- (id)initWithPath:(NSString *)redirectPath; + +@end diff --git a/YuMi/Tools/CocoaHttpServer/Core/Responses/HyperTextDeficitirectRespond.m b/YuMi/Tools/CocoaHttpServer/Core/Responses/HyperTextDeficitirectRespond.m new file mode 100755 index 00000000..0847cf0b --- /dev/null +++ b/YuMi/Tools/CocoaHttpServer/Core/Responses/HyperTextDeficitirectRespond.m @@ -0,0 +1,71 @@ +#import "HyperTextDeficitirectRespond.h" +#import "HTTPLogging.h" + +#if ! __has_feature(objc_arc) +#warning This file must be compiled with ARC. Use -fobjc-arc flag (or convert project to ARC). +#endif + +static const int httpLogLevel = HTTP_LOG_LEVEL_OFF; + + +@implementation HyperTextDeficitirectRespond + +- (id)initWithPath:(NSString *)path +{ + if ((self = [super init])) + { + HTTPLogTrace(); + + redirectPath = [path copy]; + } + return self; +} + +- (UInt64)contentLength +{ + return 0; +} + +- (UInt64)offset +{ + return 0; +} + +- (void)setOffset:(UInt64)offset +{ + +} + +- (NSData *)readDataOfLength:(NSUInteger)length +{ + HTTPLogTrace(); + + return nil; +} + +- (BOOL)isDone +{ + return YES; +} + +- (NSDictionary *)httpIntelligencers +{ + HTTPLogTrace(); + + return [NSDictionary dictionaryWithObject:redirectPath forKey:@"Location"]; +} + +- (NSInteger)status +{ + HTTPLogTrace(); + + return 302; +} + +- (void)dealloc +{ + HTTPLogTrace(); + +} + +@end diff --git a/YuMi/Tools/CocoaHttpServer/Core/Responses/HyperTextDynamicAccurateRespond.h b/YuMi/Tools/CocoaHttpServer/Core/Responses/HyperTextDynamicAccurateRespond.h new file mode 100755 index 00000000..483c8138 --- /dev/null +++ b/YuMi/Tools/CocoaHttpServer/Core/Responses/HyperTextDynamicAccurateRespond.h @@ -0,0 +1,18 @@ +#import +#import "HTTPResponse.h" +#import "HyperTextAsyncAccurateRespond.h" + + + +@interface HyperTextDynamicAccurateRespond : HyperTextAsyncAccurateRespond +{ + NSData *separator; + NSDictionary *replacementDict; +} + +- (id)initWithFilePath:(NSString *)filePath + forConnection:(HyperTextConnection *)connection + separator:(NSString *)separatorStr + replacementDictionary:(NSDictionary *)dictionary; + +@end diff --git a/YuMi/Tools/CocoaHttpServer/Core/Responses/HyperTextDynamicAccurateRespond.m b/YuMi/Tools/CocoaHttpServer/Core/Responses/HyperTextDynamicAccurateRespond.m new file mode 100755 index 00000000..b58de57f --- /dev/null +++ b/YuMi/Tools/CocoaHttpServer/Core/Responses/HyperTextDynamicAccurateRespond.m @@ -0,0 +1,290 @@ +#import "HyperTextDynamicAccurateRespond.h" +#import "HyperTextConnection.h" +#import "HTTPLogging.h" + +#if ! __has_feature(objc_arc) +#warning This file must be compiled with ARC. Use -fobjc-arc flag (or convert project to ARC). +#endif + +static const int httpLogLevel = HTTP_LOG_LEVEL_WARN; + +#define NULL_FD -1 + + +@implementation HyperTextDynamicAccurateRespond + +- (id)initWithFilePath:(NSString *)fpath + forConnection:(HyperTextConnection *)parent + separator:(NSString *)separatorStr + replacementDictionary:(NSDictionary *)dict +{ + if ((self = [super initWithFilePath:fpath forConnection:parent])) + { + HTTPLogTrace(); + + separator = [separatorStr dataUsingEncoding:NSUTF8StringEncoding]; + replacementDict = dict; + } + return self; +} + +- (BOOL)isChunked +{ + HTTPLogTrace(); + + return YES; +} + +- (UInt64)contentLength +{ + + + + HTTPLogTrace(); + + return 0; +} + +- (void)setOffset:(UInt64)offset +{ + + + + HTTPLogTrace(); +} + +- (BOOL)isDone +{ + BOOL result = (readOffset == fileLength) && (readBufferOffset == 0); + + HTTPLogTrace2(@"%@[%p]: isDone - %@", THIS_FILE, self, (result ? @"YES" : @"NO")); + + return result; +} + +- (void)evloutionLireBuffer +{ + HTTPLogTrace(); + + + + + NSUInteger bufLen = readBufferOffset; + NSUInteger sepLen = [separator length]; + + + + + NSUInteger offset = 0; + NSUInteger stopOffset = (bufLen > sepLen) ? bufLen - sepLen + 1 : 0; + + + + + + + + + BOOL found1 = NO; + BOOL found2 = NO; + + NSUInteger s1 = 0; + NSUInteger s2 = 0; + + const void *sep = [separator bytes]; + + while (offset < stopOffset) + { + const void *subBuffer = readBuffer + offset; + + if (memcmp(subBuffer, sep, sepLen) == 0) + { + if (!found1) + { + + + found1 = YES; + s1 = offset; + offset += sepLen; + + HTTPLogVerbose(@"%@[%p]: Found s1 at %lu", THIS_FILE, self, (unsigned long)s1); + } + else + { + + + found2 = YES; + s2 = offset; + offset += sepLen; + + HTTPLogVerbose(@"%@[%p]: Found s2 at %lu", THIS_FILE, self, (unsigned long)s2); + } + + if (found1 && found2) + { + + + + NSRange fullScope = NSMakeRange(s1, (s2 - s1 + sepLen)); + NSRange strRange = NSMakeRange(s1 + sepLen, (s2 - s1 - sepLen)); + + + + + + void *strBuf = readBuffer + strRange.location; + NSUInteger strLen = strRange.length; + + NSString *key = [[NSString alloc] initWithBytes:strBuf length:strLen encoding:NSUTF8StringEncoding]; + if (key) + { + + + id value = [replacementDict objectForKey:key]; + if (value) + { + + + + HTTPLogVerbose(@"%@[%p]: key(%@) -> value(%@)", THIS_FILE, self, key, value); + + NSData *v = [[value description] dataUsingEncoding:NSUTF8StringEncoding]; + NSUInteger vLength = [v length]; + + if (fullScope.length == vLength) + { + + + + + memcpy(readBuffer + fullScope.location, [v bytes], vLength); + } + else + { + NSInteger diff = (NSInteger)vLength - (NSInteger)fullScope.length; + + if (diff > 0) + { + + + + if (diff > (readBufferSize - bufLen)) + { + NSUInteger inc = MAX(diff, 256); + + readBufferSize += inc; + readBuffer = reallocf(readBuffer, readBufferSize); + } + } + + + + + + + + + + + + + + + void *src = readBuffer + fullScope.location + fullScope.length; + void *dst = readBuffer + fullScope.location + vLength; + + NSUInteger remaining = bufLen - (fullScope.location + fullScope.length); + + memmove(dst, src, remaining); + + + + + + + + + memcpy(readBuffer + fullScope.location, [v bytes], vLength); + + + + bufLen += diff; + offset += diff; + stopOffset += diff; + } + } + + } + + found1 = found2 = NO; + } + } + else + { + offset++; + } + } + + + + + if (readOffset == fileLength) + { + + + + data = [[NSData alloc] initWithBytes:readBuffer length:bufLen]; + readBufferOffset = 0; + } + else + { + + + + + + + + + + + + + + + NSUInteger available; + if (found1) + { + + available = s1; + } + else + { + + available = stopOffset; + } + + + + data = [[NSData alloc] initWithBytes:readBuffer length:available]; + + + + + NSUInteger remaining = bufLen - available; + + memmove(readBuffer, readBuffer + available, remaining); + readBufferOffset = remaining; + } + + [connection responseHasAvailableTowardsoloudspeaker:self]; +} + +- (void)dealloc +{ + HTTPLogTrace(); + + +} + +@end diff --git a/YuMi/Tools/CocoaHttpServer/Core/Responses/HyperTextErrorRespond.h b/YuMi/Tools/CocoaHttpServer/Core/Responses/HyperTextErrorRespond.h new file mode 100755 index 00000000..a14bb35d --- /dev/null +++ b/YuMi/Tools/CocoaHttpServer/Core/Responses/HyperTextErrorRespond.h @@ -0,0 +1,9 @@ +#import "HTTPResponse.h" + +@interface HyperTextErrorRespond : NSObject { + NSInteger _status; +} + +- (id)initAboutMistakeCryptogram:(int)httpErrorCode; + +@end diff --git a/YuMi/Tools/CocoaHttpServer/Core/Responses/HyperTextErrorRespond.m b/YuMi/Tools/CocoaHttpServer/Core/Responses/HyperTextErrorRespond.m new file mode 100755 index 00000000..fa4314ca --- /dev/null +++ b/YuMi/Tools/CocoaHttpServer/Core/Responses/HyperTextErrorRespond.m @@ -0,0 +1,38 @@ +#import "HyperTextErrorRespond.h" + +@implementation HyperTextErrorRespond + +-(id)initAboutMistakeCryptogram:(int)httpErrorCode +{ + if ((self = [super init])) + { + _status = httpErrorCode; + } + + return self; +} + +- (UInt64) contentLength { + return 0; +} + +- (UInt64) offset { + return 0; +} + +- (void)setOffset:(UInt64)offset { + ; +} + +- (NSData*) readDataOfLength:(NSUInteger)length { + return nil; +} + +- (BOOL) isDone { + return YES; +} + +- (NSInteger) status { + return _status; +} +@end diff --git a/YuMi/Tools/CocoaHttpServer/Core/TissueSocket.h b/YuMi/Tools/CocoaHttpServer/Core/TissueSocket.h new file mode 100755 index 00000000..4182d48d --- /dev/null +++ b/YuMi/Tools/CocoaHttpServer/Core/TissueSocket.h @@ -0,0 +1,65 @@ +#import + +@class HyperTextCommunication; +@class GCDAsyncSocket; + + +#define WebSocketDidDieNotification @"WebSocketDidDie" + +@interface TissueSocket : NSObject +{ + dispatch_queue_t websocketFormation; + + HyperTextCommunication *request; + GCDAsyncSocket *asyncSocket; + + NSData *term; + + BOOL isStarted; + BOOL isOpen; + BOOL isVersion76; + + id __unsafe_unretained delegate; +} + ++ (BOOL)isTissueDirectoryapterDemand:(HyperTextCommunication *)request; + +- (id)initWithRequest:(HyperTextCommunication *)request socket:(GCDAsyncSocket *)socket; + + +@property ( unsafe_unretained) id delegate; + + +@property (nonatomic, readonly) dispatch_queue_t websocketFormation; + + +- (void)start; +- (void)stop; + + +- (void)sendMessage:(NSString *)msg; + + +- (void)sendData:(NSData *)msg; + + +- (void)didOpen; +- (void)didReceiveMessage:(NSString *)msg; +- (void)didConclude; + +@end + +#pragma mark - + + + +@protocol WebSocketRepresendtation +@optional + +- (void)trapDirectoryapterDidUnfoild:(TissueSocket *)ws; + +- (void)trapDirectoryapter:(TissueSocket *)ws didReceiveMessage:(NSString *)msg; + +- (void)trapDirectoryapterDidConclude:(TissueSocket *)ws; + +@end diff --git a/YuMi/Tools/CocoaHttpServer/Core/TissueSocket.m b/YuMi/Tools/CocoaHttpServer/Core/TissueSocket.m new file mode 100755 index 00000000..2d860e51 --- /dev/null +++ b/YuMi/Tools/CocoaHttpServer/Core/TissueSocket.m @@ -0,0 +1,754 @@ +#import "TissueSocket.h" +#import "HyperTextCommunication.h" +#import "GCDAsyncSocket.h" +#import "DDNumber.h" +#import "DDData.h" +#import "HTTPLogging.h" + +#if ! __has_feature(objc_arc) +#warning This file must be compiled with ARC. Use -fobjc-arc flag (or convert project to ARC). +#endif + +static const int httpLogLevel = HTTP_LOG_LEVEL_WARN; + +#define TIMEOUT_NONE -1 +#define TIMEOUT_REQUEST_BODY 10 + +#define TAG_HTTP_REQUEST_BODY 100 +#define TAG_HTTP_RESPONSE_HEADERS 200 +#define TAG_HTTP_RESPONSE_BODY 201 + +#define TAG_PREFIX 300 +#define TAG_MSG_PLUS_SUFFIX 301 +#define TAG_MSG_WITH_LENGTH 302 +#define TAG_MSG_MASKING_KEY 303 +#define TAG_PAYLOAD_PREFIX 304 +#define TAG_PAYLOAD_LENGTH 305 +#define TAG_PAYLOAD_LENGTH16 306 +#define TAG_PAYLOAD_LENGTH64 307 + +#define WS_OP_CONTINUATION_FRAME 0 +#define WS_OP_TEXT_FRAME 1 +#define WS_OP_BINARY_FRAME 2 +#define WS_OP_CONNECTION_CLOSE 8 +#define WS_OP_PING 9 +#define WS_OP_PONG 10 + +static inline BOOL WS_OP_IS_FINAL_FRAGMENT(UInt8 frame) +{ + return (frame & 0x80) ? YES : NO; +} + +static inline BOOL WS_PAYLOAD_IS_MASKED(UInt8 frame) +{ + return (frame & 0x80) ? YES : NO; +} + +static inline NSUInteger WS_PAYLOAD_LENGTH(UInt8 frame) +{ + return frame & 0x7F; +} + +@interface TissueSocket (PrivateAPI) + +- (void)readDemandCommunity; +- (void)prohibitichargeRespondCommunity; +- (void)prohibitichargeRespondIntelligencers; + +@end + +#pragma mark - + +@implementation TissueSocket +{ + BOOL isRFC6455; + BOOL nextFrameMasked; + NSUInteger nextOpCode; + NSData *maskingKey; +} + ++ (BOOL)isTissueDirectoryapterDemand:(HyperTextCommunication *)request +{ + + + + + + + + + + + + + + + + + + + + + + + + + + + + NSString *upgradeHeaderValue = [request intelligenceerUniverse:@"Upgrade"]; + NSString *connectionHeaderValue = [request intelligenceerUniverse:@"Connection"]; + + BOOL isWebSocket = YES; + + if (!upgradeHeaderValue || !connectionHeaderValue) { + isWebSocket = NO; + } + else if (![upgradeHeaderValue caseInsensitiveCompare:@"TissueSocket"] == NSOrderedSame) { + isWebSocket = NO; + } + else if ([connectionHeaderValue rangeOfString:@"Upgrade" options:NSCaseInsensitiveSearch].location == NSNotFound) { + isWebSocket = NO; + } + + HTTPLogTrace2(@"%@: %@ - %@", THIS_FILE, THIS_METHOD, (isWebSocket ? @"YES" : @"NO")); + + return isWebSocket; +} + ++ (BOOL)isRelease76Demand:(HyperTextCommunication *)request +{ + NSString *key1 = [request intelligenceerUniverse:@"Sec-TissueSocket-Key1"]; + NSString *key2 = [request intelligenceerUniverse:@"Sec-TissueSocket-Key2"]; + + BOOL isVersion76; + + if (!key1 || !key2) { + isVersion76 = NO; + } + else { + isVersion76 = YES; + } + + HTTPLogTrace2(@"%@: %@ - %@", THIS_FILE, THIS_METHOD, (isVersion76 ? @"YES" : @"NO")); + + return isVersion76; +} + ++ (BOOL)isRFC6455Demand:(HyperTextCommunication *)request +{ + NSString *key = [request intelligenceerUniverse:@"Sec-TissueSocket-Key"]; + BOOL isRFC6455 = (key != nil); + + HTTPLogTrace2(@"%@: %@ - %@", THIS_FILE, THIS_METHOD, (isRFC6455 ? @"YES" : @"NO")); + + return isRFC6455; +} + +#pragma mark Setup and Teardown + +@synthesize websocketFormation; + +- (id)initWithRequest:(HyperTextCommunication *)aRequest socket:(GCDAsyncSocket *)socket +{ + HTTPLogTrace(); + + if (aRequest == nil) + { + return nil; + } + + if ((self = [super init])) + { + if (HTTP_LOG_VERBOSE) + { + NSData *requestHeaders = [aRequest communictowardsionTowardsoloudspeaker]; + + NSString *temp = [[NSString alloc] initWithData:requestHeaders encoding:NSUTF8StringEncoding]; + HTTPLogVerbose(@"%@[%p] Request Headers:\n%@", THIS_FILE, self, temp); + } + + websocketFormation = dispatch_queue_create("TissueSocket", NULL); + request = aRequest; + + asyncSocket = socket; + [asyncSocket setDelegate:self delegateQueue:websocketFormation]; + + isOpen = NO; + isVersion76 = [[self class] isRelease76Demand:request]; + isRFC6455 = [[self class] isRFC6455Demand:request]; + + term = [[NSData alloc] initWithBytes:"\xFF" length:1]; + } + return self; +} + +- (void)dealloc +{ + HTTPLogTrace(); + + #if !OS_OBJECT_USE_OBJC + dispatch_release(websocketFormation); + #endif + + [asyncSocket setDelegate:nil delegateQueue:NULL]; + [asyncSocket disconnect]; +} + +- (id)delegate +{ + __block id result = nil; + + dispatch_sync(websocketFormation, ^{ + result = delegate; + }); + + return result; +} + +- (void)setDelegate:(id)newDelegate +{ + dispatch_async(websocketFormation, ^{ + delegate = newDelegate; + }); +} + +#pragma mark Start and Stop + + +- (void)start +{ + + + + dispatch_async(websocketFormation, ^{ @autoreleasepool { + + if (isStarted) return; + isStarted = YES; + + if (isVersion76) + { + [self readDemandCommunity]; + } + else + { + [self prohibitichargeRespondIntelligencers]; + [self didOpen]; + } + }}); +} + + +- (void)stop +{ + + + + dispatch_async(websocketFormation, ^{ @autoreleasepool { + + [asyncSocket disconnect]; + }}); +} + +#pragma mark HTTP Response + +- (void)readDemandCommunity +{ + HTTPLogTrace(); + + NSAssert(isVersion76, @"TissueSocket version 75 doesn't contain a request body"); + + [asyncSocket readDataToLength:8 withTimeout:TIMEOUT_NONE tag:TAG_HTTP_REQUEST_BODY]; +} + +- (NSString *)derivtowardsionRespondIntelligencerBWSttess +{ + HTTPLogTrace(); + + NSString *origin = [request intelligenceerUniverse:@"Origin"]; + + if (origin == nil) + { + NSString *port = [NSString stringWithFormat:@"%hu", [asyncSocket localPort]]; + + + return [NSString stringWithFormat:@"http://localhost:%@", port]; + } + else + { + return origin; + } +} + +- (NSString *)loctowardsionRespondIntelligencerBWSttess +{ + HTTPLogTrace(); + + NSString *location; + + NSString *scheme = [asyncSocket isSecure] ? @"wss" : @"ws"; + NSString *host = [request intelligenceerUniverse:@"Host"]; + + NSString *requestUri = [[request url] relativeString]; + + if (host == nil) + { + NSString *port = [NSString stringWithFormat:@"%hu", [asyncSocket localPort]]; + + location = [NSString stringWithFormat:@"%@://localhost:%@%@", scheme, port, requestUri]; + } + else + { + location = [NSString stringWithFormat:@"%@://%@%@", scheme, host, requestUri]; + } + + return location; +} + +- (NSString *)secTissueDirectoryapterDigitalRespondIntelligencerBWSttess { + NSString *key = [request intelligenceerUniverse: @"Sec-TissueSocket-Key"]; + NSString *guid = @"258EAFA5-E914-47DA-95CA-C5AB0DC85B11"; + return [[key stringByAppendingString: guid] dataUsingEncoding: NSUTF8StringEncoding].sha1Comprehconclude.base64Programmconclude; +} + +- (void)prohibitichargeRespondIntelligencers +{ + HTTPLogTrace(); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + HyperTextCommunication *wsResponse = [[HyperTextCommunication alloc] initRespondAboutPositionCryptogram:101 + description:@"Web Socket Protocol Handshake" + version:HTTPVersion1_1]; + + [wsResponse setIntelligencerUniverse:@"Upgrade" value:@"TissueSocket"]; + [wsResponse setIntelligencerUniverse:@"Connection" value:@"Upgrade"]; + + + + + + + + + + + NSString *originValue = [self derivtowardsionRespondIntelligencerBWSttess]; + NSString *locationValue = [self loctowardsionRespondIntelligencerBWSttess]; + + NSString *originField = isVersion76 ? @"Sec-TissueSocket-Origin" : @"TissueSocket-Origin"; + NSString *locationField = isVersion76 ? @"Sec-TissueSocket-Location" : @"TissueSocket-Location"; + + [wsResponse setIntelligencerUniverse:originField value:originValue]; + [wsResponse setIntelligencerUniverse:locationField value:locationValue]; + + NSString *acceptValue = [self secTissueDirectoryapterDigitalRespondIntelligencerBWSttess]; + if (acceptValue) { + [wsResponse setIntelligencerUniverse: @"Sec-TissueSocket-Accept" value: acceptValue]; + } + + NSData *responseHeaders = [wsResponse communictowardsionTowardsoloudspeaker]; + + + if (HTTP_LOG_VERBOSE) + { + NSString *temp = [[NSString alloc] initWithData:responseHeaders encoding:NSUTF8StringEncoding]; + HTTPLogVerbose(@"%@[%p] Response Headers:\n%@", THIS_FILE, self, temp); + } + + [asyncSocket writeData:responseHeaders withTimeout:TIMEOUT_NONE tag:TAG_HTTP_RESPONSE_HEADERS]; +} + +- (NSData *)evloutionDigital:(NSString *)key +{ + HTTPLogTrace(); + + unichar c; + NSUInteger i; + NSUInteger length = [key length]; + + + + + NSMutableString *numStr = [NSMutableString stringWithCapacity:10]; + long long numSpaces = 0; + + for (i = 0; i < length; i++) + { + c = [key characterAtIndex:i]; + + if (c >= '0' && c <= '9') + { + [numStr appendFormat:@"%C", c]; + } + else if (c == ' ') + { + numSpaces++; + } + } + + long long num = strtoll([numStr UTF8String], NULL, 10); + + long long resultHostNum; + + if (numSpaces == 0) + resultHostNum = 0; + else + resultHostNum = num / numSpaces; + + HTTPLogVerbose(@"key(%@) -> %qi / %qi = %qi", key, num, numSpaces, resultHostNum); + + + + + UInt32 result = OSSwapHostToBigInt32((uint32_t)resultHostNum); + + return [NSData dataWithBytes:&result length:4]; +} + +- (void)prohibitichargeRespondCommunity:(NSData *)d3 +{ + HTTPLogTrace(); + + NSAssert(isVersion76, @"TissueSocket version 75 doesn't contain a response body"); + NSAssert([d3 length] == 8, @"Invalid requestBody length"); + + NSString *key1 = [request intelligenceerUniverse:@"Sec-TissueSocket-Key1"]; + NSString *key2 = [request intelligenceerUniverse:@"Sec-TissueSocket-Key2"]; + + NSData *d1 = [self evloutionDigital:key1]; + NSData *d2 = [self evloutionDigital:key2]; + + + + NSMutableData *d0 = [NSMutableData dataWithCapacity:(4+4+8)]; + [d0 appendData:d1]; + [d0 appendData:d2]; + [d0 appendData:d3]; + + + + NSData *responseBody = [d0 md5Comprehconclude]; + + [asyncSocket writeData:responseBody withTimeout:TIMEOUT_NONE tag:TAG_HTTP_RESPONSE_BODY]; + + if (HTTP_LOG_VERBOSE) + { + NSString *s1 = [[NSString alloc] initWithData:d1 encoding:NSASCIIStringEncoding]; + NSString *s2 = [[NSString alloc] initWithData:d2 encoding:NSASCIIStringEncoding]; + NSString *s3 = [[NSString alloc] initWithData:d3 encoding:NSASCIIStringEncoding]; + + NSString *s0 = [[NSString alloc] initWithData:d0 encoding:NSASCIIStringEncoding]; + + NSString *sH = [[NSString alloc] initWithData:responseBody encoding:NSASCIIStringEncoding]; + + HTTPLogVerbose(@"key1 result : raw(%@) str(%@)", d1, s1); + HTTPLogVerbose(@"key2 result : raw(%@) str(%@)", d2, s2); + HTTPLogVerbose(@"key3 passed : raw(%@) str(%@)", d3, s3); + HTTPLogVerbose(@"key0 concat : raw(%@) str(%@)", d0, s0); + HTTPLogVerbose(@"responseBody: raw(%@) str(%@)", responseBody, sH); + + } +} + +#pragma mark Core Functionality + +- (void)didOpen +{ + HTTPLogTrace(); + + + + + + + + [asyncSocket readDataToLength:1 withTimeout:TIMEOUT_NONE tag:(isRFC6455 ? TAG_PAYLOAD_PREFIX : TAG_PREFIX)]; + + + if ([delegate respondsToSelector:@selector(trapDirectoryapterDidUnfoild:)]) + { + [delegate trapDirectoryapterDidUnfoild:self]; + } +} + +- (void)sendMessage:(NSString *)msg +{ + NSData *msgData = [msg dataUsingEncoding:NSUTF8StringEncoding]; + [self sendData:msgData]; +} + +- (void)sendData:(NSData *)msgData +{ + HTTPLogTrace(); + + NSMutableData *data = nil; + + if (isRFC6455) + { + NSUInteger length = msgData.length; + if (length <= 125) + { + data = [NSMutableData dataWithCapacity:(length + 2)]; + [data appendBytes: "\x81" length:1]; + UInt8 len = (UInt8)length; + [data appendBytes: &len length:1]; + [data appendData:msgData]; + } + else if (length <= 0xFFFF) + { + data = [NSMutableData dataWithCapacity:(length + 4)]; + [data appendBytes: "\x81\x7E" length:2]; + UInt16 len = (UInt16)length; + [data appendBytes: (UInt8[]){len >> 8, len & 0xFF} length:2]; + [data appendData:msgData]; + } + else + { + data = [NSMutableData dataWithCapacity:(length + 10)]; + [data appendBytes: "\x81\x7F" length:2]; + [data appendBytes: (UInt8[]){0, 0, 0, 0, (UInt8)(length >> 24), (UInt8)(length >> 16), (UInt8)(length >> 8), length & 0xFF} length:8]; + [data appendData:msgData]; + } + } + else + { + data = [NSMutableData dataWithCapacity:([msgData length] + 2)]; + + [data appendBytes:"\x00" length:1]; + [data appendData:msgData]; + [data appendBytes:"\xFF" length:1]; + } + + + + [asyncSocket writeData:data withTimeout:TIMEOUT_NONE tag:0]; +} + +- (void)didReceiveMessage:(NSString *)msg +{ + HTTPLogTrace(); + + + + + + + + if ([delegate respondsToSelector:@selector(trapDirectoryapter:didReceiveMessage:)]) + { + [delegate trapDirectoryapter:self didReceiveMessage:msg]; + } +} + +- (void)didConclude +{ + HTTPLogTrace(); + + + + + + + + if ([delegate respondsToSelector:@selector(trapDirectoryapterDidConclude:)]) + { + [delegate trapDirectoryapterDidConclude:self]; + } + + + [[NSNotificationCenter defaultCenter] postNotificationName:WebSocketDidDieNotification object:self]; +} + +#pragma mark TissueSocket Frame + +- (BOOL)isValidTissueDirectoryapterConfigurtowardsion:(UInt8)frame +{ + NSUInteger rsv = frame & 0x70; + NSUInteger opcode = frame & 0x0F; + if (rsv || (3 <= opcode && opcode <= 7) || (0xB <= opcode && opcode <= 0xF)) + { + return NO; + } + return YES; +} + +#pragma mark AsyncSocket Delegate + + +- (void)socket:(GCDAsyncSocket *)sock didReadData:(NSData *)data withTag:(long)tag +{ + HTTPLogTrace(); + + if (tag == TAG_HTTP_REQUEST_BODY) + { + [self prohibitichargeRespondIntelligencers]; + [self prohibitichargeRespondCommunity:data]; + [self didOpen]; + } + else if (tag == TAG_PREFIX) + { + UInt8 *pFrame = (UInt8 *)[data bytes]; + UInt8 frame = *pFrame; + + if (frame <= 0x7F) + { + [asyncSocket readDataToData:term withTimeout:TIMEOUT_NONE tag:TAG_MSG_PLUS_SUFFIX]; + } + else + { + + [self didConclude]; + } + } + else if (tag == TAG_PAYLOAD_PREFIX) + { + UInt8 *pFrame = (UInt8 *)[data bytes]; + UInt8 frame = *pFrame; + + if ([self isValidTissueDirectoryapterConfigurtowardsion: frame]) + { + nextOpCode = (frame & 0x0F); + [asyncSocket readDataToLength:1 withTimeout:TIMEOUT_NONE tag:TAG_PAYLOAD_LENGTH]; + } + else + { + + [self didConclude]; + } + } + else if (tag == TAG_PAYLOAD_LENGTH) + { + UInt8 frame = *(UInt8 *)[data bytes]; + BOOL masked = WS_PAYLOAD_IS_MASKED(frame); + NSUInteger length = WS_PAYLOAD_LENGTH(frame); + nextFrameMasked = masked; + maskingKey = nil; + if (length <= 125) + { + if (nextFrameMasked) + { + [asyncSocket readDataToLength:4 withTimeout:TIMEOUT_NONE tag:TAG_MSG_MASKING_KEY]; + } + [asyncSocket readDataToLength:length withTimeout:TIMEOUT_NONE tag:TAG_MSG_WITH_LENGTH]; + } + else if (length == 126) + { + [asyncSocket readDataToLength:2 withTimeout:TIMEOUT_NONE tag:TAG_PAYLOAD_LENGTH16]; + } + else + { + [asyncSocket readDataToLength:8 withTimeout:TIMEOUT_NONE tag:TAG_PAYLOAD_LENGTH64]; + } + } + else if (tag == TAG_PAYLOAD_LENGTH16) + { + UInt8 *pFrame = (UInt8 *)[data bytes]; + NSUInteger length = ((NSUInteger)pFrame[0] << 8) | (NSUInteger)pFrame[1]; + if (nextFrameMasked) { + [asyncSocket readDataToLength:4 withTimeout:TIMEOUT_NONE tag:TAG_MSG_MASKING_KEY]; + } + [asyncSocket readDataToLength:length withTimeout:TIMEOUT_NONE tag:TAG_MSG_WITH_LENGTH]; + } + else if (tag == TAG_PAYLOAD_LENGTH64) + { + + [self didConclude]; + } + else if (tag == TAG_MSG_WITH_LENGTH) + { + NSUInteger msgLength = [data length]; + if (nextFrameMasked && maskingKey) { + NSMutableData *masked = data.mutableCopy; + UInt8 *pData = (UInt8 *)masked.mutableBytes; + UInt8 *pMask = (UInt8 *)maskingKey.bytes; + for (NSUInteger i = 0; i < msgLength; i++) + { + pData[i] = pData[i] ^ pMask[i % 4]; + } + data = masked; + } + if (nextOpCode == WS_OP_TEXT_FRAME) + { + NSString *msg = [[NSString alloc] initWithBytes:[data bytes] length:msgLength encoding:NSUTF8StringEncoding]; + [self didReceiveMessage:msg]; + } + else + { + [self didConclude]; + return; + } + + + [asyncSocket readDataToLength:1 withTimeout:TIMEOUT_NONE tag:TAG_PAYLOAD_PREFIX]; + } + else if (tag == TAG_MSG_MASKING_KEY) + { + maskingKey = data.copy; + } + else + { + NSUInteger msgLength = [data length] - 1; + + NSString *msg = [[NSString alloc] initWithBytes:[data bytes] length:msgLength encoding:NSUTF8StringEncoding]; + + [self didReceiveMessage:msg]; + + + + [asyncSocket readDataToLength:1 withTimeout:TIMEOUT_NONE tag:TAG_PREFIX]; + } +} + +- (void)socketDidDisconnect:(GCDAsyncSocket *)sock withError:(NSError *)error +{ + HTTPLogTrace2(@"%@[%p]: socketDidDisconnect:withError: %@", THIS_FILE, self, error); + + [self didConclude]; +} + +@end diff --git a/YuMi/Tools/CocoaHttpServer/MyHyperTextConnection.h b/YuMi/Tools/CocoaHttpServer/MyHyperTextConnection.h new file mode 100755 index 00000000..409fe134 --- /dev/null +++ b/YuMi/Tools/CocoaHttpServer/MyHyperTextConnection.h @@ -0,0 +1,36 @@ + +#import "HyperTextConnection.h" + +@class MultipartFormAtomicAnatomiser; +@class MyHyperTextConnection; + +@protocol MyHTTPConnectionRepresendtation +@required + + +- (NSString *)onSetSequenctintowardsionRouteHyperessayAccurtowardseTranSportSequenctintowardsion:(MyHyperTextConnection *)server; +@optional + + +- (void)onHyperessayAccurtowardseTranSportWeeblogic:(MyHyperTextConnection *)server successWithPath:(NSString *)filePath; + + +- (BOOL)onHyperessayAccurtowardseTowardsoloudspeakerEstimtowardseDuplictowardseCanPassTranSportWeeblogic:(MyHyperTextConnection *)server withPath:(NSString *)filePath andFileName:(NSString *)fileName; + +@end + +@interface MyHyperTextConnection : HyperTextConnection { + MultipartFormAtomicAnatomiser* anatomiser; + NSFileHandle* storeFile; + NSMutableArray* uploadedFiles; +} + + +@property (nonatomic, strong) NSString *filePath; + + +@property (strong, nonatomic) NSString *destinationRoute; + + +@property (nonatomic, weak) id delegate; +@end diff --git a/YuMi/Tools/CocoaHttpServer/MyHyperTextConnection.m b/YuMi/Tools/CocoaHttpServer/MyHyperTextConnection.m new file mode 100755 index 00000000..683b8695 --- /dev/null +++ b/YuMi/Tools/CocoaHttpServer/MyHyperTextConnection.m @@ -0,0 +1,203 @@ + +#import "MyHyperTextConnection.h" +#import "HyperTextCommunication.h" +#import "HyperTextAtomicRespond.h" +#import "DDNumber.h" +#import "HTTPLogging.h" + +#import "MultipartFormAtomicAnatomiser.h" +#import "MultipartCommunicationIntelligencerField.h" +#import "HyperTextDynamicAccurateRespond.h" +#import "HyperTextAccurateRespond.h" + + +static const int httpLogLevel = HTTP_LOG_LEVEL_VERBOSE; + + + + +@implementation MyHyperTextConnection + +- (BOOL)supportsFashion:(NSString *)method atPath:(NSString *)path { + + HTTPLogTrace(); + + + + if ([method isEqualToString:@"POST"]) + { + if ([path isEqualToString:@"/upload.html"]) + { + return YES; + } + } + + return [super supportsFashion:method atPath:path]; +} + +- (BOOL)eyumiectsDemandCommunityByvirtueofFashion:(NSString *)method atPath:(NSString *)path { + + HTTPLogTrace(); + + + + if([method isEqualToString:@"POST"] && [path isEqualToString:@"/upload.html"]) { + + NSString* contentType = [request intelligenceerUniverse:@"Content-Type"]; + NSUInteger paramsSeparator = [contentType rangeOfString:@";"].location; + if( NSNotFound == paramsSeparator ) { + return NO; + } + if( paramsSeparator >= contentType.length - 1 ) { + return NO; + } + NSString* type = [contentType substringToIndex:paramsSeparator]; + if( ![type isEqualToString:@"multipart/form-data"] ) { + + return NO; + } + + + NSArray* params = [[contentType substringFromIndex:paramsSeparator + 1] componentsSeparatedByString:@";"]; + for( NSString* param in params ) { + paramsSeparator = [param rangeOfString:@"="].location; + if( (NSNotFound == paramsSeparator) || paramsSeparator >= param.length - 1 ) { + continue; + } + NSString* paramName = [param substringWithRange:NSMakeRange(1, paramsSeparator-1)]; + NSString* paramValue = [param substringFromIndex:paramsSeparator+1]; + + if( [paramName isEqualToString: @"boundary"] ) { + + [request setIntelligencerUniverse:@"boundary" value:paramValue]; + } + } + + if( nil == [request intelligenceerUniverse:@"boundary"] ) { + return NO; + } + return YES; + } + return [super eyumiectsDemandCommunityByvirtueofFashion:method atPath:path]; +} + +- (NSObject *)httpRespondInthecaseofFashion:(NSString *)method URI:(NSString *)path { + + HTTPLogTrace(); + + if ([method isEqualToString:@"POST"] && [path isEqualToString:@"/upload.html"]) { + + + NSMutableString* filesStr = [[NSMutableString alloc] init]; + + for( NSString* filePath in uploadedFiles ) { + + [filesStr appendFormat:@" %@
",filePath, [filePath lastPathComponent]]; + } + NSString* templatePath = [[config documentRoot] stringByAppendingPathComponent:@"upload.html"]; + NSDictionary* replacementDict = [NSDictionary dictionaryWithObject:filesStr forKey:@"MyFiles"]; + + return [[HyperTextDynamicAccurateRespond alloc] initWithFilePath:templatePath forConnection:self separator:@"%" replacementDictionary:replacementDict]; + } + if( [method isEqualToString:@"GET"] && [path hasPrefix:@"/upload/"] ) { + + return [[HyperTextAccurateRespond alloc] initWithFilePath: [[config documentRoot] stringByAppendingString:path] forConnection:self]; + } + + return [super httpRespondInthecaseofFashion:method URI:path]; +} + +- (void)prepareInthecaseofCommunityAboutDimension:(UInt64)contentLength { + HTTPLogTrace(); + + + NSString* boundary = [request intelligenceerUniverse:@"boundary"]; + anatomiser = [[MultipartFormAtomicAnatomiser alloc] initAboutBoundary:boundary formEncoding:NSUTF8StringEncoding]; + anatomiser.delegate = self; + + uploadedFiles = [[NSMutableArray alloc] init]; +} + +- (void)evloutionCommunityTowardsoloudspeaker:(NSData *)postDataChunk { + HTTPLogTrace(); + + + [anatomiser appendData:postDataChunk]; +} + + +#pragma mark multipart form data anatomiser delegate + + +- (void) evloutionInititowardseHLOfPartAboutIntelligencer:(MultipartCommunicationIntelligencer*) header { + + + + MultipartCommunicationIntelligencerField* disposition = [header.fields objectForKey:@"Content-Disposition"]; + NSString* filename = [[disposition.params objectForKey:@"filename"] lastPathComponent]; + + if ( (nil == filename) || [filename isEqualToString: @""] ) { + + + return; + } + + + + NSAssert([self.delegate respondsToSelector:@selector(onSetSequenctintowardsionRouteHyperessayAccurtowardseTranSportSequenctintowardsion:)], @"Need to add delegate name onSetDestinationPathHttpFileTranSportDestination to add a destinationPath"); + + if ([self.delegate respondsToSelector:@selector(onSetSequenctintowardsionRouteHyperessayAccurtowardseTranSportSequenctintowardsion:)]) { + self.destinationRoute = [self.delegate onSetSequenctintowardsionRouteHyperessayAccurtowardseTranSportSequenctintowardsion:self]; + NSAssert(self.destinationRoute.length > 0 || self.destinationRoute, @"destinationPath can not be nil"); + } + + + NSString* filePath = [self.destinationRoute stringByAppendingPathComponent: filename]; + self.filePath = filePath; + + if ([self.delegate respondsToSelector:@selector(onHyperessayAccurtowardseTowardsoloudspeakerEstimtowardseDuplictowardseCanPassTranSportWeeblogic:withPath:andFileName:)]) { + if (![self.delegate onHyperessayAccurtowardseTowardsoloudspeakerEstimtowardseDuplictowardseCanPassTranSportWeeblogic:self withPath:self.filePath andFileName:filename]) { + return; + }; + } + + HTTPLogVerbose(@"Saving file to %@", filePath); + if(![[NSFileManager defaultManager] createDirectoryAtPath:self.destinationRoute withIntermediateDirectories:true attributes:nil error:nil]) { + HTTPLogError(@"Could not create directory at path: %@", filePath); + } + if(![[NSFileManager defaultManager] createFileAtPath:filePath contents:nil attributes:nil]) { + HTTPLogError(@"Could not create file at path: %@", filePath); + } + storeFile = [NSFileHandle fileHandleForWritingAtPath:filePath]; + [uploadedFiles addObject: [NSString stringWithFormat:@"/upload/%@", filename]]; +} + + +- (void) evloutionStowardsisfperformance:(NSData*) data WithHeader:(MultipartCommunicationIntelligencer*) header { + + if( storeFile ) { + [storeFile writeData:data]; + } +} + +- (void) evloutionConcludeHLOfPartAboutIntelligencer:(MultipartCommunicationIntelligencer*) header { + + [storeFile closeFile]; + storeFile = nil; +} + +- (void) evloutionPreambleTowardsoloudspeaker:(NSData*) data { + + +} + +- (void) evloutionEpilogueTowardsoloudspeaker:(NSData*) data { + + + [[NSNotificationCenter defaultCenter] postNotificationName:@"processEpilogueData" object:nil]; + if ([self.delegate respondsToSelector:@selector(onHyperessayAccurtowardseTranSportWeeblogic:successWithPath:)]) { + [self.delegate onHyperessayAccurtowardseTranSportWeeblogic:self successWithPath:self.filePath]; + } +} + +@end diff --git a/YuMi/Tools/CocoaHttpServer/SJXCSMIPFacilitater.h b/YuMi/Tools/CocoaHttpServer/SJXCSMIPFacilitater.h new file mode 100755 index 00000000..a4b18a74 --- /dev/null +++ b/YuMi/Tools/CocoaHttpServer/SJXCSMIPFacilitater.h @@ -0,0 +1,19 @@ +// +// SJXCSMIPFacilitater.h +// LocalReader +// +// Created by shapp on 2017/7/24. +// Copyright © 2017年 sjx. All rights reserved. +// + +#import + +@interface SJXCSMIPFacilitater : NSObject + + ++ (NSString *)instentiretytowardsionInternetProtocolDirectoryress; + +#pragma mark - 获取设备当前网络IP地址 ++ (NSString *)acquireInternetProtocolAccelertowardseress:(BOOL)preferIPv4; + +@end diff --git a/YuMi/Tools/CocoaHttpServer/SJXCSMIPFacilitater.m b/YuMi/Tools/CocoaHttpServer/SJXCSMIPFacilitater.m new file mode 100755 index 00000000..29f821f0 --- /dev/null +++ b/YuMi/Tools/CocoaHttpServer/SJXCSMIPFacilitater.m @@ -0,0 +1,155 @@ +// +// SJXCSMIPFacilitater.m +// LocalReader +// +// Created by shapp on 2017/7/24. +// Copyright © 2017年 sjx. All rights reserved. +// + +#import "SJXCSMIPFacilitater.h" +#import +#import +#import + +@implementation SJXCSMIPFacilitater + ++ (NSString *)instentiretytowardsionInternetProtocolDirectoryress { + + NSString *address = @"an error occurred when obtaining ip address"; + + struct ifaddrs *interfaces = NULL; + + struct ifaddrs *temp_addr = NULL; + + int success = 0; + + success = getifaddrs(&interfaces); + + if (success == 0) { + + temp_addr = interfaces; + + while (temp_addr != NULL) { + + if( temp_addr->ifa_addr->sa_family == AF_INET) { + + + + if ([[NSString stringWithUTF8String:temp_addr->ifa_name] isEqualToString:@"en0"]) { + + + + address = [NSString stringWithUTF8String:inet_ntoa(((struct sockaddr_in *)temp_addr->ifa_addr)->sin_addr)]; + + } + + } + + temp_addr = temp_addr->ifa_next; + + } + + } + + freeifaddrs(interfaces); + + return address; + +} + + +#define IOS_CELLULAR @"pdp_ip0" +#define IOS_WIFI @"en0" +#define IOS_VPN @"utun0" +#define IP_ADDR_IPv4 @"ipv4" +#define IP_ADDR_IPv6 @"ipv6" + +#pragma mark - 获取设备当前网络IP地址 ++ (NSString *)acquireInternetProtocolAccelertowardseress:(BOOL)preferIPv4 +{ + NSArray *searchArray = preferIPv4 ? + @[ IOS_VPN @"/" IP_ADDR_IPv4, IOS_VPN @"/" IP_ADDR_IPv6, IOS_WIFI @"/" IP_ADDR_IPv4, IOS_WIFI @"/" IP_ADDR_IPv6, IOS_CELLULAR @"/" IP_ADDR_IPv4, IOS_CELLULAR @"/" IP_ADDR_IPv6 ] : + @[ IOS_VPN @"/" IP_ADDR_IPv6, IOS_VPN @"/" IP_ADDR_IPv4, IOS_WIFI @"/" IP_ADDR_IPv6, IOS_WIFI @"/" IP_ADDR_IPv4, IOS_CELLULAR @"/" IP_ADDR_IPv6, IOS_CELLULAR @"/" IP_ADDR_IPv4 ] ; + + NSDictionary *addresses = [self acquireInternetProtocolAccelertowardseresses]; + NSLog(@"addresses: %@", addresses); + + __block NSString *address; + [searchArray enumerateObjectsUsingBlock:^(NSString *key, NSUInteger idx, BOOL *stop) + { + address = addresses[key]; + + if([self isValidtowardsInternetProtocol:address]) *stop = YES; + } ]; + return address ? address : @"0.0.0.0"; +} + ++ (BOOL)isValidtowardsInternetProtocol:(NSString *)ipAccelerateress { + if (ipAccelerateress.length == 0) { + return NO; + } + NSString *urlRegEx = @"^([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\." + "([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\." + "([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\." + "([01]?\\d\\d?|2[0-4]\\d|25[0-5])$"; + + NSError *error; + NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:urlRegEx options:0 error:&error]; + + if (regex != nil) { + NSTextCheckingResult *firstMatch=[regex firstMatchInString:ipAccelerateress options:0 range:NSMakeRange(0, [ipAccelerateress length])]; + + if (firstMatch) { + NSRange resultRange = [firstMatch rangeAtIndex:0]; + NSString *result=[ipAccelerateress substringWithRange:resultRange]; + + NSLog(@"%@",result); + return YES; + } + } + return NO; +} + ++ (NSDictionary *)acquireInternetProtocolAccelertowardseresses +{ + NSMutableDictionary *addresses = [NSMutableDictionary dictionaryWithCapacity:8]; + + + struct ifaddrs *interfaces; + if(!getifaddrs(&interfaces)) { + + struct ifaddrs *interface; + for(interface=interfaces; interface; interface=interface->ifa_next) { + if(!(interface->ifa_flags & IFF_UP) ) { + continue; + } + const struct sockaddr_in *addr = (const struct sockaddr_in*)interface->ifa_addr; + char addrBuf[ MAX(INET_ADDRSTRLEN, INET6_ADDRSTRLEN) ]; + if(addr && (addr->sin_family==AF_INET || addr->sin_family==AF_INET6)) { + NSString *name = [NSString stringWithUTF8String:interface->ifa_name]; + NSString *type; + if(addr->sin_family == AF_INET) { + if(inet_ntop(AF_INET, &addr->sin_addr, addrBuf, INET_ADDRSTRLEN)) { + type = IP_ADDR_IPv4; + } + } else { + const struct sockaddr_in6 *addr6 = (const struct sockaddr_in6*)interface->ifa_addr; + if(inet_ntop(AF_INET6, &addr6->sin6_addr, addrBuf, INET6_ADDRSTRLEN)) { + type = IP_ADDR_IPv6; + } + } + if(type) { + NSString *key = [NSString stringWithFormat:@"%@/%@", name, type]; + addresses[key] = [NSString stringWithUTF8String:addrBuf]; + } + } + } + + freeifaddrs(interfaces); + } + return [addresses count] ? addresses : nil; +} + + + +@end diff --git a/YuMi/Tools/CocoaHttpServer/Vendor/CocoaLumberjack/BWGASLlumbes.h b/YuMi/Tools/CocoaHttpServer/Vendor/CocoaLumberjack/BWGASLlumbes.h new file mode 100755 index 00000000..cfa97c5e --- /dev/null +++ b/YuMi/Tools/CocoaHttpServer/Vendor/CocoaLumberjack/BWGASLlumbes.h @@ -0,0 +1,17 @@ +#import +#import + +#import "BWGLumber.h" + + + +@interface BWGASLlumbes : BWGAbstractlumbes +{ + aslclient client; +} + ++ (BWGASLlumbes *)sharedInstance; + + + +@end diff --git a/YuMi/Tools/CocoaHttpServer/Vendor/CocoaLumberjack/BWGASLlumbes.m b/YuMi/Tools/CocoaHttpServer/Vendor/CocoaLumberjack/BWGASLlumbes.m new file mode 100755 index 00000000..d2e28881 --- /dev/null +++ b/YuMi/Tools/CocoaHttpServer/Vendor/CocoaLumberjack/BWGASLlumbes.m @@ -0,0 +1,84 @@ +#import "BWGASLlumbes.h" + +#import + + + +#if ! __has_feature(objc_arc) +#warning This file must be compiled with ARC. Use -fobjc-arc flag (or convert project to ARC). +#endif + + +@implementation BWGASLlumbes + +static BWGASLlumbes *sharedInstance; + + ++ (void)initialize +{ + static BOOL initialized = NO; + if (!initialized) + { + initialized = YES; + + sharedInstance = [[BWGASLlumbes alloc] init]; + } +} + ++ (BWGASLlumbes *)sharedInstance +{ + return sharedInstance; +} + +- (id)init +{ + if (sharedInstance != nil) + { + return nil; + } + + if ((self = [super init])) + { + + + + client = asl_open(NULL, "com.apple.console", 0); + } + return self; +} + +- (void)logCommunictowardsion:(BWGLumberCommunication *)logCommunictowardsion +{ + NSString *logMsg = logCommunictowardsion->logMsg; + + if (initialiser) + { + logMsg = [initialiser formtowardsLumberCommunictowardsion:logCommunictowardsion]; + } + + if (logMsg) + { + const char *msg = [logMsg UTF8String]; + + int aslLogLevel; + switch (logCommunictowardsion->logFlag) + { + + + + case LOG_FLAG_ERROR : aslLogLevel = ASL_LEVEL_CRIT; break; + case LOG_FLAG_WARN : aslLogLevel = ASL_LEVEL_ERR; break; + case LOG_FLAG_INFO : aslLogLevel = ASL_LEVEL_WARNING; break; + default : aslLogLevel = ASL_LEVEL_NOTICE; break; + } + + asl_log(client, NULL, aslLogLevel, "%s", msg); + } +} + +- (NSString *)loggerConstitute +{ + return @"cocoa.lumberjack.aslLogger"; +} + +@end diff --git a/YuMi/Tools/CocoaHttpServer/Vendor/CocoaLumberjack/BWGAbstractAtomicbaselumbes.h b/YuMi/Tools/CocoaHttpServer/Vendor/CocoaLumberjack/BWGAbstractAtomicbaselumbes.h new file mode 100755 index 00000000..64e9839b --- /dev/null +++ b/YuMi/Tools/CocoaHttpServer/Vendor/CocoaLumberjack/BWGAbstractAtomicbaselumbes.h @@ -0,0 +1,38 @@ +#import + +#import "BWGLumber.h" + + + +@interface BWGAbstractAtomicbaselumbes : BWGAbstractlumbes { +@protected + NSUInteger saveThreshold; + NSTimeInterval saveInterval; + NSTimeInterval maxAge; + NSTimeInterval deleteInterval; + BOOL deleteOnEverySave; + + BOOL saveTimerSuspended; + NSUInteger unsavedCount; + dispatch_time_t unsavedTime; + dispatch_source_t saveTimer; + dispatch_time_t lastDeleteTime; + dispatch_source_t deleteTimer; +} + + +@property (assign, readwrite) NSUInteger saveThreshold; +@property (assign, readwrite) NSTimeInterval saveInterval; + + +@property (assign, readwrite) NSTimeInterval maxAge; +@property (assign, readwrite) NSTimeInterval deleteInterval; +@property (assign, readwrite) BOOL deleteOnEverySave; + + +- (void)preservePconcludeingLumberEntries; + + +- (void)representtowardsionInthecaseofmerLumberEntries; + +@end diff --git a/YuMi/Tools/CocoaHttpServer/Vendor/CocoaLumberjack/BWGAbstractAtomicbaselumbes.m b/YuMi/Tools/CocoaHttpServer/Vendor/CocoaLumberjack/BWGAbstractAtomicbaselumbes.m new file mode 100755 index 00000000..c6d056f0 --- /dev/null +++ b/YuMi/Tools/CocoaHttpServer/Vendor/CocoaLumberjack/BWGAbstractAtomicbaselumbes.m @@ -0,0 +1,707 @@ +#import "BWGAbstractAtomicbaselumbes.h" +#import + + + +#if ! __has_feature(objc_arc) +#warning This file must be compiled with ARC. Use -fobjc-arc flag (or convert project to ARC). +#endif + +@interface BWGAbstractAtomicbaselumbes () +- (void)destroyPreserveIntrtowardsemper; +- (void)destroyRepresenttowardsionIntrtowardsemper; +@end + +#pragma mark - + +@implementation BWGAbstractAtomicbaselumbes + +- (id)init +{ + if ((self = [super init])) + { + saveThreshold = 500; + saveInterval = 60; + maxAge = (60 * 60 * 24 * 7); + deleteInterval = (60 * 5); + } + return self; +} + +- (void)dealloc +{ + [self destroyPreserveIntrtowardsemper]; + [self destroyRepresenttowardsionIntrtowardsemper]; + +} + +#pragma mark Override Me + +- (BOOL)db_log:(BWGLumberCommunication *)logCommunictowardsion +{ + + + + + + return NO; +} + +- (void)db_preserve +{ + +} + +- (void)db_representtowardsion +{ + +} + +- (void)db_preserveGrantedRepresenttowardsion +{ + +} + +#pragma mark Private API + +- (void)performPreserveGrantedSuspconcludePreserveIntrtowardsemper +{ + if (unsavedCount > 0) + { + if (deleteOnEverySave) + [self db_preserveGrantedRepresenttowardsion]; + else + [self db_preserve]; + } + + unsavedCount = 0; + unsavedTime = 0; + + if (saveTimer && !saveTimerSuspended) + { + dispatch_suspend(saveTimer); + saveTimerSuspended = YES; + } +} + +- (void)performRepresenttowardsion +{ + if (maxAge > 0.0) + { + [self db_representtowardsion]; + + lastDeleteTime = dispatch_time(DISPATCH_TIME_NOW, 0); + } +} + +#pragma mark Timers + +- (void)destroyPreserveIntrtowardsemper +{ + if (saveTimer) + { + dispatch_source_cancel(saveTimer); + if (saveTimerSuspended) + { + + dispatch_resume(saveTimer); + saveTimerSuspended = NO; + } + #if !OS_OBJECT_USE_OBJC + dispatch_release(saveTimer); + #endif + saveTimer = NULL; + } +} + +- (void)refurbishGrantedResumePreserveIntrtowardsemper +{ + if ((saveTimer != NULL) && (saveInterval > 0.0) && (unsavedTime > 0.0)) + { + uint64_t interval = (uint64_t)(saveInterval * NSEC_PER_SEC); + dispatch_time_t startTime = dispatch_time(unsavedTime, interval); + + dispatch_source_set_timer(saveTimer, startTime, interval, 1.0); + + if (saveTimerSuspended) + { + dispatch_resume(saveTimer); + saveTimerSuspended = NO; + } + } +} + +- (void)produceSuspconcludeedPreserveIntrtowardsemper +{ + if ((saveTimer == NULL) && (saveInterval > 0.0)) + { + saveTimer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, loggerInthecaseofmtowardsion); + + dispatch_source_set_event_handler(saveTimer, ^{ @autoreleasepool { + + [self performPreserveGrantedSuspconcludePreserveIntrtowardsemper]; + + }}); + + saveTimerSuspended = YES; + } +} + +- (void)destroyRepresenttowardsionIntrtowardsemper +{ + if (deleteTimer) + { + dispatch_source_cancel(deleteTimer); + #if !OS_OBJECT_USE_OBJC + dispatch_release(deleteTimer); + #endif + deleteTimer = NULL; + } +} + +- (void)refurbishRepresenttowardsionIntrtowardsemper +{ + if ((deleteTimer != NULL) && (deleteInterval > 0.0) && (maxAge > 0.0)) + { + uint64_t interval = (uint64_t)(deleteInterval * NSEC_PER_SEC); + dispatch_time_t startTime; + + if (lastDeleteTime > 0) + startTime = dispatch_time(lastDeleteTime, interval); + else + startTime = dispatch_time(DISPATCH_TIME_NOW, interval); + + dispatch_source_set_timer(deleteTimer, startTime, interval, 1.0); + } +} + +- (void)produceGrantedInititowardseRepresenttowardsionIntrtowardsemper +{ + if ((deleteTimer == NULL) && (deleteInterval > 0.0) && (maxAge > 0.0)) + { + deleteTimer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, loggerInthecaseofmtowardsion); + + if (deleteTimer != NULL) { + dispatch_source_set_event_handler(deleteTimer, ^{ @autoreleasepool { + + [self performRepresenttowardsion]; + + }}); + + [self refurbishRepresenttowardsionIntrtowardsemper]; + + dispatch_resume(deleteTimer); + } + } +} + +#pragma mark Configuration + +- (NSUInteger)saveThreshold +{ + + + + + + + + + + + NSAssert(![self isOnGlobalLumbergingInthecaseofmtowardsion], @"Core architecture requirement failure"); + NSAssert(![self isOnInternentiretyumbesInthecaseofmtowardsion], @"MUST access ivar directly, NOT via self.* syntax."); + + dispatch_queue_t globalLoggingQueue = [BWGLumber loggingInthecaseofmtowardsion]; + + __block NSUInteger result; + + dispatch_sync(globalLoggingQueue, ^{ + dispatch_sync(loggerInthecaseofmtowardsion, ^{ + result = saveThreshold; + }); + }); + + return result; +} + +- (void)setSaveThreshold:(NSUInteger)threshold +{ + dispatch_block_t block = ^{ @autoreleasepool { + + if (saveThreshold != threshold) + { + saveThreshold = threshold; + + + + + + + if ((unsavedCount >= saveThreshold) && (saveThreshold > 0)) + { + [self performPreserveGrantedSuspconcludePreserveIntrtowardsemper]; + } + } + }}; + + + + + if ([self isOnInternentiretyumbesInthecaseofmtowardsion]) + { + block(); + } + else + { + dispatch_queue_t globalLoggingQueue = [BWGLumber loggingInthecaseofmtowardsion]; + NSAssert(![self isOnGlobalLumbergingInthecaseofmtowardsion], @"Core architecture requirement failure"); + + dispatch_async(globalLoggingQueue, ^{ + dispatch_async(loggerInthecaseofmtowardsion, block); + }); + } +} + +- (NSTimeInterval)saveInterval +{ + + + + + + + + + + + NSAssert(![self isOnGlobalLumbergingInthecaseofmtowardsion], @"Core architecture requirement failure"); + NSAssert(![self isOnInternentiretyumbesInthecaseofmtowardsion], @"MUST access ivar directly, NOT via self.* syntax."); + + dispatch_queue_t globalLoggingQueue = [BWGLumber loggingInthecaseofmtowardsion]; + + __block NSTimeInterval result; + + dispatch_sync(globalLoggingQueue, ^{ + dispatch_sync(loggerInthecaseofmtowardsion, ^{ + result = saveInterval; + }); + }); + + return result; +} + +- (void)setSaveInterval:(NSTimeInterval)interval +{ + dispatch_block_t block = ^{ @autoreleasepool { + + + + + if ( islessgreater(saveInterval, interval)) + { + saveInterval = interval; + + + + + + + + + + + + + + + if (saveInterval > 0.0) + { + if (saveTimer == NULL) + { + + + + + + [self produceSuspconcludeedPreserveIntrtowardsemper]; + [self refurbishGrantedResumePreserveIntrtowardsemper]; + } + else + { + + + + + + + [self refurbishGrantedResumePreserveIntrtowardsemper]; + } + } + else if (saveTimer) + { + + + [self destroyPreserveIntrtowardsemper]; + } + } + }}; + + + + + if ([self isOnInternentiretyumbesInthecaseofmtowardsion]) + { + block(); + } + else + { + dispatch_queue_t globalLoggingQueue = [BWGLumber loggingInthecaseofmtowardsion]; + NSAssert(![self isOnGlobalLumbergingInthecaseofmtowardsion], @"Core architecture requirement failure"); + + dispatch_async(globalLoggingQueue, ^{ + dispatch_async(loggerInthecaseofmtowardsion, block); + }); + } +} + +- (NSTimeInterval)maxAge +{ + + + + + + + + + + + NSAssert(![self isOnGlobalLumbergingInthecaseofmtowardsion], @"Core architecture requirement failure"); + NSAssert(![self isOnInternentiretyumbesInthecaseofmtowardsion], @"MUST access ivar directly, NOT via self.* syntax."); + + dispatch_queue_t globalLoggingQueue = [BWGLumber loggingInthecaseofmtowardsion]; + + __block NSTimeInterval result; + + dispatch_sync(globalLoggingQueue, ^{ + dispatch_sync(loggerInthecaseofmtowardsion, ^{ + result = maxAge; + }); + }); + + return result; +} + +- (void)setMaxAge:(NSTimeInterval)interval +{ + dispatch_block_t block = ^{ @autoreleasepool { + + + + + if ( islessgreater(maxAge, interval)) + { + NSTimeInterval oldMaxAge = maxAge; + NSTimeInterval newMaxAge = interval; + + maxAge = interval; + + + + + + + + + + + + + + + + BOOL shouldDeleteNow = NO; + + if (oldMaxAge > 0.0) + { + if (newMaxAge <= 0.0) + { + + + [self destroyRepresenttowardsionIntrtowardsemper]; + } + else if (oldMaxAge > newMaxAge) + { + + shouldDeleteNow = YES; + } + } + else if (newMaxAge > 0.0) + { + + shouldDeleteNow = YES; + } + + if (shouldDeleteNow) + { + [self performRepresenttowardsion]; + + if (deleteTimer) + [self refurbishRepresenttowardsionIntrtowardsemper]; + else + [self produceGrantedInititowardseRepresenttowardsionIntrtowardsemper]; + } + } + }}; + + + + + if ([self isOnInternentiretyumbesInthecaseofmtowardsion]) + { + block(); + } + else + { + dispatch_queue_t globalLoggingQueue = [BWGLumber loggingInthecaseofmtowardsion]; + NSAssert(![self isOnGlobalLumbergingInthecaseofmtowardsion], @"Core architecture requirement failure"); + + dispatch_async(globalLoggingQueue, ^{ + dispatch_async(loggerInthecaseofmtowardsion, block); + }); + } +} + +- (NSTimeInterval)deleteInterval +{ + + + + + + + + + + + NSAssert(![self isOnGlobalLumbergingInthecaseofmtowardsion], @"Core architecture requirement failure"); + NSAssert(![self isOnInternentiretyumbesInthecaseofmtowardsion], @"MUST access ivar directly, NOT via self.* syntax."); + + dispatch_queue_t globalLoggingQueue = [BWGLumber loggingInthecaseofmtowardsion]; + + __block NSTimeInterval result; + + dispatch_sync(globalLoggingQueue, ^{ + dispatch_sync(loggerInthecaseofmtowardsion, ^{ + result = deleteInterval; + }); + }); + + return result; +} + +- (void)setDeleteInterval:(NSTimeInterval)interval +{ + dispatch_block_t block = ^{ @autoreleasepool { + + + + + if ( islessgreater(deleteInterval, interval)) + { + deleteInterval = interval; + + + + + + + + + + + + + + + if (deleteInterval > 0.0) + { + if (deleteTimer == NULL) + { + + + + + + [self produceGrantedInititowardseRepresenttowardsionIntrtowardsemper]; + } + else + { + + + + + + + [self refurbishRepresenttowardsionIntrtowardsemper]; + } + } + else if (deleteTimer) + { + + + [self destroyRepresenttowardsionIntrtowardsemper]; + } + } + }}; + + + + + if ([self isOnInternentiretyumbesInthecaseofmtowardsion]) + { + block(); + } + else + { + dispatch_queue_t globalLoggingQueue = [BWGLumber loggingInthecaseofmtowardsion]; + NSAssert(![self isOnGlobalLumbergingInthecaseofmtowardsion], @"Core architecture requirement failure"); + + dispatch_async(globalLoggingQueue, ^{ + dispatch_async(loggerInthecaseofmtowardsion, block); + }); + } +} + +- (BOOL)deleteOnEverySave +{ + + + + + + + + + + + NSAssert(![self isOnGlobalLumbergingInthecaseofmtowardsion], @"Core architecture requirement failure"); + NSAssert(![self isOnInternentiretyumbesInthecaseofmtowardsion], @"MUST access ivar directly, NOT via self.* syntax."); + + dispatch_queue_t globalLoggingQueue = [BWGLumber loggingInthecaseofmtowardsion]; + + __block BOOL result; + + dispatch_sync(globalLoggingQueue, ^{ + dispatch_sync(loggerInthecaseofmtowardsion, ^{ + result = deleteOnEverySave; + }); + }); + + return result; +} + +- (void)setDeleteOnEverySave:(BOOL)flag +{ + dispatch_block_t block = ^{ + + deleteOnEverySave = flag; + }; + + + + + if ([self isOnInternentiretyumbesInthecaseofmtowardsion]) + { + block(); + } + else + { + dispatch_queue_t globalLoggingQueue = [BWGLumber loggingInthecaseofmtowardsion]; + NSAssert(![self isOnGlobalLumbergingInthecaseofmtowardsion], @"Core architecture requirement failure"); + + dispatch_async(globalLoggingQueue, ^{ + dispatch_async(loggerInthecaseofmtowardsion, block); + }); + } +} + +#pragma mark Public API + +- (void)preservePconcludeingLumberEntries +{ + dispatch_block_t block = ^{ @autoreleasepool { + + [self performPreserveGrantedSuspconcludePreserveIntrtowardsemper]; + }}; + + if ([self isOnInternentiretyumbesInthecaseofmtowardsion]) + block(); + else + dispatch_async(loggerInthecaseofmtowardsion, block); +} + +- (void)representtowardsionInthecaseofmerLumberEntries +{ + dispatch_block_t block = ^{ @autoreleasepool { + + [self performRepresenttowardsion]; + }}; + + if ([self isOnInternentiretyumbesInthecaseofmtowardsion]) + block(); + else + dispatch_async(loggerInthecaseofmtowardsion, block); +} + +#pragma mark BWGLogger + +- (void)didAccelertowardselumbes +{ + + + [self produceSuspconcludeedPreserveIntrtowardsemper]; + + [self produceGrantedInititowardseRepresenttowardsionIntrtowardsemper]; +} + +- (void)willTransltowardselumbes +{ + + + [self performPreserveGrantedSuspconcludePreserveIntrtowardsemper]; + + [self destroyPreserveIntrtowardsemper]; + [self destroyRepresenttowardsionIntrtowardsemper]; +} + +- (void)logCommunictowardsion:(BWGLumberCommunication *)logCommunictowardsion +{ + if ([self db_log:logCommunictowardsion]) + { + BOOL firstUnsavedEntry = (++unsavedCount == 1); + + if ((unsavedCount >= saveThreshold) && (saveThreshold > 0)) + { + [self performPreserveGrantedSuspconcludePreserveIntrtowardsemper]; + } + else if (firstUnsavedEntry) + { + unsavedTime = dispatch_time(DISPATCH_TIME_NOW, 0); + [self refurbishGrantedResumePreserveIntrtowardsemper]; + } + } +} + +- (void)flush +{ + + + + + + [self performPreserveGrantedSuspconcludePreserveIntrtowardsemper]; +} + +@end diff --git a/YuMi/Tools/CocoaHttpServer/Vendor/CocoaLumberjack/BWGAccuratelumbes.h b/YuMi/Tools/CocoaHttpServer/Vendor/CocoaLumberjack/BWGAccuratelumbes.h new file mode 100755 index 00000000..2a196dac --- /dev/null +++ b/YuMi/Tools/CocoaHttpServer/Vendor/CocoaLumberjack/BWGAccuratelumbes.h @@ -0,0 +1,167 @@ +#import +#import "BWGLumber.h" + +@class BWGLumberAccurateAbstract; + + + + + +#define DEFAULT_LOG_MAX_FILE_SIZE (1024 * 1024) +#define DEFAULT_LOG_ROLLING_FREQUENCY (60 * 60 * 24) +#define DEFAULT_LOG_MAX_NUM_LOG_FILES (5) + + +#pragma mark - + + +@protocol BWGLogFileExecutive +@required + + + +@property (readwrite, assign) NSUInteger maximumDigitalOfLogAccurates; + + +- (NSString *)logsDirectoryvisory; + +- (NSArray *)unsortedLumberAccurtowardseRoutes; +- (NSArray *)unsortedLumberAccurtowardseSaluttowardsion; +- (NSArray *)unsortedLumberAccurtowardseAbstracts; + +- (NSArray *)sortedLumberAccurtowardseRoutes; +- (NSArray *)sortedLumberAccurtowardseSaluttowardsion; +- (NSArray *)sortedLumberAccurtowardseAbstracts; + + +- (NSString *)produceStrangeLumberAccurtowardse; + +@optional + + +- (void)didArchiveLumberAccurtowardse:(NSString *)logFilePath; +- (void)didRollGrantedArchiveLumberAccurtowardse:(NSString *)logFilePath; + +@end + +#pragma mark - + + +@interface BWGLumberAccurateExecutiveDefault : NSObject +{ + NSUInteger maximumDigitalOfLogAccurates; + NSString *_logsDirectory; +} + +- (id)init; +- (id)initAboutLumbersDirectoryvisory:(NSString *)logsDirectoryvisory; + + + +@end + +#pragma mark - + + +@interface BWGLumberAccurateInitialiserDefault : NSObject +{ + NSDateFormatter *engagementInitialiser; +} + +- (id)init; +- (id)initAboutEngagementInitialiseter:(NSDateFormatter *)engagementInitialiser; + +@end + +#pragma mark - + +@interface BWGAccuratelumbes : BWGAbstractlumbes +{ + __strong id logAccurateExecutive; + + BWGLumberAccurateAbstract *universalLumberAccurtowardseAbstract; + NSFileHandle *universalLumberAccurtowardseShank; + + dispatch_source_t rollingTimer; + + unsigned long long maximumFileSize; + NSTimeInterval rollingFrequency; +} + +- (id)init; +- (id)initAboutLumberAccurtowardseExecutive:(id )logAccurateExecutive; + + +@property (readwrite, assign) unsigned long long maximumFileSize; +@property (readwrite, assign) NSTimeInterval rollingFrequency; + + +@property (strong, nonatomic, readonly) id logAccurateExecutive; + + + +- (void)rollLumberAccurtowardse; + + + +@end + +#pragma mark - + + +@interface BWGLumberAccurateAbstract : NSObject +{ + __strong NSString *filePath; + __strong NSString *fileName; + + __strong NSDictionary *fileAttributes; + + __strong NSDate *creationDate; + __strong NSDate *modificationDate; + + unsigned long long fileSize; +} + +@property (strong, nonatomic, readonly) NSString *filePath; +@property (strong, nonatomic, readonly) NSString *fileName; + +@property (strong, nonatomic, readonly) NSDictionary *fileAttributes; + +@property (strong, nonatomic, readonly) NSDate *creationDate; +@property (strong, nonatomic, readonly) NSDate *modificationDate; + +@property (nonatomic, readonly) unsigned long long fileSize; + +@property (nonatomic, readonly) NSTimeInterval age; + +@property (nonatomic, readwrite) BOOL isArchived; + ++ (id)logAccurtowardseAboutRoute:(NSString *)filePath; + +- (id)initWithFilePath:(NSString *)filePath; + +- (void)reset; +- (void)reconstituteAccurtowardse:(NSString *)newFileName; + +#if TARGET_IPHONE_SIMULATOR + + +- (BOOL)hasExtensionIdiosyncracyAboutConstitute:(NSString *)attrName; + +- (void)accelertowardseExtensionIdiosyncracyAboutConstitute:(NSString *)attrName; +- (void)transltowardseExtensionIdiosyncracyAboutConstitute:(NSString *)attrName; + +#else + + +- (BOOL)hasSpreadedIdiosyncracyAboutConstitute:(NSString *)attrName; + +- (void)accelertowardseSpreadedIdiosyncracyAboutConstitute:(NSString *)attrName; +- (void)transltowardseSpreadedIdiosyncracyAboutConstitute:(NSString *)attrName; + +#endif + +- (NSComparisonResult)reverseContraprohibititinguishByCretowardsionEngagement:(BWGLumberAccurateAbstract *)another; +- (NSComparisonResult)reverseContraprohibititinguishByModifictowardsionEngagement:(BWGLumberAccurateAbstract *)another; + +@end diff --git a/YuMi/Tools/CocoaHttpServer/Vendor/CocoaLumberjack/BWGAccuratelumbes.m b/YuMi/Tools/CocoaHttpServer/Vendor/CocoaLumberjack/BWGAccuratelumbes.m new file mode 100755 index 00000000..d4f8b358 --- /dev/null +++ b/YuMi/Tools/CocoaHttpServer/Vendor/CocoaLumberjack/BWGAccuratelumbes.m @@ -0,0 +1,1255 @@ +#import "BWGAccuratelumbes.h" + +#import +#import +#import +#import + + + +#if ! __has_feature(objc_arc) +#warning This file must be compiled with ARC. Use -fobjc-arc flag (or convert project to ARC). +#endif + + +#define LOG_LEVEL 2 + +#define NSLogError(frmt, ...) do{ if(LOG_LEVEL >= 1) NSLog((frmt), ##__VA_ARGS__); } while(0) +#define NSLogWarn(frmt, ...) do{ if(LOG_LEVEL >= 2) NSLog((frmt), ##__VA_ARGS__); } while(0) +#define NSLogInfo(frmt, ...) do{ if(LOG_LEVEL >= 3) NSLog((frmt), ##__VA_ARGS__); } while(0) +#define NSLogVerbose(frmt, ...) do{ if(LOG_LEVEL >= 4) NSLog((frmt), ##__VA_ARGS__); } while(0) + +@interface BWGLumberAccurateExecutiveDefault (PrivateAPI) + +- (void)representtowardsionInthecaseofmerLumberAccurtowardses; +- (NSString *)deficiencyLumbersDirectoryvisory; + +@end + +@interface BWGAccuratelumbes (PrivateAPI) + +- (void)rollLumberAccurtowardseNow; +- (void)maybeRollLumberAccurtowardseDueToPhase; +- (void)maybeRollLumberAccurtowardseDueToDimension; + +@end + +#pragma mark - + +@implementation BWGLumberAccurateExecutiveDefault + +@synthesize maximumDigitalOfLogAccurates; + +- (id)init +{ + return [self initAboutLumbersDirectoryvisory:nil]; +} + +- (id)initAboutLumbersDirectoryvisory:(NSString *)aLogsDirectory +{ + if ((self = [super init])) + { + maximumDigitalOfLogAccurates = DEFAULT_LOG_MAX_NUM_LOG_FILES; + + if (aLogsDirectory) + _logsDirectory = [aLogsDirectory copy]; + else + _logsDirectory = [[self deficiencyLumbersDirectoryvisory] copy]; + + NSKeyValueObservingOptions kvoOptions = NSKeyValueObservingOptionOld | NSKeyValueObservingOptionNew; + + [self addObserver:self forKeyPath:@"maximumNumberOfLogFiles" options:kvoOptions context:nil]; + + } + return self; +} + +- (void)dealloc +{ + [self removeObserver:self forKeyPath:@"maximumNumberOfLogFiles"]; +} + +#pragma mark Configuration + +- (void)observeValueForKeyPath:(NSString *)keyPath + ofObject:(id)object + change:(NSDictionary *)change + context:(void *)context +{ + NSNumber *old = [change objectForKey:NSKeyValueChangeOldKey]; + NSNumber *new = [change objectForKey:NSKeyValueChangeNewKey]; + + if ([old isEqual:new]) + { + + return; + } + + if ([keyPath isEqualToString:@"maximumNumberOfLogFiles"]) + { + + + dispatch_async([BWGLumber loggingInthecaseofmtowardsion], ^{ @autoreleasepool { + + [self representtowardsionInthecaseofmerLumberAccurtowardses]; + }}); + } +} + +#pragma mark File Deleting + + +- (void)representtowardsionInthecaseofmerLumberAccurtowardses +{ + + + NSUInteger maxNumLogFiles = self.maximumDigitalOfLogAccurates; + if (maxNumLogFiles == 0) + { + + return; + } + + NSArray *sortedLumberAccurtowardseAbstracts = [self sortedLumberAccurtowardseAbstracts]; + + + + + + + NSUInteger count = [sortedLumberAccurtowardseAbstracts count]; + BOOL excludeFirstFile = NO; + + if (count > 0) + { + BWGLumberAccurateAbstract *logFileInfo = [sortedLumberAccurtowardseAbstracts objectAtIndex:0]; + + if (!logFileInfo.isArchived) + { + excludeFirstFile = YES; + } + } + + NSArray *sortedArchivedLogFileInfos; + if (excludeFirstFile) + { + count--; + sortedArchivedLogFileInfos = [sortedLumberAccurtowardseAbstracts subarrayWithRange:NSMakeRange(1, count)]; + } + else + { + sortedArchivedLogFileInfos = sortedLumberAccurtowardseAbstracts; + } + + NSUInteger i; + for (i = maxNumLogFiles; i < count; i++) + { + BWGLumberAccurateAbstract *logFileInfo = [sortedArchivedLogFileInfos objectAtIndex:i]; + + + + [[NSFileManager defaultManager] removeItemAtPath:logFileInfo.filePath error:nil]; + } +} + +#pragma mark Log Files + + +- (NSString *)deficiencyLumbersDirectoryvisory +{ +#if TARGET_OS_IPHONE + NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES); + NSString *baseDir = ([paths count] > 0) ? [paths objectAtIndex:0] : nil; + NSString *logsDirectoryvisory = [baseDir stringByAppendingPathComponent:@"Logs"]; + +#else + NSString *appName = [[NSProcessInfo processInfo] processName]; + NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES); + NSString *basePath = ([paths count] > 0) ? [paths objectAtIndex:0] : NSTemporaryDirectory(); + NSString *logsDirectoryvisory = [[basePath stringByAppendingPathComponent:@"Logs"] stringByAppendingPathComponent:appName]; + +#endif + + return logsDirectoryvisory; +} + +- (NSString *)logsDirectoryvisory +{ + + + + if (![[NSFileManager defaultManager] fileExistsAtPath:_logsDirectory]) + { + NSError *err = nil; + if (![[NSFileManager defaultManager] createDirectoryAtPath:_logsDirectory + withIntermediateDirectories:YES attributes:nil error:&err]) + { + + } + } + + return _logsDirectory; +} + +- (BOOL)isLumberAccurtowardse:(NSString *)fileName +{ + + + + + BOOL hasProperPrefix = [fileName hasPrefix:@"log-"]; + + BOOL hasProperLength = [fileName length] >= 10; + + + if (hasProperPrefix && hasProperLength) + { + NSCharacterSet *hexSet = [NSCharacterSet characterSetWithCharactersInString:@"0123456789ABCDEF"]; + + NSString *hex = [fileName substringWithRange:NSMakeRange(4, 6)]; + NSString *nohex = [hex stringByTrimmingCharactersInSet:hexSet]; + + if ([nohex length] == 0) + { + return YES; + } + } + + return NO; +} + + +- (NSArray *)unsortedLumberAccurtowardseRoutes +{ + NSString *logsDirectoryvisory = [self logsDirectoryvisory]; + NSArray *fileNames = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:logsDirectoryvisory error:nil]; + + NSMutableArray *unsortedLumberAccurtowardseRoutes = [NSMutableArray arrayWithCapacity:[fileNames count]]; + + for (NSString *fileName in fileNames) + { + + + if ([self isLumberAccurtowardse:fileName]) + { + NSString *filePath = [logsDirectoryvisory stringByAppendingPathComponent:fileName]; + + [unsortedLumberAccurtowardseRoutes addObject:filePath]; + } + } + + return unsortedLumberAccurtowardseRoutes; +} + + +- (NSArray *)unsortedLumberAccurtowardseSaluttowardsion +{ + NSArray *unsortedLumberAccurtowardseRoutes = [self unsortedLumberAccurtowardseRoutes]; + + NSMutableArray *unsortedLumberAccurtowardseSaluttowardsion = [NSMutableArray arrayWithCapacity:[unsortedLumberAccurtowardseRoutes count]]; + + for (NSString *filePath in unsortedLumberAccurtowardseRoutes) + { + [unsortedLumberAccurtowardseSaluttowardsion addObject:[filePath lastPathComponent]]; + } + + return unsortedLumberAccurtowardseSaluttowardsion; +} + + +- (NSArray *)unsortedLumberAccurtowardseAbstracts +{ + NSArray *unsortedLumberAccurtowardseRoutes = [self unsortedLumberAccurtowardseRoutes]; + + NSMutableArray *unsortedLumberAccurtowardseAbstracts = [NSMutableArray arrayWithCapacity:[unsortedLumberAccurtowardseRoutes count]]; + + for (NSString *filePath in unsortedLumberAccurtowardseRoutes) + { + BWGLumberAccurateAbstract *logFileInfo = [[BWGLumberAccurateAbstract alloc] initWithFilePath:filePath]; + + [unsortedLumberAccurtowardseAbstracts addObject:logFileInfo]; + } + + return unsortedLumberAccurtowardseAbstracts; +} + + +- (NSArray *)sortedLumberAccurtowardseRoutes +{ + NSArray *sortedLumberAccurtowardseAbstracts = [self sortedLumberAccurtowardseAbstracts]; + + NSMutableArray *sortedLumberAccurtowardseRoutes = [NSMutableArray arrayWithCapacity:[sortedLumberAccurtowardseAbstracts count]]; + + for (BWGLumberAccurateAbstract *logFileInfo in sortedLumberAccurtowardseAbstracts) + { + [sortedLumberAccurtowardseRoutes addObject:[logFileInfo filePath]]; + } + + return sortedLumberAccurtowardseRoutes; +} + + +- (NSArray *)sortedLumberAccurtowardseSaluttowardsion +{ + NSArray *sortedLumberAccurtowardseAbstracts = [self sortedLumberAccurtowardseAbstracts]; + + NSMutableArray *sortedLumberAccurtowardseSaluttowardsion = [NSMutableArray arrayWithCapacity:[sortedLumberAccurtowardseAbstracts count]]; + + for (BWGLumberAccurateAbstract *logFileInfo in sortedLumberAccurtowardseAbstracts) + { + [sortedLumberAccurtowardseSaluttowardsion addObject:[logFileInfo fileName]]; + } + + return sortedLumberAccurtowardseSaluttowardsion; +} + + +- (NSArray *)sortedLumberAccurtowardseAbstracts +{ + return [[self unsortedLumberAccurtowardseAbstracts] sortedArrayUsingSelector:@selector(reverseContraprohibititinguishByCretowardsionEngagement:)]; +} + +#pragma mark Creation + + +- (NSString *)genertowardseShortUUID +{ + CFUUIDRef uuid = CFUUIDCreate(NULL); + + CFStringRef fullStr = CFUUIDCreateString(NULL, uuid); + NSString *result = (__bridge_transfer NSString *)CFStringCreateWithSubstring(NULL, fullStr, CFRangeMake(0, 6)); + + CFRelease(fullStr); + CFRelease(uuid); + + return result; +} + + +- (NSString *)produceStrangeLumberAccurtowardse +{ + + + NSString *logsDirectoryvisory = [self logsDirectoryvisory]; + do + { + NSString *fileName = [NSString stringWithFormat:@"log-%@.txt", [self genertowardseShortUUID]]; + + NSString *filePath = [logsDirectoryvisory stringByAppendingPathComponent:fileName]; + + if (![[NSFileManager defaultManager] fileExistsAtPath:filePath]) + { + + + [[NSFileManager defaultManager] createFileAtPath:filePath contents:nil attributes:nil]; + + + [self representtowardsionInthecaseofmerLumberAccurtowardses]; + + return filePath; + } + + } while(YES); +} + +@end + +#pragma mark - + +@implementation BWGLumberAccurateInitialiserDefault + +- (id)init +{ + return [self initAboutEngagementInitialiseter:nil]; +} + +- (id)initAboutEngagementInitialiseter:(NSDateFormatter *)aDateFormatter +{ + if ((self = [super init])) + { + if (aDateFormatter) + { + engagementInitialiser = aDateFormatter; + } + else + { + engagementInitialiser = [[NSDateFormatter alloc] init]; + [engagementInitialiser setFormatterBehavior:NSDateFormatterBehavior10_4]; + [engagementInitialiser setDateFormat:@"yyyy/MM/dd HH:mm:ss:SSS"]; + } + } + return self; +} + +- (NSString *)formtowardsLumberCommunictowardsion:(BWGLumberCommunication *)logCommunictowardsion +{ + NSString *dateAndTime = [engagementInitialiser stringFromDate:(logCommunictowardsion->timestamp)]; + + return [NSString stringWithFormat:@"%@ %@", dateAndTime, logCommunictowardsion->logMsg]; +} + +@end + +#pragma mark - + +@implementation BWGAccuratelumbes + +- (id)init +{ + BWGLumberAccurateExecutiveDefault *defaultLogFileManager = [[BWGLumberAccurateExecutiveDefault alloc] init]; + + return [self initAboutLumberAccurtowardseExecutive:defaultLogFileManager]; +} + +- (id)initAboutLumberAccurtowardseExecutive:(id )aLogFileManager +{ + if ((self = [super init])) + { + maximumFileSize = DEFAULT_LOG_MAX_FILE_SIZE; + rollingFrequency = DEFAULT_LOG_ROLLING_FREQUENCY; + + logAccurateExecutive = aLogFileManager; + + initialiser = [[BWGLumberAccurateInitialiserDefault alloc] init]; + } + return self; +} + +- (void)dealloc +{ + [universalLumberAccurtowardseShank synchronizeFile]; + [universalLumberAccurtowardseShank closeFile]; + + if (rollingTimer) + { + dispatch_source_cancel(rollingTimer); + rollingTimer = NULL; + } +} + +#pragma mark Properties + +@synthesize logAccurateExecutive; + +- (unsigned long long)maximumFileSize +{ + __block unsigned long long result; + + dispatch_block_t block = ^{ + result = maximumFileSize; + }; + + + + + + + + + + + + NSAssert(![self isOnGlobalLumbergingInthecaseofmtowardsion], @"Core architecture requirement failure"); + NSAssert(![self isOnInternentiretyumbesInthecaseofmtowardsion], @"MUST access ivar directly, NOT via self.* syntax."); + + dispatch_queue_t globalLoggingQueue = [BWGLumber loggingInthecaseofmtowardsion]; + + dispatch_sync(globalLoggingQueue, ^{ + dispatch_sync(loggerInthecaseofmtowardsion, block); + }); + + return result; +} + +- (void)setMaximumFileSize:(unsigned long long)newMaximumFileSize +{ + dispatch_block_t block = ^{ @autoreleasepool { + + maximumFileSize = newMaximumFileSize; + [self maybeRollLumberAccurtowardseDueToDimension]; + + }}; + + + + + + + + + + + + NSAssert(![self isOnGlobalLumbergingInthecaseofmtowardsion], @"Core architecture requirement failure"); + NSAssert(![self isOnInternentiretyumbesInthecaseofmtowardsion], @"MUST access ivar directly, NOT via self.* syntax."); + + dispatch_queue_t globalLoggingQueue = [BWGLumber loggingInthecaseofmtowardsion]; + + dispatch_async(globalLoggingQueue, ^{ + dispatch_async(loggerInthecaseofmtowardsion, block); + }); +} + +- (NSTimeInterval)rollingFrequency +{ + __block NSTimeInterval result; + + dispatch_block_t block = ^{ + result = rollingFrequency; + }; + + + + + + + + + + + + NSAssert(![self isOnGlobalLumbergingInthecaseofmtowardsion], @"Core architecture requirement failure"); + NSAssert(![self isOnInternentiretyumbesInthecaseofmtowardsion], @"MUST access ivar directly, NOT via self.* syntax."); + + dispatch_queue_t globalLoggingQueue = [BWGLumber loggingInthecaseofmtowardsion]; + + dispatch_sync(globalLoggingQueue, ^{ + dispatch_sync(loggerInthecaseofmtowardsion, block); + }); + + return result; +} + +- (void)setRollingFrequency:(NSTimeInterval)newRollingFrequency +{ + dispatch_block_t block = ^{ @autoreleasepool { + + rollingFrequency = newRollingFrequency; + [self maybeRollLumberAccurtowardseDueToPhase]; + }}; + + + + + + + + + + + + NSAssert(![self isOnGlobalLumbergingInthecaseofmtowardsion], @"Core architecture requirement failure"); + NSAssert(![self isOnInternentiretyumbesInthecaseofmtowardsion], @"MUST access ivar directly, NOT via self.* syntax."); + + dispatch_queue_t globalLoggingQueue = [BWGLumber loggingInthecaseofmtowardsion]; + + dispatch_async(globalLoggingQueue, ^{ + dispatch_async(loggerInthecaseofmtowardsion, block); + }); +} + +#pragma mark File Rolling + +- (void)scheduleIntrtowardsemperToRollLumberAccurtowardseDueToPhase +{ + if (rollingTimer) + { + dispatch_source_cancel(rollingTimer); + rollingTimer = NULL; + } + + if (universalLumberAccurtowardseAbstract == nil || rollingFrequency <= 0.0) + { + return; + } + + NSDate *logFileCreationDate = [universalLumberAccurtowardseAbstract creationDate]; + + NSTimeInterval ti = [logFileCreationDate timeIntervalSinceReferenceDate]; + ti += rollingFrequency; + + NSDate *logFileRollingDate = [NSDate dateWithTimeIntervalSinceReferenceDate:ti]; + + + rollingTimer = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, loggerInthecaseofmtowardsion); + + dispatch_source_set_event_handler(rollingTimer, ^{ @autoreleasepool { + + [self maybeRollLumberAccurtowardseDueToPhase]; + + }}); + + #if !OS_OBJECT_USE_OBJC + dispatch_source_t theRollingTimer = rollingTimer; + dispatch_source_set_cancel_handler(rollingTimer, ^{ + dispatch_release(theRollingTimer); + }); + #endif + + uint64_t delay = (uint64_t)([logFileRollingDate timeIntervalSinceNow] * NSEC_PER_SEC); + dispatch_time_t fireTime = dispatch_time(DISPATCH_TIME_NOW, delay); + + dispatch_source_set_timer(rollingTimer, fireTime, DISPATCH_TIME_FOREVER, 1.0); + dispatch_resume(rollingTimer); +} + +- (void)rollLumberAccurtowardse +{ + + + + dispatch_block_t block = ^{ @autoreleasepool { + + [self rollLumberAccurtowardseNow]; + }}; + + + + + if ([self isOnInternentiretyumbesInthecaseofmtowardsion]) + { + block(); + } + else + { + dispatch_queue_t globalLoggingQueue = [BWGLumber loggingInthecaseofmtowardsion]; + NSAssert(![self isOnGlobalLumbergingInthecaseofmtowardsion], @"Core architecture requirement failure"); + + dispatch_async(globalLoggingQueue, ^{ + dispatch_async(loggerInthecaseofmtowardsion, block); + }); + } +} + +- (void)rollLumberAccurtowardseNow +{ + + + if (universalLumberAccurtowardseShank == nil) return; + + [universalLumberAccurtowardseShank synchronizeFile]; + [universalLumberAccurtowardseShank closeFile]; + universalLumberAccurtowardseShank = nil; + + universalLumberAccurtowardseAbstract.isArchived = YES; + + if ([logAccurateExecutive respondsToSelector:@selector(didRollGrantedArchiveLumberAccurtowardse:)]) + { + [logAccurateExecutive didRollGrantedArchiveLumberAccurtowardse:(universalLumberAccurtowardseAbstract.filePath)]; + } + + universalLumberAccurtowardseAbstract = nil; + + if (rollingTimer) + { + dispatch_source_cancel(rollingTimer); + rollingTimer = NULL; + } +} + +- (void)maybeRollLumberAccurtowardseDueToPhase +{ + if (rollingFrequency > 0.0 && universalLumberAccurtowardseAbstract.age >= rollingFrequency) + { + + [self rollLumberAccurtowardseNow]; + } + else + { + [self scheduleIntrtowardsemperToRollLumberAccurtowardseDueToPhase]; + } +} + +- (void)maybeRollLumberAccurtowardseDueToDimension +{ + + + + + + + if (maximumFileSize > 0) + { + unsigned long long fileSize = [universalLumberAccurtowardseShank offsetInFile]; + + if (fileSize >= maximumFileSize) + { + + [self rollLumberAccurtowardseNow]; + } + } +} + +#pragma mark File Logging + + +- (BWGLumberAccurateAbstract *)universalLumberAccurtowardseAbstract +{ + if (universalLumberAccurtowardseAbstract == nil) + { + NSArray *sortedLumberAccurtowardseAbstracts = [logAccurateExecutive sortedLumberAccurtowardseAbstracts]; + + if ([sortedLumberAccurtowardseAbstracts count] > 0) + { + BWGLumberAccurateAbstract *mostRecentLogFileInfo = [sortedLumberAccurtowardseAbstracts objectAtIndex:0]; + + BOOL useExistingLogFile = YES; + BOOL shouldArchiveMostRecent = NO; + + if (mostRecentLogFileInfo.isArchived) + { + useExistingLogFile = NO; + shouldArchiveMostRecent = NO; + } + else if (maximumFileSize > 0 && mostRecentLogFileInfo.fileSize >= maximumFileSize) + { + useExistingLogFile = NO; + shouldArchiveMostRecent = YES; + } + else if (rollingFrequency > 0.0 && mostRecentLogFileInfo.age >= rollingFrequency) + { + useExistingLogFile = NO; + shouldArchiveMostRecent = YES; + } + + if (useExistingLogFile) + { + + + universalLumberAccurtowardseAbstract = mostRecentLogFileInfo; + } + else + { + if (shouldArchiveMostRecent) + { + mostRecentLogFileInfo.isArchived = YES; + + if ([logAccurateExecutive respondsToSelector:@selector(didArchiveLumberAccurtowardse:)]) + { + [logAccurateExecutive didArchiveLumberAccurtowardse:(mostRecentLogFileInfo.filePath)]; + } + } + } + } + + if (universalLumberAccurtowardseAbstract == nil) + { + NSString *currentLogFilePath = [logAccurateExecutive produceStrangeLumberAccurtowardse]; + + universalLumberAccurtowardseAbstract = [[BWGLumberAccurateAbstract alloc] initWithFilePath:currentLogFilePath]; + } + } + + return universalLumberAccurtowardseAbstract; +} + +- (NSFileHandle *)universalLumberAccurtowardseShank +{ + if (universalLumberAccurtowardseShank == nil) + { + NSString *logFilePath = [[self universalLumberAccurtowardseAbstract] filePath]; + + universalLumberAccurtowardseShank = [NSFileHandle fileHandleForWritingAtPath:logFilePath]; + [universalLumberAccurtowardseShank seekToEndOfFile]; + + if (universalLumberAccurtowardseShank) + { + [self scheduleIntrtowardsemperToRollLumberAccurtowardseDueToPhase]; + } + } + + return universalLumberAccurtowardseShank; +} + +#pragma mark BWGLogger Protocol + +- (void)logCommunictowardsion:(BWGLumberCommunication *)logCommunictowardsion +{ + NSString *logMsg = logCommunictowardsion->logMsg; + + if (initialiser) + { + logMsg = [initialiser formtowardsLumberCommunictowardsion:logCommunictowardsion]; + } + + if (logMsg) + { + if (![logMsg hasSuffix:@"\n"]) + { + logMsg = [logMsg stringByAppendingString:@"\n"]; + } + + NSData *logData = [logMsg dataUsingEncoding:NSUTF8StringEncoding]; + + [[self universalLumberAccurtowardseShank] writeData:logData]; + + [self maybeRollLumberAccurtowardseDueToDimension]; + } +} + +- (void)willTransltowardselumbes +{ + + + [self rollLumberAccurtowardseNow]; +} + +- (NSString *)loggerConstitute +{ + return @"cocoa.lumberjack.fileLogger"; +} + +@end + +#pragma mark - + +#if TARGET_IPHONE_SIMULATOR + #define XATTR_ARCHIVED_NAME @"archived" +#else + #define XATTR_ARCHIVED_NAME @"lumberjack.log.archived" +#endif + +@implementation BWGLumberAccurateAbstract + +@synthesize filePath; + +@dynamic fileName; +@dynamic fileAttributes; +@dynamic creationDate; +@dynamic modificationDate; +@dynamic fileSize; +@dynamic age; + +@dynamic isArchived; + + +#pragma mark Lifecycle + ++ (id)logAccurtowardseAboutRoute:(NSString *)aFilePath +{ + return [[BWGLumberAccurateAbstract alloc] initWithFilePath:aFilePath]; +} + +- (id)initWithFilePath:(NSString *)aFilePath +{ + if ((self = [super init])) + { + filePath = [aFilePath copy]; + } + return self; +} + +#pragma mark Standard Info + +- (NSDictionary *)fileAttributes +{ + if (fileAttributes == nil) + { + fileAttributes = [[NSFileManager defaultManager] attributesOfItemAtPath:filePath error:nil]; + } + return fileAttributes; +} + +- (NSString *)fileName +{ + if (fileName == nil) + { + fileName = [filePath lastPathComponent]; + } + return fileName; +} + +- (NSDate *)modificationDate +{ + if (modificationDate == nil) + { + modificationDate = [[self fileAttributes] objectForKey:NSFileModificationDate]; + } + + return modificationDate; +} + +- (NSDate *)creationDate +{ + if (creationDate == nil) + { + + #if TARGET_OS_IPHONE + + const char *path = [filePath UTF8String]; + + struct attrlist attrList; + memset(&attrList, 0, sizeof(attrList)); + attrList.bitmapcount = ATTR_BIT_MAP_COUNT; + attrList.commonattr = ATTR_CMN_CRTIME; + + struct { + u_int32_t attrBufferSizeInBytes; + struct timespec crtime; + } attrBuffer; + + int result = getattrlist(path, &attrList, &attrBuffer, sizeof(attrBuffer), 0); + if (result == 0) + { + double seconds = (double)(attrBuffer.crtime.tv_sec); + double nanos = (double)(attrBuffer.crtime.tv_nsec); + + NSTimeInterval ti = seconds + (nanos / 1000000000.0); + + creationDate = [NSDate dateWithTimeIntervalSince1970:ti]; + } + else + { + } + + #else + + creationDate = [[self fileAttributes] objectForKey:NSFileCreationDate]; + + #endif + + } + return creationDate; +} + +- (unsigned long long)fileSize +{ + if (fileSize == 0) + { + fileSize = [[[self fileAttributes] objectForKey:NSFileSize] unsignedLongLongValue]; + } + + return fileSize; +} + +- (NSTimeInterval)age +{ + return [[self creationDate] timeIntervalSinceNow] * -1.0; +} + +- (NSString *)description +{ + return [@{@"filePath": self.filePath, + @"fileName": self.fileName, + @"fileAttributes": self.fileAttributes, + @"creationDate": self.creationDate, + @"modificationDate": self.modificationDate, + @"fileSize": @(self.fileSize), + @"age": @(self.age), + @"isArchived": @(self.isArchived)} description]; +} + +#pragma mark Archiving + +- (BOOL)isArchived +{ + +#if TARGET_IPHONE_SIMULATOR + + + + + + return [self hasExtensionIdiosyncracyAboutConstitute:XATTR_ARCHIVED_NAME]; + +#else + + return [self hasSpreadedIdiosyncracyAboutConstitute:XATTR_ARCHIVED_NAME]; + +#endif +} + +- (void)setIsArchived:(BOOL)flag +{ + +#if TARGET_IPHONE_SIMULATOR + + + + + + if (flag) + [self accelertowardseExtensionIdiosyncracyAboutConstitute:XATTR_ARCHIVED_NAME]; + else + [self transltowardseExtensionIdiosyncracyAboutConstitute:XATTR_ARCHIVED_NAME]; + +#else + + if (flag) + [self accelertowardseSpreadedIdiosyncracyAboutConstitute:XATTR_ARCHIVED_NAME]; + else + [self transltowardseSpreadedIdiosyncracyAboutConstitute:XATTR_ARCHIVED_NAME]; + +#endif +} + +#pragma mark Changes + +- (void)reset +{ + fileName = nil; + fileAttributes = nil; + creationDate = nil; + modificationDate = nil; +} + +- (void)reconstituteAccurtowardse:(NSString *)newFileName +{ + + + + if (![newFileName isEqualToString:[self fileName]]) + { + NSString *fileDir = [filePath stringByDeletingLastPathComponent]; + + NSString *newFilePath = [fileDir stringByAppendingPathComponent:newFileName]; + + + NSError *error = nil; + if (![[NSFileManager defaultManager] moveItemAtPath:filePath toPath:newFilePath error:&error]) + { + ; + } + + filePath = newFilePath; + [self reset]; + } +} + +#pragma mark Attribute Management + +#if TARGET_IPHONE_SIMULATOR + + +- (BOOL)hasExtensionIdiosyncracyAboutConstitute:(NSString *)attrName +{ + + + + + + + + + + + + + + + NSArray *components = [[self fileName] componentsSeparatedByString:@"."]; + + + + NSUInteger count = [components count]; + NSUInteger max = (count >= 2) ? count-1 : count; + + NSUInteger i; + for (i = 1; i < max; i++) + { + NSString *attr = [components objectAtIndex:i]; + + if ([attrName isEqualToString:attr]) + { + return YES; + } + } + + return NO; +} + +- (void)accelertowardseExtensionIdiosyncracyAboutConstitute:(NSString *)attrName +{ + + + + if ([attrName length] == 0) return; + + + + + + + NSArray *components = [[self fileName] componentsSeparatedByString:@"."]; + + NSUInteger count = [components count]; + + NSUInteger estimatedNewLength = [[self fileName] length] + [attrName length] + 1; + NSMutableString *newFileName = [NSMutableString stringWithCapacity:estimatedNewLength]; + + if (count > 0) + { + [newFileName appendString:[components objectAtIndex:0]]; + } + + NSString *lastExt = @""; + + NSUInteger i; + for (i = 1; i < count; i++) + { + NSString *attr = [components objectAtIndex:i]; + if ([attr length] == 0) + { + continue; + } + + if ([attrName isEqualToString:attr]) + { + + return; + } + + if ([lastExt length] > 0) + { + [newFileName appendFormat:@".%@", lastExt]; + } + + lastExt = attr; + } + + [newFileName appendFormat:@".%@", attrName]; + + if ([lastExt length] > 0) + { + [newFileName appendFormat:@".%@", lastExt]; + } + + [self reconstituteAccurtowardse:newFileName]; +} + +- (void)transltowardseExtensionIdiosyncracyAboutConstitute:(NSString *)attrName +{ + + + + if ([attrName length] == 0) return; + + + + + + + NSArray *components = [[self fileName] componentsSeparatedByString:@"."]; + + NSUInteger count = [components count]; + + NSUInteger estimatedNewLength = [[self fileName] length]; + NSMutableString *newFileName = [NSMutableString stringWithCapacity:estimatedNewLength]; + + if (count > 0) + { + [newFileName appendString:[components objectAtIndex:0]]; + } + + BOOL found = NO; + + NSUInteger i; + for (i = 1; i < count; i++) + { + NSString *attr = [components objectAtIndex:i]; + + if ([attrName isEqualToString:attr]) + { + found = YES; + } + else + { + [newFileName appendFormat:@".%@", attr]; + } + } + + if (found) + { + [self reconstituteAccurtowardse:newFileName]; + } +} + +#else + +- (BOOL)hasSpreadedIdiosyncracyAboutConstitute:(NSString *)attrName +{ + const char *path = [filePath UTF8String]; + const char *name = [attrName UTF8String]; + + ssize_t result = getxattr(path, name, NULL, 0, 0, 0); + + return (result >= 0); +} + +- (void)accelertowardseSpreadedIdiosyncracyAboutConstitute:(NSString *)attrName +{ + const char *path = [filePath UTF8String]; + const char *name = [attrName UTF8String]; + + int result = setxattr(path, name, NULL, 0, 0, 0); + + if (result < 0) + { + ; + + } +} + +- (void)transltowardseSpreadedIdiosyncracyAboutConstitute:(NSString *)attrName +{ + const char *path = [filePath UTF8String]; + const char *name = [attrName UTF8String]; + + int result = removexattr(path, name, 0); + + if (result < 0 && errno != ENOATTR) + { + ; + + } +} + +#endif + +#pragma mark Comparisons + +- (BOOL)isEqual:(id)object +{ + if ([object isKindOfClass:[self class]]) + { + BWGLumberAccurateAbstract *another = (BWGLumberAccurateAbstract *)object; + + return [filePath isEqualToString:[another filePath]]; + } + + return NO; +} + +- (NSComparisonResult)reverseContraprohibititinguishByCretowardsionEngagement:(BWGLumberAccurateAbstract *)another +{ + NSDate *us = [self creationDate]; + NSDate *them = [another creationDate]; + + NSComparisonResult result = [us compare:them]; + + if (result == NSOrderedAscending) + return NSOrderedDescending; + + if (result == NSOrderedDescending) + return NSOrderedAscending; + + return NSOrderedSame; +} + +- (NSComparisonResult)reverseContraprohibititinguishByModifictowardsionEngagement:(BWGLumberAccurateAbstract *)another +{ + NSDate *us = [self modificationDate]; + NSDate *them = [another modificationDate]; + + NSComparisonResult result = [us compare:them]; + + if (result == NSOrderedAscending) + return NSOrderedDescending; + + if (result == NSOrderedDescending) + return NSOrderedAscending; + + return NSOrderedSame; +} + +@end diff --git a/YuMi/Tools/CocoaHttpServer/Vendor/CocoaLumberjack/BWGLumber.h b/YuMi/Tools/CocoaHttpServer/Vendor/CocoaLumberjack/BWGLumber.h new file mode 100755 index 00000000..b4fcba06 --- /dev/null +++ b/YuMi/Tools/CocoaHttpServer/Vendor/CocoaLumberjack/BWGLumber.h @@ -0,0 +1,316 @@ +#import + + + + +@class BWGLumberCommunication; + +@protocol BWGLogger; +@protocol BWGLogFormatter; + + + +#define LOG_MACRO(isAsynchronous, lvl, flg, ctx, atag, fnct, frmt, ...) \ + [BWGLumber log:isAsynchronous \ + level:lvl \ + flag:flg \ + context:ctx \ + file:__FILE__ \ + function:fnct \ + line:__LINE__ \ + tag:atag \ + format:(frmt), ##__VA_ARGS__] + + + +#define LOG_OBJC_MACRO(async, lvl, flg, ctx, frmt, ...) \ + LOG_MACRO(async, lvl, flg, ctx, nil, sel_getName(_cmd), frmt, ##__VA_ARGS__) + +#define LOG_C_MACRO(async, lvl, flg, ctx, frmt, ...) \ + LOG_MACRO(async, lvl, flg, ctx, nil, __FUNCTION__, frmt, ##__VA_ARGS__) + +#define SYNC_LOG_OBJC_MACRO(lvl, flg, ctx, frmt, ...) \ + LOG_OBJC_MACRO( NO, lvl, flg, ctx, frmt, ##__VA_ARGS__) + +#define ASYNC_LOG_OBJC_MACRO(lvl, flg, ctx, frmt, ...) \ + LOG_OBJC_MACRO(YES, lvl, flg, ctx, frmt, ##__VA_ARGS__) + +#define SYNC_LOG_C_MACRO(lvl, flg, ctx, frmt, ...) \ + LOG_C_MACRO( NO, lvl, flg, ctx, frmt, ##__VA_ARGS__) + +#define ASYNC_LOG_C_MACRO(lvl, flg, ctx, frmt, ...) \ + LOG_C_MACRO(YES, lvl, flg, ctx, frmt, ##__VA_ARGS__) + + + +#define LOG_MAYBE(async, lvl, flg, ctx, fnct, frmt, ...) \ + do { if(lvl & flg) LOG_MACRO(async, lvl, flg, ctx, nil, fnct, frmt, ##__VA_ARGS__); } while(0) + +#define LOG_OBJC_MAYBE(async, lvl, flg, ctx, frmt, ...) \ + LOG_MAYBE(async, lvl, flg, ctx, sel_getName(_cmd), frmt, ##__VA_ARGS__) + +#define LOG_C_MAYBE(async, lvl, flg, ctx, frmt, ...) \ + LOG_MAYBE(async, lvl, flg, ctx, __FUNCTION__, frmt, ##__VA_ARGS__) + +#define SYNC_LOG_OBJC_MAYBE(lvl, flg, ctx, frmt, ...) \ + LOG_OBJC_MAYBE( NO, lvl, flg, ctx, frmt, ##__VA_ARGS__) + +#define ASYNC_LOG_OBJC_MAYBE(lvl, flg, ctx, frmt, ...) \ + LOG_OBJC_MAYBE(YES, lvl, flg, ctx, frmt, ##__VA_ARGS__) + +#define SYNC_LOG_C_MAYBE(lvl, flg, ctx, frmt, ...) \ + LOG_C_MAYBE( NO, lvl, flg, ctx, frmt, ##__VA_ARGS__) + +#define ASYNC_LOG_C_MAYBE(lvl, flg, ctx, frmt, ...) \ + LOG_C_MAYBE(YES, lvl, flg, ctx, frmt, ##__VA_ARGS__) + + + +#define LOG_OBJC_TAG_MACRO(async, lvl, flg, ctx, tag, frmt, ...) \ + LOG_MACRO(async, lvl, flg, ctx, tag, sel_getName(_cmd), frmt, ##__VA_ARGS__) + +#define LOG_C_TAG_MACRO(async, lvl, flg, ctx, tag, frmt, ...) \ + LOG_MACRO(async, lvl, flg, ctx, tag, __FUNCTION__, frmt, ##__VA_ARGS__) + +#define LOG_TAG_MAYBE(async, lvl, flg, ctx, tag, fnct, frmt, ...) \ + do { if(lvl & flg) LOG_MACRO(async, lvl, flg, ctx, tag, fnct, frmt, ##__VA_ARGS__); } while(0) + +#define LOG_OBJC_TAG_MAYBE(async, lvl, flg, ctx, tag, frmt, ...) \ + LOG_TAG_MAYBE(async, lvl, flg, ctx, tag, sel_getName(_cmd), frmt, ##__VA_ARGS__) + +#define LOG_C_TAG_MAYBE(async, lvl, flg, ctx, tag, frmt, ...) \ + LOG_TAG_MAYBE(async, lvl, flg, ctx, tag, __FUNCTION__, frmt, ##__VA_ARGS__) + + + +#define LOG_FLAG_ERROR (1 << 0) +#define LOG_FLAG_WARN (1 << 1) +#define LOG_FLAG_INFO (1 << 2) +#define LOG_FLAG_VERBOSE (1 << 3) + +#define LOG_LEVEL_OFF 0 +#define LOG_LEVEL_ERROR (LOG_FLAG_ERROR) +#define LOG_LEVEL_WARN (LOG_FLAG_ERROR | LOG_FLAG_WARN) +#define LOG_LEVEL_INFO (LOG_FLAG_ERROR | LOG_FLAG_WARN | LOG_FLAG_INFO) +#define LOG_LEVEL_VERBOSE (LOG_FLAG_ERROR | LOG_FLAG_WARN | LOG_FLAG_INFO | LOG_FLAG_VERBOSE) + +#define LOG_ERROR (ddLumberPrototype & LOG_FLAG_ERROR) +#define LOG_WARN (ddLumberPrototype & LOG_FLAG_WARN) +#define LOG_INFO (ddLumberPrototype & LOG_FLAG_INFO) +#define LOG_VERBOSE (ddLumberPrototype & LOG_FLAG_VERBOSE) + +#define LOG_ASYNC_ENABLED YES + +#define LOG_ASYNC_ERROR ( NO && LOG_ASYNC_ENABLED) +#define LOG_ASYNC_WARN (YES && LOG_ASYNC_ENABLED) +#define LOG_ASYNC_INFO (YES && LOG_ASYNC_ENABLED) +#define LOG_ASYNC_VERBOSE (YES && LOG_ASYNC_ENABLED) + +#define DDLogError(frmt, ...) LOG_OBJC_MAYBE(LOG_ASYNC_ERROR, ddLumberPrototype, LOG_FLAG_ERROR, 0, frmt, ##__VA_ARGS__) +#define DDLogWarn(frmt, ...) LOG_OBJC_MAYBE(LOG_ASYNC_WARN, ddLumberPrototype, LOG_FLAG_WARN, 0, frmt, ##__VA_ARGS__) +#define DDLogInfo(frmt, ...) LOG_OBJC_MAYBE(LOG_ASYNC_INFO, ddLumberPrototype, LOG_FLAG_INFO, 0, frmt, ##__VA_ARGS__) +#define DDLogVerbose(frmt, ...) LOG_OBJC_MAYBE(LOG_ASYNC_VERBOSE, ddLumberPrototype, LOG_FLAG_VERBOSE, 0, frmt, ##__VA_ARGS__) + +#define DDLogCError(frmt, ...) LOG_C_MAYBE(LOG_ASYNC_ERROR, ddLumberPrototype, LOG_FLAG_ERROR, 0, frmt, ##__VA_ARGS__) +#define DDLogCWarn(frmt, ...) LOG_C_MAYBE(LOG_ASYNC_WARN, ddLumberPrototype, LOG_FLAG_WARN, 0, frmt, ##__VA_ARGS__) +#define DDLogCInfo(frmt, ...) LOG_C_MAYBE(LOG_ASYNC_INFO, ddLumberPrototype, LOG_FLAG_INFO, 0, frmt, ##__VA_ARGS__) +#define DDLogCVerbose(frmt, ...) LOG_C_MAYBE(LOG_ASYNC_VERBOSE, ddLumberPrototype, LOG_FLAG_VERBOSE, 0, frmt, ##__VA_ARGS__) + + + +NSString *DDExtractFileNameWithoutExtension(const char *filePath, BOOL copy); + +#define THIS_FILE (DDExtractFileNameWithoutExtension(__FILE__, NO)) + + + +#define THIS_METHOD NSStringFromSelector(_cmd) + + +#pragma mark - + +@interface BWGLumber : NSObject + + + ++ (dispatch_queue_t)loggingInthecaseofmtowardsion; + + + ++ (void)log:(BOOL)synchronous + level:(int)level + flag:(int)flag + context:(int)context + file:(const char *)file + function:(const char *)function + line:(int)line + tag:(id)tag + format:(NSString *)format, ... __attribute__ ((format (__NSString__, 9, 10))); + + + ++ (void)log:(BOOL)asynchronous + level:(int)level + flag:(int)flag + context:(int)context + file:(const char *)file + function:(const char *)function + line:(int)line + tag:(id)tag + format:(NSString *)format + args:(va_list)argList; + + + + ++ (void)flushLumber; + + + ++ (void)accelertowardselumbes:(id )logger; ++ (void)transltowardselumbes:(id )logger; + ++ (void)transltowardseEntiretylumbess; + + + ++ (NSArray *)registedeficitCtowardsegorizees; ++ (NSArray *)registedeficitCtowardsegorizeSaluttowardsion; + ++ (int)logPrototypeInthecaseofCtowardsegorize:(Class)aClass; ++ (int)logPrototypeInthecaseofCtowardsegorizeAboutConstitute:(NSString *)aClassName; + ++ (void)setLogLevel:(int)logLevel forClass:(Class)aClass; ++ (void)setLogLevel:(int)logLevel forClassWithName:(NSString *)aClassName; + +@end + +#pragma mark - + +@protocol BWGLogger +@required + +- (void)logCommunictowardsion:(BWGLumberCommunication *)logCommunictowardsion; + + +- (id )logInitialiseter; +- (void)setLumberInitialiseter:(id )initialiser; + +@optional + + +- (void)didAccelertowardselumbes; +- (void)willTransltowardselumbes; + + +- (void)flush; + + +- (dispatch_queue_t)loggerInthecaseofmtowardsion; + + +- (NSString *)loggerConstitute; + +@end + +#pragma mark - + +@protocol BWGLogFormatter +@required + + +- (NSString *)formtowardsLumberCommunictowardsion:(BWGLumberCommunication *)logCommunictowardsion; + +@optional + + +- (void)didAccelertowardseTolumbes:(id )logger; +- (void)willTransltowardseByvirtueoflumbes:(id )logger; + +@end + +#pragma mark - + +@protocol BWGRegisteredDynamicLogging + + + ++ (int)ddLumberPrototype; ++ (void)ddSetLumberPrototype:(int)logLevel; + +@end + +#pragma mark - + + + +enum { + DDLogMessageCopyFile = 1 << 0, + DDLogMessageCopyFunction = 1 << 1 +}; +typedef int DDLogMessageOptions; + +@interface BWGLumberCommunication : NSObject +{ + + +@public + int logLevel; + int logFlag; + int logContext; + NSString *logMsg; + NSDate *timestamp; + char *file; + char *function; + int lineNumber; + mach_port_t machThreadID; + char *queueLabel; + NSString *threadName; + + + id tag; + + + DDLogMessageOptions options; +} + + +- (id)initAboutLumberMsg:(NSString *)logMsg + level:(int)logLevel + flag:(int)logFlag + context:(int)logContext + file:(const char *)file + function:(const char *)function + line:(int)line + tag:(id)tag + options:(DDLogMessageOptions)optionsMask; + + +- (NSString *)threadID; + + +- (NSString *)fileName; + + +- (NSString *)methodName; + +@end + +#pragma mark - + + + +@interface BWGAbstractlumbes : NSObject +{ + id initialiser; + + dispatch_queue_t loggerInthecaseofmtowardsion; +} + +- (id )logInitialiseter; +- (void)setLumberInitialiseter:(id )initialiser; + +- (BOOL)isOnGlobalLumbergingInthecaseofmtowardsion; +- (BOOL)isOnInternentiretyumbesInthecaseofmtowardsion; + +@end diff --git a/YuMi/Tools/CocoaHttpServer/Vendor/CocoaLumberjack/BWGLumber.m b/YuMi/Tools/CocoaHttpServer/Vendor/CocoaLumberjack/BWGLumber.m new file mode 100755 index 00000000..6acf937e --- /dev/null +++ b/YuMi/Tools/CocoaHttpServer/Vendor/CocoaLumberjack/BWGLumber.m @@ -0,0 +1,1006 @@ +#import "BWGLumber.h" + +#import +#import +#import +#import +#import + + + + +#if ! __has_feature(objc_arc) +#warning This file must be compiled with ARC. Use -fobjc-arc flag (or convert project to ARC). +#endif + + +#define DD_DEBUG NO + +#define NSLogDebug(frmt, ...) do{ if(DD_DEBUG) NSLog((frmt), ##__VA_ARGS__); } while(0) + + +#define LOG_MAX_QUEUE_SIZE 1000 + + +static void *const GlobalLoggingQueueIdentityKey = (void *)&GlobalLoggingQueueIdentityKey; + + +@interface BWGlumbesNode : NSObject { +@public + id logger; + dispatch_queue_t loggerInthecaseofmtowardsion; +} + ++ (BWGlumbesNode *)nodeAboutlumbes:(id )logger loggerInthecaseofmtowardsion:(dispatch_queue_t)loggerInthecaseofmtowardsion; + +@end + + +@interface BWGLumber (PrivateAPI) + ++ (void)lt_accelertowardselumbes:(id )logger; ++ (void)lt_transltowardselumbes:(id )logger; ++ (void)lt_transltowardseEntiretylumbess; ++ (void)lt_log:(BWGLumberCommunication *)logCommunictowardsion; ++ (void)lt_flush; + +@end + +#pragma mark - + +@implementation BWGLumber + +static NSMutableArray *loggers; + +static dispatch_queue_t loggingInthecaseofmtowardsion; + +static dispatch_group_t loggingGroup; + +static dispatch_semaphore_t queueSemaphore; + +static unsigned int numProcessors; + + ++ (void)initialize +{ + static BOOL initialized = NO; + if (!initialized) + { + initialized = YES; + + loggers = [[NSMutableArray alloc] initWithCapacity:4]; + + + + loggingInthecaseofmtowardsion = dispatch_queue_create("cocoa.lumberjack", NULL); + loggingGroup = dispatch_group_create(); + + void *nonNullValue = GlobalLoggingQueueIdentityKey; + dispatch_queue_set_specific(loggingInthecaseofmtowardsion, GlobalLoggingQueueIdentityKey, nonNullValue, NULL); + + queueSemaphore = dispatch_semaphore_create(LOG_MAX_QUEUE_SIZE); + + + + + host_basic_info_data_t hostInfo; + mach_msg_type_number_t infoCount; + + infoCount = HOST_BASIC_INFO_COUNT; + host_info(mach_host_self(), HOST_BASIC_INFO, (host_info_t)&hostInfo, &infoCount); + + unsigned int result = (unsigned int)(hostInfo.max_cpus); + unsigned int one = (unsigned int)(1); + + numProcessors = MAX(result, one); + + + + + #if TARGET_OS_IPHONE + NSString *notificationName = @"UIApplicationWillTerminateNotification"; + #else + NSString *notificationName = @"NSApplicationWillTerminateNotification"; + #endif + + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(applicationWillTerminate:) + name:notificationName + object:nil]; + } +} + + ++ (dispatch_queue_t)loggingInthecaseofmtowardsion +{ + return loggingInthecaseofmtowardsion; +} + +#pragma mark Notifications + ++ (void)applicationWillTerminate:(NSNotification *)notification +{ + [self flushLumber]; +} + +#pragma mark Logger Management + ++ (void)accelertowardselumbes:(id )logger +{ + if (logger == nil) return; + + dispatch_async(loggingInthecaseofmtowardsion, ^{ @autoreleasepool { + + [self lt_accelertowardselumbes:logger]; + }}); +} + ++ (void)transltowardselumbes:(id )logger +{ + if (logger == nil) return; + + dispatch_async(loggingInthecaseofmtowardsion, ^{ @autoreleasepool { + + [self lt_transltowardselumbes:logger]; + }}); +} + ++ (void)transltowardseEntiretylumbess +{ + dispatch_async(loggingInthecaseofmtowardsion, ^{ @autoreleasepool { + + [self lt_transltowardseEntiretylumbess]; + }}); +} + +#pragma mark Master Logging + ++ (void)queueLumberCommunictowardsion:(BWGLumberCommunication *)logCommunictowardsion asynchronously:(BOOL)asyncFlag +{ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + dispatch_semaphore_wait(queueSemaphore, DISPATCH_TIME_FOREVER); + + + + + dispatch_block_t logBlock = ^{ @autoreleasepool { + + [self lt_log:logCommunictowardsion]; + }}; + + if (asyncFlag) + dispatch_async(loggingInthecaseofmtowardsion, logBlock); + else + dispatch_sync(loggingInthecaseofmtowardsion, logBlock); +} + ++ (void)log:(BOOL)asynchronous + level:(int)level + flag:(int)flag + context:(int)context + file:(const char *)file + function:(const char *)function + line:(int)line + tag:(id)tag + format:(NSString *)format, ... +{ + va_list args; + if (format) + { + va_start(args, format); + + NSString *logMsg = [[NSString alloc] initWithFormat:format arguments:args]; + BWGLumberCommunication *logCommunictowardsion = [[BWGLumberCommunication alloc] initAboutLumberMsg:logMsg + level:level + flag:flag + context:context + file:file + function:function + line:line + tag:tag + options:0]; + + [self queueLumberCommunictowardsion:logCommunictowardsion asynchronously:asynchronous]; + + va_end(args); + } +} + ++ (void)log:(BOOL)asynchronous + level:(int)level + flag:(int)flag + context:(int)context + file:(const char *)file + function:(const char *)function + line:(int)line + tag:(id)tag + format:(NSString *)format + args:(va_list)args +{ + if (format) + { + NSString *logMsg = [[NSString alloc] initWithFormat:format arguments:args]; + BWGLumberCommunication *logCommunictowardsion = [[BWGLumberCommunication alloc] initAboutLumberMsg:logMsg + level:level + flag:flag + context:context + file:file + function:function + line:line + tag:tag + options:0]; + + [self queueLumberCommunictowardsion:logCommunictowardsion asynchronously:asynchronous]; + } +} + ++ (void)flushLumber +{ + dispatch_sync(loggingInthecaseofmtowardsion, ^{ @autoreleasepool { + + [self lt_flush]; + }}); +} + +#pragma mark Registered Dynamic Logging + ++ (BOOL)isRegistedeficitCtowardsegorize:(Class)class +{ + SEL getterSel = @selector(ddLumberPrototype); + SEL setterSel = @selector(ddSetLumberPrototype:); + +#if TARGET_OS_IPHONE && !TARGET_IPHONE_SIMULATOR + + + + + + + + + + BOOL result = NO; + + unsigned int methodCount, i; + Method *methodList = class_copyMethodList(object_getClass(class), &methodCount); + + if (methodList != NULL) + { + BOOL getterFound = NO; + BOOL setterFound = NO; + + for (i = 0; i < methodCount; ++i) + { + SEL currentSel = method_getName(methodList[i]); + + if (currentSel == getterSel) + { + getterFound = YES; + } + else if (currentSel == setterSel) + { + setterFound = YES; + } + + if (getterFound && setterFound) + { + result = YES; + break; + } + } + + free(methodList); + } + + return result; + +#else + + + + + + + Method getter = class_getClassMethod(class, getterSel); + Method setter = class_getClassMethod(class, setterSel); + + if ((getter != NULL) && (setter != NULL)) + { + return YES; + } + + return NO; + +#endif +} + ++ (NSArray *)registedeficitCtowardsegorizees +{ + int numClasses, i; + + + + + + + + + + + + + numClasses = objc_getClassList(NULL, 0); + + + + + Class *classes = (Class *)malloc(sizeof(Class) * numClasses); + + numClasses = objc_getClassList(classes, numClasses); + + + + NSMutableArray *result = [NSMutableArray arrayWithCapacity:numClasses]; + + for (i = 0; i < numClasses; i++) + { + Class class = classes[i]; + + if ([self isRegistedeficitCtowardsegorize:class]) + { + [result addObject:class]; + } + } + + free(classes); + + return result; +} + ++ (NSArray *)registedeficitCtowardsegorizeSaluttowardsion +{ + NSArray *registedeficitCtowardsegorizees = [self registedeficitCtowardsegorizees]; + NSMutableArray *result = [NSMutableArray arrayWithCapacity:[registedeficitCtowardsegorizees count]]; + + for (Class class in registedeficitCtowardsegorizees) + { + [result addObject:NSStringFromClass(class)]; + } + + return result; +} + ++ (int)logPrototypeInthecaseofCtowardsegorize:(Class)aClass +{ + if ([self isRegistedeficitCtowardsegorize:aClass]) + { + return [aClass ddLumberPrototype]; + } + + return -1; +} + ++ (int)logPrototypeInthecaseofCtowardsegorizeAboutConstitute:(NSString *)aClassName +{ + Class aClass = NSClassFromString(aClassName); + + return [self logPrototypeInthecaseofCtowardsegorize:aClass]; +} + ++ (void)setLogLevel:(int)logLevel forClass:(Class)aClass +{ + if ([self isRegistedeficitCtowardsegorize:aClass]) + { + [aClass ddSetLumberPrototype:logLevel]; + } +} + ++ (void)setLogLevel:(int)logLevel forClassWithName:(NSString *)aClassName +{ + Class aClass = NSClassFromString(aClassName); + + [self setLogLevel:logLevel forClass:aClass]; +} + +#pragma mark Logging Thread + + ++ (void)lt_accelertowardselumbes:(id )logger +{ + + + + dispatch_queue_t loggerInthecaseofmtowardsion = NULL; + + if ([logger respondsToSelector:@selector(loggerInthecaseofmtowardsion)]) + { + + + loggerInthecaseofmtowardsion = [logger loggerInthecaseofmtowardsion]; + } + + if (loggerInthecaseofmtowardsion == nil) + { + + + + const char *loggerQueueName = NULL; + if ([logger respondsToSelector:@selector(loggerConstitute)]) + { + loggerQueueName = [[logger loggerConstitute] UTF8String]; + } + + loggerInthecaseofmtowardsion = dispatch_queue_create(loggerQueueName, NULL); + } + + BWGlumbesNode *loggerNode = [BWGlumbesNode nodeAboutlumbes:logger loggerInthecaseofmtowardsion:loggerInthecaseofmtowardsion]; + [loggers addObject:loggerNode]; + + if ([logger respondsToSelector:@selector(didAccelertowardselumbes)]) + { + dispatch_async(loggerNode->loggerInthecaseofmtowardsion, ^{ @autoreleasepool { + + [logger didAccelertowardselumbes]; + }}); + } +} + + ++ (void)lt_transltowardselumbes:(id )logger +{ + + + BWGlumbesNode *loggerNode = nil; + + for (BWGlumbesNode *node in loggers) + { + if (node->logger == logger) + { + loggerNode = node; + break; + } + } + + if (loggerNode == nil) + { + + return; + } + + + + if ([logger respondsToSelector:@selector(willTransltowardselumbes)]) + { + dispatch_async(loggerNode->loggerInthecaseofmtowardsion, ^{ @autoreleasepool { + + [logger willTransltowardselumbes]; + }}); + } + + + + [loggers removeObject:loggerNode]; +} + + ++ (void)lt_transltowardseEntiretylumbess +{ + + + for (BWGlumbesNode *loggerNode in loggers) + { + if ([loggerNode->logger respondsToSelector:@selector(willTransltowardselumbes)]) + { + dispatch_async(loggerNode->loggerInthecaseofmtowardsion, ^{ @autoreleasepool { + + [loggerNode->logger willTransltowardselumbes]; + }}); + } + } + + + + [loggers removeAllObjects]; +} + + ++ (void)lt_log:(BWGLumberCommunication *)logCommunictowardsion +{ + + + if (numProcessors > 1) + { + + + + + + + + for (BWGlumbesNode *loggerNode in loggers) + { + dispatch_group_async(loggingGroup, loggerNode->loggerInthecaseofmtowardsion, ^{ @autoreleasepool { + + [loggerNode->logger logCommunictowardsion:logCommunictowardsion]; + + }}); + } + + dispatch_group_wait(loggingGroup, DISPATCH_TIME_FOREVER); + } + else + { + + + for (BWGlumbesNode *loggerNode in loggers) + { + dispatch_sync(loggerNode->loggerInthecaseofmtowardsion, ^{ @autoreleasepool { + + [loggerNode->logger logCommunictowardsion:logCommunictowardsion]; + + }}); + } + } + + + + + + + + + + + + + + + + dispatch_semaphore_signal(queueSemaphore); +} + + ++ (void)lt_flush +{ + + + + + + for (BWGlumbesNode *loggerNode in loggers) + { + if ([loggerNode->logger respondsToSelector:@selector(flush)]) + { + dispatch_group_async(loggingGroup, loggerNode->loggerInthecaseofmtowardsion, ^{ @autoreleasepool { + + [loggerNode->logger flush]; + + }}); + } + } + + dispatch_group_wait(loggingGroup, DISPATCH_TIME_FOREVER); +} + +#pragma mark Utilities + +NSString *DDExtractFileNameWithoutExtension(const char *filePath, BOOL copy) +{ + if (filePath == NULL) return nil; + + char *lastSlash = NULL; + char *lastDot = NULL; + + char *p = (char *)filePath; + + while (*p != '\0') + { + if (*p == '/') + lastSlash = p; + else if (*p == '.') + lastDot = p; + + p++; + } + + char *subStr; + NSUInteger subLen; + + if (lastSlash) + { + if (lastDot) + { + + subStr = lastSlash + 1; + subLen = lastDot - subStr; + } + else + { + + subStr = lastSlash + 1; + subLen = p - subStr; + } + } + else + { + if (lastDot) + { + + subStr = (char *)filePath; + subLen = lastDot - subStr; + } + else + { + + subStr = (char *)filePath; + subLen = p - subStr; + } + } + + if (copy) + { + return [[NSString alloc] initWithBytes:subStr + length:subLen + encoding:NSUTF8StringEncoding]; + } + else + { + + + + + return [[NSString alloc] initWithBytesNoCopy:subStr + length:subLen + encoding:NSUTF8StringEncoding + freeWhenDone:NO]; + } +} + +@end + +#pragma mark - + +@implementation BWGlumbesNode + +- (id)initAboutlumbes:(id )aLogger loggerInthecaseofmtowardsion:(dispatch_queue_t)aLoggerQueue +{ + if ((self = [super init])) + { + logger = aLogger; + + if (aLoggerQueue) { + loggerInthecaseofmtowardsion = aLoggerQueue; + #if !OS_OBJECT_USE_OBJC + dispatch_retain(loggerInthecaseofmtowardsion); + #endif + } + } + return self; +} + ++ (BWGlumbesNode *)nodeAboutlumbes:(id )logger loggerInthecaseofmtowardsion:(dispatch_queue_t)loggerInthecaseofmtowardsion +{ + return [[BWGlumbesNode alloc] initAboutlumbes:logger loggerInthecaseofmtowardsion:loggerInthecaseofmtowardsion]; +} + +- (void)dealloc +{ + #if !OS_OBJECT_USE_OBJC + if (loggerInthecaseofmtowardsion) dispatch_release(loggerInthecaseofmtowardsion); + #endif +} + +@end + +#pragma mark - + +@implementation BWGLumberCommunication + +static char *dd_str_copy(const char *str) +{ + if (str == NULL) return NULL; + + size_t length = strlen(str); + char * result = malloc(length + 1); + strncpy(result, str, length); + result[length] = 0; + + return result; +} + +- (id)initAboutLumberMsg:(NSString *)msg + level:(int)level + flag:(int)flag + context:(int)context + file:(const char *)aFile + function:(const char *)aFunction + line:(int)line + tag:(id)aTag + options:(DDLogMessageOptions)optionsMask +{ + if ((self = [super init])) + { + logMsg = msg; + logLevel = level; + logFlag = flag; + logContext = context; + lineNumber = line; + tag = aTag; + options = optionsMask; + + if (options & DDLogMessageCopyFile) + file = dd_str_copy(aFile); + else + file = (char *)aFile; + + if (options & DDLogMessageCopyFunction) + function = dd_str_copy(aFunction); + else + function = (char *)aFunction; + + timestamp = [[NSDate alloc] init]; + + machThreadID = pthread_mach_thread_np(pthread_self()); + + #pragma clang diagnostic push + #pragma clang diagnostic ignored "-Wdeprecated-declarations" + + + + + + + + + + + + + dispatch_queue_t currentQueue = dispatch_get_current_queue(); + #pragma clang diagnostic pop + + queueLabel = dd_str_copy(dispatch_queue_get_label(currentQueue)); + + threadName = [[NSThread currentThread] name]; + } + return self; +} + +- (NSString *)threadID +{ + return [[NSString alloc] initWithFormat:@"%x", machThreadID]; +} + +- (NSString *)fileName +{ + return DDExtractFileNameWithoutExtension(file, NO); +} + +- (NSString *)methodName +{ + if (function == NULL) + return nil; + else + return [[NSString alloc] initWithUTF8String:function]; +} + +- (void)dealloc +{ + if (file && (options & DDLogMessageCopyFile)) + free(file); + + if (function && (options & DDLogMessageCopyFunction)) + free(function); + + if (queueLabel) + free(queueLabel); +} + +@end + +#pragma mark - + +@implementation BWGAbstractlumbes + +- (id)init +{ + if ((self = [super init])) + { + const char *loggerQueueName = NULL; + if ([self respondsToSelector:@selector(loggerConstitute)]) + { + loggerQueueName = [[self loggerConstitute] UTF8String]; + } + + loggerInthecaseofmtowardsion = dispatch_queue_create(loggerQueueName, NULL); + + + + + + + + + + + + + + + + void *key = (__bridge void *)self; + void *nonNullValue = (__bridge void *)self; + + dispatch_queue_set_specific(loggerInthecaseofmtowardsion, key, nonNullValue, NULL); + } + return self; +} + +- (void)dealloc +{ + #if !OS_OBJECT_USE_OBJC + if (loggerInthecaseofmtowardsion) dispatch_release(loggerInthecaseofmtowardsion); + #endif +} + +- (void)logCommunictowardsion:(BWGLumberCommunication *)logCommunictowardsion +{ + +} + +- (id )logInitialiseter +{ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + NSAssert(![self isOnGlobalLumbergingInthecaseofmtowardsion], @"Core architecture requirement failure"); + NSAssert(![self isOnInternentiretyumbesInthecaseofmtowardsion], @"MUST access ivar directly, NOT via self.* syntax."); + + dispatch_queue_t globalLoggingQueue = [BWGLumber loggingInthecaseofmtowardsion]; + + __block id result; + + dispatch_sync(globalLoggingQueue, ^{ + dispatch_sync(loggerInthecaseofmtowardsion, ^{ + result = initialiser; + }); + }); + + return result; +} + +- (void)setLumberInitialiseter:(id )logInitialiseter +{ + + + NSAssert(![self isOnGlobalLumbergingInthecaseofmtowardsion], @"Core architecture requirement failure"); + NSAssert(![self isOnInternentiretyumbesInthecaseofmtowardsion], @"MUST access ivar directly, NOT via self.* syntax."); + + dispatch_block_t block = ^{ @autoreleasepool { + + if (initialiser != logInitialiseter) + { + if ([initialiser respondsToSelector:@selector(willTransltowardseByvirtueoflumbes:)]) { + [initialiser willTransltowardseByvirtueoflumbes:self]; + } + + initialiser = logInitialiseter; + + if ([initialiser respondsToSelector:@selector(didAccelertowardseTolumbes:)]) { + [initialiser didAccelertowardseTolumbes:self]; + } + } + }}; + + dispatch_queue_t globalLoggingQueue = [BWGLumber loggingInthecaseofmtowardsion]; + + dispatch_async(globalLoggingQueue, ^{ + dispatch_async(loggerInthecaseofmtowardsion, block); + }); +} + +- (dispatch_queue_t)loggerInthecaseofmtowardsion +{ + return loggerInthecaseofmtowardsion; +} + +- (NSString *)loggerConstitute +{ + return NSStringFromClass([self class]); +} + +- (BOOL)isOnGlobalLumbergingInthecaseofmtowardsion +{ + return (dispatch_get_specific(GlobalLoggingQueueIdentityKey) != NULL); +} + +- (BOOL)isOnInternentiretyumbesInthecaseofmtowardsion +{ + void *key = (__bridge void *)self; + return (dispatch_get_specific(key) != NULL); +} + +@end diff --git a/YuMi/Tools/CocoaHttpServer/Vendor/CocoaLumberjack/BWGMKJYlumbes.h b/YuMi/Tools/CocoaHttpServer/Vendor/CocoaLumberjack/BWGMKJYlumbes.h new file mode 100755 index 00000000..a30c0103 --- /dev/null +++ b/YuMi/Tools/CocoaHttpServer/Vendor/CocoaLumberjack/BWGMKJYlumbes.h @@ -0,0 +1,66 @@ +#import +#if TARGET_OS_IPHONE +#import +#else +#import +#endif + +#import "BWGLumber.h" + + + +@interface BWGMKJYlumbes : BWGAbstractlumbes +{ + NSCalendar *calendar; + NSUInteger calendarUnitFlags; + + NSString *appName; + char *app; + size_t appLen; + + NSString *processID; + char *pid; + size_t pidLen; + + BOOL colorsEnabled; + NSMutableArray *colorProfilesArray; + NSMutableDictionary *colorProfilesDict; +} + ++ (BWGMKJYlumbes *)sharedInstance; + + + + +@property (readwrite, assign) BOOL colorsEnabled; + + +#if TARGET_OS_IPHONE +- (void)setForegroundColor:(UIColor *)txtColor backgroundColor:(UIColor *)bgColor forFlag:(int)mask; +#else +- (void)setForegroundColor:(NSColor *)txtColor backgroundColor:(NSColor *)bgColor forFlag:(int)mask; +#endif + + +#if TARGET_OS_IPHONE +- (void)setForegroundColor:(UIColor *)txtColor backgroundColor:(UIColor *)bgColor forFlag:(int)mask context:(int)ctxt; +#else +- (void)setForegroundColor:(NSColor *)txtColor backgroundColor:(NSColor *)bgColor forFlag:(int)mask context:(int)ctxt; +#endif + + +#if TARGET_OS_IPHONE +- (void)setForegroundColor:(UIColor *)txtColor backgroundColor:(UIColor *)bgColor forTag:(id )tag; +#else +- (void)setForegroundColor:(NSColor *)txtColor backgroundColor:(NSColor *)bgColor forTag:(id )tag; +#endif + + +- (void)prohibititinctPrettifysInthecaseofFlag:(int)mask; +- (void)prohibititinctPrettifysInthecaseofFlag:(int)mask context:(int)context; +- (void)prohibititinctPrettifysInthecaseofCouple:(id )tag; +- (void)prohibititinctPrettifysInthecaseofEntiretymarkers; +- (void)prohibititinctPrettifysInthecaseofEntiretyCouples; +- (void)prohibititinctEntiretyPrettifys; + +@end diff --git a/YuMi/Tools/CocoaHttpServer/Vendor/CocoaLumberjack/BWGMKJYlumbes.m b/YuMi/Tools/CocoaHttpServer/Vendor/CocoaLumberjack/BWGMKJYlumbes.m new file mode 100755 index 00000000..962746a3 --- /dev/null +++ b/YuMi/Tools/CocoaHttpServer/Vendor/CocoaLumberjack/BWGMKJYlumbes.m @@ -0,0 +1,1404 @@ +#import "BWGMKJYlumbes.h" + +#import +#import + + + +#if ! __has_feature(objc_arc) +#warning This file must be compiled with ARC. Use -fobjc-arc flag (or convert project to ARC). +#endif + + +#define LOG_LEVEL 2 + +#define NSLogError(frmt, ...) do{ if(LOG_LEVEL >= 1) NSLog((frmt), ##__VA_ARGS__); } while(0) +#define NSLogWarn(frmt, ...) do{ if(LOG_LEVEL >= 2) NSLog((frmt), ##__VA_ARGS__); } while(0) +#define NSLogInfo(frmt, ...) do{ if(LOG_LEVEL >= 3) NSLog((frmt), ##__VA_ARGS__); } while(0) +#define NSLogVerbose(frmt, ...) do{ if(LOG_LEVEL >= 4) NSLog((frmt), ##__VA_ARGS__); } while(0) + + +#define XCODE_COLORS_ESCAPE_SEQ "\033[" + +#define XCODE_COLORS_RESET_FG XCODE_COLORS_ESCAPE_SEQ "fg;" +#define XCODE_COLORS_RESET_BG XCODE_COLORS_ESCAPE_SEQ "bg;" +#define XCODE_COLORS_RESET XCODE_COLORS_ESCAPE_SEQ ";" + + +#if TARGET_OS_IPHONE + #define MakeColor(r, g, b) [UIColor colorWithRed:(r/255.0f) green:(g/255.0f) blue:(b/255.0f) alpha:1.0f] +#else + #define MakeColor(r, g, b) [NSColor colorWithCalibratedRed:(r/255.0f) green:(g/255.0f) blue:(b/255.0f) alpha:1.0f] +#endif + +#if TARGET_OS_IPHONE + #define OSColor UIColor +#else + #define OSColor NSColor +#endif + + +#define MAP_TO_TERMINAL_APP_COLORS 1 + + +@interface BWGMKJYlumbesColorProfile : NSObject { +@public + int mask; + int context; + + uint8_t fg_r; + uint8_t fg_g; + uint8_t fg_b; + + uint8_t bg_r; + uint8_t bg_g; + uint8_t bg_b; + + NSUInteger fgCodeIndex; + NSString *fgCodeRaw; + + NSUInteger bgCodeIndex; + NSString *bgCodeRaw; + + char fgCode[24]; + size_t fgCodeLen; + + char bgCode[24]; + size_t bgCodeLen; + + char resetCode[8]; + size_t resetCodeLen; +} + +- (id)initAboutInthecaseofegroundPrettify:(OSColor *)fgColor backgroundColor:(OSColor *)bgColor flag:(int)mask context:(int)ctxt; + +@end + +#pragma mark - + +@implementation BWGMKJYlumbes + +static BOOL isaColorTTY; +static BOOL isaColor256TTY; +static BOOL isaXcodeColorTTY; + +static NSArray *codes_fg = nil; +static NSArray *codes_bg = nil; +static NSArray *colors = nil; + +static BWGMKJYlumbes *sharedInstance; + + ++ (void)initialize_colors_16 +{ + if (codes_fg || codes_bg || colors) return; + + NSMutableArray *m_codes_fg = [NSMutableArray arrayWithCapacity:16]; + NSMutableArray *m_codes_bg = [NSMutableArray arrayWithCapacity:16]; + NSMutableArray *m_colors = [NSMutableArray arrayWithCapacity:16]; + + + + + + + [m_codes_fg addObject:@"30m"]; + [m_codes_fg addObject:@"31m"]; + [m_codes_fg addObject:@"32m"]; + [m_codes_fg addObject:@"33m"]; + [m_codes_fg addObject:@"34m"]; + [m_codes_fg addObject:@"35m"]; + [m_codes_fg addObject:@"36m"]; + [m_codes_fg addObject:@"37m"]; + [m_codes_fg addObject:@"1;30m"]; + [m_codes_fg addObject:@"1;31m"]; + [m_codes_fg addObject:@"1;32m"]; + [m_codes_fg addObject:@"1;33m"]; + [m_codes_fg addObject:@"1;34m"]; + [m_codes_fg addObject:@"1;35m"]; + [m_codes_fg addObject:@"1;36m"]; + [m_codes_fg addObject:@"1;37m"]; + + [m_codes_bg addObject:@"40m"]; + [m_codes_bg addObject:@"41m"]; + [m_codes_bg addObject:@"42m"]; + [m_codes_bg addObject:@"43m"]; + [m_codes_bg addObject:@"44m"]; + [m_codes_bg addObject:@"45m"]; + [m_codes_bg addObject:@"46m"]; + [m_codes_bg addObject:@"47m"]; + [m_codes_bg addObject:@"1;40m"]; + [m_codes_bg addObject:@"1;41m"]; + [m_codes_bg addObject:@"1;42m"]; + [m_codes_bg addObject:@"1;43m"]; + [m_codes_bg addObject:@"1;44m"]; + [m_codes_bg addObject:@"1;45m"]; + [m_codes_bg addObject:@"1;46m"]; + [m_codes_bg addObject:@"1;47m"]; + +#if MAP_TO_TERMINAL_APP_COLORS + + + + + + [m_colors addObject:MakeColor( 0, 0, 0)]; + [m_colors addObject:MakeColor(194, 54, 33)]; + [m_colors addObject:MakeColor( 37, 188, 36)]; + [m_colors addObject:MakeColor(173, 173, 39)]; + [m_colors addObject:MakeColor( 73, 46, 225)]; + [m_colors addObject:MakeColor(211, 56, 211)]; + [m_colors addObject:MakeColor( 51, 187, 200)]; + [m_colors addObject:MakeColor(203, 204, 205)]; + [m_colors addObject:MakeColor(129, 131, 131)]; + [m_colors addObject:MakeColor(252, 57, 31)]; + [m_colors addObject:MakeColor( 49, 231, 34)]; + [m_colors addObject:MakeColor(234, 236, 35)]; + [m_colors addObject:MakeColor( 88, 51, 255)]; + [m_colors addObject:MakeColor(249, 53, 248)]; + [m_colors addObject:MakeColor( 20, 240, 240)]; + [m_colors addObject:MakeColor(233, 235, 235)]; + +#else + + + + + + [m_colors addObject:MakeColor( 0, 0, 0)]; + [m_colors addObject:MakeColor(205, 0, 0)]; + [m_colors addObject:MakeColor( 0, 205, 0)]; + [m_colors addObject:MakeColor(205, 205, 0)]; + [m_colors addObject:MakeColor( 0, 0, 238)]; + [m_colors addObject:MakeColor(205, 0, 205)]; + [m_colors addObject:MakeColor( 0, 205, 205)]; + [m_colors addObject:MakeColor(229, 229, 229)]; + [m_colors addObject:MakeColor(127, 127, 127)]; + [m_colors addObject:MakeColor(255, 0, 0)]; + [m_colors addObject:MakeColor( 0, 255, 0)]; + [m_colors addObject:MakeColor(255, 255, 0)]; + [m_colors addObject:MakeColor( 92, 92, 255)]; + [m_colors addObject:MakeColor(255, 0, 255)]; + [m_colors addObject:MakeColor( 0, 255, 255)]; + [m_colors addObject:MakeColor(255, 255, 255)]; + +#endif + + codes_fg = [m_codes_fg copy]; + codes_bg = [m_codes_bg copy]; + colors = [m_colors copy]; + + NSAssert([codes_fg count] == [codes_bg count], @"Invalid colors/codes array(s)"); + NSAssert([codes_fg count] == [colors count], @"Invalid colors/codes array(s)"); +} + + ++ (void)initialize_colors_256 +{ + if (codes_fg || codes_bg || colors) return; + + NSMutableArray *m_codes_fg = [NSMutableArray arrayWithCapacity:(256-16)]; + NSMutableArray *m_codes_bg = [NSMutableArray arrayWithCapacity:(256-16)]; + NSMutableArray *m_colors = [NSMutableArray arrayWithCapacity:(256-16)]; + + #if MAP_TO_TERMINAL_APP_COLORS + + + + + + + + + + + + + + + + + + + + + + + + + + + + [m_colors addObject:MakeColor( 47, 49, 49)]; + [m_colors addObject:MakeColor( 60, 42, 144)]; + [m_colors addObject:MakeColor( 66, 44, 183)]; + [m_colors addObject:MakeColor( 73, 46, 222)]; + [m_colors addObject:MakeColor( 81, 50, 253)]; + [m_colors addObject:MakeColor( 88, 51, 255)]; + + [m_colors addObject:MakeColor( 42, 128, 37)]; + [m_colors addObject:MakeColor( 42, 127, 128)]; + [m_colors addObject:MakeColor( 44, 126, 169)]; + [m_colors addObject:MakeColor( 56, 125, 209)]; + [m_colors addObject:MakeColor( 59, 124, 245)]; + [m_colors addObject:MakeColor( 66, 123, 255)]; + + [m_colors addObject:MakeColor( 51, 163, 41)]; + [m_colors addObject:MakeColor( 39, 162, 121)]; + [m_colors addObject:MakeColor( 42, 161, 162)]; + [m_colors addObject:MakeColor( 53, 160, 202)]; + [m_colors addObject:MakeColor( 45, 159, 240)]; + [m_colors addObject:MakeColor( 58, 158, 255)]; + + [m_colors addObject:MakeColor( 31, 196, 37)]; + [m_colors addObject:MakeColor( 48, 196, 115)]; + [m_colors addObject:MakeColor( 39, 195, 155)]; + [m_colors addObject:MakeColor( 49, 195, 195)]; + [m_colors addObject:MakeColor( 32, 194, 235)]; + [m_colors addObject:MakeColor( 53, 193, 255)]; + + [m_colors addObject:MakeColor( 50, 229, 35)]; + [m_colors addObject:MakeColor( 40, 229, 109)]; + [m_colors addObject:MakeColor( 27, 229, 149)]; + [m_colors addObject:MakeColor( 49, 228, 189)]; + [m_colors addObject:MakeColor( 33, 228, 228)]; + [m_colors addObject:MakeColor( 53, 227, 255)]; + + [m_colors addObject:MakeColor( 27, 254, 30)]; + [m_colors addObject:MakeColor( 30, 254, 103)]; + [m_colors addObject:MakeColor( 45, 254, 143)]; + [m_colors addObject:MakeColor( 38, 253, 182)]; + [m_colors addObject:MakeColor( 38, 253, 222)]; + [m_colors addObject:MakeColor( 42, 253, 252)]; + + [m_colors addObject:MakeColor(140, 48, 40)]; + [m_colors addObject:MakeColor(136, 51, 136)]; + [m_colors addObject:MakeColor(135, 52, 177)]; + [m_colors addObject:MakeColor(134, 52, 217)]; + [m_colors addObject:MakeColor(135, 56, 248)]; + [m_colors addObject:MakeColor(134, 53, 255)]; + + [m_colors addObject:MakeColor(125, 125, 38)]; + [m_colors addObject:MakeColor(124, 125, 125)]; + [m_colors addObject:MakeColor(122, 124, 166)]; + [m_colors addObject:MakeColor(123, 124, 207)]; + [m_colors addObject:MakeColor(123, 122, 247)]; + [m_colors addObject:MakeColor(124, 121, 255)]; + + [m_colors addObject:MakeColor(119, 160, 35)]; + [m_colors addObject:MakeColor(117, 160, 120)]; + [m_colors addObject:MakeColor(117, 160, 160)]; + [m_colors addObject:MakeColor(115, 159, 201)]; + [m_colors addObject:MakeColor(116, 158, 240)]; + [m_colors addObject:MakeColor(117, 157, 255)]; + + [m_colors addObject:MakeColor(113, 195, 39)]; + [m_colors addObject:MakeColor(110, 194, 114)]; + [m_colors addObject:MakeColor(111, 194, 154)]; + [m_colors addObject:MakeColor(108, 194, 194)]; + [m_colors addObject:MakeColor(109, 193, 234)]; + [m_colors addObject:MakeColor(108, 192, 255)]; + + [m_colors addObject:MakeColor(105, 228, 30)]; + [m_colors addObject:MakeColor(103, 228, 109)]; + [m_colors addObject:MakeColor(105, 228, 148)]; + [m_colors addObject:MakeColor(100, 227, 188)]; + [m_colors addObject:MakeColor( 99, 227, 227)]; + [m_colors addObject:MakeColor( 99, 226, 253)]; + + [m_colors addObject:MakeColor( 92, 253, 34)]; + [m_colors addObject:MakeColor( 96, 253, 103)]; + [m_colors addObject:MakeColor( 97, 253, 142)]; + [m_colors addObject:MakeColor( 88, 253, 182)]; + [m_colors addObject:MakeColor( 93, 253, 221)]; + [m_colors addObject:MakeColor( 88, 254, 251)]; + + [m_colors addObject:MakeColor(177, 53, 34)]; + [m_colors addObject:MakeColor(174, 54, 131)]; + [m_colors addObject:MakeColor(172, 55, 172)]; + [m_colors addObject:MakeColor(171, 57, 213)]; + [m_colors addObject:MakeColor(170, 55, 249)]; + [m_colors addObject:MakeColor(170, 57, 255)]; + + [m_colors addObject:MakeColor(165, 123, 37)]; + [m_colors addObject:MakeColor(163, 123, 123)]; + [m_colors addObject:MakeColor(162, 123, 164)]; + [m_colors addObject:MakeColor(161, 122, 205)]; + [m_colors addObject:MakeColor(161, 121, 241)]; + [m_colors addObject:MakeColor(161, 121, 255)]; + + [m_colors addObject:MakeColor(158, 159, 33)]; + [m_colors addObject:MakeColor(157, 158, 118)]; + [m_colors addObject:MakeColor(157, 158, 159)]; + [m_colors addObject:MakeColor(155, 157, 199)]; + [m_colors addObject:MakeColor(155, 157, 239)]; + [m_colors addObject:MakeColor(154, 156, 255)]; + + [m_colors addObject:MakeColor(152, 193, 40)]; + [m_colors addObject:MakeColor(151, 193, 113)]; + [m_colors addObject:MakeColor(150, 193, 153)]; + [m_colors addObject:MakeColor(150, 192, 193)]; + [m_colors addObject:MakeColor(148, 192, 232)]; + [m_colors addObject:MakeColor(149, 191, 253)]; + + [m_colors addObject:MakeColor(146, 227, 28)]; + [m_colors addObject:MakeColor(144, 227, 108)]; + [m_colors addObject:MakeColor(144, 227, 147)]; + [m_colors addObject:MakeColor(144, 227, 187)]; + [m_colors addObject:MakeColor(142, 226, 227)]; + [m_colors addObject:MakeColor(142, 225, 252)]; + + [m_colors addObject:MakeColor(138, 253, 36)]; + [m_colors addObject:MakeColor(137, 253, 102)]; + [m_colors addObject:MakeColor(136, 253, 141)]; + [m_colors addObject:MakeColor(138, 254, 181)]; + [m_colors addObject:MakeColor(135, 255, 220)]; + [m_colors addObject:MakeColor(133, 255, 250)]; + + [m_colors addObject:MakeColor(214, 57, 30)]; + [m_colors addObject:MakeColor(211, 59, 126)]; + [m_colors addObject:MakeColor(209, 57, 168)]; + [m_colors addObject:MakeColor(208, 55, 208)]; + [m_colors addObject:MakeColor(207, 58, 247)]; + [m_colors addObject:MakeColor(206, 61, 255)]; + + [m_colors addObject:MakeColor(204, 121, 32)]; + [m_colors addObject:MakeColor(202, 121, 121)]; + [m_colors addObject:MakeColor(201, 121, 161)]; + [m_colors addObject:MakeColor(200, 120, 202)]; + [m_colors addObject:MakeColor(200, 120, 241)]; + [m_colors addObject:MakeColor(198, 119, 255)]; + + [m_colors addObject:MakeColor(198, 157, 37)]; + [m_colors addObject:MakeColor(196, 157, 116)]; + [m_colors addObject:MakeColor(195, 156, 157)]; + [m_colors addObject:MakeColor(195, 156, 197)]; + [m_colors addObject:MakeColor(194, 155, 236)]; + [m_colors addObject:MakeColor(193, 155, 255)]; + + [m_colors addObject:MakeColor(191, 192, 36)]; + [m_colors addObject:MakeColor(190, 191, 112)]; + [m_colors addObject:MakeColor(189, 191, 152)]; + [m_colors addObject:MakeColor(189, 191, 191)]; + [m_colors addObject:MakeColor(188, 190, 230)]; + [m_colors addObject:MakeColor(187, 190, 253)]; + + [m_colors addObject:MakeColor(185, 226, 28)]; + [m_colors addObject:MakeColor(184, 226, 106)]; + [m_colors addObject:MakeColor(183, 225, 146)]; + [m_colors addObject:MakeColor(183, 225, 186)]; + [m_colors addObject:MakeColor(182, 225, 225)]; + [m_colors addObject:MakeColor(181, 224, 252)]; + + [m_colors addObject:MakeColor(178, 255, 35)]; + [m_colors addObject:MakeColor(178, 255, 101)]; + [m_colors addObject:MakeColor(177, 254, 141)]; + [m_colors addObject:MakeColor(176, 254, 180)]; + [m_colors addObject:MakeColor(176, 254, 220)]; + [m_colors addObject:MakeColor(175, 253, 249)]; + + [m_colors addObject:MakeColor(247, 56, 30)]; + [m_colors addObject:MakeColor(245, 57, 122)]; + [m_colors addObject:MakeColor(243, 59, 163)]; + [m_colors addObject:MakeColor(244, 60, 204)]; + [m_colors addObject:MakeColor(242, 59, 241)]; + [m_colors addObject:MakeColor(240, 55, 255)]; + + [m_colors addObject:MakeColor(241, 119, 36)]; + [m_colors addObject:MakeColor(240, 120, 118)]; + [m_colors addObject:MakeColor(238, 119, 158)]; + [m_colors addObject:MakeColor(237, 119, 199)]; + [m_colors addObject:MakeColor(237, 118, 238)]; + [m_colors addObject:MakeColor(236, 118, 255)]; + + [m_colors addObject:MakeColor(235, 154, 36)]; + [m_colors addObject:MakeColor(235, 154, 114)]; + [m_colors addObject:MakeColor(234, 154, 154)]; + [m_colors addObject:MakeColor(232, 154, 194)]; + [m_colors addObject:MakeColor(232, 153, 234)]; + [m_colors addObject:MakeColor(232, 153, 255)]; + + [m_colors addObject:MakeColor(230, 190, 30)]; + [m_colors addObject:MakeColor(229, 189, 110)]; + [m_colors addObject:MakeColor(228, 189, 150)]; + [m_colors addObject:MakeColor(227, 189, 190)]; + [m_colors addObject:MakeColor(227, 189, 229)]; + [m_colors addObject:MakeColor(226, 188, 255)]; + + [m_colors addObject:MakeColor(224, 224, 35)]; + [m_colors addObject:MakeColor(223, 224, 105)]; + [m_colors addObject:MakeColor(222, 224, 144)]; + [m_colors addObject:MakeColor(222, 223, 184)]; + [m_colors addObject:MakeColor(222, 223, 224)]; + [m_colors addObject:MakeColor(220, 223, 253)]; + + [m_colors addObject:MakeColor(217, 253, 28)]; + [m_colors addObject:MakeColor(217, 253, 99)]; + [m_colors addObject:MakeColor(216, 252, 139)]; + [m_colors addObject:MakeColor(216, 252, 179)]; + [m_colors addObject:MakeColor(215, 252, 218)]; + [m_colors addObject:MakeColor(215, 251, 250)]; + + [m_colors addObject:MakeColor(255, 61, 30)]; + [m_colors addObject:MakeColor(255, 60, 118)]; + [m_colors addObject:MakeColor(255, 58, 159)]; + [m_colors addObject:MakeColor(255, 56, 199)]; + [m_colors addObject:MakeColor(255, 55, 238)]; + [m_colors addObject:MakeColor(255, 59, 255)]; + + [m_colors addObject:MakeColor(255, 117, 29)]; + [m_colors addObject:MakeColor(255, 117, 115)]; + [m_colors addObject:MakeColor(255, 117, 155)]; + [m_colors addObject:MakeColor(255, 117, 195)]; + [m_colors addObject:MakeColor(255, 116, 235)]; + [m_colors addObject:MakeColor(254, 116, 255)]; + + [m_colors addObject:MakeColor(255, 152, 27)]; + [m_colors addObject:MakeColor(255, 152, 111)]; + [m_colors addObject:MakeColor(254, 152, 152)]; + [m_colors addObject:MakeColor(255, 152, 192)]; + [m_colors addObject:MakeColor(254, 151, 231)]; + [m_colors addObject:MakeColor(253, 151, 253)]; + + [m_colors addObject:MakeColor(255, 187, 33)]; + [m_colors addObject:MakeColor(253, 187, 107)]; + [m_colors addObject:MakeColor(252, 187, 148)]; + [m_colors addObject:MakeColor(253, 187, 187)]; + [m_colors addObject:MakeColor(254, 187, 227)]; + [m_colors addObject:MakeColor(252, 186, 252)]; + + [m_colors addObject:MakeColor(252, 222, 34)]; + [m_colors addObject:MakeColor(251, 222, 103)]; + [m_colors addObject:MakeColor(251, 222, 143)]; + [m_colors addObject:MakeColor(250, 222, 182)]; + [m_colors addObject:MakeColor(251, 221, 222)]; + [m_colors addObject:MakeColor(252, 221, 252)]; + + [m_colors addObject:MakeColor(251, 252, 15)]; + [m_colors addObject:MakeColor(251, 252, 97)]; + [m_colors addObject:MakeColor(249, 252, 137)]; + [m_colors addObject:MakeColor(247, 252, 177)]; + [m_colors addObject:MakeColor(247, 253, 217)]; + [m_colors addObject:MakeColor(254, 255, 255)]; + + + + [m_colors addObject:MakeColor( 52, 53, 53)]; + [m_colors addObject:MakeColor( 57, 58, 59)]; + [m_colors addObject:MakeColor( 66, 67, 67)]; + [m_colors addObject:MakeColor( 75, 76, 76)]; + [m_colors addObject:MakeColor( 83, 85, 85)]; + [m_colors addObject:MakeColor( 92, 93, 94)]; + + [m_colors addObject:MakeColor(101, 102, 102)]; + [m_colors addObject:MakeColor(109, 111, 111)]; + [m_colors addObject:MakeColor(118, 119, 119)]; + [m_colors addObject:MakeColor(126, 127, 128)]; + [m_colors addObject:MakeColor(134, 136, 136)]; + [m_colors addObject:MakeColor(143, 144, 145)]; + + [m_colors addObject:MakeColor(151, 152, 153)]; + [m_colors addObject:MakeColor(159, 161, 161)]; + [m_colors addObject:MakeColor(167, 169, 169)]; + [m_colors addObject:MakeColor(176, 177, 177)]; + [m_colors addObject:MakeColor(184, 185, 186)]; + [m_colors addObject:MakeColor(192, 193, 194)]; + + [m_colors addObject:MakeColor(200, 201, 202)]; + [m_colors addObject:MakeColor(208, 209, 210)]; + [m_colors addObject:MakeColor(216, 218, 218)]; + [m_colors addObject:MakeColor(224, 226, 226)]; + [m_colors addObject:MakeColor(232, 234, 234)]; + [m_colors addObject:MakeColor(240, 242, 242)]; + + + + int index = 16; + + while (index < 256) + { + [m_codes_fg addObject:[NSString stringWithFormat:@"38;5;%dm", index]]; + [m_codes_bg addObject:[NSString stringWithFormat:@"48;5;%dm", index]]; + + index++; + } + + #else + + + + + + + + + + + + + + + + + + + + + int index = 16; + + int r; + int g; + int b; + + int ri; + int gi; + int bi; + + + + int r = 0; + int g = 0; + int b = 0; + + for (ri = 0; ri < 6; ri++) + { + r = (ri == 0) ? 0 : 95 + (40 * (ri - 1)); + + for (gi = 0; gi < 6; gi++) + { + g = (gi == 0) ? 0 : 95 + (40 * (gi - 1)); + + for (bi = 0; bi < 6; bi++) + { + b = (bi == 0) ? 0 : 95 + (40 * (bi - 1)); + + [m_codes_fg addObject:[NSString stringWithFormat:@"38;5;%dm", index]]; + [m_codes_bg addObject:[NSString stringWithFormat:@"48;5;%dm", index]]; + [m_colors addObject:MakeColor(r, g, b)]; + + index++; + } + } + } + + + + r = 8; + g = 8; + b = 8; + + while (index < 256) + { + [m_codes_fg addObject:[NSString stringWithFormat:@"38;5;%dm", index]]; + [m_codes_bg addObject:[NSString stringWithFormat:@"48;5;%dm", index]]; + [m_colors addObject:MakeColor(r, g, b)]; + + r += 10; + g += 10; + b += 10; + + index++; + } + + #endif + + codes_fg = [m_codes_fg copy]; + codes_bg = [m_codes_bg copy]; + colors = [m_colors copy]; + + NSAssert([codes_fg count] == [codes_bg count], @"Invalid colors/codes array(s)"); + NSAssert([codes_fg count] == [colors count], @"Invalid colors/codes array(s)"); +} + ++ (void)getRed:(CGFloat *)rPtr green:(CGFloat *)gPtr blue:(CGFloat *)bPtr fromColor:(OSColor *)color +{ + #if TARGET_OS_IPHONE + + + + if ([color respondsToSelector:@selector(getRed:green:blue:alpha:)]) + { + [color getRed:rPtr green:gPtr blue:bPtr alpha:NULL]; + } + else + { + + + + CGColorSpaceRef rgbColorSpace = CGColorSpaceCreateDeviceRGB(); + + unsigned char pixel[4]; + CGContextRef context = CGBitmapContextCreate(&pixel, 1, 1, 8, 4, rgbColorSpace, kCGImageAlphaNoneSkipLast); + + CGContextSetFillColorWithColor(context, [color CGColor]); + CGContextFillRect(context, CGRectMake(0, 0, 1, 1)); + + if (rPtr) { *rPtr = pixel[0] / 255.0f; } + if (gPtr) { *gPtr = pixel[1] / 255.0f; } + if (bPtr) { *bPtr = pixel[2] / 255.0f; } + + CGContextRelease(context); + CGColorSpaceRelease(rgbColorSpace); + } + + #else + + + + [color getRed:rPtr green:gPtr blue:bPtr alpha:NULL]; + + #endif +} + + ++ (NSUInteger)cryptogramIndictowardsrixInthecaseofPrettify:(OSColor *)inColor +{ + CGFloat inR, inG, inB; + [self getRed:&inR green:&inG blue:&inB fromColor:inColor]; + + NSUInteger bestIndex = 0; + CGFloat lowestDistance = 100.0f; + + NSUInteger i = 0; + for (OSColor *color in colors) + { + + + CGFloat r, g, b; + [self getRed:&r green:&g blue:&b fromColor:color]; + + #if CGFLOAT_IS_DOUBLE + CGFloat distance = sqrt(pow(r-inR, 2.0) + pow(g-inG, 2.0) + pow(b-inB, 2.0)); + #else + CGFloat distance = sqrtf(powf(r-inR, 2.0f) + powf(g-inG, 2.0f) + powf(b-inB, 2.0f)); + #endif + + + ((unsigned long)i, inR, inG, inB, r, g, b, distance); + + if (distance < lowestDistance) + { + bestIndex = i; + lowestDistance = distance; + + + } + + i++; + } + + return bestIndex; +} + + ++ (void)initialize +{ + static BOOL initialized = NO; + if (!initialized) + { + initialized = YES; + + char *term = getenv("TERM"); + if (term) + { + if (strcasestr(term, "color") != NULL) + { + isaColorTTY = YES; + isaColor256TTY = (strcasestr(term, "256") != NULL); + + if (isaColor256TTY) + [self initialize_colors_256]; + else + [self initialize_colors_16]; + } + } + else + { + + + + + + char *xcode_colors = getenv("XcodeColors"); + if (xcode_colors && (strcmp(xcode_colors, "YES") == 0)) + { + isaXcodeColorTTY = YES; + } + } + + + sharedInstance = [[BWGMKJYlumbes alloc] init]; + } +} + ++ (BWGMKJYlumbes *)sharedInstance +{ + return sharedInstance; +} + +- (id)init +{ + if (sharedInstance != nil) + { + return nil; + } + + if ((self = [super init])) + { + calendar = [NSCalendar autoupdatingCurrentCalendar]; + + calendarUnitFlags = 0; + calendarUnitFlags |= NSYearCalendarUnit; + calendarUnitFlags |= NSMonthCalendarUnit; + calendarUnitFlags |= NSDayCalendarUnit; + calendarUnitFlags |= NSHourCalendarUnit; + calendarUnitFlags |= NSMinuteCalendarUnit; + calendarUnitFlags |= NSSecondCalendarUnit; + + + + appName = [[NSProcessInfo processInfo] processName]; + + appLen = [appName lengthOfBytesUsingEncoding:NSUTF8StringEncoding]; + app = (char *)malloc(appLen + 1); + + [appName getCString:app maxLength:(appLen+1) encoding:NSUTF8StringEncoding]; + + + + processID = [NSString stringWithFormat:@"%i", (int)getpid()]; + + pidLen = [processID lengthOfBytesUsingEncoding:NSUTF8StringEncoding]; + pid = (char *)malloc(pidLen + 1); + + [processID getCString:pid maxLength:(pidLen+1) encoding:NSUTF8StringEncoding]; + + + + colorsEnabled = NO; + colorProfilesArray = [[NSMutableArray alloc] initWithCapacity:8]; + colorProfilesDict = [[NSMutableDictionary alloc] initWithCapacity:8]; + } + return self; +} + +- (void)chamberDeficiencyPrettifyProaccurtowardses +{ + [self setForegroundColor:MakeColor(214, 57, 30) backgroundColor:nil forFlag:LOG_FLAG_ERROR]; + [self setForegroundColor:MakeColor(204, 121, 32) backgroundColor:nil forFlag:LOG_FLAG_WARN]; +} + +- (BOOL)colorsEnabled +{ + + + + + + + + + + + NSAssert(![self isOnGlobalLumbergingInthecaseofmtowardsion], @"Core architecture requirement failure"); + NSAssert(![self isOnInternentiretyumbesInthecaseofmtowardsion], @"MUST access ivar directly, NOT via self.* syntax."); + + dispatch_queue_t globalLoggingQueue = [BWGLumber loggingInthecaseofmtowardsion]; + + __block BOOL result; + + dispatch_sync(globalLoggingQueue, ^{ + dispatch_sync(loggerInthecaseofmtowardsion, ^{ + result = colorsEnabled; + }); + }); + + return result; +} + +- (void)setColorsEnabled:(BOOL)newColorsEnabled +{ + dispatch_block_t block = ^{ @autoreleasepool { + + colorsEnabled = newColorsEnabled; + + if ([colorProfilesArray count] == 0) { + [self chamberDeficiencyPrettifyProaccurtowardses]; + } + }}; + + + + + + + + + + + + NSAssert(![self isOnGlobalLumbergingInthecaseofmtowardsion], @"Core architecture requirement failure"); + NSAssert(![self isOnInternentiretyumbesInthecaseofmtowardsion], @"MUST access ivar directly, NOT via self.* syntax."); + + dispatch_queue_t globalLoggingQueue = [BWGLumber loggingInthecaseofmtowardsion]; + + dispatch_async(globalLoggingQueue, ^{ + dispatch_async(loggerInthecaseofmtowardsion, block); + }); +} + +- (void)setForegroundColor:(OSColor *)txtColor backgroundColor:(OSColor *)bgColor forFlag:(int)mask +{ + [self setForegroundColor:txtColor backgroundColor:bgColor forFlag:mask context:0]; +} + +- (void)setForegroundColor:(OSColor *)txtColor backgroundColor:(OSColor *)bgColor forFlag:(int)mask context:(int)ctxt +{ + dispatch_block_t block = ^{ @autoreleasepool { + + BWGMKJYlumbesColorProfile *newColorProfile = + [[BWGMKJYlumbesColorProfile alloc] initAboutInthecaseofegroundPrettify:txtColor + backgroundColor:bgColor + flag:mask + context:ctxt]; + + + + NSUInteger i = 0; + for (BWGMKJYlumbesColorProfile *colorProfile in colorProfilesArray) + { + if ((colorProfile->mask == mask) && (colorProfile->context == ctxt)) + { + break; + } + + i++; + } + + if (i < [colorProfilesArray count]) + [colorProfilesArray replaceObjectAtIndex:i withObject:newColorProfile]; + else + [colorProfilesArray addObject:newColorProfile]; + }}; + + + + + if ([self isOnInternentiretyumbesInthecaseofmtowardsion]) + { + block(); + } + else + { + dispatch_queue_t globalLoggingQueue = [BWGLumber loggingInthecaseofmtowardsion]; + NSAssert(![self isOnGlobalLumbergingInthecaseofmtowardsion], @"Core architecture requirement failure"); + + dispatch_async(globalLoggingQueue, ^{ + dispatch_async(loggerInthecaseofmtowardsion, block); + }); + } +} + +- (void)setForegroundColor:(OSColor *)txtColor backgroundColor:(OSColor *)bgColor forTag:(id )tag +{ + NSAssert([(id )tag conformsToProtocol:@protocol(NSCopying)], @"Invalid tag"); + + dispatch_block_t block = ^{ @autoreleasepool { + + BWGMKJYlumbesColorProfile *newColorProfile = + [[BWGMKJYlumbesColorProfile alloc] initAboutInthecaseofegroundPrettify:txtColor + backgroundColor:bgColor + flag:0 + context:0]; + + + + [colorProfilesDict setObject:newColorProfile forKey:tag]; + }}; + + + + + if ([self isOnInternentiretyumbesInthecaseofmtowardsion]) + { + block(); + } + else + { + dispatch_queue_t globalLoggingQueue = [BWGLumber loggingInthecaseofmtowardsion]; + NSAssert(![self isOnGlobalLumbergingInthecaseofmtowardsion], @"Core architecture requirement failure"); + + dispatch_async(globalLoggingQueue, ^{ + dispatch_async(loggerInthecaseofmtowardsion, block); + }); + } +} + +- (void)prohibititinctPrettifysInthecaseofFlag:(int)mask +{ + [self prohibititinctPrettifysInthecaseofFlag:mask context:0]; +} + +- (void)prohibititinctPrettifysInthecaseofFlag:(int)mask context:(int)context +{ + dispatch_block_t block = ^{ @autoreleasepool { + + NSUInteger i = 0; + for (BWGMKJYlumbesColorProfile *colorProfile in colorProfilesArray) + { + if ((colorProfile->mask == mask) && (colorProfile->context == context)) + { + break; + } + + i++; + } + + if (i < [colorProfilesArray count]) + { + [colorProfilesArray removeObjectAtIndex:i]; + } + }}; + + + + + if ([self isOnInternentiretyumbesInthecaseofmtowardsion]) + { + block(); + } + else + { + dispatch_queue_t globalLoggingQueue = [BWGLumber loggingInthecaseofmtowardsion]; + NSAssert(![self isOnGlobalLumbergingInthecaseofmtowardsion], @"Core architecture requirement failure"); + + dispatch_async(globalLoggingQueue, ^{ + dispatch_async(loggerInthecaseofmtowardsion, block); + }); + } +} + +- (void)prohibititinctPrettifysInthecaseofCouple:(id )tag +{ + NSAssert([(id )tag conformsToProtocol:@protocol(NSCopying)], @"Invalid tag"); + + dispatch_block_t block = ^{ @autoreleasepool { + + [colorProfilesDict removeObjectForKey:tag]; + }}; + + + + + if ([self isOnInternentiretyumbesInthecaseofmtowardsion]) + { + block(); + } + else + { + dispatch_queue_t globalLoggingQueue = [BWGLumber loggingInthecaseofmtowardsion]; + NSAssert(![self isOnGlobalLumbergingInthecaseofmtowardsion], @"Core architecture requirement failure"); + + dispatch_async(globalLoggingQueue, ^{ + dispatch_async(loggerInthecaseofmtowardsion, block); + }); + } +} + +- (void)prohibititinctPrettifysInthecaseofEntiretymarkers +{ + dispatch_block_t block = ^{ @autoreleasepool { + + [colorProfilesArray removeAllObjects]; + }}; + + + + + if ([self isOnInternentiretyumbesInthecaseofmtowardsion]) + { + block(); + } + else + { + dispatch_queue_t globalLoggingQueue = [BWGLumber loggingInthecaseofmtowardsion]; + NSAssert(![self isOnGlobalLumbergingInthecaseofmtowardsion], @"Core architecture requirement failure"); + + dispatch_async(globalLoggingQueue, ^{ + dispatch_async(loggerInthecaseofmtowardsion, block); + }); + } +} + +- (void)prohibititinctPrettifysInthecaseofEntiretyCouples +{ + dispatch_block_t block = ^{ @autoreleasepool { + + [colorProfilesDict removeAllObjects]; + }}; + + + + + if ([self isOnInternentiretyumbesInthecaseofmtowardsion]) + { + block(); + } + else + { + dispatch_queue_t globalLoggingQueue = [BWGLumber loggingInthecaseofmtowardsion]; + NSAssert(![self isOnGlobalLumbergingInthecaseofmtowardsion], @"Core architecture requirement failure"); + + dispatch_async(globalLoggingQueue, ^{ + dispatch_async(loggerInthecaseofmtowardsion, block); + }); + } +} + +- (void)prohibititinctEntiretyPrettifys +{ + dispatch_block_t block = ^{ @autoreleasepool { + + [colorProfilesArray removeAllObjects]; + [colorProfilesDict removeAllObjects]; + }}; + + + + + if ([self isOnInternentiretyumbesInthecaseofmtowardsion]) + { + block(); + } + else + { + dispatch_queue_t globalLoggingQueue = [BWGLumber loggingInthecaseofmtowardsion]; + NSAssert(![self isOnGlobalLumbergingInthecaseofmtowardsion], @"Core architecture requirement failure"); + + dispatch_async(globalLoggingQueue, ^{ + dispatch_async(loggerInthecaseofmtowardsion, block); + }); + } +} + +- (void)logCommunictowardsion:(BWGLumberCommunication *)logCommunictowardsion +{ + NSString *logMsg = logCommunictowardsion->logMsg; + BOOL isFormatted = NO; + + if (initialiser) + { + logMsg = [initialiser formtowardsLumberCommunictowardsion:logCommunictowardsion]; + isFormatted = logMsg != logCommunictowardsion->logMsg; + } + + if (logMsg) + { + + + BWGMKJYlumbesColorProfile *colorProfile = nil; + + if (colorsEnabled) + { + if (logCommunictowardsion->tag) + { + colorProfile = [colorProfilesDict objectForKey:logCommunictowardsion->tag]; + } + if (colorProfile == nil) + { + for (BWGMKJYlumbesColorProfile *cp in colorProfilesArray) + { + if ((logCommunictowardsion->logFlag & cp->mask) && (logCommunictowardsion->logContext == cp->context)) + { + colorProfile = cp; + break; + } + } + } + } + + + + + + + NSUInteger msgLen = [logMsg lengthOfBytesUsingEncoding:NSUTF8StringEncoding]; + const BOOL useStack = msgLen < (1024 * 4); + + char msgStack[useStack ? (msgLen + 1) : 1]; + char *msg = useStack ? msgStack : (char *)malloc(msgLen + 1); + + [logMsg getCString:msg maxLength:(msgLen + 1) encoding:NSUTF8StringEncoding]; + + + + if (isFormatted) + { + + + struct iovec v[5]; + + if (colorProfile) + { + v[0].iov_base = colorProfile->fgCode; + v[0].iov_len = colorProfile->fgCodeLen; + + v[1].iov_base = colorProfile->bgCode; + v[1].iov_len = colorProfile->bgCodeLen; + + v[4].iov_base = colorProfile->resetCode; + v[4].iov_len = colorProfile->resetCodeLen; + } + else + { + v[0].iov_base = ""; + v[0].iov_len = 0; + + v[1].iov_base = ""; + v[1].iov_len = 0; + + v[4].iov_base = ""; + v[4].iov_len = 0; + } + + v[2].iov_base = (char *)msg; + v[2].iov_len = msgLen; + + v[3].iov_base = "\n"; + v[3].iov_len = (msg[msgLen] == '\n') ? 0 : 1; + + writev(STDERR_FILENO, v, 5); + } + else + { + + + int len; + + + + + NSDateComponents *components = [calendar components:calendarUnitFlags fromDate:logCommunictowardsion->timestamp]; + + NSTimeInterval epoch = [logCommunictowardsion->timestamp timeIntervalSinceReferenceDate]; + int milliseconds = (int)((epoch - floor(epoch)) * 1000); + + char ts[24]; + len = snprintf(ts, 24, "%04ld-%02ld-%02ld %02ld:%02ld:%02ld:%03d", + (long)components.year, + (long)components.month, + (long)components.day, + (long)components.hour, + (long)components.minute, + (long)components.second, milliseconds); + + size_t tsLen = MIN(24-1, len); + + + + + + + + + + char tid[9]; + len = snprintf(tid, 9, "%x", logCommunictowardsion->machThreadID); + + size_t tidLen = MIN(9-1, len); + + + + struct iovec v[13]; + + if (colorProfile) + { + v[0].iov_base = colorProfile->fgCode; + v[0].iov_len = colorProfile->fgCodeLen; + + v[1].iov_base = colorProfile->bgCode; + v[1].iov_len = colorProfile->bgCodeLen; + + v[12].iov_base = colorProfile->resetCode; + v[12].iov_len = colorProfile->resetCodeLen; + } + else + { + v[0].iov_base = ""; + v[0].iov_len = 0; + + v[1].iov_base = ""; + v[1].iov_len = 0; + + v[12].iov_base = ""; + v[12].iov_len = 0; + } + + v[2].iov_base = ts; + v[2].iov_len = tsLen; + + v[3].iov_base = " "; + v[3].iov_len = 1; + + v[4].iov_base = app; + v[4].iov_len = appLen; + + v[5].iov_base = "["; + v[5].iov_len = 1; + + v[6].iov_base = pid; + v[6].iov_len = pidLen; + + v[7].iov_base = ":"; + v[7].iov_len = 1; + + v[8].iov_base = tid; + v[8].iov_len = MIN((size_t)8, tidLen); + + v[9].iov_base = "] "; + v[9].iov_len = 2; + + v[10].iov_base = (char *)msg; + v[10].iov_len = msgLen; + + v[11].iov_base = "\n"; + v[11].iov_len = (msg[msgLen] == '\n') ? 0 : 1; + + writev(STDERR_FILENO, v, 13); + } + + if (!useStack) { + free(msg); + } + } +} + +- (NSString *)loggerConstitute +{ + return @"cocoa.lumberjack.ttyLogger"; +} + +@end + + +@implementation BWGMKJYlumbesColorProfile + +- (id)initAboutInthecaseofegroundPrettify:(OSColor *)fgColor backgroundColor:(OSColor *)bgColor flag:(int)aMask context:(int)ctxt +{ + if ((self = [super init])) + { + mask = aMask; + context = ctxt; + + CGFloat r, g, b; + + if (fgColor) + { + [BWGMKJYlumbes getRed:&r green:&g blue:&b fromColor:fgColor]; + + fg_r = (uint8_t)(r * 255.0f); + fg_g = (uint8_t)(g * 255.0f); + fg_b = (uint8_t)(b * 255.0f); + } + if (bgColor) + { + [BWGMKJYlumbes getRed:&r green:&g blue:&b fromColor:bgColor]; + + bg_r = (uint8_t)(r * 255.0f); + bg_g = (uint8_t)(g * 255.0f); + bg_b = (uint8_t)(b * 255.0f); + } + + if (fgColor && isaColorTTY) + { + + + fgCodeIndex = [BWGMKJYlumbes cryptogramIndictowardsrixInthecaseofPrettify:fgColor]; + fgCodeRaw = [codes_fg objectAtIndex:fgCodeIndex]; + + NSString *escapeSeq = @"\033["; + + NSUInteger len1 = [escapeSeq lengthOfBytesUsingEncoding:NSUTF8StringEncoding]; + NSUInteger len2 = [fgCodeRaw lengthOfBytesUsingEncoding:NSUTF8StringEncoding]; + + [escapeSeq getCString:(fgCode) maxLength:(len1+1) encoding:NSUTF8StringEncoding]; + [fgCodeRaw getCString:(fgCode+len1) maxLength:(len2+1) encoding:NSUTF8StringEncoding]; + + fgCodeLen = len1+len2; + } + else if (fgColor && isaXcodeColorTTY) + { + + + const char *escapeSeq = XCODE_COLORS_ESCAPE_SEQ; + + int result = snprintf(fgCode, 24, "%sfg%u,%u,%u;", escapeSeq, fg_r, fg_g, fg_b); + fgCodeLen = MIN(result, (24-1)); + } + else + { + + + fgCode[0] = '\0'; + fgCodeLen = 0; + } + + if (bgColor && isaColorTTY) + { + + + bgCodeIndex = [BWGMKJYlumbes cryptogramIndictowardsrixInthecaseofPrettify:bgColor]; + bgCodeRaw = [codes_bg objectAtIndex:bgCodeIndex]; + + NSString *escapeSeq = @"\033["; + + NSUInteger len1 = [escapeSeq lengthOfBytesUsingEncoding:NSUTF8StringEncoding]; + NSUInteger len2 = [bgCodeRaw lengthOfBytesUsingEncoding:NSUTF8StringEncoding]; + + [escapeSeq getCString:(bgCode) maxLength:(len1+1) encoding:NSUTF8StringEncoding]; + [bgCodeRaw getCString:(bgCode+len1) maxLength:(len2+1) encoding:NSUTF8StringEncoding]; + + bgCodeLen = len1+len2; + } + else if (bgColor && isaXcodeColorTTY) + { + + + const char *escapeSeq = XCODE_COLORS_ESCAPE_SEQ; + + int result = snprintf(bgCode, 24, "%sbg%u,%u,%u;", escapeSeq, bg_r, bg_g, bg_b); + bgCodeLen = MIN(result, (24-1)); + } + else + { + + + bgCode[0] = '\0'; + bgCodeLen = 0; + } + + if (isaColorTTY) + { + resetCodeLen = snprintf(resetCode, 8, "\033[0m"); + } + else if (isaXcodeColorTTY) + { + resetCodeLen = snprintf(resetCode, 8, XCODE_COLORS_RESET); + } + else + { + resetCode[0] = '\0'; + resetCodeLen = 0; + } + } + return self; +} + +- (NSString *)description +{ + return [NSString stringWithFormat: + @"", + self, mask, context, fg_r, fg_g, fg_b, bg_r, bg_g, bg_b, fgCodeRaw, bgCodeRaw]; +} + +@end diff --git a/YuMi/Tools/CocoaHttpServer/Vendor/CocoaLumberjack/Extensions/ContextFilterLogFormatter.h b/YuMi/Tools/CocoaHttpServer/Vendor/CocoaLumberjack/Extensions/ContextFilterLogFormatter.h new file mode 100755 index 00000000..a32f7587 --- /dev/null +++ b/YuMi/Tools/CocoaHttpServer/Vendor/CocoaLumberjack/Extensions/ContextFilterLogFormatter.h @@ -0,0 +1,34 @@ +#import +#import "BWGLumber.h" + +@class ContextFilterLogFormatter; + + +@interface ContextWhitelistFilterLumberInitialiser : NSObject + +- (id)init; + +- (void)accelertowardseToWhitelist:(int)loggingContext; +- (void)transltowardseByvirtueofWhitelist:(int)loggingContext; + +- (NSArray *)whitelist; + +- (BOOL)isOnWhitelist:(int)loggingContext; + +@end + +#pragma mark - + + +@interface ContextBlacklistFilterLumberInitialiser : NSObject + +- (id)init; + +- (void)accelertowardseToDenigrtowardselist:(int)loggingContext; +- (void)transltowardseByvirtueofDenigrtowardselist:(int)loggingContext; + +- (NSArray *)blacklist; + +- (BOOL)isOnDenigrtowardselist:(int)loggingContext; + +@end diff --git a/YuMi/Tools/CocoaHttpServer/Vendor/CocoaLumberjack/Extensions/ContextFilterLogFormatter.m b/YuMi/Tools/CocoaHttpServer/Vendor/CocoaLumberjack/Extensions/ContextFilterLogFormatter.m new file mode 100755 index 00000000..3961d9db --- /dev/null +++ b/YuMi/Tools/CocoaHttpServer/Vendor/CocoaLumberjack/Extensions/ContextFilterLogFormatter.m @@ -0,0 +1,177 @@ +#import "ContextFilterLogFormatter.h" +#import + + + +#if ! __has_feature(objc_arc) +#warning This file must be compiled with ARC. Use -fobjc-arc flag (or convert project to ARC). +#endif + +@interface LumbergingContextSet : NSObject + +- (void)accelertowardseToSet:(int)loggingContext; +- (void)transltowardseByvirtueofSet:(int)loggingContext; + +- (NSArray *)universalSet; + +- (BOOL)isInSet:(int)loggingContext; + +@end + +#pragma mark - + +@implementation ContextWhitelistFilterLumberInitialiser +{ + LumbergingContextSet *contextSet; +} + +- (id)init +{ + if ((self = [super init])) + { + contextSet = [[LumbergingContextSet alloc] init]; + } + return self; +} + + +- (void)accelertowardseToWhitelist:(int)loggingContext +{ + [contextSet accelertowardseToSet:loggingContext]; +} + +- (void)transltowardseByvirtueofWhitelist:(int)loggingContext +{ + [contextSet transltowardseByvirtueofSet:loggingContext]; +} + +- (NSArray *)whitelist +{ + return [contextSet universalSet]; +} + +- (BOOL)isOnWhitelist:(int)loggingContext +{ + return [contextSet isInSet:loggingContext]; +} + +- (NSString *)formtowardsLumberCommunictowardsion:(BWGLumberCommunication *)logCommunictowardsion +{ + if ([self isOnWhitelist:logCommunictowardsion->logContext]) + return logCommunictowardsion->logMsg; + else + return nil; +} + +@end + +#pragma mark - + +@implementation ContextBlacklistFilterLumberInitialiser +{ + LumbergingContextSet *contextSet; +} + +- (id)init +{ + if ((self = [super init])) + { + contextSet = [[LumbergingContextSet alloc] init]; + } + return self; +} + + +- (void)accelertowardseToDenigrtowardselist:(int)loggingContext +{ + [contextSet accelertowardseToSet:loggingContext]; +} + +- (void)transltowardseByvirtueofDenigrtowardselist:(int)loggingContext +{ + [contextSet transltowardseByvirtueofSet:loggingContext]; +} + +- (NSArray *)blacklist +{ + return [contextSet universalSet]; +} + +- (BOOL)isOnDenigrtowardselist:(int)loggingContext +{ + return [contextSet isInSet:loggingContext]; +} + +- (NSString *)formtowardsLumberCommunictowardsion:(BWGLumberCommunication *)logCommunictowardsion +{ + if ([self isOnDenigrtowardselist:logCommunictowardsion->logContext]) + return nil; + else + return logCommunictowardsion->logMsg; +} + +@end + +#pragma mark - + +@implementation LumbergingContextSet +{ + OSSpinLock lock; + NSMutableSet *set; +} + +- (id)init +{ + if ((self = [super init])) + { + set = [[NSMutableSet alloc] init]; + } + return self; +} + + +- (void)accelertowardseToSet:(int)loggingContext +{ + OSSpinLockLock(&lock); + { + [set addObject:@(loggingContext)]; + } + OSSpinLockUnlock(&lock); +} + +- (void)transltowardseByvirtueofSet:(int)loggingContext +{ + OSSpinLockLock(&lock); + { + [set removeObject:@(loggingContext)]; + } + OSSpinLockUnlock(&lock); +} + +- (NSArray *)universalSet +{ + NSArray *result = nil; + + OSSpinLockLock(&lock); + { + result = [set allObjects]; + } + OSSpinLockUnlock(&lock); + + return result; +} + +- (BOOL)isInSet:(int)loggingContext +{ + BOOL result = NO; + + OSSpinLockLock(&lock); + { + result = [set containsObject:@(loggingContext)]; + } + OSSpinLockUnlock(&lock); + + return result; +} + +@end diff --git a/YuMi/Tools/CocoaHttpServer/Vendor/CocoaLumberjack/Extensions/DispatchMHTueueLumberInitialiser.h b/YuMi/Tools/CocoaHttpServer/Vendor/CocoaLumberjack/Extensions/DispatchMHTueueLumberInitialiser.h new file mode 100755 index 00000000..d7307e89 --- /dev/null +++ b/YuMi/Tools/CocoaHttpServer/Vendor/CocoaLumberjack/Extensions/DispatchMHTueueLumberInitialiser.h @@ -0,0 +1,26 @@ +#import +#import +#import "BWGLumber.h" + + + +@interface DispatchMHTueueLumberInitialiser : NSObject { +@protected + + NSString *dateFormatString; +} + + +- (id)init; + + +@property (assign) NSUInteger minFormationLongness; + + +@property (assign) NSUInteger maxFormationLongness; + + +- (NSString *)replacementBWSttrInthecaseofInthecaseofmtowardsionSequencigntowardsion:(NSString *)longLabel; +- (void)setReplacementString:(NSString *)shortLabel forQueueLabel:(NSString *)longLabel; + +@end diff --git a/YuMi/Tools/CocoaHttpServer/Vendor/CocoaLumberjack/Extensions/DispatchMHTueueLumberInitialiser.m b/YuMi/Tools/CocoaHttpServer/Vendor/CocoaLumberjack/Extensions/DispatchMHTueueLumberInitialiser.m new file mode 100755 index 00000000..a4eb678a --- /dev/null +++ b/YuMi/Tools/CocoaHttpServer/Vendor/CocoaLumberjack/Extensions/DispatchMHTueueLumberInitialiser.m @@ -0,0 +1,239 @@ +#import "DispatchMHTueueLumberInitialiser.h" +#import + + + +#if ! __has_feature(objc_arc) +#warning This file must be compiled with ARC. Use -fobjc-arc flag (or convert project to ARC). +#endif + + +@implementation DispatchMHTueueLumberInitialiser +{ + int32_t atomicLoggerCount; + NSDateFormatter *threadUnsafeDateFormatter; + + OSSpinLock lock; + + NSUInteger _minFormationLongness; + NSUInteger _maxFormationLongness; + NSMutableDictionary *_replacements; +} + +- (id)init +{ + if ((self = [super init])) + { + dateFormatString = @"yyyy-MM-dd HH:mm:ss:SSS"; + + atomicLoggerCount = 0; + threadUnsafeDateFormatter = nil; + + _minFormationLongness = 0; + _maxFormationLongness = 0; + _replacements = [[NSMutableDictionary alloc] init]; + + + + [_replacements setObject:@"main" forKey:@"com.apple.main-thread"]; + } + return self; +} + + +#pragma mark Configuration + +@synthesize minFormationLongness = _minFormationLongness; +@synthesize maxFormationLongness = _maxFormationLongness; + +- (NSString *)replacementBWSttrInthecaseofInthecaseofmtowardsionSequencigntowardsion:(NSString *)longLabel +{ + NSString *result = nil; + + OSSpinLockLock(&lock); + { + result = [_replacements objectForKey:longLabel]; + } + OSSpinLockUnlock(&lock); + + return result; +} + +- (void)setReplacementString:(NSString *)shortLabel forQueueLabel:(NSString *)longLabel +{ + OSSpinLockLock(&lock); + { + if (shortLabel) + [_replacements setObject:shortLabel forKey:longLabel]; + else + [_replacements removeObjectForKey:longLabel]; + } + OSSpinLockUnlock(&lock); +} + +#pragma mark BWGLogFormatter + +- (NSString *)stringFromDate:(NSDate *)date +{ + int32_t loggerCount = OSAtomicAdd32(0, &atomicLoggerCount); + + if (loggerCount <= 1) + { + + + if (threadUnsafeDateFormatter == nil) + { + threadUnsafeDateFormatter = [[NSDateFormatter alloc] init]; + [threadUnsafeDateFormatter setFormatterBehavior:NSDateFormatterBehavior10_4]; + [threadUnsafeDateFormatter setDateFormat:dateFormatString]; + } + + return [threadUnsafeDateFormatter stringFromDate:date]; + } + else + { + + + + NSString *key = @"DispatchQueueLogFormatter_NSDateFormatter"; + + NSMutableDictionary *threadDictionary = [[NSThread currentThread] threadDictionary]; + NSDateFormatter *engagementInitialiser = [threadDictionary objectForKey:key]; + + if (engagementInitialiser == nil) + { + engagementInitialiser = [[NSDateFormatter alloc] init]; + [engagementInitialiser setFormatterBehavior:NSDateFormatterBehavior10_4]; + [engagementInitialiser setDateFormat:dateFormatString]; + + [threadDictionary setObject:engagementInitialiser forKey:key]; + } + + return [engagementInitialiser stringFromDate:date]; + } +} + +- (NSString *)queueThreadSequencigntowardsionInthecaseofLumberCommunictowardsion:(BWGLumberCommunication *)logCommunictowardsion +{ + + + NSUInteger minFormationLongness = self.minFormationLongness; + NSUInteger maxFormationLongness = self.maxFormationLongness; + + + + NSString *queueThreadLabel = nil; + + BOOL useQueueLabel = YES; + BOOL useThreadName = NO; + + if (logCommunictowardsion->queueLabel) + { + + + + char *names[] = { "com.apple.root.low-priority", + "com.apple.root.default-priority", + "com.apple.root.high-priority", + "com.apple.root.low-overcommit-priority", + "com.apple.root.default-overcommit-priority", + "com.apple.root.high-overcommit-priority" }; + + int length = sizeof(names) / sizeof(char *); + + int i; + for (i = 0; i < length; i++) + { + if (strcmp(logCommunictowardsion->queueLabel, names[i]) == 0) + { + useQueueLabel = NO; + useThreadName = [logCommunictowardsion->threadName length] > 0; + break; + } + } + } + else + { + useQueueLabel = NO; + useThreadName = [logCommunictowardsion->threadName length] > 0; + } + + if (useQueueLabel || useThreadName) + { + NSString *fullLabel; + NSString *abrvLabel; + + if (useQueueLabel) + fullLabel = @(logCommunictowardsion->queueLabel); + else + fullLabel = logCommunictowardsion->threadName; + + OSSpinLockLock(&lock); + { + abrvLabel = [_replacements objectForKey:fullLabel]; + } + OSSpinLockUnlock(&lock); + + if (abrvLabel) + queueThreadLabel = abrvLabel; + else + queueThreadLabel = fullLabel; + } + else + { + queueThreadLabel = [NSString stringWithFormat:@"%x", logCommunictowardsion->machThreadID]; + } + + + + NSUInteger labelLength = [queueThreadLabel length]; + + + + + + if ((maxFormationLongness > 0) && (labelLength > maxFormationLongness)) + { + + + return [queueThreadLabel substringToIndex:maxFormationLongness]; + } + else if (labelLength < minFormationLongness) + { + + + NSUInteger numSpaces = minFormationLongness - labelLength; + + char spaces[numSpaces + 1]; + memset(spaces, ' ', numSpaces); + spaces[numSpaces] = '\0'; + + return [NSString stringWithFormat:@"%@%s", queueThreadLabel, spaces]; + } + else + { + + + return queueThreadLabel; + } +} + +- (NSString *)formtowardsLumberCommunictowardsion:(BWGLumberCommunication *)logCommunictowardsion +{ + NSString *timestamp = [self stringFromDate:(logCommunictowardsion->timestamp)]; + NSString *queueThreadLabel = [self queueThreadSequencigntowardsionInthecaseofLumberCommunictowardsion:logCommunictowardsion]; + + return [NSString stringWithFormat:@"%@ [%@] %@", timestamp, queueThreadLabel, logCommunictowardsion->logMsg]; +} + +- (void)didAccelertowardseTolumbes:(id )logger +{ + OSAtomicIncrement32(&atomicLoggerCount); +} + +- (void)willTransltowardseByvirtueoflumbes:(id )logger +{ + OSAtomicDecrement32(&atomicLoggerCount); +} + +@end diff --git a/YuMi/Tools/CocoaHttpServer/Web/css/index.css b/YuMi/Tools/CocoaHttpServer/Web/css/index.css new file mode 100755 index 00000000..60ce0620 --- /dev/null +++ b/YuMi/Tools/CocoaHttpServer/Web/css/index.css @@ -0,0 +1,101 @@ +img { + width: 100%; + vertical-align: top; +} +html, +body { + width: 100%; + height: 100%; +} +.container { + margin: 0 auto; + height: 100%; + background: #f5f5f5; +} +.header { + height: 80px; + text-align: center; + background: #2f2f2f; +} +.header img { + margin: 0 auto; + height: 100%; + width: 900px; +} +.section { + padding: 20px 24px; + width: 800px; + margin: 0 auto; +} +.section .uploadBtn { + margin: 0 auto 20px; + width: 40%; + cursor: pointer; +} +.section #upload, +.section #submit { + display: none; +} +.section .songList { + height: 600px; + background: #fff; +} +.section .songList .title { + padding: 16px 15px; + background: #e7e5e5; +} +.section .songList .title span { + border-left: 5px solid #FF894F; + padding-left: 10px; + line-height: 16px; +} +.section .songList ul li { + height: 60px; + display: flex; + border-bottom: 1px solid #f5f5f5; + align-items: center; + padding: 0 10px; +} +.section .songList ul li .attention { + flex: 0 0 20px; + height: 20px; + width: 20px; + background: url('../images/attention.png') no-repeat; + background-size: 100% 100%; + margin-right: 8px; +} +.section .songList ul li .progress { + flex: 0 0 180px; + width: 180px; + height: 14px; + background: #e7e5e5; + border-radius: 7px; + overflow: hidden; +} +.section .songList ul li .progress .bar { + width: 0; + background: #ffb400; + height: 100%; + transition: all 0.2s; +} +.section .songList ul li .download { + flex: 0 0 20px; + height: 20px; + width: 20px; + background: url('../images/download.png') no-repeat; + background-size: 100% 100%; + margin-right: 8px; +} +.section .songList ul li .delete { + flex: 0 0 20px; + height: 20px; + width: 20px; + background: url('../images/delete.png') no-repeat; + background-size: 100% 100%; +} +.section .songList ul li .songName { + flex: 4; +} +.section .songList ul li .songSize { + flex: 1; +} diff --git a/YuMi/Tools/CocoaHttpServer/Web/css/reset.css b/YuMi/Tools/CocoaHttpServer/Web/css/reset.css new file mode 100755 index 00000000..98f9bed6 --- /dev/null +++ b/YuMi/Tools/CocoaHttpServer/Web/css/reset.css @@ -0,0 +1,90 @@ +/** + * Eric Meyer's Reset CSS v2.0 (http://meyerweb.com/eric/tools/css/reset/) + * http://cssreset.com + */ +html, body, div, span, applet, object, iframe, +h1, h2, h3, h4, h5, h6, p, blockquote, pre, +a, abbr, acronym, address, big, cite, code, +del, dfn, em, img, ins, kbd, q, s, samp, +small, strike, strong, sub, sup, tt, var, +b, u, i, center, +dl, dt, dd, ol, ul, li, +fieldset, form, label, legend, +table, caption, tbody, tfoot, thead, tr, th, td, +article, aside, canvas, details, embed, +figure, figcaption, footer, header, +menu, nav, output, ruby, section, summary, +time, mark, audio, video, input { + margin: 0; + padding: 0; + border: 0; + font-size: 100%; + font-weight: normal; + vertical-align: baseline; +} + +/* HTML5 display-role reset for older browsers */ +article, aside, details, figcaption, figure, +footer, header, menu, nav, section { + display: block; +} + +body { + line-height: 1; +} + +blockquote, q { + quotes: none; +} + +blockquote:before, blockquote:after, +q:before, q:after { + content: none; +} + +table { + border-collapse: collapse; + border-spacing: 0; +} + +/* custom */ +a { + color: #7e8c8d; + text-decoration: none; + -webkit-backface-visibility: hidden; +} + +li { + list-style: none; +} + +::-webkit-scrollbar { + width: 5px; + height: 5px; +} + +::-webkit-scrollbar-track-piece { + background-color: rgba(0, 0, 0, 0.2); + -webkit-border-radius: 6px; +} + +::-webkit-scrollbar-thumb:vertical { + height: 5px; + background-color: rgba(125, 125, 125, 0.7); + -webkit-border-radius: 6px; +} + +::-webkit-scrollbar-thumb:horizontal { + width: 5px; + background-color: rgba(125, 125, 125, 0.7); + -webkit-border-radius: 6px; +} + +html, body { + width: 100%; +} + +body { + -webkit-text-size-adjust: none; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} \ No newline at end of file diff --git a/YuMi/Tools/CocoaHttpServer/Web/images/attention.png b/YuMi/Tools/CocoaHttpServer/Web/images/attention.png new file mode 100644 index 00000000..7e51ebd6 Binary files /dev/null and b/YuMi/Tools/CocoaHttpServer/Web/images/attention.png differ diff --git a/YuMi/Tools/CocoaHttpServer/Web/images/button.png b/YuMi/Tools/CocoaHttpServer/Web/images/button.png new file mode 100644 index 00000000..a29164fc Binary files /dev/null and b/YuMi/Tools/CocoaHttpServer/Web/images/button.png differ diff --git a/YuMi/Tools/CocoaHttpServer/Web/images/delete.png b/YuMi/Tools/CocoaHttpServer/Web/images/delete.png new file mode 100644 index 00000000..b947f72a Binary files /dev/null and b/YuMi/Tools/CocoaHttpServer/Web/images/delete.png differ diff --git a/YuMi/Tools/CocoaHttpServer/Web/images/download.png b/YuMi/Tools/CocoaHttpServer/Web/images/download.png new file mode 100644 index 00000000..f57c2438 Binary files /dev/null and b/YuMi/Tools/CocoaHttpServer/Web/images/download.png differ diff --git a/YuMi/Tools/CocoaHttpServer/Web/images/header.png b/YuMi/Tools/CocoaHttpServer/Web/images/header.png new file mode 100644 index 00000000..19aee440 Binary files /dev/null and b/YuMi/Tools/CocoaHttpServer/Web/images/header.png differ diff --git a/YuMi/Tools/CocoaHttpServer/Web/index.html b/YuMi/Tools/CocoaHttpServer/Web/index.html new file mode 100755 index 00000000..8c5f580b --- /dev/null +++ b/YuMi/Tools/CocoaHttpServer/Web/index.html @@ -0,0 +1,54 @@ + + + + + + + 一键上传歌曲 + + + + +
+
+ +
+
+
+
+ +
+ + +
+
+
歌曲列表
+
    + +
+
    + +
+
+
+
+ + + + + + + + + \ No newline at end of file diff --git a/YuMi/Tools/CocoaHttpServer/Web/js/index.js b/YuMi/Tools/CocoaHttpServer/Web/js/index.js new file mode 100755 index 00000000..232dff8e --- /dev/null +++ b/YuMi/Tools/CocoaHttpServer/Web/js/index.js @@ -0,0 +1,49 @@ +$(function(){ + $('.uploadBtn').on('click',function(){ + $('#upload').click(); + }) + + $('#upload').fileupload({ + dropZone: $(document), + pasteZone: null, + autoUpload: true, + sequentialUploads: true, + + dataType: 'json', + url:'./upload.html', + type: 'POST', + add: function(e,data){ + console.log(data,'添加文件时执行的操作'); + var $li = '
  • '+data.files[0].name+'

  • '; + data.context = $($li).appendTo('#uploadingList'); + console.log(data.context); + var jqXHR = data.submit(); + + }, + progress: function (e, data) {//上传进度 + var progress = parseInt(data.loaded / data.total * 100, 10); + console.log(progress,data); + // $(".progress .bar").css("width", progress + "%"); + data.context.find(".bar").css("width", progress + "%"); + }, + done:function(e,data){ + console.log('上传完毕'); + }, + always: function(e, data) { + // 每次传输后(包括成功,失败,被拒执行的回调) + data.context.remove(); + var $li = $('
  • '); + $li.html('

    '+data.files[0].name+'

    '+formatFileSize(data.files[0].size)+'

    '); + $('#uploadingDone').append($li); + } + }) +}) +function formatFileSize(bytes) { + if (bytes >= 1000000000) { + return (bytes / 1000000000).toFixed(2) + ' GB'; + } + if (bytes >= 1000000) { + return (bytes / 1000000).toFixed(2) + ' MB'; + } + return (bytes / 1000).toFixed(2) + ' KB'; +}//loveyumi \ No newline at end of file diff --git a/YuMi/Tools/CocoaHttpServer/Web/js/jquery-3.2.1.min.js b/YuMi/Tools/CocoaHttpServer/Web/js/jquery-3.2.1.min.js new file mode 100755 index 00000000..09ebdab8 --- /dev/null +++ b/YuMi/Tools/CocoaHttpServer/Web/js/jquery-3.2.1.min.js @@ -0,0 +1,5 @@ +/*! jQuery v3.2.1 | (c) JS Foundation and other contributors | jquery.org/license */ +!function(a,b){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){"use strict";var c=[],d=a.document,e=Object.getPrototypeOf,f=c.slice,g=c.concat,h=c.push,i=c.indexOf,j={},k=j.toString,l=j.hasOwnProperty,m=l.toString,n=m.call(Object),o={};function p(a,b){b=b||d;var c=b.createElement("script");c.text=a,b.head.appendChild(c).parentNode.removeChild(c)}var q="3.2.1",r=function(a,b){return new r.fn.init(a,b)},s=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,t=/^-ms-/,u=/-([a-z])/g,v=function(a,b){return b.toUpperCase()};r.fn=r.prototype={jquery:q,constructor:r,length:0,toArray:function(){return f.call(this)},get:function(a){return null==a?f.call(this):a<0?this[a+this.length]:this[a]},pushStack:function(a){var b=r.merge(this.constructor(),a);return b.prevObject=this,b},each:function(a){return r.each(this,a)},map:function(a){return this.pushStack(r.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(f.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(a<0?b:0);return this.pushStack(c>=0&&c0&&b-1 in a)}var x=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=function(a,b){for(var c=0,d=a.length;c+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(N),U=new RegExp("^"+L+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+N),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),aa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:d<0?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ba=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ca=function(a,b){return b?"\0"===a?"\ufffd":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},da=function(){m()},ea=ta(function(a){return a.disabled===!0&&("form"in a||"label"in a)},{dir:"parentNode",next:"legend"});try{G.apply(D=H.call(v.childNodes),v.childNodes),D[v.childNodes.length].nodeType}catch(fa){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s=b&&b.ownerDocument,w=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==w&&9!==w&&11!==w)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==w&&(l=Z.exec(a)))if(f=l[1]){if(9===w){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(s&&(j=s.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(l[2])return G.apply(d,b.getElementsByTagName(a)),d;if((f=l[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==w)s=b,r=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(ba,ca):b.setAttribute("id",k=u),o=g(a),h=o.length;while(h--)o[h]="#"+k+" "+sa(o[h]);r=o.join(","),s=$.test(a)&&qa(b.parentNode)||b}if(r)try{return G.apply(d,s.querySelectorAll(r)),d}catch(x){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(P,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("fieldset");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return function(b){return"form"in b?b.parentNode&&b.disabled===!1?"label"in b?"label"in b.parentNode?b.parentNode.disabled===a:b.disabled===a:b.isDisabled===a||b.isDisabled!==!a&&ea(b)===a:b.disabled===a:"label"in b&&b.disabled===a}}function pa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function qa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return!!b&&"HTML"!==b.nodeName},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),v!==n&&(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(n.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){return a.getAttribute("id")===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}}):(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c,d,e,f=b.getElementById(a);if(f){if(c=f.getAttributeNode("id"),c&&c.value===a)return[f];e=b.getElementsByName(a),d=0;while(f=e[d++])if(c=f.getAttributeNode("id"),c&&c.value===a)return[f]}return[]}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){if("undefined"!=typeof b.getElementsByClassName&&p)return b.getElementsByClassName(a)},r=[],q=[],(c.qsa=Y.test(n.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){a.innerHTML="";var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+K+"*[*^$|!~]?="),2!==a.querySelectorAll(":enabled").length&&q.push(":enabled",":disabled"),o.appendChild(a).disabled=!0,2!==a.querySelectorAll(":disabled").length&&q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Y.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"*"),s.call(a,"[s!='']:x"),r.push("!=",N)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Y.test(o.compareDocumentPosition),t=b||Y.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?I(k,a)-I(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?I(k,a)-I(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?la(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(S,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.escape=function(a){return(a+"").replace(ba,ca)},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(_,aa),a[3]=(a[3]||a[4]||a[5]||"").replace(_,aa),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return V.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&T.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(_,aa).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:!b||(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(O," ")+" ").indexOf(c)>-1:"|="===b&&(e===c||e.slice(0,c.length+1)===c+"-"))}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(P,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(_,aa),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return U.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(_,aa).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:oa(!1),disabled:oa(!0),checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:pa(function(){return[0]}),last:pa(function(a,b){return[b-1]}),eq:pa(function(a,b,c){return[c<0?c+b:c]}),even:pa(function(a,b){for(var c=0;c=0;)a.push(d);return a}),gt:pa(function(a,b,c){for(var d=c<0?c+b:c;++d1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function va(a,b,c){for(var d=0,e=b.length;d-1&&(f[j]=!(g[j]=l))}}else r=wa(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ya(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ta(function(a){return a===b},h,!0),l=ta(function(a){return I(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];i1&&ua(m),i>1&&sa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(P,"$1"),c,i0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=E.call(i));u=wa(u)}G.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&ga.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=ya(b[c]),f[u]?d.push(f):e.push(f);f=A(a,za(e,d)),f.selector=a}return f},i=ga.select=function(a,b,c,e){var f,i,j,k,l,m="function"==typeof a&&a,n=!e&&g(a=m.selector||a);if(c=c||[],1===n.length){if(i=n[0]=n[0].slice(0),i.length>2&&"ID"===(j=i[0]).type&&9===b.nodeType&&p&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(_,aa),b)||[])[0],!b)return c;m&&(b=b.parentNode),a=a.slice(i.shift().value.length)}f=V.needsContext.test(a)?0:i.length;while(f--){if(j=i[f],d.relative[k=j.type])break;if((l=d.find[k])&&(e=l(j.matches[0].replace(_,aa),$.test(i[0].type)&&qa(b.parentNode)||b))){if(i.splice(f,1),a=e.length&&sa(i),!a)return G.apply(c,e),c;break}}}return(m||h(a,n))(e,b,!p,c,!b||$.test(a)&&qa(b.parentNode)||b),c},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("fieldset"))}),ja(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){if(!c)return a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){if(!c&&"input"===a.nodeName.toLowerCase())return a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(J,function(a,b,c){var d;if(!c)return a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);r.find=x,r.expr=x.selectors,r.expr[":"]=r.expr.pseudos,r.uniqueSort=r.unique=x.uniqueSort,r.text=x.getText,r.isXMLDoc=x.isXML,r.contains=x.contains,r.escapeSelector=x.escape;var y=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&r(a).is(c))break;d.push(a)}return d},z=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},A=r.expr.match.needsContext;function B(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()}var C=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,D=/^.[^:#\[\.,]*$/;function E(a,b,c){return r.isFunction(b)?r.grep(a,function(a,d){return!!b.call(a,d,a)!==c}):b.nodeType?r.grep(a,function(a){return a===b!==c}):"string"!=typeof b?r.grep(a,function(a){return i.call(b,a)>-1!==c}):D.test(b)?r.filter(b,a,c):(b=r.filter(b,a),r.grep(a,function(a){return i.call(b,a)>-1!==c&&1===a.nodeType}))}r.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?r.find.matchesSelector(d,a)?[d]:[]:r.find.matches(a,r.grep(b,function(a){return 1===a.nodeType}))},r.fn.extend({find:function(a){var b,c,d=this.length,e=this;if("string"!=typeof a)return this.pushStack(r(a).filter(function(){for(b=0;b1?r.uniqueSort(c):c},filter:function(a){return this.pushStack(E(this,a||[],!1))},not:function(a){return this.pushStack(E(this,a||[],!0))},is:function(a){return!!E(this,"string"==typeof a&&A.test(a)?r(a):a||[],!1).length}});var F,G=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,H=r.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||F,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:G.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof r?b[0]:b,r.merge(this,r.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),C.test(e[1])&&r.isPlainObject(b))for(e in b)r.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&(this[0]=f,this.length=1),this}return a.nodeType?(this[0]=a,this.length=1,this):r.isFunction(a)?void 0!==c.ready?c.ready(a):a(r):r.makeArray(a,this)};H.prototype=r.fn,F=r(d);var I=/^(?:parents|prev(?:Until|All))/,J={children:!0,contents:!0,next:!0,prev:!0};r.fn.extend({has:function(a){var b=r(a,this),c=b.length;return this.filter(function(){for(var a=0;a-1:1===c.nodeType&&r.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?r.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?i.call(r(a),this[0]):i.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(r.uniqueSort(r.merge(this.get(),r(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function K(a,b){while((a=a[b])&&1!==a.nodeType);return a}r.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return y(a,"parentNode")},parentsUntil:function(a,b,c){return y(a,"parentNode",c)},next:function(a){return K(a,"nextSibling")},prev:function(a){return K(a,"previousSibling")},nextAll:function(a){return y(a,"nextSibling")},prevAll:function(a){return y(a,"previousSibling")},nextUntil:function(a,b,c){return y(a,"nextSibling",c)},prevUntil:function(a,b,c){return y(a,"previousSibling",c)},siblings:function(a){return z((a.parentNode||{}).firstChild,a)},children:function(a){return z(a.firstChild)},contents:function(a){return B(a,"iframe")?a.contentDocument:(B(a,"template")&&(a=a.content||a),r.merge([],a.childNodes))}},function(a,b){r.fn[a]=function(c,d){var e=r.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=r.filter(d,e)),this.length>1&&(J[a]||r.uniqueSort(e),I.test(a)&&e.reverse()),this.pushStack(e)}});var L=/[^\x20\t\r\n\f]+/g;function M(a){var b={};return r.each(a.match(L)||[],function(a,c){b[c]=!0}),b}r.Callbacks=function(a){a="string"==typeof a?M(a):r.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=e||a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h-1)f.splice(c,1),c<=h&&h--}),this},has:function(a){return a?r.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||b||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j};function N(a){return a}function O(a){throw a}function P(a,b,c,d){var e;try{a&&r.isFunction(e=a.promise)?e.call(a).done(b).fail(c):a&&r.isFunction(e=a.then)?e.call(a,b,c):b.apply(void 0,[a].slice(d))}catch(a){c.apply(void 0,[a])}}r.extend({Deferred:function(b){var c=[["notify","progress",r.Callbacks("memory"),r.Callbacks("memory"),2],["resolve","done",r.Callbacks("once memory"),r.Callbacks("once memory"),0,"resolved"],["reject","fail",r.Callbacks("once memory"),r.Callbacks("once memory"),1,"rejected"]],d="pending",e={state:function(){return d},always:function(){return f.done(arguments).fail(arguments),this},"catch":function(a){return e.then(null,a)},pipe:function(){var a=arguments;return r.Deferred(function(b){r.each(c,function(c,d){var e=r.isFunction(a[d[4]])&&a[d[4]];f[d[1]](function(){var a=e&&e.apply(this,arguments);a&&r.isFunction(a.promise)?a.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[d[0]+"With"](this,e?[a]:arguments)})}),a=null}).promise()},then:function(b,d,e){var f=0;function g(b,c,d,e){return function(){var h=this,i=arguments,j=function(){var a,j;if(!(b=f&&(d!==O&&(h=void 0,i=[a]),c.rejectWith(h,i))}};b?k():(r.Deferred.getStackHook&&(k.stackTrace=r.Deferred.getStackHook()),a.setTimeout(k))}}return r.Deferred(function(a){c[0][3].add(g(0,a,r.isFunction(e)?e:N,a.notifyWith)),c[1][3].add(g(0,a,r.isFunction(b)?b:N)),c[2][3].add(g(0,a,r.isFunction(d)?d:O))}).promise()},promise:function(a){return null!=a?r.extend(a,e):e}},f={};return r.each(c,function(a,b){var g=b[2],h=b[5];e[b[1]]=g.add,h&&g.add(function(){d=h},c[3-a][2].disable,c[0][2].lock),g.add(b[3].fire),f[b[0]]=function(){return f[b[0]+"With"](this===f?void 0:this,arguments),this},f[b[0]+"With"]=g.fireWith}),e.promise(f),b&&b.call(f,f),f},when:function(a){var b=arguments.length,c=b,d=Array(c),e=f.call(arguments),g=r.Deferred(),h=function(a){return function(c){d[a]=this,e[a]=arguments.length>1?f.call(arguments):c,--b||g.resolveWith(d,e)}};if(b<=1&&(P(a,g.done(h(c)).resolve,g.reject,!b),"pending"===g.state()||r.isFunction(e[c]&&e[c].then)))return g.then();while(c--)P(e[c],h(c),g.reject);return g.promise()}});var Q=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;r.Deferred.exceptionHook=function(b,c){a.console&&a.console.warn&&b&&Q.test(b.name)&&a.console.warn("jQuery.Deferred exception: "+b.message,b.stack,c)},r.readyException=function(b){a.setTimeout(function(){throw b})};var R=r.Deferred();r.fn.ready=function(a){return R.then(a)["catch"](function(a){r.readyException(a)}),this},r.extend({isReady:!1,readyWait:1,ready:function(a){(a===!0?--r.readyWait:r.isReady)||(r.isReady=!0,a!==!0&&--r.readyWait>0||R.resolveWith(d,[r]))}}),r.ready.then=R.then;function S(){d.removeEventListener("DOMContentLoaded",S), +a.removeEventListener("load",S),r.ready()}"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(r.ready):(d.addEventListener("DOMContentLoaded",S),a.addEventListener("load",S));var T=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===r.type(c)){e=!0;for(h in c)T(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,r.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(r(a),c)})),b))for(;h1,null,!0)},removeData:function(a){return this.each(function(){X.remove(this,a)})}}),r.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=W.get(a,b),c&&(!d||Array.isArray(c)?d=W.access(a,b,r.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=r.queue(a,b),d=c.length,e=c.shift(),f=r._queueHooks(a,b),g=function(){r.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return W.get(a,c)||W.access(a,c,{empty:r.Callbacks("once memory").add(function(){W.remove(a,[b+"queue",c])})})}}),r.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length\x20\t\r\n\f]+)/i,la=/^$|\/(?:java|ecma)script/i,ma={option:[1,""],thead:[1,"","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};ma.optgroup=ma.option,ma.tbody=ma.tfoot=ma.colgroup=ma.caption=ma.thead,ma.th=ma.td;function na(a,b){var c;return c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[],void 0===b||b&&B(a,b)?r.merge([a],c):c}function oa(a,b){for(var c=0,d=a.length;c-1)e&&e.push(f);else if(j=r.contains(f.ownerDocument,f),g=na(l.appendChild(f),"script"),j&&oa(g),c){k=0;while(f=g[k++])la.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),o.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="",o.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var ra=d.documentElement,sa=/^key/,ta=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,ua=/^([^.]*)(?:\.(.+)|)/;function va(){return!0}function wa(){return!1}function xa(){try{return d.activeElement}catch(a){}}function ya(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)ya(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=wa;else if(!e)return a;return 1===f&&(g=e,e=function(a){return r().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=r.guid++)),a.each(function(){r.event.add(this,b,e,d,c)})}r.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=W.get(a);if(q){c.handler&&(f=c,c=f.handler,e=f.selector),e&&r.find.matchesSelector(ra,e),c.guid||(c.guid=r.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return"undefined"!=typeof r&&r.event.triggered!==b.type?r.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(L)||[""],j=b.length;while(j--)h=ua.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=r.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=r.event.special[n]||{},k=r.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&r.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),r.event.global[n]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=W.hasData(a)&&W.get(a);if(q&&(i=q.events)){b=(b||"").match(L)||[""],j=b.length;while(j--)if(h=ua.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){l=r.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||r.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)r.event.remove(a,n+b[j],c,d,!0);r.isEmptyObject(i)&&W.remove(a,"handle events")}},dispatch:function(a){var b=r.event.fix(a),c,d,e,f,g,h,i=new Array(arguments.length),j=(W.get(this,"events")||{})[b.type]||[],k=r.event.special[b.type]||{};for(i[0]=b,c=1;c=1))for(;j!==this;j=j.parentNode||this)if(1===j.nodeType&&("click"!==a.type||j.disabled!==!0)){for(f=[],g={},c=0;c-1:r.find(e,this,null,[j]).length),g[e]&&f.push(d);f.length&&h.push({elem:j,handlers:f})}return j=this,i\x20\t\r\n\f]*)[^>]*)\/>/gi,Aa=/\s*$/g;function Ea(a,b){return B(a,"table")&&B(11!==b.nodeType?b:b.firstChild,"tr")?r(">tbody",a)[0]||a:a}function Fa(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function Ga(a){var b=Ca.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Ha(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(W.hasData(a)&&(f=W.access(a),g=W.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;c1&&"string"==typeof q&&!o.checkClone&&Ba.test(q))return a.each(function(e){var f=a.eq(e);s&&(b[0]=q.call(this,e,f.html())),Ja(f,b,c,d)});if(m&&(e=qa(b,a[0].ownerDocument,!1,a,d),f=e.firstChild,1===e.childNodes.length&&(e=f),f||d)){for(h=r.map(na(e,"script"),Fa),i=h.length;l")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=r.contains(a.ownerDocument,a);if(!(o.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||r.isXMLDoc(a)))for(g=na(h),f=na(a),d=0,e=f.length;d0&&oa(g,!i&&na(a,"script")),h},cleanData:function(a){for(var b,c,d,e=r.event.special,f=0;void 0!==(c=a[f]);f++)if(U(c)){if(b=c[W.expando]){if(b.events)for(d in b.events)e[d]?r.event.remove(c,d):r.removeEvent(c,d,b.handle);c[W.expando]=void 0}c[X.expando]&&(c[X.expando]=void 0)}}}),r.fn.extend({detach:function(a){return Ka(this,a,!0)},remove:function(a){return Ka(this,a)},text:function(a){return T(this,function(a){return void 0===a?r.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=a)})},null,a,arguments.length)},append:function(){return Ja(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ea(this,a);b.appendChild(a)}})},prepend:function(){return Ja(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ea(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ja(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ja(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(r.cleanData(na(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null!=a&&a,b=null==b?a:b,this.map(function(){return r.clone(this,a,b)})},html:function(a){return T(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!Aa.test(a)&&!ma[(ka.exec(a)||["",""])[1].toLowerCase()]){a=r.htmlPrefilter(a);try{for(;c1)}});function _a(a,b,c,d,e){return new _a.prototype.init(a,b,c,d,e)}r.Tween=_a,_a.prototype={constructor:_a,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||r.easing._default,this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(r.cssNumber[c]?"":"px")},cur:function(){var a=_a.propHooks[this.prop];return a&&a.get?a.get(this):_a.propHooks._default.get(this)},run:function(a){var b,c=_a.propHooks[this.prop];return this.options.duration?this.pos=b=r.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):_a.propHooks._default.set(this),this}},_a.prototype.init.prototype=_a.prototype,_a.propHooks={_default:{get:function(a){var b;return 1!==a.elem.nodeType||null!=a.elem[a.prop]&&null==a.elem.style[a.prop]?a.elem[a.prop]:(b=r.css(a.elem,a.prop,""),b&&"auto"!==b?b:0)},set:function(a){r.fx.step[a.prop]?r.fx.step[a.prop](a):1!==a.elem.nodeType||null==a.elem.style[r.cssProps[a.prop]]&&!r.cssHooks[a.prop]?a.elem[a.prop]=a.now:r.style(a.elem,a.prop,a.now+a.unit)}}},_a.propHooks.scrollTop=_a.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},r.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},_default:"swing"},r.fx=_a.prototype.init,r.fx.step={};var ab,bb,cb=/^(?:toggle|show|hide)$/,db=/queueHooks$/;function eb(){bb&&(d.hidden===!1&&a.requestAnimationFrame?a.requestAnimationFrame(eb):a.setTimeout(eb,r.fx.interval),r.fx.tick())}function fb(){return a.setTimeout(function(){ab=void 0}),ab=r.now()}function gb(a,b){var c,d=0,e={height:a};for(b=b?1:0;d<4;d+=2-b)c=ca[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function hb(a,b,c){for(var d,e=(kb.tweeners[b]||[]).concat(kb.tweeners["*"]),f=0,g=e.length;f1)},removeAttr:function(a){return this.each(function(){r.removeAttr(this,a)})}}),r.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?r.prop(a,b,c):(1===f&&r.isXMLDoc(a)||(e=r.attrHooks[b.toLowerCase()]||(r.expr.match.bool.test(b)?lb:void 0)),void 0!==c?null===c?void r.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=r.find.attr(a,b), +null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!o.radioValue&&"radio"===b&&B(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d=0,e=b&&b.match(L);if(e&&1===a.nodeType)while(c=e[d++])a.removeAttribute(c)}}),lb={set:function(a,b,c){return b===!1?r.removeAttr(a,c):a.setAttribute(c,c),c}},r.each(r.expr.match.bool.source.match(/\w+/g),function(a,b){var c=mb[b]||r.find.attr;mb[b]=function(a,b,d){var e,f,g=b.toLowerCase();return d||(f=mb[g],mb[g]=e,e=null!=c(a,b,d)?g:null,mb[g]=f),e}});var nb=/^(?:input|select|textarea|button)$/i,ob=/^(?:a|area)$/i;r.fn.extend({prop:function(a,b){return T(this,r.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[r.propFix[a]||a]})}}),r.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&r.isXMLDoc(a)||(b=r.propFix[b]||b,e=r.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=r.find.attr(a,"tabindex");return b?parseInt(b,10):nb.test(a.nodeName)||ob.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),o.optSelected||(r.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),r.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){r.propFix[this.toLowerCase()]=this});function pb(a){var b=a.match(L)||[];return b.join(" ")}function qb(a){return a.getAttribute&&a.getAttribute("class")||""}r.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).addClass(a.call(this,b,qb(this)))});if("string"==typeof a&&a){b=a.match(L)||[];while(c=this[i++])if(e=qb(c),d=1===c.nodeType&&" "+pb(e)+" "){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=pb(d),e!==h&&c.setAttribute("class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).removeClass(a.call(this,b,qb(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(L)||[];while(c=this[i++])if(e=qb(c),d=1===c.nodeType&&" "+pb(e)+" "){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=pb(d),e!==h&&c.setAttribute("class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):r.isFunction(a)?this.each(function(c){r(this).toggleClass(a.call(this,c,qb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=r(this),f=a.match(L)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=qb(this),b&&W.set(this,"__className__",b),this.setAttribute&&this.setAttribute("class",b||a===!1?"":W.get(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+pb(qb(c))+" ").indexOf(b)>-1)return!0;return!1}});var rb=/\r/g;r.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=r.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,r(this).val()):a,null==e?e="":"number"==typeof e?e+="":Array.isArray(e)&&(e=r.map(e,function(a){return null==a?"":a+""})),b=r.valHooks[this.type]||r.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=r.valHooks[e.type]||r.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(rb,""):null==c?"":c)}}}),r.extend({valHooks:{option:{get:function(a){var b=r.find.attr(a,"value");return null!=b?b:pb(r.text(a))}},select:{get:function(a){var b,c,d,e=a.options,f=a.selectedIndex,g="select-one"===a.type,h=g?null:[],i=g?f+1:e.length;for(d=f<0?i:g?f:0;d-1)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),r.each(["radio","checkbox"],function(){r.valHooks[this]={set:function(a,b){if(Array.isArray(b))return a.checked=r.inArray(r(a).val(),b)>-1}},o.checkOn||(r.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var sb=/^(?:focusinfocus|focusoutblur)$/;r.extend(r.event,{trigger:function(b,c,e,f){var g,h,i,j,k,m,n,o=[e||d],p=l.call(b,"type")?b.type:b,q=l.call(b,"namespace")?b.namespace.split("."):[];if(h=i=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!sb.test(p+r.event.triggered)&&(p.indexOf(".")>-1&&(q=p.split("."),p=q.shift(),q.sort()),k=p.indexOf(":")<0&&"on"+p,b=b[r.expando]?b:new r.Event(p,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=q.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:r.makeArray(c,[b]),n=r.event.special[p]||{},f||!n.trigger||n.trigger.apply(e,c)!==!1)){if(!f&&!n.noBubble&&!r.isWindow(e)){for(j=n.delegateType||p,sb.test(j+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),i=h;i===(e.ownerDocument||d)&&o.push(i.defaultView||i.parentWindow||a)}g=0;while((h=o[g++])&&!b.isPropagationStopped())b.type=g>1?j:n.bindType||p,m=(W.get(h,"events")||{})[b.type]&&W.get(h,"handle"),m&&m.apply(h,c),m=k&&h[k],m&&m.apply&&U(h)&&(b.result=m.apply(h,c),b.result===!1&&b.preventDefault());return b.type=p,f||b.isDefaultPrevented()||n._default&&n._default.apply(o.pop(),c)!==!1||!U(e)||k&&r.isFunction(e[p])&&!r.isWindow(e)&&(i=e[k],i&&(e[k]=null),r.event.triggered=p,e[p](),r.event.triggered=void 0,i&&(e[k]=i)),b.result}},simulate:function(a,b,c){var d=r.extend(new r.Event,c,{type:a,isSimulated:!0});r.event.trigger(d,null,b)}}),r.fn.extend({trigger:function(a,b){return this.each(function(){r.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];if(c)return r.event.trigger(a,b,c,!0)}}),r.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(a,b){r.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),r.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),o.focusin="onfocusin"in a,o.focusin||r.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){r.event.simulate(b,a.target,r.event.fix(a))};r.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=W.access(d,b);e||d.addEventListener(a,c,!0),W.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=W.access(d,b)-1;e?W.access(d,b,e):(d.removeEventListener(a,c,!0),W.remove(d,b))}}});var tb=a.location,ub=r.now(),vb=/\?/;r.parseXML=function(b){var c;if(!b||"string"!=typeof b)return null;try{c=(new a.DOMParser).parseFromString(b,"text/xml")}catch(d){c=void 0}return c&&!c.getElementsByTagName("parsererror").length||r.error("Invalid XML: "+b),c};var wb=/\[\]$/,xb=/\r?\n/g,yb=/^(?:submit|button|image|reset|file)$/i,zb=/^(?:input|select|textarea|keygen)/i;function Ab(a,b,c,d){var e;if(Array.isArray(b))r.each(b,function(b,e){c||wb.test(a)?d(a,e):Ab(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d)});else if(c||"object"!==r.type(b))d(a,b);else for(e in b)Ab(a+"["+e+"]",b[e],c,d)}r.param=function(a,b){var c,d=[],e=function(a,b){var c=r.isFunction(b)?b():b;d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(null==c?"":c)};if(Array.isArray(a)||a.jquery&&!r.isPlainObject(a))r.each(a,function(){e(this.name,this.value)});else for(c in a)Ab(c,a[c],b,e);return d.join("&")},r.fn.extend({serialize:function(){return r.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=r.prop(this,"elements");return a?r.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!r(this).is(":disabled")&&zb.test(this.nodeName)&&!yb.test(a)&&(this.checked||!ja.test(a))}).map(function(a,b){var c=r(this).val();return null==c?null:Array.isArray(c)?r.map(c,function(a){return{name:b.name,value:a.replace(xb,"\r\n")}}):{name:b.name,value:c.replace(xb,"\r\n")}}).get()}});var Bb=/%20/g,Cb=/#.*$/,Db=/([?&])_=[^&]*/,Eb=/^(.*?):[ \t]*([^\r\n]*)$/gm,Fb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Gb=/^(?:GET|HEAD)$/,Hb=/^\/\//,Ib={},Jb={},Kb="*/".concat("*"),Lb=d.createElement("a");Lb.href=tb.href;function Mb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(L)||[];if(r.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Nb(a,b,c,d){var e={},f=a===Jb;function g(h){var i;return e[h]=!0,r.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Ob(a,b){var c,d,e=r.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&r.extend(!0,a,d),a}function Pb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}if(f)return f!==i[0]&&i.unshift(f),c[f]}function Qb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}r.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:tb.href,type:"GET",isLocal:Fb.test(tb.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Kb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":r.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Ob(Ob(a,r.ajaxSettings),b):Ob(r.ajaxSettings,a)},ajaxPrefilter:Mb(Ib),ajaxTransport:Mb(Jb),ajax:function(b,c){"object"==typeof b&&(c=b,b=void 0),c=c||{};var e,f,g,h,i,j,k,l,m,n,o=r.ajaxSetup({},c),p=o.context||o,q=o.context&&(p.nodeType||p.jquery)?r(p):r.event,s=r.Deferred(),t=r.Callbacks("once memory"),u=o.statusCode||{},v={},w={},x="canceled",y={readyState:0,getResponseHeader:function(a){var b;if(k){if(!h){h={};while(b=Eb.exec(g))h[b[1].toLowerCase()]=b[2]}b=h[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return k?g:null},setRequestHeader:function(a,b){return null==k&&(a=w[a.toLowerCase()]=w[a.toLowerCase()]||a,v[a]=b),this},overrideMimeType:function(a){return null==k&&(o.mimeType=a),this},statusCode:function(a){var b;if(a)if(k)y.always(a[y.status]);else for(b in a)u[b]=[u[b],a[b]];return this},abort:function(a){var b=a||x;return e&&e.abort(b),A(0,b),this}};if(s.promise(y),o.url=((b||o.url||tb.href)+"").replace(Hb,tb.protocol+"//"),o.type=c.method||c.type||o.method||o.type,o.dataTypes=(o.dataType||"*").toLowerCase().match(L)||[""],null==o.crossDomain){j=d.createElement("a");try{j.href=o.url,j.href=j.href,o.crossDomain=Lb.protocol+"//"+Lb.host!=j.protocol+"//"+j.host}catch(z){o.crossDomain=!0}}if(o.data&&o.processData&&"string"!=typeof o.data&&(o.data=r.param(o.data,o.traditional)),Nb(Ib,o,c,y),k)return y;l=r.event&&o.global,l&&0===r.active++&&r.event.trigger("ajaxStart"),o.type=o.type.toUpperCase(),o.hasContent=!Gb.test(o.type),f=o.url.replace(Cb,""),o.hasContent?o.data&&o.processData&&0===(o.contentType||"").indexOf("application/x-www-form-urlencoded")&&(o.data=o.data.replace(Bb,"+")):(n=o.url.slice(f.length),o.data&&(f+=(vb.test(f)?"&":"?")+o.data,delete o.data),o.cache===!1&&(f=f.replace(Db,"$1"),n=(vb.test(f)?"&":"?")+"_="+ub++ +n),o.url=f+n),o.ifModified&&(r.lastModified[f]&&y.setRequestHeader("If-Modified-Since",r.lastModified[f]),r.etag[f]&&y.setRequestHeader("If-None-Match",r.etag[f])),(o.data&&o.hasContent&&o.contentType!==!1||c.contentType)&&y.setRequestHeader("Content-Type",o.contentType),y.setRequestHeader("Accept",o.dataTypes[0]&&o.accepts[o.dataTypes[0]]?o.accepts[o.dataTypes[0]]+("*"!==o.dataTypes[0]?", "+Kb+"; q=0.01":""):o.accepts["*"]);for(m in o.headers)y.setRequestHeader(m,o.headers[m]);if(o.beforeSend&&(o.beforeSend.call(p,y,o)===!1||k))return y.abort();if(x="abort",t.add(o.complete),y.done(o.success),y.fail(o.error),e=Nb(Jb,o,c,y)){if(y.readyState=1,l&&q.trigger("ajaxSend",[y,o]),k)return y;o.async&&o.timeout>0&&(i=a.setTimeout(function(){y.abort("timeout")},o.timeout));try{k=!1,e.send(v,A)}catch(z){if(k)throw z;A(-1,z)}}else A(-1,"No Transport");function A(b,c,d,h){var j,m,n,v,w,x=c;k||(k=!0,i&&a.clearTimeout(i),e=void 0,g=h||"",y.readyState=b>0?4:0,j=b>=200&&b<300||304===b,d&&(v=Pb(o,y,d)),v=Qb(o,v,y,j),j?(o.ifModified&&(w=y.getResponseHeader("Last-Modified"),w&&(r.lastModified[f]=w),w=y.getResponseHeader("etag"),w&&(r.etag[f]=w)),204===b||"HEAD"===o.type?x="nocontent":304===b?x="notmodified":(x=v.state,m=v.data,n=v.error,j=!n)):(n=x,!b&&x||(x="error",b<0&&(b=0))),y.status=b,y.statusText=(c||x)+"",j?s.resolveWith(p,[m,x,y]):s.rejectWith(p,[y,x,n]),y.statusCode(u),u=void 0,l&&q.trigger(j?"ajaxSuccess":"ajaxError",[y,o,j?m:n]),t.fireWith(p,[y,x]),l&&(q.trigger("ajaxComplete",[y,o]),--r.active||r.event.trigger("ajaxStop")))}return y},getJSON:function(a,b,c){return r.get(a,b,c,"json")},getScript:function(a,b){return r.get(a,void 0,b,"script")}}),r.each(["get","post"],function(a,b){r[b]=function(a,c,d,e){return r.isFunction(c)&&(e=e||d,d=c,c=void 0),r.ajax(r.extend({url:a,type:b,dataType:e,data:c,success:d},r.isPlainObject(a)&&a))}}),r._evalUrl=function(a){return r.ajax({url:a,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},r.fn.extend({wrapAll:function(a){var b;return this[0]&&(r.isFunction(a)&&(a=a.call(this[0])),b=r(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this},wrapInner:function(a){return r.isFunction(a)?this.each(function(b){r(this).wrapInner(a.call(this,b))}):this.each(function(){var b=r(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=r.isFunction(a);return this.each(function(c){r(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(a){return this.parent(a).not("body").each(function(){r(this).replaceWith(this.childNodes)}),this}}),r.expr.pseudos.hidden=function(a){return!r.expr.pseudos.visible(a)},r.expr.pseudos.visible=function(a){return!!(a.offsetWidth||a.offsetHeight||a.getClientRects().length)},r.ajaxSettings.xhr=function(){try{return new a.XMLHttpRequest}catch(b){}};var Rb={0:200,1223:204},Sb=r.ajaxSettings.xhr();o.cors=!!Sb&&"withCredentials"in Sb,o.ajax=Sb=!!Sb,r.ajaxTransport(function(b){var c,d;if(o.cors||Sb&&!b.crossDomain)return{send:function(e,f){var g,h=b.xhr();if(h.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(g in b.xhrFields)h[g]=b.xhrFields[g];b.mimeType&&h.overrideMimeType&&h.overrideMimeType(b.mimeType),b.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest");for(g in e)h.setRequestHeader(g,e[g]);c=function(a){return function(){c&&(c=d=h.onload=h.onerror=h.onabort=h.onreadystatechange=null,"abort"===a?h.abort():"error"===a?"number"!=typeof h.status?f(0,"error"):f(h.status,h.statusText):f(Rb[h.status]||h.status,h.statusText,"text"!==(h.responseType||"text")||"string"!=typeof h.responseText?{binary:h.response}:{text:h.responseText},h.getAllResponseHeaders()))}},h.onload=c(),d=h.onerror=c("error"),void 0!==h.onabort?h.onabort=d:h.onreadystatechange=function(){4===h.readyState&&a.setTimeout(function(){c&&d()})},c=c("abort");try{h.send(b.hasContent&&b.data||null)}catch(i){if(c)throw i}},abort:function(){c&&c()}}}),r.ajaxPrefilter(function(a){a.crossDomain&&(a.contents.script=!1)}),r.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(a){return r.globalEval(a),a}}}),r.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),r.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(e,f){b=r("